具有运行时变量raid保护方案的方法、固态驱动器控制器以及数据存储设备的制造方法_4

文档序号:9291645阅读:来源:国知局
多个块修整(Trim)偏移字段可以由SSD的固件所使用以调节闪存设备的内部设置。块修整偏移字段可以提供其自身的纠错。此外,块的TR頂信息可以被配置为包含与块的健康相关的数据,这使得如果错误变为使用当前ECC所不能纠正的,则可以使用该信息来改变ECC配置项并增加所使用的ECC的强度以为存储在该块的E页中的数据提供纠错。可以提供读取干扰字段以包含该块已被读取的次数。错误数字段可以追踪在块中遇到的错误数。如将在稍后描述的,数据结构500也可以包括一个或多个数据值(例如,(多个)标志)以指示S页内的哪些(哪个)F页被指定为(多个)校验页。
[0046]图5提供了用于存储关于块的信息的示例性格式。在其他实施例中,该信息可以在不同的粒度级别被存储。例如,在一些实施例中,每个E页或F页可以具有其自身的配置项指定以及对应的信息。同样,可以以与图5中所描述的示例不同的格式存储信息。
[0047]根据一个实施例,称为S日志的结构可以被配置为包含给定S块的映射信息。更准确地,根据一个实施例,S日志包含给定S块内预定范围的E页的映射信息。图6是根据一个实施例的S块的框图。如其中所示,S块602可以包括每管芯一个闪存块(F块)604(也如图1中的109处所示)。因此,可以把S块看作F块的集合,每管芯一个F块,其组合在一起以形成闪存管理系统的单元。根据一个实施例,分配、擦除和GC可以在S块级被管理。如图6所示,每一个F块604可以包括多个闪存页(F页),例如,256或512个F页。根据一个实施例,F页可以是用于给定的非易失性存储器设备的编程的最小单元的尺寸。图7示出了根据一个实施例的超页(S页)。如其中所示,S页702可以包括S块中的每F块中一个F页,意味着S页跨越整个S块。
[0048]图8是根据一个实施例的示出了校验页的生成与存储的S页的图。示出了包括在多个管芯中的每个管芯中相应编号的F页的S页702。在图8的示例中,S页702包括128个管芯的F页3。应当理解的是,S页不限于图8中示出的示例性128个管芯。闪存控制器102可以被配置为生成可变尺寸的ECC部分并且将数据存储在F页内对应的可变尺寸的数据部分中,如关于图1B和IC所示出和描述的。这样的ECC部分因此可以以作为E页内的纠错码为特征;也就是,只应用到F页内的给定E页内的预定数据部分的纠错码。这样的E页内的纠错码也可以以“内”纠错码为特征。如上所述,一个F页内的E页的可变尺寸的数据部分在聚合中集合地定义F页的数据部分。
[0049]根据一个实施例,控制器102还可以被配置为生成跨越S页的F页的一个或多个纠错码,并且将所生成的纠错码存储在S页的具有最大F页数据部分的该F页或那些F页内。用于存储所生成的纠错码的一个或多个F页被称为“校验页”。这样的跨F页的纠错码也可以以“外”纠错码为特征,并且以与“内”纠错码正交的方式操作以提供另外层的数据保护。即,所生成的(多个)跨F页纠错码可以被存储在该F页或多个F页中(其具有最大F页数据部分(多个部分)),如图1B和IC中所示出的这样的部分。图8示出了这样的跨F页纠错码802的生成和存储的方面。根据一个实施例,控制器102可以被配置为在S页中的F页之间指定具有最大尺寸的F页数据部分的一个或多个F页作为(多个)校验页;即,作为指定为存储跨F页纠错码的(多个)F页。根据一个实施例,跨F页纠错码可以包括前向纠错(FEC)码,例如,Reed-Solomon( “R-S”)码。
[0050]根据一个实施例,控制器102还可以被配置为在生成每个E页之后在运行时生成并存储E页纠错码。相反,控制器102可以被配置为在数据(例如,用户数据)已经存储在S页内的F页中之后完成跨F页纠错码(例如,R-S或其他FEC码)的生成和存储。根据一个实施例以及如图8所提出的,随着在S页内的数据(例如,用户数据)被存储,校验信息生成器(例如,编程的控制器或处理器)可以在运行时以跨F页(即,同时跨过若干F页)的方式遍历S页,并且可以根据S页内的F页的成分E页的数据部分来生成一个或多个FEC(例如,R-S)码802。为了使该码能够从所有F页中生成,当生成如812处所示的S页时,可以跳过具有最大(多个)数据部分的(多个)F页,以便使控制器102能够在其后将FEC码存储在具有最大(多个)数据部分的这样的(多个)F页中-图8中的附图标记806和808处所示。如810处所示,如果FEC码802存储在例如管芯127的F页3中,则FEC码将不从管芯I中的F页3生成,在附图标记804处示出。只有通过首先编码S页中的所有数据并且其后将校验(例如,奇偶)符号写出在具有最大F页数据部分的指定的(多个)F页(指定的(多个)校验页)中,才能保证跨F页纠错码覆盖S页内的全部可变尺寸的F页数据部分。由于(多个)校验页包括所生成的跨F页纠错码而非用户数据,所以它们可以在读操作期间被跳过(不被读取)。因此,校验页只需要在尝试从F页中的错误中恢复时被访问。如之前一样,存储在E页的ECC部分内的ECC码可以用于从给定E页的数据部分内的错误中恢复。用于纠正数据错误的存储在E页的ECC部分内的ECC码的失效识别经受该错误的S页的多个F页内的F页。在从F页错误中恢复的尝试中,跨F页纠错码可以被应用是与因此被识别的(多个)F页相对的。应当注意的是,当生成FEC码802时,没有被指定为校验页的F页中的E页可以被填充(例如,用零)以使得这些E页的数据字段尺寸与校验页中的E页的数据字段尺寸相匹配。相反地,当纠正F页时,在FEC码802生成期间所使用的填充值可以在纠正期间被使用。此外,S页中的F页中的一个或多个可能先前已经被标记为“坏”,或者对数据存储不可用。应当理解,这样的坏F页可以在FEC码802的生成期间被跳过,并且可以不参与任何随后的使用该FEC码802的纠正。
[0051]根据一个实施例,控制器102还可以被配置为在块信息数据结构(诸如图5中的500)中设置标志以用于将特定F页或S页内的F页识别和指定为(多个)校验页。因此,控制器102可以被配置为查阅块信息数据结构500以确定S页中的F页中的哪个或哪些被指定为(多个)校验页。因此,根据一个实施例,于是(多个)校验页的位置在S页中不固定。例如,如在第一 S页和第二 S页之间,在第一 S页中被指定为(多个)校验页的(多个)F页可以在第一 S页内占据与在第二 S页中被指定为(多个)校验页的(多个)F页相对不同的位置。
[0052]应当注意的是,S页中的一个或多个另外的F页可以被指定为校验页并且被配置为存储跨F页纠错码。生成和存储另外的跨F页纠错码的决定可以取决于一个或多个因素。例如,可以基于存储器阵列的配置、存储器阵列的性能(例如,可纠正或不可纠正和/或两者的E页ECC错误的记录数)和/或存储器阵列的预定部分的使用配置项(use-profile)来生成和存储另外的跨F页纠错码。实际上,配置、性能和使用配置项的某种组合可以比其他情况推荐指定更大数量的校验页。例如,可以向存储关键信息的存储器阵列的某些区域(比存储器阵列的其他区域)提供每S页相对较大数量的校验页。例如,可以向存储文件系统信息(诸如S日志)的S页(比不存储这样的文件系统信息的S页)提供相对较大数量的校验页。因此,根据一个实施例,不同的S页可以包括不同数量的校验页,并且这样的校验页的位置跨S页是不固定的。
[0053]根据一个实施例,控制器102可以被配置为周期性地确定(例如,在每个编程-擦除(PE)周期上):在每个E页的可变尺寸ECC部分内要生成的E页纠错码的强度,被生成的在S页内要生成的跨F页纠错码的强度,以及被生成的S页内的哪个(或哪些)F页应当被指定为校验页。因此,E页ECC、跨F页纠错码二者的强度以及校验页的数量可以动态地被确定以及例如跨S页改变。
[0054]图9是示出了根据一个实施例的块失效率与数据存储设备的生命期之间关系、以及可以变化校验页的数量以扩展数据存储设备的有用生命期的方式的图。三个图902、904和906在X轴上时相关的,由于它们绘制了三个参数相对于相同的PE数的进展。图902绘制了失效率比PE数,图904绘制了所使用的ECC强度比PE数,而图906绘制了所使用的校验页数量比PE数。
[0055]如关于图4所描述的,尽管存储器阵列可以相对健康,但在生命早期存储器阵列可能以相对高的F页失效发生率为特征,其错误是使用F页中的E页内ECC不能纠正的。在之后的生命中,E页内的ECC的强度可能逐渐增加。为了处理上述在存储器阵列的生命早期中页错误的相对高的发生率,可以在早期生命中利用与之后的阵列生命周期中相比相对较大数量的校验页(如912所示)。例如,可以使用每S页四个校验页(或更多)来纠正这样的(否则使用E页的ECC不能纠正的)生命早期的F页错误。在之后的生命中(例如,在生命中期),由于E页的ECC强度增加(如918所示)而F页错误变得较不频繁,所以可以向S页提供相对较少的校验页并且它们的数量可以保持相对稳定(如914所示)。在生命的后期或生命的结束,E页错误上升而F页错误也变得相对于生命中期更频繁,则可以增加E页的ECC的强度(如920所示)并且可以根据需要增加每S页的校验页的数量(如916所示)。根据一个实施例,控制器102可以记录E页ECC错误率并且该所记录的比率可以用作对S页提供的校验页数量的确定中的一个示例性因素。在其他实施例中,不可纠正的ECC错误的数量被用作该确定中的至少一个因素。可以应用其他E页ECC和/或校验页配置项,如该领域那些技术人员可以识别的那样。例如,在不同生命阶段所使用的ECC和所使用的校验页的量之间的关系不需要如图9中所示的那样关联。在一些实施例中,每个可以被独立地调节而不考虑另一个的趋势。
[0056]图10是根据一个实施例的在数据存储设备中生成和存储校验页的方法的流程图。如所示出,框BlOl要求定义如上所示和所描述的那样配置S页;也就是,包括来自多个管芯中的一个或多个管芯的多个F页。如B102处所示以及如在图1C处所示,具有可变尺寸ECC部分的E页纠错码可以被存储在所定义的S页的F页的E页中的一个或多个内,以用于纠正E页的相应的可变尺寸数据部分内的错误
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1