CN109891506A - 用于使用较低电压阈值进行耐久性友好编程的设备和方法 - Google Patents
用于使用较低电压阈值进行耐久性友好编程的设备和方法 Download PDFInfo
- Publication number
- CN109891506A CN109891506A CN201780049298.7A CN201780049298A CN109891506A CN 109891506 A CN109891506 A CN 109891506A CN 201780049298 A CN201780049298 A CN 201780049298A CN 109891506 A CN109891506 A CN 109891506A
- Authority
- CN
- China
- Prior art keywords
- bit
- page
- threshold voltage
- information bit
- programmed
- 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.)
- Granted
Links
Classifications
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5642—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- 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
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5648—Multilevel memory programming, reading or erasing operations wherein the order or sequence of the operations is relevant
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
Abstract
提供了一种用于使用较低电压阈值进行耐久性友好编程的方法和设备。非易失性存储器具有被组织为使用第一数量的阈值电压电平编程的页的存储单元。存储单元被组织成写入数据的存储单元组。每个存储单元组被编程为存储第一数量的信息比特。存储器控制器从页中选择第二数量的信息比特,信息比特的第二数量小于信息比特的第一数量。存储器控制器使用来自第二数量的阈值电压电平的阈值电压电平对存储单元组的存储单元进行编程,其中阈值电压电平的第二数量小于阈值电压电平的第一数量,并且包括第一数量的阈值电压电平中的最低阈值电压电平。
Description
技术领域
本文描述的实施例一般涉及一种用于使用较低电压阈值进行耐久性友好编程的方法和设备。
背景技术
固态存储装置(例如,固态驱动器)可以由非易失性存储器管芯的一个或多个封装组成,其中每个管芯由存储单元组成,其中存储单元被组织成页,并且页被组织成块。每个存储单元能存储一个或多个信息比特。表示两页中的两个信息比特的多级单元(MLC)NAND被编程为表示具有四个阈值电压电平E、P1、P2和P3的两个信息比特。NAND闪存被限制于预定数量的编程/擦除(P/E)周期,并且在此之后限制数据保持力变得不可靠。表述寿命的常见度量是总字节写入(TBW)。
数据压缩能通过改进存储效率来延长NAND存储装置的寿命。利用压缩,物理地写入存储装置的字节的总数量(即TBW)被减少,这减少了TBW并延长了NAND寿命。然而,提供数据压缩比的变化的数据压缩技术使用精致的FTL(闪速转变层)和/或文件系统支持来管理较小页并跟踪压缩数据的大小(或压缩数据的扇区的数量)。
本领域中存在对于用于将压缩数据存储在非易失性存储器存储装置的存储单元中的改进技术的需要。
附图说明
实施例通过示例参考附图进行描述,附图未按比例绘制,在附图中相似的附图标记指的是类似的元件。
图1图示了非易失性存储器存储装置的实施例。
图2图示了存储管芯控制器的实施例。
图3图示了压缩信息的实施例。
图4图示了页元数据的实施例。
图5图示了用于装置页的装置页信息的实施例。
图6A图示了用于存储单元对的阈值电压电平到三个信息比特的单元到比特映射的实施例。
图6B图示了将存储单元阈值电压电平映射到从存储装置读取的四比特以及映射到要返回的三比特的真值表。
图7A图示了用于存储单元对的阈值电压电平到两个信息比特的单元到比特映射的实施例。
图7B图示了将存储单元阈值电压电平映射到从存储装置读取的四比特以及映射到要返回的两比特的真值表。
图8图示了初始化页池中的页的操作的实施例。
图9图示了将多页的数据写入被组织为(一个或多个)存储单元组的装置页的操作的实施例。
图9A图示了基于页的压缩类型提供编程模式的表的实施例。
图10A、10B和10C图示了最低有效位然后是最高有效位到存储单元对的两步编程。
图11图示了根据图10A、10B和10C对存储单元对进行编程的编程步骤的编程表。
图12A、12B和12C图示了最高有效位然后是最低有效位到存储单元对的两步编程。
图13图示了根据图12A、12B和12C对存储单元对进行编程的编程步骤的编程表。
图14A、14B和14C提供了用于在要写入的比特与关于存储的信息比特之间进行转变的操作。
图15图示了读取存储单元对的操作的实施例。
图16图示了压缩、加密和加扰数据的页的操作的实施例。
图17图示了对存储装置中的数据进行解扰、解密和解压缩的操作的实施例。
图18图示了其中可以部署图1的存储器装置的系统。
具体实施方式
在存储在NAND闪存中之前压缩数据的现有技术系统利用精致的闪速转变操作来管理较小的页并跟踪压缩数据的扇区或块的大小或数量。其它解决方案可以在压缩数据被存储在NAND闪存中的地方轮换,这需要复杂的数据映射操作。
所描述的实施例提供了存储压缩数据的技术,其不改变页或块大小或数据到存储单元的映射,而是相反利用较低阈值电压来表示压缩数据的状态。使用较低阈值电压,诸如仅使用多级单元(MLC)NAND的可用E、P1、P2和P3阈值电压电平的E、P1和P2阈值电压电平,提供在存储单元上的较少磨损,因为更高的阈值电压(P2、P3)提供的存储单元的更大磨损,从而以比较低阈值电压电平更大的速率减少它们的寿命。以这种方式,所描述的实施例使用可用的较低阈值电压来修改写入数据所用的方式,以提供耐久性友好的编程方法论。
在如下描述中,阐述了众多特定细节,诸如逻辑实现、操作码、用于规定操作数的部件、资源划分/共享/复制实现、系统组件的类型和相互关系以及逻辑划分/集成选择,以便提供本发明的更透彻理解。然而,由本领域技术人员将认识到,本发明可以在没有此类特定细节的情况下被实践。在其它实例中,控制结构、门级电路以及全软件指令序列未详细示出,以免使本发明模糊不清。本领域普通技术人员利用所包括的描述将能够实现适当功能性而无需过多实验。
在说明书中对“一个实施例”、“实施例”、“示例实施例”等的参考指示所描述的实施例可包括具体特征、结构或特性,但每一个实施例可能不一定都包括该具体特征、结构或特性。而且,此类短语不一定指的是同一实施例。某些实施例涉及存储装置电子组件。实施例包括用于形成电子组件的装置和方法两者。
图1图示了非易失性存储器存储装置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个比特并且反之亦然的变换函数。在某些实施例中,由变换层114i执行用于接收页中的k个比特到存储在存储单元组中的m个比特并且反之亦然的映射操作。在备选实施例中,映射操作可以由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闪存,其中每个单元记录两个比特值,低比特值和高比特值。备选地,NAND管芯可以包括单级单元(SLC)、多级单元(MLC)、三级单元(TLC)NAND存储器等。NAND管芯、TLC、MLC、SLC等可以被组织成三维(3D)或二维(2D)物理结构。存储管芯1061、1062...106n可进一步包括铁电随机存取存储器(FeTRAM)、基于纳米线的非易失性存储器、诸如相变存储器(PCM)的三维(3D)交叉点存储器、结合了忆阻器技术的存储器、磁阻随机存取存储器(MRAM)、自旋转移扭矩(STT)-MRAM、单层单元(SLC)闪存以及其它电可擦除可编程只读存储器(EEPROM)型装置。
非易失性存储器存储装置100可以包括:数据压缩单元112,用于压缩从主机接口104接收的数据;数据加密单元118,用于加密压缩数据;以及加扰器单元1161、1162...116n,用于在控制器2001、2002 ...200n将数据写入存储管芯1061、1062...106n之前对加密且压缩的数据进行加扰。提供给控制器2001、2002 ...200n的数据可以被压缩,并且包括比存储在存储管芯1061、1062...106n的存储单元中的数据比特更少的数据比特。在备选实施例中,可能只有数据压缩单元112,而没有加密单元114和加扰器116单元。在又一些实施例中,数据压缩单元112、加密单元118和/或加扰器单元1161、1162...116n可以在外部主机系统中实现,使得向主机接口104提供比存储在存储单元中的比特的数量更少的比特以进行存储。
来自主机接口104的经受压缩112和加密114的数据被存储在传输缓冲器124中,数据从传输缓冲器124被传输到控制器2001、2002 ...200n,并由加扰器单元1161、1162...116n加扰,以在被写入存储管芯1061、1062...106n之前进行加扰。
包括控制器2001、2002 ...200n、压缩单元112、加密单元118和加扰器单元1161、1162...116n的非易失性存储器存储装置100中的处理组件可以被实现为固件,或者实现在非易失性存储器存储装置10内的一个或多个专用集成电路(ASIC)。备选地,这些组件可以用由非易失性存储器存储装置100的处理器执行的软件程序实现。
主机接口104将存储器装置100连接到主机系统(未示出)。存储器装置100可以被安装或嵌入在主机系统内,诸如参考图18所示出和描述的,或者存储器装置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个比特的数据块的主机操作系统。为了减少存储单元上的磨损,所描述的实施例使用一组小于所有可用阈值电压电平的最低阈值电压电平,来表示所接收的k个比特的所有可能状态。因为正在写入较少比特,所以可以利用较小数量的阈值电压电平表述状态。另外,因为对具有越高电压电平的单元进行编程导致单元上的磨损越大,所以用所有可用阈值电压电平中的较低阈值电压电平对较少的k个比特进行编程减少了存储单元上的磨损。例如,变换层1141、1142...114n可能仅需要使用可用的2n个阈值电压中的最低j个阈值电压来表示k个比特的状态,其中j是最小整数>=2k/p,其中k是接收的比特大小,并且p是存储单元组中的单元的数量。
图2示出了可以包括在管理对一组存储管芯106i(从其中访问和执行命令)的写入的每个存储管芯控制器200i中的附加组件,包括处理来自命令队列(未示出)中的附接主机(未示出)的读取/写入命令的输入/输出(I/O)逻辑202。I/O逻辑202维持用于存储管芯106i的多个可用页206的页池204和具有关于配置为使用来自页池204的页206的装置页的信息的装置页信息500。每个存储单元具有n个比特的每个装置页可以被指配来自页池204的n个页206以存储数据块。每个存储单元具有两个比特的MLC NAND将具有上级页和下级页,三级单元(TLC),将每个存储单元具有三个比特,并且对于三个比特具有三个页。
每个存储管芯控制器200i可以进一步维持压缩信息300,该压缩信息300具有关于将从存储单元组读取的m个信息比特转变为使用比所有可用阈值电压电平小的阈值电压电平写入的k个比特的数据所需的转变函数的信息。压缩信息300可以取决于实现的压缩比为不同的接收数量的k个比特提供不同的转变函数。例如,如果压缩单元112提供可变数量的压缩比特k,则不同的压缩信息实例300i为压缩单元112提供将从存储单元组读取的m个比特的数据转变为不同数量的k个比特所需的不同转变函数。
在备选实施例中,控制器102可以接收不同数量的比特,小于存储在存储单元组中的m数量的比特,不是由于压缩,而是来自应用操作和应用正在提供的比特的数量,或者来自装置100中的其它元件。
在某些实施例中,存储单元被分组为页,并且页被分组为块,其中单元中的不同比特被写入不同的页。在MLC闪存中,第一个最高有效位(MSB)被写入一个页,而最低有效位被写入另一个页,称为上级页和下级页。对于TLC存储器,用于每个存储单元的三个比特被写入三个不同页。在MLC闪存中,数据能在块处被一次擦除,以将存储单元设置为E阈值电压电平。存储单元能一次被编程一字节或字。
例如,对于包括存储单元对(即p=2)的存储单元组,可被存储在存储单元对组中的可能状态或信息比特的数量是能用16个阈值电压电平组合编程的4个信息比特或16个状态。然而,如果非易失性存储器存储装置100被编程为使用较少数量的阈值电压,诸如对于MLC NAND存储器使用四个可用阈值电压中的三个,则不需要最高P3电压,并且接收到的三个比特的可能状态能利用三个最低阈值电压电平(诸如E、P1和P2)表示。
图3图示了用于将存储管芯编程为包括编程模式302的压缩编程模式的实例300i的实施例,编程模式302基于从中选择比特的页中的数据的压缩类型来标识如何在存储单元组中对数据进行编程。压缩类型可以包括三个类别:低(例如,压缩比>=1且<1.33)、中压缩(例如,压缩比>=1.33且<2)和高压缩(例如,压缩比>2);比率适用的所接收的比特304的数量,诸如k,其中所接收的比特304的数量小于可以被存储在m个比特的存储单元组中的总数量m比特;以及转变函数306,其实现编程模式302,并且可以包括单元映射,其用于将k个所接收的比特304或k映射到使用每个存储单元的若干阈值电压编码的状态。如果不映射数据,诸如如果读取的数据块(m个比特)与接收到的块(k个比特)写入数据相同,则转变函数306可以指示不需要转变。如果使用2n个可用阈值电压的j个阈值电压,其中每个存储单元存在2n个状态,则被映射的比特的数量k包括小于或等于Log2(jp)的最大整数。从而,对于需要使用来自m个读取比特中的一个或多个比特的值被返回的k个比特中的每一比特都存在转变函数,其中m> k。从而,编程模式302的转变函数306用于将接收到的k个比特映射到阈值电压以对存储单元组中的m个信息比特进行编程,并将在存储单元组中读取的m个信息比特映射到接收到的k个比特以实现编程模式302。
图4图示了为页池120中可用的每一个页122维持的页元数据400的实例400i,包括NAND管芯402、块404、用于定位存储管芯1061、1062...106n中的页之一的页标识符406以及压缩类型408,诸如与能与页400i一起使用的一系列压缩比关联的。
图5图示了存储n比特存储单元的数据的数据的页的装置页信息500i的实例,包括装置页标识符502、存储在页500i中的地址的地址范围504、下级页ID 506,其标识作为较低页分配以存储存储单元的一个比特的页400i之一;上级页ID 508,用于存储该存储单元的一个比特,其中可以有n个页分配给用于n比特存储单元的装置页;以及编程模式510,其指示编程模式300i具有用于转变存储在装置页402中的数据的压缩类型(低、中、高)的转变函数302。
在某些实施例中,多个页提供比特以在存储单元组中进行编码。在MLC闪存中,两个页为每个存储单元提供比特,其中一个页具有第一个最高有效位(MSB),而另一页具有到另一个页的最低有效位,称为上级页和下级页。对于TLC存储器,用于每个存储单元的三个比特被写入三个不同页。在MLC闪存中,数据能在块处被一次擦除,以将存储单元设置为E阈值电压电平。整个页(通常为1kB、2KB或4kB)被一起写入。
图6A图示了单元到比特映射600的实施例,用于将由多个页(上级页和下级页或第一页和第二页)供应的k=3个信息比特映射到存储单元对,其中在存储单元组(p=2)中存在两个存储单元,并且有两个比特被存储在单元中,即MLC存储单元中。映射600可以用比特转变函数412实现,该转变函数将根据映射600确定阈值电压以用于对接收到的k个比特进行编程。映射600示出最高P3阈值电压不用于对接收到的三个比特进行编程,并且示出三个比特的所有九个可能状态可以由存储单元celli,j中的三个最低阈值电压E、P1和P2表示,其中i和j可以是表示连续存储单元的连续数字。第一列602a示出了针对celli的不同编程状态E、P1和P2,并且第一行602b示出了针对存储单元对中的cellj的不同编程状态E、P1和P2。第二列604a和第二行604b示出了针对每个存储单元的正常2比特编码,其中第一比特用于下级页,而第二比特用于上级页。表的单元示出了要存储的接收的三个比特的九种可能状态,并且列602a和行602b分别示出了用于该对的第一单元(celli)和第二单元(cellj)的阈值电压。
图6B示出了基于映射600的真值表620,其示出了用于电压列622a中的第一单元和用于电压列622b中的第二单元的不同阈值电压电平,比特列624中的全部四个比特由阈值电压622a、622b编码,并且用于三个比特值的MSB和LSB分别由比特列626a、626b中的电压列622a、622b中的阈值电压表示。真值表620仅使用在表述能被存储在存储单元对中的4个比特的所有可能16种状态时使用的可用阈值电压电平E、P1、P2和P3中的三个最低电压阈值E、P1和P2。
根据真值表620,在从传输缓冲器124中的页选择要写入的三个比特时,使用对于列626a、626b中的接收到的三个比特的如在列622a、622b中所示出的三个最低阈值电压对接收到的三个比特的MSB和LSB进行编码。真值表620用于确定来自用列624中的比特表示的存储单元对的读取和解码的四比特状态如何映射到被写入存储单元对的接收到的三个比特626a、626b。
从存储单元对读取的四个比特可以基于真值表620被转变为接收到的三个比特,如下所述,其中M0是MSB比特,B0、B1、B2、B3对应于从存储单元对读取的四个比特,L0是三个比特的第一最低有效位,L1是三个比特的第二最低有效位,B0'、B3'和B1'表示值的反转,“+”是OR函数,并且“*”是AND函数:
从而,为编程模式302提供转变函数306,其中存储单元组中的比特的数量是3,存储单元组中的存储单元的数量是2,阈值电压的数量是3(E,P1,P2),并且状态的数量是9,实现图6a和6b的映射600和真值表620以将接收到的k个比特映射到存储在存储单元组中的m个比特的数量,并且然后将从存储单元组读取的m个比特映射到接收到的k个比特以返回主机。例如,为了将来自MLC NAND单元(n=2)的存储单元对4个比特的读取块映射到最初接收到的3个比特,上面三个转变函数(1)、(2)和(3)能用于将从存储单元对读取的四个比特转变为接收到的三个比特以返回到发出请求的主机。
图7A图示了单元到比特映射700的实施例,其用于将从两个页选择的k=2个信息比特映射到存储单元对,其中在存储单元组中存在两个存储单元,并且有两个比特被存储在单元(n=2)中,即MLC存储单元中。映射700示出最高P3和P2阈值电压不需要对接收到的两个比特进行编程,并且示出两比特的所有四个可能状态由存储celli,j中的两个最低阈值电压E和P1表示。第一列702a示出了针对celli的不同编程状态E和P1,并且第一行702b示出了针对存储单元对中的cellj的不同编程状态E和P1。第二列704a和第二行704b示出了针对每个存储单元的正常2比特编码,其中第一比特用于下级页,而第二比特用于上级页。表的单元示出了要存储的接收到的两个比特的四种可能状态,并且行和列示出了用于该对的第一单元(cell0)和第二单元(cell1)的阈值电压。
图7B示出了基于映射700的真值表720,其示出了用于电压列722a中的第一单元和电压列722b中的第二单元的不同阈值电压,比特列624中的全部四个比特由阈值电压722a、722b编码,并且用于两比特值的MSB和LSB分别由比特列726a、726b中的电压列722a、722b中的阈值电压表示。真值表720仅使用在表述能被存储在存储单元对中的4个比特的所有可能16种状态时使用的可用阈值电压电平E、P1、P2和P3的两个最低电压阈值E和P1。
根据真值表720,在接收到要存储的两个比特时,使用对于列726a、726b中的接收到的两个比特的如在列722a、722b中所示出的两个最低阈值电压对接收到的两个比特的MSB和LSB进行编码。真值表720用于确定来自用列724中的四个比特表示的存储单元对的读取和解码的四比特状态如何映射到被写入存储单元对的接收到的两个比特726a、726b。
对于块从存储单元对读取的四个比特可以基于真值表720被转变为两个比特的接收到的块,如下所述,其中M0是MSB比特,B0、B1、B2、B3对应于从存储单元对读取的四个比特,L0是两个比特的最低有效位:
(4) M0 = B2
(5) L0 = B0
从而,在信息的比特的数量(k)是2的情况下,存储单元组中的存储单元的数量是2,阈值电压的数量是2(E,P1),并且状态数是4,实现图7a和7b的映射700和真值表720,以将接收到的k个比特映射到存储在存储单元组中的m个比特,并且然后将从存储单元组读取的m个比特映射到接收到的k个比特以返回主机。例如,为了将从MLC NAND单元(n=2)的存储单元对读取的4个比特映射到最初接收到的2个比特,上面转变函数(4)和(5)能用于将从存储单元对读取的4个比特转变为接收到的2个比特以返回到发出请求的主机。
图8图示了由I/O逻辑108执行的将页池120中的页122配置成不同压缩类型的操作的实施例。数据的压缩类型由数据压缩单元118确定,并且能是1(无压缩)到8192(压缩后1KB变成1比特)之间的任何压缩比值。在发起页配置时(在框800),对于传输缓冲器124中的页池204中的每个页206,I/O逻辑202或其它组件(在框802)基于页压缩比配置用于多个压缩类型之一的页,诸如低压缩类型(例如,压缩比在1和1.33之间)、中压缩类型(例如,压缩比在1.33和2之间)和高压缩类型(例如,压缩比大于2)。当页被包括在传输缓冲器124中时,可以执行配置。配置用于每一个压缩比的页(在框804),并且在用于每一个配置的页122的页元数据400i中指示页压缩308。以这种方式,页池120中的页122被固定为具有与压缩类型相称的大小,使得与较高压缩类型关联的页比与较低压缩类型关联的页具有更少的比特。
图9图示了由I/O逻辑202和变换层114i执行以处理传输缓冲器124中的页的操作的实施例,所述页提供要写入存储单元组的k个信息比特的块,其中每个存储单元组存储m个信息比特,其中m>k。在处理(在框900)装置页500i中的提供要写入存储单元组的k个比特的实例的多个页时,I/O逻辑202选择(在框902)传输缓冲器124中的n个页来进行写入。I/O逻辑202或变换层114i根据选择的n个页的压缩类型确定(在框904)用于确定阈值电压的编程模式300i,所述阈值电压用于对从存储单元组的每一个页中选择的比特进行编程。
图9a提供了表900的实施例,该表900可用于选择编程模式952,该编程模式952提供转变函数306以基于在用于两个页的表的列954和956中指示的压缩类型408对从用于包括两个比特的存储单元组的两个页中选择的比特进行编程。例如,一个MLC NAND装置页500i需要两个数据的页506、508。如果两个页都是中压缩类型,则对于其中提供3个比特(k=3)以存储在能够存储4个信息比特的存储单元对中的情况(如图6A和6B中所示),装置页被配置有“部分MLC模式”。如果两个页都是“高压缩”,则装置页能被配置为“半MLC模式”,其中提供2个比特(k=2)来存储(诸如如图7A和7B中所示)。如果对于一个页的压缩类型未知并且假定最坏情况压缩类型(例如低压缩),则图9a中的表950进一步指示编程模式952。例如,在一些情形下,在传输缓冲器124中可能只有一个页可用,并且I/O逻辑202不得不决定应该使用什么类型的编程模式。进取性决定将限制机会。在一个实施例中,使用保守策略:将来的第二页面未被压缩(低),其具有数据比特的最大大小。在备选实施例中,可以使用其它策略来预测将来的第二页的压缩类型。
对于选择的n个页中的k的信息比特的每个实例,在框906至916执行操作循环。在框908,变换层114从选择的页中选择(在框908)有效位部分,例如,最高有效位(MSB)、最低有效位(LSB)等,以形成要写入的k个信息比特。(在框910)选择存储单元组,其包括第一选择的存储单元组或者在写入的先前存储单元组之后。变换层114i(在框912)根据单元映射(例如,图6a、6b、7a、7b),针对所确定的编程模式300i,从较低阈值电压电平中确定要用于存储单元组中的每一个存储单元以对选择的k个比特进行编程的阈值电压电平。选择的阈值电压可以来自对于存储单元可用的最低阈值电压电平的子集。变换层114i使用(在框914)所确定的阈值电压电平来对要编程的存储单元组中的存储单元进行编程。
图10A、10B和10C提供了用于在两个编程周期中将从两个页读取的三个比特编程到两个存储单元的每个存储单元组的实施例。存储单元各存储两个比特(n=2),并且每个存储单元组包括存储单元对(p=2)。这些映射示出了如何使用三个最低电压电平将接收到的三个比特映射到存储四个比特的存储单元。图10C中的箭头示出了通过将一个或两个单元编程到可用的三个阈值电压电平P1和P2的电压P1、P2之一而对状态的准许的电压电平改变。避免将单元编程到最高可能的电压电平P3减少存储单元的磨损并延长它们的寿命。
图10A示出了在第一编程周期期间不需要施加电压来将LSB编程为E阈值电压或“11”,这将在块擦除期间已被编程。在第一编程周期期间,将该对的第二存储cellj编程为P1阈值电压将LSB编程为10,将该对的第二存储cellj编程为P2阈值电压将LSB编程为10,并将该对的第一存储celli编程为P1阈值电压将LSB编程为01。
图10B示出了通过不对celli,j中的任一个执行任何编程来将MSB比特编程为1的第二编程步骤。
图10C示出了通过根据LSB的先前编程状态将celli,j中的一个或两个设置为阈值电压P1、P2之一来将MSB比特编程为“0”的第二编程步骤。图10C示出了通过以下方式将MSB编程为“0”:(1)当LSB等于“11”或者在第一步骤中没有对单元进行编程时,将该对的第一celli和第二cellj编程为P1阈值电压;(2)当LSB先前被编程为“10”、“01”时,将该对的第一存储celli编程为P2阈值电压;(3)当LSB先前被编程为“01”时,将该对的第一存储celli编程为P1阈值电压。
图11提供了一个表,其示出了当首先对LSB进行编程时,在对于不同的可能三个比特的第一和第二编程周期期间如何基于图10A、10B和10C中所示的表映射对该对存储celli,j进行编程。当首先将LSB写入存储单元对之一时,将使用图11的编程。可以提供与图11中所示的编程步骤不同的编程步骤,以首先对LSB进行编程。
图12A、12B和12C提供了用于当MSB比特首先被编程到存储单元对时对存储单元组中的三个比特的接收块(例如,读取和写入单元)进行编程的实施例,其中存储单元各存储两个比特(n=2),并且每个存储单元组包括存储单元对(p=2)。图12B和12C中的箭头示出了通过将一个或两个单元编程到可用的四个阈值电压电平P1、P2和P3的电压P1、P2之一而对图12A中的状态的准许电压电平改变。避免将单元编程到最高可能的电压电平P3减少了存储单元的磨损并延长它们的寿命。
图12A示出了不需要施加电压来将MSB编程为E阈值电压或“1”,这将在块擦除期间之前已被编程。在第一编程步骤期间,将该对的第一存储celli和第二存储cellj编程为P1阈值电压将MSB编程为“0”。
图12B示出了通过将celli,j设置为可用的四个阈值电压电平E、P1、P2和P3的三个最低阈值电压E、P1、P2之一来用为1的MSB比特对于LSB比特进行编程的第二编程步骤。当MSB为“1”时,不需要施加电压来将LSB编程为E阈值电压以编程“11”。图12B示出了当MSB首先被编程为“1”时通过如下方式对LSB进行编程:(1)将该对的第一cell0编程为P1阈值电压以将LSB编程为“01”;(2)将该对的第二存储cellj编程为P1阈值电压以将LSB编程为“10”;以及(3)将第二cellj编程为P2阈值电压以将LSB编程为“00”。
图12C示出了当MSB被设置为“0”时通过根据LSB的先前编程状态将celli,j设置为阈值电压P1、P2之一来对LSB进行编程的第二编程步骤。图12B示出了当MSB首先被编程为“0”时通过如下方式对LSB进行编程:(1)将该对的第一celli和第二cellj编程为P2阈值电压,以将LSB编程为“01”;(2)将该对的第二存储cellj编程为P2阈值电压,以将LSB编程为“00”;(3)将该对的第一存储celli编程为P2阈值电压,以将LSB编程为“10”;(4)将第一存储celli和第二存储cellj都编程为P2阈值电压,以将LSB编程为“01”。
图13提供了一个表,其示出了当首先对MSB进行编程时,在对于不同的可能三个输入不同的第一和第二编程周期期间如何基于图12a、12b和12c中所示的表映射对该对存储celli,j进行编程。当执行图12A和12B中的MSB和LSB的写入时,将使用图13的编程,其中首先对MSB进行编程。
图14A、14B和14C图示了用于使用图10A、10B、10C、11、12A、12B、12C、13中所示的映射执行在框806和808的操作的不同实施例,在实施例中每个存储单元包括两个存储单元(p=2)的存储单元对,并且每个存储单元具有2个比特(n=2),并且每个装置页500i被分配了两个页,下级506和上级508,诸如针对MLC NAND的情况。
图14A图示了当对于要从所选择的两个页(上级和下级)写入的每个块的接收比特的数量是3(对于中压缩比),并且每个存储单元组是两个存储单元(n=2)的对时对存储单元对进行编程的操作的实施例。在发起针对所选择的上级页和下级页的写入(在框1400)时,变换层114i在框1402至1426针对要从两个页写入的每个3个信息比特执行操作循环。在框1404,关于选择一个MSB还是LSB来首先对于写入的最后存储单元对进行编程做出确定。如果(在框1404)首先对于先前的存储单元对而对LSB进行编程,或者如果要编程的当前存储单元是第一个要编程的,则变换层114i从所选择的下级页中选择(在框1406)MSB,并从上级页中选择两个LSB。(在框1408)使用用于首先对MSB进行编程的映射(图12A、13)来确定用于正在编程的存储单元对的每个存储单元的每个阈值电压。在首先对MSB进行编程的第一编程周期中,该对的每个存储单元都利用用于存储单元的确定的阈值电压被编程(在框1410)。变换层114i(在框1412)根据MSB是被编程为1(图12B)还是0(图12C)使用用于其次对LSB进行编程的映射(如图12B、12C、13中所示)来确定用于每个存储单元的每个阈值电压。在其次对两个LSB进行编程的第二编程周期中,变换层114i(在框1414)利用用于存储单元的确定的阈值电压对每个存储单元进行编程。
如果(在框1404)首先对于先前的存储单元对而对一个MSB进行编程,或者如果要编程的当前存储单元是第一个要编程的,则变换层114i从所选择的上级页中选择(在框1416)MSB,并从下级页中选择两个LSB。使用(在框1418)用于首先对LSB进行编程的映射(图10A)来确定用于正在编程的存储单元对的每个存储单元的每个阈值电压。在首先对LSB进行编程的第一编程周期中,该对的每个存储单元都利用针对存储单元的确定的阈值电压被编程(在框1420)。变换层114i(在框1422)根据编程的LSB是“00”、“01”、“11”还是“10”使用用于其次对MSB进行编程的映射(如图10A、10B、10C、11中所示)来确定用于每个存储单元的每个阈值电压。在其次对一个MSB进行编程的第二编程周期中,变换层114i(在框1424)利用用于存储单元的确定的阈值电压对每个存储单元进行编程。
图14B图示了图14A的操作,其中从存储单元组之间的下级页和上级页中交替地选择MSB和LSB,以在下级页506与上级页508之间交替地选择第一MSB比特和两个LSB比特。例如,如图13B中所示,对于第一对存储cell0,1,从下级页506选择MSB(M0)并从上级页508选择LSB,并且然后在cell2,3中,交替地从上级页508选择MSB和从下级页506选择LSB。
图14C图示了当两个页提供要写入的两个比特的块(高压缩比)并且每个存储单元组是一对两个存储单元并且其中每一个选择的页506或508为所有其它存储单元提供一个比特时执行编程周期的操作的实施例。在发起(在框1450)写入时,变换层114i在框1452至1458执行操作循环,以变换每个存储单元对的接收到的2个比特。分别从下级页和上级页选择MSB和LSB(在框1454)。使用(在框1456)用于对两个比特(每个页一个)进行编程的映射(图7A、7B)从每一个存储单元中选择阈值电压电平,其中仅需要使用两个最低阈值电压电平来对只具有两个比特的存储单元对的所有可能状态进行编程。
尽管图14A、14B、14C相对于存储两个比特(n=2)的存储单元并且每个存储单元组包括存储单元对(p=2)的实施例进行了描述,但是将较少数量的接收到的k个比特写入存储m个比特的一组存储单元能通过将较少数量的MSB比特被写入的页进行交替而扩展到其它大小的存储单元组和存储多于两个比特的存储单元。将k个比特的较小数量的MSB比特被写入的页进行交替将较小数量的MSB比特和较大数量的LSB分布在页之间,以提供对页写入的磨损均衡。
图15图示了由I/O逻辑202和/或变换层114i执行以读取存储单元组(诸如存储单元对)的页的操作的实施例。在发起(在框1500)对于存储单元组的装置页500i的读取操作时,I/O逻辑202确定(在框1502)对于从存储单元组读取的比特信息的编程模式300i。可以根据在用于从存储单元组读取的装置页的装置页信息500i中指示的编程模式510确定编程模式300i。读取(在框1504)来自存储单元组的状态,诸如用于存储单元组中的p个存储单元中的每个存储单元的阈值电压电平。I/O逻辑202(在框1506)对由从存储单元组中的p个单元读取的阈值电压电平表示的读取状态进行解码。如果(在框1508)编程模式300i指示没有转变或没有转变函数306,则变换层114i返回(在框1510)读取的m个信息比特。如果(在框1508)所确定的压缩编程模式300i指示需要转变,则I/O逻辑202确定(在框1512)用于所确定的编程模式300i的转变函数306,诸如上面相对于存储单元对和压缩比描述的转变函数(1)、(2)、(3)、(4)和(5),其中k=3个比特并且其中k=2个比特。变换层114i(在框1514)对于读取页中的每个存储单元组应用所确定的转变函数,以将解码的m个信息比特转变为更少的k个信息比特,并返回(在框1516)读取的k个比特。当比特的整个页被返回时,压缩单元112在整个装置页被返回时进行解压缩。
用图15的所描述的操作,变换层114i通过写入相同的存储单元来使用正常页映射,而不需要特殊的转变来管理页和轨道大小,因为所描述的实施例读取页边界上的所有存储单元的数据,但是将读取的m个信息比特转变成由压缩单元112提供的更少的k个比特。另外,所描述的实施例利用压缩来通过避免使用最高阈值电压电平来使用较低阈值电压电平写入压缩数据来改进存储单元耐久性。
图16图示了由非易失性存储器存储装置100的组件执行以处理要存储在存储管芯1061、1062...106n中的信息的比特的页的操作的实施例,组件包括数据压缩单元112、数据加密单元118、加扰器单元116i和控制器200i。在接收(在框1600)要存储在NAND存储管芯1061、1062...106n中的数据的页时,压缩单元112压缩(在框1602)接收到的页以产生信息的压缩比特的实例,并发送到加密单元118。加密单元118(在框1604)对页中的信息的压缩比特进行加密以产生信息的加密且压缩的比特,并将页输出到控制器102。压缩/加密的数据的页被存储(在框1606)在传输缓冲器124中。存储管芯控制器200i和变换层114i(在框1608)选择用于装置页的页,以将来自选择的页的k个比特的实例转变为m个信息比特,以根据图14、14A、14B和14C的操作存储在装置页的存储单元组中,并发送到加扰器单元116i。加扰器单元116i对装置页中转变的m个比特的实例进行加扰(在框1610),然后其被写入存储管芯106i中的存储单元。
图17图示了由非易失性存储器存储装置100的组件执行以处理从存储管芯1061、1062...106n读取的数据的操作的实施例,组件包括数据压缩单元112、数据加密单元118、加扰器单元116i和控制器200i。在读取(在框1700)要从存储管芯106i中的存储单元对返回的数据的页时,具有m个比特的实例的页被发送(在框1702)到用于存储管芯106i的对应加扰器单元116i。加扰器单元116i对页中的m个比特的实例进行解扰(在框1704),并发送到转变层114i。转变层114i根据图15的操作将从页读取的m个比特的实例转变(在框1706)成k个比特的实例。I/O逻辑202将k个比特的实例分布(在框1708)到与装置页500i关联的n个页。加密单元118对每个页进行解密(在框1710)以产生具有信息的压缩比特的页,并发送到压缩单元112。压缩单元112(在框1712)对页进行解压缩以产生要返回的解压缩页(在框1714)。
图18图示了系统1800的实施例,其中存储器装置100可以被部署为系统存储器装置1808和/或存储装置1810。该系统包括处理器1804和存储装置1810,处理器1804通过总线1806与系统存储器装置1808通信,其中正在执行的程序、操作数和参数被高速缓存,存储装置1810可以包括存储可以被加载到系统存储器1808中以用于执行的用户数据和程序的固态驱动器(SSD)。处理器1804还可以与输入/输出(I/O)装置1812a、1812b通信,I/O装置可以包括输入装置(例如,键盘、触摸屏、鼠标等)、显示装置、图形卡、端口、网络接口等。存储器1808和存储装置1810可以耦合到系统1800母板上的、安装在系统1800母板上、或者部署在外部存储器装置中或者通过网络可访问的接口。
应该认识到,此说明书通篇提到“一个实施例”或“实施例”意思是,结合该实施例描述的具体特征、结构或特性被包括在本发明的至少一个实施例中。因此,要强调,并且应该认识到,在此说明书各个部分中两次或更多次提到“实施例”或“一个实施例”或“备选实施例”不一定全都指的是同一实施例。更进一步,具体特征、结构或特性可以按适合地组合在本发明的一个或多个实施例中。
本文使用的参考字符,诸如i、j、m、n和p,用于标示元素的可变数量的实例,其可以表示相同或不同的值,并且当与不同的所描述实例中的不同或相同的元素一起使用时可以表示相同或不同的值。
类似地,应该认识到,在本发明的实施例的前述描述中,为了使本公开流畅的目的,各种特征有时一起被组合在单个实施例、附图或其描述中,有助于理解各种发明方面中的一个或多个。然而,公开的这个方法不应被解释为反映要求权利的主题要求比在每个权利要求中明确记载的更多的特征的意图。而是,如以下权利要求所反映的,发明方面在于比单个前述公开的实施例的所有特征少。从而,详细描述随附的权利要求由此被明确地并入到此详细描述中。
示例
以下示例属于另外的实施例。
示例1是一种用于对存储器装置的存储单元中的信息进行编程的设备,包括:非易失性存储器,具有组织为页的存储单元,其中每个多级单元包括多个比特,并且能使用第一数量的阈值电压电平被编程具有信息,其中所述存储单元被组织成写入数据的存储单元组,其中每个存储单元组被编程为存储第一数量的信息比特;以及存储器控制器,配置成对存储单元进行编程并且配置成:从页中选择第二数量的信息比特以写入存储单元组之一,其中信息比特的第二数量小于信息比特的第一数量;以及使用来自第二数量的阈值电压电平的阈值电压电平对所述存储单元组的所述存储单元进行编程,其中阈值电压电平的所述第二数量小于阈值电压电平的所述第一数量,并且包括所述第一数量的阈值电压电平中的最低阈值电压电平。
在示例2中,示例1和3-12的主题能可选地包括所述对所述存储单元进行编程将所述第二数量的信息比特转变为所述第一数量的信息比特以使用来自所述第二数量的所述阈值电压电平的所述阈值电压电平进行编程。
在示例3中,示例1、2和4-12的主题能可选地包括每个多级单元包括n个比特,并且能利用2n个不同阈值电压电平被编程为2n个独立状态,其中所述第一数量的阈值电压电平包括2n,其中每一个所述存储单元组具有p个存储单元,其中每个存储单元组表示2np个信息状态,其中所述第一数量的信息比特包括m个信息比特,其中m= Log2(2np)个信息比特,并且其中所选择的第二数量的比特包括k个比特,其中k<m,并且其中所述第二数量的阈值电压电平包括j个阈值电压电平,仅包括所述2n个不同阈值电压电平中的j个最低阈值电压电平,其中j<2n,并且j是大于或等于2k/p的最小整数。
在示例4中,示例1-3和5-12的主题能可选地包括存储器控制器进一步:读取所述存储单元组中的存储单元的状态;将读取状态解码为具有第一数量的信息比特的解码的比特;将解码的比特转变成具有第二数量的信息比特的转变的比特;以及将转变的解码的比特返回到页。
在示例5中,示例1-4和6-12的主题能可选地包括所述存储器控制器进一步:指示用于从中选择要存储的比特的页的压缩类型的多个编程模式之一,其中所述编程模式中至少一个基于将第二数量的信息比特的状态与使用第二数量的阈值电压电平编程的第一数量的信息比特的状态子集关联的真值表与转变函数关联;从存储单元组之一中读取第一数量的信息比特;以及使用与用于所述存储单元组中的数据的编程模式关联的所述转变函数将在存储单元组之一中读取的第一数量的信息比特转变成转变的第二数量的信息比特。
在示例6中,示例1-5和7-12的主题能可选地包括所述存储器控制器进一步:配置用于存储信息比特的页,其中每一个配置的页被指示为具有压缩类型之一,其中所述压缩类型包括低压缩类型、中压缩类型和高压缩类型,其中被指示为具有高压缩类型的页比具有低压缩类型和中压缩类型的页具有更少的比特;确定用于从页选择的第二数量的信息比特的编程模式,其中所述编程模式基于从中选择第二数量的信息比特的页的压缩类型;以及使用与所确定的编程模式关联的转变函数来从所述第二数量的阈值电压中确定所述阈值电压电平,以用于对用于所选择的第二数量的信息比特的存储单元组中的所述第一数量的信息比特进行编程。
在示例7中,示例1-6和8-12的主题能可选地包括每一个所述存储单元组包括两个存储单元的存储单元对,其中每一个存储单元存储两个信息比特,其中所述第一数量的信息比特包括四个比特,其中所述第二数量的信息比特从两个页中选择,其中在第一编程模式中,第二数量的信息比特包括三个比特,并且其中用于所述第一编程模式的所述转变函数将从存储单元读取的四个比特转变成三个比特,并且其中在第二编程模式中,所述第二数量的信息比特包括两个比特,并且其中用于第二编程模式的转变函数将读取的四个比特转变成两个比特。
在示例8中,示例1-7和9-12的主题能可选地包括所述存储器控制器进一步:确定要从所述存储单元组读取的数据的编程模式;从要读取的存储单元组中读取第一数量的信息比特的实例;以及使用与所确定的编程模式关联的转变函数将第一数量的信息比特的读取实例转变为第二数量的信息比特的转变实例。
在示例9中,示例1-8和10-12的主题能可选地包括每一个所述存储单元组包括两个存储单元的存储单元对,其中每一个所述存储单元存储两个比特,其中所述选择所述第二数量的信息比特包括两个比特,从较低页选择第一比特并且从上级页选择第二比特,其中所述第二数量的信息比特包括三个比特,包括使用来自第二数量的阈值电压的阈值电压对所述两个存储单元中的每一个进行编程而编程到所述存储单元组中的两个存储单元中的一个最高有效位(MSB)和两个最低有效位(LSB)。
在示例10中,示例1-9和11-12的主题能可选地包括所述存储器控制器进一步通过从第一页和第二页中对于当前存储单元组选择所述比特来选择所述两个比特包括从与所述第一页和第二页不同的页中选择一个最高有效位和两个最低有效位,在对所述当前存储单元组进行编程之前被编程的先前存储单元组的所述最高有效位和所述两个最低有效位从所述第一页和第二页中被选择。
在示例11中,示例1-10和12的主题能可选地包括:压缩单元,用于接收作为输入的页并将具有压缩数据的页的实例输出到所述存储器控制器,并且用于接收作为输入的压缩数据的页以解压缩为解压缩数据。
在示例12中,示例1-11的主题能可选地包括:压缩单元;加密单元;以及加扰单元;其中所述压缩单元接收作为输入的页以压缩以产生压缩的页以发送到加密单元,以及以解压缩从密单元接收到的页以产生解压缩的页中的数据,其中加密单元对来自压缩单元的压缩页进行加密以产生信息比特的加密且压缩页,并且接收要解密的加密且压缩页以产生信息比特的压缩页,其中所述加扰单元对所述页中的信息比特进行加扰之后被写入所述存储单元组,并且对从存储单元组读取的页的信息比特进行解扰以产生未加扰、加密且压缩的第二比特信息以发送到加密单元。
示例13是一种对存储器装置的存储单元中的信息进行编程的系统,包括:处理器;总线;非易失性存储器存储装置,耦合到总线并从处理器接收数据,包括:非易失性存储器,具有组织为页的存储单元,其中每个多级单元包括多个比特,并且能使用第一数量的阈值电压电平被编程具有信息,其中所述存储单元被组织成写入数据的存储单元组,其中每个存储单元组被编程为存储第一数量的信息比特;以及存储器控制器,配置成对存储单元进行编程并且配置为:从页中选择第二数量的信息比特以写入存储单元组之一,其中信息比特的第二数量小于信息比特的第一数量;以及使用来自第二数量的阈值电压电平的阈值电压电平对所述存储单元组的所述存储单元进行编程,其中阈值电压电平的所述第二数量小于阈值电压电平的所述第一数量,并且包括所述第一数量的阈值电压电平中的最低阈值电压电平。
在示例14中,示例15-19的主题能可选地包括:所述对所述存储单元进行编程将所述第二数量的信息比特转变为所述第一数量的信息比特以使用来自所述第二数量的所述阈值电压电平的所述阈值电压电平进行编程。
在示例15中,示例14和16-19的主题能可选地包括:每个多级单元包括n个比特,并且能利用2n个不同阈值电压电平被编程为2n个独立状态,其中所述第一数量的阈值电压电平包括2n,其中每一个所述存储单元组具有p个存储单元,其中每个存储单元组表示2np个信息状态,其中所述第一数量的信息比特包括m个信息比特,其中m= Log2(2np)个信息比特,并且其中所选择的第二数量的比特包括k个比特,其中k<m,并且其中所述第二数量的阈值电压电平包括j个阈值电压电平,仅包括所述2n个不同阈值电压电平中的j个最低阈值电压电平,其中j<2n,并且j是大于或等于2k/p的最小整数。
在示例16中,示例14、16和17-19的主题能可选地包括:存储器控制器进一步:读取所述存储单元组中的存储单元的状态;将读取状态解码为具有第一数量的信息比特的解码的比特;将解码的比特转变成具有第二数量的信息比特的转变的比特;以及将转变的解码的比特返回到页。
在示例17中,示例14-16和18-19的主题能可选地包括:所述存储器控制器进一步:指示用于从中选择要存储的比特的页的压缩类型的多个编程模式之一,其中所述编程模式中的至少一个基于将第二数量的信息比特的状态与使用第二数量的阈值电压电平编程的第一数量的信息比特的状态子集关联的真值表与转变函数关联;从存储单元组之一中读取第一数量的信息比特;以及使用与用于所述存储单元组中的数据的编程模式关联的所述转变函数将在所述存储单元组之一中读取的第一数量的信息比特转变成转变的第二数量的信息比特。
在示例18中,示例14-17和19的主题能可选地包括:所述存储器控制器进一步:配置用于存储信息比特的页,其中每一个配置的页被指示为具有压缩类型之一,其中所述压缩类型包括低压缩类型、中压缩类型和高压缩类型,其中被指示为具有高压缩类型的页比具有低压缩类型和中压缩类型的页具有更少的比特;确定用于从页选择的第二数量的信息比特的编程模式,其中所述编程模式基于从中选择第二数量的信息比特的页的压缩类型;以及使用与所确定的编程模式关联的转变函数来从所述第二数量的阈值电压中确定所述阈值电压电平,以用于对用于所选择的第二数量的信息比特的存储单元组中的所述第一数量的信息比特进行编程。
在示例19中,示例14-18的主题能可选地包括:压缩单元,用于接收作为输入的页并将具有压缩数据的页的实例输出到所述存储器控制器,并且用于接收作为输入的压缩数据的页以解压缩为解压缩数据。
示例20是一种用于读取数据和将数据写入非易失性存储器存储装置中的存储单元的方法,包括:访问非易失性存储器存储装置中组织为页的存储单元,其中每个多级单元包括多个比特,并且能使用第一数量的阈值电压电平被编程具有信息,其中所述存储单元被组织成写入数据的存储单元组,其中每个存储单元组被编程为存储第一数量的信息比特;从页中选择第二数量的信息比特以写入存储单元组之一,其中信息比特的第二数量小于信息比特的第一数量;以及使用来自第二数量的阈值电压电平的阈值电压电平对所述存储单元组的所述存储单元进行编程,其中阈值电压电平的所述第二数量小于阈值电压电平的所述第一数量,并且包括所述第一数量的阈值电压电平中的最低阈值电压电平。
在示例21中,示例20和21-25的主题能可选地包括:所述对所述存储单元进行编程将所述第二数量的信息比特转变为所述第一数量的信息比特以使用来自所述第二数量的所述阈值电压电平的所述阈值电压电平进行编程。
在示例22中,示例20、21和23-25的主题能可选地包括:每个多级单元包括n个比特,并且能利用2n个不同阈值电压电平被编程为2n个独立状态,其中所述第一数量的阈值电压电平包括2n,其中每一个所述存储单元组具有p个存储单元,其中每个存储单元组表示2np个信息状态,其中所述第一数量的信息比特包括m个信息比特,其中m= Log2(2np)个信息比特,并且其中所选择的第二数量的比特包括k个比特,其中k<m,并且其中所述第二数量的阈值电压电平包括j个阈值电压电平,仅包括所述2n个不同阈值电压电平中的j个最低阈值电压电平,其中j<2n,并且j是大于或等于2k/p的最小整数。
在示例23中,示例20-22和24-25的主题能可选地包括:读取所述存储单元组中的存储单元的状态;将读取状态解码为具有第一数量的信息比特的解码的比特;将解码的比特转变成具有第二数量的信息比特的转变的比特;以及将转变的解码的比特返回到页。
在示例24中,示例20-23和25的主题能可选地包括:指示用于从中选择要存储的比特的页的压缩类型的多个编程模式之一,其中所述编程模式中的至少一个基于将第二数量的信息比特的状态与使用第二数量的阈值电压电平编程的第一数量的信息比特的状态子集关联的真值表与转变函数关联;从存储单元组之一中读取第一数量的信息比特;以及使用与用于所述存储单元组中的数据的编程模式关联的所述转变函数将在所述存储单元组之一中读取的第一数量的信息比特转变成转变的第二数量的信息比特。
在示例25中,示例20-24的主题能可选地包括:配置用于存储信息比特的页,其中每一个配置的页被指示为具有压缩类型之一,其中所述压缩类型包括低压缩类型、中压缩类型和高压缩类型,其中被指示为具有高压缩类型的页比具有低压缩类型和中压缩类型的页具有更少的比特;确定用于从页选择的第二数量的信息比特的编程模式,其中所述编程模式基于从中选择第二数量的信息比特的页的压缩类型;以及使用与所确定的编程模式关联的转变函数来从所述第二数量的阈值电压中确定所述阈值电压电平,以用于对用于所选择的第二数量的信息比特的存储单元组中的所述第一数量的信息比特进行编程。
在示例22中,示例20的主题进一步包括如下至少任一项:
(1)其中所述对所述存储单元进行编程将所述第二数量的信息比特转变为所述第一数量的信息比特以使用来自所述第二数量的所述阈值电压电平的所述阈值电压电平进行编程;和/或
(2)每个多级单元包括n个比特,并且能利用2n个不同阈值电压电平被编程为2n个独立状态,其中所述第一数量的阈值电压电平包括2n,其中每一个所述存储单元组具有p个存储单元,其中每个存储单元组表示2np个信息状态,其中所述第一数量的信息比特包括m个信息比特,其中m= Log2(2np)个信息比特,并且其中所选择的第二数量的比特包括k个比特,其中k<m,并且其中所述第二数量的阈值电压电平包括j个阈值电压电平,仅包括所述2n个不同阈值电压电平中的j个最低阈值电压电平,其中j<2n,并且j是大于或等于2k/p的最小整数;和/或
(3)读取所述存储单元组中的存储单元的状态;将读取状态解码为具有第一数量的信息比特的解码的比特;将解码的比特转变成具有第二数量的信息比特的转变的比特;以及将转变的解码的比特返回到页;和/或
(4)指示用于从中选择要存储的比特的页的压缩类型的多个编程模式之一,其中所述编程模式中的至少一个基于将第二数量的信息比特的状态与使用第二数量的阈值电压电平编程的第一数量的信息比特的状态子集关联的真值表与转变函数关联;从存储单元组之一中读取第一数量的信息比特;以及使用与用于所述存储单元组中的数据的编程模式关联的所述转变函数将在存储单元组之一中读取的第一数量的信息比特转变成转变的第二数量的信息比特;和/或
(5)配置用于存储信息比特的页,其中每一个配置的页被指示为具有压缩类型之一,其中所述压缩类型包括低压缩类型、中压缩类型和高压缩类型,其中被指示为具有高压缩类型的页比具有低压缩类型和中压缩类型的页具有更少的比特;确定用于从页选择的第二数量的信息比特的编程模式,其中所述编程模式基于从中选择第二数量的信息比特的页的压缩类型;以及使用与所确定的编程模式关联的转变函数来从所述第二数量的阈值电压中确定所述阈值电压电平,以用于对用于所选择的第二数量的信息比特的存储单元组中的所述第一数量的信息比特进行编程;和/或
(6)每一个所述存储单元组包括两个存储单元的存储单元对,其中每一个存储单元存储两个信息比特,其中所述第一数量的信息比特包括四个比特,其中所述第二数量的信息比特从两个页中选择,其中在第一编程模式中,第二数量的信息比特包括三个比特,并且其中用于所述第一编程模式的所述转变函数将从存储单元读取的四个比特转变成三个比特,并且其中在第二编程模式中,所述第二数量的信息比特包括两个比特,并且其中用于第二编程模式的转变函数将读取的四个比特转变成两个比特;和/或
(7)确定要从所述存储单元组读取的数据的编程模式;从要读取的存储单元组中读取第一数量的信息比特的实例;以及使用与所确定的编程模式关联的转变函数将第一数量的信息比特的读取实例转变为第二数量的信息比特的转变实例。
(8)每一个所述存储单元组包括两个存储单元的存储单元对,其中每一个所述存储单元存储两个比特,其中所述选择所述第二数量的信息比特包括两个比特,从较低页选择第一比特并且从上级页选择第二比特,其中所述第二数量的信息比特包括三个比特,包括使用来自第二数量的阈值电压的阈值电压对所述两个存储单元中的每一个进行编程而编程到所述存储单元组中的两个存储单元中的一个最高有效位(MSB)和两个最低有效位(LSB);和/或
(9)通过从第一页和第二页中对于当前存储单元组选择所述比特来选择所述两个比特包括从与所述第一页和第二页不同的页中选择一个最高有效位和两个最低有效位,在对所述当前存储单元组进行编程之前被编程的先前存储单元组的所述最高有效位和所述两个最低有效位从所述第一页和第二页中被选择;以及
(10)由压缩单元接收作为输入的页并将具有压缩数据的页的实例输出到所述存储器控制器,并且接收作为输入的压缩数据的页以解压缩为解压缩数据。
(11)其中压缩单元接收作为输入的页以压缩以产生压缩的页以发送到加密单元,以及以解压缩从密单元接收到的页以产生解压缩的页中的数据,其中加密单元对来自压缩单元的压缩页进行加密以产生信息比特的加密且压缩页,并且接收要解密的加密且压缩页以产生信息比特的压缩页,其中加扰单元对所述页中的信息比特进行加扰之后被写入所述存储单元组,并且对从存储单元组读取的页的信息比特进行解扰以产生未加扰、加密且压缩的第二比特信息以发送到加密单元。
示例27是一种用于读取数据和将数据写入非易失性存储器存储装置中的存储单元的设备,包括:用于访问非易失性存储器存储装置中组织为页的存储单元的部件,其中每个多级单元包括多个比特,并且能使用第一数量的阈值电压电平被编程具有信息,其中所述存储单元被组织成写入数据的存储单元组,其中每个存储单元组被编程为存储第一数量的信息比特;用于从页中选择第二数量的信息比特以写入存储单元组之一的部件,其中信息比特的第二数量小于信息比特的第一数量;以及用于使用来自第二数量的阈值电压电平的阈值电压电平对所述存储单元组的所述存储单元进行编程的部件,其中阈值电压电平的所述第二数量小于阈值电压电平的所述第一数量,并且包括所述第一数量的阈值电压电平中的最低阈值电压电平。
在示例28中,示例27的主题能可选地包括所述对所述存储单元进行编程将所述第二数量的信息比特转变为所述第一数量的信息比特以使用来自所述第二数量的所述阈值电压电平的所述阈值电压电平进行编程。
示例29是一种设备,其包括用于执行如任一前述示例中所要求的方法的部件。
示例30是一种包括机器可读指令的机器可读存储装置,所述指令当被执行时实现如在任一前述权利要求中所要求的方法或实现在任一前述权利要求中所要求的设备。
Claims (25)
1.一种用于对存储器装置的存储单元中的信息进行编程的设备,包括:
非易失性存储器,具有组织为页的存储单元,其中每个多级单元包括多个比特,并且能使用第一数量的阈值电压电平被编程具有信息,其中所述存储单元被组织成写入数据的存储单元组,其中每个存储单元组被编程为存储第一数量的信息比特;以及
存储器控制器,被配置为对所述存储单元进行编程,并且配置为:
从页中选择第二数量的信息比特以写入所述存储单元组之一,其中信息比特的所述第二数量小于信息比特的所述第一数量;以及
使用来自第二数量的阈值电压电平的阈值电压电平对所述存储单元组的所述存储单元进行编程,其中阈值电压电平的所述第二数量小于阈值电压电平的所述第一数量,并且包括所述第一数量的阈值电压电平中的最低阈值电压电平。
2.如权利要求1所述的设备,其中所述对所述存储单元进行编程将所述第二数量的信息比特转变为所述第一数量的信息比特以使用来自所述第二数量的阈值电压电平的所述阈值电压电平进行编程。
3.如权利要求1所述的设备,其中每个多级单元包括n个比特,并且能利用2n个不同阈值电压电平被编程为2n个独立状态,其中所述第一数量的阈值电压电平包括2n,其中每一个所述存储单元组具有p个存储单元,其中每个存储单元组表示2np个信息状态,其中所述第一数量的信息比特包括m个信息比特,其中m=Log2(2np)个信息比特,并且其中所选择的第二数量的比特包括k个比特,其中k<m,并且其中所述第二数量的阈值电压电平包括j个阈值电压电平,仅包括所述2n个不同阈值电压电平中的j个最低阈值电压电平,其中j<2n,并且j是大于或等于2k/p的最小整数。
4.如权利要求1、2和3中的任一项所述的设备,其中所述存储器控制器进一步:
读取所述存储单元组中的所述存储单元的状态;
将所述读取状态解码为具有所述第一数量的信息比特的解码的比特;
将所述解码的比特转变成具有所述第二数量的信息比特的转变的比特;以及
将转变的解码的比特返回到页。
5.如权利要求1、2和3中的任一项所述的设备,其中所述存储器控制器进一步:
指示用于从中选择要存储的比特的页的压缩类型的多个编程模式之一,其中所述编程模式中的至少一个基于真值表与转变函数关联,所述真值表将所述第二数量的信息比特的状态与使用所述第二数量的阈值电压电平编程的所述第一数量的信息比特的状态子集关联;
从所述存储单元组之一中读取所述第一数量的信息比特;以及
使用与用于所述存储单元组中的所述数据的所述编程模式关联的所述转变函数将在所述存储单元组之一中读取的第一数量的信息比特转变成转变的第二数量的信息比特。
6.如权利要求5所述的设备,其中所述存储器控制器进一步:
配置用于存储信息比特的页,其中每一个配置的页被指示为具有所述压缩类型之一,其中所述压缩类型包括低压缩类型、中压缩类型和高压缩类型,其中被指示为具有所述高压缩类型的所述页比具有所述低压缩类型和所述中压缩类型的页具有更少的比特;
确定用于从所述页选择的第二数量的信息比特的编程模式,其中所述编程模式基于从中选择所述第二数量的信息比特的所述页的所述压缩类型;以及
使用与所确定的编程模式关联的所述转变函数来从所述第二数量的阈值电压中确定所述阈值电压电平,以用于对用于所选择的第二数量的信息比特的所述存储单元组中的所述第一数量的信息比特进行编程。
7.如权利要求5所述的设备,其中每一个所述存储单元组包括两个存储单元的存储单元对,其中每一个所述存储单元存储两个信息比特,其中所述第一数量的信息比特包括四个比特,其中所述第二数量的信息比特从两个页中选择,
其中在第一编程模式中,所述第二数量的信息比特包括三个比特,并且其中用于所述第一编程模式的所述转变函数将从所述存储单元读取的四个比特转变成三个比特,并且
其中在第二编程模式中,所述第二数量的信息比特包括两个比特,并且其中用于所述第二编程模式的所述转变函数将读取的四个比特转变成两个比特。
8.如权利要求1、2和3中的任一项所述的设备,其中所述存储器控制器进一步:
确定要从所述存储单元组读取的数据的编程模式;
从要读取的所述存储单元组中读取所述第一数量的信息比特的实例;以及
使用与所确定的编程模式关联的所述转变函数将所述第一数量的信息比特的读取实例转变为第二数量的信息比特的转变实例。
9.如权利要求1、2和3中的任一项所述的设备,其中每一个所述存储单元组包括两个存储单元的存储单元对,其中每一个所述存储单元存储两个比特,其中所述选择所述第二数量的信息比特包括两个比特,从较低页选择第一比特并且从上级页选择第二比特,其中所述第二数量的信息比特包括三个比特,包括使用来自第二数量的阈值电压的阈值电压编程到所述存储单元组中的两个存储单元中以对所述两个存储单元中的每一个进行编程的一个最高有效位(MSB)和两个最低有效位(LSB)。
10.如权利要求9所述的设备,其中所述存储器控制器进一步通过从第一页和第二页中对于当前存储单元组选择所述比特来选择所述两个比特包括从与所述第一页和第二页不同的页中选择一个最高有效位和两个最低有效位,在对所述当前存储单元组进行编程之前被编程的先前存储单元组的所述最高有效位和所述两个最低有效位从所述第一页和第二页中被选择。
11.如权利要求1、2和3中的任一项所述的设备,进一步包括:
压缩单元,用于接收作为输入的页并将具有压缩数据的页的实例输出到所述存储器控制器,并且用于接收作为输入的压缩数据的页以解压缩为解压缩数据。
12.如权利要求1所述的设备,进一步包括:
压缩单元;
加密单元;以及
加扰单元;
其中所述压缩单元接收作为输入的页,以压缩以产生压缩的页以发送到所述加密单元,以及以解压缩从所述加密单元接收到的页,以产生解压缩的页中的数据,
其中所述加密单元对来自所述压缩单元的所述压缩的页进行加密,以产生信息比特的加密且压缩的页,并且接收要解密的加密且压缩的页以产生所述信息比特的压缩的页,
其中所述加扰单元在所述页中的所述信息比特被写入所述存储单元组之前对所述页中的所述信息比特进行加扰,并且对从所述存储单元组读取的所述页的所述信息比特进行解扰,以产生未加扰、加密且压缩的第二信息比特,以发送到所述加密单元。
13.一种用于对存储器装置的存储单元中的信息进行编程的系统,包括:
处理器;
总线;
非易失性存储器存储装置,耦合到所述总线并从所述处理器接收数据,包括:
非易失性存储器,具有组织为页的存储单元,其中每个多级单元包括多个比特,并且能使用第一数量的阈值电压电平被编程具有信息,其中所述存储单元被组织成写入数据的存储单元组,其中每个存储单元组被编程为存储第一数量的信息比特;以及
存储器控制器,被配置为对所述存储单元进行编程,并且配置为:
从页中选择第二数量的信息比特以写入所述存储单元组之一,其中信息比特的所述第二数量小于信息比特的所述第一数量;以及
使用来自第二数量的阈值电压电平的阈值电压电平对所述存储单元组的所述存储单元进行编程,其中阈值电压电平的所述第二数量小于阈值电压电平的所述第一数量,并且包括所述第一数量的阈值电压电平中的最低阈值电压电平。
14.如权利要求13所述的系统,其中所述对所述存储单元进行编程将所述第二数量的信息比特转变为所述第一数量的信息比特以使用来自所述第二数量的阈值电压电平的所述阈值电压电平进行编程。
15.如权利要求13所述的系统,其中每个多级单元包括n个比特,并且能利用2n个不同阈值电压电平被编程为2n个独立状态,其中所述第一数量的阈值电压电平包括2n,其中每一个所述存储单元组具有p个存储单元,其中每个存储单元组表示2np个信息状态,其中所述第一数量的信息比特包括m个信息比特,其中m= Log2(2np)个信息比特,并且其中所选择的第二数量的比特包括k个比特,其中k<m,并且其中所述第二数量的阈值电压电平包括j个阈值电压电平,仅包括所述2n个不同阈值电压电平中的j个最低阈值电压电平,其中j<2n,并且j是大于或等于2k/p的最小整数。
16.如权利要求13、14和15中的任一项所述的系统,其中所述存储器控制器进一步:
读取所述存储单元组中的所述存储单元的状态;
将所述读取状态解码为具有所述第一数量的信息比特的解码的比特;
将所述解码的比特转变成具有所述第二数量的信息比特的转变的比特;以及
将转变的解码的比特返回到页。
17.如权利要求13、14和15中的任一项所述的系统,其中所述存储器控制器进一步:
指示用于从中选择要存储的比特的页的压缩类型的多个编程模式之一,其中所述编程模式中的至少一个基于真值表与转变函数关联,所述真值表将所述第二数量的信息比特的状态与使用所述第二数量的阈值电压电平编程的所述第一数量的信息比特的状态子集关联;
从所述存储单元组之一中读取所述第一数量的信息比特;以及
使用与用于所述存储单元组中的所述数据的所述编程模式关联的所述转变函数将在所述存储单元组之一中读取的第一数量的信息比特转变成转变的第二数量的信息比特。
18.如权利要求17所述的系统,其中所述存储器控制器进一步:
配置用于存储信息比特的页,其中每一个配置的页被指示为具有所述压缩类型之一,其中所述压缩类型包括低压缩类型、中压缩类型和高压缩类型,其中被指示为具有所述高压缩类型的所述页比具有所述低压缩类型和所述中压缩类型的页具有更少的比特;
确定用于从所述页选择的第二数量的信息比特的编程模式,其中所述编程模式基于从中选择所述第二数量的信息比特的所述页的所述压缩类型;以及
使用与所确定的编程模式关联的所述转变函数来从所述第二数量的阈值电压中确定所述阈值电压电平,以用于对用于所选择的第二数量的信息比特的所述存储单元组中的所述第一数量的信息比特进行编程。
19.如权利要求13、14和15中的任一项所述的系统,进一步包括:
压缩单元,用于接收作为输入的页并将具有压缩数据的页的实例输出到所述存储器控制器,并且用于接收作为输入的压缩数据的页以解压缩为解压缩数据。
20.一种用于读取数据和将数据写入非易失性存储器存储装置中的存储单元的方法,包括:
访问所述非易失性存储器存储装置中的组织为页的存储单元,其中每个多级单元包括多个比特,并且能使用第一数量的阈值电压电平被编程具有信息,其中所述存储单元被组织成写入数据的存储单元组,其中每个存储单元组被编程为存储第一数量的信息比特;
从页中选择第二数量的信息比特以写入所述存储单元组之一,其中信息比特的所述第二数量小于信息比特的所述第一数量;以及
使用来自第二数量的阈值电压电平的阈值电压电平对所述存储单元组的所述存储单元进行编程,其中阈值电压电平的所述第二数量小于阈值电压电平的所述第一数量,并且包括所述第一数量的阈值电压电平中的最低阈值电压电平。
21.如权利要求20所述的方法,其中所述对所述存储单元进行编程将所述第二数量的信息比特转变为所述第一数量的信息比特以使用来自所述第二数量的阈值电压电平的所述阈值电压电平进行编程。
22.如权利要求20所述的方法,其中每个多级单元包括n个比特,并且能利用2n个不同阈值电压电平被编程为2n个独立状态,其中所述第一数量的阈值电压电平包括2n,其中每一个所述存储单元组具有p个存储单元,其中每个存储单元组表示2np个信息状态,其中所述第一数量的信息比特包括m个信息比特,其中m=Log2(2np)个信息比特,并且其中所选择的第二数量的比特包括k个比特,其中k<m,并且其中所述第二数量的阈值电压电平包括j个阈值电压电平,仅包括所述2n个不同阈值电压电平中的j个最低阈值电压电平,其中j<2n,并且j是大于或等于2k/p的最小整数。
23.如权利要求20、21和22中的任一项所述的方法,进一步包括:
读取所述存储单元组中的所述存储单元的状态;
将所述读取状态解码为具有所述第一数量的信息比特的解码的比特;
将所述解码的比特转变成具有所述第二数量的信息比特的转变的比特;以及
将转变的解码的比特返回到页。
24.一种用于读取数据和将数据写入非易失性存储器存储装置中的存储单元的设备,包括:
用于访问所述非易失性存储器存储装置中的组织为页的存储单元的部件,其中每个多级单元包括多个比特,并且能使用第一数量的阈值电压电平被编程具有信息,其中所述存储单元被组织成写入数据的存储单元组,其中每个存储单元组被编程为存储第一数量的信息比特;
用于从页中选择第二数量的信息比特以写入所述存储单元组之一的部件,其中信息比特的所述第二数量小于信息比特的所述第一数量;以及
用于使用来自第二数量的阈值电压电平的阈值电压电平对所述存储单元组的所述存储单元进行编程的部件,其中阈值电压电平的所述第二数量小于阈值电压电平的所述第一数量,并且包括所述第一数量的阈值电压电平中的最低阈值电压电平。
25.如权利要求20所述的设备,其中所述对所述存储单元进行编程将所述第二数量的信息比特转变为所述第一数量的信息比特以使用来自所述第二数量的阈值电压电平的所述阈值电压电平进行编程。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/228699 | 2016-08-04 | ||
US15/228,699 US10043573B2 (en) | 2016-08-04 | 2016-08-04 | Apparatus and method for endurance friendly programming using lower voltage thresholds |
PCT/US2017/041603 WO2018026475A2 (en) | 2016-08-04 | 2017-07-11 | Apparatus and method for endurance friendly programming using lower voltage thresholds |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109891506A true CN109891506A (zh) | 2019-06-14 |
CN109891506B CN109891506B (zh) | 2023-07-21 |
Family
ID=61069399
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780049298.7A Active CN109891506B (zh) | 2016-08-04 | 2017-07-11 | 用于使用较低电压阈值进行耐久性友好编程的设备和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10043573B2 (zh) |
CN (1) | CN109891506B (zh) |
DE (1) | DE112017003906T5 (zh) |
WO (1) | WO2018026475A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114356221A (zh) * | 2021-12-07 | 2022-04-15 | 广州致存科技有限责任公司 | 数据写入方法、存储设备和存储介质 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10366763B2 (en) * | 2017-10-31 | 2019-07-30 | Micron Technology, Inc. | Block read count voltage adjustment |
US10522226B2 (en) * | 2018-05-01 | 2019-12-31 | Silicon Storage Technology, Inc. | Method and apparatus for high voltage generation for analog neural memory in deep learning artificial neural network |
US10720217B1 (en) * | 2019-01-29 | 2020-07-21 | Silicon Storage Technology, Inc. | Memory device and method for varying program state separation based upon frequency of use |
US11061762B2 (en) * | 2019-02-04 | 2021-07-13 | Intel Corporation | Memory programming techniques |
US11221778B1 (en) | 2019-04-02 | 2022-01-11 | Pure Storage, Inc. | Preparing data for deduplication |
US11640255B2 (en) * | 2020-11-19 | 2023-05-02 | Macronix International Co., Ltd. | Memory device and operation method thereof |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101131871A (zh) * | 2006-08-24 | 2008-02-27 | 意法半导体股份有限公司 | 非易失性的电可编程存储器 |
US20080084739A1 (en) * | 2006-09-06 | 2008-04-10 | Dong Hyuk Chae | Method for Programming a Multi-Level Non-Volatile Memory Device |
CN103197897A (zh) * | 2012-01-09 | 2013-07-10 | 三星电子株式会社 | 存储装置和非易失性存储器装置及其操作方法 |
US20140053043A1 (en) * | 2010-07-11 | 2014-02-20 | Apple Inc. | Interference-Aware Assignment of Programming Levels in Analog Memory Cells |
CN104881240A (zh) * | 2014-02-27 | 2015-09-02 | 群联电子股份有限公司 | 数据写入方法、存储器存储装置及存储器控制电路单元 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5754469A (en) | 1996-06-14 | 1998-05-19 | Macronix International Co., Ltd. | Page mode floating gate memory device storing multiple bits per cell |
EP1365417A1 (en) | 2002-05-13 | 2003-11-26 | STMicroelectronics S.r.l. | Programming method of the memory cells in a multilevel non-volatile memory device |
KR100669351B1 (ko) | 2005-07-29 | 2007-01-16 | 삼성전자주식회사 | 멀티 레벨 셀 플래시 메모리의 프로그램 방법 및 장치 |
JP4907925B2 (ja) | 2005-09-09 | 2012-04-04 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US7526715B2 (en) | 2005-10-17 | 2009-04-28 | Ramot At Tel Aviv University Ltd. | Probabilistic error correction in multi-bit-per-cell flash memory |
US7593259B2 (en) | 2006-09-13 | 2009-09-22 | Mosaid Technologies Incorporated | Flash multi-level threshold distribution scheme |
KR101393622B1 (ko) | 2007-08-30 | 2014-05-13 | 삼성전자주식회사 | 멀티 비트 플래시 메모리 장치를 포함하는 시스템 및그것의 데이터 처리 방법 |
US7852671B2 (en) | 2008-10-30 | 2010-12-14 | Micron Technology, Inc. | Data path for multi-level cell memory, methods for storing and methods for utilizing a memory array |
US8868821B2 (en) | 2009-08-26 | 2014-10-21 | Densbits Technologies Ltd. | Systems and methods for pre-equalization and code design for a flash memory |
KR101616100B1 (ko) | 2009-09-25 | 2016-04-28 | 삼성전자주식회사 | 메모리 시스템 및 그것의 동작 방법 |
KR101598382B1 (ko) | 2010-03-02 | 2016-03-02 | 삼성전자주식회사 | 상태 기반 불휘발성 메모리 장치 및 그것의 에러 정정 방법 |
US8248124B2 (en) | 2010-06-03 | 2012-08-21 | Intel Corporation | Methods and apparatuses for delay-locked loops and phase-locked loops |
US8533550B2 (en) | 2010-06-29 | 2013-09-10 | Intel Corporation | Method and system to improve the performance and/or reliability of a solid-state drive |
TWI455144B (zh) * | 2010-07-22 | 2014-10-01 | Silicon Motion Inc | 使用於快閃記憶體的控制方法與控制器 |
KR101941270B1 (ko) | 2012-01-03 | 2019-04-10 | 삼성전자주식회사 | 멀티-레벨 메모리 장치를 제어하는 메모리 제어기 및 그것의 에러 정정 방법 |
WO2013147819A1 (en) | 2012-03-29 | 2013-10-03 | Intel Corporation | Compression-enabled blending of data in non-volatile memory |
US8787079B2 (en) | 2012-05-07 | 2014-07-22 | Sandisk Technologies Inc. | Reading data from multi-level cell memory |
KR20140025164A (ko) | 2012-08-21 | 2014-03-04 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 데이터 처리 방법 |
US20140071761A1 (en) | 2012-09-10 | 2014-03-13 | Sandisk Technologies Inc. | Non-volatile storage with joint hard bit and soft bit reading |
US9858994B2 (en) | 2015-06-18 | 2018-01-02 | Samsung Electronics Co., Ltd. | Memory system with MLC memory cells and partial page compression or reduction |
-
2016
- 2016-08-04 US US15/228,699 patent/US10043573B2/en active Active
-
2017
- 2017-07-11 CN CN201780049298.7A patent/CN109891506B/zh active Active
- 2017-07-11 WO PCT/US2017/041603 patent/WO2018026475A2/en active Application Filing
- 2017-07-11 DE DE112017003906.1T patent/DE112017003906T5/de active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101131871A (zh) * | 2006-08-24 | 2008-02-27 | 意法半导体股份有限公司 | 非易失性的电可编程存储器 |
US20080052458A1 (en) * | 2006-08-24 | 2008-02-28 | Stmicroelectronics S.R.L. | Non-volatile, electrically-programmable memory |
US20080084739A1 (en) * | 2006-09-06 | 2008-04-10 | Dong Hyuk Chae | Method for Programming a Multi-Level Non-Volatile Memory Device |
US20140053043A1 (en) * | 2010-07-11 | 2014-02-20 | Apple Inc. | Interference-Aware Assignment of Programming Levels in Analog Memory Cells |
CN103197897A (zh) * | 2012-01-09 | 2013-07-10 | 三星电子株式会社 | 存储装置和非易失性存储器装置及其操作方法 |
CN104881240A (zh) * | 2014-02-27 | 2015-09-02 | 群联电子股份有限公司 | 数据写入方法、存储器存储装置及存储器控制电路单元 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114356221A (zh) * | 2021-12-07 | 2022-04-15 | 广州致存科技有限责任公司 | 数据写入方法、存储设备和存储介质 |
CN114356221B (zh) * | 2021-12-07 | 2023-10-20 | 广州致存科技有限责任公司 | 数据写入方法、存储设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
DE112017003906T5 (de) | 2019-04-18 |
CN109891506B (zh) | 2023-07-21 |
WO2018026475A2 (en) | 2018-02-08 |
US20180040367A1 (en) | 2018-02-08 |
WO2018026475A3 (en) | 2018-07-26 |
US10043573B2 (en) | 2018-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109891506A (zh) | 用于使用较低电压阈值进行耐久性友好编程的设备和方法 | |
KR100874441B1 (ko) | 멀티-비트 데이터를 저장할 수 있는 플래시 메모리 장치,그것을 제어하는 메모리 제어기, 그리고 그것을 포함한메모리 시스템 | |
US10127997B2 (en) | Data storage device comprising super block parity data based on page type of word line or plane | |
US20170160942A1 (en) | Data storage device and flash memory control method | |
CN103782266B (zh) | 针对存储器持久性操作的设备及方法 | |
KR20110015269A (ko) | 메모리 시스템 및 그것의 프로그램 방법 | |
US20150169228A1 (en) | System and method of storing data at a non-volatile memory | |
CN106598479A (zh) | 闪速存储器的故障安全擦除的方法和装置 | |
TW201525692A (zh) | 多位元記憶胞非揮發性記憶體的寫入方法及系統 | |
US8161343B2 (en) | Nibble encoding for improved reliability of non-volatile memory | |
CN109844864B (zh) | 用于使用多单元存储单元组对非易失性存储器进行编程以提供保持差错的差错位置信息的方法和设备 | |
CN110286847A (zh) | 数据存储装置及其操作方法 | |
CN108231119A (zh) | 用每单元分数比特低延迟读取快闪存储设备的方法和装置 | |
CN110119326A (zh) | 数据存储装置及其操作方法 | |
CN109426453A (zh) | 数据存储装置及其操作方法 | |
CN117149059A (zh) | 非易失性存储器装置中的功率高效码字加扰 | |
US10095424B2 (en) | Apparatus and method for programming non-volatile memory using a multi-cell storage cell group | |
US9837145B2 (en) | Multi-level flash storage device with minimal read latency | |
KR101934517B1 (ko) | 메모리 컨트롤러, 이의 동작 방법, 및 상기 메모리 컨트롤러를 포함하는 시스템 | |
TWI656529B (zh) | 資料儲存裝置及其操作方法 | |
US20220365714A1 (en) | Channelization of pseudo-random binary sequence generators | |
TW201523634A (zh) | 當儲存資料於多位元儲存元件時利用虛擬資料的裝置及方法 | |
CN115454326A (zh) | 对已分组存储器信元执行数据操作 | |
CN114664334A (zh) | 对已分组存储器信元执行数据操作 | |
KR20210044306A (ko) | 분산 시퀀서 구성요소를 갖는 제어기 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |