固态存储器中数据冗余方案内改进的奇偶校验值确定的系统和方法技术方案

技术编号:7935395 阅读:180 留言:0更新日期:2012-11-01 05:07
本发明专利技术的实施例旨在改进数据冗余方案中的奇偶校验值确定。在存储元件块大小是主机接口上使用的块大小的整数倍的面向块的存储系统中,可以在主块的未使用边界上计算奇偶校验值。然而,并不总是这种情况,结果会出现存储低效率。本发明专利技术的实施例通过允许RAID条深度(也被称为“带”)是个体存储元件的大小的非整数倍(即非易失性存储器程序粒度)来优化非易失性固态器件中的RAID奇偶校验值计算。这使得能够有效地利用主数据大小与非易失性存储器的存储元件大小不匹配的存储空间,同时提供处理奇偶校验值生成和数据恢复的直观方式。

【技术实现步骤摘要】
固态存储器中数据冗余方案内改进的奇偶校验值确定的系统和方法
本公开涉及非易失性存储系统,包括但不限于闪存驱动器。更具体地,本公开涉及用于改进固态存储器中数据冗余方案内的奇偶校验值确定的系统和方法。
技术介绍
许多数据存储部件如硬盘驱动器和固态驱动器具有制造商提供给消费者的某些公开的可靠性保证。例如,某些固态驱动器制造商保证数据丢失频率为10-16或10-17。为了提高数据可靠性,数据冗余方案如RAID(独立磁盘冗余阵列)被用于提高存储可靠性。可以通过将存储器件内的多个存储元件组合成提供镜像和/或误差校验机制的群组来提供冗余。例如,固态存储器件的各种存储元件可以被组合成将数据存储于其中的冗余条(stripe),其中通过某种形式的奇偶校验来保护该这些条。
技术实现思路
附图说明现在将参考以下附图描述体现本专利技术的各种特征的系统和方法,其中:图1是示出根据一个实施例实现数据冗余方案的存储子系统的方框图。图2是示出示例性数据冗余方案的方框图。图3A是示出数据压缩的示例的方框图。图3B是示出根据一个实施例具有奇偶校验值确定的数据冗余方案的方框图。图4是示出根据一个实施例的条创建过程的流程图。具体实施方式虽然描述了本专利技术的某些实施例,但是这些实施例仅以示例方式展示,并不意欲限制本专利技术的范围。实际上,本文描述的新颖方法和系统可以通过多种其他形式体现。此外,在不偏离本专利技术的精神的情况下,可以对本文中描述的方法和系统的形式做出各种省略、替代和变化。概要本专利技术的实施例旨在通过将冗余条(stripe)内的元件(即带(strip))的大小选择为对应于主操作系统使用的数据大小而不是非易失性存储器中的个体存储元件的大小来改进奇偶校验值确定。冗余RAID(1,10,5,6,50,60)是用于将数据可靠性提高到超过个体存储器件的故障率的众所周知的技术。克服存储元件故障的常见方式是使用冗余RAID(镜像、奇偶校验值等),以允许一旦发生一个或更多个故障时恢复数据。例如,在RAID5中,数据被组织成条(stripe),其中每个条由一组存储元件构成,其中一个元件被指定为奇偶校验值。在面向块的存储系统中,其中存储元件块大小是在主接口上使用的块大小的整数倍,可以在也被称为“扇区”的主块的未用过边界上计算奇偶校验值。然而,并不总是这种情况,结果会出现存储低效率。本专利技术的实施例通过允许RAID条深度(也被称为“带(strip)”)是个体存储元件的大小的非整数倍(即非易失性存储器程序粒度)来优化非易失性固态器件中的RAID奇偶校验值计算。系统概述图1是示出根据一个实施例实现数据冗余方案的存储子系统的方框图。如图所示,存储子系统140包括控制器150和一个或更多个非易失性固态存储器阵列160。该阵列可以包含例如闪存集成电路、硫族化物RAM(C-RAM)、相变存储器(PC-RAM或PRAM)、可编程金属化单元RAM(PMC-RAM或PMCm)、双向统一存储器(OUM)、电阻RAM(RRAM)、NAND存储器、NOR存储器、EERPOM、铁电体存储器(FeRAM)或其他离散NVM芯片。如本领域中已知的,固态存储器件可以被物理划分为块、页和扇区。可以额外地或替换地使用其他形式的存储器(例如,电池备份易失性DRAM或SRAM器件、磁盘驱动器等)。在一个实施例中,控制器150进而包括RAID模块158和数据组织器模块156。在其他实施例中,这两个模块可以划分为额外的模块或组合成一个模块。在一个实施例中,RAID模块158被配置为执行数据存取命令以维持存储子系统中的数据冗余方案。例如,RAID模块158可以维持存储元件分配给RAID条的数据,否则被编程以执行数据冗余操作。在一个实施例中,数据组织器模块156被配置为组织数据以便存储在一个或更多个非易失性固态存储器阵列160中,并且在一个实施例中,数据组织器模块156被分派任务以帮助RAID模块158定义/创建用户数据带并产生奇偶校验带。在一个实施例中,控制器可以包括DRAM170和/或SRAM172,用于进行在易失性存储器中需要临时存储数据的操作。例如,数据组织器模块156可以将数据临时存储在DRAM中以用于奇偶校验值计算。在一个实施例中,存储子系统140的控制器150被配置为接收和执行来自主系统130中的器件驱动器132的命令。来自驱动器132的存储命令可以包括由主系统130发布的写命令和读命令。如图1进一步所示,在一个实施例中,控制器150执行在一个或更多个非易失性固态存储器阵列160中接收的命令。尽管本公开使用RAID作为示例,但是本文中描述的系统和方法并不限于RAID冗余方案,并可以用在使用存储元件的分条和/或分组来实现镜像或误差校验目的的任何数据冗余结构中。此外,尽管RAID是独立磁盘冗余阵列的首字母缩略词,本领域技术人员将认识到,RAID并不限于具有物理磁盘的存储器件,并适用于包括本文所述的非易失性固态器件的各种存储器件。奇偶校验值计算图2是示出示例性RAID5数据冗余方案的方框图,其中沿着存储元件边界计算奇偶校验值。如图所示的控制器限定DRAM210中的多个数据带1到N。每个数据带被确定大小以包括一个或更多个扇区数据单元,其中扇区是由主操作系统使用的数据大小。为了误差纠正的目的,每个扇区数据由DPP(数据路径保护,其在一个实施例中是ECC(误差纠正代码)和基于LBA的EDC(基于逻辑块寻址的误差检测代码))保护。例如,数据带1中的扇区数据202由相关联的DPP204保护,该DPP204可以用于在出现误差时恢复扇区数据202。尽管这里示出DPP,但是本专利技术的各种实施例可以使用其他类似的数据误差纠正协议。图2中还示出了奇偶校验值计算。在该示例中,XOR引擎212校验每个扇区的DPP,生成XOR结果作为奇偶校验值,并为XOR结果生成DPP。总体结果在DRAM218中示出,其描述了与DRAM210相同但具有不同存储内容的物理DRAM。如图所示,生成的奇偶校验数据214形成奇偶校验带。由单独的DPP216保护每个奇偶校验数据。在该示例中,一旦在DRAM中完成奇偶校验值生成,每个数据带和奇偶校验带就被存储在非易失性存储器的存储元件(例如NAND页)中。此时,数据带1被存储在NAND页220中,数据带N被存储在NAND页222中,并且奇偶校验带被存储在NAND页224中。在该结构中,因为页大小是主机使用的扇区大小的整数倍,所以可以在未使用的扇区边界上执行奇偶校验值计算。压缩当存储元件块大小不是主接口块大小的整数倍时,有时通过“压缩”具有非整数倍主块的存储元件来使存储效率最大化。例如,在主块大小是528字节和存储块大小是1024字节的系统中,不是每个存储块存储一个主块(52%的效率),而是将15个主块“压缩”到8个存储块中,这可以将效率提高到89%。图3A是示出了这一数据压缩示例的方框图。在该示例性系统中,第一存储块含有第一主块和90%的第二主块,下一个存储块含有10%的第二主块、第三主块和80%的第四主块,等等。改进的奇偶校验值确定当需要“压缩”和RAID5冗余时,图2中的数据带不能再包括整数个主块(扇区),并且因为由扇区级的DPP(如图2中先前所示)保护存储在DRAM中的数据,奇偶校验值计本文档来自技高网...
固态存储器中数据冗余方案内改进的奇偶校验值确定的系统和方法

【技术保护点】
一种改进固态存储器件中的数据冗余结构的方法,所述方法包含:根据具有多个数据条的数据冗余结构为将要写入所述固态存储器件中的数据定义多个数据带,每个所述数据条包含多个数据带,其中所述存储器件包含多个存储元件,每个存储元件表示能够被编程的最小存储单元,其中每个存储元件的大小是每个创建的数据带的大小的非整数倍;为所定义的条的数据带生成奇偶校验带;以及将每个所述数据带和奇偶校验带存储在所述存储器件中,而不考虑所述存储器件中所述存储元件的边界,使得至少一个所述存储元件存储部分数据带或部分奇偶校验带。

【技术特征摘要】
2011.04.29 US 13/098,3561.一种改进固态存储器件中的数据冗余结构的方法,所述方法包含:根据具有多个数据条的数据冗余结构为将要写入固态存储器件中的数据定义数据带,所述多个数据条中的每个包含多个数据带,其中所述固态存储器件包含具有表示能够被编程的最小存储单元并且是每个所述数据带的大小的非整数倍的大小的多个存储元件;在所述多个存储元件的子集中存储第一多个数据带,使得所述第一多个数据带中的至少一个数据带横跨两个相邻的存储元件被存储,从而所述至少一个数据带用与所述至少一个数据带不相关的第一数据被部分存储在第一存储元件中,并且所述至少一个数据带用与所述至少一个数据带不相关的第二数据被部分存储在第二存储元件中;沿着所述第一多个数据带的边界并且不沿着所述固态存储器件的所述多个存储元件的边界为所述第一多个数据带生成奇偶校验带;以及在所述固态存储器件中存储所述奇偶校验带;其中所述生成所述奇偶校验带是基于所述至少一个数据带并且不基于还分别被存储在所述第一和第二存储元件中的与所述至少一个数据带不相关的所述第一数据和所述第二数据。2.根据权利要求1所述的方法,其中所述存储所述第一多个数据带和所述奇偶校验带涉及根据压缩结构将所述第一多个数据带和所述奇偶校验带存储在所述固态存储器件中,以减少所述多个存储元件中未被用于存储数据带或奇偶校验带的空间量。3.根据权利要求1所述的方法,其中每个所述数据带的大小是主操作系统使用的最小可寻址数据单元的大小的整数倍,所述主操作系统将数据发送至所述固态存储器件以便存储。4.根据权利要求1所述的方法,其中每个所述多个存储元件是页。5.根据权利要求1所述的方法,其中所述数据冗余结构是独立磁盘冗余阵...

【专利技术属性】
技术研发人员:R·L·霍恩
申请(专利权)人:西部数据技术公司
类型:发明
国别省市:

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

1