CN102667944A - 通过写入后读取和适应性重写来管理错误的非易失性存储器和方法 - Google Patents
通过写入后读取和适应性重写来管理错误的非易失性存储器和方法 Download PDFInfo
- Publication number
- CN102667944A CN102667944A CN2010800490161A CN201080049016A CN102667944A CN 102667944 A CN102667944 A CN 102667944A CN 2010800490161 A CN2010800490161 A CN 2010800490161A CN 201080049016 A CN201080049016 A CN 201080049016A CN 102667944 A CN102667944 A CN 102667944A
- Authority
- CN
- China
- Prior art keywords
- data
- copy
- memory
- authentic copy
- storer
- 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.)
- Granted
Links
Images
Classifications
-
- 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
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; 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
-
- 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/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- 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/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/562—Multilevel memory programming aspects
- G11C2211/5621—Multilevel programming verification
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Abstract
在非易失性存储器中的数据错误不可避免地随使用和每个单元存储的位的更高密度而增加。为了保证可接受的质量,传统的错误校正码(“ECC”)必须校正高达统计总体的远尾端的最大数量的错误位。本方面的存储器被配置为具有以较少错误操作但具有较低密度存储的第一部分以及以更高密度操作但更不强健存储的第二部分。如果在向第二部分写入一组数据之后发生(在远尾端处的)过量错误位,则该数据被适应性地重写到将产生更少错误位的第一部分。优选地,数据初始被写到也在第一部分中的缓存,以为任何重写提供源数据。因此,可以使用不需要校正远尾端的更有效的ECC。
Description
技术领域
本申请涉及诸如半导体闪存的可重编程的非易失性存储器系统的操作,且更具体地,涉及处理和有效管理存储器操作中的错误。
背景技术
能够非易失性地存储电荷的固态存储器、尤其是以被包装为小形状因子卡的EEPROM和快闪EEPROM的形式的固态存储器,近来已经变为在各种移动和手持设备、特别是信息用品和消费者电子产品中的存储的选择。不像也是固态存储器的RAM(随机存取存储器),闪存是非易失性的,且即使在掉电之后也维持其存储的数据。而且,不像ROM(只读存储器),闪存类似于盘存储设备而可重写。尽管有较高的成本,但闪存仍然逐渐用于大容量存储应用中。基于诸如硬盘和软盘的旋转磁介质的传统大容量存储器不适用于移动和手持环境。这是因为磁盘趋于大容量,易于产生机械故障,且具有高延迟时间和高功率需求。这些不期望的属性使得基于盘的存储器在大多数移动和便携式应用中不实际。另一方面,嵌入式和以可移除卡的形式的闪存由于其小尺寸、低功耗、高速度和高可靠性特性而理想地适用于移动和手持环境。
快闪EEPROM类似于EPROM(电可擦除可编程只读存储器)之处在于其是可以被擦除且使得新数据被写入或″编程″到其存储器单元中的非易失性存储器。在场效应晶体管结构中,两者利用在源极和漏极区域之间的、位于半导体衬底中的沟道区之上的浮置(未连接)导电栅极。然后,控制栅极被提供在浮置栅极上。晶体管的阈值电压特性受浮置栅极上保留的电荷量控制。也就是说,对于在浮置栅极上的给定水平的电荷,存在必须在晶体管″导通″以允许在其源极和漏极区域之间导电之前施加到该控制栅极的对应电压(阈值)。具体地,诸如快闪EEPROM的闪存允许同时擦除存储器单元的各整个块。
浮置栅极可以保持一范围的电荷,且因此可以被编程到阈值电压窗内的任意阈值电压电平。由器件的最小和最大阈值电平来界定(delimit)阈值电压窗的尺寸,该最小和最大阈值电平又对应于可以被编程到浮置栅极上的电荷的范围。该阈值窗通常取决于存储器器件的特征、操作条件和历史。在该窗内的每个不同的、可分辨的阈值电压电平范围原则上可以用于指定单元的明确的存储器状态。
在当前商业产品中快闪EEPROM阵列的每个存储元件普遍地通过以二进制模式操作来存储单个位的数据,其中,存储元件晶体管的两个范围的阈值电平被定义为存储电平。晶体管的阈值电平对应于其存储元件上存储的电荷电平的范围。除了缩小存储器阵列的尺寸以外,趋势是通过在每个存储元件晶体管中存储多于一位数据来进一步增加这种存储器阵列的数据存储的密度。这通过将多于两个阈值电平定义为每个存储元件晶体管的存储状态来实现,现在在商业产品中包括四个这种状态(每个存储元件2位数据)。也正实现每个存储元件的更多存储状态,比如16个状态。每个存储元件存储器晶体管具有其可以实际被操作的阈值电压的特定总范围(窗),且该范围被划分为为其定义的多个状态加上在这些状态之间的、允许它们彼此清楚地区分的余量。显然,存储器单元被配置以存储的位越多,其必须在其中操作的错误余量越小。
用作存储器单元的晶体管通常通过两个机制之一编程到″已编程″状态。在″热电子注入″中,施加到漏极的高电压加速电子穿过衬底沟道区域。同时,在施加到控制栅极的高电压拉动热电子经过薄栅极电介质到浮置栅极上。在″遂穿注入″中,相对于衬底,高电压被施加到控制栅极。以此方式,将电子从衬底拉到中间的(intervening)浮置栅极。虽然已经在历史上使用术语“编程”来描述通过向存储器单元的初始擦除的电荷存储单元注入电子以便改变存储器状态而向存储器的写入,但是现在与诸如″写入″或″记录″的更通用的术语可互换地使用。
可以通过多种机制来擦除存储器器件。对于EEPROM,可通过相对于控制栅极向衬底施加高电压以便诱导浮置栅极中的电子遂穿过薄氧化物到衬底沟道区(即,Fowler-Nordheim隧穿)而电擦除存储器单元。通常,EEPROM可逐字节擦除。对于快闪EEPROM,该存储器可一次全部或一次一个或多个最小可擦除块地被电擦除,其中,最小可擦除块可以由一个或多个扇区构成,且每个扇区可以存储512字节或更多的数据。
存储器器件通常包括可以被安装到卡上的一个或多个存储器芯片。每个存储器芯片包括由诸如解码器和擦除、写和读电路的外围电路支持的存储器单元的阵列。更复杂的存储器器件还与进行智能且较高级存储器操作和接口(interfacing)的控制器一起出现。
存在当今正使用的许多商业成功的非易失性固态存储器器件。这些存储器器件可以是快闪EEPROM,或可以使用其他类型的非易失性存储器单元。在美国专利号5,070,032、5,095,344、5,315,541、5,343,063、5,661,053、5,313,421和6,222,762中给出了快闪存储器及系统和制造它们的方法的例子。具体地,在美国专利号5,570,315、5,903,495、6,046,935中描述了具有NAND串结构的闪存器件。而且,还从具有用于存储电荷的介电层的存储器单元制造非易失性存储器器件。取代先前描述的导电浮置栅极元件,使用介电层。使用介电存储元件的这种存储器器件已经由以下描述:Eitan等人的“NROM:ANovel Localized Trapping,2-Bit Nonvolatile Memory Cell”,IEEE ElectronDevice Letters,vol.21,no.11,2000年11月,543-545页。ONO介电层穿过源极和漏极扩散之间的沟道而延伸。一个数据位的电荷被定位(localize)在与漏极相邻的介电层中,且另一数据位的电荷被定位在与源极相邻的介电层中。例如,美国专利第5,768,192和6,011,725号公开了具有夹在两个二氧化硅层之间的捕获电介质(trapping dielectric)的非易失性存储器单元。通过分开地读取电介质内的空间上分开的电荷存储区的二进制状态来实现多状态数据存储。
为了改善读取和编程性能,并行读取或编程在阵列中的多个电荷存储元件或存储器晶体管。因此,″一页″存储器元件被一起读取或编程。在现有存储器架构中,一行通常包含若干交织的页,或其可以组成一页。一页的所有存储器元件将一起被读取或编程。
写入的数据中的错误
在此说明的这些类型的存储器系统中以及在其他存储器系统中,包括磁盘存储系统,通过使用错误校正技术来维持被存储的数据的完整性。对于一次存储的数据的每个扇区或其他单元计算错误校正码(ECC),且该ECC与该数据一起存储。ECC最通常与用户数据的单元组一起存储,其中已经从该单元组计算了ECC。用户数据的单元组可以是扇区或多扇区页。当从存储器读取该数据时,使用ECC来确定被读取的用户数据的完整性。通常可以通过使用ECC来校正数据的单元组内的数据的错误位。
趋势是减小存储器系统的大小以便能够在该系统中放置更多的存储器单元以及使得该系统尽可能小以适应更小的主机设备。通过电路的更高集成以及配置每个存储器单元存储更多位数据的组合来增加存储器容量。这两种技术要求存储器以增加的更收紧的错误余量来操作。这又对校正错误的ECC提出更高的要求。
可以设计ECC来校正预定数量的错误位。其需要校正的位越多,该ECC将越复杂且更多计算量。为了质量保证,基于在存储器器件的寿命末期的预计最差情况单元错误率来设计传统ECC。因此,它们必须校正高达错误率的统计总体的远在尾端的最大数量的错误位。
随着快闪存储器老化,其错误率在该器件的寿命末期附近迅速增加。因此,仅需要为最差情况设计的强大ECC在存储器器件的寿命末期时应用其全部性能。
使用ECC来校正最差情况数量的错误位将消耗更大量的处理时间。其需要校正的位越多,所需的计算时间越多。存储器性能将降低。可以实现另外的专用硬件来在合理时间量进行ECC。这种专用硬件可能在控制器ASIC芯片上占据相当量的空间。另外,对于器件的大多数寿命时间,仅有余量地使用ECC,导致其大量开销被浪费且没有实现真正收益。
因此,需要提供高存储容量、不需要为最差情况设计的资源密集的ECC的非易失性存储器。
发明内容
根据本发明的一般方面,具有存储器单元的阵列的快闪存储器被配置有第一部分和第二部分。该第二部分以更高密度存储数据,但用比第一部分更小的错误余量来操作。为了有效存储,数据被写到第二部分。然后,在写入后读取操作中读回该数据来检查过量的错误位。如果错误位超过了预定量,则数据被重写到更少错误倾向的第一部分。这对由于将数据写到存储器而产生的错误位的最大数量施加了限制。在错误率的统计分布中,该限制表示对该分布的数量标准偏差的限制,以便可以忽略(具有更高错误率的)分布的远尾端(far tail end)。这允许设计更小和更有效的错误校正码(“ECC”)用于校正较小数量的错误位,由此改善存储器的性能并降低成本。
在一个优选实施例中,第一部分使每个存储器单元存储一位数据,且第二部分使每个存储器单元存储多于一位数据。
在替换的实施例中,第一部分用作用于到来的数据的缓存,因此输入数据的缓存副本被编程到该缓存中。然后,数据的第一副本被编程到第二部分中。如果写入后读取没有检测到第一副本中的过量错误,第一副本将被视为有效,且随后的读取将被导向访问第一副本。另一方面,如果写入后读取已检测到第一副本中的过量错误,在第一部分中的缓存的副本将替换第二部分中的第一副本作为有效数据。第一副本将变为废弃的,且随后访问将被导向该缓存的副本。
在优选实施例中,第一部分进一步被提供有第一区块和第二区块。到来的数据被缓存在第一部分的第一区块中,且该数据的第一副本被写到第二部分。然后,第二部分中的第一副本被读回以检查过量错误位。如果错误位超过预定量,到来的数据的第二副本被写到第一部分的第二区块。
根据另一优选实施例,存储器阵列被提供有在集成电路芯片上的数据锁存器集,通过将第一副本和缓存的副本加载到该数据锁存器集中并在该数据锁存器集处进行比较来实现在第一副本中的错误位的检查。
在替换实施例中,在写入后读取已检测到第一副本中的过量错误之后,第一部分中的缓存的副本将替换第二部分中的第一副本作为有效数据。第一副本将变为废弃的,且在控制器(见图1)的固件中实现的块管理系统中的目录将更新为对该缓存的副本的直接随后访问。
因此,当向存储器的高密度存储部分写入时,写入后读取检查错误率是否在规定的限制内。如果不是,则数据被重写到存储器的另一更小错误倾向的部分。相比高密度存储部分,更少错误倾向的部分通常具有每单元存储更少数据位的每个存储器单元。通过提供机制来控制并限制在向高密度存储器写入之后产生的错误,以及如果在高密度存储器中的副本具有过量错误则提供第二机会来重写具有更少错误的数据,ECC将需要校正的错误率的数量显著减少。以另外的写入后读取和对较低密度存储器部分的不频繁的另外的重写的微小开销获得该优点。
例如,存储器的高密度存储部分具有存储3位数据的每个存储器单元。更少错误倾向的部分具有存储1位数据的每个存储器单元。估计通过将错误率限制在三个标准偏差(3σ)内,而不是6σ的传统最差情况方式,ECC仅需要校正4位而不是42位。限制到3σ是预期总体的0.13%具有超过4位的错误率。带来的代价是,在具有多于4个错误位(总体的0.13%)的高密度存储器中写入的数据将简单地使得数据被重写到更低密度存储器来避免超过错误限制。相比较,在传统方式中,为最差情况设计的校正42位写错误的ECC一直携带大的管理开销,尽管大多数时间其仅需要校正少得多数量的位。
附图说明
图1图示与体现本发明的特征的存储器器件通信的主机。
图2示意性地图示了非易失性存储器单元。
图3图示了存储器单元的NOR阵列的例子。
图4图示了被并行感测或编程的在例如NAND配置中组织的一页存储器单元。
图5A将图1所示的感测模块更详细地图示为包含跨过存储器单元的阵列的一堆p个感测模块。
图5B图示包括感测放大器的感测模块。
图6示意性地示出在可擦除块中组织的存储器阵列的例子。
图7图示具有每个单元处于两个可能状态之一的全体单元的二进制存储器。
图8图示具有每个单元处于八个可能状态之一的全体单元的多状态存储器。
图9示意性地图示包含ECC字段的数据页。
图10A示出全体的百分比在各种范围的标准偏差σ的错误率的正态分布。
图10B图示表格形式的图10A的分布。
图11是列出闪存的主要错误源的表格。
图12是示出在示例存储器器件的寿命初期和末期该示例存储器器件的估计的总错误的表格。
图13是图示必须设计传统的ECC来校正最差情况的总错误ETOT的表格。
图14A图示根据本发明的优选实施例的被划分为两个部分的存储器阵列。
图14B图示将数据页的第二副本重写到图14A的存储器阵列的第一部分中。
图15是图示根据图14A和图14B中描述的实施例的写入后读取和适应性重写的处理的流程图。
图16A图示根据本发明的优选实施例的被划分为两个部分且第一部分进一步被提供有缓存部分和重写部分的存储器阵列。
图16B图示根据写入后读取的优选实施例的页比较技术。
图16C图示在写入后读取确定了在第二部分中的数据页中的过量错误之后向第一部分的重写。
图17是图示根据图16A到图16C中描述的实施例的写入后读取和适应性重写的处理的流程图。
具体实施方式
存储器系统
图1图示与其中体现本发明的特征的存储器器件通信的主机。主机80通常发送要在存储器器件90处存储的数据,或通过读存储器器件90来取得数据。存储器器件90包括由控制器102管理的一个或多个存储器芯片100。该存储器芯片100包括存储器单元的存储器阵列200,每个单元能够被配置为用于存储多位数据的多电平单元(″MLC″)。该存储器芯片还包括诸如感测模块480、数据锁存器430和I/O电路440的外围电路。芯片上控制电路110控制每个芯片的低级存储器操作。控制电路110是与外围电路合作以对存储器阵列200进行存储器操作的芯片上控制器。该控制电路110通常包括状态机112来提供存储器操作的芯片级控制。
在许多实施方式中,主机80经由控制器102与存储器芯片100通信和交互。该控制器102与存储器芯片协作,并控制和管理更高级的存储器操作。例如,在主机写入中,主机10发送要写到在从主机的操作系统的文件系统分配的逻辑扇区中的存储器阵列100的数据。在控制器中实现的存储器块管理系统对这些扇区阶段性存储(stage),并将它们映射并存储到存储器阵列的物理结构。
在2009年1月1日提交的美国专利申请第12/348,891号中公开了优选的块管理系统,其整个公开被引用合并于此。
固件60提供代码以实现控制器102的功能。错误校正码(“ECC”)处理器62在存储器器件的操作期间处理ECC。在另一实施例中,在主机内实现控制器102。
物理存储器结构
图2示意性地图示了非易失性存储器单元。存储器单元10可以由具有诸如浮置栅极或介电层的电荷存储单元20的场效应晶体管实现。存储器单元10还包括源极14、漏极16和控制栅极30。
存在当今正使用的许多商业成功的非易失性固态存储器器件。这些存储器器件可以使用不同类型的存储器单元,每个类型具有一个或多个电荷存储元件。典型的非易失性存储器单元包括EEPROM和快闪EEPROM。在美国专利第5,595,924号中给出了EEPROM单元和制造它们的方法的例子。在美国专利第5,070,032、5,095,344、5,315,541、5,343,063、5,661,053、5,313,421和6,222,762号中给出了快闪EEPROM单元、其在存储器系统中的使用和制造它们的方法的例子。具体地,在美国专利第5,570,315、5,903,495、6,046,935号中描述了具有NAND单元结构的存储器器件的例子。而且,使用介电存储元件的存储器器件已经由以下描述:Eitan等人的“NROM:ANovel LocalizedTrapping,2-Bit Nonvolatile Memory Cell”,IEEE Electron Device Letters,vol.21,no.11,2000年11月,543-545页和美国专利第5,768,192和6,011,725号。
实践中,通常通过当向控制栅极施加参考电压时感测跨过单元的源极和漏极的导电电流来读取该单元的存储器状态。因此,对于单元的浮置栅极上的每个给定的电荷,可以检测到针对固定参考控制栅极电压的相应导电电流。相反,阈值电压被定义为以给定的电荷将刚好导通该单元的在控制栅极上的电压。类似地,可编程到浮置栅极上的电荷的范围定义了对应的阈值电压窗或对应的导电电流窗。
或者,代替检测在划分的电流窗之间的导电电流,能够在控制栅极处在测试下为给定存储器状态设置阈值电压,并检测导电电流是低于还是高于阈值电流。在一个实施方式中,通过检查导电电流通过位线的电容或已知电容器而放电的速率来实现针对阈值电流检测导电电流。
如可以从上述描述看出的,使得存储器单元存储的状态越多,其阈值窗划分得越精细。例如,存储器器件可以具有拥有范围从-1.5V到5V的阈值窗的存储器单元。这提供了6.5V的最大宽度。如果该存储器单元要存储16个状态,则每个状态可以在阈值窗中占据200mV到300mV。这将需要在编程和读操作中的更高的精度以便能够实现需要的分辨率。
存储器阵列200通常被组织为在行和列中排列且可由字线和位线寻址的二维阵列的存储器单元。可以根据NOR类型或NAND类型架构来形成该阵列。
图3图示了存储器单元的NOR阵列的例子。在存储器阵列200中,每行存储器单元通过其源极14和漏极16以菊链方式连接。该设计有时称为虚拟接地设计(virtual ground design)。一行中的单元10使其控制栅极30连接到诸如字线42的字线。一列中的单元使其源极和漏极分别连接到诸如位线34和36的所选位线。
图4图示了被并行感测或编程的在例如NAND配置中组织的一页存储器单元。图4主要示出了存储器阵列200中的NAND串50的堆(bank)。NAND串50包括通过其源极和漏极菊链链接的一系列存储器晶体管(例如4、8、16个或更多)。一对选择晶体管S1、S2控制存储器晶体管链分别经由NAND串的源极端和漏极端与外部的连接。在存储器阵列中,当导通源极选择晶体管S1时,源极端耦合于源极线34。类似地,当导通漏极选择晶体管S2时,NAND串的漏极端耦合于存储器阵列的位线36。在该链中的每个存储器晶体管10担当存储器单元。其具有电荷存储元件20来存储给定量的电荷以便表示意图的存储器状态。每个存储器晶体管的控制栅极允许对读取和写入操作的控制。一行NAND串的对应存储器晶体管的控制栅极都连接到相同字线(比如WL0、WL1,......)。类似地,(分别经由选择线SGS和SGD访问的)每个选择晶体管S1、S2的控制栅极提供分别经由其源极端和漏极端对NAND串的控制访问。
当在编程期间读或验证在NAND串内的被寻址的存储器晶体管10时,经由公共字线向其控制栅极供应适当的电压。同时,通过对NAND串50中的剩余未寻址的存储器晶体管的控制栅极施加足够的电压来完全导通该剩余未寻址的存储器晶体管。以此方式,有效地创建了从各个存储器晶体管的源极到NAND串的源极端的导电路径,且类似地对于各个存储器晶体管的漏极到该单元的漏极端创建了导电路径。在美国专利第5,570,315、5,903,495、6,046,935号中描述了具有这样的NAND串结构的存储器器件。
诸如页70的″页″是被使得能够并行被感测或编程的一组存储器单元。这通过相应页的感测放大器来实现。例如,页70沿着一行,且通过施加到共同连接到字线WL3的、该页的单元的控制栅极的感测电压来感测。沿着每列,诸如单元10的每个单元可由感测放大器经由位线36来访问。以上所称的页是物理页存储器单元或感测放大器。这取决于上下文,在每个单元都存储的情况下。
感测电路和技术
图5A将图1所示的感测模块更详细地图示为包含跨过存储器单元的阵列的一堆p个感测模块。并行地工作的整堆p个感测模块480允许沿着一行的一组(或物理页)p个单元10被并行读取或编程。基本上,感测模块1将感测在单元1中的电流I1,感测模块2将感测在单元2中的电流I2,......,感测模块p将感测在单元p中的电流Ip,等等。该页的从源极线34流出到聚集节点CLSRC中且从那里流到地的总单元电流iTOT将是p个单元中的所有电流的总和。
在传统的存储器架构中,具有公共字线的一行存储器单元形成两个或多个页,其中,在一页中的存储器单元被并行读取和编程。在一行具有两页的情况下,一页被偶数位线访问,且另一页被奇数位线访问。一个物理页的感测电路在任一时间被耦合到偶数位线或耦合到奇数位线。
在当前生产的芯片中,物理页可以是64k或更大。在优选实施例中,组是一系列(a run of)整行单元。这是所谓的“全位线”架构,其中,该页由分别耦合于连续位线的一行连续的存储器单元构成。
图5B图示包括感测放大器的感测模块。感测放大器490检测单元的导电电流高于还是低于参考水平。感测的结果被锁存在对应的锁存器集430中(见图1)。
擦除块
在快闪存储器和其他类型存储器之间的一个重要差别是必须从已擦除状态编程单元。也就是说,浮置栅极必须首先清空电荷。然后,编程向浮置栅极添加回期望的电荷量。其不支持将电荷的一部分从浮置栅极移除以从较高的编程状态去往较低的编程状态。这意味着,更新的数据不能重写已有的数据,且必须被写到先前未写入的位置。
另外,擦除要将所有电荷从浮置栅极中清空,且通常花费相当多的时间。由于这个原因,这将很麻烦,且逐单元或甚至逐页地擦除是很慢的。实践中,存储器单元的阵列被划分为大量存储器单元块。如对于快闪EEPROM系统共同的,该块是擦除的单位。即,每个块包含一起被擦除的最小数量的存储器单元。
图6示意性地示出在可擦除块中组织的存储器阵列的例子。电荷存储存储器器件的编程仅会导致向其电荷存储元件添加更多的电荷。因此,在编程操作之前,必须移除(或擦除)在存储器单元的电荷存储元件中的已有电荷。当一起(即,在一次快闪中)电擦除整个单元阵列200、或该阵列的大量单元组时,诸如EEPROM的非易失性存储器被称为“快闪”EEPROM。一旦被擦除,然后,可以重新编程该组单元。可一起擦除的该组单元可以包括一个或多个可寻址的擦除单元300。擦除单元或块300通常存储一页或多页数据,页是编程和读取的最小单位,虽然可以在单个操作中编程或读多于一页。每页通常存储一个或多个数据扇区,扇区的尺寸由主机系统来限定。一个例子是遵循随磁盘驱动器建立的标准的512字节的用户数据加上关于用户数据和/或其所存储在的该块的管理开销信息的一些字节的扇区。
在图6所示的例子中,存储器阵列200中的各个存储器单元可由诸如WL0-WLy的字线42和诸如BL0-BLx的位线36来访问。该存储器被组织为擦除块,比如擦除块0、1......m..。也参考图5A和5B,如果NAND串50包含16个存储器单元,则该阵列中的第一堆NAND串将可由选择线44和诸如WL0到WL15的字线42来访问。擦除块0被组织为具有一起擦除的第一堆NAND串的所有存储器单元。在另一存储器架构中,可以一起擦除多于一堆的NAND串。
二进制(SLC)和多状态(MLC)存储器划分的例子
如之前所述,非易失性存储器的例子由场效应晶体管的阵列形成,每个场效应晶体管具有在其沟道区和其控制栅极之间的电荷存储层。电荷存储层或单元可以存储一范围的电荷,带来对于每个场效应晶体管的一范围的阈值电压。可能的阈值电压的范围跨度为阈值窗。当该阈值窗被划分为阈值电压的多个子范围或区时,每个可分辨的区用于表示存储器单元的不同存储器状态。可以由一个或多个二进制位来编码多个存储器状态。
图7图示具有每个单元处于两个可能状态之一的全体单元的二进制存储器。每个存储器单元的阈值窗被单个分界电平划分为两个不同区域。如图7(0)所示,在读取期间,在较低区域和较高区域之间的读取分界电平rV1用于确定单元的阈值电平位于哪个区域。如果该单元的阈值位于较低区域中则其处于″已擦除″状态中,且如果其阈值位于较高区域中则处于″已编程″状态。图7(1)图示存储器初始地具有处于″已擦除″状态中的所有其单元。图7(2)图示一些单元被编程到″已编程″状态。1位或二进制码用于编码这些存储器状态。例如,位值“1”表示“已擦除”状态,且“0”表示“已编程”状态。通常,通过施加一个或多个编程电压脉冲来进行编程。在每个脉冲之后,感测该单元来验证阈值是否已经移动超出验证分界电平vV1。具有这种存储器单元划分的存储器被称为″二进制″存储器或单电平单元(″SLC″)存储器。将看到,二进制或SLC存储器以宽的错误余量来操作,因为整个阈值窗仅被两个区域占据。
图8图示具有每个单元处于八个可能状态之一的全体单元的多状态存储器。每个存储器单元的阈值窗由至少七个分界电平划分为八个不同区域。如图8(0)所示,在读取期间,使用读取分界电平rV1到rV7来确定单元的阈值电平位于哪个区域。如果该单元的阈值位于最低区域中则其处于″已擦除″状态中,且如果其阈值位于较高区域中则处于多个″已编程″状态之一。图8(1)图示存储器初始地具有处于″已擦除″状态的所有其单元。图8(2)图示一些单元被编程到″已编程″状态。具有较低位、中间位和较高位的3位码可以用于表示八个存储器状态的每个。例如,分别由“111”、“011”、“001”、“101”、“100”、“000”、“010”和“110”表示“0”、“1”、“2”、“3”、“4”、“5”、“6”和“7”状态。通常,通过施加一个或多个编程电压脉冲来进行编程。在每个脉冲之后,感测该单元来验证该阈值是否已经移动超出作为验证分界电平vV1到vV7之一的基准。具有这种存储器单元划分的存储器被称为″多状态″存储器或多电平单元(″MLC″)存储器。
类似地,存储4位码的存储器将具有较低位、第一中间位、第二中间位和较高位,表示十六个状态的每个。通过至少15个分界电平来将阈值窗分界为十六个不同区域。
随着存储器的有限阈值窗被划分为更多区域,编程和读取的分辨率将必然变得更精细。因此,多状态或MLC存储器需要以与具有较少的区域的存储器相比更窄的错误余量来操作。换句话说,错误率随着在每个单元中存储的位数量而增加。通常,错误率随着每个单元中存储的位的数量而增加。通常,错误率随着阈值窗中的划分的区域的数量而增加。
通过错误校正码(“ECC”)的校正
快闪存储器容易出错。为了保证无错误的数据,实施错误校正码(“ECC”)来校正错误。
图9示意性地图示包含ECC字段的数据页。如结合图4和图6A描述的,通过并行工作的对应页的感测模块来并行编程和读取一个物理页的存储器单元。当每个存储器单元存储多位数据时,将存在与每个物理页相关的多个数据页。数据页70’包括用户部分72’和系统部分74’。用户部分72’用于存储用户数据。系统部分74’通常由存储器系统使用来存储系统数据。ECC被包括在系统数据中。对数据页计算ECC。通常,通过控制器102中的ECC处理器62计算ECC(见图1)。
在从主机接收数据时,一页数据阶段性存储在控制器102中,且通过ECC处理器62来计算其ECC 76’。然后,并入了该ECC的数据页被写入到存储器阵列200。通常,当读取该数据页时,数据页被锁存在数据锁存器430中,且从I/O电路440移出到控制器102。在控制器102处,将该数据页的现有ECC与对读取的数据计算的ECC的第二版本相比较。ECC通常包括用于快速检测数据页中的任何错误的错误检测码(″EDC″)。如果EDC指示在读取的数据页中存在任何错误,则调用ECC来校正在读取的数据页中的出错位。
可以设计ECC来校正任何数量的错误位。其需要校正的位越多,该ECC将越复杂且越多计算量。为了质量保证,基于在存储器器件的寿命末期(″EOL″)的预期最差情况单元错误率(″CER″)来设计传统ECC。因此,它们需要校正高达统计错误总体的远在尾端的最大数量的错误位。
图10A示出全体的百分比在各种范围的标准偏差σ的错误率的正态分布。例如,总体的仅2.1%位于从2σ到3σ的范围内。总体的仅0.1%位于从3σ到4σ的范围内。
图10B图示表格格式的图10A的分布。可以看出,总体中的仅E-09或十亿分之一超出6σ。在该表格中的最后列示出了最差情况下的示例存储器器件的估计错误率。例如,总体的5%将具有1个错误位,总体的0.135%将具有4个错误位,且总体的十亿分之一将具有42个错误位。
考虑125个存储卡的样本。每个卡具有16GB的容量,每个数据页2KB。这达到每个页为2KB的十亿页的总数。为了保证125个存储卡的样本中没有一个页将在卡的寿命末期具有错误,将需要能够校正高达42位的ECC。
在存储器的寿命期间的错误
如上所述,通常设计ECC来校正预计的在存储器的可用寿命期间的任何错误。这些错误来自于大量源。
图11是列出快闪存储器的主要错误源的表格。图11(A)示出作为在写入页之后出现的位错误的来自写入后的错误EPW(NCYC)的第一源。在快闪存储器中,“编程”指将单元的阈值从已擦除状态增加的处理。该术语将与″写入″可交换地使用。错误率随着编程-擦除循环的数量NCYC而增加。在数据已被写到单元之后,尽管通过了验证操作,但是数据可能仍然由于两个原因而出错。
写之后的错误的第一原因是由于未被验证操作检测到的过编程(over-programming)。当要同时编程多个存储器单元时可能发生过编程。这是因为由于包括存储器单元的半导体器件的结构和操作中的小变化,每个存储器单元的特征不同;因此,通常将出现不同单元的编程速度方面的变化。这导致存储器单元比其他更快地变为已编程,且导致一些存储器单元将被编程到与意图的不同状态的可能性。多个存储器单元的更快编程可能导致过冲(over-shooting)期望的阈值电压电平范围,产生被存储的数据中的错误。
通常,当正编程数据时,该器件的编程-验证处理将检查存储器单元的编程的阈值电压是否高于将当前状态与相邻较低编程状态相分界的参考电平。但是,编程-验证不知道该编程的阈值电压高于该参考电平多少。因此,器件通常不保证对阈值电压的上限。一些器件进行检查来查看软编程处理(以下描述)是否将阈值电压升高得太高;但是,这些器件不进行检查来查看常规编程处理是否将阈值电压升高得太高。因此,将阈值电压升高得超出期望状态的范围的过编程可能不被察觉地发生。过编程可能导致存储器单元过冲到下一已编程状态,且因此存储不正确的数据。将在随后的读取操作中检测到该错误,其中,通常将相对于分界给定存储器状态的阈值范围的下限和上限来检查单元的编程的阈值。可以在美国专利第5,321,699、5,386,422、5,469,444、5,602,789、6,134,140、6,914,823和6,917,542号中找到关于过编程的更多信息。
写之后的错误的第二原因在于由于存储元件之间的场耦合而导致的在存储的电荷电平中的明显偏移。该耦合的程度必然随着存储器单元阵列的尺寸降低而增加,这由于集成电路制造技术的改进而发生。该问题在已在不同时间被编程的两组相邻单元之间最明显地发生。一组单元被编程以向对应于一个数据集的其存储元件添加一个水平的电荷。在用第二数据集编程第二组单元之后,由于电荷对与第一组存储元件电容性耦合的第二组存储元件的影响,因此从第一组单元的存储元件读取的电荷电平通常显得与已编程的不同。具体地,当被感测时,存储器单元将显得具有比其更少扰动时更高的阈值电平(或被更多编程)。这也已知为Yupin效应,且这在美国专利第5,867,429号中描述,该专利通过全部引用被合并于此。该专利描述了物理地相互隔离两组存储元件,或考虑当读取第一组存储元件时电荷对第二组存储元件的影响。
图11(B)示出作为由于在EOL处的数据保留而导致的位错误的错误EDR(T,NCYC)的第二源。该错误率随着温度T和编程-擦除循环的数量NCYC而增加。该数据错误由于该器件的历史。其通常涉及依赖于对环境、例如温度的存储器器件暴露的数据保留问题。随着时间,实际存储的电荷水平可能缓慢地泄漏掉,使得编程的阈值降低。
随着在每个存储器单元中存储的状态的数量增加,对存储元件上的已编程电荷电平的任何偏移的容忍度降低。由于随着在每个存储器单元存储元件上存储的状态的数量增加,必然使得为每个存储状态设计的电荷的范围更窄并被放置得更靠近地在一起,所以必须以增加的精确度来进行编程,且降低可以容忍的在存储电荷电平的任何编程后偏移的程度。当编程和读取一个单元时以及当读取、编程和擦除具有与该单元的某程度的电耦合的其他单元、比如相同列或行中的其他单元和共享一个线或节点的其他单元时,可以创建对在该单元中存储的电荷的实际干扰。
图11(C)示出作为由于读取干扰而导致的位错误的错误ERD(NR,NCYC)的第三源。该错误率随着读取的数量和编程-擦除循环的数量NCYC而增加。
对快闪存储器的一个重要考虑是随着其使用老化,其具有耐用性问题。当重复编程和擦除一个单元时,通过对电介质遂穿,电荷在浮置栅极20中来回进出。每次一些电荷可能变得被捕获在电介质中,且将修改单元的阈值。通过循环计数NCYC(也已知为″热计数″)来测量单元已经历的编程-擦除循环的数量。通过重复循环,对于给定的擦除块,NCYC的值增加,使得该块中的单元的阈值窗逐渐变窄。因此,编程-擦除循环效应将显著影响图11中列出的所有错误源。
图12是示出在示例存储器器件的寿命的初期和末期该器件的估计的总错误的表格。图12(A)示出来自图11(A)到图11(C)中列出的三个源的总错误为ETOT(NCYC,NR)=EPW(NCYC)+EDR(T,NCYC)+ERD(NR,NCYC)。
图12(B)示出当该存储器相对较新(低NCYC)但已在85℃下烘烤了5年且已经被读取106次时的估计ETOT。对各个分量错误的估计是:EPW(1)~3,EDR(85℃,1)~2,且ERD(1M,1)~0。这些产生了总的估计错误ETOT(1,1M)=3+2+0=5位。
图12(C)示出了当存储器接近器件的寿命末期(″EOL″)时的估计ETOT。其特征为高编程-擦除循环(NCYC=10K),其他参数类似于图12(B)的参数。对各个分量错误的估计是EPW(10K)~10,EDR(85℃,10K)~10,且ERD(1M,10K)~1。这些产生了总的估计错误ETOT(10K,1M)=10+10+1=21位。
在图11和图12中描述的三个错误源中,通常,由于读取干扰而导致的错误ERD不如由于写入导致的错误EPW和由于数据保存而导致的错误EDR显著。可以通过周期性地在“读清洗(read scrub)”操作中刷新单元的阈值电平来减少数据保留错误。
为了校正可能在存储器中出现的各种错误,尤其是在写之后出现的错误,使用EEC(先前结合图9描述)。但是,使用ECC校正错误将消耗处理时间,且其需要校正的位越多,需要的计算时间越多。通过使用能够校正大量错误位的强ECC,存储器性能被降低。可以实施另外的专用硬件来在合理时间量内来进行ECC。这种专用硬件可能在控制器ASIC芯片上占据相当量的空间。
图13是图示传统的ECC必须被设计来校正最差情况总错误ETOT的表格。这将是具有高编程-擦除循环计数和数据保持规范的在寿命末期的器件。对于在图12(C)给出的例子,ECC必须能够校正至少21个错误位。
从较高密度存储器部分向较低错误率存储器部分适应性重写数据来控制
错误率
根据本发明的一般方面,具有存储器单元的阵列的快闪存储器被配置有第一部分和第二部分。该第二部分以更高密度存储数据,但用比第一部分更小的错误余量来操作。为了有效存储,数据被写到第二部分。然后,该数据被读回以检查过量的错误位。如果错误位超过了预定量,则该数据被重写到更少错误倾向的第一部分。这对由于将数据写到存储器而产生的错误位的最大数量施加了限制。在错误率的统计分布中,该限制表示对该分布的数量标准偏差的限制,以便可以忽略(具有更高错误率的)分布的远尾端。这允许设计更小和更有效的错误校正码(“ECC”)用于校正较少数量的错误位,由此改善存储器的性能并降低成本。
图14A图示根据本发明的优选实施例的被划分为两个部分的存储器阵列。存储器单元的阵列200被划分为第一部分410和第二部分420。第二部分420具有被配置为高密度存储的存储器单元,每个单元存储多位的数据。第一部分410具有被配置为较低密度存储的存储器单元,每个单元存储比第二部分更少数量的位。例如,相比于第二部分中的3位数据,第一部分中的存储器单元被配置以存储1位数据。鉴于先前的讨论,第一部分将以比第二部分宽得多的错误余量来操作。因此,第一部分中的存储器操作将具有比第二部分中的更少的错误。
题为“Selective Operation of a Multi-state Non-volatile Memory System in aBinary Mode”的美国专利号第6,456,528号公开了一种快闪非易失性存储器,具有通常在多于两个状态中操作的存储器单元,但所选的存储器单元仅在两个状态中操作,以便在两状态操作期间提供增加的余量。这允许在两个状态中操作的存储器单元的更快的编程和更长的操作寿命,此时比起多状态操作提供的数据存储器的增加密度,更期望具有这些优点。US 6,456,528的整个公通过参考合并于此。
当要向存储器阵列200写入到来的数据页时,为了效率和高容量,优选其被存储在高密度的第二部分中。因此,该数据页的第一副本被写到第二部分。
稍后,在″写入后读取″中读回该数据页的第一副本以确定是否存在任何错误。这通过与可能被缓存的原始副本的比较或通过检查ECC的EDC部分来实现。
确定在读取的副本中的错误位的数量是否超出了预定量。如果错误位的数量没有超出预定量,则在第二部分中存储的第一副本被认为有效。对数据页的随后读取将来自于第二部分中的第一副本,且将由控制器处的ECC来校正任何错误。
如先前结合图11所述的,在编程期间的验证处理仅检查欠编程(under-programming)而不检查过编程。因此,在已经编程-验证了数据页之后可能仍然存在错误。将采取针对所有分界电平的读操作(见图7和图8)来检测该数据页中的任何错误。另外,相邻单元的随后编程的Yupin效应可能干扰所考虑的数据页,且偏移视在的感测结果。因此,读回应该至少在可能对当前数据页具有显著Yupin影响的所有相邻单元的编程之后。在另一实施例中,读回是在包含所考虑的数据页的块中的所有单元都结束编程之后。
在美国专利第6,913,823、6,917,542和7,009,889号中也公开了“写入后读取”,它们的全部公开通过参考合并于此。
图14B图示将数据页的第二副本重写到图14A的存储器阵列的第一部分中。在写入后读取检测到数据页中的错误位的数量已经超过预定量之后,该数据页的第二副本被重写到第一部分。该第二副本是可能被缓存或在另一实施例中通过取得第一副本并用ECC校正错误位的原始数据的第二副本。
在第二副本被写到第一部分中之后,其将替换第二部分中的第一副本而作为有效副本。第一副本将变为废弃的,且在控制器(见图1)的固件中实现的块管理系统中的目录将被更新到对第二副本的直接的随后访问。
在一个优选实施例中,第一部分使每个存储单元存储一位数据,且第二部分使每个存储单元存储多于一位数据。
图15是图示根据图14A和图14B中描述的实施例的写入后读取和适应性重写的处理的流程图。
步骤500:将存储器配置为第一和第二部分,第一部分具有用比第二部分的错误余量更大的错误余量来操作的存储器单元。
步骤510:将一组输入数据的第一副本编程在第二部分中。
步骤520:在预定时间之后从第二部分中读取第一副本以检查错误。
步骤530:错误超出了预定数量的错误位?如果是,前进到步骤540。否则,前进到步骤550。
步骤540:将该组输入数据的第二副本编程在第一部分中。
步骤550:标识最后写入的副本作为有效数据用于随后的读取。
步骤560:该组输入数据完成存储在非易失性存储器中。
在替换的实施例中,第一部分用作用于到来的数据的缓存,因此输入数据的缓存副本被编程到该缓存中。然后,该数据的第一副本被编程到第二部分中。
如果写入后读取没有检测到第一副本中的过量错误,则第一副本将被视为有效,且随后的读取将被导向访问第一副本。
另一方面,如果写入后读取检测到第一副本中的过量错误,则在第一部分中的缓存的副本将替换第二部分中的第一副本而作为有效数据。该第一副本将变为废弃的,且在控制器(见图1)的固件中实现的块管理系统中的目录将更新为对缓存的副本的直接随后访问。
题为“Multi-state Non-volatile Flash Memory Capable of Being its Own TwoState Write Cache”的美国专利第5,930,167号公开了具有两个部分的快闪存储器阵列。第一部分被配置为每单元存储一位,且第二部分被配置为每单元存储多于一位。第一部分担当低密度写入缓存。到来的数据首先被缓存在该第一部分中。稍后,在后台,缓存的数据被传输到具有更高存储密度的第二部分。US 5,930,167的整个通过参考合并于此。
在优选实施例中,第一部分进一步被提供有第一区块(section)和第二区块。到来的数据被缓存在第一部分的第一区块中,且该数据的第一副本被写到第二部分。然后,第二部分中的第一副本被读回以检查过量错误位。如果错误位超过预定量,则到来的数据的第二副本被写到第一部分的第二区块。
图16A图示根据本发明的优选实施例的被划分为两个部分且第一部分被提供有缓存区块和重写区块的存储器阵列。如图14A中,存储器单元的阵列200被划分为第一部分410和第二部分420。第二部分420具有被配置为高密度存储器的存储器单元,每个单元存储多位数据。第一部分410具有被配置为较低密度存储器的存储器单元,每个单元存储比第二部分更少数量的位。因此,第一部分用比第二部分更宽的错误余量来操作。
第一部分410进一步被提供有用于缓存到来的数据的第一区块411和用于存储来自第二部分的重写的第二区块412。
当要向存储器阵列200写入到来的数据页时,缓存的副本被缓存在第一部分410的第一区块411中。为了效率和高容量,第一副本优选存储在高密度的第二部分中。因此,该数据页的第一副本被写到第二部分。
根据另一优选实施例,存储器阵列被提供有在集成电路芯片上的数据锁存器集,通过将第一副本和缓存的副本加载到该数据锁存器集中并在该数据锁存器集处进行比较来实现对第一副本中的错误位的检查。
通过不在控制器处进行比较,数据无须被切出到控制器,因此可以节省很多时间。图1示出用于进行数据比较的在芯片上的数据锁存器430。
图16B图示根据写入后读取的优选实施例的页比较技术。在“写入后读取”中读回第二部分中的数据页的第一副本来确定是否存在任何错误。这通过与缓存的副本相比较来实现。
如果错误位的数量没有超出预定量,则在第二部分中存储的第一副本被认为有效。缓存的副本将变为废弃的,且在控制器(见图1)的固件中实现的块管理系统中的目录将更新到对该第一副本的直接随后访问。对数据页的随后读取将来自于第二部分中的第一副本,且将在控制器处通过ECC来校正任何错误。
图16C图示在写入后读取已确定在第二部分中的数据页中的过量错误之后对第一部分的重写。在写入后读取检测到第一副本的数据页中的错误位的数量超过了预定量之后,该数据页的第二副本被重写到第一部分410的第二区块412。第二副本取自缓存的副本。
在第二副本已被写到第一部分的第二区块412之后,其将替换第二部分中的第一副本。第一副本和缓存的副本将变为废弃的,且在控制器(见图1)的固件中实现的块管理系统中的目录将被更新为对第二副本的直接随后访问。
图17是图示根据图16A到图16C中描述的实施例的写入后读取和适应性重写的处理的流程图。
步骤600:将存储器配置为第一和第二部分,该第一部分具有用比第二部分的错误余量更大的错误余量来操作的存储器单元。
步骤602:将一组输入数据的缓存的副本编程在第一部分的第一区块中。
步骤610:将该组输入数据的第一副本编程在第二部分中。
步骤620:在预定时间之后从该第二部分中读取第一副本以检查错误。
步骤630:错误超出了预定数量的错误位?如果是,继续到步骤632。否则,继续到步骤650。
步骤632:从第一部分的第一区块中读取该组输入数据的缓存的副本。
步骤642:将缓存的副本作为该组输入数据的第二副本编程在第一部分的第二区块中。
步骤650:标识最后写入的副本作为有效数据用于随后的读取。
步骤660:该组输入数据完成存储在非易失性存储器中。
为了例示和描述的目的已经呈现了对本发明的以上详细描述。不意图穷举本发明或将其限制到所公开的精确形式。考虑到上述教导,许多修改和变化是可能的。选择所描述的实施例以便最佳地说明本发明的原理和其实际的应用,从而使得本领域技术人员能够在各种实施例中以及通过适合于所构思的具体用途的各种修改来最佳地使用本发明。意图本发明的范围由附于此的权利要求限定。
Claims (20)
1.一种操作非易失性存储器的方法,包括:
将所述存储器配置为第一和第二部分,第一部分具有以比第二部分的错误余量更大的错误余量来操作的存储器单元;
将一组输入数据的第一副本编程在第二部分中;
在预定时间之后从所述第二部分中读取该第一副本以检查错误;以及
如果该第一副本中的错误小于预定数量的错误位,则将该第一副本标识为在随后的读取操作中的有效数据;否则
将该组输入数据的第二副本编程在该第一部分中,并将所述第二副本标识为在随后的读取操作中的有效数据。
2.根据权利要求1的方法,还包括:
在所述第一部分中提供第一和第二区块,第一区块用于缓存输入数据,第二区块用于在发现该第一副本中的错误超过预定数量的错误位之后重写该组数据的第二副本;
将输入数据的缓存的副本编程到第一区块;以及
其中,该第二副本的所述编程基于该缓存的副本,且将该第二副本编程到第一部分的第二区块中。
3.根据权利要求1的方法,其中:
在具有数据锁存器集的集成电路芯片上形成所述存储器;以及
所述读取第一副本来检查错误还包括:
将第一副本和缓存的副本读取到该数据锁存器集;以及
在该数据锁存器集处比较该第一副本和该缓存的副本。
4.根据权利要求1的方法,其中:
所述预定时间是对可能明显干扰该组输入数据的相邻存储器单元的编程的完成。
5.根据权利要求1的方法,其中:
所述预定时间是对包含该组输入数据的块中的所有存储器单元的编程的完成。
6.根据权利要求1的方法,还包括:
提供ECC用于校正至少预定量的错误。
7.根据权利要求1的方法,还包括:
提供ECC,用于校正比预定数量的错误位明显更大数量的错误位。
8.一种操作非易失性存储器的方法,包括:
将所述存储器配置为第一和第二部分,第一部分具有以比第二部分的错误余量更大的错误余量来操作的存储器单元,并用于缓存输入数据;
将一组输入数据的缓存的副本编程到第一部分中;
将该组输入数据的第一副本编程到第二部分中;
在预定时间之后从所述第二部分中读取该第一副本以检查错误;以及
如果该第一副本中的错误小于预定数量的错误位,将该第一副本标识为在随后的读取操作中的有效数据;否则
将该缓存的副本标识为在随后的读取操作中的有效数据。
9.根据权利要求8的方法,其中:
在具有数据锁存器集的集成电路芯片上形成所述存储器;以及
所述读取第一副本来检查错误还包括:
将该第一副本和该缓存的副本读取到该数据锁存器集;以及
在该数据锁存器集处比较该第一副本和该缓存的副本。
10.根据权利要求8的方法,其中:
所述预定时间是对可能明显干扰该组输入数据的相邻存储器单元的编程的完成。
11.一种存储器,包括:
具有第一和第二部分的非易失性存储器单元的阵列,第一部分具有以比第二部分的错误余量更大的错误余量来操作的存储器单元;
控制器,用于控制该存储器的操作,所述操作包括:
将一组输入数据的第一副本编程到该第二部分中;
在预定时间之后从该第二部分中读取该第一副本以检查错误;以及
如果该第一副本中的错误小于预定数量的错误位,则将该第一副本标识为在随后的读取操作中的有效数据;否则
将该组输入数据的第二副本编程到第一部分中,且将该第二副本标识为在随后的读取操作中的有效数据。
12.根据权利要求11的存储器,还包括:
在该第一部分中的第一和第二区块,第一区块用于缓存输入数据,第二区块用于在发现第一副本中的错误超过预定数量的错误位之后重写该组数据的第二副本;以及
其中,所述操作还包括:
将输入数据的缓存的副本编程到第一区块;以及
其中,所述第二副本的编程基于该缓存的副本,且将该第二副本编程到第一部分的第二区块中。
13.根据权利要求11的存储器,其中:
在具有数据锁存器集的集成电路芯片上形成所述存储器;以及
所述读取第一副本来检查错误的操作还包括:
将第一副本和缓存的副本读取到该数据锁存器集;以及
在该数据锁存器集处比较该第一副本和该缓存的副本。
14.根据权利要求11的存储器,其中:
所述预定时间是对可能明显干扰该组输入数据的相邻存储器单元的编程的完成。
15.根据权利要求11的存储器,其中:
所述预定时间是对包含该组输入数据的块中的所有存储器单元的编程的完成。
16.根据权利要求11的存储器,还包括:
ECC,用于校正至少预定量的错误。
17.根据权利要求11的存储器,还包括:
ECC,用于校正比预定数量的错误位明显更大数量的错误位。
18.一种存储器,包括:
非易失性存储器单元的阵列,具有第一和第二部分,所述第一部分具有用比第二部分的错误余量更大的错误余量来操作的存储器单元,并用于缓存输入数据;
控制器,用于控制该存储器的操作,所述操作包括:
将一组输入数据的缓存的副本编程到第一部分中;
将该组输入数据的第一副本编程到第二部分中;
在预定时间之后从所述第二部分中读取第一副本以检查错误;以及
如果该第一副本中的错误小于预定数量的错误位,则将该该第一副本标识为在随后的读取操作中的有效数据;否则
将该缓存的副本标识为在随后的读取操作中的有效数据。
19.根据权利要求18的存储器,其中:
在具有数据锁存器集的集成电路芯片上形成所述存储器;以及
所述读取该第一副本来检查错误的操作还包括:
将第一副本和缓存的副本读取到该数据锁存器集;以及
在该数据锁存器集处比较该第一副本和该缓存的副本。
20.根据权利要求18的存储器,其中:
所述预定时间是对可能明显干扰该组输入数据的相邻存储器单元的编程的完成。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/607,522 US8214700B2 (en) | 2009-10-28 | 2009-10-28 | Non-volatile memory and method with post-write read and adaptive re-write to manage errors |
US12/607,522 | 2009-10-28 | ||
PCT/US2010/053792 WO2011056478A1 (en) | 2009-10-28 | 2010-10-22 | Non-volatile memory and method with post-write read and adaptive re-write to manage errors |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102667944A true CN102667944A (zh) | 2012-09-12 |
CN102667944B CN102667944B (zh) | 2016-01-13 |
Family
ID=43413777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080049016.1A Active CN102667944B (zh) | 2009-10-28 | 2010-10-22 | 通过写入后读取和适应性重写来管理错误的非易失性存储器和方法 |
Country Status (7)
Country | Link |
---|---|
US (2) | US8214700B2 (zh) |
EP (1) | EP2494552A1 (zh) |
JP (1) | JP5443612B2 (zh) |
KR (1) | KR101621584B1 (zh) |
CN (1) | CN102667944B (zh) |
TW (1) | TW201140605A (zh) |
WO (1) | WO2011056478A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104583978A (zh) * | 2012-09-26 | 2015-04-29 | 英特尔公司 | 与针对两级存储器系统的读取和写入窗口预算相关联的技术 |
CN105339906A (zh) * | 2013-06-12 | 2016-02-17 | 日本电气株式会社 | 控制对永久存储设备的数据写入的方法 |
CN106847341A (zh) * | 2016-12-23 | 2017-06-13 | 鸿秦(北京)科技有限公司 | 一种纯电动汽车综合信息存储装置的存储体自检装置及方法 |
CN111274061A (zh) * | 2018-12-04 | 2020-06-12 | 阿里巴巴集团控股有限公司 | 处理大容量存储器中的不可纠正的数据错误的系统和方法 |
CN112698782A (zh) * | 2019-10-22 | 2021-04-23 | 中电智能科技有限公司 | 基于存储器数据加载的实现装置及方法 |
Families Citing this family (112)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI389122B (zh) * | 2008-10-30 | 2013-03-11 | Silicon Motion Inc | 用來存取一快閃記憶體之方法以及相關之記憶裝置及其控制器 |
JPWO2011013351A1 (ja) * | 2009-07-30 | 2013-01-07 | パナソニック株式会社 | アクセス装置およびメモリコントローラ |
US8634240B2 (en) * | 2009-10-28 | 2014-01-21 | SanDisk Technologies, Inc. | Non-volatile memory and method with accelerated post-write read to manage errors |
US8423866B2 (en) * | 2009-10-28 | 2013-04-16 | SanDisk Technologies, Inc. | Non-volatile memory and method with post-write read and adaptive re-write to manage errors |
US8214700B2 (en) | 2009-10-28 | 2012-07-03 | Sandisk Technologies Inc. | Non-volatile memory and method with post-write read and adaptive re-write to manage errors |
US8305807B2 (en) | 2010-07-09 | 2012-11-06 | Sandisk Technologies Inc. | Detection of broken word-lines in memory arrays |
US8432732B2 (en) | 2010-07-09 | 2013-04-30 | Sandisk Technologies Inc. | Detection of word-line leakage in memory arrays |
US8514630B2 (en) | 2010-07-09 | 2013-08-20 | Sandisk Technologies Inc. | Detection of word-line leakage in memory arrays: current based approach |
US9104580B1 (en) | 2010-07-27 | 2015-08-11 | Apple Inc. | Cache memory for hybrid disk drives |
US8379454B2 (en) | 2011-05-05 | 2013-02-19 | Sandisk Technologies Inc. | Detection of broken word-lines in memory arrays |
US8750042B2 (en) | 2011-07-28 | 2014-06-10 | Sandisk Technologies Inc. | Combined simultaneous sensing of multiple wordlines in a post-write read (PWR) and detection of NAND failures |
US8775901B2 (en) | 2011-07-28 | 2014-07-08 | SanDisk Technologies, Inc. | Data recovery for defective word lines during programming of non-volatile memory arrays |
US8726104B2 (en) | 2011-07-28 | 2014-05-13 | Sandisk Technologies Inc. | Non-volatile memory and method with accelerated post-write read using combined verification of multiple pages |
US20130031431A1 (en) * | 2011-07-28 | 2013-01-31 | Eran Sharon | Post-Write Read in Non-Volatile Memories Using Comparison of Data as Written in Binary and Multi-State Formats |
US8687421B2 (en) * | 2011-11-21 | 2014-04-01 | Sandisk Technologies Inc. | Scrub techniques for use with dynamic read |
US8645770B2 (en) * | 2012-01-18 | 2014-02-04 | Apple Inc. | Systems and methods for proactively refreshing nonvolatile memory |
US8566671B1 (en) | 2012-06-29 | 2013-10-22 | Sandisk Technologies Inc. | Configurable accelerated post-write read to manage errors |
US8914696B2 (en) | 2012-08-29 | 2014-12-16 | Seagate Technology Llc | Flash memory read scrub and channel tracking |
US9164526B2 (en) | 2012-09-27 | 2015-10-20 | Sandisk Technologies Inc. | Sigma delta over-sampling charge pump analog-to-digital converter |
US9810723B2 (en) | 2012-09-27 | 2017-11-07 | Sandisk Technologies Llc | Charge pump based over-sampling ADC for current detection |
KR102025263B1 (ko) * | 2012-10-05 | 2019-09-25 | 삼성전자주식회사 | 메모리 시스템 및 그것의 읽기 교정 방법 |
US9076530B2 (en) | 2013-02-07 | 2015-07-07 | Seagate Technology Llc | Non-volatile write buffer data retention pending scheduled verification |
US9349476B2 (en) | 2013-02-21 | 2016-05-24 | Sandisk Technologies Inc. | Methods, systems, and computer readable media for early detection of potential flash failures using an adaptive system level algorithm based on flash program verify |
US8972776B2 (en) | 2013-03-06 | 2015-03-03 | Seagate Technology, Llc | Partial R-block recycling |
US20150006784A1 (en) | 2013-06-27 | 2015-01-01 | Sandisk Technologies Inc. | Efficient Post Write Read in Three Dimensional Nonvolatile Memory |
US9218242B2 (en) | 2013-07-02 | 2015-12-22 | Sandisk Technologies Inc. | Write operations for defect management in nonvolatile memory |
US9063671B2 (en) | 2013-07-02 | 2015-06-23 | Sandisk Technologies Inc. | Write operations with full sequence programming for defect management in nonvolatile memory |
US9501400B2 (en) | 2013-11-13 | 2016-11-22 | Sandisk Technologies Llc | Identification and operation of sub-prime blocks in nonvolatile memory |
US9043537B1 (en) | 2013-11-21 | 2015-05-26 | Sandisk Technologies Inc. | Update block programming order |
US9213601B2 (en) | 2013-12-03 | 2015-12-15 | Sandisk Technologies Inc. | Adaptive data re-compaction after post-write read verification operations |
US9058881B1 (en) | 2013-12-05 | 2015-06-16 | Sandisk Technologies Inc. | Systems and methods for partial page programming of multi level cells |
US9244631B2 (en) | 2013-12-06 | 2016-01-26 | Sandisk Technologies Inc. | Lower page only host burst writes |
US9280419B2 (en) * | 2013-12-16 | 2016-03-08 | International Business Machines Corporation | Dynamic adjustment of data protection schemes in flash storage systems based on temperature, power off duration and flash age |
US8902652B1 (en) | 2014-05-13 | 2014-12-02 | Sandisk Technologies Inc. | Systems and methods for lower page writes |
US8886877B1 (en) | 2014-05-15 | 2014-11-11 | Sandisk Technologies Inc. | In-situ block folding for nonvolatile memory |
US9082512B1 (en) * | 2014-08-07 | 2015-07-14 | Pure Storage, Inc. | Die-level monitoring in a storage cluster |
US9437321B2 (en) | 2014-10-28 | 2016-09-06 | Sandisk Technologies Llc | Error detection method |
US9858009B2 (en) | 2015-10-26 | 2018-01-02 | Sandisk Technologies Llc | Data folding in 3D nonvolatile memory |
US9570160B1 (en) | 2015-10-29 | 2017-02-14 | Sandisk Technologies Llc | Non-volatile storage system with defect detetction and early programming termination |
US9698676B1 (en) | 2016-03-11 | 2017-07-04 | Sandisk Technologies Llc | Charge pump based over-sampling with uniform step size for current detection |
US9711227B1 (en) | 2016-04-28 | 2017-07-18 | Sandisk Technologies Llc | Non-volatile memory with in field failure prediction using leakage detection |
KR20180020706A (ko) | 2016-08-19 | 2018-02-28 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
US10622089B2 (en) * | 2016-10-18 | 2020-04-14 | Toshiba Memory Corporation | Storage system having a host that manages physical data locations of storage device |
WO2018140036A1 (en) * | 2017-01-27 | 2018-08-02 | Hewlett-Packard Development Company, L.P. | Read operation redirect |
US10884926B2 (en) | 2017-06-16 | 2021-01-05 | Alibaba Group Holding Limited | Method and system for distributed storage using client-side global persistent cache |
US10860334B2 (en) | 2017-10-25 | 2020-12-08 | Alibaba Group Holding Limited | System and method for centralized boot storage in an access switch shared by multiple servers |
US10877898B2 (en) | 2017-11-16 | 2020-12-29 | Alibaba Group Holding Limited | Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements |
US10658056B2 (en) * | 2017-12-22 | 2020-05-19 | Intel Corporation | Internal copy to handle NAND program fail |
US10496548B2 (en) | 2018-02-07 | 2019-12-03 | Alibaba Group Holding Limited | Method and system for user-space storage I/O stack with user-space flash translation layer |
US10891239B2 (en) | 2018-02-07 | 2021-01-12 | Alibaba Group Holding Limited | Method and system for operating NAND flash physical space to extend memory capacity |
US10831404B2 (en) | 2018-02-08 | 2020-11-10 | Alibaba Group Holding Limited | Method and system for facilitating high-capacity shared memory using DIMM from retired servers |
KR102495915B1 (ko) | 2018-04-30 | 2023-02-03 | 삼성전자 주식회사 | 스토리지 장치 및 상기 스토리지 장치를 포함하는 서버 |
US11379155B2 (en) | 2018-05-24 | 2022-07-05 | Alibaba Group Holding Limited | System and method for flash storage management using multiple open page stripes |
US10921992B2 (en) | 2018-06-25 | 2021-02-16 | Alibaba Group Holding Limited | Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency |
CN111902804B (zh) | 2018-06-25 | 2024-03-01 | 阿里巴巴集团控股有限公司 | 用于管理存储设备的资源并量化i/o请求成本的系统和方法 |
US10871921B2 (en) | 2018-07-30 | 2020-12-22 | Alibaba Group Holding Limited | Method and system for facilitating atomicity assurance on metadata and data bundled storage |
US10747673B2 (en) | 2018-08-02 | 2020-08-18 | Alibaba Group Holding Limited | System and method for facilitating cluster-level cache and memory space |
US10996886B2 (en) | 2018-08-02 | 2021-05-04 | Alibaba Group Holding Limited | Method and system for facilitating atomicity and latency assurance on variable sized I/O |
US11327929B2 (en) | 2018-09-17 | 2022-05-10 | Alibaba Group Holding Limited | Method and system for reduced data movement compression using in-storage computing and a customized file system |
US10852948B2 (en) | 2018-10-19 | 2020-12-01 | Alibaba Group Holding | System and method for data organization in shingled magnetic recording drive |
US10795586B2 (en) | 2018-11-19 | 2020-10-06 | Alibaba Group Holding Limited | System and method for optimization of global data placement to mitigate wear-out of write cache and NAND flash |
US10977122B2 (en) | 2018-12-31 | 2021-04-13 | Alibaba Group Holding Limited | System and method for facilitating differentiated error correction in high-density flash devices |
US11061735B2 (en) | 2019-01-02 | 2021-07-13 | Alibaba Group Holding Limited | System and method for offloading computation to storage nodes in distributed system |
US11132291B2 (en) | 2019-01-04 | 2021-09-28 | Alibaba Group Holding Limited | System and method of FPGA-executed flash translation layer in multiple solid state drives |
US10860420B2 (en) | 2019-02-05 | 2020-12-08 | Alibaba Group Holding Limited | Method and system for mitigating read disturb impact on persistent memory |
US11200337B2 (en) | 2019-02-11 | 2021-12-14 | Alibaba Group Holding Limited | System and method for user data isolation |
US10970212B2 (en) | 2019-02-15 | 2021-04-06 | Alibaba Group Holding Limited | Method and system for facilitating a distributed storage system with a total cost of ownership reduction for multiple available zones |
US11061834B2 (en) | 2019-02-26 | 2021-07-13 | Alibaba Group Holding Limited | Method and system for facilitating an improved storage system by decoupling the controller from the storage medium |
US10783035B1 (en) | 2019-02-28 | 2020-09-22 | Alibaba Group Holding Limited | Method and system for improving throughput and reliability of storage media with high raw-error-rate |
US10891065B2 (en) | 2019-04-01 | 2021-01-12 | Alibaba Group Holding Limited | Method and system for online conversion of bad blocks for improvement of performance and longevity in a solid state drive |
US10922234B2 (en) | 2019-04-11 | 2021-02-16 | Alibaba Group Holding Limited | Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive |
US10908960B2 (en) | 2019-04-16 | 2021-02-02 | Alibaba Group Holding Limited | Resource allocation based on comprehensive I/O monitoring in a distributed storage system |
US11169873B2 (en) | 2019-05-21 | 2021-11-09 | Alibaba Group Holding Limited | Method and system for extending lifespan and enhancing throughput in a high-density solid state drive |
US10860223B1 (en) | 2019-07-18 | 2020-12-08 | Alibaba Group Holding Limited | Method and system for enhancing a distributed storage system by decoupling computation and network tasks |
US11074124B2 (en) | 2019-07-23 | 2021-07-27 | Alibaba Group Holding Limited | Method and system for enhancing throughput of big data analysis in a NAND-based read source storage |
US11126561B2 (en) | 2019-10-01 | 2021-09-21 | Alibaba Group Holding Limited | Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive |
US11617282B2 (en) | 2019-10-01 | 2023-03-28 | Alibaba Group Holding Limited | System and method for reshaping power budget of cabinet to facilitate improved deployment density of servers |
US10997019B1 (en) | 2019-10-31 | 2021-05-04 | Alibaba Group Holding Limited | System and method for facilitating high-capacity system memory adaptive to high-error-rate and low-endurance media |
US11200159B2 (en) | 2019-11-11 | 2021-12-14 | Alibaba Group Holding Limited | System and method for facilitating efficient utilization of NAND flash memory |
US11119847B2 (en) | 2019-11-13 | 2021-09-14 | Alibaba Group Holding Limited | System and method for improving efficiency and reducing system resource consumption in a data integrity check |
CN110956994B (zh) * | 2019-11-27 | 2021-10-22 | 西安紫光国芯半导体有限公司 | 编程结果检测电路、检测方法、快闪存储器及编程方法 |
US11042307B1 (en) | 2020-01-13 | 2021-06-22 | Alibaba Group Holding Limited | System and method for facilitating improved utilization of NAND flash based on page-wise operation |
US11449455B2 (en) | 2020-01-15 | 2022-09-20 | Alibaba Group Holding Limited | Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility |
US10872622B1 (en) | 2020-02-19 | 2020-12-22 | Alibaba Group Holding Limited | Method and system for deploying mixed storage products on a uniform storage infrastructure |
US10923156B1 (en) | 2020-02-19 | 2021-02-16 | Alibaba Group Holding Limited | Method and system for facilitating low-cost high-throughput storage for accessing large-size I/O blocks in a hard disk drive |
KR20210109085A (ko) | 2020-02-26 | 2021-09-06 | 삼성전자주식회사 | 메모리 장치에 대한 테스트 방법, 메모리 장치를 테스트하는 테스트 장치의 동작 방법, 및 셀프-테스트 기능을 구비한 메모리 장치 |
US11150986B2 (en) | 2020-02-26 | 2021-10-19 | Alibaba Group Holding Limited | Efficient compaction on log-structured distributed file system using erasure coding for resource consumption reduction |
US11144250B2 (en) | 2020-03-13 | 2021-10-12 | Alibaba Group Holding Limited | Method and system for facilitating a persistent memory-centric system |
US11200114B2 (en) | 2020-03-17 | 2021-12-14 | Alibaba Group Holding Limited | System and method for facilitating elastic error correction code in memory |
US11385833B2 (en) | 2020-04-20 | 2022-07-12 | Alibaba Group Holding Limited | Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources |
US11281575B2 (en) | 2020-05-11 | 2022-03-22 | Alibaba Group Holding Limited | Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks |
US11494115B2 (en) | 2020-05-13 | 2022-11-08 | Alibaba Group Holding Limited | System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC) |
US11461262B2 (en) | 2020-05-13 | 2022-10-04 | Alibaba Group Holding Limited | Method and system for facilitating a converged computation and storage node in a distributed storage system |
US11218165B2 (en) | 2020-05-15 | 2022-01-04 | Alibaba Group Holding Limited | Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM |
US11556277B2 (en) | 2020-05-19 | 2023-01-17 | Alibaba Group Holding Limited | System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification |
US11507499B2 (en) | 2020-05-19 | 2022-11-22 | Alibaba Group Holding Limited | System and method for facilitating mitigation of read/write amplification in data compression |
US11263132B2 (en) | 2020-06-11 | 2022-03-01 | Alibaba Group Holding Limited | Method and system for facilitating log-structure data organization |
US11354200B2 (en) | 2020-06-17 | 2022-06-07 | Alibaba Group Holding Limited | Method and system for facilitating data recovery and version rollback in a storage device |
US11422931B2 (en) | 2020-06-17 | 2022-08-23 | Alibaba Group Holding Limited | Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization |
US11354233B2 (en) | 2020-07-27 | 2022-06-07 | Alibaba Group Holding Limited | Method and system for facilitating fast crash recovery in a storage device |
US11372774B2 (en) | 2020-08-24 | 2022-06-28 | Alibaba Group Holding Limited | Method and system for a solid state drive with on-chip memory integration |
US20230410898A1 (en) * | 2020-10-19 | 2023-12-21 | Rambus Inc. | Flash memory device with photon assisted programming |
US11342035B1 (en) | 2020-11-24 | 2022-05-24 | Sandisk Technologies Llc | Memory apparatus and method of operation using one pulse smart verify |
US11568943B2 (en) | 2020-11-24 | 2023-01-31 | Sandisk Technologies Llc | Memory apparatus and method of operation using zero pulse smart verify |
US11487465B2 (en) | 2020-12-11 | 2022-11-01 | Alibaba Group Holding Limited | Method and system for a local storage engine collaborating with a solid state drive controller |
US11734115B2 (en) | 2020-12-28 | 2023-08-22 | Alibaba Group Holding Limited | Method and system for facilitating write latency reduction in a queue depth of one scenario |
US11416365B2 (en) | 2020-12-30 | 2022-08-16 | Alibaba Group Holding Limited | Method and system for open NAND block detection and correction in an open-channel SSD |
US11726699B2 (en) | 2021-03-30 | 2023-08-15 | Alibaba Singapore Holding Private Limited | Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification |
US11461173B1 (en) | 2021-04-21 | 2022-10-04 | Alibaba Singapore Holding Private Limited | Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement |
US11476874B1 (en) | 2021-05-14 | 2022-10-18 | Alibaba Singapore Holding Private Limited | Method and system for facilitating a storage server with hybrid memory for journaling and data storage |
US11972812B2 (en) | 2021-12-13 | 2024-04-30 | Sandisk Technologies Llc | Non-volatile memory with data refresh based on data states of adjacent memory cells |
US11816353B2 (en) | 2021-12-20 | 2023-11-14 | Western Digital Technologies, Inc. | Parity data for non-volatile storage |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5671388A (en) * | 1995-05-03 | 1997-09-23 | Intel Corporation | Method and apparatus for performing write operations in multi-level cell storage device |
US20070201274A1 (en) * | 2000-01-06 | 2007-08-30 | Super Talent Electronics Inc. | Cell-Downgrading and Reference-Voltage Adjustment for a Multi-Bit-Cell Flash Memory |
US20070263469A1 (en) * | 2006-05-15 | 2007-11-15 | Apple Inc. | Two Levels of Voltage Regulation Supplied for Logic and Data Programming Voltage of a Memory Device |
CN101079322A (zh) * | 2006-03-31 | 2007-11-28 | 三星电子株式会社 | 多位存储装置和存储系统 |
Family Cites Families (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5095344A (en) | 1988-06-08 | 1992-03-10 | Eliyahou Harari | Highly compact eprom and flash eeprom devices |
US5070032A (en) | 1989-03-15 | 1991-12-03 | Sundisk Corporation | Method of making dense flash eeprom semiconductor memory structures |
US5343063A (en) | 1990-12-18 | 1994-08-30 | Sundisk Corporation | Dense vertical programmable read only memory cell structure and processes for making them |
KR960002006B1 (ko) | 1991-03-12 | 1996-02-09 | 가부시끼가이샤 도시바 | 2개의 기준 레벨을 사용하는 기록 검증 제어기를 갖는 전기적으로 소거 가능하고 프로그램 가능한 불휘발성 메모리 장치 |
US5602789A (en) | 1991-03-12 | 1997-02-11 | Kabushiki Kaisha Toshiba | Electrically erasable and programmable non-volatile and multi-level memory systemn with write-verify controller |
US5313421A (en) | 1992-01-14 | 1994-05-17 | Sundisk Corporation | EEPROM with split gate source side injection |
US6222762B1 (en) | 1992-01-14 | 2001-04-24 | Sandisk Corporation | Multi-state memory |
US5315541A (en) | 1992-07-24 | 1994-05-24 | Sundisk Corporation | Segmented column memory array |
KR0169267B1 (ko) | 1993-09-21 | 1999-02-01 | 사토 후미오 | 불휘발성 반도체 기억장치 |
US5661053A (en) | 1994-05-25 | 1997-08-26 | Sandisk Corporation | Method of making dense flash EEPROM cell array and peripheral supporting circuits formed in deposited field oxide with the use of spacers |
JPH07287657A (ja) | 1994-04-19 | 1995-10-31 | Toshiba Corp | 制約条件評価装置、エキスパートシステム及び制約条件評価方法 |
US5767429A (en) * | 1995-11-09 | 1998-06-16 | Milano; Lynn M. | Automatic string instrument tuner |
JPH09134313A (ja) * | 1995-11-10 | 1997-05-20 | Sony Corp | メモリ装置 |
DE69635105D1 (de) * | 1996-01-31 | 2005-09-29 | St Microelectronics Srl | Mehrstufige Speicherschaltungen und entsprechende Lese- und Schreibverfahren |
US5903495A (en) | 1996-03-18 | 1999-05-11 | Kabushiki Kaisha Toshiba | Semiconductor device and memory system |
JP3200012B2 (ja) | 1996-04-19 | 2001-08-20 | 株式会社東芝 | 記憶システム |
US5768192A (en) | 1996-07-23 | 1998-06-16 | Saifun Semiconductors, Ltd. | Non-volatile semiconductor memory cell utilizing asymmetrical charge trapping |
US6134140A (en) | 1997-05-14 | 2000-10-17 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory device with soft-programming to adjust erased state of memory cells |
JPH1131102A (ja) * | 1997-07-14 | 1999-02-02 | Toshiba Corp | データ記憶システム及び同システムに適用するアクセス制御方法 |
US5930167A (en) | 1997-07-30 | 1999-07-27 | Sandisk Corporation | Multi-state non-volatile flash memory capable of being its own two state write cache |
US6768165B1 (en) | 1997-08-01 | 2004-07-27 | Saifun Semiconductors Ltd. | Two bit non-volatile electrically erasable and programmable semiconductor memory cell utilizing asymmetrical charge trapping |
US5867429A (en) | 1997-11-19 | 1999-02-02 | Sandisk Corporation | High density non-volatile flash memory without adverse effects of electric field coupling between adjacent floating gates |
US6141388A (en) | 1998-03-11 | 2000-10-31 | Ericsson Inc. | Received signal quality determination method and systems for convolutionally encoded communication channels |
JP4323707B2 (ja) | 2000-10-25 | 2009-09-02 | 富士通マイクロエレクトロニクス株式会社 | フラッシュメモリの欠陥管理方法 |
US6349056B1 (en) | 2000-12-28 | 2002-02-19 | Sandisk Corporation | Method and structure for efficient data verification operation for non-volatile memories |
JP2003022687A (ja) * | 2001-07-09 | 2003-01-24 | Mitsubishi Electric Corp | 半導体記憶装置 |
ITMI20011619A1 (it) | 2001-07-26 | 2003-01-26 | Montefibre Spa | Procedimento per la preparazione di materiali in fibra acrilica idrorepellenti |
US6717847B2 (en) * | 2001-09-17 | 2004-04-06 | Sandisk Corporation | Selective operation of a multi-state non-volatile memory system in a binary mode |
US7554842B2 (en) * | 2001-09-17 | 2009-06-30 | Sandisk Corporation | Multi-purpose non-volatile memory card |
US6456528B1 (en) | 2001-09-17 | 2002-09-24 | Sandisk Corporation | Selective operation of a multi-state non-volatile memory system in a binary mode |
JP4063615B2 (ja) | 2002-08-30 | 2008-03-19 | Necエレクトロニクス株式会社 | 不揮発性メモリおよびその書き込み処理方法 |
US7196931B2 (en) | 2002-09-24 | 2007-03-27 | Sandisk Corporation | Non-volatile memory and method with reduced source line bias errors |
KR100543447B1 (ko) * | 2003-04-03 | 2006-01-23 | 삼성전자주식회사 | 에러정정기능을 가진 플래쉬메모리장치 |
US6917542B2 (en) | 2003-07-29 | 2005-07-12 | Sandisk Corporation | Detecting over programmed memory |
US6914823B2 (en) | 2003-07-29 | 2005-07-05 | Sandisk Corporation | Detecting over programmed memory after further programming |
US7009889B2 (en) | 2004-05-28 | 2006-03-07 | Sandisk Corporation | Comprehensive erase verification for non-volatile memory |
US7428180B2 (en) | 2006-01-25 | 2008-09-23 | Samsung Electronics Co., Ltd. | Semiconductor memory devices and methods of testing for failed bits of semiconductor memory devices |
JP4805696B2 (ja) * | 2006-03-09 | 2011-11-02 | 株式会社東芝 | 半導体集積回路装置およびそのデータ記録方式 |
JP2008077810A (ja) | 2006-09-25 | 2008-04-03 | Toshiba Corp | 不揮発性半導体記憶装置 |
KR100858241B1 (ko) * | 2006-10-25 | 2008-09-12 | 삼성전자주식회사 | 하이브리드 플래시 메모리 장치 및 그것의 가용 블록 할당방법 |
US8122319B2 (en) | 2007-01-24 | 2012-02-21 | Charles I. Peddle | Page-based failure management for flash memory |
JP5059493B2 (ja) * | 2007-06-15 | 2012-10-24 | 株式会社リコー | アクセス制御装置、アクセス制御方法、アクセス制御プログラムおよび記録媒体 |
JP4510060B2 (ja) | 2007-09-14 | 2010-07-21 | 株式会社東芝 | 不揮発性半導体記憶装置の読み出し/書き込み制御方法 |
US7945825B2 (en) | 2007-11-25 | 2011-05-17 | Spansion Isreal, Ltd | Recovery while programming non-volatile memory (NVM) |
WO2009072102A2 (en) | 2007-12-05 | 2009-06-11 | Densbits Technologies Ltd. | System and methods employing mock thresholds to generate actual reading thresholds in flash memory devices |
JP2009301194A (ja) * | 2008-06-11 | 2009-12-24 | Toshiba Corp | 半導体記憶装置の制御システム |
US8843691B2 (en) * | 2008-06-25 | 2014-09-23 | Stec, Inc. | Prioritized erasure of data blocks in a flash storage device |
US7864578B2 (en) | 2008-06-30 | 2011-01-04 | Kabushiki Kaisha Toshiba | Semiconductor memory repairing a defective bit and semiconductor memory system |
US7864587B2 (en) | 2008-09-22 | 2011-01-04 | Micron Technology, Inc. | Programming a memory device to increase data reliability |
US8094500B2 (en) | 2009-01-05 | 2012-01-10 | Sandisk Technologies Inc. | Non-volatile memory and method with write cache partitioning |
KR101581857B1 (ko) | 2009-08-06 | 2015-12-31 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 인터리브 유닛 구성 방법 |
US8464106B2 (en) | 2009-08-24 | 2013-06-11 | Ocz Technology Group, Inc. | Computer system with backup function and method therefor |
US8214700B2 (en) | 2009-10-28 | 2012-07-03 | Sandisk Technologies Inc. | Non-volatile memory and method with post-write read and adaptive re-write to manage errors |
US8634240B2 (en) | 2009-10-28 | 2014-01-21 | SanDisk Technologies, Inc. | Non-volatile memory and method with accelerated post-write read to manage errors |
US8423866B2 (en) | 2009-10-28 | 2013-04-16 | SanDisk Technologies, Inc. | Non-volatile memory and method with post-write read and adaptive re-write to manage errors |
US20110153912A1 (en) | 2009-12-18 | 2011-06-23 | Sergey Anatolievich Gorobets | Maintaining Updates of Multi-Level Non-Volatile Memory in Binary Non-Volatile Memory |
JP2011128984A (ja) * | 2009-12-18 | 2011-06-30 | Toshiba Corp | メモリシステム |
-
2009
- 2009-10-28 US US12/607,522 patent/US8214700B2/en active Active
-
2010
- 2010-10-22 JP JP2012536905A patent/JP5443612B2/ja not_active Expired - Fee Related
- 2010-10-22 CN CN201080049016.1A patent/CN102667944B/zh active Active
- 2010-10-22 EP EP10774367A patent/EP2494552A1/en not_active Withdrawn
- 2010-10-22 KR KR1020127012395A patent/KR101621584B1/ko active IP Right Grant
- 2010-10-22 WO PCT/US2010/053792 patent/WO2011056478A1/en active Application Filing
- 2010-10-28 TW TW099137035A patent/TW201140605A/zh unknown
-
2012
- 2012-07-02 US US13/540,279 patent/US8386861B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5671388A (en) * | 1995-05-03 | 1997-09-23 | Intel Corporation | Method and apparatus for performing write operations in multi-level cell storage device |
US20070201274A1 (en) * | 2000-01-06 | 2007-08-30 | Super Talent Electronics Inc. | Cell-Downgrading and Reference-Voltage Adjustment for a Multi-Bit-Cell Flash Memory |
CN101079322A (zh) * | 2006-03-31 | 2007-11-28 | 三星电子株式会社 | 多位存储装置和存储系统 |
US20070263469A1 (en) * | 2006-05-15 | 2007-11-15 | Apple Inc. | Two Levels of Voltage Regulation Supplied for Logic and Data Programming Voltage of a Memory Device |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104583978A (zh) * | 2012-09-26 | 2015-04-29 | 英特尔公司 | 与针对两级存储器系统的读取和写入窗口预算相关联的技术 |
CN104583978B (zh) * | 2012-09-26 | 2018-01-19 | 英特尔公司 | 与针对两级存储器系统的读取和写入窗口预算相关联的技术 |
CN105339906A (zh) * | 2013-06-12 | 2016-02-17 | 日本电气株式会社 | 控制对永久存储设备的数据写入的方法 |
CN105339906B (zh) * | 2013-06-12 | 2018-07-20 | 日本电气株式会社 | 控制对永久存储设备的数据写入的方法 |
CN106847341A (zh) * | 2016-12-23 | 2017-06-13 | 鸿秦(北京)科技有限公司 | 一种纯电动汽车综合信息存储装置的存储体自检装置及方法 |
CN111274061A (zh) * | 2018-12-04 | 2020-06-12 | 阿里巴巴集团控股有限公司 | 处理大容量存储器中的不可纠正的数据错误的系统和方法 |
CN111274061B (zh) * | 2018-12-04 | 2023-05-09 | 阿里巴巴集团控股有限公司 | 处理大容量存储器中的不可纠正的数据错误的系统和方法 |
CN112698782A (zh) * | 2019-10-22 | 2021-04-23 | 中电智能科技有限公司 | 基于存储器数据加载的实现装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
US20110099418A1 (en) | 2011-04-28 |
US20120272120A1 (en) | 2012-10-25 |
TW201140605A (en) | 2011-11-16 |
JP2013509667A (ja) | 2013-03-14 |
KR20120093289A (ko) | 2012-08-22 |
JP5443612B2 (ja) | 2014-03-19 |
CN102667944B (zh) | 2016-01-13 |
US8386861B2 (en) | 2013-02-26 |
US8214700B2 (en) | 2012-07-03 |
EP2494552A1 (en) | 2012-09-05 |
WO2011056478A1 (en) | 2011-05-12 |
KR101621584B1 (ko) | 2016-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102667944B (zh) | 通过写入后读取和适应性重写来管理错误的非易失性存储器和方法 | |
CN102667945B (zh) | 通过写入后读取和适应性重写来管理错误的非易失性存储器和方法 | |
CN102667943B (zh) | 通过加速的写入后读取来管理错误的非易失性存储器和方法 | |
US9165683B2 (en) | Multi-word line erratic programming detection | |
US8873288B2 (en) | Simultaneous sensing of multiple wordlines and detection of NAND failures | |
CN103827971B (zh) | 具有使用多页的组合验证的加速的写入后读取的非易失性存储器的方法 | |
US8775901B2 (en) | Data recovery for defective word lines during programming of non-volatile memory arrays | |
CN103814409A (zh) | 使用以二进制格式和多状态格式写入的数据的比较的非易失性存储器中的写入后读取 | |
CN102918599B (zh) | 具有基本程序序列和写中止检测的非易失性存储器和方法 | |
KR20160137501A (ko) | 고체-상태 비휘발성 메모리 셀들의 부분적 재프로그래밍 | |
US8995184B2 (en) | Adaptive operation of multi level cell memory | |
US8830745B2 (en) | Memory system with unverified program step | |
US11630726B2 (en) | Memory system and operating method thereof | |
US11307807B2 (en) | Memory system, memory controller, and method for operating memory system for determining read biases for read retry operation | |
US11500771B2 (en) | Memory system, memory controller, and method of operating memory system |
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 | ||
C56 | Change in the name or address of the patentee | ||
CP01 | Change in the name or title of a patent holder |
Address after: texas Patentee after: DELPHI INT OPERATIONS LUX SRL Address before: texas Patentee before: Sandisk Corp. |