用于使用多单元存储单元组对非易失性存储器进行编程以提供保持差错的差错位置信息的方法和设备与流程

文档序号:17814919发布日期:2019-06-05 21:31阅读:181来源:国知局
用于使用多单元存储单元组对非易失性存储器进行编程以提供保持差错的差错位置信息的方法和设备与流程

本文所述的实施例一般涉及用于使用多单元存储单元组对非易失性存储器进行编程以提供保持差错的差错收集信息的方法和设备。



背景技术:

固态存储装置(例如固态驱动器)可由非易失性存储器管芯的一个或多个封装来组成,其中每个管芯由存储单元来组成,其中存储单元被组织为页,并且页被组织为块。每个存储单元能够存储信息的一个或多个位。多级单元非易失性存储器单元(例如表示信息的2个位的mlcnand)用4个阈值电压电平e、p1、p2和p3被编程。

保持差错在单元的所存储电压电平遭遇泄漏并且转变或迁移到更低阈值电平(例如从p3到p2、p2到p1或p1到e)时发生。保持差错也可由于引入电压移动(更高或更低)(例如读或写入扰动)的操作而发生。纠错码技术通过计算检验子并且将检验子连同奇偶校验信息一起用来校正被确定为具有差错的位中的差错来识别差错的位置。

本领域存在对于用于确定遭遇差错的数据的位置以计算检验子并且与奇偶校验信息配合用来校正保持差错的改进技术的需要。

附图说明

参照附图作为示例来描述实施例,附图不是按比例绘制,其中类似参考标号指的是类似元件。

图1示出非易失性存储器存储装置的实施例。

图2示出存储管芯控制器的实施例。

图3示出装置页的装置页信息的实施例。

图4示出提供变换所接收的位的转化函数的状态映射的实施例。

图5a、图5b和图5c示出包括2个存储单元的存储单元组的不同可能数量的有效状态的实施例,其中每个单元用4个阈值电压电平之一被编程。

图6a示出当一半状态为有效且一半为无效时的存储单元对的阈值电压电平到信息的3个位的单元到位映射的实施例。

图6b示出将存储单元阈值电压电平映射到从存储装置所读取的4个位并且映射到3个位以返回的真值表。

图7a示出当状态的四分之一为有效而四分之三为无效时存储单元对的阈值电压电平到信息的2个位的单元到位映射的实施例。

图7b示出将存储单元阈值电压电平映射到从存储装置所读取的4个位并且映射到2个位以返回的真值表。

图8示出将数据的多个页写入到组织为(一个或多个)存储单元组的装置页的操作的实施例。

图9a和图9b示出最低有效位并且然后最高有效位到存储单元对的二步编程。

图10示出按照图9a和图9b对存储单元对进行编程的编程步骤的编程表。

图11a和图11b示出最高有效位并且然后最低有效位到存储单元对的二步编程。

图12示出按照图11a和图11b对存储单元对进行编程的编程步骤的编程表。

图13a、图13b、图13c、图13d和图13e提供用于在要写入的位和关于所存储的位的信息之间进行转化的操作。

图14示出读取存储单元对的操作的实施例。

图15示出进行压缩、加密、纠错码、并且加扰数据页的操作的实施例。

图16示出对存储装置中的数据进行解扰、纠错、解密和解压缩的操作的实施例。

图17示出其中可部署图1的存储器装置的系统。

具体实施方式

所述实施例提供将存储单元编组在多个存储单元的存储单元组中以针对可使用阈值电压电平对存储单元组中的存储单元被编程的状态提供无效状态的技术。通过将存储单元编组为存储单元组以存储来自所接收的页的位,可存在用来表示所接收的位的多个有效状态,其少于全部可能的状态,因为随着被编组在存储单元组中,更多存储单元被用来存储所接收的位。无效状态被定义使得对于任何2个有效状态中的存储单元组中的至少一个存储单元的阈值电压电平相差至少2个阈值电压电平。这样,遭遇保持差错(例如一个阈值电压电平的泄漏)的编程在任何有效状态中的存储单元组的存储单元转变成无效状态。当读取具有无效状态的存储单元组时,那些所读取的位能够标记为无效,以向纠错单元提供关于无效位的位置的准确信息,以供计算纠错信息中使用。

通过仅使用存储单元状态的一部分而将其余部分标记为无效,有效和无效状态交错,使得‘hamming距离’(其等于从一个有效状态到另一个有效状态的迁移的数量)变大。有效状态的这个交错指配允许在对位进行解码并且确定它们表示无效状态时对差错的直接检测。遭遇差错的位和单元的位置的这种检测称作“擦除”。按照编码理论,给定相同纠错码(ecc)代码,能够被校正的擦除的数量是差错数量的两倍。所述实施例的原位检错能力改进纠错的效能,而无需增加ecc位。

所述原位检错编程方法论可通过压缩待存储的位以便允许可标记为无效的状态用来检测泄漏来提供。

在以下描述中,阐述了诸如逻辑实现、操作码、指定操作数的部件、资源划分/共享/重复实现、系统组件的类型和相互关系以及逻辑划分/集成选择之类的许多特定细节,以便提供对本发明的更透彻理解。然而,将由本领域的技术人员认识到,本发明可以在没有此类特定细节的情况下被实践。在其他实例中,没有详细示出控制结构、门级电路和完全软件指令序列,以免使本发明模糊不清。本领域的技术人员利用所包括描述将能够实现适当功能性而无需过度实验。

本说明书中对“一个实施例”、“实施例”、“示例实施例”等的参考表示所述的实施例可包括具体特征、结构或特性,但每一个实施例可能不一定都包括该具体特征、结构或特性。此外,这类词语不一定指同一实施例。某些实施例涉及存储装置电子组件。实施例包括用于形成电子组件的装置和方法两者。

图1示出非易失性存储器存储装置100的实施例,非易失性存储器存储装置100具有控制器通道102、主接口104,以便在所连接主系统与实现存储单元(其可组织为存储单元页)的存储管芯1061、1062...106n的多个组之间传递数据块。非易失性存储器存储装置100可用作计算系统中的存储器装置和/或存储装置两者,并且可用来执行计算系统中的易失性存储器装置和磁盘驱动器的作用。在实施例中,非易失性存储器存储装置100可包括nand存储管芯1061、1062...106n的固态驱动器(ssd)。控制器通道102包括中央处理单元(cpu)108,其执行某些控制功能,例如逻辑到物理映射110提供i/o请求所针对的逻辑地址和存储管芯1061、1062...106n中的物理地址的映射。

控制器通道102包括多个存储管芯控制器2001,2002...200n,其管理对存储管芯1061、1062...106n组的对存储单元页中的数据块的读和写入请求。存储管芯控制器2001、2002...200n的每个的变换层1141,1142.....114n变换来自主机的数据页中的所接收数量的位(例如k个位)以写入到存储管芯1061、1062...106n中的多个存储单元(各自存储m个位,其中m>=k)的存储单元组,并且将块中的所读取m个位变换成数据块的更少数量的k个位以按照页返回给主机。主机操作系统可对存储器控制器的数据页进行编码,其中多个页为多级存储单元的每个提供数据,例如,如果每个存储单元存储n个位,则主机操作系统提供n个页,以提供n个位的每个以便在存储单元中进行编码。

变换层1141、1142.....114n使用状态映射3001、3002...300n来确定转化函数,以便用来将更少的k个位变换成m个位,并且反之亦然。在某些实施例中,所接收页中的k个位到存储单元组中存储的m个位并且反之亦然的映射操作由变换层114i来执行。在备选实施例中,映射操作可由i/o逻辑202来执行,其中变换层114i在i/o逻辑202中实现。

例如,如果每个多级单元包括n个位,则存储装置100提供2n个不同阈值电压电平以对存储单元的2n个不同状态进行编程。如果存储单元被组为各p个存储单元的组,则每个存储单元组具有信息的2np个状态,并且允许数据块的信息的m个位的存储,其中m=log2(2np)个信息位。控制器通道102和变换层1141、1142.....114n可编程为仅使用比2n个可用阈值电压电平要少的j个阈值电压电平。编程为仅使用j个阈值电压电平的p个存储单元的存储单元组能够用信息的k个位表示jp个状态,其中k<m,并且k是小于或等于log2(jp)的最大整数。

存储管芯1061、1062...106n可包括电可擦和非易失性存储器单元。例如,存储管芯1061、1062...106n可包括存储器单元的nand管芯,又称作nand芯片或封装。在一个实施例中,nand管芯可包括多级单元(mlc)nand闪速存储器,其中每个单元记录2个位值,即低位值和高位值。备选地,nand管芯可包括单级单元(slc)、多级单元(mlc)、三级单元(tlc)nand存储器等。nand管芯、tlc、mlc、slc等可组织成三维(3d)或二维(2d)物理结构。存储管芯1061、1062...106n还可包括铁电随机存取存储器(fetram)、基于纳米线的非易失性存储器、三维(3d)交叉点存储器(例如相变存储器(pcm))、结合忆阻器技术的存储器、磁阻随机存取存储器(mram)、自旋转移矩(stt)-mram、单级单元(slc)闪速存储器以及其他电可擦可编程只读存储器(eeprom)类型装置。

非易失性存储器存储装置100可包括:数据压缩单元112,用于压缩来自主机接口104的所接收数据;数据加密单元118,用于对压缩数据进行加密;纠错单元120,用于执行纠错操作;以及加扰器单元1161、1162...116n,用于在控制器2001、2002...200n将数据写入到存储管芯1061、1062...106n之前加扰所加密和压缩数据。提供给控制器2001、2002...200n的数据可被压缩,并且包括比存储管芯1061、1062...106n的存储单元中存储的要少的数据位。在备选实施例中,可以仅存在数据压缩单元112和纠错单元120,而没有加密118和加扰器116单元。在又一些实施例中,数据压缩单元112、加密单元118和/或加扰器单元1161、1162...116n可在外部主系统中实现,使得比存储单元中存储的位数要少的位被提供给主接口104以进行存储。

来自主接口104的数据(其经受压缩112、加密118和纠错120)存储在传递缓冲器124中,从其中,数据被传递给控制器2001、2002...200n,并且由加扰器单元1161、1162...116n来加扰,以在被写入到存储管芯1061、1062...106n之前进行加扰。

非易失性存储器存储装置100中的处理组件(包括控制器2001、2002...200n、压缩单元112、加密单元118、纠错单元120和加扰器单元1161、1162...116n)可作为固件或者在非易失性存储器存储装置100内的一个或多个专用集成电路(asic)中实现。备选地,这些组件可通过由非易失性存储器存储装置100的处理器所运行的软件程序来实现。

主接口104将存储器装置100连接到主系统(未示出)。存储器装置100可安装或嵌入主机系统内,例如针对图17的元件1708或1710所示和所述,或者存储器装置100可以在主机系统外部。主接口104可包括总线接口,例如外设部件互连快速(pcie)接口、串行at附件(sata)、非易失性存储器快速(nvme)等。

在某些实施例中,存储管芯1061、1062...106n可包括n个位多级单元,其中每个单元能够编程为通过2n个不同阈值电压电平所表示的2n个状态。对于每单元存储2个位的多级单元(mlc)nand闪速存储器,可存在四个电压阈值e、p1、p2和p3,以表示可编程到单元中的四个状态。三级单元(tlc)闪速存储器可采用八个阈值电压电平被编程。在某些实施例中,存储管芯控制器200i可组织存储单元以用于写入包括p个存储单元的存储单元组中。例如,对于组织为p的单元组的n位单元,每个单元组能够存储信息的m个位,其中m=log2(2np),以及每个存储单元组可表示2np个不同状态,其能够采用2np个不同电压电平组合被编程。单元页可组织为页块,其中使单元的状态恢复到e或擦除状态的擦除操作以块为基础来执行。

变换层1141、1142.....114n可接收要写入的信息的k个位的块,其少于存储单元组中的块的信息的m个位。更少的k个位可产生于压缩或者主机操作系统被编程为提供包括k个位的数据块。为了向纠错单元120提供关于差错位置的改进信息,变换层1141、1142....114n可将所接收的k个位映射到2np个状态的子集,其可在包括p个存储单元的存储单元组中编程。这样,可能的2np个状态分为有效和无效。如果在存储单元组中编程的位遭遇保持差错和泄漏,并且存储单元组中的存储单元的至少一个转变成更低阈值电平,则那个存储单元组可转变成无效状态。变换层1141、1142.....114n能够向纠错单元120提供关于映射到无效状态的位的信息,以用来校正所读取的无效状态的差错。

图2示出可包括在管理对存储管芯106i的组的写入的每个存储管芯控制器200i中的附加组件,包括输入/输出(i/o)逻辑202,其处理从其中访问和运行命令的命令队列(未示出)中来自所附连主机(未示出)的读/写入命令。i/o逻辑202保持存储管芯106i的多个可用页206的页池204以及具有关于配置成使用来自页池204的页206的装置页的信息的装置页信息300。具有每存储单元n个位的每个装置页可从页池204来指配n个页206以存储数据块。具有每存储单元2个位的mlcnand具有上和下页,三级单元(tlc)具有每存储单元三个位以及三个位的三个页。

图3示出存储n位存储单元的数据的数据页的装置页信息300i的实例,包括:装置页标识符302;页300i中存储的地址的地址范围304;下页标识符(id)306,其识别作为下页所分配以存储存储单元的一个位的页206之一;上页id308,用于存储存储单元的一个位,其中可存在分配给n位存储单元的装置页的n个页;以及状态映射310,其指示提供用来将所读取的数据映射到页306、308中实现的存储单元组的位转化函数的状态映射。

图3示出具有每存储单元2个位的mlcnand的上和下页。对于tlc,对于每存储单元的三个位存在三个页,以及对具有每存储单元n个位的nand,可存在n个页。页映射到存储管芯1061、1062...106n中的地址范围。

图4示出状态映射400i的实施例,包括状态映射4001、4002...400n之一,如包括:识别映射的状态映射id402;存储单元组中的存储单元的数量404(p);要写入到存储单元组中的存储单元的所接收块的位的数量406或k,其可少于存储单元组中的m个位的总数;用于存储单元组的每个单元的阈值电压的数量408,其中阈值电压的数量408可包括可供使用的总阈值电压的子集,其可包括阈值电压集合的最低阈值电压的子集;总状态的数量410,其可在包括2np的存储单元组中编程;以及位转化函数412,其可包括单元映射,以将k个所接收位406或k映射到使用每存储单元的阈值电压的数量408所编码的有效状态。映射可提供2k个有效状态和2np–2k个无效状态。如果使用少于全部阈值电压电平,则有效状态的数量包括2jp,其中j是所使用的阈值电压电平的数量,以及j少于2n,其中2n是实现n级单元所需的阈值电压电平的数量,n是可在每个单元中编程的位数。

例如,对于包括存储单元对(即p=2)的存储单元组,可在存储单元对组中存储的信息的可能状态或位的数量是信息的16个状态或4个位,其能够采用16个阈值电压电平组合被编程。如果所接收位的数量为k(例如3),则有效状态的数量为2k(例如23=8),即使对2个存储单元的存储单元组和4个阈值电压电平e、p1、p2、p3存在总共16个可能状态,从而允许一半有效和一半无效状态。

图5a示出实施例,其中存储单元组中的全部可能状态500可包括有效状态(“vs”)(例如,其中所读取位k的状态的总数为4,其等于可采用4个可用阈值电平(e、p1、p2、p3)被编程的可能状态的数量),其为16。如果最初在状态502或者p1和p3所编程的存储单元之一(例如单元1)遭遇保持差错和泄漏(这使状态单元1下降一个阈值电压电平以转变(504)到状态506),则位置差错不能通过读取存储单元组的单元1和单元0来确定,因为状态506是有效状态,尽管不是单元s0,1的最初编程状态的状态。这种情况下纠错单元120将使用附加奇偶校验位来检测和校正差错(包括错误存储单元的位置),以及通过执行正常纠错来校正在那个位置的值。

图5b和图5c示出其中存在可能状态的有效和无效状态的实施例。在图5b和图5c的实施例中,遭遇其存储单元0、1的任一个中的一个阈值电压电平的泄漏的编程在有效状态中的单元0、1的存储单元组转变成无效状态。这样,每个无效状态具有初始编程状态的有限数量的可能性。这极大地消除差错的搜索空间。利用所述实施例,在水平和垂直方向中存在任何2个有效状态之间的至少一个无效状态,这样如果在存储单元组的任何单元中存在按一个阈值电压电平的单元泄漏,则所产生泄漏的状态为无效状态。

图5b示出可能状态520的实施例,其中状态的一半为有效状态(“vs”),而另一半为无效状态(“is”)。如果最初在状态522或者p1,p3所编程的单元0、1的存储单元组中的存储单元之一遭遇泄漏,则单元1的状态将下降一个阈值电压电平,以转变(524)成状态526,其为无效状态。在读取具有无效状态526(p1,p2)的单元0和单元1的存储单元组时,那些位则能够标记为错误,以及纠错单元120能够与奇偶校验信息配合使用那个信息来校正数据。

图5c示出可能状态540的实施例,其中状态的四分之一为有效状态(“vs”),而其余为无效状态(“is”)。如果最初在状态542或者p1,p2所编程的存储单元之一(例如单元1)遭遇泄漏,则单元1的状态将下降一个阈值电压电平,以转变(544)成状态546(p1,p1)。如果存储单元组遭遇2个阈值电压电平的丢失,则图5c将允许差错利用所读取的数据被确定,因为在水平方向中存在状态之间的至少2个阈值电压电平。

当单元最可能遭遇仅一个阈值电压电平的泄漏时,图5b的实施例是最有用的。当泄漏能够是一个或二个阈值电压电平时,图5c的实施例可以是有用的,使得无效状态能够产生于2个阈值电压电平远的单元泄漏。例如,能够从来自状态542的2个阈值电压电平泄漏或者从来自状态548(p2,e)的2个单阈值电压电平泄漏来达到无效状态546(p1,p1)。

在某些实施例中,多个页提供在存储单元组中进行编码的位。在mlcnand中,二个页为每个存储单元提供位,其中一个页具有第一最高有效位(msb),而另一页具有另一个页的最低有效位(lsb),称作上页和下页。对于tlcnand,每个存储单元的3个位被写入到3个不同页。在mlcnand中,数据能在块处被一次擦除,以将存储单元设置为e阈值电压电平。一起写入整个页(通常1kb、2kb或4kb)。

图6a示出用于将通过多个页(上和下或者第一和第二页)所供应的k=3个信息位映射到存储单元对(i,j)的单元到位映射600的实施例,其中在存储单元组中存在2个存储单元(p=2),并且在单元(即,mlc存储单元)中存储有2个位。映射600可在位转化函数412中实现,其从映射600来确定要用来对所接收的k个位进行编程的阈值电压。映射600提供其中一半状态为有效而一半为无效的实施例,其中有效状态示出3个位的可能值,而无效状态示为空。第一列602a示出单元i的不同编程状态e、p1、p2和p3,以及第一行602b示出存储单元对的单元j的不同编程状态e、p1和p2。第二列604a和第二行604b示出每个存储单元的正常2位编码,其中第一位用于下页,而第二位用于上页。该表的单元格示出总共16个状态410和一半有效状态。此外,如同图5b中一样,图6a示出来自针对任何一个单元i、j的一个有效状态的一个阈值电压电平的泄漏将产生无效状态。列602a和行602b分别示出用于该对的第一(单元i)和第二(单元j)单元的阈值电压。

图6b示出基于映射600的真值表620,其示出电压列622a中的第一单元以及电压列622b中的第二单元的不同阈值电压电平、通过阈值电压622a、622b所编码的位列624中的完全4个位以及通过位列626a、626b中的电压列622a、622b中的阈值电压分别表示的3个位值的msb和lsb。真值表620仅提供3个位626a、626b的全部可能的8个状态到存储单元对i、j中的4个位624的16个可能状态中的映射。真值表620中对存储单元对的4个位624未示出的状态包括无效状态。

根据真值表620,在从传递缓冲器124中的页来选择要写入的3个位时,所接收的3个位的msb和lsb使用如列622a、622b中对列626a、626b中的所接收的3个位所示的3个阈值电压电平来编码。真值表620用来确定在列624的位中表示的来自存储单元对的所读取和解码的4个位状态如何映射到被写入到存储单元对的所接收的3个位626a、626b。

从存储单元对所读取的4个位可基于如下真值表620来转化成所接收的3个位,其中m0是msb位,b0、b1、b2、b3对应于从存储单元对所读取的4个位,l0是3个位的第一最低有效位,l1是第二最低有效位:

(1)m0=b1

(2)l0=b2

(3)l1=b3

此外,位b0能够被假定为奇偶校验位,以及所读取的4个位b0、b1、b2、b3可被xor以确定它们是无效状态还是有效状态,使得具有偶数奇偶性、即具有偶数个1的状态是有效的。

在其他实施例中,除了xor之外的逻辑表达或函数可应用于所解码位,以确定函数的结果指示所读取的4个位是包括有效状态还是无效状态。

因此,状态映射400i(其中块中的位的数量406为3,存储单元组中的存储单元的数量404为2,阈值电压的数量408为3,以及状态的总数410为16)中的位转化函数412实现图6a和图6b的映射600和真值表620,以便将所接收的k个位406映射到存储单元组中存储的m个位所表示的有效状态,并且然后把来自存储单元组的所读取的m个位映射到所接收的k个位,以在所读取的4个位为有效状态、例如具有奇数奇偶性时返回给主机。例如,为了把来自mlcnand单元的存储单元对(n=2)的4个位的所读取块映射到最初接收的3个位,上述3个转化函数(1)、(2)和(3)能够用来把来自存储单元对的所读取的4个位转化成所接收的3个位,以返回给请求主机。

图7a示出将从2个页所选取的k=2个信息位映射到存储单元对的单元到位映射700的实施例,其中在存储单元组中存在2个存储单元,并且有两个位被存储在单元(n=2)中,即mlc存储单元中。映射700提供其中状态的四分之一为有效而四分之三为无效的实施例,其中有效状态示出2个位的可能值,而无效状态示为空。第一列702a示出单元i的不同编程状态e和p1,以及第一行702b示出存储单元对的单元j的不同编程状态e和p1。第二列704a和第二行704b示出每个存储单元的正常2位编码,其中第一位用于下页,而第二位用于上页。该表的单元格示出要存储的所接收的2个位的4个可能状态,以及行和列示出要用于该对的第一(单元0)和第二(单元1)单元的阈值电压。

图7a中,有效状态为状态的总数的四分之一,并且配置使得任何2个有效状态之间的平均电压距离包括至少2个阈值电压电平。

图7b示出基于映射700的真值表720,其示出电压列722a中的第一单元以及电压列722b中的第二单元的不同阈值电压、通过阈值电压722a、722b所编码的位列624中的完全4个位以及通过位列726a、726b中的电压列722a、722b中的阈值电压分别表示的2个位值的msb和lsb。

根据真值表720,在接收要存储的2个位时,所接收的2个位的msb和lsb使用如列722a、722b中对列726a、726b中的所接收的2个位所示的阈值电压电平来编码。真值表720用来确定在列724的4个位中表示的来自存储单元对的所读取和解码的4个位状态如何映射到被写入到存储单元对的所接收的2个位726a、726b。

对于来自存储单元对的块所读取的4个位可基于如下真值表720来转化成2个位的所接收块,其中m0是msb位,b0、b1、b2、b3对应于从存储单元对所读取的4个位,l0是2个位的最低有效位:

(4)m0=b2

(5)l0=b0

所解码的4个位的无效状态可通过将所读取电压状态(b0,b1,b2,b3)与4个有效状态(例如(v==11,11)或(v==10,00)或(v==00,11)或者(v==01,00))进行比较来确定。这个比较可使用不同逻辑算子(例如and、or、xor等)来执行。

因此,状态映射400i(其中位的数量406为2,存储单元组中的存储单元的数量404为2,阈值电压的数量408为4,以及状态的数量410为16)中的位转化函数412实现图7a和图7b的映射700和真值表720,以便将所接收的2个位406映射到存储单元组中存储的4个位,并且然后把来自存储单元组的所读取的4个位映射到所接收的2个位以返回给主机。例如,为了把来自mlcnand单元的存储单元对(n=2)的所读取的4个位映射到最初接收的2个位,上述转化函数(4)和(5)能够用来把来自存储单元对的所读取的4个位转化成所接收的2个位,以返回给请求主机。

图8示出通过输入/输出(i/o)逻辑202和变换层114所执行、用于处理提供要写入到存储单元组的信息的k个位的块的传递缓冲器124中的页的操作的实施例,其中每个存储单元组存储信息的m个位,其中m>k。信息的k个位的所提供的页可包括由压缩单元112所压缩并且然后由加密单元118所加密的原始m个位的加密和压缩的数据。此外,页中的所提供的m个位的某些可包括由纠错单元120对纠错操作所生成的奇偶校验位。在处理(在框800)提供要写入到存储单元组的k个位的装置页300i中的多个页时,i/o逻辑202或变换层114i确定(在框802)要使用的状态映射400i。所确定状态映射400i可基于具有等于由于页中的每个所接收的写入的位数量k的位数量406的映射400i。备选地,存储器装置100可编程为使用编程的状态映射400i进行操作。i/o逻辑202选择(在框804)要写入的传递缓冲器124中的n个页,其中n个页为每个多级存储单元提供n个位,例如,2个页为mlcnand提供2个位,3个页为tlcnand提供3个位,等等。

对于所选择的n个页中的信息的k位的每个实例,操作循环在框806至816执行。在框808,变换层114从所选择的页中选择(在框808)有效位段(例如最高有效位(msb)、最低有效位(lsb)等),以形成要写入的信息的k位。选择(在框810)存储单元组,其包括第一所选择的存储单元组或者跟随所写入的前一存储单元组。变换层114i从单元映射(例如图6a、图6b、图7a、图7b)来确定(在框812)要用于存储单元组中的存储单元的每个以对所选择的k个位进行编程的来自下阈值电压电平的阈值电压电平。所选择的阈值电压可来自可用于存储单元的最低阈值电压电平的子集。变换层114i使用(在框814)所确定的阈值电压电平对于要编程的存储单元组中的存储单元进行编程。在对信息的m个位进行编程之前,加扰器单元1161、1162...116n可在写入之前对位进行加扰。

图9a和图9b提供用于在两个编程循环中将从2个页读取到2个存储单元的每个存储单元组的3个位进行编程的实施例。存储单元各自存储2个位(n=2),以及每个存储单元组包括存储单元对(p=2)。映射示出如何使用3个最低电压电平将所接收的3个位映射到存储4个位的存储单元。图9b中的箭头示出通过将一个或两个单元编程为电压p1、p2、p3之一以产生在水平或者垂直方向中在下一个阈值电压具有至少一个无效状态的有效状态而对状态的可准许电压电平改变。

图9a示出第一步骤是在第一编程循环期间将lsb的4个值之一编程为11、10、00或01,其在块擦除期间将已经被编程。在第一编程循环期间,该对的第一存储单元i没有被编程、编程为p1、p2、p3,以及该对的第二存储单元j能够编程为p1或p3。用第一编程循环,无效状态留在沿垂直方向的有效状态的每一对之间。

图9b示出第二编程步骤,用于通过如下方式将msb编程为1:通过不执行单元i,j的任一个的任何编程或者通过只将第二存储单元j编程为两个阈值电压电平,因此下一个有效状态是2个阈值电压电平远,沿水平方向在2个有效状态之间留下无效状态。图9b中的箭头的方向始终是从更低电压电平到更高电压电平,其在nand编程中是合法移动。

图10提供表,其示出存储单元对单元si,j如何在lsb首先被编程时在第一和第二编程循环期间基于图9a和图9b中所示的表映射对不同可能的3个位被编程。在将lsb首先写入到存储单元对之一时使用图10的编程。可提供与图10所示步骤不同的编程步骤以首先对lsb进行编程。

图11a和图11b提供用于在msb位首先编程到存储单元对时对存储单元组中的3个位的所接收块(例如,入读和写入单元)进行编程的实施例,其中存储单元各自存储2个位(n=2),并且每个存储单元组包括存储单元对(p=2)。图11b中的箭头示出通过采用在水平或者垂直方向中在任何2个有效状态之间留下无效状态的方式将一个或两个单元编程为可用的4个阈值电压电平p1、p2和p3而对图11a中的状态的可准许电压电平改变。

图11a示出无需施加电压以将msb编程为e阈值电压或“1”,其之前在块擦除期间原本已经被编程。在第一编程步骤期间,将该对的第一存储单元i和第二存储单元j编程为p2阈值电压将msb编程为“0”。

图11b示出第二编程步骤,用于通过将单元si,j设置为4个阈值电压电平e、p1、p2和p3其中之一来利用1的msb位对lsb位进行编程。无需施加电压以将lsb编程为e阈值电压,以在msb为“1”时编程“11”。图11b示出lsb在msb首先编程为“1”时通过下列步骤被编程:(1)将该对的第一单元0编程为p2阈值电压,以将lsb编程为“00”;(2)将第一存储单元0编程为p1并且将该对的第二存储单元j编程为p1阈值电压,以将lsb编程为“10”;以及(3)将第一单元0编程为p3并且将第二单元j编程为p1阈值电压,以将lsb编程为“01”。图11b还示出lsb在msb首先编程为“0”时通过下列步骤被编程:(1)将第一单元i编程为p2阈值,以将lsb编程为“00”;(2)将存储单元si,j编程为p3,以将lsb编程为“01”;以及(3)将该对的第一存储单元i编程为p1阈值电压并且将第二存储单元j编程为p3,以将lsb编程为“10”。

图12提供表,其示出存储单元对单元si,j如何在msb首先被编程时在第一和第二编程循环期间基于图11a、图11b和图11c所示的表映射对不同可能的3个输入位被编程。在执行图11a和图11b中的msb和lsb的写入时使用图12的编程,其中msb首先被编程。

图13a、图13b和图13c示出用于在其中每个存储单元包括2个存储单元(p=2)的存储单元对并且每个存储单元具有2个位(n=2)以及每个装置页300i被分配两个页、即下306和上308(例如对mlcnand的情况)的实施例中使用图9a、图9b、图9c、图10、图11a、图11b、图11c、图12中所示的映射来执行在框806和808的操作的不同实施例。

图13a示出当来自所选择的2个页(即上和下)的要写入的每个块的所接收位的数量406为3并且每个存储单元组为一对2个存储单元(n=2)时对存储单元对进行编程的操作的实施例。如所述,来自页的3个所选择的位可被压缩、加密,并且包括纠错码。在发起对所选择的上和下页的写入(在框1300)时,变换层114i对来自2个页的要写入的信息的每3个位执行在框1302至1326的操作的循环。在框1304,进行关于lsb或者一个msb被选择为对所写入的最后一个存储单元对首先编程的确定。如果(在框1304)lsb对前一存储单元对首先被编程,或者如果要编程的当前存储单元是第一个要编程的,则变换层114i(在框1306)从所选择的下页选择msb以及从上页选择2个lsb。用于对msb首先编程的映射(图11a、图12)用来(在框1308)确定存储单元对的每个存储单元的每个阈值电压正被编程。在对msb首先编程的第一编程循环中,该对的每个存储单元利用对于存储单元的所确定阈值电压被编程(在框1310)。变换层114i使用(在框1312)用于取决于编程的msb是1还是0对lsb其次编程(如图11b、图12中的)的映射来确定每个存储单元的每个阈值电压。在对2个lsb其次编程的第二编程循环中,变换层114i利用存储单元的所确定阈值电压对每个存储单元进行编程(在框1314)。

如果(在框1304)一个msb对前一存储单元对首先被编程,或者如果要编程的当前存储单元是第一个要编程的,则变换层114i选择(在框1316)从所选择的上页选择msb以及从下页选择2个lsb。用于对lsb首先编程的映射(图9a)用来(在框1318)确定存储单元的每个存储单元的每个阈值电压正被编程。在对lsb首先编程的第一编程循环中,该对的每个存储单元利用对于存储单元的所确定阈值电压被编程(在框1320)。变换层114i将使用(在框1322)取决于编程的lsb是“00”、“01”、“11”还是“10”对msb其次编程(如图9a、图9b、图10中)的映射来确定每个存储单元的每个阈值电压。在对一个msb其次编程的第二编程循环中,变换层114i利用存储单元的所确定阈值电压对每个存储单元进行编程(在框1324)。

图13b示出其中msb和lsb在存储单元组之间从下和上页交替选择以交替选择下306和上308页之间的第一msb位和2个lsb位的图13a的操作。例如,如图13b中所示,对于第一对存储单元s0,1,msb(m0)从下页306中选择而lsb从上页308中选择,并且然后在单元s2,3中,msb交替地从上页308中选择而lsb从下页306中选择。

图13c示出用于当存在要从2个页中选择的3个位时通过始终从下页306中选择msb位并且始终从上页308中选择2个lsb位来选择msb和lsb位的备选实施例。

要共同编程的页的选择(例如在图13a的步骤1300)可基于压缩之后的页大小(即,压缩比),例如以映射具有类似大小的2个页。图13b和图13c可用来映射具有二倍大小差的2个页。

图13d示出用于当写入存储单元组在半状态和四分之一状态之间进行切换以使得每隔一个存储单元组为半状态而每隔一个四分之一状态时选择msb和lsb位的备选实施例。

图13e示出当2个页提供要写入的2个位的块并且每个存储单元组是一对2个存储单元时以及其中所选择的页306或308的每个为每一个其他存储单元提供一个位时执行编程循环的操作的实施例。在发起(在框1350)写入时,变换层114i执行在框1352至1358的操作的循环,以变换每存储单元对的所接收的2个位。msb和lsb分别从下和上页中选择(在框1354)。用于对2个位(从每个页一个)进行编程的映射(图7a、图7b)用来(在框1356)从存储单元的每个中选择阈值电压电平,其中只有2个最低阈值电压电平需要用来对于只具有2个位的存储单元对的全部可能状态进行编程。

虽然图13a、图13b、图13c、图13d和图13e针对存储单元存储2个位(n=2)并且每个存储单元组包括存储单元对(p=2)的实施例来描述,但是更少数量的所接收的k个位到存储m个位的存储单元组的写入能够通过交替对其写入更少数量的msb位的页来扩展到其他大小存储单元组以及存储多于2个位的存储单元。交替对其写入k位的更少数量的msb位的页在页之间分布更少数量的msb位和更大数量的lsb,以提供对页的写入的磨损平衡。

图14示出由i/o逻辑202和/或变换层114i所执行以例如在每个块被存储在存储单元对中时读取存储单元组中的数据块的页的操作的实施例。在发起(在框1400)存储单元组的装置页300i的读操作时,i/o逻辑202确定(在框1402)要使用的状态映射400i,其可在要读取的页的装置页信息300i中指示,或者可从存储器存储装置100的操作模式来确定。来自装置页300i中的存储单元组的状态被读取(在框1404),例如存储单元组中的p个存储单元的每个的阈值电压电平。i/o逻辑202将由来自存储单元组中的p个单元的所读取的阈值电压电平所表示的所读取的状态进行解码(在框1406)。例如通过对所读取的m个位执行xor以确定它们具有奇数奇偶性还是偶数个1(其指示有效状态),来做出(在框1408)所读取的m个位是否处于有效状态的确定。

如果(在框1408)m个位是有效的,则变换层114i确定(在框1410)装置页300i的信息的所读取的m个位的位转化函数412,例如以上针对其中k=3个位以及k=2个位的存储单元对所述的转化函数(1)、(2)和(3)。变换层114i对所读取的页中的每个存储单元组应用(在框1412)所确定的转化函数,以将信息的所解码的m个位转化成信息的更少k个位的块,并且向请求数据页的主机返回(在框1414)k个位的块以及标记为错误的k个位的指示。在返回所转化的k(或3个位)时,变换层114i可在将位写入到上页和下页时交替写入对每个存储单元对所读取的msb和lsb。

如果(在框1408)m个位没有映射到状态映射400i中的有效状态,则m个位以及从其中转化的k个位被设置(在框1410)成缺省无效值(例如全0)。设置有缺省差错值的k个位随差错解码信息(例如单元组的位置、无效电压状态的值等)被返回(在框1418)。

图15示出由非易失性存储器存储装置100的组件(包括数据压缩单元112、数据加密单元118、纠错单元120、加扰器单元116i和控制器200i)所执行的用于处理信息的位的页以在存储管芯1061、1062...106n中存储的操作的实施例。在接收(在框1500)要在nand存储管芯1061、1062...106n中存储的数据页时,压缩单元112压缩(在框1502)所接收页以产生信息的压缩位的实例,并且发送给加密单元118。加密单元118加密(在框1504)页中的信息的压缩位,以产生信息的加密和压缩位。纠错单元120计算(在框1506)要随压缩/加密数据进行存储的奇偶校验信息(例如数据的纠错码),并且向控制器通道102输出页。具有奇偶校验信息的压缩/加密数据的页存储(在框1508)在传递缓冲器124中。存储管芯控制器200i和变换层114i选择(在框1510)装置页的页,以按照图13a、图13b、图13c、图13d和图13e的操作把来自所选择的页的k个位的实例转化成要存储在装置页的存储单元组中的信息的m个位,并且发送给加扰器单元116i。加扰器单元116i加扰(在框1510)装置页中的所转化m个位的实例,其然后被写入到存储管芯106i中的存储单元。

图16示出由非易失性存储器存储装置100的组件(包括数据压缩单元112、数据加密单元118、加扰器单元116i和控制器200i)所执行的用于处理从存储管芯1061、1062...106n所读取的数据的操作的实施例。在读取(在框1600)要从存储管芯106i中的存储单元对返回的数据页时,具有m个位的实例的页被发送(在框1602)给存储管芯106i的对应加扰器单元116i。加扰器单元106i对页中的m个位的实例进行解扰(在框1604),并且发送给转化层114i。转化层114i把来自页的所读取m个位的实例转化(在框1606)为k个位的实例,并且在按照图14的操作如果从无效状态被转化则将k个位标记为错误。i/o逻辑202将k个位的实例分布(在框1608)到与装置页500i关联的n个页。纠错单元120使用(在框1610)差错信息(包括关于具有无效状态的k个位的信息和奇偶校验码)来校正错误的k个位。纠错单元120可执行擦除校正,其包括关于遭遇差错/无效状态的已知位置或者存储单元组的纠错。加密单元118对每个页的纠错位进行解密(在框1612)以产生具有信息的压缩位的页,并且发送给压缩单元112。压缩单元112对页进行解压缩(在框1614),以产生要返回的解压缩页(在框1614)。

用图13a、图13e和图14的所述操作,因为所述实施例读取页边界上的全部存储单元的数据,所以变换层114i或i/o逻辑202通过写入到相同存储单元来使用正常页映射而无需特殊转化以管理页并且跟踪大小,而是将信息的所读取的m个位转化为由主机操作系统所提供的更少k个位的块。此外,所述实施例通过提供关于擦除信息或遭遇差错的位或存储单元的准确信息来改进纠错。

图17示出系统1700的实施例,其中存储器装置100可部署为系统存储器装置1708和/或存储装置1710。系统包括处理器1704,其通过总线1706与系统存储器装置1708(其中缓存所运行的程序、操作数和参数)和存储装置1710(其可包括固态驱动器(ssd),其存储可加载到系统存储器1708中以供执行的程序和用户数据)进行通信。处理器1704还可与输入/输出(i/o)装置1712a、1712b进行通信,i/o装置1712a、1712b可包括输入装置(例如键盘、触摸屏、鼠标等)、显示装置、图形卡、端口、网络接口等。存储器1708和存储装置1710可耦合到系统1700母板上的接口、安装在系统1700母板上或者部署在外部存储器装置中或者是通过网络可访问的。

应当理解,贯穿本说明书提到“一个实施例”或“实施例”表示结合该实施例所述的具体特征、结构或特性包括在本发明的至少一个实施例中。因此,要强调并且应当理解,在本说明书的各个部分两次或更多次提到“实施例”或“一个实施例”或“备选实施例”不一定全部表示同一实施例。此外,具体特征、结构或特性可在适当时结合在本发明的一个或多个实施例中。

本文所使用的参考字符(例如i、j、m、n和p)用来表示元件的实例的可变数量,其可表示相同或不同的值,并且在与不同的所述实例中的不同或相同元件一起使用时可表示相同或不同值。

类似地,应当理解,在本发明的实施例的以上描述中,为了简化本公开而帮助了解各个发明方面的一个或多个方面的目的,各种特征有时在单个实施例、附图或者其描述中集中在一起。然而,本公开的这种方法不应当被理解为反映要求保护的主题要求比各权利要求中明确描述的特征更多特征的意图。而是,如随附权利要求所反映的,发明方面在于少于单个以上所公开实施例的全部特征。因此,随附详细描述的权利要求书由此明确结合到本详细描述中。

示例

以下示例关于其他实施例。

示例1是一种用于对存储单元的状态进行编程以提供保持差错的差错位置信息的设备,包括:具有存储单元的非易失性存储器,其中每个存储单元使用多个阈值电压电平被编程具有信息,并且其中根据来自多个页的位来编程每个存储单元;以及存储器控制器,配置成对存储单元进行编程,并且配置成:将非易失性存储器中的存储单元组织为存储单元组,其中每个存储单元组存储信息的m个位,其中每个存储单元组中的每个存储单元利用多个阈值电压电平被编程;从页中选择要对一个存储单元组进行写入的k个位,其中k<m,并且k和m为大于零的整数;并且确定要用于存储单元组中的每个存储单元以在存储单元组中对所选择的k个位进行编程的一个阈值电压电平,其中各k个位利用定义多个有效状态之一的阈值电压电平被编程,其中对于任何2个有效状态中的存储单元组的存储单元的至少一个的阈值电压电平相差至少2个阈值电压电平。

在示例2中,示例1和3-11的主题可选地能够包括对于存储单元组中的存储单元的阈值电压电平能够对存储单元组的总数的状态进行编程,包括所选择的k个位被编程所处的有效状态以及所选择的k个位未被编程所处的无效状态。

在示例3中,示例1、2和4-11的主题可选地能够包括对于存储单元组中的存储单元的阈值电压电平定义有效状态和无效状态,使得遭遇一个阈值电压电平的泄漏的编程在任何有效状态中的存储单元组的存储单元转变成无效状态。

在示例4中,示例1-3和5-11的主题可选地能够包括有效状态为状态的总数的一半,并且配置使得如果编程到处于有效状态之一的存储单元组之一的存储单元中的k个位遭遇一个阈值电压电平的泄漏,则泄漏将导致表示k个位的存储单元转变成无效状态之一。

在示例5中,示例1-4和6-11的主题可选地能够包括有效状态为状态的总数的四分之一,并且配置使得任何2个有效状态之间的平均电压距离包括至少2个阈值电压电平。

在示例6中,示例1-5和7-11的主题可选地能够包括存储器控制器还:读取对于存储单元组之一中的存储单元的阈值电压电平;对所读取阈值电压电平进行解码,以得到所解码的m个位;确定所解码的m个位是否包括有效状态之一;将所解码的m个位转化成要返回的k个位;以及响应于确定所解码的m个位没有包括有效状态之一而将k个位标记为错误。

在示例7中,示例1-6和8-11的主题可选地能够包括确定所解码的m个位是否包括有效状态之一包括:对所解码的m个位执行逻辑函数,其中如果对所解码的m个位的逻辑函数的结果具有第一值则确定有效状态,并且其中如果对所解码的m个位的逻辑函数的结果具有第二值则确定无效状态。

在示例8中,示例1-7和9-11的主题可选地能够包括用于生成k个位的纠错信息的纠错单元,其中响应于确定所解码的m个位包括无效状态之一,存储器控制器还:将k个位设置成缺省差错值;并且向纠错单元提供关于具有无效状态之一的k个位的信息,以提供对k个位的纠错。

在示例9中,示例1-8和10-11的主题可选地能够包括存储器控制器还:基于将各可能k个位与有效状态关联的真值表来提供转化函数;并且使用转化函数将信息的所选择的k个位转化成要在存储单元组之一中进行编程的m个位,并且将来自存储单元组之一的信息的所读取的m个位转化成信息的k个位。

在示例10中,示例1-9和11的主题可选地能够包括存在信息的k个位的至少2个有效位段,其中从当前存储单元组的页中选择k个位包括从不同页中选择有效位段,所述有效位段对于前一存储单元组是从所述不同页被选择的。

在示例11中,示例1-10的主题可选地能够包括存储器控制器还:从存储单元组之一中读取信息的m个位;将信息的所读取的m个位转化成信息的所转化的k个位;以及对于每个存储单元组,将信息的所转化的k个位的有效位段交替写入到不同页,所述有效位段对于前一存储单元组是被写入到所述不同页的。

示例12是一种用于对存储单元的状态进行编程以提供保持差错的差错位置信息的系统,包括:处理器;总线,其中处理器耦合到总线;以及非易失性存储器,其具有:存储单元,其中每个存储单元使用多个阈值电压电平被编程具有信息,并且其中根据来自多个页的位来编程每个存储单元;以及存储器控制器,配置成对存储单元进行编程,并且配置成:将非易失性存储器中的存储单元组织为存储单元组,其中每个存储单元组存储信息的m个位,其中每个存储单元组中的每个存储单元利用多个阈值电压电平被编程;从页中选择要对一个存储单元组进行写入的k个位,其中k<m,并且其中k和m为大于零的整数;并且确定要用于存储单元组中的每个存储单元以在存储单元组中对所选择的k个位进行编程的一个阈值电压电平,其中各k个位利用定义多个有效状态之一的阈值电压电平被编程,其中对于任何2个有效状态中的存储单元组的存储单元的至少一个的阈值电压电平相差至少2个阈值电压电平。

在示例13中,示例12和14-18的主题可选地能够包括对于存储单元组中的存储单元的阈值电压电平能够对存储单元组的总数的状态进行编程,包括所选择的k个位被编程所处的有效状态以及所选择的k个位未被编程所处的无效状态。

在示例14中,示例12、13和15-18的主题可选地能够包括对于存储单元组中的存储单元的阈值电压电平定义有效状态和无效状态,使得遭遇一个阈值电压电平的泄漏的编程在任何有效状态中的存储单元组的存储单元转变成无效状态。

在示例15中,示例12-14和16-18的主题可选地能够包括有效状态为状态的总数的一半,并且配置使得如果编程到处于有效状态之一的存储单元组之一的存储单元中的k个位遭遇一个阈值电压电平的泄漏,则泄漏将导致表示k个位的存储单元转变成无效状态之一。

在示例16中,示例12-15和17-18的主题可选地能够包括存储器控制器还:读取对于存储单元组之一中的存储单元的阈值电压电平;对所读取阈值电压电平进行解码,以得到所解码的m个位;确定所解码的m个位是否包括有效状态之一;将所解码的m个位转化成要返回的k个位;以及响应于确定所解码的m个位没有包括有效状态之一而将k个位标记为错误。

在示例17中,示例12-16和18的主题可选地能够包括确定所解码的m个位是否包括有效状态之一包括:对所解码的m个位执行逻辑函数,其中如果对所解码的m个位的逻辑函数的结果具有第一值则确定有效状态,并且其中如果对所解码的m个位的逻辑函数的结果具有第二值则确定无效状态。

在示例18中,示例12-17的主题可选地能够包括生成k个位的纠错信息的纠错单元,其中响应于确定所解码的m个位包括无效状态之一,存储器控制器还:将k个位设置成缺省差错值;以及向纠错单元提供关于具有无效状态之一的k个位的信息,以提供对k个位的纠错。

示例19是一种用于对非易失性存储器中的存储单元的状态进行编程以提供保持差错的差错位置信息的方法,包括:对非易失性存储器中的存储单元进行编程,其中每个存储单元使用多个阈值电压电平被编程具有信息,并且其中根据来自多个页的位来编程每个存储单元;将非易失性存储器中的存储单元组织为存储单元组,其中每个存储单元组存储信息的m个位,每个存储单元组中的每个存储单元利用多个阈值电压电平被编程;从页中选择要对一个存储单元组进行写入的k个位,其中k<m,并且其中k和m为大于零的整数;并且确定要用于存储单元组中的每个存储单元以在存储单元组中对所选择的k个位进行编程的一个阈值电压电平,其中各k个位利用定义多个有效状态之一的阈值电压电平被编程,其中对于任何2个有效状态中的存储单元组的存储单元的至少一个的阈值电压电平相差至少2个阈值电压电平。

在示例20中,示例19和21-25的主题可选地能够包括对于存储单元组中的存储单元的阈值电压电平能够对存储单元组的总数的状态进行编程,包括所选择的k个位被编程所处的有效状态以及所选择的k个位未被编程所处的无效状态。

在示例21中,示例19、20和22-25的主题可选地能够包括对于存储单元组中的存储单元的阈值电压电平定义有效状态和无效状态,使得遭遇一个阈值电压电平的泄漏的编程在任何有效状态中的存储单元组的存储单元将转变成无效状态。

在示例22中,示例19-21和23-25的主题可选地能够包括有效状态为状态的总数的一半,并且配置使得如果编程到处于有效状态之一的存储单元组之一的存储单元中的k个位遭遇一个阈值电压电平的泄漏,则泄漏将导致表示k个位的存储单元转变成无效状态之一。

在示例23中,示例19-22和24-25的主题可选地能够包括:读取存储单元组之一中的存储单元的阈值电压电平;对所读取阈值电压电平进行解码,以得到所解码的m个位;确定所解码的m个位是否包括有效状态之一;将所解码的m个位转化成要返回的k个位;以及响应于确定所解码的m个位没有包括有效状态之一而将k个位标记为错误。

在示例24中,示例19-23和25的主题可选地能够包括确定所解码的m个位是否包括有效状态之一包括:对所解码的m个位执行逻辑函数,其中如果对所解码的m个位的逻辑函数的结果具有第一值则确定有效状态,并且其中如果对所解码的m个位的逻辑函数的结果具有第二值则确定无效状态。

在示例25中,示例19-24的主题可选地能够包括生成k个位的纠错信息,其中响应于确定所解码的m个位包括无效状态之一,还包括:将k个位设置成缺省差错值;并且向纠错单元提供关于具有无效状态之一的k个位的信息,以提供对k个位的纠错。

在示例26中,示例19的主题可选地能够包括下列至少任一个:

(1)其中存储单元组中的存储单元的阈值电压电平能够对存储单元组的总数的状态进行编程,包括所选择的k个位被编程所处的有效状态以及所选择的k个位未被编程所处的无效状态;和/或

(2)其中对于存储单元组中的存储单元的阈值电压电平定义有效状态和无效状态,使得遭遇一个阈值电压电平的泄漏的编程在任何有效状态中的存储单元组的存储单元转变成无效状态;和/或

(3)其中有效状态为状态的总数的一半,并且配置使得如果编程到处于有效状态之一的存储单元组之一的存储单元中的k个位遭遇一个阈值电压电平的泄漏,则泄漏将导致表示k个位的存储单元转变成无效状态之一;和/或

(4)其中有效状态为状态的总数的四分之一,并且配置使得任何2个有效状态之间的平均电压距离包括至少2个阈值电压电平;和/或

(5)读取对于存储单元组之一中的存储单元的阈值电压电平;对所读取阈值电压电平进行解码,以得到所解码的m个位;确定所解码的m个位是否包括有效状态之一;将所解码的m个位转化成要返回的k个位;以及响应于确定所解码的m个位没有包括有效状态之一而将k个位标记为错误;和/或

(6)其中确定所解码的m个位是否包括有效状态之一包括:对所解码的m个位执行逻辑函数,其中如果对所解码的m个位的逻辑函数的结果具有第一值则确定有效状态,并且其中如果对所解码的m个位的逻辑函数的结果具有第二值则确定无效状态。

(7)由纠错单元来生成k个位的纠错信息,其中响应于确定所解码的m个位包括无效状态之一,将k个位设置成缺省差错值,并且向纠错单元提供关于具有无效状态之一的k个位的信息,以提供对k个位的纠错;和/或

(8)基于将各可能k个位与有效状态关联的真值表来提供转化函数;并且使用转化函数将信息的所选择的k个位转化成要在存储单元组之一中进行编程的m个位,并且将来自存储单元组之一的信息的所读取的m个位转化成信息的k个位;和/或

(9)其中存在信息的k个位的至少2个有效位段,其中从当前存储单元组的页中选择k个位包括从不同页中选择有效位段,所述有效位段对于前一存储单元组是从所述不同页被选择的;和/或

(10)从存储单元组之一中读取信息的m个位;将信息的所读取的m个位转化成信息的所转化的k个位;以及对于每个存储单元组,将信息的所转化的k个位的有效位段交替写入到不同页,所述有效位段对于前一存储单元组是被写入到所述不同页的。

示例27是一种用于对非易失性存储器中的存储单元的状态进行编程以提供保持差错的差错位置信息的设备,包括:用于对非易失性存储器中的存储单元进行编程的部件,其中每个存储单元使用多个阈值电压电平被编程具有信息,并且其中根据来自多个页的位来编程每个存储单元;用于将非易失性存储器中的存储单元组织为存储单元组的部件,其中每个存储单元组存储信息的m个位,其中每个存储单元组中的每个存储单元利用多个阈值电压电平被编程;用于从页中选择要对一个存储单元组进行写入的k个位的部件,其中k<m,并且其中k和m为大于零的整数;以及用于确定要用于存储单元组中的每个存储单元以在存储单元组中对所选择的k个位进行编程的一个阈值电压电平的部件,其中各k个位利用定义多个有效状态之一的阈值电压电平被编程,其中对于任何2个有效状态中的存储单元组的存储单元的至少一个的阈值电压电平相差至少2个阈值电压电平。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1