CN103377010A - 管理数据存储系统中的不可靠存储器 - Google Patents
管理数据存储系统中的不可靠存储器 Download PDFInfo
- Publication number
- CN103377010A CN103377010A CN2013101427758A CN201310142775A CN103377010A CN 103377010 A CN103377010 A CN 103377010A CN 2013101427758 A CN2013101427758 A CN 2013101427758A CN 201310142775 A CN201310142775 A CN 201310142775A CN 103377010 A CN103377010 A CN 103377010A
- Authority
- CN
- China
- Prior art keywords
- memory
- memory unit
- unreliable
- tabulation
- subclauses
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/78—Masking faults in memories by using spares or by reconfiguring using programmable devices
- G11C29/80—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
- G11C29/816—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for an application-specific layout
- G11C29/82—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for an application-specific layout for EEPROMs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明公开了一种数据存储系统,其被配置为管理不可靠存储器单位。在一个实施例中,该数据存储系统将非易失性存储器阵列中的存储器单位标注为可靠或不可靠的不可靠存储器单位列表。该不可靠存储器单位列表有助于以比存储器块的粒度更细的粒度水平管理不可靠存储器。在不可靠存储器单位被发现时,该数据存储系统可以将条目添加到不可靠存储器单位列表。进一步地,该数据存储系统可以针对包含被确定为不可靠的其他存储器单位的块中的可靠存储器单位执行存储器访问操作。结果,延长了数据存储系统的操作寿命。
Description
技术领域
本公开涉及用于计算机系统的数据存储系统,例如固态驱动器。尤其是,本公开涉及管理数据存储系统中的不可靠存储器。
背景技术
非易失性存储器阵列可能包括有缺陷的位置,例如带有高原始位错误的不可纠正的纠错码(ECC)错误或可纠正ECC错误的页。这些缺陷可能是在存储器阵列的制造期间或在存储器阵列的使用期间产生的。例如,在存储器阵列经受大量的编程擦除周期(例如,30,000周期或更多)后,存储器阵列的页更可能会遇到或产生存储器错误。如果存储器错误未被解决,则存储器错误会导致存储数据的丢失。因此,期望一种改进的用于管理有缺陷的存储器位置的装置和方法。
发明内容
附图说明
现参考下列附图描述体现本发明的各个特征的系统和方法,其中:
图1示出根据本发明的一个实施例的管理不可靠存储器单位的存储系统。
图2是示出根据本发明的一个实施例的当执行存储器访问操作时管理不可靠存储器单位的过程的流程图。
图3是示出根据本发明的一个实施例的当执行程序操作时管理不可靠存储器单位的过程的流程图。
图4是示出根据本发明的一个实施例的页中的存储器单元在给定的编程擦除周期水平下的电压阈值分布的曲线图。
图5是示出根据本发明的一个实施例的块的两个页中的存储器单元在两个不同的编程擦除周期水平下的电压阈值分布的曲线图。
图6是示出根据本发明的一个实施例的块的两个页中的存储器单元在给定的编程擦除周期水平下的电压阈值分布的曲线图。
具体实施方式
虽然描述了特定的实施例,但是这些实施例仅作为示例呈现,并无意限制保护范围。实际上,本文描述的新颖方法和系统可以以各种其他形式体现。而且,在不偏离保护范围的情况下,可以对本文所述的方法和系统的形式进行各种省略、替换和变化。
概述
在某些数据存储系统(例如,固态存储系统)中,当存储器块的页变得不可靠时,数据存储系统确定这类块应当不再用于存储器访问操作。然而,从现行使用中删除的这些块包括大量的可靠的存储器单元。因此,本文公开的数据存储系统可以以比块粒度更精细的粒度跟踪不可靠存储器,由此能够继续使用否则可能被标注为不可用或不可靠的存储器块。整体效果是延长存储器件的可使用寿命。例如,采用本发明的实施例的某些存储器件的寿命可以延长超过制造商保证的编程/擦除(PE)周期数。这对于多层单元(MLC)NAND(其比单层单元(SLC)NAND具有较低的耐久性(PE周期数))的广泛使用会是特别有用的。
在本发明的某些实施例中,数据存储系统以多个页、一个页或部分页的粒度管理不可靠存储器单位。数据存储系统被配置为执行针对非易失性存储器阵列的存储器单位的存储器访问操作,并且检测指示执行存储器访问操作失败的存储器错误。在某些实施例中,如果检测到失败,则数据存储系统将对应于存储器单位的条目(entry)添加到不可靠存储器单位列表,将存储器单位标注为不可靠的。进一步地,数据存储系统可以将不可靠存储器单位列表从易失性存储器周期性地复制(flush)到非易失性存储器。
在某些实施例中,数据存储系统确定在存储器块中被标注为不可靠的存储器单位的总数。如果该总数超出选定的阈值,则数据存储系统将对应于该块的条目添加到不可靠块列表,将该块标注为不可靠的。
在某些实施例中,数据存储系统从主机系统接收执行与非易失性存储器阵列的存储器单位关联的编程操作的请求。作为响应,数据存储系统选择包含该存储器单位的存储器块,并且利用不可靠存储器单位列表和不可靠块列表来确定该存储器单位和该块是否是不可靠的。如果存储器单位或块被确定为是不可靠的,则数据存储系统可以选择另一个可靠的存储器单位和块的组合来执行编程操作(例如,存储数据)。
系统概述
图1示出根据本发明的一个实施例的管理不可靠存储器单位的存储系统120。如图所示,存储系统120(例如,混合型硬盘驱动器,固态驱动器等)包括控制器130和非易失性存储器阵列150,非易失性存储器阵列150包括一个或更多存储块,被标识为块“A”(152)到块“N”(154)。每个块包括多个页。例如,图1的块A(152)包括多个页,被标识为页A(153)、B(155)到N(157)。在某些实施例中,每个“块”是在单个操作中或作为单位是可擦除的非易失性存储器阵列150的存储器页或位置的最小编组,并且每个“页”是在单个操作中或作为单位可以被编程的存储器单元的最小编组。(其他实施例可以使用不同定义的块和页)。术语“存储器单位(memory unit)”在此用作指代一组存储器位置,该组具有比存储器块少的存储器位置。例如,存储器单位可以包括多个页、一个页或部分页。然而,在一个实施例中,存储器单位可以进一步指代具有比存储器块大的数量的存储器位置的组,例如,1.50、2.0、2.25个存储器块等。
控制器130可以被配置为从主机系统110中的存储接口模块112(例如,设备驱动器)接收数据和/或存储访问命令。由存储接口112传递的存储访问命令可以包括由主机系统110发出的写入命令和读取命令。读取命令和写入命令可以指明存储系统120中的逻辑块地址。控制器130可以执行非易失性存储器阵列150中的接收到的命令。
控制器130包括存储器管理模块132。在一个实施例中,存储器管理模块132以比存储器块的粒度更细的粒度水平,例如存储器的多个页、一个页或部分页的粒度(例如,4KB,8KB或16KB),来管理非易失性存储器阵列150的不可靠存储器。在另一个实施例中,存储器管理模块132以比块的粒度更粗糙的粒度来管理非易失性存储器阵列150的不可靠存储器。为了有助于不可靠存储器的管理,控制器130和/或存储器管理模块132维护不可靠存储器单位列表134,不可靠存储器单位列表134包括对应于被标注为可靠或不可靠的存储器单位的多个条目。进一步地,控制器130和/或存储器管理模块132维护不可靠块列表136,不可靠块列表136包括对应于被标注为可靠或不可靠的块的多个条目。不可靠存储器单位列表134和不可靠块列表136可以被存储在控制器130外部(如图1所示),控制器130内部,或部分在控制器130内部,部分在控制器130外部。
控制器130和/或存储器管理模块132可以将不可靠存储器单位列表134和不可靠块列表136从易失性存储器复制到非易失性存储器(例如非易失性存储器阵列150),从而在易失性存储器掉电时,防止不可靠存储器单位列表134和不可靠块列表136的丢失。例如,不可靠存储器列表134可以以特定间隔周期性地被复制,或响应于某些事件而周期性地被复制,例如检测到不可靠电源,发现不可靠存储器单位,发现数个不可靠存储器单位等。在一个实施例中,不可靠存储器单位列表134从一个非易失性存储器被复制到另一个非易失性存储器。
非易失性存储器阵列150可以使用NAND闪存存储器器件来实现。可以替换使用其他类型的固态存储器器件,例如闪存集成电路阵列,硫族化物RAM(C-RAM),相变存储器(PC-RAM或PRAM),可编程金属化单元RAM(PMC-RAM或PMCm),双向统一的存储器(OUM),电阻RAM(RRAM),NOR存储器,EEPROM,铁电存储器(FeRAM),磁阻RAM(MRAM),其他分立NVM(非易失性存储器)芯片,或上述的任意组合。在一个实施例中,非易失性存储器阵列150优选包括具有多层单元的、能够存储不止单个比特信息的多层单元(MLC)器件,虽然也可以使用单层单元(SLC)存储器器件,或SLC和MLC器件的组合。在一个实施例中,存储系统120可以包括其他存储器模块,例如一个或更多磁存储器模块。
存储系统120可以存储从主机系统110接收到的数据。也就是说,存储系统120可以作为主机系统110的存储器储存。为了有助于这个功能,控制器130可以实现逻辑接口。逻辑接口可以向主机系统110呈现存储系统存储器,作为可以存储数据的一组逻辑地址(例如,连续地址)。在内部,控制器130可以将逻辑地址映射到非易失性存储器阵列150和/或其他存储器模块中的各个物理存储器地址。
不可靠存储器的管理
图2是示出根据本发明的一个实施例的当执行存储器访问操作时管理不可靠存储器单位的过程200的流程图。过程200可以由控制器130和/或存储器管理模块132执行。有利的是,过程200能够延长数据存储系统120的操作寿命。在已经确定非易失性存储器阵列150的块包括不可靠存储器单位后,过程200允许存储器访问操作被引导到该块的某些可靠存储器单位。
在方框202,过程200执行针对存储器单位的存储器访问操作。存储器访问操作可以包括编程操作或读取操作。
在方框204,过程200确定存储器访问操作的执行是否导致了指示执行失败的存储器错误。例如,可以检测到指示执行存储器访问操作失败的存储器错误,例如ECC错误、读取错误或编程错误。
如果执行未导致指示执行失败的存储器错误,则在方框206,过程200继续正常操作,例如执行下一个存储器访问操作。
替换地,如果执行导致指示执行失败的存储器错误,则在方框208,过程200将对应于存储器单位的条目添加到不可靠存储器单位列表134。在一个实施例中,过程200将对应于该存储器单位和也可能变为不可靠的其他相关存储器单位的条目添加到不可靠存储器单位列表134。例如,通过实验可以看出,某些存储器单位可能成对地或成组地变得不可靠,因此,如果一个存储器单位变得不可靠,则对应于一对或一组中的其他存储器单位的条目可以被添加到不可靠存储器列表134。进一步地,过程200还可以触发不可靠存储器单位列表134从易失性存储器复制到非易失性存储器。
不可靠存储器单位列表134可以包括对应于被标注为可靠或不可靠的存储器单位的多个条目。有利的是,不可靠存储器单位列表134能够以比非易失性存储器阵列可以作为单元被擦除的最小粒度水平更细的粒度水平跟踪不可靠存储器。例如,不可靠存储器单位列表134可以对应于存储器的多个页、一个页或部分页(例如,4KB,8KB或16KB)。作为另一个例子,不可靠存储器单位列表134可以包括对应于部分页的条目,其中部分页的大小与数据存储系统120的ECC过程的粒度匹配(例如,ECC过程粒度可以是2KB,而页大小可以是16KB)。
在一个实施例中,不可靠存储器单位列表134包括表格。表格中的每个条目对应于非易失性存储器阵列150中被标注为可靠或不可靠的存储器单位。例如,表格可以被存储为位图,其中每个位对应于存储器单位。如果存储0值,则对应的存储器单位可以被标注为可靠的。如果存储1值,则对应的存储器单位可以被标注为不可靠的。在其他情况下,0和1比特值的标注可以被颠倒。有利的是,这种表格设计允许快速访问来自不可靠存储器单位列表134的数据。在某些情况下,表格可以被压缩,从而减少维护表格所需要的存储。
在一个实施例中,不可靠存储器单位列表134包括对应于非易失性存储器阵列150的某些存储器单位的条目。在这种情况下,不可靠存储器单位列表134可以被存储为一系列链接的列表,其中包含不可靠存储器单位的块被包括在链接的列表中。根据实施例的一个示例数据结构可以包括8字节值编码,如下面所示。
第一字节(即,字节0)可以存储对应于不可靠存储器单位的通道号和芯片号(例如,位0到3可以存储通道号,位4到7可以存储芯片号)。下两个字节(即,字节1-2)可以存储对应于不可靠存储器单位的块号。接下来的字节(即,字节3)可以存储块的第一不可靠存储器单位或偏移(例如,如果NAND块包括256个页,值224可以表示块中的起始页号224)。最后的四个字节(即,字节4-7)可以存储块中开始于第一不可靠存储器单位或偏移的可靠或不可靠存储器单位的位图(例如,位图可以包括对应于可靠和不可靠页的条目,其中每个页开始于页224并且终止于页256)。有利的是,这种链接列表设计可以使用比可以用于存储包括对应于非易失性存储器阵列150的所有存储器单位的条目的位图少的存储。进一步地,在一个实施例中,专用的软件或硬件可以被用于访问不可靠存储器单位列表134,例如链接列表,从而增加在链接列表中每次查找的速度。
在某些实施例中,可以采用其他存储和/或搜索方法来存储和/或搜索不可靠存储器单位列表134。例如,可以使用哈希查找、平衡树或二叉树。而且,不可靠存储器单位列表134可以包括仅对应于可靠存储器单位或不可靠存储器单位的条目,而不是对应于可靠和不可靠存储器单位的条目。
在方框210,过程200确定对应于存储器单位的存储器块中的不可靠存储器单位的总数。例如,过程200可以引用不可靠存储器单位列表134,并且计算块内被标注为不可靠的存储器单位的总数。
在方框212,过程200确定不可靠存储器单位的总数是否超过阈值。阈值可以是基于实验确定的阈值,其中对块中剩余数量的可靠存储器单位的访问时间并不决定(justify)该块的继续使用。在某些情况下,可以基于块中被确定为不可靠的页的百分比(例如,当块中的页的25%、50%或75%是不可靠的)来任意选择阈值。进一步地,根据该块中或相邻块中的不可靠存储器单位的数量的增加速率,阈值从块到块可以改变。
如果不可靠存储器单位的总数未超出阈值,则过程200移到方框214。在方框214,过程200可以继续正常操作,例如,对另一个存储器单位执行存储器访问操作,该另一个存储器单位不包括不可靠存储器单位列表134中将该另一个存储器单位标注为不可靠的条目。
如果不可靠存储器单位的总数超出阈值,则过程200移到方框216。在方框216,过程200将对应于存储器块的条目添加到不可靠块列表或坏块列表136。不可靠块列表136可以包括对应于被标注为可靠或不可靠的块的多个条目。接着,过程200可以继续正常操作,例如,对另一个存储器单位或块执行存储器访问操作,该另一个存储器单位或块不具有不可靠存储器单位列表134或不可靠块列表136中将该存储器单位或块标注为不可靠的条目。
图3是示出根据本发明的一个实施例的当执行编程操作时管理不可靠存储器单位的过程300的流程图。编程操作可以从主机系统100接收,并且编程操作可以针对或关联于非易失性存储器阵列150中被选择进行编程的块的存储器单位。过程300可以由控制器130和/或存储器管理模块132执行。
在方框302,过程300确定不可靠块列表136是否包括将该存储器单位的块标注为不可靠的条目。如果不可靠块列表136包括将块标注为不可靠的条目,则过程300移到方框304。在方框304,过程300在不同的存储器块(其为可靠的)中执行编程操作。例如,过程300可以从执行编程操作的该不同的块中选择另一个存储器单位。为了确定该不同的块的可靠性,过程300可以在方框302处重启,并且确定不可靠块列表136是否包括将该不同的块标注为不可靠的条目。
如果不可靠块列表136不包括将该块标注为不可靠的条目,则过程300移到方框306。在方框306,过程300确定不可靠存储器单位列表134是否包括将该存储器单位标注为不可靠的条目。
如果不可靠存储器单位列表134包括将该存储器单位标注为不可靠的条目,则过程300移到方框308。在方框308,过程300在该存储器单位中执行编程操作。
另一方面,如果不可靠存储器单位列表134不包括将该存储器单位标注为不可靠的条目,则过程300移到方框310。在方框310,过程300在不同的、可靠的存储器单位中执行编程操作。该不同的、可靠的存储器单位可以包括如下块的存储器单位,其不具有将存储器单位或块标注为不可靠的不可靠存储器单位列表134或不可靠块列表136中的条目。在一个实施例中,过程300可以在相同块中的并且替换最初存储器单位的不同的、可靠的存储器单位中执行编程操作。在另一个实施例中,过程300可以在不同块中的并且替换最初存储器单位的不同的、可靠的存储器单位中执行编程操作。一旦其他存储器单位或存储器块被选中,过程300可以在方框302处重启,并且确定不可靠块列表136是否包括将选定的块标注为不可靠的条目。
图4是示出根据本发明的一个实施例的、页中的存储单元在给定的编程擦除周期水平(cycle level)下的电压阈值分布的曲线图。曲线图400示出在随机数据模式被编程后,在MLC NAND闪存存储器中,页中的存储单元在1000个编程擦除周期水平下的电压阈值分布。x轴是对应于电压水平的电压代码轴。y轴对应于该页中的单元的概率分布。如曲线图所示,单元的电压阈值分布在三个近似的电压基准水平处形成相对限定、窄的、分离的峰值,这表明了该页的可靠性或耐久性的总体较高的质量和水平。
图5示出根据本发明的一个实施例的、示例块的两页中的存储单元在两个不同的编程擦除周期水平下的电压阈值分布曲线图。曲线图500示出在随机数据模式被编程后,在MLC NAND闪存存储器中,两页中的存储单元的电压阈值分布。x轴是对应于电压水平的电压代码轴。y轴对应于该页中的单元的概率分布。系列1和系列3分别示出在1000和30000个编程擦除周期水平下的该块的页0。系列2和系列4分别示出在1000和30000个编程擦除周期水平下的该块的页250。在一个实施例中,相同的随机数据模式已经被写入到页0和页250。在另一个实施例中,不同的随机数据模式已经被写入到页0和页250。
正如从系列1和系列2所看到的,页0和页250的单元的电压阈值分布在1000个编程擦除周期水平下,在三个近似的电压基准水平处形成相对限定、窄的、分离的峰值。这指示了页0和页250的可靠性或耐久性的总体较高的质量和水平,除了其他原因之外,还由于这些电压阈值水平允许对何时获取数据进行进一步的调整。然而,正如从系列3和系列4所看到的,页0和页250的电压阈值分布的峰值在30000个编程擦除周期水平下变得更宽和更短,从而指示了单元的可靠性或耐久性的总体降低的质量和水平。具体地,系列4的峰值显示出比系列3的峰值更宽且更短,这指示了页250展示出比页0低的质量和水平的可靠性或耐久性。因此,一些页可以在其他页之前有利地被包括在不可靠存储器单位列表134中,这是由于一些页可能展示出比其他页低的质量和水平的可靠性或耐久性。例如,物理上位于更靠近块的末端的页可能展示出比同一块的其他页低的质量和水平的可靠性或耐久性,如图5所示。如上所讨论的,不可靠存储器列表134使具有较高质量的页能够被继续使用,即使他们可能位于具有无法再被可靠使用的较低质量的页的块中。
图6是示出根据本发明的一个实施例的、块的两页中的存储单元在给定的编程擦除周期水平下的电压阈值分布曲线图。曲线图600示出在随机数据模式被编程后,在MLC NAND闪存存储器中,两页中的存储单元的电压阈值分布。x轴是对应于电压水平的电压代码轴。y轴对应于该页中的单元的概率分布。系列1示出在30000个编程擦除周期水平下的块的页4。系列2示出在30000个编程擦除周期水平下的块的页254。在一个实施例中,相同的随机数据模式已经被写入到页4和页254。在另一个实施例中,不同的随机数据模式已经被写入到页4和页254。
正如从系列1和系列2所看到的,系列2的峰值显示出比系列1的峰值更宽且更短,这指示了页254展示出比页4低的质量和水平的可靠性或耐久性。因此,一些页在其他页之前可以有利地被包括在不可靠存储器单位列表134中,这是由于一些页可能展示出比其他页低的质量和水平的可靠性或耐久性。例如,物理上位于更靠近块的末端的页可能展示出比同一块中的其他页低的质量和水平的可靠性或耐久性,如图6所示。
其他变体
本领域技术人员应当明白,在某些实施例中,其他途径和方法可以用于存储和管理非易失性存储器阵列150的不可靠存储器单位列表134。进一步地,除了超出不可靠存储器单位的阈值数量的其他事件可以用于确定何时将块包括在不可靠块列表136中。例如,块可以在块中有擦除错误或明显大量确定的不可靠存储器单位后,在特定时间内被包括。还可以使用附加的系统部件,并且公开的系统部件可以被组合或省略。例如,主机系统110可以被配置为存储不可靠存储器单位列表134的复本,或使不可靠存储器单位列表134从易失性存储器复制到非易失性存储器。此外,在公开的过程(例如在图2和图3中示出的过程)中采用的实际步骤可以不同于图中所示出的那些。根据所述实施例,上述步骤中的某些步骤可以被删除,可以添加其他步骤。因此,本公开的范围意在仅由随附的权利要求限定。
虽然已经描述了特定实施例,但是这些实施例仅通过示例的方式呈现,并且无意限制保护范围。实际上,本文描述的新颖方法和系统可以以多种其他形式体现。而且,在不偏离保护精神的情况下,可以在本文所述的方法和系统的形式中进行省略、替换和变化。随附的权利要求及其等价物意在覆盖落入保护范围和精神内的这类形式或修改。例如,本文公开的系统和方法可以被应用到硬盘驱动器、混合硬盘驱动器等。此外,可以附加地或替换地使用其他形式的存储(例如,DRAM或SRAM,电池备份易失性DRAM或SRAM器件,EPROM,EEPROM存储器等)。作为另一个示例,在图中示出的各个部件可以被实现为处理器、ASIC/FPGA或专用硬件上的软件和/或固件。同样,上述具体实施例的特征和属性可以以各种方式组合,以形成其他实施例,所有这些实施例落入本公开的范围内。虽然本公开提供某些优选的实施例和应用,但是对于本领域技术人员显而易见的其他实施例,包括不提供在本文阐述的全部特征和优势的实施例,也在本公开的范围内。因此,本公开的范围仅由随附的权利要求限定。
Claims (20)
1.一种数据存储系统,其包括:
非易失性存储器阵列;以及
控制器,其被配置为:
执行针对所述非易失性存储器阵列的存储器单位的存储器访问操作,所述存储器单位具有比存储器块少的存储器位置,其中所述存储器块是作为单位可被擦除的最小数量的存储器位置;
检测指示执行所述存储器访问操作失败的存储器错误;以及
响应于检测到指示执行所述存储器访问操作失败的存储器错误;
将对应于所述存储器单位的条目添加到不可靠存储器单位列表,所述不可靠存储器单位列表包括对应于被标注为不可靠的存储器单位的多个条目,
由此以比所述非易失性存储器阵列可被擦除的最小粒度水平
更细的粒度水平跟踪不可靠存储器,
其中在已经确定所述块包括不可靠存储器单位后,通过允许存储器访问操作被引导到存储器块中的一些可靠存储器单位,以此延长所述数据存储系统的操作寿命。
2.根据权利要求1所述的数据存储系统,其中存储器块包括多个页,并且其中所述不可靠存储器单位列表中的每个条目对应于存储器的多个页、存储器的一个页或存储器的部分页。
3.根据权利要求2所述的数据存储系统,其中存储器的部分页的大小与纠错码处理的粒度匹配。
4.根据权利要求1所述的数据存储系统,其中所述不可靠存储器单位列表包括表格,并且所述表格中的每个条目对应于被标注为可靠或不可靠的存储器单位。
5.根据权利要求1所述的数据存储系统,其中所述不可靠存储器单位列表包括列表,并且所述列表中的每个条目对应于被标注为可靠或不可靠的存储器单位。
6.根据权利要求1所述的数据存储系统,其中所述存储器访问操作包括编程操作或读取操作。
7.根据权利要求1所述的数据存储系统,其中响应于检测到指示执行所述存储器访问操作失败的存储器错误,所述控制器进一步被配置为:
利用所述不可靠存储器单位列表,确定对应于所述存储器单位的存储器块内被标注为不可靠的存储器单位的总数;以及
响应于确定所述总数超出阈值,将对应于所述存储器块的条目添加到不可靠块列表。
8.根据权利要求1所述的数据存储系统,其中所述控制器进一步被配置为:
在易失性存储器中存储所述不可靠存储器单位列表;以及
将所述不可靠存储器单位列表从所述易失性存储器周期性地复制到所述非易失性存储器阵列。
9.在包括控制器和非易失性存储器阵列的数据存储系统中,用于管理不可靠存储器单位的方法,所述方法包括:
执行针对所述非易失性存储器阵列的存储器单位的存储器访问操作,所述存储器单位具有比存储器块少的存储器位置,其中存储器块是作为单位可被擦除的最小数量的存储器位置;
检测指示执行所述存储器访问操作失败的存储器错误;以及
响应于检测到指示执行所述存储器访问操作失败的存储器错误;
将对应于所述存储器单位的条目添加到不可靠存储器单位列表,所述不可靠存储器单位列表包括对应于被标注为不可靠的存储器单位的多个条目,
由此以比所述非易失性存储器阵列可被擦除的最小粒度水平更细的粒度水平跟踪不可靠存储器。
10.根据权利要求9所述的方法,其中存储器块包括多个页,并且其中所述不可靠存储器单位列表中的每个条目对应于存储器的多个页、存储器的一个页或存储器的部分页。
11.根据权利要求10所述的方法,其中存储器的部分页的大小与纠错码处理的粒度匹配。
12.根据权利要求9所述的方法,其中所述不可靠存储器单位列表包括表格,并且所述表格中的每个条目对应于被标注为可靠或不可靠的存储器单位。
13.根据权利要求9所述的方法,其中所述不可靠存储器单位列表包括列表,并且所述列表中的每个条目对应于被标注为可靠或不可靠的存储器单位。
14.根据权利要求9所述的方法,其中所述存储器访问操作包括编程操作或读取操作。
15.根据权利要求9所述的方法,进一步包括响应于检测到指示执行所述存储器访问操作失败的存储器错误:
利用所述不可靠存储器单位列表,确定对应于所述存储器单位的存储器块内被标注为不可靠的存储器单位的总数;以及
响应于确定所述总数超出阈值,将对应于所述存储器块的条目添加到不可靠块列表。
16.根据权利要求9所述的方法,其中所述不可靠存储器单位列表被存储在易失性存储器中,并且从所述易失性存储器被周期性地复制到所述非易失性存储器阵列。
17.在包括控制器和非易失性存储器阵列的数据存储系统中,用于存储数据的方法,所述方法包括:
接收编程操作,所述编程操作与所述非易失性存储器阵列的第一存储器单位和要被编程的数据关联,其中所述第一存储器单位具有比作为单位可被擦除的最小数量的存储器位置少的存储器位置;
为了编程,选择包含所述第一存储器单位的第一存储器块;
确定不可靠存储器单位列表是否包括指示所述第一存储器单位是不可靠的条目;以及
响应于确定所述不可靠存储器单位列表包括所述条目:
从所述第一存储器块选择在所述不可靠存储器单位列表上不具有关联的条目的第二存储器单位;以及
在所述第二存储器单位中存储所述数据,
其中所述方法在所述控制器的控制下执行。
18.根据权利要求17所述的方法,进一步包括,在确定所述不可靠存储器单位列表是否包括指示所述第一存储器单位是不可靠的条目之前:
确定不可靠块列表是否包括指示所述第一存储器块是不可靠的条目;以及
响应于确定所述不可靠块列表包括所述条目:
选择在不可靠块列表上不具有关联的条目的第二存储器块;以及
使用所述第二存储器块的第三存储器单位替换所述第一存储器单位。
19.一种数据存储系统,其包括:
非易失性存储器阵列;以及
控制器,所述控制器被配置为:
接收编程操作,所述编程操作与所述非易失性存储器阵列的第一存储器单位和要被编程的数据关联,其中所述第一存储器单位具有比作为单位可被擦除的最小数量的存储器位置少的存储器位置;
为了编程,选择包含所述第一存储器单位的第一存储器块;
确定不可靠存储器单位列表是否包括指示所述第一存储器单位是不可靠的条目;以及
响应于确定所述不可靠存储器单位列表包括所述条目:
从所述第一存储器块选择在所述不可靠存储器单位列表上不具有关联的条目的第二存储器单位;以及
在所述第二存储器单位中存储所述数据。
20.根据权利要求19所述的数据存储系统,其中所述控制器进一步被配置为:
确定不可靠块列表是否包括指示所述第一存储器块是不可靠的条目;以及
响应于确定所述不可靠块列表包括所述条目:
选择在所述不可靠块列表上不具有关联的条目的第二存储器块;以及
使用所述第二存储器块的第三存储器单位替换所述第一存储器单位。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/455,491 US9003224B2 (en) | 2012-04-25 | 2012-04-25 | Managing unreliable memory in data storage systems |
US13/455,491 | 2012-04-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103377010A true CN103377010A (zh) | 2013-10-30 |
CN103377010B CN103377010B (zh) | 2018-02-06 |
Family
ID=49462184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310142775.8A Active CN103377010B (zh) | 2012-04-25 | 2013-04-23 | 管理数据存储系统中的不可靠存储器的系统和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9003224B2 (zh) |
CN (1) | CN103377010B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108376120A (zh) * | 2017-01-31 | 2018-08-07 | 桑迪士克科技有限责任公司 | 用于管理在非易失性存储器系统中写入块的系统和方法 |
CN109460371A (zh) * | 2018-11-06 | 2019-03-12 | 湖南国科微电子股份有限公司 | 一种固态硬盘数据块错误处理方法 |
CN112885402A (zh) * | 2020-12-29 | 2021-06-01 | 北京浪潮数据技术有限公司 | 固态硬盘坏块查询方法、装置及计算机可读存储介质 |
Families Citing this family (128)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9176859B2 (en) | 2009-01-07 | 2015-11-03 | Siliconsystems, Inc. | Systems and methods for improving the performance of non-volatile memory operations |
US10079048B2 (en) | 2009-03-24 | 2018-09-18 | Western Digital Technologies, Inc. | Adjusting access of non-volatile semiconductor memory based on access time |
US9753847B2 (en) | 2009-10-27 | 2017-09-05 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping |
US8782327B1 (en) | 2010-05-11 | 2014-07-15 | Western Digital Technologies, Inc. | System and method for managing execution of internal commands and host commands in a solid-state memory |
US9026716B2 (en) | 2010-05-12 | 2015-05-05 | Western Digital Technologies, Inc. | System and method for managing garbage collection in solid-state memory |
US8959284B1 (en) | 2010-06-28 | 2015-02-17 | Western Digital Technologies, Inc. | Disk drive steering write data to write cache based on workload |
US9058280B1 (en) | 2010-08-13 | 2015-06-16 | Western Digital Technologies, Inc. | Hybrid drive migrating data from disk to non-volatile semiconductor memory based on accumulated access time |
US8769190B1 (en) | 2010-09-15 | 2014-07-01 | Western Digital Technologies, Inc. | System and method for reducing contentions in solid-state memory access |
US8788779B1 (en) | 2010-09-17 | 2014-07-22 | Western Digital Technologies, Inc. | Non-volatile storage subsystem with energy-based performance throttling |
US9021192B1 (en) | 2010-09-21 | 2015-04-28 | Western Digital Technologies, Inc. | System and method for enhancing processing of memory access requests |
US9164886B1 (en) | 2010-09-21 | 2015-10-20 | Western Digital Technologies, Inc. | System and method for multistage processing in a memory storage subsystem |
US9069475B1 (en) | 2010-10-26 | 2015-06-30 | Western Digital Technologies, Inc. | Hybrid drive selectively spinning up disk when powered on |
US8700950B1 (en) | 2011-02-11 | 2014-04-15 | Western Digital Technologies, Inc. | System and method for data error recovery in a solid state subsystem |
US8700951B1 (en) | 2011-03-09 | 2014-04-15 | Western Digital Technologies, Inc. | System and method for improving a data redundancy scheme in a solid state subsystem with additional metadata |
US9361044B2 (en) | 2011-03-28 | 2016-06-07 | Western Digital Technologies, Inc. | Power-safe data management system |
US8898373B1 (en) | 2011-06-29 | 2014-11-25 | Western Digital Technologies, Inc. | System and method for improving wear-leveling performance in solid-state memory |
US8713357B1 (en) | 2011-09-06 | 2014-04-29 | Western Digital Technologies, Inc. | Systems and methods for detailed error reporting in data storage systems |
US9195530B1 (en) | 2011-09-06 | 2015-11-24 | Western Digital Technologies, Inc. | Systems and methods for improved data management in data storage systems |
US8700834B2 (en) | 2011-09-06 | 2014-04-15 | Western Digital Technologies, Inc. | Systems and methods for an enhanced controller architecture in data storage systems |
US8707104B1 (en) | 2011-09-06 | 2014-04-22 | Western Digital Technologies, Inc. | Systems and methods for error injection in data storage systems |
US8977804B1 (en) | 2011-11-21 | 2015-03-10 | Western Digital Technologies, Inc. | Varying data redundancy in storage systems |
US9268701B1 (en) | 2011-11-21 | 2016-02-23 | Western Digital Technologies, Inc. | Caching of data in data storage systems by managing the size of read and write cache based on a measurement of cache reliability |
US8959416B1 (en) | 2011-12-16 | 2015-02-17 | Western Digital Technologies, Inc. | Memory defect management using signature identification |
US9348741B1 (en) | 2011-12-19 | 2016-05-24 | Western Digital Technologies, Inc. | Systems and methods for handling write data access requests in data storage devices |
US9256526B2 (en) * | 2012-02-23 | 2016-02-09 | National Taiwan University | Flash memory storage system and access method |
US9053008B1 (en) | 2012-03-26 | 2015-06-09 | Western Digital Technologies, Inc. | Systems and methods for providing inline parameter service in data storage devices |
US8966205B1 (en) | 2012-05-10 | 2015-02-24 | Western Digital Technologies, Inc. | System data management using garbage collection and hybrid self mapping |
US8984247B1 (en) | 2012-05-10 | 2015-03-17 | Western Digital Technologies, Inc. | Storing and reconstructing mapping table data in a data storage system |
US9977612B1 (en) | 2012-05-11 | 2018-05-22 | Western Digital Technologies, Inc. | System data management using garbage collection and logs |
US9170932B1 (en) | 2012-05-22 | 2015-10-27 | Western Digital Technologies, Inc. | System data storage mechanism providing coherency and segmented data loading |
US8924832B1 (en) | 2012-06-26 | 2014-12-30 | Western Digital Technologies, Inc. | Efficient error handling mechanisms in data storage systems |
US8954653B1 (en) | 2012-06-26 | 2015-02-10 | Western Digital Technologies, Inc. | Mechanisms for efficient management of system data in data storage systems |
US8966343B2 (en) | 2012-08-21 | 2015-02-24 | Western Digital Technologies, Inc. | Solid-state drive retention monitor using reference blocks |
WO2014051550A1 (en) * | 2012-09-25 | 2014-04-03 | Hewlett-Packard Development Company, L.P. | Notification of address range including non-correctable error |
US9047171B2 (en) * | 2012-09-29 | 2015-06-02 | Intel Corporation | Differentiating cache reliability to reduce minimum on-die voltage |
US9507523B1 (en) | 2012-10-12 | 2016-11-29 | Western Digital Technologies, Inc. | Methods, devices and systems for variable size logical page management in a solid state drive |
US9489296B1 (en) | 2012-10-17 | 2016-11-08 | Western Digital Technologies, Inc. | Methods, devices and systems for hardware-based garbage collection in solid state drives |
US8972826B2 (en) | 2012-10-24 | 2015-03-03 | Western Digital Technologies, Inc. | Adaptive error correction codes for data storage systems |
US9177638B2 (en) | 2012-11-13 | 2015-11-03 | Western Digital Technologies, Inc. | Methods and devices for avoiding lower page corruption in data storage devices |
US8954694B2 (en) | 2012-11-15 | 2015-02-10 | Western Digital Technologies, Inc. | Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive |
US9021339B2 (en) | 2012-11-29 | 2015-04-28 | Western Digital Technologies, Inc. | Data reliability schemes for data storage systems |
US9059736B2 (en) | 2012-12-03 | 2015-06-16 | Western Digital Technologies, Inc. | Methods, solid state drive controllers and data storage devices having a runtime variable raid protection scheme |
US9032271B2 (en) | 2012-12-07 | 2015-05-12 | Western Digital Technologies, Inc. | System and method for lower page data recovery in a solid state drive |
US9122625B1 (en) | 2012-12-18 | 2015-09-01 | Western Digital Technologies, Inc. | Error correcting code encoder supporting multiple code rates and throughput speeds for data storage systems |
US8966339B1 (en) | 2012-12-18 | 2015-02-24 | Western Digital Technologies, Inc. | Decoder supporting multiple code rates and code lengths for data storage systems |
US9619317B1 (en) | 2012-12-18 | 2017-04-11 | Western Digital Technologies, Inc. | Decoder having early decoding termination detection |
US9214963B1 (en) | 2012-12-21 | 2015-12-15 | Western Digital Technologies, Inc. | Method and system for monitoring data channel to enable use of dynamically adjustable LDPC coding parameters in a data storage system |
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 |
US8972655B2 (en) | 2013-01-21 | 2015-03-03 | Western Digital Technolgies, Inc. | Initialization of a storage device |
US9274966B1 (en) | 2013-02-20 | 2016-03-01 | Western Digital Technologies, Inc. | Dynamically throttling host commands to disk drives |
US9454474B2 (en) | 2013-03-05 | 2016-09-27 | Western Digital Technologies, Inc. | Methods, devices and systems for two stage power-on map rebuild with free space accounting in a solid state drive |
US9641378B1 (en) | 2013-03-12 | 2017-05-02 | Western Digital Technologies, Inc. | Adjustment of compression ratios for data storage |
US8924824B1 (en) | 2013-03-12 | 2014-12-30 | Western Digital Technologies, Inc. | Soft-decision input generation for data storage systems |
US9280472B1 (en) | 2013-03-13 | 2016-03-08 | Western Digital Technologies, Inc. | Caching data in a high performance zone of a data storage system |
US8990668B2 (en) | 2013-03-14 | 2015-03-24 | Western Digital Technologies, Inc. | Decoding data stored in solid-state memory |
US9335950B2 (en) | 2013-03-15 | 2016-05-10 | Western Digital Technologies, Inc. | Multiple stream compression and formatting of data for data storage systems |
US9218279B2 (en) | 2013-03-15 | 2015-12-22 | Western Digital Technologies, Inc. | Atomic write command support in a solid state drive |
US9448738B2 (en) | 2013-03-15 | 2016-09-20 | Western Digital Technologies, Inc. | Compression and formatting of data for data storage systems |
US9059742B1 (en) | 2013-03-15 | 2015-06-16 | Western Digital Technologies, Inc. | System and method for dynamic scaling of LDPC decoder in a solid state drive |
US9013920B2 (en) | 2013-04-03 | 2015-04-21 | Western Digital Technologies, Inc. | Systems and methods of write precompensation to extend life of a solid-state memory |
US9123686B2 (en) | 2013-04-12 | 2015-09-01 | Western Digital Technologies, Inc. | Thermal management for solid-state drive |
US9338927B2 (en) | 2013-05-02 | 2016-05-10 | Western Digital Technologies, Inc. | Thermal interface material pad and method of forming the same |
US9195293B1 (en) | 2013-05-03 | 2015-11-24 | Western Digital Technologies, Inc. | User controlled data storage device power and performance settings |
US10417123B1 (en) | 2013-05-16 | 2019-09-17 | Western Digital Technologies, Inc. | Systems and methods for improving garbage collection and wear leveling performance in data storage systems |
US9081700B2 (en) | 2013-05-16 | 2015-07-14 | Western Digital Technologies, Inc. | High performance read-modify-write system providing line-rate merging of dataframe segments in hardware |
US9170938B1 (en) | 2013-05-17 | 2015-10-27 | Western Digital Technologies, Inc. | Method and system for atomically writing scattered information in a solid state storage device |
US9280200B1 (en) | 2013-05-20 | 2016-03-08 | Western Digital Technologies, Inc. | Automatic peak current throttle of tiered storage elements |
US9740248B2 (en) | 2013-06-07 | 2017-08-22 | Western Digital Technologies, Inc. | Component placement within a solid state drive |
US9274978B2 (en) | 2013-06-10 | 2016-03-01 | Western Digital Technologies, Inc. | Migration of encrypted data for data storage systems |
US9436630B2 (en) | 2013-06-11 | 2016-09-06 | Western Digital Technologies, Inc. | Using dual phys to support multiple PCIe link widths |
US9830257B1 (en) | 2013-06-12 | 2017-11-28 | Western Digital Technologies, Inc. | Fast saving of data during power interruption in data storage systems |
US9665501B1 (en) | 2013-06-18 | 2017-05-30 | Western Digital Technologies, Inc. | Self-encrypting data storage device supporting object-level encryption |
US9304560B2 (en) | 2013-06-19 | 2016-04-05 | Western Digital Technologies, Inc. | Backup power for reducing host current transients |
US9208101B2 (en) | 2013-06-26 | 2015-12-08 | Western Digital Technologies, Inc. | Virtual NAND capacity extension in a hybrid drive |
US9583153B1 (en) | 2013-06-28 | 2017-02-28 | Western Digital Technologies, Inc. | Memory card placement within a solid state drive |
US9042197B2 (en) | 2013-07-23 | 2015-05-26 | Western Digital Technologies, Inc. | Power fail protection and recovery using low power states in a data storage device/system |
US9141176B1 (en) | 2013-07-29 | 2015-09-22 | Western Digital Technologies, Inc. | Power management for data storage device |
US9070379B2 (en) | 2013-08-28 | 2015-06-30 | Western Digital Technologies, Inc. | Data migration for data storage device |
US9442668B1 (en) | 2013-08-29 | 2016-09-13 | Western Digital Technologies, Inc. | Adaptive power management control with performance feedback |
US9263136B1 (en) | 2013-09-04 | 2016-02-16 | Western Digital Technologies, Inc. | Data retention flags in solid-state drives |
US9304709B2 (en) | 2013-09-06 | 2016-04-05 | Western Digital Technologies, Inc. | High performance system providing selective merging of dataframe segments in hardware |
US9330143B2 (en) | 2013-10-24 | 2016-05-03 | Western Digital Technologies, Inc. | Data storage device supporting accelerated database operations |
US9007841B1 (en) | 2013-10-24 | 2015-04-14 | Western Digital Technologies, Inc. | Programming scheme for improved voltage distribution in solid-state memory |
US10444998B1 (en) | 2013-10-24 | 2019-10-15 | Western Digital Technologies, Inc. | Data storage device providing data maintenance services |
US8917471B1 (en) | 2013-10-29 | 2014-12-23 | Western Digital Technologies, Inc. | Power management for data storage device |
US9323467B2 (en) | 2013-10-29 | 2016-04-26 | Western Digital Technologies, Inc. | Data storage device startup |
US9286176B1 (en) | 2013-11-08 | 2016-03-15 | Western Digital Technologies, Inc. | Selective skipping of blocks in an SSD |
US9270296B1 (en) | 2013-11-13 | 2016-02-23 | Western Digital Technologies, Inc. | Method and system for soft decoding through single read |
US9529710B1 (en) | 2013-12-06 | 2016-12-27 | Western Digital Technologies, Inc. | Interleaved channels in a solid-state drive |
US9007854B1 (en) | 2013-12-09 | 2015-04-14 | Western Digital Technologies, Inc. | Method and system for optimized soft decoding in a data storage device |
US10140067B1 (en) | 2013-12-19 | 2018-11-27 | Western Digital Technologies, Inc. | Data management for data storage device with multiple types of non-volatile memory media |
US9036283B1 (en) | 2014-01-22 | 2015-05-19 | Western Digital Technologies, Inc. | Data storage device with selective write to a first storage media or a second storage media |
US9337864B1 (en) | 2014-01-29 | 2016-05-10 | Western Digital Technologies, Inc. | Non-binary LDPC decoder using binary subgroup processing |
US9250994B1 (en) | 2014-02-05 | 2016-02-02 | Western Digital Technologies, Inc. | Non-binary low-density parity check (LDPC) decoding using trellis maximization |
US9384088B1 (en) | 2014-02-24 | 2016-07-05 | Western Digital Technologies, Inc. | Double writing map table entries in a data storage system to guard against silent corruption |
US9354955B1 (en) | 2014-03-19 | 2016-05-31 | Western Digital Technologies, Inc. | Partial garbage collection for fast error handling and optimized garbage collection for the invisible band |
US9268487B2 (en) | 2014-03-24 | 2016-02-23 | Western Digital Technologies, Inc. | Method and apparatus for restricting writes to solid state memory when an end-of life condition is reached |
US9348520B2 (en) | 2014-03-24 | 2016-05-24 | Western Digital Technologies, Inc. | Lifetime extension of non-volatile semiconductor memory for data storage device |
US9448742B2 (en) | 2014-03-27 | 2016-09-20 | Western Digital Technologies, Inc. | Communication between a host and a secondary storage device |
US9323607B2 (en) * | 2014-04-29 | 2016-04-26 | Seagate Technology Llc | Data recovery once ECC fails to correct the data |
US9564212B2 (en) | 2014-05-06 | 2017-02-07 | Western Digital Technologies, Inc. | Solid-state memory corruption mitigation |
US9690696B1 (en) | 2014-05-14 | 2017-06-27 | Western Digital Technologies, Inc. | Lifetime extension of memory for data storage system |
US9472222B2 (en) | 2014-05-16 | 2016-10-18 | Western Digital Technologies, Inc. | Vibration mitigation for a data storage device |
US9275741B1 (en) | 2014-09-10 | 2016-03-01 | Western Digital Technologies, Inc. | Temperature compensation management in solid-state memory |
US9418699B1 (en) | 2014-10-09 | 2016-08-16 | Western Digital Technologies, Inc. | Management of sequentially written data |
US9405356B1 (en) | 2014-10-21 | 2016-08-02 | Western Digital Technologies, Inc. | Temperature compensation in data storage device |
CN104461379A (zh) * | 2014-10-31 | 2015-03-25 | 上海华为技术有限公司 | 提高nand闪存的稳定性的方法和nand闪存 |
US9823859B2 (en) | 2014-11-06 | 2017-11-21 | Western Digital Technologies, Inc. | Mechanical shock mitigation for data storage |
US9857995B1 (en) | 2015-03-09 | 2018-01-02 | Western Digital Technologies, Inc. | Data storage device and method providing non-volatile memory buffer for real-time primary non-volatile memory protection |
US9785563B1 (en) | 2015-08-13 | 2017-10-10 | Western Digital Technologies, Inc. | Read command processing for data storage system based on previous writes |
US9668337B2 (en) | 2015-09-08 | 2017-05-30 | Western Digital Technologies, Inc. | Temperature management in data storage devices |
US9727261B2 (en) | 2015-09-24 | 2017-08-08 | Western Digital Technologies, Inc. | Weighted programming patterns in solid-state data storage systems |
US9836232B1 (en) | 2015-09-30 | 2017-12-05 | Western Digital Technologies, Inc. | Data storage device and method for using secondary non-volatile memory for temporary metadata storage |
US10013174B2 (en) | 2015-09-30 | 2018-07-03 | Western Digital Technologies, Inc. | Mapping system selection for data storage device |
US9620226B1 (en) | 2015-10-30 | 2017-04-11 | Western Digital Technologies, Inc. | Data retention charge loss and read disturb compensation in solid-state data storage systems |
US10126981B1 (en) | 2015-12-14 | 2018-11-13 | Western Digital Technologies, Inc. | Tiered storage using storage class memory |
US10387303B2 (en) | 2016-08-16 | 2019-08-20 | Western Digital Technologies, Inc. | Non-volatile storage system with compute engine to accelerate big data applications |
US10459644B2 (en) | 2016-10-28 | 2019-10-29 | Western Digital Techologies, Inc. | Non-volatile storage system with integrated compute engine and optimized use of local fast memory |
US10355712B2 (en) | 2017-03-31 | 2019-07-16 | Sandisk Technologies Llc | Use of multiple codebooks for programming data in different memory areas of a storage device |
US10236909B2 (en) | 2017-03-31 | 2019-03-19 | Sandisk Technologies Llc | Bit-order modification for different memory areas of a storage device |
US10230395B2 (en) | 2017-03-31 | 2019-03-12 | Sandisk Technologies Llc | Determining codebooks for different memory areas of a storage device |
US10565123B2 (en) | 2017-04-10 | 2020-02-18 | Western Digital Technologies, Inc. | Hybrid logical to physical address translation for non-volatile storage devices with integrated compute module |
US10769062B2 (en) | 2018-10-01 | 2020-09-08 | Western Digital Technologies, Inc. | Fine granularity translation layer for data storage devices |
US10956071B2 (en) | 2018-10-01 | 2021-03-23 | Western Digital Technologies, Inc. | Container key value store for data storage devices |
US10740231B2 (en) | 2018-11-20 | 2020-08-11 | Western Digital Technologies, Inc. | Data access in data storage device including storage class memory |
US11016905B1 (en) | 2019-11-13 | 2021-05-25 | Western Digital Technologies, Inc. | Storage class memory access |
US11249921B2 (en) | 2020-05-06 | 2022-02-15 | Western Digital Technologies, Inc. | Page modification encoding and caching |
US11314583B2 (en) * | 2020-08-18 | 2022-04-26 | Micron Technology, Inc. | Memory data correction using multiple error control operations |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102043725A (zh) * | 2009-10-20 | 2011-05-04 | 群联电子股份有限公司 | 用于闪存的数据写入方法及其控制器与储存系统 |
US20110138103A1 (en) * | 2009-12-04 | 2011-06-09 | International Business Machines Corporation | Intra-block memory wear leveling |
CN102298543A (zh) * | 2011-09-15 | 2011-12-28 | 成都市华为赛门铁克科技有限公司 | 一种存储器管理方法和装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3214444B2 (ja) * | 1998-05-19 | 2001-10-02 | 日本電気株式会社 | 磁気ディスク装置の制御方法と制御装置 |
US7734949B2 (en) * | 2006-03-30 | 2010-06-08 | Alcatel Lucent | Information error recovery apparatus and methods |
US20080010566A1 (en) * | 2006-06-21 | 2008-01-10 | Chang Tsung-Yung Jonathan | Disabling portions of memory with non-deterministic errors |
US8272044B2 (en) * | 2007-05-25 | 2012-09-18 | New Jersey Institute Of Technology | Method and system to mitigate low rate denial of service (DoS) attacks |
WO2009095902A2 (en) * | 2008-01-31 | 2009-08-06 | Densbits Technologies Ltd. | Systems and methods for handling immediate data errors in flash memory |
US8341335B2 (en) * | 2007-12-05 | 2012-12-25 | Densbits Technologies Ltd. | Flash memory apparatus with a heating system for temporarily retired memory portions |
US8843691B2 (en) | 2008-06-25 | 2014-09-23 | Stec, Inc. | Prioritized erasure of data blocks in a flash storage device |
US8412880B2 (en) | 2009-01-08 | 2013-04-02 | Micron Technology, Inc. | Memory system controller to manage wear leveling across a plurality of storage nodes |
US8189379B2 (en) * | 2009-08-12 | 2012-05-29 | Texas Memory Systems, Inc. | Reduction of read disturb errors in NAND FLASH memory |
KR20110024832A (ko) * | 2009-09-03 | 2011-03-09 | 주식회사 하이닉스반도체 | 데이터 머지 효율이 향상된 반도체 스토리지 시스템 및 그 제어 방법 |
US8479062B2 (en) * | 2010-12-03 | 2013-07-02 | International Business Machines Corporation | Program disturb error logging and correction for flash memory |
-
2012
- 2012-04-25 US US13/455,491 patent/US9003224B2/en active Active
-
2013
- 2013-04-23 CN CN201310142775.8A patent/CN103377010B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102043725A (zh) * | 2009-10-20 | 2011-05-04 | 群联电子股份有限公司 | 用于闪存的数据写入方法及其控制器与储存系统 |
US20110138103A1 (en) * | 2009-12-04 | 2011-06-09 | International Business Machines Corporation | Intra-block memory wear leveling |
CN102298543A (zh) * | 2011-09-15 | 2011-12-28 | 成都市华为赛门铁克科技有限公司 | 一种存储器管理方法和装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108376120A (zh) * | 2017-01-31 | 2018-08-07 | 桑迪士克科技有限责任公司 | 用于管理在非易失性存储器系统中写入块的系统和方法 |
CN109460371A (zh) * | 2018-11-06 | 2019-03-12 | 湖南国科微电子股份有限公司 | 一种固态硬盘数据块错误处理方法 |
CN112885402A (zh) * | 2020-12-29 | 2021-06-01 | 北京浪潮数据技术有限公司 | 固态硬盘坏块查询方法、装置及计算机可读存储介质 |
CN112885402B (zh) * | 2020-12-29 | 2023-12-22 | 北京浪潮数据技术有限公司 | 固态硬盘坏块查询方法、装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20130290793A1 (en) | 2013-10-31 |
US9003224B2 (en) | 2015-04-07 |
CN103377010B (zh) | 2018-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103377010A (zh) | 管理数据存储系统中的不可靠存储器 | |
KR102009003B1 (ko) | 다중 계층 메모리 구조에 에러 정정 코드(ecc) 데이터의 저장 | |
US11862263B2 (en) | Storage device and method of operating the same | |
US10102119B2 (en) | Garbage collection based on queued and/or selected write commands | |
US9753649B2 (en) | Tracking intermix of writes and un-map commands across power cycles | |
US8411519B2 (en) | Selective retirement of blocks | |
US8456938B2 (en) | Systems and methods for refreshing non-volatile memory | |
US9952939B1 (en) | System and method for lower page data recovery in a solid state drive | |
US11200162B2 (en) | Condensing logical to physical table pointers in SSDs utilizing zoned namespaces | |
US20190294345A1 (en) | Data-Retention Controller Using Mapping Tables in a Green Solid-State-Drive (GNSD) for Enhanced Flash Endurance | |
US9959071B2 (en) | Method and system for managing data in non-volatile memory | |
US9239757B2 (en) | Method and apparatus for relocating data in non-volatile memory | |
US20110093649A1 (en) | Method for managing a plurality of blocks of a flash memory, and associated memory device and controller thereof | |
US20210240395A1 (en) | Determination of data integrity based on sentinel cells | |
US11360885B2 (en) | Wear leveling based on sub-group write counts in a memory sub-system | |
US11334256B2 (en) | Storage system and method for boundary wordline data retention handling | |
US11573893B2 (en) | Storage system and method for validation of hints prior to garbage collection | |
US11789861B2 (en) | Wear leveling based on sub-group write counts in a memory sub-system | |
US20210406169A1 (en) | Self-adaptive wear leveling method and algorithm | |
CN116450030A (zh) | 媒体管理 | |
CN117642726A (zh) | 用于防止在非正常关机期间发生数据丢失的数据存储设备和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1186537 Country of ref document: HK |
|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1186537 Country of ref document: HK |