一種基於flash晶片的固態盤數據存儲與恢復方法
2023-06-11 05:32:51
專利名稱:一種基於flash晶片的固態盤數據存儲與恢復方法
技術領域:
本發明涉及數據存儲技術領域,尤其是涉及一種基於flash晶片的固態盤 數據存儲與恢復方法。
背景技術:
隨著固態盤成本的降低,固態盤的使用範圍越來越廣,固態盤替代傳統的 硬碟已經慢慢成為趨勢。傳統的硬碟的數據可靠性完全依賴於碟片、磁頭和電 路的可靠性,基本上只要碟片損壞或者磁頭損壞,則數據將很難恢復。而普通 固態盤由多組Flash晶片組組成,為了實現數據的管理,Flash晶片都會按通道 的方式進行排列。該存儲原理見圖1: Flash晶片分成n個通道,從接口進來的 數據按數據塊的方式在控制器的控制之下,經過緩存後再通過數據分配電路先 把的一塊數據分配到Flash存儲通道1進行存儲,下一塊數據再分配到Flash 存儲通道2進行存儲,第n塊數據分配到Flash存儲通道n進行存儲,依次循 環往返。這些數據塊在Flash存儲通道中的塊地址信息將形成文件分配表。反 之在進行讀取操作的時候,將根據文件分配表讀取所需的數據。當某一塊Flash 晶片發生損壞後,則該晶片內部的信息將無法讀取,數據的完整性顯然收到,皮 壞,從而造成用戶數據丟失,將會給用戶造成無法估量的損失。發明內容本發明為克服上述的不足之處,目的在於針對傳統的基於Flash晶片的固 態盤,提供了基於flash晶片的固態盤數據存儲與恢復方法,通過冗餘數據的 生成和存儲以及數據恢復方法,解決了現有技術中存在的問題。本發明是通過以下技術方案達到上述目的 一種基於flash晶片的固態盤 數據存儲與恢復方法,包括數據存儲過程和數據恢復過程,數據存儲過程包括 以下步驟(一) 將Flash晶片分成n個通道;(二) 從接口進來的數據在控制器的控制之下,先劃分成n塊數據暫時保 存在緩存中;(三) 控制器根據當前的n塊數據生成冗餘信息;塊原始數據分配到Flash存儲通道1 進行存儲,第二塊原始數據再分配到Flash存儲通道2存儲,第n塊原始數據 分配到Flash存儲通道n進行存儲;(五) 將冗餘信息數據則存儲到Flash冗餘信息存儲通道中; 當flash存儲通道x損失,數據恢復過程包括以下步驟( 一 )控制器先把剩餘正常flash存儲通道的數據和冗餘通道的冗餘信息 讀到緩存;(二 )控制器才艮據剩餘正常flash存儲通道的數據和冗餘信息恢復flash 存儲通道x的數據;(三) 控制器將flash存儲通道x的數據恢復出來並存儲到緩存;(四) 控制器依次把完整的數據從接口輸出。作為優選,生成冗餘信息的算法採用異或算法,具體算法如下冗餘信息 第m位數據-f lash存儲通道1第m位數據 XOR flash存儲通道2第m位數 據XOR……XOR flash存儲通道n第m位數據(其中:m=l、 2…k, k為一常數)。作為優選,當如flash存儲通道x損失,數據恢復採用異或算法,具體算法 如下flash存儲通道x第m位數據-flash存儲通道l第m位數據 XOR...... XORflash存儲通道X-1第m位數據XOR冗餘信息第m位數據XOR flash存儲通道 X+l第m位數據…XOR flash存儲通道n第m位數據(其中m=l、 2…k, k為一 常數)。本發明的有益效果本發明提供的基於flash晶片的固態盤數據存儲與恢復 方法極大提高了固態盤存儲數據的可靠性,即使在某一個通道的晶片受到損壞, 也能夠保證存儲數據的完整性。
圖1:普通固態盤的存儲原理;圖2:本發明基於flash晶片的固態盤數據存儲與恢復方法原理圖; 圖3:冗餘信息生成示意圖; 圖4:數據恢復示意圖;具體實施方式
下面結合附圖通過實施例對本發明作進一步闡述如圖2、 3、 4所示, 一種基於flash晶片的固態盤數據存儲與恢復方法, 包括數據存儲過程和數據恢復過程,數據存儲過程包括以下步驟此處設n-30, x=15; k=20,m=l、 2…20;(一) 將Flash晶片分成30個通道;(二) 從接口進來的數據在控制器的控制之下,先劃分成30塊數據暫時保 存在緩存中;(三)控制器根據當前的30塊數據生成冗餘信息,具體算法如下 冗餘信息第1位數據-f lash存儲通道1第1位數據 XORHash存儲通道2第1位數據XOR……XOR flash存儲通道30第1位數據;冗餘信息第2位數據-f lash存儲通道1第2位數據 XORflash存儲通道2第2位數據XOR……XOR flash存儲通道30第2位數據;冗餘信息第20位數據-flash存儲通道l第20位數據 XOR flash存儲 通道l第20位數據XOR……XOR flash存儲通道30第20位數據;(四) 再通過數據分配電路先把第一塊原始數據分配到Flash存儲通道1 進行存儲,第二塊原始數據再分配到Flash存儲通道2存儲,第30塊原始數據 分配到Flash存儲通道30進行存儲;(五) 將冗餘信息數據則存儲到Flash冗餘信息存儲通道中; 當如flash存儲通道15損失,數據恢復過程包括以下步驟( 一 )控制器先把剩餘正常flash存儲通道的數據和冗餘通道的冗餘信息 讀到緩存;(二 )控制器恢復數據,根據剩餘正常flash存儲通道的數據和冗餘信息 恢復flash存儲通道15的數據;具體算法如下flash存儲通道15第l位數據- flash存儲通道l第1位數據 XOR flash 存儲通道2第1位數據XOR...... XOR flash存儲通道14第1位數據XOR冗餘信息第l位數據XOR flash存儲通道16第1位數據X0R…….XOR flash存儲通 道30第1位數據;flash存儲通道15第2位數據-flash存儲通道l第2位數據 XOR flash 存儲通道2第2位數據XOR……XOR flash存儲通道14第2位數據XOR冗餘信息第2位數據XOR flash存儲通道16第2位數據 XOR....... XOR flash存儲通道30第2位數據;flash存儲通道15第20位數據=flash存儲通道1第20位數據 XOR flash存儲通道2第20位數據XOR……XOR f lash存儲通道14第20位數據XOR冗餘信息第20位數據XORflash存儲通道16第2位數據 XOR.......XOR flash存儲通道30第2位數據;(三) 控制器將flash存儲通道x的數據恢復出來並存儲到緩存;(四) 控制器依次把完整的數據從接口輸出。為了解決固態盤中由於晶片損壞造成數據丟失的問題,提高數據存儲的可靠 性,本發明提出了根據原始數據生成冗餘信息數據後,在保存原始數據的同時, 也把冗信息餘數據保存到額外的Flash存儲通道上的方法。從接口進來的數據 在控制器的控制之下,先把30塊數據暫時保存在緩存中,控制器根據當前的30 塊數據生成冗餘信息後,再通過數據分配電路先把的一塊原始數據分配到Flash 存儲通道l進行存儲,下一塊原始數據再分配到Flash存儲通道2存儲,第30 塊原始數據分配到Flash存儲通道30進行存儲,冗餘信息數據則存儲到Flash 冗餘信息存儲通道中。這樣當需要讀取數據時,如果某個數據通道,假設是flash存儲通道15出 現損壞,控制器可以先讀取正常Flash存儲通道的數據和Flash冗餘存儲通道 的冗餘信息數據,再進行運算後就可以恢復出原受損通道的數據,從而保證數 據的完整性。本發明的生成冗餘信息和恢復數據的算法是採用異或(XOR)的算法。異或 算法的特點是當若干位(bit)原始數據經過XOR運算後,形成l位(bit)的 冗餘信息,在讀取時如果某個原始數據位出現損壞,則可以把剩餘好的原始數 據位和冗餘信息位重新進行XOR運算,就可以恢復原受損的原始數據位。以上的所述乃是本發明的具體實施例及所運用的技術原理,若依本發明的構 想所作的改變,其所產生的功能作用仍未超出說明書及附圖所涵蓋的精神時, 仍應屬本發明的保護範圍。
權利要求
1、一種基於flash晶片的固態盤數據存儲與恢復方法,包括數據存儲過程和數據恢復過程,其特徵在於,數據存儲過程包括以下步驟(一)將Flash晶片分成n個通道;(二)從接口進來的數據在控制器的控制之下,先劃分成n塊數據暫時保存在緩存中;(三)控制器根據當前的n塊數據生成冗餘信息;(四)再通過數據分配電路先把第一塊原始數據分配到Flash存儲通道1進行存儲,第二塊原始數據再分配到Flash存儲通道2存儲,第n塊原始數據分配到Flash存儲通道n進行存儲;(五)將冗餘信息數據則存儲到Flash冗餘信息存儲通道中;當flash存儲通道x損失,數據恢復過程包括以下步驟(一)控制器先把剩餘正常flash存儲通道的數據和冗餘通道的冗餘信息讀到緩存;(二)控制器根據剩餘正常flash存儲通道的數據和冗餘信息恢復flash存儲通道x的數據;(三)控制器將flash存儲通道x的數據恢復出來並存儲到緩存;(四)控制器依次把完整的數據從接口輸出。
2、 根據權利要求1所述的基於flash晶片的固態盤數據存儲與恢復方法, 其特徵在於,生成冗餘信息的算法採用異或算法,具體算法如下 冗餘信息第m位數據-flash存儲通道1第m位數據 XORflash存儲通 道2第m位數據XOR……XOR f lash存儲通道n第m位數據(其中n^1、2… k, k為一常數)。
3、 根據權利要求1或2所述的基於flash晶片的固態盤數據存儲與恢復方 法,其特徵在於,當如flash存儲通道x損失,數據恢復釆用異或算法,具 體算法如下f lash存儲通道x第m位數據- flash存儲通道1第m位數據 XOR……XOR flash存儲通道X-l第m位數據XOR冗餘信息第m位數據XOR flash存儲通道X+1第m位數據…XOR flash存儲通道n第m位數據(其中 m=l、 2…k, k為一常數)。
全文摘要
本發明涉及一種基於flash晶片的固態盤數據存儲與恢復方法,提出了根據原始數據生成冗餘信息數據後,在保存原始數據的同時,也把冗信息餘數據保存到額外的Flash存儲通道上,當flash存儲通道x損失,利用冗餘信息數據恢復數據。本發明的有益效果是本發明提供的基於flash晶片的固態盤數據存儲與恢復方法極大提高了固態盤存儲數據的可靠性,即使在某一個通道的晶片受到損壞,也能夠保證存儲數據的完整性。
文檔編號G06F11/08GK101620555SQ200910101509
公開日2010年1月6日 申請日期2009年8月10日 優先權日2009年8月10日
發明者馮再麟, 斯輝健, 雄 王, 王宇峰, 金亮亮, 強 陳, 馬小鵬 申請人:中國電子科技集團公司第五十二研究所