CN105009087A - 用于数据存储系统的数据可靠性方案 - Google Patents

用于数据存储系统的数据可靠性方案 Download PDF

Info

Publication number
CN105009087A
CN105009087A CN201380071730.4A CN201380071730A CN105009087A CN 105009087 A CN105009087 A CN 105009087A CN 201380071730 A CN201380071730 A CN 201380071730A CN 105009087 A CN105009087 A CN 105009087A
Authority
CN
China
Prior art keywords
data
page
unit
group
parity
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
CN201380071730.4A
Other languages
English (en)
Other versions
CN105009087B (zh
Inventor
G·陆
L·何
R·丹尼尔克
R·N·马伦多尔
J·琼斯
A·J·汤姆林
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
Skyera LLC
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, Skyera LLC filed Critical Western Digital Technologies Inc
Publication of CN105009087A publication Critical patent/CN105009087A/zh
Application granted granted Critical
Publication of CN105009087B publication Critical patent/CN105009087B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

公开了一种被配置为实现数据可靠性方案的数据存储系统。在一个实施例中,当从一组页读取数据单位时,数据存储系统控制器使用页内奇偶来检测不可校正的误差。当检测到不可校正的误差时,数据存储系统控制器尝试在不使用来自该组页的每个页的所有数据的情况下使用页间奇偶来恢复用户数据。从而可在不读取来自每个页的所有数据的情况下执行用户数据的恢复。作为结果,在一些情况下可减少读取数据所需的时间量,并且可增加总体数据存储系统性能。

Description

用于数据存储系统的数据可靠性方案
技术领域
该公开涉及用于计算机系统的数据存储系统,例如固态驱动器。更特别地,本公开涉及用于数据存储系统的数据可靠性方案。
背景技术
诸如硬盘和固态驱动器的许多数据存储部件具有制造商向客户提供的某些所宣扬的可靠性保证。例如,某些固态驱动器制造商保证10-16或10-17的驱动器故障率。为了增加数据可靠性,诸如RAID(独立磁盘冗余阵列)的数据冗余方案用于增加存储可靠性。可以通过将存储装置内的多个存储元件组合成组并且提供镜像和/或误差校验机制来提供冗余。例如,固态存储装置的各个存储器块可以被组合为其中存储有用户数据的条组(stripegroup)。
附图说明
现在将参照以下附图来描述体现本发明的各个特征的系统和方法,在附图中:
图1示出根据本发明的一个实施例的主机系统和实现数据可靠性方案的存储系统的组合。
图2是根据本发明的一个实施例的示出包括多个管芯的闪速页(F-页)的超级-页(S-页)的示图。
图3是根据本发明的另一实施例的示出包括多个管芯的F-页的S-页的示图。
图4是示出根据本发明的一个实施例的实现数据可靠性方案的过程的流程图。
图5是示出根据本发明的一个实施例的数据提取和恢复的过程的流程图。
图6是示出根据本发明的另一实施例的数据提取和恢复的过程的流程图。
具体实施方式
虽然描述了某些实施例,但是仅通过示例的方式呈现这些实施例,并且这些实施例不是要限制保护范围。确实,可以以各种其他形式来体现在此描述的新颖方法和系统。更进一步地,在不背离保护范围的情况下,可以做出在此描述的方法和系统的形式上的各种省略、替代和改变。
在一些实施例中,如在该公开中使用的对数据“编码”或“进行编码”指的是对数据进行编码的处理和/或对数据进行解码的处理。例如,可使用误差校正码来执行编码和/或解码。在一些实施例中,诸如闪速存储器的非易失性固态存储器阵列可被划分为诸如块、页等的物理数据单位。在一些实施例中,闪速存储器页(F-页)可与在单个操作中可被编程的(例如,原子地)或作为单位的、闪速存储器的最小单位对应。在一些实施例中,块可包括多个页,并且块可与在单个操作中可被擦除的(例如,原子地)或作为单位的、闪速存储器的最小单位对应。在一些实施例中,闪速存储器页可包括多个群组的存储器位置(例如,E-页)。
概况
所公开的数据可靠性方案可减少对存储在数据存储系统中的数据进行处理(例如,读取)并且当必要时执行数据恢复所需要的时间量。在本发明的一些实施例中,控制器被配置为针对存储在数据存储系统中的数据实现页间奇偶(inter page parity)(例如,RAID配置中的里德所罗门(Reed-Solomon)码)。页间奇偶包括针对用户数据的多个F-页(闪速页)而确定的或生成的奇偶数据。在一个实施例中,在一组F-页之中,被认为对于存储数据来说更可靠的(例如,具有最高质量的)F-页可被选择用于存储页间奇偶数据,而其他F-页可用于存储用户数据。此外,在处理之前控制器可填充用户数据,从而经编码的数据单位具有用于处理的相同尺寸。控制器可进一步使用与F-页的尺寸的粒度或诸如E-页(误差校正码页)的粒度的更精细粒度相匹配的粒度来管理页间奇偶,其中F-页包括多个这样更小的E-页。在一些实施例中,当使用比F-页尺寸更精细的粒度来管理页间奇偶时,在不使用来自冗余序列的每个F-页的所有用户和奇偶数据的情况下,在存储器发生故障时可恢复数据。
在本发明的一些实施例中,控制器被配置为针对数据存储系统中存储的数据实现页内奇偶和页间奇偶两者。页内奇偶和页间奇偶可使能针对所存储的数据的两个级别的保护。例如,在与对被存储在E-页中的数据进行读取或解码相关联的检测到的误差校验码(ECC)误差的情况下,F-页内页奇偶数据(例如,低密度奇偶校验码)提供初始冗余。F-页内奇偶数据最初可用于尝试对针对E-页的检测到的ECC误差进行校正,并且用于恢复被存储在E-页中的用户数据。如果控制器不能对检测到的ECC误差进行校正,则控制器可以使用F-页间奇偶数据来尝试针对E-页执行数据恢复。
在本发明的一些实施例中,控制器被配置为在返回数据读取误差之前用尽用于尝试对ECC误差进行校正的多个选项。例如,控制器可以使用经调整的电压阈值水平来执行E-页的重新读取,并且使用经调整的解码参数来对来自E-页的数据进行重新解码。此外,当针对E-页执行页间奇偶恢复时,控制器可以重新读取或重新解码其他E-页以尝试成功地恢复E-页的数据。
系统概况
图1示出根据本发明的一个实施例的主机系统110和实现数据可靠性方案的存储系统120的组合100。如所示出的那样,存储系统120(例如,混合硬驱动器、固态驱动器等)包括控制器130和一个或更多个非易失性存储器(NVM)阵列140。NVM阵列140可被包括在单个管芯或多个管芯上。控制器130包括误差校正模块132,误差校正模块132可实现并且维持针对存储系统120的一个或更多个数据冗余方案。例如,误差校正模块132可实现针对包括E-页的一组F-页的页间奇偶和页内奇偶。页间奇偶和页内奇偶可被维持在F-页和/或E-页粒度水平。进一步地,误差校正模块132可取决于用于存储数据的管芯的质量(例如,可靠性)来分配NVM管芯的页以供存储用户数据或页间奇偶数据使用。此外,当检测到不可校正的页内误差时,误差校正模块132可执行两阶段数据恢复方法。在第一阶段中,可执行存储器的页的多个页内重新读取或重新解码尝试。如果第一阶段在恢复所存储的数据方面是不成功的,则在第二阶段中,可执行页间重新恢复,页间重新恢复可以包括指向存储器的其他页的页内重新读取或重新解码尝试。
控制器130可从主机系统110的存储设备接口模块112(例如,装置驱动器)接收数据和/或存储访问命令。由存储设备接口模块112传送的存储访问命令可包括由主机系统110发出的写入和读取命令。命令可指定存储系统120中的逻辑块地址,并且控制器130可执行NVM阵列140中的接收到的命令。在一个实施例中,数据还可以被存储在一个或更多个磁介质存储模块(在图1中未示出)中。在一个实施例中,可包括其他类型的存储模块来替代NVM阵列140和/或磁介质存储模块,或除了NVM阵列140和/或磁介质存储模块还包括其他类型的存储模块。
存储系统120可存储从主机系统110接收到的数据,使得存储系统120可作为主机系统110的存储器存储设备。为了促成该功能,控制器130可实现逻辑接口。逻辑接口可向主机系统110呈现存储系统存储器作为可在其处存储数据的一组逻辑地址(例如,连续地址)。在内部,控制器130可将逻辑地址映射到非易失性存储器阵列140和/或其他存储器模块中的一个或更多个中的各个物理存储器地址。
可使用NAND闪速存储器装置来实现非易失性存储器阵列140中的一个或更多个。可替换地使用其他类型的固态存储器装置,例如,闪速集成电路阵列、硫化物RAM(C-RAM)、相变存储器(PC-RAM或PRAM)、可编程金属化单元RAM(PMC-RAM或PMCm)、双向统一存储器(OUM)、电阻RAM(RRAM)、NOR存储器、EEPROM,铁电存储器(FeRAM)、磁阻RAM(MRAM)、其他分立NVM(非易失性存储器)芯片、或其任意组合。在一个实施例中,非易失性存储器阵列140优选地包括多层单元(MLC)装置,该MLC装置具有能够存储多于单比特信息的多层单元,尽管可以使用单层单元(SLC)存储器装置或SLC和MLC的组合。
页间奇偶方案
图2是根据本发明的一个实施例的示出包括来自多个NVM阵列管芯的F-页的超级-页(S-页)200的示图。S-页200可有利地提供用于支持页间奇偶以及跨多个管芯的F-页存储数据的RAID方案。在其中一个或更多个管芯包括多个平面(例如,双平面管芯)的一些实施例中,F-页也可以跨那些管芯的多个平面展开。
在一个实施例中,S-页200包括来自被标识为管芯0到管芯127的128个NVM阵列管芯中的每个的一个F-页。每个管芯与存储器的管芯对应,并且包括多个存储块(未示出),并且每个块进一步包括多个F-页。S-页200可包括从一个或更多个管芯中和/或从一个或更多个管芯内的块选择的F-页。在一个实施例中,可基于管芯的F-页的物理位置或存储在固件中的选择来执行该选择。更进一步地,每个F-页包括用于管理S-页200的F-页的RAID序列的多个码字条,例如,码字条212。
尽管非易失性存储器阵列的管芯可以具有相同的物理尺寸,但是一些管芯可具有与其他管芯不同的、用于存储数据的存储器质量(例如,可靠性)。例如,由于存储器制造过程中的差异和/或由于使用而导致的磨损,导致特定管芯可能比其他管芯更好地适合于存储数据而没有读取或写入误差。作为结果,取决于管芯(F-页是其一部分)的质量,不同管芯的F-页可有利地存储不同量的用户和奇偶数据。
尽管在图2中未示出,但是每个F-页可被默认最小量的页内奇偶数据保护。当管芯被认为具有高质量时,可以几乎不使用超过该默认最小量的少量、或额外页内奇偶数据来保护在该管芯上的F-页上存储的数据。然而,在具有小于最佳质量的其他管芯中,它们的F-页可以使用一些额外量的页内奇偶数据。在图2中示出的示例中,F-页中的每个被示出为具有平坦部分214,并且对于一些F页,具有额外的点状部分216。点状部分216可标示用于存储超过默认最小的额外页内奇偶数据的部分。
在一些实施例中,具有用于存储数据的最高质量的一个或更多个管芯可被选择以存储用于S-页200的F-页间奇偶数据,而其他F-页可用于存储用户数据。例如,管芯2的F-页220和管芯4的F-页230已经被确定为具有S-页200的128个F-页的最高质量。由此,它们不需要具有超过默认最小的任何额外页内奇偶数据(因此,它们不具有点状部分216)。在一个实施例中,因为与其他F-页相比它们可容纳最大量的数据,所以F-页220和230用于存储页间奇偶数据(例如,RAID奇偶数据)。诸如F-页210和240的其他F-页,因为由于具有额外的页内奇偶数据而导致它们具有更少的存储区域,所以它们用于存储用户数据。在一些实施例中,可使用用于确定并且跟踪管芯和页的质量的任何适当的方法。例如,针对管芯和/或管芯的页,可跟踪数据误差的数量。作为另一示例,针对管芯的块的磨损水平指示符可被确定、跟踪、并且用于指示质量。作为又一示例,数据误差的数量、磨损水平指示符、和存储器质量的一个或更多个其他指示符可被组合为单个度量。
用于确定F-页间奇偶数据的编码器可以支持具有设定的数据量的F-页。为了使得这样的编码器能够支持尺寸为S-页200的多个F-页,在由编码器进行编码之前,可以利用多达最大F-页尺寸的填充数据来填充来自F-页的数据。例如,由于F-页220和230可以具有S-页200的F-页的相同的最大F-页尺寸,因而编码器可支持具有与F-页220和230相同数量的八位组数据的F-页。接着可利用填充数据216来填充S-页200的其他F-页(例如,F-页210和240)以包括与F-页220和230相同数量的八位组数据。填充数据216可包括全部零、全部一等的数据集合、或任何已知的或预先限定的数据模式。可指出,由于填充数据它自己不可以被写入到具有用户数据的F-页,因而填充数据216可以被表征为“虚拟填充”。此外,填充数据不可以用于生成页内奇偶数据。
图3是根据本发明的另一实施例的示出包括多个管芯的F-页的S-页300的示图。除了诸如填充数据312的所示出的填充数据被分配给F-页的个体E-页之外,图3的S-页300类似于图2的S-页200。有利地,在一些实施例中,因为填充数据被分配给个体E-页,所以可以在E-页水平上执行跨F-页的RAID恢复,而不使用来自S-页300的F-页的所有数据。从而,对于存在一个或两个E-页误差的某些情况,可以减少处理每个F-页并且针对E-页执行F-页间奇偶恢复的时间量。此外,由于缓冲器可被配置为一次处理一组E-页,因而不管F-页中的E-页的数量如何,都可使用统一的缓冲器。
S-页300包括来自被标识为管芯0到管芯127的128个管芯中的每个的一个F-页。每个管芯与存储器的管芯对应,并且包括多个存储块(未示出),并且每个块进一步包括多个F-页。S-页300的每个F-页包括四个E-页,尽管在其他实施例中,F-页可以包括比四个E-页更多或更少的E-页。在一些实施例中,管芯的E-页可具有与同一管芯的其他E-页相同的尺寸,但是基于管芯的存储器质量,从一个管芯到另一管芯,E-页的尺寸可以不同。每个E-页可以被诸如基于LDPC的奇偶数据的页内奇偶数据(未示出)保护。页内奇偶数据可以被存储在每个E-页的末端处或在每个F-页的末端处。再一次,与图2一样,图3未示出页内奇偶数据。基于除诸如填充数据312的填充数据外的E-页的数据,可确定用于诸如E-页310的一个E-页的页内奇偶数据。通过扩展,基于除任何填充数据外的该F-页内的所有E-页的数据,可以确定用于F-页的页内奇偶数据。以该方式,通过诸如在图3中示出的E-页条380的E-页条来对准E-页。在一个实施例中,E-页条包括多个码字条(之前在图2中示出)。
S-页300的E-页被示出具有诸如填充数据312的对应填充数据。在图3的示例中,填充数据包括全部为零的数据集合。基于E-页的质量,用于每个E-页的填充数据的量部分地取决于每个E-页的用户数据容量的量。填充数据的量可进一步被选择使得E页的总用户数据容量加上对应填充数据与用于存储F-页间奇偶数据的E-页330和350中的一个或更多个的尺寸相匹配。
S-页300的E-页的用户数据和对应填充数据可用于确定用于存储到管芯2和4的E页的对应F-页间奇偶数据。例如,除E-页330和350外的每个E-页0的用户数据和对应填充数据可由编码器来处理并且用于确定用于存储在E-页330和350中的对应奇偶数据。如果在S-页300的E-页的读取期间检测到不可校正的误差,则S-页300的对应E-页可用于尝试恢复数据。例如,如果E-页360的读取遇到不可通过使用它的所附页内奇偶数据进行校正的误差,则跨S-页的对应E-页310、320、330等(包括具有页间奇偶数据的E-页)可以用于依照RAID数据恢复操作来恢复E-页360中的数据。
数据可靠性方案
图4是根据本发明的一个实施例的示出实现数据可靠性方案的过程400的流程图。过程400有利地包括页内和页间奇偶数据可靠性方案两者。在一些实施例中,图1的控制器130和/或误差校正模块132被配置为执行过程400。
在块405处,过程400确定为页间奇偶数据保留的管芯。例如,基于由制造商提供的质量度量和/或由非易失性存储器的管芯的控制器130确定的存储器质量信息,可保留具有最高质量的用于存储数据的一个或更多个管芯。被保留用于页间奇偶数据的管芯的数量可与具有可以使用页间奇偶数据来校正的误差的页的数量对应。例如,在图2的示例中,由于管芯2和4中的每个的一个F-页被保留用于F-页间奇偶数据,因而针对S-页200可校正多达两个页误差。其余未保留的管芯F-页可用于用户数据的存储。
在块410处,过程400将用户数据和页内奇偶数据写入到未保留的管芯的F-页。例如,在图3的示例中,用户数据和对应的低密度奇偶校验(LDPC)数据可被写入到未保留的管芯的F-页的E-页,未保留的管芯包括除管芯2和4之外的所有管芯。在一些实施例中,一个或更多个适合的ECC方案可用于生成页内奇偶数据。在一些实施例中,用户数据加上对应的页内奇偶数据的八位组的总数量对于每个E-页可以是相同的,使得编码器可以以多个不同的码率支持一个处理单位尺寸(例如,每用户数据的奇偶数据的量)。可以在一些实施例中以数据的顺序或者在其他实施例中无序地将用户数据和页内奇偶数据写入到所保留的管芯的页。
在块415处,如以上描述的那样,可利用填充数据来填充所写入的用户数据,并且过程400使用填充后的用户数据来生成页间奇偶数据。在生成页间奇偶数据之后,在块420处,过程400将页间奇偶数据与它自己的页内奇偶数据一起写入到所保留的管芯的页。页间奇偶数据可如关于图2所讨论的那样与用于F-页的奇偶性相对应,或者如关于图3所讨论的那样与用于F-页的E-页的奇偶性相对应。例如,在图3的示例中,F页间里德所罗门(RS)奇偶数据和对应的F-页内LDPC数据可被写入到所保留的管芯2和4的E-页。在一些实施例中,一个或更多个适合的ECC方案可用于生成页间奇偶。
数据恢复方案
图5是根据本发明的一个实施例的示出数据提取和恢复的过程500的流程图。有利地,在遇到诸如不可校正的读取数据误差的不可校正的误差之后,过程500提供用于尝试恢复数据的多个机会。此外,可执行数据的恢复而不使用来自每个页的所有数据单位,从而减少处理每个页并且执行恢复所需要的时间量。在一些实施例中,图1的控制器130和/或误差校正模块132被配置为执行过程500。
在块505处,过程500读取来自存储器的页的数据。例如,过程500可响应于来自主机系统110的读取命令来执行E-页310的读取。
在块510处,过程500确定在数据读取期间是否检测到不可校正的页内ECC误差。如果没有检测到不可校正的误差,则过程500移动到块515。在块515处,过程500返回来自该页的数据。
另一方面,如果检测到不可校正的数据,则过程500移动到块520。在块520处,过程500确定用于尝试读取页以提取所存储的数据的重新读取选项是否用尽。例如,过程500可确定是否已经执行页的一个或更多个单读取或者多读取、或者是否已经执行使用不同电压阈值水平的页的一个或更多个读取。如果过程500确定用于尝试读取页的重新读取选项没有用尽,则过程500移动到块525。在块525处,过程500调整用于读取来自页的数据的读取参数。然后过程500返回到块505,并且使用经调整的读取参数来读取来自页的数据。
如果过程500确定用于尝试读取页的重新读取选项已用尽,则过程500替代地移动到块530。在块530处,过程500执行页间RAID恢复。页间RAID恢复可包括对来自对应页的用户数据和页间奇偶数据进行解码以尝试针对该页恢复所存储的数据。例如,如果在图3的E-页310的页读取期间检测到不可校正的页内ECC误差,则过程500可读取来自S-页300的管芯0到127的每个E-页0的数据,并且然后解码器可用于尝试使用所有被读取的E-页来恢复在该页中存储的数据。在一些实施例中,在块530处,可按照与用户数据被写入到S-页的顺序相对应的顺序来读取页。在其他实施例中,可相对于用户数据被写入到S-页的顺序而无序地读取页。
在块535处,过程500确定页间RAID恢复是否成功。如果例如针对页的恢复导致成功地确定页的数据内容,则页间RAID可被认为成功。如果页间RAID恢复是成功的,则过程500移动到块540,并且过程500返回来自页的数据。
另一方面,如果页间RAID恢复不成功,则过程500移动到块545。例如,使用图2和图3中的示例,可以存在当多于两个页具有不可校正的ECC误差(这超过其中使用两个页的页间奇偶的RAID恢复的校正容量)时的实例。例如,可以存在具有不可校正的页内ECC误差的总共三个页:触发过程500的页“A”;以及在块530中作为RAID恢复机制的一部分而被读取的两个其他页“B”和“C”。应当指出的是,在图2和图3的示例中,典型的RAID恢复过程可以涉及跨S-页读取128个E-页。
在块545处,过程500确定用于尝试读取其他页(例如,页“B”和“C”)以提取页中的所存储的数据的重新读取选项是否用尽。例如,对于具有检测到的不可校正的页内ECC误差的一个或更多个其他页(例如,页“A”),过程500可确定是否已经执行其他页的一个或更多个单读取或多读取、或者是否已经执行使用不同电压阈值水平的其他页(例如,页“B”和“C”)的读取。如果过程500确定用于尝试读取其他页以提取页中的所存储的数据的重新读取选项没有用尽,则该处理移动到块550。
在块550处,过程500使用经调整的读取参数重新读取来自具有所检测到的页内ECC误差的其他页(例如,页“B”和“C”)的数据,例如,通过使用单读取或多读取或者经调整的电压阈值来重新读取其他页。作为一个示例,如果由S-页300的E-页310的页读取来触发检测到的不可校正的页内ECC误差并且在尝试页间RAID恢复的同时在E-页320和360的页读取期间检测到其他不可校正的页内ECC误差,则过程500可重新读取来自E-页320或360的数据以尝试分别恢复在E-页320或360中存储的数据。然后过程500返回到块530,并且过程500执行页间RAID恢复。如果重新读取来自具有检测到的页内ECC误差的其他页(例如,页“B”和“C”)的数据导致针对其他页中的一个或更多个的数据的成功的恢复以使得不可校正的页的总数量低于RAID恢复限制(即,所使用的数量间奇偶页),则块530处的页间RAID恢复现在可以被成功地执行。例如,继续该图的示例,如果E-页320的重新读取导致成功的数据恢复,则块530处的页间RAID恢复现在可以是成功的,这是由于两个奇偶页可用于校正E-页310和360的两个所检测到的页内ECC误差。这是因为在RAID的该示例实现方式中误差的(多个)位置是已知的。
另一方面,如果过程500确定用于尝试读取其他页以提取该页中的存储的数据的重新读取选项用尽,则过程500移动到块555,在那里过程500返回针对该页的读取误差。
图6是示出根据本发明的一个实施例的数据提取和恢复的另一过程600的流程图。除了用块620、625、645、和650替代块520、525、545、和550之外,过程600与图5的过程500大体相同。尽管过程500和600被示出为分离的方法,但是过程500的重新读取部分和过程600的重新解码部分是根据系统条件而在某些时间而非其他时间均可尝试或使用的选项。例如,当存储器阵列基本上是新的时,可以执行重新读取或重新解码;然而,随着由于磨损而导致存储器的质量下降,可以执行重新读取和重新解码两者。在一些实施例中,图1的控制器130和/或误差校正模块132被配置为执行过程600。
在块620处,过程600确定用于尝试确定针对页的所存储的数据的重新解码选项是否用尽。例如,过程600可确定是否已经使用一个或更多个不同解码参数来对来自页的数据进行了解码。如果过程600确定用于尝试确定所存储的数据的重新解码选项没有用尽,则过程600移动到块625。在块625处,过程600使用经调整的解码参数对来自页的数据进行解码。然后过程600返回到块510,并且过程500确定当对来自页的数据进行解码时是否检测到不可校正的页内ECC误差。
在块645处,过程600确定用于尝试对其他页(例如,图5的示例的页“B”和“C”,其中,可以存在具有不可校正的页内ECC误差的总共三个页:触发过程600的页“A”以及在块530中作为RAID恢复机制的一部分而被读取的两个其他页“B”和“C”)进行解码以确定页中的所存储的数据的重新解码选项是否用尽。例如,对于具有检测到的不可校正的页内ECC误差的一个或更多个其他页(例如,页“A”),过程600可确定是否已经使用一个或更多个不同的解码参数对来自其他页(例如,页“B”和“C”)的数据进行解码。如果过程600确定用于尝试对其他页进行解码的重新解码选项没有用尽,则处理移动到块650。
在块650处,过程600使用经调整的解码参数对来自具有检测到的页内ECC误差的其他页(例如,页“B”和“C”)的数据进行解码。然后过程600返回到块530,并且过程600执行页间RAID恢复。如果来自具有检测到的页内ECC误差的其他页(例如,页“B”和“C”)的数据的重新解码导致针对其他页中的一个或更多个的数据的成功的恢复以使得不可校正的页的总数量低于RAID恢复限制(即,所使用的间奇偶页的数量),则块530处的页间RAID恢复现在可以被成功地执行。
其他变形
尽管本公开使用RAID作为示例,但是在此描述的系统和方法不被限制于RAID冗余方案并且可被用在利用存储元件的条和/或群组以为了镜像或误差校验目的的任何数据冗余配置中。此外,尽管RAID是独立磁盘冗余阵列的缩写,但是RAID不被限制于具有物理盘的存储装置并且可应用于包括在此描述的非易失性固态装置的各种各样的存储装置。
此外,本领域技术人员将意识到在一些实施例中,可使用其他途径和方法。例如,本文中的编码技术可应用于除了里德所罗门和LDPC码之外的码,或者除了里德所罗门和LDPC码还可应用于其它码。例如,多维XOR码可被用作页间奇偶码,并且如涡轮码(turbo code)或博斯-乔赫里-霍克文黑姆(BCH)码的其他码可被用作页内奇偶码。进一步地,尽管在本公开中讨论了E-页和F-页,但是E-页和F-页是指代数据冗余方案的示例性的工作单位并且被包括在此作为示例。数据冗余方案及其方面可应用于其他工作单位,其中F-页可以与RAID条对应并且E-页可以与RAID条的子单位对应。相应地,本公开的范围意图为仅参照所附权利要求来限定。
虽然描述了某些实施例,但仅通过示例的方式呈现这些实施例,并且这些实施例不意图为限制保护范围。确实,可以以各种其他形式来体现在此描述的新方法和系统。更进一步地,在不背离保护的精神的情况下,可以作出在此描述的方法和系统的形式上的各种省略、替换和改变。所附权利要求及它们的等同物意图为覆盖将落入保护范围和精神内的这样的形式或修改。例如,本文中的系统和方法可被应用于硬盘驱动器和混合硬驱动器等。此外,可以附加地或替换地使用其他存储形式(例如,DRAM或SRAM、电池供电的易失性DRAM或SRAM装置、EPROM、EEPROM存储器等)。作为另一示例,图中示出的各个部件可以被实现为处理器上的软件和/或固件、ASIC/FPGA、或专用硬件。此外,以上公开的具体实施例的特征和属性可以以不同方式组合以形成附加的实施例,其所有落入本公开的范围内。尽管本公开提供了某些优选实施例和应用,但是对于本领域普通技术人员来说明显的其他实施例,包括未提供在此给出的所有特征和优点的实施例,也在该公开的范围内。相应地,本公开的范围意图为仅参照所附权利要求来限定。

Claims (22)

1.一种固态存储系统,包括:
非易失性存储器阵列;以及
控制器,其被配置为:
利用所述非易失性存储器阵列中的多个数据页来实现数据冗余配置,所述多个数据页包括第一组数据页和第二组数据页;
将多个数据单位和页内奇偶单位存储在所述第一组的每个数据页中并且将多个页间奇偶单位存储在所述第二组的每个数据页中;
当读取来自所述第一组的第一数据页的数据单位时,使用所述第一数据页的页内奇偶单位来检测不可校正的误差;并且
响应于检测到所述不可校正的误差,使用来自所述第一组的每个数据页的对应数据单位和来自所述第二组的每个数据页的对应页间奇偶单位来执行针对所述数据单位的恢复,
其中,所述控制器被配置为在不使用来自所述第一组的每个数据页的所有数据单位和来自所述第二组的每个数据页的所有页间奇偶单位的情况下执行所述恢复。
2.根据权利要求1所述的固态存储系统,其中,每个数据单位包括在利用预先限定的数据组填充之后的共同数量个八位组数据,并且每个页间奇偶单位包括所述共同数量个八位组数据并且至少部分地基于来自所述第一组的每个数据页的所述对应数据单位而与奇偶性相对应。
3.根据权利要求1所述的固态存储系统,其中,每个数据页包括闪速页(F-页),并且每个数据单位包括误差校正码页(E-页)。
4.根据权利要求1所述的固态存储系统,其中,所述页内奇偶单位包括低密度奇偶校验(LDPC)奇偶单位,并且所述页间奇偶单位包括里德所罗门(RS)奇偶单位。
5.根据权利要求1所述的固态存储系统,其中,所述数据冗余配置是独立磁盘冗余阵列(RAID)配置。
6.根据权利要求1所述的固态存储系统,其中,所述控制器进一步被配置为:
响应于检测到所述不可校正的误差,修改用于读取所述数据单位的读取参数,并且
使用经修改的读取参数来使得所述数据单位被读取。
7.根据权利要求6所述的固态存储系统,其中,所述读取参数包括如下中的至少一个的指示:单-读取/多-读取和电压阈值调整。
8.根据权利要求7所述的固态存储系统,其中,所述控制器进一步被配置为:
确定针对所述数据单位的恢复是否导致成功地确定所述数据单位的数据内容,
响应于确定针对所述数据单位的恢复没有导致成功地确定所述数据内容,修改用于读取除所述第一数据页之外的一个或更多个数据页的一个或更多个数据单位的读取参数,并且
使用经修改的读取参数来使得除所述第一数据页之外的所述一个或更多个数据页的所述一个或更多个数据单位被读取。
9.根据权利要求1所述的固态存储系统,其中,所述控制器进一步被配置为:
响应于检测到所述不可校正的误差,修改用于对所述数据单位进行解码的解码参数,并且
使用经修改的解码参数来对所述数据单位进行解码。
10.根据权利要求9所述的固态存储系统,其中,所述控制器进一步被配置为:
确定针对所述数据单位的恢复是否导致成功地确定所述数据单位的数据内容,
响应于确定针对所述数据单位的恢复没有导致成功地确定所述数据内容,修改用于对除所述第一数据页之外的一个或更多个数据页的一个或更多个数据单位进行解码的解码参数,并且
使用经修改的解码参数来对除所述第一数据页之外的所述一个或更多个数据页的所述一个或更多个数据单位进行解码。
11.根据权利要求1所述的固态存储系统,其中,所述控制器进一步被配置为:
基于每个数据页中可用的用户数据存储器空间的量来将每个数据页分配给所述第一组或所述第二组,并且
至少部分地基于来自所述第一组的每个数据页的所述对应数据单位来将每个页间奇偶单位写入到所述第二组的每个数据页。
12.一种在包括控制器的数据存储系统中执行数据恢复的方法,所述方法包括:
利用非易失性存储器阵列中的多个数据页来实现数据冗余配置,所述多个数据页包括第一组数据页和第二组数据页;
将多个数据单位和页内奇偶单位存储在所述第一组的每个数据页中并且将多个页间奇偶单位存储在所述第二组的每个数据页中;
当读取来自所述第一数据页的数据单位时,使用所述第一组的第一数据页的页内奇偶单位来检测不可校正的误差;并且
响应于检测到所述不可校正的误差,使用来自所述第一组的每个数据页的对应数据单位和来自所述第二组的每个数据页的对应页间奇偶单位来执行针对所述数据单位的恢复,其中,使用少于所有的来自所述第一组的每个数据页的数据单位和少于所有的来自所述第二组的每个数据页的页间奇偶单位来执行所述恢复。
13.根据权利要求12所述的方法,其中,每个数据单位包括在利用预先限定的数据组填充之后的共同数量个八位组数据,并且每个页间奇偶单位包括所述共同数量个八位组数据并且至少部分地基于来自所述第一组的每个数据页的所述对应数据单位而与奇偶性相对应。
14.根据权利要求12所述的方法,其中,每个数据页包括闪速页(F-页),并且每个数据单位包括误差校正码页(E-页)。
15.根据权利要求12所述的方法,其中,所述页内奇偶单位包括低密度奇偶校验(LDPC)奇偶单位,并且所述页间奇偶单位包括里德所罗门(RS)奇偶单位。
16.根据权利要求12所述的方法,其中,所述数据冗余配置是独立磁盘冗余阵列(RAID)配置。
17.根据权利要求12所述的方法,进一步包括:
响应于检测到所述不可校正的误差,修改用于读取所述数据单位的读取参数,并且
使用经修改的读取参数来使得所述数据单位被读取。
18.根据权利要求17所述的方法,其中,所述读取参数包括如下中的至少一个的指示:单-读取/多-读取和电压阈值调整。
19.根据权利要求18所述的方法,进一步包括:
确定针对所述数据单位的恢复是否导致成功地确定所述数据单位的数据内容,
响应于确定针对所述数据单位的恢复没有导致成功地确定所述数据内容,修改用于读取除所述第一数据页之外的一个或更多个数据页的一个或更多个数据单位的读取参数,并且
使用经修改的读取参数来使得除所述第一数据页之外的所述一个或更多个数据页的所述一个或更多个数据单位被读取。
20.根据权利要求12所述的方法,进一步包括:
响应于检测到所述不可校正的误差,修改用于对所述数据单位进行解码的解码参数,并且
使用经修改的解码参数来对所述数据单位进行解码。
21.根据权利要求20所述的方法,进一步包括:
确定针对所述数据单位的恢复是否导致成功地确定所述数据单位的数据内容,
响应于确定针对所述数据单位的恢复没有导致成功地确定所述数据内容,修改用于对除所述第一数据页之外的一个或更多个数据页的一个或更多个数据单位进行解码的解码参数,并且
使用经修改的解码参数来对除所述第一数据页之外的所述一个或更多个数据页的所述一个或更多个数据单位进行解码。
22.根据权利要求12所述的方法,进一步包括:
基于每个数据页中可用的用户数据存储器空间的量来将每个数据页分配给所述第一组或所述第二组,并且
至少部分地基于来自所述第一组的每个数据页的所述对应数据单位来将每个页间奇偶单位写入到所述第二组的每个数据页。
CN201380071730.4A 2012-11-29 2013-09-30 用于数据存储系统的数据可靠性方案 Active CN105009087B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/689,673 2012-11-29
US13/689,673 US9021339B2 (en) 2012-11-29 2012-11-29 Data reliability schemes for data storage systems
PCT/US2013/062760 WO2014084960A1 (en) 2012-11-29 2013-09-30 Data reliability schemes for data storage systems

Publications (2)

Publication Number Publication Date
CN105009087A true CN105009087A (zh) 2015-10-28
CN105009087B CN105009087B (zh) 2018-01-23

Family

ID=50774416

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380071730.4A Active CN105009087B (zh) 2012-11-29 2013-09-30 用于数据存储系统的数据可靠性方案

Country Status (8)

Country Link
US (1) US9021339B2 (zh)
EP (1) EP2926255A4 (zh)
JP (1) JP6262250B2 (zh)
KR (1) KR101877106B1 (zh)
CN (1) CN105009087B (zh)
AU (1) AU2013353487A1 (zh)
HK (1) HK1216196A1 (zh)
WO (1) WO2014084960A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107305476A (zh) * 2016-04-25 2017-10-31 群联电子股份有限公司 数据校正方法、内存控制电路单元与内存储存装置
CN108073471A (zh) * 2016-11-15 2018-05-25 西部数据技术公司 链接的存储系统和主机系统错误校正码
CN108733503A (zh) * 2017-04-24 2018-11-02 慧与发展有限责任合伙企业 在分布式存储系统中存储数据
CN110879789A (zh) * 2018-09-05 2020-03-13 爱思开海力士有限公司 存储器系统及操作该存储器系统的方法
CN112148522A (zh) * 2019-06-28 2020-12-29 西部数据技术公司 快闪存储器中的错误校正方案
CN112988043A (zh) * 2019-12-12 2021-06-18 西部数据技术公司 提交队列获取错误的错误恢复
CN112988043B (zh) * 2019-12-12 2024-06-07 西部数据技术公司 用于提交队列获取错误的错误恢复的设备、系统和方法

Families Citing this family (130)

* 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
US9164886B1 (en) 2010-09-21 2015-10-20 Western Digital Technologies, Inc. System and method for multistage processing in a memory storage subsystem
US9021192B1 (en) 2010-09-21 2015-04-28 Western Digital Technologies, Inc. System and method for enhancing processing of memory access requests
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
US8707104B1 (en) 2011-09-06 2014-04-22 Western Digital Technologies, Inc. Systems and methods for error injection 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
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
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
US9053008B1 (en) 2012-03-26 2015-06-09 Western Digital Technologies, Inc. Systems and methods for providing inline parameter service in data storage devices
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
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
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
US8924824B1 (en) 2013-03-12 2014-12-30 Western Digital Technologies, Inc. Soft-decision input generation for data storage systems
US8990668B2 (en) 2013-03-14 2015-03-24 Western Digital Technologies, Inc. Decoding data stored in solid-state memory
US9218279B2 (en) 2013-03-15 2015-12-22 Western Digital Technologies, Inc. Atomic write command support in a solid state drive
US9335950B2 (en) 2013-03-15 2016-05-10 Western Digital Technologies, Inc. Multiple stream compression and formatting of data for data storage systems
US9448738B2 (en) 2013-03-15 2016-09-20 Western Digital Technologies, Inc. Compression and formatting of data for data storage systems
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
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
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
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
JP2015018451A (ja) * 2013-07-11 2015-01-29 株式会社東芝 メモリコントローラ、記憶装置およびメモリ制御方法
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
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
US10444998B1 (en) 2013-10-24 2019-10-15 Western Digital Technologies, Inc. Data storage device providing data maintenance services
US9007841B1 (en) 2013-10-24 2015-04-14 Western Digital Technologies, Inc. Programming scheme for improved voltage distribution in solid-state memory
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
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
CN104007936B (zh) * 2014-01-07 2017-09-29 华为技术有限公司 访问数据的方法及装置
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
US20150317204A1 (en) * 2014-04-30 2015-11-05 Lsi Corporation Systems and Methods for Efficient Data Refresh in a Storage Device
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
US10116336B2 (en) 2014-06-13 2018-10-30 Sandisk Technologies Llc Error correcting code adjustment for a data storage device
US9275741B1 (en) 2014-09-10 2016-03-01 Western Digital Technologies, Inc. Temperature compensation management in solid-state memory
US9652321B2 (en) * 2014-09-23 2017-05-16 Intel Corporation Recovery algorithm in non-volatile memory
US9418699B1 (en) 2014-10-09 2016-08-16 Western Digital Technologies, Inc. Management of sequentially written data
US9484089B2 (en) * 2014-10-20 2016-11-01 Sandisk Technologies Llc Dual polarity read operation
US9405356B1 (en) 2014-10-21 2016-08-02 Western Digital Technologies, Inc. Temperature compensation in data storage device
US9823859B2 (en) 2014-11-06 2017-11-21 Western Digital Technologies, Inc. Mechanical shock mitigation for data storage
GB2533639B (en) * 2014-12-24 2017-11-22 Imagination Tech Ltd Low density parity check decoder
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
US10133625B2 (en) 2015-08-11 2018-11-20 Western Digital Technologies, Inc. Storing parity data separate from protected data
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
US9929750B2 (en) 2015-09-08 2018-03-27 Toshiba Memory Corporation Memory system
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
KR102385138B1 (ko) * 2015-10-08 2022-04-12 삼성전자주식회사 정정 불가능한 ecc 오류를 갖는 데이터를 복구하도록 구성되는 raid 컨트롤러 장치 및 스토리지 장치
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
US9569306B1 (en) * 2015-12-18 2017-02-14 International Business Machines Corporation Recovery of multi-page failures in non-volatile memory system
US9529663B1 (en) 2015-12-20 2016-12-27 Apple Inc. Detection and localization of failures in 3D NAND flash memory
US10459793B2 (en) 2016-03-17 2019-10-29 Western Digital Technologies, Inc. Data reliability information in a non-volatile memory device
TWI591643B (zh) * 2016-03-22 2017-07-11 群聯電子股份有限公司 資料保護方法、記憶體控制電路單元與記憶體儲存裝置
US9846553B2 (en) * 2016-05-04 2017-12-19 Exablox Corporation Organization and management of key-value stores
US10423500B2 (en) 2016-06-01 2019-09-24 Seagate Technology Llc Technologies for limiting performance variation in a storage device
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
US10248515B2 (en) 2017-01-19 2019-04-02 Apple Inc. Identifying a failing group of memory cells in a multi-plane storage operation
US10019332B1 (en) * 2017-03-10 2018-07-10 Western Digital Technologies, Inc. Non-volatile memory with program failure recovery
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
US10762967B2 (en) 2018-06-28 2020-09-01 Apple Inc. Recovering from failure in programming a nonvolatile memory
US10755787B2 (en) 2018-06-28 2020-08-25 Apple Inc. Efficient post programming verification in a nonvolatile memory
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
US10936455B2 (en) 2019-02-11 2021-03-02 Apple Inc. Recovery of data failing due to impairment whose severity depends on bit-significance value
US11494107B2 (en) 2019-04-11 2022-11-08 Apple Inc. Managing parity information for data stored on a storage device
US11023317B2 (en) * 2019-07-12 2021-06-01 Micron Technology, Inc. Read recovery control circuitry
US10915394B1 (en) 2019-09-22 2021-02-09 Apple Inc. Schemes for protecting data in NVM device using small storage footprint
US11016905B1 (en) 2019-11-13 2021-05-25 Western Digital Technologies, Inc. Storage class memory access
US11404135B1 (en) * 2020-02-17 2022-08-02 Amazon Technologies, Inc. Runtime identification of bad memory cells based on difference between data pattern and read data
KR20210125294A (ko) 2020-04-08 2021-10-18 에스케이하이닉스 주식회사 에러 정정 회로 및 이의 동작 방법
US11249921B2 (en) 2020-05-06 2022-02-15 Western Digital Technologies, Inc. Page modification encoding and caching
CN111984193A (zh) * 2020-08-14 2020-11-24 深圳市硅格半导体有限公司 数据编写存储报错的恢复方法、系统、设备及存储介质
US11550657B1 (en) 2021-09-01 2023-01-10 Apple Inc. Efficient programming schemes in a nonvolatile memory
US11977443B2 (en) * 2022-08-15 2024-05-07 Micron Technology, Inc. Dynamic parity scheme

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101529522A (zh) * 2005-10-25 2009-09-09 晟碟以色列有限公司 从闪速存储器中的错误恢复的方法
US20110239088A1 (en) * 2010-03-23 2011-09-29 Apple Inc. Non-regular parity distribution detection via metadata tag
CN102301340A (zh) * 2008-12-31 2011-12-28 英特尔公司 固态盘中改进的错误校正
WO2012047498A1 (en) * 2010-09-28 2012-04-12 Pure Storage, Inc. Offset protection data in a raid array
CN102498472A (zh) * 2009-09-16 2012-06-13 国际商业机器公司 以从raid控制器接收的数据和奇偶性的使用信息为基础的固态盘的损耗均衡
US8239734B1 (en) * 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays

Family Cites Families (157)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5499337A (en) 1991-09-27 1996-03-12 Emc Corporation Storage device array architecture with solid-state redundancy unit
US5621660A (en) 1995-04-18 1997-04-15 Sun Microsystems, Inc. Software-based encoder for a software-implemented end-to-end scalable video delivery system
US6011868A (en) 1997-04-04 2000-01-04 Hewlett-Packard Company Bitstream quality analyzer
US20080282128A1 (en) 1999-08-04 2008-11-13 Super Talent Electronics, Inc. Method of Error Correction Code on Solid State Disk to Gain Data Security and Higher Performance
US8266367B2 (en) 2003-12-02 2012-09-11 Super Talent Electronics, Inc. Multi-level striping and truncation channel-equalization for flash-memory system
US7072417B1 (en) 2000-06-28 2006-07-04 Marvell International Ltd. LDPC encoder and method thereof
US6934904B2 (en) 2001-04-30 2005-08-23 Sun Microsystems, Inc. Data integrity error handling in a redundant storage array
US6895547B2 (en) 2001-07-11 2005-05-17 International Business Machines Corporation Method and apparatus for low density parity check encoding of data
US7149846B2 (en) 2002-04-17 2006-12-12 Lsi Logic Corporation RAID protected external secondary memory
US7702986B2 (en) 2002-11-18 2010-04-20 Qualcomm Incorporated Rate-compatible LDPC codes
US6856556B1 (en) 2003-04-03 2005-02-15 Siliconsystems, Inc. Storage subsystem with embedded circuit for protecting against anomalies in power signal from host
US20090193184A1 (en) 2003-12-02 2009-07-30 Super Talent Electronics Inc. Hybrid 2-Level Mapping Tables for Hybrid Block- and Page-Mode Flash-Memory System
US7395495B2 (en) 2004-01-12 2008-07-01 Intel Corporation Method and apparatus for decoding forward error correction codes
US7260763B2 (en) 2004-03-11 2007-08-21 Nortel Networks Limited Algebraic low-density parity check code design for variable block sizes and code rates
JP3875693B2 (ja) 2004-03-24 2007-01-31 株式会社東芝 Lpc符号を用いた符号化ビットのマッピング方法及び送信装置
US7747929B2 (en) 2004-04-28 2010-06-29 Samsung Electronics Co., Ltd Apparatus and method for coding/decoding block low density parity check code with variable block length
US7346832B2 (en) 2004-07-21 2008-03-18 Qualcomm Incorporated LDPC encoding methods and apparatus
US7395490B2 (en) 2004-07-21 2008-07-01 Qualcomm Incorporated LDPC decoding methods and apparatus
US7203897B2 (en) 2004-08-12 2007-04-10 Motorola, Inc. Method and apparatus for encoding and decoding data
AU2005273169B2 (en) 2004-08-16 2008-09-11 Nokia Technologies Oy Apparatus and method for coding/decoding block low density parity check code with variable block length
US8131926B2 (en) 2004-10-20 2012-03-06 Seagate Technology, Llc Generic storage container for allocating multiple data formats
US7502256B2 (en) 2004-11-30 2009-03-10 Siliconsystems, Inc. Systems and methods for reducing unauthorized data recovery from solid-state storage devices
KR100641052B1 (ko) 2004-12-08 2006-11-02 한국전자통신연구원 Ldpc 부호기 및 복호기, 및 ldpc 부호화 방법 및복호화 방법
US7500172B2 (en) 2005-02-26 2009-03-03 Broadcom Corporation AMP (accelerated message passing) decoder adapted for LDPC (low density parity check) codes
US7657816B2 (en) 2005-07-13 2010-02-02 Leanics Corporation Low-complexity hybrid LDPC code encoder
KR100732628B1 (ko) 2005-07-28 2007-06-27 삼성전자주식회사 멀티-비트 데이터 및 싱글-비트 데이터를 저장하는 플래시메모리 장치
US7129862B1 (en) 2005-07-29 2006-10-31 Texas Instruments Incorporated Decoding bit streams encoded according to variable length codes
KR100809616B1 (ko) 2005-10-19 2008-03-05 삼성전자주식회사 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
US20070124648A1 (en) 2005-10-31 2007-05-31 Ajay Dholakia Data protection method
US7797611B2 (en) 2005-11-14 2010-09-14 International Business Machines Corporation Creating an error correction coding scheme and reducing data loss
US7631246B2 (en) 2006-01-09 2009-12-08 Broadcom Corporation LDPC (low density parity check) code size adjustment by shortening and puncturing
JP4863749B2 (ja) 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
US7653778B2 (en) 2006-05-08 2010-01-26 Siliconsystems, Inc. Systems and methods for measuring the useful life of solid-state storage devices
US7809994B2 (en) 2006-05-17 2010-10-05 Sandisk Corporation Error correction coding for multiple-sector pages in flash memory devices
US7765373B1 (en) 2006-06-27 2010-07-27 Siliconsystems, Inc. System for controlling use of a solid-state storage subsystem
US8108692B1 (en) 2006-06-27 2012-01-31 Siliconsystems, Inc. Solid-state storage subsystem security solution
US7447807B1 (en) 2006-06-30 2008-11-04 Siliconsystems, Inc. Systems and methods for storing data in segments of a storage subsystem
US7509441B1 (en) 2006-06-30 2009-03-24 Siliconsystems, Inc. Systems and methods for segmenting and protecting a storage subsystem
US7739576B2 (en) 2006-08-31 2010-06-15 Micron Technology, Inc. Variable strength ECC
JP4932427B2 (ja) 2006-10-20 2012-05-16 株式会社日立製作所 記憶装置及び記憶方法
US8161227B1 (en) 2006-10-30 2012-04-17 Siliconsystems, Inc. Storage subsystem capable of programming field-programmable devices of a target computer system
CN101681282A (zh) 2006-12-06 2010-03-24 弗森多系统公司(dba弗森-艾奥) 用于共享的、前端、分布式raid的装置、系统和方法
US8090980B2 (en) 2006-12-08 2012-01-03 Sandforce, Inc. System, method, and computer program product for providing data redundancy in a plurality of storage devices
US8549236B2 (en) 2006-12-15 2013-10-01 Siliconsystems, Inc. Storage subsystem with multiple non-volatile memory arrays to protect against data losses
US7913149B2 (en) 2006-12-20 2011-03-22 Lsi Corporation Low complexity LDPC encoding algorithm
US7660911B2 (en) 2006-12-20 2010-02-09 Smart Modular Technologies, Inc. Block-based data striping to flash memory
US7596643B2 (en) 2007-02-07 2009-09-29 Siliconsystems, Inc. Storage subsystem with configurable buffer
US7900118B2 (en) 2007-02-12 2011-03-01 Phison Electronics Corp. Flash memory system and method for controlling the same
US8418023B2 (en) 2007-05-01 2013-04-09 The Texas A&M University System Low density parity check decoder for irregular LDPC codes
US7685338B2 (en) 2007-05-24 2010-03-23 Siliconsystems, Inc. Solid state storage subsystem for embedded applications
US7685337B2 (en) 2007-05-24 2010-03-23 Siliconsystems, Inc. Solid state storage subsystem for embedded applications
US7685374B2 (en) 2007-07-26 2010-03-23 Siliconsystems, Inc. Multi-interface and multi-bus structured solid-state storage subsystem
US8181089B1 (en) 2007-08-24 2012-05-15 Datadirect Networks, Inc. Method for auto-correction of errors in a solid-state memory system
US8095851B2 (en) 2007-09-06 2012-01-10 Siliconsystems, Inc. Storage subsystem capable of adjusting ECC settings based on monitored conditions
US8261152B2 (en) 2007-09-10 2012-09-04 Samsung Electronics Co., Ltd. Apparatus and method for channel encoding/decoding in communication system using variable-length LDPC codes
US8245101B2 (en) 2007-12-27 2012-08-14 Sandisk Enterprise Ip Llc Patrol function used in flash storage controller to detect data errors
US8078918B2 (en) 2008-02-07 2011-12-13 Siliconsystems, Inc. Solid state storage subsystem that maintains and provides access to data reflective of a failure risk
US7962792B2 (en) 2008-02-11 2011-06-14 Siliconsystems, Inc. Interface for enabling a host computer to retrieve device monitor data from a solid state storage subsystem
KR101398200B1 (ko) 2008-03-18 2014-05-26 삼성전자주식회사 메모리 장치 및 인코딩/디코딩 방법
KR101398212B1 (ko) 2008-03-18 2014-05-26 삼성전자주식회사 메모리 장치 및 인코딩/디코딩 방법
US8180954B2 (en) 2008-04-15 2012-05-15 SMART Storage Systems, Inc. Flash management using logical page size
US7733712B1 (en) 2008-05-20 2010-06-08 Siliconsystems, Inc. Storage subsystem with embedded circuit for protecting against anomalies in power signal from host
WO2009143375A2 (en) 2008-05-21 2009-11-26 The Regents Of The University Of Calfornia Lower-complexity layered belief propagation deconding ldpc codes
US20100125695A1 (en) 2008-11-15 2010-05-20 Nanostar Corporation Non-volatile memory storage system
US20100017650A1 (en) 2008-07-19 2010-01-21 Nanostar Corporation, U.S.A Non-volatile memory data storage system with reliability management
KR101391362B1 (ko) * 2008-07-23 2014-05-07 삼성전자주식회사 읽기 전압 레벨이 설정가능한 플래시 메모리 시스템 및읽기 전압 레벨의 설정방법
US8583835B1 (en) 2008-08-06 2013-11-12 Siliconsystems, Inc. Command portal for executing non-standard storage subsystem commands
US8375151B1 (en) 2009-02-12 2013-02-12 Siliconsystems, Inc. Command portal for securely communicating and executing non-standard storage subsystem commands
US20100049914A1 (en) 2008-08-20 2010-02-25 Goodwin Paul M RAID Enhanced solid state drive
US8281214B2 (en) 2008-10-17 2012-10-02 Lsi Corporation Programmable quasi-cyclic low-density parity check (QC LDPC) encoder for read channel
US8161345B2 (en) 2008-10-29 2012-04-17 Agere Systems Inc. LDPC decoders using fixed and adjustable permutators
US9356623B2 (en) 2008-11-26 2016-05-31 Avago Technologies General Ip (Singapore) Pte. Ltd. LDPC decoder variable node units having fewer adder stages
KR101059673B1 (ko) 2008-12-26 2011-08-25 서울대학교산학협력단 신뢰도 또는 저장 용량을 동적으로 조절하는 저장 장치 및 그 방법
US9176859B2 (en) 2009-01-07 2015-11-03 Siliconsystems, Inc. Systems and methods for improving the performance of non-volatile memory operations
US8090899B1 (en) 2009-03-04 2012-01-03 Western Digital Technologies, Inc. Solid state drive power safe wear-leveling
KR100929371B1 (ko) 2009-03-18 2009-12-02 한국과학기술원 페이지-디퍼런셜을 이용하여 dbms에 독립적인 방법으로 플래시 메모리에 데이터를 저장하는 방법
US10079048B2 (en) 2009-03-24 2018-09-18 Western Digital Technologies, Inc. Adjusting access of non-volatile semiconductor memory based on access time
US8327224B2 (en) 2009-04-16 2012-12-04 Micron Technology, Inc. Data recovery in a solid state storage system
US8578256B2 (en) 2009-04-22 2013-11-05 Agere Systems Llc Low-latency decoder
US7898859B2 (en) 2009-06-15 2011-03-01 Micron Technology, Inc. Use of emerging non-volatile memory elements with flash memory
US7941696B2 (en) 2009-08-11 2011-05-10 Texas Memory Systems, Inc. Flash-based memory system with static or variable length page stripes including data protection information and auxiliary protection stripes
US8255620B2 (en) 2009-08-11 2012-08-28 Texas Memory Systems, Inc. Secure Flash-based memory system with fast wipe feature
US8176284B2 (en) 2009-08-11 2012-05-08 Texas Memory Systems, Inc. FLASH-based memory system with variable length page stripes including data protection information
US8402217B2 (en) 2009-09-15 2013-03-19 Marvell International Ltd. Implementing RAID in solid state memory
EP2482464B1 (en) 2009-09-25 2019-01-23 Panasonic Intellectual Property Corporation of America Encoding apparatus, decoding apparatus, encoding method, decoding method, and communication system
US8243525B1 (en) 2009-09-30 2012-08-14 Western Digital Technologies, Inc. Refreshing non-volatile semiconductor memory by reading without rewriting
US8254172B1 (en) 2009-09-30 2012-08-28 Western Digital Technologies, Inc. Wear leveling non-volatile semiconductor memory based on erase times and program times
JP2011086333A (ja) 2009-10-14 2011-04-28 Sony Corp データ変調装置および方法、並びにプログラム、記録媒体
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
US8135903B1 (en) 2009-10-30 2012-03-13 Western Digital Technologies, Inc. Non-volatile semiconductor memory compressing data to improve performance
US8261012B2 (en) 2009-10-30 2012-09-04 Western Digital Technologies, Inc. Non-volatile semiconductor memory comprising power fail circuitry for flushing write data in response to a power fail signal
TWI415396B (zh) 2009-11-23 2013-11-11 Nat Univ Tsing Hua 適用於根據里德-索羅門碼建立之低密度同位檢查碼的解碼器及解碼方法
US8397107B1 (en) 2009-12-11 2013-03-12 Western Digital Technologies, Inc. Data storage device employing data path protection using both LBA and PBA
US8443167B1 (en) 2009-12-16 2013-05-14 Western Digital Technologies, Inc. Data storage device employing a run-length mapping table and a single address mapping table
KR101623119B1 (ko) 2010-02-01 2016-05-20 삼성전자주식회사 솔리드 스테이트 드라이브의 에러 제어 방법
US8316176B1 (en) 2010-02-17 2012-11-20 Western Digital Technologies, Inc. Non-volatile semiconductor memory segregating sequential data during garbage collection to reduce write amplification
US8407449B1 (en) 2010-02-26 2013-03-26 Western Digital Technologies, Inc. Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table
JP5039160B2 (ja) * 2010-03-02 2012-10-03 株式会社東芝 不揮発性半導体記憶システム
JP4940322B2 (ja) 2010-03-16 2012-05-30 株式会社東芝 半導体メモリ映像蓄積再生装置及びデータ書込み/読出し方法
TW201201008A (en) 2010-03-22 2012-01-01 Mosaid Technologies Inc Composite semiconductor memory device with error correction
US8725931B1 (en) 2010-03-26 2014-05-13 Western Digital Technologies, Inc. System and method for managing the execution of memory commands in a solid-state memory
US8713066B1 (en) 2010-03-29 2014-04-29 Western Digital Technologies, Inc. Managing wear leveling and garbage collection operations in a solid-state memory using linked lists
US9544090B2 (en) 2010-03-31 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Hard input low density parity check decoder
US8918696B2 (en) 2010-04-09 2014-12-23 Sk Hynix Memory Solutions Inc. Implementation of LDPC selective decoding scheduling
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
US8489979B2 (en) 2010-05-28 2013-07-16 Seagate Technology Llc Methods and devices to reduce outer code failure rate variability
US8799747B2 (en) 2010-06-03 2014-08-05 Seagate Technology Llc Data hardening to compensate for loss of data retention characteristics in a non-volatile memory
US8341339B1 (en) 2010-06-14 2012-12-25 Western Digital Technologies, Inc. Hybrid drive garbage collecting a non-volatile semiconductor memory by migrating valid data to a disk
US8612669B1 (en) 2010-06-28 2013-12-17 Western Digital Technologies, Inc. System and method for performing data retention in solid-state memory using copy commands and validity and usage data
US8447920B1 (en) 2010-06-29 2013-05-21 Western Digital Technologies, Inc. System and method for managing data access in non-volatile memory
US8521972B1 (en) 2010-06-30 2013-08-27 Western Digital Technologies, Inc. System and method for optimizing garbage collection in data storage
US8639872B1 (en) 2010-08-13 2014-01-28 Western Digital Technologies, Inc. Hybrid drive comprising write cache spanning non-volatile semiconductor memory and disk
US8775720B1 (en) 2010-08-31 2014-07-08 Western Digital Technologies, Inc. Hybrid drive balancing execution times for non-volatile semiconductor memory and disk
US8638602B1 (en) 2010-09-10 2014-01-28 Western Digital Technologies, Inc. Background selection of voltage reference values for performing memory read operations
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
US8463991B2 (en) * 2010-09-28 2013-06-11 Pure Storage Inc. Intra-device data protection in a raid array
US8612804B1 (en) 2010-09-30 2013-12-17 Western Digital Technologies, Inc. System and method for improving wear-leveling performance in solid-state memory
US20120084507A1 (en) 2010-10-01 2012-04-05 John Colgrove Multi-level protection with intra-device protection in a raid array based storage system
US9348696B2 (en) 2010-10-01 2016-05-24 Pure Storage, Inc. Distributed multi-level protection in a raid array based storage system
CN103329103B (zh) 2010-10-27 2017-04-05 希捷科技有限公司 使用用于基于闪存的数据存储的自适应ecc技术的方法和设备
WO2012075200A2 (en) * 2010-12-01 2012-06-07 Sandforce, Inc. Dynamic higher-level redundancy mode management with independent silicon elements
US8601313B1 (en) 2010-12-13 2013-12-03 Western Digital Technologies, Inc. System and method for a data reliability scheme in a solid state memory
US8601311B2 (en) 2010-12-14 2013-12-03 Western Digital Technologies, Inc. System and method for using over-provisioned data capacity to maintain a data redundancy scheme in a solid state memory
US8615681B2 (en) 2010-12-14 2013-12-24 Western Digital Technologies, Inc. System and method for maintaining a data redundancy scheme in a solid state memory in the event of a power loss
US8458435B1 (en) 2010-12-20 2013-06-04 Western Digital Technologies, Inc. Sequential write thread detection
US8392635B2 (en) 2010-12-22 2013-03-05 Western Digital Technologies, Inc. Selectively enabling a host transfer interrupt
US8683113B2 (en) 2011-02-04 2014-03-25 Western Digital Technologies, Inc. Concurrently searching multiple devices of a non-volatile semiconductor memory
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
US8769232B2 (en) 2011-04-06 2014-07-01 Western Digital Technologies, Inc. Non-volatile semiconductor memory module enabling out of order host command chunk media access
US8751728B1 (en) 2011-04-29 2014-06-10 Western Digital Technologies, Inc. Storage system bus transfer optimization
US8862804B2 (en) 2011-04-29 2014-10-14 Western Digital Technologies, Inc. System and method for improved parity determination within a data redundancy scheme in a solid state memory
US9021178B2 (en) 2011-05-02 2015-04-28 Western Digital Technologies, Inc. High performance path for command processing
US8503237B1 (en) 2011-05-18 2013-08-06 Western Digital Technologies, Inc. System and method for data recovery in a solid state storage device
US8793429B1 (en) 2011-06-03 2014-07-29 Western Digital Technologies, Inc. Solid-state drive with reduced power up time
US8719531B2 (en) 2011-06-14 2014-05-06 Western Digital Technologies, Inc. System and method for performing data retention that incorporates environmental conditions
US8423722B1 (en) 2011-08-26 2013-04-16 Western Digital Technologies, Inc. System and method for high performance command processing in solid state drives
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
US8713357B1 (en) 2011-09-06 2014-04-29 Western Digital Technologies, Inc. Systems and methods for detailed error reporting in data storage systems
US8977803B2 (en) 2011-11-21 2015-03-10 Western Digital Technologies, Inc. Disk drive data caching using a multi-tiered memory
US8339919B1 (en) 2011-12-14 2012-12-25 Western Digital Technologies, Inc. Disk drive margining read channel by biasing log-likelihood ratios of a nonbinary iterative decoder
US8724422B1 (en) 2012-02-29 2014-05-13 Western Digital Technologies, Inc. System and method for charging back-up charge storage element for data storage device using spindle phase switching elements
US9003224B2 (en) 2012-04-25 2015-04-07 Western Digital Technologies, Inc. Managing unreliable memory in data storage systems
US8788778B1 (en) 2012-06-04 2014-07-22 Western Digital Technologies, Inc. Garbage collection based on the inactivity level of stored data
US8966343B2 (en) 2012-08-21 2015-02-24 Western Digital Technologies, Inc. Solid-state drive retention monitor using reference blocks
US8788880B1 (en) 2012-08-22 2014-07-22 Western Digital Technologies, Inc. Efficient retry mechanism for solid-state memory failures
US9268682B2 (en) 2012-10-05 2016-02-23 Skyera, Llc Methods, devices and systems for physical-to-logical mapping 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
US20140223255A1 (en) 2012-12-18 2014-08-07 Western Digital Technologies, Inc. Decoder having early decoding termination detection
US9430376B2 (en) 2012-12-26 2016-08-30 Western Digital Technologies, Inc. Priority-based garbage collection for data storage systems

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101529522A (zh) * 2005-10-25 2009-09-09 晟碟以色列有限公司 从闪速存储器中的错误恢复的方法
US8239734B1 (en) * 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
CN102301340A (zh) * 2008-12-31 2011-12-28 英特尔公司 固态盘中改进的错误校正
CN102498472A (zh) * 2009-09-16 2012-06-13 国际商业机器公司 以从raid控制器接收的数据和奇偶性的使用信息为基础的固态盘的损耗均衡
US20110239088A1 (en) * 2010-03-23 2011-09-29 Apple Inc. Non-regular parity distribution detection via metadata tag
WO2012047498A1 (en) * 2010-09-28 2012-04-12 Pure Storage, Inc. Offset protection data in a raid array

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107305476A (zh) * 2016-04-25 2017-10-31 群联电子股份有限公司 数据校正方法、内存控制电路单元与内存储存装置
CN107305476B (zh) * 2016-04-25 2020-03-31 群联电子股份有限公司 数据校正方法、存储器控制电路单元与存储器存储装置
CN108073471A (zh) * 2016-11-15 2018-05-25 西部数据技术公司 链接的存储系统和主机系统错误校正码
CN108073471B (zh) * 2016-11-15 2021-06-25 西部数据技术公司 链接的存储系统和主机系统错误校正码
CN108733503A (zh) * 2017-04-24 2018-11-02 慧与发展有限责任合伙企业 在分布式存储系统中存储数据
CN108733503B (zh) * 2017-04-24 2021-10-01 慧与发展有限责任合伙企业 存储节点、分布式存储系统以及用于存储数据的方法
CN110879789A (zh) * 2018-09-05 2020-03-13 爱思开海力士有限公司 存储器系统及操作该存储器系统的方法
CN110879789B (zh) * 2018-09-05 2023-05-12 爱思开海力士有限公司 存储器系统及操作该存储器系统的方法
CN112148522A (zh) * 2019-06-28 2020-12-29 西部数据技术公司 快闪存储器中的错误校正方案
CN112988043A (zh) * 2019-12-12 2021-06-18 西部数据技术公司 提交队列获取错误的错误恢复
CN112988043B (zh) * 2019-12-12 2024-06-07 西部数据技术公司 用于提交队列获取错误的错误恢复的设备、系统和方法

Also Published As

Publication number Publication date
US20140149826A1 (en) 2014-05-29
JP2016505937A (ja) 2016-02-25
EP2926255A4 (en) 2016-07-06
WO2014084960A1 (en) 2014-06-05
US9021339B2 (en) 2015-04-28
KR20150091484A (ko) 2015-08-11
EP2926255A1 (en) 2015-10-07
AU2013353487A1 (en) 2015-07-09
CN105009087B (zh) 2018-01-23
JP6262250B2 (ja) 2018-01-17
HK1216196A1 (zh) 2016-10-21
KR101877106B1 (ko) 2018-07-10

Similar Documents

Publication Publication Date Title
CN105009087B (zh) 用于数据存储系统的数据可靠性方案
US10536172B2 (en) ECC and raid-type decoding
US10180875B2 (en) Pool-level solid state drive error correction
EP2382542B1 (en) Improved error correction in a solid state disk
EP2732373B1 (en) Method and apparatus for flexible raid in ssd
CN101256842B (zh) 纠错码控制器和包括该纠错码控制器的存储器系统
KR101679530B1 (ko) 이용 가능한 메모리 공간에 기초한 이중화 저장 장치 구성의 선택
US9058288B2 (en) Redundant storage in non-volatile memory by storing redundancy information in volatile memory
US20110283166A1 (en) Storage device having a non-volatile memory device and copy-back method thereof
US9003264B1 (en) Systems, methods, and devices for multi-dimensional flash RAID data protection
US10339343B2 (en) Storage system and method for improved generation and storage of data protection information
CN110597654B (zh) 用于超快的具有奇偶校验的纠错码的系统和方法
US20170255518A1 (en) Ecc decoding using raid-type parity
CN112068778B (zh) 用于保持从存储阵列中读取的数据的完整性的方法和设备
US11023317B2 (en) Read recovery control circuitry
US20160147598A1 (en) Operating a memory unit
US9547554B2 (en) Mass storage device and method of operating the same to store parity data
US10922025B2 (en) Nonvolatile memory bad row management
US20220254435A1 (en) Semiconductor storage device and error processing method for defective memory cell in the device
CN114080596A (zh) 用于存储器的数据保护方法及其存储装置
WO2013023564A1 (en) Method and apparatus for flexible raid in ssd

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1216196

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20180607

Address after: American California

Patentee after: Western Digital Technologies, Inc.

Address before: American California

Co-patentee before: SKYERA INC

Patentee before: Western Digital Technologies, Inc.

TR01 Transfer of patent right
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1216196

Country of ref document: HK