CN101645046A - 一次性可编程存储器仿真 - Google Patents

一次性可编程存储器仿真 Download PDF

Info

Publication number
CN101645046A
CN101645046A CN200910160889A CN200910160889A CN101645046A CN 101645046 A CN101645046 A CN 101645046A CN 200910160889 A CN200910160889 A CN 200910160889A CN 200910160889 A CN200910160889 A CN 200910160889A CN 101645046 A CN101645046 A CN 101645046A
Authority
CN
China
Prior art keywords
memory
memory section
page
visible
otp
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN200910160889A
Other languages
English (en)
Inventor
马希德·卡布沙
卡里纳·勒福尔
让-帕斯卡尔·马拉宁基
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microchip Technology Rousset SAS
Original Assignee
Atmel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Atmel Corp filed Critical Atmel Corp
Publication of CN101645046A publication Critical patent/CN101645046A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/24Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本文件揭示一次性可编程(“OTP”)存储器仿真及执行所述一次性可编程存储器仿真的方法。可通过响应于将数据写入到OTP存储器位置的指令管理对存储器阵列的读取及写入且选择性地设定对应于所述存储器位置的安全性旗标来仿真OTP存储器。所述存储器阵列可以是包括多个存储器页的NAND快闪存储器阵列。所述存储器阵列可由可包括多个存储器页的存储器块界定。当接收到OTP写入指令时,可从第一存储器页中读取先前存储的数据,将其与新数据组合且存储到目标存储器页。可设定安全性旗标以防止所述目标页在擦除之前被重新编程。

Description

一次性可编程存储器仿真
技术领域
本说明书涉及一次性可编程存储器仿真。
背景技术
装置正用于以电子方式存储更多信息。所存储的某些数据为敏感数据。举例来说,可将病案及财务信息存储在装置中以增加经授权用户对所述信息的可存取性。当确定装置之类型及经实施以保护所述数据之安全性措施时可考虑所存储数据的敏感性。
用于以电子方式存储信息的实例性装置是智能卡。智能卡可在嵌入在所述卡中的存储器中存储信息。所述存储器可用于存储财务信息、病案、识别信息以及其它敏感私人数据。除存储敏感的私人数据以外,智能卡还可存储敏感的程序数据。敏感程序数据的实例可包括用于配置操作***的参数表、可用于软件修补的跳转表、与装置的寿命循环管理相关的信息、用于密码学应用的关键字等。
一旦信息存储在所述智能卡的存储器中,那么所述卡可由配备有可与所述智能卡介接的***设备的计算装置读取。一次性可编程存储器可用于增加数据的安全性,因为一旦数据已被写入到存储器,那么其将不能够被改变。举例来说,OTP存储器的一个或一个以上页可与非易失性存储器的其它页一同实施。然而,使用一次性可编程数据有时可导致与可用存储器的使用相关的低效率。
发明内容
本文件揭示一次性可编程(“OTP”)存储器仿真及执行所述一次性可编程存储器仿真的方法。可通过响应于向OTP存储器位置写入数据的指令管理对存储器阵列的读取及写入且选择性地设定对应于所述存储器位置的安全性旗标来仿真OTP存储器。所述存储器阵列可由NAND快闪存储器块界定。所述存储器块可包括NAND快闪存储器的多个页。可用NAND快闪存储器的子组可用于仿真所述OTP存储器。
当接收到OTP写入指令时,可从第一存储器页中读取先前存储的数据,将其与新数据组合且存储到目标存储器页。可设定安全性旗标以防止所述目标页在擦除之前被重新编程。
此说明书中所说明的标的物的特定实施方案可经实施以实现以下任选优点中的一者或一者以上。可在一次性可编程环境中更有效地使用存储器。使用NAND快闪存储器的装置(例如,智能卡)可用于要求一次性可编程存储器的***中。可通过一次性可编程仿真来实现更高的存储器容量,因为可使用NAND快闪存储器而不是一次性可编程存储器来实现更高的存储器容量。
本说明书中所说明的标的物的一个或一个以上实施例的细节阐述于附图及以下说明中。所述标的物的其它特征、方面及优点将根据所述说明、图式及权利要求书而变得显而易见。
附图说明
图1是其中可实施一次性可编程存储器的实例性环境的图表。
图2A是实例性OTP仿真***。
图2B-2D是在使用NAND快闪存储器仿真OTP存储器写入期间的实例性存储器状态的框图。
图3是实例性OTP仿真器的框图。
图4是使用NAND快闪存储器来仿真OTP存储器的实例性过程的流程图。
各个图式中的相同参考编号及名称指示相同的元件。
具体实施方式
本文件揭示一次性可编程(“OTP”)存储器仿真。举例来说,可使用NAND快闪存储器来实施所述OTP仿真。在一个特定实例中,可使用NAND快闪存储器的两个块来仿真OTP存储器的一个页。可用快闪存储器的子组可用于仿真OTP存储器而不干扰剩余的NAND快闪存储器。在此特定实例中,物理存储器的量将与计算装置可见的存储器的量不同。举例来说,当使用NAND快闪存储器的两个块来仿真OTP存储器的单个页时,计算装置可见的总存储器是OTP的快闪+1页的N-2个块,其中N是可用物理NAND快闪存储器块的数目。
在某些实施方案中,仿真器可接收包括来自计算装置的OTP数据的OTP指令。所述仿真器又可识别快闪存储器的可见页(例如,计算装置可见)且读取存储在所述可见页中的数据。所述仿真器可以从所述计算装置接收的OTP数据来更新从所述可见页读取的数据,且在OTP存储器中的目标页中存储所述经更新数据。所述目标页是OTP存储器的其中所有字节为十六进制逻辑值FF的一页。可基于一个或一个以上安全性指示符(例如,一个或一个以上安全性字节)及所述目标页中所存储的一个或一个以上值来将所述目标页识别为空白。
一旦所述目标页已编程有经更新的数据,那么可设定安全性指示符以将所述目标页识别为经编程且被锁定的页。一旦设定所述安全性指示符,那么可将目标页的地址存储到可见页指针中且所述目标页可由仿真器或CPU识别为可见页。
当通电时,所述仿真器通过搜索快闪存储器的页以寻找已设定其安全性指示符的第一页来识别所述可见页。可将此页的地址存储在所述可见页指针中。如果多个页已设定安全性指示符,那么所述仿真器可根据所述页的地址来确定将哪一地址存储在所述可见页指针中。举例来说,所述仿真器可选择已设定安全性指示符的页的最高地址作为所述可见页指针。可以成功编程的目标页的地址来更新所述可见页指针,且此后所述仿真器可基于所述可见页指针来识别所述可见页。当所述可见页指针存储与特定块相关联的页地址时,可擦除不在所述特定块中的页。
§1.0一次性可编程存储器环境
图1是其中可实施一次性可编程存储器的实例性环境的图表。智能卡102是可包括嵌入式集成电路芯片103的卡装置。所述集成电路芯片可包括存储器结构,或包括存储器结构的安全微控制器,其可作为数据存储装置104操作。智能卡102的数据存储装置104可存储可由与智能卡102进行通信的计算装置106存取的数字信息。计算装置106可通过与智能卡102的直接接触或经由无线连接与智能卡102进行通信。
计算装置106可配备有接口***设备108(例如,智能卡读取器)以促进与智能卡102的直接接触。智能卡用户110可将智能卡102***到接口***设备108中。一旦***智能卡102,接口***设备108可与集成电路芯片103接触。计算装置106又可存取数据存储装置104或与微控制器进行通信以从数据存储装置104存储及检索数据。接口***设备还可具有促进与智能卡102的无线通信的无线能力。
智能卡102可用于要求保护存储在所述智能卡上的数据的安全性的应用中。举例来说,智能卡102可用作***/借记卡,以存储敏感的医疗保健数据,且进出安全建筑物。因此,其可有利地防止对存储在数据存储装置104中的信息的未经授权的操纵。为保护存储在数据存储装置104中的数据的完整性,可使用OTP存储器来实施数据存储装置104。OTP存储器是在其被擦除之前仅可编程一次的存储器。因此,一旦OTP存储器的一个单元经编程,那么在首先对其进行擦除之前不能够改变所述单元。
NAND快闪存储器可具有页等级的写入粒度,使得可在不干扰所述NAND快闪存储器阵列中的其它页的情况下编程所述NAND快闪存储器的每一页。然而,当使用多个写入操作编程同一页的单独字节时,NAND快闪存储器架构可使所述NAND快闪存储器经受潜在的“写入干扰”。写入干扰可以是由在编程循环期间施加到所述快闪存储器阵列的高电压信号导致的对所述阵列中的字节的不期望修改。举例来说,施加到所述阵列的高电压可导致已经编程的字节的状态改变,所述状态改变又导致遭破坏的数据。
在某些实施方案中,可使用NAND快闪存储器结构及OTP仿真器112来仿真具有小于页的写入粒度(例如,字节等级的写入粒度)的OTP存储器。在这些实施方案中,OTP仿真器112可从计算装置116接收OTP写入指令。OTP仿真器112又可存取NAND快闪存储器的多个页,可以经界定或随机顺序编程所述NAND快闪存储器的所述多个页以促进OTP功能性。
§2.0一次性可编程存储器仿真
图2A是实例性OTP仿真***200。在某些实施方案中,OTP仿真***200可包括NAND快闪存储器结构201及OTP仿真器112。举例来说,可在智能卡(例如,智能卡102)或任何其它装置或其中使用OTP存储器的***上实施OTP仿真***200。在某些实施方案中,OTP仿真器112可接收OTP存储器指令且管理可用NAND快闪资源以仿真OTP。
§2.1实例性仿真器编程
在某些实施方案中,OTP仿真器112可响应于一个或一个以上OTP写入指令在实例性NAND快闪存储器结构201中存储一个OTP数据页。在这些实施方案中,NAND快闪存储器结构201可包括第一存储器块202及第二存储器块204。每一存储器块202、204可包括存储器206的多个页。举例来说,第一存储器块202可包括存储器的八个页206-0-206-7。类似地,第二存储器块204可包括存储器的八个页206-8-206-F。
在某些实施方案中,第一存储器块202及第二存储器块204中的每一偶数页208分别在第一存储器块202及第二存储器块204中具有对应的奇数页205。举例来说,第一存储器块202的页206-0、206-2、206-4及206-6可分别对应于页206-1、206-3、206-5及206-7。类似地,第二存储器块204中的偶数页206-8、206-A、206-C及206-E可分别对应于奇数页206-9、206-B、206-D及206-F。尽管为便于说明而邻近对应的奇数页205来提供偶数页208,但对应的页可位于与其所对应的页相同的块内的任何位置。
在某些实施方案中,OTP仿真器112可在接收到OTP写入操作时将OTP数据存储在偶数页208中。在这些实施方案中,OTP仿真器112可将状态指示符及其它信息存储在奇数页205中。
安全性指示符是可存储在奇数页205中的实例性状态指示符。在某些实施方案中,所述安全性指示符可以是奇数页205的将对应的偶数页208指定为被锁定页的一个或一个以上字节。当偶数页208被指定为被锁定时,在擦除之前不能够再次对偶数页208进行编程。此防止偶数页208被改变且促进页等级下的OTP存储器功能性。
举例来说,OTP数据可存储在第一存储器块202的页206-0中。当页206-0成功经编程时,可将位于页206-1中的安全性字节设定为经界定值,使得页206-0被指定为被锁定。一旦页206-1中的安全性字节被设定为所述经界定值,那么在擦除之前不能够再次对页206-0进行编程。因此,可在完全页写入之后通过使用安全性字节锁定所述页来使用NAND快闪存储器执行页等级下的OTP编程。
当在单个OTP存储器写入中写入少于一页数据时,所述NAND快闪页可包含少于完全一页数据,但也被锁定。相应地,在不首先对所述NAND快闪页执行擦除的情况下,不能够向所述页中剩余的空字节写入额外的数据字节。然而,OTP仿真器112可仿真具有小于页的OTP存储器单位的OTP存储器。在某些实施方案中,OTP仿真器112可使用实例性NAND快闪存储器结构201的架构,以便可向与部分编程的页中所包含的数据共用的页写入额外的数据字节,而不对所述部分编程的页执行多个写入操作。
在某些实施方案中,OTP仿真器112可藉由向目标页写入额外的OTP数据字节及所述部分编程的页中所包含的数据来将所述额外的OTP数据字节与所述部分编程的页中所包含的数据一同写入到所述目标页(例如,空白页)。所述目标页可以是具有下一最高地址的偶数页208或任何其它空白页。
图2B-2D是在使用NAND快闪存储器仿真OTP存储器写入期间的实例性存储器状态的框图。在图2B中呈现第一存储器块202的四个页206-0-206-3。每一页206-0-206-3的页宽度可以是64个字节、128个字节或任何其它适当页宽度。页206-0部分编程且在第一字节210-0中包含数据。页206-0中的其它字节包含十六进制值FF,从而指示自从上次擦除以来所述字节还未经编程。页206-1对应于页206-0且包含具有值00的安全性字节212-0,从而指示页206-0已被锁定。因此,在页206-0被擦除之前不能够对页206-0执行额外写入。
页206-2的每一字节具有十六进制值FF,从而指示页206-2是空白的。类似地,页206-3的安全性字节212-1具有十六进制值FF,从而指示页206-2还未被锁定。因此,页206-2可以是目标页且又可向页206-2写入数据。
当图2A的OTP仿真器112接收到在(举例来说)字节210-1中存储新的数据值B的OTP写入指令时,OTP仿真器112不能够将所述值存储在字节210-1中,因为页206-0被锁定。然而,页206-2未被锁定,因为对应于页206-2的安全性位212-1包含十六进制值FF。因此,可将新的数据值B及存储在字节210-0中的值两者存储在页206-2中。
在某些实施方案中,OTP仿真器112可读取存储在页206-0(例如,字节210-0)中的数据且将所读取的数据与和OTP写入指令一同接收的数据组合。所述OTP仿真器又可将从页206-0中的字节210-0读取的数据及所述所接收的数据分别写入到字节211-0及211-1。图2C是所得存储器状态的框图。
如图2C中所示,字节211-0包含先前存储在字节210-0中的值A,而字节211-1包含与OTP写入指令一同接收的新数据值B。一旦所述写入操作已完成,那么所述OTP仿真器可通过将页206-3(例如,对应于页206-2)中的安全性字节212-1编程为值00来锁定页206-2,如图2D中所示。因此,不能够操纵页206-2中所存储的数据且也保护所述页免受写入干扰,因为对所述页仅执行一个写入。
所述OTP仿真器可以与上文所说明方式类似的方式来执行额外OTP写入操作,使得可将额外的数据字节写入到与先前所存储数据相同的NAND快闪存储器页中的字节。在某些实施方案中,OTP仿真器112可基于可见页指针来确定将要对其进行写入的下一页。可见页指针可以是存储在寄存器(例如,存储器控制器中的寄存器)中的页地址,所述寄存器可由正存取OTP存储器的计算装置存取。所述页地址可对应于所述计算装置可见(例如,可由所述计算装置存取)的OTP存储器的一页。举例来说,OTP仿真器112可将经成功写入(例如,经编程且被锁定)的最后NAND快闪存储器页的地址存储为所述可见页指针,使得所述计算装置可识别所述可见页中的下一空白字节。
当计算装置提供将被写入到所述下一可用字节的数据时,OTP仿真器112可将数据存储到另一NAND快闪存储器页中的对应字节且将新页地址存储为可见页指针。举例来说,OTP仿真器112可以页地址的顺序次序来对页进行编程。相应地,当以页地址的顺序次序存储页时,可在第二存储器块204中的任何页被编程之前对第一存储器块202中的页进行编程。尽管提供页的顺序编程,但可使用其它页编程次序。
所述可见页指针也可用于管理计算装置的数据读取。举例来说,当计算装置尝试从正用于仿真OTP存储器的NAND快闪中读取数据时,所述计算装置可参考所述可见页指针以识别将要读取的数据的位置。类似地,当所述计算装置经编程以存取OTP存储器的单个页时,可以对应于所述OTP存储器的静态页地址对其进行编程。因此,来自所述计算装置的每一读取指令将针对单个页。OTP仿真器112可接收所述读取指令且参考所述可见页指针以检索正确的数据且将其提供到所述计算装置而不要求所述计算装置提供所述数据在所述NAND快闪中的实际位置。
§2.2实例性快闪存储器管理
如上所述,所述OTP仿真器可响应于OTP写入指令将数据写入到NAND快闪存储器的页。然而,一旦所述NAND快闪存储器的所有页已经写入,那么在至少一个页被擦除之前不能够写入额外数据。因此,可周期地或响应于触发器事件来执行擦除功能,使得NAND快闪的先前经写入的页可用于后续OTP写入操作。
当对所述NAND快闪存储器执行擦除时,可将经擦除的每一字节设定为十六进制值FF,从而指示所述字节可用于编程。在某些实施方案中,可以块粒度对所述NAND快闪存储器进行擦除。在这些实施方案中,OTP仿真器112可在最后编程的页不位于将被擦除的块中时擦除存储器块。举例来说,再次参照图2A,OTP仿真器112可在所述最后编程的页位于块204中时擦除块202。类似地,OTP仿真器112可在所述最后编程的页位于块202中时擦除块204。
在某些实施方案中,OTP仿真器112可基于可见页指针来识别所述最后编程的页。如上所述,由OTP仿真器112存储的可见页指针可识别成功由OTP仿真器112编程的最后NAND快闪页的页地址。相应地,所述OTP仿真器可使用所述可见页指针中所存储的页地址来确定是否可擦除特定数据块。
举例来说,如果所述可见页指针指示页206-A是由OTP仿真器112编程的最后页,那么可擦除第一存储器块202而不擦除最后编程的数据页。类似地,如果所述可见页指针指示页206-2是由所述OTP仿真器编程的最后页,那么可擦除第二存储器块204而不擦除最后编程的数据页。
当OTP仿真器112按顺序编程页时,可在另一块的第一页被成功编程时执行擦除。举例来说,可在页206-8经成功编程之后擦除第一存储器块202。类似地,可在页206-0经成功编程之后擦除第二存储器块204。在另一块的第一页经成功编程之后擦除每一存储器块增加在另一块的所有页经编程时每一存储器块可被擦除且可用于编程的可能性。
§2.3实例性加电操作
在某些实施方案中,OTP仿真器112可在加电时确定NAND快闪存储器的状态。举例来说,OTP仿真器112可确定将被成功编程的最后页、可用于编程的下一页及在写入期间是否存在尝试性攻击或断电。确定所述NAND快闪存储器的状态使得OTP仿真器112能够确定如何管理在新OTP写入指令中接收的数据以及促进对应被存储为可见页指针的页地址的识别。
OTP仿真器112可通过(举例来说)检查存储在每一偶数页208及每一对应的奇数页205中的值来确定所述NAND快闪存储器的状态。在某些实施方案中,OTP仿真器112可首先将所接收的数据写入在空白偶数页中,且随后在写入循环期间通过将对应的奇数页中的安全性字节设定为经界定值来锁定所述偶数页。相应地,在这些实施方案中,可根据所述偶数及奇数页的值来确定所述NAND快闪存储器的每一页的状态。
举例来说,如果OTP仿真器112确定奇数页205包含将对应的偶数页208识别为被锁定的所界定值,那么OTP仿真器112可将所述对应的偶数页208识别为经成功编程的页。
相反,如果OTP仿真器112确定偶数页208包含数据但对应的奇数页205中的安全性字节不包含将偶数页208识别为被锁定的所界定值,那么OTP仿真器112可将所述偶数页识别为经受攻击或另外未能够成功编程(例如,在编程期间断电)的页。
在某些实施方案中,OTP仿真器112可以编程页的相同次序确定每一页的状态。举例来说,如果以顺序次序编程所述页,那么OTP仿真器112可以顺序次序确定所述页的状态。因此,在此实例中,OTP仿真器112可基于页206-0中的字节的值以及页206-1中的安全性字节的值来首先确定页206-0的状态。OTP仿真器112可通过检查页206-1的安全性字节的值来开始。如果所述安全性字节被设定为00(例如,将页206-0识别为被锁定的所界定值),那么OTP仿真器112可确定页206-0已成功编程且继续到页206-2。
为确定页206-2的状态,所述OTP仿真器可再次通过检查页206-3的安全性字节的值来开始。如果OTP仿真器112确定页206-3的安全性字节的值不是00,那么页206-2还未被锁定。OTP仿真器112又可检查页206-2的值。如果页206-2的所有字节包含擦除值(例如,十六进制值FF),那么OTP仿真器112可确定页206-2可用于编程。然而,如果206-2的任何字节包含不是所述擦除值(例如,十六进制值FF)的值,那么OTP仿真器112可确定页206-2的编程失败(例如,在编程期间电力中断)。OTP仿真器112可通过以类似于上文所说明方式的方式确定剩余偶数页(例如,偶数页206-4-206-E)的状态来继续。
基于所述偶数页的状态,OTP仿真器112可确定如何处理所接收到的OTP写入指令。在某些实施方案中,OTP仿真器112可将与具有所界定值(例如,00)的安全性字节相关联的最高偶数页208识别为可见页。OTP仿真器112又可将所述可见页的地址存储为可见页指针。当接收到OTP写入指令时,OTP仿真器112可基于所述可见页指针来识别目标页。
继续以上实例,如果页206-0被识别为所述可见页,那么OTP仿真器112可将下一空白页(例如,206-4)识别为将要编程的下一页。在此实例中,可绕过页206-2,因为OTP仿真器112确定页206-2被不恰当地编程。因此,可将所述下一空白页用作额外OTP写入指令的目标页。
§3.0实例性一次性可编程仿真器
图3是实例性OTP仿真器112的框图。在某些实施方案中,实例性OTP仿真器112可包括可见段识别模块302、编程模块304、安全性模块306及段完整性模块308。OTP仿真器112可实施在电子电路中(举例来说)以使用NAND快闪存储器仿真OTP存储器。OTP仿真器112的模块可连接到共用通信总线314,以便可在所述模块之间共享信息。
在某些实施方案中,可见段识别模块302可操作以识别***装置(例如,提供OTP存储器指令的计算装置)可见的存储器段。可见段识别模块302可基于与NAND快闪存储器的每一页相关联的安全性字节(例如,图2D的字节212-1)来在所述NAND快闪存储器中识别可见存储器段(例如,图2B的页206-0)。举例来说,可见段识别模块302可将所述可见段识别为一块中与安全性指示符(例如,将所述页识别为经成功编程的指示符)相关联的最高经寻址存储器页。
可见段识别模块302可将所述可见存储器段(例如,图2B的页206-0)的地址提供到可见页指针316。可见页指针(VPP)316可以是可存储所述可见页的地址的寄存器。可见页指针316可由OTP仿真器112外部的装置以及OTP仿真器112内的模块存取以识别所述可见页。
编程模块304可操作以读取所述可见存储器段中所存储的数据且以与OTP写入指令一同提供的额外数据更新所述所读取的数据。可在读取指令期间或响应于由OTP仿真器112接收的OTP写入指令读取所述数据。编程模块304可通过将所述额外数据与所述所读取的数据一同包括在内来更新所述所读取的数据。编程模块304又可将所述经更新的数据写入到目标存储器位置(例如,图2C的页206-2)。所述目标存储器位置可以是(举例来说)自从最后的擦除以来还未经编程的另一存储器段(例如,处于逻辑值FF的空白页)。在某些实施方案中,所述目标存储器段是NAND快闪存储器的空白页。
在某些实施方案中,编程模块304也可操作以在所述可见存储器段位于另一存储器块中时擦除存储器块。举例来说,编程模块304可基于可见页指针316中所存储的值来识别所述可见存储器段(例如,图2B的页206-0)的位置。编程模块304又可将可见页指针316中所存储的地址与将要擦除的块中所包含的页的地址进行比较。如果可见页指针316中所存储的地址不对应于将要擦除的块(例如,图2A的存储器块204)中所包含的页的地址,那么编程模块304可擦除所述块。
在某些实施方案中,编程模块304可进一步操作以在所述可见存储器段对应于特定存储器段时擦除存储器块。举例来说,如果按顺序编程存储器结构中的页,那么编程模块304可在所述可见存储器段对应于与另一存储器块相关联的最低页地址(例如,图2A的页206-0)时擦除存储器块(例如,图2A的存储器块204)。
安全性模块306可操作以在安全性存储器段中设定安全性旗标。举例来说,安全性模块306可在存储器的对应页的编程完成时设定所述安全性旗标。举例来说,所述安全性旗标可由位于安全性存储器段(例如,图2D的页206-3)中的存储器字节(例如,图2D的字节212-1)界定。安全性模块306可通过将界定所述安全性旗标的所界定值(例如,十六进制值00)存储在存储器的字节中来设定所述安全性旗标。所述安全性存储器段可实施为NAND快闪存储器的对应于NAND快闪存储器的用于存储OTP数据的页(例如,图2D的页206-2)的页。在这些实施方案中,所述安全性字节可用于将存储器的所述对应页识别为经编程且被锁定。
段完整性模块308可操作以确定目标存储器段是否经编程。即使目标存储器段(例如,图2C的页206-2可能未被锁定(例如,未设定安全性旗标)),那么所述目标存储器段仍可包含来自先前编程尝试的数据。举例来说,如果在页的编程期间电力中断,那么此情况可发生。由于可在所述页经编程之后设定安全性旗标(例如,图2C的212-1),因此部分数据可能被编程到所述目标段,但未完成。相应地,与所述目标存储器段相关联的安全性旗标(例如,图2C的字节212-1)可能未被设定且因此可能不防止所述目标存储器段的编程。因此,段完整性模块308可通过将所述目标存储器段中所存储的值与擦除值进行比较来确定所述目标存储器段是否经编程。
举例来说,段完整性模块308可检查所述目标页的字节中所存储的值。如果所有所述值对应于擦除值(例如,十六进制FF),那么自从最后擦除以来所述页还未经编程,且段完整性模块308可允许所述目标存储器段被编程。然而,如果任何所述字节不对应于所述擦除值,那么部分编程可能已发生且可绕过所述页。
§4.0实例性过程流
图4是使用NAND快闪存储器来仿真OTP存储器的实例性过程400的流程图。举例来说,可在OTP仿真器112及/或OTP仿真***200中实施过程400。
级402识别可见存储器段。在某些实施方案中,所述可见存储器段(例如,图2B的页206-0)可对应于将要成功编程的最后页。举例来说,可通过识别设定安全性旗标(指示所述页已成功编程)且具有最高页地址的页来识别将要成功编程的最后页。在其它实施方案中,所述可见存储器段可以是默认存储器段(例如,无存储器段已成功编程)。所述可见存储器段可由NAND快闪存储器的页界定。举例来说,可通过可见段识别模块302来识别所述可见存储器段。
级404接收将第一数据写入到一次性可编程存储器位置的指令。举例来说,所述一次性可编程存储器位置可位于所述可见存储器段(例如,图2B的页206-0)中。举例来说,所述指令可由OTP仿真器112接收。
级406从第一存储器段中检索先前存储的数据。在某些实施方案中,所述第一存储器段可以是NAND快闪存储器的具有对应于所述可见存储器段(例如,图2B的页206-0)的地址的页。举例来说,可通过编程模块304来检索先前存储的数据。
级408将所述第一数据及所述先前存储的数据存储到目标存储器段。在某些实施方案中,所述目标存储器段是NAND快闪存储器的空白页(例如,图2C的页206-2)。举例来说,所述第一数据及先前存储的数据可由编程模块304存储到所述目标存储器段。
级410确定所述数据是否成功地存储在所述目标页中。如果所述数据成功地存储在所述目标页(例如,图2B的页206-2)中,那么所述过程可继续到级412。如果所述数据未成功地存储,那么所述过程可返回到级408。举例来说,所述确定可由编程模块304作出。
级412将安全性指示符存储在安全性存储器段中。在某些实施方案中,所述安全性存储器段(例如,图2D的页206-3)与所述目标存储器段(例如,图2D的页206-2)相关联且将所述目标存储器段识别为被锁定。举例来说,所述安全性指示符可以是具有所界定值的数据字节(例如,图2D的字节212-1)。举例来说,所述安全性指示符可由安全性模块306存储。
级414确定所述安全性指示符是否成功地存储。如果所述安全性指示符成功地存储(例如,存储在图2D的安全性位212-1中),那么过程400可继续到级416。如果所述安全性指示符未成功地存储,那么过程400可继续到级412。举例来说,所述确定可由安全性模块306作出。
级416将所述目标存储器段的地址存储为可见存储器段指针。在某些实施方案中,将所述目标存储器段(例如,图2D的页206-2)的地址存储为所述可见存储器段指针会将所述目标存储器段界定为所述可见存储器段。举例来说,所述目标存储器段地址可由安全性模块306存储为所述可见存储器段指针。
级418确定被存储为所述可见存储器段指针的所述地址是否对应于第一存储器块。如果所述可见存储器段指针对应于不位于所述第一存储器块中的页地址,那么过程400可继续到级420。举例来说,所述第一存储器块(例如,图2A的存储器块202)可对应于先前可见存储器段指针所位于的存储器块。如果所述可见存储器段指针对应于位于所述第一块(例如,与所述先前可见存储器段指针相同的存储器块)中的页地址,那么过程400可继续到级404。举例来说,所述确定可由编程模块304作出。
级420擦除所述第一存储器块。在某些实施方案中,所述擦除可将所述存储器块(例如,图2A的存储器块202)的每一页(例如,页206-0-206-6)重设为默认值(例如,十六进制值FF)。举例来说,所述擦除可由编程模块304执行。
尽管此文件包含许多具体的实施方案细节,但不应将这些细节视为对可主张的范围的限制,而应视为对特定实施例所特有特征的描述。在此说明书中在单独实施例的背景中说明的某些特征还可以组合形式实施在单个实施例中。相反,在单个实施例的背景中说明的各种特征也可分开地或以任何合适的子组合形式实施在多个实施例中。此外,尽管上文可能将特征描述为以某些组合形式起作用且甚至最初主张如此,但来自所主张组合的一个或一个以上特征在某些情况下可从所述组合中去除,且所述所主张组合可针对子组合或子组合的变化形式。
类似地,尽管在图式中以特定次序描绘过程步骤,但不应将此理解为需要以所示特定次序或按顺序次序执行此类过程步骤或执行所有所图解说明的过程步骤以实现期望的结果。
已说明本说明书中所说明的标的物的特定实施例。其它实施例均归属于以上权利要求书的范围内。举例来说,可以不同的次序执行权利要求书中所述的动作且仍实现期望的结果。作为一个实例,附图中所描绘的过程未必需要所显示的特定次序或顺序次序来实现期望的结果。

Claims (18)

1、一种方法,其包含:
接收将第一数据写入到可见存储器段中的一次性可编程存储器位置的指令,其中所述可见存储器段包含多个一次性可编程存储器位置;
从对应于所述可见存储器段的第一存储器段中检索先前存储的数据;
将所述第一数据及所述先前存储的数据存储到目标存储器段;及
在与所述目标存储器段相关联的安全性存储器段中存储将所述目标存储器段识别为被锁定的安全性指示符。
2、如权利要求1所述的方法,其进一步包含:
将所述目标存储器段的地址存储为可见存储器段指针;及
基于所述可见存储器段指针来擦除存储器块,其中所述存储器块包含多个存储器段。
3、如权利要求2所述的方法,其中基于所述可见段指针来擦除所述存储器块包含在所述可见存储器段指针识别对应于位于另一存储器块中的存储器段的地址时擦除所述存储器块。
4、如权利要求1所述的方法,其进一步包含识别对应于所述可见存储器段的存储器段。
5、如权利要求4所述的方法,其中识别对应于所述可见存储器段的所述存储器段包含识别与所述安全性指示符相关联的存储器段。
6、如权利要求5所述的方法,其进一步包含以与所述安全性指示符相关联的所述存储器段的地址来更新所述可见存储器段指针。
7、如权利要求6所述的方法,其中以与所述安全性指示符相关联的所述存储器段的所述地址来更新所述可见存储器段指针包含以与所述安全性指示符相关联的存储器段的最低地址来更新所述可见存储器段指针。
8、如权利要求1所述的方法,其中所述第一存储器段、所述目标存储器段及所述安全性存储器段包含NAND快闪存储器的若干经界定部分。
9、如权利要求1所述的方法,其进一步包含确定所述目标存储器段是否已被编程。
10、如权利要求9所述的方法,其中确定所述目标存储器段是否已被编程包含:
将与所述目标存储器段相关联的所述安全性存储器段的值与第一经界定值进行比较;及
将所述目标存储器段的值与第二经界定值进行比较。
11、一种一次性可编程仿真***,其包含:
可见段识别模块,其用以识别***装置可见的第一存储器段;
编程模块,其用以读取存储于所述可见存储器段中的数据且以额外数据更新从所述可见存储器段中读取的所述数据且将所述经更新的数据存储在目标存储器段中;及
安全性模块,其用以在对应于所述目标存储器段的安全性存储器段中设定将所述目标存储器段识别为被锁定存储器段的安全性旗标。
12、如权利要求11所述的***,其中所述编程模块可操作以在所述可见存储器段位于另一存储器块中时擦除存储器块。
13、如权利要求11所述的***,其中所述可见段识别模块可操作以:
在通电时识别所述第一存储器段;
将所述第一存储器段的地址存储在可见存储器段指针中;及
以所述目标存储器段的地址更新所述可见存储器段指针。
14、如权利要求11所述的***,其中所述可见段识别模块进一步可操作以识别与安全性指示符相关联的存储器段。
15、如权利要求11所述的***,其进一步包含用以确定所述目标段是否经编程的段完整性模块。
16、如权利要求15所述的***,其中所述段完整性模块可操作以将与所述目标存储器段相关联的所述安全性存储器段的值与第一经界定值进行比较。
17、如权利要求16所述的***,其中所述目标存储器段完整性模块可操作以将所述目标存储器段的值与第二经界定值进行比较。
18、一种一次性可编程仿真装置,其包含:
用于接收将第一数据写入到一次性可编程存储器位置的指令的构件;
用于从具有对应于可见存储器段的地址的第一存储器位置检索先前存储的数据的构件;
用于将所述第一数据及所述先前存储的数据存储到目标存储器段的构件;及
用于在与所述目标存储器段相关联的安全性存储器段中存储将所述目标存储器段识别为被锁定的安全性指示符的构件。
CN200910160889A 2008-08-05 2009-07-31 一次性可编程存储器仿真 Pending CN101645046A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/185,932 US8417902B2 (en) 2008-08-05 2008-08-05 One-time-programmable memory emulation
US12/185,932 2008-08-05

Publications (1)

Publication Number Publication Date
CN101645046A true CN101645046A (zh) 2010-02-10

Family

ID=41501531

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910160889A Pending CN101645046A (zh) 2008-08-05 2009-07-31 一次性可编程存储器仿真

Country Status (4)

Country Link
US (1) US8417902B2 (zh)
CN (1) CN101645046A (zh)
DE (1) DE102009033961A1 (zh)
TW (1) TW201013682A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107704195A (zh) * 2016-08-08 2018-02-16 慧荣科技股份有限公司 数据储存装置、存储器控制器及其数据管理方法
CN110457239A (zh) * 2019-07-31 2019-11-15 四川效率源信息安全技术股份有限公司 一种提取固态硬盘基本密钥的方法
CN111159071A (zh) * 2019-12-31 2020-05-15 江苏科大亨芯半导体技术有限公司 eFlash存储器实现OTP的装置、方法及OTP存储器
CN117457039A (zh) * 2023-12-15 2024-01-26 成都星辰数创科技有限公司 不可更改数据的闪存芯片、固态硬盘ssd及其控制方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4673390B2 (ja) * 2008-04-30 2011-04-20 キヤノン株式会社 画像読み取りシステム
TWI425513B (zh) * 2009-08-13 2014-02-01 Silicon Motion Inc 識別快閃記憶體中區塊之資料頁的方法以及相關之記憶裝置
JP5524767B2 (ja) * 2009-09-02 2014-06-18 株式会社半導体エネルギー研究所 半導体装置及びその駆動方法
JP2021044463A (ja) 2019-09-13 2021-03-18 キオクシア株式会社 半導体記憶装置
CN111859792B (zh) * 2020-07-08 2023-12-26 上海威固信息技术股份有限公司 一种闪存操作时延仿真方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050275426A1 (en) * 2004-05-27 2005-12-15 Shih-Pin Hsu Multiple-time programming apparatus and method using one-time programming element
CN101156448A (zh) * 2005-04-06 2008-04-02 美国博通公司 多媒体处理器中的安全条件访问和数字权限管理
US20080112566A1 (en) * 2006-11-14 2008-05-15 Fabrice Jogand-Coulomb Apparatuses for accessing content based on a session ticket
US20080148001A1 (en) * 2006-12-14 2008-06-19 Telefonaktiebolaget L M Ericsson (Publ) Virtual Secure On-Chip One Time Programming

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
FR2821191B1 (fr) * 2001-02-19 2003-04-04 Schneider Automation Station de programmation elaborant un programme en langage unique et equipement d'automatisme utilisant un tel programme
US6950918B1 (en) * 2002-01-18 2005-09-27 Lexar Media, Inc. File management of one-time-programmable nonvolatile memory devices
US6707696B1 (en) * 2003-05-15 2004-03-16 Broadcom Corporation Hacker-proof one time programmable memory
JP2005149715A (ja) * 2003-11-13 2005-06-09 Samsung Electronics Co Ltd Otpブロックが含まれたフラッシュメモリを有するメモリシステム
TWI262507B (en) * 2005-05-19 2006-09-21 Ememory Technology Inc Method for accessing memory
KR100773398B1 (ko) * 2005-12-14 2007-11-05 삼성전자주식회사 오티피 셀 어레이를 구비한 상 변화 메모리 장치
US8375189B2 (en) * 2005-12-30 2013-02-12 Intel Corporation Configuring levels of program/erase protection in flash devices

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050275426A1 (en) * 2004-05-27 2005-12-15 Shih-Pin Hsu Multiple-time programming apparatus and method using one-time programming element
CN101156448A (zh) * 2005-04-06 2008-04-02 美国博通公司 多媒体处理器中的安全条件访问和数字权限管理
US20080112566A1 (en) * 2006-11-14 2008-05-15 Fabrice Jogand-Coulomb Apparatuses for accessing content based on a session ticket
US20080148001A1 (en) * 2006-12-14 2008-06-19 Telefonaktiebolaget L M Ericsson (Publ) Virtual Secure On-Chip One Time Programming

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107704195A (zh) * 2016-08-08 2018-02-16 慧荣科技股份有限公司 数据储存装置、存储器控制器及其数据管理方法
CN110457239A (zh) * 2019-07-31 2019-11-15 四川效率源信息安全技术股份有限公司 一种提取固态硬盘基本密钥的方法
CN111159071A (zh) * 2019-12-31 2020-05-15 江苏科大亨芯半导体技术有限公司 eFlash存储器实现OTP的装置、方法及OTP存储器
CN111159071B (zh) * 2019-12-31 2023-08-08 江苏科大亨芯半导体技术有限公司 eFlash存储器实现OTP的装置、方法及OTP存储器
CN117457039A (zh) * 2023-12-15 2024-01-26 成都星辰数创科技有限公司 不可更改数据的闪存芯片、固态硬盘ssd及其控制方法

Also Published As

Publication number Publication date
US8417902B2 (en) 2013-04-09
DE102009033961A1 (de) 2010-02-11
US20100037000A1 (en) 2010-02-11
TW201013682A (en) 2010-04-01

Similar Documents

Publication Publication Date Title
CN101645046A (zh) 一次性可编程存储器仿真
EP2638466B1 (en) Software updating process for an embedded device
US7761653B2 (en) Flash micro-controller with shadow boot-loader SRAM for dual-device booting of micro-controller and host
FI112713B (fi) Suojattu muistikortti, johon on ohjelmoitu ohjattu ja suojattu pääsynvalvonta
EP2180408B1 (en) Method for writing and reading data in an electrically erasable and programmable nonvolatile memory
US9152562B2 (en) Storage sub-system for a computer comprising write-once memory devices and write-many memory devices and related method
US7725646B2 (en) Method of using a flash memory for a circular buffer
CN104285256A (zh) 非易失性存储器中不***擦除的多个写入操作
KR20040014971A (ko) 비휘발성 메모리의 제어방법
US9448926B2 (en) Bidirectional counter in a flash memory
US20070011416A1 (en) Data storage device and medium and related method of storing backup data
US6948041B2 (en) Permanent memory block protection in a flash memory device
CN104679547A (zh) 一种mcu中的***配置信息的读取方法和***
JP3771904B2 (ja) 補助レジスタバンクを有するマイクロプロセッサ回路
EP3057100B1 (en) Memory device and operating method of same
CN107402717B (zh) 闪速存储器存储管理
CN101661796A (zh) 一种非易失性存储器及其数据保护方法
JP3923546B2 (ja) Icカード
US10181356B2 (en) Flash memory counter
CN107402887B (zh) 闪速存储器中的计数器
JPH08129628A (ja) Cpuを内蔵した情報記録媒体
JPH0435780B2 (zh)
KR20120017790A (ko) 운영체제의 재쓰기 가능한 메모리 영역을 갖는 스마트카드 및 그 운용방법
US20170185334A1 (en) Storage in flash memory
CN109344089B (zh) 一种操作norflash的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
ASS Succession or assignment of patent right

Owner name: ATMEL ROUSSEAU CO., LTD.

Free format text: FORMER OWNER: ATMEL CO., LTD.

Effective date: 20100617

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: CALIFORNIA, USA TO: ROUSSE, FRANCE

TA01 Transfer of patent application right

Effective date of registration: 20100617

Address after: French ruse

Applicant after: Atmel Rousset S. A. S.

Address before: American California

Applicant before: Atmel Corp.

C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20100210