《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 多核DSP與FPGA高速數(shù)據(jù)傳輸系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
多核DSP與FPGA高速數(shù)據(jù)傳輸系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
2018年電子技術(shù)應(yīng)用第12期
陳術(shù)濤,,沈 志,,王春聯(lián),胡 奇
中國航天科工集團(tuán)第九總體設(shè)計(jì)部,,湖北 武漢430040
摘要: 針對嵌入式圖像處理系統(tǒng)中大數(shù)據(jù)量,、高傳輸速度及和高實(shí)時(shí)運(yùn)算性能的需求,提出一種以多核DSP TMS320C6678為核心的高速數(shù)據(jù)傳輸存儲(chǔ)系統(tǒng),,基于DSP高速串行Rapid IO(SRIO)模塊進(jìn)行圖像數(shù)據(jù)高速傳輸,,使用SRIO模塊的Direct I/O傳輸模式,采用4x接口模式配置,,每路接口傳輸速率為3.125 Gb/s,,理論傳輸速率為10 Gb/s,同時(shí)使用DDR3控制器模塊擴(kuò)展存儲(chǔ)空間,,實(shí)現(xiàn)光學(xué)及雷達(dá)圖像的共享存儲(chǔ),。通過實(shí)驗(yàn)結(jié)果表明,設(shè)計(jì)的SRIO高速傳輸系統(tǒng)傳輸速度超過8 Gb/s,,達(dá)到理論值的80%以上,,滿足大數(shù)據(jù)高速傳輸需求,有效實(shí)現(xiàn)了多處理器之間的數(shù)據(jù)傳輸和共享存儲(chǔ),。
中圖分類號(hào): TN911,;TP39
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.181791
中文引用格式: 陳術(shù)濤,沈志,,王春聯(lián),,等. 多核DSP與FPGA高速數(shù)據(jù)傳輸系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2018,,44(12):40-43.
英文引用格式: Chen Shutao,,Shen Zhi,Wang Chunlian,,et al. Design and implementation of high speed data transfer system between multi-core DSP and FPGA[J]. Application of Electronic Technique,,2018,44(12):40-43.
Design and implementation of high speed data transfer system between multi-core DSP and FPGA
Chen Shutao,,Shen Zhi,,Wang Chunlian,Hu Qi
The 9th Designing of China Aerospace Science Industry Corp,,Wuhan 430040,,China
Abstract: To meet the demands of large data volume, high transmission speed and high real-time computing performance in embedded image processing system, this paper proposes a high-speed data transmission storage system with multi-core DSP TMS320C 6678 as the core. Based on the DSP high-speed serial Rapid IO(SRIO) module for high-speed transmission of image data, using the SRIO module′s direct I/O transmission mode, using the 4x interface mode configuration, each interface transmission rate is 3.125 Gb/s, and theoretical transmission rate is 10 Gb/s. At the same time, DDR3 controller module is used to expand storage space and achieve shared storage of optical and radar images. The test results show that the SRIO high-speed transmission system designed has a transmission speed of more than 8Gb/s, which reaches more than 80% of the theoretical value, satisfies the high-speed transmission needs of large data, and effectively realizes data transmission and shared storage between multiple processors.
Key words : high-speed transmission,;DSP,;SRIO,;interface interconnection

0 引言

    隨著現(xiàn)代信息技術(shù)的快速發(fā)展,數(shù)字信號(hào)處理技術(shù)在軍用和民用市場都得到了廣泛的應(yīng)用,,同時(shí)日趨復(fù)雜的信號(hào)處理需求也對處理平臺(tái)提出了更高的要求,,特別是在無線通信、人工智能,、航空航天等高科技領(lǐng)域信號(hào)處理實(shí)時(shí)性高,,數(shù)據(jù)量大,數(shù)據(jù)交互及處理算法復(fù)雜度高,,依靠單個(gè)處理器的傳統(tǒng)解決方案已經(jīng)無法滿足這些需求,,高度集成的多處理器嵌入式系統(tǒng)逐步成為高速信號(hào)處理平臺(tái)的主流方案,基于“DSP+FPGA”的協(xié)同處理架構(gòu)憑借其超強(qiáng)的處理能力和廣泛的工程化應(yīng)用優(yōu)勢,,已經(jīng)成為通用信號(hào)處理平臺(tái)的首選,。采用“DSP+FPGA”的信號(hào)處理系統(tǒng)顯著提升了運(yùn)算速度和數(shù)據(jù)處理能力,但同時(shí)不可避免地引入了處理器之間的數(shù)據(jù)交換問題,,隨著交互頻率和數(shù)據(jù)量的急劇增加,,對芯片間的高速數(shù)據(jù)傳輸要求越來越高,傳統(tǒng)的共享總線已無法滿足高性能嵌入式系統(tǒng)的數(shù)據(jù)交互需求,,成為了處理平臺(tái)性能進(jìn)一步提升的瓶頸,。因此,需要高性能互聯(lián)體系結(jié)構(gòu)來解決嵌入式處理器之間的數(shù)據(jù)交互問題,,高速串行Rapid IO總線正是基于該需求設(shè)計(jì)的新型高性能互連總線技術(shù),,該總線以其高帶寬、低延時(shí),、低功耗及高可靠性等優(yōu)勢為嵌入式系統(tǒng)內(nèi)部互連提供了良好的解決方案,。本文設(shè)計(jì)一種基于SRIO總線的DSP與FPGA通信互連架構(gòu),其中多核DSP TMS320C6678的SRIO接口模塊采用4x接口模式配置,,每路接口傳輸速率為3.125 Gb/s,,理論傳輸速率達(dá)到10 Gb/s,同時(shí)使用DSP片上DDR3控制器模塊擴(kuò)展2 GB高速緩存進(jìn)行數(shù)據(jù)讀寫,,從而實(shí)現(xiàn)系統(tǒng)內(nèi)部數(shù)據(jù)高速傳輸及共享存儲(chǔ),。

1 Rapid IO協(xié)議架構(gòu)介紹

    Rapid IO體系架構(gòu)是為了滿足高性能嵌入式系統(tǒng)互連需求而設(shè)計(jì)的一種系統(tǒng)級(jí)互連技術(shù),它支持芯片間以及板間的互連與通信,,廣泛應(yīng)用于多處理器,、多存儲(chǔ)器及通用信號(hào)處理平臺(tái)等的交互連接。Rapid IO的數(shù)據(jù)傳輸操作基于數(shù)據(jù)包的請求與響應(yīng),,數(shù)據(jù)包是點(diǎn)對點(diǎn)通信設(shè)備的消息載體,,通信過程首先由主控器件發(fā)出一個(gè)請求事務(wù),,并將該請求事務(wù)以包的形式傳輸給目標(biāo)器件,目標(biāo)器件收到請求事務(wù)后執(zhí)行相應(yīng)操作并產(chǎn)生響應(yīng)事務(wù)返回給通信的發(fā)起方,,發(fā)起方接收到響應(yīng)包后一次通信操作完成,。Rapid IO互連體系結(jié)構(gòu)共分為三層,分別為邏輯層,、傳輸層和物理層,。邏輯層為協(xié)議最高層,定義了全部操作協(xié)議和包格式,,為端點(diǎn)器件發(fā)起和完成事務(wù)提供必要的信息,;傳輸層處于協(xié)議中間層,定義了Rapid IO的地址空間,、尋址機(jī)制和用于包交換的路由信息,;物理層處于協(xié)議最底層,主要定義電氣特性,、包傳輸機(jī)制,、流量控制及低級(jí)錯(cuò)誤管理等器件級(jí)接口細(xì)節(jié),Rapid IO協(xié)議層次結(jié)構(gòu)如圖1所示,。

qrs4-t1.gif

2 基于SRIO的互連系統(tǒng)設(shè)計(jì)

2.1 TMS320C6678的SRIO模塊特性

    TMS320C6678 DSP外圍接口豐富,,片內(nèi)集成了基于1x/4x LP-Serial規(guī)范的串行Rapid IO外設(shè)接口模塊,即SRIO,。該模塊支持4通道的Rapid IO高速傳輸,,也可配置成1x、2x和4x等多種接口模式,,單個(gè)通道的傳輸速度最大可達(dá)5 Gb/s,,在實(shí)際工程化應(yīng)用中也可靈活配置到1.25 Gb/s、2.5 Gb/s和3.125 Gb/s使用,。

    基于Rapid IO的高速傳輸操作協(xié)議由邏輯層定義,,SRIO接口邏輯層支持I/O邏輯操作(Direct I/O)和消息傳遞(Message Passing)兩種數(shù)據(jù)傳輸機(jī)制,其中I/O邏輯操作包含NREAD,、NWRITE,、NWRITE_R、SWRITE,、Atomic和MAINTENANCE共6種基本I/O操作,,消息傳遞主要包括DOORBELL和MESSAGE兩種,具體如表1所示,。

qrs4-b1.gif

    直接I/O模式是最簡單實(shí)用的傳輸方式,,主設(shè)備可以直接讀寫從設(shè)備的存儲(chǔ)器,可通過多種請求和響應(yīng)事務(wù)直接完成對應(yīng)存儲(chǔ)空間的數(shù)據(jù)讀寫,其中SWRITE事務(wù)是高效的傳輸格式,,接口實(shí)現(xiàn)簡單,,通信開銷小,適用于點(diǎn)對點(diǎn)的大數(shù)據(jù)直接傳輸,;消息傳遞模式使用信箱和信件的方式傳遞信息,,類似以太網(wǎng)的傳輸方式,接收方根據(jù)內(nèi)部地址與信箱的映射關(guān)系對數(shù)據(jù)進(jìn)行讀寫,,適用于包含多個(gè)處理器的復(fù)雜系統(tǒng)間通信,。消息傳遞機(jī)制中包含有一種特殊的輕量級(jí)消息傳遞事務(wù)類型,,即門鈴消息(Doorbell),,門鈴消息數(shù)據(jù)包僅可填充一個(gè)16位大小的數(shù)據(jù)負(fù)載,適用于發(fā)送SRIO通信的中斷信息,,接收方將收到的門鈴事務(wù)放到門鈴消息隊(duì)列中,,通過解析門鈴信息進(jìn)行相應(yīng)的響應(yīng)操作。

2.2 傳輸系統(tǒng)互聯(lián)設(shè)計(jì)

    本文設(shè)計(jì)的DSP與FPGA通信系統(tǒng)基于圖2所示的高速串行Rapid IO接口進(jìn)行互聯(lián)設(shè)計(jì),。在FPGA端選用Xilinx公司的Kintex7系列芯片,,F(xiàn)PGA對外接口接收雷達(dá)回波數(shù)據(jù)或者光學(xué)相機(jī)采集的圖像數(shù)據(jù),然后通過4路SRIO高速接口將數(shù)據(jù)實(shí)時(shí)傳輸給DSP芯片,,F(xiàn)PGA的SRIO接口采用開發(fā)平臺(tái)提供的IP核進(jìn)行設(shè)計(jì)實(shí)現(xiàn),。DSP端芯片選用TI公司的TMS320C6678高性能多核浮點(diǎn)型處理器,該芯片采用全新的Keystone架構(gòu)和C66x內(nèi)核,,其內(nèi)部有8個(gè)速度達(dá)到1.25 GHz的高性能定點(diǎn)/浮點(diǎn)CPU內(nèi)核,,每個(gè)內(nèi)核的單周期定點(diǎn)性能高達(dá)32MAC,浮點(diǎn)性能高達(dá)16FLOP,,單個(gè)CorePac內(nèi)核中配置了32 KB一級(jí)程序存儲(chǔ)器(L1P),、32 KB一級(jí)數(shù)據(jù)存儲(chǔ)器(L1D)以及512 KB二級(jí)局部存儲(chǔ)器(L2),高性能的計(jì)算能力和高速緩存能力有效地支撐了復(fù)雜圖像處理算法的工程化應(yīng)用需求,。同時(shí)6678處理器內(nèi)部集成了DDR3控制器模塊,,帶有64 bit位寬的DDR3存儲(chǔ)器接口總線,最高速率可達(dá)1 600 MTS,,可供尋址的空間達(dá)到了8 GB,,本系統(tǒng)外掛了4片256×64 bit的DDR3 SDRAM,總?cè)萘窟_(dá)到2 GB,,完全滿足系統(tǒng)數(shù)據(jù)緩存需求,,DSP處理器可以通過EDMA的方式直接對DDR3存儲(chǔ)器進(jìn)行讀寫訪問,減少了通過內(nèi)核CPU讀寫大數(shù)據(jù)的資源占用,,有效提升系統(tǒng)并行運(yùn)算效能,。 

qrs4-t2.gif

3 通信系統(tǒng)軟件設(shè)計(jì)

3.1 SRIO接口驅(qū)動(dòng)設(shè)計(jì)

    根據(jù)上文的互聯(lián)系統(tǒng)設(shè)計(jì),為了實(shí)現(xiàn)接口通信功能需進(jìn)行接口軟件設(shè)計(jì),DSP端的SRIO外設(shè)模塊驅(qū)動(dòng)編程主要有以下幾個(gè)方面:

    (1)通信設(shè)備ID設(shè)置

    SRIO模塊支持8位和16位兩種模式ID設(shè)置,,8位的ID可容納256個(gè)單獨(dú)設(shè)備,,16位ID可容納65 536個(gè)單獨(dú)設(shè)備,通信雙方需采用相同設(shè)置模式,,但要設(shè)置為不同的ID號(hào),,本系統(tǒng)采用8位ID模式設(shè)置,DSP和FPGA ID號(hào)設(shè)置如下:

    #define SRIO_DSP_BASE_ID  (0x00)

    #define SRIO_FPGA_BASE_ID (0xFF)

    (2)SRIO工作模式配置

    SRIO模塊可配置成1x,、2x和4x等多種端口模式使用,,可通過路徑控制寄存器PLM_SP(n)_PATH_CTL的PATH_CONFIG和PATH_MODE作用域進(jìn)行編程配置。本系統(tǒng)采用4x模式配置,,單通道速率配置為3.125 Gb/s,,具體配置程序如下:

    CSL_SRIO_Enable3_125GBaud(hSrio, 0);

    CSL_FINS(hSrio->RIO_PLM[0].RIO_PLM_SP_PATH_CTL,SRIO_RIO_PLM_SP_PATH_CTL_PATH_CONFIGURATION, 4);

    CSL_FINS(hSrio->RIO_PLM[0].RIO_PLM_SP_PATH_CTL, SRIO_RIO_PLM_SP_PATH_CTL_PATH_MODE, 4);

    (3)SerDes模塊配置

    SRIO接口通過SerDes(Serialize Deserialize)模塊接收和發(fā)送高速串行差分信號(hào),該模塊由TX,、RX,、PLL、S2P(serial-to-parallel),、P2S(parallel-to-serial)及時(shí)鐘恢復(fù)等部分組成,,初始化配置主要對PLL模塊的SRIO_SERDES_CFGPLL寄存器的MPY域賦值0x00010100,表示PLL倍頻5倍,,并對ENPLL位賦值1使能PLL,; 對SRIO_SERDES_CFGTX[0-3]和SRIO_SERDES_CFGRX[0-3]寄存器的RATE位賦值0x01,表示每個(gè)時(shí)鐘周期采樣兩位數(shù)據(jù),,結(jié)合時(shí)鐘倍頻配置可以計(jì)算出傳輸速率rate=clk*MPY*RATE=312.5MHz*5*2bit=3.125 Gb/s,,即得到需要的速率,配置功能函數(shù)如下:

    CSL_BootCfgSetSRIOSERDESConfigPLL(cfgPll);

    for(index = 0; index < 4; index++)

    {

       CSL_BootCfgSetSRIOSERDESRxConfig(index, cfgRx);

       CSL_BootCfgSetSRIOSERDESTxConfig(index, cfgTx);

    }

    (4)LSU模塊配置

    SRIO的Direct I/O和Message Passing兩種傳輸機(jī)制使用不同的傳輸控制模塊,,其中控制Direct I/O模式包發(fā)送的為LSU(Load/Store Unit)模塊,,系統(tǒng)中一共有8個(gè)LSU,每個(gè)LSU都有獨(dú)立的7個(gè)寄存器,,即LSU_Reg0--LSU_Reg6,,Reg0--Reg4用來配置傳輸控制信息,REG5,、REG6用來存儲(chǔ)命令和狀態(tài)信息,,Reg6有只讀和只寫兩種模式,其他寄存器都是可讀可寫的,,LSU寄存器組定義如圖3所示,。

qrs4-t3.gif

    由圖3可見LSU的Reg0~4中主要配置了Direct I/O傳輸?shù)目刂菩畔ⅲ缭吹刂?、目的地址,、?shù)據(jù)長度,、設(shè)備ID、端口號(hào),、優(yōu)先級(jí)等,;Reg5寄存器配置門鈴信息和包格式等命令信息;Reg6在只讀模式下通過Busy和Full位信息確認(rèn)指令寄存器和影寄存器是否空閑,,該兩位信息都為0時(shí)表示當(dāng)前LSU可用,, LTID位和LCB位信息一起用于確認(rèn)傳輸?shù)耐瓿尚畔ⅲ╟ompletion code)。

    LSU寄存器配置可使用CSL庫文件中的API函數(shù)CSL_SRIO_SetLSURegx()對每一個(gè)寄存器單獨(dú)賦值編程,,也可通過編輯結(jié)構(gòu)體SRIO_LSU_TRANSFER變量對ByteCount,、DestID、deviceID,、TType,、FType、Drbll_Info等關(guān)鍵成員變量進(jìn)行賦值,,然后通過API函數(shù)CSL_SRIO_SetLSUTransfer()完成整個(gè)傳輸?shù)呐渲煤蛦?dòng),。

3.2 數(shù)據(jù)傳輸系統(tǒng)軟件設(shè)計(jì)

    本文設(shè)計(jì)的DSP與FPGA通信系統(tǒng)通信節(jié)點(diǎn)較少,,傳輸數(shù)據(jù)量大,,屬于點(diǎn)對點(diǎn)的高速數(shù)據(jù)傳輸,所以SRIO接口采用Direct I/O傳輸方式和Doorbell消息相結(jié)合的方案進(jìn)行數(shù)據(jù)交互,,數(shù)據(jù)包格式采用Direct I/O方式的SWRITE流寫操作,,傳輸方案實(shí)現(xiàn)簡單,同時(shí)通信發(fā)起方在數(shù)據(jù)發(fā)送完成后發(fā)送Doorbell消息通知接收方傳輸完成,,接收方收到Doorbell消息后進(jìn)行相應(yīng)處理,,保證通信過程的實(shí)時(shí)性和正確性。具體軟件流程如圖4所示,。

qrs4-t4.gif

    系統(tǒng)上電啟動(dòng)后,,軟件對DSP系統(tǒng)中時(shí)鐘、定時(shí)器,、存儲(chǔ)器,、中斷等必要設(shè)備進(jìn)行初始化,在SRIO模塊初始化過程中需等待DSP與FPGA的SRIO接口連接成功才表示初始成功,,然后便可以進(jìn)行自定義的數(shù)據(jù)傳輸操作了,。根據(jù)TMS320C6678 DSP存儲(chǔ)空間配置,本系統(tǒng)中DDR3緩存地址區(qū)域?yàn)?x80000000—0xFFFFFFFF,,大小為2 GB,,SRIO接口可直接對存儲(chǔ)空間進(jìn)行讀寫訪問。根據(jù)系統(tǒng)設(shè)計(jì)FPGA每發(fā)送完一組數(shù)據(jù)后,,都將附帶發(fā)送一個(gè)Doorbell消息作為完成標(biāo)記,,Doorbell的16 bit信息位填充內(nèi)容為0x0001,表示使用DOORBELL0_ICRR寄存器的ICR1映射中斷事件,系統(tǒng)中設(shè)置CPU中斷4作為響應(yīng)Doorbell事件的CPU中斷,,DSP收到Doorbell消息后將觸發(fā)CPUINT4,,程序跳轉(zhuǎn)執(zhí)行中斷響應(yīng)函數(shù),在中斷響應(yīng)函數(shù)中查詢中斷狀態(tài)位,,對接收數(shù)據(jù)包的正確性進(jìn)行判斷,,然后通過EDMA模塊將數(shù)據(jù)快速搬移到DDR3指定地址鎖存,并調(diào)用算法對數(shù)據(jù)進(jìn)行處理,。當(dāng)DSP需要向FPGA端回復(fù)應(yīng)答信息時(shí),,DSP程序通過配置LSU寄存器組向FPGA存儲(chǔ)地址發(fā)送數(shù)據(jù),當(dāng)LSU的Reg0~Reg5配置完成后傳輸開始,,程序軟件通過查詢LSU傳輸完成信息與Reg6中記錄的LCB位信息進(jìn)行比較,,判斷當(dāng)前傳輸是否成功。

4 測試與驗(yàn)證

    針對上文所設(shè)計(jì)的SRIO互聯(lián)系統(tǒng)進(jìn)行性能測試,,系統(tǒng)設(shè)計(jì)單通道傳輸速度為3.125 Gb/s,,物理層SerDes模塊采用8B/10B編碼,所以4通道的SRIO接口理論傳輸速度為3.125×4×8/10=10 Gb/s,。實(shí)際測試過程中采用多組長度不同的數(shù)據(jù)進(jìn)行測試,,每組測試數(shù)據(jù)多次運(yùn)行取平均值,測試結(jié)果如表2所示,。

qrs4-b2.gif

    測試結(jié)果表明,,本文設(shè)計(jì)的DSP與FPGA互聯(lián)系統(tǒng)能夠按照設(shè)計(jì)需求穩(wěn)定工作,數(shù)據(jù)讀寫正確,,傳輸速度較為穩(wěn)定,,當(dāng)數(shù)據(jù)量較大時(shí)通信開銷占總傳輸時(shí)間比例減小,整體傳輸速度超過8 Gb/s,,達(dá)到理論值10 Gb/s的80%以上,,傳輸效率較為理想。

5 結(jié)論

    本系統(tǒng)基于TI多核DSP TMS320C6678的SRIO接口模塊建立DSP與FPGA之間的高速通信互聯(lián)系統(tǒng),,采用SRIO模塊4x接口模式及每路接口3.125 Gb/s的傳輸速率實(shí)現(xiàn)DSP與FPGA間高速穩(wěn)定的數(shù)據(jù)傳輸,,同時(shí)使用DSP自帶DDR3控制器模塊實(shí)現(xiàn)對DSP外部擴(kuò)展DDR3 SDRAM存儲(chǔ)芯片的讀寫訪問,從而實(shí)現(xiàn)系統(tǒng)內(nèi)部數(shù)據(jù)傳輸及共享存儲(chǔ),。該系統(tǒng)已經(jīng)在大視場高分辨率光學(xué)圖像處理,、實(shí)時(shí)SAR雷達(dá)成像等多個(gè)工程項(xiàng)目中得到應(yīng)用驗(yàn)證。

參考文獻(xiàn)

[1] Texas Instruments.TMS320C6678 Multicore Fixed and Floating-Point Digital Signal Processor[Z].2014.

[2] Texas Instruments.KeyStone Architecture Serial Rapid IO(SRIO) User Guide[Z].2012.

[3] Texas Instruments.KeyStone Architecture DDR3 Memory Controller User Guide[Z].2011.

[4] Texas Instruments.TMS320C66x DSP CorePac User Guide[Z].2013.

[5] 王勇,,林粵偉,,吳冰冰,等.RapidIO嵌入式系統(tǒng)互連[M].北京:電子工業(yè)出版社,,2006.



作者信息:

陳術(shù)濤,,沈  志,,王春聯(lián),胡  奇

(中國航天科工集團(tuán)第九總體設(shè)計(jì)部,,湖北 武漢430040)

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。