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.

主站蜘蛛池模板: 国产精品13页| 国产黑丝一区| 亚洲中文字幕av无码区| 日本手机在线视频| 动漫精品中文字幕无码| 国产男人的天堂| 亚洲黄色视频在线观看一区| 亚洲人成网址| 国产夜色视频| 2048国产精品原创综合在线| 日韩欧美在线观看| 97无码免费人妻超级碰碰碰| 人人澡人人爽欧美一区| 91伊人国产| 国产主播福利在线观看| 中文字幕乱码中文乱码51精品| 欧美日韩亚洲综合在线观看 | 国产免费高清无需播放器| 国产精品尤物铁牛tv| 永久免费无码日韩视频| h网址在线观看| 91小视频在线观看免费版高清| 伊人中文网| 国产精品综合色区在线观看| 欧美特级AAAAAA视频免费观看| 亚洲无码高清免费视频亚洲| 国产91视频免费观看| 欧美区国产区| 午夜精品久久久久久久99热下载 | 欧美三级自拍| 久久99国产综合精品1| 精品天海翼一区二区| 男人天堂亚洲天堂| 精品国产自在现线看久久| 伊人成人在线视频| 中国精品自拍| 国产丰满成熟女性性满足视频| 久久精品日日躁夜夜躁欧美| 国产一级在线播放| 亚洲一区二区三区香蕉| 欧美日韩国产在线播放| 九九九精品视频| 亚洲午夜18| 欧美午夜精品| 久久久国产精品免费视频| 99久久精品免费观看国产| 在线另类稀缺国产呦| 国产在线无码av完整版在线观看| 亚洲另类色| 高清国产va日韩亚洲免费午夜电影| 91麻豆久久久| 久久精品国产免费观看频道| 免费人成视网站在线不卡| 欧美三級片黃色三級片黃色1| 欧美午夜网站| 亚洲浓毛av| 日韩国产综合精选| 最新无码专区超级碰碰碰| 试看120秒男女啪啪免费| 国产精品亚洲五月天高清| 国产福利在线观看精品| 日韩不卡高清视频| 日韩精品亚洲人旧成在线| 综合人妻久久一区二区精品| 久久综合九色综合97婷婷| 午夜视频免费试看| 国产乱子精品一区二区在线观看| 99r在线精品视频在线播放| 婷婷伊人五月| 黄色三级网站免费| a在线亚洲男人的天堂试看| 亚洲第一成网站| 亚洲A∨无码精品午夜在线观看| 凹凸国产熟女精品视频| 国产香蕉97碰碰视频VA碰碰看| 欧美另类第一页| AV色爱天堂网| 高清不卡一区二区三区香蕉| 国产毛片高清一级国语| 亚洲一道AV无码午夜福利| 97国产在线播放| 成人一级免费视频|