朱 穎,楊先博,杜智遠(yuǎn),余衛(wèi)國
(1北京遙測技術(shù)研究所 北京 100076 2中國人民解放軍92493部隊 葫蘆島 125001)
以某雷達(dá)偵收系統(tǒng)為例,其瞬時信號帶寬達(dá)到1.2GHz,要求單臺記錄設(shè)備的連續(xù)存儲速率為12Gb/s?,F(xiàn)有的記錄設(shè)備很難滿足這樣的要求,主要原因如下:①傳統(tǒng)的基于PCI總線和PCIX總線的記錄設(shè)備無法達(dá)到這么高的傳輸帶寬;②固態(tài)硬盤因其高讀寫速率和穩(wěn)定的工作性能已經(jīng)逐漸取代機(jī)械硬盤作為軍用存儲系統(tǒng)的首選,但我所及其他院、所[4,5]之前使用IDE-SATA轉(zhuǎn)接芯片替代SATA(Serial Advanced Technology Attachment)控制器研發(fā)的存儲系統(tǒng)因轉(zhuǎn)換芯片效率低下,浪費(fèi)了大部分存儲帶寬;③傳統(tǒng)并行傳輸總線傳輸速率低且誤碼率高,它已經(jīng)不能適用于高速記錄設(shè)備。
本文記錄設(shè)備采用高速差分串行總線實現(xiàn)高速數(shù)據(jù)傳輸,采用自研的SATA2.0硬盤控制器實現(xiàn)固態(tài)硬盤高速讀寫,嵌入式文件系統(tǒng)及RAID(Redundant Arrays of Independent Disks)盤陣管理策略保證了數(shù)據(jù)的易讀取性和安全性。經(jīng)過測試,該記錄設(shè)備無論在數(shù)據(jù)傳輸帶寬、存儲帶寬還是存儲容量上都超越了以往傳統(tǒng)的地面數(shù)據(jù)記錄設(shè)備。
本文記錄設(shè)備的系統(tǒng)結(jié)構(gòu)如圖1所示。
記錄設(shè)備采用高速差分串行總線與高速數(shù)據(jù)采集設(shè)備進(jìn)行連接,通過串行總線完成數(shù)據(jù)接收和回放的功能。記錄設(shè)備內(nèi)部采用高速數(shù)據(jù)緩沖分發(fā)策略實現(xiàn)數(shù)據(jù)緩存,并支持RAID硬盤陣列管理。設(shè)備內(nèi)部集成15個自研的SATA2.0硬盤控制器,可控制最多15塊硬盤組成的硬盤陣列。此外,系統(tǒng)采用FPGA內(nèi)嵌CPU軟核實現(xiàn)自研的嵌入式文件系統(tǒng)。以上功能都是由一片Altera FPGA芯片實現(xiàn)的,這使得系統(tǒng)具有較高的集成度和可移植性。
圖1 高速數(shù)據(jù)記錄設(shè)備系統(tǒng)結(jié)構(gòu)Fig.1 High-speed data recorder system structure
本設(shè)計中采用Altera公司Stratix IV系列FPGA EP4SGX180,該款FPGA共集成24對高速收發(fā)器[6]。外部數(shù)據(jù)接收和發(fā)送采用4對高速差分串行總線,對應(yīng)接入FPGA中4個高速收發(fā)器模塊。本設(shè)計采用自定義的簡單協(xié)議傳輸高速并行數(shù)據(jù),降低了實現(xiàn)難度。
本設(shè)計外部數(shù)據(jù)接收和發(fā)送并行端數(shù)據(jù)總線位寬為128bit,將其平均分配給4個高速收發(fā)器進(jìn)行傳輸,每個收發(fā)器并行端數(shù)據(jù)位寬為32bit。單個收發(fā)器串行端速率設(shè)置為4Gb/s。本設(shè)計中采用自定義傳輸協(xié)議,在收發(fā)器的協(xié)議設(shè)置上選擇basic模式。為了保證數(shù)據(jù)可靠傳輸,同時也為了實現(xiàn)自定義協(xié)議,選擇8b/10b編解碼傳輸。自定義協(xié)議設(shè)計原理如圖2所示。
組織體系不是組織結(jié)構(gòu),其實是組織能力平臺,比如像華為的人力資源體系、IPD、I S體系等。為什么不叫組織結(jié)構(gòu)而叫管理體系平臺呢?因為戰(zhàn)略運(yùn)營體系、干部管理體系、審計體系、IPD研發(fā)體系、CRM客戶關(guān)系管理體系、ISC供應(yīng)鏈體系,等等,這些體系形成了一個組織的營盤,形成了一個依靠人但是不會過于依賴人的組織營盤。
圖2 高速數(shù)據(jù)傳輸自定義協(xié)議原理Fig.2 High-speed data transceiver custom protocol principle
本設(shè)計利用高速串行總線收發(fā)的內(nèi)容包括固定幀長的128位并行數(shù)據(jù)(data)和數(shù)據(jù)使能信號(data_valid)。為了準(zhǔn)確傳遞并恢復(fù)使能信號,在數(shù)據(jù)發(fā)送端將無效數(shù)據(jù)區(qū)填充為收發(fā)器IP核中設(shè)置的隊列樣本字(word alignment pattern)K28.5(BCh)。在數(shù)據(jù)發(fā)送端通過發(fā)送控制使能信號(tx_ctrlenable)標(biāo)識有效數(shù)據(jù),在數(shù)據(jù)接收端通過接收控制檢測信號(rx_ctrldetect)恢復(fù)出數(shù)據(jù)使能信號。
本設(shè)計數(shù)據(jù)存儲基于高速硬盤陣列,硬盤讀寫速率并非一成不變,在讀寫過程中存在速率的波峰波谷。當(dāng)多個硬盤組成陣列時,這種速率不均衡的現(xiàn)象會更加明顯,甚至?xí)霈F(xiàn)硬盤陣列整體讀寫速率突降的情況。為了平滑硬盤陣列的速率突變,本設(shè)計采用4組DDR3芯片作為高速數(shù)據(jù)緩沖區(qū)。其中兩組作為記錄過程數(shù)據(jù)緩沖,兩組作為回放過程數(shù)據(jù)緩沖,均采用乒乓讀寫策略。
本設(shè)計硬盤陣列中包含15塊硬盤,一旦有硬盤發(fā)生故障將會導(dǎo)致整個存儲數(shù)據(jù)的丟失。為提高整個硬盤陣列的可靠性,本設(shè)計采用基于雙硬盤冗余的RAID陣列管理技術(shù),可在陣列硬盤損壞的情況下將數(shù)據(jù)恢復(fù)出來,其原理如圖3所示。
圖3 RAID數(shù)據(jù)管理模塊結(jié)構(gòu)Fig.3 RAID module structure
在記錄數(shù)據(jù)時,前端記錄數(shù)據(jù)包寫入RAID模塊,先經(jīng)過冗余數(shù)據(jù)生成模塊生成RAID條帶和冗余信息,經(jīng)過RAID寫緩沖后,進(jìn)入盤陣進(jìn)行存儲。
在回放數(shù)據(jù)時,數(shù)據(jù)首先回放至RAID讀緩沖區(qū)。如果硬盤陣列工作正常,則直接將RAID讀緩沖的數(shù)據(jù)回放出去。如果硬盤陣列中有硬盤發(fā)生故障,存在盤陣降級,那么將其余健康盤的數(shù)據(jù)連同RAID冗余數(shù)據(jù)送入數(shù)據(jù)恢復(fù)校驗?zāi)K,恢復(fù)出原始數(shù)據(jù)進(jìn)行回放。
待故障硬盤恢復(fù)或者更換新硬盤后,可以將故障盤丟失的數(shù)據(jù)恢復(fù)出來,通過RAID寫緩沖寫入原硬盤或替換硬盤中,完成數(shù)據(jù)重建。
本設(shè)計RAID模式支持RAID5和RAID6兩種。如果采用RAID5模式,允許一塊硬盤失效;如果采用RAID6模式,允許兩塊硬盤失效。
為了提高數(shù)據(jù)存儲帶寬及硬盤讀寫效率,本設(shè)計采用自研的SATA主機(jī)端控制器,其控制、數(shù)據(jù)流結(jié)構(gòu)如圖4所示。
圖4 SATA硬盤控制器控制及數(shù)據(jù)結(jié)構(gòu)Fig.4 SATA adapter control and data structure
該控制器實現(xiàn)SATA協(xié)議傳輸層、鏈路層、物理層和應(yīng)用層功能,目前能夠支持到SATA2.0版本[7],讀寫速率最高支持3Gb/s。本設(shè)計硬盤陣列控制采用一個控制器對應(yīng)一個硬盤的模式,同時采用FPGA嵌入式軟核NiosII完成盤陣讀寫控制及嵌入式文件系統(tǒng)功能,具有集成度高、可擴(kuò)展性好的優(yōu)點(diǎn)。
2.3.1 SATA控制器物理層設(shè)計
本設(shè)計利用Altera FPGA集成的高速收發(fā)器實現(xiàn)SATA協(xié)議物理層要求的串并轉(zhuǎn)換、8b/10b編碼、串行數(shù)據(jù)發(fā)送和接收功能。物理層設(shè)計的結(jié)構(gòu)如圖5所示。
圖5 SATA物理層設(shè)計結(jié)構(gòu)Fig.5 SATA physical layer design
圖5中高速收發(fā)器主要實現(xiàn)信號串并轉(zhuǎn)換、發(fā)送、接收以及8b/10b編碼功能。時鐘管理模塊主要提供收發(fā)器參考時鐘和各模塊控制時鐘,并根據(jù)協(xié)商結(jié)果進(jìn)行時鐘頻率調(diào)節(jié)。速率協(xié)商模塊實現(xiàn)SATA速率協(xié)商功能,鏈路初始化狀態(tài)機(jī)實現(xiàn)SATA協(xié)議要求的鏈路初始化及速率協(xié)商控制功能。
2.3.2 SATA控制器鏈路層設(shè)計
SATA控制器鏈路層主要負(fù)責(zé)發(fā)送、接收命令幀和數(shù)據(jù)幀。當(dāng)接收到傳輸層的數(shù)據(jù)時,鏈路層計算數(shù)據(jù)的CRC校驗,進(jìn)行編碼、擾碼,在幀數(shù)據(jù)中添加幀頭、幀尾和校驗等信息,并將信息幀發(fā)送到物理層,同時上報發(fā)送成功或錯誤信息;當(dāng)接收到物理層的數(shù)據(jù)時,鏈路層移除幀頭、幀尾和校驗等信息,對數(shù)據(jù)進(jìn)行解碼、解擾、計算CRC,對比CRC的準(zhǔn)確性,并將信息幀發(fā)送到傳輸層,同時上報發(fā)送成功或錯誤信息。鏈路層并不關(guān)心命令幀和數(shù)據(jù)幀的具體內(nèi)容。鏈路層設(shè)計結(jié)構(gòu)如圖6所示。
圖6 SATA鏈路層設(shè)計結(jié)構(gòu)Fig.6 SATA link layer design
2.3.3 SATA控制器傳輸層設(shè)計
SATA控制器的傳輸層主要負(fù)責(zé)組建命令和數(shù)據(jù)FIS(Frame Information Structure),它根據(jù)應(yīng)用層發(fā)出的命令和參數(shù)產(chǎn)生不同類型的FIS傳送給鏈路層,同時提取出鏈路層上傳命令幀的有用信息,更新應(yīng)用層映射寄存器或ATA寄存器的內(nèi)容。傳輸層設(shè)計結(jié)構(gòu)如圖7所示。
圖7 SATA傳輸層設(shè)計結(jié)構(gòu)Fig.7 SATA transport layer design
2.3.4 SATA控制器應(yīng)用層設(shè)計
SATA應(yīng)用層負(fù)責(zé)解析所有ATA命令,并根據(jù)解析結(jié)果執(zhí)行相應(yīng)的操作。該層直接面對控制用戶,用戶通過讀寫寄存器等簡單操作就可以對硬盤執(zhí)行讀寫控制。在本設(shè)計中控制用戶是FPGA嵌入式CPU軟核NiosII,所以將應(yīng)用層的映射寄存器接口設(shè)計為Avalon總線接口。SATA應(yīng)用層設(shè)計結(jié)構(gòu)如圖8所示。
圖8 SATA應(yīng)用層設(shè)計結(jié)構(gòu)Fig.8 SATA application layer design
其中應(yīng)用層控制狀態(tài)機(jī)完成應(yīng)用層邏輯控制功能,寄存器列表模塊完成映射寄存器和硬盤ATA寄存器的實現(xiàn)和約束,Avalon總線接口模塊完成控制用戶NiosII與寄存器列表之間的接口邏輯控制。
由于本設(shè)計是完全基于嵌入式系統(tǒng)開發(fā)的高集成度存儲系統(tǒng),所以在文件系統(tǒng)的選擇上采用FPGA嵌入式CPU軟核實現(xiàn)的嵌入式文件系統(tǒng)。該文件系統(tǒng)的特點(diǎn)有:①采用鏈?zhǔn)浇Y(jié)構(gòu)存儲數(shù)據(jù),支持?jǐn)?shù)據(jù)文件的隨機(jī)存??;②在管理文件系統(tǒng)的同時實現(xiàn)RAID控制管理,方便實現(xiàn)RAID降級及重建等功能;③支持異常掉電文件保護(hù)和誤刪除文件恢復(fù)等文件保護(hù)功能;④占用內(nèi)存少,非常適合便攜式等嵌入式系統(tǒng)的需求。
該文件系統(tǒng)的設(shè)計詳見參考文獻(xiàn)[8],此處不再贅述。
對系統(tǒng)高速數(shù)據(jù)傳輸能力進(jìn)行比較測試,單通道數(shù)據(jù)傳輸達(dá)到5Gb/s。結(jié)果表明,自定義高速收發(fā)器傳輸協(xié)議不僅設(shè)計簡單,易于實現(xiàn),而且傳輸效率較高。
在SATA硬盤控制器的測試過程中,選取美光、浦科特、建興、東芝等廠商的機(jī)械硬盤和固態(tài)硬盤進(jìn)行測試,測試結(jié)果如表1所示。
表1 硬盤控制器性能測試Table1 Hard disk controller performance test
除東芝500GB是機(jī)械盤之外,其他硬盤都為固態(tài)盤。由表1可見,固態(tài)盤的讀寫速率都達(dá)到了200MB/s以上。
本文系統(tǒng)最多支持15塊硬盤組成硬盤陣列,RAID管理模式可設(shè)置為RAID5和RAID6兩種。如果使用單盤512GB的硬盤,RAID5管理,則存儲容量為7TB。隨著選用硬盤單盤容量的增加,系統(tǒng)的整體存儲容量還有很大的提升空間。
根據(jù)應(yīng)用需求,本文系統(tǒng)的應(yīng)用存儲帶寬為12Gb/s,實測存儲帶寬亦在12Gb/s以上。
本文給出一款高速大容量數(shù)據(jù)記錄設(shè)備的設(shè)計和實現(xiàn)。經(jīng)測試,該系統(tǒng)存儲帶寬可達(dá)12Gb/s以上,存儲容量在7TB以上。隨著航天測控大數(shù)據(jù)時代的到來,高速大容量數(shù)據(jù)存儲系統(tǒng)的應(yīng)用將會越來越廣泛。
[1]黃善勇.超寬帶雷達(dá)數(shù)字偵收中高速數(shù)據(jù)存儲與傳輸實現(xiàn)方法研究[D].成都:電子科技大學(xué)碩士論文,2011.Huang Shanyong.Research of High-speed Data Storage and Transmission Realization Method in Ultra-wideband Radar Digital Reconnaissance[D].Cheng Du:Master Thesis University of Electronic Science and Technology of China,2011.
[2]梁正亮.深空探測應(yīng)用中的高速數(shù)據(jù)存儲技術(shù)研究[D].西安:西安電子科技大學(xué)碩士論文,2012.Liang Zhengliang.High Speed Data Storage Technology Research in the Application of Deep Space Exploration[D].Xi'an:Master Thesis XiDian University,2012.
[3]林錢強(qiáng),唐鵬飛,陳曾平.寬帶雷達(dá)中頻直接采樣與高速存儲系統(tǒng)設(shè)計與實現(xiàn)[J].雷達(dá)學(xué)報,2012,1(3):283~290.Lin Qianqiang,Tang Pengfei,Chen Zengping.Design and Implementation of Direct IF Sampling and High-speed Storage System forWideband Radar[J].Journal of Radars,2012,1(3):283 ~290.
[4]孫海波,王曉斌,李雅梅.基于SATA接口固態(tài)硬盤的高速存儲系統(tǒng)設(shè)計[J].遙測遙控,2014,35(2):48~52.Sun Haibo,Wang Xiaobin,Li Yamei.Design of High-speed Storage System Based on SATA Interface Solid State Hard Disk[J].Journal of Telemetry,Tracking and Command,2014,35(2):48 ~52.
[5]張志煒,呂幼新.基于SATA硬盤和FPGA的高速數(shù)據(jù)采集存儲系統(tǒng)[J].電子設(shè)計工程,2011,19(21):166~169.Zhang Zhiwei,Lü Youxin.High Speed Data Acquisition and Storage System Based on SATA Hard Disk and FPGA[J].Electronic Design Engineering,2011,19(21):166 ~169.
[6]Altera Corporation.Stratix IV Device Handbook:Volume 1[M].SIV5V1-4.1.California of America:Altera Corporation,2010.
[7]Serial ATA International Organization.Serial ATA International Organization:Serial ATA Revision 3.0[S].Oregon of America:Serial ATA International Organization,2009.
[8]蘇 麗,朱 穎,余衛(wèi)國,楊先博.一種嵌入式文件系統(tǒng)的設(shè)計與實現(xiàn)[J].遙測遙控,2010,31(4):50~55.Su Li,Zhu Ying,Yu Weiguo,Yang Xianbo.Design and Realization of an Embedded File System[J].Journal of Telemetry,Tracking and Command,2010,31(4):50 ~55.