亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于RapidIO總線的RAID存儲系統(tǒng)及方法與流程

文檔序號:12665751閱讀:474來源:國知局
基于RapidIO總線的RAID存儲系統(tǒng)及方法與流程

本發(fā)明涉及一種RAID存儲系統(tǒng)及方法,特別是涉及一種基于RapidIO總線的RAID存儲系統(tǒng)及方法。



背景技術(shù):

RapidIO(RapidIO是由Motorola和Mercury等公司率先倡導(dǎo)的一種高性能、低引腳數(shù)、基于數(shù)據(jù)包交換的互連體系結(jié)構(gòu),是為滿足和未來高性能嵌入式系統(tǒng)需求而設(shè)計的一種開放式互連技術(shù)標(biāo)準(zhǔn))主要應(yīng)用于嵌入式系統(tǒng)內(nèi)部互連,支持芯片到芯片、板到板間的通訊,可作為嵌入式設(shè)備的背板(Backplane)連接。其因可靠、高效、低延遲、直接內(nèi)存共享、中斷、消息方式的傳輸,可以認(rèn)為是一種總線,又因?yàn)槠淇梢赃B接多個處理器設(shè)備,使這些設(shè)備組成一個網(wǎng),故又可以認(rèn)為是一種網(wǎng)絡(luò)。

RAID(RAID是英文Redundant Array of Independent Disks的縮寫,中文簡稱為“獨(dú)立冗余磁盤陣列”)技術(shù)是為服務(wù)器、數(shù)據(jù)中心等提供比單個硬盤更高的存儲性能和提供數(shù)據(jù)備份技術(shù)。

以RapidIO總線為基礎(chǔ)的綜合化平臺、數(shù)據(jù)中心、存儲平臺,都需要有對Raid存儲的支持?,F(xiàn)有技術(shù)中有的文獻(xiàn)詳細(xì)闡述了RapidIO做大規(guī)模存儲的優(yōu)勢、可行性,略述了其使用服務(wù)總線適配器通過10G萬兆總線連接服務(wù)器網(wǎng)絡(luò)與RapidIO交換網(wǎng)絡(luò),使用盤陣列適配器連接FC存儲網(wǎng)絡(luò),該方案中的適配器需要使用處理器參與協(xié)議轉(zhuǎn)換存儲,從而會增加相應(yīng)的協(xié)議轉(zhuǎn)換延時、增加系統(tǒng)功耗;現(xiàn)有數(shù)據(jù)中心方案是將RapidIO總線從服務(wù)器中引出,用于網(wǎng)絡(luò)互聯(lián),而磁盤陣列就在服務(wù)器內(nèi)部,如此一來,別的服務(wù)器想訪問該服務(wù)器中的硬盤數(shù)據(jù),必須經(jīng)過該服務(wù)器處理,需要該服務(wù)器處理器轉(zhuǎn)換,增加了存取時延、增加了系統(tǒng)功耗。所以目前沒有直接面向RapidIO總線、網(wǎng)絡(luò)的RAID存儲的設(shè)計方案。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明所要解決的技術(shù)問題是提供一種基于RapidIO總線的RAID存儲系統(tǒng)及方法,其可靠、高效、低延遲、直接內(nèi)存共享、中斷、消息方式的傳輸,可使RAID存儲陣列直接連接RapidIO總線,任何RapidIO處理器節(jié)點(diǎn)均可以低延時、高帶寬訪問Raid存儲陣列。

本發(fā)明是通過下述技術(shù)方案來解決上述技術(shù)問題的:一種基于RapidIO總線的RAID存儲系統(tǒng),其特征在于,其包括Rapid IO CPU節(jié)點(diǎn)模塊、RapidIO存儲模塊、RapidIO交換網(wǎng)模塊,其中:

RapidIO CPU節(jié)點(diǎn)模塊,執(zhí)行RapidIO驅(qū)動、RapidIO存儲驅(qū)動、MEM系統(tǒng);

RapidIO交換網(wǎng)模塊,主要為由RapidIO交換芯片組成的交換網(wǎng);

RapidIO存儲模塊,由一塊FPGA芯片和n塊SATA硬盤組成的RAID陣列組成,由FPGA芯片連接RAID陣列,n位自然數(shù)。

優(yōu)選地,所述FPGA芯片包括以下模塊:

RapidIO IP模塊,該模塊提供RapidIO總線支持;

RapidIO Target模塊,該模塊將RapidIO的Target請求變?yōu)長ocalBus總線,并返回Target響應(yīng);

RapidIO Initiator模塊,該模塊產(chǎn)生對遠(yuǎn)端處理器節(jié)點(diǎn)內(nèi)存空間數(shù)據(jù)的讀寫訪問;

RapidIO CMD FIFO模塊,該模塊將Local Bus收到的讀寫硬盤的命令結(jié)構(gòu)體進(jìn)行隊列存儲;

DMA_Ctrl模塊,該模塊從RapidIO CMD FIFO模塊中獲取命令結(jié)構(gòu)體,并完成硬盤數(shù)據(jù)的搬移工作,完成產(chǎn)生Doorbell中斷發(fā)往遠(yuǎn)端處理器;

RAID CMD AsyFIFO模塊,該模塊緩存DMA的讀寫SATA命令,并作跨時鐘域處理;

RAID READ DATA AsyFIFO模塊,該模塊緩存DMA從RAID硬盤讀取的數(shù)據(jù),并作跨時鐘域處理;

RAID WRITE DATA AsyFIFO模塊,該模塊緩存DMA從遠(yuǎn)端處理器節(jié)點(diǎn)讀取的數(shù)據(jù),并作跨時鐘域處理;

SDtoRD模塊,該模塊將三路三十二位的SATA硬盤返回的數(shù)據(jù),經(jīng)過校驗(yàn)檢測,生成六十四位數(shù)據(jù)寫入RAID READ DATA AsyFIFO模塊;

RDtoSD模塊,該模塊將六十四位數(shù)據(jù)根據(jù)扇區(qū)地址,生成CRC校驗(yàn)扇區(qū)數(shù)據(jù);

SATA模塊,該模塊完成SATA協(xié)議的控制,內(nèi)部FIFO用來緩沖SATA硬盤數(shù)據(jù)。

本發(fā)明還提供一種基于RapidIO總線的RAID存儲方法,其特征在于,其包括以下步驟:

步驟一,構(gòu)建命令結(jié)構(gòu)體;

步驟二,進(jìn)行RAID存儲。

優(yōu)選地,所述步驟一包括:低位地址、高位地址、扇區(qū)低位地址、扇區(qū)高位地址、扇區(qū)數(shù)量、讀寫模式、服務(wù)識別號,其中:

低位地址和高位地址組成Rapid IO地址,該地址指明RapidIO處理器存放或需要存放數(shù)據(jù)的基地址;

扇區(qū)低位地址和扇區(qū)高位地址組成RAID的扇區(qū)地址,該地址指明需要讀寫磁盤陣列扇區(qū)的基地址;

扇區(qū)數(shù)量表明本次傳輸需要讀寫磁盤陣列扇區(qū)的數(shù)量;

讀寫模式定義了本次操作是讀磁盤陣列還是寫磁盤陣列,讀寫完成后是否需要發(fā)送Doorbell給處理器;

服務(wù)識別號表明是服務(wù)哪個處理器的。

優(yōu)選地,所述步驟二包括以下流程:RAID讀取數(shù)據(jù)流程、RAID寫取數(shù)據(jù)流程。

優(yōu)選地,所述RAID讀取數(shù)據(jù)流程包括以下步驟:

步驟十一,處理器獲取一個命令結(jié)構(gòu)體,并根據(jù)需要讀取的扇區(qū)地址、扇區(qū)大小、自己的ID、需要完成終端、初始化該結(jié)構(gòu)體中sectorLowAddr、sectorHighAddr、sectorNumber、servID、和rwMode;

步驟十二,獲取需要存放數(shù)據(jù)的地址,并根據(jù)該地址值對結(jié)構(gòu)體rioLowAddr和rioHighAddr賦值;

步驟十三,使用Nwrite或Nwrite_R事務(wù)將結(jié)構(gòu)體中的數(shù)據(jù)寫入存儲結(jié)點(diǎn)命令FIFO地址中,大小為32B;

步驟十四,DMA_Ctrl模塊收到結(jié)構(gòu)體,根據(jù)塊地址及塊大小向磁盤陣列發(fā)起讀請求;

步驟十五,磁盤陣列返回數(shù)據(jù)經(jīng)SDTORD模塊校驗(yàn)檢測,返回給DMA_Ctrl模塊;

步驟十六,DMA_Ctrl模塊發(fā)起Nwrite寫事務(wù),將數(shù)據(jù)寫入遠(yuǎn)端處理器的內(nèi)存中;

步驟十七,DMA_Ctrl模塊數(shù)據(jù)傳輸完成后,向遠(yuǎn)端處理器發(fā)起Doorbell中斷請求;

步驟十八,處理器獲取到中斷后,即認(rèn)為內(nèi)存中數(shù)據(jù)即為存儲中數(shù)據(jù),激活掛起任務(wù),執(zhí)行相應(yīng)應(yīng)用。

優(yōu)選地,所述RAID寫取數(shù)據(jù)流程包括以下步驟:

步驟二十一,處理器獲取一個命令結(jié)構(gòu)體,并根據(jù)需要寫入的數(shù)據(jù)內(nèi)存基地址、需要讀取的扇區(qū)地址、扇區(qū)大小、自己的ID、需要完成終端、初始化該結(jié)構(gòu)體中rioLowAddr、rioHighAddr、sectorLowAddr、sectorHighAddr、sectorNumber、servID、和rwMode;

步驟二十二,使用Nwrite或Nwrite_R事務(wù)將結(jié)構(gòu)體中的數(shù)據(jù)寫入存儲結(jié)點(diǎn)命令FIFO地址中,大小為32B;

步驟二十三,DMA_Ctrl模塊收到結(jié)構(gòu)體,根據(jù)RapidIO地址及塊大小向處理器發(fā)起Nread讀請求;

步驟二十四,處理器節(jié)點(diǎn)返回相應(yīng)內(nèi)存數(shù)據(jù);

步驟二十五,DMA_Ctrl模塊收到部分?jǐn)?shù)據(jù)后,向磁盤陣列發(fā)起寫請求;

步驟二十六,SDtoRD模塊產(chǎn)生CRC校驗(yàn)盤數(shù)據(jù),經(jīng)SATA寫入相應(yīng)硬盤;

步驟二十七,DMA_Ctrl模塊數(shù)據(jù)傳輸完成后,向遠(yuǎn)端處理器發(fā)起Doorbell中斷請求;

步驟二十八,處理器獲取到中斷后,即可認(rèn)為內(nèi)存中數(shù)據(jù)被處理,激活掛起任務(wù),釋放相應(yīng)內(nèi)存。

本發(fā)明的積極進(jìn)步效果在于:本發(fā)明可靠、高效、低延遲、直接內(nèi)存共享、中斷、消息方式的傳輸,可使RAID存儲陣列直接連接RapidIO總線,任何RapidIO處理器節(jié)點(diǎn)均可以低延時、高帶寬訪問Raid存儲陣列。

附圖說明

圖1為本發(fā)明基于RapidIO總線的RAID存儲系統(tǒng)的系統(tǒng)框架圖。

圖2為本發(fā)明基于RapidIO總線的RAID存儲方法的流程示意圖。

圖3為FPGA芯片的結(jié)構(gòu)示意圖。

具體實(shí)施方式

下面結(jié)合附圖給出本發(fā)明較佳實(shí)施例,以詳細(xì)說明本發(fā)明的技術(shù)方案。

如圖1所示,本發(fā)明基于RapidIO(互連體系結(jié)構(gòu))總線的RAID(獨(dú)立冗余磁盤陣列)存儲系統(tǒng)包括Rapid IO CPU(處理器)節(jié)點(diǎn)模塊、RapidIO存儲模塊、RapidIO交換網(wǎng)模塊,其中:

RapidIO CPU節(jié)點(diǎn)模塊,執(zhí)行RapidIO驅(qū)動、RapidIO存儲驅(qū)動、MEM(文件)系統(tǒng)等;

RapidIO交換網(wǎng)模塊,主要為由RapidIO交換芯片組成的交換網(wǎng);

RapidIO存儲模塊,由一塊FPGA(現(xiàn)場可編程門陣列)芯片和n塊SATA(串口)硬盤組成的RAID陣列組成,由FPGA芯片連接RAID陣列,n位自然數(shù)。

RapidIO CPU(處理器)節(jié)點(diǎn)模塊、RapidIO存儲模塊、RapidIO交換網(wǎng)模塊經(jīng)RapidIO連接,使任何Rapid IO處理器節(jié)點(diǎn)都可以通過RapidIO網(wǎng)絡(luò)訪問任何Rapid IO存儲。

如圖3所示,F(xiàn)PGA芯片包括以下模塊:

RapidIO IP(網(wǎng)間協(xié)議)模塊,該模塊提供RapidIO總線支持;

RapidIO Target(目標(biāo))模塊,該模塊將RapidIO的Target請求變?yōu)長ocalBus總線(用于配置FPGA內(nèi)部寄存器),并返回Target響應(yīng);

RapidIO Initiator(發(fā)起)模塊,該模塊產(chǎn)生對遠(yuǎn)端處理器節(jié)點(diǎn)內(nèi)存空間數(shù)據(jù)的讀寫訪問;

RapidIO CMD(命令)FIFO(First In First Out,先進(jìn)先出)模塊,該模塊將Local Bus(本地總線)收到的讀寫硬盤的命令結(jié)構(gòu)體進(jìn)行隊列存儲,存放不止512個命令結(jié)構(gòu)體;

DMA(Direct Memory Access,直接內(nèi)存存取)_Ctrl(控制鍵)模塊,該模塊從RapidIO CMD FIFO模塊中獲取命令結(jié)構(gòu)體,并完成硬盤數(shù)據(jù)的搬移工作,完成產(chǎn)生Doorbell中斷發(fā)往遠(yuǎn)端處理器;

RAID CMD(命令)AsyFIFO(異步先進(jìn)先出)模塊,該模塊緩存DMA的讀寫SATA命令,并作跨時鐘域處理;

RAID READ DATA(讀取數(shù)據(jù))AsyFIFO(異步先進(jìn)先出)模塊,該模塊緩存DMA從RAID硬盤讀取的數(shù)據(jù),并作跨時鐘域處理;

RAID WRITE DATA(寫入數(shù)據(jù))AsyFIFO模塊,該模塊緩存DMA從遠(yuǎn)端處理器節(jié)點(diǎn)讀取的數(shù)據(jù),并作跨時鐘域處理;

SDtoRD(SATA to RAID,串口到獨(dú)立冗余磁盤陣列,或稱為“SDtoRD”)模塊,該模塊將三路三十二位的SATA硬盤返回的數(shù)據(jù),經(jīng)過校驗(yàn)檢測,生成六十四位數(shù)據(jù)寫入RAID READ DATA AsyFIFO模塊;

RDtoSD(RAID to SATA,獨(dú)立冗余磁盤陣到串口,或稱為“RD2SD”)模塊,該模塊將六十四位數(shù)據(jù)根據(jù)扇區(qū)地址,生成CRC(Cyclic Redundancy Check,循環(huán)冗余校驗(yàn))校驗(yàn)扇區(qū)數(shù)據(jù);

SATA(串口)模塊,該模塊完成SATA協(xié)議的控制,內(nèi)部FIFO用來緩沖SATA硬盤數(shù)據(jù),防止3塊硬盤返回數(shù)據(jù)不同時,導(dǎo)致數(shù)據(jù)丟失。

如圖2所示,基于RAPID IO總線的RAID存儲方法包括以下步驟:

步驟一,構(gòu)建命令結(jié)構(gòu)體;

步驟二,進(jìn)行Raid存儲。

所述步驟一包括:rioLowAddr(低位地址)、rioHighAddr(高位地址)、sectorLowAddr(扇區(qū)低位地址)、sectorHighAddr(扇區(qū)高位地址)、sectorNumber(扇區(qū)數(shù)量)、rwMode(讀寫模式)、servID(服務(wù)識別號),其中:

rioLowAddr和rioHighAddr組成Rapid IO地址,該地址指明RapidIO處理器存放或需要存放數(shù)據(jù)的基地址,一般為該處理器為該塊數(shù)據(jù)申請的內(nèi)存基地址;

sectorLowAddr和sectorHighAddr組成RAID的扇區(qū)地址,該地址指明需要讀寫磁盤陣列扇區(qū)的基地址;

sectorNumber,該值表明本次傳輸需要讀寫磁盤陣列扇區(qū)的數(shù)量;

rwMode,該值定義了本次操作是讀磁盤陣列還是寫磁盤陣列,讀寫完成后是否需要發(fā)送Doorbell給處理器;

servID,該值表明是服務(wù)哪個處理器的,一般為該處理器的ID。

該結(jié)構(gòu)體主要功能就是闡明FPGA需要讀寫的扇區(qū)地址在哪里,需要搬移多少扇區(qū),搬移到哪個ID的哪塊內(nèi)存中,以及完成是否需要發(fā)送Doorbell中斷通知處理器。

所述步驟二包括:RAID讀取數(shù)據(jù)流程、RAID寫取數(shù)據(jù)流程。

所述RAID讀取數(shù)據(jù)流程包括以下步驟:

步驟十一,處理器獲取一個命令結(jié)構(gòu)體,并根據(jù)需要讀取的扇區(qū)地址、扇區(qū)大小、自己的ID、需要完成終端、初始化該結(jié)構(gòu)體中sectorLowAddr、sectorHighAddr、sectorNumber、servID、和rwMode;

步驟十二,獲取需要存放數(shù)據(jù)的地址,并根據(jù)該地址值對結(jié)構(gòu)體rioLowAddr和rioHighAddr賦值;

步驟十三,使用Nwrite或Nwrite_R事務(wù)將結(jié)構(gòu)體中的數(shù)據(jù)寫入存儲結(jié)點(diǎn)命令FIFO地址中,大小為32B(或一次寫多個);

步驟十四,DMA_Ctrl模塊收到結(jié)構(gòu)體,根據(jù)塊地址及塊大小向磁盤陣列發(fā)起讀請求;

步驟十五,磁盤陣列返回數(shù)據(jù)經(jīng)SDTORD模塊校驗(yàn)檢測,返回給DMA_Ctrl模塊;

步驟十六,DMA_Ctrl模塊發(fā)起Nwrite寫事務(wù),將數(shù)據(jù)寫入遠(yuǎn)端處理器的內(nèi)存中;

步驟十七,DMA_Ctrl模塊數(shù)據(jù)傳輸完成后,向遠(yuǎn)端處理器發(fā)起Doorbell中斷請求;

步驟十八,處理器獲取到中斷后,即認(rèn)為內(nèi)存中數(shù)據(jù)即為存儲中數(shù)據(jù),激活掛起任務(wù),執(zhí)行相應(yīng)應(yīng)用。

所述RAID寫取數(shù)據(jù)流程包括以下步驟:

步驟二十一,處理器獲取一個命令結(jié)構(gòu)體,并根據(jù)需要寫入的數(shù)據(jù)內(nèi)存基地址、需要讀取的扇區(qū)地址、扇區(qū)大小、自己的ID、需要完成終端、初始化該結(jié)構(gòu)體中rioLowAddr、rioHighAddr、sectorLowAddr、sectorHighAddr、sectorNumber、servID、和rwMode;

步驟二十二,使用Nwrite(新寫入)或Nwrite_R(右新寫入)事務(wù)將結(jié)構(gòu)體中的數(shù)據(jù)寫入存儲結(jié)點(diǎn)命令FIFO地址中,大小為32B(或一次寫多個);

步驟二十三,DMA_Ctrl模塊收到結(jié)構(gòu)體,根據(jù)RapidIO地址及塊大小向處理器發(fā)起Nread讀請求;

步驟二十四,處理器節(jié)點(diǎn)返回相應(yīng)內(nèi)存數(shù)據(jù);

步驟二十五,DMA_Ctrl模塊收到部分?jǐn)?shù)據(jù)后,向磁盤陣列發(fā)起寫請求;

步驟二十六,SDtoRD模塊產(chǎn)生CRC校驗(yàn)盤數(shù)據(jù),經(jīng)SATA寫入相應(yīng)硬盤;

步驟二十七,DMA_Ctrl模塊數(shù)據(jù)傳輸完成后,向遠(yuǎn)端處理器發(fā)起Doorbell中斷請求;

步驟二十八,處理器獲取到中斷后,即認(rèn)為內(nèi)存中數(shù)據(jù)被處理,激活掛起任務(wù),釋放相應(yīng)內(nèi)存。

以上所述的具體實(shí)施例,對本發(fā)明的解決的技術(shù)問題、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1