首页> 中国专利> 用于重新平衡贮存在闪速存储器装置中的数据的方法和系统

用于重新平衡贮存在闪速存储器装置中的数据的方法和系统

摘要

这里描述了增强包括贮存介质的贮存系统的耐受性的系统、方法和装置。方法包括:将多个闪速存储器装置分割为逻辑组块,每个逻辑组块包括一个或多个闪速存储器块;对于分布算法将权重分配到闪速存储器装置的每一个,其中权重基于至少多个可用的逻辑组块;并且根据分布算法将数据贮存在逻辑组块中。方法包括检测用于各个闪速存储器装置的触发条件。响应于检测触发条件,方法包括:降低各个闪速存储器装置的权重;更新分布算法以反映各个闪速存储器装置的降低的权重;并且根据更新的分布算法重新平衡贮存在多个闪速存储器装置中的数据。

著录项

  • 公开/公告号CN105683927A

    专利类型发明专利

  • 公开/公告日2016-06-15

    原文格式PDF

  • 申请/专利权人 桑迪士克科技股份有限公司;

    申请/专利号CN201480058672.6

  • 发明设计人 W.F.克鲁格;

    申请日2014-09-03

  • 分类号G06F12/02;G11C16/00;

  • 代理机构北京市柳沈律师事务所;

  • 代理人万里晴

  • 地址 美国得克萨斯州

  • 入库时间 2023-12-18 15:55:15

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-11-06

    授权

    授权

  • 2016-08-17

    著录事项变更 IPC(主分类):G06F12/02 变更前: 变更后: 申请日:20140903

    著录事项变更

  • 2016-07-13

    实质审查的生效 IPC(主分类):G06F12/02 申请日:20140903

    实质审查的生效

  • 2016-06-15

    公开

    公开

说明书

技术领域

公开的实施例一般地涉及存储器系统,并且具体地涉及改善包括贮存介 质的贮存系统(例如,包括一个或多个闪速存储器装置)的耐受性。

背景技术

半导体存储器装置,包括闪速存储器,通常利用存储器单元来将数据贮 存为电的值,诸如电荷或电压。闪速存储器单元,例如包括具有被用于贮存 数据值的电荷表示的浮置栅极的单个晶体管。已经以各种方式促进了贮存密 度的提高,包括由制造的发展使能的存储器单元在芯片上的密度的提高,以 及从单级闪速存储器单元到多级闪速存储器单元的转变,使得可以由每个闪 速存储器单元贮存两个或多个位。增加贮存密度的缺点在于贮存的数据更加 倾向于被错误地贮存和/或读取。

在一些情况中,当检测到用于闪速存储器装置的触发条件时(例如,从 闪速存储器装置读取不可恢复的码字,恢复码字所需的计算性资源超过预定 的阈值,或者用于闪速存储器装置的编程-擦除(PE)周期的计数超过阈值 值),整个闪速存储器装置被认为已经故障。相反,贮存在闪速存储器装置 上的所有数据必须被复制并且贮存在不同的闪速存储器装置上。该整个装置 的复制丢弃与被认为是故障的装置的仍工作的部分相关联的任何剩余寿命 或值、消耗资源并且将过度的负担置于剩余的闪速存储器装置上。

发明内容

在一些实施例中,贮存控制器被配置为将多个闪速存储器装置分割为多 个逻辑组块并且根据分布算法将数据贮存在多个逻辑组块中。在检测关于多 个闪速存储器装置的各个闪速存储器装置的预定的触发条件之后,贮存控制 器被配置为通过改变分布算法以及根据所述更新的分布算法在闪速存储器 装置之中移动数据而更新分布算法。如此,当检测到关于闪速存储器装置的 触发条件时逻辑组块被移动到新的位置,而不是整个闪速存储器装置故障并 且因此立刻被复制。

附图说明

为了可以更加详细地理解本公开,可以具有参考各种实施例的特性的更 加特定的描述,一些实施例在附图中说明。但是,附图仅示出了本公开的更 加相关的特性并且从而不被认为是限制性的,因为说明书可能认可其他有效 的特性。

图1是示出的根据一些实施例的数据贮存系统的实现方式框图。

图2A是示出的根据一些实施例的管理模块的实现方式框图。

图2B是示出的根据一些实施例的包括在图2A中的特征向量表的示意 图。

图2C是示出的根据一些实施例的包括在图2B中的特征向量的示意图。

图3A是根据一些实施例的多个逻辑组块的框图。

图3B是根据一些实施例的对应于图3A中的多个逻辑组块的间接表的 示意图。

图4A是根据一些实施例的多个逻辑组块的框图。

图4B是根据一些实施例的对应于在图4A中的多个逻辑组块的间接表 的示意图。

图5-7示出了根据一些实施例的触发重新平衡过程的方法的流程图表 示。

图8A-8C示出了根据一些实施例的管理贮存系统的方法的流程图表示。

根据惯例,在附图中示出的各种特性可能未按比例绘制。相应地,为了 清晰,各种特性的大小可以任意地扩大或减小。此外,一些附图可能没有绘 制给定系统、方法或装置的所有组件。最后,贯穿说明书和附图,相似的附 图标记可以被用于表示相似的特性。

具体实施方式

这里所述的各种实施例包括可以改善包括贮存介质的贮存系统的耐受 性(例如,包括一个或多个闪速存储器装置)的装置和/或方法。一些实施例 包括用于通过重新平衡贮存在贮存系统的闪速存储器装置中的数据而管理 贮存系统的方法和/或系统。

更具体地,一些实施例包括管理包括贮存控制器和多个闪速存储器装置 的贮存系统的方法,其中每个闪速存储器装置具有多个闪速存储器块。在一 些实施例中,方法在贮存控制器进行。方法包括:将多个闪速存储器装置的 每一个分割为多个逻辑组块,其中每个逻辑组块包括一个或多个闪速存储器 块;并且对于分布算法将权重分配到多个闪速存储器装置的每一个,其中权 重基于至少多个可用的逻辑组块。方法还包括根据分布算法将数据贮存在多 个闪速存储器装置的多个逻辑组块中。方法还包括检测关于多个闪速存储器 装置的各个闪速存储器装置的预定的触发条件。响应于检测预定的触发条 件,方法包括:降低对应于各个闪速存储器装置的权重;更新分布算法以反 映各个闪速存储器装置的降低的权重;并且根据更新的分布算法重新平衡贮 存在多个闪速存储器装置中的数据。

一些实施例包括贮存控制器,其包括:一个或多个处理器;主机接口, 被配置为将贮存控制器耦接到主机;贮存介质接口,被配置为将贮存控制器 耦接到包括多个闪速存储器装置的贮存介质,多个闪速存储器装置的每一个 具有多个闪速存储器块;以及贮存控制器,贮存指令,当由一个或多个处理 器执行该指令时,使得贮存控制器进行这里所述的任何方法的操作。

一些实施例包括非瞬时性计算机可读贮存介质,其贮存一个或多个程序 以用于由耦接到包括多个闪速存储器装置的贮存介质的贮存控制器的一个 或多个处理器执行,其中每个闪速存储器装置包括多个闪速存储器块,一个 或多个程序包括指令,当由一个或多个处理器执行该指令时,使得贮存控制 器进行这里所述的任何方法的操作。

在这里描述许多细节以便于提供对在附图中示出的示例实施例的透彻 理解。但是,可以不需要许多特定细节而实施一些实施例,并且权利要求的 范围仅由在权利要求中特别记述的那些特性和方面限制。此外,没有以详尽 的细节描述已知的方法、组件和电路,以便不必要地混淆这里所述的实施例 的更加相关的方面。

图1是根据一些实施例的数据贮存系统100的实现方式的示意图。尽管 示出了一些示例特性,但是为了简洁而没有示出各种其它特性以便不混淆这 里所述的示例实施例的更加相关的方面。为此,作为非限制性示例,数据贮 存系统100包括贮存控制器120和贮存介质130,并且数据贮存系统100被 结合计算机系统110使用。在一些实施例中,贮存介质130是单个闪速存储 器装置,而在其它实施例中,贮存介质130包括多个闪速存储器装置。在一 些实施例中,贮存介质130是NAND型闪速存储器或NOR型闪速存储器。 此外,在一些实施例中,贮存控制器120是固态驱动(SSD)控制器。但是, 根据多种实施例的方面可以包括其它类型的贮存介质(例如,PCRAM、 ReRAM、STT-RAM等)。在一些实施例中,闪速存储器装置包括一个或多 个闪速存储器裸芯、一个或多个闪速存储器封装、一个或多个闪速存储器信 道、一个或多个SSD、一个或多个SSD阵列等。

计算机系统110通过数据连接101耦接到贮存控制器120。但是,在一 些实施例中,计算机系统110包括贮存控制器120作为组件和/或子系统。例 如,贮存控制器120的一些或全部功能由执行在计算机系统110上的软件实 现。计算机系统110可以是任何合适的计算机装置,诸如计算机、膝上型计 算机、平板装置、网本、上网亭、个人数字助理、移动电话、智能电话、游 戏装置、计算机服务器或任何其它计算装置。计算机系统110有时被称为主 机或主机系统。在一些实施例中,计算机系统110包括一个或多个处理器、 一个或多个类型的存储器、显示器和/或其它用户接口组件,诸如键盘、触摸 屏、鼠标、触控板、数码相机和/或任何数量的补充装置以添加功能。

贮存介质130通过连接103耦接到贮存控制器120。连接103有时被称 为数据连接,但是通常传送除了数据以外的命令,并且可选地传送除了将被 贮存在贮存介质130中的数据值和从贮存介质130读取的数据值以外的元数 据、误差校正信息和/或其它信息。在一些实施例中,但是,贮存控制器120 和贮存介质130包含在与其组件相同的装置中。此外,在一些实现方式中, 存储器控制器120和贮存介质130被嵌入在主机装置中,该主机装置诸如移 动装置、平板、其它计算机或计算机控制的装置,并且这里所述的方法由嵌 入式存储器控制器进行。贮存介质130可以包括任何数量的(即,一个或多 个)存储器装置,该存储器装置非限制性地包括,诸如闪速存储器的非易失 性半导体存储器装置。例如,闪速存储器装置可以被配置为用于适用于诸如 云计算的应用的企业贮存、用于数据库应用、主要和/或二级贮存、或用于缓 存贮存在(或将被贮存在)诸如硬盘驱动的二级贮存中的数据。此外和/或可 替换地,闪速存储器还可以被配置为相对小规模的应用,诸如个人闪速驱动 或用于个人、膝上型和平板计算机的硬盘替换。

贮存介质130被分割为多个可编址的并且可单独选择的块,诸如可选择 的部分131。在一些实施例中,可单独选择的块是闪速存储器装置中的最小 尺寸的可擦除单元。换句话说,每个块包含可以被同时擦除的最小数量的存 储器单元。每个块通常进一步被分割为多个页和/或字线,其中每个页或字线 通常是块中最小的可单独访问的(可读)部分的实例。然而,在一些实施例 中(例如,使用一些类型的闪速存储器),数据组的最小的可单独访问的单 元是区段,该区段是页的子单元。就是说,块包括多个页,每个页包含多个 区段,并且每个区段是用于从闪速存储器装置读取数据的数据的最小单元。

例如,一个块包括任何数量的页,例如,64页、128页、256页或另外 的合适数量的页。块通常被组合为多个区。每个块区可以在某些程度上被独 立地管理,这提高了用于并行操作的并行度并且简化了贮存介质130的管理。

如上所述,虽然非易失性半导体存储器装置的数据贮存密度普遍地提 高,提高贮存密度的缺点在于贮存的数据更加倾向于被错误地贮存和/或读 取。如将在下面更加详细描述的,误差控制码可以被用于限制由电波动引起 的不可校正的误差的数量、贮存介质、操作条件、装置历史、写入-读取电 路等中的瑕疵、或这些和各种其它因素的组合。

在一些实施例中,贮存控制器120包括管理模块121、输入缓冲器123、 输出缓冲器124、误差控制模块125和贮存介质接口(I/O)128。贮存控制 器120可以包括为了简洁而没有示出的各种额外的特性以便于不混淆这里公 开的示例实施例的更加相关的特性,并且特性的不同的布置是可能的。输入 和输出缓冲器123、124通过将接口提供到计算机系统110。类似地,贮存介 质I/O128通过连接103将接口提供到贮存介质130。在一些实施例中,贮 存介质I/O128包括读取和写入电路,包括能够将读取信号提供到贮存介质 130的电路(例如,用于NAND型闪速存储器的读取阈值电压)。

在一些实施例中,管理模块121包括一个或多个处理单元(CPU,有时 还被称为处理器)122,该一个或多个处理单元被配置为执行一个或多个程 序(例如,在管理模块121中)中的指令。在一些实施例中,一个或多个 CPU122由贮存控制器120的功能中的、并且在一些情况中由超出贮存控制 器120的功能的一个或多个组件共享。管理模块121耦接到输入缓冲器123、 输出缓冲器124(连接未示出)、误差控制模块125和贮存介质I/O128以便 于协调这些组件的操作。

误差控制模块125耦接到贮存介质I/O128、输入缓冲器123和输出缓 冲器124。提供误差控制模块125以限制被无意引入到数据中的不可校正的 误差的数量。在一些实施例中,误差控制模块125由管理模块121的一个或 多个CPU122在软件中执行,并且在其它实施例中,全部或部分使用专用电 路进行编码和译码功能而实现误差控制模块125。在一些实施例中,由执行 在计算机系统110上的软件全部或部分实现误差控制模块125。为此,误差 控制模块125包括编码器126和译码器127。编码器126通过施加误差控制 码以产生码字而编码数据,该码字之后被贮存在贮存介质130中。

当从贮存介质130读取编码的数据(例如,一个或多个码字)时,译码 器127将译码过程施加到编码的数据以恢复数据,并且在误差控制码的误差 校正能力中校正恢复的数据中的误差。本领域的技术人员将理解各种误差控 制码具有不同的误差检测和校正能力,并且该特定的码由于超出本公开的范 围的原因而被选择以用于各种应用。如此,这里不提供对各种类型的误差控 制码的详尽的概述。此外,本领域的技术人员将理解每种类型或系列的误差 控制码可以具有特定于误差控制码的类型或系列的编码和译码算法。另一方 面,一些算法可以至少一些程度上用在译码多个不同类型的或系列的误差控 制码中。如此,为了简洁,这里没有提供对本领域的技术人员一般可用并且 已知的各种类型的编码和译码算法的详尽的描述。

在写入操作期间,输入缓冲器123从计算机系统110接收将贮存在贮存 介质130中的数据。保持在输入缓冲器123中的数据可被用于编码器126, 该编码器126编码数据以产生一个或多个码字。一个或多个码字可被用于贮 存介质I/O128,该贮存介质I/O128以取决于所使用的贮存介质的类型的方 式将一个或多个码字转移到贮存介质130。

当计算机系统(主机)110将一个或多个主机读取命令(例如,经由数 据线101)发送到贮存控制器120从贮存介质130请求数据时起始读取操作。 贮存控制器120将一个或多个读取访问命令经由贮存介质I/O128发送到贮 存介质130,以根据由一个或多个主机读取命令指明的存储器位置(地址) 获得原始读取数据。贮存介质I/O128将原始读取数据(例如,包括一个或 多个码字)提供到译码器127。如果译码成功,译码的数据被提供到输出缓 冲器124,其中译码的数据可被用于计算机系统110。在一些实施例中,如 果译码不成功,贮存控制器120可以求助于多个补救措施或者提供不可解决 的误差条件的指示。

闪速存储器装置利用存储器单元以将数据贮存为电的值,诸如电荷或电 压。每个闪速存储器单元通常包括具有浮置栅极的单个晶体管,该浮置栅极 被用于贮存修改晶体管的阈值电压(即,导通晶体管所需要的电压)的电荷。 电荷的大小,以及该电荷创建的相应的阈值电压,被用于表示一个或多个数 据值。在一些实施例中,在读取操作期间,读取阈值电压被施加到晶体管的 控制栅极并且产生的感测的电流或电压被映射到数据值。

在闪速存储器单元的上下文中,术语“单元电压”和“存储器单元电压”, 意味着存储器单元的阈值电压,其是需要施加到存储器单元的晶体管的栅极 以便于晶体管导通电流的最小电压。类似地,施加到闪速存储器单元的读取 阈值电压(有时也被称为读取信号和读取电压),是施加到闪速存储器单元 的栅极以确定存储器单元在该栅极电压处是否导通电流的栅极电压。在一些 实施例中,当闪速存储器单元的晶体管在指示单元电压小于读取阈值电压的 给定读取阈值电压处导通电流时,对于该读取操作的原始数据值为“1”,否 则原始数据值为“0”。

图2A是示出根据一些实施例的示例性管理模块121的框图。管理模块 121通常包括:一个或多个处理单元(CPU)122,用于执行贮存在存储器 202中的模块、程序和/或指令并且从而进行处理操作;存储器202;以及一 个或多个通信总线204,用于互连这些组件。一个或多个通信总线204,可 选地包括互连系统组件并控制系统组件之间的通信的电路(有时被称为芯片 组)。管理模块121由一个或多个通信总线204耦接到缓冲器123、缓冲器 124、误差控制模块125和贮存介质I/O128。存储器202包括高速随机存取 存储器——诸如DRAM、SRAM、DDRRAM,或者其它随机存取固态存储 器装置,并且可以包括非易失性存储器——诸如一个或多个磁盘贮存装置、 光盘贮存装置,闪速存储器装置、或者其它非易失性固态贮存装置。存储器 202,可选地包括位于远离(一个或多个)CPU122的一个或多个贮存装置。 存储器202,或者可替换地存储器202中的(一个或多个)非易失性存储器 装置,包括非瞬时性计算机可读贮存介质。在一些实施例中,存储器202或 存储器202的非瞬时性计算机可读贮存介质,贮存以下程序、模块和数据结 构或其子集或超集:

数据读取模块206,用于从包括多个闪速存储器装置的贮存介质130读 取数据;

数据写入模块208,用于将数据写入到贮存介质130;

数据擦除模块210,用于将数据从贮存介质130擦除;

逻辑组块管理模块212,用于将多个闪速存储器装置的每一个分割为多 个逻辑组块,包括:

逻辑到物理的映射214,其将用于逻辑组块的每一个的逻辑地址(或 一组逻辑地址)与物理地址(或一组物理地址)相关联;

冗余模块216,用于将多个逻辑组块布置为冗余组,包括用于维持包 括冗余组的每个逻辑组块的位置(或物理地址)的间接表218;

触发条件检测模块220,用于检测关于多个闪速存储器装置的各个闪速 存储器装置的触发条件;

分布模块222,用于根据分布算法在多个逻辑组块中贮存数据,包括:

算法更新模块224,用于更新分布算法;以及

平衡模块226,用于在多个闪速存储器装置之中平衡(或重新平衡) 贮存的数据;

重新编码模块232,用于以更高水平的误差校正保护重新编码逻辑组块 中的数据;以及

特征向量表234,包括许多特征向量236,其每一个贮存用于贮存介质 130的各个部分(例如,贮存介质130的闪速存储器装置、裸芯、块区、块、 字线、字线区或页部分)的特征数据。

上述识别的元件的每一个可以贮存在之前提到的存储器装置的一个或 多个中,并且对应于用于进行上述功能的指令集。上述识别的模块或程序 (即,指令集)不需要实现为单独的软件程序、规程或模块,并且从而这些 模块的各种子集可以组合或者在各种实施例中另外地重新布置。在一些实施 例中,存储器202可以贮存以上识别的模块和数据结构的子集。此外,存储 器202可以贮存以上未描述的额外的模块和数据结构。在一些实施例中,贮 存在存储器202中的程序、模块和数据结构,或者存储器202的非瞬时性计 算机可读贮存介质,提供用于实现参考图8A-8C在下面所述的任何方法的指 令。在一些实施例中,这些模块的一些或全部可以用包含模块功能的部分或 全部的专用的硬件电路实现。

尽管图2A示出了管理模块121,但是图2A相比于这里所述的实施例的 结构性示意更倾向于作为可能出现在管理模块中的各种特性的功能性描述。 实践中,并且如由本领域普通技术人员识别的,单独示出的程序、模块和数 据结构可以被组合并且一些程序、模块和数据结构可以被分开。

图2B是示出根据一些实施例的特征向量表234的实现方式的框图。特 征向量表234包括特征向量236的集合,每个特征向量236贮存与贮存介质 130的各个部分(例如,贮存介质130的区别装置、裸芯、块区、块、字线、 字线区或页部分)相关联的特征数据。在一些实施例中,特征向量236的集 合中的每个向量(例如,向量236-1、向量236-2、...、向量236-n)贮存在 至少两个时间段(例如,时间T-1和时间T-2、或X编程-擦除(PE)周期和 2XPE周期)的每个期间得到的特征数据。在一些实施例中,统计地得到贮 存在特征向量236中的特征数据。例如,而不限制,在其中贮存介质(例如, 贮存介质130,图1)包括多个闪速存储器装置的一些实施例中,特征向量 表234包括用于每个区别闪速存储器装置的至少一个特征向量。在另外的示 例中,在一些实施例中,特征向量表234包括用于贮存介质130中的每个闪 速存储器装置的一组区别特征向量236,并且用于每个闪速存储器装置的区 别特征向量236的组包括用于闪速存储器装置中的每个闪速存储器裸芯的至 少一个区别特征向量。参考图2C在下面描述了特征向量236的更加详细的 示例实施例。

图2C是根据一些实施例的用于多个闪速存储器装置的各个闪速存储器 装置的特征向量240(例如,对应于图2B中示出的特征向量236的一个) 的实现方式的示意图。在一些实施例中,贮存在特征向量240中的特征数据 包括贮存介质特征参数值——诸如指示用于各个闪速存储器装置的故障的 闪速存储器块的数量的故障的块计数器字段242,指示在各个闪速存储器装 置上进行的PE周期的数量的当前计数的编程-擦除(PE)周期字段244,以 及具有用于各个闪速存储器装置的一个或多个读取阈值电压的读取阈值电 压字段246。在一些实施例中,一个或多个贮存介质特征参数值提供以下至 少一个的指示:与贮存介质的各个部分(例如,贮存介质130的区别装置、 裸芯、块区、块、字线、字线区或页部分)相关联的物理特征、与贮存介质 的各个部分相关联的操作模式、与贮存介质的各个部分相关联的使用历史、 与贮存介质的各个部分相关联的条件特征、与贮存介质的各个部分相关联的 读取类型以及与贮存介质的各个部分相关联的(一个或多个)位置。

图3A是示出根据一些实施例的多个逻辑组块的框图。图3A示出了包 括在不一定是相同尺寸的贮存介质130(例如,装置1、2、3、4、5、6、...) 中的多个闪速存储器装置。在一些实施例中,贮存介质130包括更多或更少 数量的闪速存储器装置。在一些实施例中,多个闪速存储器装置的每一个是 单裸芯或多裸芯闪速存储器装置。在一些实施例中,贮存控制器120和贮存 介质130包括贮存系统,其中贮存介质130包括诸如闪速存储器装置的一个 或多个存储器装置。

在图3A中,例如,贮存控制器120或其组件(例如,逻辑组块管理模 块212,图2A)将闪速存储器装置的每一个分割为不一定是相同尺寸的多个 逻辑组块。例如,装置1被分割为逻辑组块1a、1b、1c、1d、1e。每个逻辑 组块被分配到逻辑地址(或逻辑地址的组),该逻辑地址在逻辑到物理的映 射214中被映射到物理地址(或物理地址的组)。在一些实施例中,逻辑组 块的尺寸由贮存系统的系统管理员在软件中确定。在一些实施例中,逻辑组 块的尺寸由贮存系统使用的协议确定。

在一些实施例中,贮存控制器120或其组件(例如,分布模块222,图 2A)被配置为根据分布算法将数据贮存在多个逻辑组块中。在一些实施例中, 分布算法使用可扩展的哈希函数伪随机地识别逻辑组块,在该逻辑组块中基 于映射层级和一组分布规则贮存数据。例如,分布算法可以从可伸缩哈希 (CRUSH)算法之下的控制的复制中得到,该算法在Weil,SageA.(2007), CEPH:可靠的、可伸缩并且高性能分布的贮存(Reliable,Scalable,and High-PerformanceDistributedStorage)(博士论文)中描述。在一些实施例中, 映射层级反映贮存系统(例如,贮存介质130)的贮存资源。例如,当贮存 介质130包括企业贮存环境时,映射层级包括在企业贮存环境中的行的数量、 每行柜的数量、每柜架的数量、每架闪速存储器装置的数量以及每个闪速存 储器装置的权重。在一些实施例中,层级的每一级(即,行、柜、架、闪速 存储器装置)被认为是故障域。在一些实施例中,贮存控制器120或其组件 (例如,算法更新模块224,图2A)被配置为由于贮存资源(例如,闪速存 储器装置、整个框架等)被添加到企业贮存环境或者从企业贮存环境移除来 修改映射层级。

在一些实施例中,分布规则组包括必须被贮存的多个数据的冗余的副 本、数据的冗余的副本之间的多个故障域、以及当在检测关于各个闪速存储 器装置的预定的触发条件时将逻辑组块从各个闪速存储器装置迁移到第二 闪速存储器装置时,必须经过多个故障域。例如,如果分布规则组指示迁移 的逻辑组块必须经过至少两个故障域并且各个逻辑组块贮存在行1,柜2, 架3,装置4中,各个逻辑组块必须至少被迁移到(例如,复制并且复制的 副本贮存在)柜2(例如,穿过装置和架故障域)中的不同的架中。在一些 实施例中,分布规则组被选中使得迁移的逻辑组块被贮存在由不同的存储器 控制器控制的不同的电子电路中,或者位于与各个逻辑组块不相同的物理位 置中。例如,分布规则组指示三个数据的冗余的副本必须贮存在闪速存储器 装置的不共享相同的电子电路的不同的柜中。

图3A还示出了用于多个闪速存储器装置的每一个的权重。在图3A中, 例如,多个闪速存储器装置的每一个具有等于五的权重。各个闪速存储器装 置的权重基于至少分配到闪速存储器装置的逻辑组块的数量或者在可用于 贮存数据的闪速存储器装置上的逻辑组块的数量。例如,逻辑组块当其已经 被分配到逻辑地址(或一组逻辑地址)时被认为是被分配了。

图3B是根据一些实施例的对应于图3A中的多个逻辑组块的间接表的 示意图。在一些实施例中,在将多个闪速存储器装置分割为多个逻辑组块之 后(或者与此同时),贮存控制器120或其组件(例如,冗余模块216,图 2A)被配置为将多个逻辑组块布置为冗余组,其中每个冗余组包括一个或多 个逻辑组块。在一些实施例中,每个冗余组贮存足以使能恢复贮存在一个或 多个逻辑组块的至少一个中的数据的冗余的数据。间接表218包括在每个冗 余组中的一个或多个逻辑组块的位置(或物理地址)。在一些实施例中,贮 存控制器120或其组件(例如,冗余模块216,图2A)被配置为由于冗余组 中的一个或多个逻辑组块的物理地址随时间改变(例如,由于逻辑组块在闪 速存储器装置之间迁移)而维持和更新间接表218。

在图3B中,例如,间接表218示出了用于冗余组1中的逻辑组块1的 物理地址位于闪速存储器装置1(例如,由坐标1,1指示)处的第一位置(或 物理地址的第一范围)中,用于冗余组1中的逻辑组块2的物理地址位于闪 速存储器装置2(例如,由坐标2,1指示)处的第一位置(或物理地址的第 一范围)中,用于冗余组1中的逻辑组块3的物理地址位于闪速存储器装置 3(例如,由坐标3,1指示)处的第一位置(或物理地址的第一范围)中, 用于冗余组1中的逻辑组块4的物理地址位于闪速存储器装置4(例如,由 坐标4,1指示)处的第一位置(或物理地址的第一范围)中,用于冗余组1 中的逻辑组块5的物理地址位于闪速存储器装置5(例如,由坐标5,1指示) 处的第一位置(或物理地址的第一范围)中,并且用于冗余组1中的逻辑组 块6的物理地址位于闪速存储器装置6(例如,由坐标6,1指示)处的第一 位置(或物理地址的第一范围)中。在图3B中,例如,包括逻辑组块1a、 2a、3a、4a、5a、6a的冗余组1在六个闪速存储器装置(例如,连续的RAID 条带)之上被冗余地编码。在图3B中,例如,冗余组2-5遵循与冗余组1 类似的组织化方案。本领域普通技术人员将理解,可以实现多种冗余方案但 是为了简洁的原因而没有在此讨论。

图4A是根据一些实施例的多个逻辑组块的框图。例如,在检测关于多 个闪速存储器装置的各个闪速存储器装置的预定的触发条件之后,贮存控制 器120或其组件(例如,分布模块224,图2A)被配置为降低与各个闪速存 储器装置相关联的权重。在下面参考图5-7更加详细地讨论了预定的触发条 件的检测。在图4A中,例如,由于用于闪速存储器装置1的预定的触发条 件的检测,对应于闪速存储器装置1的权重(例如,W1)已经从五降低到四。 在一些实施例中,贮存控制器120或其组件(例如,分布模块224,图2A) 还被配置为更新分布算法以反映用于闪速存储器装置1的降低的权重。

在一些实施例中,在更新分布算法之后,贮存在多个闪速存储器装置中 的数据根据更新的分布算法被重新平衡。在一些实施例中,重新平衡贮存在 多个闪速存储器装置中的数据包括将至少一个逻辑组块从各个闪速存储器 装置(检测到用于其的预定的触发条件)迁移到不同的闪速存储器装置。在 图4A中,例如,逻辑组块1c已经被划掉,因为其根据分布算法已经从闪速 存储器装置1迁移出到不同的闪速存储器装置。应注意的是,在一些实施例 中,触发迁移的预定的条件不一定需要源自于被选择用于迁移的各个逻辑组 块中,仅需要在相同的闪速存储器装置中。

图4B是根据一些实施例的对应于图4A中的多个逻辑组块的间接表的 示意图。间接表218是图3B中示出的间接表的更新的版本。在图4B中, 间接表218反映在图4A中示出的多个闪速存储器装置的更新的权重。图4B, 例如,示出了冗余组3中的逻辑组块1和2具有新的物理地址(例如,由坐 标X,X指示),因为逻辑组块1c和2c已经根据更新的分布算法从闪速存 储器装置1和2迁移出并且已经贮存在不同的闪速存储器装置处。

图5示出了根据一些实施例的触发重新平衡过程的方法500的流程图表 示。在一些实施例中,在贮存系统处进行的方法500包括贮存控制器120, 和包括各个闪速存储器装置的多个闪速存储器装置(例如,贮存介质130, 图1)。

在步骤502处,各个闪速存储器装置确定已经故障或者在将来有时将发 生故障的各个闪速存储器装置的闪速存储器块的阈值数量。在一些实施例 中,多个闪速存储器装置的每一个保持指示用于各个闪速存储器装置的故障 的闪速存储器块的数量的计数器。在一些实施例中,贮存控制器120或其组 件被配置为维持多个闪速存储器装置的每一个的计数器,该计数器指示用于 多个闪速存储器装置的各个闪速存储器装置的故障的闪速存储器块的数量。 在一些实施例中,贮存控制器120或其组件被配置为在特征向量表234中贮 存并且维持用于多个闪速存储器装置的每一个的特征向量236的集合。在一 些实施例中,用于各个闪速存储器装置的各个特征向量236包括指示用于各 个闪速存储器装置的故障的闪速存储器块的数量的故障的块计数器字段 242。在一些实施例中,当从闪速存储器块读取的一个或多个码字是不可校 正的时,或者在从闪速存储器块读取一个或多个码字之后产生的其它误差校 正码(ECC)信息指示对应于一个或多个码字的误码率超过预定的阈值时, 闪速存储器块故障。在一些实施例中,当用于闪速存储器块的PE周期的计 数超过预定的阈值时,闪速存储器块故障。在一些实施例中,故障的闪速存 储器块的阈值数等于在逻辑组块中的闪速存储器块的数量。在一些实施例 中,故障的闪速存储器块的阈值数量等于在逻辑组块中的闪速存储器块的数 量的整数倍数。

在步骤504处,各个闪速存储器装置减少其宣传的尺寸。在一些实施例 中,当前(或减少的)宣传的尺寸和之前宣传的尺寸之间的差等于包括逻辑 组块的闪速存储器块的数量。在一些实施例中,闪速存储器装置的宣传的尺 寸是向贮存控制器120宣传的、等于贮存数据并且可用于贮存数据的逻辑组 块的量的字节或地址的量。在一些实施例中,闪速存储器装置的宣传的尺寸 等于包括闪速存储器装置的闪速存储器块的总量和故障的闪速存储器块的 数量之间的差。

在步骤506处,贮存控制器120将存储器访问请求(例如,读取或写入 操作)引导到各个闪速存储器装置。在一些实施例中,贮存控制器120响应 于来自主机的请求,将存储器访问请求引导到各个闪速存储器装置以在对应 于与各个闪速存储器装置相关联的存储器位置的逻辑地址处进行存储器访 问操作。

在步骤508处,各个闪速存储器装置响应于接收存储器访问请求,将延 迟的误差返回到贮存控制器120。延迟的误差指示用于各个闪速存储器装置 的阈值数量的闪速存储器块已经故障。例如,当由贮存系统使用小型计算机 系统接口(SCSI)协议时,延迟的误差可以是当接收存储器访问请求时仅返 回(或报告)到贮存控制器120的延迟的SCSI误差。

在步骤510处,响应于接收延迟的误差,贮存控制器120查询各个闪速 存储器装置以便于确定其当前宣传的尺寸。在一些实施例中,贮存控制器120 或其组件(例如,触发条件检测模块220,图2A)被配置为响应于接收延迟 的误差而检测关于各个闪速存储器装置的预定的触发条件。可替换地,响应 于接收延迟的误差,贮存控制器120起始关于各个闪速存储器装置的重新平 衡过程(在下面关于方法800更加详细地描述)。

在步骤512处,各个闪速存储器装置响应于接收来自贮存控制器120的 查询,返回当前(即,减少的)宣传的尺寸。

在步骤514处,贮存控制器120确定由各个闪速存储器装置返回的当前 宣传的尺寸是否小于各个闪速存储器装置的之前宣传的尺寸。在一些实施例 中,贮存控制器120确定由各个闪速存储器装置返回的当前宣传的尺寸是否 小于由各个闪速存储器装置贮存的数据的量。例如,这指示至少等于当前宣 传的尺寸和由各个闪速存储器装置贮存的数据的量之间的差的数据的量需 要被迁移到不同于各个闪速存储器装置的第二闪速存储器装置。

在步骤516处,根据各个闪速存储器装置的当前宣传的尺寸小于各个闪 速存储器装置的之前宣传的尺寸的确定,贮存控制器120起始关于各个闪速 存储器装置的重新平衡过程(在下面关于方法800更加详细地描述)。

图6示出了根据一些实施例的触发重新平衡过程的方法600的流程图表 示。在一些实施例中,方法600在包括贮存控制器120和多个闪速存储器装 置(例如,贮存介质130,图1)的贮存系统处进行,该多个闪速存储器装 置包括各个闪速存储器装置。

在步骤602处,各个闪速存储器装置确定各个闪速存储器装置的阈值数 量的闪速存储器块已经故障或者在将来有时可能发生故障。参见以上关于图 5的步骤502的例如关于用于确定各个闪速存储器装置是否已经故障的准则 的讨论。

在步骤604处,响应于步骤602中的确定,各个闪速存储器装置将通知 返回到贮存控制器120。该通知指示各个闪速存储器装置的阈值数量的闪速 存储器块已经故障。例如,当由贮存系统使用小型计算机系统接口(SCSI) 协议时,该误差可能是主动式SCSI硬件误差。

在步骤606处,响应于接收来自各个闪速存储器装置的通知,贮存控制 器120起始关于各个闪速存储器装置的重新平衡过程(在下面关于方法800 更加详细地描述)。在一些实施例中,贮存控制器120或其组件(例如,触 发条件检测模块220,图2A)被配置为响应于接收误差,检测关于各个闪速 存储器装置的预定的触发条件。

图7示出了根据一些实施例的触发重新平衡过程的方法700的流程图表 示。在一些实施例中,方法700在贮存控制器120处进行。

在步骤702处,贮存控制器120确定用于多个闪速存储器装置的各个闪 速存储器装置的阈值数量的闪速存储器块已经故障或者在将来有时可能发 生故障。参见以上关于图5的步骤502的例如关于用于确定各个闪速存储器 装置是否已经故障的准则的讨论。

在步骤704处,响应于确定用于各个闪速存储器装置的阈值数量的闪速 存储器块已经故障,贮存控制器120起始关于各个闪速存储器装置的重新平 衡过程(在下面关于方法800更加详细地描述)。在一些实施例中,贮存控 制器120或其组件(例如,触发条件检测模块220,图2A)被配置为响应于 确定用于各个闪速存储器装置的阈值数量的闪速存储器块已经故障,检测关 于各个闪速存储器装置的预定的触发条件。

图8A-8C示出了管理包括贮存控制器和多个闪速存储器装置的贮存系 统的方法800的流程图表示,其中每个闪速存储器装置具有多个闪速存储器 块。在一些实施例中,方法800由图1中的贮存控制器120进行,该贮存控 制器120区别于图1的贮存介质130,并且由一个或多个连接(例如,连接 103,图1)耦接到图1的贮存介质130(例如,包括多个闪速存储器装置)。 可选的操作由虚线指示(例如,具有虚线边界的方框)。

在一些实施例中,方法800由贮存控制器120或贮存控制器120的一个 或多个组件(例如,管理模块121,图1和2A)进行。在一些实施例中,方 法800由贮存在非瞬时性计算机可读贮存介质中的指令以及由装置的一个或 多个处理器(诸如管理模块121的一个或多个处理单元(CPU)122)执行 的指令管理。在一些实施例中,方法800全部或部分由计算机系统110进行。

贮存控制器将多个闪速存储器装置的每一个分割(802)为多个逻辑组 块,其中每个逻辑组块包括一个或多个闪速存储器块。在一些实施例中,贮 存控制器120或其组件(例如,逻辑组块管理模块218,图2A)被配置为将 多个闪速存储器装置的每一个分割为多个逻辑组块。此外,用于多个逻辑组 块的每一个的逻辑地址(或逻辑地址的组)在逻辑到物理的映射214中与物 理地址(或物理地址的组)相关联。在一些实施例中,贮存控制器120或其 组件(例如,逻辑组块管理模块218,图2A)被配置为随着逻辑组块在闪速 存储器装置之间迁移而维持并且更新逻辑到物理的映射214。

在一些实施例中,由软件预先确定(804)多个逻辑组块的尺寸。例如, 贮存系统的管理员能够确定逻辑组块的尺寸。通常,逻辑组块的尺寸大于或 等于1MB。

在一些实施例中,基于由贮存系统使用的协议确定(806)多个逻辑组 块的尺寸。例如,当小型计算机系统接口(SCSI)协议被用于贮存系统时, 逻辑组块可以是逻辑单元数量(LUN)。SCSI协议在贮存系统中支持达64, 000个LUN;但是,一些操作系统仅支持达16,000个LUN。例如,8TB 贮存系统可以被分割为16,000个500MBLUN。

贮存控制器对于分布算法将权重分配(808)到多个闪速存储器装置的 每一个,其中权重对应于(例如,基于至少)多个可用的逻辑组块。在一些 实施例中,逻辑组块当其被分配逻辑地址(或逻辑地址组)和/或能够贮存数 据时是可用的。

贮存控制器根据分布算法将数据贮存(810)在多个闪速存储器装置的 多个逻辑组块中。在一些实施例中,分布算法使用可扩展的哈希函数伪随机 地识别逻辑组块,在该逻辑组块中基于映射层级和一组分布规则贮存数据。 在一些实施例中,映射层级反映贮存系统(例如,贮存介质130,图1)的 可用的贮存资源以及贮存系统中的多个闪速存储器装置的权重。在一些实施 例中,分布规则组包括必须被贮存的多个数据的冗余的副本、数据的冗余的 副本之间的多个故障域、以及当在闪速存储器装置之前迁移逻辑组块时必须 经过的多个故障域。

贮存控制器检测(812)关于多个闪速存储器装置的各个闪速存储器装 置的预定的触发条件。在图5中,例如,贮存控制器120或其组件(例如, 触发条件检测模块220,图2A)响应于从各个闪速存储器装置接收延迟的误 差,而检测关于各个闪速存储器装置的预定的触发条件。在该示例中,在从 贮存控制器120接收存储器访问请求之后,各个闪速存储器装置将延迟的误 差发送到贮存控制器120。在图6中,例如,贮存控制器120或其组件(例 如,触发条件检测模块220,图2A)当接收来自各个闪速存储器装置的通知 时,检测关于各个闪速存储器装置的预定的触发条件。在该示例中,在确定 用于各个闪速存储器装置的阈值数的闪速存储器块已经故障之后,各个闪速 存储器装置将主动式误差发送到贮存控制器120。在图7中,例如,贮存控 制器120或其组件(例如,触发条件检测模块220,图2A)在确定用于各个 闪速存储器装置的块的阈值数已经故障之后,检测关于各个闪速存储器装置 的预定的触发条件。

在一些实施例中,检测的预定的触发条件是(814)一组预定的触发条 件中的一个。例如,如上所述,预定的触发条件的组包括:贮存控制器120 从各个闪速存储器装置接收延迟的误差;贮存控制器120从各个闪速存储器 装置接收主动式误差;以及贮存控制器120确定用于各个闪速存储器装置的 阈值数量的块已经故障。其中延迟的或主动式误差由贮存控制器120接收, 多个闪速存储器装置的每一个维持指示用于各个闪速存储器装置的故障的 闪速存储器块的数量的计数器。其中贮存控制器120确定用于各个闪速存储 器装置的阈值数量的块已经故障,贮存控制器120维持指示用于多个闪速存 储器装置的各个闪速存储器装置的故障的闪速存储器块的数量的多个闪速 存储器装置的每一个的计数器。

在一些实施例中,贮存控制器在将存储器访问请求引导到各个闪速存储 器装置之后检测(816)预定的触发条件。在图5中,例如,贮存控制器120 或其组件(例如,触发条件检测模块220,图2A)响应于接收延迟的误差并 且在步骤506处在将存储器访问请求引导到各个闪速存储器装置之后,检测 关于各个闪速存储器装置的预定的触发条件。

在一些实施例中,预定的触发条件指示(818)用于各个闪速存储器装 置的故障的闪速存储器块的计数器超过阈值数量的整数倍数,该阈值数量包 括包含在逻辑组块中的闪速存储器块的数量或包含在逻辑组块中的闪速存 储器块的数量的整数倍数。在图5中,例如,贮存控制器120从各个闪速存 储器装置接收延迟的误差,其指示用于各个闪速存储器装置的故障的闪速存 储器块的计数器超过阈值数量的整数倍数。在图6中,例如,贮存控制器120 从各个闪速存储器装置接收主动式误差,其指示用于各个闪速存储器装置的 故障的闪速存储器块的计数器超过阈值数量的整数倍数。在图7中,例如, 贮存控制器120确定用于各个闪速存储器装置的故障的闪速存储器块的计数 器超过阈值数量的整数倍数。例如,如果逻辑组块包括10个闪速存储器块, 阈值数量是10或者10的整数倍数(例如,20、30、40、50等)。例如,当 阈值数量为10时,预定的触发条件指示用于各个闪速存储器装置的故障的 闪速存储器块的计数器超过10或者10的整数倍数(例如,20、30、40、50 等)。

在一些实施例中,响应于检测(820)预定的触发条件,贮存控制器查 询(822)各个闪速存储器装置以确定各个闪速存储器装置的尺寸是否小于 各个闪速存储器装置之前的尺寸,并且根据查询指示各个闪速存储器装置的 尺寸小于各个闪速存储器装置之前的尺寸的确定,而进行降低、更新和重新 平衡。在图5中,例如,贮存控制器120或其组件(例如,触发条件检测模 块220,图2A)当从各个存储器装置接收延迟的误差时,检测关于各个闪速 存储器装置的预定的触发条件。在图5中,例如,响应于检测关于各个闪速 存储器装置的预定的触发条件,贮存控制器120或其组件在步骤510处查询 各个闪速存储器装置。在图5中,例如,当在步骤514处确定装置的当前宣 传的尺寸小于装置的之前宣传的尺寸时,贮存控制器120或其组件(例如, 分布模块222,图2A)在步骤516处起始重新平衡过程(包括降低、更新和 重新平衡)。

响应于检测(820)预定的触发条件,贮存控制器降低(824)对应于各 个闪速存储器装置的权重。在一些实施例中,贮存控制器120或其组件(例 如,算法更新模块224,图2A)被配置为在检测关于各个闪速存储器装置的 预定的触发条件之后,降低与各个闪速存储器装置相关联的权重。例如,与 各个闪速存储器装置相关联的权重在层级映射中被减低。在图4A中,例如, 由于关于闪速存储器装置1、2、4和6的预定的触发条件的检测,对应于闪 速存储器装置1、2、4和6的权重(例如,W1、W2、W4、W6)相比于它们 在图3A中的权重已经被减低了。在图4A中,例如,逻辑组块1c、2a、2c、 2e、4b、4e和6d已经被划掉以指示它们不再可用并且不能贮存新的数据。

响应于检测(820)预定的触发条件,贮存控制器更新(826)分布算法 以反映各个闪速存储器装置的降低的权重。在一些实施例中,贮存控制器120 或其组件(例如,算法更新模块224,图2A)被配置为在检测关于各个闪速 存储器装置的预定的触发条件之后,更新分布算法以反映各个闪速存储器装 置的降低的权重。

响应于检测(820)预定的触发条件,贮存控制器根据更新的分布算法 重新平衡(828)贮存在多个闪速存储器装置中的数据。降低、更新和重新 平衡在这里有时被称为重新平衡过程,该重新平衡过程由检测关于各个闪速 存储器装置的预定的触发条件而触发。在一些实施例中,重新平衡贮存在多 个闪速存储器装置中的数据包括根据分布算法改变贮存在多个闪速存储器 装置处的逻辑组块的数量。例如,贮存控制器120或其组件(例如,平衡模 块226,图2A)被配置为在检测关于各个闪速存储器装置的预定的触发条件 之后,根据更新的分布算法重新平衡贮存在闪速存储器装置处的逻辑组块的 数量。例如,贮存在各个闪速存储器装置(检测到用于其的预定的触发条件) 上的至少一个逻辑组块被从各个闪速存储器装置迁移出到不同于各个闪速 存储器装置的第二闪速存储器装置。在一些实施例中,不同于各个闪速存储 器装置的第二闪速存储器装置根据更新的分布算法被伪随机地识别。应注意 的是,在一些实施例中,触发迁移的预定的条件不一定需要源自于被选择以 用于迁移的各个逻辑组块中,仅需要在相同的闪速存储器装置中。在一些实 施例中,在重新平衡完成之后,贮存控制器120或其组件通知各个闪速存储 器装置(检测到用于其的预定的触发条件),由各个闪速存储器装置之前贮 存的至少一个逻辑组块已经从各个闪速存储器装置迁移出并且至少一个逻 辑组块现在可用(例如,经由用于标准SSD的TRIM或UNMAP命令)。

在一些实施例中,重新平衡包括(830)将至少一个逻辑组块从各个闪 速存储器装置迁移到不同于各个闪速存储器装置的第二闪速存储器装置。在 一些实施例中,迁移包括:在检测到用于其的预定的触发条件的各个闪速存 储器装置上复制多个闪速存储器装置的至少一个;以及在不同于各个闪速存 储器装置的第二闪速存储器装置处贮存多个闪速存储器装置的至少一个的 复制的副本。在一些实施例中,迁移包括:根据预定的选择准则选择各个闪 速存储器装置的多个逻辑组块的一个以用于迁移;并且在不同于各个闪速存 储器装置的第二闪速存储器装置处贮存包括选择的逻辑组块的副本的复制 的逻辑组块。在一些实施例中,预定的选择准则包括各个闪速存储器装置的 最少使用的逻辑组块或最少填充的逻辑组块。在一些实施例中,预定的选择 准则包括与存储器访问请求相关联的逻辑组块。在一些实施例中,至少一个 逻辑组块贮存在与其之前贮存的不同类型的存储器介质中。例如,至少一个 逻辑组块从闪速存储器迁移到HDD或者反之亦然。

在一些实施例中,在将至少一个逻辑组块从各个闪速存储器装置迁移到 第二闪速存储器装置之后,贮存控制器120或其组件(例如,逻辑组块管理 模块212,图2A)被配置为更新逻辑到物理的映射214以反映至少一个逻辑 组块的迁移。例如,与分配到至少一个逻辑组块的逻辑地址(或逻辑地址组) 相关联的物理地址被从在各个闪速存储器装置处的物理地址改变为在第二 闪速存储器装置处的物理地址。

在一些实施例中,第二闪速存储器装置与各个闪速存储器装置位于 (832)不同的故障域中。如上所讨论的,层级映射反映贮存系统的贮存资 源并且层级映射的每一级是故障域(即,行、柜、架、闪速存储器装置)。 例如,各个闪速存储器装置(检测到用于其的预定的触发条件)位于行1, 柜2,架3,装置4并且第二闪速存储器装置至少在不同的故障域(例如, 不同的装置)中。在一些实施例中,用于分布算法的分布规则组指定第二闪 速存储器装置(或者各个逻辑组块迁移到其的位置)必须经过预定数量的故 障域。例如,如果分布规则组指示各个逻辑组块必须经过至少两个故障域并 且各个逻辑组块被贮存在行1,柜2,架3,装置4,各个逻辑组块必须至少 被迁移到(例如,复制并且复制的副本贮存在)柜2中的不同的架(例如, 经过装置和架故障域)。

在一些实施例中,响应于检测(820)预定的触发条件,贮存控制器在 各个闪速存储器装置的至少一个逻辑组块中,以比在各个闪速存储器装置的 至少一个逻辑组块中的数据的之前的编码更高水平的误差校正保护重新编 码(834)数据。在一些实施例中,贮存控制器120或其组件(例如,重新 编码模块232,图2A)被配置为在检测到关于各个闪速存储器装置的预定的 触发条件之后,在用于各个闪速存储器装置的多个逻辑组块的一个中重新编 码数据。作为一个示例,对于各个逻辑组块包含了更多的校验位(即,增加 了校验-数据的比率)。作为另外的示例,更强的ECC方案被用于各个逻辑组 块。例如,贮存在各个逻辑组块中的数据被从Bose-Chaudhuri-Hocquenghem (BCH)编码到低密度奇偶校验码(LDPC)编码重新编码。

在一些实施例中,贮存控制器将多个逻辑组块布置(836)为多个冗余 组,每个冗余组包括一个或多个逻辑组块并且贮存足以使能恢复贮存在一个 或多个逻辑组块的至少一个中的数据的冗余的数据。例如,冗余数据包括程 序、指令、ECC、元数据、用户数据、系统数据和/或运算符数据。在一些实 施例中,贮存控制器120或其组件(例如,冗余模块216,图2A)被配置为 将多个逻辑组块布置为冗余组,其中每个冗余组包括一个或多个逻辑组块。 在一些实施例中,每个冗余组贮存足以使能恢复贮存在一个或多个逻辑组块 的至少一个中的数据的冗余的数据。

在一些实施例中,贮存控制器将包括各个冗余组的一个或多个逻辑组块 与各个冗余组在间接表中相关联(838)。间接表218包含在每个冗余组中的 一个或多个逻辑组块的逻辑地址。在一些实施例中,贮存控制器120或其组 件(例如,冗余模块216,图2A)被配置为由于冗余组中的一个或多个逻辑 组块的逻辑地址随时间而改变(例如,由于逻辑组块在闪速存储器装置之间 迁移)而维持并且更新间接表218。

将理解的是,尽管术语“第一”、“第二”等在这里可以被用于描述各种元 件,但是这些元件不应由这些术语限制。这些术语仅被用于将一个元件与另 一个区分。例如,第一闪速存储器装置可以被称为第二闪速存储器装置,并 且类似地,第二闪速存储器装置可以被称为第一闪速存储器装置,这改变说 明书的含义,只要“第一闪速存储器装置”的所有出现被一致地重新命名并且 “第二闪速存储器装置”的所有出现被一致地重新命名。第一闪速存储器装置 和第二闪速存储器装置两者是闪速存储器装置,但是它们不是同一个闪速存 储器装置。

这里使用的术语是仅是为了描述特定的实施例,而不是为了限制权利要 求。如在对实施例的描述和所附权利要求中所使用的,单数形式“一”、“一 个”和“该”意欲也包括复数形式,除非上下文另有清楚的指示。还可以理解 的是,这里所使用的术语“和/或”是指并且包含一个或多个相关联的列出的项 目的任意和所有可能组合。还可以理解的是,当在本说明书中使用时,术语 “包括”和/或“包含”指定所述特征、整数、步骤、操作、元件和/或部件的存 在,但是不排除一个或多个其他特征、整数、步骤、操作、元件、部件和/ 或其组的存在或添加。

如这里所使用的,根据上下文,术语“如果”可以解释为意思是“当所述 的先决条件为真时”或“在所述的先决条件为真时”或“响应于确定所述的先决 条件为真”或“根据所述的先决条件为真的确定”或“响应于检测到所述的先决 条件为真”。类似地,根据上下文,短语“如果确定[所述的先决条件为真]”或 “如果[所述的先决条件为真]”或“当[所述的先决条件为真]时”可以解释为意 思是“当确定所述的先决条件为真时”或“响应于确定所述的先决条件为真”或 “根据所述的先决条件为真的确定”或“在检测到所述的先决条件为真时”或 “响应于检测到所述的先决条件为真”。

为了解释的目的,已经参考了特定实施例描述了前述说明。但是,以上 示意性的讨论不意欲是穷举性的或者将权利要求限制到公开的精确形式。鉴 于以上教导许多修改和变化是可能的。实施例被选中并且描述以便于最好地 解释操作的原理和实际应用,从而使能本领域其它技术人员。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号