專利名稱:一種恢復數據的方法及存儲裝置的制作方法
技術領域:
本發明涉及存儲技術領域,尤其涉及一種恢復數據的方法及存儲裝置。
背景技術:
固態硬盤(SSD,Solid State Drive)是一種基于Flash的新式硬盤。其抗震性極 佳,且工作溫度的范圍很大,廣泛應用于軍事、車載、航空等領域。SSD的尋址方式是邏輯塊 尋址(LBA,Logical Block Addressing), LBA以扇區為基本單位,一個扇區的大小可以是 512字節。對于SSD來說,每個物理頁對應一定的LBA區間。SSD利用若干Flash顆粒組成 多個通道,可以并行處理數據。現有技術中,若SSD中的一個通道上的Flash顆粒出現問題,即出現壞塊、或者整 個通道的數據都壞掉,會造成用戶數據丟失。在磁盤中,有一種Mirror (鏡像)功能可以針 對數據丟失進行恢復,如果讀取數據失敗,則系統自動轉而讀取備份數據,不會造成用戶工 作任務的中斷。但由于對存儲的數據進行百分之百的備份,備份數據占了總存儲空間的一 半,因而Mirror (鏡像)的磁盤空間利 用率低,存儲成本高。發明人在研究過程中發現,SSD中的一個通道上的Flash顆粒出現問題,恢復數據 時利用備份的方式對系統提出了較高的要求,且必須占據額外的存儲空間,無法從出現數 據丟失的SSD中直接恢復出丟失的數據給用戶。
發明內容
本發明實施例提供了一種恢復數據的方法及存儲裝置,當存儲裝置中有存儲單元 顆粒發生數據丟失時,可以從這個數據丟失的存儲裝置存儲單元顆粒中直接恢復出丟失的 數據。一種存儲裝置恢復數據的方法,所述方法包括接收主機下發的讀數據讀取請求;檢測所述數據讀取請求所請求的數據是否丟失;若檢測出所述數據丟失,根據所述數據的邏輯塊尋址地址選擇一個邏輯條帶;解析所述邏輯條帶,根據所述邏輯條帶中的特定邏輯地址所對應存儲空間所存儲 的數據以及校驗值計算出所請求的數據,所述特定邏輯地址不同于所述邏輯塊尋址地址。一種存儲裝置寫數據的方法,所述方法包括接收主機下發的寫數據請求;選擇一個邏輯條帶,所述邏輯條帶包含η個邏輯地址,所述η個邏輯地址分別位于 存儲裝置的η個數據通道上;計算出存儲裝置η個數據通道上存儲單元顆粒存儲的數據的校驗值,將所述寫數 據請求所請求的數據寫入所述邏輯地址對應的存儲空間,并將計算出的校驗值分別寫入各 校驗通道上。一種存儲裝置,所述存儲裝置包括
第一計算單元,用于根據互逆運算中的一個函數計算出存儲裝置η個數據通道上 存儲單元顆粒存儲的數據的校驗值,所述互逆運算的個數與所述校驗值的個數相同,η為自 然數,所述個數大于或者等于1 ;第一接收單元,用于接收主機下發的數據讀取請求;檢測單元,用于檢測所述數據讀取請求所請求的數據是否丟失;解析單元,用于在所述檢測單元檢測出所述數據讀取請求所請求的數據丟失時, 根據所述第一接收單元接收的數據讀取請求中的邏輯塊尋址地址解析出邏輯條帶;獲取單元,用于根據所述解析單元解析的邏輯條帶查找映射表,從所述映射表中 獲取所請求的數據在所述存儲裝置中存儲的物理地址,所述映射表包含所述邏輯條帶中的 邏輯地址與所述存儲裝置中的物理地址的對應關系;
第二計算單元,用于根據所述邏輯條帶中特定邏輯地址對應的存儲空間所存儲的 數據以及校驗值計算出所請求的數據,所述特定邏輯地址對應的物理地址沒有存儲所述主 機請求的數據,所述特定邏輯地址與所述邏輯塊尋址地址不相同。可以看出,在本發明實施例中,當所請求的數據丟失時,可以從數據讀取請求的 LBA地址中解析出邏輯條帶,再根據邏輯條帶以及映射表獲取所請求的數據在存儲裝置中 存儲的物理位置,根據所述邏輯條帶中特定邏輯地址對應的存儲空間(即物理地址對應的 存儲空間)所存儲的數據以及所述校驗值計算出所請求的數據,從而實現了從出現數據丟 失的存儲單元顆粒中直接恢復數據,提高了存儲裝置的安全性及有效性。
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現 有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可 以根據這些附圖獲得其他的附圖。圖1為本發明實施例一種恢復數據的方法流程圖;圖2為本發明實施例另一種恢復數據的方法流程圖;圖3為本發明實施例提供的另一種恢復數據的方法流程圖;圖4為本發明實施例提供的另一種恢復數據的方法流程圖;圖5為本發明實施例提供的一種寫數據方法流程圖;圖6為本發明實施例提供的一種存儲裝置結構示意圖;圖7為本發明實施例提供的另一種存儲裝置結構示意圖。
具體實施例方式為了使本發明實施例的特征、優點更加明顯易懂,下面結合具體實施方式
進行詳 細說明。在本發明的實施例中,存儲裝置可以是SSD和/或任何基于IDE、串行ATA接口的 存儲裝置(或者是半導體存儲裝置等)、閃存盤等;所述存儲裝置的芯片包括Flash、MRAM、 DRAM、SDRAM、EPROM、EEPROM或SRAM。如果存儲裝置是Nand閃速存儲器或Nor閃速存儲器, 則控制單元可分別使用Nand閃速存儲器或Nor閃速存儲器接口模式與存儲陣列進行通信。本發明實施例的存儲裝置也可以是相位可改變存儲器或其它的非易失性存儲器。以SSD為例,本發明實施例中的SSD由Flash顆粒以及Flash控制器組成,數據均 存放在Flash顆粒中。在SSD中包括η個數據通道,數據通道上存儲單元顆粒可以是頁(page)或者扇區 (sector),SSD在每個通道上取至少一個頁構建至少一個邏輯條帶。所述邏輯條帶包含η個 邏輯地址,所述η個邏輯地址分別位于所述存儲裝置的η個數據通道上,所述η為自然數。 所述數據平均分布在η個數據通道上。在讀寫操作中,如一個通道上的Flash顆粒失效或 Flash顆粒物理損壞等會引起存放在此顆粒的數據丟失,從 而影響SSD正常的讀寫操作。在本發明的實施例中,SSD中的固化軟件將SSD歷史操作信息進行統計,所述歷史 操作信息包括邏輯條帶的標示和各個邏輯條帶的大小等信息,SSD可以調節所述邏輯條帶 的大小,SSD根據對邏輯條帶的劃分,在讀寫過程中可以將數據并行映射到不同的數據通道 中所對應的存儲區域。由于多通道的SSD是由多個通道同時進行操作,因此如果寫入或者 讀出的數據可以處于不同的數據通道,則所述數據的物理空間的分布有可能是不連續的, 邏輯條帶可以將不連續的物理頁面組織成一個連續的邏輯空間。本發明的實施例中,SSD的控制器由 FPGA (FPGA,Field ProgrammableGate Array) 實現,在存儲裝置讀或寫操作過程中,FPGA會檢測到具體哪個邏輯地址的Flash顆粒丟失, SSD的控制器發送錯誤提示信息及丟失數據的邏輯地址。在本發明的另一個實施例中,SSD的控制器由控制芯片實現,SSD的控制器在讀寫 Flash時候,控制器也會檢測到Flash顆粒的丟失。此處的數據丟失包括物理損壞、數據異 常(DEC失敗)等,當檢測到數據丟失,可通過AISIC芯片發送錯誤提示信息。請參考圖1,為本發明實施例一種存儲裝置恢復數據的方法流程圖。首先,在SSD寫操作過程中SSD需要按照預設的根據互逆運算中的一個函數計算 出固態硬盤η個數據通道上存儲單元顆粒存儲的數據的校驗值,所述互逆運算包括用于計 算校驗值的至少一個函數(稱為第一函數)和用于計算數據的另一個函數(稱為第二函 數)。所述互逆運算的個數與所述校驗值的個數相同,即一個邏輯條帶對應一個校驗值,一 個校驗值對應一個互逆運算,所述個數大于或者等于1。圖1可以包括以下步驟步驟101 接收主機下發的數據讀取請求,并檢測所述數據讀取請求所請求的數 據是否丟失;如果發現請求的數據無法正確讀取出來,則檢測出請求的數據丟失。步驟102 若檢測出所述數據讀取請求所請求的數據丟失,根據所述數據的邏輯 塊尋址地址選擇一個邏輯條帶;可以根據所述數據讀取請求中的LBA地址解析出邏輯條 帶,所述邏輯條帶包含η個邏輯地址,所述η個邏輯地址分別位于所述存儲裝置的η個數據 通道上;步驟103 解析所述邏輯條帶,根據所述邏輯條帶中特定邏輯地址對應的存儲空 間(即物理地址對應的存儲空間,下同)存儲的數據以及校驗值計算出所請求的數據,所述 特定邏輯地址與所述邏輯塊尋址地址不相同。也就是說,先解析所述邏輯條帶,再根據所述邏輯條帶查找映射表,從所述映射表 中獲取所述主機請求的數據在所述存儲裝置中存儲的物理地址,所述映射表包含了所述邏輯條帶中的邏輯地址與所述存儲裝置中的物理地址的對應關系;利用所述互逆運算中的另 一個函數,根據所述邏輯條帶中特定邏輯地址對應的存儲空間所存儲的數據以及校驗值計 算出所請求的數據,所述特定邏輯地址與所述邏輯塊尋址地址不相同。所述特定邏輯地址 對應的存儲空間沒有存儲所述主機請求的數據。在接收所述數據讀取請求之前,所述方法還可以包括,預先計算出所述存儲裝置η 個數據通道上存儲單元顆粒所存儲數據的校驗值,將所述校驗值存儲于校驗通道上。可以看出,在本發明實施例中,當所請求的數據丟失時,可以從數據讀取請求的 LBA地址中解析出邏輯條帶,再根據邏輯條帶以及映射表獲取所請求的數據在存儲裝置中 存儲的物理位置,根據所述邏輯條帶中特定邏輯地址對應的存儲空間存儲的數據以及所述 校驗值計算出所請求的數據,從而實現了從出現數據丟失的存儲單元顆粒中恢復數據,且 無需依賴于備份數據,提高了存儲裝置的安全性及有效性。上述的SSD可以是基于串行ATA接口的半導體存儲設備、閃存盤等,存儲單元顆粒 為Flash顆粒,在下文中,僅以SSD為例進行說明。SSD具有η個數據通道以及1個校驗通 道,或者,SSD具有η個數據通道以及m個校驗通道,其中,η以及m為自然數,η大于或者等 于m且m大于1。η個數據通道中任意一個數據通道上的數據丟失,從SSD中讀數據時,都 可以通過其它η-1個數據通道以及1個校驗通道將丟失的數據恢復出來,或通過其他n-m 個數據通道以及m個校驗通道將丟失的數據恢復出來。 請參考圖2,為本發明實施例另一種存儲裝置恢復數據的方法流程圖,可以包括以 下步驟步驟201 =SSD根據η個數據通道上存儲單元顆粒存儲的數據計算出校驗值;
存儲單元顆粒可以是頁(page)或者扇區(sector),SSD從SSD的η個數據通道上 分別選擇一個頁或者至少一個扇區計算出校驗信息。假設Ai為第i個數據通道上一個存儲單元顆粒所存儲的數據,其中i為自然數且 i大于等于1小于等于η。將VA2、A3、···、&、…、4 進行函數F的運算的,得到校驗值\。函數F滿足如下函數關系F(A1 A2,A3, -,Ai, -,An) = AqAi = G(A1, A2, A3, ···, Ai^1, Ai+1, ···, An, Aq)其中函數F與函數G為互逆運算。當位于第i個數據通道上的數據損壞時,根據 函數G可以計算出A”步驟202 =SSD將計算出的校驗值存儲在校驗通道上;步驟203 =SSD接收主機發送的數據讀取請求,若所請求的數據已丟失;步驟204 =SSD根據數據讀取請求中的LBA地址解析出邏輯條帶;邏輯條帶包含η個邏輯地址,這η個邏輯地址可以是分別位于η個數據通道上的 一個頁的邏輯地址,還可以是分別位于η個數據通道上的至少一個扇區的邏輯地址。邏輯 條帶中至少一個邏輯地址對應的存儲空間所存儲的數據是主機請求讀取的數據。步驟205 :SSD根據解析出的邏輯條帶查找映射表,從映射表中獲取所請求的數據 在SSD中存儲的物理位置;映射表包含了邏輯條帶的邏輯地址與SSD中的物理地址的對應關系,例如,邏輯 條帶中包含η個邏輯地址,這η個邏輯地址分別是η個數據通道上一個頁的邏輯地址,映射表包含了這η個邏輯地址及其在SSD上對應的物理地址的一一對應關系。
步驟206 =SSD利用函數F的互逆運算,根據邏輯條帶中特定邏輯地址對應的存儲 空間所存儲的數據以及校驗值計算所請求的數據;其中,特定邏輯地址對應的物理地址沒有存儲主機請求讀取的數據。例如由于步驟201中校驗信息是根據函數F計算出來的,且函數F與函數G為互 逆運算,所以在步驟205中根據函數G計算出所請求的數據。步驟207 =SSD將計算出的數據返回至主機。當本發明實施例提供的SSD只有一個校驗通道時,損壞的數據只能位于一個數據 通道上。請參考圖3,為本發明實施例提供的另一種SSD讀數據的方法流程圖,可以包括以 下步驟步驟301 =SSD根據η個數據通道上存儲單元顆粒所存儲的數據計算出一個校驗 值;此時,可以根據漢明碼運算或者異或運算計算校驗值。漢明碼運算以及異或運算 均為互異運算,且可以得到一個校驗值。步驟302 =SSD將計算出的校驗值存儲在一個校驗通道上;步驟303 :SSD接收主機發送的數據讀取請求,數據讀取請求所請求的數據位于 SSD中的一個數據通道上,且所請求的數據已丟失;SSD具體的檢測方法與前文提到的檢測到Flash顆粒丟失的實現方式相同,不再 贅述。步驟304 =SSD根據數據讀取請求中的LBA地址解析出邏輯條帶;邏輯條帶中一個邏輯地址對應的物理地址所存儲的數據是主機請求讀取的數據。步驟305 :SSD根據解析出的邏輯條帶查找映射表,從映射表中獲取所請求的數據 在SSD中存儲的物理位置;步驟306 =SSD利用步驟301中的互逆運算,根據邏輯條帶中n_l個邏輯地址對應 的存儲空間所存儲的數據以及一個校驗值計算所請求的數據;其中,n-1個邏輯地址對應的物理地址沒有存儲主機請求讀取的數據。步驟307 =SSD將計算出的數據返回至主機。當本發明實施例提供的SSD校驗通道的個數大于1時,損壞的數據最多可以分別 位于與校驗通道個數相同的數據通道上,例如若本發明實施例提供的SSD校驗通道的個 數為2,損壞的數據可以位于一個數據通道上,也可以位于兩個數據通道上。當損壞的數據 位于一個數據通道上時,本發明實施例提供的方法與步驟301至步驟307相同,不再贅述, 下面對損壞的數據位于兩個數據通道上這種情況進行詳細說明。請參考圖4,為本發明實施例提供的另一種恢復數據的方法流程圖,可以包括以下 步驟步驟401 =SSD根據η個數據通道上存儲單元顆粒所存儲的數據計算出兩個校驗 值;此時需要有兩種不同的互逆函數(Fl,Gl),(F2,G2),通過兩種不同的函數計算出 兩個不同的校驗值,
步驟402 =SSD將計算出的兩個校驗值分別存儲在兩個校驗通道上;步驟403 =SSD接收主機發送的數據讀取請求,數據讀取請求所請求的數據分別位 于SSD中的兩個數據通道上,經檢測,發現請求的數據已丟失;SSD具體的檢測方法與前文提到的檢測到Flash顆粒丟失的實現方式相同,不再 贅述。
步驟404 =SSD根據數據讀取請求中的LBA地址解析出邏輯條帶;邏輯條帶中兩個邏輯地址對應的存儲空間所存儲的數據是主機請求讀取的數據。步驟405 :SSD根據解析出的邏輯條帶查找映射表,從映射表中獲取所請求的數據 在SSD中存儲的物理位置;步驟406 =SSD利用步驟401中的逆運算,根據n_2個邏輯地址對應的存儲空間所 存儲的數據以及兩個校驗值計算所請求的數據;其中,n-2個邏輯地址對應的存儲空間沒有存儲主機請求讀取的數據。步驟407 =SSD將計算出的數據返回至主機。可以看出,在本發明實施例中,當所請求的數據丟失時,可以從數據讀取請求的 LBA地址中解析出邏輯條帶,再根據邏輯條帶以及映射表獲取所請求的數據在SSD中存儲 的物理位置,根據所述邏輯條帶中特定邏輯地址對應的存儲空間所存儲的數據以及所述校 驗值計算出所請求的數據,從而實現了從出現數據丟失的Flash顆粒中恢復數據,提高了 SSD的安全性及有效性。其中,本領域技術人員可以理解,以上實施例列舉的一種或兩種不同的互逆函數 是出于說明的目的,而不是對本申請的限制,根據本申請的恢復數據的方法,可以采用一個 互逆函數或兩個不同的互逆函數,也可以根據SSD的數據通道的數量及丟失數據的通道的 數量對互逆函數的個數進行調整。請參考圖5,為本發明實施例提供的一種寫數據方法流程圖,可以包括以下步驟步驟501 接收主機下發的寫數據請求;步驟502 選擇一個邏輯條帶,所述邏輯條帶包含η個邏輯地址,所述η個邏輯地 址分別位于存儲裝置的η個數據通道上;其中,所述選擇的邏輯條帶中η個邏輯地址對應的存儲空間未存儲數據;步驟503 計算出存儲裝置η個數據通道上存儲單元顆粒存儲的數據的校驗值;其中,可以根據互逆運算中的一個函數來計算出存儲裝置η個數據通道上存儲單 元顆粒存儲的數據的校驗值,但并不限于此;所述互逆運算的個數與所述校驗值的個數相 同,所述個數大于或者等于1;步驟504:將所述寫數據請求所請求的數據寫入邏輯地址對應的存儲空間,并將 計算出的校驗值分別寫入各校驗通道上。可選地,在將所述寫數據請求所請求的數據寫入所述物理地址之后,所述方法還 可以包括更新映射表,所述映射表包含所述邏輯條帶中的邏輯地址與所述存儲裝置中的 物理地址的對應關系。請參考圖6,為本發明實施例提供的一種存儲裝置結構示意圖,可以包括第一計算單元601,用于計算出存儲裝置η個數據通道上存儲單元顆粒存儲的數 據的校驗值;其中,存儲裝置η個數據通道存儲單元顆粒存儲的數據的校驗值是根據互逆運算中的一個函數計算出來的,所述互逆運算的個數與所述校驗值的個數相同,η為自然 數,所述個數大于或者等于1 ;第一接收單元602,用于接收主機下發的數據讀取請求;檢測單元603,用于檢測所述數據讀取請求所請求的數據是否丟失;檢測單元603具體的檢測方法與前文提到的SSD檢測到Flash顆粒丟失的實現方 式相同,不再贅述。解析單元604,用于在所述檢測單元603檢測出所述數據讀取請求所請求的數據 丟失時,根據所述第一接收單元602接收的數據讀取請求中的邏輯塊尋址地址解析出邏輯 條帶;其中,所述邏輯條帶包含η個邏輯地址,所述η個邏輯地址分別位于所述存儲裝置的 η個數據通道上;獲取單元605,用于根據所述解析單元604解析的邏輯條帶查找映射表,從所述映 射表中獲取所請求的數據在所述存儲裝置中存儲的物理位置,所述映射表包含所述邏輯條 帶中的邏輯地址與所述存儲裝置中的物理地址的對應關系;
第二計算單元606,利用所述互逆運算中的另一個函數,根據所述邏輯條帶中特定 邏輯地址對應的存儲空間所存儲的數據以及所述校驗值計算出所請求的數據,所述特定邏 輯地址與所述邏輯塊尋址地址不相同。其中,所述特定邏輯地址對應的存儲空間沒有存儲 所述主機請求的數據;可以看出,在本發明實施例中,當所請求的數據丟失時,可以從數據讀取請求的 LBA地址中解析出邏輯條帶,再根據邏輯條帶以及映射表獲取所請求的數據在存儲裝置中 存儲的物理位置,根據所述邏輯條帶中特定邏輯地址對應的物理地址所存儲的數據以及所 述校驗值計算出所請求的數據,從而實現了從半導體存儲單元的顆粒中恢復數據,提高了 了存儲裝置的安全性及有效性。請參考圖7,為本發明實施例提供的另一種存儲裝置結構示意圖,在圖6的基礎 上,還可以包括至少一個校驗通道701,用于存儲所述第一計算單元602計算出的校驗值。返回單元702,用于將所述第二計算單元606計算出的數據返回至主機。第二接收單元703,用于接收主機下發的寫數據請求;選擇單元704,用于選擇一個邏輯條帶,所述邏輯條帶包含η個邏輯地址,所述η個 邏輯地址分別位于存儲裝置的η個數據通道上;其中,所述選擇的邏輯條帶中η個邏輯地址 對應的存儲空間未存儲數據;寫入單元705,用于將所述第二接收單元接收到的寫數據請求所請求的數據寫入 所述邏輯地址所對應的存儲空間,并將所述第一計算單元601計算出的校驗值分別寫入各 校驗通道上。更新單元706,用于在寫入單元705執行寫入操作之后,更新所述映射表。需要指出的是,上文指出的各單元中,除了檢測單元603,其余各單元均可以通過 控制器上的固化軟件實現,但是,實現方式均不限于此。最后,還需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將 一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作 之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括 那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或 者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并 不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到本發明可借 助軟件加必需的硬件平臺的方式來實現,當然也可以全部通過硬件來實施,但很多情況下 前者是更佳的實施方式。基于這樣的理解,本發明的技術方案對背景技術做出貢獻的全部 或者部分可以以軟件產品的形式體現出來,該計算機軟件產品可以存儲在存儲介質中,如 ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務 器,或者網絡設備等)執行本發明各個實施例或者實施例的某些部分所述的方法。以上對本發明進行了詳細介紹,本文中應用了具體個例對本發明的原理及實施方 式進行了闡述,以上實施例的說明只是用于幫助理解本發明的方法及其核心思想;同時,對 于本領域的一般技術人員,依據本發明的思想,在具體實施方式
及應用范圍上均會有改變 之處,綜上所述,本說明書內容不應理解為對本發明的限制。
權利要求
一種存儲裝置恢復數據的方法,其特征在于,所述方法包括接收主機下發的數據讀取請求;檢測所述數據讀取請求所請求的數據是否丟失;若檢測出所述數據丟失,根據所述數據的邏輯塊尋址地址選擇一個邏輯條帶;解析所述邏輯條帶,根據所述邏輯條帶中的特定邏輯地址對應的存儲空間存儲的數據以及校驗值計算出所請求的數據,所述特定邏輯地址與所述邏輯塊尋址地址不相同。
2.如權利要求1所述的方法,其特征在于,在接收所述數據讀取請求之前,所述方法還 包括,預先計算出所述存儲裝置n個數據通道上存儲單元顆粒所存儲數據的校驗值,將所 述校驗值存儲于校驗通道上。
3.如權利要求1或2所述的方法,其特征在于,在接收主機下發的數據讀取請求之前, 所述方法還包括在存儲裝置上建立至少一個邏輯條帶,所述每個邏輯條帶包含n個邏輯地址和m個校 驗值,所述n個邏輯地址分別對應所述存儲裝置的n個數據通道,所述m個校驗值對應m個 校驗通道。
4.根據權利要求1所述的方法,其特征在于,預先計算所述校驗值是根據第一函數進 行的,計算所述數據是根據第二函數進行的,所述第一函數與所述第二函數為互逆運算。
5.一種存儲裝置寫數據的方法,其特征在于,所述方法包括 接收主機下發的寫數據請求;選擇一個邏輯條帶,所述邏輯條帶包含n個邏輯地址,所述n個邏輯地址分別對應于存 儲裝置的所述n個數據通道;計算出存儲裝置n個數據通道上存儲單元顆粒存儲的數據的校驗值,將所述寫數據請 求所請求的數據寫入所述邏輯地址對應的存儲空間,并將計算出的校驗值分別寫入各校驗 通道上。
6.根據權利要求5所述的方法,其特征在于,在將所述寫數據請求所請求的數據寫入 所述邏輯地址對應的存儲空間之后,所述方法還包括更新映射表,所述映射表包含所述邏輯條帶中的邏輯地址與所述存儲裝置中的物理地 址的對應關系。
7.一種存儲裝置,所述存儲裝置包括n個數據通道,其特征在于,所述存儲裝置包括 第一計算單元,用于計算出存儲裝置n個數據通道上存儲單元顆粒存儲的數據的校驗值;第一接收單元,用于接收主機下發的數據讀取請求; 檢測單元,用于檢測所述數據讀取請求所請求的數據是否丟失; 解析單元,用于在所述檢測單元檢測出所述數據讀取請求所請求的數據丟失時,根據 所述第一接收單元接收的數據讀取請求中的邏輯塊尋址地址解析出邏輯條帶;獲取單元,用于根據所述解析單元解析的邏輯條帶查找映射表,從所述映射表中獲取 所請求的數據在所述存儲裝置中存儲的物理地址,所述映射表包含所述邏輯條帶中的邏輯 地址與所述存儲裝置中的物理地址的對應關系;第二計算單元,用于根據所述邏輯條帶中特定邏輯地址對應的存儲空間所存儲的數據 以及校驗值計算出所請求的數據,所述特定邏輯地址與所述邏輯塊尋址地址不相同。
8.根據權利要求7所述的存儲裝置,其特征在于,所述存儲裝置還包括 至少一個校驗通道,用于存儲所述第一計算單元計算出的校驗值。
9.根據權利要求7所述的存儲裝置,其特征在于,所述存儲裝置還包括 第二接收單元,用于接收主機下發的寫數據請求;選擇單元,用于選擇一個邏輯條帶,所述邏輯條帶包含n個邏輯地址,所述n個邏輯地 址分別位于存儲裝置的n個數據通道上;寫入單元,用于將所述第二接收單元接收到的寫數據請求所請求的數據寫入所述邏輯 地址所對應的存儲空間;并將所述第一計算單元計算出的校驗值分別寫入各校驗通道上。
10.根據權利要求9所述的存儲裝置,其特征在于,所述存儲裝置還包括 更新單元,用于在所述寫入單元執行寫入操作之后,更新所述映射表。
全文摘要
本發明實施例公開了一種恢復數據的方法及存儲裝置。所述方法包括接收主機下發的數據讀取請求,并檢測所述數據讀取請求所請求的數據是否丟失;若檢測出所述數據讀取請求所請求的數據丟失,根據所述數據讀取請求中的邏輯塊尋址地址解析出邏輯條帶;根據所述邏輯條帶查找映射表,從所述映射表中獲取所請求的數據在所述存儲裝置中存儲的物理位置,所述映射表包含了所述邏輯條帶中的邏輯地址與所述存儲裝置中的物理地址的對應關系;利用所述互逆運算中的另一個函數,根據所述邏輯條帶中特定邏輯地址對應的存儲空間所存儲的數據以及所述校驗值計算出所請求的數據。
文檔編號G06F11/14GK101840364SQ20101010480
公開日2010年9月22日 申請日期2010年1月29日 優先權日2010年1月29日
發明者徐君, 肖飛 申請人:成都市華為賽門鐵克科技有限公司