文獻標識碼: A
在雷達、聲納、電子對抗等軍用電子設備中,數(shù)字信號處理機作為實現(xiàn)信號處理算法的平臺,起著至關重要的作用。在傳統(tǒng)的信號處理平臺中,軍事領域多選用ADI公司的TigerShark系列的DSP芯片作為信號處理單元,在PCB的板內和板間采用高速的LINK口進行互聯(lián)。
LINK口是一種源同步接口,可以達到很高的傳輸速度。但是,由于LINK口是基于電路交換的接口,連接的雙方獨占一條通路,LINK口一旦在硬件上連接起來,系統(tǒng)中的DSP網絡拓撲就固定不變了。由于信號處理算法的多樣性,系統(tǒng)中數(shù)據(jù)流的方向也很不確定,固定的DSP拓撲網絡只能針對一定的算法達到最優(yōu),當數(shù)據(jù)流方向改變較大時,同樣的信號處理平臺的傳輸效率就會大大降低。這時,如果能夠重新調整DSP網絡的拓撲結構,會大大提高平臺的性能。
為了實現(xiàn)系統(tǒng)可重構的特性,需要利用專門的FPGA芯片,將基于電路交換的LINK口轉換成基于(帶有路由信息的)包交換的其他格式的接口進行傳輸?,F(xiàn)在比較流行的基于包交換的接口有串行 RapidIO接口、 PCI Express接口和千兆以太網接口等。
串行RapidIO、PCI Express和千兆以太網技術都可以提供高速、可靠的點對點互聯(lián)。串行RapidIO技術是專門為嵌入式系統(tǒng)互聯(lián)而設計的,只要有足夠多的交換機,就可以實現(xiàn)任意結構的拓撲。PCI Express技術是著眼于最大的兼容PCI總線技術而設計,為了能夠兼容傳統(tǒng)的PCI總線技術,PCI Express的拓撲結構只能是樹形結構。這種結構在PC機和服務器內非常適用,如果合適的話,也能用在嵌入式系統(tǒng)內。但在PCI Express的結構中除了要有交換機,還需要有一個根聯(lián)合體來做統(tǒng)一的管理,這增加了硬件的開銷。千兆以太網技術是百兆以太網技術的升級,最初用于局域網內和廣域網內的互聯(lián),是非??煽康幕ヂ?lián)選擇。但千兆以太網技術較前2種技術的效率稍低,而且系統(tǒng)延時較大,不太適合實時嵌入式系統(tǒng)內部的互聯(lián)。在這3種技術中,串行RapidIO技術是在嵌入式系統(tǒng)內實現(xiàn)互聯(lián)的最佳選擇[1]。
1 RapidIO技術
RapidIO是一種高性能、低引腳數(shù)、基于包交換的系統(tǒng)級互聯(lián)協(xié)議,是專門為多種多樣的嵌入式系統(tǒng)互聯(lián)而建立的一種標準[1]。RapidIO接口主要適用于芯片到芯片和電路板到電路板之間的連接。在2008年3月由RapidIO組織公布的2.0版本的規(guī)范中,串行RapidIO鏈路可以支持每路1.25、2.5、3.125、5、6.25 GBaud的傳輸速率[2](1,2,2.5,4,5 Gb/s的有效數(shù)據(jù)率)?,F(xiàn)在FPGA的IP核能夠支持的主流配置是x1或x4的鏈路,每路支持2.5 Gb/s或3.125 Gb/s的傳輸速率。因此,如果采用x4的鏈路和3.125 Gb/s傳輸速率,就可以達到雙向各12.5 Gb/s的帶寬。另外,RapidIO也提供了較高級別的錯誤管理和錯誤恢復機制,是一種比較穩(wěn)定和可靠的互聯(lián)選擇[3]。
2 系統(tǒng)結構設計
2.1 板卡內DSP的連接結構
DSP板是信號處理系統(tǒng)中最基本的組成模塊,它的結構固定不變。本文選擇ADI公司的TS201系列芯片。每塊TS201芯片帶有4個高速LINK口,其中3個LINK口用于板卡內DSP之間的連接,1個LINK口用來通過FPGA進行協(xié)議轉換,轉成串行RapidIO接口,實現(xiàn)與其他板卡之間的連接。板卡上共采用6塊TS201芯片,其拓撲結構如圖1所示。圖中虛線部分表示DSP芯片之間的LINK口連接,實線部分表示DSP與FPGA的LINK口連接。
這種拓撲結構能夠達到板卡內DSP之間較高的傳輸速度,因為每個DSP直接或最多經過一次中轉就能與板上任意其他的DSP進行通信。
2.2 板卡間DSP的連接結構
在DSP板板卡之間用RapidIO接口連接有很多好處。最直接的好處是,由于RapidIO采用的是串行總線,這使得背板上的布線設計不再困難,系統(tǒng)可以擴展得更大。更重要的是,由于RapidIO是以數(shù)據(jù)包的格式傳送數(shù)據(jù)的,用戶可以通過改變數(shù)據(jù)包包頭中的路由信息來改變數(shù)據(jù)的流向。這使得系統(tǒng)的重構變得十分容易。DSP板在系統(tǒng)中的連接如圖2所示。
在系統(tǒng)內, 任意2片(不同板卡上的)DSP芯片之間都可以建立連接。例如:如果用戶想要將DSP板1上的DSP4中的數(shù)據(jù)發(fā)送給DSP板3上的DSP6,只需在系統(tǒng)上電時提前將DSP板1上的FPGA內部控制路由的寄存器(目標板ID號設為3,目標DSP分配的地址設置為6)通過軟件設置好即可。交換機收到數(shù)據(jù)后,會根據(jù)數(shù)據(jù)包中用戶配置的路由信息將數(shù)據(jù)包送往目標DSP板,然后,目標DSP板上的FPGA進一步將數(shù)據(jù)發(fā)送到目標DSP芯片。在下一次的算法設計中,如果數(shù)據(jù)的流向改變很大時,用戶可以根據(jù)數(shù)據(jù)流向的特點,重新優(yōu)化DSP網絡的拓撲結構,以適應不同的算法。
重構DSP網絡拓撲的過程在傳統(tǒng)的信號處理平臺中是很難實現(xiàn)的。在多數(shù)情況下,由于DSP拓撲結構不夠靈活,算法設計者受限于固定的DSP拓撲結構,只能降低系統(tǒng)的使用效率,從而使大量的DSP資源閑置,降低了系統(tǒng)的處理能力。而在這種新的信號處理平臺架構中,用戶只需要通過軟件界面設置路由信息即可完成整個平臺結構的改變,系統(tǒng)不會因為算法的改變而降低使用效率。
2.3 FPGA內部的邏輯設計
在DSP板卡上有一塊Altera公司的Stratix II GX系列的FPGA芯片。這塊FPGA芯片專門用來實現(xiàn)LINK口與RapidIO接口之間的數(shù)據(jù)轉換,將6路LINK口數(shù)據(jù)整合到1路RapidIO通路中。數(shù)據(jù)接收和發(fā)送的邏輯結構如圖3所示。
當DSP發(fā)送數(shù)據(jù)時,F(xiàn)PGA的LINK口接收模塊將收到的數(shù)據(jù)緩存到FIFO中,數(shù)據(jù)輪詢狀態(tài)機按順序檢查FIFO的存儲狀態(tài)。當FIFO內的數(shù)據(jù)滿足RapidIO包最大負載(256 B)時,啟動1次RapidIO數(shù)據(jù)發(fā)送操作。另外,由于LINK口傳輸協(xié)議不包含數(shù)據(jù)長度,所以1次LINK口傳輸?shù)臄?shù)據(jù)長度不可能正好是256 B的整數(shù)倍。如果當前FIFO內有低于256 B的數(shù)據(jù),而當前LINK口又沒有處于傳輸狀態(tài),也認為LINK口完成了1次數(shù)據(jù)發(fā)送,這時也啟動一次RapidIO數(shù)據(jù)發(fā)送操作。
在每次啟動RapidIO數(shù)據(jù)發(fā)送操作之前,配置寄存器模塊會根據(jù)不同的DSP號將對應的路由信息輸入給RapidIO的IP核。RapidIO的IP核負責將輸入的路由信息和數(shù)據(jù)一起打包并發(fā)送出去。
在RapidIO的數(shù)據(jù)接收端,當RapidIO核接收到數(shù)據(jù)時,首先檢查數(shù)據(jù)包包頭中的目標板ID號信息。如果目標板ID號與本地的ID號一致,說明數(shù)據(jù)包是發(fā)往這個板卡的,然后RapidIO核將接收到的數(shù)據(jù)和DSP地址信息傳遞給數(shù)據(jù)分發(fā)狀態(tài)機,由數(shù)據(jù)分發(fā)狀態(tài)機根據(jù)地址信息將數(shù)據(jù)分發(fā)到對應的FIFO中。最后,由LINK口發(fā)送模塊將數(shù)據(jù)傳給目標DSP。
這種將不同的信號相互交織在不同時間段內,沿著同一個信道傳輸,在接收端再用某種方法將各個時間段內不同的信號提取出來的方式,類似于通信中的時分復用的機制。
2.4 功能仿真
為了驗證rapidIO IP核的邏輯功能和LINK口與rapidIO接口的轉換邏輯功能,將2個rapidIO核的td[3:0],rd[3:0]對接起來。其中一個rapidIO核的后端連接發(fā)送數(shù)據(jù)包的控制邏輯,另一個rapidIO核后端連接接收數(shù)據(jù)包的控制邏輯。將LINK口邏輯、接口轉換邏輯和rapidIO核邏輯串接起來,然后在數(shù)據(jù)發(fā)送端施加激勵信號,在數(shù)據(jù)接收端進行數(shù)據(jù)檢驗。整個過程如圖4所示。
在仿真過程中,最關鍵的部分是驗證rapidIO核的邏輯功能。Altera公司提供的rapidIO IP核的邏輯層接口符合avalon總線的接口時序[4](avalon總線是由Altera公司提出,用于在基于FPGA的片上系統(tǒng)中連接片內處理器和片內外設的總線結構)。對rapidIO核的控制可以參照avalon規(guī)范[5]。
2.5 缺陷及解決方案
在系統(tǒng)中,每路LINK口實現(xiàn)300 MB/s的帶寬,如果6路LINK口同時發(fā)送數(shù)據(jù),總帶寬將達到14 Gb/s,已經超出了RapidIO的IP核所能支持的最大帶寬。這時,RapidIO鏈路將成為數(shù)據(jù)傳輸?shù)钠款i,從而造成DSP的傳輸速率降低。另外,當少于3個DSP發(fā)送數(shù)據(jù)時,又會造成RapidIO鏈路的浪費。這像大城市中的交通一樣,在上下班高峰時道路會擁堵,在其他時間,道路又暢通無阻。生活中,很多人會避免上下班高峰時期出行。類似地,在使用此系統(tǒng)時,應該盡量避免在一塊DSP板卡上同時發(fā)送6個DSP的數(shù)據(jù)到其他板卡。
本文提出了一種利用RapidIO技術搭建的可重構的信號處理平臺,并簡要介紹了其邏輯功能的實現(xiàn)。該平臺的最大優(yōu)勢就是系統(tǒng)的可重構性。使用這樣的信號處理平臺,DSP工程師可以根據(jù)不同算法的數(shù)據(jù)流向重新搭建出更加優(yōu)化的DSP網絡拓撲結構,從而提高數(shù)據(jù)的傳輸效率??傊芍貥嫷男盘柼幚砥脚_能夠靈活地改變系統(tǒng)中DSP網絡的拓撲結構以適應各種數(shù)據(jù)流向的應用,為用戶和國家節(jié)省大量的設備購買費用和研發(fā)時間。
參考文獻
[1] FULLER S.RapidIO:The embedded system interconnect. Wiley,ISBN:978-0-470-09291-0,US.,2005.
[2] RapidIO Trade Association.RapidIO interconnect Specification Rev.2.0.www.rapidio.org,2008.
[3] BOUVIER D,RapidIO:The interconnect architecture for high performance embedded systems.www.rapidio.org,2009.
[4] Altera Corparation.RapidIO megacore function user guide. www.altera.com,2008.
[5] Altera Corparation.Avalon interface specification.www.altera.com,2008.