999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于FPGA的RAID6硬件加速器的實現

2011-02-05 06:37:20董春施亮
微型電腦應用 2011年1期

董春,施亮

0 引言

近年來網絡技術與半導體技術的飛速發展,對存儲設備的性能提出了越來越高的要求。1988年加州大學伯克利分校的Patterson.Gibson和Katz,提出了廉價磁盤冗余陣列技術(Raid),很好地解決這一問題。RAID磁盤陣列雖然種類眾多,但一個突出的局限性就是,無法容忍兩塊硬盤同時故障的情況發生,RAID6正是為了解決這個問題而誕生的。

樂觀的估計RAID6技術,將可靠性提高了1000倍以上。不過RAID6在計算校驗數據時,需要消耗大量的CPU時間,為了提高RAID6的性能,設計了專門的硬件加速器來完成該操作,這也是本文的主要內容。

RAID6松散的定義為當多達兩個磁盤同時失效時,仍能保持數據不丟失的磁盤陣列。只要能滿足以上要求的磁盤陣列都可以稱為RAID6,因此RAID6發展出多種形式。本文的 RAID6指基于 P+Q編碼的 RAID6,此種實現基于Reed-Solomon編碼理論。

1 RAID6編碼理論

Reed-Solomon編碼是歐文.里德(Irving Reed)和格斯.所羅門(Gus Solomon)于1960年發布的一種糾錯編碼。他使用伽羅瓦域(GF)運算法則,能提供在RAID6中Q校驗數據的計算,并提供錯誤恢復功能。

它是最大距離可分碼的一種類型,表示為 RS(n,k),其中n表示每個碼字(codeword)符號的總數,k表示每個碼字中數據符號的總數,其中2t = n - k為每個碼字中校驗符號總數,對于RAID6來說2t=2,所以它能修復兩個磁盤損壞;假如符號(symbol)的長度為s,那么碼字的長度n=2^s – 1。

當采用byte長度(8bit)為符號長度時,其最大碼字長度為n = 2^8–1=255,所以可以支持255個磁盤,其中253個為數據盤,剩下2個為校驗盤。

里德-所羅門編碼算法基于伽羅瓦域運算。伽羅瓦域的特點是域內任意兩個元素運算的結果仍然是該域內的元素,伽羅瓦域加法和減法通過異或運算來實現。伽羅瓦域乘法和除法運算通過查找表來實現。

取符號長度為 s=8,生成多項式g(x)=x^8+x^4+x^3+x^2+1,可生成伽羅瓦域GF(2^8),根據該生成多項式可得到伽羅瓦域的對數表和反對數表[5]。

伽羅瓦域域內的乘法運算通過以下方式實現:

圖1 伽羅瓦域乘法運算示意圖

其中gflog與gfilog是查表運算,這兩個表格在FPGA的Bolck RAM中,運算時,當Bolck RAM地址線有輸入時,在下個周期便可以輸出對應地址的結果,乘法器實現方便。

伽羅瓦域運算符號表示:⊕ GF域加法;? GF域乘法;÷ GF域除法;+ 整數域加法。

2 RAID6校驗算法

為了得到容許兩個磁盤損壞的數據恢復能力,我們需要計算P和Q兩個校驗數據。

假設:m = RAID中所含的數據磁盤數目

n = RAID中磁盤的某個條帶

RAID6的操作可以劃分為以下八種不同的操作:

1.一個數據盤損壞

當第x(0≤x≤m-1)個數據盤損壞,可以用剩余有效數據和校驗數據P來恢復損壞的數據,類似RAID5的數據恢復算法,公式如下:

2.寫操作更新數據

當更新第x個數據盤的數據時,校驗數據P、Q需重新計算。首先將舊數據和舊校驗讀出,和新數據一起計算得到新校驗,然后將新數據和新校驗寫入對應的磁盤中,公式如下:

3.重建校驗數據P

當校驗數據P損壞時,利用數據盤上的數據即可將其重建,公式如下:

4.重建校驗數據Q

當校驗數據Q損壞時,利用數據盤上的數據即可將其重建,計算Q時,每個數據盤都要都要GF乘以一個對應的常數然后相加,此常數可以通過查反對數表得到,公式如下:

5.重建校驗數據P、Q

當校驗數據P、Q損壞時,所需要的運算是前面兩種運算的結合,公式如下:

6.Q與一個數據Dx損壞

當Q與一個數據Dx損壞時,可以先由P和完好的數據計算出損壞的數據Dx,然后即可計算得到校驗數據Q,公式如下[1]:

7.P與一個數據Dx損壞

當P與一個數據Dx損壞時,應先由剩余的完好數據計算出一中間值P’、Q’,由Q’和Q計算出損壞的數據Dx;然后由P’和Dx便可計算出損壞的校驗數據P,公式如下[1]:

8.兩個數據Dx、Dy損壞

當兩個數據Dx、Dy損壞時,解聯立方程組得損壞數據的計算公式如下[1]:

3 RAID6硬件實現

以上8種RAID6操作可通過下圖硬件結構實現,由于篇幅有限,我們僅以第七種操作來說明其實現流程,其余情況類似。

下圖中模塊 XOR_BRAM、MUX_BRAM_A、MUX_BRAM_B、MUX_BRAM_C、MUX_BRAM_D 用FPGA的Block RAM實現,用作計算校驗數據或數據恢復過程中暫存中間結果,模塊GF_MULT_A、GF_MULT_B、GF_MULT_C、GF_MULT_D為用Block RAM做查找表實現的伽羅瓦域乘法器單元,模塊PRAMA_A、PRAMA_B用于在第八種情況下計算系數A、B,為數眾多的多路選擇器用于在不同狀態下選擇不同的數據通路。

圖2 RAID6數據計算單元(8bit)

當校驗數據P與一個數據Dx丟失時RAID6的數據恢復流程如下,(a)、(b)表示兩種操作在本步中同時并行進行:

1)(a)取第一個數據,寫入XOR_BRAM中。

(b)取第一個數據,寫入MUX_BRAM_A,數據經GF_MULT_A后再次寫入

MUX_BRAM_A。

2)(a)取第二個數據,將其與XOR_BRAM的輸出異或的結果寫入XOR_BRAM。

(b)取第二個數據,寫入 MUX_BRAM_C,數據經GF_MULT_B后與 MUX_BRAM_A輸出異或的結果寫入MUX_BRAM_B。

3)(a)取第三個數據,將其與XOR_BRAM的輸出異或的結果寫入XOR_BRAM。

(b)取第三個數據,寫入 MUX_BRAM_C,數據經GF_MULT_B后與 MUX_BRAM_B輸出異或的結果寫入MUX_BRAM_B。

4)重復步驟三,當m-1個完好數據取完后,兩個中間結果P’和Q’分別保存XOR_BRAM和MUX_BRAM_B中。

5)(b)取輸入數據Q,其與MUX_BRAM_B的輸出Q’異或后的值經GF_MULT_D 后得到丟失數據 Dx,將其寫入MUX_BRAM_D。

6)(a)MUX_BRAM_D的輸出Dx與XOR_BRAM的輸出P’異或的結果為校驗數據P,將其寫入XOR_BRAM。

(b)將恢復的數據Dx從MUX_BRAM_D輸出。

7)(a)將恢復的校驗數據P從XOR_BRAM輸出。

至此RAID的兩個丟失數據均得以恢復。

以上模塊只能處理一個字節的數據,四次例化本模塊可同時處理4個字節的數據。本硬件結構在RAID6狀態機的控制之下動作,通過控制各個多路選擇器來選擇不同的數據通路以實現不同的數據操作,RAID6狀態機的跳轉由狀態/控制寄存器控制,狀態/控制寄存器的初值由軟件設定。在FPGA內例化一個 PCI接口邏輯,將此硬件加速器以 PCI設備的形式掛在PCI總線上,通過DMA形式控制主機與加速器的數據傳輸。系統示意圖如下:

圖3 RAID6系統框圖

修改Linux RAID的設備驅動程序,用對加速器的調用代替軟件的函數調用,用軟件填充加速器的狀態/控制寄存器來通知加速器將要進行的工作。

與純軟件實現相比,軟硬件協同實現的RAID6系統CPU占用率降低了約40%-50%,處理速度提高了約3倍,這是因為加速器分擔了CPU的計算任務,CPU可以去做其他的工作,CPU與加速器的工作可并行進行。

4 結束語

近年來隨著Internet以及其他網絡的飛速發展,計算機CPU處理能力的快速增長,對信息存儲設備的容量和容錯性能提出了空前的要求,而磁盤陣列作為一種高速、廉價、可靠、大容量的存儲技術得到了快速發展和廣泛應用。充分利用通用處理器和可編程邏輯器件各自的特點,用軟硬件結合的方法實現RAID6系統,成本低,開發周期短,效果好。

[1]Peter Anvin H.“The Mathematics of RAID6”,Last updated 2 July 2008.

[2]Michael Gilroy,James Irvine,“RAID 6 Hardware Acceleration”,Field Programmable Logic and Applications,2006.FPL '06.International Conference on 28-30 Aug.2006.

[3]James S.Plank,“A Tutorial on Reed-Solomon Coding for Fault-Tolerance in RAID-like Systems”,Technical Report CS-96-332,Department of Computer Science University of Tennessee.

[4]Matt DiPaolo,“Hardware Accelerator for RAID6 Parity Generation / Data Recovery Controller with ECC and MIG DDR2 Controller”,May 2 .2007,Xilinx Corporation.

[5]Intel 80333 IO Processor Developer’s Manual,March.2005,Intel Corporation.

主站蜘蛛池模板: 精品久久国产综合精麻豆| 国产激情无码一区二区APP| 999在线免费视频| 国产网站黄| 久久99国产综合精品1| 欧美中文字幕一区二区三区| 国产欧美日韩视频一区二区三区| 99成人在线观看| 伊人久久大香线蕉成人综合网| 2021国产精品自拍| 99热这里只有免费国产精品| 亚洲婷婷六月| 色成人综合| 亚洲国产中文欧美在线人成大黄瓜 | 久久精品免费国产大片| 波多野结衣一区二区三视频| 精品成人一区二区| 色综合久久综合网| 最新加勒比隔壁人妻| 夜夜爽免费视频| AV熟女乱| 亚洲最大在线观看| 少妇高潮惨叫久久久久久| 成人小视频在线观看免费| 五月天久久婷婷| 国产毛片基地| 精品视频在线观看你懂的一区| 亚洲成综合人影院在院播放| 色偷偷av男人的天堂不卡| 成人在线观看一区| 久久精品国产国语对白| 久久久久亚洲av成人网人人软件| 亚洲精品无码久久毛片波多野吉| 女同国产精品一区二区| 免费可以看的无遮挡av无码 | 丝袜久久剧情精品国产| 国产黑人在线| 久久福利片| 国产第一页免费浮力影院| 午夜免费视频网站| 亚洲第一成年网| 色婷婷综合激情视频免费看| 国产精品尤物在线| 国产精品播放| 国产福利微拍精品一区二区| 婷婷综合亚洲| 自偷自拍三级全三级视频 | 久草国产在线观看| 亚洲中文字幕av无码区| 波多野结衣亚洲一区| а∨天堂一区中文字幕| 亚洲a级在线观看| 久久综合一个色综合网| 丰满的熟女一区二区三区l| 无码人中文字幕| 久久久亚洲色| 亚洲av无码片一区二区三区| jizz亚洲高清在线观看| 国产成人超碰无码| 免费人成网站在线高清| 国产欧美视频在线| 日韩精品一区二区三区免费在线观看| 国产丝袜啪啪| 992tv国产人成在线观看| 91无码视频在线观看| 免费一级无码在线网站| 久久先锋资源| 亚洲日韩第九十九页| 亚洲伊人天堂| 中文字幕永久在线看| 国产午夜在线观看视频| 91福利在线观看视频| 日本免费新一区视频| 亚洲欧美人成电影在线观看| 国产精品亚洲αv天堂无码| 久久久久久国产精品mv| 国产精品人莉莉成在线播放| 国产色偷丝袜婷婷无码麻豆制服| 91成人在线观看| 婷婷色婷婷| 少妇高潮惨叫久久久久久| 综合久久五月天|