王 燁,張 峰,李燕斌
(1.海軍裝備部重慶局,重慶400043;2.中國西南電子技術(shù)研究所,成都610036)
機載高速數(shù)據(jù)存儲是寬帶數(shù)傳的重要組成部分。隨著高速圖像CCD傳感器的發(fā)展,高幀頻、高分辨率CCD大量出現(xiàn),對目標進行捕獲、跟蹤、測量產(chǎn)生的數(shù)據(jù)成幾何級數(shù)增長,如何高速實時記錄這些實驗數(shù)據(jù)成為一個重要的工作。傳統(tǒng)的解決方案是采用硬盤控制器芯片,通過控制器芯片實現(xiàn)對PATA或SATA接口的高速存儲[1-3]。但由于國外技術(shù)封鎖,不能買到高性能的硬盤控制器芯片,因此可考慮自行對存儲協(xié)議進行開發(fā)。
本文通過對SATA協(xié)議研究,基于FPGA中的高速串行收發(fā)器GTX,利用VHDL語言實現(xiàn)了SATA的IP核存儲方式,采用固態(tài)硬盤(SSD)實現(xiàn)了單盤150 Mbyte/s的存儲速度,而SSD硬盤不依靠空氣動力,是以電信號作為訪問方式,提高了機載高速存儲的抗振能力,增加了存儲數(shù)據(jù)的靈活性,解決了機載及星載的海量數(shù)據(jù)存儲問題。
Seagate在 IDF Fall 2001大會上宣布了 Serial ATA 1.0標準,Serial ATA(SATA)規(guī)范正式確立。通過將數(shù)據(jù)改為串行傳輸,避免了由并行傳輸引入的串擾和同步問題。
SATA傳輸速度如表1所示。
表1 SATA各版本傳輸速度Table 1 Speed of SATA protocol
除解決了串擾和同步問題,如圖1所示,SATA還具有更少的引腳數(shù)目、更強的糾錯能力,以及支持熱插拔等優(yōu)勢。因此,SATA已經(jīng)成功取代了PATA,成為存儲領(lǐng)域中主流標準之一。
圖1 PATA及SATA接口比較Fig.1 Interface of PATA vs.SATA
GTX又稱千兆級高速串行收發(fā)器,是集成在FPGA芯片的可配置硬核資源。不同系列FPGA中GTX接口資源的名稱和性能不一樣,Xilinx公司的Virtex-5中FX 系列XC5VFX70T,含有16個GTX,并且還含有一個PowerPC440處理器。
基于FPGA實現(xiàn)SATA IP核的方案具有以下優(yōu)點:第一,具有自主知識產(chǎn)權(quán);第二,通用性好,若采用IP核的方式,不用重新繪制電路板;第三,設(shè)備升級簡單,目前是SATA第二代,即支持3.0 Gbit/s,當需要提升到SATA第三代時,只需要提高IP核的工作頻率或數(shù)據(jù)寬度即可,而選用的FPGA所含的GTX最高可支持到6.5 GHz,完全滿足SATA第三代6.0 Gbit/s的要求。
根據(jù)SATA協(xié)議的分層結(jié)構(gòu),需要在GTX上分層實現(xiàn)SATA的協(xié)議。第一步,實現(xiàn)上電自啟動對OOB信號的檢測;第二步,實現(xiàn)SATA協(xié)議鏈路層;第三步,實現(xiàn)SATA協(xié)議傳輸層協(xié)議;第四步,將上述代碼封裝為一個IP核,通過PLB總線掛載到FPGA中內(nèi)嵌PowerPC440上。關(guān)鍵技術(shù)在于OOB信號的檢測以及鏈路層協(xié)議。
OOB共包括 3個信號,即COMRESET、COMINIT和COMWAKE。GTX提供對這3個信號的支持。當GTX的屬性RX-STATUS-FMT設(shè)為SATA時,GTX中接收端提供的RXSTATUS[2∶0]信號,就可以反應(yīng)OOB狀態(tài),如表2所示。
表2 RXSTATUS信號與OOB狀態(tài)Table 1 RXSTATUS and the OOB state
OOB通信還需要用到 TXELECIDLE信號,當TXELECIDLE為高時,表示OOB通信通路空閑,可以進行OOB的信號的發(fā)送。屬性COM-BURST-VAL表示突發(fā)的 OOB信號(COMRESET、COMINIT、COMWAKE)的個數(shù),根據(jù)SATA的協(xié)議進行設(shè)置,設(shè)置為6;屬性PLL-SATA為布爾型數(shù)值,設(shè)置為0,表示SATA可以以1.5 Gbit/s或3.0Gbit/s工作。
圖2 SATA OOB初始化狀態(tài)機Fig.2 State machine of SATA OOB
工程中使用Xilinx公司提供的軟件ISE作為開發(fā)環(huán)境,利用Core generator工具生成基于GTX的SATA IP核,而生成的SATA IP核只對GTX提供最簡單的封裝,如輸入時鐘為150 MHz、線速度為3.0 Gbit/s、GTX中的數(shù)據(jù)收/發(fā)并行位寬為16 bit等,而SATA協(xié)議包括物理層、鏈路層、傳輸層、應(yīng)用層并沒有實現(xiàn)。圖2所示為SATA OOB上電啟動過程,GTX端口屬性見表2,工程中利用如圖2所示的狀態(tài)機實現(xiàn)了OOB通信。工程中可另加一個GPIO(General Purpose IO)信號,如可接一個LED指示燈,用以表示OOB通信完成。因此可認為,GTX作為SATA協(xié)議中規(guī)定的物理層,上電啟動功能已完成。
圖3 SATA IP核實現(xiàn)平臺Fig.3 The platform of SATA IP core
當鏈路層接收到此GPIO或LED信號時,鏈路層開始工作。鏈路層中主要工作就是把傳輸層的數(shù)據(jù)打包成幀結(jié)構(gòu),并把物理層返回的狀態(tài)報告給傳輸層。SATA中3個重要的編碼過程在鏈路層實現(xiàn),即8B/10B編碼、CRC校驗、Scrambling加擾碼。
SATA協(xié)議通信參考模型分4層結(jié)構(gòu),最重要的是物理層、鏈路層、傳輸層,而應(yīng)用層負責發(fā)送命令,因此,把應(yīng)用層寫成應(yīng)用程序,通過函數(shù)調(diào)用,處理與底層相關(guān)的事務(wù)。工程實現(xiàn)時,把用硬件語言VHDL/Verilog實現(xiàn)的SATA IP核做為FPGA內(nèi)嵌入式處理器PowerPC440的一個外設(shè),通過Xilinx公司提供的開發(fā)環(huán)境EDK把SATA IP核掛到PLB總線上,利用EDK對PowerPC440的外設(shè)進行定制,如圖4所示,只選擇最基本的配置,其中內(nèi)存為MT4HTF3264HY-667D3的 256 MB、64位內(nèi)存條。前面提到的GPIO或LED調(diào)試信號此時可用串口代替,串口為xps-16550控制器類型,由于所選用的FPGA有多達16個GTX,因此理論上可支持多達16個SATA硬盤。
圖4 SATA IP核做為PowerPC440外設(shè)Fig.4 SATA IP as a peripheral of PowerPC440
對基于GTX實現(xiàn)的SAT A控制器存儲方式速度進行測試,測試條件如下:PC機操作系統(tǒng)為Windows XP SP2,CPU為Pentium(R)Dual-Core ES520@2.5GHz,內(nèi)存2GB,ISE版本10.1.03,EDK版本10.1.03,硬盤為ST3160811AS,7200.10;ST3320418AS,7200.10;ST3320613AS,7200.12,測試類型為寫硬盤。
圖5為機械盤測試結(jié)果,ST3160811AS為7 200轉(zhuǎn)的普通硬盤,其寫速度在70 Mbyte/s左右,而ST3320418AS為Seagate推出的新一代的硬盤,其寫速度在100 Mbyte/s,與硬盤標稱的速度相當,即證明了基于FPGA實現(xiàn)SATA IP核的可行性。
圖5 SATA IP核寫速度Fig.5 The writing speed of SATA IP core
實驗中,采用Intel的SSD固態(tài)盤Intel256G180SLC,其理論標稱速度為寫180Mbyte/s,實際測到了150 Mbyte/s。其傳輸速度與抗振性能已在寬帶某項目中得到驗證,滿足機載高速存儲需求。
在執(zhí)行機載任務(wù)中實現(xiàn)高速數(shù)據(jù)存儲時,通常需要考慮任務(wù)載荷的重量及體積,選擇基于FPGA的高速串行收發(fā)器GTX實現(xiàn)SATA的IP核方式,減少了對硬盤ASIC芯片的依賴,具有完全的自主知識產(chǎn)權(quán);選擇固態(tài)SSD硬盤,不依靠空氣動力,是以電信號作為訪問方式,提高了機載高速存儲的抗振能力,增加了存儲數(shù)據(jù)的靈活性,解決了機載及星載的海量數(shù)據(jù)存儲問題。因此,利用FPGA中的高速串行收發(fā)器GTX實現(xiàn)SATA的IP核存儲方式是機載高速存儲的一種有效嘗試。如何利用GTX實現(xiàn)SATA的IP核,組成Raid0存儲方式,是課題下一步的工作。
[1] 李志鵬.連續(xù)數(shù)據(jù)記錄系統(tǒng)中IDE數(shù)據(jù)接口的實現(xiàn)[J].無線電工程,2010,40(2):48-50.LI Zhi-peng.Implementation of IDE Interface in Sustained Data Recording System[J].Radio Engineering,2010,40(2):48-50.(in Chinese)
[2] 趙濤.基于SCSI總線的高速數(shù)據(jù)存儲系統(tǒng)軟件設(shè)計[J].現(xiàn)代電子技術(shù),2008(14):59-62.ZHAO Tao.Software Design of High Speed Data Storage System Based on SCSI Bus[J].Modern Electronic Technology,2008(14):59-62.(in Chinese)
[3] ZHANG Feng,WU Qin-zhang,REN Guo-qiang.A Highspeed Method of CCD Image Data Storage System[C]//Proceedings of 2010 Second International Conference on Advanced Computer Control.Shenyang:IEEE,2010:45-48.