CN103477393A - 含有具有不同每单元位的存储容量的三个存储层的存储器*** - Google Patents
含有具有不同每单元位的存储容量的三个存储层的存储器*** Download PDFInfo
- Publication number
- CN103477393A CN103477393A CN2012800164481A CN201280016448A CN103477393A CN 103477393 A CN103477393 A CN 103477393A CN 2012800164481 A CN2012800164481 A CN 2012800164481A CN 201280016448 A CN201280016448 A CN 201280016448A CN 103477393 A CN103477393 A CN 103477393A
- Authority
- CN
- China
- Prior art keywords
- memory layer
- memory
- data
- layer
- unit
- 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
- 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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- 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/5643—Multilevel memory comprising cache storage devices
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Non-Volatile Memory (AREA)
- Memory System (AREA)
Abstract
公开了多层存储器和操作的方法。该存储器包括三个或更多层,其中每层由具有比前一层每单元更高位的存储容量的闪存单元构成。该方法可以包括依赖于主机数据的情况在接收时将主机数据直接导向第一或第二层的步骤。该方法还可以包括在数据重新定位操作中复制各个层内的数据以产生存储器的更多的空闲块,使得数据优选地保留在每层内,以及当满足层转移标准时将数据从一层转移到下一每单元更高位的层。
Description
背景技术
在消费产品中已经广泛采用诸如闪存的非易失性存储器***。可以找到不同形式的闪存,例如可以在主机设备之间移动的可携式存储卡或者嵌入在主机设备中的固态盘的形式(SSD)。在闪存中找到的两个通常的存储器单元架构包括NOR和NAND。在通常的NOR架构中,存储器单元连接在列方向上延伸的相邻的位线源极和漏极扩散之间,控制栅极连接到沿着单元的行延伸的字线。存储器单元包括位于源极和漏极之间的单元沟道区的至少一部分之上的至少一个存储元件。因此,存储元件上的被编程的电荷的电平控制单元的操作特性,然后可以通过向被寻址的存储器单元施加适当的电压来读取该被编程的电荷的电平。
通常的NAND架构利用多于两个、比如16或32个串联连接的存储器单元的串,与一个或多个选择晶体管一起连接在各个位线和参考电势之间以形成单元的列。字线延伸跨过这些列中的许多列内的单元。通过致使串中的其余单元导通以便流经串的电流依赖于存储在被寻址的单元中的电荷的水平在编程期间读取并验证列内的单个单元。
闪存通常在每单元的数据位的数量最低时提供最高的性能,比如每单元存储1位的二进制闪存,也称为单级单元(SLC)闪存。配置为每单元存储多于一位的、称为多级单元(MLC)闪存的闪存每单元可以存储两位或更多位的信息。尽管通常SLC闪存以具有比MLC闪存更好的读和写性能(例如速度和耐用性)而著称,但是MLC闪存提供了更多的存储容量并且通常生产更便宜。MLC的耐用性和性能趋向于随着给定MLC配置的每单元的位数的增加而降低。在使用这些类型的闪存单元设计快闪器件时,在获得性能、容量和成本的期望的平衡时不断存在挑战。
发明内容
为了应对使用不同容量的闪存单元来实现对于给定应用的期望的性能、容量和耐用性的挑战,公开了用于实现多层存储器***的***和方法。
根据一个方面,公开了海量存储器***。该海量存储器***包括:接口,适配为接收来自主机***的数据;以及多个存储器层。所述多个存储器层包括:第一存储器层,具有包括第一每单元位的存储容量的非易失性存储器单元;第二存储器层,具有包括第二每单元位的存储容量的非易失性存储器单元,所述第二每单元位的存储容量大于所述第一每单元位的存储容量;以及第三存储器层,具有包括第三每单元位的存储容量,所述第三每单元位的存储容量大于所述第二每单元位的存储容量。该海量存储器***还包括:控制器,与所述接口以及所述多个存储器层通信,所述控制器配置为将从主机接收的数据导向多个层中的一个或多个,并在所述多个存储器层之间转移数据。
根据另一方面,海量存储器***具有适配为接收来自主机***的数据的接口以及多个存储器层。存储器层包括:第一存储器层,具有第一每单元位的存储容量的非易失性存储器单元;第二存储器层,具有第二每单元位的存储容量的非易失性存储器单元,所述第二每单元位的存储容量大于所述第一每单元位的存储容量;以及第三存储器层,具有第三每单元位的存储容量,所述第三每单元位的存储容量大于所述第二每单元位的存储容量。该海量存储器***还包括:控制器,与所述接口以及所述多个存储器层通信,其中所述控制器配置为:将来自主机的在所述接口处接收的数据导向第一存储器层;当第一存储器层中的空闲块的数量在第一最小阈值以下时并且在检测到第一存储器层中的有效数据的量超过第一有效数据阈值时,将数据从第一存储器层移动到第二存储器层;以及当第二存储器层中的空闲块的数量在第二最小阈值以下时并且在检测到第二存储器层中的有效数据的量超过第二有效数据阈值时,将数据从第二存储器层移动到第三存储器层。
在另一方面,公开了用于管理多层存储器中的数据的方法,该多层存储器具有接口、多个存储器层以及与所述接口和所述多个存储器层通信的控制器。该控制器:将在所述接口处接收的数据导向多个层中的第一存储器层,该第一存储器层具有包括第一每单元位的存储容量的非易失性存储器单元;当满足第一标准时,将数据从第一存储器层移动到第二存储器层,其中该第二存储器层具有第二每单元位的存储容量的非易失性存储器单元,该第二每单元位的存储容量大于该第一每单元位的存储容量。当满足第二标准时,该控制器将数据从第二存储器层移动到第三存储器层,其中该第三存储器层具有第三每单元位的存储容量的非易失性存储器单元,该第三每单元位的存储容量大于该第二每单元位的存储容量。
附图说明
图1是可以实现本发明的方面的***的框图。
图2例示图1的存储器件的示例物理存储器组织。
图3示出图2的物理存储器的一部分的放大图。
图4A例示根据一个实施例的图1的存储器件的多层存储器组织。
图4B例示图4A的多层存储器的替换物理布置。
图5是例示操作多层存储器的方法的流程图。
图6是可以在图1的***中利用的LBA地址空间和相关联的DLBA地址空间的例子。
图7例示对于从主机接收的数据的LBA到DLBA映射的例子。
图8例示在DLBA地址空间中的数据重新定位操作和在物理地址空间中的相应更新块。
图9例示在图8的数据重新定位之后的第二数据重新定位操作。
图10是具有利用存储地址重新映射(STAR)存储器管理布置的图4A的多层存储器组织的存储器件的替换实施例。
具体实施方式
适合于用于实现本发明的方面的***示出在图1中,主机***100控制数据被存储到物理存储器件102以及从物理存储器件102取回。存储器件102可以是诸如固态盘(SSD)的嵌入在主机中的快闪器件、与主机分离地操作的位被存储器件或者可以移除地连接到主机100的存储卡或者其他可移除快闪驱动器,并且可以使用多种可获得的有线或无线接口中的任意接口通过诸如连接器103、104的机械和电连接器或者无线地通信。主机100可以是数据处理设备,比如平板计算机、移动电话、个人数字助理、家庭网络路由器、个人计算机(PC)或者任何其他类型的数据处理设备。
主机***100可以被看作具有两个主要部分,在连接了存储器件102时,这两个主要部分由电路和软件的组合构成。它们是应用部分105和与存储器件102相接口的驱动器部分106。例如,在PC中,应用部分105可以包括运行字处理、制图、控制或者其他普遍的应用软件的处理器109以及用于管理主机100上的数据的文件***110。在相机中、蜂窝电话或主要专用于进行单个功能集的其它主机***中,应用部分105包括操作相机以拍摄和存储照片、操作相机以拨出和接听呼叫等等的软件。
存储器件102包含非易失性存储器107。该非易失性存储器107可以按单级单元(SLC)型闪存和/或多级单元(MLC)型闪存而布置。存储器件102还包括主机接口和控制器108,该控制器108可以包括处理器、用于操作处理器的指令以及逻辑块到物理块变换表。
非易失性闪存可以那存储器单元的块而布置。存储器单元的块是擦除的单位,即,物理上可一起擦除的最少数量的存储器单元。但是,为了增加的并行性,可以按更大的元块单元来操作块。来自存储器单元的最后上两个平面的每个平面的一个块可以逻辑地链接在一起以形成元块。参考图2,示出了代表性的闪存单元阵列的概念例示。存储器单元的四个平面或子阵列200、202、204和206可以在单个集成的存储器单元芯片上、在两个芯片上(每个芯片上两个平面)或者在四个单独的芯片上。具体布置对于以下讨论不重要,并且***中可以存在其他数量的平面。平面各自被位于各个平面200、202、204和206中的诸如块208、210、212和214的矩形划分为图2所示的存储器单元的块。每个平面中可能存在数十个或者数百个块。块可以逻辑地链接在一起以形成可以作为单个单元擦除的元块。例如,块208、210、212和214可以形成第一元块216。用于形成元块的块需要不限制为在其各自的平面内的相同的相对位置,如由块220、222、224和226构成的第二元块218中所示。
为了操作目的,各个块又被划分为存储器单元的页,如图3所示。例如,每个块208、210、212和214的存储器单元被划分为八个页P0-P7。或者,在每个块内可以存在16、32或更多页的存储器单元。页是块内的数据编程的单位,包含一次被编程的最小量的数据。一次可以读取的最小数据单位可以小于一页。在图3中将元页328例示为由四个物理块208、210、212和214的每个的一个物理页形成。元页328包括四个块的每个中的页P2,但是元页的页不是一定需要具有在每个块内的相同的相对位置。元页是编程的最大单位。图2-3中公开的块在此被称为物理块,因为它们涉及如上所述的物理存储器单元的组。如在此使用的,逻辑块是定义为具有与物理块相同大小的地址空间的虚拟单元。每个逻辑块包括与从主机100接收的数据相关联的逻辑块地址(LBA)的范围。然后LBA被映射到其中物理地存储数据的存储器件102中的一个或多个物理块。
现在参考图4A,示出图1的存储器件102的一个实施例具有可以包括三层闪存单元402、404、406的非易失性存储器401,每层在每单元容量具有不同的位。如所示,第一闪存层402可以配置为每单元容量具有单个位的二进制闪存。第一闪存层在此也称为X1闪存。第二闪存层404可以配置为MLC闪存,例如,每单元容量具有两位,在此也称为X2闪存。第三闪存层406也可以配置为MLC闪存,但是每单元容量具有比第二闪存层404更多的位。在此例子中,第三闪存层被例示为是每单元三位的MLC闪存,在此也称为X3闪存。不同的闪存层402、404、406全部可以安排在相同的物理晶片上,每个可以在各自的单独的晶片上制造,或者可以在单个闪存层晶片和组合的闪存层晶片的组合上制造各层。尽管例示了一位、两位和三位的每个单元具***的配置,但是预期到其中第一闪存层具有比第二闪存层每单元更低的位的配置并且第二闪存层又具有比第三闪存层每单元更低的位的配置的其他组合。图4B例示图4A的非易失性存储器401,其中第一和第二闪存层402、404位于一个晶片440上,并且第三闪存层406位于分离的晶片442上。
控制器424的动态随机存取存储器(DRAM)缓冲器408通过诸如出行郭晶晶说(也称为串行ATA或SATA)接口的接收434接收来自主机100的数据。DRAM缓冲器408在来自控制器的处理器424的指导下将在接口434处从主机100接受的数据导向存储器件中的多层非易失性存储器401。存储器件中的DRAM写缓冲器408与第一和第二闪存层402、404通信。而且,第一闪存层402与第二闪存层404通信,并且第二闪存层404与第三闪存层406通信。
控制器424可以在单个集成电路芯片中实现,并且可以通过一个或多个命令信道436与非易失性存储器401中的不同层402、404、406通信。控制器可以具有其自己的内部总线,该内部总线连接控制器424中的包含用于初始化(“引导”)***的代码的非易失性存储器432、DRAM408、接口434以及计算和检验在多层闪存401和主机之间的经过控制器的数据的错误校正码(ECC)的电路430。用于实行住如在此所述的存储器管理指令的控制器可执行的代码可以存储在多层闪存401中,例如存储在第一闪存层402中。
在一个实现方式中,所有接收的主机数据可以最初发送到第一闪存层,然后在第一闪存层内移动,或者发送到随后一层,如以下更详细描述的。在另一实现方式中,当接收的数据是按随机的LBA顺序时,从主机接收的数据从DRAM408导向第一闪存层器402(在线410处),或者当接收的数据是按顺序的(sequential)LBA顺序时,从主机接收的数据从DRAM408直接导向第二闪存层,绕过第一闪存层(在线412处)。控制器可以在适当的时间将数据从第一闪存层402逐渐移动到第二闪存层404(在线414处)并且从第二闪存层逐渐移动到第三闪存层(在416处)。而且,优选进行用于在每个闪存层内创建新的空闲块的垃圾收集以便在闪存层内回收数据(在线418、420和422处)。
参考图5,公开了由存储器件的控制器实现的用于将数据移动到闪存层/在闪存层之间移动数据的示例方法。在一个实现方式中,当从主机写接收到数据时(在502),控制器选择用于接收来自主机的数据的存储器层。该选择可以基于在从诸如SATA接口的接口在DRAM处接收的来自主机的数据是顺序的还是非顺序的(在504)。例如,如果接收的数据是用主机LBA地址顺序寻址的,则控制器可以将数据从DRAM直接导向到第二闪存层(在506)。相反,如果该数据是随机或非顺序寻址的数据,则可以将该数据从DRAM直接导向到第一闪存层(在508)。在一个实现方式中,如果在任意一个时间从主机接收的数据的主机LBA数据地址对于足够填充多层存储器中的元块的一个完整的元页的数据量是顺序的,则该接收的数据被认为是顺序的。
在每个闪存层中,存储器件的控制器监视闪存层转移(transfer)标准。例如,该闪存层转移标准可以是闪存层中是否剩余足够的空闲块以及闪存层中是否包含总量的有效数据。一旦控制器确定空闲块的数量少于闪存层的最小阈值,控制器接下来确定闪存层中的有效数据的量是否在转移阈值以上。当闪存层中的空闲块的数量在最小阈值以下并且在该闪存层中的有效数据的总量达到阈值量时,控制器可以致使数据从该闪存层转移到下一闪存层。因此,如果在第一闪存层中满足用于转移到下一闪存层的标准,则先前被编程的数据的块被该控制器选择以从其复制数据到第二闪存层中,以便释放第一闪存层中的空间(在510,512,506)。类似地,在第二闪存层满足其用于转移到下一闪存层的标准时,第二闪存层中的块可以使数据转移到第三闪存层中以释放第二闪存层中的块(在516,518,522)。
用于确定何时将数据从源存储器层转移到目的地层的标准对于每个层可以相同或不同,该标准可以包括具有少于最小数量的空闲块以及阈值量的有效数据。最后一层——在此例子中是第三闪存层——将不具有用于向其发送数据的下一更高容量的MLC层,因此将不具有分配的转移标准。在一个例子中,用于第一和第二闪存层的转移标准阈值可以是识别层当前至少包含预定百分比的有效数据,比如90%。在另一实施例中,该转移标准可以是在该层中的块可以被选择用于使得其数据转移到下一存储器层之前当前在该层中仅存在阈值数量的空闲块并且该层至少包含预定百分比的有效数据两者。该阈值数量的空闲块可以是诸如一个或多个空闲块的最小数量。被选择用于从源重新定位到下一闪存层的数据优选来自具有最近最少被编程的或者“最冷落的(coldest)”主机数据。控制器可以基于为讨论中的层中的每个先前被编程的块保持的编程信息的顺序来选择此块。
与接受来自主机的数据或者将数据从第一层转移到下一每单元容量更高位的层同时地,控制器通过复制来自具有有效和废弃数据两者的先前被编程的块的有效数据然后回收从其复制所有有效数据的块来收回(reclaim)块。此块收回过程可以是标准垃圾收集技术的形式,其中数据组被保持在一起并且被合并为以相同地址串的新数据,或者该块收回过程可以是重新定位过程,如以下进一步讨论的,其中数据不被合并为相同的地址分组。优选由控制器在每个闪存层中独立地进行垃圾收集或者重新定位过程。无论是垃圾收集还是重新定位,有效数据复制处理在每层内实现,以便在此处理中移动的数据优选保持在相同的闪存层中。如图5所示,控制器检验以查看第一层中是否存在足够数量的空闲块,如果不存在,则对第一层内的数据块进行复制操作以合并有效数据并创建另外的空闲块(在510,514)。此数据复制处理在第二和第三层中也独立地执行(在516,520,524,526)。
上述方法优先在相同存储器层中分配数据,并且如果当前层几乎充满有效数据,则仅将数据移动到下一层。而且,通过在层之间移动来自源层中的最近最少编程的块的数据,数据趋向于从第一闪存层过滤到第三闪存层,使得“热的”数据趋向于存在于第一闪存层中,较少被活跃更新的数据趋向于存在于第二闪存层中,“冷落的”数据主要存在于第三和最后闪存层中。如果数据是在很近的最近被更新的数据,则认为数据是“热的”,因为更有可能该数据处于活跃使用中,其在短时间段内将再次被更新。在一个实现方式中,当没有主机数据写命令正在待决时(例如当主机接口空闲时),数据从第二闪存层到第三闪存层的转移优选作为后台操作进行,以便不降低存储器件的平均写速度。与主机写操作分开的任何操作可以被调度为后台操作以降低对平均写速度的影响。
为了实现上述方法和结构,控制器可以在每个闪存层内保存数据块的链接的列表已记录块被编程在该层中的顺序。另外,控制器可以在每个层内实现存储地址重新映射(STAR)技术以进一步增强数据转移和存储器使用的效率。
尽管可以使用多个已知的存储器管理技术中的任意一个来实现在此所述的多层存储器***,但是在此描述配置为利用STAR技术的控制器。STAR的一个优点是增加随机写应用中的存储器***的性能的能力,这些随机写应用特征是需要将数据的短脉冲串(burst)写到器件的逻辑块地址(LBA)地址空间中的不相关区域,这可能在个人计算机中的固态盘(SSD)应用中经历。在STAR技术的一个实施方式中,将主机数据从由主机分配的第一逻辑地址映射到第二逻辑地址空间中的连续的逻辑地址的块。随着使得与完全被编程的地址的块相关联的数据废弃,开始数据重新定位过程,其中控制器选择在具有最少量的有效数据或者具有少于阈值量的有效数据的层中的先前完全被编程的块,并且重新定位那些块中的有效数据以释放那些块用于在写入更多数据中使用。重新定位的数据按照其在需要数据重新定位的源块中出现的顺序被连续写到***存储器层中的重新定位块,而不管由主机分配的逻辑地址。以此方式,通过不是有目的地合并由主机分配的逻辑地址串(如通常的垃圾收集中那样),可以减少***开销。使用存储地址表来跟踪由主机分配的逻辑地址和第二逻辑地址之间的映射以及由于存储器层中的随后重新定位引起的随后在映射中的改变。
参考图6-9,在LBA地址空间602中的主机空闲簇映射以及在第二逻辑地址空间——在此称为器件逻辑地址空间或DLBA地址空间604——中的空闲簇映射的假定部分在给定的时间可以表示为如图6所示。在LBA地址空间602中,空闲簇606分散在实质上随机的位置处。在DLBA地址空间604中,两个空闲块608可用,并且存在具有不同数量的废弃(空闲)簇606的三个先前被编程的块610。
当主机接下来使数据写到存储器件时,其分派无论何处可用的LBA地址空间602。图7示出存储地址重新映射算法如何分派要作为写入块702的可用空闲块170之一以及每个LBA地址如何被映射到写入块702中可用的DLBA空间中的顺序的簇。DLBA空间中的写入块702按照LBA地址被写入的顺序而被写入,而不管LBA地址位置。在此例子中,为了易于例示,假设主机使用空闲LBA簇的时间顺序与地址顺序相同,但是,实现存储地址重新映射算法的控制器将按照LBA地址被使用的时间顺序分配写入块702中的DLBA地址,而不管LBA地址号顺序。数据按一个或多个DLBA串被写到写入块中。DLBA串是意识到相同LBA串中的连续的LBA地址的连续的DLBA地址的集合。DLBA串在DLBA地址空间604中的块边界处必须终止。当写入块702变满时,空闲块608被分派为下一写入块702。
DLBA块与闪存的物理地址空间706中的块704对准,因此DLBA块大小和物理地址块大小相同。则DLBA写入块702中的地址的布置也与物理地址空间中的相应的更新块的布置相同。由于此对应性,在物理更新块中从不需要通常称为垃圾收集的分离数据合并。在通常的垃圾收集操作中,逻辑地址的块通常总是被重新集合以在逻辑块中保持具体范围的LBA地址,这也反映在物理块中。更具体地,当利用通常的垃圾收集操作的存储器***接收到与特定物理块中的扇区对应的被更新扇区的信息时,该存储器***将分派物理存储器中的更新块来接收更新的一个或多个扇区,然后将来自原始物理块的所有奇遇的有效数据合并为该更新块的剩余者。以此方式,标准垃圾收集将使的用于具体LBA地址范围的数据块永久存在,使得与该具体地址范围对应的数据将总是被合并为通常的物理块。以下更详细讨论的重新定位操作不需要合并相同地址范围中的数据。而是,该重新定位操作进行地址重新映射以创建可以是来自各个物理块的数据的集合的新的数据块,其中不意图合并该数据的特定LBA地址范围。
如之前所述,STAR算法操作以确保足够的空闲块供应可用于顺序的写算法来操作。该STAR算法通过将来自具有有效和废弃数据的混合的先前被编程的块的有效数据重新定位到称为重新定位块802(图8)的特殊写入块来管理空闲块的创建。当前被选择用于重新定位的先前被编程的块称为收回块。
现在参考图7-8,示出了数据重新定位处理的例示。存储地址重新映射算法将空闲块指定为重新定位块802,数据将从所选的先前被编程的块重新定位到该重新定位块802以创建另外的空闲块。收回块(图7的块A)中的有效数据按照该有效数据出现在该收回块中的顺序被选择,并被重新定位到重新定位块802中的顺序并且连续的地址,以将收回块转换为空闲块608。物理地址空间706中的相应的更新块704也被分配用于接收重新定位的数据。如用于从主机接收的新数据的更新块704那样,用于接收重新定位的数据的更新块704将从不需要垃圾收集操作来合并有效数据,因为重新定位操作已经完成了DLBA地址空间604中的合并。
从剩余的先前被编程的块中识别下一收回块(图8的先前被编程的块B),如图9所示。具有最少的有效数据的先前被编程的块再次被指定为收回块,并且该收回块的有效数据被转移到开放的重新定位块中的顺序的位置。也进行更新块704中的物理地址的并行分配。再次,在映射到重新定位块802的物理更新块704中不需要数据合并。对先前被编程的块的重新定位操作作为后台操作进行以按足够补偿被指定为写入块的空闲块的消耗的速率创建空闲块。图6-9的例子例示了如何可以与物理地址空间中的各个分离的更新块一起分别保持写入块和重新定位块用于来自主机的新数据以及用于来自先前被编程的块的重新定位的数据。仅在当前写入块完全被编程时进行用于关联从主机接收的新数据的新的写入块的分配。类似地,优选仅在先前的重新定位块已经完全被编程之后分配新的重新定位块。在分配时,新的重新定位块优选仅包含未被写的容量,即,仅与准备擦除的废弃数据相关联,或者已经被擦除并且不包含有效数据。
在上述的实现方式中,来自主机的新数据与将仅接收来自主机的其他新数据的写入块相关联,并且在重新定位操作中从先前被编程的块重新定位的有效数据被移动到将仅包含来自一个或多个先前被编程的块的有效数据的重新定位块中。在其他实现方式中,新数据和重新定位的数据可以被转移到单个写入块而不需要单独的写入块和重新定位块。控制器将先前被编程的块选择为收回块可以通过选择在先前被编程的块的列表上的与在阈值(其可以是固定的阈值或者是诸如当前的先前被编程的块的有效数据的平均量的变量)以下的有效数据量相关联的任意先前被编程的块来完成,或者可以通过基于可用的先前被编程的块的具体分级(基于与先前被编程的块的有效数据量)选择来完成。关于可与在此公开的***和方法一起使用的STAR技术的版本的另外的细节可以在提交于2008年2月22日并且公开为US公开号2008/0307192的美国申请序列号12/036,014中找到,其中上述申请的全部通过引用合并于此。
在图6-9中所述的重新定位操作将相对“冷的”数据从来自其的“热的”数据已经被废弃的块重新定位到包含类似的相对冷落的数据的重新定位块。这具有创建相对热的和相对冷落的块的分别的群体的效果。要被回收的块总是被选择为包含最少有效数据量的热块。热块群体的创建通过减少需要重新定位的数据量而减少了存储器压力因素。
在多层存储器和方法的一个实施例中,控制器108在各个闪存层的每个中实现图6-9中所示的STAR技术。在图4A的存储器件的一个替换实施例中,多层存储器***的STAR使能的版本例示在图10中,其中第一闪存层具有比第二闪存层每单元容量更少的位,并且第二闪存层具有比第三闪存层每单元容量更少的位。如图4A的例子中那样,已经例示了每单元1位、2位和3位的闪存层1002、1004、1006,尽管可以使用每单元的位的其他增加序列的存储器层以及按其他增加增量的存储器层。为了更好地例示闪存层以及简化附图,省略了或者可以被包括在图10中的控制器和相关联的命令线。
第一闪存层1002在开放的写入块1008处接收具有非顺序的主机LBA地址的主机数据。在每个写入块完全被编程时,其变为一组向前被编程的数据块1010中的一个,并且该块被添加到在第一闪存层1002中保持的先前被编程的块的列表,该列表包括先前被编程的块在该组先前被编程的块1010内的编程的顺序。当第一闪存层1002中的空闲块1012的池(pool)落在期望的阈值以下时,控制器将从该先前被编程的块的列表中选择具有希望的废弃或有效数据量的先前被编程的块(但是不是当前开放的写入块或者重新定位块),并且使该块成为收回块1014,其中将对该收回块1014应用上述的数据重新定位处理以将该收回块1014的有效数据重新定位到第一闪存层1002中的开放的重新定位块1016,以便在该第一闪存层1002中开始的收回处理将收回的数据保存在该第一闪存层1002内。一旦收回处理完成,在来自收回块的所有有效数据已经被重新定位时,则识别的收回块1014被添加到空闲块1012的池。当当前开放的重新定位块1016最终填满时,其被添加到先前被编程的块1010的列表,并且控制器使用第一闪存层1002内的空闲块1012的池中的空闲块之一来制定新的重新定位块1016。
如在图10中所述的方法中所述,当满足关于第一闪存层中的有效数据量的一个或多个标准时,来自先前完全被编程的块之一的数据被移动到第二闪存层中的块中。数据将从其直接移动到第二闪存层1004的第一闪存层1002中的块被选择,其中所选的块可以是从由控制器为每层保持的先前被编程的块的列表中确定的第一层中的最近最少被编程的主机数据的块,并且在图10中被标记为X1-X2移动块1018。一旦该移动块1018中的数据被移动到第二闪存层中的块,移动块1018就变为空闲块,并且被添加到第一闪存层1002中的空闲块1012的池。第一闪存层1002的控制数据结构1011可以存储第一闪存层的列表,该列表包括先前被编程的块被写到该组先前被编程的块1010中的顺序。该控制数据结构1011可以是第一闪存层1002的一部分,其包括由控制器保持的用于管理存储器件的每层的列表和表格,比如一个或多个存储地址表(SAT)。
以与第一闪存层1002几乎相同的方式操作第二闪存层1004。一个例外是,数据可以按两种方式到达第二闪存层1004:来自包含顺序被寻址的主机数据的主机写,该主机数据由控制器从DRAM缓冲器1020直接导向到开放的写入块1022,或者作为从第一闪存层1002接收并且存储在单独的写入块中的移动的数据,该单独的写入块在图10中被指定为X1-X2写入块1024。在每个写入块1022或X1-X2写入块1024完全被编程时,其变为先前被编程的数据块系列中的一个块,并且块1022、1024被添加到在闪存层中保持的先前被编程的块的列表,该列表包括该先前被编程的块被写到该组先前被编程的块1026中的顺序。可以按第一闪存层的控制数据结构1011由控制器保持此列表。当第二闪存层1004中的空闲块1028的池中的空闲块的数量落在期望的阈值以下时,控制器将从先前被编程的块系列1026中选择具有期望的废弃或有效数据量的先前被编程的块,并且使该块成为收回块1030,将对该收回块1030应用上述的数据重新定位处理以将该收回块1030的有效数据重新定位到第二闪存层1004中的开放的重新定位块1032,以便在该第二闪存层1004中开始的收回处理将重新定位的数据保存在第二闪存层1004中。一旦收回处理完成,在来自识别的收回块1030的所有有效数据已被重新定位之后,则将该收回块1030添加到空闲块1028的池。当当前开放的重新定位块1030最终填满时,其被添加到先前被编程的块的列表,并且控制器使用在该第二闪存层1004内的空闲块1028的池中的空闲块之一指定新的重新定位块。
类似于第一闪存层,并且如图5所述的方法中所述,当满足关于第二闪存层1004的充满性的一个或多个标准时,来自先前被编程的块之一的数据被移动到第三闪存层1006中的块中。数据将从其直接移动到第三闪存层1006的第二闪存层中的块被选择,其中所选块可以是从由控制器在控制数据结构1011中为每个层保持的先前被编程的块的列表中确定的第二层中的最近最少被编程的块,并且在图10中被标记为X2-X3移动块1034。一旦该移动块1034中的数据被移动到第三闪存层中的块,该移动块1034变为空闲块,并且被添加到第二闪存层1004中的空闲块1028的池。用于选择何时移动来自第二闪存层1004的数据以及用于选择从其移动数据的哪个或哪些先前被编程的块的标准可以与由控制器应用于第一闪存层的标准相同或者不同。
第三闪存层1006在写入块1036处接收从第二闪存层1004的移动块1034转移的数据。第三闪存层1006与之前的层不同在于,其仅接收来自第二闪存层的数据并且不接收来自DRAM缓冲器1020的数据。在一个替换实施例中,可以在第三闪存层1006处直接从DRAM缓冲器1021接收主机数据。第三闪存层1006与在前的层不同还在于,其是多层存储器中的最后一层,因此将不具有由控制器指定的用于将数据转移到另一闪存层的移动块。在其他实施例中,构思可以利用每单元容量不同的逐渐更高的位的多于三个层,其中除了最后一层之外的每层将包括被指定为移动块的块。写入块1036在完全被编程时变为先前被编程的一系列数据块中的一个块,并且被添加到在第一闪存层1002的数据控制结构1011中保持的先前被编程的块的列表,该列表包括先前被编程的块被写到该组先前被编程的块1038中的顺序。该列表可以由控制器保持在第一闪存层的控制数据结构1011中。当第三闪存层1006中的空闲块1040的池落在期望的阈值以下时,控制器将从该系列先前被编程的块1038中选择具有期望量的废弃或有效数据的先前被编程的块,并使得该快称为收回块1042,上述的数据重新定位处理将被应用于该收回块1042以将该收回块1042的数据重新定位到第三闪存层1006中的开放的重新定位块1044,使得重新定位的数据保留在第三闪存层1006中。在所有的有效数据已被重新定位并且重新定位块1044被添加到先前被编程的块的列表之后,该收回块1042被添加到空闲块1040的池,并且用来自第三闪存层1006内的空闲块之一的新的重新定位块来替换该收回块1042。
构思用于选择第一和第二层中的移动块1018、1034的替换实施例。代替基于块被编程的顺序来选择最近最少被编程的块,在另一实施例中,可以基于先前被编程的块中的数据的年龄(age)来选择移动块。换句话说,基于每个先前被编程的块中的每个数据元素(被跟踪的扇区、簇或者其他子块数据粒度)的年龄数据选择具有最老的平均数据的先前被编程的块。先前被编程的块中的数据的年龄可以由控制器保持在控制数据结构1011中作为SAT表或者映射逻辑和/或物理地址的其他列表的一部分。在一个实现方式中,数据的年龄信息可以是相对年龄,其中块中的具体数据段的年龄被记录为表示其第一次从主机写到存储器件中的顺序的号码。假设已经满足诸如之前所述的转移标准,则控制器将选择具有最老平均年龄的数据的块。用于选择移动块的此替换技术的优点是,可以进行在闪存层隔开“冷落的”和“热的”数据的更全面的工作。使用最近最少被编程的块作为唯一的标准可能错过已经在闪存层内重新定位的并且现在是比较最近的先前被编程的块的部分的较老的数据。
在另一替换实施例中,可以仅用每层中的移动块替代图10的第一和第二闪存层中的单独的收回块1014、1030和移动块1018、1034,其中该层的移动块中的数据的一部分专用于转移到下一更高容量的层,并且该数据的其余部分被重新定位到该层的各个重新定位块1016、1032。在此替换实施例中,可以通过选最近最少被编程的块或者通过选择具有最老的平均数据的块来完成在第一和第二层的每层中选择组合移动/收回块。从所选的组合移动/收回块转移的数据量可以是固定量,或者块中的有效数据的百分比、例如百分之五十可以被指定用于转移到下一层并且剩余的百分之五十可以在该层内重新定位。可以基于在控制数据结构1011中的由控制器跟踪的数据的年龄来进行哪百分之五十从识别的移动/收回块转移的选择。
在其他替换实施例中,可以用上述的编程顺序或数据年龄考虑来覆盖关于是否将数据转移到下一层的另外的考虑。例如,在一个实施例中,如果较老的(即,“较冷落的”)数据被频繁读取,通过在每单元容量较低位的闪存层中保持该数据可能也是有益的。也可以在多层存储器中、比如在图10的第一闪存层1002中的控制数据结构1011中保持对于数据或者数据块的读取计数。该读取计数信息可以用于补充数据转移标准,使得如果对来自最不频繁被编程的块或者具有最老平局年龄的数据的块的数据进行的读操作的数量在预定阈值以上时,该数据将不被选择用于转移到下一每单元较高位的层。
已经公开了用于实现多层存储器的***和方法。该多层存储器包括:主机接口,用于接收主机数据;每单元容量逐渐更高的位的至少三个层的闪存;以及控制器或控制器电路,其被配置为当满足某个标准时管理在闪存层之间的逐渐的数据转移,并且基于用于在每层中保持期望数量的空闲块的标准在每个闪存层内进行复制。公开的***和方法的优点包括通过初始地将数据导向诸如SLC或者每单元两位的MLC的通常是更高性能类型的闪存的每单元较低位的闪存层而利用对于来自诸如SATA的接口的数据的增加的脉冲串写速度。而且,使用每单元最高位的闪存层——在上述的非限制性例子中是每单元三位——来接收“冷落的”数据可以帮助降低写放大,因此改进闪存的该层的耐用性,同时利用每单元较高位层的较低费用。
Claims (24)
1.一种海量存储器***,包括:
接口,适配为接收来自主机***的数据;
多个存储器层,所述多个存储器层包括:
第一存储器层,具有包括第一每单元位的存储容量的非易失性存储器单元;
第二存储器层,具有包括第二每单元位的存储容量的非易失性存储器单元,所述第二每单元位的存储容量大于所述第一每单元位的存储容量;以及
第三存储器层,具有包括第三每单元位的存储容量,所述第三每单元位的存储容量大于所述第二每单元位的存储容量;以及
控制器,与所述接口以及所述多个存储器层通信,所述控制器配置为将从主机接收的数据导向所述多个层中的一个或多个,并在所述多个存储器层之间转移数据。
2.如权利要求1的存储器***,其中第一存储器层和第二存储器层布置在第一晶片上,并且第三存储器层布置在第二晶片上。
3.如权利要求1的存储器***,其中所述多个存储器层布置在相同的晶片上。
4.如权利要求1的存储器***,其中所述多个存储器层的每层布置在各自单独的晶片上。
5.如权利要求1的存储器***,其中第一存储器层包括具有每单元一位的容量的单级单元(SLC)存储器单元。
6.如权利要求5的存储器***,其中该控制器还配置为当来自主机的在所述接口处接收的数据包括随机的逻辑块地址时,将该接收的数据导向第一存储器层,并且配置为当该来自主机的在所述接口处接收的数据包括顺序逻辑块地址时,将该接收的数据导向第二存储器层。
7.如权利要求5的存储器***,其中该控制器还配置为:
当第一存储器层中的空闲块的数量在最小阈值以下时,在第一存储器层内经由块收回处理来收回存储器单元的块。
8.如权利要求7的存储器***,其中该控制器还配置为:
当第一存储器层中的有效数据的百分比超过第一有效数据阈值时并且当存储器单元的空闲块的数量在最小阈值以下时,将有效数据从第一存储器层中的所选块转移到第二存储器层。
9.如权利要求8的存储器***,其中所选块包括有效数据的最近最少被编程的块。
10.如权利要求8的存储器***,其中所选块包括第一存储器层中的具有最老平均年龄的有效数据的先前被编程的块。
11.如权利要求7的存储器***,其中为了在第一存储器层中执行块收回处理,所述控制器配置为选择第一存储器层中的具有最少量的有效数据的块,将有效数据从该所选块复制到第一存储器层中的重新定位块,并将该所选块返回到第一存储器层中的空闲块池。
12.如权利要求1的存储器***,其中所述控制器配置为将有效数据从所选块顺序复制到重新定位块而不管与所选块中的有效数据相关联的主机逻辑块地址如何。
13.一种海量存储器***,包括:
接口,适配为接收来自主机***的数据;
多个存储器层,所述多个存储器层包括:
第一存储器层,具有包括第一每单元位的存储容量的非易失性存储器单元;
第二存储器层,具有包括第二每单元位的存储容量的非易失性存储器单元,所述第二每单元位的存储容量大于所述第一每单元位的存储容量;以及
第三存储器层,具有包括第三每单元位的存储容量,所述第三每单元位的存储容量大于所述第二每单元位的存储容量;
以及
控制器,与所述接口以及所述多个存储器层通信,所述控制器配置为:
将来自主机的在所述接口处接收的数据导向第一存储器层;
当第一存储器层中的空闲块的数量在第一最小阈值以下并且在检测到第一存储器层中的有效数据的量超过第一有效数据阈值时,将数据从第一存储器层移动到第二存储器层;以及
当第二存储器层中的空闲块的数量在第二最小阈值以下并且在检测到第二存储器层中的有效数据的量超过第二有效数据阈值时,将数据从第二存储器层移动到第三存储器层。
14.如权利要求13的存储器***,其中所述控制器还配置为:
当第一存储器层中的空闲块的数量达到第一最小阈值时,在第一存储器层内的第一块收回处理中收回存储器单元的块;
当第二存储器层中的空闲块的数量达到第二最小阈值时,在第二存储器层内的第二块收回处理中收回存储器单元的块;以及
当第三存储器层中的空闲块的数量达到第三最小阈值时,在第三存储器层内的第三块收回处理中收回存储器单元的块。
15.一种管理数据的方法,包括:
在具有用于接收来自主机的数据的接口、多个存储器层以及与所述接口和所述多个存储器层通信的控制器的存储器***中,所述控制器:
将在所述接口处接收的数据导向多个层中的第一存储器层,该第一存储器层具有包括第一每单元位的存储容量的非易失性存储器单元;
当满足第一标准时,将数据从第一存储器层移动到第二存储器层,该第二存储器层具有包括第二每单元位的存储容量的非易失性存储器单元,该第二每单元位的存储容量大于该第一每单元位的存储容量;以及
当满足第二标准时,将数据从第二存储器层移动到第三存储器层,该第三存储器层具有包括第三每单元位的存储容量的非易失性存储器单元,该第三每单元位的存储容量大于该第二每单元位的存储容量。
16.如权利要求15的方法,其中将在所述接口处接收的数据导向第一存储器层包括仅将与非顺序的主机逻辑地址相关联的数据导向第一存储器层,并且其中该方法还包括将在所述接口处接收的并且与顺序主机逻辑块地址相关联的数据导向第二存储器层。
17.如权利要求15的方法,其中所述当满足第一标准时将数据从第一存储器层移动到第二存储器层包括移动来自第一存储器层中的最近最少被编程的块的有效数据。
18.如权利要求17的方法,其中所述当满足第二标准时将数据从第二存储器层移动到第三存储器层包括移动来自第二存储器层中的最近最少被编程的块的有效数据。
19.如权利要求15的方法,其中所述当满足第一标准时将数据从第一存储器层移动到第二存储器层包括移动来自第一存储器层中的具有最老平均年龄的有效数据的先前被编程的块的有效数据。
20.如权利要求19的方法,其中所述当满足第二标准时将数据从第二存储器层移动到第三存储器层包括移动来自第二存储器层中的具有最老平均年龄的有效数据的先前被编程的块的有效数据。
21.如权利要求15的方法,其中第一标准包括第一存储器层具有少于第一最小阈值的空闲块和至少第一阈值量的有效数据,并且第二标准包括第二存储器层具有少于第二最小阈值的空闲块和至少第二阈值量的有效数据,并且该方法还包括:
当第一存储器层中的空闲块的数量在第一最小阈值以下并且第一存储器层具有少于第一阈值量的数据时,收回第一存储器层中的存储器单元的至少一个块;以及
当第二存储器层中的空闲块的数量在第二最小阈值以下并且第二存储器层具有少于第二阈值量的数据时,收回第二存储器层中的存储器单元的至少一个块。
22.如权利要求21的方法,其中:
所述收回第一存储器层中的存储器单元的至少一个块包括选择第一存储器层中的具有最少量的有效数据的块,将有效数据从所选块复制到第一存储器层中的重新定位块,并将该所选块返回到第一存储器层中的空闲块池;以及
所述收回第二存储器层中的存储器单元的至少一个块包括选择第二存储器层中的具有最少量的有效数据的块,将有效数据从所选块复制到第二存储器层中的重新定位块,并且将该所选块返回到第二存储器层中的空闲块池。
23.如权利要求22的方法,其中对于每个各自的存储器层,所述控制器配置为将有效数据从所选块顺序复制到各自的存储器层中的重新定位块,而不管与所选块中的有效数据相关联的主机逻辑块地址如何。
24.一种管理数据的方法,包括:
在具有用于接收来自主机的数据的接口、多个存储器层以及与所述接口和所述多个存储器层通信的控制器的存储器***中,所述控制器:
将在所述接口处接收的数据导向多个层中的第一存储器层,该第一存储器层具有包括第一每单元位的存储容量的非易失性存储器单元;
将最近较少被更新的数据从第一存储器层移动到第二存储器层,该第二存储器层具有包括第二每单元位的存储容量的非易失性存储器单元,该第二每单元位的存储容量大于该第一每单元位的存储容量;以及
将最近最少被更新的数据从第二存储器层移动到第三存储器层,该第三存储器层具有包括第三每单元位的存储容量的非易失性存储器单元,该第三每单元位的存储容量大于该第二每单元位的存储容量。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/077,487 US8537613B2 (en) | 2011-03-31 | 2011-03-31 | Multi-layer memory system |
US13/077,487 | 2011-03-31 | ||
PCT/US2012/029661 WO2012134864A2 (en) | 2011-03-31 | 2012-03-19 | Multi-layer memory system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103477393A true CN103477393A (zh) | 2013-12-25 |
Family
ID=45974505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012800164481A Pending CN103477393A (zh) | 2011-03-31 | 2012-03-19 | 含有具有不同每单元位的存储容量的三个存储层的存储器*** |
Country Status (4)
Country | Link |
---|---|
US (1) | US8537613B2 (zh) |
KR (1) | KR20140043329A (zh) |
CN (1) | CN103477393A (zh) |
WO (1) | WO2012134864A2 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111897485A (zh) * | 2019-05-05 | 2020-11-06 | 北京兆易创新科技股份有限公司 | 一种数据存储方法、装置、电子设备及存储介质 |
CN112558865A (zh) * | 2020-12-02 | 2021-03-26 | 成都佰维存储科技有限公司 | 突发数据读写方法、装置、可读存储介质及电子设备 |
CN113448765A (zh) * | 2020-03-26 | 2021-09-28 | 西部数据技术公司 | 具有对存储元件的写入故障保护的非易失性存储器阵列 |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120303878A1 (en) * | 2011-05-26 | 2012-11-29 | International Business Machines Corporation | Method and Controller for Identifying a Unit in a Solid State Memory Device for Writing Data to |
US8930614B2 (en) * | 2011-07-29 | 2015-01-06 | Kabushiki Kaisha Toshiba | Data storage apparatus and method for compaction processing |
KR102147359B1 (ko) * | 2012-06-29 | 2020-08-24 | 삼성전자 주식회사 | 비휘발성 메모리 장치의 관리 방법 및 비휘발성 메모리 장치 |
US8873284B2 (en) | 2012-12-31 | 2014-10-28 | Sandisk Technologies Inc. | Method and system for program scheduling in a multi-layer memory |
US9336133B2 (en) | 2012-12-31 | 2016-05-10 | Sandisk Technologies Inc. | Method and system for managing program cycles including maintenance programming operations in a multi-layer memory |
US9348746B2 (en) | 2012-12-31 | 2016-05-24 | Sandisk Technologies | Method and system for managing block reclaim operations in a multi-layer memory |
US9734050B2 (en) * | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for managing background operations in a multi-layer memory |
US9223693B2 (en) | 2012-12-31 | 2015-12-29 | Sandisk Technologies Inc. | Memory system having an unequal number of memory die on different control channels |
US9465731B2 (en) * | 2012-12-31 | 2016-10-11 | Sandisk Technologies Llc | Multi-layer non-volatile memory system having multiple partitions in a layer |
US9734911B2 (en) | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for asynchronous die operations in a non-volatile memory |
US8954655B2 (en) | 2013-01-14 | 2015-02-10 | Western Digital Technologies, Inc. | Systems and methods of configuring a mode of operation in a solid-state memory |
WO2014149025A1 (en) * | 2013-03-18 | 2014-09-25 | Ge Intelligent Platforms, Inc. | Apparatus and method for optimizing time series data store usage |
TWI523016B (zh) * | 2013-08-05 | 2016-02-21 | 慧榮科技股份有限公司 | 用來管理一記憶裝置之方法以及記憶裝置與控制器 |
CN107391389B (zh) | 2013-08-05 | 2020-11-24 | 慧荣科技股份有限公司 | 用来管理一记忆装置的方法以及记忆装置与控制器 |
CN107741913B (zh) | 2013-08-05 | 2021-09-07 | 慧荣科技股份有限公司 | 用来管理一记忆装置的方法、记忆装置与控制器 |
CN106170773A (zh) | 2014-01-09 | 2016-11-30 | 桑迪士克科技有限责任公司 | 用于裸芯上缓冲式非易失性存储器的选择性回拷 |
US20150261603A1 (en) * | 2014-03-12 | 2015-09-17 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory device and control method thereof |
US8918577B1 (en) * | 2014-06-13 | 2014-12-23 | Sandisk Technologies Inc. | Three dimensional nonvolatile memory with variable block capacity |
US9778863B2 (en) * | 2014-09-30 | 2017-10-03 | Sandisk Technologies Llc | System and method for folding partial blocks into multi-level cell memory blocks |
US9875039B2 (en) | 2014-09-30 | 2018-01-23 | Sandisk Technologies Llc | Method and apparatus for wear-leveling non-volatile memory |
US20160162185A1 (en) * | 2014-12-05 | 2016-06-09 | Sandisk Technologies Inc. | Data programming for a memory having a three-dimensional memory configuration |
US9690491B2 (en) | 2014-12-17 | 2017-06-27 | Sandisk Technologies Llc | System and method for managing data in a memory device |
US9619158B2 (en) | 2014-12-17 | 2017-04-11 | International Business Machines Corporation | Two-level hierarchical log structured array architecture with minimized write amplification |
US9632705B2 (en) * | 2014-12-17 | 2017-04-25 | Sandisk Technologies Llc | System and method for adaptive memory layers in a memory device |
US9606734B2 (en) | 2014-12-22 | 2017-03-28 | International Business Machines Corporation | Two-level hierarchical log structured array architecture using coordinated garbage collection for flash arrays |
US10008250B2 (en) * | 2015-03-27 | 2018-06-26 | Intel Corporation | Single level cell write buffering for multiple level cell non-volatile memory |
US10268400B2 (en) | 2015-09-03 | 2019-04-23 | Sandisk Technologies Llc | System and method for file detection and usage during compaction |
US9778855B2 (en) | 2015-10-30 | 2017-10-03 | Sandisk Technologies Llc | System and method for precision interleaving of data writes in a non-volatile memory |
US10042553B2 (en) | 2015-10-30 | 2018-08-07 | Sandisk Technologies Llc | Method and system for programming a multi-layer non-volatile memory having a single fold data path |
US10120613B2 (en) | 2015-10-30 | 2018-11-06 | Sandisk Technologies Llc | System and method for rescheduling host and maintenance operations in a non-volatile memory |
US10133490B2 (en) | 2015-10-30 | 2018-11-20 | Sandisk Technologies Llc | System and method for managing extended maintenance scheduling in a non-volatile memory |
WO2018022136A1 (en) | 2016-07-26 | 2018-02-01 | Pure Storage, Inc. | Geometry based, space aware shelf/writegroup evacuation |
US10366004B2 (en) * | 2016-07-26 | 2019-07-30 | Pure Storage, Inc. | Storage system with elective garbage collection to reduce flash contention |
KR20180104262A (ko) * | 2017-03-10 | 2018-09-20 | 에스케이하이닉스 주식회사 | 보안 리프레시 키를 이용하여 블록 간 웨어-레벨링을 수행하는 메모리 장치 및 그 메모리 장치에서의 블록 간 웨어-레벨링 방법 |
JP6968016B2 (ja) | 2018-03-22 | 2021-11-17 | キオクシア株式会社 | ストレージデバイスおよびコンピュータシステム |
KR20200068944A (ko) * | 2018-12-06 | 2020-06-16 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
CN109783019B (zh) * | 2018-12-28 | 2022-08-19 | 上海威固信息技术股份有限公司 | 一种数据智能存储管理方法与装置 |
TWI701552B (zh) * | 2019-03-22 | 2020-08-11 | 群聯電子股份有限公司 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
US11188459B2 (en) * | 2019-12-23 | 2021-11-30 | Micron Technology, Inc. | Data block switching at a memory sub-system |
CN114911725A (zh) * | 2021-02-10 | 2022-08-16 | 华为技术有限公司 | 通信方法、装置及*** |
WO2023050147A1 (zh) * | 2021-09-29 | 2023-04-06 | 长江存储科技有限责任公司 | 用于存储器的数据保护方法及其存储装置 |
CN117891410B (zh) * | 2024-03-14 | 2024-06-11 | 合肥康芯威存储技术有限公司 | 一种存储器***及闪存存储器的数据处理方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040073748A1 (en) * | 2002-10-09 | 2004-04-15 | Rudelic John C. | Queued copy command |
US20070186065A1 (en) * | 2006-02-03 | 2007-08-09 | Samsung Electronics Co., Ltd. | Data storage apparatus with block reclaim for nonvolatile buffer |
US20080316815A1 (en) * | 2007-06-25 | 2008-12-25 | Lin Jason T | Methods of programming multilevel cell nonvolatile memory |
US20090248952A1 (en) * | 2008-03-31 | 2009-10-01 | Radke William H | Data conditioning to improve flash memory reliability |
US20090300269A1 (en) * | 2008-05-28 | 2009-12-03 | Radke William H | Hybrid memory management |
US20100153631A1 (en) * | 2007-08-08 | 2010-06-17 | Kui-Yon Moon | Method and data storage device for processing commands |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3601408A (en) | 1969-10-13 | 1971-08-24 | Kenneth K Wright | Golf swing training apparatus |
US5696917A (en) | 1994-06-03 | 1997-12-09 | Intel Corporation | Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory |
US5869845A (en) | 1997-06-26 | 1999-02-09 | Texas Instruments Incorporated | Resonant tunneling memory |
US5930167A (en) | 1997-07-30 | 1999-07-27 | Sandisk Corporation | Multi-state non-volatile flash memory capable of being its own two state write cache |
US7336531B2 (en) | 2004-06-25 | 2008-02-26 | Micron Technology, Inc. | Multiple level cell memory device with single bit per cell, re-mappable memory block |
KR100771882B1 (ko) | 2006-09-06 | 2007-11-01 | 삼성전자주식회사 | 멀티-레벨 불휘발성 메모리 장치의 프로그램 방법 |
KR100895853B1 (ko) | 2006-09-14 | 2009-05-06 | 삼성전자주식회사 | 적층 메모리 소자 및 그 형성 방법 |
KR100771521B1 (ko) * | 2006-10-30 | 2007-10-30 | 삼성전자주식회사 | 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법 |
JP4563992B2 (ja) | 2006-12-26 | 2010-10-20 | 株式会社京都ソフトウェアリサーチ | 多値フラッシュメモリおよび多値フラッシュメモリへのデータ書き込み方法 |
US8429352B2 (en) | 2007-06-08 | 2013-04-23 | Sandisk Technologies Inc. | Method and system for memory block flushing |
US8245094B2 (en) | 2007-11-20 | 2012-08-14 | California Institute of Technology Texas A & M | Rank modulation for flash memories |
CN101632068B (zh) * | 2007-12-28 | 2015-01-14 | 株式会社东芝 | 半导体存储装置 |
KR101414494B1 (ko) * | 2008-03-17 | 2014-07-04 | 삼성전자주식회사 | 메모리 장치 및 메모리 데이터 읽기 방법 |
-
2011
- 2011-03-31 US US13/077,487 patent/US8537613B2/en active Active
-
2012
- 2012-03-19 WO PCT/US2012/029661 patent/WO2012134864A2/en active Application Filing
- 2012-03-19 CN CN2012800164481A patent/CN103477393A/zh active Pending
- 2012-03-19 KR KR1020137022329A patent/KR20140043329A/ko not_active Application Discontinuation
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040073748A1 (en) * | 2002-10-09 | 2004-04-15 | Rudelic John C. | Queued copy command |
US20070186065A1 (en) * | 2006-02-03 | 2007-08-09 | Samsung Electronics Co., Ltd. | Data storage apparatus with block reclaim for nonvolatile buffer |
US20080316815A1 (en) * | 2007-06-25 | 2008-12-25 | Lin Jason T | Methods of programming multilevel cell nonvolatile memory |
US20100153631A1 (en) * | 2007-08-08 | 2010-06-17 | Kui-Yon Moon | Method and data storage device for processing commands |
US20090248952A1 (en) * | 2008-03-31 | 2009-10-01 | Radke William H | Data conditioning to improve flash memory reliability |
US20090300269A1 (en) * | 2008-05-28 | 2009-12-03 | Radke William H | Hybrid memory management |
Non-Patent Citations (1)
Title |
---|
SEONGCHEOL HONG,等: "NAND Flash-based Disk Cache Using SLC/MLC Combined Flash Memory", 《2010 INTERNATIONAL WORKSHOP ON STORAGE NETWORK ARCHITECTURE AND PARALLEL I/OS》, 3 May 2010 (2010-05-03), pages 21 - 29 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111897485A (zh) * | 2019-05-05 | 2020-11-06 | 北京兆易创新科技股份有限公司 | 一种数据存储方法、装置、电子设备及存储介质 |
CN113448765A (zh) * | 2020-03-26 | 2021-09-28 | 西部数据技术公司 | 具有对存储元件的写入故障保护的非易失性存储器阵列 |
CN112558865A (zh) * | 2020-12-02 | 2021-03-26 | 成都佰维存储科技有限公司 | 突发数据读写方法、装置、可读存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2012134864A2 (en) | 2012-10-04 |
US20120254574A1 (en) | 2012-10-04 |
KR20140043329A (ko) | 2014-04-09 |
US8537613B2 (en) | 2013-09-17 |
WO2012134864A3 (en) | 2012-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103477393A (zh) | 含有具有不同每单元位的存储容量的三个存储层的存储器*** | |
KR101854020B1 (ko) | 비휘발성 메모리에서 비동기 다이 동작을 위한 방법 및 시스템 | |
CN102754088B (zh) | 用于在非易失性存储器阵列中的同时后台和前台操作的方法和*** | |
KR102143086B1 (ko) | 동적 슈퍼 블록을 포함하는 메모리 장치 및 관련 방법 및 전자 시스템 | |
US9734911B2 (en) | Method and system for asynchronous die operations in a non-volatile memory | |
US9734050B2 (en) | Method and system for managing background operations in a multi-layer memory | |
US9336133B2 (en) | Method and system for managing program cycles including maintenance programming operations in a multi-layer memory | |
KR101551584B1 (ko) | 하이브리드 slc/mlc 메모리 내의 블록 관리 방식들 | |
US9223693B2 (en) | Memory system having an unequal number of memory die on different control channels | |
US9348746B2 (en) | Method and system for managing block reclaim operations in a multi-layer memory | |
US20160378379A1 (en) | Multi-layer memory system having multiple partitions in a layer | |
US8873284B2 (en) | Method and system for program scheduling in a multi-layer memory | |
US8364883B2 (en) | Scheduling of housekeeping operations in flash memory systems | |
KR100983212B1 (ko) | 데이터 런 프로그래밍 | |
CN107025178A (zh) | 存储器控制器、非易失性存储器***及其操作方法 | |
CN101124555A (zh) | 具有多流更新的非易失性存储器和方法 | |
CN103688246A (zh) | 具有在活跃slc和mlc存储器分区之间分布的小逻辑组的非易失性存储器和方法 | |
CN103597461A (zh) | 非易失性半导体存储*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: texas Applicant after: DELPHI INT OPERATIONS LUX SRL Address before: texas Applicant before: Sandisk Corp. |
|
COR | Change of bibliographic data | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20131225 |
|
WD01 | Invention patent application deemed withdrawn after publication |