一种ssd存储器的数据保护方法及控制器的制造方法

文档序号:6519887阅读:197来源:国知局
一种ssd存储器的数据保护方法及控制器的制造方法
【专利摘要】本发明公布了一种SSD存储器的数据保护方法,使用擦除编码对需要写入到SSD存储器中的大块数据进行分割、编码、计算,得到冗余校验数据,并把数据和冗余校验数据都写入SSD存储器中,从而利用这些冗余校验数据对损坏的数据进行恢复。一种基于SSD存储器的数据保护控制器,在SSD控制器中加入擦除编码控制器和XOR运算单元;所述SSD控制器包括CPU、MEM控制器、擦除编码控制器、XOR运算单元、DMA控制器、接口控制器以及内部总线。本发明提出的SSD存储器的数据保护方法使得SSD存储器本身具备了数据保护功能。在使用多块SSD存储器时,无需把其做成RAID就可以获得更高的容错率以及数据恢复能力,且具有较高的错误容忍度和数据容错率。
【专利说明】—种SSD存储器的数据保护方法及控制器
【技术领域】
[0001]本发明属于固态存储设备的数据保护领域,具体涉及一种基于擦除编码(ErasureCode)的SSD存储器的数据保护方法及控制器。
【背景技术】
[0002]NAND FLASH存储介质具有擦写次数的限制,这决定了 SSD存储器会随着使用时间的增长而出现磨损。随着时间的推移,SSD存储器在使用过程中出现坏块的几率也会越来越高,从而引起数据丢失。因此,SSD存储器的数据保护是非常必要的。
[0003]现有的SSD存储器利用ECC (Error Checking and Correcting,错误检查和纠正)校验作为数据保护方法,但是这种方法主要用于随机bit翻转的检测和恢复,并不能对坏块造成的数据损坏进行保护。虽然,在一些对数据安全要求较高的应用场合中,可以使用RAID技术对SSD存储器的数据坏块进行保护,然而,普遍使用的RAID5和RAID6容错能力较低,而且恢复时间长。
[0004]擦除编码是一种前向纠错(Forward Error Correction,FEC)编码,通过一定的编码规则,对k个数据进行编码并得到含有冗余校验数据的n (n>k)个数据,从而通过冗余校验数据实现一定数量的错误检测和纠正。GRID码是一种擦除编码,它包含多种不同的基于XOR运算的编码方式,这些编码结构规范、易于实现,可以具有15或者更高的错误容忍度,并且基于GRID码的存储系统可以实现高达80%的存储效率。

【发明内容】

[0005]本发明目的在于针对现有技术的缺陷提供一种高容错无需RAID就可以获得更高的容错率以及数据恢复能力的SSD存储器的数据保护方法及控制器。
[0006]本发明为实现上述目的,采用如下技术方案:
一种SSD存储器的数据保护方法,其特征在于:使用擦除编码对需要写入到SSD存储器中的大块数据进行分割、编码、计算,得到冗余校验数据,并把数据和冗余校验数据都写入SSD存储器中,从而利用这些冗余校验数据对损坏的数据进行恢复。
[0007]如图2所示所述写入过程如下:
(I)在向SSD存储器写入数据时,首先把要写入的大块数据按照其内部FLASH块的容量进行分割,得到k个连续的数据块;
(2 )根据这k个数据块需要写入的FLASH块的地址,把其所在行和列的FLASH块中的数据都读取到RAM中,若所在FLASH块需要写入新的数据,则无需读取数据;
(3)利用擦除编码对分割后的k个数据块和所有读取自FLASH块的数据块通过XOR运算进行编码得到m个冗余校验数据块;
(4)把分割后的k个数据块和计算得到的m个冗余校验数据写入到相应的FLASH块中,完成数据的写入。
[0008]如图3所示所述数据恢复流程如下: (1)当SSD存储器发现某些FLASH块损坏后,根据擦除编码规则确定与损坏的FLASH块相对应的数据块和冗余校验数据块所在FLASH块的地址;
(2)读取损坏的FLASH块与数据保护相关的对应数据块和冗余校验数据块;
(3)利用擦除编码对这些相关的数据块和冗余校验数据块进行计算得到损坏的FALSH块中的正确的数据,从而实现SSD存储器的数据保护。
[0009]优选的:所述擦除编码为GRID码。
[0010]如图1所示一种基于上述方法的SSD存储器的数据保护控制器,其特征在于:在SSD控制器中加入擦除编码控制器和XOR运算单元;所述SSD控制器包括CPU、MEM控制器、擦除编码控制器、XOR运算单元、DMA控制器、接口控制器以及内部总线;
所述CPU用于协调MEM控制器、擦除编码控制器、DMA控制器以及接口控制器之间的相互数据访问;
所述擦除编码控制器根据选取的擦除编码类型构建,进行相应的数据编码控制运算; 所述XOR运算单元对需要进行编码的数据进行XOR运算;
所述MEM控制器的作用是提供CPU以及DMA控制器对主存储器MEM的访问支持;
所述接口控制器为包括IDE、SATA或者PCIe的接口控制器,用于提供外部设备对SSD控制器进行数据访问的支持;
所述内部总线用于连通CPU、EC控制器、MEM控制器以及接口控制器,提供它们之间的数据访问通路。
[0011 ] 本发明提出的SSD存储器的数据保护方法使得SSD存储器本身具备了数据保护功能。在使用多块SSD存储器时,无需把其做成RAID就可以获得更高的容错率以及数据恢复能力。在使用GRID擦除编码时,SSD存储器可以具有15或者更高的错误容忍度,数据容错率较高,而且存储效率也较高。在大容量数据存储中,相对于RAID而言,本发明专利提出的SSD存储器的数据保护方法使得数据存储具有较大的成本优势。
【专利附图】

【附图说明】
[0012]图1为本发明提出的基于擦除编码的SSD数据保护方法的SSD控制器结构框图; 图中:Interface 为接口,Interface Controller 为接口 控制器,SSD Controller
为SSD控制器,EC Controller为擦除编码控制器,MEM Controller为MEM控制器,DMAController为DMA控制器,XOR为XOR运算单兀,Cross bar为内部总线,Flash ControlChannel为Flash控制通道。
[0013]图2为本发明提出的基于擦除编码的SSD数据保护方法的数据写入流程图。
[0014]图3为本发明提出的基于擦除编码的SSD数据保护方法的数据恢复流程图。
[0015]图4为本发明提出的基于擦除编码的SSD数据保护方法的SSD控制器具体实施例硬件框图;
图中:PCIe Controller 为PCIe控制器,SSD Controller 为 SSD控制器,EC Controller为擦除编码控制器,DDR2 Controller为DDR2控制器,DMA Controller为DMA控制器,XOR为XOR运算单兀,PLB为处理器局部总线,Flash Control Channel为Flash控制通道。
[0016]图5为本发明提出的基于擦除编码的SSD数据保护方法的一个具体实施例中用户数据以及冗余校验数据在SSD存储器内的分布图。【具体实施方式】
[0017]图4为本发明提出的基于擦除编码的SSD数据保护方法的SSD控制器具体实施例硬件框图。SSD控制器主要由PowerPC、DDR2控制器、EC控制器、XOR运算单元、DMA控制器、PCIe控制器以及内部总线PLB构成。
[0018]本实施例使用的擦除编码为行优先GRID (STAR, STAR)码,具有3行和3列的冗余校验数据,并且优先计算行冗余校验数据,因此其横向错误容忍度k和纵向错误容忍度t。都为3,SSD存储器的错误容忍度t等于(tr+1) (tc+l) -1,即为15。
[0019]本实施例中的SSD存储器具有13行、13列共169块4KB的FLASH闪存,如图5所示,最右侧3列FLASH存储行校验数据Pr*,最底3行中的前10列FLASH存储列校验数据Pc*,其余FLASH中存储用户数据。
[0020]本实施例中的SSD存储器的一个具体数据块的写入过程如下:
1)当用户需要向SSD存储器中写入100KB大小的数据块时,根据FLASH块的容量,把这些数据分割成25个连续的4KB大小的数据块;
2)假设这25个4KB数据块需要写入到从块号为0开始到24的连续的FLASH块中,即d0、dl直到d24所对应的FLASH块,把这25个FLASH块所在行和列的所有FLASH块中的数据都读取到DDR2 RAM中(若所在FLASH块需要写入新的数据,则无需读取数据);
3)EC控制器根据GRID(STAR, STAR)编码规则并利用XOR运算单元计算出需要写入的25个数据块和所有读取自FLASH块的数据块的行校验数据PrO、Prl直到Pr8和列校验数据 PcO、Pcl 直到 Pc29 ;
4)把需要写入的25个数据块写入d0、dl直到d24所对应的FLASH块,把行校验数据写入PrO、Prl直到Pr8所对应的FLASH块,并把列校验数据写入PcO、Pcl直到Pc29所对应的FLASH中,完成数据的写入。
[0021]本实施例中的SSD存储器的损坏的FLASH块的数据恢复过程如下:
1)当用户从SSD存储器中读取数据时,若SSD存储器发现某些FLASH块损坏(此实施例最多支持15块),此处假设d0、dl、d2和d3所在的4个FLASH块损坏,EC控制器根据这4个损坏FLASH块的地址计算与其数据保护相关的数据和冗余校验数据所在FLASH块的地址,此处为 d4、d5 直至 d9,PrO、Prl、Pr2,dlO、d20 直至 d90 以及 PcO、Pel、Pc2 ;
2)把d4、d5 直至 d9,Pr0、Prl、Pr2,dl0、d20 直至 d90 以及 PcO、Pel、Pc2 所在的 FLASH块的数据读取到DDR2 RAM中;
EC控制器根据(STAR,STAR)编码规则并利用XOR运算单元对这些读取到RAM中的数据块进行计算,得到这4个损坏的FLASH块中的正确数据,从而实现SSD存储器的数据保护。
【权利要求】
1.一种SSD存储器的数据保护方法,其特征在于:使用擦除编码对需要写入到SSD存储器中的大块数据进行分割、编码、计算,得到冗余校验数据,并把数据和冗余校验数据都写入SSD存储器中,从而利用这些冗余校验数据对损坏的数据进行恢复所述写入过程如下: (1)在向SSD存储器写入数据时,首先把要写入的大块数据按照其内部FLASH块的容量进行分割,得到k个连续的数据块; (2)根据这k个数据块需要写入的FLASH块的地址,把其所在行和列的FLASH块中的数据都读取到RAM中,若所在FLASH块需要写入新的数据,则无需读取数据; (3)利用擦除编码对分割后的k个数据块和所有读取自FLASH块的数据块通过XOR运算进行编码得到m个冗余校验数据块; (4)把分割后的k个数据块和计算得到的m个冗余校验数据写入到相应的FLASH块中,完成数据的写入; 所述数据恢复流程如下: (1)当SSD存储器发现某些FLASH块损坏后,根据擦除编码规则确定与损坏的FLASH块相对应的数据块和冗余校验数据块所在FLASH块的地址; (2)读取损坏的FLASH块与数据保护相关的对应数据块和冗余校验数据块; (3)利用擦除编码对这些相关的数据块和冗余校验数据块进行计算得到损坏的FALSH块中的正确的数据,从而实现SSD存储器的数据保护。
2.根据权利要求1所述的SSD存储器的数据保护方法,其特征在于:所述擦除编码为GRID 码。
3.一种基于权利要求1或2所述方法的SSD存储器数据保护控制器,其特征在于:在SSD控制器中加入擦除编码控制器和XOR运算单元;所述SSD控制器包括CPU、MEM控制器、擦除编码控制器、XOR运算单元、DMA控制器、接口控制器以及内部总线; 所述CPU用于协调MEM控制器、擦除编码控制器、DMA控制器以及接口控制器之间的相互数据访问; 所述擦除编码控制器根据选取的擦除编码类型构建,进行相应的数据编码控制运算; 所述XOR运算单元对需要进行编码的数据进行XOR运算; 所述MEM控制器的作用是提供CPU以及DMA控制器对主存储器MEM的访问支持; 所述接口控制器为包括IDE、SATA或者PCIe的接口控制器,用于提供外部设备对SSD控制器进行数据访问的支持; 所述内部总线用于连通CPU、EC控制器、MEM控制器以及接口控制器,提供它们之间的数据访问通路。
【文档编号】G06F11/10GK103631671SQ201310586562
【公开日】2014年3月12日 申请日期:2013年11月19日 优先权日:2013年11月19日
【发明者】张庆敏, 张衡, 汪圣平 申请人:无锡众志和达数据计算股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1