CN103377010A - 管理数据存储系统中的不可靠存储器 - Google Patents

管理数据存储系统中的不可靠存储器 Download PDF

Info

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
Application number
CN2013101427758A
Other languages
English (en)
Other versions
CN103377010B (zh
Inventor
J·布思
M-M·L·苏
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 CN103377010A publication Critical patent/CN103377010A/zh
Application granted granted Critical
Publication of CN103377010B publication Critical patent/CN103377010B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/80Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
    • G11C29/816Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for an application-specific layout
    • G11C29/82Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for an application-specific layout for EEPROMs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding 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字节值编码,如下面所示。
Figure BDA00003088455800061
第一字节(即,字节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所述的数据存储系统,其中所述控制器进一步被配置为:
确定不可靠块列表是否包括指示所述第一存储器块是不可靠的条目;以及
响应于确定所述不可靠块列表包括所述条目:
选择在所述不可靠块列表上不具有关联的条目的第二存储器块;以及
使用所述第二存储器块的第三存储器单位替换所述第一存储器单位。
CN201310142775.8A 2012-04-25 2013-04-23 管理数据存储系统中的不可靠存储器的系统和方法 Active CN103377010B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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