CN108242249B - 数据映射系统、方法及其存储介质 - Google Patents

数据映射系统、方法及其存储介质 Download PDF

Info

Publication number
CN108242249B
CN108242249B CN201710831819.6A CN201710831819A CN108242249B CN 108242249 B CN108242249 B CN 108242249B CN 201710831819 A CN201710831819 A CN 201710831819A CN 108242249 B CN108242249 B CN 108242249B
Authority
CN
China
Prior art keywords
data
writing
memory location
memory
nand flash
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.)
Active
Application number
CN201710831819.6A
Other languages
English (en)
Other versions
CN108242249A (zh
Inventor
Z.Z.班迪克
R.E.麦蒂斯库
秦明海
孙超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of CN108242249A publication Critical patent/CN108242249A/zh
Application granted granted Critical
Publication of CN108242249B publication Critical patent/CN108242249B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital 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/5621Digital 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/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels

Abstract

在本公开中,公开了基于通过低读取延迟具有提高的和速率(即,寿命容量)的三维栅格的数据映射。在写入期间,在擦除之前多次写入至存储器位置。具体地,对于第一写入,存在每单元4/3个比特可用于写入,其为每单元大约10.67kB被用于数据存储。然后,对于第二写入,存在每单元一个比特,其为每单元8kB用于数据存储。如果考虑到具有128个不同单元的块并且写入32kB的数据,第一写入导致42.66个数据写入而第二写入导致32个数据写入,总共74.66个写入。在以前,对于32kB的写入数量将是64个写入。因此,通过在擦除之前两次写入,可以存储更多数据。

Description

数据映射系统、方法及其存储介质
相关申请的交叉引用
本申请要求2016年12月23日提交的序列号为62/438821的美国临时专利申请的权益,其通过引用并入本文。
技术领域
本公开的实施例通常涉及一种用于在擦除块之前将数据多次写入NAND块的方法。
背景技术
因为SDD具有高吞吐量、低读取/写入延迟、低功耗以及忍受高压力和高温度的能力,所以基于快闪存储器的固态驱动器(solid-state drive,SSD)具有超过传统的硬盘驱动器(hard disk drive,HDD)的优点。和其他非易失性存储器(non-volatile memory,NVM)相比,NAND闪存特别具有低价格和大容量。使用浮置栅极(或电荷捕获)晶体管来捕获电荷的快闪存储器和由被称为单元层(cell level)的电荷的量来表示的数据在一组单元中被捕获。NAND闪存的关键特征之一是编程和擦除的非对称性。编程的单位(增加单元层)被称为页并且由103到104个单元组成,同时擦除的单位(减少单元层)是包含数百个页的块。块擦除是耗时耗能的,并且会使物理单元降级。
然而,NAND闪存具有缺点,NAND闪存仅可以被写入一次。数据可以被多次读取,但是如果再次使用数据位置来存储新数据,则必须擦除旧的数据。如上所述,按照块发生擦除,因此,数据的许多页被同时擦除。此外,NAND擦除会减少NAND设备的寿命。
在技术中存在增加NAND设备的寿命的需要。
发明内容
在本公开中,公开了基于通过低读取延迟具有提高的和速率(即,寿命容量)的三维栅格(three dimensional lattice)的数据映射。在写入期间,存储器位置在擦除之前被多次写入。具体地,对于第一写入,每单元存在4/3个比特可用于写入,其为每单元大约10.67kB被用于数据存储。然后,对于第二写入,每单元存在一个比特,其为每单元8kB用于数据存储。如果考虑具有128个不同单元的块和写入32kB的数据,则第一写入导致42.66个数据写入而第二写入导致32个写入,总共74.66个写入。在以前,对于32kB的写入的数量将是64个写入。因此,通过在擦除之前两次写入,可以存储更多数据。
在一个实施例中,一种系统包括主机设备;耦合到主机设备的存储器系统。存储器系统包括:用于在擦除之前多次将数据写入至存储器位置的装置;从存储器位置读取数据的装置。从存储器位置擦除数据的装置。另外该系统包括耦合至主机设备和存储器系统的控制器。
在另一实施例中,一种方法,包括将第一组数据写入至在第一存储器位置中的NAND闪存块,将第二组数据写入至第一存储器位置;以及擦除第一存储器位置,其中写入所述第二组数据发生在擦除第一组数据之前。另外,公开一种系统,其包括处理器以及存储当由处理器运行时使得系统执行该方法的指令的存储器系统。另外,公开一种非瞬时性计算机可读存储介质,其包含当由处理器运行时使得计算机系统在读取过程已经完成之后通过执行该方法来刻录文件的指令。
附图说明
从而,可以详细地理解本公开的上述特征的方式,可以通过参考实施例来简要总结以上的本公开的更特定的描述,实施例中的一些将在附图中示出。然而,将注意,附图仅示出本公开的典型实施例并且附图将因此不被考虑为限制它的范围,因为本公开可以承认其他同等有效的实施例。
图1是根据本公开的实施例的系统的图式例示。
图2是根据本公开的实施例的存储器阵列的图式例示。
图3A-图3C是NAND快闪存储器块的图式例示。
图4是2个-写入低读取延迟代码3D代表模型的编码和解码映射。
图5是示出在擦除数据之前两次将数据写入至相同存储器位置的方法的流程图。
为便于理解,当有可能时,使用相同的参考标号来指定和附图相同的元素。应当考虑到,可以将在一个实施例中公开的元素有益地利用于其他实施例中,而无需特定的叙述。
具体实施方式
以下,对本公开的实施例做出参考。然而,应该理解本公开不限于特定的所描述的实施例。相反,无论是否涉及不同的实施例,以下特征和元素的任何组合将被考虑以实施和实践本公开。此外,虽然本公开的实施例可以实现超过其他可能的解决方案和/或现有技术的优点,但是通过给定实施例是否实现特定优点并不限制本公开。因此,以下方面、特征、实施例和优点都仅仅是例示性的并且不被考虑为所附权利要求的元素或者限制,除非在权利要求中明确地叙述。同样地,引用“公开”不应该被解释为本文所公开的任何发明主题的概括,并且不应该被考虑为所附权利要求的元素或者限制,除非在权利要求中明确地叙述。
在本公开中,公开了基于通过低读取延迟具有提高的和速率(例如,寿命容量)的三维栅格的数据映射。在写入期间,存储器位置在擦除之前被写入多次。具体地,对于第一写入,存在每单元4/3个比特可用于写入,其为每单元大约10.67kB用于数据存储。然后,对于第二写入,存在每单元一个比特,其为每单元8kB用于数据存储。如果考虑到具有128个不同单元的块和写入32kB的数据,第一写入导致42.66个数据写入而第二写入导致32个写入,总共74.66个写入。在以前,对于32kB的写入数量将是64个写入。然而,通过在擦除之前两次写入,可以存储更多数据。
在本公开中,公开了基于通过低读取延迟具有提高的和速率(即,寿命容量)的三维栅格的数据映射。在写入期间,使用在编码器中所有的逻辑页都可用的假设。在读取期间,映射具有,对于每个逻辑页仅需要读取阈值的子集来解码在相应页中的数据的优点,并且因此极大地减小读取延迟。更具体地,低读取延迟数据映射被用于四层MLC和八层TLC快闪存储器。对于MLC,映射实现存储的总数据的17%的提高。通过解码映射和编码映射来定义代码。对于TLC,为了符合在当前NAND技术中使用的格雷码(Gray code),相似但独立于MLC设计,映射的设计可以实现11%到24%的提高寿命容量。
重写代码可以提高NAND闪存的寿命容量。对于NAND闪存的所有现有的重写代码都假定单元层对解码器是已知的,因此,所需的读取的数量是q-1。当前NAND技术通过将物理页划分成log q个逻辑页使得低延迟页读取成为可能,从而每页的读取的平均数量是(q-1)/log q。如本文所讨论的,对于多层NAND快闪存储器可以使用两次写入重写代码来使得低延迟页读取成为可能。在维持四层多层单元(multiple level cell,MLC)的每页1.5个读取的同时,代码使得对于NAND闪存的17%的容量提高成为可能。对于利用在当前NAND技术中使用的格雷码的八层三层单元(triple level cell,TLC),代码分别利用每页2个和2.5个读取使得11%和24%的容量提高成为可能。
重写代码是一次写入存储器(write-once memory,WOM)的概括并且是在擦除之间将更多数据写入NAND闪存的有效装置。3D NAND闪存减小单元间接口(inter-cellinterference,ICI)所感应的耦合效应使得重写代码可以是实用的。然而,所有现有的重写代码都必需读取将要被解码的准确的单元层,这将丧失低读取延迟的优点。例如,对于四层NAND闪存,两个二进制逻辑页(更低页和更高页)被映射至相同大小的一个四进制物理页。假设从低到高由格雷码(11)、(10)、(00)、(01)表示四个符号,其中使用格雷码的目的是减小对于逻辑页的误比特率。然后通过应用层(10)和层(00)之间的一个读取阈值来执行读取更低页,以识别左比特(被称为LSB)。类似地,通过应用一个在(11)和(10)之间以及另一个在(00)和(01)之间的两个读取阈值来执行读取更高页,以识别右比特(被称为MSB)。与使用3个读取阈值读取准确的单元层以区分4个符号相比,每页读取的数量是(从3减小)平均1.5。
因此,主要有兴趣的参数是和-速率Rsum比特/单元和每页读取的平均数量tave。例如,使得对于单元的低延迟读取成为可能的非-重写方案可以被表示为(Rsum,tave)=(logq,((q-1)/(log q)),并且对于q-层NAND闪存,实现要求读取准确的单元层的重写代码的容量是
Figure GDA0003287168200000041
Figure GDA0003287168200000042
特别地,对于四层MLC和八层TLC闪存,实现两个写入WOM代码的容量分别是(Rsum,tave)=(3.32,3)和(Rsum,tave)=(5.17,7)。由于读取延迟帮助确定SSD性能,所以可以利用
Figure GDA0003287168200000043
来构建代码以维持低读取延迟并且提高Rsum
本文所公开的重写代码通过低读取延迟提高和-速率(即,寿命容量)。代码方案使用逻辑数据和物理单元层之间的当前格雷映射,其避免了芯片内部的硬件和电路重新设计。在写入期间,在当前NAND编程技术中做出假设。该假设是所有的逻辑页在解码器处都可用。在读取期间,重写代码具有对于每个逻辑页的、仅需要q-1个读取阈值的子集来解码对应页中的数据的优点,因此极大地减小了读取延迟。更具体的,本文公开了用于四层MLC和八层TLC闪存存储器的低读取延迟重写代码。对于MLC,所提议的代码实现超过当前(2,1.5)的非-重写方案的、具有17%的和-速率的提高的(Rsum,tave)=(2.33,1.5)。通过编码和解码用于每个写入和每个逻辑页的映射来定义代码,并且也可以通过对三维立方体的标记来可视化该代码。对于TLC,相似但独立于重写代码的MLC设计,可以实现(Rsum,tave)=(3,2.33),其具有超过当前(3,2.33)非-重写方案的和-速率和读取延迟两者的提高。
假设单元的数量是n,并且让c1,...,cn为那些n个单元的单元层。假设每个单元具有q层,(0,1,...,q-1),则整数集(0,1,...,n-1)将由[n]来表示。让xi表示数列x=(x1,...,xn)中的第i个元素、
Figure GDA0003287168200000051
表示x的子向量,其中1≤i≤j≤n。对于两个向量
Figure GDA0003287168200000052
Figure GDA0003287168200000053
如果
Figure GDA0003287168200000054
xi≥yi,则
Figure GDA0003287168200000055
对于映射
Figure GDA0003287168200000056
由Im(f)来表示f的像,并且由
Figure GDA0003287168200000057
来表示在f下的
Figure GDA0003287168200000058
的像。以下讨论将集中在两个写入,其中关于第二写入,单元层仅可以在顺序集(0,1,...,q-1)中增加。
读取与将读取阈值应用于所有的n单元相对应,并且返回对于i∈{1,...,n}的、描述第i个单元是高于或者是低于读取阈值的长度为n的布尔向量。因此,如果对一个页执行t个读取(r1,...,rt),则顺序集(0,1,...,q-1)被划分为t+1个间隔。注意,如果t=q-1,那么以读取延迟为代价来读取在(0,1,...,q-1)中的准确的符号。
用于MLC闪存存储器的两个写入低读取延迟重写代码
在这个部分中,低延迟重写代码被数学地建模。另外,提供使得用于四层MLC闪存存储器的低延迟读取成为可能的代码结构。格雷映射
Figure GDA0003287168200000059
在表格I中示出,其与当前的NAND技术一致,因此不要求在NAND芯片中的硬件/电路重新设计。
关于用于四层MLC NAND闪存的低延迟重写代码的定义
让(LSB,MSB)对的单元层之间的双射由格雷码
Figure GDA00032871682000000510
来表示。让
Figure GDA00032871682000000511
表示通过应用单元层(1,2)之间的一个阈值的页的LSB读取。让
Figure GDA00032871682000000512
表示通过应用单元层(0,1)以及单元层(2,3)之间的两个阈值的页的MSB读取。表I中定义了在当前NAND技术中所使用的映射
Figure GDA0003287168200000061
ψ1和φ1。表示下面的内容:
Figure GDA0003287168200000062
表I
用于MLC NAND的长度为2的格雷码
Figure GDA0003287168200000063
如果根据上下文ψ(·)和φ(·)的参数(arguments)具有明确的长度,则将忽略ψn和φn的下标。
Figure GDA0003287168200000064
两个写入低读取延迟重写代码c通过联合编码器
Figure GDA0003287168200000065
和页解码器
Figure GDA0003287168200000066
的两个集合来定义。编码器为映射:
Figure GDA0003287168200000067
Figure GDA0003287168200000068
从而
Figure GDA0003287168200000069
页解码器为映射:
Figure GDA00032871682000000610
(对于LSB)
Figure GDA00032871682000000611
(对于MSB),从而
Figure GDA00032871682000000612
Figure GDA00032871682000000613
Figure GDA00032871682000000614
Figure GDA00032871682000000615
Figure GDA00032871682000000616
与关于每个写入的LSB相对应的逻辑页的速率是R和R,并且与关于每个写入的MSB相对应的逻辑页的速率是R和R。和速率是
Figure GDA00032871682000000617
在以上所讨论的定义中,存在存储着与物理页的LSB和MSB相对应的数据的两个逻辑页。注意到在低读取延迟写入代码的定义和常规的多层WOM代码的定义之间的差异在于页解码器
Figure GDA00032871682000000618
(或者
Figure GDA00032871682000000619
)仅具有由ψ从物理页读取的LSB(或者由φ读取的MSB)的信息,并且尽管如此需要正确地解码它们自己的逻辑页而不管在其它逻辑页中的数据。解码LSB-表示的逻辑页和MSB-表示的逻辑页的读取阈值的数量分别是1和2,其与要求每逻辑页1.5个读取的传统非-重写方案等效。
考虑n=3的单元(c1,c2,c3),其中ci∈{0,1,2,3}是第i个单元的层。如果物理页包含多个三单元,那么单元将被串联并且每组连续的三单元根据所提议的重写代码来存储数据。
让q=4(MLC)为物理单元中的层的数量。让(LSB,MSB)对的单元层之间的双射(格雷码)、LSB读取函数ψ、和MSB读取函数φ在以上定义中被定义。
让n=3。通过定义如下的解码器和编码器的集合来构建用于MLC的
Figure GDA0003287168200000071
两个写入低读取延迟重写代码。关于第一写入,让S[0]={111}、S[1]={011}、S[2]={101}、S[3]={110}为每个包含一个元素的四个集合。让Let S-1(x),x∈{0,1}3表示包含x的集合索引{0,1,2,3}。让(m,m)∈[4]×[4]为关于第一写入的每页的数据,然后
Figure GDA0003287168200000072
通过选择α∈S[m],β∈S[m]来编码,从而:
Figure GDA0003287168200000073
关于第一写入的每页的解码器
Figure GDA0003287168200000074
是:
Figure GDA0003287168200000075
Figure GDA0003287168200000076
关于第二写入,让Sψ[0]={100,011}、Sψ[1]={000}、Sψ[2]={110,001}、Sψ[3]={101,010}、以及Sφ[0]={011,101,110}、Sφ[1]={001,100,010}。让
Figure GDA0003287168200000077
分别为包括x和Sψ以及Sφ的集合索引。让
Figure GDA0003287168200000078
为第一写入之后的单元层,(m,m)∈[4]×[2]为关于第二写入的每页的数据,然后ε2(m,m)通过选择α∈S[m],β∈S[m]来编码,从而:
Figure GDA0003287168200000079
关于第二写入的每页的解码器
Figure GDA00032871682000000710
是:
Figure GDA00032871682000000711
Figure GDA00032871682000000712
关于第二写入,有可能找到多于一对的(α,β)从而满足
Figure GDA00032871682000000713
允许解码器挑选任何对。
对于所有的m∈[4],m∈[2],
Figure GDA00032871682000000714
存在至少一个对(α,β),其中
Figure GDA00032871682000000716
从而
Figure GDA00032871682000000715
i=1,2,3。
以上讨论提供了具有和速率7/3比特/单元的、用于MLC的两个写入低延迟(每逻辑页1.5个读取)重写代码。
示例1
让n=3并且在第一写入之前所有单元层为
Figure GDA0003287168200000081
假设需要在两个写入上储存的两个页的数据是(m,m)=(3,2)∈[4]×[4]和(m,m)=(1,1)∈[4]×[2]。关于第一写入,选择α=110∈S[m]=S[3]和β=101∈S[m]=S[2],然后根据等式(1),
Figure GDA0003287168200000082
为了解码在第一写入的LSB中的数据,对LSB读取应用一个阈值并且具有ψ(013)=110,然后根据等式(2)解码数据,
Figure GDA0003287168200000083
为了解码在第一写入的MSB中的数据,对MSB读取应用两个阈值并且具有φ(013)=101,然后根据等式(3)解码数据,
Figure GDA0003287168200000084
关于第二写入,选择α=000∈Sψ[m]=S[1],β=001∈Sφ[m]=S[1],然后根据等式(4),
Figure GDA0003287168200000085
为了解码在第二写入的MSB中的数据,LSB读取的一个阈值被应用并且具有φ(223)=000,然后根据等式(5)解码数据,
Figure GDA0003287168200000086
为了解码在第二写入的MSB中的数据,MSB读取的两个阈值被应用并且具有φ(223)=001,然后根据等式(6)解码数据,
Figure GDA0003287168200000087
以上结构实现(Rsum,tave)=(7/3,1.5)。与用于MLC的非重写代码(2,1.5)相比,提高为17%。还注意到两个写入四层WOM的和容量是每单元log210≈3.32比特。以上结构和常规WOM的和容量之间的差距(gap)归因于低读取延迟要求。简单的分析将示出以上结构基于三单元的编码/解码提供最优的两个写入低读取延迟代码。基于大量单元(n>3)的代码结构可能以设计复杂度(计算机搜索)和编码/解码复杂度为代价来实现更好的和速率。
用于TLC闪存存储器的两个写入低读取延迟重写代码
现在将讨论用于TLC闪存的代码结构。在表III中,在将LSB、中央有效比特(central significant bit,CSB)、和MSB映射至单元层{0,1,...,7}的当前TLC NAND技术中使用的格雷码
Figure GDA0003287168200000088
由在读取(ψl,ψc,ψm)期间所应用的三个一组的函数来表示。注意到为了读取LSB、CSB和MSB页,(ψl(i),ψc(i),ψm(i))分别在每页的0和1之间的转换应用(2,3,2)读取阈值。
表II
用于TLC NAND的长度为3的格雷码
Figure GDA0003287168200000091
长度为n=3的[n=3;(22,22,22);(22,22)]低延迟重写代码由一组编码器和解码器构建,其中,大小为2比特的三个逻辑页每个被存储在关于第一写入的(LSB,CSB,MSB)中,并且大小为2比特的2个逻辑页每个被存储在关于第二写入的(LSB,MSB)中。关于第一写入,让S[0]={000}、S[1]={001}、S[2]={010}、S[3]={100},让S-1(x)表示包含x∈{0,1}3的集合索引。让(m1l,m1c,m1m)∈[4]×[4]×[4]为每个页的数据,然后
Figure GDA0003287168200000092
通过选择α∈S[m1l],β∈S[m1c],γ∈S[m1m]来编码,从而:
Figure GDA0003287168200000093
关于第一写入的每个页的解码器
Figure GDA0003287168200000094
通过下式来定义:
Figure GDA0003287168200000095
关于第二写入,使用
Figure GDA0003287168200000096
而不是
Figure GDA0003287168200000097
让Sψ1[0]={101,010}、Sψ1[1]={100,011}、Sψ1[2]={000}、Sψ1[3]={110,001}以及Sψm[0]={111}、Sψm[1]={001,110}、Sψm[2]={011,100}、Sψm[3]={101,010}。让
Figure GDA0003287168200000098
为在包含x的{0,1,2,3}中的集合索引。让
Figure GDA0003287168200000099
为第一写入之后的单元层,
Figure GDA00032871682000000910
为关于第二写入的两个页的数据,然后
Figure GDA00032871682000000911
通过选择
Figure GDA00032871682000000912
来编码,从而:
Figure GDA00032871682000000913
关于第二写入的每个页的解码器
Figure GDA00032871682000000914
是:
Figure GDA00032871682000000915
在以上结构中,对于所有的
Figure GDA00032871682000000916
Figure GDA00032871682000000917
存在至少一个对(α,β),其中
Figure GDA00032871682000000918
从而
Figure GDA00032871682000000919
而且,对于第一写入,
Figure GDA00032871682000000920
的读取数量是(2,3,2),关于第二写入,
Figure GDA00032871682000000921
的读取数量是(1,2),然后,每个页
Figure GDA00032871682000000922
个读取。和速率是每单元10/3比特。因此,以上结构是(Rsum,tave)=(10/3,2)代码,与非重写(3,7/3)方案相比,其提高了和速率和读取延迟两者。
仔细考虑代码设计过程(确定用于MLC的S、Sψ、Sφ的内容以及用于TLC的S、Sψl、Sψm的内容),将揭露编码器/解码器是在n维立方体上的标记问题。在三维立方体上手动地设计以上结构中的对于n=3的标记。例如,图4示出在横向大小为4的立方体网格中可视化的等效编码/解码。Im(ε1)是黑点的集合以及Im(ε2)是红点的集合。点上的标记是对于两个逻辑页的数据对。阴影标记(或者虚线)意味着特定的点(或者网格)是在立方体的可见侧面上。三个一组的,例如,
Figure GDA0003287168200000101
指示少数示例点的xyz坐标。注意到有些点在Im(ε1)和Im(ε2)两者中,例如,具有每个写入的数据消息对3,2和2,0的、在
Figure GDA0003287168200000102
处的重叠的黑点和红点。以上示例1将关于两个写入的数据消息的两个对示出为(m,m)=(3,2)、(m,m)=(1,1),其与如图4中所示的单元层改变(从原点开始)(000)->(013)->(223)的序列相对应。
对于TCL,具有n>3,第一写入可以类似n=3那样设计,但是第二写入需要计算机搜索良好的代码。为了实现更好的子速率,通过使用用于第二写入的三个阈值做出折衷,因此每页
Figure GDA0003287168200000103
个读取。表III列出了关于两个写入的和速率和读取的数量,其中具有n=1的列是传统的非重写方案。
表格III
用于具有n≥3的TLC的(RSUM,tAVE)
n 1 3 5 7 9 11
nR<sub>1</sub> 3 6 12 18 24 30
nR<sub>2</sub> 0 4 5 7 9 11
R<sub>sum</sub>(比特/单元) 3 3.33 3.40 3.57 3.67 3.73
t<sub>ave</sub> 2.33 2 2.5 2.5 2.5 2.5
本文所讨论的低读取延迟重写代码是基于三维栅格的以使得如当前NAND技术支持的快速读取成为可能。MLC和TLC闪存的独立设计分别利用每页1.5、2和2.5个读取将和速率或者寿命容量提高了17%、11%和24%。
本公开涉及基于通过低读取延迟具有提高的求和速率(即,寿命容量)的三维栅格的数据映射。在写入期间,使用所有逻辑页在编码器处都可用的假设。在读取期间,映射具有,对于每个逻辑页仅需要读取阈值的子集来解码在相应的页中的数据,因此读取延迟被极大地减小的优点。更具体地,低读取延迟数据映射被用于四层MLC和八层TLC快闪存储器。对于MLC,映射在存储的总数据中实现17%的提高。通过解码和编码映射来定义代码。对于TLC,为了符合在当前NAND技术中使用的格雷码,相似但独立于MLC设计,映射的设计可以实现11%到24%的提高寿命容量。
NAND闪存存储器的基本前提是其存储器可以仅仅被写入一次,并且然后,如果存储器将要被再次写入,则将需要擦除该存储器。如本文所讨论的,有可能在擦除之前再次写入存储器位置,而不是擦除存储器,因此,NAND存储器的寿命也随着存储容量的增加而增加。
图1是根据一个实施例的系统100的图式例示。系统包括与存储器系统104交互的主机设备102。控制器106被耦合至主机设备102和存储器系统104两者。存储器系统104存储在各种时刻主机设备102可能需要的数据。当需要数据时,主机设备102联系存储器系统104以获取数据。控制器106控制存储器系统104和主机设备之间的通信。
存储器系统104包括存储器控制器108和多个CPU或者处理器110A-110N。存储器系统104还包括存储器设备112。存储器设备112被耦合至所有的CPU 110A-110N以及存储器控制器108。在一个实施例中,存储器设备112是NAND存储器设备。在另一实施例中,存储器设备112是HDD存储器设备。将理解,存储器设备112不限于是NAND存储器设备还是HDD存储器设备。相反,存储器设备112可用于能够存储可以被一个或多个CPU检索的数据的任何存储器设备。
图2是根据本文所描述的一个实施例的存储器阵列200的示意图。存储器阵列200包括多个存储器单元202、第一多条平行线204、以及第二多条平行线206。第一多条平行线204正交于第二多条平行线206。第一多条平行线204代表位线。第二多条平行线206代表字线。每个存储器单元202被耦合至位线204和字线206。共线的存储器单元202被耦合至一个共有的线以及与其他共线存储器单元不共有的一个线。
图3A-图3C是NAND快闪存储器块300的图式例示。如箭头“A”所示,模块300包括跨越整个块的128个字线。暴露给用户的可用数据的量由箭头“B”代表并且为16KB。在将要被存储的所有数据都由32KB的数据组成的简单情形中,每组数据将需要两个单独的字线,因此,两个单独的存储器位置302A-302N用以将数据存储在单一的单一-写入(write-single)擦除系统中。因此,在初次写入之前,块300具有将64组数据存储在128个字线中的能力。图3A示出因为暴露给用户的可用数据的量是16kB所以在擦除之前每个比特仅可以被写入一次的情形。在实例公开之前,存在每单元2个比特,但是在擦除之前每个比特仅可以被写入一次。
正如在本文中将被讨论的,对于第一写入存在每单元4/3比特以及关于第二写入(或者更新写入)存在每单元1个比特。因为对于第一写入存在每单元4/3个比特,那么仅存在由图3B中的箭头“C”代表的、暴露给用户的10.67kB的数据。因此,三条字线将必须用以存储数据,而不是仅仅两条字线。因此,对于第一写入,将可以存储的42.66组数据。一旦整个块300已经被写入,该块就可以被重写(或者更新)。
在重写期间,如在图3C中的箭头“D”所示出的,仅8kB的数据被暴露给用户。因此,对于重写以存储32kB数据,将需要四个字线。因此,重写(或者第二写入)将容纳32组数据。将写入和重写组合,可以发生74.66个数据写入,其比如果仅存在一次写入而发生的64个更多。74.66个写入表示在存储容量中将近17%的增加。因为存在存储容量的增加,所以存在更少的擦除,并且因此,存在更长的NAND快闪存储器设备生命。
示例2
在示例2中,将讨论具有最小改变的用于3MLC的代码映射。L是低(0或者1);H是高(2或者3);I是入(层1或者2);以及O是出(层0或者3)。对于4层MLC的当前映射是{E,P1,P2,P3}={11,10,00,01}。在第一写入过程中,将{0,1,2,3}转换成下面的:{111,011,101,110}。对于LSB,0->LLL{111};1->HLL{011};2->LHL{101};以及3->LLH{110}。对于MSB,0->OOO{111};1->IOO{011};2->OIO{101};以及3->OOI{110}。对于第一写入过程,(LSB,MSB),LSB=3={110}并且MSB=2={101}。第一更新被编程为(0,1,3);当读取LSB时,模式=(L,L,H),并且所有的(L,L,H)-模式对应于LSB=3。当读取MSB时,模式=(O,I,O),并且所有的(O,I,O)模式对应于MSB=2。同时考虑在LSB和MSB的顺序中的数字(首先LSB,接着MSB),结果对是(11,10,01),根据以上叙述的映射,其等同于(E,P1,P3)=C1 3
对于第二写入,或者更新写入,LSB和MSB两者都取决于C1 3。对于LSB,00(或者0)->LHH{100},HLL{011};01(或者1)->HHH{000};10(或者2)->LLH{110},HHL{001};11(或者3)->LHL{101},HLH{010}。对于MSB,0->IOO{011},OIO{101},OOI{110};1->IIO{001},OII{100},IOI{010}。对于第二写入(或者更新),(LSB,MSB)=(3,0)并且被编程为(3,1,3)。当LSB被读取时,模式为(H,L,H),并且所有的(H,L,H)模式对应于LSB=3。当读取MSB时,模式为(O,I,O),并且所有的(O,I,O)模式对应于MSB=0。
如果选择LSB=(101)和MSB=(101),然后同时考虑在LSB和MSB的顺序中的数字(首先LSB,接着MSB),结果对是(01,10,01),根据以上叙述的映射,其等同于(P3,P1,P3)=(3,1,3)=C1 3。对于示例2,存在关于第一写入的2比特LSB和2比特MSB。然后,对于3单元,存在关于第二写入(或者更新)的2比特LSB和1比特MSB,总为共7比特。注意到,传统地,3MLC单元可以存储6比特。因此,7比特表示17%的增加。每页的平均读取是1.5,其与传统的每页读取相同。因此,虽然没有遭受读取延迟,但可以存储的数据量增加了。图4是示例2的2-写入低读取延迟代码3D代表性模型的编码和解码映射。
图5是示出在擦除数据之前将数据两次写入至相同存储器位置的方法的流程图500。如图5中所示,第一组数据最初被写入块502中的存储器位置。然后,在任何擦除之前,第二组数据被写入块504中的存储器位置。最后,在块506中,数据可以从存储器位置被擦除。在本公开之前,因为数据仅可以被写入存储器位置一次,所以块506将发生在块504之前,但是如本文所讨论的,在第一写入中利用了比整个存储器位置更少的存储器位置。因此,当第二写入的时间来临时,仍然存在将要被写入至存储器位置的更多数据的空间。因此,通过两次写入相同的存储器位置,可以在擦除之前存储更多数据。
示例3
在示例3中,将讨论具有最小改变的3TLC单元的代码映射。用于8-层MLC的当前映射是{E,P1,P2,P3,P4,P5,P6,P7}={111,110,100,000,010,011,001,101}。在第一写入过程期间,将{0,1,2,3}转换为下面的:{000,001,010,011}。LSB=1={001},CSB=2={010}并且MSB=1={001}。同时考虑在LSB和MSB的顺序中的数字(首先LSB,接着CSB,然后MSB),结果组是(000,010,101),根据以上叙述的映射,其等同于(P3,P4,P7)=C1 3。对于第二写入,或者更新写入,仅LSB和MSB被使用并且取决于C1 3。另外,(P4,P5,P6,P7)={11,10,00,01}。对于LSB,0->101,010;1->100,011;2->000;3->110,001。对于MSB,0->111;1->001,110;2->011,100;3->101,010。对于第二写入(或者更新),LSB=3=(110)或者(001)。MSB=0=(111)。如果选择LSB=(110)和MSB=(111),然后同时考虑在LSB和MSB的顺序中的数字(首先LSB,接着MSB),结果对是(11,11,01),根据以上叙述的映射,其等同于(P4,P4,P7)=(4,4,7)=C1 3。对于示例3,存在关于第一写入的2比特LSB、2比特CSB、和2比特MSB。然后,对于3单元,存在关于第二写入(或者更新)的2比特LSB和2比特MSB,总共10比特。注意到,传统地,3TLC单元可以存储9比特。因此,10比特代表11%的增加。每页的平均读取是2个,其小于传统的每页2.33个读取。因此,减小了读取延迟并且增加了可以存储的数据量。
一次写入数据然后擦除不会最大化资源。这样做会导致缩短设备生命并且最终导致设备失效。通过在擦除存储器位置之前两次写入至相同的存储器位置,不仅可以存储更多的数据,还可以增加设备生命(相对于存储一次然后擦除),因为直到存储器位置被用于存储两次,数据才会被擦除。
虽然前述专注于本公开的实施例,但是在不脱离本公开的基本范围的情况下,可以设计其他以及进一步的本公开的实施例,并且本公开的范围由以下权利要求来确定。

Claims (31)

1.一种数据映射系统,包括:
主机设备;
存储器系统,其被耦合至主机设备,其中所述存储器系统包括:
将第一组数据写入至在第一存储器位置中的NAND闪存块的装置,其中每单元4/3个比特可用于写入所述第一组数据;
将第二组数据写入至所述第一存储器位置的装置,其中每单元1个比特可用于写入所述第二组数据;以及
用于擦除所述第一存储器位置的装置,其中写入所述第二组数据发生在擦除所述第一组数据之前,并且其中所述第一组数据与所述第二组数据的写入使用两次写入重写代码,并且其中所述代码使用逻辑数据和物理单元层之间的当前格雷映射;以及
控制器,其被耦合至主机设备和存储器系统。
2.如权利要求1所述的数据映射系统,其中所述存储器位置是NAND闪存块。
3.如权利要求2所述的数据映射系统,其中所述NAND闪存块是TLC。
4.如权利要求2所述的数据映射系统,其中所述NAND闪存块是MLC。
5.一种数据映射方法,包括:
将第一组数据写入至在第一存储器位置中的NAND闪存块,其中每单元4/3个比特可用于写入所述第一组数据;
将第二组数据写入至所述第一存储器位置,其中每单元1个比特可用于写入所述第二组数据;以及
擦除第一存储器位置,其中写入第二组数据发生在擦除第一组数据之前,并且其中所述第一组数据与所述第二组数据的写入使用两次写入重写代码,并且其中所述代码使用逻辑数据和物理单元层之间的当前格雷映射。
6.如权利要求5所述的数据映射方法,其中所述NAND闪存块是TLC。
7.如权利要求5所述的数据映射方法,其中所述NAND闪存块是MLC。
8.如权利要求7所述的数据映射方法,其中所述第一存储器位置是16kB存储位置,并且其中写入所述第一组数据包括将数据写入至所述第一存储器位置的10kB。
9.如权利要求8所述的数据映射方法,其中写入所述第二组数据包括将数据写入至所述第一存储器位置的8kB。
10.如权利要求9所述的数据映射方法,其中所述10kB不同于所述8kB。
11.如权利要求9所述的数据映射方法,其中当所述第二组数据被写入至所述第一存储器位置时,所述第一组数据呈现在所述第一存储器位置中。
12.如权利要求9所述的数据映射方法,其中在所述第二组数据被写入至所述第一存储器位置之后,所述第一组数据呈现在所述第一存储器位置中。
13.如权利要求5所述的方法,其中所述存储器位置被布置在字线和位线的交叉点处的存储器块之内。
14.一种数据映射系统,包括:
处理器;以及
存储器系统,其存储当由处理器执行时使得所述系统进行以下各项的指令:
将第一组数据写入至在第一存储器位置中的NAND闪存块,其中每单元4/3个比特可用于写入所述第一组数据;
将第二组数据写入至所述第一存储器位置,其中每单元1个比特可用于写入所述第二组数据;并且
擦除第一存储器位置,其中写入第二组数据发生在擦除第一组数据之前,并且其中所述第一组数据与所述第二组数据的写入使用两次写入重写代码,并且其中所述代码使用逻辑数据和物理单元层之间的当前格雷映射。
15.如权利要求14所述的数据映射系统,其中所述NAND闪存块是TLC。
16.如权利要求14所述的数据映射系统,其中所述NAND闪存块是MLC。
17.如权利要求14所述的数据映射系统,其中所述第一存储器位置是32kB存储位置,并且其中写入所述第一组数据包括将数据写入至所述第一存储器位置的10kB。
18.如权利要求17所述的数据映射系统,其中写入所述第二组数据包括将数据写入至所述第一存储器位置的8kB。
19.如权利要求18所述的数据映射系统,其中所述10kB不同于所述8kB。
20.如权利要求18所述的数据映射系统,其中当所述第二组数据被写入至所述第一存储器位置时,所述第一组数据呈现在所述第一存储器位置中。
21.如权利要求18所述的数据映射系统,其中在所述第二组数据被写入至所述第一存储器位置之后,所述第一组数据呈现在所述第一存储器位置中。
22.如权利要求14所述的数据映射系统,其中所述存储器位置被布置在字线和位线交叉点处的存储器块之内。
23.一种非瞬时性计算机可读存储介质,包含当由处理器运行时使得计算机系统在已经完成读取过程之后通过执行以下各项步骤刻录文件的指令:
将第一组数据写入至在第一存储器位置中的NAND闪存块,其中每单元4/3个比特可用于写入所述第一组数据;
将第二组数据写入至第一存储器位置,其中每单元1个比特可用于写入所述第二组数据;并且
擦除第一存储器位置,其中写入所述第二组数据发生在擦除所述第一组数据之前,并且其中所述第一组数据与所述第二组数据的写入使用两次写入重写代码,并且其中所述代码使用逻辑数据和物理单元层之间的当前格雷映射。
24.如权利要求23所述的存储介质,其中所述NAND闪存块是TLC。
25.如权利要求23所述的存储介质,其中所述NAND闪存块是MLC。
26.如权利要求23所述的存储介质,其中所述第一存储器位置是32kB存储位置,并且其中写入所述第一组数据包括将数据写入至所述第一存储器位置的10kB。
27.如权利要求26所述的存储介质,其中写入所述第二组数据包括将数据写入至所述第一存储器位置的8kB。
28.如权利要求27所述的存储介质,其中所述10kB不同于所述8kB。
29.如权利要求28所述的存储介质,其中当所述第二组数据被写入至所述第一存储器位置时,所述第一组数据呈现在所述第一存储器位置中。
30.如权利要求28所述的存储介质,其中在所述第二组数据被写入至所述第一存储器位置之后,所述第一组数据呈现在所述第一存储器位置中。
31.如权利要求23所述的存储介质,其中所述存储器位置被布置在字线和位线的交叉点处的存储器块之内。
CN201710831819.6A 2016-12-23 2017-09-15 数据映射系统、方法及其存储介质 Active CN108242249B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662438821P 2016-12-23 2016-12-23
US62/438,821 2016-12-23
US15/472,326 US10360973B2 (en) 2016-12-23 2017-03-29 Data mapping enabling fast read multi-level 3D NAND to improve lifetime capacity
US15/472,326 2017-03-29

Publications (2)

Publication Number Publication Date
CN108242249A CN108242249A (zh) 2018-07-03
CN108242249B true CN108242249B (zh) 2021-12-03

Family

ID=62630662

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710831819.6A Active CN108242249B (zh) 2016-12-23 2017-09-15 数据映射系统、方法及其存储介质

Country Status (3)

Country Link
US (1) US10360973B2 (zh)
KR (1) KR101996136B1 (zh)
CN (1) CN108242249B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109903799B (zh) * 2019-01-29 2021-08-03 华中科技大学 一种可变编程级数的三维闪存阵列单元操作方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101512663A (zh) * 2006-07-31 2009-08-19 桑迪士克3D公司 用于读取多级无源元件存储器单元阵列的方法及设备
CN102054530A (zh) * 2009-11-10 2011-05-11 索尼公司 存储器件和读取存储器件的方法
CN103827833A (zh) * 2011-07-22 2014-05-28 桑迪士克科技股份有限公司 存储数据的系统和方法
WO2014158578A1 (en) * 2013-03-14 2014-10-02 Sandisk Technologies Inc. Overprovision capacity in a data storage device
CN104937561A (zh) * 2013-05-17 2015-09-23 株式会社日立制作所 存储装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5815434A (en) * 1995-09-29 1998-09-29 Intel Corporation Multiple writes per a single erase for a nonvolatile memory
US7631162B2 (en) * 2005-10-27 2009-12-08 Sandisck Corporation Non-volatile memory with adaptive handling of data writes
US7388781B2 (en) 2006-03-06 2008-06-17 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
US7366017B2 (en) * 2006-08-22 2008-04-29 Micron Technology, Inc. Method for modifying data more than once in a multi-level cell memory location within a memory array
US8751755B2 (en) * 2007-12-27 2014-06-10 Sandisk Enterprise Ip Llc Mass storage controller volatile memory containing metadata related to flash memory storage
US9070427B2 (en) 2010-08-13 2015-06-30 Sandisk Technologies Inc. Data coding using divisions of memory cell states
KR101184866B1 (ko) * 2010-10-26 2012-09-20 에스케이하이닉스 주식회사 불휘발성 메모리 장치 및 이의 동작 방법
KR101281706B1 (ko) * 2011-02-28 2013-07-03 에스케이하이닉스 주식회사 불휘발성 메모리 장치 및 그의 소거 동작 제어 방법
US8879319B1 (en) 2011-07-29 2014-11-04 Ecole Polytechnique Federale De Lausanne (Epfl) Re-writing scheme for solid-state storage devices
KR101927212B1 (ko) * 2012-05-09 2019-03-07 삼성전자주식회사 비휘발성 메모리 장치의 프로그래밍 방법
KR101959567B1 (ko) * 2012-05-14 2019-03-18 에스케이하이닉스 주식회사 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 프로그램 방법
US9632866B2 (en) 2012-09-28 2017-04-25 Duke University Systems for and methods of extending lifetime of non-volatile memory
US9318199B2 (en) * 2012-10-26 2016-04-19 Micron Technology, Inc. Partial page memory operations
CN105579972A (zh) 2013-01-24 2016-05-11 加州理工学院 一次写入存储器中的联合重写和错误校正
WO2015005635A1 (ko) 2013-07-08 2015-01-15 주식회사 윌러스표준기술연구소 메모리 시스템 및 메모리의 데이터 처리 방법
US9152330B2 (en) * 2014-01-09 2015-10-06 Netapp, Inc. NVRAM data organization using self-describing entities for predictable recovery after power-loss
JP2016004387A (ja) * 2014-06-16 2016-01-12 株式会社東芝 ストレージシステム、メモリコントローラ、および制御方法
WO2016116930A1 (en) 2015-01-21 2016-07-28 Technion Research & Development Foundation Limited Reusable memory devices with wom codes
TWI553477B (zh) * 2015-06-12 2016-10-11 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101512663A (zh) * 2006-07-31 2009-08-19 桑迪士克3D公司 用于读取多级无源元件存储器单元阵列的方法及设备
CN102054530A (zh) * 2009-11-10 2011-05-11 索尼公司 存储器件和读取存储器件的方法
CN103827833A (zh) * 2011-07-22 2014-05-28 桑迪士克科技股份有限公司 存储数据的系统和方法
WO2014158578A1 (en) * 2013-03-14 2014-10-02 Sandisk Technologies Inc. Overprovision capacity in a data storage device
CN104937561A (zh) * 2013-05-17 2015-09-23 株式会社日立制作所 存储装置

Also Published As

Publication number Publication date
CN108242249A (zh) 2018-07-03
US20180182453A1 (en) 2018-06-28
KR101996136B1 (ko) 2019-07-03
KR20180074561A (ko) 2018-07-03
US10360973B2 (en) 2019-07-23

Similar Documents

Publication Publication Date Title
US11036628B2 (en) Storage system having a host directly manage physical data locations of storage device
TWI533304B (zh) 用於儲存資料於具有跨頁區段、多頁編碼及每頁編碼之多位準單元快閃記憶體器件中之方法及裝置
US10949123B2 (en) Using interleaved writes to separate die planes
US9645896B2 (en) Data storage device and flash memory control method
CN109542675B (zh) 存储器系统及其操作方法
CN103782266B (zh) 针对存储器持久性操作的设备及方法
US8176234B2 (en) Multi-write coding of non-volatile memories
US20130007355A1 (en) Data conditioning to improve flash memory reliability
CN110047544B (zh) 用于包括qlc单元的存储器装置的编码方法及系统
US8879319B1 (en) Re-writing scheme for solid-state storage devices
CN108027764B (zh) 可转换的叶的存储器映射
US20130254461A1 (en) Memory controller and memory storage device and data writing method
US9971523B2 (en) Memory controller with data compression and padding features, method of controlling nonvolatile memory and memory system
CN104733051B (zh) 奇偶校验码的解码方法、存储器储存装置及控制电路单元
JP2009048680A (ja) 記憶装置
US9865338B2 (en) Memory system and method of controlling nonvolatile memory by converting write data written to a page
US10042565B2 (en) All-flash-array primary storage and caching appliances implementing triple-level cell (TLC)-NAND semiconductor microchips
CN108242249B (zh) 数据映射系统、方法及其存储介质
US20150178193A1 (en) Apparatus and method for managing flash memory by means of writing data pattern recognition
CN110277129B (zh) 用于包括qlc单元的存储器装置的编码方法和系统
CN110569143B (zh) 用于存储器系统的解码器及其方法
JP6303039B2 (ja) ストレージシステム用のセル位置プログラミング
US10095424B2 (en) Apparatus and method for programming non-volatile memory using a multi-cell storage cell group
US10180878B2 (en) Memory system for recording data and memory control method for recording data
CN110008146A (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
GR01 Patent grant
GR01 Patent grant