CN102640123B - 一种固态存储器、以及块内耗损均衡的方法和*** - Google Patents
一种固态存储器、以及块内耗损均衡的方法和*** Download PDFInfo
- Publication number
- CN102640123B CN102640123B CN201080054745.6A CN201080054745A CN102640123B CN 102640123 B CN102640123 B CN 102640123B CN 201080054745 A CN201080054745 A CN 201080054745A CN 102640123 B CN102640123 B CN 102640123B
- Authority
- CN
- China
- Prior art keywords
- memory cell
- solid
- state
- memory
- described multiple
- 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.)
- Expired - Fee Related
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
- 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
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
-
- 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]
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
一种用于在遭受耗损、具有多个存储器单元的固态存储器内的块内耗损均衡的方法包括以下步骤:以非均匀的方式写入多个存储器单元的至少特定个存储器单元的布置,从而在块内级,平衡固态存储器内多个存储器单元的至少特定个存储器单元的耗损。例如,如果没有表征多个存储器单元内至少一些存储器单元的行为,则所述方法可包括表征多个存储器单元内至少一些存储器单元的行为,并以非均匀的方式,基于所表征的行为写入多个存储器单元内的至少特定个存储器单元。
Description
技术领域
本发明涉及非易失性存储器,并且更具体地,本发明涉及非易失性存储器的块内耗损均衡(wearleveling)以提高存储器的耐久性。
背景技术
无论在独立设备(固态设备或“SSD”)中具体化的还是作为其它电路(例如,处理器、易失性存储器等)的一部分的固态、非易失性存储器(例如,闪速存储器或EPROM)面临着特定的挑战。挑战之一是耐久性,通常将其定义为在单元的物理属性耗尽并且单元继而再也不能进行编程或擦除之前,可在每个存储器单元上执行的写入/擦除周期的最大数量。另一个挑战是数据保持性,其通常指代在其期间可以读出(可能具有可校正错误)的所存储数据的最大时间周期。耐久性通常规定为假定有十年的数据保持周期。
耗损均衡是广泛用于处理非易失性存储器中存储器单元耗尽问题的技术。其目标是通过将程序和擦除周期在整个非易失性存储器中更均匀地进行分布来提高存储器的耐久性。另一方面,将纠错码(“ECC”)用于数据保持目的,具体而言,以防止所存储数据被破坏(即,随机比特误差)。一种耗损均衡技术基于每个块的写入-擦除周期的计数器。该技术的目的在于在存储器块之间平衡写入/擦除周期,从而使得没有块接收到过多的写入/擦除周期。
发明内容
根据本发明的一个实施方式,公开了一种用于固态存储器内的块内耗损均衡的方法,所述固态存储器遭受耗损并具有在块中布置的多个存储器单元。所述方法包括以非均匀的方式写入固态存储器内多个存储器单元的至少特定个存储器单元的步骤,从而使得在块内级平衡固态存储器内多个存储器单元的至少特定个存储器单元的耗损。
本发明的其它实施方式包括具体化在上方段落中的本发明的前述方法实施方式的***、计算机程序产品和固态存储器。
附图说明
图1是根据本发明的实施方式的在固态存储器内实现块内耗损均衡的方法中采用的步骤的流程图。
图2是包括在其中可实现本发明的实施方式的固态存储器的计算机***的示意性框图;以及
图3是在其中可实现本发明的实施方式的、图2的计算机***的固态存储器部分的示意性框图。
具体实施方式
参照图1,图示了在实现根据本发明的实施方式的、用于固态存储器内的块内耗损均衡、由此改进存储器的耐久性的方法中所采取的步骤的流程图100。还参照图2,图示了适于实践本发明的实施方式的计算机***200的示意性框图。如在下文所详细描述的,计算机***200包括可包含诸如闪速存储器或EPROM之类的固态存储器的大量数据和/或程序存储器存储设备235。本发明的其它实施方式可在存储器存储设备235内实现,其中存储器存储设备235在图3中更为详细地进行图示。
固态存储器235通常布置成单独的存储器单元的块,在每个块内具有多页单元(通常每块64页)。固态存储器235可包括闪速存储器设备、相位改变存储器、EPROM或遭受耗损的其它非易失(也是持久的)类型的存储器。因此,在下文中,除非另外声明,否则对术语“非易失性存储器”进行模糊使用以指定这种类型的存储器。
如图1的流程图100中所示,本发明的实施方式的方法可用于实现图2和图3的非易失性存储器235的块内耗损均衡。参照图1,在进入步骤104之后,在步骤108中,该方法优选地检验是否已经表征过存储器235的行为。更具体地,该方法在耗损和误差发生方面,检验是否预先知道块内的页的行为。可以从该行为推断出,存储器235内的每个存储器单元具有对在每个单元内发生的误差的特定水平或程度的易感性或倾向性。不然的话,则在步骤112中可通过均匀写入存储器235的块中的页(将数据均匀写入块中的页本身是已知的)来获得该行为,并继而在步骤116中监测在存储器235的块内的这些均匀写入的页中误差的发生。这可通过选择一组块并继而在这些块的页被均匀写入时,监测在它们中发生的误差来实现。在一个实施方式中,可通过采用在运用纠错算法的解码阶段的结果来度量误差。以此方式,随着时间推移,可识别出相对更易于出错或容易出错的页。在变体中,可预先知道存储器235的行为(例如,如在制造商的设备规范中提供)。在这种情况下,不需要表征行为;相当简单地作为输入数据提供给随后的耗损均衡过程,这将在稍后讨论。
更具体地,在采样块级,用于监测非易失性存储器235的块的采样集合的页中的误差数量的示例性实施方式包括引入大小为“w”的窗,其考虑特定存储器块的“w”个连续擦除。这可通过每块寄存器中的计数器<r>来实现,该计数器可响应于块中的每个擦除操作而递增,并在“r”达到“w”时复位。响应于复位,在每块寄存器中,表示窗的索引的另一计数器<k>可以递增。对每个采样块可实现另外一组计数器<e>。因此,<e>对应于页上的若干误差。这些计数器可根据在每个窗内发生的误差递增。因而,当“r”达到“w”时,这些计数器可被复位。在复位之前,根据p=e/w对存储误差率的另一组计数器<p>进行更新。如果最大和最小误差率之间(即,min(p)和max(p)之间)的偏差超过预定阈值,则可激活负载分配算法以将负载引导至最不容易出错的页,即,在块内级。
现在,如在此情形中的实现块内或子块耗损均衡方案不排除实现附加的块间均衡方案。顺便提及,块内和块间方案可以并行(甚至同时)或以交错的方式实现。本发明人已经意识到,诸如存储器的块内的页之类的块内存储器元件的耗损是不均匀的。例如,在制造商设备的特定情况下,随着块上的擦除数量和随后的均匀页写入操作增加,块中通常包括的64页的前32页中发生的误差的平均数目在数量级上高于块的后32页中发生误差的平均数目。因此,在块中均匀分配的页写入导致块的页的不均匀的误码率(“BER”)。并且,随着时间推移,页的耗损增加,并且相应的原误码率也会增加。从而,在一般固态存储器的生命周期即将结束时,一些页展示出相对显著的更高的误差率,这导致在使用纠错方法的解码操作后所获得的用户误码率增加。这转而降低了这种存储器的耐久性。因此,这里提出了块内耗损均衡方案。另一要注意的是,由于典型的固态存储器通常布置在各个存储器单元的块中,每个块内具有多页单元,因此在此主要提出的是将非均匀负载应用于块中的页,其由于一次一页地执行编程操作(基于页,例如,对于NAND存储器),而在块级执行擦除操作,从而提供了方便的划分。然而,根据所考虑的存储器设备的类型,可预期其它划分。例如,对于提供字节级编程的设备,例如EEPROM,其它划分可能更方便。因而,更一般而言,负载算法带来至少一个存储器单元(或单元中的至少特定个单元)的非均匀负载分组。
再次参照图1的实施方式,如果在步骤108中确定已经表征过存储器235的块内页的误差行为(或者在从步骤112、步骤116表征块内页的误差行为、并了解块内页的误差行为从而使得误差行为显示超出预定阈值的相对显著的偏差之后),在步骤120中调用合适的负载分配算法,所述负载分配算法将负载(即写入)引导至非易失性存储器235内块的最不容易产生误差的页。为了在存储器单元中维持相对均等的耗损量(或者等价的每个页相对均等的误差数目),可将随后的写入操作主要引导到不容易产生误差的那些页。这种非均匀块内页加载类型在块的页之间实现相对均等的耗损均衡,其隐含了相似的误差行为。本发明的实施方式因而提高了非易失性存储器的可用生命周期。方法继而在步骤124中结束。
负载分配算法可包括其中根据静态非均匀页写入分配执行后续写入的负载分配算法。定义该分配从而使得所预期的页的长期耗损大致相似,由此带来相同数量级的误码概率。
备选地,负载分配算法可包括其中基于纠错码(“ECC”)统计来更新所选择块的每个页的可靠程度的负载分配算法。根据基于这些统计,周期性限定的动态非均匀页写入分配来执行后续写入,从而使得所预期的长期耗损大致相似,由此带来相同数量级的误码概率。
负载分配算法的实施方式的其它实现方式是可能的。
本发明的实施方式降低了非易失性存储器的块内的不平衡的耗损,从而使得误码率在块的页中没有显示出相对大的变化。在本发明的实施方式中通过加载比剩余页相对更不容易出现误差的页,实现了恢复耗损平衡。
如前所述,还可以预先知道存储器的行为。因此,根据存储器的制造商和类型,可预先知道(应当为统计地,甚或是猜测)比剩余页相对更不容易出现误差的页,或者例如通过监测存储块内页中误差的发生标识出比剩余页相对更不容易出现误差的页。因此,可将存储器的行为提供作为后续耗损均衡的输入。
甚至,在可预期***行为的情况下,不需要将行为作为输入给出。相反,可以将写入操作添加在前面(即,硬编码),从而平衡非易失性存储器的块内的耗损。在这种情况下,反映存储器行为的输入或配置数据如何影响(非均匀)负载算法被直接嵌入到驱动写入操作的程序或其它可执行对象等的源代码中。更一般地,对存储器单元的写入操作以非均匀的方式执行,从而平衡单元的耗损,并且在块内级的该方案与现有技术中已知的块间耗损均衡方案形成对比。
就这一点而言,如果仅存在一些由于误差数目不再能用设备的ECC进行纠正而不再被使用的页,则将全部块标记为坏块是一种浪费。现在假设预先知道存储器的行为(例如,一般情况下不同块中的相同页具有相似的耐久特性),继而可将块的页划分为两类或者更多类,从而使得同一类中的页具有大致相同的耐久性,由此限定较少的“弱”页和“强”页。继而可实现合适的负载算法(例如,硬编码),其根据它们的耐久特性加载页。例如,在最小实现方式中,可设计两个分类,一种用于弱页,另一种用于相对最强的页。最强的页可比最弱页更经常加载例如2倍。
在一个变形中,假设弱页的位置在存储器块内不是固定的,而是作为替代遵循相对于内部页地址的统计模式。在这种情况下,可使用统计方法以根据它们的耐久特性来加载页,例如,根据已知的统计模式,较不频繁地加载弱页,而较频繁地加载强页。因此从统计的意义上说,实现了子块耗损均衡。实际上,负载算法对于如下页的分组已经是非均衡的,所述页的大小很可能平均小于块的大小,并且不考虑页的分组是否属于同一个块,由此在这里使用了术语“子块耗损均衡”。现在,实现这样的算法导致至少一部分块(如果不是全部)是非均匀加载的,从而使得上文提及的“子块耗损均衡”有效地带来块内耗损均衡方案,即,对块内页的非均匀负载。顺便提及,负载算法不需要对全部分组(以及因此对所有的块)是相同的。
接下来,上述两个变形取决于先验(priori)信息(预先知道存储器的行为)。然而,如所讨论的,其它方式不依赖于这样的信息,而是作为替代“学习”存储器的行为。这在表征页的纠错信息的特征的情况下尤为显著。然而,在实施方式中,没有设备的先验信息也可确定将页的分组分类。从而,如果存在的话,特征化(或监测)在这种情况下可仅限于纠错信息。因此,非均匀负载算法将继而利用所监测的纠错信息。在缺少先验信息时,例如单个页可构建在其上应用非均匀负载算法的分类。
此外,从特定的角度看,在实施方式中,非均匀负载算法可以导致没有数据被写入单元或者块中的页。在这样的情况下,有问题的单元/页或其分类可被认为是停用的,或被标记为“坏”,而不必实际上将全部块标记为坏块。顺便提及,在使用分类时,可显式地维护有关停用分类的信息,而不要求用于存储该元数据信息的附加空间。这可例如通过利用例如在ONFI标准中限定的现有元数据位置,即坏块标记来实现。继而将分类的数量限制为坏块标记的大小。
实际上,已经表明使用本发明的块内耗损均衡的实施方式,非易失性存储器235的生命周期的改进幅度相对显著。如果考虑现有技术中已知的简单的均匀负载对比本发明的实施方式的非均匀负载(即,块内耗损均衡)的比较,对于相同数量的写入/擦除周期,本发明的实施方式导致在使用均匀块内加载时,最重要的页处的误码率(“BER”)(其为幅度量级)小于相同的页的BER。假设利用具有每页有k比特纠错能力的ECC码,则当在该块的至少一个页中发生k个或更多个错误的比特时将存储器的块确定为“坏”块。在这种情况下,对于每个加载方法的写入/擦除周期的不同数目,确定在最重要页的BER方面的相同的行为。例如,如果k=10,则本发明的实施方式的非均匀块内页加载在大约1M周期之后导致坏块情况,而已知的均匀块内页加载方法在大约500K周期之后导致坏块情况。如此,非易失性存储器的耐久性在这种情况下延长2倍。
本领域技术人员可以理解的是,除非易失性存储器之外,本发明的各方面可实施为***、方法或计算机程序产品。因此,本发明的方面可采用全部硬件实施方式、全部软件实施方式(在非易失性存储器235内中,包括固件、常驻软件、微代码等)或在此一般全部称之为“电路”、“模块”或“***”的、结合软件和硬件方面的实施方式的形式。此外,本发明的方面可采用在一个或多个计算机可读介质中实施的计算机程序产品的形式,其中计算机可读介质具有具体化于其上的计算机可读程序代码。
可利用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质例如可以是,但不局限于,电、磁、光、电磁、红外或半导体***、装置、或设备,或者前述的任意适当的组合。计算机可读存储介质的更具体示例(非穷尽的列表)将包括下列内容:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪速存储器)、光纤、便携式致密盘只读存储器(CD-ROM)、光存储设备、磁存储设备、或前述的任意适当的组合。在本文档的上下文中,计算机可读存储介质可以是可包含、或存储用于由指令执行***、装置或设备使用或与指令执行***、装置或设备结合使用的程序的任何有形的介质。
计算机可读信号介质可包括例如,在基带中或作为载波的一部分、具有具体化于其中的计算机可读程序代码的传播数据信号。这样的传播信号可采用各种形式的任意形式,包括但不局限于,电磁、光、或其任意合适的组合。计算机可读信号介质可以是并非计算机可读存储介质、并且可传达、传播或传输用于由指令执行***、装置或设备使用或与指令执行***、装置或设备结合使用的程序的任意计算机可读介质。
具体化于计算机可读介质中的程序代码可使用任意合适的介质进行传输,包括但不局限于无线、有线、光纤电缆、RF等。或者前述的任意合适的组合。
用于执行本发明的各方面的操作的计算机程序代码可按照一个或多个编程语言的任意组合编写,这些编程语言包括诸如Java、Smalltalk、C++等面向对象的编程语言和诸如“C”编程语言或类似编程语言之类的传统过程化编程语言。程序代码可全部在用户的计算机上执行、部分在用户的计算机上执行、作为独立的软件包、部分在用户计算机上执行部分在远程计算机上执行、或者全部在远程计算机或服务器上执行。在后一场景中,远程计算机可通过包括局域网(LAN)或广域网(WAN)在内的任意类型的网络与用户计算机连接、或可与外部计算机进行连接(例如,通过使用互联网服务提供商的互联网)。
下面将参照根据本发明的实施方式的流程图图示和/或方法、装置(***)和计算机程序产品的框图描述本发明的各方面。将理解的是,流程图图示和/或框图中的每个块,以及流程图图示和/或框图中的块的组合,可通过计算机程序指令来实现。可将这些计算机程序指令提供给通用计算机、专用计算机或其它可编程数据处理装置或设备(例如,在后者适于与一个或多个处理器耦合以执行所述指令时,固态存储器235自身)的处理器以产生机器,从而使得经由计算机或其它可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或一个框图块或多个框图块中指定的功能/动作的装置。
这些计算机程序指令还可存储在能够引导计算机、其它可编程数据处理装置或其它设备以特定方式运行的计算机可读介质中,从而使得存储在计算机可读介质中的指令产生包括实现流程图和/或一个框图块或多个框图块中指定的功能/动作的指令的制造品。
计算机程序指令还可加载到计算机、其它可编程数据处理装置、或其它设备上以使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供用于实现在流程图和/或一个框图块或多个框图块中指定的功能/动作的过程。
现在参照图2,计算机***200具有至少一个微处理器或中央处理器单元(CPU)205。CPU205经由***总线210与随机存取存储器(RAM)215、只读存储器(ROM)220、用于连接可移除数据和/或程序存储设备230和大容量数据和/或程序存储设备235的输入/输出(I/O)适配器225、用于连接键盘245和鼠标250的用户接口适配器240、用于连接数据端口260的端口适配器255以及用于连接显示设备270的显示适配器265互连。
ROM220包括用于计算机***200的基本操作***。操作***可备选地驻留在RAM215中或现有技术中已知的其它地方。可移除数据和/或程序存储设备230的示例包括诸如软盘驱动器和磁带驱动器之类的磁性介质,以及诸如CDROM驱动器之类的光介质。大容量数据和/或程序存储设备235的示例包括硬盘驱动器和诸如闪存或EPROM之类的非易失性存储器。除键盘245和鼠标250之外,诸如轨迹球、书写板、压板、麦克风、光笔、以及位置感知屏幕显示器之类的其它用户输入设备可与用户接口240连接。显示设备的示例包括阴极射线管(CRT)和液晶显示器(LCD)。
本领域技术人员可以创建具有合适应用接口的计算机程序并将其存储在***或数据和/或程序存储设备上,以简化本发明实施方式的实践。在操作中,用于本发明实施方式的信息、或创建以运行本发明实施方式的计算机程序被加载到合适的可移除数据和/或程序存储设备230上,通过数据端口260馈送或使用键盘245键入。
更具体地,如前所述,本发明的实施方式可在非易失性存储器设备235自身中实现。参照图3,这样的设备235可包括闪速存储器、EPROM、或其它类型的非易失性存储器,典型地采取固态设备(“SSD”)的形式。图3中示出了这样的SSD非易失性存储器设备235的示例性实施方式。这里,接口300通过总线304连接回I/O适配器225(图2)。接口300还在存储器设备235内通过数据总线308与缓冲器312连接,所述缓冲器312可包括动态随机存取存储器(“DRAM”)。缓冲器312经由控制总线316与存储器设备235的控制器320连接。同样连接到控制总线316的还有中央处理单元(“CPU”)324和静态RAM(“SRAM”)328。CPU324是存储器设备235的主控制器,而控制器320通过总线336将原始在总线308上的数据写入到多个非易失性存储器(“NVM”)单元332中。如果非易失性存储器设备235包括闪速存储器,则设备235内的多个存储器单元332可包括NAND单元或NOR单元。
作为存储器设备235的主控制器,CPU324协调向存储器单元332写入数据和从存储器单元332读取数据。CPU324还执行本发明的实施方式的块内耗损均衡方法。如上所述,该方法可具体化为嵌入到存储器设备内(例如,作为指令存储在存储器单元332中)并由CPU324执行的固件(例如,软件的微代码)。
在备选方式中,在以上述软件实现并使用图2的计算机***200执行的本发明的实施方式中,这种情况可应用于在非易失性存储器设备235中使用的技术的特征使得均匀加载条件下的非均匀耗损模式,并且预先知道特征和非均匀耗损模式两者的情形中。现在,注意到,非易失性存储器设备不需要“附接到”PC。事实上,无论所关注的固态存储器耦合到服务器、存储***、或PC等,实现当前的块内耗损均衡方案证明是有优势的。此外,无论设备是SSD、用作块设备的PCI附接设备、还是闪存高速缓存等,本实施方式的核心原则保持一致。
根据本发明的各种实施方式,附图中的流程图和框图图示了***、方法和计算机程序产品的可能的实现的架构、功能和操作。就这一点而言,流程图或框图中的每个块可表示模块、片段、或代码的一部分,其包括用于实现专用逻辑功能的一个或多个可执行指令。还应当注意到,在一些备选实现方式中,在块中所标的功能可以不按图中所标的顺序发生。例如,根据所涉及的功能,连续示出的两个块实际上可大体上同时执行,或者有时可以按照相反的顺序执行块。还将注意到,框图和/或流程图图示中的每个块,以及框图和/或流程图图示中的块的组合,可通过执行专用功能或动作的、基于专用硬件的***,或专用硬件和计算机指令的组合来实现。
在此使用的术语仅出于描述特定实施方式的目的,而并不旨在限制本发明。如在此所使用的,除非上下文另外明确指示,否则单数形式“一”、“一个”和“所述”旨在也包括复数形式。还将进一步理解的是,在说明书中使用术语“包括”和/或“包含”时,指定存在所陈述的特征、整体(integer)、步骤、操作、元件和/或组件,但是并不排除存在或附加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其分组。
在下面的权利要求中全部手段或步骤加上功能元件的相应的结构、材料、动作和等效物旨在包括用于结合作为具体要求的其它所要求的元件执行功能的任何结构、材料或动作。本发明的描述已经出于图示和描述的目的而呈现,但并不旨在是穷尽的,或将本发明限制为所公开的形式。在不偏离本发明的范围和精神的前提下,诸多修改和变形对本领域技术人员来说是明显的。选择和描述实施方式,以便于最好地解释本发明的原理和实际应用,并使得本领域其他普通技术人员能够针对具有适配于所考虑的特定用途的各种修改的各种实施方式来理解本发明。
Claims (18)
1.一种用于固态存储器内的块内耗损均衡的方法,所述固态存储器遭受耗损并具有在块中布置的多个存储器单元,所述方法包括以下步骤:
提供所述固态存储器内的所述多个存储器单元的至少一些存储器单元的行为,其中所述固态存储器内的所述多个存储器单元的所述至少一些存储器单元的所述行为包括所述固态存储器内的所述多个存储器单元的所述至少一些存储器单元的每个存储器单元发生误差的易感性;
以非均匀的方式写入所述固态存储器内的所述多个存储器单元的至少特定个存储器单元,从而使得在块内级平衡所述固态存储器内的所述多个存储器单元的所述至少特定个存储器单元的所述耗损,其中该步骤包括:基于所提供的所述固态存储器内的所述至少一些存储器单元的行为,写入所述固态存储器内的所述多个存储器单元的至少特定个存储器单元,由此以非均匀的方式写入所述固态存储器内的所述多个存储器单元的所述至少特定个存储器单元。
2.根据权利要求1所述的方法,其中所述提供步骤进一步包括:
如果没有表征所述固态存储器内的所述多个存储器单元的至少一些存储器单元的所述行为,则表征所述固态存储器内的所述多个存储器单元的至少一些存储器单元的所述行为。
3.根据权利要求2所述的方法,其中表征所述固态存储器内的所述多个存储器单元的至少一些存储器单元的行为进一步包括均匀写入所述固态存储器内的所述多个存储器单元的至少一些存储器单元,所述固态存储器布置为所述多个存储器单元的块内的页,以及监测均匀写入的所述块的页内所述多个存储器单元的所述至少一些存储器单元的误差。
4.根据权利要求2所述的方法,其中基于所表征的所述固态存储器内的所述至少一些存储器单元的行为,写入所述固态存储器内的所述多个存储器单元的至少特定个存储器单元进一步包括,根据静态非均匀页写入分配,写入所述多个存储器单元的所述至少特定个存储器单元,其中在块内布置为页的所述多个存储器单元的所预期的长期耗损大致相似,由此带来相同数量级的误码概率。
5.根据权利要求2所述的方法,其中基于所表征的所述固态存储器内的所述至少一些存储器单元的行为写入所述固态存储器内的所述多个存储器单元的至少特定个存储器单元进一步包括,根据动态非均匀页写入分配写入所述多个存储器单元的所述至少特定个存储器单元,其中所述动态非均匀页写入分配基于更新的纠错码统计周期性地进行限定,从而使得所述多个存储器单元的所述至少特定个存储器单元的所预期的长期耗损大致相似,由此带来相同数量级的误码概率。
6.根据权利要求1所述的方法,其中所述固态存储器包括闪速存储器、相变存储器和EPROM之一。
7.一种用于固态存储器内的块内耗损均衡的***,所述固态存储器遭受耗损并具有在块中布置的多个存储器单元,所述***包括:
用于提供所述固态存储器内的所述多个存储器单元的至少一些存储器单元的行为的模块,其中所述固态存储器内的所述多个存储器单元的所述至少一些存储器单元的所述行为包括所述固态存储器内的所述多个存储器单元的所述至少一些存储器单元的每个存储器单元发生误差的易感性;
用于以非均匀的方式写入所述固态存储器内的所述多个存储器单元的至少特定个存储器单元,从而使得在块内级平衡所述固态存储器内的所述多个存储器单元的所述至少特定个存储器单元的所述耗损的模块;其中所述用于写入的模块包括:用于基于所提供的所述固态存储器内的所述至少一些存储器单元的行为,写入所述固态存储器内的所述多个存储器单元的至少特定个存储器单元,由此以非均匀的方式写入所述固态存储器内的所述多个存储器单元的所述至少特定个存储器单元的子模块。
8.根据权利要求7所述的***,其中所述用于提供所述固态存储器内的所述多个存储器单元的至少一些存储器单元的行为的模块进一步包括:
用于如果没有表征所述固态存储器内的所述多个存储器单元的至少一些存储器单元的所述行为,则表征所述固态存储器内的所述多个存储器单元的至少一些存储器单元的行为的子模块。
9.根据权利要求8所述的***,其中表征所述固态存储器内的所述多个存储器单元的至少一些存储器单元的行为进一步包括均匀写入所述固态存储器内的所述多个存储器单元的至少一些存储器单元,所述固态存储器布置为所述多个存储器单元的块内的页,以及监测均匀写入的块的页内所述多个存储器单元的所述至少一些存储器单元的误差。
10.根据权利要求8所述的***,其中基于所表征的所述固态存储器内的所述至少一些存储器单元的行为,写入所述固态存储器内的所述多个存储器单元的至少特定个存储器单元进一步包括,根据静态非均匀页写入分配,写入所述多个存储器单元的所述至少特定个存储器单元,其中在块内布置为页的所述多个存储器单元的所预期的长期耗损大致相似,由此带来相同数量级的误码概率。
11.根据权利要求8所述的***,其中基于所表征的所述固态存储器内的所述至少一些存储器单元的行为写入所述固态存储器内的所述多个存储器单元的至少特定个存储器单元进一步包括,根据动态非均匀页写入分配写入所述多个存储器单元的所述至少特定个存储器单元,其中所述动态非均匀页写入分配基于更新的纠错码统计周期性地进行限定,从而使得所述多个存储器单元的所述至少特定个存储器单元的所预期的长期耗损大致相似,由此带来相同数量级的误码概率。
12.一种用于块内耗损均衡的***,包括:
计算网络,包括与一个或多个计算机存储器存储设备进行通信的处理设备;以及
所述计算网络进一步配置为实现用于固态存储器内的块内耗损均衡的方法,所述固态存储器遭受耗损并具有在块中布置的多个存储器单元,所述方法包括以下步骤:
提供所述固态存储器内的所述多个存储器单元的至少一些存储器单元的行为;
以非均匀的方式写入所述固态存储器内的所述多个存储器单元的至少特定个存储器单元,从而使得在块内级平衡所述固态存储器内的所述多个存储器单元的所述至少特定个存储器单元的所述耗损;其中该步骤包括:基于所提供的所述固态存储器内的所述至少一些存储器单元的行为,写入所述固态存储器内的所述多个存储器单元的至少特定个存储器单元,由此以非均匀的方式写入所述固态存储器内的所述多个存储器单元的所述至少特定个存储器单元,其中所述固态存储器内的所述多个存储器单元的所述至少一些存储器单元的所述行为包括所述固态存储器内的所述多个存储器单元的所述至少一些存储器单元的每个存储器单元发生误差的易感性。
13.根据权利要求12所述的***,其中在由所述计算网络实现的方法中,所述提供所述固态存储器内的所述多个存储器单元的至少一些存储器单元的行为的步骤进一步包括:
如果没有表征所述固态存储器内的所述多个存储器单元的至少一些存储器单元的所述行为,则表征所述固态存储器内的所述多个存储器单元的至少一些存储器单元的所述行为。
14.根据权利要求13所述的***,其中表征所述固态存储器内的所述多个存储器单元的至少一些存储器单元的行为进一步包括均匀写入所述固态存储器内的所述多个存储器单元的至少一些存储器单元,所述固态存储器布置为所述多个存储器单元的块内的页,以及监测均匀写入的块的页内所述多个存储器单元的所述至少一些存储器单元的误差。
15.根据权利要求13所述的***,其中基于所表征的所述固态存储器内的所述至少一些存储器单元的行为,写入所述固态存储器内的所述多个存储器单元的至少特定个存储器单元进一步包括,根据静态非均匀页写入分配,写入所述多个存储器单元的所述至少特定个存储器单元,其中在块内布置为页的所述多个存储器单元的所预期的长期耗损大致相似,由此带来相同数量级的误码概率。
16.根据权利要求13所述的***,其中所述固态存储器包括相变存储器、EPROM、以及具有多个NAND存储器单元的闪速存储器之一。
17.一种固态存储器,包括:
处理器;
多个存储器单元,其中所述处理器进一步配置为实现用于所述多个存储器单元的至少一些存储器单元的块内耗损均衡的方法,所述方法包括以下步骤:
提供所述固态存储器内的所述多个存储器单元的至少一些存储器单元的行为;
以非均匀的方式写入所述固态存储器内的所述多个存储器单元的至少特定个存储器单元,从而使得在块内级平衡所述固态存储器内的所述多个存储器单元的所述至少特定个存储器单元的所述耗损;其中该步骤包括:基于所提供的所述固态存储器内的所述至少一些存储器单元的行为,写入所述固态存储器内的所述多个存储器单元的至少特定个存储器单元,由此以非均匀的方式写入所述固态存储器内的所述多个存储器单元的所述至少特定个存储器单元,其中所述固态存储器内的所述多个存储器单元的所述至少一些存储器单元的所述行为包括所述固态存储器内的所述多个存储器单元的所述至少一些存储器单元的每个存储器单元发生误差的易感性。
18.根据权利要求17所述的固态存储器,其中在由所述处理器实现的所述方法中,所述提供所述固态存储器内的所述多个存储器单元的至少一些存储器单元的行为的步骤进一步包括:
如果没有表征所述固态存储器内的所述多个存储器单元的至少一些存储器单元的所述行为,则表征所述固态存储器内的所述多个存储器单元的所述至少一些存储器单元的所述行为。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/630,991 US8495281B2 (en) | 2009-12-04 | 2009-12-04 | Intra-block memory wear leveling |
US12/630,991 | 2009-12-04 | ||
PCT/IB2010/055471 WO2011067706A1 (en) | 2009-12-04 | 2010-11-29 | Intra-block memory wear leveling |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102640123A CN102640123A (zh) | 2012-08-15 |
CN102640123B true CN102640123B (zh) | 2016-02-17 |
Family
ID=43629604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080054745.6A Expired - Fee Related CN102640123B (zh) | 2009-12-04 | 2010-11-29 | 一种固态存储器、以及块内耗损均衡的方法和*** |
Country Status (5)
Country | Link |
---|---|
US (1) | US8495281B2 (zh) |
CN (1) | CN102640123B (zh) |
DE (1) | DE112010004656B4 (zh) |
GB (1) | GB2509478B (zh) |
WO (1) | WO2011067706A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120017052A1 (en) * | 2010-07-19 | 2012-01-19 | Sauber William F | Information Handling System Universal Memory Wear Leveling System and Method |
CN102567213B (zh) * | 2011-11-30 | 2014-09-24 | 华中科技大学 | 相变存储器的写均衡方法 |
US8832506B2 (en) * | 2012-01-20 | 2014-09-09 | International Business Machines Corporation | Bit error rate based wear leveling for solid state drive memory |
TWI455140B (zh) * | 2012-02-21 | 2014-10-01 | Fluiditech Ip Ltd | Flash memory usage period assessment method |
US20130262942A1 (en) * | 2012-03-27 | 2013-10-03 | Yung-Chiang Chu | Flash memory lifetime evaluation method |
US8868824B2 (en) | 2012-04-19 | 2014-10-21 | Microsoft Corporation | Solid-state drive management and control |
US9003224B2 (en) * | 2012-04-25 | 2015-04-07 | Western Digital Technologies, Inc. | Managing unreliable memory in data storage systems |
US9846641B2 (en) | 2012-06-18 | 2017-12-19 | International Business Machines Corporation | Variability aware wear leveling |
US9361167B2 (en) | 2012-10-24 | 2016-06-07 | SanDisk Technologies, Inc. | Bit error rate estimation for wear leveling and for block selection based on data type |
US20140115422A1 (en) * | 2012-10-24 | 2014-04-24 | Laurence H. Cooke | Non-volatile memory error correction |
US9195590B2 (en) * | 2013-08-29 | 2015-11-24 | Micron Technology, Inc. | Sub-sector wear leveling in memories |
FR3074317B1 (fr) * | 2017-11-27 | 2019-11-22 | Idemia Identity & Security France | Procede d'acces a une zone memoire non volatile de type flash d'un element securise, tel qu'une carte a puce |
KR102469539B1 (ko) | 2017-12-22 | 2022-11-22 | 삼성전자주식회사 | 비휘발성 메모리 장치, 비휘발성 메모리 장치의 동작 방법 및 저장 장치 |
US11294580B2 (en) * | 2017-12-22 | 2022-04-05 | Samsung Electronics Co., Ltd. | Nonvolatile memory device |
KR20200139573A (ko) * | 2019-06-04 | 2020-12-14 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101013395A (zh) * | 2007-02-06 | 2007-08-08 | 苏州超锐微电子有限公司 | 一种通过有条件耗损均衡算法提高Flash保留空间数据存储可靠性的方法 |
CN101533670A (zh) * | 2009-04-23 | 2009-09-16 | 北京握奇数据***有限公司 | 实现存储设备损耗均衡的方法及存储设备 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6230233B1 (en) * | 1991-09-13 | 2001-05-08 | Sandisk Corporation | Wear leveling techniques for flash EEPROM systems |
US6145069A (en) * | 1999-01-29 | 2000-11-07 | Interactive Silicon, Inc. | Parallel decompression and compression system and method for improving storage density and access speed for non-volatile memory and embedded memory devices |
WO2004040586A1 (en) * | 2002-10-28 | 2004-05-13 | Sandisk Corporation | Automated wear leveling in non-volatile storage systems |
US7012835B2 (en) * | 2003-10-03 | 2006-03-14 | Sandisk Corporation | Flash memory data correction and scrub techniques |
US20090193184A1 (en) * | 2003-12-02 | 2009-07-30 | Super Talent Electronics Inc. | Hybrid 2-Level Mapping Tables for Hybrid Block- and Page-Mode Flash-Memory System |
US7283395B2 (en) * | 2005-06-24 | 2007-10-16 | Infineon Technologies Flash Gmbh & Co. Kg | Memory device and method for operating the memory device |
US7656710B1 (en) * | 2005-07-14 | 2010-02-02 | Sau Ching Wong | Adaptive operations for nonvolatile memories |
US7509471B2 (en) * | 2005-10-27 | 2009-03-24 | Sandisk Corporation | Methods for adaptively handling data writes in non-volatile memories |
KR101202537B1 (ko) * | 2006-05-12 | 2012-11-19 | 애플 인크. | 메모리 디바이스를 위한 결합된 왜곡 추정 및 에러 보정 코딩 |
US7911834B2 (en) * | 2006-05-15 | 2011-03-22 | Apple Inc. | Analog interface for a flash memory die |
US7355892B2 (en) * | 2006-06-30 | 2008-04-08 | Sandisk Corporation | Partial page fail bit detection in flash memory devices |
US7885112B2 (en) * | 2007-09-07 | 2011-02-08 | Sandisk Corporation | Nonvolatile memory and method for on-chip pseudo-randomization of data within a page and between pages |
KR100881669B1 (ko) * | 2006-12-18 | 2009-02-06 | 삼성전자주식회사 | 비휘발성 데이터 저장장치의 정적 데이터 영역 검출 방법,마모도 평준화 방법 및 데이터 유닛 병합 방법과 그 장치 |
US7804718B2 (en) * | 2007-03-07 | 2010-09-28 | Mosaid Technologies Incorporated | Partial block erase architecture for flash memory |
US7477547B2 (en) * | 2007-03-28 | 2009-01-13 | Sandisk Corporation | Flash memory refresh techniques triggered by controlled scrub data reads |
US7917689B2 (en) * | 2007-12-28 | 2011-03-29 | Intel Corporation | Methods and apparatuses for nonvolatile memory wear leveling |
TWI354996B (en) * | 2007-12-31 | 2011-12-21 | Phison Electronics Corp | Wear leveling method and controller thereof |
TWI398770B (zh) * | 2008-07-08 | 2013-06-11 | Phison Electronics Corp | 用於快閃記憶體的資料存取方法、儲存系統與控制器 |
-
2009
- 2009-12-04 US US12/630,991 patent/US8495281B2/en not_active Expired - Fee Related
-
2010
- 2010-11-29 WO PCT/IB2010/055471 patent/WO2011067706A1/en active Application Filing
- 2010-11-29 CN CN201080054745.6A patent/CN102640123B/zh not_active Expired - Fee Related
- 2010-11-29 GB GB1205097.7A patent/GB2509478B/en active Active
- 2010-11-29 DE DE112010004656.5T patent/DE112010004656B4/de active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101013395A (zh) * | 2007-02-06 | 2007-08-08 | 苏州超锐微电子有限公司 | 一种通过有条件耗损均衡算法提高Flash保留空间数据存储可靠性的方法 |
CN101533670A (zh) * | 2009-04-23 | 2009-09-16 | 北京握奇数据***有限公司 | 实现存储设备损耗均衡的方法及存储设备 |
Also Published As
Publication number | Publication date |
---|---|
DE112010004656B4 (de) | 2017-07-13 |
US8495281B2 (en) | 2013-07-23 |
CN102640123A (zh) | 2012-08-15 |
GB201205097D0 (en) | 2012-05-09 |
GB2509478A (en) | 2014-07-09 |
DE112010004656T5 (de) | 2012-10-31 |
WO2011067706A1 (en) | 2011-06-09 |
US20110138103A1 (en) | 2011-06-09 |
GB2509478B (en) | 2016-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102640123B (zh) | 一种固态存储器、以及块内耗损均衡的方法和*** | |
US10082962B2 (en) | Wear leveling of a memory array | |
CN102918601B (zh) | 存储的单元/页/子页/块的损耗均衡 | |
US10884914B2 (en) | Regrouping data during relocation to facilitate write amplification reduction | |
US10365859B2 (en) | Storage array management employing a merged background management process | |
US11803325B2 (en) | Specifying media type in write commands | |
CN109783017B (zh) | 一种存储设备坏块的处理方法、装置及存储设备 | |
US20130054873A1 (en) | Storage system cache using flash memory with direct block access | |
US9727244B2 (en) | Expanding effective storage capacity of a data storage system while providing support for address mapping recovery | |
US10936205B2 (en) | Techniques for retention and read-disturb aware health binning | |
US10489086B1 (en) | Reducing read errors by performing mitigation reads to blocks of non-volatile memory | |
US9740609B1 (en) | Garbage collection techniques for a data storage system | |
US9274943B2 (en) | Storage unit management method, memory controller and memory storage device using the same | |
CN104641419A (zh) | 固态驱动器控制器、固态驱动器、固态驱动器的数据处理方法、多通道固态驱动器、raid控制器以及其中记录有用于向固态驱动器提供顺序信息的计算机程序的计算机可读记录介质 | |
US9524116B1 (en) | Reducing read-after-write errors in a non-volatile memory system using an old data copy | |
US10101938B2 (en) | Data storage system selectively employing multiple data compression techniques | |
US10115472B1 (en) | Reducing read disturb effect on partially programmed blocks of non-volatile memory | |
US11449266B2 (en) | Memory sub-system event log management | |
TW201603030A (zh) | 防止讀取干擾的方法、記憶體控制電路單元與記憶體儲存裝置 | |
US20170115900A1 (en) | Dummy page insertion for flexible page retirement in flash memory storing multiple bits per memory cell | |
US11733909B2 (en) | Secure-erase prediction for data storage devices | |
US10162747B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
CN106033681B (zh) | 存储器控制电路单元、存储器储存装置及数据存取方法 | |
CN104810059B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160217 Termination date: 20181129 |
|
CF01 | Termination of patent right due to non-payment of annual fee |