一種基于fpga的直接多塊硬盤高速并行讀寫方法
【專利摘要】本發(fā)明涉及一種基于FPGA的直接多塊硬盤高速并行讀寫的實(shí)現(xiàn)方法。實(shí)現(xiàn)過程是:在FPGA中首先實(shí)現(xiàn)高性能SATA硬盤控制器,并在此基礎(chǔ)上構(gòu)建硬盤陣列讀寫控制器,對SATA硬盤進(jìn)行并行存取,從而實(shí)現(xiàn)數(shù)據(jù)采集的高速海量吞吐功能,用于對高速連續(xù)采集數(shù)據(jù)的實(shí)時采集、分析處理和記錄。同時,本實(shí)現(xiàn)方法還通過使用基于FPGA的高速DDR2緩存控制技術(shù)和基于光纖的采集數(shù)據(jù)流通用接口技術(shù)的進(jìn)行補(bǔ)充,充分保證了采集數(shù)據(jù)的可靠性和對外接口的通用性,有力的保證了高速實(shí)時連續(xù)數(shù)據(jù)采集的工程化實(shí)現(xiàn)和使用的便利性。
【專利說明】—種基于FPGA的直接多塊硬盤高速并行讀寫方法
【技術(shù)領(lǐng)域】
[0001]采用基于FPGA的直接多塊硬盤高速并行讀寫方法,可以實(shí)現(xiàn)數(shù)據(jù)的海量、高速、實(shí)時、采集存取和分析。
【背景技術(shù)】
[0002]高精度、海量、實(shí)時的數(shù)據(jù)采集方法一直是技術(shù)難題。目前常用的技術(shù)有基于計(jì)算機(jī)(即利用計(jì)算機(jī)提供的高速總線進(jìn)行數(shù)據(jù)的采集處理技術(shù))、基于FPGA和大容量動態(tài)內(nèi)存的高速數(shù)據(jù)采集處理技術(shù)、基于FLASH芯片的高速數(shù)據(jù)采集處理技術(shù),隨著新型設(shè)備信號帶寬的增大,原有的這些采集處理技術(shù)受限于總線傳輸速度或存儲容量的限制很難滿足新體制大信號帶寬設(shè)備測試和算法研究的需求。
【發(fā)明內(nèi)容】
[0003]本發(fā)明是以日益發(fā)展的高速總線技術(shù)和高性能FPGA、高速SATA硬盤硬件為基礎(chǔ),突破采集設(shè)備的數(shù)據(jù)采集和處理性能瓶頸。以SATA硬盤作為大容量存儲載體,多塊硬盤共同構(gòu)成陣列進(jìn)行并行讀寫來實(shí)現(xiàn)高速數(shù)據(jù)傳輸和存儲;以FPGA實(shí)現(xiàn)磁盤陣列控制器來實(shí)現(xiàn)硬件對硬盤陣列的直接讀寫,從而繞過計(jì)算機(jī)操作系統(tǒng)的開銷來實(shí)現(xiàn)高效硬盤陣列控制;并通過基于FPGA硬件的DDR2內(nèi)存的FPGA管理技術(shù)和基于光纖的通用接口技術(shù)的補(bǔ)充,可以在本發(fā)明的基礎(chǔ)上迅速構(gòu)建高速實(shí)時大容量數(shù)據(jù)采集和分析處理設(shè)備,從而實(shí)現(xiàn)采集數(shù)據(jù)流的實(shí)時高速海量采集和分析處理,為后續(xù)信號處理和數(shù)據(jù)處理的前期算法仿真和后期算法改進(jìn)提供真實(shí)有效的試驗(yàn)數(shù)據(jù),滿足新體制大寬帶設(shè)備研發(fā)和各種外場試驗(yàn)的需求。
[0004]本發(fā)明在基于高性能FPGA的硬件平臺上,采用VHDL語言編程,實(shí)現(xiàn)了基于FPGA的SATA硬盤控制器、基于FPGA的磁盤陣列控制器、基于FPGA的DDR2高速緩存管理控制器和基于FPGA的高速光纖接口通信技術(shù),以上技術(shù)通過組合可以構(gòu)成用于工程實(shí)際高速數(shù)據(jù)采集處理設(shè)備的核心控制器。
[0005]本發(fā)明與現(xiàn)有技術(shù)相比,其顯著優(yōu)點(diǎn)為:基于FPGA硬件控制技術(shù)可以實(shí)現(xiàn)并行實(shí)時對數(shù)據(jù)進(jìn)行高速實(shí)時采集和處理;基于SATA硬盤陣列的存儲介質(zhì)可實(shí)現(xiàn)采集數(shù)據(jù)的海量高速存儲;基于DDR2的高速緩存管理可以充分保證采集數(shù)據(jù)的穩(wěn)定可靠;高速光纖接口技術(shù)可以很方便的實(shí)現(xiàn)與被采集設(shè)備直接物理對接。本發(fā)明硬件集成度高且其工程實(shí)現(xiàn)簡單。該方法具有實(shí)時性好、可靠性高的特點(diǎn)。
[0006]下面結(jié)合附圖對本發(fā)明作進(jìn)一步詳細(xì)描述。
【專利附圖】
【附圖說明】
[0007]附圖1是本發(fā)明的邏輯組成框圖。
[0008]附圖2是本發(fā)明的基于FPGA的SATA硬盤陣列讀寫控制器邏輯組成框圖。
[0009]附圖3是本發(fā)明的基于FPGA的SATA硬盤陣列采集和回讀時數(shù)據(jù)流分配示意圖。[0010]附圖4是本發(fā)明的基于FPGA的DDR2緩存控制器邏輯組成框圖。
[0011]附圖5是本發(fā)明的基于FPGA的光纖接口基本協(xié)議簡表。
【具體實(shí)施方式】[0012]本發(fā)明具體實(shí)施步驟為,參見附圖1:
①在FPGA中構(gòu)建SATA磁盤陣列讀寫控制,其硬件組成邏輯,如附圖2所示,分層實(shí)現(xiàn)SATA協(xié)議,實(shí)現(xiàn)SATA硬盤的管理,同時優(yōu)化與被采集設(shè)備的數(shù)據(jù)接口,實(shí)現(xiàn)基于FPGA自動直接硬盤DMA讀寫控制,從而被采集設(shè)備數(shù)據(jù)流的實(shí)時采集和分析;
②在FPGA中構(gòu)建高速高效磁盤陣列控制器,針對被采集設(shè)備的實(shí)時和連續(xù)特點(diǎn),對磁盤陣列控制器進(jìn)行流盤速度和存儲容量的優(yōu)化,以滿足高速高精度海量存儲需求,其讀寫組成邏輯,如附圖3所示(以4硬盤陣列控制器為例),采集時,被采集設(shè)備數(shù)據(jù)流首先通過FIFO轉(zhuǎn)換為128位,送入到數(shù)據(jù)分配邏輯,數(shù)據(jù)分配邏輯將128位采集數(shù)據(jù)流讀出,每讀出128位,平均分成4個32位,即127-96,95-64,63-32,31-0,同時送給4個硬盤控制器的傳輸層的采集FIFO中。當(dāng)數(shù)據(jù)從四個硬盤中導(dǎo)出時,數(shù)據(jù)合并邏輯將從傳輸層回放FIFO中的數(shù)據(jù)讀出,4個32位再按分配的順序重新組合成128位,然后再送給回放數(shù)據(jù)流的FIFO中;
③實(shí)現(xiàn)基于FPGA的DDR2的高速緩存控制器,考慮到在采集系統(tǒng)中,由于被采集設(shè)備數(shù)據(jù)流是恒定不變的。如100MSPS/16Bit的A/D其數(shù)據(jù)流為200MBytes/s恒定不變,而對于硬盤這類的存儲設(shè)備是基于突發(fā)性數(shù)據(jù)傳輸?shù)?,其?shù)據(jù)傳輸速度是不均勻的,時快時慢。為了讓恒定的采集數(shù)據(jù)流能夠不丟失的存入到硬盤中,本發(fā)明中采用DDR2高速緩存控制器來實(shí)現(xiàn)速度匹配,其邏輯框圖如附圖4所示,可以將DDR2存儲器作為超大容量FIFO的來緩存被采集設(shè)備數(shù)據(jù)流,將DDR2設(shè)計(jì)成一個FIF0,本發(fā)明采用時分復(fù)用的方法,即采用狀態(tài)機(jī)的方式將DDR2控制器的地址命令信號在時鐘的節(jié)拍下進(jìn)行復(fù)用,從而實(shí)現(xiàn)一個同步FIF0,完成連續(xù)恒定速率的高速數(shù)據(jù)緩存;
④實(shí)現(xiàn)基于FPGA的對外的光纖接口技術(shù),本發(fā)明為了提高光纖中數(shù)據(jù)利用率,減少無效數(shù)據(jù)的傳送,對協(xié)議進(jìn)行優(yōu)化和精簡,即基本協(xié)議如附圖5所示,該協(xié)議系統(tǒng)資源占用少,簡單可靠,通用性高。
[0013]該方法在基于FPGA硬件的信號處理平臺上可實(shí)現(xiàn)采集數(shù)據(jù)實(shí)時處理。整個系統(tǒng)的功能采用VHDL語言編寫,最終由單片F(xiàn)PGA完成。VHDL程序采用自頂向下的樹型結(jié)構(gòu)形式,系統(tǒng)集成度高。整個系統(tǒng)可實(shí)現(xiàn)4~16塊硬盤陣列的控制,存儲容量達(dá)到4~16ΤΒ,完成4GBytes DDR2緩存的管理,實(shí)現(xiàn)最大lGBytes/s的采集處理速度。
[0014]基于FPGA的直接多塊硬盤高速并行讀寫技術(shù)及實(shí)現(xiàn)方法已經(jīng)成功應(yīng)用某型回波實(shí)時采集回放系統(tǒng),該方法能夠?qū)崿F(xiàn)200MHz帶寬的寬帶信號的采集處理和存儲。
【權(quán)利要求】
1.一種基于FPGA的直接多塊硬盤高速并行讀寫方法,其特征在于:在FPGA (2)內(nèi)實(shí)現(xiàn)磁盤陣列讀寫控制器(2-2),并通過Rocket IO GTP (2_1)接口與SATA硬盤(I)進(jìn)行物理連接,完成FPGA (2)同時4塊以上SATA硬盤(I)的讀寫控制;在FPGA (2)內(nèi)實(shí)現(xiàn)DDR2緩存控制器(2-3),并將其與DDR2 (3)進(jìn)行物理連接,完成FPGA (2)對大容量DDR2緩存控制,進(jìn)而完成輸入的采集數(shù)據(jù)流的分流控制;將FPGA (2)的Rocket IO GTP (2_1)通過光纖與被采集設(shè)備接口物理連接,完成采集數(shù)據(jù)流到信號采集設(shè)備的傳輸。
2.—種根據(jù)權(quán)利要求1所述的基于FPGA的直接多塊硬盤高速并行讀寫方法,其特征在于:將FPGA (2)的RocketIO GTP (2_1)與SATA硬盤(1)輸入輸出端口進(jìn)行物理連接,使用VHDL對FPGA (2)進(jìn)行硬件編程控制RocketIO GTP (2_1)同時對4塊以上SATA硬盤(1)進(jìn)行讀寫,從而在FPGA (2)上實(shí)現(xiàn)磁盤陣列讀寫控制器(2-2)。
3.—種根據(jù)權(quán)利要求1所述的基于FPGA的直接多塊硬盤高速并行讀寫方法,其特征在于:采集數(shù)據(jù)流進(jìn)入FPGA (2)后,先進(jìn)入FIFO進(jìn)行緩存和位寬轉(zhuǎn)換;再經(jīng)過數(shù)據(jù)分配邏輯平均分成多個并行數(shù)據(jù)流;每個數(shù)據(jù)流進(jìn)入磁盤陣列讀寫控制器(2-2),進(jìn)而從FPGA (2)輸出寫入相對應(yīng)的一個SATA硬盤(1),最終實(shí)現(xiàn)FPGA (2)將采集數(shù)據(jù)流的寫入SATA硬盤(1)陣列中。
4.一種根據(jù)權(quán)利要求1所述的基于FPGA的直接多塊硬盤高速并行讀寫方法,其特征在于:采用時分復(fù)用的方法,即采用狀態(tài)機(jī)的方式將DDR2緩存控制器(2-3)的地址命令信號在時鐘的節(jié)拍下進(jìn)行復(fù)用,從而實(shí)現(xiàn)FPGA (2)對大容量DDR2 (3)緩存控制。
5.—種根據(jù)權(quán)利要求1所述的基于FPGA的直接多塊硬盤高速并行讀寫方法,其特征在于:可實(shí)現(xiàn)4~16塊硬盤陣列的控制,存儲容量達(dá)到1-16ΤΒ,完成4GBytes DDR2緩存的管理,實(shí)現(xiàn)最大lGBytes/s的采集處理速度。
【文檔編號】G06F13/38GK103593315SQ201310586432
【公開日】2014年2月19日 申請日期:2013年11月20日 優(yōu)先權(quán)日:2013年11月20日
【發(fā)明者】張信民, 呂衛(wèi)祥 申請人:中國船舶重工集團(tuán)公司第七二四研究所