文獻標(biāo)識碼: A
文章編號: 0258-7998(2014)09-0072-03
相控陣?yán)走_是一種多功能、高性能的雷達,具有多功能、多目標(biāo)、遠距離、高數(shù)據(jù)率、高可靠性及自適應(yīng)能力強等優(yōu)點[1]。隨著計算機和集成電路等相關(guān)技術(shù)的發(fā)展,相控陣?yán)走_在地基、?;?、空基以及天基得到了廣泛的應(yīng)用。隨之而來的是,數(shù)據(jù)記錄的速率和容量也需要相應(yīng)提升。
而近年來存儲技術(shù)發(fā)展得很快,自2001年SATA1.0標(biāo)準(zhǔn)提出,如今SATA接口協(xié)議第三代已經(jīng)達到了6.0 Gb/s[2]。新一代的SSD(Solid State Disk)基于Nand Flash存儲技術(shù)提供了超過了200 MB/s傳輸帶寬以及更低的功耗[3]。這些都為相控陣?yán)走_的數(shù)據(jù)高速大容量存儲提供了支持。本文針對傳統(tǒng)記錄回放系統(tǒng)的兩種架構(gòu),設(shè)計并實現(xiàn)了一種通用的記錄回放系統(tǒng),由FPGA控制SATA IP核實現(xiàn)相控陣?yán)走_天線陣面數(shù)據(jù)的高速存儲。
1 問題的提出
傳統(tǒng)典型的高速數(shù)據(jù)記錄回放系統(tǒng)一般采用兩種架構(gòu),即PCIE總線和自定義Flash存儲陣列架構(gòu)。PCIE總線架構(gòu)框圖如圖1所示。
CPU模塊通過PCIE總線接收采集模塊的數(shù)據(jù)放入內(nèi)存,然后再經(jīng)由PCIE總線將內(nèi)存中的數(shù)據(jù)送給RAID控制模塊,完成一次記錄操作。在操作過程中,數(shù)據(jù)流兩次經(jīng)過內(nèi)存,采集模塊和RAID控制模塊共享PCIE總線,兩個模塊分時通過PCIE總線傳輸數(shù)據(jù)。這種架構(gòu)的記錄回放系統(tǒng)有以下缺陷:(1)PCIE對于系統(tǒng)來說,只用到了50%效率;(2)系統(tǒng)記錄回放速度受限于PCIE總線的傳輸速度。
自定義Flash存儲陣列架構(gòu)框圖如圖2所示。該系統(tǒng)為一個獨立模塊,把Flash芯片分成多個組,通過擴展Flash的位寬、深度提高記錄速度和存儲容量。FPGA將數(shù)據(jù)通過Flash的數(shù)據(jù)線、地址線存到Flash陣列里。這種架構(gòu)的記錄回放系統(tǒng)有以下缺陷:(1)存儲接口不是基于標(biāo)準(zhǔn)的傳輸存儲協(xié)議,而且受限于Flash芯片類型,使得系統(tǒng)的通用性與擴展性受限;(2)一般自定義接口規(guī)范用于滿足某種特定雷達的指標(biāo),一旦指標(biāo)發(fā)生變化,或者不能滿足雷達系統(tǒng)性能提升的要求,硬件就需要重新設(shè)計,造成一定的資源浪費。
2 問題的解決思路
根據(jù)以上的對比,可以將兩者優(yōu)點結(jié)合起來,提出一種新的記錄回放系統(tǒng)結(jié)構(gòu)。最直接的方式就是在自定義Flash存儲陣列系統(tǒng)中,選用標(biāo)準(zhǔn)的存儲協(xié)議接口代替自定義接口。目前,主流的存儲協(xié)議有IDE、SCSI、SATA等。IDE和SCSI屬于并行接口,在高速的數(shù)據(jù)傳輸存儲中,并行傳輸?shù)拇a間串?dāng)_等問題會使誤碼率大大提高,而串行接口協(xié)議就很好地解決了這些問題,該協(xié)議已經(jīng)相對成熟;SATA二代支持3 Gb/s的傳輸帶寬,并且其結(jié)構(gòu)簡單,易于開發(fā)[2]。圖3為SATA陣列記錄回放系統(tǒng)框圖。
本設(shè)計中,在FPGA內(nèi)部實現(xiàn)SATA硬盤的讀寫操作。為了提高記錄回放速度,在FPGA里還實現(xiàn)了RAID0功能,對多個硬盤并行讀寫。系統(tǒng)的存儲容量和記錄速度可根據(jù)配置硬盤的數(shù)量靈活調(diào)整,大大增強了通用性和可擴展性。
3 實現(xiàn)
FPGA內(nèi)部的SATA硬盤控制設(shè)計是記錄回放系統(tǒng)的核心。系統(tǒng)選用Xilinx公司的Viretx-5的FPGA芯片,芯片型號為XC5VSX50T。芯片內(nèi)部集成的GTP可以滿足SATA2.0協(xié)議中要求的3.0 Gb/s的數(shù)據(jù)傳輸速率。本系統(tǒng)實現(xiàn)了兩路SATA硬盤的并行讀寫,下面對該設(shè)計進行詳細闡述。
3.1 SATA硬盤控制
使用SATA IP核實現(xiàn)硬盤的讀寫操作。IP符合SATA協(xié)議要求,采用3層設(shè)計,即物理層、鏈路層和傳輸層。應(yīng)用層邏輯開發(fā)基于傳輸層。傳輸層包含兩個接口,控制接口和數(shù)據(jù)接口??刂平涌趯崿F(xiàn)對IP內(nèi)部的寄存器操作;數(shù)據(jù)接口采用FIFO技術(shù),為用戶提供讀寫數(shù)據(jù)通道。應(yīng)用層對IP核的寄存器進行控制,實現(xiàn)對硬盤的DMA數(shù)據(jù)傳輸,表1列出了寄存器的詳細信息。
系統(tǒng)采用DMA傳輸對硬盤進行數(shù)據(jù)讀寫。圖4給出了應(yīng)用層中一次DMA操作的流程圖。圖5和圖6分別為在DMA操作過程中寄存器讀寫和數(shù)據(jù)傳輸時序圖。
3.2 RAID0控制
為了提高記錄回放速度,需要使用多個硬盤組成陣列。本系統(tǒng)在FPGA內(nèi)部開發(fā)了兩個硬盤并行讀寫的RAID0控制功能模塊,設(shè)計原理如圖7所示。通過擴展位寬的方式實現(xiàn)兩個硬盤的同步讀寫。
3.3 數(shù)據(jù)管理
傳統(tǒng)的數(shù)據(jù)記錄回放系統(tǒng)直接以文件形式記錄數(shù)據(jù),文件形式的數(shù)據(jù)可以在操作系統(tǒng)下方便靈活地訪問,但受到文件系統(tǒng)對文件的管理約束,記錄過程中的數(shù)據(jù)不一定連續(xù)存儲在硬盤的連續(xù)邏輯塊地址上[7]。在該記錄系統(tǒng)中,數(shù)據(jù)是順序存儲到硬盤中的,可以在一定程度上提高記錄系統(tǒng)的帶寬。因此采用了自定義的文件系統(tǒng),將磁盤的存儲空間分為管理區(qū)、標(biāo)識區(qū)和數(shù)據(jù)區(qū)。數(shù)據(jù)區(qū)存放實際的數(shù)據(jù);管理區(qū)存放的是記錄的文件的信息,一般包括數(shù)據(jù)的存儲位置信息、長度信息及數(shù)據(jù)到文件的映射信息;標(biāo)識區(qū)是標(biāo)記磁盤的空間使用情況。圖8為自定義文件系統(tǒng)結(jié)構(gòu)示意圖。
該記錄回放系統(tǒng)的數(shù)據(jù)管理可以分為三個步驟,首先要劃分好硬盤中管理區(qū)、標(biāo)識區(qū)和數(shù)據(jù)區(qū)的容量,構(gòu)建好文件系統(tǒng)的框架;然后把經(jīng)過記錄的數(shù)據(jù)順序地存放在數(shù)據(jù)區(qū);最后在一個文件記錄結(jié)束后,把文件的位置、大小、文件的標(biāo)識符等相關(guān)信息添加到管理區(qū)和標(biāo)識區(qū)。
在每次記錄開始前要先遍歷管理區(qū)中的標(biāo)識區(qū),根據(jù)標(biāo)識區(qū)的值來獲得記錄的起始地址。根據(jù)系統(tǒng)的設(shè)計,記錄的數(shù)據(jù)都是放在數(shù)據(jù)區(qū)的,如果標(biāo)識區(qū)表明數(shù)據(jù)區(qū)為空,那這次記錄的起始地址就是數(shù)據(jù)區(qū)的起始地址,一般情況下是要緊接著上一個文件的結(jié)束地址來存儲。如果數(shù)據(jù)區(qū)被寫滿,會提示是否要清空磁盤的數(shù)據(jù),包括數(shù)據(jù)區(qū)中存儲的數(shù)據(jù)和管理區(qū)中存儲的文件的相關(guān)信息。記錄時,數(shù)據(jù)被順序存放到數(shù)據(jù)區(qū)。記錄結(jié)束時,要將文件的信息寫到管理區(qū)相應(yīng)的位置,當(dāng)然管理區(qū)也是順序讀寫的,同時要更新標(biāo)識區(qū)的標(biāo)識,以便下次記錄時計算數(shù)據(jù)記錄的起始地址。
4 系統(tǒng)性能測試
在對該記錄回放系統(tǒng)進行測試時,選用兩塊Intel 公司的固態(tài)硬盤作為存儲介質(zhì),型號為SSDSA2SH064G1GC,單盤標(biāo)稱的讀速率為250 MB/s,寫速率為170 MB/s,容量為64 GB,在Xilinx ISE 14.6中的Chip Scope來觀察波形。在實際測試中,每個盤一次讀寫256個扇區(qū),最后測得平均記錄速率為292 MB/s,回放速率為340 MB/s。同時經(jīng)過數(shù)據(jù)比對,記錄回放的數(shù)據(jù)沒有出現(xiàn)錯誤。圖9和圖10分別為讀寫硬盤時的波形圖。
針對相控陣?yán)走_天線陣面?zhèn)鹘y(tǒng)記錄回放系統(tǒng)的不足,實現(xiàn)了一種通用性好、集成度高的SATA陣列記錄回放系統(tǒng)。系統(tǒng)基于FPGA實現(xiàn)對SATA硬盤的讀寫,既滿足了對數(shù)據(jù)存儲速率帶寬的要求,而且不用重新繪制電路板,就可以應(yīng)用在不同型號的雷達上。本系統(tǒng)實現(xiàn)了RAID0功能,兩個硬盤并行讀寫,平均記錄速率為292 MB/s,回放速率為340 MB/s。同時,采用自定義的文件管理系統(tǒng),結(jié)構(gòu)簡單,便于管理。為了實現(xiàn)更高的速率,可以在目前實現(xiàn)的兩路硬盤并行讀寫擴展為8路硬盤同時讀寫,這也是本文的下一步工作。
參考文獻
[1] 胡善清,劉峰,龍騰.相控陣?yán)走_光纖傳輸系統(tǒng)的設(shè)計與實現(xiàn)[J].光通信技術(shù),2006(5):27-30.
[2] 唐純杰.SATA協(xié)議分析及其FPGA實現(xiàn)[D].長沙:湖南大學(xué),2009.
[3] 王超,劉偉,張德聰.基于SATA的嵌入式直接存儲系統(tǒng)[J].計算機工程,2012,38(12):232-235.
[4] 王超,劉偉.基于文件系統(tǒng)的高速數(shù)據(jù)記錄系統(tǒng)[J].北京理工大學(xué)學(xué)報,2010,30(5):543-547.
[5] 張樂峰,徐安林,胡衛(wèi)東.一種通用的雷達回波記錄系統(tǒng)設(shè)計方法[J].數(shù)據(jù)采集與處理,2009(24):272-276.
[6] Xilinx,Inc..Virtex-5 FPGA serial ATA generation 2 protocol standard[Z].2007.
[7] 張昆帆.高速數(shù)據(jù)采集和存儲[J].現(xiàn)代雷達,2004,26(4):14-16.
[8] 周雙喜.基于FPGA的高速數(shù)據(jù)記錄系統(tǒng)的研究[D].成都電子科技大學(xué),2010.