首页> 中国专利> 用于数据存储系统的数据可靠性方案

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

摘要

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

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-06-26

    专利权的转移 IPC(主分类):G06F11/10 登记生效日:20180607 变更前: 变更后: 变更前:

    专利申请权、专利权的转移

  • 2018-01-23

    授权

    授权

  • 2015-12-23

    实质审查的生效 IPC(主分类):G06F11/10 申请日:20130930

    实质审查的生效

  • 2015-10-28

    公开

    公开

说明书

技术领域

该公开涉及用于计算机系统的数据存储系统,例如固态驱动器。更特 别地,本公开涉及用于数据存储系统的数据可靠性方案。

背景技术

诸如硬盘和固态驱动器的许多数据存储部件具有制造商向客户提供的 某些所宣扬的可靠性保证。例如,某些固态驱动器制造商保证10-16或10-17的驱动器故障率。为了增加数据可靠性,诸如RAID(独立磁盘冗余阵列) 的数据冗余方案用于增加存储可靠性。可以通过将存储装置内的多个存储 元件组合成组并且提供镜像和/或误差校验机制来提供冗余。例如,固态存 储装置的各个存储器块可以被组合为其中存储有用户数据的条组(stripe  group)。

附图说明

现在将参照以下附图来描述体现本发明的各个特征的系统和方法,在 附图中:

图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、或专用硬件。此外,以上公开的具体实施例的 特征和属性可以以不同方式组合以形成附加的实施例,其所有落入本公开 的范围内。尽管本公开提供了某些优选实施例和应用,但是对于本领域普 通技术人员来说明显的其他实施例,包括未提供在此给出的所有特征和优 点的实施例,也在该公开的范围内。相应地,本公开的范围意图为仅参照 所附权利要求来限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号