支持正常编程和提早高速缓存释放编程(ecrp)两者的数据预处理(dpp)模式
技术领域
1.本说明书涉及用于数据预处理的存储器设备和方法。具体地,该存储器设备和方法提高了编程操作的效率。
背景技术:2.闪存存储器芯片可以接收要被写入到该闪存存储器芯片的存储器单元中的数据。在一些方面中,闪存存储器芯片将该数据存储到页缓冲器中。例如,页缓冲器可以包括一个或多个数据锁存器,每一数据锁存器可以存储一页数据。在一些方面中,该闪存存储器芯片的存储器单元又被称为该闪存存储器芯片的单元。
3.在一些方面中,所接收到的数据包括一个或多个数据单位(data units),每一数据单位对应于该闪存存储器芯片的单元。闪存存储器芯片的控制器通过控制施加至单元的电压电平而将一个或多个数据单位编程到它们的对应单元中。依据包括在一个或多个数据单位中的二进制码,控制器将单元编程至不同电压电平。
4.在一些方面中,控制器还验证一组单元是否被成功编程。例如,控制器确定该组单元和对应于该组数据单位的目标电压电平。然后,控制器检查该组单元是否满足对应于该目标电压电平的电压要求。
5.在一些方面中,控制器在选择要被写入到它们的对应单元中的一个或多个数据单位时执行正常编程。例如,控制器可能选择一组数据单位,这些数据单位在其第一位和第二位中具有“0”,而不管其他位的值如何。然而,正常编程可能使控制器错误地选择数据单位。
6.在一些方面中,一个或多个数据单位被存储在闪存存储器芯片的一个或多个数据锁存器中。控制器可能在对所有的一个或多个数据单位编程之前释放一个或多个数据锁存器。然而,控制器可以比导致系统错误的提早释放要求更晚地释放一个或多个数据锁存器。
技术实现要素:7.本公开的一些方面涉及用于数据预处理的存储器设备和方法。例如,提供存储器设备和方法是为了提高编程操作的效率。
8.本公开的一些方面提供了包括页缓冲器的闪存存储器芯片。闪存存储器芯片可以接收要被写入到该闪存存储器芯片的单元中的数据。在一些方面中,该闪存存储器芯片的单元又被称为该闪存存储器芯片的存储器单元。该闪存存储器芯片可以将接收到的数据存储到页缓冲器中。在一些方面中,页缓冲器包括一个或多个数据锁存器。例如,页缓冲器可以包括三个数据锁存器:下页(lp,lower page)、中间页(mp,middle page)和上页(up,upper page)。在这样的情况下,所接收到的数据可以包括一个或多个数据单位,每一数据单位包括分别存储在这三个数据锁存器中的三个位。换句话说,数据单位的第一位存储在lp中,该数据单位的第二位存储在mp中,并且该数据单位的第三位存储在up中。
9.在一些方面中,闪存存储器芯片的控制器在对单元编程之前将数据单位转换成不
同模式。例如,控制器可以基于第一表格和第二表格转换数据单位。第一表格和第二表格可以是3
×
8二进制表格。控制器可以确定数据单位与第一表格的列匹配,并且将该数据单位转换成第二表格的对应列的二进制码。例如,该数据单位包括二进制码(010)。控制器确定第一表格的第2列也包括二进制码(010)。在这样的情况下,然后控制器从第二表格的第2列检索第二二进制码,例如,(001),并且将该数据单位转换成该第二二进制码,例如,(001)。
10.在一些方面中,控制器通过向单元施加电压电平而将一个或多个数据单位编程到它们的对应单元中。依据包括在一个或多个数据单位中的二进制码,控制器将单元编程至不同电压电平。在一些方面中,控制器以批量方式对电压电平的单元编程。例如,由于电压电平取决于包括在数据单位中的二进制码,因此控制器确定一个或多个数据单位中的一组数据单位均包括二进制码,例如,(010)。控制器确定对应于该二进制码的电压电平以及对应于该组数据单位的一组单元。然后,控制器将该组单元编码至该电压电平。
11.在一些方面中,控制器还验证该组单元是否被成功编程。类似地,控制器以批量方式验证相同电压电平的单元。例如,控制器选择包括该二进制码(例如,(010))的该组数据单位。然后,控制器确定对应于该二进制码的该电压电平以及对应于该组数据单位的该组单元。最后,控制器检查该组单元是否满足对应于该电压电平的电压要求。该电压要求可以是该电压电平或者该电压电平的一定比例。例如,该电压电平可以是1v。该电压要求可以是1v或者作为该电压电平的90%的0.9v。
12.在一些方面中,控制器基于数据单位中包括的“0”选择该组数据单位。例如,为了选择包括二进制码(010)的数据单位,控制器选择在其第一位和第三位中具有“0”的数据单位。在一些方面中,使控制器搜索“0”而非“1”可能是更有效率的。例如,控制器可以通过搜索0而以较短时间量选择该组数据单位。在该组数据单位被验证之后,控制器将该组数据单位转换成全部为“1”,例如,二进制码(111)。在这样的情况下,该组数据单位不再具有“0”,并且因此不再受到选择。换句话说,控制器将不再在未来的验证中验证对应于该组数据单位的该组单元。
13.还值得注意的是,在选择包括二进制码(010)的数据单位时,具有二进制码(000)的第二组数据单位也被选择。这是因为二进制码(000)也在其第一位和第三位中具有“0”。在这样的情况下,对应于第二组数据单位的单元可以被使用该电压要求验证。然而,这可能是不期望的,因为第二组数据单位可以对应于高于电压要求的第二电压要求。因此,对应于第二组数据单位的单元即使借助于比第二电压要求低并且比电压要求高的电压也可以通过验证。换句话说,对应于第二组数据单位的单元可能错误地通过验证。为了避免这样的情况,如下文更详细地解释的,可以以某种方式设计数据预处理,该方式使得具有二进制码(000)的第二组数据单位在具有二进制码(010)的该组数据单位之前受到编程和验证。因此,在对应于第二组数据单位的单元受到验证之后,第二组数据单位被转换为(111)并且将不再受到编程和验证。
14.在一些方面中,控制器可以在所有的数据单位都被写入到它们的对应单元内之前释放页缓冲器的一个或多个数据锁存器。例如,在只有两组数据单位有待编程和验证时,两个数据锁存器就可以足够了。这两组数据单位可以分别具有二进制码(011)和(101)。因此,这两组数据单位的第三位均为“1”,并且不是对这两组数据单位中的任一组进行选择所必需的。在这样的情况下,控制器可以释放存储第三位的数据锁存器,例如,up锁存器。然后,
up锁存器可以用于接收用于进一步的编程操作的附加数据,并且因此提高效率。在一些方面中,如下文更详细地解释的,第二表格可能影响控制器何时可以释放数据锁存器。
15.提供这一发明内容仅仅是为了示出一些方面,以提供对本文描述的主题的理解。相应地,上文描述的特征仅为示例,并且不应被理解为缩小本公开的主题的范围或精神。通过下文的具体实施方式、附图和权利要求,本公开的其他特征、方面和优点将变得显而易见。
附图说明
16.附图被并入本文并且形成说明书的部分。
17.图1示出了根据本公开的方面的具有nand闪存存储器的存储系统的示例系统。
18.图2示出了根据本公开的方面的存储器阵列的示例电路示意图。
19.图3示出了根据本公开的方面的nand闪存存储器的示例阈值电压分布。
20.图4示出了根据本公开的方面的采用正常编程的数据预处理(dpp,data preprocessing)的示例。
21.图5示出了根据本公开的方面的采用提早释放操作的数据预处理的示例。
22.图6示出了根据本公开的方面的采用正常编程和提早释放操作两者的数据预处理的示例。
23.图7示出了根据本公开的方面的第5级处的提早释放操作的示例。
24.图8示出了根据本公开的方面的第6级处的提早释放操作的示例。
25.图9示出了根据本公开的方面的第7级处的提早释放操作的示例。
26.图10示出了根据本公开的方面的采用预处理进行编程操作的示例方法。
27.图11是用于实施本公开的一些方面或其(一个或多个)部分的示例计算机系统。
28.在结合附图时,通过下文阐述的具体实施方式,本发明的特征和优点将变得更加显而易见,在附图中,类似的附图标记始终表示对应的要素。在附图中,类似的附图标记一般指示相同的、功能上类似的和/或结构上类似的要素。
29.将参考附图描述本公开的各个方面。
具体实施方式
30.尽管讨论了具体的配置和布置,但是应当理解,这样做仅仅是出于说明的目的。相关领域的技术人员将认识到,在不脱离本公开的精神和范围的情况下,可以使用其他配置和布置。对于相关领域的技术人员来说,显然本公开也可以用于各种其他应用。
31.注意,在本说明书中对“一个实施例”、“实施例”、“示例实施例”、“一些方面”等的引用指示所描述的实施例可以包括特定的特征、结构或特性,但是每个实施例可以不必包括特定的特征、结构或特性。此外,这样的短语未必是指同一实施例。此外,在结合实施例描述特定的特征、结构或特性时,无论是否明确描述,结合其他方面实现这样的特征、结构或特性都将在相关领域的技术人员的知识范围之内。
32.一般地,术语可以至少部分地从上下文中的使用来理解。例如,至少部分地取决于上下文,如本文所使用的术语“一个或多个”可以用于以单数意义描述任何特征、结构或特性,或者可以用于以复数意义描述特征、结构或特性的组合。类似地,诸如“一”或“所述”的
术语同样可以被理解为传达单数用法或传达复数用法,这至少部分地取决于上下文。另外,术语“基于”可以被理解为不一定旨在传达排他的一组因素,而是可以允许存在不一定明确描述的附加因素,这同样至少部分地取决于上下文。
33.如本文所用,术语“标称/标称地”是指在产品或工艺的设计阶段期间设置的用于部件或工艺步骤的特性或参数的期望值或目标值,以及高于和/或低于期望值的值的范围。值的范围可能由于制造工艺或公差的微小变化而产生。如本文所用,术语“大约”指示可以基于与主题半导体设备相关联的特定技术节点而变化的给定量的值。基于特定的技术节点,术语“大约”可以指示在例如值的10%到30%内变化的给定量的值(例如,值的
±
10%、
±
20%或
±
30%)。
34.图1示出了根据本公开的一些方面的存储系统100。存储系统100还可以被称为固态驱动器(ssd,solid state drive)100,其包括nand闪存存储器118和主机控制器104。ssd 100可以通过主机控制器104与主机计算机102通信,其中,主机控制器104可以经由存储器信道106连接至nand闪存存储器118。在一些方面中,ssd 100可以具有多于一个的nand闪存存储器118,而每一nand闪存存储器118则可以由主机控制器104管理。在一些方面中,主机控制器104包括一个或多个处理器。
35.主机计算机102发送将被存储到ssd 100处的数据,或者通过读取ssd 100而检索数据。主机控制器104可以处理接收自主机计算机102的i/o请求,确保数据完整性和有效率的存储,并且管理nand闪存存储器118。存储器信道106可以经由数据总线在主机控制器104与nand闪存存储器118之间提供数据和控制通信。
36.nand闪存存储器118(例如,“闪存”、“nand闪存”或“nand”)可以是存储器芯片(封装)、存储器管芯或者存储器管芯的任何部分,并且可以包括一个或多个存储器面120,每个存储器面120可以包括多个存储器块122。在每一存储器面120处可以发生相同和并发的操作。可以是兆字节(mb)的大小的存储器块122是实行擦除操作的最小大小。如图1中所示,示例性nand闪存存储器118包括四个存储器面120,并且每一存储器面120包括六个存储器块122。每一存储器块122可以包括多个存储器单元,其中,可以通过诸如位线和字线的互连对每一存储器单元寻址。位线和字线可以垂直布设(例如,分别以行和列),从而形成金属线的阵列。在图1中,位线和字线的方向被标示为“bl”和“wl”。在本公开中,存储器块122又被称为“存储器阵列”或“阵列”。存储器阵列是存储器设备中的执行储存功能的核心区域。
37.nand闪存存储器118还包括外围区域124,即围绕存储器面120的区域。外围区域124包含数字、模拟和/或混合信号电路(例如,页缓冲器110、行解码器108、列解码器112、外围电路114以及感测放大器116)来支持存储器阵列的功能。外围电路114包括有源和/或无源半导体设备,例如晶体管、二极管、电容器、电阻器等,这对于本领域技术人员而言将是显而易见的。
38.应当注意,图1中的ssd 100和nand闪存存储器118中的电子部件的布局只是作为示例示出的。ssd 100和nand闪存存储器118可以具有其他布局并且可以包括附加部件。例如,nand闪存存储器118还可以具有高压电荷泵、i/o电路等。ssd 100还可以包括固件、数据加扰器等。
39.图2示出了根据本公开的一些方面的存储器块122的示例电路示意图200。示例电路示意图200包括多个存储器串202,每一存储器串202具有多个存储器单元210。存储器串
202还在每一端处包括分别通过下部选择栅极(lsg,lower select gate)204和顶部选择栅极(tsg,top select gate)206控制的至少一个场效应晶体管(例如,mosfet)。并且,这两个相应的晶体管被称为下部选择晶体管204-t和顶部选择晶体管206-t。存储器单元210可以由控制栅极208控制,其中,控制栅极208可以连接至示例电路示意图200的字线。顶部选择晶体管206-t的漏极端子可以连接至位线212,并且下部选择晶体管204-t的源极端子可以连接至阵列公共源极(acs,array common source)214。阵列公共源极214可以被整个存储器块中的存储器串202共享,并且又被称为公共源极线。
40.在一些方面中,示例电路示意图200可以是基于浮栅技术形成的。在一些方面中,示例电路示意图200可以是基于电荷捕获技术形成的。基于电荷捕获的nand闪存存储器可以提供高存储密度和高固有可靠性。存储数据或逻辑状态(例如,存储器单元210的阈值电压v
th
)取决于在存储层内捕获的电荷的数量。在一些方面中,nand闪存存储器118可以是三维(3d)存储器设备,并且示例电路示意图200可以是3d存储器阵列,其中,存储器单元210可以彼此垂直堆叠。
41.在nand闪存存储器中,可以在包括共享相同字线的所有存储器单元210的存储器页216中执行读取和写入操作。在nand存储器中,存储器单元210可以处于擦除状态er或者编程状态p1。最初,通过在存储器单元的控制栅极208与源极端子(例如,阵列公共源极214)之间实施负电压差,示例电路示意图200中的所有存储器单元210可以被复位至作为逻辑“1”的擦除状态er,从而可以去除存储器单元210的存储层中的所有捕获到的电子电荷。例如,可以通过将存储器单元210的控制栅极208设置到地并且向阵列公共源极214施加高正电压而引发该负电压差。在擦除状态er(“状态er”)处,存储器单元210的阈值电压v
th
可以被复位至最低值,并且可以在位线212处被测量或感测。
42.在编程(即写入)期间,编程电压v
pgm
(例如,位于10v与30v之间的正电压脉冲)可以被施加在控制栅极208上,使得电子电荷(例如,电子)可以被注入到存储器单元210的存储层中,并且由此提高存储器单元210的阈值电压v
th
。因此,存储器单元210被编程至状态p1。
43.nand闪存存储器可以被配置为以单级单元(slc,single-level cell)模式操作。为了提高存储容量,nand闪存存储器还可以被配置为以多级单元(mlc,multi-level cell)模式、三级单元(tlc,triple-level cell)模式、四级单元(qlc,quad-level cell)模式或者这些模式的组合操作。在slc模式中,存储器单元存储“1”位,并且具有两个逻辑状态(“状态”),即状态er和p1。在mlc模式中,存储器单元存储2位,并且具有四个状态,即状态er、p1、p2和p3。在tlc模式中,存储器单元存储3位,并且具有八个状态,即状态er和状态p1
–
p7。在qlc模式中,存储器单元存储4位,并且具有16个状态。
44.图3示出了根据本公开的一些方面的以三级单元(tlc)模式编程的nand闪存存储器的阈值电压v
th
分布。由于各种变化,存储器单元的每一状态包括一定范围的阈值电压v
th
(x轴),其中,每一状态的阈值电压v
th
分布可以由概率密度(y轴)表示。在一些方面中,可以通过使用增量步进脉冲编程(ispp,incremental step pulse programming)方案对八个tlc状态编程,其中,可以通过增加步进脉冲v
step
而使编程电压v
pgm
递增式增大。相应地,可以从具有较低阈值电压的状态p1到具有最高阈值电压的状态p7对八个tlc状态编程。
45.在一些方面中,为了提高编程速度,可以同时对同一存储器页216(图2)中的共享同一条字线(即相同控制栅极208)的存储器单元进行编程。在每一ispp脉冲之后,可以执行
验证读取。在一些方面中,可以通过控制tsg 206和/或lsg 204来禁止对已经达到目标状态(即,目标阈值电压)的存储器单元做进一步编程。在一些方面中,还可以通过提高对应位线上的电压来禁止对存储器单元做进一步编程。
46.在编程之后,可以通过使用一个或多个读取参考电压v
r1-v
r7
对八个tlc状态er和p1-p7进行验证。通过向目标存储器单元的控制栅极施加读取参考电压v
r1-v
r7
中的一个或多个电压,可以确定该存储器单元的阈值电压v
th
的范围。例如,为了验证目标存储单元340是否处于状态er,可以使用读取参考电压v
r1
。如果目标存储器单元处于状态er,那么目标存储器单元的阈值电压v
th
低于读取参考电压v
r1
。该目标存储器单元可以被导通并且在沟道中形成导电路径。如果目标存储器单元处于状态p1-p7中的任何一个状态,那么目标存储器单元的阈值电压v
th
高于读取参考电压v
r1
。由此目标存储器单元被关断。通过在对应位线处测量或感测通过目标存储器单元的电流,可以验证目标存储器单元的阈值电压v
th
或状态。
47.如上文所描述的,为了确定以slc模式存储的两个状态er和p1,只需读取参考电压v
r1
。为确定mlc模式中的四个状态er和p1-p3,可以使用读取参考电压v
r1
、v
r2
和v
r3
。为确定tlc模式的八个状态er和p1-p7,可以使用读取参考电压v
r1-v
r7
。例如,在tlc模式中,状态er的阈值电压低于v
r1
,并且状态p7的阈值电压高于v
r7
,其中,状态p1的阈值电压介于v
r1
与v
r2
之间。可以类似地确定状态p2-p6。
48.在一些方面中,为了提高读取和编程速度,可以同时对多个存储器页(“物理页”)进行读取或编程。在mlc、tlc或qlc模式中,可以基于一个或多个逻辑页对每一存储器页读取或编程。例如,在每存储器单元具有3位的tlc模式中,可以基于3个逻辑页,例如,下页、中间页和上页对存储器页编程。
49.图4示出了根据本公开的方面的采用正常编程的数据预处理(dpp)的示例。可以关于图1、图2和图11的元件来描述图4。示例400可以由存储系统(例如,图1的存储系统100)执行。示例400也可以由图11的计算机系统1100来执行。但是示例400不限于这些附图中描绘的具体方面,并且可以使用其他系统执行该方法,这是本领域技术人员所理解的。应当认识到,可能并不需要所有的操作,而且可以不以与图4所示的相同的顺序来执行这些操作。
50.在一些方面中,如上文所描述的,闪存存储器芯片(例如,存储系统100)可以接收要被写入到该闪存存储器芯片的单元中的数据。在一些方面中,闪存存储器芯片的单元又被称为该闪存存储器芯片的存储器单元。所接收的数据可以包括一个或多个数据单位。在编程操作之前,闪存存储器芯片的控制器基于表格402和表格404转换一个或多个数据单位。例如,数据单位可以包括二进制码(010)。控制器确定表格402的第5列包括二进制码(010)。然后,控制器确定表格404的第5列包括二进制码(001),并且将该数据单位转换成二进制码(001)。
51.在一些方面中,在转换数据单位之后,控制器执行编程操作。表格404还用作用于编程和验证操作的查找表格。在一些方面中,表格404的每一列对应于一个电压电平。例如,列1对应lv0,其又被称为擦除状态电压电平。列2对应于lv1。在一些方面中,对应于列1到列8的lv0到lv7处于递增顺序。例如,lv7具有最高电压电平,并且lv0具有最低电压电平。在一些方面中,lv0对应于图3的er,并且lv1到lv7对应于图3的p1到p7,如上文所述。在一些方面中,控制器基于由表格404确定的电压电平对对应于数据单位的单元编程。例如,包括二进制码(010)的数据单位与表格404的列4匹配。因此,控制器对对应于该数据单位的单元编
程,直至该单元达到lv3电压。
52.在一些方面中,该数据单位基于数据锁存器中的位置对应于该单元。如上文所述,页缓冲器,例如,页缓冲器110可以包括一个或多个数据锁存器。例如,这里的页缓冲器包括三个数据锁存器:又被称为d1锁存器、d2锁存器和dc锁存器的lp、mp和up。一个或多个数据单位中的每一个数据单位包括分别存储在lp、mp和up中的三个位。控制器可以确定该数据单位占据了lp、mp和up中的每者中的位置,例如,第10位,并且确定对应于该位置的单元。然后,控制器将要施加至该单元的电压配置为lv3电压。
53.在一些方面中,控制器通过电压电平批量地对单元编程。例如,控制器可以将单元编程至lv1电压。控制器选择包括二进制码(000)的第一组数据单位。然后,控制器基于第一组数据单位在数据锁存器中的位置而定位出对应于第一组数据单位的第一组单元。最后,控制器将该第一组单元编程至lv1电压。在一些方面中,在对第一组单元编程之后,控制器对该第一组单元进行验证。例如,控制器选择包括二进制码(000)的第一组数据单位并且定位出第一组单元。然后,控制器检查该第一组单元是否满足第一电压要求。在一些方面中,第一电压要求可以是lv1电压或者lv1电压的一定比例。例如,lv1电压可以是-1.4v。第一电压要求可以是-1.4v或者略微低于lv1电压的-1.5v。类似地,lv2电压可以是-0.4v,并且第二电压要求可以是-0.4v或者略微低于lv2电压的-0.5v。lv3电压可以是0.4v,并且第三电压要求可以是0.4v或者作为lv3电压的90%的0.36v。lv3-lv7电压以类似方式对应于电压要求。如果第一组单元满足第一电压要求,那么控制器将第一组数据单位转换为二进制码(111)。
54.在一些方面中,控制器从较低电压电平到较高电压电平以批量方式对单元进行编程和验证。例如,控制器从lv1开始批量编程,因为lv0对应于擦除状态。在对第一组单元编程之后,控制器将第一组数据单位转换成二进制码(111),并且开始对对应于lv2的第二组单元编程。例如,控制器选择具有二进制码(100)的第二组数据单位,并且然后基于第二组数据单位选择第二组单元。
55.在一些方面中,控制器通过选择0来选择数据。例如,在选择包括二进制码(100)的第二组数据单位时,控制器检查数据单位是否在其第二位和第三位中包含“0”。可以看出,第一组数据单位也会被选择,因为第一组数据单位包括二进制码(000),二进制码(000)也在第二位和第三位中包含“0”。然而,由于控制器先前已经在对第一组单元进行验证之后将第一组数据单位转换成了二进制码(111),因此第一组数据单位将不再被选择,并且因此避免了选择错误。在一些方面中,如上文所述的通过选择0来选择数据单位被称为正常编程。正常编程可以提高选择的效率,因为选择“0”可以比选择“1”更容易。
56.为了执行正常编程,对应于较高电压的数据单位具有对应于较低电压的数据单位的“0”位的子集。例如,基于表格404,列3具有位于mp行和up行中的“0”位。因此,列3的“0”位集合是{mp行,up行}。因此,对于更晚的列(例如,列4-8),mp行和up行内的“0”位集合都是{mp行,up行}的子集。换句话说,列4-8不包括位于mp行和up行两者中的“0”位。例如,就列5而言,只有mp行包括“0”位。因此,列5的mp行和up行中的“0”位集合是{mp行},其为{mp行,up行}的子集。通过这种方式,在控制器选择具有位于mp行和up(第二位和第三位)中的“0”位的数据单位时,对应于列4-8的数据单位将不被选择。
57.在一些方面中,控制器可以在所有的数据单位都受到编程和验证之前释放数据锁
存器。例如,控制器可以在lv7的数据单位受到编程和验证之前释放数据锁存器up(dc锁存器)。在一些方面中,在验证lv5的单元之后,控制器将对应的数据单位转换成二进制码(111)。在这样的情况下,所接收到的数据单位包括三种二进制码:(111)、(011)和(101)。这是因为,除了对应于(011)和(101)的数据单位之外,所有的数据单位都被验证并且转化成为二进制码(111)。在只有三种可能的二进制码的情况下,控制器可以采用lp和mp数据锁存器中的位进行区分。例如,为了选择对应于lv6或(011)的数据单位,控制器可以采用lp行中的“0”选择数据单位。类似地,控制器可以通过选择mp行中的“0”来选择对应于lv7或(101)的数据单位。因此,控制器可以释放up数据锁存器,up数据锁存器可以被用于存储新接收到的数据。然而,应用表格404,控制器可以释放up数据锁存器的最早时间是在对lv5的单元进行编程和验证之后。这可能不满足提早高速缓存释放编程(ecrp,early cache release program),ecrp要求在对lv5的单元进行编程和验证之前释放up数据锁存器。
58.图5示出了根据本公开的方面的采用提早释放操作的dpp的示例。可以关于图1、图2和图11的元件来描述图5。示例500可以由存储系统(例如,图1的存储系统100)执行。示例500也可以由图11的计算机系统1100来执行。但是示例500不限于这些附图中描绘的具体方面,并且可以使用其他系统执行该方法,这是本领域技术人员所理解的。应当认识到,可能不需要所有的操作,并且可以不以与图5所示的相同的顺序来执行这些操作。
59.在一些方面中,如上文所描述的,闪存存储器芯片(例如,存储系统100)接收要被写入到该闪存存储器芯片的单元中的数据。在编程操作之前,闪存存储器芯片的控制器基于表格502和表格504转换一个或多个数据单位。之后,控制器通过从lv1到lv7的电压电平对单元进行编程和验证。在一些方面中,在对lv4的单元进行编程和验证之后,所接收到的数据单位包括四种二进制码:(111)、(000)、(100)和(010)。对应于lv1到lv4的数据单位在被验证之后转换成了二进制码(111)。对应于lv0的数据单位最初就包括二进制码(111)。lv5、lv6和lv7的数据单位对应于二进制码(000)、(100)和(010)。在只有四种可能的二进制码的情况下,控制器可以采用lp和mp数据锁存器中的位区分不同电压电平的数据单位,即,2位对应于四种可能性。例如,为了选择对应于lv5或(000)的数据单位,控制器可以采用lp行和mp行两者中的“0”选择数据单位。类似地,控制器可以通过选择mp行中的“0”来选择对应于lv6或(100)的数据单位。因此,控制器可以在lv4之后就释放up数据锁存器,这满足了ecrp要求。
60.另一方面,应用表格504,控制器不可以执行正常编程。例如,在选择lv2的数据单位时,控制器选择mp行中的“0”。除了lv2的数据单位之外,控制器还可能选择了lv5和lv6的数据单位。在这种情况下,控制器将lv5和lv6的单元编程并且验证为具有lv2的电压电平,这将成为错误。此外,在对lv5和lv6的单元进行验证之后,控制器将lv5和lv6的数据单位转换成二进制码(111),并且因此该错误将无法通过验证被发现。
61.图6示出了根据本公开的方面的采用正常编程和提早释放操作两者的数据预处理的示例。可以关于图1、图2和图11的元件来描述图6。示例600可以由存储系统(例如,图1的存储系统100)执行。示例600也可以由图11的计算机系统1100来执行。但是示例600不限于这些附图中描绘的具体方面,并且可以使用其他系统执行该方法,这是本领域技术人员所理解的。应当认识到,可能不需要所有操作,并且可以不以与图6所示的相同的顺序来执行这些操作。
62.在一些方面中,如上文所描述的,闪存存储器芯片(例如,存储系统100)接收要被写入到该闪存存储器芯片的单元中的数据。在编程操作之前,闪存存储器芯片的控制器基于表格602和表格604转换一个或多个数据单位。之上,控制器通过从lv1到lv7的电压电平对单元进行编程和验证。在一些方面中,在对lv4的单元进行编程和验证之后,所接收到的数据单位包括四种二进制码:(111)、(001)、(101)和(011)。对应于lv1到lv4的数据单位在被验证之后转换成了二进制码(111)。对应于lv0的数据单位最初就包括二进制码(111)。lv5、lv6和lv7的数据单位对应于二进制码(001)、(101)和(011)。在只有四种可能的二进制码的情况下,控制器可以采用lp和mp数据锁存器中的位进行区分,即,2位对应于四种可能性。例如,为选择对应于lv5或(001)的数据单位,控制器可以采用lp行和mp行中两者中的“0”选择数据单位。类似地,控制器可以通过选择mp行中的“0”来选择对应于lv6或(101)的数据单位。因此,控制器可以在lv4之后就释放up数据锁存器,这满足了ecrp要求。
63.另一方面,应用表格604,控制器还可以执行正常编程。例如,在选择lv2的数据单位时,控制器选择mp行和up行中的“0”。lv3到lv7的数据单位不会被选择,因为它们当中没有任何一个在mp行和up行两者中包括“0”。因此,在编程和验证操作中应用表格604满足ecrp要求和正常编程两者。
64.图7示出了根据本公开的方面的第5级处的提早释放操作的示例。可以关于图1、图2和图11的元件来描述图7。示例700可以由存储系统(例如,图1的存储系统100)执行。示例700也可以由图11的计算机系统1100来执行。但是示例700不限于这些附图中描绘的具体方面,并且可以使用其他系统执行该方法,这是本领域技术人员所理解的。应当认识到,可能不需要所有操作,并且可以不以与图7所示的相同的顺序来执行这些操作。
65.在一些方面中,通过应用表格604,控制器可以在验证lv4的单元之后释放dc锁存器。控制器将新接收到的数据(例如,下一lp数据锁存器的数据)存储到dc锁存器中。在一些方面中,控制器首先接收lp数据锁存器的数据,然后接收mp数据锁存器的数据,并且最后接收up数据锁存器的数据。
66.如上文所描述的,控制器选择d1和d2锁存器中的“0”,以对lv5、lv6和lv7的单元进行编程和验证。例如,控制器选择lv5的数据单位,lv5在d1和d2锁存器中包括“0”。lv6和lv7的数据单位则不会被选择,因为它们在d1锁存器中或在d2锁存器中包括“0”,而非在两者中均包括“0”。
67.在一些方面中,闪存存储器芯片(例如,存储系统100)还包括ds数据锁存器。换句话说,所接收到的数据单位中的每个数据单位还可以包括第四位。除了lv0的数据单位之外,对于所接收到的数据单位中的每个数据单位,ds数据锁存器最初都包括“0”位。在对应于数据单位的单元被验证之后,控制器将ds数据锁存器的对应部分转换成1。在一些方面中,在对单元编程时,控制器基于ds数据锁存器而非d1数据锁存器(lp)、d2数据锁存器(mp)和dc数据锁存器(up)来选择数据单位。例如,在对lv1的单元编程时,控制器选择在ds数据锁存器中具有“0”的数据单位,并且向对应单元施加lv1电压。在这样的情况下,lv2到lv7的单元也被编程并且被施加lv1电压。然而,在验证lv1的单元时,控制器基于d1数据锁存器(lp)、d2数据锁存器(mp)和dc数据锁存器(up)进行选择。如上文所述,lv2到lv7的单元将不被验证。在lv1的单元被验证之后,对应于lv1的数据单位的ds锁存器中的位被转换成1。对于另一示例,在对lv2的单元编程时,控制器选择在ds数据锁存器中具有“0”的数据单位,并
且向对应单元施加lv2电压。在这样的情况下,lv3到lv7的单元也被编程并且被施加lv2电压。然而,先前被编程和验证的lv1的单元这里被编程,并且因此避免了向较低电压的lv1的单元施加较高电压的lv2。
68.图8示出了根据本公开的方面的第6级处的提早释放操作的示例。可以关于图1、图2和图11的元件来描述图8。示例800可以由存储系统(例如,图1的存储系统100)执行。示例800也可以由图11的计算机系统1100来执行。但是示例800不限于这些附图中描绘的具体方面,并且可以使用其他系统执行该方法,这是本领域技术人员所理解的。应当认识到,可能需要所有操作,并且可以不以与图8所示的相同的顺序来执行这些操作。
69.在一些方面中,通过应用表格604,控制器在验证lv5的单元之后进一步释放d1锁存器。控制器将下一lp数据锁存器的数据移动到新释放的d1锁存器中。控制器还将新接收到的数据(例如,下一mp数据锁存器的数据)存储在dc锁存器中。在一些方面中,控制器首先将新接收的数据存储在dc锁存器中,并且然后按顺序移动到d1和d2锁存器中。
70.在一些方面中,由于只有一个数据锁存器是可用的,因此控制器选择d2锁存器中的“0”,以对lv6的单元进行编程和验证。例如,控制器选择在d2锁存器中包括“0”的数据单位有lv7的数据单位则不会被选择,因为它们在d2锁存器中包括“1”。
71.图9示出了根据本公开的方面的第7级处的提早释放操作的示例。可以关于图1、图2和图11的元件来描述图9。示例900可以由存储系统(例如,图1的存储系统100)执行。示例900也可以由图11的计算机系统1100来执行。但是示例900不限于这些附图中描绘的具体方面,并且可以使用其他系统执行该方法,这是本领域技术人员所理解的。应当认识到,可能不需要所有操作,并且可以不以与图9所示的相同的顺序来执行这些操作。
72.在一些方面中,通过应用表格604,控制器在验证lv6的单元之后进一步释放d2锁存器。控制器将下一mp数据锁存器的数据移动到新释放的d2锁存器中。控制器还将新接收到的数据(例如,下一up数据锁存器的数据)存储在dc锁存器中。在这样的情况下,接收并且存储了进一步操作的数据单位。
73.在一些方面中,由于d2也被释放,因此控制器在编程操作和验证两者中都基于ds数据锁存器选择lv7的数据单位。如上文所述,控制器在对单元进行验证之后转换ds数据锁存器的对应位。由于lv7的单元未被编程和验证,因此ds数据锁存器的对应位为“0”,并且控制器基于对应位选择lv7的数据单位。
74.图10示出了根据本公开的方面的采用预处理进行编程操作的示例方法。为方便而非限制,可以关于图1、图2和图11的元件来描述图10。示例方法1000可以由存储系统(例如,图1的存储系统100)执行。示例方法1000也可以由图11的计算机系统1100来执行。但是示例方法1000不限于这些附图中描绘的具体方面,并且可以使用其他系统执行该方法,这是本领域技术人员所理解的。应当认识到,可能不需要所有操作,并且可以不以与图10所示的相同的顺序来执行这些操作。
75.在1002处,闪存存储器芯片(例如,存储系统100)接收要被写入到该闪存存储器芯片的单元中的数据。所接收到的数据包括一个或多个数据单位,这些数据单位中的每个数据单位包括一个或多个位。控制器(例如,主机控制器104)将数据单位存储到页缓冲器(例如,页缓冲器110)中。页缓冲器可以包括一个或多个数据锁存器。例如,页缓冲器可以包括三个数据锁存器。对应地,一个或多个数据单位中的每个数据单位包括分别存储在三个数
据锁存器中的三个位。
76.在1004处,控制器基于第一表格和第二表格(例如,图6的表格602和表格604)转换所接收到的一个或多个数据单位。例如,控制器确定数据单位与第一表格的列匹配,并且然后将该数据单位转换成第二表格的对应列的二进制码。
77.在1006处,控制器基于转换的数据对闪存存储器芯片的单元编程。在一些方面中,控制器从较低电压电平向较高电压电平每次对一个电压电平的单元进行编程。例如,参考表格604,控制器可以首先对lv1的单元编程。具体地,控制器选择对应于lv1的第一组数据单位,即包括(000)的数据单位。然后,控制器定位出lv1的单元,并且施加ispp电压,直至单元达到lv1电压电平。之后,在对其他电压电平的单元编程之前,控制移动至1008。在一些方面中,由于lv0对应于擦除状态,因此跳过lv0的单元。
78.在1008处,控制器对在1006中编程的单元进行验证。例如,在对lv1的单元进行编程之后,控制器检查lv1的单元是否满足lv1电压要求。lv1电压要求可以是lv1电压电平或者lv1电压电平的一定比例。控制器还计量未满足lv1电压要求的单元的数量。
79.在1010处,控制器确定在1006中编程的单元的验证是否成功。例如,如果失败的单元数量超过一定阈值,那么控制器可以确定验证不成功。在这样的情况下,控制移回到1006,并且控制器再次对单元,例如,lv1的单元进行编程。否则,控制器确定验证成功,并且控制移至1012。
80.在1012处,控制器确定是否有可能释放锁存器。例如,参考表格604,如果在1010中成功验证的单元是lv4的单元,那么控制器可以确定可以释放dc锁存器。如果在1010中成功验证的单元是lv5的单元,那么控制器还可以确定可以释放d1锁存器。如果在1010中成功验证的单元是lv6的单元,那么控制器还可以确定可以释放d2锁存器。在这些情况中的任何情况下,控制移动至1016。
81.在1016处,控制器释放数据锁存器,例如dc锁存器、d1锁存器或d2锁存器。然后,控制移回到1006,并且控制器对下一电压电平的单元进行编程。
82.返回参考1012,如果控制器确定不可能释放数据锁存器,那么控制移动至1014。
83.在1014处,控制器确定是否完成了编程操作。例如,控制器可以确定在1010中成功验证的单元是lv7的单元。在这样的情况下,不可能释放数据锁存器,因为所有的数据锁存器均被释放。然而,由于lv7的单元是最后被编程的,因此控制器完成了对所接收数据单位的编程,并且完成了该编程操作。在这样的情况下,控制移动到1018,并且该编程操作结束。
84.返回参考1014,控制器可以确定编程操作未完成。例如,在1010中成功验证的单元可以是lv2的单元。因此,此时太早而不能释放数据锁存器,并且还有更多的单元要编程。在这样的情况下,控制移动到1006,并且控制器继续对下一电压电平的单元(例如,具有lv3的单元)编程。
85.例如,可以使用一个或多个计算机系统(例如,图11中所示的计算机系统1100)来实施各个方面。计算机系统1100可以是能够执行本文描述的功能(例如,图1的存储系统100)的任何公知的计算机。计算机系统1100包括一个或多个处理器(又称为中央处理单元或cpu(central processing unit)),例如,处理器1104。处理器1104连接至通信基础设施1106(例如,总线)。计算机系统1100还包括(一个或多个)用户输入/输出设备1103,例如监视器、键盘、定点设备等,它们通过(一个或多个)用户输入/输出接口1102与通信基础设施
1106通信。计算机系统1100还包括主存储器或主要存储器1108,例如,随机存取存储器(ram,random access memory)。主存储器1108可以包括一级或多级高速缓存。主存储器1108具有存储于其中的控制逻辑(例如,计算机软件)和/或数据。
86.计算机系统1100还可以包括一个或多个辅助存储设备或存储器1110。辅助存储器1110可以包括(例如)硬盘驱动器1112和/或可移除存储设备或驱动器1114。可移除存储驱动器1114可以是软盘驱动器、磁带驱动器、紧致盘驱动器、光学存储设备、磁带备份设备和/或任何其他存储设备/驱动器。
87.可移除存储驱动器1114可以与可移除存储单元1118交互。可移除存储单元1118包括计算机可用或可读存储设备,其具有存储于其上的计算机软件(控制逻辑)和/或数据。可移除存储单元1118可以是软盘、磁带、紧致盘、dvd、光学存储盘和/或任何其他计算机数据存储设备。可移除存储驱动器1114以公知方式从可移除存储单元1118读取和/或向可移除存储单元1118写入。
88.根据一些方面,辅助存储器1110可以包括用于允许计算机程序和/或其他指令和/或数据被计算机系统1100访问的其他机构、措施或其他方案。此类机构、措施或其他方案可以包括(例如)可移除存储单元1122和接口1120。可移除存储单元1122和接口1120的示例可以包括程序盒(program cartridge)和盒接口(例如,发现于视频游戏设备)、可移除存储器芯片(例如eprom或prom)和相关联的插口、存储器棒和usb端口、存储器卡和相关联的存储器卡插槽和/或任何其他可移除存储单元和相关联接口。
89.计算机系统1100还可以包括通信或网络接口1124。通信接口1124使计算机系统1100能够与远程设备、远程网络、远程实体等的任何组合(以附图标记1128单独和统一标示)进行通信和交互。例如,通信接口1124可以允许计算机系统1100通过通信路径1126与远程设备1128通信,通信路径1126可以是有线和/或无线的,并且可以包括lan、wan、因特网等的任何组合。可以经由通信路径1126往返于计算机系统1100进行控制逻辑和/或数据的传输。
90.可以在各种各样的配置和架构中实施前述方面中的操作。因此,前述方面中的操作的一些或全部可以在硬件中执行,在软件中执行,或者在两者中执行。在一些方面中,一种有形的非暂态装置或制品包括在本文中又称为计算机程序产品或程序存储设备的具有存储于其上的控制逻辑(软件)的有形、非暂态计算机可用或可读介质。该装置或制品包括但不限于计算机系统1100、主存储器1108、辅助存储器1110和可移除存储单元1118、1122以及体现前述任何组合的有形制品。此类控制逻辑在由一个或多个数据处理设备(例如,计算机系统1100)执行时使得这样的数据处理设备进行如本文所述的操作。
91.基于本公开中包含的教导,(一个或多个)相关领域的技术人员将清楚如何使用图11所示的以外的数据处理设备、计算机系统和/或计算机架构来做出和使用本公开的各个方面。特别地,各个方面可以利用本文描述的软件、硬件和/或操作系统实施方式以外的软件、硬件和/或操作系统实施方式进行操作。
92.总之,本公开描述了存储器存储系统及其实现方法的各个方面。
93.本公开的一些方面提供了一种存储器设备,该存储器设备包括被配置为存储数据的n个数据锁存器以及耦接至n个数据锁存器的控制器。该控制器被配置为接收包括多个数据单位的数据,并且将数据单位存储在n个数据锁存器中,其中,每个数据单位包括n行,并
且n行中的每行包含一位。该处理器还被配置为基于第一表格和第二表格转换数据单位,并且基于转换的数据单位对存储器设备的单元进行编程。第一表格和第二表格包括n行和2n列的位,并且在第二表格的第n行中从第2
n-n+1列到第2n列的位是相同的。第二表格还包括第l列,该第l列在其一行或多行中包含k数量的“0”。第二表格的第m列的一行或多行包含小于k数量的0,其中,l小于m。
94.本公开的一些方面涉及该存储器设备,其中,为了转换数据单位,该控制器还被配置为确定多个数据单位中的其中一个数据单位与第一表格的第i列的位匹配,并且将该数据单位转换成第二表格的第i列的位。
95.本公开的一些方面涉及该存储器设备,其中,第二表格的列对应于相应的电压电平。
96.本公开的一些方面涉及该存储器设备,其中,为了将数据单位存储在n个数据锁存器中,该控制器还被配置为将数据单位中的每个数据单位的第j位存储在第j个数据锁存器中。
97.本公开的一些方面涉及该存储器设备,其中,为了基于转换的数据单位对存储器设备的单元进行编程,该控制器还被配置为:确定转换的数据单位中的一个或多个数据单位与第二表格的目标列匹配;确定对应于该目标列的目标电压电平;确定该存储器设备的单元中的对应于一个或多个数据单位的一个或多个单元;并且向一个或多个单元施加该目标电压电平。
98.本公开的一些方面涉及该存储器设备,其中,该控制器还被配置为验证一个或多个单元,该控制器被配置为:确定第二表格的该目标列的一组行包含“0”位;基于该组行确定一个或多个数据单位;基于一个或多个数据单位确定一个或多个单元;验证一个或多个单元的电压电平高于电压要求;并且基于该组行将一个或多个数据单位的一行或多行转换成“1”位。
99.本公开的一些方面涉及该存储器设备,其中,该控制器还被配置为:确定该目标列是第二表格的第2
n-1
+1列;并且释放该存储器设备的第n个数据锁存器。
100.本公开的一些方面提供了一种用于操作存储器设备的方法,该方法包括:接收包括多个数据单位的数据,其中,每个数据单位包括n个位;将数据单位存储在n个数据锁存器中;基于第一表格和第二表格转换数据单位;以及基于转换的数据单位对该存储器设备的单元进行编程。第一表格和第二表格包括n行和2n列的位,并且在第二表格的第n行中从第2
n-n+1列到第2n列的位是相同的。第二表格还包括第l列,该第l列在其一行或多行中包含k数量的“0”。第二表格的第m列的一行或多行包含小于k数量的0,其中,l小于m。
101.本公开的一些方面提供了用于操作存储器设备的方法,其中,转换数据单位还包括:确定多个数据单位中的其中一个数据单位与第一表格的第i列的位匹配;以及将该数据单位转换成第二表格的第i列的位。
102.本公开的一些方面提供了用于操作存储器设备的方法,其中,第二表格的列对应于相应的电压电平。
103.本公开的一些方面提供了用于操作存储器设备的方法,其中,将数据单位存储在n个数据锁存器中还包括:将数据单位中的每个数据单位的第j位存储在第j个数据锁存器中。
104.本公开的一些方面提供了用于操作存储器设备的方法,其中,基于转换的数据单位对该存储器设备的单元进行编程还包括:确定转换的数据单位中的一个或多个数据单位与第二表格的目标列匹配;确定对应于该目标列的目标电压电平;确定该存储器设备的单元中的与一个或多个数据单位对应的一个或多个单元;以及向一个或多个单元施加该目标电压电平。
105.本公开的一些方面提供了用于操作存储器设备的方法,该方法还包括通过以下操作验证一个或多个单元:确定第二表格的该目标列的一组行包含“0”位;基于该组行确定一个或多个数据单位;基于一个或多个数据单位确定一个或多个单元;验证一个或多个单元的电压电平高于电压要求;以及基于该组行将一个或多个数据单位的一行或多行转换成“1”位。
106.本公开的一些方面提供了用于操作存储器设备的方法,该方法还包括:确定该目标列是第二表格的第2
n-1
+1列;以及释放该存储器设备的第n数据锁存器。
107.本公开的一些方面提供了一种包括指令的非暂态计算机可读介质(crm),所述指令在由存储器设备的一个或多个处理器执行时使该存储器设备执行操作,所述操作包括:接收包括多个数据单位的数据,其中,每个数据单位包括n个位;将数据单位存储在n个数据锁存器中;基于第一表格和第二表格转换数据单位;以及基于转换的数据单位对该存储器设备的单元进行编程。第一表格和第二表格包括n行和2n列的位,并且在第二表格的第n行中从第2
n-n+1列到第2n列的位是相同的。第二表格还包括第l列,该第l列在其一行或多行中包含k数量的“0”。第二表格的第m列的一行或多行包含小于k数量的0,其中,l小于m。
108.本公开的一些方面提供了该非暂态crm,其中,转换数据单位还包括:确定多个数据单位中的其中一个数据单位与第一表格的第i列的位匹配;以及将该数据单位转换成第二表格的第i列的位。
109.本公开的一些方面提供了该非暂态crm,其中,第二表格的列对应于相应的电压电平。
110.本公开的一些方面提供了该非暂态crm,其中,将数据单位存储在n个数据锁存器中还包括:将数据单位中的每个数据单位的第j位存储在第j个数据锁存器中。
111.本公开的一些方面提供了该非暂态crm,其中,基于转换的数据单位对该存储器设备的单元进行编程还包括:确定转换的数据单位中的一个或多个数据单位与第二表格的目标列匹配;确定对应于该目标列的目标电压电平;确定该存储器设备的单元中的对应于一个或多个数据单位的一个或多个单元;以及向一个或多个单元施加该目标电压电平。
112.本公开的一些方面提供了该非暂态crm,其中,所述操作还包括通过以下操作验证一个或多个单元:确定第二表格的该目标列的一组行包含“0”位;基于该组行确定一个或多个数据单位;基于一个或多个数据单位确定一个或多个单元;验证一个或多个单元的电压电平高于电压要求;以及基于该组行将一个或多个数据单位的一行或多行转换成“1”位。
113.本公开的一些方面提供了该非暂态crm,其中,所述操作还包括:确定该目标列是第二表格的第2
n-1
+1列;以及释放该存储器设备的第n个数据锁存器。
114.发明内容部分和摘要部分可能阐述了(一个或多个)发明人设想的本公开的一个或多个示例性方面,而非全部的示例性方面,并且因此并非旨在以任何方式对本公开和所附权利要求进行限制。
115.尽管本文已经参考针对示例性领域和应用的示例性方面描述了本公开,但是应当理解本公开不限于此。其他方面和对其的修改也是可能的,并且处于本公开的范围和精神内。例如,在不限制本段落的一般性的情况下,各个方面不限于附图中所示和/或本文描述的软件、硬件、固件和/或实体。此外,各个方面(不管是否在本文中给出了明确描述)对于超出本文描述的示例的领域和应用具有显著的实用性。
116.本文已经借助于示出所指定的功能及其关系的实施方式的功能构建块描述了各个方面。为了描述的方便起见,本文已经任意地定义了这些功能构建块的边界。可以定义替代边界,只要适当地执行指定功能和关系(或其等价方案)即可。另外,替代方面可以使用不同于本文描述的那些的顺序来执行功能块、步骤、操作、方法等。
117.在本文中对“一个方面”、“方面”、“示例方面”或类似短语的引用表明所描述的方面可以包括特定的特征、结构或特性,但未必每个方面可以包括该特定的特征、结构或特特性。此外,这样的短语未必是指相同的方面。此外,在特定的特征、结构或特性被结合一个方面描述时,将这样的特征、结构或特性结合到其他方面(不管本文是否对其做出了明确提及或描述)中是处于(一个或多)相关领域技术人员的知识范围内的。
118.本公开的宽度和范围不应由上文描述的示例性方面中的任何示例性方面限制,而是仅根据下述权利要求及其等价方案限定。
技术特征:1.一种存储器设备,包括:n个数据锁存器,被配置为存储数据;以及控制器,耦接至所述n个数据锁存器,并且被配置为:接收包括多个数据单位的数据,其中,每个数据单位包括n个位;将所述数据单位存储在所述n个数据锁存器中;基于第一表格和第二表格转换所述数据单位;以及基于转换的所述数据单位对所述存储器设备的单元进行编程,其中,所述第一表格和所述第二表格包括n行和2
n
列的位;其中,在所述第二表格的第n行中从第2
n-1
+2列到第2
n
列的位是相同的;其中,所述第二表格的第l列包含在所述第l列的一行或多行中的k数量的“0”,其中,所述第二表格的第m列的所述一行或多行包含小于k数量的0,并且其中,l小于m。2.根据权利要求1所述的存储器设备,其中,为了转换所述数据单位,所述控制器还被配置为:确定所述多个数据单位中的其中一个数据单位与所述第一表格的第i列的位匹配;以及将所述数据单位转换成所述第二表格的第i列的位。3.根据权利要求1所述的存储器设备,其中,所述第二表格的列对应于一组相应的电压电平。4.根据权利要求1所述的存储器设备,其中,为了将所述数据单位存储在所述n个数据锁存器中,所述控制器还被配置为:将所述数据单位中的每个数据单位的第j位存储在第j个数据锁存器中。5.根据权利要求1所述的存储器设备,其中,为了基于转换的所述数据单位对所述存储器设备的所述单元进行编程,所述控制器还被配置为:确定转换的所述数据单位中的一个或多个数据单位与所述第二表格的目标列匹配;确定对应于所述目标列的目标电压电平;确定所述存储器设备的所述单元中的与所述一个或多个数据单位对应的一个或多个单元;以及将所述一个或多个单元编程到所述目标电压电平。6.根据权利要求5所述的存储器设备,其中,所述控制器还被配置为验证所述一个或多个单元,所述控制器被配置为:确定所述第二表格的所述目标列的一组行包含“0”位;基于所述一组行确定所述一个或多个数据单位;基于所述一个或多个数据单位确定所述一个或多个单元;验证所述一个或多个单元的电压电平高于电压要求;以及基于所述一组行将所述一个或多个数据单位的一行或多行转换成“1”位。7.根据权利要求6所述的存储器设备,其中,所述控制器还被配置为:确定所述目标列是所述第二表格的第2
n-1
+1列;以及释放所述存储器设备的第n个数据锁存器。
8.一种用于操作存储器设备的方法,包括:接收包括多个数据单位的数据,其中,每个数据单位包括n个位;将所述数据单位存储在n个数据锁存器中;基于第一表格和第二表格转换所述数据单位;以及基于转换的所述数据单位对所述存储器设备的单元进行编程,其中,所述第一表格和所述第二表格包括n行和2
n
列的位;其中,在所述第二表格的第n行中从第2
n-1
+2列到第2
n
列的位是相同的;其中,所述第二表格的第l列包含在所述第l列的一行或多行中的k数量的“0”,其中,所述第二表格的第m列的所述一行或多行包含小于k数量的0,并且其中,l小于m。9.根据权利要求8所述的方法,其中,转换所述数据单位还包括:确定所述多个数据单位中的其中一个数据单位与所述第一表格的第i列的位匹配;以及将所述数据单位转换成所述第二表格的第i列的位。10.根据权利要求8所述的方法,其中,所述第二表格的列对应于相应的一组电压电平。11.根据权利要求8所述的方法,其中,将所述数据单位存储在所述n个数据锁存器中还包括:将所述数据单位中的每个数据单位的第j位存储在第j个数据锁存器中。12.根据权利要求8所述的方法,其中,基于转换的所述数据单位对所述存储器设备的所述单元进行编程还包括:确定转换的所述数据单位中的一个或多个数据单位与所述第二表格的目标列匹配;确定对应于所述目标列的目标电压电平;确定所述存储器设备的所述单元中的与所述一个或多个数据单位对应的一个或多个单元;以及将所述一个或多个单元编程到所述目标电压电平。13.根据权利要求12所述的方法,还包括通过以下操作验证所述一个或多个单元:确定所述第二表格的所述目标列的一组行包含“0”位;基于所述一组行确定所述一个或多个数据单位;基于所述一个或多个数据单位确定所述一个或多个单元;验证所述一个或多个单元的电压电平高于电压要求;以及基于所述一组行将所述一个或多个数据单位的一行或多行转换成“1”位。14.根据权利要求13所述的方法,还包括:确定所述目标列是所述第二表格的第2
n-1
+1列;以及释放所述存储器设备的第n个数据锁存器。15.一种包括指令的非暂态计算机可读介质(crm),所述指令在由存储器设备的一个或多个处理器执行时使所述存储器设备执行操作,所述操作包括:接收包括多个数据单位的数据,其中,每个数据单位包括n个位;将所述数据单位存储在n个数据锁存器中;基于第一表格和第二表格转换所述数据单位;以及
基于转换的所述数据单位对所述存储器设备的单元进行编程,其中,所述第一表格和所述第二表格包括n行和2
n
列的位;其中,在所述第二表格的第n行中从第2
n-1
+2列到第2
n
列的位是相同的;其中,所述第二表格的第l列包含在所述第l列的一行或多行中的k数量的“0”,其中,所述第二表格的第m列的所述一行或多行包含小于k数量的0,并且其中,l小于m。16.根据权利要求15所述的非暂态crm,其中,转换所述数据单位还包括:确定所述多个数据单位中的其中一个数据单位与所述第一表格的第i列的位匹配;以及将所述数据单位转换成所述第二表格的第i列的位。17.根据权利要求15所述的非暂态crm,其中,将所述数据单位存储在所述n个数据锁存器中还包括:将所述数据单位中的每个数据单位的第j位存储在第j个数据锁存器中。18.根据权利要求15所述的非暂态crm,其中,基于转换的所述数据单位对所述存储器设备的所述单元进行编程还包括:确定转换的所述数据单位中的一个或多个数据单位与所述第二表格的目标列匹配;确定对应于所述目标列的目标电压电平;确定所述存储器设备的所述单元中的与所述一个或多个数据单位对应的一个或多个单元;以及将所述一个或多个单元编程到所述目标电压电平。19.根据权利要求18所述的非暂态crm,其中,所述操作还包括通过以下操作验证所述一个或多个单元:确定所述第二表格的所述目标列的一组行包含“0”位;基于所述一组行确定所述一个或多个数据单位;基于所述一个或多个数据单位确定所述一个或多个单元;验证所述一个或多个单元的电压电平高于阈值;以及基于所述一组行将所述一个或多个数据单位的一行或多行转换成“1”位。20.根据权利要求19所述的非暂态crm,其中,所述操作还包括:确定所述目标列是所述第二表格的第2
n-1
+1列;以及释放所述存储器设备的第n个数据锁存器。
技术总结本文公开了用于编程操作的数据预处理的存储器设备和方法。在一方面中,一种存储器设备包括被配置为存储数据的N个数据锁存器以及耦接至N个数据锁存器的控制器。该控制器被配置为接收包括多个数据单位的数据,并且将数据单位存储在N个数据锁存器中,其中,每个数据单位包括N个位。处理器还被配置为基于第一表格和第二表格转换数据单位,并且基于转换的数据单位对存储器设备的单元进行编程。第一表格和第二表格包括N行和2
技术研发人员:李建杰 万维俊
受保护的技术使用者:长江存储科技有限责任公司
技术研发日:2022.04.27
技术公布日:2022/11/1