书签 分享 收藏 举报 版权申诉 / 18

在多层存储器结构中存储纠错码.pdf

  • 上传人:GAME****980
  • 文档编号:6179838
  • 上传时间:2019-05-17
  • 格式:PDF
  • 页数:18
  • 大小:820.59KB
  • 摘要
    申请专利号:

    CN201410045165.0

    申请日:

    2014.02.07

    公开号:

    CN103984605A

    公开日:

    2014.08.13

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||实质审查的生效IPC(主分类):G06F 11/10申请日:20140207|||公开

    IPC分类号:

    G06F11/10; G06F12/08

    主分类号:

    G06F11/10

    申请人:

    希捷科技有限公司

    发明人:

    R·J·高斯; M·A·盖尔特纳; A·帕塔波蒂安

    地址:

    美国加利福尼亚州

    优先权:

    2013.02.08 US 13/762,765

    专利代理机构:

    上海专利商标事务所有限公司 31100

    代理人:

    何焜

    PDF完整版下载: PDF下载
    内容摘要

    本申请公开了在多层存储器结构中存储纠错码。用于管理存储器中数据的方法和装置。根据一些实施例,数据对象存储在多层存储器结构的第一非易失性层中。生成在读取操作期间检测数据对象中至少一个位错误的ECC数据集。ECC数据集被存储在多层存储器结构的不同的第二非易失性层中。

    权利要求书

    权利要求书
    1.  一种方法,包括:
    在多层存储器结构的第一非易失性层中存储数据对象;
    生成在读取操作期间检测数据对象中至少一个位错误的ECC数据集;以及
    在多层存储器结构的不同的第二非易失性层中存储所述ECC数据集。

    2.  根据权利要求1所述的方法,其中,响应于与所述数据对象相关联的数据属性和与所述第二非易失性层相关联的存储属性,选择所述第二非易失性层。

    3.  如权利要求1所述的方法,其中所述多层存储器结构包括多个非易失性存储器层,各个非易失性存储器层具有不同的数据传输属性并对应从最高到最低的顺序按优先级顺序配置的存储器单元格结构。

    4.  如权利要求3所述的方法,其中在多层存储器结构中,所述第一非易失性层是比起所述第二非易失性层的较高层。

    5.  如权利要求3所述的方法,其中在多层存储器结构中,所述第一非易失性层是比起所述第二非易失性层的较低层。

    6.  如权利要求1所述的方法,其中所述存储步骤包括:响应于和数据对象的大小相关的ECC数据的大小,在所述多层存储器结构中从多个可用较低层选择所述第二非易失性层。

    7.  如权利要求6所述的方法,其中所述存储步骤进一步包括:响应于相对于所述第一非易失性层的数据I/O传输速率的所述第二非易失性层的数据I/O传输速率,在所述多层存储器结构中从所述多个可用较低层次选择所述第二非易失性层。

    8.  如权利要求1所述的方法,其中,在共同的逝去时间间隔,所述数据对象和ECC数据同时存储到相应的第一和第二非易失性存储器层。

    9.  如权利要求1所述的方法,其中所述数据对象包括由请求者设备提供的至少一个用户数据块用于存储在所述多层存储器结构中,所述ECC数据包括适用于在读回操作期间检测并校正数据块中多达至少一位错误的码字。

    10.  如权利要求1所述的方法,进一步包括:生成包括地址信息的元数据单元,所述地址信息识别所述第一非易失性存储层中所述数据对象的存储位置以及所述第二非易失性存储器层中ECC数据的存储位置,其中所述元数据单元被存储在多层存储器结构中的不同的第三非易失性层中。

    11.  如权利要求1所述的方法,其中所述第一或第二层中所选之一包括可重写非易失性存储器单元格,以及所述第一或第二层的剩余一个包括可擦除非易失性存储器单元格。

    12.  如权利要求1所述的方法,其中所述多层存储器结构以顺序提供从最快层到最慢层的多个层,所述第二层慢于所述第一层,以及其中所述方法进一步包括:在所述第一层中存储第二数据对象以及相应的第二ECC数据集,以校正第三层中所述第二数据对象中的至少一位错误,所述第三层快于所述第一层。

    13.  如权利要求1所述的方法,其中该多层存储器结构包括多个非易失性存储器层,各个非易失性存储器层具有不同的数据存储属性,以及该方法进一步包括:通过匹配该数据对象和ECC数据集的数据存储属性到各个所述第一和第二层而选择所述第一和第二层。

    14.  一种装置,包括:
    具有多个非易失性存储器层的多层存储器结构,各个非易失性存储器层具有不同的数据传输属性和对应的存储器单元格结构,所述存储器层按优先权顺序从最快到最慢数据I/O数据传送速率能力进行配置;
    存储管理器,适于响应于由请求者提供的一个或多个数据块产生数据对象以生成ECC数据,用于在读回操作期间检测所述数据对象中的多达所选量的读回比特错误,以在所述多层存储器结构的第一选定存储器层中存储所述数据对象,并在所述多层存储器结构的不同的第二选定存储层中存储所述ECC数据。

    15.  如权利要求14所述的装置,其中,响应于与所述数据对象相关联的数据属性和与所述第二存储层相关联的存储属性,所述存储管理器选择所述第二存储器层。

    16.  如权利要求14所述的装置,其中,所述第一选定存储器层包括相 对较快的存储器,以及所述第二选定存储器层包括相对较慢的存储器。

    17.  如权利要求14的装置,其中,所述第一选定存储器层包括相对较慢的存储器,以及所述第二选定存储器层包括相对较快的存储器。

    18.  如权利要求14所述的装置,其中所述第一或第二存储器层中所选之一包括可擦除非易失性存储器,以及所述第一或第二存储器层的剩余一个包括可重写非易失性存储器。

    19.  如权利要求14所述的装置,其中响应于相对于数据对象大小的ECC数据集的大小,所述存储管理器在多层存储器结构中从多个可用较低层选择所述第二非易失性层。

    20.  如权利要求1所述的方法,其中所述存储管理器进一步生成包括地址信息的元数据单元,所述地址信息识别在所述第一选定存储器层中所述数据对象的存储位置以及所述第二选定存储层中所述ECC数据的存储位置,其中,所述元数据单元被存储在在多层存储器结构层中的不同的第三选定层。

    说明书

    说明书在多层存储器结构中存储纠错码
    发明概述 
    本发明的各个实施例一般涉及管理在存储器中的数据。 
    根据一些实施例,数据对象存储在多层存储器结构的第一非易失性层中。生成适于在读取操作期间检测数据对象中至少一位错误的ECC数据集。ECC数据集被存储在多层存储器结构的不同的第二非易失性层中。 
    鉴于下文的详细讨论和附图,可以理解表征本发明实施例的这些和其他特征和方面。 
    附图简述 
    图1提供根据本发明的各种实施例的具有多层存储器结构的数据存储设备的功能框图表示。 
    图2是在图1的多层存储器结构中有用的可擦除存储器的示意表示。 
    图3提供在图1的多层存储器结构中有用的可重写存储器的示意表示。 
    图4示出从图1所选择的存储器层的配置。 
    图5示出由图1的设备使用的数据对象、ECC数据和元数据单元的示例性格式。 
    图6是根据一些实施例图1的设备的一部分的功能框图表示。 
    图7更详细示出图6的数据对象引擎的各方面。 
    图8更详细表示图6的ECC引擎的各方面。 
    图9更详细示出图6的元数据引擎的各方面。 
    图10示出根据一些实施例在较高层中存储ECC数据和在较低层中存储对应的数据对象。 
    图11示出根据其他实施例在较高层中存储数据对象和在较低层中存 储对应的ECC数据集。 
    图12提供根据一些实施例在数据写入操作期间执行的步骤。 
    图13示出根据一些实施例在随后数据读取操作期间执行的步骤。 
    图14描绘根据各种实施例的碎片收集单元(GCU)的操作生命周期。 
    图15示出根据一些实施例在碎片收集操作期间执行的步骤。 
    发明详述 
    本发明总体上涉及管理在多层存储器结构中的数据。 
    数据存储设备通常操作以在存储器中存储数据块。该设备可使用数据管理系统以跟踪块的物理位置,以便可响应对所存储数据的读取请求而随后检索块。该设备可以被提供在不同级或层具有不同类型的存储器的分层(多层)存储器结构。所述多层按所选优先级顺序配置,以适应具有不同属性和工作负荷能力的数据。 
    各种存储器层可以是可擦除或可重写的。可擦除存储器(例如,闪速存储器,写入许多光盘介质等)由可擦除非易失性存储器单元格组成,在新的数据被写入给定存储器位置之前所述可擦除非易失性存储器单元格一般需要擦除操作。因此,在可擦除存储器中常见的是:向新的不同位置写入更新后数据集并将之前存储的数据版本标记为陈旧的。 
    可重写存储器(例如,动态随机存取存储器(DRAM)、阻抗随机存取存储器(RRAM)、磁光盘介质,等等)可以是易失性或非易失性的,并从可重写非易失性存储器单元格形成,以便更新数据集可以被重写到给定位置的现有的旧版本数据,而无需中间擦除操作。 
    不同类型的控制信息(诸如纠错码(ECC)数据和元数据)可以存储在存储器结构中以协助写入和随后读回用户数据。ECC数据允许在从存储器读回的数据对象的副本中检测和/或校正多达所选比特的错误量。元数据单元跟踪在存储器空间中存储的逻辑元件(例如,逻辑块地址、LBA)和存储器空间的物理位置(例如,物理块地址、PBA)之间的关系。元数据还可包括与所存储用户数据相关的状态信息和相关联的存储器位置,诸如累计写入/擦除/读取总量、老化、漂移参数、估计或测量的磨损等。 
    本公开的各种实施例提供一种改进方法以在多层存储器结构中管理数据。如下面所解释地,数据对象由一个或多个用户数据块(例如,LBA)形成,并且存储在多层存储器结构中的选定层。ECC数据集对于每个数据对象生成并存储在不同层中,诸如比起用于存储数据对象的层较低的层或较高的层。可相对于和对应数据对象相关的数据属性以及相对于其中存储ECC数据的所选层的存储器属性而选择ECC数据的大小和配置。元数据可进一步被生成以跟踪数据对象和ECC数据的位置,以及所述元数据可以被存储在不同于用于分别存储数据对象和ECC数据的第三层。 
    以这种方式,具有特定存储特定属性的数据对象可以被成对或分组并存储在符合这些属性的合适的存储器层中。ECC数据可以被生成并存储在匹配ECC数据的属性的合适存储层中,以及期望或观察与该数据对象相关的工作负荷。 
    开始浏览图1,可以理解本文公开的各种实施例的这些和其他特征。图1提供数据存储设备100的功能框图表示。该设备100包括控制器102和多层结构存储器104。该控制器102提供设备100的最高级控制,以及存储结构104从/向请求者实体(诸如外部主机设备(未单独示出))存储和检索用户数据。 
    存储器结构104包括表示为MEM1-3的多个存储器层106、108和110。各个层中存储器的数量和类型可以根据需要变化。一般地,提供优先级顺序,以至于存储器结构104的较高层将由更小和/或更快的存储器构建,以及存储器结构中的较低层可以由更大和/或更慢的存储器构建。其它特征可确定各层的优先级顺序。 
    为了提供一个具体示例,系统100被设想为基于闪存的存储设备,诸如固态驱动器(SSD)、便携式拇指驱动器、记忆棒、存储卡、混合存储设备等,以便较低存储器层中的至少一个提供利用可擦除存储器的主要存储。较高存储器层中的至少一个提供可重写非易失性存储器,诸如阻抗式随机存取存储器(RRAM)、相变随机存取存储器(PCRAM)、自旋力矩转移随机存取存储器(STRAM)等。这仅是说明性地而不是限制性地。其他级别可并入到存储器结构中,诸如易失性或非易失性缓存级别、缓冲器 等。 
    图2示出由可擦除存储器单元格122的阵列组成的可擦除存储器120,所述可擦除存储器单元格122在这种情况下由(但不限于)闪速存储器单元格表征。可擦除存储器120可用作图1中存储器结构104的各种存储器层。在闪速存储器单元格的情况下,单元格122通常采取具有带浮置栅的一般NMOS场效应晶体管(n沟道金属氧化物半导体场效应晶体管)的可编程元件的形式,所述浮置栅适于存储累积电荷。可相对于电压量建立每个闪速存储器单元格122的编程状态,所述电压量需要被施加以控制单元格122的栅极用于将单元格置于源极-漏极导通状态。 
    图2中的存储器单元格被布置成许多行和列,单元格122的每列连接到位线(BL)124,以及单元格122的每行都连接到单独字线(WL)126。数据可沿着单元格的每行存储为数据页,该数据页可代表存储器的的选定单元(诸如8192比特)。 
    如上面指出地,可擦除存储器单元格(诸如闪速存储器单元格122)可适于将数据存储为每单元格的一个或多个比特的形式。然而,为了储存新更新的数据,单元格122需要应用擦除操作,以从相关联的浮置栅极移除积累的电荷。因此,闪速存储器单元122的组合可被设置成擦除块,该擦除块表示可以作为单元格擦除的最小的单元格。 
    图3示出由可重写存储器单元132的阵列组成的可重写存储器130。每个存储器单元格132包括与开关设备(MOSFET)136串联的阻抗传感元件(RSE)134。每个RSE134是相对于编程阻抗康具有不同的编程数据状态的可编程存储器元件。可重写存储器单元格132可以采取任何数量的合适形式,诸如RRAM、STRAM、PCRAM等。 
    如上面指出地,可重写存储器单元格(诸如图3中的单元格134)可以接收新的更新数据,而不需要擦除操作以将单元格复位到已知状态。各种单元格132通过位线(BL)138、源线(SL)140和字线(WL)142互连。可以设想其他布置,包括仅将两条控制线(例如,位线和源极线)互连到每个存储器单元格的交叉点阵列。 
    图4示出在图1的多层存储结构104中有用的所选存储器层150。存 储器层150被布置以提供分别用于数据对象、ECC数据和元数据的存储空间152、154和156。这仅仅是示例性地而非限制性地,因为各个层可以全部专用于一种数据类型(例如,数据对象)的存储,或者可以专用于仅仅这三种不同类型数据集中的两者的存储。 
    在给定的存储器层用于这些不同类型的数据集的实际空间数量也可以变化很大;例如,某一存储器层可以被布置以使得90%专用于数据对象的存储以及10%用于元数据。如下文所说明地,给定存储器层中的ECC数据和元数据(例如,图4中的存储器空间154、156中的数据)可以不必涉及该层(例如,图4中存储器空间152中的数据集)。 
    但应理解:在存储器结构104中,增加用于数据对象的整体可用存储空间,以及在具有较高水平的I/O数据传输率性能(例如,每时间单元传输的数据)的较高层中增加数据对象的可用空间可趋向于在请求者级别提高整体性能响应性水平。最终,数据写和读操作的一般目标在于以有效方式从/向请求者传输用户数据。 
    图6示出由数据对象162、ECC数据(或ECC数据组)164和元数据(或元数据单元)166组成的数据结构160的示例格式。在很多情况下,数据对象162明显大于对应的ECC数据164和元数据单元166,诸如和对应数据对象相比,ECC数据和元数据单元在尺寸(以总比特计)上大约是10%或更少。然而,数据对象、ECC数据集和元数据单元的个体大小将取决于数据对象中数据块(LBA)的数目,所施加的ECC等级以及元数据粒度。如本文所用,较低元数据力度表示用户数据的更多(更细)描述,以及较低粒度可倾向于导致较大的元数据单元大小。 
    在图5中提出各种数据集162、164和166的示例性内容。可以提供内容的其他形式和安排。数据对象162被管理为可寻址单元并由请求者(主机)提供的一个或多个数据块构成。数据对象可以相应地包括头部信息,用户数据和其他控制信息(诸如哈希值)。 
    头部信息提供合适的标识符信息,诸如与存储在数据对象中的用户数据块相关联的逻辑地址(例如,LBA值或LBA范围)。其他数据(诸如时间/日期时戳信息和状态信息)可以被结合到头部。哈希值可以使用合适的 哈希函数(诸如SHA哈希)从用户数据块形成,用于写入放大的快速拒绝处理。例如,在写入操作期间,哈希值可相比于相同LBA或LBA范围的较新版本的一个或多个哈希值。如果哈希值匹配,则新版本可不需要被存储到存储器结构104,因为该操作可表示相同用户数据的重复集合。 
    ECC数据164可以采取诸如周期性纠错码(诸如Bose、Ray-Chaudhuri和Hocquenghem(BCH)码或里德所罗门码\低密度奇偶校验(LDPC)码\异或(XOR)值、outercode、IOEDC值、校验和)的各种合适形式以及控制数据的其他形式,所述控制数据可以被计算以检测和/或纠正数据对象162中直到所选数量的比特错误。一种类型以上的ECC码数据可生成以作为所选数据对象的ECC数据集。 
    可以根据数据对象的属性以及其中存储ECC数据的存储器层的属性(例如,写入/擦除/读取次数、老化、漂移参数,等等)选择并随后调整ECC数据的大小和强度。通常,ECC码字的大小通常决定ECC的存储足迹(码率)的大小。类似地,可根据操作期间对ECC的读取-修改-写入操作的可能性而选择子码字的粒度。 
    ECC数据集的强度一般涉及ECC数据集如何有效用于检测并当使用时校正直到所选数量的数据位错误。更强的ECC数据集比更弱的ECC数据集相比通常检测并纠正更多的错误。 
    分层ECC可用来加强ECC保护。第一种类型的代码(诸如BCH)可以应用于数据对象。第二种类型的代码(诸如Reed Solomon)然后可以应用于一些或所有BCH码字。可以应用其它层以实现整体所需强度。需要注意:ECC的强度可以基于相关数据的存储特性进行选择;呈现强性能(高耐久性、良好的保持特性,低数据比特差错等)的存储器层可需要使用相对较弱的ECC方案。相反,旧的磨损的或相对低耐力的存储器可以保证使用更强的ECC。由于在本实施例中,ECC与数据对象分开存储,提供灵活性以使得应用ECC的合适层而不需要限制将ECC保持在于受保护数据对象的相同层中。 
    元数据单元166使得设备100定位数据对象和ECC数据,并相应地存储各种控制信息,诸如数据对象(DO)地址信息、ECC地址信息、数据和 存储属性信息、一个或多个前向指针以及状态值。也可以使用其他元数据格式。地址信息174分别识别数据对象162和ECC数据164的物理地址,并且也可以提供逻辑到物理地址的变换信息。物理地址将包括哪个层(例如,图1中的MEM1-3)存储数据集,以及其中使用合适的地址标识符(诸如行存储(缓存线)、模具、阵列、平面、擦除块、页、位偏移和/或其他地址值)存储数据集的相关层内的物理位置。 
    该数据属性信息表示与数据对象(诸如状态、修订级别、时间戳数据、工作量指标等)相关的属性。存储器属性信息构成和物理位置相关的参数属性,在该物理位置存储数据对象和/或ECC数据。示例包括:写入/擦除总数、总读取次数、估计或测量的磨损效果、电荷或阻抗漂移参数、比特误码率(BER)测量、老化等,这些各属性集合可以由控制器进行维护和/或基于之前的元数据项进行更新。 
    正向指针可通过参考存储器结构104中的元数据的其它拷贝而使得检索最新版本的数据集(例如,数据对象和/或ECC数据)。状态值指相关数据集的当前状态(例如,过时、有效性等)。当需要时,相对小的元数据ECC值可以在读回期间产生和附加到元数据单元,用于验证元数据。 
    图6示出根据一些实施例可操作的设备100的存储管理器170。存储管理器170可以形成为控制器功能的一部分。存储管理器170被示为包括多个操作模块,包括数据对象引擎172、ECC引擎174和元数据引擎176。这些各个引擎中的每个响应于由请求者提供的数据块(LBA)而产生数据对象、ECC数据和元数据单元。 
    图1的多层存储器结构104示于图6中以包括多个示例性的层,包括NV-RAM模块178、RRAM模块180、PCRAM模块182、STRAM模块184、存储器模块186和盘模块188。这些仅仅是示例性的,任意数量的不同类型和配置的存储器模块可以根据需要用于各个层中。 
    NV-RAM178包括具有备用电池或其他机制的易失SRAM或DRAM,以将所存储数据保持在非易失性状态。RRAM180包括阻抗传感存储器单元格的阵列,所述阻抗传感存储器单元格响应于离子迁移通过接口相关于不同编程阻抗抗水平而存储数据。PCRAM182包括相变阻抗检测存储器单 元格的阵列,所述相变阻抗检测存储器单元格根据材料在结晶(低阻抗)和非晶(高阻抗)之间的相位变化而表现出不同的编程阻抗。 
    STRAM184包括每个具有至少磁隧道结的阻抗检测存储器单元格的阵列,所述磁隧道结由具有固定磁定向的材料的参考层和具有可变磁定向的自由层组成。相对于自由层的编程磁取向可建立每个MTJ的有效阻抗抗以及因此的编程状态。 
    闪速存储器186包括闪速存储器单元格的阵列,该闪速存储器单元格相关于在浮动栅极结构上的累积电荷量而存储数据。不像NV-RAM、RRAM、PCRAM和STRAM,这些都设想为包括可重写非易失性存储器单元格,闪速存储器单元格是可擦除的,因此在写入新数据之前一般需要擦除操作。闪速存储器单元格可经配置为单级单元格(SLC)或多级单元格(MLC),使得每个存储器器单元格存储一位(在SLC的情况下)或多个比特(在MLC的情况下)。当需要时,可重写存储器层中的存储器单元格也可以被配置为MLC。 
    盘存储器188可以是可旋转磁介质,诸如硬盘驱动器(HDD)或类似的存储设备。当需要时,可使用其他的序列、组合和数量的层,包括其他形式的固态和/或盘存储器、远程服务器存储器、易失性和非易失性缓冲层、处理器高速缓存、中间高速缓存,等等。 
    可以预期:每一层将有自己相关的存储器存储属性(例如,容量、数据单元大小、I/O数据传输率、耐力,等等)。最高阶层(例如NV-RAM178)倾向于具有最快的I/O数据传输率性能(或其他合适的性能指标),以及最低阶层(例如,盘188)倾向于具有最慢性能。其余的每个层将具有以大致连续方式的中间性能特性。至少一些层可具有以碎片收集单元(GCU)的形式配置的数据单元格,所述碎片收集单元从分配池分配,用于存储数据,并在返回到分配池用于后续分配之前在碎片收集操作期间周期性地复位。 
    由图6中的存储管理器产生的各个数据对象、ECC数据和元数据可设想为存储在不同的存储层178-188中。在一个示例中,数据对象被存储在闪速存储器186中,用于数据对象的ECC数据存储在RRAM模块180,以 及元数据存储在PCRAM模块182中。对于每个数据集选择合适的层,以及数据集可根据观察的使用模式和测量内存参数而随后迁移到不同层。 
    图7示出根据一些实施例的图6的数据对象引擎172。如果这些元数据已被预先存储到存储器结构104,该数据对象引擎172从请求者接收数据块(LBA)以及在和现有版本数据块相关的设备100中存储的现有元数据(MD)。在数据库190中维持的存储层属性数据也可以由引擎172使用。 
    引擎172分析该数据块以确定该数据对象的合适格式和位置。该数据对象由DO产生器192使用数据块内容以及与该数据对象相关的各种数据相关属性产生。层选择模块194选择其中存储所产生数据对象的存储器结构104中的合适存储器层。 
    数据对象(包括整体数据对象大小)的配置可以匹配于所选存储器层,例如,页级别的数据集可以用于存储到闪速存储器186,以及LBA大小的数据集可以用于RRAM、PCRAM和STRAM存储器180、182、184。其它单元的尺寸都可以使用。数据对象的单元尺寸可或不可对应到在请求者级别使用的单元尺寸,例如,请求者可传输名义上512字节的用户数据块。数据对象可以具有同样的用户数据容量,或可具有一些更大或更小的用户数据量,包括请求者块大小的非整数倍的量。 
    由DO层选择模块194识别的DO存储位置作为输入提供给存储器模块104以指示数据对象(DO)存储在所选存储器层中的指定物理地址。数据对象和DO存储位置信息也被传输到ECC和元数据引擎174、176。 
    在图8中,ECC引擎174被示为包括ECC发生器202和ECC层选择模块204。ECC引擎174使用数据对象、该数据对象的物理位置(例如,其中的层和物理地址)、各种数据对象的相关属性、以及存储器层属性数据以为数据对象产生适当的尺寸,强度和等级的ECC数据,以及其中存储ECC数据的合适存储器层。 
    图7中的元数据引擎176示出在图9中,包括元数据(MD)发生器212和MD线选择模块214。MD引擎176使用多个输入(诸如DO属性、DO存储位置、ECC存储位置、现有MD(如果有的话)和数据库190的存储器层)以选择元数据单元166的格式、粒度和存储位置。在某些情况下, 多个数据对象和/或ECC数据集可以被组合在一起并通过单独的元数据单元描述。 
    顶层MD数据结构(诸如MD表216),其可被保持在单独的存储器位置或分布通过存储器结构104,可被更新以反映元数据的物理位置以供将来参考。MD数据结构216可以是将逻辑地址(例如,LBA)关联到相关元数据单元的查找表的形式。 
    因为ECC数据可趋向是数据对象大小的相对小的部分,存储器结构104中的较高层可以存储ECC数据的合适位置,尤其是在反复回收和更新ECC的相对高的写入强度环境中。图10示出在这些条件下在存储器结构104的高位存储器层220中存储ECC数据,以及将相应的数据对象存储到存储器结构中的相对较低存储器层222中。可以理解:各自较上层和较低层220、222可以对应于图6中的任意各个示例层或其他存储器层,只要下层222和上层220相比在存储器结构104的优先级顺序中较低。 
    相反,如图11所描绘,由于相对较小的ECC足迹,希望将数据对象存储在较上层220并将ECC数据存储到较低层222。和对应的数据对象相比,在存储器结构104的较低层存储ECC数据可以方便在数据对象写入和ECC写入之间进行速率匹配。 
    例如,如果ECC数据是数据对象大小的约10%,以及较低层222比较上层220慢约10倍(10X)(例如,较低222的数据I/O传输率大约是较上层220的数据传输速率的10%),和将数据对象写入较上层220平行地将ECC写到较下层222可快于将这两个数据集写入较少层220。这是因为将ECC数据写到较低层和将数据对象写到较上层220花费相同时间量,两者可以在相同写入间隔期间推测性写入。 
    在较慢的较低层222中存储ECC并不带来读回处理期间的任何显著延迟,因为在从较快的较上层220读回数据对象所需时间期间ECC可实质上从较低层222恢复。另外,在较慢的较低层222中存储ECC释放较上层220中的空间用于存储其他数据对象集。 
    使用本文所公开的分层ECC(例如,对于相关数据在不同层中存储ECC)使得ECC数据集的大小显著增加以提高效率,因为较大的码字提供 了ECC算法的更有效使用。每当更新ECC子集时出现的写入放大是可以接受的,因为和存储对应数据对象的存储器相比,ECC可以位于具有更大持久性的存储器中。提供分层ECC也有利于产生不同的ECC方向,诸如经过多个闪速存储器页面。可根据存储器和数据的存储和工作负荷属性而动态调整所利用ECC码字的大小和强度。当然,将ECC数据写入可重写存储器层允许更新位置操作,从而使ECC数据的更新版本可以直接写入到之前版本的ECC数据从而取代先前版本。 
    分层ECC的另一优势在于:如上面所讨论的,存储器的整个层可以专用于数据对象的存储,从而便于在最适于数据属性的位置中存储数据。可替换地,给定层可对于数据对象和ECC数据(以及元数据)具有专用空间,以及ECC数据(和元数据)描述在不同层中的数据对象。这允许存储管理器动态地选择存储层的最佳利用作为数据存储层、ECC存储层、数据+ECC存储层等。随着给定层随着时间磨损并表现出降低的性能,分配到ECC的存储器层百分比可以增加(以及更高等级的ECC可应用于在该层中存储的数据)。基于存储和储存属性的动态分配也使得自适应实现本地工作量水平,从而提高缓存命中和其他高效的数据传输。 
    在一些情况下,各个数据集(数据对象、ECC数据集和元数据单元)可以被分别存储在相同或不同的相对较高的层,并随着时间,当前版本(有效)的数据集可以被顺序地迁移到较低层。根据定义,如果随着时间存储的给定部分(诸如碎片收集单元)具有陈旧(旧版本)和有效(当前版本)的数据,有效数据趋于在已被最久更新方面是“最旧”数据。碎片收集处理期间降级有效数据集到较低层可以相应地允许每种类型的数据在存储器结构中实现自身的合适等级。 
    按照上述讨论可以随后对存储到存储器结构104的数据对象、ECC数据和元数据单元执行数据访问操作。图12表示在读取操作期间可执行的各种步骤,以向请求者返回之前存储的用户数据。 
    在读取操作期间,在块230,通过访问MD数据结构190或其他数据结构而定位和所选LBA相关的元数据,接收并服务于对所选LBA或LBA范围的读取请求。在框232,识别存储元数据单元的物理位置并执行读取操 作以检索元数据单元到本地存储器。局部存储器可以是设备100的易失性缓冲存储器。 
    在框234,从元数据中提取数据对象的物理地址和ECC数据的物理地址,并且这些地址用于框236以执行各读取操作用于向本地存储器返回数据对象和ECC数据的副本。如上文所讨论地,可以并行执行来自两个不同存储器层的这些读取操作。 
    在块238,ECC数据被应用到恢复数据对象的相关部分以检测和/或纠正比特错误。也可在此时应用其他解码步骤(诸如解密等)。无差错的用户数据块在块240返回给请求者,以及元数据单元可以被更新以反映相关数据对象的读取次数的增加。涉及存储器的其他参数也可以记录到存储器层数据结构,诸如观察的误比特率(BER)、递增读计数、测量漂移参数等。可以设想:虽然不一定需要,在和以前相同的存储器层中维护新更新的元数据单元。 
    在可重写存储器的情况下,对元数据的新更新(例如,递增读计数,状态信息等)可重写到相关数据对象的现有元数据上。对于存储到可擦除存储器层(例如,闪速存储器216)的元数据,元数据单元(或其部分)可需要写入到层中的新位置。 
    最后,基于该读取操作,在方框244,对于数据对象、ECC数据和/或元数据单元中的任何一个、某些或全部执行格式和/或存储器层的调整。例如,基于属性(诸如相对高的观察误比特率(BER)、与所存储数据对象相关参数的检测漂移、读计数、老化等),存储管理器170(图7)可以进行以增加ECC数据等级;例如,LDPC值可以由Reed Solomon码增加或替换,以在对数据的后续读取操作期间提供更强的ECC功能。在一个实施例中,如果在读回数据对象期间检测到所选数量的读取比特错误,ECC强度自动增加到下个更高水平。 
    更新后的ECC数据可被存储在和以前一样的同一存储器层中,或者可选择新的层。如果新的层被选择时,相关元数据单元将被更新以反映ECC数据的新位置。也可以进行其他调整。将注意到:后台处理可在每次读取操作(或呈现落在预定阈值之外的参数的每个读取操作)结束时制定以评 价现有存储层的持续适合和数据对象、ECC数据和元数据的格式。另外地和/或可替换地,空闲时间期间的定期分析可制定以评价现有参数设置,并作出这些调整。 
    需要注意:给定的元数据单元可以分布在不同层,以便需要经常更新的部分存储在容易地容纳频繁更新的一个层中(例如,可重写层和/或具有更强耐力的层),以及不经常更新的元数据的更稳定部分可以被保持在不同的层(诸如,可擦除层和/或具有较低耐久性的层)。同样,ECC数据可以分布在不同的层以为数据集提供不同程度的ECC保护。 
    图13示出可根据一些实施例执行的写操作处理。在框250,在将新数据写入到存储器结构104期间,从请求者向设备100提供写入命令和相关用户数据集,从而产生初始元数据查找操作以定位先前存储的最新版本数据(如果存在)。如果是,可在框252检索元数据以及初步写入放大滤波分析可发生,以确保新提出的数据代表不同版本的数据。 
    在框254,产生数据对象,并为数据对象选择合适的存储器层等级。如上问所讨论的,各种数据和存储器相关属性可用于选择合适的存储层,以及然后该层内的下一个可用存储器位置可被分配用于传输数据对象。在块256和258执行类似的操作,以基于上述讨论的各种因素为对应层产生适当的ECC数据和元数据单元。在框260,相应的数据对象、ECC数据和元数据单元此后被存储到不同的层。在一些情况下,在相同的整体时间间隔期间可并行执行传输。 
    将会注意到:在之前版本的数据对象、ECC数据和元数据驻留在存储器结构104中的情况下,这些数据集的新版本可或不可存储在和之前版本相同的各存储层中。旧版本的数据集可以被标记为陈旧并根据需要调整,诸如通过在旧MD单元中增加一个或多个前向指针以指向新的位置。该操作指示在框262。 
    根据相应的数据对象特性选择元数据粒度。如本文所用,粒度一般指由给定元数据单元描述的用户数据的单元大小;越数据粒度越小,单元尺寸越小,反之亦然。当元数据粒度减小时,元数据单元的大小可增加。这是因为将1兆字节(MB)的用户数据描述为单个单元(大粒度)所需要的 元数据将显著小于单独描述该相同1MB用户数据(小粒度)的每个16字节(或512字节等)所需要的元数据。ECC数据可被选择为具有对应于该元数据粒度的合适等级。 
    图14描绘可根据前面讨论执行的碎片收集处理。存储器结构104(诸如图6中的各层178-188)中的一个、某些或所有各个存储器层可被布置成分配并复位为单元的碎片收集单元(GCU)。 
    GCU特别适合用于可擦除存储器(诸如闪速存储器),所述可擦除存储器在所选位置存储新数据之前需要单独的擦除操作。GCU也可以用于可重写存储器以将较大的存储空间划分为较小的更可管理的部分,所述部分可根据需要分配、复位并然后返回到可用分配池。在可擦除和可重写存储器中使用GCU可以使得更好地跟踪存储器历史度量和参数,并可提供改进的水平载荷;即,GCU可以帮助确保:给定层中的所有存储器单元格实质上接收写入数据中的相同一般使用量,而不是集中于接收大多数I/O工作负载的特定区域。 
    GCU分配池表示在图14中的270。这代表可由存储管理器选择以适应新数据集的多个可用GCU(在图14中表示为GCU A、GCU B和GCU C)。一旦分配,GCU过渡到运行状态272,在此期间,如上所述执行各种数据的I/O操作。在选定时间周期之后,GCU可受到碎片收集处理,如在274所示。 
    碎片收集处理一般是通过图15的流程表示。在步骤280选择GCU(诸如GCU B)。所选GCU可存储数据对象、ECC数据、元数据单元或所有这三种类型的数据集。存储管理器170(图6)检查所选GCU中的每个数据集的状态,以确定哪个代表有效数据以及哪个代表旧的数据。可从元数据或如上所述的其他数据结构表示陈旧数据集。但可以理解:陈旧数据集通常表示不需要继续存储的数据集,因此可以被抛弃。有效数据集应该保留,诸如因为数据集代表最新版本的数据,需要数据集以访问其他数据(例如,具有指向其他元数据单元的向前指针的元数据单元等),等等。 
    在步骤282迁移来自所选GCU的有效数据集。可以预期:在大多数情况下,有效数据集将被复制到存储器结构104的较低存储器层中的新位置。 根据给定应用的要求,至少一些有效数据集可根据数据存取需求等保持在相同存储器层中的不同的GCU。可以理解:所有被降级的数据可以被发送到相同的较低层,或不同的降级数据集可分发到不同的较低层。 
    在步骤284接下来复位所选GCU中的存储器单元格。该操作取决于存储器的构造。在可重写存储器(诸如PCRAM层182(图6))中,例如,GCU中单元格的所述相变材料可重置为较低阻抗结晶态。在可擦除存储器(诸如闪速存储器层186)中,擦除操作可被应用到闪速存储器单元以实质上从闪速存储器单元格的浮置栅极除去所有积累的电荷,用于将单元格重置为擦除状态。一旦所选GCU已被复位,在步骤286,GCU返回到GCU分配池,待由系统的随后重新分配。 
    基于前面的讨论,可以看出:ECC数据迁移到下一较低层可有利于将数据移动到较低层并释放较高优先级数据的存储器的现有层。降级ECC数据的ECC等级可以被评估并调整到更适于新的较低存储层的格式。 
    如本文所用,“可擦除”存储器单元格等与上述讨论一致地将被理解为存储器单元格,一旦写入,所述存储器单元格可在没有中间擦除操作的情况下重写到少于所有可用编程状态,诸如在需要擦除操作以从浮动栅结构除去积累电荷的闪速存储器单元格的情况下。术语“可重写”存储器单元格等与上述讨论一致地将被理解为存储器单元格,一旦写入,所述存储器单元格可在没有中间复位操作的情况下重写到所有其他可用编程状态,诸如在采取任何初始数据状态(例如,逻辑0、1、01等)并写入到任何剩余的可用逻辑状态(例如,逻辑1、0、10、11、00等)的NV-RAM、RRAM、STRAM和PCRAM单元格的情况下。 
    本发明各种实施例的多个特征和优点连同结构和功能细节已列于前面的描述。然而,该详细描述仅是说明性的,并可特别在本公开原理内的部件的结构和配置结构上对细节进行改变,全部范围由其中表示所附权利要求的术语的一般含义表明。 

    关 键  词:
    多层 存储器 结构 存储 纠错码
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:在多层存储器结构中存储纠错码.pdf
    链接地址:https://www.zhuanlichaxun.net/p-6179838.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1