CN101999116B - 通过交叉页面扇区、多页面编码以及每一页面编码将数据存储在多级单元闪速存储器装置中的方法和设备 - Google Patents
通过交叉页面扇区、多页面编码以及每一页面编码将数据存储在多级单元闪速存储器装置中的方法和设备 Download PDFInfo
- Publication number
- CN101999116B CN101999116B CN200980112686.0A CN200980112686A CN101999116B CN 101999116 B CN101999116 B CN 101999116B CN 200980112686 A CN200980112686 A CN 200980112686A CN 101999116 B CN101999116 B CN 101999116B
- Authority
- CN
- China
- Prior art keywords
- page
- flash memory
- memory device
- wordline
- code
- 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
- 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/08—Address circuits; Decoders; Word-line control circuits
-
- 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/06—Auxiliary circuits, e.g. for writing into memory
-
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Error Detection And Correction (AREA)
Abstract
提供了用于通过交叉页面扇区、多页面编码以及每一页面编码将数据存储在多级单元闪速存储器装置中的方法和设备。单一扇区可以跨闪速存储器装置中的多个页面存储。在每一个页面中的多个扇区设置每一页面的控制,以及用于编码和解码指定页面的代码和/或代码率,和用于解码指定页面的解码器或解码算法。还提供了多页面和字线级存取方案。
Description
对相关申请的交叉引用
本申请要求于2008年3月11日提交的美国临时申请序列No.61/068934的权益,该申请通过引用包含于此。
技术领域
本发明总体上涉及多级单元(multi-level cell)闪速存储器装置,并且更具体地说,涉及用于编码和存取这种多级单元装置的技术。
背景技术
诸如闪速存储器装置的许多存储器装置使用模拟存储器单元来存储数据。每一个存储器单元存储模拟值,该模拟值也称为存储值,如电荷或电压。该存储值表示存储在单元中的信息。在闪速存储器装置中,例如,每一个模拟存储器单元典型地存储特定电压。针对每一个单元的可能的模拟值范围典型地分成多个阈值区域,并且每一个区域对应于一个或多个数据比特值。通过写入对应于希望的一个或多个比特的标称模拟值将数据写入至模拟存储器单元。
单级单元(SLC)闪速存储器装置例如每个存储器单元存储一比特(或者两种可能的存储器状态)。另一方面,多级单元(MLC)闪速存储器装置每个存储器单元存储两个或更多个比特(即,每个单元具有四个或更多个可编程状态)。在多级单元闪速存储器装置中,检测电流或电压的量,而非只检测电流或电压存在或不存在。在多级单元装置中,采用了至少三个阈值级来限定四个或更多个不同的阈值状态。单个单元的操作范围由此被分成更多数量的状态,并且每一个状态的范围都小于针对单级单元装置的范围。因而,多级单元装置中的任何单一比特的可靠性都低于单级单元装置。针对多级单元(MLC)闪速存储器装置的更详细讨论例如参见K.Takeuchi等人的“A 56-nmCMOS 99-nm2 8Gb Multi-Level NAND Flash Memory with 10-MB/sProgram Throughput”,IEEE Journal of solid-State Circuits,Vol.42,No.1,219-232(2007),和K.-T.Park等人的“A Zeroing Cell-to-CellInterference Page Architecture with Temporary LSB Storing and ParallelMSB Program Scheme for MLC NAND Flash Memories”,IEEE Journalof Solid-State Circuits,VoL 43,No.4,919-928(2008),每一篇文献都通过引用包含于此。
现有闪速装置采用页面级存取技术,由此,页面是可以向闪速存储器装置写入或从其读取的最小单位。页面通常彼此独立地写入和读取。另外,现有闪速存储器典型地使用相同代码和代码率来编码(和解码)所有页面。操作***典型地采用例如由512个字节的用户信息所组成的数据扇区。一般来说,用户数据长度是扇区大小的倍数。针对一种典型的闪速存储器构造,一个页面包括八个扇区的用户信息。因而,利用页面级存取技术,闪速控制器组合八个扇区的信息以向闪速存储器装置写入每一个页面。每当从闪速存储器装置读取一扇区时,读取包含所希望扇区的完整页面。
需要用于多级单元(MLC)闪速存储器装置的改进的多级编码和读取/写入存取技术以例如实现低误码率或提高存储容量。进一步需要用于多级单元闪速存储器装置的改进的读取/写入存取技术,其允许单一扇区跨闪速存储器装置中的多个页面存储。针对改进的读取/写入存取技术存在另一需要,其提供每一个页面中多个扇区的每一页面控制,以及用于编码和解码的代码和/或代码率。针对多级编码的更详细讨论,例如参见U.Wachsmann等人的,“Multilevel Codes:TheoreticalConcepts and Practical Design Rules”,IEEE Trans,on InformationTheory,Vol.45,No.5,1361-91(1999),该文献通过引用包含于此。
发明内容
一般来说,提供了用于利用交叉页面扇区、多页面编码以及每一页面编码将数据存储在多级单元闪速存储器中的方法和设备。根据本发明的各个方面,将数据存储在具有多个单元的多级单元闪速存储器装置中,其中,所述多级单元闪速存储器中的每一个单元能够存储多个比特,其中,所述多个比特中的每一个比特来自不同页面。一种公开的数据存储方法包括以下步骤:累积多个所述页面;将所述多个页面编码为单个块;以及将所述单个块存储在所述多级单元闪速存储器装置中。另外,所存储的单个块可以被解码以提供所述多个页面。
另一存储方法包括以下步骤:确定要写在所述多级单元闪速存储器装置中的当前页面的页面类型;确定与所确定的页面类型相关联的代码和代码率中的至少一个;利用所确定的至少一个代码和代码率来编码所述当前页面;以及将编码的当前页面存储在所述多级单元闪速存储器装置中。可以读取所述多级单元闪速存储器装置中的页面,并且利用与所识别的页面相关联的至少一个代码、代码率、解码器或解码算法来解码。
又一存储方法包括以下步骤:确定要在所述多级单元闪速存储器装置中写入的当前页面的页面类型;确定与所确定的页面类型相关联的每一页面的扇区数;累积所确定数量的扇区;编码累积的扇区;以及将累积的扇区存储在所述多级单元闪速存储器装置中。当接收到读取至少一个扇区的请求时,可以识别所述多级单元闪速存储器装置中的具有所请求扇区的一个或多个页面;并且可以利用页面类型、多页面和字线级存取方案中的一个或多个来读取所识别的一个或多个页面。可以利用与所识别的一个或多个页面相关联的代码、代码率、解码器以及解码算法中的至少一个来解码所读取的识别的一个或多个页面,以及利用存储器映射从所解码的一个或多个页面中获取请求的扇区。
另一存储方法包括以下步骤:存储第一组逻辑页面,其中,所述第一组逻辑页面中的每一个逻辑页面的编码大小小于多个物理页面的大小;并且存储第二组逻辑页面,其中,所述第二组逻辑页面中的每一个逻辑页面的编码大小大于多个物理页面的大小,并且其中,将所述第二组逻辑页面的至少一部分存储在多个物理页面的溢出区域中。
根据本发明的另一方面,公开了一种多级单元闪速存储器装置,该多级单元闪速存储器装置包括:多个单元,其中,所述多级单元闪速存储器装置中的每一个单元能够存储多个比特,其中,所述多个比特中的每一个比特来自不同页面;以及多个字线,每一个字线包括多个页面,其中,所述多个页面中的每一个页面能够具有关联代码率,使得所述多个页面中的每一个页面的未编码长度大致相似,而所述多个页面中的每一个页面的编码长度不同。
本发明的另一方面提供了一种多级单元闪速存储器装置,该多级单元闪速存储器装置包括:多个单元,其中,所述多级单元闪速存储器装置中的每一个单元能够存储多个比特,其中,所述多个比特中的每一个比特来自不同页面;以及多个字线,每一个字线包括多个页面,其中,所述多个页面中的每一个页面能够具有关联代码率,使得所述多个页面中的每一个页面的未编码长度不同,而所述多个页面中的每一个页面的编码长度大致相似。
本发明的又一方面提供了一种多级单元闪速存储器装置,该多级单元闪速存储器装置包括:多个单元,其中,所述多级单元闪速存储器装置中的每一个单元能够存储多个比特,其中,所述多个比特中的每一个比特来自不同页面;以及多个字线,每一个字线包括多个页面,其中,至少一个扇区能够跨越所述多个页面。
通过参照下面的详细描述和附图,将获取对本发明的更完整理解,以及本发明的进一步特征和优点。
附图说明
图1是例示根据本发明的闪速存储器控制器与闪速存储器装置之间的相互作用的示意性框图;
图2例示了图1的示例性多级单元闪速存储器的示例性阈值电压分布;
图3例示了多级单元(MLC)闪速存储器装置中的闪速单元阵列;
图4例示了根据本发明一个方面的图3的闪速单元阵列的示例性编码器;
图5是描述结合本发明的特征的字线级存取方案的写入处理的示例性实现方式的流程图;
图6是描述结合本发明的特征的字线级存取方案的读取处理的示例性实现方式的流程图;
图7例示了结合本发明的特征的、其中利用不同代码率将字线内的每一个页面编码成相同长度的可变代码率编码方案;
图8是描述当每一个页面包括整数数量的扇区时,用于写入闪速存储器130的可变代码率写入处理的示例性实现方式的流程图;
图9是描述当每一个页面包括整数数量的扇区时,用于读取闪速存储器130的可变代码率读取处理的示例性实现方式的流程图;
图10是描述当每一个页面包括非整数数量的扇区并且指定扇区可以跨越多于一个的页面时,用于写入闪速存储器的可变代码率写入处理的示例性实现方式的流程图;
图11是描述当一个或多个页面可以包括非整数数量的扇区并且指定扇区可以跨越多于一个的页面时,用于读取闪速存储器的可变代码率处理的示例性实现方式的流程图;
图12例示了具有规则单元和溢出单元的多页面单元字线;以及
图13是结合本发明的特征的多级解码器的示意性框图。
具体实施方式
本发明提供了针对多级单元(MLC)闪速存储器装置的多级编码和读取/写入存取技术。如在此使用的,多级单元闪速存储器包括每一个存储器单元存储两个或更多个比特的存储器。典型地,存储在一个闪速单元中的多个比特属于不同页面。图1是例示根据本发明的闪速存储器控制器100与闪速存储器装置120之间的相互作用的示意性框图。如图1所示,根据下面讨论的本发明的多个方面,可以将用户数据写入到闪速存储器130中以及从闪速存储器130读取数据。如图1所示,通过执行数据累积、集合、收集、划分(partitioning)或者潜在地执行诸如交错(interleaving)的其它任务的数据管理模块110来处理输入比特流。接着,通过编码器140将集合或划分的数据编码,例如,添加冗余位。在本发明的所有实施例中,可以使用***码或非***码两者。
接着通过映射器150来处理编码数据,该映射器150将编码的比特流映射至用于编程闪速存储器130的编码的电压电平。从闪速存储器130读取数据并且通过解映射器(demapper)160来处理,该解映射器将读取的电压电平解映射成通过解码器170解码的一个或多个比特流。一般来说,编码器140和映射器150将用户数据流转换成应当被编程到闪速存储器130的单元中的状态或电压电平流。同样,解映射器160和解码器170将从闪速存储器130读取的单元状态或电压电平流转换成被存储在闪速存储器130中的用户数据流。数据管理模块110可以在编码器140的输出处或解映射器160的输出处针对编码数据流应用附加数据集合、累积、收集、划分、交错或其它任务。
下面,结合图4和13,对根据本发明的用于编码和解码数据的技术进行进一步讨论。下面,例如结合图5和图6,对适用于闪速控制器100的技术进行进一步讨论。闪速存储器130可以具体实施为多级单元闪速存储器,如多级NAND闪速存储器或多级相变存储器。一般来说,如以下结合图2和3进一步讨论的,闪速存储器130包括至少一个闪速单元阵列,以及读取和写入电路。
多级单元闪速存储器
在多级单元闪速存储器中,典型地采用阈值检测器来将与特定单元相关联的电压值转换成预定的存储器状态。图2例示基于美国专利No.6522580的教导的、图1的示例性多级单元闪速存储器130的示例性阈值电压分布,上述专利通过引用包含于此。在图2所示的示例性实施例中,每一个存储部件采用四种可能的数据状态,以在每一个存储器单元中存储两比特数据。图2例示了四个峰值210-213,每一个峰值对应于一种状态。在多级单元闪速装置中,阈值电压分布图形200的不同峰值210-213用于在单元中存储两个比特。
阈值电压分布图形200的峰值210-213分别标注有二进制值11、01、00以及10。因而,当单元处于第一状态210时,其表示针对低位的“1”和针对高位的“1”(这通常指该单元的初始未编程或擦除状态)。同样,当单元处于第二状态211时,其表示针对低位的“1”和针对高位的“0”。当单元处于第三状态212时,其表示针对低位的“0”和针对高位的“0”。最后,当单元处于第四状态213时,其表示针对低位的“0”和针对高位的“1”。
阈值电压分布210表示阵列内处于擦除状态(“11”数据状态)的单元的阈值电平VT分布,具有0伏特以下的负阈值电压电平。分别存储“01”和“00”用户数据的存储器单元的阈值电压分布211和212分别示出处于0伏特与1伏特之间以及1伏特与2伏特之间。阈值电压分布213示出已经被编程成“10”数据状态的单元的分布,并且阈值电压电平设置在2伏特与4.5伏特的读通电压(read pass voltage)之间。
如以下进一步讨论的,存储在单个存储器单元中的两个比特中的每一个来自不同的页面。换句话说,存储在每一个存储器单元中的两个比特中的每一个比特带有不同的页面地址。当输入低页面地址时存取图2所示右侧比特。当输入高页面地址时存取左侧比特。
闪速存储器典型地按块组织,其中,每一个块实现为闪速单元阵列。图3例示了多级单元(MLC)闪速存储器装置130中的闪速单元阵列300。如图3所示,闪速单元阵列300每一闪速单元cj存储有两个或更多个比特。图3例示了针对一个块的闪速单元阵列架构,其中,每一个示例性单元典型地对应于存储三个比特的浮栅晶体管。示例性单元阵列300由m个字线和n个位线构成。一般来说,在多页面单元闪速存储器中,每一个页面是扇区大小的倍数,并且单一单元内的比特属于不同页面。在图3的示例中,针对每一个的单元的三个比特对应于三个不同的页面,并且每一个字线存储三个页面。在下面的讨论中,页面0、1以及2称为下页面级、中页面级,以及上页面级。另外,闪速单元阵列300中的每一个页面(如页面310)典型地包括固定数量的扇区,如8个扇区。根据本发明的一个方面,每一个页面可以是扇区大小的非整数倍数。
可以将闪速单元阵列进一步划分成偶数和奇数页面,其中,例如,具有偶数编号的单元(如图3中的单元2和4)对应于偶数页面,而具有奇数编号的单元(如图3中的单元1和3)对应于奇数页面。在这种情况下,页面(如页面0)将包含偶数页面(偶数页面0)和奇数页面(奇数页面0)。为进一步讨论偶数和奇数页面,例如,参见K.-T.Park等人的“A Zeroing Cell-to-Cell Interference Page Architecture withTemporary LSB Storing and Parallel MSB Program Scheme for MLCNAND Flash Memories”,IEEE Journal of Solid-State Circuits,Vol 43,No.4,919-928(2008),该文献通过引用包含于此。本发明的所有方面都可以应用于具有偶数/奇数页面划分、或者其它闪速单元阵列划分的闪速单元阵列。下面,页面涉及图3所示的页面,或者偶数页面,或者奇数页面。
联合编码或每一页面编码
根据本发明的一个方面,字线中的每一个页面可以可选地利用不同代码率或不同类型的代码(或两者)来编码。例如,可以采用低密度奇偶校验码(LDPC)、Bose-Chaudhuri-Hocquenghem(BCH)码以及里德所罗门(RS)码。在一个实施例中,针对需要改进的可靠性的页面,可以采用较强力代码或较低代码率。例如,较高的页面编号可能具有较高的错误可能性(likelihood)。因而,这些页面可以利用改进这些页面的性能的代码或代码率(或两者)来编码。可以将较强力的纠错码(如较低速率的代码和LDPC码)用于与较高的误码率相关联的较高页面,而可以将不太强力的纠错码(如较高的速率的代码和代数码)用于与较低的误码率相关联的较低页面。
因而,本发明允许多级闪速单元阵列300的字线内的每一个页面的编码参数被特有地建立。例如,本发明的一个实施例允许每一页面控制(i)每一页面扇区数,(ii)代码,(iii)用于划分和/或编码页面的代码率以及/或者(iv)用于解码页面的解码器或解码器算法。
如下结合图4进一步讨论的,每一个字线中的j个页面数据(其中,j是闪速单元阵列300中的每一字线的页面数)可以可选地利用具有多达j个特有的代码和/或代码率的独立编码方案通过编码器140来编码。例如,在图4所示实施例中,每一个页面可以可选地采用特有的代码和代码率。页面例如可以涉及如图3所示的字线中的三个页面,或者涉及具有偶数页面和奇数页面的3比特/单元闪速单元阵列中的六个页面(三个偶数页面和三个奇数页面)。
下面结合图1和5讨论的本发明的另一方面支持联合编码方案,由此,每一个字线中的j个页面数据可以利用单一代码和代码率通过编码器140来编码。
页面、多页面以及字线级存取方案
根据本发明的另一方面,多页面单元闪速存储器130可以基于页面级、多页面级或字线级来存取。如前所述,现有闪速装置采用页面级存取技术,其中,页面是可以写入至闪速存储器装置或从闪速存储器装置读取的最小单位。另外,本发明允许(i)多页面级存取技术,其中可以采用多页面作为用于编码、写入至闪速存储器装置或从闪速存储器装置读取的最小单位;以及(ii)字线级存取技术,其中,字线是用于编码、读取或写入数据的最小数据单位。按这种方式,本发明通过允许跨页面边界编码代码字,或者通过允许针对字线中的不同页面的可变代码率而提供了更大的灵活性和效率。另外,本发明允许采用改进的编码和解码方案,如一起编码多个页面的LPDC编码技术。
如以下进一步讨论的,数据管理模块110基于采用的是页面级存取方案、多页面级存取方案还是字线级存取方案,来累积来自输入比特流的数据。虽然在多页面或字线级存取方案中,可以针对多个页面或整个字线执行数据管理和编码,但这些多页面或字线可以通过利用已知技术顺序地将页面写入至闪速存储器而物理地写入。
字线中的页面的编码/解码
图4例示了根据本发明一个方面的针对图3的多页面单元闪速阵列300的示例性编码器400。如前所述,示例性闪速存储器130中的每一个页面可以独立地编码。如图4所示,将三个不同的编码器420-1到420-3用于示例性字线中的三个示例性页面。这三个编码器420-1到420-3可以在编码类型(例如,LDPC、BCH以及RS)、或代码率、或编码类型及代码率方面不同。如上所述,低页面级(而不是中和高页面级)可以以较高代码率来编码(反之亦然)。在一个变型例中,具有足够可靠性的一些页面级可以完全不编码。如图4所示,在数据管理单元110(下面进一步讨论)中的数据划分之后,一个单元中的每一个比特在被存储在闪速单元阵列300的合适单元中之前通过单独的编码器420-1到420-3来编码。
根据本发明的另一方面,字线中的每一个页面可以利用不同类型的解码器(如LDPC、BCH、RS、硬判定或软判定解码器)来解码。例如,字线内的与较低误码率相关联的页面可以利用硬判定解码器来解码,而与较高误码率相关联的页面可以利用软判定解码器来解码。硬判定解码器典型地使用从闪速单元阵列300读取的编码比特。软判定解码器使用从闪速单元阵列300中的单元读取的例如电压值的软信息。
在另一变型例中,当解码器执行迭代解码时,针对每一个页面的解码器可以执行不同数量的迭代。例如,字线内的与较高误码率相关联的页面可以利用较大数量的迭代来解码,而与较低误码率相关联的页面可以利用比较高误码率页面更少数量的迭代来解码。另外,如结合图13进一步讨论的,本发明的另一方面解码字线内的多个页面,其中,例如,针对一个页面的解码器向另一页面的解码器馈送判定,以改进整体误码率。针对硬判定和软判定解码器、迭代解码、LDPC编码以及其它编码技术的讨论,例如,参见S.Lin和D.Costello的“ErrorControl Coding:Fundamentals and Applications,Second Edition”Pearson Prentice Hall(2004),其通过引用包含于此。
图5是描述结合本发明的特征的字线级存取方案的写入处理500的示例性实现方式的流程图。如图5所示,示例性字线级写入处理500在步骤510期间初始收集j乘k个扇区,其中,j是闪速单元阵列300中每一字线的页面数,而k是每一页面的扇区数。应注意到,在步骤510期间,一个或多个页面可能需要例如利用数据管理模块110中的存储器电路来缓冲,直到全部三个页面的数据可用为止(针对图3的示例性每单元3比特的实施例)。此后,在步骤520期间,字线级写入处理500将j个页面的数据编码成编码块。在步骤530期间,将该编码块可选地划分到j个页面。接着在步骤540期间,将这j个页面在闪速单元阵列300中编程。
应注意到,在本发明的各个实施例中,j个页面的数据可以利用如图1所示的编码器140通过单一代码和代码率来联合编码;或者利用如图4所示的编码器420,利用多达j个代码和代码率(针对每一个页面利用一特有的代码和代码率)来独立地编码。还应注意到,在联合编码方案中,在步骤530期间的划分典型地在步骤520的编码之后执行,如图5所示,而对于独立编码方案来说,该数据通常在步骤520的编码之前划分到多个页面。
图6是描述结合本发明的特征的字线级存取方案的读取处理600的示例性实现方式的流程图。如图6所示,在步骤610期间,示例性字线级读取处理600初始接收用于读取至少一个扇区的请求。此后,在步骤620期间,字线级读取处理600利用已知映射技术识别具有所请求扇区的字线。在步骤630期间,字线级读取处理600例如通过连续读取存储在该字线中的所有页面来读取所识别的字线,接着在步骤640期间,解码从该字线读取的数据块,以获取多达j个页面。在本发明的另一另选实施例中,基于可以在步骤640期间解码的多达j个页面,从该字线读取用于步骤630期间的字线级读取的软信息,如该字线中单元的电压值。利用足够的软信息,可以解码字线内的所有信息。应注意到,在本发明的各个实施例中,基于在步骤520期间有多少数据写入至闪速存储器,从字线读取的数据块可以利用单一代码或代码率或者多达j个代码和代码率(针对每一个页面利用一特有的代码和代码率)来解码。最后,在步骤650期间,字线级读取处理600利用在写入处理500期间生成的存储器映射从解码页面获取所请求扇区。
可变代码率多级单元
如前所述,本发明的一个方面允许字线内的每一个页面利用针对每一个页面的不同代码和/或代码率来独立地编码和解码。在一个变型例中,字线内的每一个页面可以利用不同代码率来编码。图7例示了结合本发明的特征的、其中利用不同代码率将字线内的每一个页面编码成相同长度的可变代码率编码方案。如图7的示例性实现方式所示,下和中页面711、712利用相同代码率来编码,并且包括相同量的用户数据720和奇偶校验位730。上页面713利用相对于页面711、712较低的代码率来编码,并且因此编码较少用户数据720且具有更大量的可用奇偶校验位730。例如,已编码的下和中页面711、712可以包括7个扇区,而已编码的上页面713可以包括6个扇区。下面,结合图8到11,对支持图7的可变代码率编码方案700的合适写入和读取处理进行进一步讨论。
因此,本发明允许代码率被选择成使得字线中的页面具有相同编码长度并具有不同的未编码长度。如下讨论的,控制器100可以基于闪速存储器中的、可用于编程的页面的用户数据大小以及基于页面类型(即,代码率和每一页面的扇区数)来划分接收到的数据流。可以选择页面位置以根据格式效率、读取以及写入速度最大化***性能。
图8和9例示了当每一个页面包括整数数量的扇区时,分别用于写入和读取闪速存储器130的可变代码率处理。图10和11例示了当一个或多个页面包括非整数数量的扇区并且指定扇区可以跨越多于一个页面时,分别用于写入和读取闪速存储器130的可变代码率处理。
图8是描述当每一个页面包括整数数量的扇区时,用于写入闪速存储器130的可变代码率写入处理800的示例性实现方式的流程图。一般来说,该写入处理800采用页面级存取方案和用于基于被编码页面类型(即,页面级)来划分用户数据的新技术。另外,写入处理800还采用与所识别页面类型相关联的适当代码率。例如,在一个示例性实现方式中,字线的下和中页面可以包括八个扇区的用户数据,而上页面可以包括七个扇区的用户数据。因而,如果将下和中页面编程,则应当累积八个扇区的用户数据,而如果将上页面编程,则应当累积七个扇区的用户数据。
如图8所示,在步骤810期间,写入处理800初始地确定被写入的当前页面的页面类型(即,页面级和/或偶数页面或奇数页面),并且在步骤820期间,确定每一页面的扇区数和针对所确定页面类型的代码和/或代码率。在步骤830期间,写入处理800累积针对当前页面类型的所确定数量的扇区。在步骤840期间,利用针对当前页面的代码和代码率来编码累积的数据,并且在步骤850期间,将该页面写入至闪速单元阵列300。
图9是描述当每一个页面包括整数数量的扇区时,用于读取闪速存储器130的可变代码率读取处理900的示例性实现方式的流程图。一般来说,该读取处理900采用页面级存取方案。如图9所示,在步骤910期间,该示例性可变代码率页面级读取处理900初始地接收用于读取至少一个扇区的请求。此后,在步骤920期间,该可变代码率页面级读取处理900识别具有所请求扇区的页面。在步骤930期间,该可变代码率页面级读取处理900读取所识别的页面,并接着在步骤940期间,利用适于当前页面类型的代码和/或代码率来解码该页面。在步骤950期间,利用存储器映射从所解码的页面获取所请求扇区。
如前所述,图10和11例示了当一个或多个页面可以包括非整数数量的扇区并且指定扇区可以跨越多于一个的页面时,分别用于写入和读取闪速存储器130的可变代码率处理。
在扇区可以跨越多个页面(例如,在每一个页面具有非整数数量的扇区的情况下)的实现方式中,应当采用多页面或字线级存取技术来实现可变代码率方案。图10是描述当每一个页面包括非整数数量的扇区并且指定扇区可跨越多于一个的页面时,用于写入闪速存储器130的可变代码率写入处理1000的示例性实现方式的流程图。一般来说,写入处理1000采用多页面或字线级存取方案和基于被编码的页面类型(即,诸如下、中或上页面的页面级,或者偶数或奇数页面)来划分用户数据的新技术。另外,该写入处理1000还采用与所识别页面类型相关联的适当代码率。如图10所示,在步骤1010期间,写入处理1000初始地识别被写入的当前页面的页面类型,并且在步骤1020期间,确定每一页面的扇区数和针对所确定页面类型的代码和/或代码率。同样,应注意到,每一页面的扇区数可以是非整数数量。在步骤1030期间,写入处理1000累积针对当前页面类型的所确定数量的整个或部分扇区。接着,在步骤1040,写入处理1000针对下一页面缓冲剩余扇区的小数部分(fractional portion)(若有的话)。该缓冲例如可以在数据管理模块110中的存储器电路中执行。在步骤1050期间,利用针对当前页面类型的代码率来编码所累积数据,并且在步骤1060期间,在适当时候利用多页面或字线级存取方案将编码数据写入至闪速单元阵列300。一般来说,在多页面存取方案中,步骤1010到1050在步骤1060之前重复直到多个页面被编码为止。接着,例如,利用已知技术顺序地将这些编码页面写入至闪速存储器。在字线级存取方案中,步骤1010到1050在步骤1060之前被重复,直到编码了字线中的所有页面为止。接着,例如,通过利用已知技术顺序地写入字线内的所有页面而将整个字线写入至闪速存储器。
图11是描述当一个或多个页面可以包括非整数数量的扇区并且指定扇区可以跨越多于一个的页面时,用于读取闪速存储器130的可变代码率处理1100的示例性实现方式的流程图。一般来说,该读取处理1100采用多页面或字线级存取方案。如图11所示,在步骤1110期间,该示例性可变代码率读取处理1100初始地接收用于读取至少一个扇区的请求。接着,在步骤1120期间,可变代码率读取处理1100识别具有所请求扇区的一个或多个页面。
在步骤1130期间,执行测试,以确定该扇区跨越单一页面还是跨越多个页面。如果在步骤1130期间确定该扇区跨越单一页面,则在步骤1140期间,利用页面级存取技术读取该页面。然而,如果在步骤1130期间确定该扇区跨越多个页面,则在步骤1150期间,利用多页面或字线级存取技术读取这些页面。一般来说,在多页面存取方案中,读取多个页面,而在字线级存取方案中,读取完整字线。多个页面或完整字线可以通过从闪速存储器顺序地读取页面来读取。在字线级读取的另一另选实施例中,基于可以解码的页面而从字线读取软信息,如该字线中的单元的电压值。利用足够的软信息,可以解码字线内的所有页面。
此后,在步骤1160期间,可变代码率读取处理1100利用适于这些页面类型(即,级和或偶数或奇数页面)的代码和/或代码率来解码所读取的页面。最后,在步骤1170期间,可变代码率读取处理1100利用存储器映射从所解码的页面获取请求的扇区。
多级单元中的交叉页面存储
在本发明另一实施例中,页面可能跨物理页面边界溢出。在这种情况下,如图3所示,将用于数据划分和编码目的的逻辑页面与存储在字线中的物理页面相区别。逻辑页面可以例如利用图4所示的编码方案来编码。一般来说,字线中的逻辑页面可以具有相同的未编码长度(即,相同的用户数据量),而具有不同的编码长度。例如,针对具有相同用户数据长度的逻辑页面的可变代码率实现方式可以导致具有不同长度的编码的逻辑页面,在该情况下,一些逻辑页面从字线中的一个页面溢出至该字线中的另一页面。按这种方式,本发明提出使用字线中的多个单元的一部分(称作溢出单元)来存储跨越物理页面边界的逻辑数据部分。在这种情况下,与规则单元不同的溢出单元可以存储属于同一逻辑页面的至少两个比特。如以下所讨论的,该溢出单元可以和字线中的其它单元同时编程,或者在已经将配合到物理页面中的其它逻辑页面编程之后编程。在一个示例性实现方式中,溢出单元1220可以被用于存储针对上页面2的附加奇偶校验位。
图12例示了具有规则单元1210和溢出单元1220的多页面单元字线1200。在图12的示例性实施例中,下逻辑页面0和中逻辑页面1具有相同编码长度,而上逻辑页面2溢出到物理页面0和1中。在一个实现方式中,逻辑页面0和1可以首先被编程到字线1200的规则单元1210中,而不编程溢出单元1220。接着,将逻辑页面2编程到规则单元1210的上页面中,并且编程到溢出单元1220的所有页面中。例如,下、中以及上页面0、1、2可以按针对常规闪速存储器的类似方式编程到规则单元1210中。当上页面被编程时,溢出单元1220的下、中以及上比特同样被编程(例如,紧挨在执行规则单元的上页面编程之后)。
在另一实现方式中,按类似于以上讨论的图5的方式,采用多页面或字线级存取技术来同时编程包括规则和溢出部分的整个物理页面。例如,数据管理单元110可以收集多个扇区并且将所集合的数据划分成j个逻辑页面。接着,可以利用多达j个编码器编码j个逻辑页面。接着,数据管理单元110将所编码的数据划分成j个物理页面,所述j个物理页面接着被写入到盘中,其中,可以同时写入物理页面的规则和溢出部分两者。可以利用已知技术将j个物理页面顺序地写入至闪速单元阵列。在本发明的另一实施例中,逻辑页面和物理页面的数量可以不同:数据管理单元可以在数据收集之后将扇区划分成j个逻辑页面,并且在用于编程的编码之后将所编码的数据划分成j’个物理页面。
未溢出的逻辑页面可以例如利用页面级存取技术彼此独立地编程和读取。当编程或读取溢出的逻辑页面时,必须利用多页面或字线级存取技术存取至少两个物理页面,如上结合图5、6、10、11所讨论的。
在另一变型例中,可以通过初始地仅读取物理页面(即,图12的示例中的物理页面2)而不读取溢出单元来读取溢出页面。如果例如通过循环冗余校验(CRC)码或奇偶校验码确定发生解码错误,则同样可以读取溢出单元1220。解码错误的情况下的另一选择是同样读出其它物理页面(即,图12中的物理页面0和1),以获取用于解码的全部逻辑页面和溢出单元。另选的是,如果其它物理页面(即,图12中的物理页面0和1)之前已经读出并存储到缓冲器中,则可以从该缓冲器读取这些页面以获取存储在溢出单元中的数据。解码错误的情况下的另一选择是读出完整字线1200,以获取完整逻辑页面和溢出单元1220。
多级解码
图13是结合本发明的特征的多级解码器1300的示意性框图。如图13所示,在多级解码器1300中,通过对应解码器1310-0到1310-2连续解码组成代码。针对示例性多级解码器1300的更详细讨论,例如,参见U.Wachsmann等人的“Multilevel Codes:Theoretical Conceptsand Practical Design Rules”,IEEE Trans.on Information Theory,Vol.45,No.5,1361-91(1999),上述文献通过引用包含于此。
根据本发明,多级解码器1300解码字线内的多个页面,其中,例如,针对一个页面的解码器(如解码器1310-0)向另一页面的解码器(如解码器1310-1)馈送判定,以改进整体误码率。在图13中,y是来自解映射器的输出,而以及分别是针对页面0、1以及2的解码器的输出处的解码比特。在另选的实现方式中,针对一个页面的解码器可以向针对另一页面的解码器馈送日志似然性比率(LIR)或软信息。图13示出了一个示例性解码次序,其中,从最低页面0向最高页面1馈送判定。在不脱离本发明的精神的情况下,可以实现其它解码次序,例如,从页面1到0到2。
在本发明的另一方面中,可以首先解码一页面,而不解码其它页面或独立于它们解码。如果发生解码错误,例如通过失败奇偶校验所表示,可以从该字线读取其它页面,以执行如图13所示的多级解码。
可以看到,如果将对于每一个比特级的编码器速率匹配至相应比特级信道的容量,则关于多级解码的多级编码可以接近香农信道容量(Shannon capacity)。如前所述,本发明允许针对需要改进可靠性的页面采用更强力的代码或更低的代码率。因而,如果将选定代码率大致匹配至比特级信道的容量,则存储容量可以接近香农信道容量。
处理、***以及制造产品细节
虽然本文的多个流程图描述了示例性步骤序列,但其也是本发明的可能改变顺序的实施例。算法的各种置换被设想为本发明的另选实施例。虽然参照软件程序中的处理步骤对本发明的示例性实施例进行了描述,但本领域技术人员应当清楚,各种功能可以作为软件程序、电路部件或状态机的硬件或者软件和硬件的组合中的处理步骤在数字域中实现。这种软件可以例如在数字信号处理器、专用集成电路、微控制器或通用计算机中采用。这种硬件和软件可以具体实施在集成电路内所实现的电路内。
因而,本发明的功能可以采用用于实践这些方法的方法和设备的形式来具体实施。本发明的一个或多个方面可以采用程序代码的形式来具体实施,例如,不管是存储在存储介质中、加载到机器中和/或通过机器执行、还是通过某一传输介质来传输,其中,当将程序代码加载到机器(如计算机)中并通过该机器执行时,该机器变为用于实践本发明的设备。当在通用处理器上实施时,程序代码段与处理器组合,以对专用逻辑电路提供类似地工作的装置。本发明还可以在集成电路、数字信号处理器、微处理器以及微控制器的一种或多种中实施。
如本领域已知的,本文讨论的方法和设备可以作为本身包括具有包含在其上的计算机可读代码装置的计算机可读介质的制造产品来分发。该计算机可读程序代码装置可结合计算机***操作,以执行所有或一些步骤,从而执行所述方法或创建本文讨论的装置。该计算机可读介质可以是可记录介质(例如,软盘、硬盘驱动器、光盘、存储器卡、半导体器件、芯片、专用集成电路(ASIC)),或者可以是传输介质(例如,包括光纤的网络、环球网、线缆,或利用时分多址、码分多址,或其它射频信道的无线信道)。可以使用可以存储适于与计算机***一起使用的信息的任何已知或开发的介质。计算机可读代码装置是用于允许计算机读取指令和数据(如磁介质上的磁性变化或光盘表面上的高度变化)的任何机制。
本文描述的计算机***和服务器中的每一个皆包含配置关联处理器以实现本文公开的方法、步骤以及功能的存储器。该存储器可以是分布的或局部的,并且该处理器可以是分布的或单一的。该存储器可以实现为电、磁或光学存储器,或者这些存储器的任何组合或其它类型的存储装置。此外,术语“存储器”应当被足够广泛地解释成,涵盖能够从可寻址空间中的地址读取或向该地址写入的任何信息,所述可寻址空间通过关联处理器访问。通过这种定义,因为关联处理器可以检索来自网络的信息,所以网络上的信息仍处于存储器内。
应当理解,本文示出和描述的实施方式和变型例仅是对本发明的原理的例示,并且在不脱离本发明的范围和精神的情况下,本领域技术人员可以实现各种修改。
Claims (14)
1.一种用于将数据存储在具有多个单元的多级单元闪速存储器装置中的方法,其中,所述多级单元闪速存储器装置中的每一个单元能够存储多个比特,其中,所述多个比特中的每一个比特来自不同的页面,所述方法包括以下步骤:
累积多个页面;
将所述多个页面编码为单个块,其中所述多个页面中的至少两个页面使用至少两种不同的代码来编码;以及
将所述单个块存储在所述多级单元闪速存储器装置中;
其中所述多级单元闪速存储器装置还包括多个字线,每一个字线包括多个页面,其中所述多个页面中的每一个页面具有关联代码率,使得所述多个页面中的每一个页面的未编码长度相同,且所述多个页面中的每一个页面的编码长度不同;或使得所述多个页面中的每一个页面的未编码长度不同,且所述多个页面中的每一个页面的编码长度相同。
2.根据权利要求1所述的方法,还包括解码所存储的单个块的步骤。
3.根据权利要求2所述的方法,其中,所述解码所存储的单个块的步骤提供所述多个页面,并且所述方法还包括从所解码的多个页面获取请求的扇区的步骤。
4.根据权利要求1所述的方法,其中,所述多个页面对应于所述多级单元闪速存储器中的单一字线。
5.根据权利要求1所述的方法,其中,所述多个页面是用于读取和写入所述多级单元闪速存储器装置的最小数据单位。
6.根据权利要求1所述的方法,其中,将所述多个页面编码为单个块的步骤利用单一代码和单一代码率来编码所述多个页面。
7.根据权利要求1所述的方法,其中,将所述多个页面编码为单个块的步骤利用多个代码和多个代码率中的一个或多个来编码所述多个页面。
8.根据权利要求1所述的方法,其中,将所述多个页面编码为单个块的步骤利用针对所述多个页面中的每一个的特有的代码和特有的代码率中的一个或多个来编码所述多个页面中的每一个页面。
9.根据权利要求1所述的方法,其中,所述累积所述多个页面的步骤还包括累积j乘k个扇区的步骤,其中,j是所述多级单元闪速存储器装置中的每一字线的页面数,而k是每一页面的扇区数。
10.根据权利要求1所述的方法,还包括将所编码的单个块划分成多个页面的步骤,并且其中,所述存储步骤包括将所述多个页面中的每一个页面存储在所述多级单元闪速存储器装置中的步骤。
11.根据权利要求1所述的方法,其中所述多级单元闪速存储器装置具有所述多个单元以及多个字线,每一个字线包括多个物理页面,所述方法还包括以下步骤:
存储第一组逻辑页面,其中,所述第一组逻辑页面中的每一个逻辑页面的编码大小小于所述多个物理页面的大小;并且
存储第二组逻辑页面,其中,所述第二组逻辑页面中的每一个逻辑页面的编码大小大于所述多个物理页面的大小,并且其中,将所述第二组逻辑页面的至少一部分存储在溢出区域中。
12.根据权利要求11所述的方法,其中,所述溢出区域在所述存储所述第一组逻辑页面的步骤之后被编程。
13.根据权利要求11所述的方法,其中,所述溢出区域在所述存储所述第一组逻辑页面的步骤之前被编程。
14.根据权利要求1所述的方法,其中所述多级单元闪速存储器装置还包括:
多个字线,每一个字线包括多个页面,其中,至少一个扇区跨越所述多个页面。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US6893408P | 2008-03-11 | 2008-03-11 | |
US61/068,934 | 2008-03-11 | ||
PCT/US2009/036810 WO2009114618A2 (en) | 2008-03-11 | 2009-03-11 | Methods and apparatus for storing data in a multi-level cell flash memory device with cross-page sectors, multi-page coding and per-page coding |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101999116A CN101999116A (zh) | 2011-03-30 |
CN101999116B true CN101999116B (zh) | 2015-05-13 |
Family
ID=40749883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980112686.0A Expired - Fee Related CN101999116B (zh) | 2008-03-11 | 2009-03-11 | 通过交叉页面扇区、多页面编码以及每一页面编码将数据存储在多级单元闪速存储器装置中的方法和设备 |
Country Status (8)
Country | Link |
---|---|
US (4) | US8724381B2 (zh) |
EP (4) | EP2592552B1 (zh) |
JP (3) | JP2011522301A (zh) |
KR (1) | KR20100139010A (zh) |
CN (1) | CN101999116B (zh) |
IL (1) | IL208028A0 (zh) |
TW (1) | TWI533304B (zh) |
WO (1) | WO2009114618A2 (zh) |
Families Citing this family (69)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100104623A (ko) * | 2009-03-18 | 2010-09-29 | 삼성전자주식회사 | 데이터 처리 시스템 및 그것의 부호율 제어 스킴 |
KR101616100B1 (ko) * | 2009-09-25 | 2016-04-28 | 삼성전자주식회사 | 메모리 시스템 및 그것의 동작 방법 |
KR101466555B1 (ko) | 2010-03-12 | 2014-12-02 | 엘에스아이 코포레이션 | 플래시 메모리들을 위한 ldpc 소거 디코딩 |
US8429500B2 (en) | 2010-03-31 | 2013-04-23 | Lsi Corporation | Methods and apparatus for computing a probability value of a received value in communication or storage systems |
US8775913B2 (en) | 2010-03-31 | 2014-07-08 | Lsi Corporation | Methods and apparatus for computing soft data or log likelihood ratios for received values in communication or storage systems |
US8504885B2 (en) | 2010-03-31 | 2013-08-06 | Lsi Corporation | Methods and apparatus for approximating a probability density function or distribution for a received value in communication or storage systems |
US8406051B2 (en) | 2010-05-17 | 2013-03-26 | Seagate Technology Llc | Iterative demodulation and decoding for multi-page memory architecture |
US8254167B2 (en) | 2010-05-17 | 2012-08-28 | Seagate Technologies Llc | Joint encoding of logical pages in multi-page memory architecture |
US9251873B1 (en) | 2010-05-20 | 2016-02-02 | Kandou Labs, S.A. | Methods and systems for pin-efficient memory controller interface using vector signaling codes for chip-to-chip communications |
US8417877B2 (en) | 2010-08-31 | 2013-04-09 | Micron Technology, Inc | Stripe-based non-volatile multilevel memory operation |
KR101686590B1 (ko) * | 2010-09-20 | 2016-12-14 | 삼성전자주식회사 | 플래시 메모리 시스템 및 그것의 워드 라인 인터리빙 방법 |
US9727414B2 (en) | 2010-12-01 | 2017-08-08 | Seagate Technology Llc | Fractional redundant array of silicon independent elements |
CN103348330B (zh) | 2010-12-01 | 2017-05-24 | 希捷科技有限公司 | 采用独立硅元件的动态较高级冗余模式管理 |
US8719663B2 (en) | 2010-12-12 | 2014-05-06 | Lsi Corporation | Cross-decoding for non-volatile storage |
US9275720B2 (en) * | 2010-12-30 | 2016-03-01 | Kandou Labs, S.A. | Differential vector storage for dynamic random access memory |
KR101564569B1 (ko) | 2011-01-18 | 2015-11-03 | 엘에스아이 코포레이션 | 상위-레벨 리던던시 정보 계산 |
US8825945B2 (en) | 2011-01-31 | 2014-09-02 | Marvell World Trade Ltd. | Mapping different portions of data to different pages of multi-level non-volatile memory |
JP2012174088A (ja) * | 2011-02-23 | 2012-09-10 | Hitachi Ltd | メモリ制御装置 |
US10063262B2 (en) | 2011-02-28 | 2018-08-28 | Inphi Corporation | Non-concatenated FEC codes for ultra-high speed optical transport networks |
US9086999B2 (en) * | 2011-07-05 | 2015-07-21 | International Business Machines Corporation | Data encryption management |
US9311969B2 (en) * | 2011-07-22 | 2016-04-12 | Sandisk Technologies Inc. | Systems and methods of storing data |
US8995196B2 (en) * | 2011-08-15 | 2015-03-31 | Skymedi Corporation | Method of sorting a multi-bit per cell non-volatile memory and a multi-mode configuration method |
JP5808854B2 (ja) * | 2011-10-05 | 2015-11-10 | 株式会社日立製作所 | ストレージシステム及びストレージ方法 |
KR20130070927A (ko) * | 2011-12-20 | 2013-06-28 | 에스케이하이닉스 주식회사 | 불휘발성 메모리 장치 및 그 동작 방법 |
US8954825B2 (en) * | 2012-03-06 | 2015-02-10 | Micron Technology, Inc. | Apparatuses and methods including error correction code organization |
US9026887B2 (en) * | 2012-03-15 | 2015-05-05 | Micron Technology, Inc. | Physical page, logical page, and codeword correspondence |
US8856611B2 (en) | 2012-08-04 | 2014-10-07 | Lsi Corporation | Soft-decision compensation for flash channel variation |
US9135106B2 (en) * | 2012-05-22 | 2015-09-15 | Hgst Technologies Santa Ana, Inc. | Read level adjustment using soft information |
US8924820B2 (en) * | 2012-07-27 | 2014-12-30 | Kabushiki Kaisha Toshiba | Memory controller, semiconductor memory system, and memory control method |
US8856431B2 (en) | 2012-08-02 | 2014-10-07 | Lsi Corporation | Mixed granularity higher-level redundancy for non-volatile memory |
US9239754B2 (en) | 2012-08-04 | 2016-01-19 | Seagate Technology Llc | Single read based soft-decision decoding of non-volatile memory |
CN102867046B (zh) * | 2012-09-06 | 2016-08-03 | 记忆科技(深圳)有限公司 | 基于固态硬盘的数据库优化方法及*** |
US8984369B2 (en) * | 2012-11-21 | 2015-03-17 | Micron Technology, Inc. | Shaping codes for memory |
US8656255B1 (en) * | 2013-03-15 | 2014-02-18 | Avalanche Technology, Inc. | Method for reducing effective raw bit error rate in multi-level cell NAND flash memory |
US9047882B2 (en) * | 2013-08-30 | 2015-06-02 | Lsi Corporation | Systems and methods for multi-level encoding and decoding |
KR102204394B1 (ko) | 2013-10-14 | 2021-01-19 | 삼성전자주식회사 | 메모리 시스템에서의 코딩 방법 및 디코딩 방법 |
GB201322075D0 (en) | 2013-12-13 | 2014-01-29 | Ibm | Device for selecting a level for at least one read voltage |
CN106105123B (zh) | 2014-02-28 | 2019-06-28 | 康杜实验室公司 | 用于发送时钟嵌入式向量信令码的方法和*** |
JP6262063B2 (ja) * | 2014-03-18 | 2018-01-17 | 東芝メモリ株式会社 | 不揮発性メモリおよび書き込み方法 |
KR102247087B1 (ko) * | 2014-07-08 | 2021-05-03 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
TWI550615B (zh) * | 2014-08-28 | 2016-09-21 | 群聯電子股份有限公司 | 資料存取方法、記憶體儲存裝置及記憶體控制電路單元 |
CN105468292B (zh) * | 2014-09-05 | 2019-04-23 | 群联电子股份有限公司 | 数据存取方法、存储器储存装置及存储器控制电路单元 |
US9563373B2 (en) | 2014-10-21 | 2017-02-07 | International Business Machines Corporation | Detecting error count deviations for non-volatile memory blocks for advanced non-volatile memory block management |
US10365859B2 (en) | 2014-10-21 | 2019-07-30 | International Business Machines Corporation | Storage array management employing a merged background management process |
US9536600B2 (en) | 2014-10-22 | 2017-01-03 | International Business Machines Corporation | Simultaneous multi-page commands for non-volatile memories |
US9830087B2 (en) * | 2014-11-13 | 2017-11-28 | Micron Technology, Inc. | Memory wear leveling |
US10339048B2 (en) | 2014-12-23 | 2019-07-02 | International Business Machines Corporation | Endurance enhancement scheme using memory re-evaluation |
US9990279B2 (en) | 2014-12-23 | 2018-06-05 | International Business Machines Corporation | Page-level health equalization |
US9613664B2 (en) * | 2015-01-20 | 2017-04-04 | Samsung Electronics Co., Ltd. | Method of operating memory device including multi-level memory cells |
CN104810056A (zh) * | 2015-03-05 | 2015-07-29 | 华南理工大学 | 一种基于自适应ldpc码的nand闪存差错控制器 |
US9727416B2 (en) * | 2015-07-01 | 2017-08-08 | Xilinx, Inc. | Variable code rate solid-state drive |
KR20170004693A (ko) * | 2015-07-03 | 2017-01-11 | 에스케이하이닉스 주식회사 | 메모리 장치의 컨트롤러 및 그 동작 방법 |
US9577854B1 (en) * | 2015-08-20 | 2017-02-21 | Micron Technology, Inc. | Apparatuses and methods for asymmetric bi-directional signaling incorporating multi-level encoding |
US10347343B2 (en) | 2015-10-30 | 2019-07-09 | Seagate Technology Llc | Adaptive read threshold voltage tracking with separate characterization on each side of voltage distribution about distribution mean |
US10192614B2 (en) | 2015-10-30 | 2019-01-29 | Seagate Technology Llc | Adaptive read threshold voltage tracking with gap estimation between default read threshold voltages |
US9940034B2 (en) | 2016-01-25 | 2018-04-10 | International Business Machines Corporation | Reducing read access latency by straddling pages across non-volatile memory channels |
US10198313B2 (en) * | 2016-03-11 | 2019-02-05 | Western Digital Technologies, Inc. | Redundancy of error correction encoded data in a storage system |
JP6538741B2 (ja) * | 2017-03-09 | 2019-07-03 | 株式会社東芝 | 管理装置、情報処理装置および管理方法 |
US10164817B2 (en) | 2017-03-21 | 2018-12-25 | Micron Technology, Inc. | Methods and apparatuses for signal translation in a buffered memory |
TWI634556B (zh) * | 2017-10-12 | 2018-09-01 | 群聯電子股份有限公司 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
US10558522B2 (en) | 2017-10-20 | 2020-02-11 | Western Digital Technologies, Inc. | Dynamic multi-stage decoding |
CN109697134B (zh) * | 2017-10-20 | 2022-10-21 | 群联电子股份有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
US10467177B2 (en) | 2017-12-08 | 2019-11-05 | Kandou Labs, S.A. | High speed memory interface |
US10460814B2 (en) * | 2017-12-12 | 2019-10-29 | Western Digital Technologies, Inc. | Non-volatile memory and method for power efficient read or verify using lockout control |
US10637511B2 (en) * | 2017-12-18 | 2020-04-28 | Western Digital Technologies, Inc | Dynamic multi-stage decoding |
CN108564983A (zh) * | 2018-04-10 | 2018-09-21 | 南京扬贺扬微电子科技有限公司 | 一种用于nand flash的ldpc测试平台 |
CN111176582A (zh) * | 2019-12-31 | 2020-05-19 | 北京百度网讯科技有限公司 | 矩阵存储方法、矩阵访问方法、装置和电子设备 |
US11424766B1 (en) | 2020-01-31 | 2022-08-23 | Marvell Asia Pte Ltd. | Method and device for energy-efficient decoders |
WO2023283541A1 (en) * | 2021-07-04 | 2023-01-12 | Maxlinear, Inc. | Pmd-to-tc-mac interface with 2-stage fec protection |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1832039A (zh) * | 2005-03-10 | 2006-09-13 | 海力士半导体有限公司 | 多面型闪存以及控制其程序和读取操作的方法 |
CN101030167A (zh) * | 2007-01-17 | 2007-09-05 | 忆正存储技术(深圳)有限公司 | 闪存的区块管理方法 |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6335878B1 (en) * | 1998-07-28 | 2002-01-01 | Hitachi, Ltd. | Non-volatile multi-level semiconductor flash memory device and method of driving same |
JPH11283396A (ja) | 1998-03-27 | 1999-10-15 | Sony Corp | メモリ装置 |
JPH11283398A (ja) | 1998-03-30 | 1999-10-15 | Matsushita Electric Ind Co Ltd | 半導体回路装置 |
JP3308915B2 (ja) | 1998-11-11 | 2002-07-29 | エヌイーシーマイクロシステム株式会社 | 不良救済用メモリセル及びそれを用いた記憶装置 |
US6134141A (en) * | 1998-12-31 | 2000-10-17 | Sandisk Corporation | Dynamic write process for high bandwidth multi-bit-per-cell and analog/multi-level non-volatile memories |
US6684289B1 (en) | 2000-11-22 | 2004-01-27 | Sandisk Corporation | Techniques for operating non-volatile memory systems with data sectors having different sizes than the sizes of the pages and/or blocks of the memory |
US6522580B2 (en) | 2001-06-27 | 2003-02-18 | Sandisk Corporation | Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states |
US6866909B2 (en) | 2002-09-04 | 2005-03-15 | General Electric Company | Limited play data storage media and method for limiting access to data thereon |
US6781877B2 (en) * | 2002-09-06 | 2004-08-24 | Sandisk Corporation | Techniques for reducing effects of coupling between storage elements of adjacent rows of memory cells |
US7073100B2 (en) | 2002-11-11 | 2006-07-04 | International Business Machines Corporation | Method for testing embedded DRAM arrays |
JP2005078721A (ja) * | 2003-09-01 | 2005-03-24 | Nippon Telegr & Teleph Corp <Ntt> | 誤り訂正方法およびメモリ回路 |
WO2006013529A1 (en) * | 2004-08-02 | 2006-02-09 | Koninklijke Philips Electronics N.V. | Data storage and replay apparatus |
US7315916B2 (en) | 2004-12-16 | 2008-01-01 | Sandisk Corporation | Scratch pad block |
US7386655B2 (en) | 2004-12-16 | 2008-06-10 | Sandisk Corporation | Non-volatile memory and method with improved indexing for scratch pad and update blocks |
US7681109B2 (en) * | 2005-10-13 | 2010-03-16 | Ramot At Tel Aviv University Ltd. | Method of error correction in MBC flash memory |
US7349264B2 (en) * | 2005-12-28 | 2008-03-25 | Sandisk Corporation | Alternate sensing techniques for non-volatile memories |
US7388781B2 (en) * | 2006-03-06 | 2008-06-17 | Sandisk Il Ltd. | Multi-bit-per-cell flash memory device with non-bijective mapping |
TWM304711U (en) * | 2006-04-26 | 2007-01-11 | Genesys Logic Inc | Flash memory data access reliability enhancing device |
US8050086B2 (en) * | 2006-05-12 | 2011-11-01 | Anobit Technologies Ltd. | Distortion estimation and cancellation in memory devices |
WO2007132456A2 (en) * | 2006-05-12 | 2007-11-22 | Anobit Technologies Ltd. | Memory device with adaptive capacity |
US20070300130A1 (en) * | 2006-05-17 | 2007-12-27 | Sandisk Corporation | Method of Error Correction Coding for Multiple-Sector Pages in Flash Memory Devices |
JP2007334413A (ja) * | 2006-06-12 | 2007-12-27 | Sony Corp | 記憶装置 |
US7304893B1 (en) * | 2006-06-30 | 2007-12-04 | Sandisk Corporation | Method of partial page fail bit detection in flash memory devices |
US7355892B2 (en) * | 2006-06-30 | 2008-04-08 | Sandisk Corporation | Partial page fail bit detection in flash memory devices |
KR100758301B1 (ko) * | 2006-08-04 | 2007-09-12 | 삼성전자주식회사 | 메모리 카드 및 그것의 데이터 저장 방법 |
US7460398B1 (en) * | 2007-06-19 | 2008-12-02 | Micron Technology, Inc. | Programming a memory with varying bits per cell |
US8259497B2 (en) * | 2007-08-06 | 2012-09-04 | Apple Inc. | Programming schemes for multi-level analog memory cells |
WO2009072103A2 (en) * | 2007-12-05 | 2009-06-11 | Densbits Technologies Ltd. | Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated bch codes and/or designation of 'first below' cells |
US8179719B1 (en) * | 2008-03-10 | 2012-05-15 | Marvell International Ltd. | Systems and methods for improving error distributions in multi-level cell memory systems |
US8054684B2 (en) * | 2009-12-18 | 2011-11-08 | Sandisk Technologies Inc. | Non-volatile memory and method with atomic program sequence and write abort detection |
US8369156B2 (en) * | 2010-07-13 | 2013-02-05 | Sandisk Technologies Inc. | Fast random access to non-volatile storage |
US8472280B2 (en) * | 2010-12-21 | 2013-06-25 | Sandisk Technologies Inc. | Alternate page by page programming scheme |
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 |
US9171627B2 (en) * | 2012-04-11 | 2015-10-27 | Aplus Flash Technology, Inc. | Non-boosting program inhibit scheme in NAND design |
US8793556B1 (en) * | 2012-05-22 | 2014-07-29 | Pmc-Sierra, Inc. | Systems and methods for reclaiming flash blocks of a flash drive |
KR102048765B1 (ko) * | 2013-01-15 | 2020-01-22 | 삼성전자주식회사 | 메모리 시스템의 동작 방법 및 메모리 시스템 |
US9013920B2 (en) * | 2013-04-03 | 2015-04-21 | Western Digital Technologies, Inc. | Systems and methods of write precompensation to extend life of a solid-state memory |
US8996838B1 (en) * | 2014-05-08 | 2015-03-31 | Sandisk Technologies Inc. | Structure variation detection for a memory having a three-dimensional memory configuration |
-
2009
- 2009-03-11 US US12/920,407 patent/US8724381B2/en active Active
- 2009-03-11 CN CN200980112686.0A patent/CN101999116B/zh not_active Expired - Fee Related
- 2009-03-11 EP EP13154454.6A patent/EP2592552B1/en not_active Not-in-force
- 2009-03-11 JP JP2010550838A patent/JP2011522301A/ja active Pending
- 2009-03-11 WO PCT/US2009/036810 patent/WO2009114618A2/en active Application Filing
- 2009-03-11 EP EP09720856.5A patent/EP2266036B9/en not_active Not-in-force
- 2009-03-11 TW TW098107915A patent/TWI533304B/zh not_active IP Right Cessation
- 2009-03-11 EP EP13154455.3A patent/EP2592553B1/en not_active Not-in-force
- 2009-03-11 KR KR1020107022580A patent/KR20100139010A/ko active Search and Examination
- 2009-03-11 EP EP13154453.8A patent/EP2592551A3/en not_active Withdrawn
-
2010
- 2010-09-07 IL IL208028A patent/IL208028A0/en unknown
-
2013
- 2013-11-12 US US14/077,489 patent/US9058879B2/en not_active Expired - Fee Related
- 2013-11-12 US US14/077,519 patent/US9007828B2/en not_active Expired - Fee Related
- 2013-11-12 US US14/077,474 patent/US9135999B2/en not_active Expired - Fee Related
-
2014
- 2014-04-25 JP JP2014091070A patent/JP5944941B2/ja not_active Expired - Fee Related
-
2015
- 2015-11-24 JP JP2015228589A patent/JP2016042380A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1832039A (zh) * | 2005-03-10 | 2006-09-13 | 海力士半导体有限公司 | 多面型闪存以及控制其程序和读取操作的方法 |
CN101030167A (zh) * | 2007-01-17 | 2007-09-05 | 忆正存储技术(深圳)有限公司 | 闪存的区块管理方法 |
Also Published As
Publication number | Publication date |
---|---|
US8724381B2 (en) | 2014-05-13 |
JP5944941B2 (ja) | 2016-07-05 |
EP2592553A2 (en) | 2013-05-15 |
JP2016042380A (ja) | 2016-03-31 |
EP2266036A2 (en) | 2010-12-29 |
EP2592553B1 (en) | 2015-11-18 |
US20140126287A1 (en) | 2014-05-08 |
TW200951961A (en) | 2009-12-16 |
US20140126288A1 (en) | 2014-05-08 |
US9007828B2 (en) | 2015-04-14 |
EP2266036B1 (en) | 2015-11-25 |
EP2592552A3 (en) | 2013-08-28 |
EP2592552B1 (en) | 2015-11-25 |
EP2592551A2 (en) | 2013-05-15 |
KR20100139010A (ko) | 2010-12-31 |
EP2592553A3 (en) | 2013-08-28 |
US20140126289A1 (en) | 2014-05-08 |
WO2009114618A2 (en) | 2009-09-17 |
EP2266036B9 (en) | 2016-05-18 |
EP2592551A3 (en) | 2013-08-28 |
EP2592552A2 (en) | 2013-05-15 |
CN101999116A (zh) | 2011-03-30 |
TWI533304B (zh) | 2016-05-11 |
US9135999B2 (en) | 2015-09-15 |
US9058879B2 (en) | 2015-06-16 |
JP2014135097A (ja) | 2014-07-24 |
JP2011522301A (ja) | 2011-07-28 |
IL208028A0 (en) | 2010-12-30 |
WO2009114618A3 (en) | 2009-11-26 |
US20110090734A1 (en) | 2011-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101999116B (zh) | 通过交叉页面扇区、多页面编码以及每一页面编码将数据存储在多级单元闪速存储器装置中的方法和设备 | |
US10891187B2 (en) | Memory devices having differently configured blocks of memory cells | |
CN101183565B (zh) | 存储介质中数据校验方法 | |
US9996417B2 (en) | Data recovery in memory having multiple failure modes | |
US9454414B2 (en) | System and method for accumulating soft information in LDPC decoding | |
TWI501238B (zh) | 藉由調變編碼用於單元間干擾抑制的方法及裝置 | |
US20190252035A1 (en) | Decoding method, memory storage device and memory control circuit unit | |
CN108694098B (zh) | 对于存储设备的不同存储器区域的比特顺序修改 | |
CN104937667A (zh) | 对数似然比和针对数据存储***的集中的对数似然比生成 | |
WO2009078006A2 (en) | Apparatus for coding at a plurality of rates in multi-level flash memory systems, and methods useful in conjunction therewith | |
US20140189222A1 (en) | Method for performing data shaping, and associated memory device and controller thereof | |
CN110795270A (zh) | 固态储存装置及其读取重试方法 | |
CN106297883A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN112562772B (zh) | 自适应低密度奇偶校验硬解码器 | |
US20040141389A1 (en) | Solid state storage device and data storage method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent of invention or patent application | ||
CB02 | Change of applicant information |
Address after: Delaware Applicant after: EDGAR RAY SYSTEMS CO., LTD. Address before: American Pennsylvania Applicant before: Egree System Co., Ltd. |
|
COR | Change of bibliographic data |
Free format text: CORRECT: APPLICANT; FROM: EGREE SYSTEM CO. LTD. TO: AGERE SYSTEMS GUARDIAN CORP. |
|
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: 20150513 Termination date: 20210311 |
|
CF01 | Termination of patent right due to non-payment of annual fee |