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