首页 / 国际专利分类库 / 电学 / 基本电子电路 / 存储器编程状态与数据模式之间的映射方法

存储器编程状态与数据模式之间的映射方法

申请号 CN201380019766.8 申请日 2013-04-11 公开(公告)号 CN104364773B 公开(公告)日 2017-08-29
申请人 美光科技公司; 发明人 西瓦格纳纳穆·帕塔萨拉蒂; 帕特里克·R·哈亚特; 穆斯塔法·N·凯纳克; 沈震雷;
摘要 本 发明 包含用于编程状态与数据模式之间的映射的方法及设备。一种方法包含:编程G个 存储器 单元的群组使得所述群组的相应编程状态的组合映射到对应于所接收N单位数据模式的 星座 点,所述群组用于每存储器单元存储N/G个数据单位;其中所述星座点为与将所述存储器单元群组的相应编程状态组合映射到N单位数据模式相关联的星座图的一定数目个星座点中的一者;且其中所述星座图包括第一映射壳体及第二映射壳体,对应于所述相应第一及第二映射壳体的所述星座点至少部分地基于等于G的阶的多项式表达式而确定。
权利要求

1.一种用于操作存储器(110-1、…、110-M)的方法,其包括:
编程G个存储器单元的群组使得所述群组的相应编程状态的组合映射到对应于所接收N单位数据模式的星座点,所述群组用于每存储器单元存储N/G个数据单位;
其中所述星座点为与将所述存储器单元群组的相应编程状态组合映射到N单位数据模式相关联的星座图(450)的一定数目个星座点中的一者;
其中所述星座图(450)包括第一映射壳体(460-1;560-1;660-1、760-1)及第二映射壳体(460-2;560-2;660-2;760-2),对应于所述第一映射壳体及所述第二映射壳体的所述星座点至少部分地基于等于G的阶的多项式表达式而确定;
其中所述多项式表达式为(A+B)G,其中AG为所述第一映射壳体(460-1;560-1;660-1、
760-1)的星座点的数量,且G×A(G-1)×B为所述第二映射壳体(460-2;560-2;660-2;760-2)的星座点的数量;及
其中A为根据其确定对应于所述第一映射壳体(460-1;560-1;660-1、760-1)的所述相应编程状态组合的编程状态的数量,且B为根据其确定对应于所述第二映射壳体(460-2;
560-2;660-2;760-2)的所述相应编程状态组合的额外编程状态的数量。
2.根据权利要求1所述的方法,其中所述第一映射壳体(460-1;560-1;660-1、760-1)包括仅对应于不包含所述存储器单元群组可编程到的L个编程状态中的至少一者的编程状态组合的星座点,L为所述群组的每存储器单元存储N/G个数据单位所需的编程状态的最小数目。
3.根据权利要求2所述的方法,其中所述L个编程状态中的所述至少一者对应于具有与其相关联的最高阈值电压Vt的编程状态。
4.根据权利要求2所述的方法,其中所述第二映射壳体(460-2;560-2;660-2;760-2)包括对应于包含所述L个编程状态中的所述至少一者的编程状态组合的一定数目个星座点。
5.根据权利要求2所述的方法,其中N/G为小数数目。
6.根据权利要求1所述的方法,其中:
所接收N单位数据模式为N位数据模式;
N/G为每存储器单元的位的小数数目;
对应于小于AG的二进制值的二进制值的那些N位数据模式映射到对应于所述第一映射壳体(460-1;560-1;660-1、760-1)的编程状态组合;且
对应于大于或等于AG的所述二进制值的二进制值的那些N位数据模式映射到对应于所述第二映射壳体(460-2;560-2;660-2;760-2)的编程状态组合。
7.一种用于操作存储器(110-1、…、110-M)的方法,其包括:
接收待存储于G个存储器单元的群组中的N单位数据模式,其中所述N单位数据模式为一定数目个N单位数据模式中的所述G个存储器单元的编程状态的组合映射到的一者;及将所述群组的每一存储器单元编程到L个编程状态中的相应一者使得所述群组的所述编程状态的组合映射到所接收N单位数据模式,其中L为用于每存储器单元存储N/G个数据单位的编程状态的数目;
其中使用至少部分地基于等于G的阶的多项式表达式的映射来确定所述群组的所述存储器单元被编程到而使得所述群组的所述编程状态的所述组合映射到所接收N单位数据模式的相应编程状态,所述多项式表达式的第一项对应于第一映射壳体且所述多项式表达式的第二项对应于第二映射壳体(460-2;560-2;660-2;760-2);
其中所述多项式表达式的所述第一项为AG,其中AG为所述第一映射壳体(460-1;560-1;
660-1、760-1)的星座点的数量,且其中A为对应于所述第一映射壳体(460-1;560-1;660-1、
760-1)的所述AG个星座点的所述L个编程状态的数量;且
其中所述多项式表达式的所述第二项为G×A(G-1)×B,其中G×A(G-1)×B为所述第二映射壳体的星座点的数量,且其中B为对应于所述第二映射壳体(460-2;560-2;660-2;760-2)的所述G×A(G-1)×B个星座点的所述L个编程状态的额外数量。
8.根据权利要求7所述的方法,其中所述第一映射壳体(460-1;560-1;660-1、760-1)的所述AG个星座点中的每一者对应于所述数目个N位数据模式中的不同N单位数据模式。
9.根据权利要求8所述的方法,其中所述第一映射壳体(460-1;560-1;660-1、760-1)的所述星座点中的任一者均不对应于包括所述L个编程状态中的至少一者的编程状态组合。
10.根据权利要求9所述的方法,其中:
所述第一映射壳体(460-1;560-1;660-1、760-1)的所述AG个星座点对应于所述数目个N单位数据模式中的具有小于AG的二进制值的二进制值的数据模式;且
所述第二映射壳体(460-2;560-2;660-2;760-2)的所述G×A(G-1)×B个星座点对应于所G
述数目个N单位数据模式中的具有大于或等于A的所述二进制值的二进制值的数据模式。
11.根据权利要求10所述的方法,其中如果所接收N单位数据模式具有大于或等于AG的所述二进制值的二进制值,那么所接收N单位数据模式的一或多个单位确定所述群组的所述存储器单元中的哪一者被编程到所述L个编程状态中的至少一者。
12.根据权利要求7到11中任一权利要求所述的方法,其中A等于2a,其中“a”为某一值使得2a为小于L的2的最高幂值。
13.一种用于操作存储器(110-1、…、110-M)的方法,其包括:
确定各自编程到L个编程状态中的一者的G个存储器单元的群组的每一存储器单元的编程状态,其中所述群组的各个所确定编程状态的组合映射到一定数目个N单位数据模式中的一个N单位数据模式;及
至少部分地基于包括第一映射壳体(460-1;560-1;660-1、760-1)及第二映射壳体(460-2;560-2;660-2;760-2)的映射星座图(450)而确定所述数目个N单位数据模式中的各个所确定编程状态的所述组合所对应的所述一个N单位数据模式,所述第一映射壳体及所述第二映射壳体由阶G的多项式表达式定义;
其中所述群组的每一存储器单元为小数位存储器单元,且其中所述多项式表达式为(A+B)G,其中所述多项式表达式的第一项为AG,其中AG为所述第一映射壳体(460-1;560-1;
660-1、760-1)的星座点的数量,且所述多项式表达式的第二项为G×A(G-1)×B,其中G×A(G-1)
×B为所述第二映射壳体(460-2;560-2;660-2;760-2)的星座点的数量;及其中A为根据其确定对应于所述第一映射壳体(460-1;560-1;660-1、760-1)的相应编程状态组合的编程状态的数量,且B为根据其确定对应于所述第二映射壳体(460-2;560-2;
660-2;760-2)的相应编程状态组合的额外编程状态的数量。
14.一种存储器,其包括:
数据打包组件(112),其耦合到存储器单元阵列且经配置以:
将2N个数据模式映射到各自可编程到L个编程状态中的一者且用于每存储器单元存储N/G个数据单位的G个存储器单元的群组的2N个编程状态组合;且
其中所述数据模式与编程状态组合之间的映射(346)至少包含对应于仅包括第一数量A的所述L个编程状态的编程状态组合的星座映射点的第一壳体(460-1;560-1;660-1、760-
1)及仅对应于包括所述L个编程状态中的除所述A个编程状态之外的至少一者的编程状态组合的星座映射点的第二壳体(460-2;560-2;660-2;760-2);
其中所述第一壳体(460-1;560-1;660-1、760-1)的星座映射点的数量是基于多项式表达式(A+B)G的第一项而确定使得AG为所述第一壳体(460-1;560-1;660-1、760-1)的星座映射点的所述数量;且
其中所述第二壳体(460-2;560-2;660-2;760-2)的星座映射点的数量是基于所述多项式表达式的第二项而确定使得G×A(G-1)×B为所述第二壳体(460-2;560-2;660-2;760-2)的星座点的所述数量,其中B为等于L-A的编程状态数量。
15.根据权利要求14所述的存储器,其中所述编程状态组合与所述数据模式之间的所述2N个映射的一半对应于所述第一壳体(460-1;560-1;660-1、760-1)。
16.根据权利要求15所述的存储器,其中所述编程状态组合与所述数据模式之间的所述2N个映射的一半对应于所述第二壳体(460-2;560-2;660-2;760-2)。
17.一种存储器,其包括:
存储器单元阵列,每一存储器单元可编程到L个编程状态中的相应一者;及控制器(108),其耦合到所述阵列且经配置以控制一方法,所述方法经执行以:
接收待作为N单位数据模式存储于G个存储器单元的群组中的数据,其中所述N单位数据模式为一定数目个N单位数据模式中的所述G个存储器单元的编程状态组合映射到的一者;及
将所述群组的每一存储器单元编程到所述L个编程状态中的相应一者使得所述群组的所述编程状态的组合映射到所接收N单位数据模式;
其中使用至少部分地基于等于G的阶的多项式表达式的映射来确定所述群组的所述存储器单元被编程到而使得所述群组的所述编程状态的所述组合映射到所接收N单位数据模式的相应编程状态,所述多项式表达式的第一项对应于第一映射壳体且所述多项式表达式的第二项对应于第二映射壳体(460-2;560-2;660-2;760-2);
其中所述多项式表达式的所述第一项为AG,其中AG为所述第一映射壳体(460-1;560-1;
660-1、760-1)的星座点的数量,且其中A为对应于所述第一映射壳体(460-1;560-1;660-1、
760-1)的所述AG个星座点的所述L个编程状态的数量;且
其中所述多项式表达式的所述第二项为G×A(G-1)×B,其中G×A(G-1)×B为所述第二映射壳体的星座点的数量,且其中B为对应于所述第二映射壳体(460-2;560-2;660-2;760-2)的(G-1)
所述G×A ×B个星座点的所述L个编程状态的额外数量。
18.根据权利要求17所述的存储器,其中所述映射指示所述第二映射壳体(460-2;560-
2;660-2;760-2)的星座点的交换单元。
19.根据权利要求17或18所述的存储器,其中对应于所述第一映射壳体(460-1;560-1;
660-1、760-1)的映射为系统性的,且对应于所述第二映射壳体(460-2;560-2;660-2;760-
2)的映射为近系统性的。
20.根据权利要求17或18所述的存储器,其中所述控制器(108)经配置以在不对所接收数据执行代码扩展的情况下控制所述方法的执行。

说明书全文

存储器编程状态与数据模式之间的映射方法

技术领域

[0001] 本发明大体来说涉及半导体存储器及方法,且更特定来说涉及编程状态与数据模式之间的映射。

背景技术

[0002] 存储器装置通常经提供作为计算机或其它电子装置中的内部半导体集成电路。存在包含易失性及非易失性存储器的许多不同类型的存储器。易失性存储器可需要电来维持其数据(例如,信息)且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)以及其它存储器。非易失性存储器可通过在未供电时保持所存储数据而提供持久数据且可包含NAND快闪存储器、NOR快闪存储器、静态随机存取存储器(SRAM)、电阻可变存储器,例如相变随机存取存储器(PCRAM)及电阻随机存取存储器(RRAM)以及磁性随机存取存储器(MRAM),例如自旋扭矩转移随机存取存储器(STT RAM)以及其它。
[0003] 可将存储器装置组合在一起以形成固态驱动器(SSD)。固态驱动器可包含非易失性存储器,例如NAND快闪存储器及/或NOR快闪存储器,及/或可包含易失性存储器,例如DRAM,以及各种其它类型的非易失性及易失性存储器。包含浮动栅极快闪装置及电荷陷阱快闪(CTF)装置的快闪存储器装置可包括具有用于存储电荷的存储节点(例如,浮动栅极或电荷陷获结构)的存储器单元且可用作用于各种各样的电子应用的非易失性存储器。
[0004] 存储器单元可布置成阵列架构且可被编程到所要状态。举例来说,可将电荷置于存储器单元的存储节点(例如,浮动栅极)上或从所述存储节点移除电荷来将所述单元置于一定数目个编程状态中的一者中。作为一实例,可将单电平单元(SLC)编程到可表示所存储数据单位(例如,二进制单位1或0)的两个编程状态中的一者中。可将各种快闪存储器单元编程到两个以上编程状态,其可表示多个所存储数据单位(例如,二进制单位1111、0111、0011、1011、1001、0001、0101、1101、1100、0100、0000、1000、1010、0010、0110或1110)。此类存储器单元可称为多状态单元、多单位单元或多电平单元 (MLC)。MLC可允许在不增加存储器单元的数目的情况下制造较高密度存储器,因为每一单元可表示一个以上数字(例如,一个以上位)。
[0005] 可将一些MLC编程到不对应于整数数目个所存储数据单位的一定数量(L)个编程状态。也就是说,能够存储于一单元中的数据单位的数目(Log2(L))可对应于小数数目个所存储数据单位(例如,小数数目个位)。附图说明
[0006] 图1是根据本发明的一定数目个实施例呈包含至少一个存储器系统的计算系统的形式的设备的框图
[0007] 图2是图解说明根据本发明的一定数目个实施例对应于可编程到不同数目个编程状态的存储器单元的编程状态的阈值电压的图式。
[0008] 图3是根据本发明的一定数目个实施例在数据模式与编程状态之间的映射的方法的功能框图。
[0009] 图4A图解说明根据本发明的一定数目个实施例包含具有第一及第二映射壳体且与数据模式与编程状态之间的映射相关联的图式。
[0010] 图4B-4C图解说明根据本发明的一定数目个实施例在数据模式与编程状态之间的映射。图4B-4C中所展示的实例支持在两个单元内的二维(2D)映射。
[0011] 图5A-5B图解说明根据本发明的一定数目个实施例在数据模式与编程状态之间的映射。图5A-5B中所展示的实例支持在四个单元内的四维(4D)映射。
[0012] 图6A-6B图解说明根据本发明的一定数目个实施例在数据模式与编程状态之间的映射。
[0013] 图7A-7B图解说明根据本发明的一定数目个实施例在数据模式与编程状态之间的映射。图7A-7B中所展示的实例支持在八个单元内的八维(8D)映射。

具体实施方式

[0014] 本发明包含用于编程状态与数据模式之间的映射的方法及设备。一种方法包含:编程G个存储器单元的群组使得所述群组的相应编程状态的组合映射到对应于所接收N单位数据模式的星座点,所述群组用于每存储器单元存储N/G个数据单位;其中所述星座点为与将所述存储器单元群组的相应编程状态组合映射到N单位数据模式相关联的星座图的一定数目个星座点中的一者;且其中所述星座图包括第一映射壳体及第二映射 壳体,对应于所述相应第一及第二映射壳体的所述星座点至少部分地基于等于G的阶的多项式表达式而确定。
[0015] 例如,本发明的实施例可结合每单元小数单位(每单元小数位)配置而提供编程状态到数据模式的实质上系统性映射(例如,指派)且反之亦然。与先前的每单元小数位映射算法相比,实施例可限制可能负面地影响错误检测及/或校正系统(例如,采用例如低密度奇偶校验(LDPC)码及汉明码以及其它码的错误校正码(ECC)的系统)的错误倍增及/或传播。实施例还可提供例如在不像一定数目个先前方法(例如,可产生额外奇偶的基本转换映射)中一样添加冗余性且不采用代码扩展的情况下提供有效每单元小数位映射以及各种其它益处的益处。
[0016] 在本发明的以下详细描述中,参考形成本发明的一部分的附图,且附图中以图解说明的方式展示可如何实践本发明的一定数目个实施例。充分详细地描述这些实施例旨在使所属领域的技术人员能够实践本发明的实施例,且应理解,可利用其它实施例且可做出过程、电及/或结构改变,而不背离本发明的范围。如本文中所使用,标示符“M”、“N”、“n”、“A”、“B”、“G”及“L”(特别相对于图式中的参考编号)指示本发明的一定数目个实施例可包含如此标示的一定数目个特定特征。如本文中所使用,“一定数目个”某物可指代一或多个此种事物。
[0017] 本文中的图遵循其中第一个数字或前几个数字对应于图式的图编号且剩余数字识别图式中的元件或组件的编号惯例。不同图之间的类似元件或组件可通过使用类似数字来识别。举例来说,100可在图1中指代元件“00”,且类似元件在图5中可指代为500。如将了解,可添加、交换及/或消除本文中的各种实施例中所展示的元件以便提供本发明的一定数目个额外实施例。另外,将了解,图中所提供的元件的比例及相对标度既定图解说明本发明的实施例且不应视为具有限制意义。
[0018] 图1是根据本发明的一定数目个实施例呈包含至少一个存储器系统104的计算系统101的形式的设备的框图。如本文中所使用,存储器系统104、控制器108或存储器装置110也可单独地视为“设备”。存储器系统104可为(例如)固态驱动器(SSD),且可包含主机接口106、控制器108(例如,处理器及/或其它控制电路)及为存储器系统104提供存储卷的一定数目个存储器装置110-1、…、110-M(例如,固态存储器装置,例如NAND快闪装置)。在一定数目个实施例中,控制器108、存储器装置110-1到110-M及/或主机接口106可在物理上位于单个裸片上或单个封装内(例如,受管理NAND应用)。而且,在一定数目个实施例中,存储器(例如,存储器装置110-1到110-M)可包含单个存储器装置。
[0019] 如图1中所图解说明,控制器108可耦合到主机接口106且经由多个通道耦合到存储器装置110-1、…、110-M,且可用于在存储器系统104与主机102之间传送数据。接口106可呈标准化接口的形式。举例来说,当存储器系统104用于计算系统100中的数据存储时,接口106可为串行高级技术附件(SATA)、高速外围组件互连(PCIe)或通用串行总线(USB)以及其它连接器及接口。然而,一般来说,接口106可提供用于在存储器系统104与主机102之间传递控制、地址、数据及其它信号的接口,主机102具有用于接口106的兼容接纳器。
[0020] 主机102可为主机系统,例如个人膝上型计算机、桌上型计算机、数码相机移动电话或存储器读卡器以及各种其它类型的主机。主机102可包含系统母板及/或背板,且可包含一定数目个存储器存取装置(例如,一定数目个处理器)。
[0021] 控制器108可与存储器装置110-1、…、110-M通信以控制数据读取、写入及擦除数据以及其它操作。控制器108可包含(举例来说)呈用于控制对所述数目个存储器装置110-1、…、110-M的存取及/或用于促进主机102与存储器装置110-1、…、110-M之间的数据传送的硬件及/或固件(例如,一或多个集成电路)及/或软件的形式的一定数目个组件。例如,在图1中所图解说明的实例中,控制器108包含数据打包器/解包器组件112及错误译码/解码组件114。然而,控制器108可包含未图解说明以便不使本发明的实施例模糊的各种其它组件。而且,在一些实施例中,组件112及/或114可并非控制器108的组件(例如,组件112及/或
114可为独立组件)。
[0022] 根据本文中所描述的一定数目个实施例,可结合存储器单元编程状态与数据之间的映射而使用数据打包器/解包器组件112。错误译码/解码组件114可为LDPC编码器/解码器,例如,其可编码/解码在主机102与存储器装置110-1、…、110-M之间传送的用户数据。
[0023] 存储器装置110-1、…、110-M可包含一定数目个存储器单元阵列。举例来说,所述阵列可为具有NAND架构的快闪阵列。然而,实施例并不限于特定类型的存储器阵列或阵列架构。例如,存储器单元可分组成包含一定数目个物理页的一定数目个。一存储器单元平面中可包含一定数目个块,且一阵列可包含一定数目个平面。作为一个实例,存储器装置可经配置以存储每页8KB(千字节)的用户数据、每块128页的用户数据、每平面2048个块及每装置16个平面。
[0024] 在其中存储器装置110-1、…、110-M包括具有NAND架构的快闪阵列的实施例中,所述阵列可包括存取线(例如,字线)及相交的数据线(例如,位线)。所述阵列可包括存储器单元“串”,其源极到漏极地串联连接于经配置以将相应串选择性地耦合到共用源极 的源极选择栅极与经配置以将相应串选择性地耦合到相应位线的漏极选择栅极之间。所述存储器单元可包括(例如)源极、漏极、电荷存储节点(例如,浮动栅极)及控制栅极,其中对应于一“行”单元的单元控制栅极共同耦合到一字线。将类似地结构化NOR快闪阵列,其中存储器单元串并联耦合于选择栅极之间除外。
[0025] 如所属领域的技术人员将了解,可将耦合到选定字线的快闪单元群组一起作为存储器单元页来编程及/或读取。编程操作(例如,写入操作)可包含将一定数目个编程脉冲(例如,16V到20V)施加到选定字线以便将耦合到所述选定字线的选定单元的阈值电压(Vt)增加到对应于目标(例如,所要)编程状态的所要Vt电平。读取操作可包含感测耦合到选定单元的位线的电压及/或电流改变(例如,响应于施加到对应于所述单元的字线的读取电压)以便确定选定单元的编程状态。
[0026] 如本文中进一步描述,在本发明的一定数目个实施例中,可将存储器单元编程到对应于整数数目个所存储数据单位(例如,位)或小数数目个所存储数据单位的一定数量个编程状态中的一者。在一定数目个实施例中,可组合各自存储小数数目个位的单元的群组的一定数目个单元的编程状态使得所述单元群组存储整数数目个位。例如,考虑各自经编程到五个编程状态中的一者的单元的群组,使得每一单元可存储2.25个位。在此实例中,四个单元的群组的经组合编程状态对应于9个位(2.25位/单元×4单元)。也就是说,可将9位数据模式存储于四个单元的所述群组中。如此,控制器108可控制编程及/或读取每单元各自存储小数数目个位的单元的群组且可输出(例如,向主机102)存储于所述群组中的N单位数据模式,其中N为数据单位(例如,位)的整数数目。根据本文中所描述的一定数目个实施例,可基于映射算法而确定群组的所确定编程状态的组合所对应的特定数据模式(例如,位模式)。
[0027] 图2是图解说明根据本发明的一定数目个实施例对应于可编程到不同数目个编程状态的存储器单元的编程状态的阈值电压的图式216。所述存储器单元可为如上文所描述的NAND快闪存储器单元且可经编程到在约-2V到+3V的电压范围内的各种Vt电平;然而,实施例并不限于特定类型的存储器单元或特定操作电压范围。
[0028] 行218指示存储器单元可被编程到的编程状态的数量。图2中所展示的编程状态被标示为L0、L1、L2等等,其中每一编程状态表示对应于相应编程状态的Vt电平分布。在一定数目个实施例中,编程状态L0可为最低编程状态(例如,对应于最低Vt电平的编程状态)且可称为擦除状态,因为在擦除操作之后单元可处于最低状态中;然而,实施例并不受此限制。
[0029] 在图2中,列220-1对应于编程到两个不同编程状态L0及L1中的一者且可每单元 存储一个数据单位(例如,位)的存储器单元。列220-2对应于编程到三个不同编程状态L0、L1及L2中的一者且可每单元存储1.5个数据单位的存储器单元。列220-3对应于编程到四个不同编程状态L0、L1、L2及L3中的一者且可每单元存储2个数据单位的存储器单元。列220-4对应于编程到五个不同编程状态L0到L4中的一者且可每单元存储2.25个数据单位的存储器单元。列220-5对应于编程到六个不同编程状态L0到L5中的一者且可每单元存储2.5个数据单位的存储器单元。列220-6对应于编程到七个不同编程状态L0到L6中的一者且可每单元存储2.75个数据单位的存储器单元。列220-7对应于编程到八个不同编程状态L0到L7中的一者且可每单元存储3个数据单位的存储器单元。列220-8对应于编程到九个不同编程状态L0到L8中的一者且可每单元存储3.125个数据单位的存储器单元。
[0030] 可编程到2的幂的数量个编程状态(例如,2个编程状态、4个编程状态、8个编程状态、16个编程状态等等)的存储器单元可个别地每单元存储整数数目个位(例如,log2(L)位/单元,其中L为单元可编程到的编程状态的数目)。如此,可将每一存储器单元的编程状态直接映射到L个不同N位数据模式中的一者,其中N为存储于单元中的位的整数数量。例如,可将可编程到两个编程状态(L0及L1)的单元的编程状态映射到0或1(例如,1位数据模式),可分别将可编程到4个编程状态(L0到L3)的单元的编程状态映射到00、01、10及11(例如,2位数据模式),且可分别将可编程到8个编程状态(L0到L7)的单元的编程状态映射到000、001、010、011、100、101、110及111(例如,3位数据模式)。
[0031] 相比之下,可编程到非2的幂的数量个编程状态的存储器单元个别地每单元存储小数(例如,非整数)数目个位。如此,并非每一个别单元的编程状态映射到N位数据模式,而是单元群组的每一个别单元可编程到的L个编程状态的组合映射到N位数据模式,其中N为存储于所述群组中的位的整数数量。例如,可编程到三个编程状态(L0、L1及L2)的两个存储器单元(例如,1.5位/单元)的群组的相应编程状态的组合映射到3位(例如,1.5位/单元×2单元)数据模式(例如,000、110、100等等)。类似地,可编程到五个编程状态(L0到L4)的四个存储器单元(例如,2.25位/单元)的群组的相应编程状态的组合映射到9位(例如,2.25位/单元×4单元)数据模式(例如,110011001、000001111、101010101等等),且可编程到9个状态(L0到L8)的八个存储器单元(例如,3.125位/单元)的群组的相应编程状态的组合映射到25位(例如,3.125位/单元×8单元)数据模式(例如,0000011111000001111100000、
1010101010101010101010101、1111111111111111110000000等等)。
[0032] 一般来说,对于共同地存储整数数目(N)个数据单位(例如,位)但个别地存储小数数目个数据单位的单元的群组,将2N个不同N单位数据模式映射到群组的对应数目(例如,2N)个不同编程状态组合。作为一实例,考虑各自编程到三个编程状态(L0、L1、L2)中的一者的两个单元的群组使得所述群组共同地存储3个数据位(例如,1.5位/单元)。如此,23(例如,8)个不同3位数据模式映射到群组的23(例如,8)个不同编程状态组合。
[0033] 在一定数目个实施例中,可使用星座图(例如,L×L正方形星座图,其中L为单元可编程到的编程状态的数量)来表示与小数单位存储器单元的群组相关联的不同可能编程状态组合。例如,每一可能编程状态组合可对应于可映射到特定N单位数据模式的不同星座点,其中N为存储于单元群组中的数据单位的整数数量。编程状态组合的数量(例如,星座点的数量)可等于L2,其必须大于或等于对应于存储于单元群组中的N数量个数据单位的2N个不同N单位数据模式。如此,L2个编程状态组合中的一或多者可不映射到N单位数据模式,或L2个编程状态组合中的一或多者可映射到N单位数据模式中与L2个编程状态组合中的一或多个其它者相同的N单位数据模式。下文结合图4A描述根据本发明的一定数目个实施例的映射星座图的实例。
[0034] 数据模式到对应于小数单位(例如,小数位)存储器单元的群组的相应编程状态组合的特定映射及反之亦然可变化。也就是说,将编程状态组合指派给数据模式的方式可并非均一的。在一些先前方法中,可结合将数据模式映射到特定编程状态组合而对数据模式执行代码扩展。然而,此代码扩展导致错误校正码冗余的增加且降低容量,且可导致错误倍增及/或传播。相比之下,例如,本发明的一定数目个实施例可在不执行代码扩展的情况下有效且高效地在数据模式与编程状态之间映射。如此,与先前方法相比,本发明的一定数目个实施例可提供降低的复杂性及/或可减少及/或防止错误倍增及/或传播。
[0035] 如下文结合图3进一步描述,本发明的一定数目个实施例可包含接收待存储于(例如,写入到)G个存储器单元的群组中的N单位数据模式使得每一单元存储N/G个数据单位。存储器单元可为各自可编程到L个编程状态中的一者的小数单位存储器单元(例如,N/G可为非整数)。L可为用于每单元存储N/G个数据单位的编程状态的最小数量,其中一单元能够存储每单元Log2(L)个数据单位。作为一实例,可将9单位数据模式(例如,N=9)存储于4个存储器单元(例如,G=4)的群组中使得每一存储器单元存储每单元2.25个数据单位(例如,N/G=2.25)。在此实例中,每单元存储2.25个数据单位所需的编程状态的最小数目为5(例如,L=5)。也就是说,各自可编程到5个编程状态中的一者的4个存储器单元的群组可存储9单位数据模式。可根据本文中所描述的一定数目个实施例来确定四个单元的群组的特定编程状态组合与其所对应的相应9单位(例如,9位) 数据模式之间的映射。
[0036] 在一定数目个实施例中,编程状态组合与数据模式之间的映射基于阶G的多项式表达式,其中G为经组合以存储对应于数据模式的整数数目个数据单位的小数单位单元的数目。在一定数目个实施例中,多项式表达式的第一项对应于第一映射壳体,且多项式表达式的第二项对应于第二映射壳体,其中每一映射壳体对应于一定数目个星座点。作为一实G G例,映射所基于的多项式表达式可为表达式(A+B) ,其中A为第一项且对应于第一映射壳体的星座点的数量,且G×A(G-1)×B为第二项且对应于第二映射壳体的星座点的数量。如下文进一步描述,A可为根据其确定对应于第一映射壳体的相应编程状态组合的编程状态的数量,且B可为根据其确定对应于第二映射壳体的相应编程状态组合的额外编程状态的数量(例如,额外数量的L个编程状态)。如此,在其中使用两个映射壳体的实施例中,A+B等于存储器单元可编程到的编程状态的数量。作为一实例,A可等于2a,其中“a”为一值使得2a为小于存储器单元可编程到的编程状态的数量(例如,L)的2的最高幂值。例如,对于可编程到6个不同编程状态且存储2.5位/单元的单元,A等于4,因为22是小于6的2的最近幂值。由于A等于4,因此B等于2(例如,6-4)。如此,根据其确定对应于第一映射壳体的相应编程状态组合的编程状态的数量为4。也就是说,仅存储器单元可编程到的六个编程状态(例如,L0到L5)中的前四个编程状态(例如,L0到L3)的组合对应于第一映射壳体的星座点。在此实例中,根据其确定对应于第二映射壳体的相应编程状态组合的额外编程状态的数量为2(例如,B=2)。如此,仅包括存储器单元可编程到的六个编程状态(例如,L0到L5)中的最后两个编程状态(例如,L4及L5)中的至少一者的组合对应于第二映射壳体的星座点。在一定数目个实施例中,对应于第一映射壳体的A个编程状态包括L个编程状态中的最低A个编程状态(例如,对应于最低Vt电平的编程状态),且对应于第二映射壳体的B个编程状态包括除最低A个编程状态之外的编程状态。
[0037] 图3是根据本发明的一定数目个实施例在数据模式与编程状态之间的映射的方法的功能框图。可经由数据打包组件(例如图1中所展示的数据打包器/解包器112)来实施图3中所图解说明的方法。在图3的335处,可形成符号大小(例如,N位符号)。所述符号大小可对应于(例如)每单元所存储的位的数量332(展示为“bpc”)乘以存储整数数目个位所需的单元的最小数量(展示为“nD”)334。例如,如果存储器单元群组存储1.5位/单元,那么存储整数数目个位所需的单元的最小数目为2个单元,此对应于3个位(例如,1.5位/单元×2单元)的符号大小。N个位的符号大小指示2N个不同N位数据模式将映射(例如,指派)到对应于单元的数量334的2N个相应编程状态组合(例如,2N个星座 点)。
[0038] 在图3的338处,可使用多项式表达式(例如,如上文所描述的(A+B)G)来确定将所确定符号大小的数据模式映射到2N个相应编程状态组合所需的映射壳体的数量以及确定特定N位数据模式对应于所述数目个映射壳体中的哪一者。当数据模式对应于第一映射壳体(例如,“壳体[0]”)时,则映射器340-1(展示为“映射[0]To_nD”)将N位数据模式的相应位映射到群组的单元。在图3中,映射器340-1的输出“Bits_1D”对应于N位数据模式的指派给群组的第一单元的位,且映射器340-1的输出“Bits_nD”对应于N位数据模式的指派给群组的第n单元的位,其中n为群组中的单元的数量(例如,1到n)。如下文进一步描述,在一定数目个实施例中,使用(例如,N位符号的)数据模式的MSB(最高有效位)来确定数据模式是否映射到第一映射壳体。举例来说,MSB“0”可指示数据模式映射到第一映射壳体,且MSB“1”可指示数据模式映射到较高阶映射壳体。当数据模式对应于“第n”映射壳体(例如,第2或第3映射壳体等等)时,则映射器340-n(展示为“映射[n]To_nD”)将N位数据模式的相应位映射到群组的单元。在图3中,映射器340-n的输出“Bits_1D”对应于N位数据模式的指派给群组的第一单元的位,且映射器340-n的输出“Bits_nD”对应于N位数据模式的指派给群组的第n单元的位。
[0039] 可多路复用344映射器340-1到340-n的输出,且映射器346(展示为“位2状态映射”)可将指派给相应单元(例如,到nD的单元1)的位映射到相应编程状态。输出348-1(展示为“States_1D”)指示n个单元的群组的第一单元将被编程到的编程状态,且输出348-n(展示为“States_nD”)指示群组的第n单元将被编程到的编程状态,使得单元1到n的编程状态的组合映射到2N个数据模式中的对应于所采用的特定符号大小的适当N位数据模式。
[0040] 作为一实例,可结合确定例如图4A的映射壳体的映射壳体而使用图3中所图解说明的方法,图4A图解说明根据本发明的一定数目个实施例包含具有与数据模式与编程状态之间的映射相关联的第一及第二映射壳体的星座图的图式450。图式450表示与存储3个数据位(例如,1.5位/单元)的两个单元(例如,单元0及单元1)的群组相关联的星座图(例如,正方形星座图)使得对应符号大小为3个位,其可表示为[2:0]。行451图解说明单元0(例如,群组的第一单元)可编程到的三个编程状态(例如,L0、L1及L2),且列452图解说明单元1(例如,群组的第二单元)可编程到的三个编程状态(例如,L0、L1及L2)。如此,图4A的星座图包含对应于九个可能编程状态组合(单元0状态;单元1状态)(例如,(L0;L0)、(L0;L1)、(L0;L2)、(L1;L0)、(L1;L1)、(L1;L2)、(L2;L0)、(L2;L1)及(L2;L2))的九个星座点。
[0041] 下文所展示的表1提供与结合图4A-4C所描述的实例相关联的配置信息。表1指示每单元存储的位的数量(“bpc”)(例如,1.5)、存储器单元可编程到的状态(“状态”)的数量(例如,3)、对应于N位数据模式的单元的数量(“单元/nD”)(例如,2)(N对应于符号大小)、映N射到2个编程状态组合所需的星座点(“星座点”)的数量(例如,8)、用于形成对应于第一映射壳体(“第一壳体状态”)的编程状态组合的编程状态的数量(例如,2)、第一映射壳体的星座点(“第一壳体点”)的数量(例如,4)、用于形成对应于第二映射壳体(“第二壳体状态”)的编程状态组合的额外编程状态的数量(例如,1)、第二映射壳体的星座点(“第二壳体点”)的bpc×nD nD
数量(例如,4)及打包密度(“打包密度”)(例如,88.89%)。打包密度等于(2 )/(L ),其中bpc为存储于数量nD个单元的群组中的位/单元的数量,其中bpc×nD对应于符号大小(例如,N个位),且L为单元群组可编程到的编程状态的数量。
[0042] 表1
[0043]
[0044] 因此,在图4A中所展示的实例中,星座点的数量及因此不同编程状态组合的数量为9,其比表示8个不同N位(例如,3位)数据模式所需的数据模式的数量(例如,2N)大1。如此,如图4A中所展示,对应于编程状态组合(L2;L2)的星座点不映射到数据模式(例如,如图式450中的“x”所指示)。如此,打包密度小于100%。一般来说,较高打包密度对应于对存储器容量(例如,快闪容量)的较高利用。在一定数目个实施例中,未映射到数据模式的那些一或多个编程状态组合对应于较高编程状态组合(例如,包含对应于较高Vt电平的编程状态的那些组合),这可提供例如防止与较高编程状态相关联的电荷损失效应等益处。
[0045] 可使用上文所描述的多项式表达式(例如,(A+B)G)的前两个项来确定相应第一及第二映射壳体的星座点的数量,其中AG为第一项且指示第一映射壳体的星座点的数量,且G×A(G-1)×B为第二项且对应于第二映射壳体的星座点的数量。在图4A的1.5位/单元实例中,A等于2,G等于2且B等于1。如此,AG等于4且G×A(G-1)×B等于4。如上文所描述,A为根据其确定对应于第一映射壳体的相应编程状态组合的编程状态的数量,且B为根据其确定对应于第二映射壳体的相应编程状态组合的额外编程状态的数量。如此,在此实例中,前2个编程状态(例如,L0及L1)的组合映射到第一映射壳体的相应4 个星座点,且第二映射壳体的4个星座点映射到包含最高编程状态(例如,L2)的编程状态组合。也就是说,第二映射壳体的编程状态组合包含具有编程状态L0或L1的一个单元及具有编程状态L2的一个单元。
[0046] 如图4A中所展示,第一映射壳体的4个星座点编号为0到3且对应于相应编程状态组合(L0;L0)、(L0;L1)、(L1;L0)及(L1;L1)。第二映射壳体的4个星座点编号为4到7且对应于相应编程状态组合(L2;L0)、(L2;L1)、(L0;L2)及(L1;L2)。十进制值0到7对应于相应3位数据模式000到111。
[0047] 图4B及4C分别图解说明将不同3位数据模式映射到对应于第一及第二映射壳体的编程状态组合的方式。图式460-1图解说明对应于第一映射壳体的映射,且图式460-2图解说明对应于第二映射壳体的映射。在此实例中,3位数据模式(例如,表示为位[2:0])的MSB(例如,位[2])指示数据模式是映射到第一壳体还是第二壳体。例如,如果位[2]为“0”(例如,3位数据模式的二进制值小于4),那么数据模式映射到第一壳体,且如果位[2]为“1”(例如,3位数据模式的二进制值大于或等于4),那么数据模式映射到第二壳体。
[0048] 图4B的对应于第一映射壳体的映射为系统性的(例如,其可接着以系统性方式来确定)。例如,可将位[1]指派给单元[1],且可将位[0]指派给单元[0](表示为单元[1:0]的单元)。也就是说,如图4B中所展示,数据模式[2:0]的位[1:0]的二进制值直接对应于单元[1:0]的编程状态(例如,二进制值“1”对应于编程状态L1且二进制值“0”对应于编程状态L0)。
[0049] 图4C的对应于第二映射壳体的映射为近系统性的(例如,其可以实质上系统性方式来确定)。对应于第二映射壳体的映射并非完全系统性的,因为不同于第一映射壳体,3位数据模式(例如,符号大小)的位[1:0]的二进制值不直接对应于相应单元[1:0]的编程状态。如上所述,对于第二映射壳体,单元[1:0]中的一者携载编程状态L2。在此实例中,位[1]用于确定单元[1:0]中的哪一者携载L2(例如,位[1]的二进制值“0”指示单元[0]携载L2,且位[1]的二进制值“1”指示单元[1]携载L2)。用于确定哪一单元携载一定数目个编程状态中的不对应于第一映射壳体的一或多个编程状态的位在本文中可称为“交换单元位”,且携载所述数目个编程状态中的不对应于第一映射壳体的一或多个编程状态的单元在本文中可称为“交换单元”。在此实例中,位[1]为交换单元位。如此,如果位[1]为“0”,那么单元[0]为交换单元,且如果位[1]为“1”,那么单元[1]为交换单元。如同在图4B的第一壳体映射中,在图4C中,位[0]的二进制值确实与编程状态L0及L1直接对应(例如,值“0”对应于L0且值“1”对应于L1)。然而,当单元[0]为交换单 元时,将位[0]指派给单元[1],且当单元[1]为交换单元时,将位[0]指派给单元[0]。如此,图4B及4C图解说明根据本发明的一定数目个实施例将对应于第一及第二映射壳体的不同3位数据模式映射到各自存储1.5位/单元的两个存储器单元的群组的相应编程状态组合的方式。
[0050] 下文所展示的表2提供与结合图5A及5B所描述的实例相关联的配置信息。表2指示每单元存储的位的数量(“bpc”)(例如,2.25)、存储器单元可编程到的状态(“状态”)的数量(例如,5)、对应于N位数据模式的单元(“单元/nD”)的数量(例如,4)(N对应于符号大小(例如,在此实例中,为9个位))、映射到2N个编程状态组合所需的星座点(“星座点”)的数量(例如,512)、用于形成对应于第一映射壳体(“第一壳体状态”)的编程状态组合的编程状态的数量(例如,4)、第一映射壳体的星座点(“第一壳体点”)的数量(例如,256)、用于形成对应于第二映射壳体(“第二壳体状态”)的编程状态组合的额外编程状态的数量(例如,1)、第二映射壳体的星座点(“第二壳体点”)的数量(例如,256)及打包密度(“打包密度”)(例如,81.92%)。
[0051] 表2
[0052]
[0053] 可使用上文所描述的多项式表达式(例如,(A+B)G)的前两个项来确定相应第一及第二映射壳体的星座点的数量,其中AG为第一项且指示第一映射壳体的星座点的数量,且G×A(G-1)×B为第二项且对应于第二映射壳体的星座点的数量。在图5A及5B的2.25位/单元实例中,A等于4,G等于4且B等于1。如此,AG等于256且G×A(G-1)×B等于256。如上文所描述,A为根据其确定对应于第一映射壳体的相应编程状态组合的编程状态的数量,且B为根据其确定对应于第二映射壳体的相应编程状态组合的额外编程状态的数量。如此,在此实例中,前4个编程状态(例如,L0到L3)的组合映射到第一映射壳体的相应256个星座点,且第二映射壳体的256个星座点映射到包含除前4个编程状态之外的编程状态(例如,最高编程状态L4)的编程状态组合。如图5B中所展示,在此实例中,第二映射壳体的编程状态组合包含具有编程状态L0到L3中的一者的一个单元及携载编程状态L4的一个单元。
[0054] 图5A及5B分别图解说明将不同9位数据模式映射到对应于第一及第二映射壳体的编程状态组合的方式。图式560-1图解说明对应于第一映射壳体的映射,且图式560-2 图解说明对应于第二映射壳体的映射。在此实例中,9位数据模式(例如,表示为位[8:0])的MSB(例如,位[8])指示数据模式是映射到第一壳体还是第二壳体。例如,如果位[8]为“0”(例如,9位数据模式的二进制值小于256),那么数据模式映射到第一壳体,且如果位[8]为“1”(例如,9位数据模式的二进制值大于或等于256),那么数据模式映射到第二壳体。
[0055] 图5A图解说明可如何针对第一映射壳体将9位数据模式的位[7:0]系统性地映射到四个单元[3:0]的编程状态组合。例如,可将位[7:6]指派给单元[3],可将位[5:4]指派给单元[2],可将位[3:2]指派给单元[1],且可将位[1:0]指派给单元[0],其中指派给单元的位对的二进制值直接对应于相应单元的编程状态(例如,其中二进制值“00”、“01”、“10”及“11”分别直接对应于L0、L1、L2及L3)。
[0056] 图5B图解说明可如何针对第二映射壳体将9位数据模式的位[7:0]映射到四个单元[3:0]的编程状态组合。如上所述,对于第二映射壳体的编程状态组合,单元[3:0]中的一者携载编程状态L4。在此实例中,位[7:6]用于确定单元[3:0]中的哪一者携载编程状态L4(例如,位[7:6]的二进制值“00”指示单元[0]携载L4,位[7:6]的二进制值“01”指示单元[1]携载L4,位[7:6]的二进制值“10”指示单元[2]携载L4,且位[7:6]的二进制值“11”指示单元[3]携载L4)。也就是说,对于此2.25位/单元实例,位[7:6]为交换位。如此,如图5B中所展示,如果位[7:6]为“00”,那么单元[0]为交换单元,如果位[7:6]为“01”,那么单元[1]为交换单元,如果位[7:6]为“10”,那么单元[2]为交换单元,且如果位[7:6]为“11”,那么单元[3]为交换单元。图5B还指示针对不携载L4的三个单元的位指派。例如,如所图解说明,如果9位数据模式的位[7:6]为“00”使得单元[0]携载L4,那么将位[3:2]指派给单元[1],将位[5:4]指派给单元[2],且将位[0:1]指派给单元[3]。在第二映射壳体中,9位数据模式的位对[5:4]、[3:2]及[1:0]各自直接对应于编程状态L0到L3。例如,根据图5B中所图解说明的第二壳体映射,具有为“00”的位[7:6]、为“10”的位[5:4]、为“01”的位[3:2]及为“11”的位[1:0]的9位数据模式100100111映射到编程到编程状态L4的单元[0]、编程到编程状态L1的单元[1]、编程到编程状态L2的单元[2]及编程到编程状态L3的单元[3]。对应于第二壳体的映射为近系统性的。例如,对应于映射的四个单元中的两者始终携载系统性信息。
[0057] 如此,图5A及5B图解说明根据本发明的一定数目个实施例将对应于第一及第二映射壳体的不同9位数据模式映射到各自存储2.25位/单元的四个存储器单元的群组的相应编程状态组合的方式。
[0058] 下文所展示的表3提供与结合图6A及6B所描述的实例相关联的配置信息。表3 指示每单元存储的位的数量(“bpc”)(例如,2.5)、存储器单元可编程到的状态(“状态”)的数量(例如,6)、对应于N位数据模式的单元的数量(“单元/nD”)(例如,2)(N对应于符号大小(在此实例中,为5个位))、映射到2N个编程状态组合所需的星座点(“星座点”)的数量(例如,32)、用于形成对应于第一映射壳体(“第一壳体状态”)的编程状态组合的编程状态的数量(例如,4)、第一映射壳体的星座点(“第一壳体点”)的数量(例如,16)、用于形成对应于第二映射壳体(“第二壳体状态”)的编程状态组合的额外编程状态的数量(例如,2)、第二映射壳体的星座点(“第二壳体点”)的数量(例如,16)及打包密度(“打包密度”)(例如,88.89%)。
[0059] 表3
[0060]
[0061] 可使用上文所描述的多项式表达式(例如,(A+B)G)的前两个项来确定相应第一及第二映射壳体的星座点的数量,其中AG为第一项且指示第一映射壳体的星座点的数量,且G×A(G-1)×B为第二项且对应于第二映射壳体的星座点的数量。在图6A及6B的2.5位/单元实例中,A等于4,G等于2且B等于2。如此,AG等于16且G×A(G-1)×B等于16。如上文所描述,A为根据其确定对应于第一映射壳体的相应编程状态组合的编程状态的数量,且B为根据其确定对应于第二映射壳体的相应编程状态组合的额外编程状态的数量。如此,在此实例中,前4个编程状态(例如,L0到L3)的组合映射到第一映射壳体的相应16个星座点,且第二映射壳体的16个星座点映射到包含除前4个编程状态之外的编程状态(例如,编程状态L4及L5)的编程状态组合。如图6B中所展示,在此实例中,第二映射壳体的编程状态组合包含具有编程状态L0到L3中的一者的一个单元及携载编程状态L4或L5的一个单元。
[0062] 图6A及6B分别图解说明将不同5位数据模式映射到对应于第一及第二映射壳体的编程状态组合的方式。图式660-1图解说明对应于第一映射壳体的映射且图式660-2图解说明对应于第二映射壳体的映射。在此实例中,5位数据模式(例如,表示为位[4:0])的MSB(例如,位[4])指示数据模式是映射到第一壳体还是第二壳体。例如,如果位[4]为“0”(例如,5位数据模式的二进制值小于16),那么数据模式映射到第一壳体,且如果位[4]为“1”(例如,5位数据模式的二进制值大于或等于16),那么数据模式映射到第二壳体。
[0063] 图6A图解说明可如何针对第一映射壳体将5位数据模式的位[4:0]系统性地映射到两个单元[1:0]的编程状态组合。例如,可将位[1:0]指派给单元[0],且可将位[3:2]指派给单元[1],其中指派给单元的位对的二进制值直接对应于相应单元的编程状态(例如,其中二进制值“00”、“01”、“10”及“11”分别直接对应于L0、L1、L2及L3)。
[0064] 图6B图解说明可如何针对第二映射壳体将5位数据模式的位[4:0]映射到两个单元[1:0]的编程状态组合。对于第二映射壳体的编程状态组合,单元[1:0]中的一者携载编程状态L4或L5,因为B等于2(例如,2个额外编程状态对应于第二映射壳体)。在此实例中,位[3]用于确定单元[1:0]中的哪一者携载编程状态L4或L5(例如,位[3]的二进制值“0”指示单元[0]携载L4或L5,且位[3]的二进制值“1”指示单元[1]携载L4或L5)。也就是说,对于此2.5位/单元实例,位[3]为交换位。如此,如图6B中所展示,如果位[3]为“0”,那么单元[0]为交换单元,且如果位[3]为“1”,那么单元[1]为交换单元。在其中B对应于大于1的编程状态数量的实施例中,还可使用一(若干)位来确定B个编程状态中的哪一者将由交换单元携载。
由交换单元携载的编程状态在本文中称为“交换状态”。在此实例中,位[2]用于确定交换状态。例如,在图6B中所展示的实例中,如果位[2]为“0”,那么交换状态为L4,且如果位[2]为“1”,那么交换状态为L5。
[0065] 图6B还指示针对不携载L4或L5的单元的位指派。如同在图6A的第一壳体映射中,在图6B中,位[1:0]的二进制值确实与编程状态L0到L3直接对应(例如,值“00”对应于L0,值“01”对应于L1,值“10”对应于L2,且值“11”对应于L3)。然而,当单元[0]为交换单元时,将位[1:0]指派给单元[1],且当单元[1]为交换单元时,将位[1:0]指派给单元[0]。如此,图6A及6B图解说明根据本发明的一定数目个实施例将对应于第一及第二映射壳体的不同5位数据模式映射到各自存储2.5位/单元的两个存储器单元的群组的相应编程状态组合的方式。
[0066] 下文所展示的表4提供与结合图7A及7B所描述的实例相关联的配置信息。表4指示每单元存储的位的数量(“bpc”)(例如,3.125)、存储器单元可编程到的状态(“状态”)的数量(例如,9)、对应于N位数据模式的单元(“单元/nD”)的数量(例如,8)(N对应于符号大小(例如,在此实例中,为25个位))、映射到2N个编程状态组合所需的星座点(“星座点”)的数量(例如,33,554,432)、用于形成对应于第一映射壳体(“第一壳体状态”)的编程状态组合的编程状态的数量(例如,8)、第一映射壳体的星座点(“第一壳体点”)的数量(例如,16,777,216)、用于形成对应于第二映射壳体(“第二壳体状态”)的编程状态组合的额外编程状态的数量(例如,1)、第二映射壳体的星座点(“第二壳体点”)的数量(例如,16,777,216)及打包密度(“打包密度”)(例如,77.95%)。
[0067] 表4
[0068]bpc 3.125
状态 9
单元/nD 8
星座点 33,554,432
第一壳体状态 8
第一壳体点 16,777,216
第二壳体额外状态 1
第二壳体点 16,777,216
打包密度 77.95%
[0069] 可使用上文所描述的多项式表达式(例如,(A+B)G)的前两个项来确定相应第一及第二映射壳体的星座点的数量,其中AG为第一项且指示第一映射壳体的星座点的数量,且G×A(G-1)×B为第二项且对应于第二映射壳体的星座点的数量。在图7A及7B的3.125位/单元实例中,A等于8,G等于8且B等于1。如此,AG等于16,777,216且G×A(G-1)×B等于16,777,216。如上文所描述,A为根据其确定对应于第一映射壳体的相应编程状态组合的编程状态的数量,且B为根据其确定对应于第二映射壳体的相应编程状态组合的额外编程状态的数量。如此,在此实例中,前8个编程状态(例如,L0到L7)的组合映射到第一映射壳体的相应16,777,
216个星座点,且第二映射壳体的16,777,216个星座点映射到包含除前8个编程状态之外的编程状态(例如,最高编程状态L8)的编程状态组合。如图7B中所展示,在此实例中,第二映射壳体的编程状态组合包含具有编程状态L0到L7中的一者的一个单元及携载编程状态L8的一个单元。
[0070] 图7A及7B分别图解说明将不同25位数据模式映射到对应于第一及第二映射壳体的编程状态组合的方式。图式760-1图解说明对应于第一映射壳体的映射且图式760-2图解说明对应于第二映射壳体的映射。在此实例中,25位数据模式(例如,表示为位[24:0])的MSB(例如,位[24])指示数据模式是映射到第一壳体还是第二壳体。例如,如果位[24]为“0”(例如,25位数据模式的二进制值小于16,777,216),那么数据模式映射到第一壳体,且如果位[24]为“1”(例如,25位数据模式的二进制值大于或等于16,777,216),那么数据模式映射到第二壳体。
[0071] 图7A图解说明可如何针对第一映射壳体将25位数据模式的位[23:0]系统性地映射到八个单元[7:0]的编程状态组合。例如,可将位[23:21]指派给单元[7],可将位[20:18]指派给单元[6],可将位[17:15]指派给单元[5],可将位[14:12]指派给单元[4],可将位[11:09] 指派给单元[3],可将位[8:6]指派给单元[2],可将位[5:3]指派给单元[1],且可将位[2:0]指派给单元[0],其中指派给单元的位组合的二进制值直接对应于相应单元的编程状态(例如,其中二进制值“000”到“111”分别直接对应于L0到L7)。
[0072] 图7B图解说明可如何针对第二映射壳体将25位数据模式的位[23:0]映射到八个单元[7:0]的编程状态组合。如上所述,对于第二映射壳体的编程状态组合,单元[7:0]中的一者携载编程状态L8。在此实例中,位[23:21]用于确定单元[7:0]中的哪一者携载编程状态L8(例如,位[23:21]的二进制值“000”指示单元[0]携载L8,位[23:21]的二进制值“001”指示单元[1]携载L8,且位[23:21]的二进制值“010”指示单元[2]携载L8等等)。也就是说,对于此3.125位/单元实例,位[23:21]为交换位。如此,如图7B中所展示,如果位[23:21]为“000”,那么单元[0]为交换单元,如果位[23:21]为“001”,那么单元[1]为交换单元,且如果位[23:21]为“010”,那么单元[2]为交换单元等等。图7B还指示针对不携载L8的七个单元的位指派。例如,如所图解说明,如果25位数据模式的位[23:21]为“000”使得单元[0]携载L8,那么将位[5:3]指派给单元[1],将位[8:6]指派给单元[2],将位[11:9]指派给单元[3],将位[14:12]指派给单元[4],将位[17:15]指派给单元[5],将位[20:18]指派给单元[6],且将位[2:0]指派给单元[7]。在第二映射壳体中,25位数据模式的位组合[20:18]、[17:15]、[14:12]、[11:09]、[8:6]、[5:3]及[2:0]各自直接对应于编程状态L0到L7。例如,根据图7B中所图解说明的第二壳体映射,具有为“000”的位[23:21]、为“010”的位[20:18]、为“001”的位[17:15]、为“000”的位[14:12]、为“100”的位[11:9]、为“011”的位[8:6]、为“101”的位[5:3]及为“111”的位[2:0]的25位数据模式1000010001000100011101111映射到编程到编程状态L8的单元[0](例如,交换单元)、编程到编程状态L5的单元[1]、编程到编程状态L3的单元[2]、编程到编程状态L4的单元[3]、编程到编程状态L0的单元[4]、编程到编程状态L1的单元[5]、编程到编程状态L2的单元[6]及编程到编程状态L7的单元[7]。
[0073] 如此,图7A及7B图解说明根据本发明的一定数目个实施例将对应于第一及第二映射壳体的不同25位数据模式映射到各自存储3.125位/单元的四个存储器单元的群组的相应编程状态组合的方式。
[0074] 举例来说,可结合确定存储于G个存储器单元的群组中的数据模式(例如,N位数据模式)而使用例如上文结合图4A到7B所描述的映射的映射,其中N为位的整数数目,G为存储N个位的存储器单元的数量,且其中群组的每一存储器单元被编程到一定数量L个编程状态中的一者且存储小数数量的N个位。
[0075] 例如,确定群组的相应所确定编程状态的组合所对应的特定N位数据模式(例如, 结合读取操作)可至少部分地基于包括第一映射壳体及第二映射壳体的映射星座图,其中第一及第二映射壳体由阶G的多项式表达式定义。例如,可结合编程状态组合与数据模式之间的映射使用图1中所展示的数据打包组件(例如组件112)。
[0076] 如图4A到7B中所展示的实例性壳体映射所图解说明,存储器单元的相应群组的所确定编程状态可指示存储于群组中的数据模式所对应的特定映射壳体。举例来说,单元可编程到的L个编程状态中的一或多个编程状态仅对应于除第一映射壳体之外的映射壳体。如此,如果做出群组中无单元被编程到仅对应于除第一映射壳体之外的映射壳体的编程状态的确定,那么单元群组存储对应于第一映射壳体的位模式。如上文所描述,可针对第一壳体的映射将数据模式的位以系统性方式指派给群组的单元。或者,如果做出群组的单元被编程到对应于除第一映射壳体之外的映射壳体的编程状态(例如,上部编程状态)的确定,那么所述群组存储对应于除第一映射壳体之外的映射壳体的位模式。如上文所描述,指派给群组的单元的位可取决于群组的单元中的哪一者被编程到不对应于第一映射壳体的编程状态(例如,交换单元)。
[0077] 在一定数目个实施例中,控制器(例如,控制器108)可确定存储于群组中的位模式(例如,结合读取操作)且可将数据提供到主机(例如,主机102)。存储于单元群组中的位模式可在提供到主机(例如,如果先前以错误数据编码)之前被解码(例如,经由错误译码/解码组件114)。
[0078] 结论
[0079] 本发明包含用于编程状态与数据模式之间的映射的方法及设备。一种方法包含:编程G个存储器单元的群组使得所述群组的相应编程状态的组合映射到对应于所接收N单位数据模式的星座点,所述群组用于每存储器单元存储N/G个数据单位;其中所述星座点为与将所述存储器单元群组的相应编程状态组合映射到N单位数据模式相关联的星座图的一定数目个星座点中的一者;且其中所述星座图包括第一映射壳体及第二映射壳体,对应于所述相应第一及第二映射壳体的所述星座点至少部分地基于等于G的阶的多项式表达式而确定。
[0080] 应理解,当将一元件称为“在”另一元件“上”“连接”或“耦合”时,其可直接在另一元件上、连接或耦合,或可存在介入元件。相比之下,当将一元件称为“直接在另一元件上”、“直接连接到另一元件”或“直接与另一元件耦合”时,不存在介入元件或层。如本文中所用,术语“及/或”包含一定数目个相关联所列举物项的任何组合及所有组合。
[0081] 如本文中所用,术语“及/或”包含一定数目个相关联所列举物项的任何组合及所有 组合。如本文中所使用,除非另有说明,否则术语“或(or)”意指在逻辑上包含或。也就是说,“A或B”可包含(仅A)、(仅B)或(A及B两者)。换句话说,“A或B”可意指“A及/或B”或“一定数目个A及B”。
[0082] 应理解,虽然本文中可使用术语第一、第二、第三等来描述各种元件,但这些元件不应受限于这些术语。这些术语仅用于区别一个元件与另一元件。因此,可在不背离本发明的教示内容的情况下将第一元件称为第二元件。
[0083] 虽然本文中已图解说明及描述了特定实施例,但所属领域的技术人员将了解,旨在实现相同结果的布置可替代所展示的特定实施例。本发明打算涵盖本发明的一定数目个实施例的改动或变化。应理解,已以说明性方式而非限定性方式做出以上描述。在审阅以上描述后,所属领域的技术人员将明了以上实施例的组合及本文中未具体描述的其它实施例。本发明的一定数目个实施例的范围包含其中使用以上结构及方法的其它应用。因此,应参考随附申请专利范围连同授权此等申请专利范围之等效内容之全部范围来判定本发明之若干项实施例之范畴。
[0084] 在前述具体实施方式中,出于简化本发明的目的,将一些特征一起集合于单个实施例中。本发明的此方法不应解释为反映本发明的所揭示实施例必须使用比明确陈述于每一权利要求中更多的特征的意图。而是,如所附权利要求书反映:发明性标的物在于少于单个所揭示实施例的所有特征。因此,特此将所附权利要求书并入到具体实施方式中,其中每一权利要求独立地作为单独实施例。
QQ群二维码
意见反馈