CN103842974B - 管理非易失性存储器的耐久性的方法 - Google Patents
管理非易失性存储器的耐久性的方法 Download PDFInfo
- Publication number
- CN103842974B CN103842974B CN201280040808.1A CN201280040808A CN103842974B CN 103842974 B CN103842974 B CN 103842974B CN 201280040808 A CN201280040808 A CN 201280040808A CN 103842974 B CN103842974 B CN 103842974B
- Authority
- CN
- China
- Prior art keywords
- sector
- durability
- work
- replaced
- erasing
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
-
- 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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7209—Validity control, e.g. using flags, time stamps or sequence numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明涉及一种用于管理数据存储系统的耐久性的方法,该数据存储系统配置有具有保证原始耐久性能力(G)的扇区集合,所述方法包括由以下构成的步骤:-将所述数据存储系统分成多个工作扇区以及分成多个能够形成耐久性蓄积库的替换扇区,某些工作扇区意在当所述工作扇区在特定数目编程和/或擦除周期之后耗尽时,由替换扇区进行替换;-定义地址管理区域,使得可以搜索被分配给耗尽工作扇区的替换扇区的位置;-逐个扇区地确定当前工作扇区是否在物理上是耗尽的,并且仅当所述当前工作扇区声明在物理上耗尽时,才执行由替换扇区替换该工作扇区的步骤。该管理耐久性的方法的具体特征在于,为了测量扇区的耗费度,执行相对于严格的读取标准(边缘Vref)的扇区的存储点的擦除质量的自动读取,即是说该标准比正常标准(正常Vref)更严格。
Description
技术领域
本发明涉及一种用于管理比如例如非易失性存储器并且特别是能够用于板载应用的非易失性存储器的数据存储系统的耐久性的方法。虽然该方法使用一些已知的耐久性管理机制,但该方法公开了一种使用它们来获得比以前的方法结果更好的新方法。另一个目的在于公开一种不需要任何特定存储器的非常便宜的解决方案。
背景技术
本发明的背景
在计算机存储器领域,非易失性存储器的特征在于即使在它们不再被供给能量的情况下它们也能够保持它们的内容这一事实。然而,这些非易失性存储器的其中一个限制特征为它们的耐久性能力。
耐久性能力被定义为在存储器单元不能再被正确使用之前其能够被擦除和写入的次数。一旦“损坏”,存储器单元或者可能对存储的值产生稳定性问题,或者更简单地变得不能读取之前写在它上面的值。
本发明的目标更具体在于提高如将具体在非易失性存储器的情况下描述的数据存储装置的耐久性能力。
非易失性存储器的耐久性能力
耐久性能力对于不同类型的非易失性存储器(E2PROM、FLASH、MRAM等等)是极其易变的。对于一些FLASH存储器,通常可能存在几千个擦除/写入周期,在它们之中最好的(FLASH或E2PROM)上高达几十万个编程和擦除周期。
该耐久性能力显然依赖于存储器类型(例如,E2PROM存储器在耐久性方面通常优于FLASH存储器)、使用的技术制造工艺(例如,使用0.09μm刻蚀细度的工艺),但对于不同的存储器单元(例如,对于FLASH存储器,使用术语存储器扇区多于存储器单元)还是极其易变的。
对于给定的技术,建立者必须保证最小的耐久性能力(例如,10000个周期)。该耐久性能力被称为“原始耐久性”或“保证耐久性G”。事实上,其等效于检查“最差的”扇区能够支持例如10000个周期。其他的扇区能够支持远远超过10000个周期的具有可以高达几十万甚至几百万个周期的变化性的能力。
这种耐久性能力的变化性遵循“威布尔”统计分布。传统上,耐久性管理装置并没有试图利用该统计分布。本发明的目的之一在于利用非易失性存储器的耐久性能力的这种统计分布。
对于应用的耐久性的需求
对于耐久性的需求是根据非易失性存储器的使用类型而极其易变的,如从下面的示例中可见的。
永久性程序存储
如果NVM(非易失性存储器)存储了将由微处理器执行的程序(这是就板载系统中的程序而言的),则由于该程序将几乎不随时间改变而对于耐久性的需求非常低。历史上,这种类型的内容存储在ROM存储器中(不可修改),这解释了为什么对耐久性的需求非常低。
文件存储
这是对于当今在台式电脑或笔记本电脑、USB密匙和MP3播放器中经常使用的固态驱动(SSD)存储器的典型情况。对于这种类型的应用的耐久性需求比较高,但不能用先验的用法规则来定义。在统计学上,所有的SSD存储器扇区先验地具有相同的耐久性需求,然而对于每次文件被修改即更新的文件分配表存在着例外,并因此将具有更高的耐久性需求。注意,如果操作系统存储在SSD类型的存储器上,则对于该区域的耐久性需求相当低,但在先验上是不可检测的,并因此不可用来降低耐久性需求。典型地,在存储系统中的文件的粒度大约为4千字节。
数据存储
例如,在板载应用的领域中,微处理器将需要除了程序存储区域之外的数据存储区域。该区域可以包含文件存储系统(如前面的示例中的),还包括用于频繁操作的软件对象(缓冲区域、工作数据等等)。通常,这些对象的特征在于它们的规模小(大约一个或几个CPU字高至几千字节的数量级)但具有极其高的耐久性需求。注意,在前面情况(文件存储)中的文件分配表能够极好地包括在此定义中。数据的粒度将大约为一个CPU字(通常为16、32或64位)。
本文明的另一个目的将是利用不同存储类型的本质特征,以能够显著地提高耐久性管理的效率。非限定性示例实施方案将在集成CPU和非易失性存储器的板载系统的情况下公开。
现有技术
已知很多种用于管理非易失性存储器的耐久性的方法。非详尽地,我们将概括它们中的一些以及它们的主要特征。
错误校正码(ECC)
该方法包括在存储器中的每个字的扩展部分加入ECC(错误校正码)。这被用于校正作为典型的保留或耐久性问题的被称为“单个位失效”错误的单个错误。
错误校正的一些优点包括其能通过倍增因数(2至4)来加倍每个存储器扇区的原始耐久性这一事实。其还能有助于解决其他类型的问题(例如,对干扰更好的抵抗以及更好的保留等等)。其也是不需要任何附加RAM存储器的相当简单的本地处理。其仅需要具有低成本的逻辑门的ECC编码器/解码器。
另一方面,错误校正也具有很多的缺点。因此,其为在附加的非易失性存储器中非常昂贵的方法,通常全部非易失性存储器的25%可能被ECC占用。此外,仅有一个硬件实施是可能的。必须对每个存储字支付附加的硬件成本,无关真实的耐久性需求。可以设想在多于一个的位上进行校正但要付出高昂的成本。
因此,概括来说,ECC是简易可应用的系统,能够人为地提高非易失性存储器的原始耐久性,但要付出较大附加硅面积的价格。
存储器扇区空闲
在该方法中,大量的扇区被加入非易失性存储器以用于替换不被使用的扇区。地址转换表必须用于在被替换的扇区的新地点来访问被替换的扇区。
如果仅管理在磁盘是新的时发现的或者随着时间发展的有缺陷的扇区的话,该解决方案已被广泛使用于硬盘控制器电路。
该方法的优点包括这是一个能够由软件来实施的解决方案这一事实。附加扇区的数目可以根据用于替换的目标需求来决定(该方法被称为可调节的或可扩展的)。该方法的缺点包括需要使用标准来确定扇区是坏的。通常,使用周期计数器并且其输出与由存储器供应商给出的保证耐久性G进行比较。此外,如果由于附加扇区的数目受限而大部分的扇区需要大于原始耐久性的耐久性,则该方法将是不足的。因此,该方法特别适用于小数目的耐久性掠夺者(prédateurs)。
另外,如果存在供电故障,保存(或重建)地址转换表将是必要的。因此,应该为该目的提供附加的非易失性存储器。耐久性保存是全局化的并且被限制为N*原始耐久性,其中N是附加扇区的数目。此外,如果必须构建对之前被替换的扇区的替换,则该方法迅速变得复杂。
总之,虽然在硬件和CPU性能上这是相对便宜的有效方法,但附加的耐久性能力受到分配的空闲扇区的数目的限制。这样的系统例如在文件US2004/0057316A1中公开。
磨损均衡
该耐久性管理方法包括试图在最大数目的扇区上尽可能一致地重新分配对耐久性的需求,以利用每一个的原始耐久性。用于该目的的一般技术包括将扇区的新内容写入自由扇区,并且之后使轮流变得自由以用于后续操作的旧扇区无效。需要相当复杂的分配表来存储扇区的重新定位。
存在两种该方法的已知可能替代:
动态磨损均衡:在动态磨损均衡中,仅使用活跃扇区(定期更新的扇区)连同空闲扇区用于旋转。这使耐久性能力受限于存储器的子集。该方法非常频繁地用于USB密匙中。这样的方法在文件US2007/0294490A1(Freitas等人)中详细公开。
静态磨损均衡:在这种情况下,除了动态磨损均衡外,活跃扇区与闲置扇区不时地交换以增加耐久性能力。该方法用于例如SSD类型的存储器,但更为复杂。
磨损均衡的优点包括其理论上能够给出等于所有存储器扇区的原始耐久性值的总和的全局耐久性这一事实。因此,该方法给出最大可能耐久性水平。这可以处理大量的耐久性掠夺者。并且这是一个可以由软件实施的解决方案。
该方法的缺点包括全局耐久性受限于活跃扇区(对于动态磨损均衡)这一事实。另外,必须构建闲置扇区的旋转,这极大地增加了如在静态磨损均衡情况下的算法的复杂度。此外,在空闲时间中,在闲置扇区的旋转或可以在其中完成旋转的周期的识别期间,存在存储器访问性能的降低。
此外,由于地址间接法被推广至整个存储器,如果代码包含在FLASH存储器中,则该方法还影响代码读取和执行性能(提取),而不只是数据读取性能(数据读取)。此外,对于用以存储扇区重新定位的RAM存储器的需求是非常大的。另外,该方法利用对于知道在电路上电时如何重建分配表并因此将其内容以某种方式存储在非易失性存储器中的绝对需求。由于扇区旋转是均匀的,因此当参与旋转的扇区中最弱的达到了其原始耐久性的限度时,该方法将停止。
现有技术的缺点
总体而言,如所见的,没有已知的耐久性管理方法能够利用存储器的内在耐久性特征,也没有在具体的和粒状方法中,根据将使用存储器的应用的功能的耐久性需求中的差异。每个已知方法取决于比如对于在多个扇区上(磨损均衡)或在根据标准的扇区的替换(扇区空闲)上的应用的全局耐久性的需求的系统平滑的固定特征,但没有一个方法尝试利用每个扇区的耐久性能力的重要离散(威布尔曲线)或应用的内在耐久性需求。
发明内容
本发明的目的
[1]因此,本发明的一个一般目的在于公开一种能够校正已知耐久性管理方法的缺点的管理非易性失存储器的耐久性的方法,以提高存储器的全局耐久性。
[2]本发明的另一个目的在于使用耐久性管理系统,并且特别是用于提取每个扇区的真实耐久性能力的系统,来限制在擦除期间施加在存储器单元上的压力,并因此自然地增加所有使用的扇区的真实耐久性能力。
[3]本发明的一个更具体的目的在于公开一种能够实时地使用每个存储器扇区真实的、物理耐久性限度的用于管理存储器的耐久性的方法,以在没有任何关于每个扇区的真实限度的先验以及没有使用由建立者提供的耐久保证的情况下,使用每个扇区的最大可能耐久性。
[4]本发明的另一个目的在于考虑应用的具体耐久性需求,以获得在存储器的耐久性能力和应用的真实需求之间的很好匹配。
[5]本发明的另一个目的在于设计一种方法和系统,具有与传统系统相比极低的硅面积要求,就像在US2004/0057316A1中公开的,同时提供了更好的效率。
[6]本发明的另一个目的在于能够得到一种方法和系统,其对于终端用户(CPU)来说是完全透明的,并且具有实际上可忽略的访问性能损失。
[7]本发明的另一个目的在于能够从非易失性存储器开始变化,特别发展为管理耐久性,并且能够利用完全通用的存储器对其进行替换。
[8]本发明的另一个目的在于得到一种可扩展的系统,以使得终端用户(CUP)能够在耐久性能力或可用存储器之间进行选择。
本发明的内容
这些目的通过根据本发明的耐久性管理方法来实现。
本发明使用管理数据存储系统的耐久性的传统方法,利用与由建立者保证的原始耐久性能力(G)相关联的扇区集合、多个工作扇区和多个能够形成耐久性蓄积库的空闲扇区,工作扇区中的一些意在当所述工作扇区在给定数目的编程和/或擦除周期之后损坏时,由空闲扇区进行替换。本发明还利用非易失性存储器管理区域来存储与坏扇区和它们的替换扇区有关的信息(其为转换表)。例如,基本的空闲扇区方法在US2004/0057316A1中公开并且在本公开的“现有技术”部分进行重复。其图表式地显示在图2中。
传统地,在该类的方法中,存在着不一致的扇区擦除检测步骤22,跟随有由空闲扇区替换坏扇区的步骤25。
本发明目标在于通过下面概括的多个附加手段来改进扇区空闲方法和基本算法。
第一附加手段包括利用三个构想的方法,以特别的方式执行擦除步骤22。
实现这个的第一方法可以包括自动地验证在擦除的扇区中的所有存储器单元的值符合利用正常读取命令,例如利用状态机(图6)的擦除。然而,该方法有这样的缺点:其不检测限制擦除值,对于该限制擦除值,一些位可以作为坏保留现象的结果而改变状态。
第二方法将包括利用在之前方法中的自动机制,重试若干次在图6中的读取60,以限制不稳定性。
第三方法将包括利用在第一方法中的自动机制,当边缘模式在存储器上是可用的时候,该时间利用图6中的步骤60的该模式下的读取。由此已知的并且频繁用于测试非易失性存储器以分类不符合制造说明书(收益)的扇区的这种边缘模式可以以创新的方式使用,以在其彻底磨损之前检测扇区的弱点。换句话说,当已经在该边缘模式下正确地做出了验证,则其可以保证扇区将总是以正常的模式正确地读取。因此,其可以解决在第一方法中描述的保留问题。
在任何情况下,这三种方法都可以用于在不考虑保证耐久性值G或任何其他固定标准(例如,参考值)的情况下提取在每个扇区中最大的耐久性。这有助于实现本发明的目的[3],并且有助于使扇区空闲方法适用于威布尔曲线的特定性质,从每个扇区提取最大可能耐久性。验证状态机的简易性和低成本也有助于实现目的[5](低成本)和[6](透明性和低性能损失)。
与之前的手段结合的第二附加手段包括分解由建立者指定的擦除时间的状态机(图5)(换句话说,在该时间内,高压电源被应用于扇区的存储点以擦除它们)。该第二手段有助于验证在中间时间点处的擦除量是否足以能够停止擦除过程。这能够限制由于在存储点上擦除而产生的压力,并因此显著地提高了所考虑的扇区的内在耐久性能力,这有助于实现目的[2]。管理擦除时间的分解的状态机的简易性和低成本还能够满足目的[5](低成本)以及目的[6](透明性和低性能损失)。由于通常只有部分的指定擦除时间对于正确地擦除扇区将是必要的,因此其还可以实现比建立者的说明书低很多的平均擦除时间。
本发明公开了包括使扇区空闲算法适用于应用的具体需求(目的[4])的第三附加手段。该第三手段的一个特殊实施有助于使其自身适用于许多板载应用的具体需求。这些应用的特征通常在于对于在少数扇区上极大的耐久性需求或者在其他扇区上中等或较低的需求。第一和第二手段已对较低或中间耐久性需求做出了很大的贡献,使所有扇区的内在耐久性能力最大化。因此,对于高的耐久性需求,本发明指定该第三附加手段执行单个原始扇区的多次替换。因而,将增加所需要的多个扇区的内在能力来满足高的耐久性需求,真到不再具有任何可用的空闲扇区。
在该第三手段的第一实施中,由于完全通用的存储器与正规结构一起使用而可以做到这一点(目的[7]),其中在原始扇区和空闲扇区之间没有物理差异。因此,已经替换原始扇区的空闲扇区可以轮流成为原始扇区以用于后续替换。如图7所示,这可以利用非易失性存储器管理区域70来实现,其中,在该区域中的每个元素被指定为被替换扇区并且代表替换扇区的地址。因此,通过跟随原始扇区的依次替换的路径,可以最终获得在多次替换后最新版本的原始扇区。利用该实施,可以确定在CPU访问原始扇区时最新版本的被替换扇区。
在该第三手段的第二更优化的实施中,当电路上电时路径可以被重构,并且在原始扇区和最终空闲扇区之间的捷径可以被存储在RAM中。该第二版本的实施比第一更贵,这是由于其使用附加的RAM。另一方面,其可以遵从目的[6](透明性和低访问损失)。
第四附加手段包括非易失性存储器管理区域的安全创建。该区域在产生每次替换的同时被写入,以将替换扇区的地址存储在专用于被替换扇区的元素中。因此,如果该区域的内容丢失,则存储器成为不可用的。该第四手段使用安全机制来防止可能引起管理区域的损坏的电源的损耗。该机制包括执行如图7所示的下列算法。在该机制中的第一步骤包括将原始扇区73的地址写入第一签名区域72中。
写签名的末端74之后被写入,以验证之前被编程的地址。
一旦已经完成了这两个步骤,与被替换扇区相关联的管理区域70中的元素75被加载而包含替换扇区的地址。
替换签名的末端76将在第二签名区域71中再次被编程,以验证后面的操作。
由于该机制在时间上是有序的,因此如果电源被切断,仅有一个步骤将被破坏。因此,将易于确定算法终止的步骤,并且易于使其重新开始,以便使其能够完成。
通常,将这四个附加手段中的一个或几个附加至传统的扇区空闲算法能够有助于使该算法适用于板载存储器的特定需求,既在高耐久性能力、运行可靠性、低访问时间损失方面,也在低成本约束方面。
由于对于各种装置并不需要特殊的存储器特征,因此所有的目的[1]到[8]都可以通过根据包括对通用存储器使用的需要的本发明的方法来实现。此外,由于原始扇区和替换扇区之间的限制能够由终端用户(CPU)来确定,因此目的[8]的可扩展系统也可以实现。
最终,本发明的目的为管理配置有与保证原始耐久性能力(G)相关的扇区集合的数据存储系统的耐久性的方法,包括用于下列的步骤:
-将所述数据存储系统分割成多个工作扇区以及割分成多个能够形成耐久性蓄积库的空闲扇区,工作扇区中的一些意在当所述工作扇区在多次编程和/或擦除周期之后损坏时,由空闲扇区进行替换;
-定义地址管理区域,以寻找被分配给损坏工作扇区的替换扇区的位置;
-逐个扇区确定当前工作扇区在物理上是否损坏,并且仅当所述当前工作扇区声明是物理上的损坏时,才执行由空闲扇区替换该工作扇区的步骤;
-该方法的特征在于,在扇区中的存储点的擦除量的自动读取与边缘读取标准(边缘Vref.)(换言之,就是比正常标准(正常Vref.)更严格)进行比较,以测量扇区的磨损,这些边缘和正常标准稍后描述。
当正确地进行在边缘模式下的读取时,其保证了扇区将总是以正常模式正确地读取。
根据本发明的一个有利的变型,擦除扇区的单脉冲被若干更短的顺序施加的脉冲所代替,并且在每个脉冲之后执行擦除质量测试,如果所述质量测试在最大预定义数目的脉冲和测试之后仍然是否定的,则工作存储器扇区声明是损坏的。
用这种方法,由于在存储点上的擦除而产生的压力受限,并且所考虑的扇区的内在耐久性能力显著地提高。
理想地,具有正规结构的完全通用的存储器将被使用,其中在原始扇区和空闲扇区之间不存在物理差异。因此,空闲扇区的数目可以由终端用户根据目标耐久性需求来确定。此外,由空闲扇区替换的工作扇区自身变为能够在其已经达到其物理磨损阈值时被替换的工作扇区。
根据本发明的方法允许非易失性存储器管理区域用于重构在被替换扇区和替换扇区之间的路径,其中在区域中的每个元素被指定给替换扇区,并且为被替换的原始扇区的地址。
此外,访问原始扇区期间,实时确定利用管理区域的在原始扇区和替换扇区之间的重构路径。
根据本发明,当电路上电时,重构在原始扇区和替换扇区之间的路径,并且将在原始扇区和最终替换扇区之间的捷径存储在RAM存储器中。
根据本方法的一个优选实施方案,更新管理区域的方法被设计成抵抗电源损耗,以防止所述管理区域的毁坏。
本发明的另一个目的为用于实施如上所述的耐久性管理方法的装置,其特征在于包括被分成多个工作扇区和空闲扇区的存储器、用于管理空闲扇区的区域、能够执行在描述的方法中的步骤的逻辑控制器。
附图说明
在阅读所附附图的具体描述之后,本发明的其他特征和优点将变得清楚,其中:
-图1示出存储器扇区的原始耐久性的分布曲线;
-图2示出在已知扇区空闲方法中的步骤的流程图;
-图3示出可应用根据本发明的方法的非易失性存储器的组织结构的图表;
-图4图解式地示出用于测量擦除质量的原理;
-图5更具体地示出当所述擦除在若干个时间步骤中完成时,对应于在图2中的流程图中的擦除操作的步骤的流程图;
-图6示出在用于扇区空闲方法中的擦除验证方法中的步骤的流程图;
-图7示出用于重构在原始扇区和替换扇区之间的路径的管理区域和两个签名区域的组织结构的图表。
具体实施方式
参考图1。该图示出在存储器中的扇区根据它们的耐久性能力的统计分布的曲线。因此,纵坐标示出对于在横坐标上显示的给定耐久性的扇区的百分比。在横坐标上显示的耐久性可以表示为可能的擦除的数目,其实际上代表扇区的耐久性能力。
如在曲线10上可见的,根据耐久性的扇区的比例分布在形状上为高斯分布,围绕着由EM1表示的平均值分布,并且所有扇区的耐久性高于对于在该存储器中的扇区的也被称为原始或内在耐久性并且由G表示的最小保证耐久性。
实际上,存储器制造商将给出保证耐久性值G,其表明所有扇区的耐久性高于该保证耐久性值。实际上,耐久性曲线的形状是非常宽的(图1中没有按比例示出),这意味着最小耐久性值G比平均耐久性值EM低很多。根据本发明的耐久性管理方法的基本目标之一为布置事项使得实际上能够使用的最小耐久性值比其在现有技术中高出非常多,即高出几个数量级。
现在参考示出在传统扇区空闲方法中的步骤的流程图的图2。该方法利用状态机来实施,并且应用于存储器的典型扇区。
从休止状态20开始,在21中确定当前扇区是否将被擦除。如果是的话,则在步骤22中进行擦除,步骤22包括将足够的电压发送至当前存储器扇区以擦除单元。然后,利用从若干个可用的方法中选择的验证方法,在27和23中进行擦除质量的验证。如果擦除质量测试的结果是好的(分支24),则转入假设擦除圆满完成的步骤26。另一方面,如果在23中完成的擦除测试的质量是不好的,则考虑当前存储器扇区是损坏的,并且由有效地假设擦除已经完成(标记26)的好的(之前擦除的)替换扇区在25中进行替换。
参考图解式地示出非易失性存储器30的组织结构的图3,非易失性存储器30例如FLASH类型的存储器,包括工作区域31和空闲区域32,每个区域被分解成扇区,例如工作扇区33和空闲扇区34。当应用于工作扇区的擦除测试表明该扇区是损坏的,该扇区被重新定向到在空闲区域32中的空闲扇区34之间的给定扇区。将用于替换工作扇区的空闲区域中的精确空闲扇区将在耐久性管理区域35中进行确定,以保持对进行的替换的追踪。
在工作存储器31中的工作扇区可以被替换整数n次,其中n小于数目N,数目N对应于包含在空闲区域32中的空闲扇区34的数目。
关于能够进一步提高存储器30的耐久性能力的工作扇区,本发明允许在空闲区域32中的扇区34被在空闲区域中的其他扇区替换。
利用逻辑控制器(未示出)、耐久性管理区域35、非易失性存储器30和一个装置(未示出)来实施上面描述的方法,以测量存储器扇区的磨损。
逻辑控制器可以以硬件或软件状态机的形式构成。
非易失性存储器30可以是物理存储器或其他的数据存储装置。
测量装置可以使用存储器或任何其他装置的正常读取模式或更严格的读取模式,以确定擦除或者编程操作没有被正确地完成。
将参考图4来描述用于测量扇区的磨损的装置的示例,在图4中示出了根据在横坐标上显示的存储器晶体管的阈值电压Vt,在纵坐标上显示存储器的给定扇区的位的总量的图。
按照惯例,考虑的是当相应的晶体管的阈值电压高于依据用于存储器的技术的由Vtmin表示的限制电压时,位被“编程”或者为零级。
相反,考虑的是当对应于该位的晶体管的阈值电压小于由Vtmax表示的限制电压时,该位被“擦除”或者为在一级。
如在图4中可见的,根据应用的阈值电压遵循一般高斯分布40、41,用于编程的存储点(0)或擦除的存储点(1)的阈值电压变化,并且相应的位的总量等于零或一。
在所说的“正常模式”读取中,当前存储点的阈值电压Vt与在限制电压Vtmin和Vtmax(并且由虚线42图解式地表示)之间的由正常Vref表示的固定参考进行比较,并且根据正常参考阈值电压、正常Vref的比较结果,给定存储点被认为等于零或一。
在“边缘模式”读取中,当前存储点的阈值电压与大于Vtmax但小于之前的参考正常Vref的,由边缘Vref(未示出)表示的另一个参考进行比较。因此,具有位于正常模式中的读取参考(正常Vref)和在“边缘模式”中的读取参考(边缘Vref)之间的阈值电压Vt的存储点在正常模式中被认为具有不同的值(例如是零而非一,反之亦然),但在边缘模式中将被认为是“零”。
或者在正常模式中或者在边缘模式中读取存储点的阈值电压的这些方法可以用于根据本发明的方法中,以测量扇区的擦除质量。它们将有助于检测在没有考虑扇区的理论耐久性限制,而是考虑其内在物理特质的情况下,扇区是否被真正地擦除。该方法还保证了擦除验证读取是稳定的。
参考示出擦除存储器扇区的方法的变型的图5,其中,在图2的流程图中利用单脉冲的正常擦除步骤22被利用多擦除脉冲的擦除所代替。
通常,通过将高压施加在存储点上并且输入一些能量进入其中而擦除存储点,这最终毁坏了存储点并使其彻底难以辨识。
在本发明的一个有利的实施方案中,仅仅必须的擦除电压被施加在每个存储点上,使得每个存储点的寿命能够提高,因而耐久性蓄积库并因此整个存储器的寿命都能够提高。
出于此目的,本发明公开了如何利用在每个擦除脉冲之后进行的擦除质量测试54,使单个的正常擦除脉冲22由若干顺序施加的更弱的脉冲所代替50。施加弱脉冲直到擦除质量测试为肯定的,或直到已经施加了预定数目的弱脉冲53。如果在施加了最大预定义数目的弱脉冲之后,擦除质量测试仍然是不好的,则考虑存储器扇区是损坏的55,并且通过分配在空闲区域中的扇区来进行替换。
可见,如果在小于最大预定义数目的脉冲的许多脉冲之后,擦除质量测试给出好的结果52,则施加的用于擦除该扇区的能量的总量将小于用于传统擦除的能量的总量,这有助于延长存储器的寿命。
如以上所说明的,擦除质量测试能够在正常模式下或在边缘模式下完成。
参考示出传统擦除验证过程的图6。
在步骤60中,读取擦除的扇区的存储器单元,并且之后在61中验证该存储器单元已经被正确地擦除。如果是这样,则处理在扇区65中的下一个单元,并且重复操作60、61和65,直到操作63检测到在扇区中的最后一个单元。如果在没有擦除失败的情况下到达在扇区中的最后一个单元61,则推论出擦除在64中经过验证。如果擦除失败,在62中其将通过无效擦除而终止。
参考示出对应于第四手段的方法的图7:
该方法使用使用管理区域70和两个签名区域71和72。
在该方法中的第一步骤包括将原始扇区73的地址写在第一签名区域72中。
写入签名的末端74之后被写入,以保证之前被编程的地址的验证。
一旦已经完成了这两个步骤,与被替换扇区75相关联的管理区域中的元素被加载替换扇区的地址。
替换签名的末端76将在第二签名区域71中被再次被编程,以验证后面的操作。
本发明的优点
所描述的本发明实现了固有的目的。其能够实现非常高的耐久性能力,几乎相当于利用所谓的磨损均衡方法所可能实现的,但却没有它们的缺点。
因此,本发明在不是所有数据对象都具有高耐久性需求的环境(通常,其具体为板载的情况)中以及仅有少量对象需要高耐久性的安全类型软件应用中特别有用。在成本非常受限时,对于这样的情况,该方法变得有吸引力,但其能够用于具有相似耐久需求的任何其他类型的应用或已知的或未来的存储装置中。
测量与物理上而不仅仅是统计学上的磨损标准相比较的擦除质量的机制,对于实现存储器的高全局耐久性是必要的。其使得可以在必须替换原始扇区之前,最大化原始扇区的使用(并因此降低对于空闲扇区的需求),但还需要最大化“耐久性蓄积库”的值。
擦除质量测量机制的应用还使得可以仅将必要的擦除电压施加在扇区上,并因此最大化其寿命。
实际上,必要的空闲扇区的数目能够依据目标耐久性需求而容易地进行调节。
此外,根据本发明的方法能够快速地从耐久性蓄积库中排除需要大量耐久性的弱扇区。
根据本发明的方法在附加存储器的成本方面仅有微小的损失,该成本实际上是非常低的,这是由于其与目标全局耐久性成比例,而不是与存储器大小成比例。
对于RAM存储器和控制逻辑的需求与所谓的动态或静态磨损均衡方法相比是极低的。
根据本发明的方法能够优化形成部分系统的扇区的耐久性的使用。不再需要比它们能够由自身提供的更多的耐久性的原始扇区从不参与替换系统(与磨损均衡不同,在磨损均衡中所有的扇区理论上参与该系统)。因此,由于原始扇区的优化使用而产生必须的空闲扇区的数目的剧烈减少。
在目前,本发明本质上适用于非易失性存储器,但也可应用于产生磨损现象的任何数据存储系统。
Claims (8)
1.一种管理数据存储系统的耐久性的方法,所述数据存储系统配置有与原始耐久性能力(G)相关联的扇区集合,所述方法包括下列步骤:
-将所述数据存储系统分成多个工作扇区以及分成多个能够形成耐久性蓄积库的空闲扇区,工作扇区中的一些意在当所述工作扇区在多次编程和/或擦除周期之后损坏时,由空闲扇区进行替换;
-定义地址管理区域,以寻找被分配给损坏工作扇区的替换扇区的位置;
-逐个扇区地确定当前工作扇区是否在物理上是损坏的,并且仅当所述当前工作扇区声明是物理上的损坏时,才执行由空闲扇区替换该工作扇区的步骤;
-其特征在于,在扇区中的存储点的擦除质量的自动读取与边缘读取标准(边缘Vref)进行比较,边缘读取标准换言之就是比正常标准(正常Vref)更严格,用以测量扇区的磨损。
2.根据权利要求1所述的方法,其特征在于擦除扇区的单脉冲被若干更短的顺序施加的脉冲所代替,并且在于,在每个脉冲之后执行擦除质量测试,如果所述质量测试在最大预定义数目的脉冲和测试之后仍然是否定的,则工作存储器扇区声明是损坏的。
3.根据前述权利要求中任一项所述的方法,其特征在于:
-具有正规结构的完全通用的存储器将被使用,其中在原始扇区和空闲扇区之间不存在物理差异;
-空闲扇区的数目能够由终端用户根据目标耐久性需求来确定;
-由空闲扇区替换的工作扇区自身变为能够在其已经达到其物理磨损阈值时被替换的工作扇区。
4.根据权利要求3所述的方法,其特征在于,对于重构在被替换扇区和替换扇区之间的路径,使用非易失性存储器管理区域,其中在区域中的每个元素被指定给替换扇区,并且为被替换的原始扇区的地址。
5.根据权利要求4所述的方法,其特征在于,在访问原始扇区期间,实时确定利用管理区域的在所述原始扇区和所述替换扇区之间的重构路径。
6.根据权利要求4所述的方法,其特征在于,当电路上电时,重构在所述原始扇区和所述替换扇区之间的路径,并且将在所述原始扇区和最终替换扇区之间的捷径存储在RAM存储器中。
7.根据权利要求4所述的方法,其特征在于,更新管理区域的方法被设计成抵抗电源损耗,以防止所述管理区域的毁坏。
8.一种用于实施根据前述权利要求中任一项所述的耐久性管理方法的装置,其特征在于,其包括被分成多个工作扇区和空闲扇区的存储器、用于管理空闲扇区的区域,以及能够执行在根据权利要求1到7中任一项所述的方法中的步骤的逻辑控制器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR11/01929 | 2011-06-22 | ||
FR1101929A FR2977047B1 (fr) | 2011-06-22 | 2011-06-22 | Procede de gestion de l'endurance de memoires non volatiles. |
PCT/FR2012/000251 WO2012175827A1 (fr) | 2011-06-22 | 2012-06-22 | Procédé de gestion de l'endurance de mémoires non volatiles |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103842974A CN103842974A (zh) | 2014-06-04 |
CN103842974B true CN103842974B (zh) | 2016-06-29 |
Family
ID=46579142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280040808.1A Active CN103842974B (zh) | 2011-06-22 | 2012-06-22 | 管理非易失性存储器的耐久性的方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9286207B2 (zh) |
EP (1) | EP2724237B1 (zh) |
CN (1) | CN103842974B (zh) |
BR (1) | BR112013033196B1 (zh) |
FR (1) | FR2977047B1 (zh) |
RU (1) | RU2600525C2 (zh) |
WO (1) | WO2012175827A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6403162B2 (ja) * | 2015-07-23 | 2018-10-10 | 東芝メモリ株式会社 | メモリシステム |
CN107025066A (zh) | 2016-09-14 | 2017-08-08 | 阿里巴巴集团控股有限公司 | 在基于闪存的存储介质中写入存储数据的方法和装置 |
CN109448774B (zh) * | 2018-10-15 | 2021-03-19 | 上海华虹宏力半导体制造有限公司 | 快闪存储器干扰存储区位置的判定方法 |
FR3125897B1 (fr) | 2021-07-30 | 2025-01-17 | Idemia Identity & Security France | Procédé pour optimiser un fonctionnement d’un élément sécurisé |
FR3138536B1 (fr) * | 2022-07-28 | 2025-03-28 | Idemia Identity & Security France | Procédé de gestion d’une mémoire d’un élément sécurisé |
CN115509465B (zh) * | 2022-11-21 | 2023-03-28 | 杭州字节方舟科技有限公司 | 一种扇区管理方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1182669A2 (en) * | 2000-08-23 | 2002-02-27 | Sharp Kabushiki Kaisha | Non-volatile semiconductor memory device |
CN101178942A (zh) * | 2007-12-05 | 2008-05-14 | 苏州壹世通科技有限公司 | 一种数据块的磨损处理方法和装置 |
CN101409108A (zh) * | 2007-10-09 | 2009-04-15 | 群联电子股份有限公司 | 平均磨损方法及使用此方法的控制器 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5835413A (en) | 1996-12-20 | 1998-11-10 | Intel Corporation | Method for improved data retention in a nonvolatile writeable memory by sensing and reprogramming cell voltage levels |
JP4085478B2 (ja) * | 1998-07-28 | 2008-05-14 | ソニー株式会社 | 記憶媒体及び電子機器システム |
IT1302433B1 (it) * | 1998-08-13 | 2000-09-05 | Texas Instruments Italia Spa | Circuito di lettura per dispositivi di memoria flash con perfezionatimargini di programmazione e procedimento di funzionamento |
JP4129381B2 (ja) * | 2002-09-25 | 2008-08-06 | 株式会社ルネサステクノロジ | 不揮発性半導体記憶装置 |
US7106636B2 (en) * | 2004-06-22 | 2006-09-12 | Intel Corporation | Partitionable memory device, system, and method |
US20060282610A1 (en) * | 2005-06-08 | 2006-12-14 | M-Systems Flash Disk Pioneers Ltd. | Flash memory with programmable endurance |
US20070174549A1 (en) * | 2006-01-24 | 2007-07-26 | Yevgen Gyl | Method for utilizing a memory interface to control partitioning of a memory module |
US20070208904A1 (en) * | 2006-03-03 | 2007-09-06 | Wu-Han Hsieh | Wear leveling method and apparatus for nonvolatile memory |
EP2024839B1 (en) * | 2006-05-15 | 2014-07-02 | SanDisk Technologies Inc. | Non-volatile memory system with end of life calculation |
US8060718B2 (en) * | 2006-06-20 | 2011-11-15 | International Business Machines | Updating a memory to maintain even wear |
US7804718B2 (en) * | 2007-03-07 | 2010-09-28 | Mosaid Technologies Incorporated | Partial block erase architecture for flash memory |
US8244959B2 (en) * | 2008-11-10 | 2012-08-14 | Atmel Rousset S.A.S. | Software adapted wear leveling |
US20100199020A1 (en) * | 2009-02-04 | 2010-08-05 | Silicon Storage Technology, Inc. | Non-volatile memory subsystem and a memory controller therefor |
US20120117303A1 (en) * | 2010-11-04 | 2012-05-10 | Numonyx B.V. | Metadata storage associated with flash translation layer |
-
2011
- 2011-06-22 FR FR1101929A patent/FR2977047B1/fr active Active
-
2012
- 2012-06-22 US US14/127,914 patent/US9286207B2/en active Active
- 2012-06-22 BR BR112013033196-8A patent/BR112013033196B1/pt active IP Right Grant
- 2012-06-22 RU RU2014101458/08A patent/RU2600525C2/ru active
- 2012-06-22 CN CN201280040808.1A patent/CN103842974B/zh active Active
- 2012-06-22 EP EP12738481.6A patent/EP2724237B1/fr active Active
- 2012-06-22 WO PCT/FR2012/000251 patent/WO2012175827A1/fr active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1182669A2 (en) * | 2000-08-23 | 2002-02-27 | Sharp Kabushiki Kaisha | Non-volatile semiconductor memory device |
CN101409108A (zh) * | 2007-10-09 | 2009-04-15 | 群联电子股份有限公司 | 平均磨损方法及使用此方法的控制器 |
CN101178942A (zh) * | 2007-12-05 | 2008-05-14 | 苏州壹世通科技有限公司 | 一种数据块的磨损处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
EP2724237B1 (fr) | 2018-03-28 |
FR2977047A1 (fr) | 2012-12-28 |
RU2600525C2 (ru) | 2016-10-20 |
US20140223082A1 (en) | 2014-08-07 |
BR112013033196A8 (pt) | 2018-07-10 |
WO2012175827A1 (fr) | 2012-12-27 |
CN103842974A (zh) | 2014-06-04 |
BR112013033196A2 (pt) | 2017-03-01 |
BR112013033196B1 (pt) | 2021-04-27 |
EP2724237A1 (fr) | 2014-04-30 |
US9286207B2 (en) | 2016-03-15 |
RU2014101458A (ru) | 2015-07-27 |
FR2977047B1 (fr) | 2013-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103842974B (zh) | 管理非易失性存储器的耐久性的方法 | |
CN106663046B (zh) | 用于刷新存储器设备中的数据的系统和方法 | |
US7594157B2 (en) | Memory system with backup circuit and programming method | |
US9032271B2 (en) | System and method for lower page data recovery in a solid state drive | |
US9032245B2 (en) | RAID data management method of improving data reliability and RAID data storage device | |
US8453022B2 (en) | Apparatus and methods for generating row-specific reading thresholds in flash memory | |
US10102146B2 (en) | Memory system and operating method for improving rebuild efficiency | |
US20160170682A1 (en) | Tag-based wear leveling for a data storage device | |
US8495281B2 (en) | Intra-block memory wear leveling | |
US9361036B2 (en) | Correction of block errors for a system having non-volatile memory | |
CN100458718C (zh) | 一种闪存存储装置及其数据读取和写入方法 | |
US20080072119A1 (en) | Allowable bit errors per sector in memory devices | |
CN116529693A (zh) | 加电时的媒体管理 | |
US11436085B2 (en) | Dynamic over provisioning allocation for purposed blocks | |
US20160179401A1 (en) | Memory system and the operation method thereof | |
US11194661B1 (en) | Memory system for accessing data in stripe form and operating method thereof | |
US20200241955A1 (en) | Data storage device and operating method thereof | |
US8375262B2 (en) | Field programmable redundant memory for electronic devices | |
US8289791B2 (en) | Test method and device for memory device | |
US11789861B2 (en) | Wear leveling based on sub-group write counts in a memory sub-system | |
US20240393969A1 (en) | Power-off monitor for relaxed block retirement in a memory sub-system | |
Handy | How Controllers Maximize SSD Life | |
CN115457999A (zh) | 存储器装置中的扫描片段 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: French Meileyi Patentee after: Idimia Star Crystal Co.,Ltd. Address before: French Meyer Patentee before: STARCHIP |