摘 要: 根據(jù)TMS320C6678芯片的特點(diǎn),針對(duì)核間、片間、板間的通信要求,提出了一種跨系統(tǒng)的透明傳輸模型及實(shí)現(xiàn),并分析了傳輸性能,對(duì)基于TMS320C6678的嵌入式軟件系統(tǒng)設(shè)計(jì)提供了指導(dǎo)。
關(guān)鍵詞: TMS320C6678;多核通信;平臺(tái)軟件
TMS320C6678是TI公司2010年11月發(fā)布的KeyStone架構(gòu)的8核DSP處理器,每個(gè)CorePac核的頻率最高為1.25 GHz,提供強(qiáng)大的定點(diǎn)和浮點(diǎn)運(yùn)算能力,同時(shí)芯片內(nèi)部集成了Multicore Navigator、RapidIO、千兆以太網(wǎng)和EDMA等外設(shè),由于芯片處理能力強(qiáng),外設(shè)功能豐富,而且片內(nèi)集成了大量的硬件加速器,例如Packet Accelerator、Multicore Navigator等,被廣泛地應(yīng)用在通信、雷達(dá)、聲納、火控、電子對(duì)抗等領(lǐng)域。從目前的情況看,由于C6678的以上優(yōu)異的特性,基于TMS320C6678的硬件和軟件平臺(tái),在未來的5~10年內(nèi),將是信號(hào)處理平臺(tái)主流。
雖然TMS320C6678硬件優(yōu)點(diǎn)眾多,但由于芯片內(nèi)部集成了8核,而且有大量的外設(shè)及加速器,通常每個(gè)板卡單位上有4個(gè)TMS320C6678,相當(dāng)于32個(gè)DSP核,按照一個(gè)機(jī)架4塊板卡的設(shè)計(jì),這將是一個(gè)128個(gè)DSP核的陣列,而且節(jié)點(diǎn)間的連接方式復(fù)雜,如何簡(jiǎn)單、高效、易調(diào)試地實(shí)現(xiàn)128個(gè)分布式節(jié)點(diǎn)的通信,為平臺(tái)軟件設(shè)計(jì)者提出了極高的要求。
針對(duì)基于TMS320C6678分布式系統(tǒng)的特點(diǎn),本文首先分析了TMS320C6678的硬件通信方式及設(shè)計(jì)難點(diǎn),進(jìn)而提出了一種基于透明傳輸?shù)姆植际较到y(tǒng)通信方式及實(shí)現(xiàn),最后通過實(shí)驗(yàn)給出了性能分析,為基于TMS320C6678的平臺(tái)軟件設(shè)計(jì)提供了參考。
1 核間、DSP間和板間的傳輸方式
由于TMS320C6678芯片高度集成的特性,片內(nèi)除了8個(gè)CorePac內(nèi)核外,還集成了以太網(wǎng)、EDMA、RapidIO、PCIe以及Multicore Navigator、Packet Accelerator協(xié)處理器等外設(shè)。
在多個(gè)TMS320C6678的板卡設(shè)計(jì)中,芯片內(nèi)的核間通信,通常采用共享內(nèi)存或DMA實(shí)現(xiàn),因?yàn)門MS320C6678中有專門用于數(shù)據(jù)搬移的協(xié)處理器Multicore Navigator,因此芯片內(nèi)的核間通信用基于硬件隊(duì)列協(xié)處理器的CDMA實(shí)現(xiàn)。特點(diǎn)是速度快、效率高,缺點(diǎn)是編程復(fù)雜,學(xué)習(xí)周期長(zhǎng)。
在雷達(dá)、聲納等應(yīng)用中,一般在一塊DSP處理板上設(shè)計(jì)多個(gè)TMS320C6678處理器,在一個(gè)機(jī)架上插多塊DSP處理板卡來承載大數(shù)據(jù)量的處理。對(duì)于板卡內(nèi)DSP間通信,以前可能會(huì)經(jīng)常采用PCIe的設(shè)計(jì),但目前的主流設(shè)計(jì),傾向于采用RapidIO的通信方式,因?yàn)殡m然PCIe有架構(gòu)簡(jiǎn)單、編程容易等特點(diǎn),但是PCIe一般只能用作設(shè)備內(nèi)的通信,而且對(duì)于復(fù)雜的陣列節(jié)點(diǎn)間的通信就力不從心。因此RapidIO這種高效、可靠、跨設(shè)備的傳輸方式被用作DSP間、板間傳輸?shù)闹饕绞?。?duì)于大數(shù)據(jù)量的傳輸,一般會(huì)采用RapidIO type5、RapidIO type6以及RapidIO type10、RapidIO type2混合的模式。由于TMS320C6678支持千兆以太網(wǎng)傳輸,在某些TMS320C6678陣列的板卡設(shè)計(jì)中,例如Advantech DPS8901單板20個(gè)TMS320C6678的陣列,DSP間以及CPU和DSP間還會(huì)采用基于以太網(wǎng)的傳輸方式。板卡通信示意圖如圖1所示。
綜上,在一個(gè)板卡的軟、硬件系統(tǒng)設(shè)計(jì)中,單位節(jié)點(diǎn)之間交互有如此多的接口和通信路徑,使平臺(tái)軟件的設(shè)計(jì)和編程工作變得異常復(fù)雜。比如節(jié)點(diǎn)A和節(jié)點(diǎn)B之間,底層通過CDMA連接,節(jié)點(diǎn)B和節(jié)點(diǎn)C之間底層通過RapidIO通信,如果沒有一種好的上層通信機(jī)制,節(jié)點(diǎn)A向節(jié)點(diǎn)C發(fā)送數(shù)據(jù),這一過程是非常繁瑣和復(fù)雜的,如圖2所示。
因此,為解決分布式系統(tǒng)節(jié)點(diǎn)的透明傳輸問題,本文提出一種跨核、跨處理器、跨板卡、跨系統(tǒng)的透明傳輸機(jī)制LINX及軟件實(shí)現(xiàn),下面將詳細(xì)闡述LINX模塊的機(jī)制和通信模式。
2 統(tǒng)一接口的分布式透明傳輸模式
針對(duì)TMS320C6678板卡設(shè)計(jì)中復(fù)雜的底層接口狀況,提出一種點(diǎn)對(duì)點(diǎn)的分布式系統(tǒng)節(jié)點(diǎn)間的透明傳輸模型,稱之為L(zhǎng)INX。
這一分布式透明節(jié)點(diǎn)間傳輸模型應(yīng)具有以下特性。
?。?)統(tǒng)一接口、使用簡(jiǎn)便。從系統(tǒng)架構(gòu)的角度,LINX設(shè)計(jì)為統(tǒng)一應(yīng)用程序接口的中間件模型,即不管底層是何種傳輸介質(zhì),例如SRIO、以太網(wǎng)、CDMA等,對(duì)于應(yīng)用程序來說,對(duì)于跨介質(zhì)傳輸,均使用統(tǒng)一的接口函數(shù)。統(tǒng)一通信接口的好處是顯而易見的,因?yàn)閷?duì)于應(yīng)用程序開發(fā)者,可以直接調(diào)用統(tǒng)一的接口,跨介質(zhì)進(jìn)行數(shù)據(jù)的收發(fā)。
?。?)跨介質(zhì)傳輸。傳輸模型設(shè)計(jì)為分層架構(gòu),不同的底層鏈路驅(qū)動(dòng)按照一定的格式,通過統(tǒng)一抽象的接口例如發(fā)送、接收、初始化、查詢、響應(yīng)中斷等基本接口,與LINX中間件層對(duì)接。對(duì)于跨多個(gè)節(jié)點(diǎn)的傳輸,提供簡(jiǎn)單的鏈路定義及使用的方式。
?。?)錯(cuò)誤檢測(cè)。具有基本的錯(cuò)誤檢測(cè)功能,當(dāng)LINX模塊檢測(cè)到底層鏈路錯(cuò)誤時(shí),應(yīng)及時(shí)上報(bào)給通信節(jié)點(diǎn)。而且對(duì)于不可靠傳輸介質(zhì),比如基于共享內(nèi)存的通信方式,還需要提供可靠傳輸保證,例如用心跳機(jī)制的發(fā)送/應(yīng)答,對(duì)不可靠的鏈路提供通信安全保證。
根據(jù)以上特性,提出的LINX傳輸模型如圖3所示。自下而上依次是驅(qū)動(dòng)層、傳輸層、會(huì)話層以及應(yīng)用程序接口。
其中驅(qū)動(dòng)層負(fù)責(zé)具體的驅(qū)動(dòng)鏈路實(shí)現(xiàn);傳輸層負(fù)責(zé)與驅(qū)動(dòng)層接口,底層的監(jiān)控和檢測(cè)重傳;會(huì)話層負(fù)責(zé)和傳輸層接口,進(jìn)行鏈路名管理、鏈路路徑的搜索并提供應(yīng)用程序接口。
LINX采用點(diǎn)對(duì)點(diǎn)的傳輸模型,如圖4所示。節(jié)點(diǎn)為TMS320C6678的CorePac核,節(jié)點(diǎn)A與節(jié)點(diǎn)B之間通過CDMA驅(qū)動(dòng)通信,鏈路標(biāo)識(shí)號(hào)為n1,那么節(jié)點(diǎn)A上的任務(wù)A給節(jié)點(diǎn)B上的任務(wù)B發(fā)送數(shù)據(jù),可通過接口寫成Send(n1/B,&data)。
同理,節(jié)點(diǎn)A上的任務(wù)A通過節(jié)點(diǎn)B,向節(jié)點(diǎn)C上的任務(wù)C發(fā)送數(shù)據(jù),經(jīng)過CDMA和RapidIO兩個(gè)鏈路,分別標(biāo)識(shí)為n1和n2,那么可通過接口寫成Send(n1/n2/C,&data)。
由此可見,在TMS320C6678的陣列中,使用基于LINX中間件架構(gòu)構(gòu)建的分布式系統(tǒng)通信方式,實(shí)現(xiàn)跨介質(zhì)的傳輸,通信接口非常簡(jiǎn)便。對(duì)于系統(tǒng)設(shè)計(jì)來說,可達(dá)到各個(gè)節(jié)點(diǎn)間的無縫傳輸。由于LINX是基于底層驅(qū)動(dòng)的中間件管理模塊,在驅(qū)動(dòng)之上會(huì)增加一些負(fù)載,下面是LINX模塊的軟件實(shí)現(xiàn),在TMS320C6678EVM開發(fā)板卡上所做的性能測(cè)試實(shí)驗(yàn),用以評(píng)估LINX模塊對(duì)傳輸性能的影響。
3 分布式透明傳輸模式的性能測(cè)試
由于RapidIO在多DSP及多板卡的集群設(shè)備中是最常用的一種接口,因此以RapidIO為例測(cè)試LINX基于RapidIO傳輸在TMS320C6678上的性能。
本測(cè)試基于標(biāo)準(zhǔn)TMS320C6678EVM開發(fā)板,測(cè)試采用OSEck硬實(shí)時(shí)操作系統(tǒng),內(nèi)核代碼在L2 Memory上,其他驅(qū)動(dòng)、中間層LINX所使用的數(shù)據(jù)區(qū)以及應(yīng)用層所用的內(nèi)存池均位于片外的DDR3存儲(chǔ)器上,測(cè)試的時(shí)間周期使用硬件定時(shí)器Timer 10(0x022A0000)測(cè)量,TMS320C6678主頻為1 GHz,RapidIO配置為5 Gb/s、4x模式,采用DirectIO(SRIO type5/6)方式通信。
TMS320C6678核0發(fā)送數(shù)據(jù),核1接收數(shù)據(jù),1核在收到之后向0核回送,每次測(cè)試一個(gè)回環(huán)耗時(shí),測(cè)試連續(xù)進(jìn)行n次,由發(fā)送端設(shè)置時(shí)間戳進(jìn)行連續(xù)統(tǒng)計(jì)測(cè)試,統(tǒng)計(jì)單位1 cycle等于1 ns,如表1所示。
其中,總耗時(shí)為測(cè)試n次之后的單向傳輸耗時(shí);測(cè)試次數(shù)為總的測(cè)試次數(shù);每次耗時(shí)為每次單向發(fā)送數(shù)據(jù)時(shí),從任務(wù)發(fā)出數(shù)據(jù)到對(duì)方節(jié)點(diǎn)收到數(shù)據(jù)所消耗的時(shí)間;消息大小為發(fā)送數(shù)據(jù)塊的大?。籘hroughput為傳輸帶寬。Throughput的計(jì)算公式為(消息大小/(總耗時(shí)/測(cè)試次數(shù)))×1 000 000 000×8(單位bit/s)。
按照理論計(jì)算,RapidIO 5 Gb/s模式下的去除8 b/10 b編碼后的理論有效帶寬是4 Gb/s,然后還要去除驅(qū)動(dòng)、中間層及應(yīng)用層的系統(tǒng)開銷,最終的實(shí)際有效帶寬不超過理論有效帶寬的80%。
從測(cè)試結(jié)果看,在采用LINX中間件架構(gòu)構(gòu)建的分布式系統(tǒng)通信方式下,傳輸帶寬隨發(fā)送的數(shù)據(jù)增大而增大,由于TMS320C6678的RapidIO傳輸硬件限制,傳輸?shù)臄?shù)據(jù)包最大不超過1 MB。一般采用RapidIO傳輸?shù)臄?shù)據(jù)量是比較大的,典型情況下在傳輸大于4 KB的數(shù)據(jù)時(shí),帶寬趨向穩(wěn)定,結(jié)果接近于有效實(shí)際帶寬。
因此,采用LINX中間件架構(gòu)構(gòu)建的分布式系統(tǒng),在使用簡(jiǎn)便、跨介質(zhì)傳輸和有效錯(cuò)誤檢測(cè)等優(yōu)點(diǎn)特性的基礎(chǔ)上,在大數(shù)據(jù)量的傳輸模式下,性能接近于直接驅(qū)動(dòng)模式。
目前TMS320C6678芯片被越來越廣泛地使用在通信、雷達(dá)、聲納、電子對(duì)抗等領(lǐng)域,由于系統(tǒng)設(shè)計(jì)日益復(fù)雜,通信接口多樣,需要分布式的透明傳輸中間件模塊,把系統(tǒng)中幾十個(gè)乃至上百個(gè)TMS320C6678內(nèi)核節(jié)點(diǎn)無縫連接起來。針對(duì)TMS320C6678核間、片間、板間的通信要求,本文提出了一種稱為L(zhǎng)INX的分布式系統(tǒng)節(jié)點(diǎn)間的透明傳輸模型,提供了實(shí)現(xiàn)方法及性能測(cè)試數(shù)據(jù),為基于TMS320C6678芯片的系統(tǒng)軟件設(shè)計(jì)提供了參考。
參考文獻(xiàn)
[1] Texas Instrument TMS320C6678 Multicore Fixed and Floating-Point Digital Signal Processor[R]. SPRS691, 2010.
[2] KeyStone architecture serial RapidIO(SRIO) user guide[R]. SPRUGW1,2010.
[3] 彭益智.一種基于TMS320C6678的JPEG編碼算法并行實(shí)現(xiàn)方法[J].指揮控制與仿真,2012,34(1):121.
[4] 鄭章汝.基于TMS320C6678的雷達(dá)信號(hào)處理機(jī)設(shè)計(jì)[J].工業(yè)控制計(jì)算機(jī),2012,25(11):14.
[5] 齊恩勇.基于多核處理器的彈載嵌入式系統(tǒng)設(shè)計(jì)研究[J].電子設(shè)計(jì)工程,2013,21(6):105.
如需購買,請(qǐng)直接點(diǎn)擊,官方大促75折