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

技术编号:12244385 阅读:84 留言:0更新日期:2015-10-28 11:19
数据存储设备可以包括闪存控制器和耦合到所述闪存控制器的闪存设备的阵列。所述阵列可以包括多个S页,每个所述S页包括多个F页。依次地,所述多个F页中的每个可以被配置为存储可变量的数据和可变量的纠错码。所述闪存控制器可以被配置为跨越S页的每个F页生成纠错码,以及将所生成的纠错码存储在具有所述最大数据量的一个或多个F页内。

【技术实现步骤摘要】
【国外来华专利技术】具有运行时变量RAID保护方案的方法、固态驱动器控制器以及数据存储设备相关申请的交叉引用本申请要求于2012年12月3日提交的临时美国专利申请序列号61/732,830(Atty.DocketNo.T5961.P)的优先权,其整体以引用的方式并入在此。
技术介绍
除其他因素外,由于工艺技术和制造偏差,在固态驱动器(SSD)的任何管芯中可能存在很多坏的存储器块。而且,每个块的耐久性不同。在管芯的早期寿命中,块中的大部分是好的。然而,存在一些初始故障。在大量的管芯寿命期间,发生随机位错误。最终,在管芯的寿命即将结束时,磨损效应显露,在其中错误率增加。每个块都经历这样的生命周期,虽然潜在地以不同的速率。实际上,一些块花费很长的时间经历该生命周期,而其他块花费相比较而言较短的时间段。然而,为了提供充足的安全裕量,常规的SSD系统根据表现最差的块而被提供。闪存中的位可能在被编程之后被错误地读取(即,开发位错误)。闪存单元(cell)上的电荷水平将由于若干条件(例如,时间、温度、对块中的其他页的访问等)而改变。最终,当受到影响的单元被读取,则会返回错误的值。闪存制造商基于工艺技术、单元设计、实验室测试、模拟、操作条件等来规定针对闪存页的位错误的最大数。通常将位错误规范规定为每M字节P个错误。在一些情况下,控制器制造商负责实现满足或超过规范的纠错码(ECC)。ECC的类型包括ReedSolomon码、BCH码和低密度奇偶校验(LDPC)码,他们是在数据位的块中纠正位错误的方法。由闪存制造商规定的闪存设备的寿命(以编程/擦除(PE)周期测量)是基于对所规定的纠错需求的实现。闪存制造商在闪存页中提供额外的字节以容纳预期的ECC位的数量加上针对诸如例如循环冗余校验(CRC)字段、扇区号等的其他元数据的少量空间。开放NAND闪存接口(ONFI)规范版本2.3将闪存页定义为包含数据区域和备用区域。备用区域旨在用于保持ECC校验位和元数据,而数据区域被假定包含扇区(例如,逻辑块)数据。错误可能发生在特定页的数据部分以及在整个页中。针对每种类型的错误,需要不同的ECC代码和不同的纠错策略。附图说明图1A是示出了根据一个实施例的数据存储设备的物理数据组织和逻辑数据组织的方面的图。图1B是根据一个实施例的其中每个E页的数据部分和ECC部分在物理上分开的F页的图。图1C是示出了在给定F页内F页数据部分和F页ECC部分在尺寸上可变的图。图2示出了根据一个实施例的逻辑到物理地址转换映射及其示例性条目。图3示出了显示针对常规设备和方法二者的以及根据一个实施例的坏块与编程/擦除周期的百分比的图。图4是示出了根据一个实施例的块失效率与数据存储设备的生命期之间关系、以及可以变化E页的ECC部分和数据部分以扩展数据存储设备的有用生命期的方式的图。图5是根据一个实施例的块信息数据结构的图。图6是根据一个实施例的超块(S块)的方框图。图7示出了根据一个实施例的超页(S页)的另一视图。图8是根据一个实施例的示出了校验页的生成与存储的S页的图。图9是示出了根据一个实施例的块失效率与数据存储设备的生命期之间关系、以及可以变化校验页的数量以扩展数据存储设备的有用生命期的方式的图。图10是根据一个实施例的在数据存储设备中生成和存储校验页的方法的流程图。具体实施方式图1A是示出了根据一个实施例的数据存储设备的物理数据组织和逻辑数据组织的方面的图。在一个实施例中,数据存储设备是SSD。在另一实施例中,数据存储设备是包括闪存和旋转磁存储介质的混合驱动器。本公开能够应用于SSD和混合实现二者,但是出于简单的缘故,参考基于SSD的实现来对各种实施例进行描述。根据一个实施例,SSD控制器102可以被配置为耦合到如附图标记118处所示的主机。主机118可以采用逻辑块寻址(LBA)方案。尽管LBA的尺寸通常是固定的,但是主机能够动态地改变LBA的尺寸。例如,LBA的尺寸可以随着接口和接口模式而不同。实际上,尽管512字节是最常见的,但4KB的尺寸也正在获得青睐,还有512+(520、528等)和4K+(4K+8、4K+16等)格式。如其中所示出的,SSD控制器102可以包括或耦合到一个或多个页寄存器104。控制器102可以被配置为响应于来自主机118的数据访问命令而对来自闪存设备的阵列的数据进行编程并且读取。尽管本文的描述涉及闪存,但是应当理解的是,存储器设备的阵列可以包括其他类型的非易失性存储器,例如,闪存集成电路、硫系RAM(C-RAM)、相变存储器(PC-RAM或PRAM)、可编程金属化单元RAM(PMC-RAM或PMCm)、OvonicUnifiedMemory(OUM)、阻变式RAM(RRAM)、NAND存储器(例如,单层单元(SLC)存储器、多层单元(MLC)存储器、或其任意组合)、NOR存储器、EEPROM、铁电体存储器(FeRAM)、磁阻RAM(MRAM)、其他分立的NVM(非易失性存储器)芯片、或其任意组合。页寄存器104可以被配置为使控制器102能够从阵列中读取数据以及将数据存储到阵列。闪存设备的阵列可以包括一个或多个管芯(例如,128管芯)中的多个闪存设备。闪存设备可以包括多个闪存块,如图1A中109处所示。集合在一起的闪存块的组合可以被称为超块或S块。在一些实施例中,形成S块的单独的块可以从一个或多个管芯、平面或其他粒度级别中选择。因此,S块可以包括组合在一起的、跨过一个或多个管芯分布的多个闪存块。以这种方式,S块可以形成闪存管理系统(FMS)在其上操作的单元。在一些实施例中,可以根据与在管芯级不同的粒度来选择形成S块的单独的块,例如以下情况:当存储器设备包括被细分为诸如平面的结构的管芯(即,块可以从单独的平面中取得)时。根据一个实施例,分配、擦除和垃圾收集可以在S块级执行。在其他实施例中,FMS可以根据诸如页、块、平面、管芯等的其他逻辑分组来执行数据操作。闪存块109中的每一个可以包括多个诸如闪存页(F页)208的物理页。每一个F页208可以是固定尺寸的,例如,16KB。根据一个实施例,F页208的尺寸可以被定义为用于给定的闪存设备的编程的最小单元的尺寸。同样如图1A所示,每一个F页208可以被配置为容纳一个或多个诸如ECC页的物理子页,在下文中被称为E页210。本文中所使用的术语“E页”指的是被配置为在非易失性存储器(在其上应用了纠错码)中存储数据的数据结构。根据一个实施例,E页210可以形成SSD内的物理寻址的基础,并且可以构成闪存读取数据传送的最小单元。即,每个E页210可以被配置为存储由控制器102可读取的数据的最小量。E页210可以是预定的固定尺寸(例如,2KB),并且确定ECC系统的有效载荷(例如,主机或其他数据)的尺寸。然而,物理页(例如,E页)的尺寸不必是固定的。在一个实施例中,E页的地址唯一地标识在闪存内E页的位置。例如,E页的地址可以指定闪存通道、在所标识的闪存通道内的特定管芯、在管芯内的特定块、特定F页、以及最后在所标识的F页内的E页的起始。根据一个实施例,每一个F页208可以被配置为将一个或多个E页210安置在其边界内。例如,给定16KB宽的F页208以及每E页210固定尺寸2KB,八个E页210安置在单个F页208本文档来自技高网...
具有运行时变量RAID保护方案的方法、固态驱动器控制器以及数据存储设备

【技术保护点】
一种固态驱动器控制器,包括:处理器,所述处理器被配置为耦合到闪存设备的阵列,所述阵列包括多个管芯,每一个管芯包括多个闪存块(F块),每一个F块包括多个闪存页(F页),所述F页中的至少一些包括至少一个纠错码页(E页),并且所述E页中的至少一些包括可变尺寸的纠错码(ECC)部分和相应的可变尺寸的数据部分,在一个F页内的所述可变尺寸的数据部分作为总体定义了F页数据部分,其中,所述处理器被配置为:定义S页,所述S页包括来自所述多个管芯中的一个或多个的多个F页;在所述S页内,在所述F页内的每一个E页的所述可变尺寸的ECC部分内存储E页纠错码,以用于纠正在所述相应的可变尺寸的数据部分内的错误;将在所述S页中的所述F页之中具有最大尺寸F页数据部分的至少一个F页指定为校验页;以及在所述至少一个校验页内存储跨F页纠错码。

【技术特征摘要】
【国外来华专利技术】2012.12.03 US 61/732,830;2013.01.31 US 13/756,3281.一种固态驱动器控制器,包括:处理器,所述处理器被配置为耦合到闪存设备的阵列,所述阵列包括多个管芯,每一个管芯包括多个闪存块F块,每一个F块包括多个闪存页F页,所述F页中的至少一些包括至少一个纠错码页E页,并且所述E页中的至少一些包括可变尺寸的纠错码ECC部分和相应的可变尺寸的数据部分,在一个F页内的所述可变尺寸的数据部分作为总体定义了F页数据部分,其中,所述处理器被配置为:定义S页,所述S页包括来自所述多个管芯中的一个或多个的多个F页;在所述S页内,在所述F页内的每一个E页的所述可变尺寸的ECC部分内存储E页纠错码,以用于纠正在所述相应的可变尺寸的数据部分内的错误;将在所述S页中的所述F页之中具有最大尺寸F页数据部分的至少一个F页指定为校验页;以及在所述至少一个校验页内存储跨F页纠错码。2.根据权利要求1所述的固态驱动器控制器,其中,所述跨F页纠错码包括前向纠错FEC码。3.根据权利要求2所述的固态驱动器控制器,其中,所述前向纠错FEC码包括Reed-Solomon码。4.根据权利要求1所述的固态驱动器控制器,其中,所述E页纠错码包括低密度奇偶校验(LDPC)纠错码。5.根据权利要求1所述的固态驱动器控制器,其中,所述处理器被配置为在生成所述多个E页中的一个时,在运行时生成和存储所述E页纠错码。6.根据权利要求1所述的固态驱动器控制器,其中,所述处理器还被配置为随着数据被写入到所述S页,生成针对所述S页的所述跨F页纠错码。7.根据权利要求1所述的固态驱动器控制器,其中,所述处理器还被配置为从所述S页读取数据并且跳过已被指定为校验页的所述S页内的所述至少一个F页。8.根据权利要求1所述的固态驱动器控制器,其中,所述处理器还被配置为:在块信息数据结构中设置标志以指定S页内的特定F页为校验页;以及查阅所述块信息数据结构以确定S页的所述F页中的哪些已被指定为校验页。9.根据权利要求1所述的固态驱动器控制器,其中,所述处理器还被配置为取决于以下中的至少一项,将所述S页中的另外的F页指定为校验页:(1)所述阵列的配置,(2)所述阵列的性能,以及(3)所述阵列的预定部分的使用配置项。10.根据权利要求1所述的固态驱动器控制器,其中,所述处理器还被配置为将另外的F页指定为S页中的校验页,用于存储预定类型的信息。11.根据权利要求10所述的固态驱动器控制器,其中,所述预定类型的信息包括元数据。12.根据权利要求10所述的固态驱动器控制器,其中,所述预定类型的信息包括主机指示的数据。13.根据权利要求1所述的固态驱动器控制器,其中,在第一S页和第二S页之间,与被指定为所述第二S页内的校验页的所述至少一个F页所占据的位置相比,被指定为所述第一S页中的校验页的所述至少一个F页占据所述第一S页内的相对不同的位置。14.根据权利要求1所述的固态驱动器控制器,其中,所述S页是第一S页并且所述控制器还被配置为定义第二S页,所述第二S页具有与所述第一S页相比较大数量的被指定为校验页的F页。15.根据权利要求1所述的固态驱动器控制器,其中,所述处理器还被配置为,当写入F块时,确定以下中的至少一项:(1)要在每一个E页中的所述可变尺寸的ECC部分内生成的E页纠错码的强度;(2)要生成的跨F页纠错码的强度;以及(3)S页内的哪些F页被指定为校验页。16.根据权利要求1所述的固态驱动器控制器,其中,所述处理器还被配置为当所述E页纠错码没能纠正所遇到的错误时,应用所述跨F页纠错码。17.一种数据存储设备,包括:权利要求1所述的控制器,以及所述闪存设备的阵列。18.一种控制数据存储设备的方法,所述数据存储设备包括处理器,所述处理器...

【专利技术属性】
技术研发人员:R·丹尼尔克R·N·马伦多尔J·琼斯A·J·汤姆林
申请(专利权)人:西部数据技术公司天空时代有限责任公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1