的各種計(jì)算的功能。在本發(fā)明的一個(gè) 實(shí)施例中,F(xiàn)PGA可W包括使用00B執(zhí)行損壞數(shù)據(jù)的恢復(fù)的功能。根據(jù)本發(fā)明的一個(gè)或更多 個(gè)實(shí)施例,RAID控制器(104)可使用FPGA(102)W卸載各種數(shù)據(jù)的處理。
[0027] 在本發(fā)明的一個(gè)實(shí)施例中,存儲(chǔ)陣列(108)包括多個(gè)個(gè)體永久性存儲(chǔ)設(shè)備,包括 但不限于磁存儲(chǔ)設(shè)備、光學(xué)存儲(chǔ)設(shè)備、固態(tài)存儲(chǔ)設(shè)備、相變存儲(chǔ)設(shè)備、任何其它適當(dāng)類(lèi)型的 永久存儲(chǔ)設(shè)備或它們的任意組合。在本發(fā)明的一個(gè)實(shí)施例中,各存儲(chǔ)陣列(108)可包括多 個(gè)存儲(chǔ)模塊和存儲(chǔ)模塊控制器,其中各存儲(chǔ)模塊包括固態(tài)存儲(chǔ)器。在該些實(shí)施例中,存儲(chǔ)模 塊控制器包括從RAID控制器接收頁(yè)并將頁(yè)寫(xiě)入固態(tài)存儲(chǔ)器中的對(duì)應(yīng)物理位置的功能。另 夕F,存儲(chǔ)模塊控制器可包括在頁(yè)寫(xiě)入固態(tài)存儲(chǔ)器之前針對(duì)每頁(yè)產(chǎn)生錯(cuò)誤校正碼巧CC)的功 能。另外,存儲(chǔ)模塊控制器可包括根據(jù)圖9A-9B重構(gòu)頁(yè)的功能。
[0028] 本領(lǐng)域技術(shù)人員可W理解,雖然圖1示出FPGA,但可W在沒(méi)有FPGA的情況下實(shí)現(xiàn) 本發(fā)明。進(jìn)一步地,本領(lǐng)域技術(shù)人員可W理解,在不背離本發(fā)明的情況下,可W使用其它的 組件W替代FPGA。例如,可通過(guò)使用下列設(shè)備來(lái)實(shí)現(xiàn)本發(fā)明;ASIC、圖形處理單元佑PU)、通 用處理器、能夠出于在存儲(chǔ)陣列中存儲(chǔ)數(shù)據(jù)的目的計(jì)算P和/或Q奇偶校驗(yàn)值和/或執(zhí)行 恢復(fù)通過(guò)使用多維RAID方案存儲(chǔ)的損壞數(shù)據(jù)所需要的各種計(jì)算的任何其它硬件設(shè)備、包 括被配置為出于在存儲(chǔ)陣列(108)中存儲(chǔ)數(shù)據(jù)的目的計(jì)算P和/或Q奇偶校驗(yàn)值和/或執(zhí) 行恢復(fù)通過(guò)使用多維RAID方案存儲(chǔ)的損壞數(shù)據(jù)所需要的各種計(jì)算的硬件、固件和/或軟件 的組合的任何設(shè)備,或它們的任意組合。
[0029] 圖2示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的RAID網(wǎng)格。在本發(fā)明的一個(gè)實(shí)施例中,如 果RAID控制器實(shí)現(xiàn)2DRAID方案或3DRAID方案(參見(jiàn)圖3),則RAID控制器在RAID網(wǎng) 格(200)中存儲(chǔ)數(shù)據(jù)。圖2示出根據(jù)本發(fā)明的一個(gè)或多個(gè)實(shí)施例的RAID網(wǎng)格的概念部分。 RAID網(wǎng)格(200)包括多個(gè)RAID網(wǎng)格位置,其中各RAID網(wǎng)格位置最終寫(xiě)入存儲(chǔ)陣列中的唯 一物理地址。RAID網(wǎng)格(200)包括(i)數(shù)據(jù)網(wǎng)格(202),其包括存儲(chǔ)從客戶(hù)機(jī)接收的數(shù)據(jù) (即,客戶(hù)機(jī)指示RAID控制器寫(xiě)入存儲(chǔ)陣列的數(shù)據(jù))的RAID網(wǎng)格位置;(ii)行P奇偶校驗(yàn) 組(204),其包括存儲(chǔ)使用行中的RAID網(wǎng)格位置中的數(shù)據(jù)計(jì)算的P奇偶校驗(yàn)值的RAID網(wǎng)格 位置(下面描述)行Q奇偶校驗(yàn)組(206),其包括存儲(chǔ)使用行中的RAID網(wǎng)格位置中 的數(shù)據(jù)計(jì)算的Q奇偶校驗(yàn)值的RAID網(wǎng)格位置(下面描述);(iv)列P奇偶校驗(yàn)組(208),其 包括存儲(chǔ)使用列中的RAID網(wǎng)格位置中的數(shù)據(jù)計(jì)算的P奇偶校驗(yàn)值的RAID網(wǎng)格位置(下面 描述);(v)列Q奇偶校驗(yàn)組(210),其包括存儲(chǔ)使用列中的RAID網(wǎng)格位置中的數(shù)據(jù)計(jì)算的 Q奇偶校驗(yàn)值的RAID網(wǎng)格位置(下面描述);和(Vi)交叉奇偶校驗(yàn)組(212),其包括使用 (a)來(lái)自行P奇偶校驗(yàn)組(204)中的RAID網(wǎng)格位置的數(shù)據(jù)、化)來(lái)自行Q奇偶校驗(yàn)組(206) 中的RAID網(wǎng)格位置的數(shù)據(jù)、(C)來(lái)自列P奇偶校驗(yàn)組(208)中的RAID網(wǎng)格位置的數(shù)據(jù)、W 及(d)來(lái)自列Q奇偶校驗(yàn)組(210)中的RAID網(wǎng)格位置的數(shù)據(jù)計(jì)算的奇偶校驗(yàn)值(下面描 述)。
[0030] 參照行(214),在本發(fā)明的一個(gè)實(shí)施例中,通過(guò)向行(214)中包括數(shù)據(jù)(例如P^= fp值。〇2, 〇4)的所有RAID網(wǎng)格位置應(yīng)用P奇偶校驗(yàn)函數(shù),計(jì)算行(214)中表示為Pr2的 RAID網(wǎng)格位置中存儲(chǔ)的數(shù)據(jù)。類(lèi)似地,在本發(fā)明的一個(gè)實(shí)施例中,通過(guò)向行(214)中包括數(shù) 據(jù)(例如Qr2=f(J(Dl,D2,D3,D4)的所有RAID網(wǎng)格位置應(yīng)用Q奇偶校驗(yàn)函數(shù),計(jì)算行(214) 中表示為單2的RAID網(wǎng)格位置中存儲(chǔ)的數(shù)據(jù)。
[003。參照列(216),在本發(fā)明的一個(gè)實(shí)施例中,通過(guò)向列(216)中包括數(shù)據(jù)(例如Pce=fpOs,恥06,07)的所有raid網(wǎng)格位置應(yīng)用P奇偶校驗(yàn)函數(shù),計(jì)算列(21巧中表示為Pee的 RAID網(wǎng)格位置中存儲(chǔ)的數(shù)據(jù)。類(lèi)似地,在本發(fā)明的一個(gè)實(shí)施例中,通過(guò)向列(216)中包括數(shù) 據(jù)(例如斯6=f0值5, 02,化,07)的所有RAID網(wǎng)格位置應(yīng)用Q奇偶校驗(yàn)函數(shù),計(jì)算列(216) 中表示為Qee的RAID網(wǎng)格位置中存儲(chǔ)的數(shù)據(jù)。
[0032] 參照交叉奇偶校驗(yàn)組(212),在本發(fā)明的一個(gè)實(shí)施例中,通過(guò)向行P奇偶校驗(yàn)組 (204)中的所有RAID網(wǎng)格位置應(yīng)用P奇偶校驗(yàn)函數(shù)或者通過(guò)向列P奇偶校驗(yàn)組(208)中的 所有RAID網(wǎng)格位置應(yīng)用P奇偶校驗(yàn)函數(shù),計(jì)算表示為Ifi的RAID網(wǎng)格位置中存儲(chǔ)的數(shù)據(jù)。 例如,Irl=fP(Prl,Pr2,Pri,Prf)或Irl=fP(Pc日,Pc6,Pc7,Pc8)。
[0033] 在本發(fā)明的一個(gè)實(shí)施例中,通過(guò)向行Q奇偶校驗(yàn)組(204)中的所有RAID網(wǎng)格位置 應(yīng)用P奇偶校驗(yàn)函數(shù)或者通過(guò)向列P奇偶校驗(yàn)組(208)中的所有RAID網(wǎng)格位置應(yīng)用Q奇 偶校驗(yàn)函數(shù),計(jì)算表示為1,2的RAID網(wǎng)格位置中存儲(chǔ)的數(shù)據(jù)。例如,1,2=fp(Qti,9,2,Qrt) 或 1找=fq(Pc5,Pc6,P",Pc8)。
[0034] 在本發(fā)明的一個(gè)實(shí)施例中,通過(guò)向列Q奇偶校驗(yàn)組(210)中的所有RAID網(wǎng)格位置 應(yīng)用P奇偶校驗(yàn)函數(shù)或者通過(guò)向行P奇偶校驗(yàn)組(204)中的所有RAID網(wǎng)格位置應(yīng)用Q奇 偶校驗(yàn)函數(shù),計(jì)算表示為1,3的RAID網(wǎng)格位置中存儲(chǔ)的數(shù)據(jù)。例如,I,3=fP(Qe日,Qee,Qe7,Qes) 或者 1,3=fq(Pc1,Pc2,Pc3,Pc4)。
[0035] 在本發(fā)明的一個(gè)實(shí)施例中,通過(guò)向列Q奇偶校驗(yàn)組(210)中的所有RAID網(wǎng)格位置 應(yīng)用Q奇偶校驗(yàn)函數(shù)或者通過(guò)向行Q奇偶校驗(yàn)組(206)中的所有RAID網(wǎng)格位置應(yīng)用Q奇 偶校驗(yàn)函數(shù),計(jì)算表示為1,4的RAID網(wǎng)格位置中存儲(chǔ)的數(shù)據(jù)。例如,It4=f?怕。1,9。2, 9。3,QJ 或 1,4=fq(Qc5,Qc6,Q",Qc8)。
[0036] 在本發(fā)明的一個(gè)實(shí)施例中,用于計(jì)算針對(duì)所有奇偶校驗(yàn)組的值的P、Q奇偶校驗(yàn)函 數(shù)可對(duì)應(yīng)于用于實(shí)現(xiàn)RAID 6的任何P、Q奇偶校驗(yàn)函數(shù)。
[0037] 如上所述,圖2中示出的RAID網(wǎng)格(200)代表RAID網(wǎng)格的概念布局。然而,當(dāng)個(gè) 體RAID網(wǎng)格位置寫(xiě)入存儲(chǔ)陣列時(shí),各個(gè)RAID網(wǎng)格位置的相對(duì)位置可在行和/或列上變化。 例如,參照行(214),當(dāng)行(214)內(nèi)的RAID網(wǎng)格位置寫(xiě)入存儲(chǔ)陣列時(shí),包括數(shù)據(jù)(由"D"表 示)的RAID網(wǎng)格位置和包括奇偶校驗(yàn)數(shù)據(jù)的RAID網(wǎng)格位置(即,表示為"Pf"和"Qt"的 RAID 網(wǎng)格位置)的相對(duì)位置可如下;<〇1,DsPra,〇4〉、化2, Qr2,〇1,〇2, ,〇4〉、或行(214) 內(nèi)的任何其它布置。類(lèi)似地,參照列(216),包括數(shù)據(jù)(由"D"表示)的RAID網(wǎng)格位置和包 括奇偶校驗(yàn)數(shù)據(jù)的RAID網(wǎng)格位置(即,表示為"P。"和"Q。"的RAID網(wǎng)格位置)的相對(duì)位置 可如下;<〇5,〇2,〇6,口。6,〇6,9。6〉,化6,〇5,〇2,9。6,〇6,〇7〉、或列(216)內(nèi)的任何其它布置。
[003引在本發(fā)明的一個(gè)實(shí)施例中,根據(jù)圖7A所示的方法確定(i)行P奇偶校驗(yàn)組、(ii) 行Q奇偶校驗(yàn)組、(iii)列P奇偶校驗(yàn)組、(iv)列Q奇偶校驗(yàn)組中的每個(gè)的位置。在該些實(shí) 施例中,基于上述奇偶校驗(yàn)組的位置確定交叉奇偶校驗(yàn)組的位置(參見(jiàn)圖8A)。
[0039] 繼續(xù)圖2的討論,RAID控制器(或系統(tǒng)中的另一個(gè)實(shí)體)可確定向存儲(chǔ)陣列中的 哪個(gè)物理地址寫(xiě)入各個(gè)RAID網(wǎng)格位置。此確定可在從客戶(hù)機(jī)接收對(duì)于特定RAID網(wǎng)格的任 何數(shù)據(jù)(表示為"D")之前進(jìn)行。另選地,此確定可在向存儲(chǔ)陣列寫(xiě)入RAID網(wǎng)格位置之前 進(jìn)行。
[0040] 本領(lǐng)域技術(shù)人員將理解,盡管圖2示出了 6x6的RAID網(wǎng)格,但不脫離本發(fā)明可使 用任何其它維度實(shí)現(xiàn)RAID網(wǎng)格。
[0041] 在本發(fā)明的一個(gè)實(shí)施例中,P奇偶校驗(yàn)值是里德所羅口巧eed-Solomon)綜合征 (syn化ome),W及如此,P奇偶校驗(yàn)函數(shù)可與可產(chǎn)生里德所羅口巧eed-Solomon)綜合征的 任何函數(shù)對(duì)應(yīng)。在本發(fā)明的一個(gè)實(shí)施例中,P奇偶校驗(yàn)函數(shù)是X0R函數(shù)。
[0042] 在本發(fā)明的一個(gè)實(shí)施例中,Q奇偶校驗(yàn)值是里德所羅口巧eed-Solomon)綜合征, W及如此,Q奇偶校驗(yàn)函數(shù)可與可產(chǎn)生里德所羅口巧eed-Solomon)綜合征的任何函數(shù)對(duì) 應(yīng)。在本發(fā)明的一個(gè)實(shí)施例中,Q奇偶校驗(yàn)值為里德所羅口巧eed-Solomon)代碼。在本發(fā) 明的一個(gè)實(shí)施例中,Q=g° ?而+gi?Di+g2 ?D2+,"+gn-i? 0。_1,該里,Q與參照?qǐng)D2定義的Q奇 偶校驗(yàn)值中的任一個(gè)對(duì)應(yīng),g是字段生成器,并且,D的值與數(shù)