引言 軟硬件結(jié)合構(gòu)建寬帶互聯(lián)并行處理的數(shù)據(jù)處理系統(tǒng)是實(shí)現(xiàn)高速實(shí)時(shí)數(shù)據(jù)處理的有效方案。基于這樣的方案設(shè)計(jì)理念,采用多DSP、多FPGA通過(guò)SRIO互聯(lián)來(lái)實(shí)現(xiàn)一個(gè)高速互聯(lián)的計(jì)算網(wǎng)絡(luò),數(shù)據(jù)可以在DSP之間及DSP與FPGA之間高速傳輸。這樣的互聯(lián)計(jì)算網(wǎng)絡(luò)在數(shù)據(jù)交互、任務(wù)切換、算法分解、計(jì)算負(fù)載均衡等方面具有較強(qiáng)的適應(yīng)性、可擴(kuò)展性。本文介紹了這種基于SRIO互聯(lián)技術(shù)的高速實(shí)時(shí)數(shù)據(jù)處理硬件平臺(tái),并在該平臺(tái)上研究了多DSP之間、DSP與FPGA之間的SRIO通信技術(shù)。 1 SRIO標(biāo)準(zhǔn) RapiclI/O是面向嵌入式系統(tǒng)開發(fā)提出的高可靠、高性能、基于包交換的新一代高速互聯(lián)技術(shù),已于2004年被國(guó)際標(biāo)準(zhǔn)化組織(ISO)和國(guó)際電工協(xié)會(huì)(IEC)批準(zhǔn)為ISO/IECDIS18372標(biāo)準(zhǔn)。SRIO則是面向串行背板、DSP和相關(guān)串行數(shù)據(jù)平面連接應(yīng)用的串行RapidIO接口。串行RapidIO包含一個(gè)3層結(jié)構(gòu)的協(xié)議,即物理層、傳輸層、邏輯層。物理層定義電氣特性、鏈路控制、低級(jí)錯(cuò)誤管理;傳輸層定義包交換、路由和尋址機(jī)制;邏輯層定義總體協(xié)議和包格式。可以實(shí)現(xiàn)最低引腳數(shù)量,采用DMA傳輸,支持復(fù)雜的可擴(kuò)展拓?fù)洌帱c(diǎn)傳輸;可選的1.25 Gbps、2.5 Gbps、3.125Gbps三種速度能滿足不同應(yīng)用需求,是未來(lái)十幾年中嵌入式系統(tǒng)互聯(lián)的最佳選擇之一。 2 基于C6455高速SRIO接口的互聯(lián)系統(tǒng) 2.1 C6455的SRIO端口 TMS320C6455(簡(jiǎn)稱C6455)是德州儀器(TI)公司新推出的一款DSP產(chǎn)品,可實(shí)現(xiàn)更高性能,精簡(jiǎn)代碼,更多片上存儲(chǔ)器及超高帶寬的集成外設(shè)。其中最為引人矚目的是第一次實(shí)現(xiàn)了用于處理器間通信的SRIO總線,C6455上的SRIO端口是面向嵌入式領(lǐng)域推出的具有高數(shù)率,很少引腳的互聯(lián)方案,并且RapiclI/O的數(shù)據(jù)傳輸完全是由硬件實(shí)現(xiàn)的,不需要處理器參與,因此這樣可以實(shí)現(xiàn)一個(gè)高效板級(jí)同構(gòu)互聯(lián)多處理器系統(tǒng)。C6455的SRIO端口一對(duì)收發(fā)差分信號(hào)對(duì)構(gòu)成一個(gè)全雙工的port(端口),可以工作在1.25 Gbps、2.5 Gbps、3.125 Gbps的波特率。 2.2 基于SRIO的多C6455互聯(lián)結(jié)構(gòu) C6455的SRIO端口可以與SRIO交換器件實(shí)現(xiàn)互聯(lián),也可以在C6455之間通過(guò)連接差分信號(hào)來(lái)實(shí)現(xiàn)。如圖1和圖2所示的1x模式和4x模式互聯(lián)關(guān)系,在1x模式中,器件的任何一對(duì)發(fā)收信號(hào)可以與另一個(gè)器件的收發(fā)信號(hào)相互連接組成獨(dú)立的1x模式工作。如果兩個(gè)C6455間采用四對(duì)全連接方式,則可實(shí)現(xiàn)1個(gè)4x工作模式或者是4個(gè)獨(dú)立的1x工作模式。 多DSP及FPGA的并行處理系統(tǒng)主要由4個(gè)C6455處理器和4個(gè)Virtex5LX50T構(gòu)成,系統(tǒng)結(jié)構(gòu)如圖3所示。DSP與DSP之間的互聯(lián)采用圖1所示的連接方式來(lái)實(shí)現(xiàn)全連通的SRIO網(wǎng)絡(luò),實(shí)現(xiàn)所有DSP之間的1路1x通道,各個(gè)通道上的控制、傳輸獨(dú)立并行工作。通過(guò)SRIO互聯(lián)網(wǎng)絡(luò),任何一個(gè)DSPC6455都可以訪問(wèn)網(wǎng)絡(luò)上其他DSPC6455資源,實(shí)現(xiàn)網(wǎng)絡(luò)上的所有設(shè)備資源共享。而且這樣的全連通結(jié)構(gòu)又可以根據(jù)不同任務(wù)處理的特點(diǎn),靈活地配置成菊花鏈串行流水線、一主多從的星形等拓?fù)浣Y(jié)構(gòu),在不同數(shù)據(jù)處理應(yīng)用中具有高度可動(dòng)態(tài)重構(gòu)性。 2.3 C6455的SRIO傳輸控制結(jié)構(gòu) C6455的SRIO包有directI/O包、DOORBELL包、Message包以及Maintenance包等等。其中最重要的是直接I/O包和DOORBELL包的傳輸控制,它的傳輸控制模塊分成LSU(Load/Store Unit)控制單元和MAU(Memo-ry AccessUnit)控制單元。LSU用于實(shí)現(xiàn)Direct I/O包、DOORBELL包的發(fā)送,MAU則負(fù)責(zé)DirectI/O包的接收。具體的傳輸控制結(jié)構(gòu)框圖如圖4所示。 所有直接I/O包和DOORBELL包的發(fā)送都由LSU模塊執(zhí)行。直接I/O包內(nèi)包含了數(shù)據(jù)本地DSP地址、目標(biāo)設(shè)備ID及數(shù)據(jù)在目標(biāo)SRIO設(shè)備上需要保存或讀取的地址,DSP通過(guò)配置總線對(duì)發(fā)送端口配置一系列MMRs作為傳輸描述符,在包傳輸之前硬件自動(dòng)把它們加在包頭。啟動(dòng)SRIO傳輸后數(shù)據(jù)自動(dòng)實(shí)現(xiàn)DSP內(nèi)部存儲(chǔ)空間(L2SRAM)到SRIO發(fā)送端口緩沖區(qū)的DMA數(shù)據(jù)傳輸,處理器參與的僅僅是配置過(guò)程,而真正的數(shù)據(jù)搬移過(guò)程全由DMA完成,并且包信息中包含了接收端口的ID及地址信息,數(shù)據(jù)在接收端口由MAU模塊自動(dòng)DMA到包頭信息指定的地址空間,對(duì)用戶來(lái)說(shuō)是完全透明的。 2.4 C6455的SRIO關(guān)鍵事務(wù)處理 SRIO的邏輯層采用的是包格式來(lái)交換數(shù)據(jù),所有包的有效載荷最大為256字節(jié)。事務(wù)就是指向SRIO地址空間的加載存儲(chǔ)及DMA的操作,其中最為關(guān)鍵重要的就是NREAD(讀操作)、NWRITE(寫操作)、DOORBELL(門鈴操作)。通過(guò)SRIO包的這幾種事務(wù)處理可以實(shí)現(xiàn)互連器件間的數(shù)據(jù)傳輸。在發(fā)送DSP的SRIO端口和接收DSP的SRIO端口都需要首先進(jìn)行初始化,包括使能端口,配置端口工作模式,設(shè)置和使能PLL模塊,設(shè)置設(shè)備ID及數(shù)據(jù)傳輸速率(注意發(fā)送和接收端口速率要求一致)。在初始化完成后,通過(guò)循環(huán)查詢SRIO端口狀態(tài)寄存器來(lái)判斷鏈路的連接成功與否。一般情況下,鏈路會(huì)很快連接成功,否則前述的初始化配置可能有錯(cuò)。鏈路連接成功后,就可以進(jìn)行讀寫和門鈴操作。在系統(tǒng)測(cè)試中,發(fā)送端DSP通過(guò)寫操作發(fā)送完一幀數(shù)據(jù),隨即發(fā)送一個(gè)門鈴數(shù)據(jù)包,門鈴數(shù)據(jù)包在接收端DSP上產(chǎn)生一個(gè)系統(tǒng)中斷告知數(shù)據(jù)到達(dá)有效,于是接收端DSP又將一個(gè)門鈴數(shù)據(jù)包發(fā)送回發(fā)送端DSP,同樣產(chǎn)生一個(gè)中斷給發(fā)送端DSP,發(fā)送端DSP收到中斷后又繼續(xù)發(fā)送下一個(gè)數(shù)據(jù)幀,如此循環(huán)往復(fù)實(shí)現(xiàn)高速傳輸數(shù)據(jù)。 3 C6455與Virtex5-LXT的串行接口互聯(lián) 在DSP+FPGA復(fù)合架構(gòu)中,DSP的優(yōu)勢(shì)在于,對(duì)新型及復(fù)雜算法開發(fā)上只需較短的時(shí)間,并能夠快速靈活地移植到新一代DSP處理器上;而FPGA的最大優(yōu)勢(shì)在于,通過(guò)并行處理實(shí)現(xiàn)的效能最大化。因此通過(guò)SRIO實(shí)現(xiàn)DSP和FPGA的互聯(lián)可以達(dá)到兩者的優(yōu)勢(shì)互補(bǔ)。如圖3中,通過(guò)DSP的一個(gè)SRIO端口和一個(gè)Virtex5LX50T實(shí)現(xiàn)SRIO連接,每一個(gè)FPGA都可以通過(guò)SRIO通道訪問(wèn)SRIO網(wǎng)絡(luò)上的任何資源。用于SRIO的Xilinx端點(diǎn)IP解決方案針對(duì)RapidIO規(guī)范(v1.3)而設(shè)計(jì),完整的Xilinx端點(diǎn)IP解決方案包括用戶收發(fā)數(shù)據(jù)接口邏輯、傳輸控制及緩存邏輯、SRIO物理層IP,以及SRIO管理配置寄存器實(shí)現(xiàn)邏輯4部分。 結(jié)語(yǔ) 在多處理器互聯(lián)處理系統(tǒng)實(shí)現(xiàn)方案中,SRIO是最佳的數(shù)據(jù)互聯(lián)方式之一。高帶寬、低延時(shí)、引腳少、DMA傳輸、低軟件復(fù)雜度滿足了飛速發(fā)展的高速實(shí)時(shí)數(shù)據(jù)處理對(duì)性能的要求。C6455間的SRIO高速通信滿足不同應(yīng)用軟件設(shè)計(jì)的靈活性,DSP和FPGA的SRIO通信提高了多處理器系統(tǒng)的計(jì)算能力,通過(guò)SRIO通信方式構(gòu)建的計(jì)算網(wǎng)絡(luò)提供了共享式分布處理,能輕松滿足不同應(yīng)用領(lǐng)域高速發(fā)展的海量數(shù)據(jù)高速處理需求。 參考文獻(xiàn) 1. TI Inc.TMS320C6455 Fixed-Point Digital Signal Processor SPRS276H. 2. TI Inc.TMS320C645x Serial Rapid IO (SRIO) User's Guide SPRU976. 3. 王勇,林粵偉,吳冰冰.RapidIO嵌入式系統(tǒng)互聯(lián)[M].北京:電子工業(yè)出版社,2006. 4. Navneet Rao.串行Rapid IO連接功能增強(qiáng)了DSP協(xié)處理能力[J].賽靈思中國(guó)通訊.26期. 5. 屈磊,宋慰軍,茍冬榮,等.基于SRIO的多DSP并行信號(hào)處理系統(tǒng)[J].計(jì)算機(jī)工程,2008(9):13-15. 6. 黃克武,吳海洲.基于TMS320C6455的高速SRIO接口設(shè)計(jì)[J].電子測(cè)量技術(shù),2008(9):143-146. 作 者:黃曉云(四川大學(xué)) 程波,蘇海冰,吳欽章(中國(guó)科學(xué)院光電技術(shù)研究所) 來(lái)源:《單片機(jī)與嵌入式系統(tǒng)應(yīng)用》 2009(9) |