欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種ssd存儲器的數(shù)據(jù)保護方法及控制器的制造方法

文檔序號:6519887閱讀:227來源:國知局
一種ssd存儲器的數(shù)據(jù)保護方法及控制器的制造方法
【專利摘要】本發(fā)明公布了一種SSD存儲器的數(shù)據(jù)保護方法,使用擦除編碼對需要寫入到SSD存儲器中的大塊數(shù)據(jù)進行分割、編碼、計算,得到冗余校驗數(shù)據(jù),并把數(shù)據(jù)和冗余校驗數(shù)據(jù)都寫入SSD存儲器中,從而利用這些冗余校驗數(shù)據(jù)對損壞的數(shù)據(jù)進行恢復(fù)。一種基于SSD存儲器的數(shù)據(jù)保護控制器,在SSD控制器中加入擦除編碼控制器和XOR運算單元;所述SSD控制器包括CPU、MEM控制器、擦除編碼控制器、XOR運算單元、DMA控制器、接口控制器以及內(nèi)部總線。本發(fā)明提出的SSD存儲器的數(shù)據(jù)保護方法使得SSD存儲器本身具備了數(shù)據(jù)保護功能。在使用多塊SSD存儲器時,無需把其做成RAID就可以獲得更高的容錯率以及數(shù)據(jù)恢復(fù)能力,且具有較高的錯誤容忍度和數(shù)據(jù)容錯率。
【專利說明】—種SSD存儲器的數(shù)據(jù)保護方法及控制器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于固態(tài)存儲設(shè)備的數(shù)據(jù)保護領(lǐng)域,具體涉及一種基于擦除編碼(ErasureCode)的SSD存儲器的數(shù)據(jù)保護方法及控制器。
【背景技術(shù)】
[0002]NAND FLASH存儲介質(zhì)具有擦寫次數(shù)的限制,這決定了 SSD存儲器會隨著使用時間的增長而出現(xiàn)磨損。隨著時間的推移,SSD存儲器在使用過程中出現(xiàn)壞塊的幾率也會越來越高,從而引起數(shù)據(jù)丟失。因此,SSD存儲器的數(shù)據(jù)保護是非常必要的。
[0003]現(xiàn)有的SSD存儲器利用ECC (Error Checking and Correcting,錯誤檢查和糾正)校驗作為數(shù)據(jù)保護方法,但是這種方法主要用于隨機bit翻轉(zhuǎn)的檢測和恢復(fù),并不能對壞塊造成的數(shù)據(jù)損壞進行保護。雖然,在一些對數(shù)據(jù)安全要求較高的應(yīng)用場合中,可以使用RAID技術(shù)對SSD存儲器的數(shù)據(jù)壞塊進行保護,然而,普遍使用的RAID5和RAID6容錯能力較低,而且恢復(fù)時間長。
[0004]擦除編碼是一種前向糾錯(Forward Error Correction,FEC)編碼,通過一定的編碼規(guī)則,對k個數(shù)據(jù)進行編碼并得到含有冗余校驗數(shù)據(jù)的n (n>k)個數(shù)據(jù),從而通過冗余校驗數(shù)據(jù)實現(xiàn)一定數(shù)量的錯誤檢測和糾正。GRID碼是一種擦除編碼,它包含多種不同的基于XOR運算的編碼方式,這些編碼結(jié)構(gòu)規(guī)范、易于實現(xiàn),可以具有15或者更高的錯誤容忍度,并且基于GRID碼的存儲系統(tǒng)可以實現(xiàn)高達80%的存儲效率。

【發(fā)明內(nèi)容】

[0005]本發(fā)明目的在于針對現(xiàn)有技術(shù)的缺陷提供一種高容錯無需RAID就可以獲得更高的容錯率以及數(shù)據(jù)恢復(fù)能力的SSD存儲器的數(shù)據(jù)保護方法及控制器。
[0006]本發(fā)明為實現(xiàn)上述目的,采用如下技術(shù)方案:
一種SSD存儲器的數(shù)據(jù)保護方法,其特征在于:使用擦除編碼對需要寫入到SSD存儲器中的大塊數(shù)據(jù)進行分割、編碼、計算,得到冗余校驗數(shù)據(jù),并把數(shù)據(jù)和冗余校驗數(shù)據(jù)都寫入SSD存儲器中,從而利用這些冗余校驗數(shù)據(jù)對損壞的數(shù)據(jù)進行恢復(fù)。
[0007]如圖2所示所述寫入過程如下:
(I)在向SSD存儲器寫入數(shù)據(jù)時,首先把要寫入的大塊數(shù)據(jù)按照其內(nèi)部FLASH塊的容量進行分割,得到k個連續(xù)的數(shù)據(jù)塊;
(2 )根據(jù)這k個數(shù)據(jù)塊需要寫入的FLASH塊的地址,把其所在行和列的FLASH塊中的數(shù)據(jù)都讀取到RAM中,若所在FLASH塊需要寫入新的數(shù)據(jù),則無需讀取數(shù)據(jù);
(3)利用擦除編碼對分割后的k個數(shù)據(jù)塊和所有讀取自FLASH塊的數(shù)據(jù)塊通過XOR運算進行編碼得到m個冗余校驗數(shù)據(jù)塊;
(4)把分割后的k個數(shù)據(jù)塊和計算得到的m個冗余校驗數(shù)據(jù)寫入到相應(yīng)的FLASH塊中,完成數(shù)據(jù)的寫入。
[0008]如圖3所示所述數(shù)據(jù)恢復(fù)流程如下: (1)當(dāng)SSD存儲器發(fā)現(xiàn)某些FLASH塊損壞后,根據(jù)擦除編碼規(guī)則確定與損壞的FLASH塊相對應(yīng)的數(shù)據(jù)塊和冗余校驗數(shù)據(jù)塊所在FLASH塊的地址;
(2)讀取損壞的FLASH塊與數(shù)據(jù)保護相關(guān)的對應(yīng)數(shù)據(jù)塊和冗余校驗數(shù)據(jù)塊;
(3)利用擦除編碼對這些相關(guān)的數(shù)據(jù)塊和冗余校驗數(shù)據(jù)塊進行計算得到損壞的FALSH塊中的正確的數(shù)據(jù),從而實現(xiàn)SSD存儲器的數(shù)據(jù)保護。
[0009]優(yōu)選的:所述擦除編碼為GRID碼。
[0010]如圖1所示一種基于上述方法的SSD存儲器的數(shù)據(jù)保護控制器,其特征在于:在SSD控制器中加入擦除編碼控制器和XOR運算單元;所述SSD控制器包括CPU、MEM控制器、擦除編碼控制器、XOR運算單元、DMA控制器、接口控制器以及內(nèi)部總線;
所述CPU用于協(xié)調(diào)MEM控制器、擦除編碼控制器、DMA控制器以及接口控制器之間的相互數(shù)據(jù)訪問;
所述擦除編碼控制器根據(jù)選取的擦除編碼類型構(gòu)建,進行相應(yīng)的數(shù)據(jù)編碼控制運算; 所述XOR運算單元對需要進行編碼的數(shù)據(jù)進行XOR運算;
所述MEM控制器的作用是提供CPU以及DMA控制器對主存儲器MEM的訪問支持;
所述接口控制器為包括IDE、SATA或者PCIe的接口控制器,用于提供外部設(shè)備對SSD控制器進行數(shù)據(jù)訪問的支持;
所述內(nèi)部總線用于連通CPU、EC控制器、MEM控制器以及接口控制器,提供它們之間的數(shù)據(jù)訪問通路。
[0011 ] 本發(fā)明提出的SSD存儲器的數(shù)據(jù)保護方法使得SSD存儲器本身具備了數(shù)據(jù)保護功能。在使用多塊SSD存儲器時,無需把其做成RAID就可以獲得更高的容錯率以及數(shù)據(jù)恢復(fù)能力。在使用GRID擦除編碼時,SSD存儲器可以具有15或者更高的錯誤容忍度,數(shù)據(jù)容錯率較高,而且存儲效率也較高。在大容量數(shù)據(jù)存儲中,相對于RAID而言,本發(fā)明專利提出的SSD存儲器的數(shù)據(jù)保護方法使得數(shù)據(jù)存儲具有較大的成本優(yōu)勢。
【專利附圖】

【附圖說明】
[0012]圖1為本發(fā)明提出的基于擦除編碼的SSD數(shù)據(jù)保護方法的SSD控制器結(jié)構(gòu)框圖; 圖中:Interface 為接口,Interface Controller 為接口 控制器,SSD Controller
為SSD控制器,EC Controller為擦除編碼控制器,MEM Controller為MEM控制器,DMAController為DMA控制器,XOR為XOR運算單兀,Cross bar為內(nèi)部總線,F(xiàn)lash ControlChannel為Flash控制通道。
[0013]圖2為本發(fā)明提出的基于擦除編碼的SSD數(shù)據(jù)保護方法的數(shù)據(jù)寫入流程圖。
[0014]圖3為本發(fā)明提出的基于擦除編碼的SSD數(shù)據(jù)保護方法的數(shù)據(jù)恢復(fù)流程圖。
[0015]圖4為本發(fā)明提出的基于擦除編碼的SSD數(shù)據(jù)保護方法的SSD控制器具體實施例硬件框圖;
圖中:PCIe Controller 為PCIe控制器,SSD Controller 為 SSD控制器,EC Controller為擦除編碼控制器,DDR2 Controller為DDR2控制器,DMA Controller為DMA控制器,XOR為XOR運算單兀,PLB為處理器局部總線,F(xiàn)lash Control Channel為Flash控制通道。
[0016]圖5為本發(fā)明提出的基于擦除編碼的SSD數(shù)據(jù)保護方法的一個具體實施例中用戶數(shù)據(jù)以及冗余校驗數(shù)據(jù)在SSD存儲器內(nèi)的分布圖。【具體實施方式】
[0017]圖4為本發(fā)明提出的基于擦除編碼的SSD數(shù)據(jù)保護方法的SSD控制器具體實施例硬件框圖。SSD控制器主要由PowerPC、DDR2控制器、EC控制器、XOR運算單元、DMA控制器、PCIe控制器以及內(nèi)部總線PLB構(gòu)成。
[0018]本實施例使用的擦除編碼為行優(yōu)先GRID (STAR, STAR)碼,具有3行和3列的冗余校驗數(shù)據(jù),并且優(yōu)先計算行冗余校驗數(shù)據(jù),因此其橫向錯誤容忍度k和縱向錯誤容忍度t。都為3,SSD存儲器的錯誤容忍度t等于(tr+1) (tc+l) -1,即為15。
[0019]本實施例中的SSD存儲器具有13行、13列共169塊4KB的FLASH閃存,如圖5所示,最右側(cè)3列FLASH存儲行校驗數(shù)據(jù)Pr*,最底3行中的前10列FLASH存儲列校驗數(shù)據(jù)Pc*,其余FLASH中存儲用戶數(shù)據(jù)。
[0020]本實施例中的SSD存儲器的一個具體數(shù)據(jù)塊的寫入過程如下:
1)當(dāng)用戶需要向SSD存儲器中寫入100KB大小的數(shù)據(jù)塊時,根據(jù)FLASH塊的容量,把這些數(shù)據(jù)分割成25個連續(xù)的4KB大小的數(shù)據(jù)塊;
2)假設(shè)這25個4KB數(shù)據(jù)塊需要寫入到從塊號為0開始到24的連續(xù)的FLASH塊中,即d0、dl直到d24所對應(yīng)的FLASH塊,把這25個FLASH塊所在行和列的所有FLASH塊中的數(shù)據(jù)都讀取到DDR2 RAM中(若所在FLASH塊需要寫入新的數(shù)據(jù),則無需讀取數(shù)據(jù));
3)EC控制器根據(jù)GRID(STAR, STAR)編碼規(guī)則并利用XOR運算單元計算出需要寫入的25個數(shù)據(jù)塊和所有讀取自FLASH塊的數(shù)據(jù)塊的行校驗數(shù)據(jù)PrO、Prl直到Pr8和列校驗數(shù)據(jù) PcO、Pcl 直到 Pc29 ;
4)把需要寫入的25個數(shù)據(jù)塊寫入d0、dl直到d24所對應(yīng)的FLASH塊,把行校驗數(shù)據(jù)寫入PrO、Prl直到Pr8所對應(yīng)的FLASH塊,并把列校驗數(shù)據(jù)寫入PcO、Pcl直到Pc29所對應(yīng)的FLASH中,完成數(shù)據(jù)的寫入。
[0021]本實施例中的SSD存儲器的損壞的FLASH塊的數(shù)據(jù)恢復(fù)過程如下:
1)當(dāng)用戶從SSD存儲器中讀取數(shù)據(jù)時,若SSD存儲器發(fā)現(xiàn)某些FLASH塊損壞(此實施例最多支持15塊),此處假設(shè)d0、dl、d2和d3所在的4個FLASH塊損壞,EC控制器根據(jù)這4個損壞FLASH塊的地址計算與其數(shù)據(jù)保護相關(guān)的數(shù)據(jù)和冗余校驗數(shù)據(jù)所在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塊的數(shù)據(jù)讀取到DDR2 RAM中;
EC控制器根據(jù)(STAR,STAR)編碼規(guī)則并利用XOR運算單元對這些讀取到RAM中的數(shù)據(jù)塊進行計算,得到這4個損壞的FLASH塊中的正確數(shù)據(jù),從而實現(xiàn)SSD存儲器的數(shù)據(jù)保護。
【權(quán)利要求】
1.一種SSD存儲器的數(shù)據(jù)保護方法,其特征在于:使用擦除編碼對需要寫入到SSD存儲器中的大塊數(shù)據(jù)進行分割、編碼、計算,得到冗余校驗數(shù)據(jù),并把數(shù)據(jù)和冗余校驗數(shù)據(jù)都寫入SSD存儲器中,從而利用這些冗余校驗數(shù)據(jù)對損壞的數(shù)據(jù)進行恢復(fù)所述寫入過程如下: (1)在向SSD存儲器寫入數(shù)據(jù)時,首先把要寫入的大塊數(shù)據(jù)按照其內(nèi)部FLASH塊的容量進行分割,得到k個連續(xù)的數(shù)據(jù)塊; (2)根據(jù)這k個數(shù)據(jù)塊需要寫入的FLASH塊的地址,把其所在行和列的FLASH塊中的數(shù)據(jù)都讀取到RAM中,若所在FLASH塊需要寫入新的數(shù)據(jù),則無需讀取數(shù)據(jù); (3)利用擦除編碼對分割后的k個數(shù)據(jù)塊和所有讀取自FLASH塊的數(shù)據(jù)塊通過XOR運算進行編碼得到m個冗余校驗數(shù)據(jù)塊; (4)把分割后的k個數(shù)據(jù)塊和計算得到的m個冗余校驗數(shù)據(jù)寫入到相應(yīng)的FLASH塊中,完成數(shù)據(jù)的寫入; 所述數(shù)據(jù)恢復(fù)流程如下: (1)當(dāng)SSD存儲器發(fā)現(xiàn)某些FLASH塊損壞后,根據(jù)擦除編碼規(guī)則確定與損壞的FLASH塊相對應(yīng)的數(shù)據(jù)塊和冗余校驗數(shù)據(jù)塊所在FLASH塊的地址; (2)讀取損壞的FLASH塊與數(shù)據(jù)保護相關(guān)的對應(yīng)數(shù)據(jù)塊和冗余校驗數(shù)據(jù)塊; (3)利用擦除編碼對這些相關(guān)的數(shù)據(jù)塊和冗余校驗數(shù)據(jù)塊進行計算得到損壞的FALSH塊中的正確的數(shù)據(jù),從而實現(xiàn)SSD存儲器的數(shù)據(jù)保護。
2.根據(jù)權(quán)利要求1所述的SSD存儲器的數(shù)據(jù)保護方法,其特征在于:所述擦除編碼為GRID 碼。
3.一種基于權(quán)利要求1或2所述方法的SSD存儲器數(shù)據(jù)保護控制器,其特征在于:在SSD控制器中加入擦除編碼控制器和XOR運算單元;所述SSD控制器包括CPU、MEM控制器、擦除編碼控制器、XOR運算單元、DMA控制器、接口控制器以及內(nèi)部總線; 所述CPU用于協(xié)調(diào)MEM控制器、擦除編碼控制器、DMA控制器以及接口控制器之間的相互數(shù)據(jù)訪問; 所述擦除編碼控制器根據(jù)選取的擦除編碼類型構(gòu)建,進行相應(yīng)的數(shù)據(jù)編碼控制運算; 所述XOR運算單元對需要進行編碼的數(shù)據(jù)進行XOR運算; 所述MEM控制器的作用是提供CPU以及DMA控制器對主存儲器MEM的訪問支持; 所述接口控制器為包括IDE、SATA或者PCIe的接口控制器,用于提供外部設(shè)備對SSD控制器進行數(shù)據(jù)訪問的支持; 所述內(nèi)部總線用于連通CPU、EC控制器、MEM控制器以及接口控制器,提供它們之間的數(shù)據(jù)訪問通路。
【文檔編號】G06F11/10GK103631671SQ201310586562
【公開日】2014年3月12日 申請日期:2013年11月19日 優(yōu)先權(quán)日:2013年11月19日
【發(fā)明者】張慶敏, 張衡, 汪圣平 申請人:無錫眾志和達數(shù)據(jù)計算股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
平乐县| 皋兰县| 毕节市| 新丰县| 宕昌县| 那坡县| 马边| 茌平县| 鹤山市| 鄱阳县| 芮城县| 景东| 平泉县| 共和县| 永顺县| 德化县| 岐山县| 清丰县| 句容市| 息烽县| 襄汾县| 龙岩市| 辉县市| 钟山县| 凤庆县| 海盐县| 杭州市| 伽师县| 靖远县| 栾城县| 鸡西市| 湖州市| 平塘县| 孙吴县| 梁平县| 台东县| 固阳县| 扶绥县| 武平县| 迁西县| 连平县|