欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于rdma架構(gòu)設(shè)計(jì)的pq檢驗(yàn)?zāi)K及檢驗(yàn)方法

文檔序號(hào):6384559閱讀:409來源:國(guó)知局
專利名稱:基于rdma架構(gòu)設(shè)計(jì)的pq檢驗(yàn)?zāi)K及檢驗(yàn)方法
技術(shù)領(lǐng)域
本發(fā)明具體地,涉及一種在數(shù)據(jù)傳輸中,基于RDMA架構(gòu)設(shè)計(jì)的PQ檢驗(yàn)?zāi)K及檢驗(yàn)方法。
背景技術(shù)
目前,RDMA技術(shù)全稱遠(yuǎn)程直接數(shù)據(jù)存取技術(shù),就是為了解決網(wǎng)絡(luò)傳輸中服務(wù)器端數(shù)據(jù)處理的延遲而產(chǎn)生的。RDMA通過網(wǎng)絡(luò)把資料直接傳入計(jì)算機(jī)的存儲(chǔ)區(qū),將數(shù)據(jù)從一個(gè)系統(tǒng)快速移動(dòng)到遠(yuǎn)程系統(tǒng)存儲(chǔ)器中,而不對(duì)操作系統(tǒng)造成任何影響,這樣就不需要用到多少計(jì)算機(jī)的處理功能。它消除了外部存儲(chǔ)器復(fù)制和文本交換操作,因而能解放內(nèi)存帶寬和CPU周期用于改進(jìn)應(yīng)用系統(tǒng)性能。奇偶校驗(yàn)是一種校驗(yàn)代碼傳輸正確性的方法。根據(jù)被傳輸?shù)囊唤M二進(jìn)制代碼的數(shù)位中的“I”的個(gè)數(shù)是奇數(shù)或偶數(shù)來進(jìn)行校驗(yàn)。采用奇數(shù)的稱為奇校驗(yàn),反之,稱為偶校驗(yàn)。采用何種校驗(yàn)是事先規(guī)定好的。通常專門設(shè)置一個(gè)奇偶校驗(yàn)位,用它使這種代碼中的“I”的個(gè)數(shù)為奇數(shù)或偶數(shù)。若用奇校驗(yàn),則當(dāng)接收端收到這組代碼時(shí),校驗(yàn)“I”的個(gè)數(shù)是否為奇數(shù),從而確定傳輸代碼的正確性。RAID (redundant array of independent disks 的簡(jiǎn)稱,獨(dú)立磁盤冗余整列)。獨(dú)立磁盤冗余陣列是把相同的數(shù)據(jù)存儲(chǔ)在多個(gè)硬盤的不同的地方的方法。通過把數(shù)據(jù)放在多個(gè)硬盤上,輸入輸出操作能以平衡的方式交疊,改良性能。原理是利用數(shù)組方式來作磁盤組,配合數(shù)據(jù)分散排列的設(shè)計(jì),提升數(shù)據(jù)的安全性。磁盤陣列是由很多價(jià)格較便宜的磁盤,組合成一個(gè)容量巨大的磁盤組,利用個(gè)別磁盤提供數(shù)據(jù)所產(chǎn)生加成效果提升整個(gè)磁盤系統(tǒng)效能。利用這項(xiàng)技術(shù),將數(shù)據(jù)切割成許多區(qū)段,分別存放在各個(gè)硬盤上。磁盤陣列還能利用同位檢查(Parity Check)的觀念,在數(shù)組中任一顆硬盤故障時(shí),仍可讀出數(shù)據(jù),在數(shù)據(jù)重構(gòu)時(shí),將數(shù)據(jù)經(jīng)計(jì)算后重新置入新硬盤中。RAID通過在多個(gè)磁盤上同時(shí)存儲(chǔ)和讀取數(shù)據(jù)來大幅提高存儲(chǔ)系統(tǒng)的數(shù)據(jù)吞吐量(Throughput)。在RAID中,可以讓很多磁盤驅(qū)動(dòng)器同時(shí)傳輸數(shù)據(jù),而這些磁盤驅(qū)動(dòng)器在邏輯上又是一個(gè)磁盤驅(qū)動(dòng)器,所以使用RAID可以達(dá)到單個(gè)磁盤驅(qū)動(dòng)器幾倍、幾十倍甚至上百倍的速率。RAID通過數(shù)據(jù)校驗(yàn)提供容錯(cuò)功能。普通磁盤驅(qū)動(dòng)器無法提供容錯(cuò)功能,如果不包括寫在磁盤上的CRC (循環(huán)冗余校驗(yàn))碼的話。RAID容錯(cuò)是建立在每個(gè)磁盤驅(qū)動(dòng)器的硬件容錯(cuò)功能之上的,所以它提供更高的安全性。在很多RAID模式中都有較為完備的相互校驗(yàn)/恢復(fù)的措施,甚至是直接相互的鏡像備份,從而大大提聞了 RAID系統(tǒng)的容錯(cuò)度,提聞了系統(tǒng)的穩(wěn)定冗余性。隨著信息資源的快速增長(zhǎng),數(shù)據(jù)的安全性,可靠傳輸性要求越來越高,對(duì)存儲(chǔ)系統(tǒng),在存儲(chǔ)容量、存儲(chǔ)安全性、存儲(chǔ)速度和存儲(chǔ)數(shù)據(jù)的可恢復(fù)性要求也越來越高。如果用戶的存儲(chǔ)系統(tǒng)崩潰導(dǎo)致重要數(shù)據(jù)丟失,那么將會(huì)給用戶帶來災(zāi)難性的后果,所以在存儲(chǔ)系統(tǒng)對(duì)于其數(shù)據(jù)的可恢復(fù)性及數(shù)據(jù)的穩(wěn)定性可靠性和安全性要求很高,現(xiàn)有的存儲(chǔ)系統(tǒng)數(shù)據(jù)恢復(fù)算法通過應(yīng)用層軟件去作PQ檢驗(yàn)的算法,這個(gè)過程占用系統(tǒng)CPU的資源,且CPU處理算法時(shí)間較長(zhǎng),從而導(dǎo)致數(shù)據(jù)恢復(fù)時(shí)間過長(zhǎng)。

發(fā)明內(nèi)容
本發(fā)明的目的在于,針對(duì)上述問題,提出一種基于RDMA架構(gòu)設(shè)計(jì)的PQ檢驗(yàn)?zāi)K及檢驗(yàn)方法,以實(shí)現(xiàn)在數(shù)據(jù)存儲(chǔ)出錯(cuò)時(shí),對(duì)數(shù)據(jù)進(jìn)行準(zhǔn)確恢復(fù)的優(yōu)點(diǎn)。為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是
一種基于RDMA架構(gòu)設(shè)計(jì)的PQ檢驗(yàn)?zāi)K,所述PQ硬件校驗(yàn)?zāi)K是作數(shù)據(jù)P檢驗(yàn)和Q檢驗(yàn)的數(shù)據(jù)恢復(fù)模塊,PQ硬件校驗(yàn)?zāi)K通過FPGA硬件邏輯實(shí)現(xiàn)了 P檢驗(yàn)硬件算法和Q檢驗(yàn)硬件算法,通過對(duì)RDMA系統(tǒng)架構(gòu)的RDMA狀態(tài)機(jī)緩存數(shù)據(jù)和狀態(tài)控制信息硬件接口進(jìn)行硬件邏輯的PQ檢驗(yàn)硬件算法實(shí)現(xiàn),同時(shí)將PQ檢驗(yàn)的值與數(shù)據(jù)并發(fā)到系統(tǒng)內(nèi)存,并存入到系統(tǒng)相應(yīng)存儲(chǔ)介質(zhì)中去,包括有P校驗(yàn)?zāi)K和Q校驗(yàn)?zāi)K。根據(jù)本發(fā)明的優(yōu)選實(shí)施例,所述P校驗(yàn)?zāi)K包括有X0R_FSM模塊和X0R_BUF模塊; 所述X0R_FSM模塊負(fù)責(zé)將每次突發(fā)長(zhǎng)度的異或數(shù)據(jù)通過NPI接口傳到系統(tǒng)內(nèi)存,X0R_
FSM模塊通過硬件狀態(tài)機(jī)的模式來處理異或數(shù)據(jù),根據(jù)P校驗(yàn)請(qǐng)求開始從X0R_BUF模塊中讀取數(shù)據(jù)寫到系統(tǒng)內(nèi)存中;
所述X0R_BUF模塊對(duì)流控?cái)?shù)據(jù)作異或計(jì)算,并將計(jì)算出來的異或數(shù)據(jù)傳給X0R_FSM模塊;X0R_BUF模塊定義了一個(gè)雙口的同步RAM來做流控?cái)?shù)據(jù)的緩存和異或計(jì)算;
所述Q校驗(yàn)?zāi)K包括有信號(hào)控制模塊,信號(hào)分析模塊、乘法計(jì)算模塊和P校驗(yàn)?zāi)K;所述信號(hào)控制模塊對(duì)并發(fā)輸入Q校驗(yàn)?zāi)K的輸入接口信號(hào)作3個(gè)時(shí)鐘的延時(shí)再輸出,延遲3個(gè)時(shí)鐘是為了乘法計(jì)算模塊能夠有足夠的時(shí)間等待接收和計(jì)算數(shù)據(jù),保證乘法計(jì)算模塊的輸入數(shù)據(jù)信號(hào)的穩(wěn)定可靠;
所述信號(hào)分析模塊處理數(shù)據(jù)數(shù)據(jù)的盤符標(biāo)志信息,對(duì)盤符信息作伽羅瓦域計(jì)算再輸出。所述乘法計(jì)算模塊作盤符信息伽羅瓦域計(jì)算在輸出值和數(shù)據(jù)的乘法運(yùn)算;
所述P校驗(yàn)?zāi)K,供Q校驗(yàn)?zāi)K調(diào)用作異或運(yùn)算,最后輸出P校驗(yàn)值到NPI內(nèi)存接口和總線。同時(shí)本發(fā)明的技術(shù)方案還公開了一種基于RDMA架構(gòu)設(shè)計(jì)的PQ檢驗(yàn)?zāi)K的PQ檢驗(yàn)方法,
所述PQ校驗(yàn)?zāi)K中進(jìn)行P校驗(yàn)和Q校驗(yàn)的算法數(shù)據(jù)在做異或計(jì)算,在P校驗(yàn)?zāi)K中通過X0R_FSM模塊實(shí)現(xiàn)異或校驗(yàn)狀態(tài)機(jī)的功能控制,在Q校驗(yàn)?zāi)K中的異或校驗(yàn)是調(diào)用了 P校驗(yàn)功能模塊實(shí)現(xiàn)Q計(jì)算的異或功能;X0R_FSM模塊實(shí)現(xiàn)的異或校驗(yàn)狀態(tài)機(jī)的功能首先狀態(tài)機(jī)處于空閑狀態(tài),在空閑狀態(tài)檢測(cè)P檢驗(yàn)請(qǐng)求狀態(tài)信號(hào)P_req的狀態(tài),如果請(qǐng)求有效則會(huì)按照突發(fā)字節(jié)的長(zhǎng)度去依次讀出雙口同步RAM中的數(shù)據(jù)到數(shù)據(jù)總線上,直到讀出數(shù)據(jù)的最后一個(gè)字節(jié)長(zhǎng)度時(shí),跳轉(zhuǎn)到下一個(gè)請(qǐng)求NPI接口請(qǐng)求狀態(tài)等待內(nèi)存地址響應(yīng),如果收到內(nèi)存地址響應(yīng)信號(hào)則認(rèn)為是此次突發(fā)數(shù)據(jù)完成,則狀態(tài)機(jī)跳轉(zhuǎn)到下一個(gè)狀態(tài),在下一個(gè)狀態(tài)會(huì)有一個(gè)時(shí)鐘的延時(shí)來保證數(shù)據(jù)完整性和信號(hào)穩(wěn)定,如果寫內(nèi)存數(shù)據(jù)完成則跳到數(shù)據(jù)完成狀態(tài)否則跳轉(zhuǎn)到數(shù)據(jù)等待狀態(tài),繼續(xù)等待接收數(shù)據(jù)寫入到內(nèi)存;在數(shù)據(jù)完成狀態(tài)一個(gè)時(shí)鐘的延時(shí)完成后直接跳轉(zhuǎn)到狀態(tài)機(jī)空閑狀態(tài),同時(shí)響應(yīng)P校驗(yàn)完成相應(yīng)標(biāo)志信號(hào);其異或狀態(tài)機(jī)的各個(gè)狀態(tài)跳轉(zhuǎn)具體如下S.1DLE狀態(tài)狀態(tài)機(jī)處于空閑狀態(tài),在這個(gè)狀態(tài)會(huì)檢測(cè)p_req信號(hào)是否開始進(jìn)行異或校驗(yàn)并將異或校驗(yàn)的值存入內(nèi)存;如果狀態(tài)機(jī)檢測(cè)到P_req信號(hào)狀態(tài)為1,則狀態(tài)跳轉(zhuǎn)到S_WAIT狀態(tài),否者處于檢測(cè)狀態(tài);
S_WAIT狀態(tài)狀態(tài)機(jī)等待狀態(tài),在此狀態(tài)狀態(tài)機(jī)將突突發(fā)字節(jié)的長(zhǎng)度數(shù)值賦值給狀態(tài)機(jī)內(nèi)部讀數(shù)據(jù)長(zhǎng)度寄存器wr_len的值,以便狀態(tài)機(jī)判斷讀一次突發(fā)數(shù)據(jù)的完成標(biāo)志位,狀態(tài)機(jī)在S_WAIT狀態(tài)直接跳轉(zhuǎn)到S_DATA狀態(tài);
S_DATA狀態(tài)狀態(tài)機(jī)數(shù)據(jù)傳送狀態(tài),在此狀態(tài)狀態(tài)機(jī)執(zhí)行讀雙口同步RAM的值即寫雙口同步RAM的值到內(nèi)存,狀態(tài)機(jī)檢測(cè)突發(fā)數(shù)據(jù)長(zhǎng)度的標(biāo)志位,如果狀態(tài)機(jī)突發(fā)長(zhǎng)度完成,狀態(tài)機(jī)跳轉(zhuǎn)到S_REQ狀態(tài);
S_REQ狀態(tài)狀態(tài)機(jī)寫內(nèi)存請(qǐng)求狀態(tài),在此狀態(tài)狀態(tài)機(jī)會(huì)檢測(cè)內(nèi)存地址響應(yīng)信號(hào)PIM_AddrAck的值,如果接收到內(nèi)存地址響應(yīng)信號(hào),狀態(tài)機(jī)則認(rèn)為是此次突發(fā)數(shù)據(jù)完成,狀態(tài)機(jī)狀態(tài)跳轉(zhuǎn)到S_NEXT狀態(tài);
S_NEXT狀態(tài)狀態(tài)機(jī)一個(gè)時(shí)鐘的延時(shí)狀態(tài),在此狀態(tài),狀態(tài)機(jī)接收到內(nèi)存地址響應(yīng)信號(hào)后有一個(gè)時(shí)鐘的延時(shí),保證數(shù)據(jù)的穩(wěn)定和完整,檢測(cè)到數(shù)據(jù)完成則跳轉(zhuǎn)到S_DONE狀態(tài),否則跳轉(zhuǎn)到狀態(tài)機(jī)等待S_WAIT狀態(tài)繼續(xù)等待寫內(nèi)存數(shù)據(jù);
S.DONE狀態(tài)寫內(nèi)存數(shù)據(jù)完成狀態(tài),在此狀態(tài)一個(gè)時(shí)鐘后直接跳轉(zhuǎn)到狀態(tài)機(jī)空閑狀態(tài),同時(shí)響應(yīng)P校驗(yàn)完成標(biāo)志信號(hào)給XOR_BUF模塊。本發(fā)明的技術(shù)方案,提供一種基于RDMA架構(gòu)設(shè)計(jì)的PQ校驗(yàn)硬件架構(gòu),實(shí)現(xiàn)用戶丟失單盤或雙盤數(shù)據(jù)情況下,通過PQ校驗(yàn)(同位奇偶檢驗(yàn)檢查)計(jì)算使得丟失數(shù)據(jù)得以恢復(fù),且基于RDMA架構(gòu)設(shè)計(jì)保證數(shù)據(jù)可靠穩(wěn)定有效的傳輸,硬件PQ檢驗(yàn)實(shí)現(xiàn)硬件加速算法和邏輯保證了數(shù)據(jù)傳輸?shù)乃俣群痛鎯?chǔ)系統(tǒng)的整體性能。達(dá)到了在數(shù)據(jù)存儲(chǔ)出錯(cuò)時(shí),對(duì)數(shù)據(jù)進(jìn)行準(zhǔn)確恢復(fù)的目的。下面通過附圖和 實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。


圖1為本發(fā)明實(shí)施例所述的RDMA架構(gòu)的結(jié)構(gòu)示意圖2為本發(fā)明實(shí)施例所述的基于RDMA架構(gòu)設(shè)計(jì)的PQ檢驗(yàn)?zāi)K的結(jié)構(gòu)示意圖3為P校驗(yàn)?zāi)K中X0R_FSM模塊工作流程圖。
具體實(shí)施例方式以下結(jié)合附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行說明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實(shí)施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。如圖2所示,一種基于RDMA架構(gòu)設(shè)計(jì)的PQ檢驗(yàn)?zāi)K,PQ硬件校驗(yàn)?zāi)K是作數(shù)據(jù)P檢驗(yàn)和Q檢驗(yàn)的數(shù)據(jù)恢復(fù)模塊,PQ硬件校驗(yàn)?zāi)K通過FPGA硬件邏輯實(shí)現(xiàn)了 P檢驗(yàn)硬件算法和Q檢驗(yàn)硬件算法,通過對(duì)RDMA系統(tǒng)架構(gòu)的RDMA狀態(tài)機(jī)緩存數(shù)據(jù)和狀態(tài)控制信息硬件接口進(jìn)行硬件邏輯的PQ檢驗(yàn)硬件算法實(shí)現(xiàn),同時(shí)將PQ檢驗(yàn)的值與數(shù)據(jù)并發(fā)到系統(tǒng)內(nèi)存,并存入到系統(tǒng)相應(yīng)存儲(chǔ)介質(zhì)中去,包括有P校驗(yàn)?zāi)K和Q校驗(yàn)?zāi)K。其中,P校驗(yàn)?zāi)K包括有X0R_FSM模塊和X0R_BUF模塊;
X0R_FSM模塊負(fù)責(zé)將每次突發(fā)長(zhǎng)度的異或數(shù)據(jù)通過NPI接口傳到系統(tǒng)內(nèi)存,X0R_FSM模塊通過硬件狀態(tài)機(jī)的模式來處理異或數(shù)據(jù),根據(jù)P校驗(yàn)請(qǐng)求開始從XOR_BUF模塊中讀取數(shù)據(jù)寫到系統(tǒng)內(nèi)存中;
XOR_BUF模塊對(duì)流控?cái)?shù)據(jù)作異或計(jì)算,并將計(jì)算出來的異或數(shù)據(jù)傳給XOR_FSM模塊;XOR_BUF模塊定義了一個(gè)雙口的同步RAM來做流控?cái)?shù)據(jù)的緩存和異或計(jì)算;
Q校驗(yàn)?zāi)K包括有信號(hào)控制模塊,信號(hào)分析模塊、乘法計(jì)算模塊和P校驗(yàn)?zāi)K;
信號(hào)控制模塊對(duì)并發(fā)輸入Q校驗(yàn)?zāi)K的輸入接口信號(hào)作3個(gè)時(shí)鐘的延時(shí)再輸出,延遲3個(gè)時(shí)鐘是為了乘法計(jì)算模塊能夠有足夠的時(shí)間等待接收和計(jì)算數(shù)據(jù),保證乘法計(jì)算模塊的輸入數(shù)據(jù)信號(hào)的穩(wěn)定可靠;
信號(hào)分析模塊處理數(shù)據(jù)數(shù)據(jù)的盤符標(biāo)志信息,對(duì)盤符信息作伽羅瓦域計(jì)算再輸出。乘法計(jì)算模塊作盤符信息伽羅瓦域計(jì)算在輸出值和數(shù)據(jù)的乘法運(yùn)算;
Q校驗(yàn)?zāi)K調(diào)用P校驗(yàn)?zāi)K作異或運(yùn)算,最后輸出P校驗(yàn)值到NPI內(nèi)存接口和總線。PQ校驗(yàn)?zāi)K有P值校驗(yàn)?zāi)K和Q值校驗(yàn)?zāi)K,通過FPGA實(shí)現(xiàn)的硬件邏輯算法計(jì)算得出的P校驗(yàn)的值和Q校驗(yàn)的值經(jīng)過NPI接口數(shù)據(jù)總線發(fā)往內(nèi)存,以便于在數(shù)據(jù)丟失時(shí),系統(tǒng)恢復(fù)數(shù)據(jù)時(shí)用到P和Q的值來重新恢復(fù)數(shù)據(jù)。P值校驗(yàn)?zāi)K接收P校驗(yàn)?zāi)K硬件校驗(yàn)計(jì)算的P值數(shù)據(jù),并將其數(shù)據(jù)發(fā)到數(shù)據(jù)總線和通過NPI接口寫到系統(tǒng)內(nèi)存。 Q值校驗(yàn)?zāi)K接收Q校驗(yàn)?zāi)K硬件校驗(yàn)計(jì)算的Q值數(shù)據(jù),并將其數(shù)據(jù)發(fā)到數(shù)據(jù)總線和通過NPI接口寫到系統(tǒng)內(nèi)存。 如圖3所示,一種基于RDMA架構(gòu)設(shè)計(jì)的PQ檢驗(yàn)?zāi)K的PQ檢驗(yàn)方法,
PQ校驗(yàn)?zāi)K中進(jìn)行P校驗(yàn)和Q校驗(yàn)的算法數(shù)據(jù)在做異或計(jì)算,在P校驗(yàn)?zāi)K中通過X0R_FSM模塊實(shí)現(xiàn)異或校驗(yàn)狀態(tài)機(jī)的功能控制,在Q校驗(yàn)?zāi)K中的異或校驗(yàn)是調(diào)用了 P校驗(yàn)功能模塊實(shí)現(xiàn)Q計(jì)算的異或功能;X0R_FSM模塊實(shí)現(xiàn)的異或校驗(yàn)狀態(tài)機(jī)的功能首先狀態(tài)機(jī)處于空閑狀態(tài),在空閑狀態(tài)檢測(cè)P檢驗(yàn)請(qǐng)求狀態(tài)信號(hào)P_req的狀態(tài),如果請(qǐng)求有效則會(huì)按照突發(fā)字節(jié)的長(zhǎng)度去依次讀出雙口同步RAM中的數(shù)據(jù)到數(shù)據(jù)總線上,直到讀出數(shù)據(jù)的最后一個(gè)字節(jié)長(zhǎng)度時(shí),跳轉(zhuǎn)到下一個(gè)請(qǐng)求NPI接口請(qǐng)求狀態(tài)等待內(nèi)存地址響應(yīng),如果收到內(nèi)存地址響應(yīng)信號(hào)則認(rèn)為是此次突發(fā)數(shù)據(jù)完成,則狀態(tài)機(jī)跳轉(zhuǎn)到下一個(gè)狀態(tài),在下一個(gè)狀態(tài)會(huì)有一個(gè)時(shí)鐘的延時(shí)來保證數(shù)據(jù)完整性和信號(hào)穩(wěn)定,如果寫內(nèi)存數(shù)據(jù)完成則跳到數(shù)據(jù)完成狀態(tài)否則跳轉(zhuǎn)到數(shù)據(jù)等待狀態(tài),繼續(xù)等待接收數(shù)據(jù)寫入到內(nèi)存;在數(shù)據(jù)完成狀態(tài)一個(gè)時(shí)鐘的延時(shí)完成后直接跳轉(zhuǎn)到狀態(tài)機(jī)空閑狀態(tài),同時(shí)響應(yīng)P校驗(yàn)完成相應(yīng)標(biāo)志信號(hào);其異或狀態(tài)機(jī)的各個(gè)狀態(tài)跳轉(zhuǎn)具體如下
S.1DLE狀態(tài)狀態(tài)機(jī)處于空閑狀態(tài),在這個(gè)狀態(tài)會(huì)檢測(cè)p_req信號(hào)是否開始進(jìn)行異或校驗(yàn)并將異或校驗(yàn)的值存入內(nèi)存;如果狀態(tài)機(jī)檢測(cè)到P_req信號(hào)狀態(tài)為1,則狀態(tài)跳轉(zhuǎn)到S_WAIT狀態(tài),否者處于檢測(cè)狀態(tài);
S.WAIT狀態(tài)狀態(tài)機(jī)等待狀態(tài),在此狀態(tài)狀態(tài)機(jī)將突突發(fā)字節(jié)的長(zhǎng)度數(shù)值賦值給狀態(tài)機(jī)內(nèi)部讀數(shù)據(jù)長(zhǎng)度寄存器wr_len的值,以便狀態(tài)機(jī)判斷讀一次突發(fā)數(shù)據(jù)的完成標(biāo)志位,狀態(tài)機(jī)在S_WAIT狀態(tài)直接跳轉(zhuǎn)到S_DATA狀態(tài);
S_DATA狀態(tài)狀態(tài)機(jī)數(shù)據(jù)傳送狀態(tài),在此狀態(tài)狀態(tài)機(jī)執(zhí)行讀雙口同步RAM的值即寫雙口同步RAM的值到內(nèi)存,狀態(tài)機(jī)檢測(cè)突發(fā)數(shù)據(jù)長(zhǎng)度的標(biāo)志位,如果狀態(tài)機(jī)突發(fā)長(zhǎng)度完成,狀態(tài)機(jī)跳轉(zhuǎn)到S_REQ狀態(tài);
S_REQ狀態(tài)狀態(tài)機(jī)寫內(nèi)存請(qǐng)求狀態(tài),在此狀態(tài)狀態(tài)機(jī)會(huì)檢測(cè)內(nèi)存地址響應(yīng)信號(hào)PIM_AddrAck的值,如果接收到內(nèi)存地址響應(yīng)信號(hào),狀態(tài)機(jī)則認(rèn)為是此次突發(fā)數(shù)據(jù)完成,狀態(tài)機(jī)狀態(tài)跳轉(zhuǎn)到S_NEXT狀態(tài);
S_NEXT狀態(tài)狀態(tài)機(jī)一個(gè)時(shí)鐘的延時(shí)狀態(tài),在此狀態(tài),狀態(tài)機(jī)接收到內(nèi)存地址響應(yīng)信號(hào)后有一個(gè)時(shí)鐘的延時(shí),保證數(shù)據(jù)的穩(wěn)定和完整,檢測(cè)到數(shù)據(jù)完成則跳轉(zhuǎn)到S_DONE狀態(tài),否則跳轉(zhuǎn)到狀態(tài)機(jī)等待S_WAIT狀態(tài)繼續(xù)等待寫內(nèi)存數(shù)據(jù);
S.DONE狀態(tài)寫內(nèi)存數(shù)據(jù)完成狀態(tài),在此狀態(tài)一個(gè)時(shí)鐘后直接跳轉(zhuǎn)到狀態(tài)機(jī)空閑狀態(tài),同時(shí)響應(yīng)P校驗(yàn)完成標(biāo)志信號(hào)給XOR_BUF模塊。RDMA系統(tǒng)架構(gòu)設(shè)計(jì),由RDMA狀態(tài)機(jī)模塊,A_DMA模塊,B_DMA模塊,描述符讀寫寄存器模塊,PQ硬件校驗(yàn)?zāi)K和NPI接口模塊組成,
RDMA狀態(tài)機(jī)模塊是整個(gè)RDMA架構(gòu)設(shè)計(jì)的主狀態(tài)機(jī),是各個(gè)信號(hào)的主控制模塊,負(fù)責(zé)解析描述符讀寫寄存器接口的數(shù)據(jù),并填寫狀態(tài)機(jī)中定義的描述符寄存器的初值,初始化狀態(tài)機(jī)控制字符寄存器的值,初始化DMA讀寫內(nèi)存的數(shù)據(jù)起始地址,DMA描述符地址及數(shù)據(jù)長(zhǎng)度和PQ校驗(yàn)的起始地址。通過控制字符寄存器的值來訪問RDMA系統(tǒng)架構(gòu)兩端的DMA(A_DMA和B_DMA),并通知兩端的DMA來執(zhí)行DMA數(shù)據(jù)搬移動(dòng)作。訪問RDMA系統(tǒng)架構(gòu)兩端的DMA進(jìn)行數(shù)據(jù)搬移動(dòng)作是雙向的,通過初始化狀態(tài)機(jī)控制字符的控制命令確定數(shù)據(jù)搬移的方向。RDMA狀態(tài)機(jī)模塊實(shí)現(xiàn)了兩端系統(tǒng)間的數(shù)據(jù)拷貝的主題架構(gòu)功能,具體的數(shù)據(jù)拷貝搬移動(dòng)作由其它幾個(gè)模塊來執(zhí)行。A_DMA模塊是整個(gè)RDMA架構(gòu)設(shè)計(jì)的數(shù)據(jù)拷貝執(zhí)行者。A_DMA模塊首先會(huì)去讀去RDMA架構(gòu)的A_DMA模塊端描述符寄存器的值,并從描述符地址對(duì)應(yīng)的內(nèi)存去讀取數(shù)據(jù)發(fā)送和接收的狀態(tài)控制寄存器的值,根據(jù)這些狀態(tài)寄存器的值去執(zhí)行要發(fā)送還是接收數(shù)據(jù)。A_DMA的前端是系統(tǒng)(操作系統(tǒng)的內(nèi)存),后端是B_DMA模塊,數(shù)據(jù)拷貝在前端系統(tǒng)內(nèi)存和后端B_DMA模塊間進(jìn)行,數(shù)據(jù)拷貝的方向是雙向的,數(shù)據(jù)可以是從前端系統(tǒng)內(nèi)存通過數(shù)據(jù)總線到B_DMA模塊,也可以是從后端B_DMA模塊到系統(tǒng)前端內(nèi)存。在發(fā)送狀態(tài)時(shí),A_DMA模塊讀前端系統(tǒng)內(nèi)存信息到B_DMA模塊;在接收狀態(tài)時(shí),A_DMA模塊寫后端B_DMA模塊數(shù)據(jù)到前端系統(tǒng)內(nèi)存。同時(shí)A_DMA模塊緩存數(shù)據(jù)發(fā)送和接收的控制狀態(tài)信息和數(shù)據(jù),將這些數(shù)據(jù)和狀態(tài)控制信息輸出到硬件接口,以備數(shù)據(jù)做PQ校驗(yàn)。B_DMA模塊是整個(gè)RDMA架構(gòu)設(shè)計(jì)的數(shù)據(jù)拷貝執(zhí)行者。B_DMA模塊首先會(huì)去讀RDMA架構(gòu)的B_DMA模塊端描述符寄存器的值,并從描述符地址對(duì)應(yīng)的內(nèi)存去讀取數(shù)據(jù)發(fā)送和接收的狀態(tài)控制寄存器的值,根據(jù)這些狀態(tài)寄存器的值去執(zhí)行要發(fā)送還是接收數(shù)據(jù)。B_DMA的前端是系統(tǒng)(操作系統(tǒng)的內(nèi)存),后端是A_DMA模塊,數(shù)據(jù)拷貝在前端系統(tǒng)內(nèi)存和后端A_DMA模塊間進(jìn)行,數(shù)據(jù)拷貝的方向是雙向的,數(shù)據(jù)可以是從前端系統(tǒng)內(nèi)存通過數(shù)據(jù)總線到A_DMA模塊,也可以是從后端A_DMA模塊到系統(tǒng)前端內(nèi)存。在發(fā)送狀態(tài)時(shí),B_DMA模塊讀前端系統(tǒng)內(nèi)存信息到A_DMA模塊;在接收狀態(tài)時(shí),B_DMA模塊寫后端A_DMA模塊數(shù)據(jù)到前端系統(tǒng)內(nèi)存。同時(shí)B_DMA模塊緩存數(shù)據(jù)發(fā)送和接收的控制狀態(tài)信息和數(shù)據(jù),將這些數(shù)據(jù)和狀態(tài)控制信息輸出到硬件接口,以備數(shù)據(jù)做PQ硬件校驗(yàn)邏輯。描述符讀寫寄存器模塊描述符讀寫寄存器模塊是上位機(jī)軟件訪問硬件的寄存器接口模塊,上位機(jī)應(yīng)用層軟件通過DCR總線訪問描述符讀寫寄存器模塊來初始化硬件描述符寄存器的值,RDMA狀態(tài)機(jī)通過描述符寄存器的值來執(zhí)行DMA操作。RDMA架構(gòu)設(shè)計(jì)的所有數(shù)據(jù)拷貝DMA操作讀寫都是通過描述符狀態(tài)控制信息下發(fā)過來的。
PQ硬件校驗(yàn)?zāi)KPQ硬件校驗(yàn)?zāi)K是作數(shù)據(jù)P檢驗(yàn)和Q檢驗(yàn)的數(shù)據(jù)恢復(fù)模塊,PQ硬件校驗(yàn)?zāi)K通郭FPGA硬件邏輯實(shí)現(xiàn)了 P檢驗(yàn)硬件算法和Q檢驗(yàn)硬件算法,通過對(duì)RDMA系統(tǒng)架構(gòu)的RDMA狀態(tài)機(jī)緩存數(shù)據(jù)和狀態(tài)控制信息硬件接口進(jìn)行硬件邏輯的PQ檢驗(yàn)硬件算法實(shí)現(xiàn),同時(shí)將PQ檢驗(yàn)的值與數(shù)據(jù)并發(fā)到系統(tǒng)內(nèi)存,并存入到系統(tǒng)相應(yīng)存儲(chǔ)介質(zhì)中去。如果發(fā)生系統(tǒng)丟盤(即數(shù)據(jù)丟失),則可以通過PQ檢驗(yàn)的硬件算法來恢復(fù)丟盤的數(shù)據(jù)到一個(gè)新的存儲(chǔ)介質(zhì)中。NPI接口模塊硬件訪問系統(tǒng)內(nèi)存的接口,提供一個(gè)訪問系統(tǒng)內(nèi)存的標(biāo)準(zhǔn)接口。RDMA架構(gòu)設(shè)計(jì)保證了多系統(tǒng)間數(shù)據(jù)拷貝的數(shù)據(jù)可靠穩(wěn)定有效的傳輸,減少了 CPU的參與,降低了 CPU負(fù)擔(dān),提高了 CPU的工作效率以及存儲(chǔ)系統(tǒng)的整體性能。同時(shí)RDMA架構(gòu)設(shè)計(jì)預(yù)留了 PQ硬件檢驗(yàn)的數(shù)據(jù)和控制狀態(tài)信息接口,為作數(shù)據(jù)恢復(fù)的PQ檢驗(yàn)FPGA硬件邏輯實(shí)現(xiàn)提高提供了數(shù)據(jù)可靠穩(wěn)定傳輸保障和方便。RDMA描述符數(shù)據(jù)結(jié)構(gòu)如下表所示
表一 RDMA描述符數(shù)據(jù)結(jié)構(gòu)說明
權(quán)利要求
1.一種基于RDMA架構(gòu)設(shè)計(jì)的PQ檢驗(yàn)?zāi)K,其特征在于,所述PQ硬件校驗(yàn)?zāi)K是作數(shù)據(jù)P檢驗(yàn)和Q檢驗(yàn)的數(shù)據(jù)恢復(fù)模塊,PQ硬件校驗(yàn)?zāi)K通過FPGA硬件邏輯實(shí)現(xiàn)了 P檢驗(yàn)硬件算法和Q檢驗(yàn)硬件算法,通過對(duì)RDMA系統(tǒng)架構(gòu)的RDMA狀態(tài)機(jī)緩存數(shù)據(jù)和狀態(tài)控制信息硬件接口進(jìn)行硬件邏輯的PQ檢驗(yàn)硬件算法實(shí)現(xiàn),同時(shí)將PQ檢驗(yàn)的值與數(shù)據(jù)并發(fā)到系統(tǒng)內(nèi)存,并存入到系統(tǒng)相應(yīng)存儲(chǔ)介質(zhì)中去,包括P校驗(yàn)?zāi)K和Q校驗(yàn)?zāi)K。
2.根據(jù)權(quán)利要求1所述的基于RDMA架構(gòu)設(shè)計(jì)的PQ檢驗(yàn)?zāi)K,其特征在于,所述P校驗(yàn)?zāi)K包括XOR_FSM模塊和XOR_BUF模塊; 所述XOR_FSM模塊負(fù)責(zé)將每次突發(fā)長(zhǎng)度的異或數(shù)據(jù)通過NPI接口傳到系統(tǒng)內(nèi)存,XOR_FSM模塊通過硬件狀態(tài)機(jī)的模式來處理異或數(shù)據(jù),根據(jù)P校驗(yàn)請(qǐng)求開始從XOR_BUF模塊中讀取數(shù)據(jù)寫到系統(tǒng)內(nèi)存中; 所述XOR_BUF模塊對(duì)流控?cái)?shù)據(jù)作異或計(jì)算,并將計(jì)算出來的異或數(shù)據(jù)傳給XOR_FSM模塊;XOR_BUF模塊定義了一個(gè)雙口的同步RAM來做流控?cái)?shù)據(jù)的緩存和異或計(jì)算。
3.根據(jù)權(quán)利要求1所述的基于RDMA架構(gòu)設(shè)計(jì)的PQ檢驗(yàn)?zāi)K,其特征在于,所述Q校驗(yàn)?zāi)K包括信號(hào)控制模塊,信號(hào)分析模塊、乘法計(jì)算模塊和上述P校驗(yàn)?zāi)K; 所述信號(hào)控制模塊對(duì)并發(fā)輸入Q校驗(yàn)?zāi)K的輸入接口信號(hào)作3個(gè)時(shí)鐘的延時(shí)再輸出,延遲3個(gè)時(shí)鐘是為了乘法計(jì)算模塊能夠有足夠的時(shí)間等待接收和計(jì)算數(shù)據(jù),保證乘法計(jì)算模塊的輸入數(shù)據(jù)信號(hào)的穩(wěn)定可靠; 所述信號(hào)分析模塊處理數(shù)據(jù)的盤符標(biāo)志信息,對(duì)盤符信息作伽羅瓦域計(jì)算再輸出; 所述乘法計(jì)算模塊作盤符信息伽羅瓦域計(jì)算在輸出值和數(shù)據(jù)的乘法運(yùn)算; 所述P校驗(yàn)?zāi)K,供Q校驗(yàn)?zāi)K調(diào)用作異或運(yùn)算,最后輸出P校驗(yàn)值到NPI內(nèi)存接口和總線。
4.根據(jù)權(quán)利要求1至3所述的基于RDMA架構(gòu)設(shè)計(jì)的PQ檢驗(yàn)?zāi)K的PQ檢驗(yàn)方法,其特征在于, 所述PQ校驗(yàn)?zāi)K中進(jìn)行P校驗(yàn)和Q校驗(yàn)的算法數(shù)據(jù)在做異或計(jì)算,在P校驗(yàn)?zāi)K中通過XOR_FSM模塊實(shí)現(xiàn)異或校驗(yàn)狀態(tài)機(jī)的功能控制,在Q校驗(yàn)?zāi)K中的異或校驗(yàn)是調(diào)用了 P校驗(yàn)功能模塊實(shí)現(xiàn)Q計(jì)算的異或功能;XOR_FSM模塊實(shí)現(xiàn)的異或校驗(yàn)狀態(tài)機(jī)功能,其具體描述如下文 首先狀態(tài)機(jī)處于空閑狀態(tài),在空閑狀態(tài)檢測(cè)P檢驗(yàn)請(qǐng)求狀態(tài)信號(hào)P_req的狀態(tài),如果請(qǐng)求有效則會(huì)按照突發(fā)字節(jié)的長(zhǎng)度去依次讀出雙口同步RAM中的數(shù)據(jù)到數(shù)據(jù)總線上,直到讀出數(shù)據(jù)的最后一個(gè)字節(jié)長(zhǎng)度時(shí),跳轉(zhuǎn)到下一個(gè)請(qǐng)求NPI接口請(qǐng)求狀態(tài)等待內(nèi)存地址響應(yīng),如果收到內(nèi)存地址響應(yīng)信號(hào)則認(rèn)為是此次突發(fā)數(shù)據(jù)完成,則狀態(tài)機(jī)跳轉(zhuǎn)到下一個(gè)狀態(tài),在下一個(gè)狀態(tài)會(huì)有一個(gè)時(shí)鐘的延時(shí)來保證數(shù)據(jù)完整性和信號(hào)穩(wěn)定,如果寫內(nèi)存數(shù)據(jù)完成則跳到數(shù)據(jù)完成狀態(tài)否則跳轉(zhuǎn)到數(shù)據(jù)等待狀態(tài),繼續(xù)等待接收數(shù)據(jù)寫入到內(nèi)存;在數(shù)據(jù)完成狀態(tài)一個(gè)時(shí)鐘的延時(shí)完成后直接跳轉(zhuǎn)到狀態(tài)機(jī)空閑狀態(tài),同時(shí)響應(yīng)P校驗(yàn)完成相應(yīng)標(biāo)志信號(hào)。
5.根據(jù)權(quán)利要求4所述的的基于RDMA架構(gòu)設(shè)計(jì)的PQ檢驗(yàn)?zāi)K的PQ檢驗(yàn)方法,其特征在于,所述XOR_FSM模塊即異或檢驗(yàn)狀態(tài)機(jī)模塊,其狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換如下 S.1DLE狀態(tài)狀態(tài)機(jī)處于空閑狀態(tài),在這個(gè)狀態(tài)會(huì)檢測(cè)p_req信號(hào)是否開始進(jìn)行異或校驗(yàn)并將異或校驗(yàn)的值存入內(nèi)存;如果狀態(tài)機(jī)檢測(cè)到P_req信號(hào)狀態(tài)為1,則狀態(tài)跳轉(zhuǎn)到S_WAIT狀態(tài),否者處于檢測(cè)狀態(tài); S.WAIT狀態(tài)狀態(tài)機(jī)等待狀態(tài),在此狀態(tài)狀態(tài)機(jī)將突發(fā)字節(jié)的長(zhǎng)度數(shù)值賦值給狀態(tài)機(jī)內(nèi)部讀數(shù)據(jù)長(zhǎng)度寄存器wr_len的值,以便狀態(tài)機(jī)判斷讀一次突發(fā)數(shù)據(jù)的完成標(biāo)志位,狀態(tài)機(jī)在S_WAIT狀態(tài)直接跳轉(zhuǎn)到S_DATA狀態(tài); S_DATA狀態(tài)狀態(tài)機(jī)數(shù)據(jù)傳送狀態(tài),在此狀態(tài)狀態(tài)機(jī)執(zhí)行讀雙口同步RAM的值即寫雙口同步RAM的值到內(nèi)存,狀態(tài)機(jī)檢測(cè)突發(fā)數(shù)據(jù)長(zhǎng)度的標(biāo)志位,如果狀態(tài)機(jī)突發(fā)長(zhǎng)度完成,狀態(tài)機(jī)跳轉(zhuǎn)到S_REQ狀態(tài); S_REQ狀態(tài)狀態(tài)機(jī)寫內(nèi)存請(qǐng)求狀態(tài),在此狀態(tài)狀態(tài)機(jī)會(huì)檢測(cè)內(nèi)存地址響應(yīng)信號(hào)PIM_AddrAck的值,如果接收到內(nèi)存地址響應(yīng)信號(hào),狀態(tài)機(jī)則認(rèn)為是此次突發(fā)數(shù)據(jù)完成,狀態(tài)機(jī)狀態(tài)跳轉(zhuǎn)到S_NEXT狀態(tài);· S_NEXT狀態(tài)狀態(tài)機(jī)一個(gè)時(shí)鐘的延時(shí)狀態(tài),在此狀態(tài),狀態(tài)機(jī)接收到內(nèi)存地址響應(yīng)信號(hào)后有一個(gè)時(shí)鐘的延時(shí),保證數(shù)據(jù)的穩(wěn)定和完整,檢測(cè)到數(shù)據(jù)完成則跳轉(zhuǎn)到S_DONE狀態(tài),否則跳轉(zhuǎn)到狀態(tài)機(jī)等待S_WAIT狀態(tài)繼續(xù)等待寫內(nèi)存數(shù)據(jù); S.DONE狀態(tài)寫內(nèi)存數(shù)據(jù)完成狀態(tài),在此狀態(tài)一個(gè)時(shí)鐘后直接跳轉(zhuǎn)到狀態(tài)機(jī)空閑狀態(tài),同時(shí)響應(yīng)P校驗(yàn)完成標(biāo)志信號(hào)給XOR_BUF模塊。
全文摘要
本發(fā)明公開了一種基于RDMA架構(gòu)設(shè)計(jì)的PQ檢驗(yàn)?zāi)K及檢驗(yàn)方法,通過硬件邏輯實(shí)現(xiàn)PQ算法,實(shí)現(xiàn)用戶丟失單盤或雙盤數(shù)據(jù)情況下,通過PQ校驗(yàn)(同位奇偶檢驗(yàn)檢查)計(jì)算使得丟失數(shù)據(jù)得以恢復(fù),且基于RDMA架構(gòu)設(shè)計(jì)保證數(shù)據(jù)可靠穩(wěn)定有效的傳輸,硬件PQ檢驗(yàn)實(shí)現(xiàn)硬件加速算法和邏輯保證了數(shù)據(jù)傳輸?shù)乃俣群痛鎯?chǔ)系統(tǒng)的整體性能。達(dá)到了在數(shù)據(jù)存儲(chǔ)出錯(cuò)時(shí),對(duì)數(shù)據(jù)進(jìn)行準(zhǔn)確恢復(fù)的目的。
文檔編號(hào)G06F11/10GK103034559SQ20121055077
公開日2013年4月10日 申請(qǐng)日期2012年12月18日 優(yōu)先權(quán)日2012年12月18日
發(fā)明者張慶敏, 張衡, 胡剛 申請(qǐng)人:無錫眾志和達(dá)存儲(chǔ)技術(shù)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
永靖县| 宁武县| 宿州市| 南岸区| 内江市| 民丰县| 苍山县| 桐梓县| 肇州县| 牟定县| 互助| 和平县| 长寿区| 宾阳县| 井冈山市| 习水县| 扬中市| 新沂市| 青铜峡市| 崇左市| 福海县| 遂平县| 景宁| 嘉荫县| 钟祥市| 广东省| 巴彦县| 雅江县| 吴江市| 呼伦贝尔市| 江油市| 阳曲县| 汝南县| 沂源县| 门源| 墨玉县| 桐城市| 丰都县| 阳泉市| 东阿县| 正阳县|