CN115331721A - 存储器系统、存储装置及其编程方法、读取方法 - Google Patents
存储器系统、存储装置及其编程方法、读取方法 Download PDFInfo
- Publication number
- CN115331721A CN115331721A CN202210919730.6A CN202210919730A CN115331721A CN 115331721 A CN115331721 A CN 115331721A CN 202210919730 A CN202210919730 A CN 202210919730A CN 115331721 A CN115331721 A CN 115331721A
- Authority
- CN
- China
- Prior art keywords
- data
- bit
- bits
- programmed
- latch
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/12—Programming voltage switching circuits
-
- 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
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
-
- 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/26—Sensing or reading circuits; Data output circuits
Landscapes
- Read Only Memory (AREA)
Abstract
本公开实施例公开了一种存储器系统、存储装置及其编程方法、读取方法,所述存储装置至少包括最大状态数为2X的多个存储单元,所述X为大于1的自然数;所述方法包括:对待编程的数据串进行第一处理,得到至少一个X比特的数据组;其中,所述至少一个X比特的数据组中的每一个数据组包括Y比特有效位;所述Y为小于X的自然数;将所述至少一个X比特的数据组依次编程至所述存储单元;其中,数据组对应的最大状态数为2Y。
Description
技术领域
本公开实施例涉及存储装置操作领域,涉及但不限于一种存储器系统、存储装置及其编程方法及、读取方法。
背景技术
而NAND产品的存储模式一般在设计阶段就已经成型。如果在产品成功流片后的验证阶段,再试图改变其存储模式,则需要付出的成本不亚于全新产品的开发。NAND产品固定的存储模式局限了NAND产品的应用场景,故如何实现可灵活调整NAND产品的存储模式成为了亟需解决的问题。
发明内容
有鉴于此,本公开实施例提供一种存储器系统、存储装置及其编程方法、读取方法。
第一方面,本公开实施例提供一种存储装置的编程方法,所述存储装置至少包括最大状态数为2X的多个存储单元,所述X为大于1的自然数;所述编程方法包括:
对待编程的数据串进行第一处理,得到至少一个X比特的数据组;其中,所述至少一个X比特的数据组中的每一个数据组包括Y比特有效位;所述Y为小于X的自然数;
将所述至少一个X比特的数据组依次编程至所述存储单元;其中,数据组对应的最大状态数为2Y。
在一些实施例中,所述对待编程的数据串进行第一处理,得到至少一个X比特的数据组包括:
对待编程的数据串插入无效位数据,得到至少一个X比特的数据组。
在一些实施例中,所述对待编程的数据串插入无效位数据,得到至少一个X比特的数据组包括:
对待编程的数据串的每Y比特数据做第二处理得到X-Y比特无效位数据;
对待编程的数据串的每Y比特数据插入所述X-Y比特无效位数据,得到所述X比特的数据组。
在一些实施例中,所述编程方法还包括:
将所述至少一个X比特的数据组传输至存储装置的页缓冲器中。
在一些实施例中,所述编程方法还包括:
将所述待编程的数据串传输至存储装置的页缓冲器中;
所述对待编程的数据串进行第一处理,得到至少一个X比特的数据组包括:
对在页缓冲器中的所述待编程的数据串进行第一处理,得到至少一个X比特的数据组。
在一些实施例中,所述对在页缓冲器中的所述待编程的数据串进行第一处理,得到至少一个X比特的数据组包括:
将待编程的数据串的每Y比特数据存储在页缓冲器中的Y个第一锁存器中;
将X-Y比特无效数据存储在X-Y个第二锁存器中;其中,所述第一锁存器中的Y比特数据与所述第二锁存器中的X-Y比特的无效数据共同作为所述X比特的数据组。
在一些实施例中,所述将X-Y比特无效数据存储在X-Y个第二锁存器中包括:
将X-Y比特第一临时数据存储在X-Y个第二锁存器中;
对所述第一锁存器中的Y比特数据进行第三处理,得到X-Y比特的第二临时数据,并存储至X-Y个第三锁存器中;
对所述第二锁存器中的第一临时数据与所述第三锁存器中的第二临时数据进行第四处理,得到X-Y比特的无效数据,并存储至所述第二锁存器中。
在一些实施例中,所述对所述第一锁存器中的Y比特数据进行第三处理,得到X-Y比特的第二临时数据,包括:
对所述Y比特数据进行异或处理,得到X-Y比特的所述第二临时数据。
在一些实施例中,对所述第二锁存器中的第一临时数据与所述第三锁存器中的第二临时数据进行第四处理,得到X-Y比特的无效数据,包括:
对所述第一临时数据和所述第二临时数据按位进行与运算处理,得到所述X-Y比特的无效数据。
在一些实施例中,所述对待编程的数据串进行第一处理,得到至少一个X比特的数据组包括:
在所述待编程的数据串的指标和/或存储装置的状态满足预设条件的状态下,对待编程的数据串进行第一处理,得到至少一个X比特的数据组。
在一些实施例中,所述预设条件包括以下至少之一:
所述待编程的数据串的指标为性能参数位于预设性能参数范围之内;其中性能参数包括数据串的数据大小和/或待编程数据串的写入命令类型;
所述存储装置的状态为性能参数位于预设性能范围之外;其中,所述性能参数包括编程擦除循环次数和/或剩余存储量。
第二方面,本公开实施例提供一种存储装置的读取方法,所述存储装置至少包括最大状态数为2X的多个存储单元,所述存储单元中存储的数据包括Y比特有效位和X-Y比特无效位;所述读取方法包括:
使用第一读取电压组读取所述存储单元中存储的Y比特有效位对应的存储页面并得到Y比特数据的读取结果;所述第一读取电压组包括N个读取电压,N小于2X-1。
在一些实施例中,所述读取方法包括:
使用第二读取电压组读取所述存储单元中存储的Y比特有效位对应的存储页面并得到Y比特数据的读取结果;所述第二读取电压组中的第1至N个读取电压大于所述第一读取电压组中对应的第1至N个读取电压。
在一些实施例中,所述读取方法还包括:
将所述Y比特有效数据的读取结果存入页缓冲器的Y个第四锁存器中;
将所述Y个第四锁存器中的数据输出至接收端。
在一些实施例中,所述读取方法还包括:
将X-Y比特无效数据存储在X-Y个第五锁存器中。
在一些实施例中,所述读取方法包括:
将X-Y比特第三临时数据存储在X-Y个第五锁存器中;
对所述第四锁存器中的Y比特数据进行第五处理,得到X-Y比特第四临时数据;并存储至X-Y个第六锁存器中;
对所述第五锁存器中第三临时数据与所述第六锁存器中的第四临时数据进行第六处理,得到X-Y比特的无效数据,并存储在第五锁存器中。
在一些实施例中,所述对所述第五锁存器中第三临时数据与所述第六锁存器中的第四临时数据进行第六处理,得到X-Y比特的无效数据,包括:
对所述第三临时数据和所述第四临时数据按位进行与运算处理,得到所述X-Y比特的无效数据。
在一些实施例中,所述读取方法包括包括:
将X-Y比特预定数据存储在X-Y个第五锁存器中。
第三方面,本公开实施例还提供了一种存储装置,包括:
存储单元阵列;
外围电路,与所述存储单元阵列连接并且被配置为执行如上述实施例任一所述的方法。
第四方面,本公开实施例还提供了一种存储器系统,包括:
存储装置;
存储控制器,与所述存储装置连接并且被配置为执行如上述实施例任一所述的方法。
本公开实施例通过将待编程的数据在编程至X比特的存储单元前,对待编程的数据进行处理,使得待编程的数据处理为至少一个X比特的数据组。该至少一个X比特的数据组中的每一个数据组包括Y比特有效位和(X-Y)比特的无效位。即实现了X比特的存储单元降级为“Y”比特的存储单元使用。
通过本公开实施例的上述技术方案可以在不对存储单元进行改版的条件下,采用写入无效位的方式,实现存储单元存储模式的变化。将存储单元的存储模式灵活地应用为1比特有效位至X比特有效位对应的存储模式,极大丰富了存储装置的应用场景。
附图说明
图1为本公开实施例提供的一种示例性系统的结构示意图;
图2为本公开实施例提供的一种存储器卡的结构示意图;
图3为本公开实施例提供的一种固态硬盘(SSD,Solid State Disk)的结构示意图;
图4为本公开实施例提供的一种包括存储单元阵列和外围电路的存储装置的结构示意图;
图5为本公开实施例提供的又一种包括存储单元阵列和外围电路的存储装置的结构示意图;
图6为本公开实施例提供的一种存储装置编程方法的流程图;
图7为本公开实施例提供的又一种存储装置编程方法的流程图;
图8为本公开实施例提供的一种存储装置读取方法的流程图;
图9为本公开实施例提供的一种存储装置读取电压组与TLC模式状态对应的示意图;
图10为本公开实施例提供的又一种存储装置读取方法的流程图;
图11为本公开实施例提供的一种存储装置读取电压组与“MLC”模式状态对应的示意图;
图12为本公开实施例提供的又一种存储装置读取电压组与“MLC”模式状态对应的示意图;
图13为本公开实施例提供的一种存储器系统的示意图。
具体实施方式
为了便于理解本公开,下面将参照相关附图对本公开进行更全面的描述。附图中给出了本公开的首选实施例。但是,本公开可以以多种不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使本公开的公开内容更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本公开的技术领域的技术人员通常理解的含义相同。本文中在本公开的说明书中所使用的术语只是为了实现描述具体的实施例的目的,不是旨在限制本公开。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
如图1所示,本公开实施例示出了一种示例性系统10,该示例性系统10可以包括主机20和存储器系统30。其中,示例性系统10可以包括但不限于移动电话、台式计算机、膝上型计算机、平板计算机、车辆计算机、游戏控制台、打印机、定位设备、可穿戴电子设备、智能传感器、虚拟现实(VR)设备、增强现实(AR)设备或者其中具有存储装置34的任何其他合适的电子设备;主机20可以是电子设备的处理器(例如,中央处理单元(CPU))或者片上系统(SoC)(例如,应用处理器(AP))。
在本公开实施例中,主机20可以被配置为将数据发送到存储器系统30或者从存储器系统30接收数据。这里,存储器系统30可以包括存储控制器32和一个或多个存储装置34。其中,存储装置34可以包括但不限于NAND闪存(NAND Flash Memory)、垂直NAND闪存(Vertical NAND Flash Memory)、NOR闪存(NOR Flash Memory)、动态随机存储器(DynamicRandom Access Memory,DRAM)、铁电随机存储器(Ferroelectric Random Access Memory,FRAM)、磁性随机存储器(Magnetoresistive Random Access Memory,MRAM)、相变随机存储器(Phase Change Random Access Memory,PCRAM)、阻变随机存储器(Resistive RandomAccess Memory,RRAM)、纳米随机存储器(Nano Random Access Memory,NRAM)等。
在本公开实施例中,存储控制器32可以耦合到存储装置34和主机20,且用于控制存储装置34。示例性地,存储控制器可以被设计为用于在低占空比环境中操作,如安全数字(SD)卡、紧凑型闪存(CF)卡、通用串行总线(USB)闪存驱动器或者用于在诸如个人计算机、数字相机、移动电话等电子设备中使用的其他介质。在一些实施例中,存储控制器还可以被设计为用于在高占空比环境中操作,如SSD或嵌入式多媒体卡(eMMC),并且SSD或eMMC还可以用作诸如智能电话、平板计算机、膝上型计算机等移动设备的数据储存器以及企业存储阵列。进一步地,存储控制器可以管理存储装置中的数据,并且与主机通信。存储控制器可以被配置为控制存储装置读取、擦除和编程等操作;还可以被配置为管理关于存储在或要存储在存储装置中的数据的各种功能,包括但不限于坏块管理、垃圾收集、逻辑到物理地址转换、损耗均衡等;还可以被配置为处理关于从存储装置读取的或者被写入到存储装置中的数据的纠错码(ECC)。此外,存储控制器还可以执行任何其他合适的功能,例如格式化存储装置,或者根据特定通信协议与外部设备(例如,图1中主机20)通信。示例性地,存储控制器可以通过各种接口协议中的至少一种与外部设备通信,接口协议例如USB协议、MMC协议、外围部件互连(PCI)协议、PCI高速(PCI-E)协议、高级技术附件(ATA)协议、串行ATA协议、并行ATA协议、小型计算机小型接口(SCSI)协议、增强型小型磁盘接口(ESDI)协议、集成驱动电子设备(IDE)协议、Firewire协议等。
在本公开实施例中,存储控制器和一个或多个存储装置可以集成到各种类型的存储设备中,例如,包括在相同封装(例如,通用闪存存储(UFS)封装或eMMC封装)中。也就是说,存储器系统可以实施并且封装到不同类型的终端电子产品中。如图2所示,存储控制器32和单个存储装置34可以集成到存储器卡40中。存储器卡40可以包括PC卡(PCMCIA,个人计算机存储器卡国际协会)、CF卡、智能媒体(SM)卡、存储器棒、多媒体卡(MMC、RS-MMC、MMCmicro)、SD卡(SD、miniSD、microSD、SDHC)、UFS等。存储器卡40还可以包括将存储器卡40与主机(例如,图1中的主机20)耦合的存储器卡连接器42。在如图3中所示的另一实施例中,存储控制器32和多个存储装置34可以集成到SSD 50中。SSD 50还可以包括将SSD 50与主机(例如,图1中的主机20)耦合的SSD连接器52。在一些实施方式中,SSD 50的存储容量和/或操作速度大于存储器卡40的存储容量和/或操作速度。
需要说明的是,本公开实施例涉及的存储装置可以是半导体存储装置,是用半导体集成电路工艺制成的存储数据信息的固态电子器件。示例性地,图4为本公开实施例中一种可选的存储装置60的示意图。其中,存储装置60可以是图1至图3中的存储装置34。如图4所示,存储装置60可以由存储单元阵列62和耦合到存储单元阵列62的外围电路64等组成。这里,存储单元阵列可以是NAND闪存存储单元阵列,其中,存储单元以NAND存储串66阵列的形式提供,每个NAND存储串66在衬底上方垂直地延伸。在一些实施例中,每个NAND存储串66可以包括串联耦合并且垂直地堆叠的多个存储单元。其中,每个存储单元以保持连续模拟值,例如,电压或电荷,其取决于在存储单元区域内捕获的电子的数量。另外,上述存储单元阵列62中的每个存储单元可以是包括浮栅晶体管的浮栅类型的存储单元,或者是包括电荷捕获晶体管的电荷捕获类型的存储单元。
在本公开实施例中,上述存储单元可以是具有两种可能的存储状态并且因此可以存储一位数据的单级存储单元(Single Level Cell,SLC)。例如,第一存储状态“0”可以对应于第一电压范围,并且第二存储状态“1”可以对应于第二电压范围。在另一些实施例中,每个存储单元是能够在多于四个的存储状态中存储多于单个位的数据的多级存储单元。例如每单元存储两位的两级存储单元(Multi Level Cell,MLC),每单元存储三位的三级存储单元(Triple Level Cell,TLC),或者每单元存储四位的四级存储单元(Quad Level Cell,QLC)。每个多级存储单元可以被编程为采取可能的标称存储值的范围。示例性地,如果每个MLC存储两位数据,则MLC可以被编程为通过将三个可能的标称存储值中的一个写入到该存储单元而从擦除状态采取三个可能的编程级中的一个。其中,第四标称存储值可以用于擦除状态。
在本公开实施例中,上述外围电路可以通过位线(Bit Line,BL)、字线(WordLine,WL)、源极(Source Line)、源极选择栅(Source Select Gate,SSG)和漏极选择栅(Drain Select Gate,DSG)耦合到存储单元阵列。这里,外围电路可以包括任何合适的模拟、数字以及混合信号电路,以用于通过经由位线、字线、源极、SSG和DSG将电压信号和/或电流信号施加到每个目标存储单元以及从每个目标存储单元感测电压信号和/或电流信号来促进存储单元阵列的操作。此外。外围电路还可以包括使用金属-氧化物-半导体(MOS)技术形成的各种类型的外围电路。示例性地,如图5所示。外围电路70包括页缓冲器(PageBuffer)/感测放大器71、列解码器/位线驱动器72、行解码器/字线驱动器73、电压发生器74、控制逻辑单元75、寄存器76、接口77和数据总线78。应当理解,上述外围电路70可以与图4中的外围电路64相同,并且在另一些实施例中,外围电路70还可以包括图5中未示出的附加外围电路。
由于对更高存储容量的需求,NAND闪存存储器件中的存储单元被配置为能够存储多于1位的数据。nLC NAND闪存单元可以具有2n个状态(例如,利用2n不同的电荷范围代表不同的状态),因此可以存储n位数据。其中,SLC闪存单元可以具有2个状态,故可存储1位数据;MLC闪存单元可以具有4个状态,故可以存储2位数据;TLC闪存单元可以具有8个状态,故可以存储3位数据;QLC闪存单元可以具有16个状态,故可以存储4位数据,依此类推。
在2n个状态中,可以包括一个擦除态和2n-1个编程态。nLC NAND闪存可以以页为单位,逐页地对数据进行编程和/或读取操作。在编程操作期间,将nLC NAND闪存单元的最大状态数为2n个状态,并将n位数据作为这些状态之一写入QLC NAND闪存单元中。nLC NAND闪存单元可以存储n页的数据。例如,SLC NAND闪存单元可以存储1页的数据,MLC NAND闪存单元可以存储2页的数据,TLC NAND闪存单元可以存储3页的数据以及QLC NAND闪存单元可以存储4页的数据,依此类推。示例性地,TLC NAND闪存单元存储的3位数据可以分别由下层页数据(LP)、中间页数据(MP)以及上层页数据(UP)表示。
在一组数的编码中,若任意两个相邻状态的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code),因为任意相邻状态的代码只有一位二进制数不同,故在编程和/或读取操作中使用格雷码可以更容易地对编程和/或读取的数据进行纠错。
在一些实施例中,可以采用全序列编程的方法对各存储单元进行编程。其中,对于TLC NAND闪存存储器,表1示出了一种用于TLC NAND闪存存储器编程和/或读取的格雷码查找表。格雷码查找表描述了TLC NAND闪存单元的状态与逻辑页面之间的映射关系。在读取操作中,为了读取TLC NAND闪存单元的状态,需要对LP进行2次读取,对MP进行3次读取以及对UP进行3次读取。
表1
在读取逻辑页面数据的操作中,通过字线控制电路施加各种读取电压至存储器单元并且通过存储单元的控制栅(control gate)是否导通和对应的运算式来判断逻辑页面数据的值。例如,当读取电压施加在存储单元上,并使得控制栅导通时,则输出值“1”;当读取电压施加在存储单元上,并使得控制栅未导通时,则输出值“0”;以LP页面为例,将其2次读取操作对应的2个输出值带入对应的运算式中,则可以判断出当前逻辑页面数据的值。可以理解,不同的格雷码查找表对应的运算式是不同的。
目前主流的NAND产品在设计过程中,NAND的模式可以为单一模式,例如:SLC模式、MLC模式、TLC模式、QLC模式,例如:SLC模式加上X模式,其中,X模式可以为MLC模式、TLC模式以及QLC模式中的任意一种。SLC模式的特点是其具有更快的读写性能,以及更严格的可靠性品质。而X模式则代表更高的存储容量,可以理解MLC模式、TLC模式以及QLC模式的存储容量依次递增。
NAND的模式还可以为混合模式:“SLC模式+X模式”。这两种模式可以在控制器的控制下配合使用,不但能充分发挥SLC模式高速的读写性能优势,还能获得X模式的高存储容量,其数倍于SLC模式的存储容量。
从SLC模式到MLC模式到TLC模式再到QLC,其存储容量虽然越来越高,但其使用寿命、数据保持能力等可靠性品质则依次减少。
而NAND产品的存储模式一般在设计阶段就已经成型。如果在产品成功流片后的验证阶段,再试图改变其存储模式,则需要付出的成本不亚于全新产品的开发。
对于已经设计定版的NAND产品,例如TLC模式的单一模式或者SLC模式加上TLC模式的混合模式,即使可以接受牺牲一定的存储容量、编程速度来换取极端严苛的可靠性品质,其常规解决办法也只能基于现有的工艺水平重新设计NAND产品的模式,例如将TLC模式的单一模式设计改版改为MLC模式的单一模式,或者将SLC模式加上TLC模式的混合模式设计改版改为SLC模式加上MLC模式的混合模式。这些修改需要付出巨大的成本和研发周期。
因此如果能使用一种快速、高效且不需要任何设计改版的方式来实现存储装置产品的降级使用,例如,将单一模式的TLC模式的降级为MLC模式,或者将混合模式中的TLC降级为MLC模式的混合模式等等,即可大幅缩短研发周期,提高产品的使用范围。
本公开实施例提供一种存储装置的编程方法,存储装置至少包括最大状态数为2X的多个存储单元,X为大于1的自然数;如图6所示,该方法包括:
步骤S101、对待编程的数据串进行第一处理,得到至少一个X比特的数据组;其中,至少一个X比特的数据组中的每一个数据组包括Y比特有效位;Y为小于X的自然数;
步骤S102、将至少一个X比特的数据组依次编程至存储单元;其中,数据组对应的最大状态数为2Y。
本公开实施例所述的存储装置包括但不限于图1中存储装置装置34可选的存储装置。为了便于描述,本公开实施例均以3D NAND闪存存储装置为例进行说明。
本公开实施例的存储单元包括能够存储至少两比特数据的闪存单元,例如,能够存储两比特数据的MLC NAND闪存单元、能够存储三比特数据的TLC NAND闪存单元以及能够存储四比特数据的QLC NAND闪存单元,甚至能够存储更多比特数据的n级存储单元。下面以存储单元为TLC NAND闪存单元为例进行说明。
存储装置中的存储单元可具有的最大状态数由其可存储的比特数决定。SLC NAND闪存单元可具有的最大状态数为2、MLC NAND闪存单元可具有的最大状态数为4、TLC NAND闪存单元可具有的最大状态数为8、QLC NAND闪存单元可具有的最大状态数为16,即nLC可具有的最大状态数为2n。
本公开实施例中存储装置接收的待编程的数据串可以是主机发送的。示例性的,该主机可以利用各种电子装置中的任意一种来实施。在一些实施例中,主机可以包括电子装置,例如台式计算机、工作站、三维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器和/或数字视频记录器和数字视频播放器。在一些实施例中,主机可以包括便携式电子装置,例如移动电话、智能电话、电子书、MP3播放器、便携式多媒体播放器以及便携式游戏机等。
为了便于理解,下面以用于TLC的待编程的数据串以“100101010001110111”为例进行说明,可以理解的是,该待编程的数据串的内容不限于此。
当存储装置的存储单元为TLC NAND闪存单元时,可以按照TLC模式的编程方法将该待编程的数据串的数据按照每3比特数据依次编入存储单元中。具体的,例如将待编程的数据串按照100、101、010、001、110、111存入页缓冲器中然后进行编程。而本公开实施例可以将NAND闪存预置的模式降级使用,例如可以将TLC模式降级为MLC模式或SLC模式使用。
在一实施例中,将初始模式为TLC模式降级为“MLC”模式,需要注意的是“MLC”模式可应用于nLC NAND闪存单元,这里的初始模式为TLC模式,则可应用于TLC NAND闪存单元,“MLC”模式还可应用于QLC NAND闪存单元。与用于MLC NAND闪存单元的MLC模式不同,这里的“MLC”模式在存储过程中实际仍采用TLC NAND闪存单元的存储架构,即实际仍存储TLCNAND对应比特比特数的数据。使用时,可以将该待编程的数据串进行第一处理得到至少一个3比特的数据组。每个3比特的数据组中的每一个数据组包括2比特有效位,例如每个3比特数据中的每一个数据组包括待编程的数据串“100101010001110111”中的中的两位数据和相对应的一个无效位。
可以理解,当TLC模式降级为“SLC”模式使用时,可以将该待编程的数据串进行第一处理得到至少一个3比特的数据组。此时每个3比特的数据组中的每一个数据组包括1比特有效位,例如每个3比特数据中的每一个数据组包括待编程的数据串“100101010001110111”中的一位和相对应的两个无效位。实际决定数据组编程结果的为每个3比特数据中包括的有效位数据的内容,并且有效位数据的内容来自待编程的数据串。增加相对应的无效位,只是为了匹配TLC NAND闪存单元可存储3比特数据的存储模式。
上述步骤S102中,将至少一个X比特的数据组依次编程至存储单元。数据组对应的最大状态数为2Y。被降级编程的存储单元的最大状态数由有效位的位数决定,有效位的位数为Y且Y小于X,则数据组对应的最大状态数为2Y。例如,每个数据组中的3比特数据包括2比特有效位(对应“MLC”模式),则该数据组对应的最大状态数为22即4。
本公开实施例中,在将待编程的数据在编程至X比特的存储单元前,对待编程的数据进行处理,使得待编程的数据处理为至少一个X比特的数据组。该X比特的数据组中的每一个数据组包括Y比特有效位和(X-Y)比特的无效位,即实现了X比特的存储单元降级为Y比特的存储单元使用。
本公开实施例可以在不对存储单元进行改版的条件下,将存储模式为nLC模式的存储单元的存储模式增加扩展至“SLC”模式、“MLC”模式甚至“(n-1)LC”模式,极大丰富了存储装置的应用场景。
通过对降级使用的存储单元进行可靠性测试,可靠性测试包括在高温下做写入的动作,在低温下做读取的动作和在低温下做写入的动作,在高温下做读取动作的情况下,测试存储装置的一年数据保持能力。结果表明降级使用的存储单元相对于未降级使用的存储单元可以快速、高效地大幅度提升产品可靠性。
在一些实施例中,上述步骤S101:所述对待编程的数据串进行第一处理,得到至少一个X比特的数据组包括:
步骤S201、对待编程的数据串插入无效位数据,得到至少一个X比特的数据组。
在一些实施例中,可以在控制器的控制下对待编程的数据串进行第一处理,即对待编程的数据串中插入无效位数据,插入无效位数据的规则可以为在每Y比特数据中的任意位置插入(X-Y)比特数据,这样可以得到至少一个X比特的数据组。
在一些实施例中,上述步骤S201中,所述对待编程的数据串插入无效位数据,得到至少一个X比特的数据组包括:
步骤S301、对待编程的数据串的每Y比特数据做第二处理得到X-Y比特无效位数据;
步骤S302、对待编程的数据串的每Y比特数据插入所述X-Y比特无效位数据,得到所述X比特的数据组。
在一些实施例中,对每Y比特数据中间隔插入的(X-Y)比特数据可以是通过对每Y比特数据做第二处理(例如,异或处理)得到的。然后再将每X-Y个无效位数据和每Y比特数据结合起来组成X比特的数据组。
以待编程的数据串为“100101010001110111”、存储装置的存储单元为TLC NAND闪存单元为例,在控制器中将待编程的数据串的每2比特数据做异或处理得到1比特无效数据,即将待编程的数据串按照每2比特数据“10、01、01、01、00、01、11、01、11”依次进行异或处理得到“1、1、1、1、0、1、0、1、0”,然后将每2比特有效位数据和每1比特无效数据用于组成至少一个3比特的数据组,例如可以将异或处理得到的每1比特无效数据插入待编程数据串中的每2比特数据中,得到多个数据组“110、011、011、011、000、011、101、011、101”。然后,则可以按照TLC NAND正常的编程方式对上述处理后的各数据组编程至存储单元中,此时,每个存储单元存储的有效数据实际上之后2比特,从而实现了TLC NAND的降级使用。
在一些实施例中,如图7所示,所述方法还包括:
步骤S103、将所述至少一个X比特的数据组传输至存储装置的页缓冲器中。
这里,可以通过存储装置的控制器对上述待编程的数据串进行第一处理,得到至少一个X比特的数据组。再将这些X比特的数据组依次传输至存储装置的页缓冲器中,然后将存储在页缓冲器中的数据编程至目标页中,这样便完成了待写入数据串的编程操作。
在一些实施例中,所述方法还包括:
步骤S104、将所述待编程的数据串传输至存储装置的页缓冲器中;
此外,上述步骤S101中,对待编程的数据串进行第一处理,得到至少一个X比特的数据组包括:
步骤S401、对在页缓冲器中的所述待编程的数据串进行第一处理,得到至少一个X比特的数据组。
除了上述控制器进行第一处理的方法,本公开实施例还可以将待编程的数据串传输至存储装置的页缓冲器中,即在控制器中可以先不对待编程的数据串进行处理,而是直接将原始的待编程数据串传输至页缓冲器中。然后在页缓冲器中对待编程的数据串进行第一处理,得到至少一个X比特的数据组。
在一些实施例中,上述步骤S401中:所述对在页缓冲器中的所述待编程的数据串进行第一处理,得到至少一个X比特的数据组包括:
步骤S501,将待编程的数据串的每Y比特数据存储在页缓冲器中的Y个第一锁存器中;
步骤S502,将X-Y比特无效数据存储在X-Y个第二锁存器中;其中,所述第一锁存器中的Y比特数据与所述第二锁存器中的X-Y比特的无效数据共同作为所述X比特的数据组。
可以理解,因为存储单元可以存储X比特数据,故其页缓冲器中至少有用于存储X比特数据的X个锁存器。这里可以将X个锁存器分为存储有效位数据的第一锁存器和存储无效位数据的第二锁存器。需要说明的是,这里对于第一锁存器和第二锁存器的区分仅为了便于说明其存储的数据为有效或无效,并不要求有两种不同的锁存器。在实际应用中,上述上述第一锁存器和第二锁存器可以是页缓冲器中的任意锁存器。
在一些实施例中,可以先将Y比特有效位数据存储在页缓冲器中Y个第一锁存器中。然后将X-Y比特无效数据存储在X-Y个第二锁存器中。然后将这Y个第一锁存器和X-Y个第二锁存器中的数据共同用于编程操作。示例性地,每个锁存器可以包括由例如互补MOSFET(即,CMOS)器件制造的两个反相器,并且每个锁存器可以存储1个比特。
在一些实施例中,上述步骤S502中:所述将X-Y比特无效数据存储在X-Y个第二锁存器中包括:
步骤S601、将X-Y比特第一临时数据存储在X-Y个第二锁存器中;
步骤S602、对所述第一锁存器中的Y比特数据进行第三处理,得到X-Y比特的第二临时数据,并存储至X-Y个第三锁存器中;
步骤S603、对所述第二锁存器中的第一临时数据与所述第三锁存器中的第二临时数据进行第四处理,得到X-Y比特的无效数据,并存储至所述第二锁存器中。
在将Y比特有效数据存储至第一锁存器前,或者将Y比特有效数据存储至第一锁存器的同时,需要在第二锁存器中存入数据,故可以使用第一临时数据先存储至第二锁存器中。该第一临时数据可以是预先设置的固定数据,例如数据“1”。
可以理解,这里第二锁存器中存储的无效数据可以通过对有效数据的处理得到,从而可以使得最终编程的X比特数据符合格雷码的要求。而上述第一临时数据可能无法满足该要求,所以需要对Y比特数据进行第三处理,得到第二临时数据。此时,第二临时数据可以存储至预设的X-Y个第三锁存器中。需要说明的是,这里的第三锁存器可以是编程过程中不需要使用的锁存器。
然后通过对上述第一临时数据和第二临时数据进行第四处理,得到满足上述格雷码要求的无效数据,并可以存储至第二锁存器中,覆盖原先的第一临时数据。
在一些实施例中,上述步骤S602中,所述对所述第一锁存器中的Y比特数据进行第三处理,得到X-Y比特的第二临时数据,包括:
步骤S701、对所述Y比特数据进行异或处理,得到X-Y比特的所述第二临时数据。
在一些实施例中,上述步骤S603中,对所述第二锁存器中的第一临时数据与所述第三锁存器中的第二临时数据进行第四处理,得到X-Y比特的无效数据,包括:
步骤S801、对所述第一临时数据和所述第二临时数据按位进行与运算处理,得到所述X-Y比特的无效数据。
以待编程的数据串为“100101010001110111”、存储装置的存储单元为TLC NAND闪存单元、从TLC模式降级为“MLC”模式使用以及在页缓冲器中对待编程的数据串进行处理为例进行说明。
可以先将来自待编程数据串中的每2比特有效数据(“10”、“01”、“01”、“01”、“00”、“01”、“11”、“01”、“11”)放在第一锁存器中,将每1比特无效数据放在第二锁存器中。在一些实施例中,存储装置可包含多个页缓冲器,每个页缓冲器包含第一锁存器和第二锁存器,可以将“10”放入第一个页缓冲器中的第一锁存器中;将“01”放入第二个页缓冲器中的第一锁存器中,将“01”放入第三个页缓冲器中的第一锁存器中,以此类推;在一些实施例中,存储装置可包含一个分时共用的页缓冲器,可以将“10”放入第一个页缓冲器中的第一锁存器中,待第一锁存器和第二锁存器中的数据编程完成后,再将“01”放入第一个页缓冲器中的第一锁存器中,如此直到全部数据编程完毕。
这每1比特无效数据可以是这样得到的:先将1比特第一临时数据(例如:数据“1”)放在各页缓冲器中的第二锁存器中的1个锁存器中,将各页缓冲器中的第一锁存器中的两比特数据进行第三处理(例如,异或处理)得到1比特第二临时数据,例如,将“10”异或处理可得到“1”,“01”异或处理可得到“1”。将第二临时数据(例如“1”,“1”……)存到各页缓冲器中的第三锁存器中,第三锁存器可以是用于存储临时数据的锁存器。
然后将第二锁存器的中的1比特第一临时数据(例如:数据“1”)和第三锁存器中的1比特数据(例如“1”,“1”……)进行第四处理(例如,与处理),得到1比特的无效数据(例如“1”,“1”……),并存储在第二锁存器中。如此便实现了在页缓冲器中对待编程的数据串进行第一处理。
以上只是列举了将TLC NAND闪存单元的初始TLC模式降级为“MLC”模式使用的一种运算方式,实际的运算方式可以根据存储单元的初始模式和目标模式的不同进行相应的修改。
上述将高比特位的存储单元降级为低比特位的存储单元的方法可以特定的场景中使用,以满足特定的使用需求。
在一些实施例中,上述步骤S101中:所述对待编程的数据串进行第一处理,得到至少一个X比特的数据组包括:
步骤S901、在所述待编程的数据串的指标和/或存储装置的状态满足预设条件的状态下,对待编程的数据串进行第一处理,得到至少一个X比特的数据组。
当我们需要更严格的可靠性品质(例如更长的使用寿命、更强的数据保持能力等)时,我们可以将存储单元进行降级使用,当我们更看重存储容量时,我们可以不对存储单元进行降级使用,而保持其初始存储模式即可。
即对存储单元进行降级使用是有一定条件的,这个条件包括待编程的数据串的指标和/或存储装置的状态满足预设条件的状态下,而对存储单元降级使用,否则可以不对存储单元进行降级使用。
如此,能够使得存储装置的使用更加灵活,满足更多的使用场景。
在一些实施例中,所述预设条件包括以下至少之一:
所述待编程的数据串的指标为性能参数位于预设性能参数范围之内;其中性能参数包括数据串的数据大小和/或待编程数据串的写入命令类型;
所述存储装置的状态为性能参数位于预设性能范围之外;其中,所述性能参数包括编程擦除循环次数和/或剩余存储量。
在一些实施例中,当待编程的数据串的数据大小未超过预设范围时,可以对存储装置进行降级使用,这样既可以保证数据能完全编入存储装置中,也可以保证该待编程的数据串具有更好的可靠性品质。在一些实施例中,当待编程的数据串的携带某种标志时,可以对其进行降级使用,例如该标识可以用于表明该待编程的数据串为重要数据。或者,该标识用于限定对该待编程的存储单元执行的写入命令类型,当写入命令类型为MLC模式时,可以对TLC模式的存储单元进行降级处理。
在一些实施例中,对存储装置降级使用还需要考虑存储装置本身的性能。例如,当存储装置的编程擦除循环次数未超过目标次数时,可以对存储装置进行降级处理,以存储品质更高的数据为目标。而编程擦除循环次数超过目标次数时,可以不对存储装置进行降级处理,以延长存储装置的寿命为目标。又如,当存储装置的有效块未超过目标次数时,可以不对存储装置进行降级处理,以存储更多的数据为目标。而有效块超过目标次数时,可以对存储装置进行降级处理,以存储品质更高的数据为目标。
对使用本公开实施例的编程方法得到的存储单元而言,若对其进行擦除,其擦除方法可以不进行改变与为降级的存储单元的擦除方法一致。
本公开实施例还提供一种存储装置的读取方法,所述存储装置至少包括最大状态数为2X的多个存储单元,所述存储单元中存储的数据包括Y比特有效位和X-Y比特无效位;如图8所示,所述方法包括:
步骤S1001、使用第一读取电压组读取所述存储单元中存储的Y比特有效位对应的存储页面并得到Y比特数据的读取结果;所述第一读取电压组包括N个读取电压,N小于2X-1。
存储单元可具有的最大状态数由存储单元的有效位决定,当存储单元中存储的数据包括X比特有效位时,存储单元可具有的状态数为2X个。当存储单元中存储的数据包括Y比特有效位和X-Y比特无效位且X大于Y时,存储单元可具有的状态数为2Y个。即存储单元的无效位数据不用来决定存储单元的状态,故可以不读取无效位数据的值而获得存储单元的状态。在读取逻辑页面数据的操作中,通过字线控制电路施加各种读取电压至存储装置单元并且通过存储装置单元的控制栅(control gate)是否导通和对应的运算式来判断逻辑页面数据的值。例如,当读取电压施加在存储装置单元上,并使得控制栅导通时,则输出值“1”;当读取电压施加在存储装置单元上,并使得控制栅未导通时,则输出值“0”。
当存储单元中存储的数据包括X比特有效位时,可以通过存储单元中存储的X比特有效位对应的存储页面而获得存储单元的状态,读取电压的数量可为2X-1。以读取的存储单元为TLC NAND闪存单元为例,图9为本公开实施例提供的一种存储装置读取电压组与TLC模式状态对应的示意图,图9的横坐标为阈值电压,图9的纵坐标为概率密度。可以使用读取电压Vrd1和读取电压Vrd5读取LP页面;可以使用读取电压Vrd2和读取电压Vrd4和读取电压读取电压Vrd6读取MP页面;可以使用Vrd3和读取电压Vrd7读取UP页面。其中,Vrd1至Vrd7为一个读取电压组,故该读取电压组的电压数量可为23-1即7。
当存储单元中存储的数据包括Y比特有效位和X-Y比特无效位且X大于Y时,可以通过读取存储单元中存储的Y比特有效位对应的存储页面而获得存储单元的状态。即通过读取Y比特有效位对应的存储页面即可判断出存储单元的状态,可以放弃对X-Y比特无效位对应的存储页面的读取。读取Y比特有效位对应的存储页面所使用的读取电压的组合被称为第一电压组,可以理解,第一电压组在读取操作中所使用的读取电压的数量N小于2X-1。
以读取的存储单元为TLC NAND闪存单元为例,当放弃对1比特无效位对应的存储页面的读取时,至少节省了2至3个读取电压的数量;当放弃对2比特无效位对应的存储页面的读取时,至少节省了4至5个读取电压的数量。
通过减少对非必要读取页面的读取,减少了所使用的读取电压的数量,从而可以节约读取操作的读取时间,这有利于改善读取速度,提高存储装置的操作性能。
在一实施例中,将TLC NAND闪存存储单元降级为“MLC”NAND闪存存储单元使用,“MLC”NAND闪存存储单元对应的格雷码表可以为表2所示。
表2
TLC模式的状态E0(其逻辑页面的值为“111”)可对应“MLC”模式的状态E0(其逻辑页面的值为“111”);TLC模式的状态P2(其逻辑页面的值为“001”)可对应“MLC”模式的状态P2(其逻辑页面的值为“001”);TLC模式的状态P4(其逻辑页面的值为“010”)可对应“MLC”模式的状态P4(其逻辑页面的值为“010”);TLC模式的状态P6(其逻辑页面的值为“100”)可对应“MLC”模式的状态P6(其逻辑页面的值为“100”)。
而TLC模式的状态P1(其逻辑页面的值为“011”)、状态P3(其逻辑页面的值为“000”)、状态P5(其逻辑页面的值为“110”)以及状态P7(其逻辑页面的值为“101”)可对应无效状态。这是因为“MLC”模式对应的逻辑页面可能不会出现这些值。
可以看出,在“MLC”模式中,若LP页面和UP页面的值确定时,MP页面的值也是固定的(例如,其可以是基于LP页面和UP页面异或得到的值),即MP页面的值不影响确定“MLC”模式对应的状态,故可以不对MP页面的值进行读取操作。图11为本公开实施例提供的一种存储装置读取电压组与“MLC”模式状态对应的示意图,其横坐标为阈值电压,纵坐标为概率密度。可以使用读取电压Vrd1和读取电压Vrd5读取LP页面;可以使用Vrd3和读取电压Vrd7读取UP页面。可以不使用读取电压Vrd2和读取电压Vrd4和读取电压读取电压Vrd6读取MP页面;故第一读取电压组的电压可包括Vrd1、Vrd5、Vrd3以及Vrd7相对于读取TLC模式的三个页面所需要的7个电压而言,有效节约了读取电压的数量从而节约了读取时间。
在一些实施例中,所述方法还可以包括:
步骤S1101、使用第二读取电压组读取所述存储单元中存储的Y比特有效位对应的存储页面并得到Y比特数据的读取结果;所述第二读取电压组中的第1至N个读取电压大于所述第一读取电压组中对应的第1至N个读取电压。
第一读取电压组的电压可以参考读取nLC NAND闪存单元nLC模式所用的电压。在一些实施例中,如图12所示,第二读取电压组的电压(Vrd1+△Vrd1、Vrd3+△Vrd3、Vrd5+△Vrd5)可以是基于第一读取电压组(Vrd1、Vrd3、Vrd5)加上对应的电压偏移量(△Vrd1、△Vrd3、△Vrd5)所获得的电压;其中,Vrd7可以加上电压偏移量△Vrd7也可以不加。保留读取电压Vrd7,只是为了不改变对UP页面读取的操作逻辑。在一些实施例中,第二读取电压组的电压也可以是通过调试获得的更佳的读取电压。
以TLC模式降级为“MLC”模式为例,因为TLC模式中的状态P1、状态P3、状态P5以及状态P7成为了无效状态。故“MLC”模式中的状态E0和状态P2之间的读取窗口相较于TLC模式中的状态E0和状态P1之间的读取窗口增加了一个TLC的状态P1所处的阈值电压分布范围,依次类推,“MLC”模式中的状态P2和状态P4之间的读取窗口相较于TLC的状态P2和状态P3之间的读取窗口扩大了一个TLC模式中的状态P3所处的阈值电压分布范围等等。这样,“MLC”模式中的各状态之间的读取窗口较TLC模式中的各状态之间的读取窗口大大增加。对于TLC模式而言,读取电压Vrd1可能分布在其状态E0和状态P1的中间,但对于“MLC”模式而言,若使用读取电压Vrd1,其更靠近“MLC”的状态E0,故可以对读取电压Vrd1增加一个正电压偏移量△Vrd1,使其读取电压Vrd1+△rd1更靠近“MLC”的状态E0和状态P2的中间,这样能够使得读取结果更为准确。
可以理解的是,每个读取电压Vrd所增加的正电压偏移量△Vrd可以是相同的也可以是不同的,这可以取决于无效状态的阈值电压分布范围也可以取决于存储装置的产品类型还可以取决于可靠性测试结果更可以取决于客户要求等等。
通过调整合适的“MLC”模式的读取电压,可使产品在可靠性测试中获得极低的读取重试率,增加产品的可靠性。
在一些实施例中,如图10所示,所述方法还包括:
步骤S1002、将所述Y比特有效数据的读取结果存入页缓冲器的Y个第四锁存器中;
步骤S1003、将所述Y个第四锁存器中的数据输出至接收端。
在一些实施例中,可以直接将Y比特有效数据先暂存在页缓冲器的Y个第四锁存器中,然后再输出到接收端。接收端可以是与发送待编程数据串相同的器件也可以是不同的器件。接收端可以包括电子装置,例如台式计算机、工作站、三维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器和/或数字视频记录器和数字视频播放器。在一些实施例中,主机可以包括便携式电子装置,例如移动电话、智能电话、电子书、MP3播放器、便携式多媒体播放器以及便携式游戏机等。
在一些实施例中,所述方法还包括:
步骤S1004、将X-Y比特无效数据存储在X-Y个第五锁存器中。
在一些实施例中,可以将无效位数据暂存在第五锁存器中。然后和暂存在第四锁存器中的数据一起输出,再通过控制器的解码去掉无效数据,最后将有效位数据传输至接收端。
在一些实施例中,第四锁存器和第五锁存器可以是数据锁存器。需要说明的是,这里对于第四锁存器和第五锁存器的区分仅为了便于说明其存储的数据为有效或无效,并不要求有两种不同的锁存器。在实际应用中,上述上述第四锁存器和第五锁存器可以是页缓冲器中的任意锁存器。
在一些实施例中,所述方法包括:
步骤S1201、将X-Y比特第三临时数据存储在X-Y个第五锁存器中;
步骤S1202、对所述第四锁存器中的Y比特数据进行第五处理,得到X-Y比特第四临时数据;并存储至X-Y个第六锁存器中;
步骤S1203、对所述第五锁存器中第三临时数据与所述第六锁存器中的第四临时数据进行第六处理,得到X-Y比特的无效数据,并存储在第五锁存器中。
在将Y比特有效数据存储至第四锁存器前,或者将Y比特有效数据存储至第四锁存器的同时,需要在第五锁存器中存入数据,故可以使用第三临时数据先存储至第五锁存器中。该第三临时数据可以是预先设置的固定数据,例如数据“1”。
可以理解,这里第五锁存器中存储的无效数据可以通过对有效数据的处理得到,从而可以使得最终从页缓冲器输出的X比特数据符合格雷码的要求。而上述第三临时数据可能无法满足该要求,所以需要对Y比特数据进行第五处理,得到第四临时数据。此时,第四临时数据可以存储至预设的X-Y个第六锁存器中。需要说明的是,这里的第六锁存器可以是编程过程中不需要使用的锁存器。
然后通过对上述第三临时数据和第四临时数据进行第六处理,得到满足上述格雷码要求的无效数据,并可以存储至第五锁存器中,覆盖原先的第三临时数据。
在一些实施例中,上述步骤S1203中,所述对所述第五锁存器中第三临时数据与所述第六锁存器中的第四临时数据进行第六处理,得到X-Y比特的无效数据,包括:
步骤S1301、对所述第三临时数据和所述第四临时数据按位进行与运算处理,得到所述X-Y比特的无效数据。
以读取的存储单元为TLC NAND闪存单元,其编程模式为“MLC”模式为例,其存储单元中具有2比特有效位数据和1比特无效位数据。可以将1比特第三临时数据存储在1个第五锁存器中,第三临时数据可以为“0”也可以为“1”。本公开实施例将第三临时数据设为“1”。将两个第四锁存器中的值做第五处理,例如异或处理,得到1比特第四临时数据,并将其存在一个第六锁存器中。对第五锁存器中第三临时数据“1”与所述第六锁存器中的第四临时数据进行第六处理例如与处理,得到1比特的无效数据,并存储在第五锁存器中。
将无效数据也存储在锁存器中和有效位数据一起输出的好处是这可以不改变nLCNAND存储装置中的页缓冲器对于数据的输出规则。
在一些实施例中,所述方法包括:
步骤S1005、将X-Y比特预定数据存储在X-Y个第五锁存器中。
在一些实施例中,因为无效位数据不是需要输出至主机的数据,故可以直接在无效位数据对应的X-Y个第五锁存器中存储X-Y比特预定数据,例如,当无效位数据为1比特时,该预定数据可以为“1”或“0”;当无效位数据为2比特时,该预定数据可以为“00”或“01”或“10”或“11”中的任一值,以此类推。可以先将有效数据和预定的无效数据都从页缓冲器中输出,最后在控制器或外围电路的解码过程中,去掉该预定的无效数据即可。
本公开实施例还提供了一种存储装置,所述存储装置包括:
存储单元阵列;
外围电路,与所述存储单元阵列连接并且被配置为执行如上述实施例任一所述的方法。
本公开实施例还提供了一种存储器系统,如图13所示,所述存储器系统1000包括:
存储装置100;
存储控制器200,与所述存储装置100连接并且被配置为执行如上述实施例任一所述的方法。
所述存储器系统1000可以是SSD等产品,也可以是包含存储装置100的电子设备,如计算机设备等
应理解,说明书通篇中提到的“一些实施例”、“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本公开的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本公开的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本公开实施例的实施过程构成任何限定。上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
以上所述,仅为本公开的实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (20)
1.一种存储装置的编程方法,其特征在于,所述存储装置至少包括最大状态数为2X的多个存储单元,所述X为大于1的自然数;所述方法包括:
对待编程的数据串进行第一处理,得到至少一个X比特的数据组;其中,所述至少一个X比特的数据组中的每一个数据组包括Y比特有效位;所述Y为小于X的自然数;
将所述至少一个X比特的数据组依次编程至所述存储单元;其中,数据组对应的最大状态数为2Y。
2.根据权利要求1所述的编程方法,其特征在于,所述对待编程的数据串进行第一处理,得到至少一个X比特的数据组包括:
对待编程的数据串插入无效位数据,得到至少一个X比特的数据组。
3.根据权利要求2所述的编程方法,其特征在于,所述对待编程的数据串插入无效位数据,得到至少一个X比特的数据组包括:
对待编程的数据串的每Y比特数据做第二处理得到X-Y比特无效位数据;
对待编程的数据串的每Y比特数据插入所述X-Y比特无效位数据,得到所述X比特的数据组。
4.根据权利要求2所述的编程方法,其特征在于,所述方法还包括:
将所述至少一个X比特的数据组传输至存储装置的页缓冲器中。
5.根据权利要求1所述的编程方法,其特征在于,所述方法还包括:
将所述待编程的数据串传输至存储装置的页缓冲器中;
所述对待编程的数据串进行第一处理,得到至少一个X比特的数据组包括:
对在页缓冲器中的所述待编程的数据串进行第一处理,得到至少一个X比特的数据组。
6.根据权利要求5所述的编程方法,其特征在于,所述对在页缓冲器中的所述待编程的数据串进行第一处理,得到至少一个X比特的数据组包括:
将待编程的数据串的每Y比特数据存储在页缓冲器中的Y个第一锁存器中;
将X-Y比特无效数据存储在X-Y个第二锁存器中;其中,所述第一锁存器中的Y比特数据与所述第二锁存器中的X-Y比特的无效数据共同作为所述X比特的数据组。
7.根据权利要求6所述的编程方法,其特征在于,所述将X-Y比特无效数据存储在X-Y个第二锁存器中包括:
将X-Y比特第一临时数据存储在X-Y个第二锁存器中;
对所述第一锁存器中的Y比特数据进行第三处理,得到X-Y比特的第二临时数据,并存储至X-Y个第三锁存器中;
对所述第二锁存器中的第一临时数据与所述第三锁存器中的第二临时数据进行第四处理,得到X-Y比特的无效数据,并存储至所述第二锁存器中。
8.根据权利要求7所述的编程方法,其特征在于,所述对所述第一锁存器中的Y比特数据进行第三处理,得到X-Y比特的第二临时数据,包括:
对所述Y比特数据进行异或处理,得到X-Y比特的所述第二临时数据。
9.根据权利要求7所述的编程方法,其特征在于,对所述第二锁存器中的第一临时数据与所述第三锁存器中的第二临时数据进行第四处理,得到X-Y比特的无效数据,包括:
对所述第一临时数据和所述第二临时数据按位进行与运算处理,得到所述X-Y比特的无效数据。
10.根据权利要求1所述的编程方法,其特征在于,所述对待编程的数据串进行第一处理,得到至少一个X比特的数据组包括:
在所述待编程的数据串的指标和/或存储装置的状态满足预设条件的状态下,对待编程的数据串进行第一处理,得到至少一个X比特的数据组。
11.根据权利要求10所述的编程方法,其特征在于,所述预设条件包括以下至少之一:
所述待编程的数据串的指标为性能参数位于预设性能参数范围之内;其中性能参数包括数据串的数据大小和/或待编程数据串的写入命令类型;
所述存储装置的状态为性能参数位于预设性能范围之外;其中,所述性能参数包括编程擦除循环次数和/或剩余存储量。
12.一种存储装置的读取方法,其特征在于,所述存储装置至少包括最大状态数为2X的多个存储单元,所述存储单元中存储的数据包括Y比特有效位和X-Y比特无效位;所述方法包括:
使用第一读取电压组读取所述存储单元中存储的Y比特有效位对应的存储页面并得到Y比特数据的读取结果;所述第一读取电压组包括N个读取电压,N小于2X-1。
13.根据权利要求12所述的存储装置的读取方法,其特征在于,所述方法还包括:
使用第二读取电压组读取所述存储单元中存储的Y比特有效位对应的存储页面并得到Y比特数据的读取结果;所述第二读取电压组中的第1至N个读取电压大于所述第一读取电压组中对应的第1至N个读取电压。
14.根据权利要求12所述的存储装置的读取方法,其特征在于,所述方法还包括:
将所述Y比特有效数据的读取结果存入页缓冲器的Y个第四锁存器中;
将所述Y个第四锁存器中的数据输出至接收端。
15.根据权利要求14所述的存储装置的读取方法,其特征在于,所述方法还包括:
将X-Y比特无效数据存储在X-Y个第五锁存器中。
16.根据权利要求15所述的存储装置的读取方法,其特征在于,所述方法包括:
将X-Y比特第三临时数据存储在X-Y个第五锁存器中;
对所述第四锁存器中的Y比特数据进行第五处理,得到X-Y比特第四临时数据;并存储至X-Y个第六锁存器中;
对所述第五锁存器中第三临时数据与所述第六锁存器中的第四临时数据进行第六处理,得到X-Y比特的无效数据,并存储在第五锁存器中。
17.根据权利要求16所述的存储装置的读取方法,其特征在于,所述对所述第五锁存器中第三临时数据与所述第六锁存器中的第四临时数据进行第六处理,得到X-Y比特的无效数据,包括:
对所述第三临时数据和所述第四临时数据按位进行与运算处理,得到所述X-Y比特的无效数据。
18.根据权利要求15所述的存储装置的读取方法,其特征在于,所述方法包括包括:
将X-Y比特预定数据存储在X-Y个第五锁存器中。
19.一种存储装置,其特征在于,所述存储装置包括:
存储单元阵列;
外围电路,与所述存储单元阵列连接并且被配置为执行如权利要求1-18任一所述的方法。
20.一种存储器系统,其特征在于,所述存储器系统包括:
存储装置;
存储控制器,与所述存储装置连接并且被配置为执行如权利要求1-18任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210919730.6A CN115331721A (zh) | 2022-08-02 | 2022-08-02 | 存储器系统、存储装置及其编程方法、读取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210919730.6A CN115331721A (zh) | 2022-08-02 | 2022-08-02 | 存储器系统、存储装置及其编程方法、读取方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115331721A true CN115331721A (zh) | 2022-11-11 |
Family
ID=83920210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210919730.6A Pending CN115331721A (zh) | 2022-08-02 | 2022-08-02 | 存储器系统、存储装置及其编程方法、读取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115331721A (zh) |
-
2022
- 2022-08-02 CN CN202210919730.6A patent/CN115331721A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102025263B1 (ko) | 메모리 시스템 및 그것의 읽기 교정 방법 | |
US10249383B2 (en) | Data storage device and operating method thereof | |
US8255643B2 (en) | Memory system and data processing method thereof | |
US9703698B2 (en) | Data writing method, memory controller and memory storage apparatus | |
US8417879B2 (en) | Method for suppressing errors, and associated memory device and controller thereof | |
US20080172520A1 (en) | Nonvolatile memory devices including multiple user-selectable program modes and related methods of operation | |
US20130219247A1 (en) | Method for Accessing Flash Memory and Associated Flash Memory Controller | |
KR102025251B1 (ko) | 메모리 시스템 및 그것의 프로그램 방법 | |
CN111415699A (zh) | 数据存储装置及其操作方法 | |
US10902924B2 (en) | Memory system varying pass voltage based on erase count of target memory block and operating method thereof | |
KR101348354B1 (ko) | 낸드 플래시 메모리 장치의 페이지 데이터 독출 방법 | |
CN110010185B (zh) | 存储器系统及其操作方法 | |
KR102157570B1 (ko) | 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스 | |
US9189384B2 (en) | Memory system and memory managing method thereof | |
CN113490984B (zh) | 存储器器件及其编程操作 | |
US20170062045A1 (en) | Multi-level flash storage device with minimal read latency | |
US11915762B2 (en) | Apparatus and method for programming data in a non-volatile memory device | |
US11894059B2 (en) | Apparatus and method for programming data in a non-volatile memory device | |
CN115527587A (zh) | 存储系统及其操作方法、存储器控制器和存储器 | |
CN117437957A (zh) | 存储器系统、存储器装置和操作存储器装置的方法 | |
CN106935265B (zh) | 非易失性存储器装置以及包括该非易失性存储器装置的数据存储装置 | |
CN110941566B (zh) | 数据存储装置及其操作方法 | |
US11157401B2 (en) | Data storage device and operating method thereof performing a block scan operation for checking for valid page counts | |
CN115331721A (zh) | 存储器系统、存储装置及其编程方法、读取方法 | |
CN106959822B (zh) | 数据储存装置及其数据写入方法 |
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 |