CN116893780A - 配置成减轻读取和写入操作错误的非易失性存储器系统 - Google Patents
配置成减轻读取和写入操作错误的非易失性存储器系统 Download PDFInfo
- Publication number
- CN116893780A CN116893780A CN202310343389.9A CN202310343389A CN116893780A CN 116893780 A CN116893780 A CN 116893780A CN 202310343389 A CN202310343389 A CN 202310343389A CN 116893780 A CN116893780 A CN 116893780A
- Authority
- CN
- China
- Prior art keywords
- memory
- value
- memory cell
- flag
- bit
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 122
- 230000006399 behavior Effects 0.000 claims description 14
- 230000003121 nonmonotonic effect Effects 0.000 claims description 12
- 230000008569 process Effects 0.000 description 67
- 230000007704 transition Effects 0.000 description 20
- 239000003550 marker Substances 0.000 description 15
- 238000010586 diagram Methods 0.000 description 13
- 230000008901 benefit Effects 0.000 description 12
- 230000009471 action Effects 0.000 description 7
- 230000009028 cell transition Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 7
- 238000007667 floating Methods 0.000 description 7
- 230000002787 reinforcement Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 230000003247 decreasing effect Effects 0.000 description 4
- 230000001747 exhibiting effect Effects 0.000 description 4
- 238000005728 strengthening Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000010845 search algorithm Methods 0.000 description 3
- 230000026676 system process Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000008672 reprogramming Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 230000000191 radiation effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000003313 weakening effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/24—Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0059—Security or protection circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/22—Safety or protection circuits preventing unauthorised or accidental access to memory cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
提供一种用于存储器系统的系统和方法。存储器装置包括非易失性存储器单元阵列。存储器控制器连接到所述非易失性存储器单元阵列。所述存储器控制器被配置成执行以下步骤:接收读取存储器标记的值的请求,其中所述存储器标记包括存储于所述非易失性存储器单元阵列的第一存储器单元和第二存储器单元中的2位值;读取所述第一存储器单元的第一值;读取所述第二存储器单元的第二值;以及基于所述第一值和所述第二值确定所述存储器标记的所述值。在实施例中,所述存储器标记可超过2位。
Description
技术领域
本文中所描述的主题的实施例大体上涉及电子存储器系统,更具体地说,涉及被配置成实施系统级原子标记以减轻因撕裂事件(tearing event)所致的读取和写入错误风险的存储器系统。
背景技术
许多装置使用非易失性存储器存储稍后会更新或改变的信息。例如,智能卡系统将非易失性存储器用在小的嵌入式集成电路中(例如,嵌入口袋大小的卡中)来存储定期更新的信息。此布置允许通过智能卡实施例如支付、数据存储或认证功能等高级功能。通常,为了更新存储于此类装置上的非易失性存储器中的信息,装置使用接触式或非接触式通信技术与数据源通信。在一些情况下(例如,当处理交易或状态改变时),可通过智能卡与数据源之间交换相对小量的数据来更新信息。此类数据交换可快速并在较短时间量内发生。在其它情形下,例如软件或操作系统更新,较大量的数据可能由数据源传送到智能卡。取决于智能卡的数据接收能力和数据源的数据传输能力,此类数据传送可能需要相对较长的时间段(例如,若干秒或分钟)来完成数据传送。如果在任何数据传送期间,智能卡或数据源处发生断电,则数据传送可能受损,从而导致不当的智能卡操作。
发明内容
根据本发明的第一方面,提供一种系统,包括:
存储器装置,其包括非易失性存储器单元阵列,所述存储器装置存储第一数据集;和
处理器,其被配置成执行以下步骤:
检测使所述处理器执行存储器更新操作的触发事件,以及
通过执行包括以下各项的步骤来执行所述存储器更新操作:
创建所述第一数据集的备份副本,
将所述备份副本存储于所述存储器装置中,以及
在将所述备份副本存储于所述存储器装置中之后,使存储器控制器置位存储于所述存储器装置中的存储器更新标记,其中所述存储器更新标记包括存储于所述非易失性存储器单元阵列的第一存储器单元和第二存储器单元中的2位值,其中:
所述存储器控制器连接到所述非易失性存储器单元阵列并且连接到所述处理器,所述存储器控制器被配置成执行以下步骤:
从所述处理器接收置位所述存储器更新标记的第一指令,以及
通过执行包括以下各项的步骤来置位所述存储器更新标记:
将所述第一存储器单元编程到超过所述第一存储器单元的第一阈值电压的第一电压值,以及
在将所述第一存储器单元编程到所述第一电压值之后,将所述第二存储器单元编程到小于所述第二存储器单元的第二阈值电压的第二电压值。
在一个或多个实施例中,所述处理器被配置成执行以下步骤:
在将所述备份副本存储于所述存储器装置中之后,修改存储于所述存储器装置中的所述第一数据集;以及
在修改存储于所述存储器装置中的所述第一数据集之后,使所述存储器控制器清零存储于所述存储器装置中的所述存储器更新标记。
在一个或多个实施例中,所述存储器控制器被配置成执行以下步骤:
从所述处理器接收清零所述存储器更新标记的第二指令,以及
通过执行包括以下各项的步骤来清零所述存储器更新标记:
将所述第二存储器单元编程到超过所述第二存储器单元的所述第二阈值电压的第三电压值,以及
在将所述第二存储器单元编程到所述第三电压值之后,将所述第一存储器单元编程到小于所述第一存储器单元的所述第一阈值电压的第四电压值。
在一个或多个实施例中,所述第一存储器单元和所述第二存储器单元呈现非单调编程行为。
在一个或多个实施例中,所述第一存储器单元和所述第二存储器单元是电阻式随机存取存储器单元。
根据本发明的第二方面,提供一种系统,包括:
存储器装置,其包括非易失性存储器单元阵列;以及
存储器控制器,其连接到所述非易失性存储器单元阵列,所述存储器控制器被配置成执行以下步骤:
接收读取存储器标记的值的请求,其中所述存储器标记包括存储于所述非易失性存储器单元阵列的第一存储器单元和第二存储器单元中的2位值,
读取所述第一存储器单元的第一值,
读取所述第二存储器单元的第二值,以及
基于所述第一值和所述第二值确定所述存储器标记的所述值。
在一个或多个实施例中,所述存储器控制器被配置成执行以下步骤:
确定由所述第一存储器单元存储的所述第一值指示所述第一存储器单元处于置位条件;
确定由所述第二存储器单元存储的所述第二值指示所述第二存储器单元处于所述置位条件;以及
确定所述存储器标记处于未知状态。
在一个或多个实施例中,所述存储器控制器被配置成执行以下步骤:
确定所述第二存储器单元处于比所述第一存储器单元弱的置位状态;以及
清零所述第二存储器单元。
在一个或多个实施例中,所述存储器控制器被配置成通过对所述第一存储器单元和所述第二存储器单元执行容限读取操作而确定所述第二存储器单元处于比所述第一存储器单元弱的置位状态。
在一个或多个实施例中,所述存储器控制器被配置成通过执行包括以下各项的步骤来对所述第一存储器单元和所述第二存储器单元执行所述容限读取操作:
将容限读取信号施加于所述第一存储器单元,其中所述容限读取信号包括电压和电流中的至少一者;
读取所述第一存储器单元的第三值;
确定所述第三值指示所述第一存储器单元处于所述置位条件;
将所述容限读取信号施加于所述第二存储器单元;
读取所述第二存储器单元的第四值;以及
确定所述第四值指示所述第二存储器单元处于清零条件。
在一个或多个实施例中,所述存储器控制器被配置成通过执行包括以下各项的步骤来对所述第一存储器单元和所述第二存储器单元执行所述容限读取操作:
将第一容限读取信号施加于所述第一存储器单元;
读取所述第一存储器单元的第五值;
确定所述第五值指示所述第一存储器单元处于清零条件;
将所述第一容限读取信号施加于所述第二存储器单元;
读取所述第二存储器单元的第六值;
确定所述第六值指示所述第二存储器单元处于所述清零条件;以及
将第二容限读取信号施加于所述第一存储器单元,其中所述第二容限读取信号不同于所述第一容限读取信号;
读取所述第一存储器单元的第七值;
确定所述第七值指示所述第一存储器单元处于置位条件;
将所述第二容限读取信号施加于所述第二存储器单元;
读取所述第二存储器单元的第八值;以及
确定所述第八值指示所述第二存储器单元处于所述清零条件。
在一个或多个实施例中,所述存储器控制器被配置成执行以下步骤:
确定所述第一存储器单元的所述第一值指示所述第一存储器单元处于清零条件;
确定所述第二存储器单元的所述第二值指示所述第二存储器单元处于置位条件;以及
确定所述存储器标记处于所述清零条件。
在一个或多个实施例中,所述存储器标记包括存储于所述非易失性存储器单元阵列的所述第一存储器单元、所述第二存储器单元和第三存储器单元中的3位值,并且所述存储器控制器被配置成执行以下步骤:
读取所述第三存储器单元的第三值;
确定所述第一存储器单元的所述第一值指示所述第一存储器单元处于置位条件;
确定所述第二存储器单元的所述第二值指示所述第二存储器单元处于清零条件;
确定所述第三存储器单元的所述第三值指示所述第三存储器单元处于所述置位条件;以及
确定所述存储器标记处于所述清零条件。
在一个或多个实施例中,所述存储器控制器被配置成执行以下步骤:
接收将所述存储器标记编程到第一条件的第一指令;以及
通过执行以下步骤来将所述存储器标记编程到所述第一条件:
将所述第一存储器单元编程到大于所述第一存储器单元的第一阈值的第三值,以及
在将所述第一存储器单元编程到所述第三值之后,将所述第二存储器单元编程到小于所述第二存储器单元的第二阈值的第四值。
在一个或多个实施例中,所述存储器控制器被配置成执行以下步骤:
接收将所述存储器标记编程到第二条件的第二指令,其中所述第一条件与所述第二条件相反;以及
通过执行以下步骤来将所述存储器标记编程到所述第二条件:
将所述第二存储器单元编程到大于所述第二存储器单元的所述第二阈值的第五值,以及
在将所述第二存储器单元编程到所述第五值之后,将所述第一存储器单元编程到小于所述第一存储器单元的所述第一阈值的第六值。
在一个或多个实施例中,所述第一存储器单元和所述第二存储器单元呈现非单调编程行为。
在一个或多个实施例中,所述第一存储器单元和所述第二存储器单元是电阻式随机存取存储器单元。
根据本发明的第三方面,提供一种方法,包括:
接收读取存储器标记的值的请求,其中所述存储器标记包括存储于非易失性存储器单元阵列的第一存储器单元和第二存储器单元中的2位值;
读取所述第一存储器单元的第一值;
读取所述第二存储器单元的第二值;以及
基于所述第一值和所述第二值确定所述存储器标记的所述值。
在一个或多个实施例中,所述方法另外包括:
确定由所述第一存储器单元存储的所述第一值指示所述第一存储器单元处于第一条件;
确定由所述第二存储器单元存储的所述第二值指示所述第二存储器单元处于所述第一条件;以及
确定所述存储器标记处于未知状态。
在一个或多个实施例中,所述方法另外包括:
标识所述第一存储器单元和所述第二存储器单元中的较弱置位存储器单元;以及
清零所述较弱置位存储器单元。
本发明的这些和其它方面将根据下文中所描述的实施例显而易见,且参考这些实施例予以阐明。
附图说明
通过参考结合以下图式考虑的具体实施方式和权利要求书可得到对主题的更完整理解,图中类似附图标记在各图中指代类似元件。
图1是描绘非接触式智能卡的功能组件的框图。
图2是描绘包括存储器系统的电子装置的功能组件的框图,其中存储器系统可并入到图1的非接触式智能卡中。
图3是描绘可形成图2的存储器阵列的部分的NAND存储器阵列的一部分的电路图。
图4是描绘存储器单元的示例模拟值的图表。
图5是示出根据本公开的原子标记的功能组件的框图。
图6是示出由存储器控制器实施以置位原子标记的算法中的步骤的序列图。
图7是示出由存储器控制器实施以清零原子标记的算法中的步骤的序列图。
图8是描绘用于标识原子标记中的两个位的较弱者的方法的流程图。
图9是描绘在图8的方法的示例实施方案中的不同步骤的图表。
图10是其中每一行描绘了在标记从清零状态编程到置位状态时3位原子标记的各个位的值的图表。
图11是其中每一行描绘了在标记从置位状态编程到清零状态时3位原子标记的各个位的值的图表。
图12是显示在给定三个位中的每一位的特定值的情况下将如何读取3位原子标记的概要的图表。
具体实施方式
应容易理解,本文中总体描述且在附图中示出的实施例可按广泛多种不同配置来布置和设计。因此,以下如图中所表示的各种实施例的更详细描述并非意图限制本公开的范围,而是仅表示各种实施例。虽然在图中呈现了实施例的各个方面,但除非特别地指示,否则各图未必按比例绘制。
在不脱离本发明精神或基本特性的情况下,可按其它特定形式体现本发明。所描述的实施例在所有方面都应被视为仅是说明性的而非限制性的。因此,本发明的范围由所附权利要求指示,而非由此具体实施方式指示。存在于权利要求的等同含义和范围内的所有变化都将包含在所述权利要求的范围内。
贯穿本说明书提及特征、优点或类似语言并不暗示可通过本发明实现的所有特征和优点应在或已存在于本发明的任何单个实施例中。实际上,提及所述特征和优点的语言应理解成意指结合实施例描述的具体特征、优点或特性包括在本发明的至少一个实施例中。因此,贯穿本说明书对特征和优点的论述以及类似语言可以是但未必是指代同一实施例。
此外,本发明的所描述特征、优点和特性可在一个或多个实施例中以任何合适方式组合。相关领域的技术人员应认识到,鉴于本文的描述,本发明可在没有特定实施例的一个或多个具体特征或优点的情况下实践。在其它情况下,可认可某些实施例中可能不存在于本发明的所有实施例中的额外特征和优点。
贯穿本说明书提及“一个实施例”、“实施例”或类似语言意指结合所指示实施例而描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,贯穿本说明书的短语“在一个实施例中”、“在实施例中”和类似语言可以但未必都指代同一实施例。
为简单起见,贯穿本说明书描述的本发明的所描述特征、优点和特性可被描述为实施于智能卡或其它一件类似的电子设备内,但可替代地实施于利用非易失性存储器来存储和更新信息的其它装置中。
在典型实施例中,本发明的各方面可在包括处理器或微控制器和存储器装置(例如,智能卡装置)的装置内实施。图1是非接触式智能卡100的框图。智能卡包括CPU 102以及可包括只读存储器(ROM)104的存储器子系统。通常,CPU 102可从ROM 104读取,但不能够写入或以其它方式修改存储于ROM 104中的数据。ROM 104可存储包括基本输入-输出系统(BIOS)的软件,从而使得非接触式智能卡100的硬件组件能够操作。非接触式智能卡100的存储器系统包括随机存取存储器(RAM)106。CPU 102被配置成将数据存储到RAM 106中、修改其中的数据以及从中检索数据。RAM 106可以是易失性存储器系统,其中当非接触式智能卡100断电时,存储于RAM 106中的数据可能丢失。
非接触式智能卡100的存储器系统另外包括电可擦除可编程只读存储器(EEPROM)/快闪存储器108。CPU 102被配置成从EEPROM/快闪存储器108读取数据以及将数据写入到EEPROM/快闪存储器108中。EEPROM/快闪存储器108是无电压存储器系统,使得当非接触式智能卡100电源重启(power cycled)时,写入到EEPROM/快闪存储器108中的数据被保持。
在各种实施例中,非接触式智能卡100包括用以辅助检测从任何存储器子系统中检索到的数据中的错误的循环冗余校验器(CRC)110、用以加密或解密数据的密码协处理器112、与用于数据传输和接收的RF接口118介接的通用异步接收器/发送器(UART)116、RF天线130以及调节供应到非接触式智能卡100的组件的电力的电压调节器124。在其它实施例中,示为非接触式智能卡100的智能卡装置可由例如智能手机等计算装置模拟,或可嵌入于较大装置(例如,手机或较大电子装置)中。
存储器系统可由存储器单元阵列实施,其中每个存储器单元被配置成存储值。存储器单元可按任何合适的方式实施,但可通常配置为一个或多个逻辑门,所述一个或多个逻辑门被配置成“NAND”或“NOR”布局。在存储器系统内,每个存储器单元包括数个端,所述端使存储器单元能够被编程到期望值或条件或被读取。通常,所述端包括用于每个存储器单元的栅极端。栅极端通常按行耦合到字选择线,并且存储器单元的漏极端耦合到列位线。通过将电荷置于存储器单元的浮动栅极上或从所述浮动栅极移除电荷以使所述单元处于对应于存储器单元的不同电荷状态的数个存储状态中的一者来将存储器单元编程到期望状态。例如,单个存储器单元可表示两个二进制状态,例如1或0,其中这些值与存储器单元不同的存储电荷相关联。如果存储电荷高于阈值,则存储器单元被编程到第一值或条件,而如果存储电荷低于阈值,则将存储器单元被编程到第二值或条件。
可通过将适当读取电压施加于单元的控制栅极端和漏极并将可指示单元的电压阈值(Vt)的漏极到源极电流与例如“跳变点”的参考电流相比较以确定存储器单元的状态来实现对此类存储器单元的读取。在示例数据读取操作中,可将0伏施加于选定字线,例如,施加于选定字线中的存储器单元或多个存储器单元的控制端。约5伏的读取导通电压(readpass voltage)可施加于未选字线,例如施加于未选字线中的存储器单元的控制栅极端。然后,流过选定字线上的单元的“单元电流”或“漏极电流”等漏极到源极电流指示单元的二进制逻辑状态或由单元存储的值。
由此,当特定存储器单元的单元电流高于跳变点时,存储器单元被读取为具有与第一值相关联的第一状态。当特定存储器单元的单元电流低于跳变点时,存储器单元被读取为具有不同状态或值。
为示出此类存储器的操作,图2是根据本公开的实施例的具有存储器装置204(例如,图1的非接触式智能卡100的存储器系统)的电子系统200的框图。在系统200中,存储器装置204通过地址/数据总线206耦合到处理器202。
存储器阵列208含有布置在一系列存储器块216、218中的浮动栅极存储器单元。块216、218含有一系列物理页/行(示为“行0”、“行1”等),每一页含有一个或多个逻辑扇区(此处出于图解说明的目的示为每物理页/行单个逻辑扇区),所述逻辑扇区含有用户数据空间扇区220和控制/开销数据空间222(示为“开销”)。开销数据空间222含有用于扇区220的操作的开销信息,例如,错误校正码(ECC)、状态标记或擦除块管理数据字段区(未示)。
图3是示出可形成图2的存储器阵列208的部分的NAND存储器阵列300的一部分的示意图。如图3中所示,存储器阵列300包括字线305-1、...、305-N和相交的位线307-1、...、307-M。
存储器阵列300包括NAND串309-1、...、309-M。每个NAND串包括非易失性存储器单元311-1、...、311-N,每个非易失性存储器单元位于字线305-1、...、305-N与局部位线307-1、...、307-M的相交处。每个NAND串309-1、...、309-M的非易失性存储器单元311-1、...、311-N源极到漏极串联连接在源极选择门(例如场效应晶体管(FET)313)与漏极选择门(例如FET 319)之间。源极选择门313位于局部位线307-1与源极选择线317的相交处,而漏极选择门319位于局部位线307-1与漏极选择线315的相交处。
如在图3中示出的实施例中所示,源极选择门313的源极连接到共同源极线323。源极选择门313的漏极连接到对应NAND串309-1的存储器单元311-1的源极。漏极选择门319的漏极在漏极触点321-1处连接到对应NAND串309-1的局部位线307-1。漏极选择门319的源极连接到对应NAND串309-1的最末存储器单元311-N(例如,浮动栅极晶体管)的漏极。
在各种实施例中,非易失性存储器单元311-1、...、311-N的构造包括源极、漏极、浮动栅极或电荷存储层以及控制栅极。非易失性存储器单元311-1、...、311-N的控制栅极分别耦合到字线305-1、...、305-N。一列非易失性存储器单元311-1、...、311-N构成分别耦合到给定局部位线(例如,307-1、...、307-M)的NAND串(例如,309-1、...、309-M)。一行非易失性存储器单元共同耦合到给定字线,例如305-1、...、305-N。将类似地布置AND阵列架构,不同之处在于存储器单元串将并联耦合在选择门之间。
在读取操作期间,将0伏的字线电压(WVL)施加于待读取的存储器单元(例如,将确定其当前状态的单元)的字线。在此示例中,0伏的VWL可施加于NAND串中的字线305-1以读取存储器单元311-1。
为了确定存储器单元(例如,单元311-1)的当前状态,将读取电压(Vread)施加于NAND串中的其它单元(例如,邻近于正被读取的存储器单元的单元)的字线或读取线以接通那些单元。出于此原因,Vread可被称为读取导通电压。被读取的存储器单元的字线被称为选定字线,而邻近字线被称为未选字线。
在这些条件下,可确定指示存储器单元311-1的二进制状态的电压阈值(Vt)和/或漏极电流(单元电流),例如漏极电流是高于还是低于跳变点。通常,如果用于单元的所存储栅极电压超过预定阈值,则存储器单元311-1将导电。如果用于单元的所存储栅极电压低于所述预定阈值,则所述单元将不导电,并且将被指派‘0’的值或被指定为清零。在一些情况下,有可能将偏置电压施加于栅极端以确定存储器单元311-1在较高或较低栅极电压下是否导电。这些技术可被称为执行容限读取,并且可用于确定存储器单元311-1被编程到特定值的强度(例如,存储器单元的栅极电压离阈值电压有多远)。在图3中所示的实施例中,将Vread施加于字线305-2、...、305-N,以便读取字线305-1上的单元311-1。在本公开的各种实施例中,可使用其它读取电压。实施例不限于此示例。
在典型存储器系统中,实施非易失性存储器子系统(例如,非接触式智能卡100的EEPROM/快闪存储器108)以减轻在存储器子系统的一个或多个存储器单元被写入或以其它方式更新时中断的风险。中断可包括未预见到的断电,例如归因于系统的电源断连或定位得过于远离非接触式智能卡100,或其它装置故障。
如果当存储器单元被写入或编程时发生此类中断,则一旦重新接通,系统无法确定该编程操作是否成功完成并且因此无法确定存储于该存储器单元中的值是否准确。此类事件可被称为掉电(brown-out)或撕裂事件,并且可导致装置的存储器子系统的大部分含有不可信的数据或值。这些撕裂事件可造成问题,并且可在依赖于通过装置与RF场(例如,智能卡或RFID标签)的接近而供应的电力的电子装置中发生。假如持有智能卡或RFID标签的用户在数据写入操作期间意外地使智能卡或RFID标签移动远离电源,则存储在智能卡或RFID标签中的数据可能受损。
用于减轻撕裂事件的一些技术依赖于呈现单调编程行为的装置的存储器子系统,其中数据写入过程一直仅涉及恒定地增加的存储器单元电荷(例如,在将‘1’值写入到存储器单元的情况下)或恒定地减少的存储器单元电荷(例如,在将‘0’值写入到存储器单元的情况下)。然而,当结合呈现非单调行为的存储器系统利用时,这些技术并不那么有效。例如,这些技术可能无法很好地与例如相变或电阻RAM等具有更随机或非单调编程行为的一些新兴的非易失性存储器系统一起工作。可能难以预测这些系统响应于撕裂事件的行为。
因此,本公开提供一种检测和解析撕裂条件而不受限于呈现单调编程行为的存储器系统的方法。
在电子装置(例如,图1的非接触式智能卡100)内,装置可通过执行软件应用程序来执行自动化例程,例如存储器更新,所述自动化例程有时可涉及相对大量的数据的传送和处理(例如,固件更新)。当执行存储器更新时,例如,需要足够的存储器来创建并存储正在更新的数据的两个版本——原始数据集的备份副本和将覆写原始数据集的新数据集的副本。因此,这些存储器更新可能需要多个存储器读取/写入操作:创建原始数据的备份副本,存储相关元信息,用新数据更新目标存储器位置,以及删除或以其它方式使旧的或备份信息失效。这些更新随着时间推移依序发生,由此,对存储器的这些个别更新中的任一者可被撕裂事件中断。
因此,当正在经历存储器更新的系统在撕裂事件之后重新通电时,系统应能够检测到所述撕裂事件在存储器更新过程期间发生的时间点。这允许系统更好地确定中断的存储器更新过程的结果并且接着采取适当动作。例如,系统应能够区分撕裂事件是在备份创建期间还是在备份创建完成之后且在存储器自身更新期间发生。如果在备份创建过程期间发生撕裂事件,则系统可确定旧的原始存储器内容未损坏,但备份文件有可能不完整或受损。在这种情况下,可重新执行整个存储器更新操作。然而,如果系统确定在存储器更新过程期间发生撕裂事件,则系统可确定主存储器位置可含有不完整或受损数据,并且应恢复备份以确保完全一致的系统。
系统可通过在存储器中建立存储器更新标记来确定撕裂事件发生在存储器更新过程的哪一阶段,其中在备份文件已完成之后置位标记(例如,置位为值‘1’)。当完成存储器更新时,可接着清零标记(例如,置位为值‘0’)。通过清零标记,备份文件可被确定为不必要的并且可被擦除,且存储备份数据的存储器位置可接着用于未来存储器操作。
此存储器更新过程假定标记驻存在非易失性存储器中,并且标记自身存储有效且甚至在系统断电之后可依赖的值。因此,更新标记的过程(例如,在已创建备份文件之后)可能仍然存在自身可能遭受撕裂事件的一些风险。以下示例示出中断更新或编程存储器更新标记的过程的撕裂事件可如何导致系统错误。
在第一示例中,可正确地完成整个存储器更新。在完成存储器更新之后,系统可尝试清零存储器更新标记,以指示更新完成以及可删除或覆写用于存储备份副本的存储器。如果中断或撕裂清零存储器更新标记的过程(意味着标记值变得不可预测),则当系统重启时,系统可确定存储器更新标记仍被置位,从而指示存储器更新过程尚未完成且实际上已失败。这将使得备份副本被恢复,使得可重新开始存储器更新过程。接着,如果当系统重启第二次并且重新读取存储器更新标记时在恢复备份数据的中间过程中发生后续撕裂事件,如果标记呈现为清零,则这可指示不存在进行中的存储器更新过程且系统正常运行。系统可进行此确定,即使现在存在存储于系统存储器中的部分恢复的备份数据与新更新的信息的组合也如此。这种旧的和新的信息的混合可导致系统故障或次优系统性能。
在另一示例中,系统可成功地创建备份数据副本作为存储器更新过程的部分。系统随后可尝试置位存储器更新标记以指示已创建备份副本并且可继续存储器更新过程。如果在编程标记时发生撕裂事件,则在重启后,如果标记呈现为清零,则备份副本将被解译为无效。这将导致从一开始重启存储器更新过程。在开始新存储器更新后,备份过程可能再次中断。如果在重启后,系统现在可确定存储器更新标记被置位,则系统将得出以下结论:即使在此时备份副本仅部分完成,也需要恢复备份副本。如果系统尝试恢复备份副本,则系统主存储器可能被覆写且因不完整数据而受损。
因此,优选的是,任何此类存储器更新标记被实施为“原子”标记,其中标记以可靠方式置位而不存在产生不定的伪随机标记值的撕裂事件风险。由于无法避免潜在撕裂的物理影响,因此实施方案必须能够检测和解析最终撕裂事件。因此,在系统级(例如,当从系统处理器的角度来看时),包括本文所描述的检测和解析方法的标记的提议实施方案被视为是原子的。因此,即使如本文中所描述,存储器控制器可执行数个不同的和顺序的操作以置位或清零标记,本发明标记实施方案也被视为原子的。
由此,在本发明标记实施方案中,可在伪随机工作区(manor)中读取为逻辑1或0的弱清零或置位标记必须可靠地检测为弱置位(即,具有接近存储器单元的阈值的置位值)并且随后应能够被准确地加强(即,通过增加或减小存储器单元的值以远离单元的阈值)。类似地,在加强过程期间,强清零或置位标记不应被更改到其相反值。
因此,如本文所描述,本公开提供一种系统,所述系统被配置成执行可结合存储器更新过程(或需要标记值的任何其它系统过程)利用的稳健存储器标记,其中即使当在更新存储器更新标记的值时发生撕裂事件,所述标记也允许恢复存储器更新过程。如本文所描述,所述过程并不需要全面知晓存储器更新标记的值。替代地,使用替代检测或标记读取过程,其中能可靠地读取标记的值。
在一些存储器系统中,当存储器单元已被弱编程或清零到特定值或条件(例如,电压、电流或电阻值)时,存储器单元可具有接近于划定所述单元的置位或清零状态的阈值的值。在那些情况下,存储器系统可通过重新编程单元来“加强”该存储器单元。此动作尝试加强存储器单元的值(在正方向或负方向上),使得存储器单元不再接近阈值并处于误读风险下。
在包括呈现单调行为的存储器单元的存储器系统中,此加强过程可通常涉及仅在远离阈值的期望方向上而非沿着朝向阈值的相反方向移动单元的值。这是存储器单元的提供良好受控电流方向的编程机制的结果。因此,加强操作将往往不会使强置位或清零标记变弱(即,具有更接近单元的阈值的值),但此类加强可能会导致通常应避免的应力或干扰。
然而,在一些情况下,存储器系统可包括呈现非单调编程操作的存储器单元。此类单元可包括利用每个存储器单元内所含有的细丝的特定电阻的电阻RAM。对此类单元进行编程需要改变细丝的电阻以作为单元的值的指示。但细丝电阻变化通常得不到很好的控制,并且因此,当朝向特定状态编程单元时,单元的值可能临时朝向相反状态波动。由此,当加强此类非单调存储器单元时,可使用特定算法,所述特定算法执行对存储器单元的电阻是否足够低或足够高以可靠地指示存储器单元被清零或已置位(例如,存储器单元表示逻辑0或1)的初始确定。如果是,则算法反复地编程存储器单元直到实现所需最小或最大电阻为止。如果此类算法归因于撕裂事件而无法完成,则可假设位单元的逻辑值是未知的。因此,试图加强已被强置位或清零的存储器单元的值可能在已开始但未完成加强算法的情况下导致所述单元具有较弱状态。
涉及存储器单元的读取的另一问题可为存储器单元读取操作的准确性。因为此过程通常需要转换模拟值(例如,在存储器单元的浮动栅极上测得的电荷或电压与阈值之间的差、通过存储器单元的测得电流与阈值电流值之间的差,或存储器单元的组件的电阻与阈值电阻值之间的差),所以原始模拟存储器单元测量读取操作中可发生错误。如果测得的模拟值接近划定存储器单元被指定为清零或置位的阈值,则存在在模拟读取操作期间所得模拟错误可导致存储器单元被不当读取的风险。
为示出这些复杂性,图4是示出示例模拟信号值或存储器单元的值(例如,栅极电压、漏极电流、电阻)和那些信号值如何与所述单元的信号值阈值相比较的图表。具体地说,图4描绘若干示例A-I。对于每个示例,水平轴线表示存储器单元的模拟值(例如,栅极电压、漏极电流或电阻),而竖直线402表示存储器单元的阈值。如果每个示例A-I中由黑圆表示的单元的模拟值小于阈值402,则将所述单元读取为被清零(例如,具有值‘0’)。如果模拟值大于阈值402,则将所述单元读取为被置位(例如,具有值‘1’)。
如上文所描述,模拟测量方案通常具有一定程度的不确定性。为反映这一点,沿着阈值402延伸的虚线402’指示阈值402周围表示不确定性边界的值的范围。因此,如果单元具有落在阈值402周围的虚线402’之间的值,则取决于读取单元值时的条件(例如,环境温度、系统供应电压的变化、环境辐射效应和/或随机噪声),单元值可落在阈值402的任一侧上。
为了提供更可靠的读取值,可针对存储器单元限定额外容限值404、406,其中容限值404、406置位成远离阈值402一定量,该量大于每个值周围的误差条(虚线)。容限值404、406各自与其自身的不确定性边界相关联,所述不确定性边界分别由虚线404’和406’指定。
如果存储器单元的值例如低于容限404(例如,在容限404左侧),则系统可以高置信度确定存储器单元被清零并且可将该存储器单元指定为值0。相反,如果存储器单元的值例如高于容限406(在容限406右侧),则系统可以高置信度确定存储器单元被置位并且可将该存储器单元指定为值1。
为了将存储器单元的值与容限404或406相比较,系统被配置成对存储器单元执行读取操作以将存储器单元的值与容限404、406值中的一者相比较。此过程被称作对特定存储器单元的值执行容限检查。
以与阈值402类似的方式,在读取存储器单元的值时在容限404、406中的任一者处存在不确定性,因此图4描绘了在容限404和406值中的每一者周围与针对阈值402所示的类似的虚线。如上文所描述,虚线404’、406’表示每个此类容限404、406值周围的误差或不确定性容限。
由于在将值写入到存储器单元时可能发生的撕裂,存储器单元的值可能落在容限404、406之间。此情形在图4中描绘的示例情况C和D中示出。在任一示例中,存储器单元被弱编程,因为两个单元值都处于容限404、406之间。具体地说,示例C未通过容限406检查,因为在执行该容限检查时读取到逻辑值0。类似地,示例D未通过容限404检查,因为在执行该容限检查时读取到逻辑值1。
通常,存储器系统可使用容限检查来标识弱编程的存储器单元,并且基于此类标识,存储器单元可发起对存储器单元值的加强。但在这些方法中,在具有处于容限404和406的不确定性间隔(例如,图4中虚线)内的值的存储器单元中可能会出现问题。例如,可在正常存储器单元读取模式中(例如,通过与阈值402的比较)可靠地读取情况E和F,因此可将具有那些值的存储器单元视为稳定的且被强清零或置位。另外,两个示例情况有可能通过容限检查。然而,由于示例E和F中所描绘的两个值都处于容限404(示例F)和容限406(示例E)周围的不确定性边界内,因此测得值将有一定机率无法通过容限检查中的一者。由此,相对强编程且应被视为稳定位的存储器单元可能被解译为弱编程的。未通过此类检查将通常引起存储器单元加强。
相比之下,示例G和H表示在正常读取中(例如,在与阈值402的比较中)弱编程且不可靠的存储器单元值,因为所述值处于阈值402周围的不确定性边界内。因此,示例G和H将确实无法通过容限检查,因为所述值并不低于容限404(在左侧)或高于容限406(在右侧)。因为示例G和H落在阈值402周围的不确定性边界内,所以取决于读取的实际值,应用于那些示例的存储器单元的加强操作可在随机(并且可能不正确的)方向上加强示例G和H中的任一者。
参考图4,示例I类似于示例E,其中所描绘的存储器单元值处于容限406周围的不确定性范围内。由此,取决于所读取的存储器单元的实际值,可确定示例I未通过容限406检查。然而,如果示例I确实未通过容限406检查,则很可能以推动存储器单元值到大于容限406(在右侧)的方式来加强所述单元。
图4中所描绘的各种示例示出与存储器单元值的读取和加强相关联的问题。具体地,可能难以确定特定单元是否应适当加强(例如,示例C向右侧,示例D向左侧,示例G或H向左侧或右侧),或者不应发生加强(例如,示例E、F和I),即使对于应该和不应该被加强的存储器单元,容限检查可能示出相同的结果(例如,如果示例E由于在不确定性边界展示内而被测得低于容限406,则示例C和E可具有相同的容限检查结果,但仅示例C应被适当加强)。
为了补偿当存储器单元(例如存储器更新标记)被编程时的撕裂风险以及对应的针对部分编程(即,弱置位或清零)存储器单元的加强方法的困难,本公开提供一种用于在实施逻辑例程以表示原子标记的存储器系统内实施原子标记的方法以及一种改进的存储器单元加强方法以减轻与撕裂事件相关联的风险,同时最小化强编程的存储器单元被弱化或存储器系统呈现非单调编程行为的风险。
本公开所提供的此类原子标记可用于在系统级上实施防撕裂存储器更新。本发明原子标记方法还可用于实施安全性标记以控制存取权限或作为完成的交易(例如,银行转账、合同执行或产品购买)的指示。
一般来说,本发明的解决方案组合了在不使用容限模式的情况下检测潜在撕裂事件的逻辑方法。在实施例中,所述方法利用两个存储器单元(即,两个位)来表示原子标记,但其它实施例将涉及三个或更多个存储器单元。在检测到撕裂事件之后,所述方法实施算法以标识原子标记内的最弱位。检测到的撕裂事件将随后通过更新原子标记中的最弱位而进行解析。如本文所描述,所述方法使加强已强位的风险最小化以减少撕裂可能导致不一致的标记值的可能性。
一般来说,存储器单元能够表示两个逻辑状态(例如,‘0’和‘1’,或‘清零’和‘置位’)。当将单元从0或清零状态或条件编程到1或置位状态或条件时,存储器单元值将过渡通过存储器单元的阈值周围的不确定性边界(例如,图4的阈值402周围的不确定性边界)。在该电平下,给单元指派表示两个二进制状态之间的不确定状态的值‘X’。因此,当置位原子标记时,标记将通过以下状态过渡:0→X→1。相反地,当清零原子标记时,存储器单元值将以类似方式从状态1过渡到状态0:1→X→0。如果置位或清零过程中断(例如,由于撕裂事件),则标记可能卡在X状态中,从而指示标记的值是未知的。重要的是,系统能够检测标记何时处于X状态。由于X状态可仅在撕裂的情况下发生,因此确定具有X状态的存储器单元是置位还是清零状态在某种程度上是任意的,因为任何此类选择在撕裂事件在标记更新过程中或早或晚发生的情况下都是相同的。在存储器单元处于X状态的情况下,可能合乎需要的是:本发明系统可重复地可读,并且结果相同;或将标记值用于任何其它决策之前通过加强操作使所述单元可靠。另外,可能合乎需要的是,系统操作不会使先前适当置位或清零的存储器单元因自身可能遭受撕裂的单元加强操作而变得不稳定(即,具有X状态)。
存储器单元加强操作可非单调地表现。通过物理位单元行为的性质或通过必要更新算法,被加强的存储器单元可能在最终到达期望的加强状态之前临时进入较弱或相反状态。由此,如果加强过程变得撕裂,则所得位强度可能较弱,而非所述位被适当加强。
在本发明的系统中,实施原子标记,其中所述标记使用一起表示原子标记的值的两个存储器位(即,两个存储器单元)。图5是示出本发明的原子标记实施方案的功能组件的框图。系统处理器502(例如,图1的CPU 102或图2的处理器202)通过存储器控制器504存取和修改存储的信息。存储器控制器504被配置成存取存储器阵列506(例如,图1的ROM 104、RAM 106、快闪存储器108或图2的存储器阵列208中的一者)以从中检索数据或将数据写入到存取存储器阵列506。具体地说,存储器控制器504被配置成存取存储于存储器阵列506内含有的数个存储器单元中的值。存储器阵列506中的每个存储器单元可根据图2的个别存储器单元存储器块216或存储器块218(具体地说,图3的个别存储器单元311-1、...、311-N)进行配置。参考图5,示出仅两个存储器单元508和510,但存储器阵列506可含有更多个别存储器单元。两个存储器单元508和510可由存储器控制器504和系统处理器502用来实施本公开的原子标记。
存储器单元508和510一起作为单个2位存储器标记操作。具体地说,存储器单元508充当标记中的第一位,而存储器单元510充当第二位。如本文中所描述,通过依序置位或清零存储器标记的两个位(即,存储器单元508和存储器单元510),所述标记可更易于从撕裂事件恢复并且更好地检测潜在对立标记置位。
由于标记含有两个位,因此标记可具有4个不同状态(在本文中也称为条件)。在本发明的实施例中,第一值或条件0-0(例如,当存储器单元508和510均具有值‘0’时)表示无效的或未初始化的标记条件。第二值或条件0-1(例如,当存储器单元508具有值0并且存储器单元510具有值1时)表示标记处于清零状态。第三值或条件1-0(例如,当存储器单元508具有值1并且存储器单元510具有值0时)表示标记被置位。以此方式,所述置位条件是与清零条件相反的条件。最后,第四状态或条件1-1(例如,当存储器单元508和510均具有值1时)表示标记处于未知或X状态。
在操作期间,系统处理器502可检测使系统处理器502指示存储器控制器504置位标记的触发事件(例如,存储器更新操作的发起),存储器控制器504被配置成依序置位存储器单元508和存储器单元510,使得在存储器控制器504修改第二存储器单元510之前,第一存储器单元508被完全编程(即,被置位到与例如与期望的置位或清零状态相关联的电压、电流或电阻等模拟值相关联的条件)。图6是示出由存储器控制器504实施以置位标记的算法的序列图。
参考图6,水平轴线表示时间,而竖直轴线表示范围介于最小值到最大值的存储器单元值(例如,浮动栅极电压、漏极电流或电阻)。在竖直轴线上,水平线602表示存储器单元阈值(例如,图4的阈值402)。水平线604表示较低容限阈值(例如,图4的容限404),并且水平线606表示较高容限阈值(例如,图4的容限406)。在时间轴上,五个不同时间段A到E表示标记置位过程中的不同步骤。图6上的方形图标表示当前标记中的第一存储器单元508的值,而圆形图标表示当前标记中的第二存储器单元510的值。
在初始步骤(例如,图6上的时间段‘A’)中,标记处于其清零状态0-1,如由具有低于阈值602的值的第一存储器单元(方形)和具有高于阈值602的值的第二存储器方形(圆形)指示。
为了开始置位标记,如时间段‘B’所示,存储器控制器504使第一存储器单元(方形)的值增加(例如,通过将电荷供应到该存储器单元),使得该存储器单元的值过渡到大于阈值602的值,从而指示存储器单元已被置位。当第一存储器单元的值过渡超过阈值602时,第一存储器单元具有值X。因此,在标记置位过程中的时间段B处,标记具有值X-1。
在时间段‘C’处,第一标记现已置位,并且标记的两个位具有值1(由具有大于阈值602的值的第一存储器单元的方形和第二存储器单元的圆形指示)。因此,在标记置位过程中的时间段C处,标记具有值1-1。
在时间段D处,在第一存储器单元适当地置位成值1的情况下,存储器控制器504发起编程第二存储器单元510的过程。由此,存储器控制器504使第二存储器单元(圆形)的值减小(例如,通过释放存储在该存储器单元的浮动栅极上的电荷),使得该存储器单元的值过渡到低于阈值602的值,从而指示该存储器单元已被清零。当第二存储器单元的值过渡到低于阈值602时,第二存储器单元具有值X。因此,在标记置位过程中的时间段D处,标记具有值1-X。
最后,在时间段‘E’处,第二存储器单元现已清零,并且标记的两个位具有值1-0(由具有大于阈值602的值的第一存储器单元的方形和具有小于阈值602的值的第二存储器单元的圆形指示)。因此,在时间段E处,标记被置位并具有对应于标记的置位状态的值1-0。
置位当前2位原子标记的此过程可因此概括为参考图6中划定的时间段的以下状态序列:0-1(时间段A)→X-1(时间段B)→1-1(时间段C)→1-X(时间段D)→1-0(时间段E)。
相反地,当系统处理器502发指令给存储器控制器504清零原子标记时,存储器控制器504类似地配置成在置位过程的相反方向上依序置位存储器单元508和存储器单元510。当清零标记时,这由存储器控制器504首先编程第二存储器单元510来实施。在编程第二存储器单元510之后,存储器控制器接着在标记中编程第一存储器单元508。图7是示出由存储器控制器504实施以清零标记的算法的序列图。
参考图7,水平轴线表示时间,而竖直轴线表示范围介于最小值到最大值的存储器单元值(例如,电压、电流或电阻)。在竖直轴线上,水平线702表示存储器单元阈值(例如,图4的阈值402)。水平线704表示较低容限阈值(例如,图4的容限404)。水平线706表示较高容限阈值(例如,图4的容限406)。在时间轴上,五个不同时间段F到J表示标记清零过程中的不同步骤。图7上的方形图标表示标记中的第一存储器单元508的值,而圆形图标表示标记中的第二存储器单元510的值。
在初始步骤(例如,图7上的时间段‘F’),标记处于其置位状态1-0,如由具有高于阈值702的值的第一存储器单元(方形)和具有低于阈值702的值的第二存储器方形(圆形)指示。
为开始清零标记,如时间段‘G’所示,存储器控制器504通过使第二存储器单元(圆形)的值增加(例如,通过将充电电压供应到该存储器单元或修改存储器单元的电阻)而编程第二存储器单元,使得该存储器单元的值过渡到大于阈值702的值,从而指示第二存储器单元已被置位。当第二存储器单元的值过渡超过阈值702时,第二存储器单元具有值X。因此,在标记置位过程中的时间段B处,标记具有值1-X。
在时间段‘H’处,第二存储器单元现已置位,并且标记的两个位具有值1(由具有大于阈值702的值的第一存储器单元的方形和第二存储器单元的圆形指示)。因此,在标记置位过程中的时间段H处,标记具有值1-1。
在时间段I处,在第二存储器单元适当地置位成值1的情况下,存储器控制器504发起清零第一存储器单元510的过程。由此,存储器控制器504使第二存储器单元(方形)的值减小(例如,通过释放存储在该存储器单元上的电压或减小存储器单元的电阻),使得该存储器单元的值过渡到低于阈值702的值,从而指示第一存储器单元已被清零。当第一存储器单元的值过渡到低于阈值702时,第一存储器单元具有值X。因此,在标记置位过程中的时间段I处,标记具有值X-1。
最后,在时间段‘J’处,第一存储器单元现已清零,并且标记的两个位具有值0-1(由具有小于阈值702的值的第一存储器单元的方形和具有大于阈值702的值的第二存储器单元的圆形指示)。因此,在时间段J处,标记被置位并具有对应于标记的清零状态的值1-0。
置位当前2位原子标记的过程可因此概括为参考图6中划定的时间段的以下状态序列:1-0(时间段F)→1-X(时间段G)→1-1(时间段H)→X-1(时间段I)→0-1(时间段J)。
如上文所描述并在图6和7中所示,存储器控制器被配置成通过首先清零或置位标记的两个存储器位中的单个存储器单元或位(例如,当置位标记时,在初始步骤中,第一位被置位成值‘1’,并且当清零标记时,在初始步骤中,第二位被置位成值‘1’)接着清零或置位原子标记中的另一位来编程原子标记以置位和清零标记。应注意,在其它实施例中,代替置位一个位作为清零或置位原子标记的初始步骤,替代实施方案可使用先清零后置位的次序而无任何基本差异。在这种情况下,0-0的标记状态将被视为无效/撕裂。
因为原子标记的2位值被依序编程(当清零或置位原子标记时),所以在撕裂事件中,原子标记的位中的仅单个位将处于不确定或X状态。由此,原子标记位的未知状态可为X-1或1-X,而非X-X。
当读取原子标记的值时,可将特定存储器的X状态读取为0或1值,这取决于存储器单元的值是被读取为高于还是低于单元的阈值。因此,如果存储器控制器504将X-1标记读取为被置位成0-1的状态,则存储器控制器504会将原子标记解译为处于其清零0-1状态。这是正确的,因为在置位操作的第一步骤期间或在清零操作的第二步骤期间发生了撕裂。在任一情况下,将标记适当地分类为被清零。然而,如果存储器控制器504将X-1标记读取为被置位成1-1的状态,则存储器控制器504将确定撕裂事件已发生,因为1-1的原子标记状态指示原子标记处于未知的X状态且应予以解析。
同等地,如果标记处于1-X条件并且存储器控制器504将此类标记读取为处于1-0状态,则存储器控制器504可确定原子标记处于置位状态。这是正确的,因为使原子标记处于1-X状态的任何撕裂事件可能在标记置位操作的第二步骤期间或在清零操作的第一步骤期间发生。在任一情况下,将标记适当地读取为被置位。然而,如果存储器控制器504将1-X标记读取为被置位成1-1的状态,则存储器控制器504将确定撕裂事件已发生,因为1-1的原子标记状态指示原子标记处于未知的X状态且应予以解析。
假如存储器控制器504将X-1或1-X标记状态读取为1-1状态,则存储器控制器504确定撕裂事件已发生且必须予以解析。通过执行正常读取操作(例如,将存储器单元的值与阈值602或702相比较),存储器控制器504无法确定两个存储器位中的哪一存储器位被强置位以及哪一存储器位被弱置位。因此,在检测到1-1原子标记条件后,存储器控制器504可执行搜索算法以确定原子标记中的两个存储器位中的哪一存储器位具有这两者中的较弱置位值(指示撕裂事件发生在该存储器单元的置位期间)。
如果原子标记中的两个位均读取为1(即,1-1条件),则存储器控制器504可确定标记处于未知状态,并且可通过将任一位(例如,存储器单元508或存储器单元510)置位成清零条件而肯定地复位所述标记。如先前所描述,鉴于实际标记值,选择可以是任意的,因为标记可能在标记编程过程中或早或晚被撕裂。但决策不应对强位进行加强,如果另一位是较弱位,则后续撕裂可能导致两个位变弱,从而可能产生不可解的X-X条件。通过清零较弱位,所得标记将随后处于清零或置位状态。如果此过程遭遇撕裂事件,则标记的另一位(即,未改变的位)将继续强置位成值1。因此,此复位过程可能不会导致原子标记进入X-X条件。
鉴于以上内容,存储器控制器504可被配置成确定原子标记中的哪个位是1-1条件中的两个位中的较弱位,使得存储器控制器504可选择该较弱置位位以进行清零(即,编程到值1)。因此,存储器控制器504可被配置成实施容限检查过程以作出关于两个位中的哪一位更强地置位且哪一位更弱地置位的确定。虽然存储器控制器504可以各种容限模式实施以标识较弱位,但在实施例中,存储器控制器504被配置成实施容限搜索方法以标识标记中的较弱存储器位。
图8是描绘用于标识原子标记中的第一存储器单元和第二存储器单元中的哪一者处于较弱置位状态(即,哪一存储器单元具有更接近存储器单元的阈值的信号值)的方法800的流程图。图9是描绘在方法800的示例实施方案中的不同步骤的对应图表。
在容限搜索方法800的初始步骤802中,基于初始容限值确定栅极偏置电压。此值在施加于存储器单元的栅极端时,将存储器的阈值电压升高到大于存储原子标记的两个位的存储器单元的默认阈值(例如,阈值602、702)的值,并且可等同于较高容限值(例如,容限606或容限702)。由此,在步骤802中施加的栅极偏置电压可称作容限读取偏置电压。
应注意,其它类型的存储器单元可通过将其它类型的信号施加于存储器以执行容限读取来实施容限读取功能。此类容限读取信号可包括施加于存储器单元以执行容限读取功能的特定电压或电流。在那些类型的存储器单元中,此类信号可称作容限读取信号,所述容限读取信号可被调整成在不同容限值下执行存储器单元读取操作。例如,在一些存储器单元中,容限读取信号可包括施加于存储器单元的容限读取端的特定电压或电流,以便在该特定容限电平下从存储器读出值。如果存储器单元的值(例如,电压、电流或电阻)高于或低于容限读取信号的值,则所述单元将被读取为处于不同状态。因此,如结合图8的方法以及本说明书其余部分所描述,对栅极偏置电压的参考应理解为等同于其它类型的容限读取信号。另外,本文中对存储器单元的栅极端的参考应理解为等同于任何类型的存储器单元的容限读取端,所述容限读取端可包括晶体管栅极端或适合于接收存储器单元的容限读取信号的任何其它存储器单元输入端。还应显而易见,在各种电子系统中,电压和电流信号有时在很大程度上等同,因为包括电压的信号的施加可能需要生成对应的电流,而包括电流的信号的施加可能需要生成对应的电压。
在置位偏置电压以实现该初始容限值之后,在步骤804中,偏置电压施加于正被读取的存储器单元的栅极端,并且存储器控制器504读取标记中的每个存储器单元的值。
在步骤806中,存储器控制器504接着确定是否将存储器单元读取为被置位或具有值‘1’。通常,在步骤806中,存储器控制器504将仅检测到存储器单元中的单个存储器单元被读取为具有值‘1’。在这种情况下,另一存储器单元(即,读取为具有值‘0’的存储器单元)被视为较弱单元,因为该存储器单元所存储的电压不超过由容限读取偏置电压建立的阈值。因此,在步骤808中,存储器控制器504被配置成复位或清零在步骤806中确定为具有值‘0’(即,低于容限值的值)的另一存储器单元。然而,如果在步骤806中存储器控制器504确定每个存储器单元读取为具有值‘1’或被置位,则存储器控制器504被配置成选择(例如,随机或根据预定算法)两个存储器单元中待复位的一个存储器单元。这是适当的,因为如果两个单元同样地或类似地强,则两个单元都未被弱置位。因此,即使清零或复位选定存储器单元的过程被撕裂,清零任一存储器单元都不应产生具有X-X条件的标记。
然而,如果在步骤806中存储器控制器504确定存储器单元中的任一者都未被读取为置位或具有值‘1’,则方法继续到步骤810,其中将偏置电压减小一些量。这种情况在图9中示出。如图9中所示,在初始状态902中,偏置电压被置位成使得标记的两个存储器单元归因于读取准确性限制而刚好处于低于容限阈值的值。随后,根据步骤810,偏置电压的值减小(例如,如在图9的状态904中)以再次确定是否将标记的每个存储器单元读取为超过减小的容限值(例如,具有值1)。此过程可重复,其中偏置电压反复地减小直到原子标记的存储二器单元中的一者或两者读取为被置位且值为1或具有超过容限阈值的值(例如,图9的状态906)。容限减小的确切量主要取决于读取电路系统(例如,存储器控制器504)的设计的准确性。另外,典型存储器读取电路系统实施方案需要性能与存储器读取准确性之间的一些折衷——较小步骤往往会更准确地检测出较弱位但需要更多时间来完成读取操作,而较大步骤会加快读取操作但导致较低准确性。本文中所描述的线性搜索方法不限制所述范围;还可选择任何其它搜索算法(例如,二进制)。
返回到图8,在步骤812中,存储器控制器504确定偏置电压是否已减小到零,在此情况下,将依据标准条件读取原子标记的存储器单元。如果已减小到零,则两个单元将被读取为0-0,并且方法移动到步骤814,其中存储器控制器504确定标记无效。根据所描述的方法,永远不会达到此条件,因为实施方案将始终保证两个单元中的至少一个单元被强置位。因此,此类情况是异常错误条件,并且可实施任何合适的解析,包括执行额外系统检查、生成可传送到系统处理器502的警告、标记或警示消息。系统处理器502可随后采取任何合适的动作,包括终止依赖于标记的过程或向系统用户生成警示,从而向用户通知此错误。
然而,如果偏置电压不等于零,则方法继续到步骤804并且继续执行,直到标识出较弱存储器单元或所述方法出于其它原因而退出或结束。
尽管图8中所描绘且在本文中所描述的容限搜索过程涵盖用于通过基于施加偏置电压以测量或确定电压或存储在存储器单元中的电荷来测量单元值的方法,但应理解,可结合其中利用其它信号(例如,流动穿过存储器单元的电流、电阻值等)将信息编码到存储器单元中的其它类型的存储器单元来利用所述容限搜索算法。由此,可在存储器单元被配置成生成指示单元的值的输出信号的任何存储器系统应用中利用所述容限搜索方法,其中所述输出信号与一个或多个阈值信号值相比较以确定所述单元是否被清零、置位或具有另一值。
在上文描述并在图8和9中描绘的容限搜索过程的执行期间,在其中清零较弱存储器单元的步骤808期间可发生撕裂事件。如果中断该清零过程,则该存储器单元的所得值可为0、1或X。如果存储器单元被置位成强0值,则原子标记将变为切实(solid)置位或清零(取决于清零哪一位)。然而,如果存储器单元被置位成值1,则原子标记被置位成表示原子标记是未知的1-1条件。在这种情况下,图8的方法将重新执行以解析原子标记状态。
图8中所描绘的容限读取方法可规定:将存在处于弱或X条件下的原子标记的单个存储器单元的最大值。即使标记的两个存储器单元中的一者仅稍微清零,该存储器单元也可读取为值‘0’,但可能接近存储器单元的阈值电平,该条件将不会破坏图8的算法,因为原子标记的另一存储器位处于具有值1的强置位条件。在这种情况下,图8的容限读取方法将对两个存储器单元执行容限搜索以标识较弱单元或位。随后将清零较弱位而不改变原子标记的最终值。
在典型实施方案中,可优选的是,标记控制系统更新状态具有默认条件。例如,当标记用于指示存储器更新过程是否已完成时,存储器更新可遵循以下步骤序列:首先,创建备份文件,其次,置位“备份有效”标记,第三,更新存储器,以及第四,清零“备份有效”标记。在此类实施方案中,“备份”有效标记的默认条件可以是“清零”,指示备份无效。这将反映在更新开始之前或在更新已完成之后的正常条件。如果当编程标记时发生撕裂事件,则此类标记可具有值X(即,未知)。使用本发明的2位原子标记,如果标记的两个存储器位被置位为同样的强值(例如,通过容限搜索方法800所确定),则可在无结果的情况下复位或清零标记。由此,可任意地确定标记被置位或被清零。这可有利地用于决定标记的默认条件。
上文所描述的2位原子标记的实施方案提供一种对归因于撕裂的读取错误具有抗性的稳健标记。然而,可能存在一些情形,其中标记可能对于在极特定时间段依序发生的多个撕裂事件不稳健。例如,如果标记清零过程的最后一次更新被撕裂,则此撕裂事件可导致标记被置位成值0-1,其中存储0值的存储器单元被极弱地清零。在下一次读取时,弱清零位可能被意外地读取为值1,在此情况下,1-1模式将指示发生了撕裂事件。根据上文所描述(并在图8中示出)的过程,弱清零单元(被错误地读取为1)将被标识,并根据容限读取算法再次被清零。然而,如果当清零该存储器单元时发生另一撕裂事件,则在非单调编程行为下,该单元可能无法正确地编程到置位状态。在此情况下,标记将被读取为具有值1-1。在此情况下,因为存储器单元现在被强置位,所以图8的容限读取算法的结果现在可能将另一位标识为较弱者并相应地将该另一位清零。最后,所述位可能例如从(弱0)-1翻转到1-0条件。
由于非单调函数在数学意义上永远不可能严格单调,因此这种情况可能是一种更为理论化的极端情况。尽管这种情况不大可能,因为它依赖于与非单调性相结合的多个顺序且完全定时的撕裂事件,但可使用多于2位来实施本发明存储器标记的实施例,以降低此类事件发生的可能性。可使标记切换到其相反值的“适当”撕裂事件的数目随使用的物理位顺序更新的数目而缩放。
例如,在各种实施例中,可使用三个或更多个位实施本发明原子标记。例如,可实施原子标记,其中该标记使用三个存储器位(即,三个存储器单元),这三个存储器位一起表示原子标记的值。可由图5的系统实施此类标记,其中该标记表示为存储器阵列506的三个不同存储器单元。在这种情况下,存储器阵列506的三个存储器单元可由存储器控制器504和系统处理器502用以实施根据本公开的3位原子标记。
在此实施例中,存储器控制器504结合存储器阵列506的存储器单元工作以实施3位存储器标记。当3位标记具有状态1-0-1时,该标记可被视为具有第一状态或条件(即,标记被清零)。然而,当翻转标记的所有位以使得标记具有值0-1-0时,标记可被视为具有第二状态或条件(即,标记被置位)。以此方式,所述置位条件是与清零条件相反的条件。在此3位配置中,左侧位和右侧位用于撕裂保护和检测,而中心位存储原子标记的实际值。
在操作期间,当系统处理器502发指令给存储器控制器504编程标记时,存储器控制器504被配置成依序编程3位原子标记的每个存储器单元或位,使得标记的第一存储器单元被完全编程(即,置位成期望的存储器单元值),之后存储器控制器504修改第二存储器单元,诸如此类。
由此,当置位3位原子标记时,存储器控制器504在第一方向上且如下依序将构成标记过渡的三个存储器单元编程到特定值。存储器单元从初始清零状态过渡到置位状态,如下所示:1-0-1(即,清零状态)->0-0-1(第一左侧存储器单元已编程)->0-1-1(第二中心存储器单元已编程)->0-1-0(第三右侧存储器单元已编程以使标记处于置位状态)。
相反地,当清零3位原子标记时,存储器控制器504在第二方向上(与上文的第一方向相反)且如下依序将构成标记过渡的三个存储器单元编程到特定值。0-1-0(即,初始置位状态)->0-1-1(第一右侧存储器单元已编程)->0-0-1(第二中心存储器单元已编程)->1-0-1(第三左侧存储器单元已编程以使标记处于清零状态)。
在置位或清零操作期间,针对初始状态(例如,置位或清零),3位标记的每一个别位通过中间未知状态或X状态过渡到相反状态。如果在置位3位标记的一个位时发生撕裂事件,使得其中一个位可能被读取为未知状态或X状态,则由两个侧位提供的标记值保护允许即使当其中一个位处于X状态时也能确定标记的值。
为了说明,图10是其中每一行描绘了在标记从清零状态编程到置位状态时3位原子标记的各个位的值的图表。在图10中,第一列表示第一左侧(L)存储器位的值,第二列表示中心或标记(F)位的值,第三列表示右侧(R)存储器位的值。第四列指示标记在3位根据该特定行中的值置位的情况下应被读取的标记值。
在由行1002指定的3位标记置位过程的第一步骤中,标记的3位具有对应于标记的清零状态的值1-0-1。
在由行1004指定的过程的第二步骤中,正在清零标记的第一(例如,左侧)位。当该位的值从其置位状态(值1)过渡到其清零状态(值0)时,该位通过中间或未知X状态过渡。如果此时发生撕裂,则原子标记的三个位将具有值X-0-1。当在此类撕裂事件之后读取标记的值时,存储器控制器(例如,存储器控制器504)被编程为确定原子标记被清零并具有值0。具体地说,当读取标记的3个位时,曾处于被清零的过程中的左侧位可能仍被读取为逻辑1,这会使标记具有无法与标记的初始状态区分开的值1-0-1。在此情况下,未检测到撕裂,但标记值仍有效,因为中心存储器位是正确的。相比之下,如果左侧位被读取为逻辑0,则标记被读取为具有值0-0-1,并且存储器控制器可检测到撕裂事件已发生。存储器控制器可作出此确定,因为左侧和右侧位并未示出相同逻辑值。当在左侧位发生撕裂时,标记仍有效,但需要另外的步骤来区分所述情况与产生相同读出并在下方关于行1008另外描述的另一情况。
在由行1006指定的过程的第三步骤中,已成功清零原子标记的第一位。此时,标记的位具有值0-0-1。此处,虽然所有位具有良好限定的或强的逻辑状态,但原子标记尚未编程到其清零值或置位值。
在由行1008指定的过程的第四步骤中,正在置位标记的第二(中心)位。当该位的值从其清零状态(值0)过渡到其置位状态(值1)时,该位通过中间或未知X状态过渡。如果此时发生撕裂,则原子标记的三个位将具有可能读取为0-0-1或0-1-1的值0-X-1。当在此类撕裂事件之后读取标记的值时,存储器控制器(例如,存储器控制器504)可确定原子标记是被清零或被置位,即,具有值0或1——此时的选择是任意的,因为是在标记更新期间发生撕裂,并且如针对使用2个位的初始示例所描述,总是可以任一方式决定撕裂的标记更新。在撕裂的情况下,重要的不是实际标记值,而是确保决策在解析撕裂情况之后保持稳定。
在由行1010指定的过程的第五步骤中,已成功置位原子标记的第二位。此时,标记的位具有值0-1-1。此处,虽然未发生撕裂(即,所有位都被成功地编程和读取),但原子标记尚未被编程到其清零或置位值。即使如此,当标记具有值0-1-1时,存储器控制器可确定标记应被视为置位——中心位具有值1,并且该状态仅在标记置位过程期间在中心位(即,控制标记的值的位)或第三位(参见下文)尚未成功编程时才能存在。同样在此情况下,在利用此决策之前,解析3位标记以使标记稳定和一致,如本文所描述。
在由行1012指定的过程的第六步骤中,正在清零标记的第三(右侧)位。当该位的值从其置位状态(值1)过渡到其清零状态(值0)时,该位通过中间或未知X状态过渡。如果此时发生撕裂,则原子标记的三个位将具有值0-1-X。当在此类撕裂事件之后读取标记的值时,存储器控制器(例如,存储器控制器504)可将3位标记读取为具有值0-1-1(在此情况下,存储器控制器可确定已发生撕裂事件),或存储器控制器可将标记读取为具有值0-1-0,在此情况下,存储器控制器可能不会检测撕裂事件并且可确定3位标记已被置位。如果检测到撕裂事件,则解析策略可确定标记被置位,因为中心位是可靠的,并且存储器控制器可肯定地清零第三位。如果避开了撕裂,则标记将简单地解译为被置位而不需要任何进一步的动作。尽管右侧位可能未检测到为弱,但标记值将不会改变。这种情况要么保持未检测到(在未来的读取事件中),要么在突然检测到弱位的情况下,所述解析将始终能够在右侧位而非在反映标记值的中心位中检测到弱性。
在由行1014指定的过程的第七和最终步骤中,已成功置位原子标记的第三位。此时,标记的位具有值0-1-0。此处,原子标记已适当地编程到其置位状态中并且具有值1。
存储器控制器可被编程或被配置成使得在已置位原子标记之后,存储器控制器避免或阻止置位的3位原子标记被置位第二次。当由存储器控制器实施时,这种约束可防止由在标记置位操作中编程的最末位遭受撕裂事件所致的错误。在此情况下,标记将具有值0-1-X,其中可将最末位读取为值0。如果该3位标记要被置位第二次,则置位过程中的第一步骤涉及清零第一位。如果该清零操作被撕裂,则标记可具有所得值X-1-X,这是无效的标记条件并且可能不可修复。因此,为了避免此条件,可对存储器控制器进行编程以禁止对置位标记的置位。
图11是其中每个行描绘了在标记从置位状态编程到清零状态时3位原子标记的各个位的值的图表。在图11中,第一列表示第一左侧(L)存储器位的值,第二列表示中心或标记(F)位的值,第三列表示右侧(R)存储器位的值。第四列指示标记在3位根据该特定行中的值置位的情况下应被读取的标记值。
在由行1102指定的清零过程的第一步骤中,标记的3位具有对应于标记的置位状态的值0-1-0。
在由行1104指定的过程的第二步骤中,正在置位标记的第三(右侧)位。当该位的值从其清零状态(值0)过渡到其置位状态(值1)时,该位通过中间或未知X状态过渡。如果此时发生撕裂,则原子标记的三个位将具有值0-1-X。当在此类撕裂事件之后读取标记的值时,如果3位标记被读取为具有值0-1-0,则存储器控制器(例如,存储器控制器504)可能避开了撕裂,或如果3位标记被读取为具有值0-1-1,则可能会检测到撕裂事件。在任一情况下,存储器控制器被配置成确定标记值被置位。如果检测到撕裂事件,则存储器控制器可采取进一步动作以解析撕裂的存储器位,并且下文进一步描述的解析方法可确保标记值不会改变。
在由行1106指定的过程的第三步骤中,已成功置位原子标记的第三位。此时,标记的位具有值0-1-1。此处,虽然所有位具有强容限,但原子标记尚未编程到其清零值或置位值。当将标记读取为具有值0-1-1时,存储器控制器被编程为确定标记应被视为置位但标记更新中断且需要解析。
在由行1108指定的过程的第四步骤中,正在清零标记的第二(中心)位。当该位的值从其置位状态(值1)过渡到其清零状态(值0)时,该位通过中间或未知X状态过渡。如果此时发生撕裂,则原子标记的三个位将具有值0-X-1。当在此类撕裂事件之后读取标记的值时,存储器控制器(例如,存储器控制器504)可确定中心位具有值0或1——此时的选择是任意的。
在由行1110指定的过程的第五步骤中,已成功清零原子标记的第二位。此时,标记的位具有值0-0-1。此处,虽然所有位被成功编程,但存储器控制器可确定已发生撕裂事件,因为原子标记尚未被编程到其清零或置位值。存储器控制器可作出此确定,因为左侧和右侧位并未示出相同逻辑值。即使如此,当标记被读取为具有值0-0-1时,存储器控制器被编程为确定标记应被视为清零--中心位具有值0,并且该状态仅在标记清零过程期间在中心位(即,控制标记的值的位)尚未成功清零时才能存在。
在由行1112指定的过程的第六步骤中,正在置位标记的第一(左侧)位。当该位的值从其清零状态(值0)过渡到其置位状态(值1)时,该位通过中间或未知X状态过渡。如果此时发生撕裂,则原子标记的三个位将具有值X-0-1。当在此类撕裂事件之后读取标记的值时,存储器控制器(例如,存储器控制器504)可将处于被清零的过程中的左侧位读取为逻辑1,这使标记具有无法与标记的清零状态区分开的值1-0-1。在此情况下,可能未检测到撕裂,但标记值仍被读取为有效。相比之下,如果左侧位被读取为逻辑0,则标记被读取为具有值0-0-1,并且存储器控制器可检测到撕裂事件已发生。存储器控制器可作出此确定,因为左侧和右侧位并未示出相同逻辑值。如果检测到撕裂事件,则解析策略可确定标记被置位,因为中心位是可靠的,并且可涉及置位第一位以使得标记具有清零状态1-0-1。如果避开了撕裂(例如,将标记读取为1-0-1),则标记将仅解译被清零,无需任何进一步动作。尽管左侧位可能未检测到为弱,但标记值将不会改变。这种情况要么保持未检测到(在未来的读取事件中),要么在突然检测到弱的左侧位的情况下,所述解析可在左侧位而非在反映标记值的中心位中检测到弱性。
在由行1114指定的过程的第七和最终步骤中,已将原子标记的第一位成功清零到值0。此时,标记的位具有值1-0-1。此处,原子标记已适当地编程到其清零状态中并且具有值0。
存储器控制器可被编程为使得在已清零原子标记之后,存储器控制器避免或阻止清零的3位原子标记被清零第二次。当由存储器控制器实施时,这种约束可防止由在标记清零操作中编程的最末位遭受撕裂事件所致的错误。在此情况下,标记将具有值X-0-1,其中可将第一位读取为值1。如果该3位标记要被清零第二次,则清零过程中的第一步骤涉及置位第三位。如果该置位操作被撕裂,则标记可具有所得值X-0-X,这是无效的标记条件并且可能不可修复。因此,为了避免此条件,可对存储器控制器进行编程以禁止对清零标记的清零。
在清零或置位3位原子标记之后,存储器控制器(例如,存储器控制器504)可被配置成响应于来自系统处理器502的请求而读取3位原子标记的值,系统处理器502可依赖于所述标记而进行各种系统过程(例如,存储器或操作系统更新)。
当读取3位原子标记时,确定并分析构成标记的3个位的个别值,并且可确定标记的总体值。图12显示在给定三个位中的每一位的特定值的情况下将如何读取3位原子标记的概要。表的第一列指定3位标记的特定读取值,其中X表示可能被读取为逻辑0或1的撕裂个别位。第二列示出解译的标记值,可以是0、1或X。X在XL和XR中进行区分以指示标记的哪一位(例如,左侧位或右侧位)需要进一步解析。第三列示出是否需要进一步动作以及标记值最终应如何解析。总之,如果左、右侧保护位不相等(行1206...1212),则需要具体解析。如果将这些2位读取为相等,则在有效标记中,这两个位将反映中心标记位的相反值。
如行1202和1204中所示,如果三个位的值被读取为1-0-1,则标记将被解译为被清零且不需要其它步骤。这可以是良好清零的标记(行1202)或其中左侧位仅被弱清零(X)但读取为逻辑0的标记。由于中心标记位是强写入,因此读取标记将总是产生相同标记值并且是可靠的。
行1204中的状态还可被读取为0-0-1。类似地,并且如行1206中所示,左侧位中的强0和中心位中的X状态可给出此0-0-1结果。这是无效标记状态,指示在编程3位标记时发生了撕裂事件。因为将第一位和中心位读取为具有相同值,这指示第一位和中心位中的一者具有值X。因此,存储器控制器被配置成标识两个位中的较弱位。存储器控制器可通过执行上文所描述并在图8中所示的容限搜索方法或另一等同方法来标识较弱位。如果容限检查确定中心位是较弱位,则存储器控制器被配置成将中心位加强到值0(重写逻辑0),之后继续将左侧位编程到逻辑值1。为了加强标记并使标记值有效,存储器控制器还可被配置成使得第一位被编程为置位值1。
行1210和1212示出在标记的第二或中心位具有读取为逻辑1的未知或X状态的情况下或在第三/右侧位处于X状态并读取为逻辑1的情况下可如何读取三个位。与容限搜索中的左侧和中心位的解析对称,在此情况下,将在容限搜索中比较中心和右侧位以确定哪一者为较弱位。如果中心位较弱,则存储器控制器通过将中心位重新编程到值1而加强中心位。最后,存储器控制器将右侧保护位编程为逻辑值0以使标记一致。一旦标记被加强,就需要使整个标记一致,在另一情况下,同样需要写入逻辑0的右侧位被加强。
行1214示出在标记的第三位具有未知或X状态的情况下替代地可如何读取三个位。如果将第三位读取为具有值0,则标记与行1216中所示的最终置位状态不可区分。因此,不会触发另外的动作,并且3位标记仅解译为被置位。此情况与行1202中的清零标记状态或行1204中的未检测到的撕裂状态对称。
此方法的优点是,可仅在正常读取模式中读取两个正常(未撕裂)结果1-0-1和0-1-0,而无需特别注意,同时允许直接读取标记值。在撕裂的事件情况下,可发生相同结果,但不需要加强,因为表示标记值自身的位(第二或中心位)被强置位,多次读取也不会改变其值。在置位3位标记时发生撕裂的情况下可能有两个其它结果,并且所述两个其它结果可因第一和第三存储器位值不匹配而被检测到。因此,仅在撕裂的情况下,需要专用的解析步骤。
如果第一或第三位(即,两个保护位中的任一者)被弱编程,则与之相反,中心位被强编程,因为任何撕裂事件可能在置位第一或第三位时发生而不在置位第二或中心位时发生,因而本文中所描述的解析将不会影响中心位的值。然而,如果中心位被弱编程,则当第一和第三位两者本身都被强编程但具有不同值时,可检测到撕裂事件和条件。因此,在用于读取3位标记的此方法中,如果中心位被弱编程,则可检测到撕裂,因为第一位和第三位可被强置位成相同值。然而,如果保护位(即,第一位或第三位)中的一者被弱编程,则可能检测不到撕裂事件,但3位标记的值将通常是稳定的。因此,由存储器控制器执行的任何容限搜索可允许在此情况下不加强中心标记位而是改为标识弱编程保护位(即,标记的第一或第三位)。
在此标记实施方案中,存在无法由存储器控制器解析的数个无效标记值。如图12中所示,当在正常模式中读取时,值1-1-0、1-0-0、0-0-0和1-1-1在任何时间不应出现在标记中。类似于将两个存储器位用于标记的第一示例的例外情况,这些情况可对应于被破坏标记并且可在系统级进行处理。当执行容限搜索程序以标识3位标记中的一对位中的较弱位时,所述标记有时可能被读取为具有一个无效标记值。在此情况下,应用容限减小并且重复读取操作。
因此,3位标记提供一种方案,其中在大多数情况下可通过对标记的保护位——第一位和第三位——的正常读取操作而检测到撕裂事件。如果一个保护位被弱写入并在正常读取中呈现为正确,则可能避开了撕裂事件。然而,此类避开的撕裂事件不大可能在读取3位标记时造成问题,因为这些避开的事件可能仅在撕裂事件被检测到与否之间更改,而不会有改变总体标记值的风险。如果保护位读取为具有不同值,则已发生撕裂事件。由此,可在不执行特定容限读取算法或对标记值进行进一步调查的情况下执行撕裂检测。在3位标记的中心位被撕裂的特定情况下,如上文所描述,实施解析方法,其中可任意地置位撕裂的中心位的值。此外,在未检测到撕裂事件的情况下,无法检测到撕裂事件标记实施方案提供可最终检测和确定所述条件而不任意改变标记值的解析。
使用此方法,可由存储器控制器504结合存储器阵列506实施比起常规1位标记可对撕裂事件更稳健的3位原子标记。使用这些一般原理,可用N位(例如,4、5、6或更多位)实施原子标记以提供越来越抗撕裂的标记。在这种情况下,可使用依序置位N位原子标记的位的编程方法,其中,中心位(对于3位标记)或中心位对(对于2位标记)表示原子标记的实际值。
本公开描述抗撕裂标记的各种实施方案。可将标记实施和利用为作为特定装置功能和活动的状态的指示的标记。然而,应理解,可利用实施抗撕裂标记的本发明方法来实施服务于任何合适目的的存储器标记。例如,代替用于存储各种系统过程的状态的指示,可改为利用所述标记以基本上抗撕裂的方式存储数据。由此,根据本公开的用于实施抗撕裂标记的系统和方法可用于存储任何布尔值(Boolean value)。
在一些方面,本文中所描述的技术涉及一种包括存储器装置的系统,所述存储器装置包括非易失性存储器单元阵列。所述存储器装置存储第一数据集。所述系统包括处理器,所述处理器被配置成执行以下步骤:检测使所述处理器执行存储器更新操作的触发事件,以及通过执行包括以下各项的步骤来执行所述存储器更新操作:创建所述第一数据集的备份副本,将所述备份副本存储于所述存储器装置中,以及在将所述备份副本存储于所述存储器装置中之后,使存储器控制器置位存储于所述存储器装置中的存储器更新标记。所述存储器更新标记包括存储于所述非易失性存储器单元阵列的第一存储器单元和第二存储器单元中的2位值。所述存储器控制器连接到所述非易失性存储器单元阵列并且连接到所述处理器。所述存储器控制器被配置成执行以下步骤:从所述处理器接收置位所述存储器更新标记的第一指令,以及通过执行以下步骤来置位所述存储器更新标记:将所述第一存储器单元编程到超过所述第一存储器单元的第一阈值电压的第一电压值,以及在将所述第一存储器单元编程到所述第一电压值之后,将所述第二存储器单元编程到小于所述第二存储器单元的第二阈值电压的第二电压值。
所述处理器可被配置成执行以下步骤:在将所述备份副本存储于所述存储器装置中之后,修改存储于所述存储器装置中的所述第一数据集;以及在修改存储于所述存储器装置中的所述第一数据集之后,使所述存储器控制器清零存储于所述存储器装置中的所述存储器更新标记。所述存储器控制器可被配置成执行以下步骤:从所述处理器接收清零所述存储器更新标记的第二指令,以及通过执行以下步骤来清零所述存储器更新标记:将所述第二存储器单元编程到超过所述第二存储器单元的所述第二阈值电压的第三电压值,以及在将所述第二存储器单元编程到所述第三电压值之后,将所述第一存储器单元编程到小于所述第一存储器单元的所述第一阈值电压的第四电压值。所述第一存储器单元和所述第二存储器单元可呈现非单调编程行为。所述第一存储器单元和所述第二存储器单元可以是电阻式随机存取存储器单元。
在一些方面,本文中所描述的技术涉及一种系统,所述系统包括:存储器装置,其包括非易失性存储器单元阵列;以及存储器控制器,其连接到所述非易失性存储器单元阵列。所述存储器控制器被配置成执行以下步骤:接收读取存储器标记的值的请求,其中所述存储器标记包括存储于所述非易失性存储器单元阵列的第一存储器单元和第二存储器单元中的2位值;读取所述第一存储器单元的第一值;读取所述第二存储器单元的第二值;以及基于所述第一值和所述第二值确定所述存储器标记的所述值。
所述存储器控制器可被配置成执行以下步骤:确定由所述第一存储器单元存储的所述第一值指示所述第一存储器单元处于置位条件;确定由所述第二存储器单元存储的所述第二值指示所述第二存储器单元处于所述置位条件;以及基于所述第一值和所述第二值而确定所述存储器标记处于未知状态。所述存储器控制器可被配置成执行以下步骤:确定所述第二存储器单元处于比所述第一存储器单元弱的置位状态;以及清零所述第二存储器单元。所述存储器控制器可被配置成通过对所述第一存储器单元和所述第二存储器单元执行容限读取操作而确定所述第二存储器单元处于比所述第一存储器单元弱的置位状态。所述存储器控制器可被配置成通过执行以下步骤来对所述第一存储器单元和所述第二存储器单元执行所述容限读取操作:将容限读取信号施加于所述第一存储器单元,其中所述容限读取信号包括电压和电流中的至少一者;读取所述第一存储器单元的第三值;确定所述第三值指示所述第一存储器单元处于所述置位条件;将所述容限读取信号施加于所述第二存储器单元;读取所述第二存储器单元的第四值;确定所述第四值指示所述第二存储器单元处于清零条件;以及清零所述第二存储器单元。所述存储器控制器可被配置成通过执行以下步骤来对所述第一存储器单元和所述第二存储器单元执行所述容限读取操作:将第一容限读取信号施加于所述第一存储器单元;读取所述第一存储器单元的第五值;确定所述第五值指示所述第一存储器单元处于清零条件;将所述第一容限读取信号施加于所述第二存储器单元;读取所述第二存储器单元的第六值;确定所述第六值指示所述第二存储器单元处于所述清零条件;以及将第二容限读取信号施加于所述第一存储器单元,其中所述第二容限读取信号不同于所述第一容限读取信号;读取所述第一存储器单元的第七值;确定所述第七值指示所述第一存储器单元处于置位条件;将所述第二容限读取信号施加于所述第二存储器单元;读取所述第二存储器单元的第八值;确定所述第八值指示所述第二存储器单元处于所述清零条件;以及清零所述第二存储器单元。所述存储器控制器可被配置成执行以下步骤:确定所述第一存储器单元的所述第一值指示所述第一存储器单元处于清零条件;确定所述第二存储器单元的所述第二值指示所述第二存储器单元处于置位条件;以及确定所述存储器标记处于所述清零条件。所述存储器标记可包括存储于所述非易失性存储器单元阵列的所述第一存储器单元、所述第二存储器单元和第三存储器单元中的3位值,并且所述存储器控制器可被配置成执行以下步骤:读取所述第三存储器单元的第三值;确定所述第一存储器单元的所述第一值指示所述第一存储器单元处于置位条件;确定所述第二存储器单元的所述第二值指示所述第二存储器单元处于清零条件;确定所述第三存储器单元的所述第三值指示所述第三存储器单元处于置位条件;以及确定所述存储器标记处于所述置位条件。所述存储器控制器可被配置成执行以下步骤:接收置位所述存储器标记的指令;以及通过执行以下步骤来清零所述存储器标记:将所述第一存储器单元编程到大于所述第一存储器单元的第一阈值的第一值,以及在将所述第一存储器单元编程到所述第一值之后,将所述第二存储器单元编程到小于所述第二存储器单元的第二阈值的第二值。所述存储器控制器可被配置成执行以下步骤:接收清零所述存储器标记的指令;以及通过执行以下步骤来清零所述存储器标记:将所述第二存储器单元编程到大于所述第二存储器单元的第一阈值的第三值,以及在将所述第二存储器单元编程到所述第三值之后,将所述第一存储器单元编程到小于所述第二存储器单元的第二阈值的第四值。所述第一存储器单元和所述第二存储器单元可呈现非单调编程行为。所述第一存储器单元和所述第二存储器单元可以是电阻式随机存取存储器单元。
在一些方面,本文中所描述的技术涉及一种方法,所述方法包括:接收读取存储器标记的值的请求,其中所述存储器标记包括存储于非易失性存储器单元阵列的第一存储器单元和第二存储器单元中的2位值;读取所述第一存储器单元的第一值;读取所述第二存储器单元的第二值;以及基于所述第一值和所述第二值确定所述存储器标记的所述值。
在一些方面,本文中所描述的技术涉及一种方法,所述方法另外包括:确定由所述第一存储器单元存储的所述第一值指示所述第一存储器单元处于置位条件;确定由所述第二存储器单元存储的所述第二值指示所述第二存储器单元处于所述置位条件;以及基于所述第一值和所述第二值而确定所述存储器标记处于未知状态。在一些方面,本文中所描述的技术涉及一种方法,所述方法另外包括:标识所述第一存储器单元和所述第二存储器单元中的较弱置位存储器单元;以及清零所述较弱置位存储器单元。
尽管本文中参考特定实施例描述了本发明,但可在不脱离如所附权利要求书中所阐述的本发明的范围的情况下进行各种修改和改变。因此,本说明书和图应以说明性而非限制性意义看待,并且所有此类修改旨在包括在本发明的范围内。并不意图将本文中相对于特定实施例描述的任何益处、优势或针对问题的解决方案理解为任何或所有权利要求的关键、必需或必不可少的特征或要素。
除非另有陈述,否则例如“第一”和“第二”等术语用于任意地区别此类术语所描述的要素。因此,这些术语未必意图指示此类要素的时间或其它优先级排序。类似地,本说明书可提及本发明原子标记中的一者中的左侧或右侧位。应理解,利用此类术语提供对本发明的实施方案的明确描述,并且可在存储器中以任何次序实施本发明原子标记的各个位,而且实际上,构成本发明原子标记的多个位可在存储器的不同区中或跨越多个不同存储器装置实施。类似地,本说明书可在特定存储器单元具有大于阈值的信号值时将该单元描述为置位,并且当单元的信号值小于该阈值时将该单元描述为清零。对于本领域的技术人员将显而易见的是,可反转此类定义,使得特定单元可在其信号值低于阈值时被置位,并在单元的值高于相同或不同阈值时被清零。
本公开参考阈值,并且基于存储器单元的信号值与此类阈值的比较来确定特定存储器单元是被置位还是清零。由此,在实施例中,当存储器单元的信号值超过单元的阈值时将该存储器单元描述为被置位。应理解,并且明确地预期,“超过”阈值的概念包括相反配置,其中当特定存储器单元的信号值低于(即,超过,但在负方向上)阈值时,认为该特定存储器单元被置位。类似地,对“低于”阈值的参考明确地预期包括其中当特定存储器单元的信号值高于(即,在负方向上低于)阈值时认为该特定存储器单元被清零的实施方案。
术语“耦合”被定义为连接,但不一定是直接连接,也不一定以机械方式连接。除非另外说明,否则术语“一”被定义为一个或多个。术语“包括(comprise)”(以及包括的任何形式,例如“包括(comprises)”和“包括(comprising)”)、“具有(have)”(以及具有的任何形式,例如“具有(has)”和“具有(having)”)、“包括(include)”(以及包括的任何形式,例如“包括(includes)”和“包括(including)”)以及“含有(contain)”(以及含有的任何形式,例如“含有(contains)”和“含有(containing)”)是开放式连系动词。因此,“包括(comprises)”、“具有”、“包括(includes)”或“含有(contain)”一个或多个要素的系统、装置或设备拥有所述一个或多个要素,但不限于仅拥有所述一个或多个要素。类似地,“包括(comprises)”、“具有(has)”、“包括(includes)”或“含有(contains)”一个或多个操作的方法或过程拥有所述一个或多个操作,但不限于仅拥有所述一个或多个操作。
Claims (10)
1.一种系统,其特征在于,包括:
存储器装置,其包括非易失性存储器单元阵列,所述存储器装置存储第一数据集;和
处理器,其被配置成执行以下步骤:
检测使所述处理器执行存储器更新操作的触发事件,以及
通过执行包括以下各项的步骤来执行所述存储器更新操作:
创建所述第一数据集的备份副本,
将所述备份副本存储于所述存储器装置中,以及
在将所述备份副本存储于所述存储器装置中之后,使存储器控制器置位存储于所述存储器装置中的存储器更新标记,其中所述存储器更新标记包括存储于所述非易失性存储器单元阵列的第一存储器单元和第二存储器单元中的2位值,其中:
所述存储器控制器连接到所述非易失性存储器单元阵列并且连接到所述处理器,所述存储器控制器被配置成执行以下步骤:
从所述处理器接收置位所述存储器更新标记的第一指令,以及
通过执行包括以下各项的步骤来置位所述存储器更新标记:
将所述第一存储器单元编程到超过所述第一存储器单元的第一阈值电压的第一电压值,以及
在将所述第一存储器单元编程到所述第一电压值之后,将所述第二存储器单元编程到小于所述第二存储器单元的第二阈值电压的第二电压值。
2.根据权利要求1所述的系统,其特征在于,所述处理器被配置成执行以下步骤:
在将所述备份副本存储于所述存储器装置中之后,修改存储于所述存储器装置中的所述第一数据集;以及
在修改存储于所述存储器装置中的所述第一数据集之后,使所述存储器控制器清零存储于所述存储器装置中的所述存储器更新标记。
3.根据权利要求2所述的系统,其特征在于,所述存储器控制器被配置成执行以下步骤:
从所述处理器接收清零所述存储器更新标记的第二指令,以及
通过执行包括以下各项的步骤来清零所述存储器更新标记:
将所述第二存储器单元编程到超过所述第二存储器单元的所述第二阈值电压的第三电压值,以及
在将所述第二存储器单元编程到所述第三电压值之后,将所述第一存储器单元编程到小于所述第一存储器单元的所述第一阈值电压的第四电压值。
4.根据权利要求1所述的系统,其特征在于,所述第一存储器单元和所述第二存储器单元呈现非单调编程行为。
5.根据权利要求1所述的系统,其特征在于,所述第一存储器单元和所述第二存储器单元是电阻式随机存取存储器单元。
6.一种系统,其特征在于,包括:
存储器装置,其包括非易失性存储器单元阵列;以及
存储器控制器,其连接到所述非易失性存储器单元阵列,所述存储器控制器被配置成执行以下步骤:
接收读取存储器标记的值的请求,其中所述存储器标记包括存储于所述非易失性存储器单元阵列的第一存储器单元和第二存储器单元中的2位值,
读取所述第一存储器单元的第一值,
读取所述第二存储器单元的第二值,以及
基于所述第一值和所述第二值确定所述存储器标记的所述值。
7.根据权利要求6所述的系统,其特征在于,所述存储器标记包括存储于所述非易失性存储器单元阵列的所述第一存储器单元、所述第二存储器单元和第三存储器单元中的3位值,并且所述存储器控制器被配置成执行以下步骤:
读取所述第三存储器单元的第三值;
确定所述第一存储器单元的所述第一值指示所述第一存储器单元处于置位条件;
确定所述第二存储器单元的所述第二值指示所述第二存储器单元处于清零条件;
确定所述第三存储器单元的所述第三值指示所述第三存储器单元处于所述置位条件;以及
确定所述存储器标记处于所述清零条件。
8.一种方法,其特征在于,包括:
接收读取存储器标记的值的请求,其中所述存储器标记包括存储于非易失性存储器单元阵列的第一存储器单元和第二存储器单元中的2位值;
读取所述第一存储器单元的第一值;
读取所述第二存储器单元的第二值;以及
基于所述第一值和所述第二值确定所述存储器标记的所述值。
9.根据权利要求8所述的方法,其特征在于,另外包括:
确定由所述第一存储器单元存储的所述第一值指示所述第一存储器单元处于第一条件;
确定由所述第二存储器单元存储的所述第二值指示所述第二存储器单元处于所述第一条件;以及
确定所述存储器标记处于未知状态。
10.根据权利要求9所述的方法,其特征在于,另外包括:
标识所述第一存储器单元和所述第二存储器单元中的较弱置位存储器单元;以及
清零所述较弱置位存储器单元。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/711,968 | 2022-04-01 | ||
US17/711,968 US11941281B2 (en) | 2022-04-01 | 2022-04-01 | Non-volative memory system configured to mitigate errors in read and write operations |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116893780A true CN116893780A (zh) | 2023-10-17 |
Family
ID=85800579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310343389.9A Pending CN116893780A (zh) | 2022-04-01 | 2023-03-31 | 配置成减轻读取和写入操作错误的非易失性存储器系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11941281B2 (zh) |
EP (1) | EP4266311A3 (zh) |
CN (1) | CN116893780A (zh) |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7242632B2 (en) * | 2002-06-20 | 2007-07-10 | Tokyo Electron Device Limited | Memory device, memory managing method and program |
JP5162846B2 (ja) | 2005-07-29 | 2013-03-13 | ソニー株式会社 | 記憶装置、コンピュータシステム、および記憶システム |
EP2299363B1 (fr) | 2009-09-21 | 2013-01-09 | STMicroelectronics (Rousset) SAS | Procédé de nivellement de l'usure dans une mémoire non volatile |
US8351174B1 (en) | 2009-10-29 | 2013-01-08 | Western Digital Technologies, Inc. | Apparatus comprising a brown-out protection circuit for memory devices |
JP5691311B2 (ja) | 2010-09-06 | 2015-04-01 | 富士通株式会社 | 退避処理装置、退避処理方法および退避処理プログラム |
KR102248915B1 (ko) * | 2014-03-26 | 2021-05-07 | 삼성전자주식회사 | 하이브리드 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 데이터 처리 방법 |
US9983820B2 (en) | 2016-03-29 | 2018-05-29 | Nxp B.V. | Method for performing data updates |
KR102664704B1 (ko) * | 2016-10-24 | 2024-05-14 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이를 이용한 웨어-레벨링 방법 |
JP2021145156A (ja) * | 2018-06-11 | 2021-09-24 | ソニーグループ株式会社 | 通信装置、及び通信方法 |
EP3647952A1 (en) | 2018-10-31 | 2020-05-06 | EM Microelectronic-Marin SA | Anti-tearing protection system for non-volatile memories |
-
2022
- 2022-04-01 US US17/711,968 patent/US11941281B2/en active Active
-
2023
- 2023-03-29 EP EP23165080.5A patent/EP4266311A3/en active Pending
- 2023-03-31 CN CN202310343389.9A patent/CN116893780A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230315325A1 (en) | 2023-10-05 |
EP4266311A2 (en) | 2023-10-25 |
US11941281B2 (en) | 2024-03-26 |
EP4266311A3 (en) | 2024-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7751238B2 (en) | Memory system protected from errors due to read disturbance and reading method thereof | |
CN107402832B (zh) | 存储器刷新方法及设备 | |
US8151034B2 (en) | Write abort and erase abort handling | |
US7992009B2 (en) | Device and method capable of verifying program operation of non-volatile memory and method card including the same | |
CN106708754B (zh) | 数据储存装置及其数据维护方法 | |
KR101977733B1 (ko) | 오류 기반 공격의 검출 방법 | |
US6603680B2 (en) | Semiconductor device and data processing system | |
US9542258B1 (en) | System and method for error-minimizing voltage threshold selection | |
CN112148522B (zh) | 快闪存储器中的错误校正方案 | |
US8730724B2 (en) | Common line current for program level determination in flash memory | |
US9490024B1 (en) | Solid state storage device and reading control method thereof | |
CN103456367A (zh) | 非易失性存储器阵列中检测读取失败的方法和存储器系统 | |
KR20160055723A (ko) | 버저닝된 메모리 구현 | |
US11392449B2 (en) | Anti-tearing protection system for non-volatile memories | |
CN108255637B (zh) | 数据存储装置及其操作方法 | |
US11101009B1 (en) | Systems and methods to convert memory to one-time programmable memory | |
US11941281B2 (en) | Non-volative memory system configured to mitigate errors in read and write operations | |
CN109215716B (zh) | 提高nand型浮栅存储器可靠性的方法及装置 | |
EP3428921A1 (en) | Memory sector retirement in a non-volatile memory | |
US20070274302A1 (en) | Data Storage Device, Memory Managing Method, and Program | |
CN112015335B (zh) | 安排至少一比特的试错尝试修正的优先顺序的方法及系统 | |
WO2012082880A1 (en) | Methods and systems for low-power storage | |
CN113707208B (zh) | 用于非易失性存储装置的错误纠正的控制验证操作的方法及非易失性存储装置 | |
EP4365904A1 (en) | Method and memory system for redundantly storing sensible data and adjusting a reference value | |
EP1565821B1 (en) | Electronic memory component or memory module, and method of operating same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |