CN101529525B - 每单元多位的闪速存储器的概率错误校正 - Google Patents
每单元多位的闪速存储器的概率错误校正 Download PDFInfo
- Publication number
- CN101529525B CN101529525B CN200680044045.2A CN200680044045A CN101529525B CN 101529525 B CN101529525 B CN 101529525B CN 200680044045 A CN200680044045 A CN 200680044045A CN 101529525 B CN101529525 B CN 101529525B
- Authority
- CN
- China
- Prior art keywords
- reading
- unit
- probability
- bit
- data bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- 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/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1072—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
-
- 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/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
-
- 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/5642—Sensing or reading circuits; Data output circuits
-
- 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
- G11C2029/0409—Online test
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
根据读取位的一位或多位出错的估计概率,根据系统或非系统ECC,读取并校正(系统ECC)或恢复(非系统ECC)存储在每个单元存储多位的存储器的单元中的数据。在本发明的一种方法中,估计是先验的。在本发明的另一种方法中,估计仅基于包括读取位的有效性或位页的读取位的方面。在本发明的第三方法中,估计仅基于读取位的值。并不是所有的估计都是相等的。
Description
技术领域
本发明涉及数字数据的错误校正,尤其涉及一种每个单元存储多位的闪速存储设备的错误校正的方法。
背景技术
闪速存储设备已经存在许多年。典型地,闪速存储器内的每个单元存储一位的信息。传统上,存储一位的方法是通过支持单元的两种状态—一种状态表示逻辑“0”而另一种状态表示逻辑“1”。在闪速存储器单元中,两种状态通过具有位于单元通道上的浮动栅极(连接单元晶体管的源极和漏极元件的区域),以及具有存储在该浮动栅极内的电荷量的两种有效状态而实现。典型地,一种状态是在浮动栅极中具有零电荷并且是擦除之后单元的初始未写入状态(通常定义为表示“1”状态),而另一种状态是在浮动栅极中具有一定量的负电荷(通常定义为表示“0”状态)。在栅极中具有负电荷使得单元晶体管的阈值电压(也就是必须施加到晶体管的控制栅极以便使得晶体管传导的电压)增加。现在,通过检查单元的阈值电压读取存储位是可能的:如果阈值电压处于较高状态则位值为“0”,并且如果阈值电压处于较低电压则位值为“1”。实际上,不需要准确地读取单元的阈值电压。需要的是正确地识别单元当前处于两种状态的哪种。为了这个目的,相对于处于两种状态之间中间的参考电压值进行比较,从而确定单元的阈值电压低于还是高于该参考值是足够的。
图1A图示显示这如何工作。具体地,图1A显示大量单元的阈值电压的分布。因为闪速存储器中的单元在它们的特性和行为方面并不完全相同(例如因为杂质浓度的小偏差或硅结构的缺陷),将相同的编程操作应用于所有单元不会使得所有单元具有完全相同的阈值电压。(注意,由于历史原因,将数据写入闪速存储器通常称作“编程”闪速存储器)。代替地,阈值电压类似于图1A中显示的方式分布。存储“1”值的单元典型地具有负的阈值电压,使得大多数单元具有与由图1A的左峰值显示的值接近的阈值电压,一些较少数目的单元具有较低或较高的阈值电压。类似地,存储“0”值的单元典型地具有正的阈值电压,使得大多数单元具有与由图1A的右峰值显示的值接近的阈值电压,一些较少数目的单元具有较低或较高的阈值电压。
近年来,一种使用常规称作“多级单元”或缩写为MLC技术的新的闪速存储器已经在市场上出现。(该名称令人误解,因为先前类型的闪存单元也具有多于一级;它们具有两级,如上所述。因此,两种闪存单元在这里称作“单位单元”(SBC)和“多位单元”(MBC)。)由MBC闪存带来的改进在于每个单元中存储两位或多位。为了使得单个单元存储两位信息,单元必须能够处于四种不同状态的一种。因为单元的“状态”由它的阈值电压表示,显然2位MBC单元应当支持阈值电压的四种不同有效范围。图1B显示典型的2位MBC单元的阈值电压分布。如期望的,图1B具有四个峰值,每个对应一种状态。对于SBC情况,每种状态实际上是一个范围而不是单个数值。当读取单元的内容时,必须保证的是正确地识别单元的阈值电压所处的范围。对于MBC闪速存储器的现有技术实例,参看Harari的美国专利5,434,825号。
类似地,为了使得单个单元存储三位信息,单元必须能够处于八种不同状态的一种。所以3位MBC单元应当支持阈值电压的八种不同有效范围。图1C显示典型的3位MBC单元的阈值电压分布。如期望的,图1C具有八个峰值,每个对应一种状态。图1D显示4位MBC单元的阈值电压分布,需要由十六种阈值电压范围表示的十六种状态。
当经由四种状态编码MBC单元中的两位时,使得图1B中的最左侧状态(典型地具有负的阈值电压)表示两位都具有“1”值的情况。(在下面的讨论中,使用下面的表示——单元的两位称作“低位”和“高位”。位的确切值写作[”高位”“低位”]的形式,低位值在右侧。所以低位为“0”且高位为“1”的情况写作“10”。必须理解,该术语和表示法的选择是任意的,并且其他名称和编码是可能的)。使用这种表示法,最左侧状态表示“11”的情况。其他三种状态典型地从左到右由下面的次序指定:“10”,“00”,“01”。在Chen的美国专利6,522,580号中可以看到使用该编码的MBCNAND闪速存储器的实现实例,在此以提及方式引用该专利,如同将其完全在这里陈述。特别地参考Chen专利的图8。Tanaka的美国专利6,643,188号也显示MBCNAND闪速存储器的类似实现,但是参看那里的图7,对于状态到位的编码的不同指定:“11”,“10”,“01”,“00”。Chen编码是图1B中说明的编码。
我们将上面的术语和表示法扩展到每个单元多于两位的情况,如下。最左侧未写入状态表示“全一”(“1...1”),串“1...10”表示单元的仅最低位写为“0”的情况,并且串“01...1”表示单元的仅最高位写为“0”的情况。
当读取MBC单元的内容时,必须正确地识别单元的阈值电压所处的范围;仅在该情况下,这不能总是通过与仅一个参考电压比较而实现。代替地,几次比较可能是必需的。例如,在图1B中说明的情况下,为了读取低位,单元的阈值电压首先与参考比较电压V1比较,然后取决于比较的结果,与零参考比较电压或参考比较电压V2比较。作为选择,通过将阈值电压与零参考电压和参考比较电压V2无条件比较来读取低位,再次需要两次比较。对于每个单元多于两位,甚至可能需要更多的比较。
单个MBC单元的位可能都属于相同的闪存页,或者它们可能指定到不同页,使得例如在4位单元中,最低位在页0中,下一位在页1中,下一位在页2中,并且最高位在页3中。(页是可以在闪速存储器中单独写入的数据的最小部分)。
Lasser的美国专利申请序列号11/035,807涉及每个单元存储多位的闪速存储器单元中编码位的方法。Lasser的美国专利申请序列号11/061,634和Murin的美国专利申请序列号11/078,478涉及关于跨越多位闪存单元的不同逻辑页的错误分布问题的位编码的那些方法的实现。具体地,Lasser‘634讲授一种使用位编码的逻辑到物理映射实现甚至跨越不同逻辑页的错误分布的方法,如由数据的用户看到的以及由纠错码(ECC)电路系统处理的;并且Murin讲授一种使用物理位页之间逻辑页的插入实现甚至跨越不同逻辑页的错误分布的方法,如由数据的用户看到的以及由ECC电路系统处理的。这三个现有技术专利申请全部在此以提及方式引用,如同将其完全在这里陈述。
Lasser‘634和Murin满足相同的目标:减少ECC电路系统应当为此设计的出错率。在两个申请中呈现的实例中,一组15,000个4位MBC闪速存储器单元用于存储4个逻辑页的数据,每个15,000位。假定的单元出错率是1,000中1个。作为结果的位错误的最佳数目是15,因此逻辑页中的最佳平均位错误是3.75。该实例显示除非使用提出的创新,具体的逻辑页可能以高得多的位出错率结束——所示实例中6个位错误。这意味着即使遍及存储在单元中的所有位的位错误的总体平均值相对低(60,000中15个或4,000中1个),除非采取特殊措施,涉及校正逻辑页中错误的ECC电路系统必须设计为处理相对高的平均位出错率(在该实例中—15,000中6个或2,500中1个)。
由本申请的发明者提交的、标题为“MBC闪速存储器中错误校正的方法”的最近美国专利申请(在这里称“Litsyn等人”)公开相同目标的不同方法。在此以提及方式引用该申请,如同将其完全在这里陈述。代替单独为了错误校正的目的处理每个逻辑页,Litsyn等人同时处理共享相同组单元的所有逻辑页,作为一个ECC代码字处理所有那些多个逻辑页的所有位。这使得ECC电路系统必须处理的平均位出错率更低——在上面的实例中仅4,000中1个。
在大多数ECC实现中,所有位被相同处理,并且没有位被认为比平均更可靠或更不可靠。但是,如从上面明显的,当从一组MBC闪速存储器单元中读取多个逻辑页时,存储在不同位页中的位具有不同的错误概率。上面讨论的用于平均错误分布的现有技术方法的一些(Lasser‘634,Murin)在使得所有逻辑页平均起来具有相同数目的位错误方面是成功的,但是不同的各个位仍然具有不同的可靠性。
关于待错误校正的代码字中各个位的位出错率的信息对于错误校正模块非常有用。我们将使用非常简化的实例说明这一点。假设一组四位通过奇偶位防止单个错误,使得如果检测到错误,ECC选择位中的一位翻转并且提供这个作为校正结果。如果代码字中全部五位(四个数据位和一个奇偶位)同等可能地出错,那么关于检测到错误时翻转哪位的决定仅可以随机地进行。这导致仅20%的正确决定。但是如果已知位中的一位比代码字中其他四位的任何一个不可靠六倍,那么检测到错误时选择该位翻转导致60%的正确决定。虽然该实例极度简化并且在真实世界的ECC实现中计算和决定的方法复杂得多,但是它确实适合于说明各个位的可靠性数据对于提高错误校正方案性能的有用性的目的。
存在额外的可靠性信息影响ECC电路系统处理不同位的方法的现有技术系统。参看例如Ban等人于2004年6月16日提交且标题为“增加闪速存储器可靠性的方法”的美国专利申请10/867,645。在Ban等人中,使用比将单元状态分离成它的可能值所需的更高分辨率读取存储在闪存单元中的数据。例如,如果单元被写入16种状态的一种(也就是单元存储4位),那么读取单元,好像它具有5位一样。这被Ban等人称作使用“分式级”,但是其他使用不同的术语例如“软位”。其他也使用多于一位的额外读取来提供甚至更高的分辨率。该高分辨率读取提供的额外位被ECC模块用于估计其他“真实”数据位的可靠性,因为同将它的状态(好像它被实际读取一样)与邻近状态分离的边界相比较,它们提供关于单元额外状态的证据。位于边界附近的单元比位于范围中间和远离边界的单元更可能出错。也存在利用该方法的现有技术通信系统,其中有时许多额外的高分辨率位用于提高信道的错误校正性能。
在所有这些现有技术系统中,额外的可靠性信息是除了仅仅存储位自身固有的信息之外的信息。如果ECC可以仅基于存储位自身固有的信息,则这种ECC可以简化。例如,可以实现基于额外可靠性信息的ECC,而不需要以比读取存储在单元中的位所需的更高分辨率读取MBC闪速存储器的单元。
发明内容
本发明的范围包括基于仅存储数据固有的额外可靠性信息读取存储在MBC存储器中的数据的三种方法,具有错误校正。在第一方法中,额外可靠性信息是读取位的可靠性的显式先验估计。在第二方法中,额外信息是读取位的可靠性的隐式先验估计。在第三方法中,读取位的至少一些的可靠性从读取位的值推断。
本发明的ECC可以是系统或非系统的。在系统ECC中,错误校正获得原始数据位,对它们附加一些奇偶位,并且存储原始数据位和奇偶位。因此,原始数据位由编码过程保存并且可以在存储位中识别;随后,当读取存储位时,数据位和奇偶位都被读取,并且奇偶位能够校正读取的数据位中的错误。在非系统ECC中,不保存且不存储原始数据位。代替地,编码过程将原始数据位转换成更大的一组位(在这里称作“受保护位”),这是实际存储的位。当读取存储位时,从存储位中再生原始位。在具体的原始数据位与具体的存储位之间不存在直接对应。
根据本发明,提供一种读取存储在包括多个多位单元的存储器中的多个数据位的方法,存储通过计算与数据位相对应的多个奇偶位,然后将数据位和奇偶位作为存储位存储在存储器的单元中而实现,各自的多个存储位存储在单元的每个中,该方法包括步骤:(a)读取单元,从而对于每个单元,获得各自的多个读取位;以及(b)根据与奇偶位相对应的读取位校正与数据位相对应的读取位,其中校正根据读取位中至少两位出错的各自概率的先验估计而实现,其中至少一个估计不同于至少另一个估计。
根据本发明,提供一种计算机可读存储介质,具有包含在计算机可读存储介质上的计算机可读代码,计算机可读代码用于管理包括多个多位单元并且其中存储多个数据位的存储器,通过计算与数据位相对应的多个奇偶位,然后将数据位和奇偶位作为存储位存储在存储器的单元中来存储数据位,各自的多个存储位存储在单元的每个中,该计算机可读代码包括:(a)用于读取单元,从而对于每个单元,获得各自的多个读取位的程序代码;以及(b)用于根据与奇偶位相对应的读取位校正与数据位相对应的读取位的程序代码,其中校正根据读取位中至少两位出错的各自概率的先验估计而实现,其中至少一个估计不同于至少另一个估计。
根据本发明,提供一种读取存储在包括多个多位单元的存储器中的多个数据位的方法,存储通过计算与数据位相对应的多个受保护位,然后将受保护位存储在存储器的单元中而实现,各自的多个受保护位存储在单元的每个中,该方法包括步骤:(a)读取单元,从而对于每个单元,获得各自的多个读取的受保护位;以及(b)从读取的受保护位中恢复数据位,其中恢复根据读取的受保护位中至少两位出错的各自概率的先验估计而实现,其中至少一个估计不同于至少另一个估计。
根据本发明,提供一种计算机可读存储介质,具有包含在计算机可读存储介质上的计算机可读代码,计算机可读代码用于管理包括多个多位单元并且其中存储多个数据位的存储器,通过计算与数据位相对应的多个受保护位,然后将受保护位存储在存储器的单元中来存储数据位,各自的多个受保护位存储在单元的每个中,该计算机可读代码包括:(a)用于读取单元,从而对于每个单元,获得各自的多个读取位的程序代码;以及(b)用于从读取的受保护位中恢复数据位的程序代码,其中恢复根据读取的受保护位中至少两位出错的各自概率的先验估计而实现,其中至少一个估计不同于至少另一个估计。
根据本发明,提供一种读取存储在包括多个多位单元的存储器中的多个数据位的方法,存储通过计算与数据位相对应的多个奇偶位,然后将数据位和奇偶位作为存储位存储在存储器的单元中而实现,各自的多个存储位存储在单元的每个中,该方法包括步骤:(a)读取单元,从而对于每个单元,获得各自的多个读取位;以及(b)根据与奇偶位相对应的读取位校正与数据位相对应的读取位,其中校正根据读取位中至少两位出错的各自概率而实现,该概率仅基于读取位的至少一个方面,该至少一个方面包括选自读取位的各自有效性和读取位的各自位页的方面,其中至少一个概率不同于至少另一个概率。
根据本发明,提供一种计算机可读存储介质,具有包含在计算机可读存储介质上的计算机可读代码,计算机可读代码用于管理包括多个多位单元并且其中存储多个数据位的存储器,通过计算与数据位相对应的多个奇偶位,然后将数据位和奇偶位作为存储位存储在存储器的单元中来存储数据位,各自的多个存储位存储在单元的每个中,该计算机可读代码包括:(a)用于读取单元,从而对于每个单元,获得各自的多个读取位的程序代码;以及(b)用于根据与奇偶位相对应的读取位校正与数据位相对应的读取位的程序代码,其中校正根据读取位中至少两位出错的各自概率而实现,该概率仅基于读取位的至少一个方面,该至少一个方面包括选自读取位的各自有效性和读取位的各自位页的方面,其中至少一个概率不同于至少另一个概率。
根据本发明,提供一种读取存储在包括多个多位单元的存储器中的多个数据位的方法,存储通过计算与数据位相对应的多个受保护位,然后将受保护位存储在存储器的单元中而实现,各自的多个受保护位存储在单元的每个中,该方法包括步骤:(a)读取单元,从而对于每个单元,获得各自的多个读取的受保护位;以及(b)从读取的受保护位中恢复数据位,其中恢复根据读取的受保护位中至少两位出错的各自概率而实现,该概率仅基于读取的受保护位的至少一个方面,该至少一个方面包括选自读取的受保护位的各自有效性和读取的受保护位的各自位页的方面,其中至少一个概率不同于至少另一个概率。
根据本发明,提供一种计算机可读存储介质,具有包含在计算机可读存储介质上的计算机可读代码,计算机可读代码用于管理包括多个多位单元并且其中存储多个数据位的存储器,通过计算与数据位相对应的多个受保护位,然后将受保护位存储在存储器的单元中来存储数据位,各自的多个受保护位存储在单元的每个中,该计算机可读代码包括:(a)用于读取单元,从而对于每个单元,获得各自的多个读取位的程序代码;以及(b)用于从读取的受保护位中恢复数据位的程序代码,其中恢复根据读取的受保护位中至少两位出错的各自概率而实现,该概率仅基于读取的受保护位的至少一个方面,该至少一个方面包括选自读取的受保护位的各自有效性和读取的受保护位的各自位页的方面,其中至少一个概率不同于至少另一个概率。
根据本发明,提供一种读取存储在包括多个多位单元的存储器中的多个数据位的方法,存储通过计算与数据位相对应的多个奇偶位,然后将数据位和奇偶位作为存储位存储在存储器的单元中而实现,各自的多个存储位存储在单元的每个中,该方法包括步骤:(a)读取单元,从而对于每个单元,获得各自的多个读取位;以及(b)根据与奇偶位相对应的读取位校正与数据位相对应的读取位,其中校正根据读取位中至少两位出错的各自概率而实现,该概率仅基于读取位的各个值,其中至少一个概率不同于至少另一个概率。
根据本发明,提供一种计算机可读存储介质,具有包含在计算机可读存储介质上的计算机可读代码,计算机可读代码用于管理包括多个多位单元并且其中存储多个数据位的存储器,通过计算与数据位相对应的多个奇偶位,然后将数据位和奇偶位作为存储位存储在存储器的单元中来存储数据位,各自的多个存储位存储在单元的每个中,该计算机可读代码包括:(a)用于读取单元,从而对于每个单元,获得各自的多个读取位的程序代码;以及(b)用于根据与奇偶位相对应的读取位校正与数据位相对应的读取位的程序代码,其中校正根据读取位中至少两位出错的各自概率而实现,该概率仅基于读取位的各个值,其中至少一个概率不同于至少另一个概率。
根据本发明,提供一种读取存储在包括多个多位单元的存储器中的多个数据位的方法,存储通过计算与数据位相对应的多个受保护位,然后将受保护位存储在存储器的单元中而实现,各自的多个受保护位存储在单元的每个中,该方法包括步骤:(a)读取单元,从而对于每个单元,获得各自的多个读取的受保护位;以及(b)从读取的受保护位中恢复数据位,其中恢复根据读取的受保护位中至少两位出错的各自概率而实现,该概率仅基于读取的受保护位的各个值,其中至少一个概率不同于至少另一个概率。
根据本发明,提供一种计算机可读存储介质,具有包含在计算机可读存储介质上的计算机可读代码,计算机可读代码用于管理包括多个多位单元并且其中存储多个数据位的存储器,通过计算与数据位相对应的多个受保护位,然后将受保护位存储在存储器的单元中来存储数据位,各自的多个受保护位存储在单元的每个中,该计算机可读代码包括:(a)用于读取单元,从而对于每个单元,获得各自的多个读取的受保护位的程序代码;以及(b)用于从读取的受保护位中恢复数据位的程序代码,其中恢复根据读取的受保护位中至少两位出错的各自概率而实现,该概率仅基于读取的受保护位的各个值,其中至少一个概率不同于至少另一个概率。
本发明的方法的第一实施方案针对校正存储在使用系统ECC的MBC存储器中的数据。本发明的方法的第二实施方案针对校正存储在使用非系统ECC的MBC存储器中的数据。在两种方法的两种实施方案中,第一步骤是读取存储位,从而对于相关位存储于其中的每个单元,获得各自的多个“读取”位。因为读取单元时的错误,单元的“读取”位可能与单元中存储的位不完全相同。准确地说,ECC打算解决的正是读取位与存储位之间的可能差异。
在本发明的第一方法的第一实施方案中,根据与奇偶位相对应的读取位校正与数据位相对应的读取位。该校正考虑读取位中两位或多位出错的概率的先验估计,并且不是所有估计都是相等的。
在本发明的第一方法的第二实施方案中,从读取的受保护位中恢复数据位。该恢复考虑读取位中两位或多位出错的概率的先验估计,并且不是所有估计都是相等的。
在本发明的第二方法的第一实施方案中,根据与奇偶位相对应的读取位校正与数据位相对应的读取位。该校正考虑读取位中两位或多位出错的概率,该概率仅基于读取位的至少一个方面,并且不是所有概率都是相等的。用来估计这些概率的读取位的方面必须包括读取位的有效性或读取位的位页或者二者。
在本发明的第二方法的第二实施方案中,从读取的受保护位中恢复数据位。该恢复考虑读取的受保护位中两位或多位出错的概率,该概率仅基于读取的受保护位的至少一个方面,并且不是所有概率都是相等的。用来估计这些概率的读取的受保护位的方面必须包括读取位的有效性或读取位的位页或者二者。
在本发明的第三方法的第一实施方案中,根据与奇偶位相对应的读取位校正与数据位相对应的读取位。该校正考虑读取位中两位或多位出错的概率,该概率仅基于读取位的值,并且不是所有概率都是相等的。
在本发明的第三方法的第二实施方案中,从读取的受保护位中恢复数据位。该恢复考虑读取的受保护位中两位或多位出错的概率,该概率仅基于读取的受保护位的值,并且不是所有概率都是相等的。
优选地,在本发明的第一方法中,先验估计的至少两个用于单元中共同一个的读取位,或者读取的受保护位。作为选择,先验估计的至少两个用于不同单元的读取位,或者读取的受保护位。
优选地,在本发明的第一方法中,先验概率取决于相关位的有效性。存储在MBC单元中的位的“有效性”是存储在MBC单元中的二进制数中位的位置。例如,存储四位的MBC单元存储0-15之间的二进制数,其具有四位:最低有效位、次低有效位、次高有效位和最高有效位。作为选择,先验概率取决于相关位的位页。在MBC闪速存储器中,具有共同有效性的所有位分组在相同的逻辑位页中是一般惯例,在该情况下,先验概率的这两个依赖性是等价的。
本发明的范围也包括使用本发明的方法中的一种恢复存储在存储器中的数据的MBC存储器的控制器,包括本发明的MBC存储器和控制器的存储设备,以及具有嵌入于其上的用于根据本发明的方法中的一种管理存储器的计算机可读代码的计算机可读存储介质。
附图说明
在这里参考附随附图仅作为实例描述本发明,其中:
图1A-1D显示一位闪存单元、两位闪存单元、三位闪存单元和四位闪速单元中的阈值电压分布;
图2是本发明的闪速存储设备的高级框图;以及
图3是本发明的数据存储系统的高级部分框图。
具体实施方式
本发明是一种每个单元存储多位的存储器的错误校正方法,其利用存储在每个单元中的各个位出错的概率的知识。
可以参考附图和附随描述更好地理解根据本发明的错误校正的原理和操作。
本发明的第一两种方法是利用从各个位存储于设备单元内的位置导出的可靠性信息(例如,在每个单元的位属于不同页的MBC闪速存储设备的情况下,各个位存储在哪些位页中),校正从MBC闪速存储设备中读取的数据中的错误的改进方法。本发明的第三方法是利用从共享共同单元的不同位之间的相关性导出的可靠性信息,校正从MBC闪速存储设备中读取的数据中的错误的改进方法。提出的方法可适用于在校正过程中使用的ECC代码字包含位于共享单元中的多个位的情况。这通常是Litsyn等人的方法用于校正从MBC闪存设备中读取的数据中的错误时的情况。
在本发明的第一两种方法中,利用每个位的物理存储位置已知,因此它的期望出错率也已知的事实(注意术语“位的出错率”和“位的可靠率”在这里用作相同特征的两个相对方面,因此可互换地用于指相同的特性)。因此,ECC模块通过为每个位指定错误的初始先验概率,用作ECC计算和决定的初始点来利用该信息。本发明并不局限于任何具体的ECC方案或算法——存在许多现有领域中已知的可以利用这种初始开始点并根据成功概率、收敛时间或成功的其他因素而提供更好的错误校正的ECC算法。
特别地,本发明的第一两种方法打算与“软”解码算法一起使用。这种算法在例如GeorgeC.Clark,Jr.和J.BibbCain,数字通信的错误校正编码(Springer,1981),S.Lin和D.J.Costello,错误控制编码:基础和应用(Prentice-Hall,1983)以及BrankaVucetic和JinhongYuan,Turbo代码:原理和应用(Kluwer,2000)中描述。虽然这些参考文献针对软ECC算法在通信中的使用,如何将这些算法适用于每个单元存储多位的存储器中的错误校正对于本领域技术人员是显然的。
这些方法不同于额外信息通过以更高分辨率读取单元而获得的上述现有技术方法。在本发明中,不同的可靠性值在读取数据之前确定并且不依赖于读取数据的实际值。这不是上面现有技术方法的情况。换句话说,本发明能够将错误的先验概率用于各个位位置,即使这种概率不能从实际数据中获得,而现有技术系统依赖于从实际数据中提取这种概率的能力。本发明利用可以例如由闪存的供应商提供的概率。这种先验概率的一个优点在于本发明比现有技术方法实现起来更简单。不像那些方法,本发明不需要提取和操作存储位上面的附加位。
例如,考虑在Lasser‘634和在Murin中讨论的每个单元存储四位的位次序{15,14,12,13,9,8,10,11,3,2,0,4,6,7,5,1}。(这是图1D中说明的位次序)。如在那些专利申请中显示的,最低位是最高位出错概率的六倍,次低位是最高位出错概率的五倍,并且次高位是最高位出错概率的三倍。在用来存储数据的四个逻辑页的一组15,000个每个单元存储四位的MBC单元中,假定的单元出错率是1,000中1个,每个单元的最低位具有6/15,000=2/5,000的先验错误概率,每个单元的次低位具有5/15,000=1/3,000的先验错误概率,每个单元的次高位具有3/15,000=1/5,000的先验错误概率,以及每个单元的最高位具有1/15,000的先验错误概率。
在该实例中,位的先验错误概率仅是位的有效性的函数。相同位页中的所有位具有相同的先验错误概率。一般地说,位页的一些位具有与相同位页的其他位不同的先验错误概率是可能的。
在本发明的第三方法中,利用除了从MBC单元的物理页位中位的位置获得的可靠性信息之外,存在可以由ECC模块利用的另一个信息源的事实。与ECC代码字的每个位来自不同单元,其中不同位的错误之间没有相关性的情况相反,在代码字中存在来自相同单元的多个位的情况下(如Litsyn等人的方法中的情况),我们可以从一位的值中推导相同单元中其他位的值。因为不是闪存单元中所有错误状态转换同等地可能,推导可以从一位进行到另一位。
例如考虑每个单元存储四位的位次序{15,14,12,13,9,8,10,11,3,2,0,4,6,7,5,1}。假设单元的解码从最高有效位到最低有效位顺序地执行。假设单元的三个最高有效位已经读作“100”并且已经由ECC算法校正为“101”。这可以仅移动一个阈值电压范围而发生的唯一方法是如果单元写作10(二进制1010)并且读作8(二进制1000)。备选方案是:
单元写作10(二进制1010)并且读作9(二进制1001),两个阈值电压范围的移动。
单元写作11(二进制1011)并且读作8(二进制1000),两个阈值电压范围的移动。
单元写作11(二进制1011)并且读作9(二进制1001),三个阈值电压范围的移动。
这暗示着最低有效位为“0”的奇数比最低有效位为“1”的奇数高得多。
该方法也不同于额外信息通过以更高分辨率读取单元而获得的上述现有技术方法。在本发明中,输入到ECC模块中的唯一位是数据位和它们相应的奇偶位。没有其他数据相关的输入(与预先确定的非数据相关的输入对比)提供到ECC模块,用于执行它的校正过程。这不是上面现有技术方法的情况,其中较高精度的额外位从单元中产生并且作为辅助输入提供到ECC模块。
本发明的范围也包括代码字中的仅一些位而不是全部位被指定不同于平均值的初始概率的更一般情况。它也包括共享单元的位之间的相关效应仅对于一些单元而不是全部单元考虑的更一般情况。
至此,已经在“系统的”错误校正方案的背景环境中呈现本发明。如上所述,在系统的错误校正编码中,原始数据位由编码过程保存并且可以在存储位中识别。换句话说,错误校正机制获得原始数据位,对它们增加一些奇偶位,并且存储数据位和奇偶位。随后,当读取存储位时,数据位和奇偶位都被读取,并且奇偶位能够校正读取的数据位中的错误,从而产生原始数据位。
但是,本发明同等地适用于非系统的错误校正代码。如上所述,在这种代码中,不保存且不存储原始数据位。代替地,编码过程将原始数据位转换成更大的一组位,这是实际存储的位。当读取存储的保护数据位时,再生原始数据位,即使在保护数据位中存在错误。非系统代码的定义特性是在具体的原始数据位与具体的存储位之间不存在直接对应。原始数据位“分散”在多个存储位中,并且仅那些多个存储位的组合告知原始位的值。
本发明的范围包括如上所述从MBC闪速存储设备中读取数据位的方法。本发明的范围也包括根据上面的方法从MBC闪速存储单元的阵列中读取的闪速存储控制器。本发明的范围也包括将MBC闪速存储单元的阵列与根据上面的方法从阵列读取的闪速存储控制器结合的闪速存储设备。
再次参考附图,图2是连接到主机30、本发明的闪速存储设备20的高级框图。图2从Ban的美国专利5,404,485号的图1改编,在此以提及方式引用该专利,如同将其完全在这里陈述。闪速存储设备20包括闪速存储器24、控制器22和随机存取存储器(RAM)26。对应于US5,404,485的“闪存控制14”的控制器22在RAM26的帮助下管理闪速存储器24,如US5,404,485中描述的。闪速存储器24编码数据,闪速存储器24的每个单元两位或多位,如US6,522,580或US6,643,188中描述的。当读取数据时,控制器22如上所述应用错误校正。
图3是本发明的备选数据存储系统50的高级部分框图。数据存储系统50包括处理器52和四个存储设备:RAM54,引导ROM56,海量存储设备(硬盘)58和闪速存储设备40,所有都经由公共总线60通信。像闪速存储设备20一样,闪速存储设备40包括闪速存储器42。不像闪速存储设备20,闪速存储设备40缺少自己的控制器和RAM。代替地,处理器52通过以例如KfarSaba,Israel的M系统闪速磁盘先锋公司的TrueFFSTM驱动程序的方式执行实现US5,404,485的方法的软件驱动程序来模拟控制器22。闪速存储器42编码数据,闪速存储器42的每个单元两位或多位,如US6,522,580或US6,643,188中描述的。当读取数据时,处理器52如上所述应用错误校正。闪速存储设备40也包括总线接口44以使得处理器52能够与闪速存储器42通信。
处理器52执行以管理闪速存储器42的软件驱动程序的代码存储在海量存储设备58中并且传送到RAM54中用于执行。因此,海量存储设备58是根据本发明的原理用于管理闪速存储器42的计算机可读代码嵌入于其中的计算机可读代码存储介质的实例。
虽然已经关于有限数目的实施方案描述了本发明,应当理解可以进行本发明的许多变化、修改和其他应用。
Claims (22)
1.一种读取存储在包括多个多位单元的存储器中的多个数据位的方法,所述存储是通过计算与数据位相对应的多个奇偶位,然后将数据位和奇偶位作为存储位存储在存储器的单元中而实现的,各自的多个存储位存储在单元的每个中,该方法包括步骤:
(a)读取单元,从而对于每个单元,获得各自的多个读取位;以及
(b)根据与奇偶位相对应的所述读取位校正与数据位相对应的所述读取位,其中所述校正至少部分地通过对所述读取位解码而实现,所述解码使用所述读取位中至少两个出错的各自概率的与多个存储器的单元的至少一个相关联的先验估计,作为对所述至少两个读取位的初始可靠性估计,其中所述先验估计不取决于所述读取位的值,并且其中至少一个所述估计不同于至少另一个所述估计,
其中所述先验估计取决于所述读取位的各自有效性。
2.一种读取存储在包括多个多位单元的存储器中的多个数据位的方法,所述存储通过计算与数据位相对应的多个受保护位,然后将受保护位存储在存储器的单元中而实现,各自的多个受保护位存储在单元的每个中,该方法包括步骤:
(a)读取单元,从而对于每个单元,获得各自的多个读取的受保护位;以及
(b)从所述读取的受保护位中恢复数据位,其中所述恢复至少部分地通过对所述读取的受保护位解码而实现,所述解码使用所述读取的受保护位中至少两个出错的各自概率的与多个存储器的单元的至少一个相关联的先验估计,作为对所述至少两个读取的受保护位的初始可靠性估计,其中所述先验估计不取决于所述读取的受保护位的值,并且其中至少一个所述估计不同于至少另一个所述估计,
其中所述先验估计取决于所述读取的受保护位的各自有效性。
3.根据权利要求1或2的方法,其中所述先验估计中的至少两个针对在可以是共同一个单元的情况下的所述读取位或读取的受保护位。
4.根据权利要求1或2的方法,其中所述先验估计中的至少两个针对在可以是不同单元的情况下的所述读取位或读取的受保护位。
5.一种读取存储在包括多个多位单元的存储器中的多个数据位的方法,所述存储是通过计算与数据位相对应的多个奇偶位,然后将数据位和奇偶位作为存储位存储在存储器的单元中而实现的,各自的多个存储位存储在单元的每个中,该方法包括步骤:
(a)读取单元,从而对于每个单元,获得各自的多个读取位;以及
(b)根据与奇偶位相对应的所述读取位校正与数据位相对应的所述读取位,其中所述校正通过包括根据所述读取位中至少两个出错的各自概率对所述读取位解码的步骤而实现,该概率仅基于所述读取位的各自有效性,其中至少一个所述概率不同于至少另一个所述概率。
6.一种读取存储在包括多个多位单元的存储器中的多个数据位的方法,所述存储是通过计算与数据位相对应的多个受保护位,然后将受保护位存储在存储器的单元中而实现的,各自的多个受保护位存储在单元的每个中,该方法包括步骤:
(a)读取单元,从而对于每个单元,获得各自的多个读取的受保护位;以及
(b)从读取的受保护位中恢复数据位,其中所述恢复通过包括根据所述读取的受保护位中至少两个出错的各自概率对所述读取的受保护位解码的步骤而实现,该概率仅基于所述读取的受保护位的各自有效性,其中至少一个所述概率不同于至少另一个所述概率。
7.一种读取存储在包括多个多位单元的存储器中的多个数据位的方法,所述存储是通过计算与数据位相对应的多个奇偶位,然后将数据位和奇偶位作为存储位存储在存储器的单元中而实现的,各自的多个存储位存储在单元的每个中,该方法包括步骤:
(a)读取单元,从而对于每个单元,获得各自的多个读取位;以及
(b)根据与奇偶位相对应的所述读取位校正与数据位相对应的所述读取位,其中所述校正通过包括根据所述读取位中至少两个出错的各自概率对所述读取位解码的步骤而实现,该概率仅基于所述读取位的各个值,并且其中至少一个所述概率不同于至少另一个所述概率,
其中,基于共同单元中的不同读取位之间的相关性推导的可靠性信息,来实现仅基于所述读取位的各个值确定所述概率。
8.一种读取存储在包括多个多位单元的存储器中的多个数据位的方法,所述存储是通过计算与数据位相对应的多个受保护位,然后将受保护位存储在存储器的单元中而实现的,各自的多个受保护位存储在单元的每个中,该方法包括步骤:
(a)读取单元,从而对于每个单元,获得各自的多个读取的受保护位;以及
(b)从读取的受保护位中恢复数据位,其中所述恢复通过包括根据所述读取的受保护位中至少两个出错的各自概率对所述读取的受保护位解码的步骤而实现,该概率仅基于所述读取的受保护位的各个值,并且其中至少一个所述概率不同于至少另一个所述概率,
其中,基于共同单元中的不同读取的受保护位之间的相关性推导的可靠性信息,来实现仅基于所述读取的受保护位的各个值确定所述概率。
9.一种读取存储在包括多个多位单元的存储器中的多个数据位的方法,所述存储是通过计算与数据位相对应的多个奇偶位,然后将数据位和奇偶位作为存储位存储在存储器的单元中而实现的,各自的多个存储位存储在单元的每个中,该方法包括步骤:
(a)读取单元,从而对于每个单元,获得各自的多个读取位;以及
(b)根据与奇偶位相对应的所述读取位校正与数据位相对应的所述读取位,其中所述校正通过包括根据所述读取位中至少两个出错的各自概率对所述读取位解码的步骤而实现,该概率至少部分地基于作为所述读取的结果而获得的信息,所述信息局限于所述读取位的各个值,并且其中至少一个所述概率不同于至少另一个所述概率,
其中,基于共同单元中的不同读取位之间的相关性推导的可靠性信息,来实现至少部分地基于所述读取位的各个值确定所述概率。
10.一种读取存储在包括多个多位单元的存储器中的多个数据位的方法,所述存储是通过计算与数据位相对应的多个受保护位,然后将受保护位存储在存储器的单元中而实现的,各自的多个受保护位存储在单元的每个中,该方法包括步骤:
(a)读取单元,从而对于每个单元,获得各自的多个读取的受保护位;以及
(b)从读取的受保护位中恢复数据位,其中所述恢复通过包括根据所述读取的受保护位中至少两个出错的各自概率对所述读取的受保护位解码的步骤而实现,该概率至少部分地基于作为所述读取的结果而获得的信息,所述信息局限于所述读取的受保护位的各个值,并且其中至少一个所述概率不同于至少另一个所述概率,
其中,基于共同单元中的不同读取的受保护位之间的相关性推导的可靠性信息,来实现至少部分地基于所述读取的受保护位的各个值确定所述概率。
11.根据权利要求1、2、5-10中任一个的方法,其中所述解码包括软解码。
12.根据权利要求3的方法,其中所述解码包括软解码。
13.根据权利要求4的方法,其中所述解码包括软解码。
14.一种用于包括多个多位单元的存储器的控制器,其中多个数据位的存储通过步骤实现,所述步骤包括计算与数据位相对应的多个奇偶位,以及然后将数据位和奇偶位作为存储位存储在存储器的单元中,各自的多个存储位存储在单元的每个中,该控制器包括:
(a)用于读取单元,从而对于每个单元,获得各自的多个读取位的装置;以及
(b)用于根据与奇偶位相对应的所述读取位校正与数据位相对应的所述读取位的装置,其中所述校正至少部分地通过对所述读取位解码而实现,所述解码使用所述读取位中至少两个出错的各自概率的与多个存储器的单元的至少一个相关联的先验估计,作为对所述至少两个读取位的初始可靠性估计,其中所述先验估计不取决于所述读取位的值,并且其中至少一个所述估计不同于至少另一个所述估计,
其中所述先验估计取决于所述读取位的各自有效性。
15.一种用于包括多个多位单元的存储器的控制器,其中,多个数据位的存储通过步骤实现,所述步骤包括计算与数据位相对应的多个受保护位,以及然后将受保护位存储在存储器的单元中,各自的多个受保护位存储在单元的每个中,该控制器包括:
(a)用于读取单元,从而对于每个单元,获得各自的多个读取的受保护位的装置;以及
(b)用于从所述读取的受保护位中恢复数据位的装置,其中所述恢复至少部分地通过对所述读取的受保护位解码而实现,所述解码使用所述读取的受保护位中至少两个出错的各自概率的与多个存储器的单元的至少一个相关联的先验估计,作为对所述至少两个读取的受保护位的初始可靠性估计,其中所述先验估计不取决于所述读取的受保护位的值,并且其中至少一个所述估计不同于至少另一个所述估计,
其中所述先验估计取决于所述读取的受保护位的各自有效性。
16.一种用于包括多个多位单元的存储器的控制器,其中,多个数据位的存储是通过步骤实现,所述步骤包括计算与数据位相对应的多个奇偶位,以及然后将数据位和奇偶位作为存储位存储在存储器的单元中,各自的多个存储位存储在单元的每个中,该控制器包括:
(a)用于读取单元,从而对于每个单元,获得各自的多个读取位的装置;以及
(b)用于根据与奇偶位相对应的所述读取位校正与数据位相对应的所述读取位的装置,其中所述校正通过包括根据所述读取位中至少两个出错的各自概率对所述读取位解码的步骤而实现,该概率仅基于所述读取位的各自有效性,并且其中至少一个所述概率不同于至少另一个所述概率。
17.一种用于包括多个多位单元的存储器的控制器,其中,多个数据位的存储是通过步骤实现,所述步骤包括计算与数据位相对应的多个受保护位,以及然后将受保护位存储在存储器的单元中,各自的多个受保护位存储在单元的每个中,该控制器包括:
(a)用于读取单元,从而对于每个单元,获得各自的多个读取的受保护位的装置;以及
(b)用于从读取的受保护位中恢复数据位的装置,其中所述恢复通过包括根据所述读取的受保护位中至少两个出错的各自概率对所述读取的受保护位解码的步骤而实现,该概率仅基于所述读取的受保护位的各自有效性,并且其中至少一个所述概率不同于至少另一个所述概率。
18.一种用于包括多个多位单元的存储器的控制器,其中,多个数据位的存储是通过以下步骤实现,所述步骤包括计算与数据位相对应的多个奇偶位,以及然后将数据位和奇偶位作为存储位存储在存储器的单元中,各自的多个存储位存储在单元的每个中,该控制器包括:
(a)用于读取单元,从而对于每个单元,获得各自的多个读取位的装置;以及
(b)用于根据与奇偶位相对应的所述读取位校正与数据位相对应的所述读取位的装置,其中所述校正通过包括根据所述读取位中至少两个出错的各自概率对所述读取位解码的步骤而实现,该概率仅基于所述读取位的各个值,并且其中至少一个所述概率不同于至少另一个所述概率,
其中,基于共同单元中的不同读取位之间的相关性推导的可靠性信息,来实现仅基于所述读取位的各个值确定所述概率。
19.一种用于包括多个多位单元的存储器的控制器,其中,多个数据位的存储是通过步骤实现,所述步骤包括计算与数据位相对应的多个受保护位,以及然后将受保护位存储在存储器的单元中,各自的多个受保护位存储在单元的每个中,该控制器包括:
(a)用于读取单元,从而对于每个单元,获得各自的多个读取的受保护位的装置;以及
(b)用于从读取的受保护位中恢复数据位的装置,其中所述恢复通过包括根据所述读取的受保护位中至少两个出错的各自概率对所述读取的受保护位解码的步骤而实现,该概率仅基于所述读取的受保护位的各个值,并且其中至少一个所述概率不同于至少另一个所述概率,
其中,基于共同单元中的不同读取的受保护位之间的相关性推导的可靠性信息,来实现仅基于所述读取的受保护位的各个值确定所述概率。
20.一种用于包括多个多位单元的存储器的控制器,其中,多个数据位的存储是通过步骤实现,所述步骤包括计算与数据位相对应的多个奇偶位,以及然后将数据位和奇偶位作为存储位存储在存储器的单元中,各自的多个存储位存储在单元的每个中,该控制器包括:
(a)用于读取单元,从而对于每个单元,获得各自的多个读取位的装置;以及
(b)用于根据与奇偶位相对应的所述读取位校正与数据位相对应的所述读取位的装置,其中所述校正通过包括根据所述读取位中至少两个出错的各自概率对所述读取位解码的步骤而实现,该概率至少部分地基于作为所述读取的结果而获得的信息,所述信息局限于所述读取位的各个值,并且其中至少一个所述概率不同于至少另一个所述概率,
其中,基于共同单元中的不同读取位之间的相关性推导的可靠性信息,来实现至少部分地基于所述读取位的各个值确定所述概率。
21.一种用于包括多个多位单元的存储器的控制器,其中,多个数据位的存储是通过步骤实现,所述步骤包括计算与数据位相对应的多个受保护位,以及然后将受保护位存储在存储器的单元中,各自的多个受保护位存储在单元的每个中,该控制器包括:
(a)用于读取单元,从而对于每个单元,获得各自的多个读取的受保护位的装置;以及
(b)用于从读取的受保护位中恢复数据位的装置,其中所述恢复通过包括根据所述读取的受保护位中至少两个出错的各自概率对所述读取的受保护位解码的步骤而实现,该概率至少部分地基于作为所述读取的结果而获得的信息,所述信息局限于所述读取的受保护位的各个值,并且其中至少一个所述概率不同于至少另一个所述概率,
其中,基于共同单元中的不同读取的受保护位之间的相关性推导的可靠性信息,来实现至少部分地基于所述读取的受保护位的各个值确定所述概率。
22.一种存储设备,包括:
(a)包括多个多位单元的存储器;以及
(b)根据权利要求14-21中任何一个的用于控制所述存储器的控制器。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US72681705P | 2005-10-17 | 2005-10-17 | |
US60/726,817 | 2005-10-17 | ||
US11/339,571 US7526715B2 (en) | 2005-10-17 | 2006-01-26 | Probabilistic error correction in multi-bit-per-cell flash memory |
US11/339,571 | 2006-01-26 | ||
PCT/IL2006/001175 WO2007046084A2 (en) | 2005-10-17 | 2006-10-15 | Probabilistic error correction in multi-bit-per-cell flash memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101529525A CN101529525A (zh) | 2009-09-09 |
CN101529525B true CN101529525B (zh) | 2016-03-30 |
Family
ID=45217842
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200680044045.2A Expired - Fee Related CN101529525B (zh) | 2005-10-17 | 2006-10-15 | 每单元多位的闪速存储器的概率错误校正 |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP1952290B1 (zh) |
JP (1) | JP4825874B2 (zh) |
KR (1) | KR100943340B1 (zh) |
CN (1) | CN101529525B (zh) |
AT (1) | ATE534999T1 (zh) |
WO (1) | WO2007046084A2 (zh) |
Families Citing this family (80)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8848442B2 (en) | 2006-03-06 | 2014-09-30 | Sandisk Il Ltd. | Multi-bit-per-cell flash memory device with non-bijective mapping |
US7388781B2 (en) * | 2006-03-06 | 2008-06-17 | Sandisk Il Ltd. | Multi-bit-per-cell flash memory device with non-bijective mapping |
WO2007132456A2 (en) | 2006-05-12 | 2007-11-22 | Anobit Technologies Ltd. | Memory device with adaptive capacity |
WO2007132457A2 (en) | 2006-05-12 | 2007-11-22 | Anobit Technologies Ltd. | Combined distortion estimation and error correction coding for memory devices |
CN103280239B (zh) | 2006-05-12 | 2016-04-06 | 苹果公司 | 存储设备中的失真估计和消除 |
WO2007132452A2 (en) | 2006-05-12 | 2007-11-22 | Anobit Technologies | Reducing programming error in memory devices |
WO2008026203A2 (en) | 2006-08-27 | 2008-03-06 | Anobit Technologies | Estimation of non-linear distortion in memory devices |
US7975192B2 (en) | 2006-10-30 | 2011-07-05 | Anobit Technologies Ltd. | Reading memory cells using multiple thresholds |
WO2008053473A2 (en) | 2006-10-30 | 2008-05-08 | Anobit Technologies Ltd. | Memory cell readout using successive approximation |
US7924648B2 (en) | 2006-11-28 | 2011-04-12 | Anobit Technologies Ltd. | Memory power and performance management |
US8151163B2 (en) | 2006-12-03 | 2012-04-03 | Anobit Technologies Ltd. | Automatic defect management in memory devices |
US7706182B2 (en) | 2006-12-03 | 2010-04-27 | Anobit Technologies Ltd. | Adaptive programming of analog memory cells using statistical characteristics |
US7900102B2 (en) | 2006-12-17 | 2011-03-01 | Anobit Technologies Ltd. | High-speed programming of memory devices |
US8151166B2 (en) | 2007-01-24 | 2012-04-03 | Anobit Technologies Ltd. | Reduction of back pattern dependency effects in memory devices |
US7751240B2 (en) | 2007-01-24 | 2010-07-06 | Anobit Technologies Ltd. | Memory device with negative thresholds |
WO2008111058A2 (en) | 2007-03-12 | 2008-09-18 | Anobit Technologies Ltd. | Adaptive estimation of memory cell read thresholds |
US8001320B2 (en) | 2007-04-22 | 2011-08-16 | Anobit Technologies Ltd. | Command interface for memory devices |
US8234545B2 (en) | 2007-05-12 | 2012-07-31 | Apple Inc. | Data storage with incremental redundancy |
US8429493B2 (en) | 2007-05-12 | 2013-04-23 | Apple Inc. | Memory device with internal signap processing unit |
US7925936B1 (en) | 2007-07-13 | 2011-04-12 | Anobit Technologies Ltd. | Memory device with non-uniform programming levels |
US8259497B2 (en) | 2007-08-06 | 2012-09-04 | Apple Inc. | Programming schemes for multi-level analog memory cells |
US8174905B2 (en) | 2007-09-19 | 2012-05-08 | Anobit Technologies Ltd. | Programming orders for reducing distortion in arrays of multi-level analog memory cells |
US7773413B2 (en) | 2007-10-08 | 2010-08-10 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells in the presence of temperature variations |
US8000141B1 (en) | 2007-10-19 | 2011-08-16 | Anobit Technologies Ltd. | Compensation for voltage drifts in analog memory cells |
US8527819B2 (en) | 2007-10-19 | 2013-09-03 | Apple Inc. | Data storage in analog memory cell arrays having erase failures |
US8068360B2 (en) | 2007-10-19 | 2011-11-29 | Anobit Technologies Ltd. | Reading analog memory cells using built-in multi-threshold commands |
US8270246B2 (en) | 2007-11-13 | 2012-09-18 | Apple Inc. | Optimized selection of memory chips in multi-chips memory devices |
US7633798B2 (en) * | 2007-11-21 | 2009-12-15 | Micron Technology, Inc. | M+N bit programming and M+L bit read for M bit memory cells |
US8225181B2 (en) | 2007-11-30 | 2012-07-17 | Apple Inc. | Efficient re-read operations from memory devices |
US8209588B2 (en) | 2007-12-12 | 2012-06-26 | Anobit Technologies Ltd. | Efficient interference cancellation in analog memory cell arrays |
US8456905B2 (en) | 2007-12-16 | 2013-06-04 | Apple Inc. | Efficient data storage in multi-plane memory devices |
JP5150245B2 (ja) * | 2007-12-27 | 2013-02-20 | 株式会社東芝 | 半導体記憶装置 |
US8085586B2 (en) | 2007-12-27 | 2011-12-27 | Anobit Technologies Ltd. | Wear level estimation in analog memory cells |
US8156398B2 (en) | 2008-02-05 | 2012-04-10 | Anobit Technologies Ltd. | Parameter estimation based on error correction code parity check equations |
US7924587B2 (en) | 2008-02-21 | 2011-04-12 | Anobit Technologies Ltd. | Programming of analog memory cells using a single programming pulse per state transition |
US7864573B2 (en) | 2008-02-24 | 2011-01-04 | Anobit Technologies Ltd. | Programming analog memory cells for reduced variance after retention |
US8230300B2 (en) | 2008-03-07 | 2012-07-24 | Apple Inc. | Efficient readout from analog memory cells using data compression |
KR101378365B1 (ko) * | 2008-03-12 | 2014-03-28 | 삼성전자주식회사 | 하이브리드 메모리 데이터 검출 장치 및 방법 |
US8059457B2 (en) | 2008-03-18 | 2011-11-15 | Anobit Technologies Ltd. | Memory device with multiple-accuracy read commands |
US8400858B2 (en) | 2008-03-18 | 2013-03-19 | Apple Inc. | Memory device with reduced sense time readout |
WO2009139115A1 (ja) * | 2008-05-12 | 2009-11-19 | パナソニック株式会社 | 半導体記録装置 |
US8458563B2 (en) | 2008-06-23 | 2013-06-04 | Ramot At Tel Aviv University Ltd. | Reading a flash memory by joint decoding and cell voltage distribution tracking |
US8464131B2 (en) | 2008-06-23 | 2013-06-11 | Ramot At Tel Aviv University Ltd. | Reading a flash memory by constrained decoding |
US7995388B1 (en) | 2008-08-05 | 2011-08-09 | Anobit Technologies Ltd. | Data storage using modified voltages |
US7924613B1 (en) | 2008-08-05 | 2011-04-12 | Anobit Technologies Ltd. | Data storage in analog memory cells with protection against programming interruption |
US8949684B1 (en) | 2008-09-02 | 2015-02-03 | Apple Inc. | Segmented data storage |
US8169825B1 (en) | 2008-09-02 | 2012-05-01 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells subjected to long retention periods |
US8482978B1 (en) | 2008-09-14 | 2013-07-09 | Apple Inc. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8000135B1 (en) | 2008-09-14 | 2011-08-16 | Anobit Technologies Ltd. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8239734B1 (en) | 2008-10-15 | 2012-08-07 | Apple Inc. | Efficient data storage in storage device arrays |
US8261159B1 (en) | 2008-10-30 | 2012-09-04 | Apple, Inc. | Data scrambling schemes for memory devices |
US8208304B2 (en) | 2008-11-16 | 2012-06-26 | Anobit Technologies Ltd. | Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N |
US8248831B2 (en) | 2008-12-31 | 2012-08-21 | Apple Inc. | Rejuvenation of analog memory cells |
US8174857B1 (en) | 2008-12-31 | 2012-05-08 | Anobit Technologies Ltd. | Efficient readout schemes for analog memory cell devices using multiple read threshold sets |
US8924661B1 (en) | 2009-01-18 | 2014-12-30 | Apple Inc. | Memory system including a controller and processors associated with memory devices |
US8228701B2 (en) | 2009-03-01 | 2012-07-24 | Apple Inc. | Selective activation of programming schemes in analog memory cell arrays |
US8259506B1 (en) | 2009-03-25 | 2012-09-04 | Apple Inc. | Database of memory read thresholds |
US8832354B2 (en) | 2009-03-25 | 2014-09-09 | Apple Inc. | Use of host system resources by memory controller |
US8238157B1 (en) | 2009-04-12 | 2012-08-07 | Apple Inc. | Selective re-programming of analog memory cells |
US8479080B1 (en) | 2009-07-12 | 2013-07-02 | Apple Inc. | Adaptive over-provisioning in memory systems |
US8495465B1 (en) | 2009-10-15 | 2013-07-23 | Apple Inc. | Error correction coding over multiple memory pages |
US8677054B1 (en) | 2009-12-16 | 2014-03-18 | Apple Inc. | Memory management schemes for non-volatile memory devices |
US8694814B1 (en) | 2010-01-10 | 2014-04-08 | Apple Inc. | Reuse of host hibernation storage space by memory controller |
US8572311B1 (en) | 2010-01-11 | 2013-10-29 | Apple Inc. | Redundant data storage in multi-die memory systems |
US8694853B1 (en) | 2010-05-04 | 2014-04-08 | Apple Inc. | Read commands for reading interfering memory cells |
US8572423B1 (en) | 2010-06-22 | 2013-10-29 | Apple Inc. | Reducing peak current in memory systems |
US8595591B1 (en) | 2010-07-11 | 2013-11-26 | Apple Inc. | Interference-aware assignment of programming levels in analog memory cells |
US9104580B1 (en) | 2010-07-27 | 2015-08-11 | Apple Inc. | Cache memory for hybrid disk drives |
US8767459B1 (en) | 2010-07-31 | 2014-07-01 | Apple Inc. | Data storage in analog memory cells across word lines using a non-integer number of bits per cell |
US8856475B1 (en) | 2010-08-01 | 2014-10-07 | Apple Inc. | Efficient selection of memory blocks for compaction |
US8493781B1 (en) | 2010-08-12 | 2013-07-23 | Apple Inc. | Interference mitigation using individual word line erasure operations |
US8694854B1 (en) | 2010-08-17 | 2014-04-08 | Apple Inc. | Read threshold setting based on soft readout statistics |
US8499227B2 (en) * | 2010-09-23 | 2013-07-30 | Micron Technology, Inc. | Memory quality monitor based compensation method and apparatus |
US9021181B1 (en) | 2010-09-27 | 2015-04-28 | Apple Inc. | Memory management for unifying memory cell conditions by using maximum time intervals |
US8787079B2 (en) * | 2012-05-07 | 2014-07-22 | Sandisk Technologies Inc. | Reading data from multi-level cell memory |
KR101961318B1 (ko) | 2012-09-07 | 2019-07-17 | 삼성전자주식회사 | 중앙처리장치에서의 점유시간을 최소화하는 방어코드 운영 방법 및 그에 따른 메모리 시스템 |
US8854079B2 (en) * | 2013-01-30 | 2014-10-07 | Texas Instruments Incorporated | Error detection in nonvolatile logic arrays using parity |
CN104916330B (zh) * | 2014-03-10 | 2019-04-12 | 东芝存储器株式会社 | 存储装置、存储器控制器及存储器控制方法 |
US11556416B2 (en) | 2021-05-05 | 2023-01-17 | Apple Inc. | Controlling memory readout reliability and throughput by adjusting distance between read thresholds |
US11847342B2 (en) | 2021-07-28 | 2023-12-19 | Apple Inc. | Efficient transfer of hard data and confidence levels in reading a nonvolatile memory |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5475693A (en) * | 1994-12-27 | 1995-12-12 | Intel Corporation | Error management processes for flash EEPROM memory arrays |
US6029264A (en) * | 1997-04-28 | 2000-02-22 | The Trustees Of Princeton University | System and method for error correcting a received data stream in a concatenated system |
US6069821A (en) * | 1998-11-26 | 2000-05-30 | Hyundai Electronics Industries Co., Ltd. | Device for sensing data in a multi-bit memory cell using a multistep current source |
US6212654B1 (en) * | 1997-07-22 | 2001-04-03 | Lucent Technologies Inc. | Coded modulation for digital storage in analog memory devices |
CN1347594A (zh) * | 1999-12-20 | 2002-05-01 | 皇家菲利浦电子有限公司 | 带有改进的译码器的接收机 |
CN1398477A (zh) * | 2000-02-08 | 2003-02-19 | 艾利森公司 | 通过组合匹配滤波抽样与硬码元判断对码元解码的方法和系统 |
CN1527499A (zh) * | 2002-07-03 | 2004-09-08 | 休斯电子公司 | 用于低密度奇偶校验码解码的方法与系统 |
CN1653554A (zh) * | 2002-05-20 | 2005-08-10 | 桑迪士克股份有限公司 | 通过使用关于所存储数据的质量的信息来增加错误校正码的效率和操作多电平存储系统 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11317095A (ja) * | 1997-06-06 | 1999-11-16 | Nippon Steel Corp | 半導体記憶装置、その使用方法及びその読み出し方法並びに使用方法及び読み出し方法が記憶された記憶媒体 |
JP3605266B2 (ja) * | 1997-08-12 | 2004-12-22 | 新日本製鐵株式会社 | 半導体記憶装置及び読み出し方法並びに読み出し方法が記録された記録媒体 |
US5909449A (en) * | 1997-09-08 | 1999-06-01 | Invox Technology | Multibit-per-cell non-volatile memory with error detection and correction |
JP3648057B2 (ja) * | 1997-12-09 | 2005-05-18 | 新日本製鐵株式会社 | 半導体記憶装置及びその使用方法、並びに記録媒体 |
JP3165101B2 (ja) * | 1998-03-05 | 2001-05-14 | 日本電気アイシーマイコンシステム株式会社 | 多値式半導体メモリ装置およびその不良救済方法 |
JPH11283396A (ja) * | 1998-03-27 | 1999-10-15 | Sony Corp | メモリ装置 |
JP3308915B2 (ja) * | 1998-11-11 | 2002-07-29 | エヌイーシーマイクロシステム株式会社 | 不良救済用メモリセル及びそれを用いた記憶装置 |
JP2001332096A (ja) * | 2000-05-16 | 2001-11-30 | Hitachi Ltd | 不揮発性半導体メモリおよび不揮発性半導体メモリを用いた記録再生装置 |
JP4323707B2 (ja) * | 2000-10-25 | 2009-09-02 | 富士通マイクロエレクトロニクス株式会社 | フラッシュメモリの欠陥管理方法 |
JP2003036693A (ja) * | 2001-05-16 | 2003-02-07 | Fujitsu Ltd | 多値半導体メモリの誤り検出・訂正方法および誤り検出・訂正機能を有する多値半導体メモリ |
JP2005078721A (ja) * | 2003-09-01 | 2005-03-24 | Nippon Telegr & Teleph Corp <Ntt> | 誤り訂正方法およびメモリ回路 |
US20050213393A1 (en) * | 2004-03-14 | 2005-09-29 | M-Systems Flash Disk Pioneers, Ltd. | States encoding in multi-bit flash cells for optimizing error rate |
US7966547B2 (en) * | 2007-07-02 | 2011-06-21 | International Business Machines Corporation | Multi-bit error correction scheme in multi-level memory storage system |
-
2006
- 2006-10-15 JP JP2008535184A patent/JP4825874B2/ja not_active Expired - Fee Related
- 2006-10-15 EP EP06809752A patent/EP1952290B1/en not_active Not-in-force
- 2006-10-15 AT AT06809752T patent/ATE534999T1/de active
- 2006-10-15 WO PCT/IL2006/001175 patent/WO2007046084A2/en active Application Filing
- 2006-10-15 KR KR1020087010944A patent/KR100943340B1/ko not_active IP Right Cessation
- 2006-10-15 CN CN200680044045.2A patent/CN101529525B/zh not_active Expired - Fee Related
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5475693A (en) * | 1994-12-27 | 1995-12-12 | Intel Corporation | Error management processes for flash EEPROM memory arrays |
US6029264A (en) * | 1997-04-28 | 2000-02-22 | The Trustees Of Princeton University | System and method for error correcting a received data stream in a concatenated system |
US6212654B1 (en) * | 1997-07-22 | 2001-04-03 | Lucent Technologies Inc. | Coded modulation for digital storage in analog memory devices |
US6069821A (en) * | 1998-11-26 | 2000-05-30 | Hyundai Electronics Industries Co., Ltd. | Device for sensing data in a multi-bit memory cell using a multistep current source |
CN1347594A (zh) * | 1999-12-20 | 2002-05-01 | 皇家菲利浦电子有限公司 | 带有改进的译码器的接收机 |
CN1398477A (zh) * | 2000-02-08 | 2003-02-19 | 艾利森公司 | 通过组合匹配滤波抽样与硬码元判断对码元解码的方法和系统 |
CN1653554A (zh) * | 2002-05-20 | 2005-08-10 | 桑迪士克股份有限公司 | 通过使用关于所存储数据的质量的信息来增加错误校正码的效率和操作多电平存储系统 |
CN1527499A (zh) * | 2002-07-03 | 2004-09-08 | 休斯电子公司 | 用于低密度奇偶校验码解码的方法与系统 |
Also Published As
Publication number | Publication date |
---|---|
JP4825874B2 (ja) | 2011-11-30 |
EP1952290A4 (en) | 2009-11-25 |
KR20080077604A (ko) | 2008-08-25 |
ATE534999T1 (de) | 2011-12-15 |
EP1952290B1 (en) | 2011-11-23 |
EP1952290A2 (en) | 2008-08-06 |
JP2009512112A (ja) | 2009-03-19 |
WO2007046084A2 (en) | 2007-04-26 |
WO2007046084A3 (en) | 2009-04-09 |
KR100943340B1 (ko) | 2010-02-19 |
CN101529525A (zh) | 2009-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101529525B (zh) | 每单元多位的闪速存储器的概率错误校正 | |
US11074125B2 (en) | Data storage system and method for decoding data based on extrapolated flipped-bit data | |
US7533328B2 (en) | Method of error correction in a multi-bit-per-cell flash memory | |
KR101738173B1 (ko) | 플래시 메모리에서의 적응형 코딩 방법 및 시스템 | |
US8788909B2 (en) | Probabilistic error correction in multi-bit-per-cell flash memory | |
CN103380416B (zh) | 用于读取存储器的目标存储器扇区的方法和存储器系统 | |
US7681109B2 (en) | Method of error correction in MBC flash memory | |
CN102820064B (zh) | 用于操作存储器以及处理存储单元的方法 | |
KR20150099795A (ko) | 데이터 저장 시스템들에 대한 로그-우도비 및 럼프된 로그-우도비 생성 | |
US20160306693A1 (en) | Read voltage level estimating method, memory storage device and memory control circuit unit | |
US11211950B2 (en) | Decoding device and decoding method | |
KR20140091665A (ko) | 비휘발성 메모리의 차동 벡터 저장 | |
TW201443916A (zh) | 在具有選擇性二元及非二元解碼之快閃記憶體中之偵測及解碼 | |
US20150317203A1 (en) | Code-Based Read Control for Data Storage Devices | |
US10635524B1 (en) | Soft-decision input generation for data storage systems | |
IL196239A (en) | Method of error correction in a multi-bit-per-cell flash memory |
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: 20160330 Termination date: 20161015 |
|
CF01 | Termination of patent right due to non-payment of annual fee |