當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于TMS320C6455的高速SRIO接口設(shè)計(jì)

引 言

        數(shù)字信號(hào)處理技術(shù)已廣泛應(yīng)用于通信、雷達(dá)、聲納、遙感、圖形圖像處理和語音處理等領(lǐng)域。隨著現(xiàn)代科技的發(fā)展,尤其是半導(dǎo)體工藝的進(jìn)入深亞微米時(shí)代,新的功能強(qiáng)勁的高性能數(shù)字信號(hào)處理器(DSP)也相繼推出,如ADI(美國模擬器件)公司的TigerSHARC系列和TI(德州儀器)公司的C6000系列,但是,要實(shí)現(xiàn)對(duì)運(yùn)算量和實(shí)時(shí)性要求越來越高的DSP 算法,如對(duì)基于分?jǐn)?shù)階傅立葉變換的Chirp信號(hào)檢測(cè)與估計(jì),合成孔徑雷達(dá)(SAR)成像,高頻地波雷達(dá)中的自適應(yīng)濾波和自適應(yīng)波束形成等算法,單片 DSP 仍然顯得力不從心。這些挑戰(zhàn)主要涉及兩個(gè)主題:一是計(jì)算能力,指設(shè)備、板卡和系統(tǒng)中分別可用的處理資源。采用多DSP、多FPGA系統(tǒng),將是提高運(yùn)算能力的一個(gè)有效途徑。二是連接性,從本質(zhì)上說就是實(shí)現(xiàn)不同設(shè)備、板卡和系統(tǒng)之間的“快速”數(shù)據(jù)轉(zhuǎn)移。對(duì)于一些復(fù)雜的信息系統(tǒng),對(duì)海量數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性提出了苛刻的要求,多DSP之間、DSP與高速AD采集系統(tǒng)、DSP與FPGA間的高速數(shù)據(jù)傳輸,是影響信號(hào)處理流程的主要瓶頸之一。TI公司最新推出的高性能 TMS320C6455(下文稱C6455)處理器,具有高速運(yùn)算能力的同時(shí)集成了高速串行接口SRIO,方便多DSP以及DSP與FPGA之間的數(shù)據(jù)傳輸,在一定程度上滿足了高速實(shí)時(shí)處理和傳輸?shù)囊蟆1疚脑诙郉SP+FPGA通用信號(hào)處理平臺(tái)的基礎(chǔ)上,深入研究了多DSP間,DSP與FPGA間的SRIO的數(shù)據(jù)通信和加載技術(shù)的軟硬件設(shè)計(jì)與實(shí)現(xiàn)。這些技術(shù)包括了目前SRIO接口的各種應(yīng)用方式,可作為SRIO接口及C6455開發(fā)提供參考[1-3]。

1 C6455特性及SRIO標(biāo)準(zhǔn)介紹

        C6455是目前單片處理能力最強(qiáng)的新型高性能定點(diǎn)DSP,它是TI 公司基于第三代先進(jìn)VeloviTI VLIW(超長(zhǎng)指令字)結(jié)構(gòu)開發(fā)出來的新產(chǎn)品。最高主頻為1.2GHz,16位定點(diǎn)處理能力為9600MMAC/s。C6455建立在增強(qiáng)型C64x+ DSP內(nèi)核基礎(chǔ)之上,代碼尺寸平均縮短了20%至30%,周期效率提高了20%。C6455不僅是內(nèi)核的增強(qiáng)和運(yùn)算速度的提升,相比以前的芯片,集成了豐富的外圍接口,如千兆以太網(wǎng)控制器,66 MHz PCI總線接口,最重要的是增加了新的外設(shè)接口SRIO,全雙工工作時(shí),四個(gè)端口峰值速率每秒高達(dá)25 Gbits,解決了DSP高速數(shù)據(jù)傳輸?shù)钠款i,降低了開發(fā)多處理器系統(tǒng)的難度[4-5]。

         RapidIO是新一代高速互連技術(shù),已于2004年被國際標(biāo)準(zhǔn)化組織(ISO)和國際電工協(xié)會(huì)(IEC)批準(zhǔn)為ISO/IEC DIS 18372標(biāo)準(zhǔn)。RapidIO互連定義包括兩類技術(shù):面向高性能微處理器及系統(tǒng)互連的Parallel RapidIO接口;面向串行背板、DSP和相關(guān)串行控制平面應(yīng)用的Serial RapidIO接口。SRIO支持編程模型包括基本存儲(chǔ)器映射IO事務(wù)、基于端口的消息傳遞和基于硬件一致性的全局共享分布式處理器。

        SRIO互連架構(gòu)是一個(gè)開放的標(biāo)準(zhǔn),滿足了嵌入式基礎(chǔ)實(shí)施在應(yīng)用方面的廣泛需要??尚械膽?yīng)用包括多處理器、存儲(chǔ)器、網(wǎng)絡(luò)設(shè)備中的存儲(chǔ)器映射I/O器件、存儲(chǔ)子系統(tǒng)和通用計(jì)算平臺(tái)。這一互連技術(shù)主要作為系統(tǒng)內(nèi)部互連,支持芯片到芯片和板到板的通信,可以實(shí)現(xiàn)從1Gbps到60Gbps的性能水平,在高速互連方面將會(huì)有廣闊的發(fā)展前景[6]。
2 C6455間的SRIO通信

2.1 C6455間的接口互連

       C6455內(nèi)嵌了SRIO模塊,擁有4個(gè)全雙工的port(端口),支持SRIO 1x/4x串行協(xié)議。每個(gè)port支持1.25Gbps、2.5Gbps、3.125Gbps的波特率,每個(gè)port可以單獨(dú)構(gòu)成1x模式,也可以四個(gè) port共同構(gòu)成4x模式。SRIO采用的是CML(電流型邏輯)電平,布線時(shí)必須遵循布線約束。為了最小化來自接收方100歐終端電阻的反射,差分對(duì)應(yīng)該具有50歐的阻抗,并且差分走線必須等長(zhǎng)。在接收端串接耦合電容,隔離直流偏置。圖1是兩片C6455之間SRIO接口設(shè)計(jì)

2.2 包格式

        SRIO的傳輸操作是基于請(qǐng)求和響應(yīng)機(jī)制,包(packet)是系統(tǒng)中端點(diǎn)器件的通信單元。圖2是一次傳輸操作的流程圖。首先由發(fā)起者產(chǎn)生一個(gè)傳輸請(qǐng)求,請(qǐng)求包被傳輸?shù)较噜彽慕粨Q器件,從而進(jìn)入交換結(jié)構(gòu),通過交換機(jī)構(gòu)這個(gè)完整的請(qǐng)求包被轉(zhuǎn)發(fā)到目標(biāo)器件。目標(biāo)器件根據(jù)請(qǐng)求完成相應(yīng)操作后,發(fā)送相應(yīng)的響應(yīng)包,經(jīng)過交換機(jī)構(gòu)傳回到發(fā)起者。此時(shí)一個(gè)完整的傳輸過程完成。


        SRIO有三個(gè)層的協(xié)議共同組成,每層協(xié)議在包中都有體現(xiàn)。圖3給出典型的請(qǐng)求包和響應(yīng)包的包格式示意圖。[!--empirenews.page--]

        請(qǐng)求包以物理層字段開始。S位指示這是一個(gè)包還是一個(gè)控制符號(hào),AckID表明交換結(jié)構(gòu)器件將使用控制符號(hào)來確認(rèn)哪一個(gè)包,Prio字段指示用于流量控制的包優(yōu)先級(jí),TT為目標(biāo)地址和源地址字段指示傳輸?shù)刂返臋C(jī)制類型、報(bào)應(yīng)被遞送到的器件的地址和產(chǎn)生包的器件的地址,F(xiàn)type表示正被請(qǐng)求的事務(wù),長(zhǎng)度字段等于編碼后事務(wù)的長(zhǎng)度,SRIO事務(wù)數(shù)據(jù)的有效載荷長(zhǎng)度從1到256字節(jié)不等,源事務(wù)ID指示發(fā)送器件的事務(wù)ID,SRIO器件在兩個(gè)端點(diǎn)器件間最多允許256個(gè)未完成的事務(wù)。對(duì)于存儲(chǔ)器映射事務(wù),跟隨在源事務(wù)ID后面的是器件偏移地址字段,用于指示數(shù)據(jù)的存放地址,CRC為校驗(yàn)碼。

        響應(yīng)包與請(qǐng)求包類似,狀態(tài)字段指示是否成功完成了事務(wù),目標(biāo)事務(wù)ID字段的值與請(qǐng)求包中斷事務(wù)ID字段的值相等。

2.3 SRIO基本讀寫和門鈴操作

        根據(jù)包的格式的不同,將事務(wù)劃分成很多類型,其中最重要的類型有三種:NREAD(基本讀操作)、NWRITE(基本寫操作)、DOORBELL(門鈴操作)。 通過這三種類型的組合就可以完成所有的存儲(chǔ)器讀寫操作。在介紹讀寫操作之前,先介紹一下與SRIO有關(guān)的DMA操作。

        在C6455上,SRIO數(shù)據(jù)傳輸和DMA傳輸是結(jié)合的。此DMA與EDMA方式是獨(dú)立的,當(dāng)進(jìn)行SRIO傳輸時(shí),DMA以自動(dòng)方式啟動(dòng)。對(duì)與發(fā)送方來說,DMA將數(shù)據(jù)從L2 SRAM搬移到SRIO端口,對(duì)于接收方來說,DMA將數(shù)據(jù)從SRIO端口搬移到L2 SRAM內(nèi)存。因此,在進(jìn)行傳輸時(shí),讀寫地址是直接顯示在包里的,而且此地址就是被讀寫的DSP的地址。換句話說,DSP可以對(duì)另一片DSP的L2 SRAM直接進(jìn)行讀寫操作。圖4就是自動(dòng)DMA的傳輸操作。

        讀寫操作和門鈴操作主要由圖5中的7個(gè)寄存器進(jìn)行控制,這些寄存器里的值會(huì)自動(dòng)加入到包中。在SRIO總線上,每個(gè)SRIO設(shè)備都有一個(gè)相應(yīng)的設(shè)備地址,設(shè)備地址好比一個(gè)SRIO設(shè)備的ID,用于區(qū)別不同的SRIO設(shè)備。當(dāng)SRIO總線上的一個(gè)SRIO設(shè)備進(jìn)行讀寫訪問時(shí),它發(fā)送的包就含有設(shè)備地址,只有自身設(shè)備地址與包的設(shè)備地址符合的SRIO設(shè)備才會(huì)對(duì)此次傳輸做出響應(yīng)。SRIO Address MSB和SRIO Address LSB共同構(gòu)成64-bit尋址,指示的是被訪問SRIO設(shè)備的地址。開發(fā)板上只用到32-bit尋址,因此,SRIO Address MSB為0,SRIO Address LSB指示的是被訪問的DSP的地址。DSP address指示的是本地DSP的地址。Byte_count這一項(xiàng)給出的是傳輸字節(jié)數(shù),一次讀寫操作(可以是很多包)最多可以傳送4Kbytes的數(shù)據(jù)。DestID是目標(biāo)設(shè)備的ID號(hào),用來區(qū)分SRIO總線上的設(shè)備。Drbll Info用于門鈴事件,通過此位段的設(shè)置,從而向目標(biāo)DSP產(chǎn)生中斷。Packet Type用來指示此次傳輸?shù)念愋停鏝READ、NWRITE和DOORBELL等。

         圖6是SRIO模塊的NREAD、NWRITE和DOORBELL程序編寫流程圖。首先初始化SRIO端口,此過程主要需要配置和使能PLL模塊,使能并配置接收模塊,使能并配置發(fā)送模塊,使能并配置中斷模塊。配置這些模塊特別要注意的是使主DSP和從DSP的時(shí)鐘模塊工作在相同的波特率。初始化完成后,查詢SRIO鏈路是否成功建立,如果SRIO鏈路沒有建立,則重新初始化SRIO端口,直到SRIO鏈路建立為止。鏈路建立后就可以進(jìn)行讀寫操作和門鈴操作,兩片DSP之間可以進(jìn)行高速的數(shù)據(jù)傳輸。實(shí)際測(cè)試表明,DSP間的數(shù)據(jù)傳輸可工作于1x和4x模式,每種模式可以正常工作于每通道3.125Gbps 的傳輸速率。

3 C6455間的SRIO加載

3.1 C6455引導(dǎo)模式

        在C6455的地址空間0x00100000到0x00107FFF集成了32K的內(nèi)部ROM。此ROM中固化了一段 “boot loader”的引導(dǎo)代碼,它主要作用是在DSP上電時(shí),對(duì)DSP進(jìn)行必要的配置,以便輔助HPI/PCI/SRIO等接口進(jìn)行加載;另外,它還可以將代碼從外部存儲(chǔ)器讀到內(nèi)部L2 SRAM,以完成代碼加載。[!--empirenews.page--]

        C6455復(fù)位和上電時(shí)的引導(dǎo)模式主要有:NO BOOT模式,主機(jī)引導(dǎo)模式,F(xiàn)LASH引導(dǎo)模式,主I2C引導(dǎo)模式,從I2C引導(dǎo)模式,SRIO引導(dǎo)模式。C6455的EMIFA端口引腳EMIFA [0:19]和ABA[1:0]被復(fù)用作配置引腳,和專用引腳PCI_EN一起構(gòu)成C6455的硬件配置引腳。采用哪種引導(dǎo)模式,由復(fù)位或上電時(shí)采樣管腳 BOOTMOOD[3:0]來決定[7-9]。表1是引導(dǎo)模式選擇方式。

        對(duì)被加載的從DSP來說,設(shè)置BOOTMOOD[3:0]=1x00,此時(shí)為SRIO引導(dǎo)模式,SRIO被配置成四個(gè)1x端口,由port0對(duì)從DSP進(jìn)行加載。另外,差分晶振選擇125M的時(shí)鐘源。上電后,固化在從DSP內(nèi)部ROM的“boot loader”對(duì)從DSP進(jìn)行一些必要的初始化配置:
使能全局中斷,SRIO的中斷管腳被使能,使從 DSP可以接收來自主DSP的中斷;

       boot loader配置PLL1模塊為15倍頻,也就是使內(nèi)核工作在750MHz;

       boot loader初始化從 DSP的SRIO端口,使SRIO的時(shí)鐘模塊配置成1.25G。

       主DSP對(duì)SRIO端口進(jìn)行初始化配置,并將時(shí)鐘模塊配置成1.25G。此時(shí)主DSP與從DSP之間互相發(fā)送同步信息,直到鏈路建立。鏈路成功建立以后,主DSP執(zhí)行NWRITE操作,將待加載程序裝載到L2 SRAM內(nèi)存中。代碼裝載完成后,執(zhí)行門鈴操作,向從DSP發(fā)送中斷,從DSP收到中斷后脫離“掛起”狀態(tài),從地址0x800000處運(yùn)行程序,加載過程結(jié)束。圖7便是SRIO引導(dǎo)過程。實(shí)測(cè)表明,主DSP通過FLASH加載完成后,可通過SRIO接口對(duì)從DSP完成加載。


4 C6455與FPGA等構(gòu)建SRIO網(wǎng)絡(luò)

        SRIO與微處理器總線類似,它在硬件中完成存儲(chǔ)器和器件尋址以及分組處理,降低了用于I/O處理的開銷,減小了延遲。一個(gè)運(yùn)行于3.125 Gbps的4通道SRIO鏈路能在完全保持?jǐn)?shù)據(jù)完整性的前提下提供25 Gbps的流量,保障了海量數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性。
SRIO網(wǎng)絡(luò)建立在兩個(gè)“基本模塊”基礎(chǔ)之上:端點(diǎn)設(shè)備(Endpoint)和交換設(shè)備(Switch)。有兩種連接方式,一種是簡(jiǎn)單的端點(diǎn)到端點(diǎn)互聯(lián),一種是端點(diǎn)到交換設(shè)備的互聯(lián),端點(diǎn)設(shè)備負(fù)責(zé)收發(fā)數(shù)據(jù)包,交換設(shè)備負(fù)責(zé)在端口之間傳遞數(shù)據(jù)包,但不負(fù)責(zé)數(shù)據(jù)包的解釋。通過Switch交換,可以構(gòu)建一個(gè) CPU,DSP以及FPGA不同平臺(tái)互聯(lián)互通的數(shù)據(jù)傳輸網(wǎng),進(jìn)行共享式或分布式處理。圖8給出了SRIO網(wǎng)絡(luò)的構(gòu)建模塊。


        C6455具有很強(qiáng)的處理能力,但對(duì)于并行算法,采用FPGA可以達(dá)到更高的效率。本文以SRIO為橋接,設(shè)計(jì)了一個(gè)C6455和Xilinx Virtex-4 FPGA兩者相結(jié)合的處理平臺(tái),C6455和Virtex-4都有豐富的接口,該平臺(tái)不但實(shí)現(xiàn)了C6455與Virtex-4之間的數(shù)據(jù)傳輸,還實(shí)現(xiàn)了 PCI、網(wǎng)絡(luò)MAC、USB等不同協(xié)議域之間建立數(shù)據(jù)流。結(jié)構(gòu)如圖9所示。
SRIO系統(tǒng)由一塊主C6455管理,可加載另外2片C6455,也可建立SRIO到SRIO,PCI到SRIO,MAC到SRIO等數(shù)據(jù)流。 Xilinx公司根據(jù)最新的RapidIO v1.3規(guī)范設(shè)計(jì)了其端點(diǎn)IP解決方案,同時(shí)集成了PCIe,以太網(wǎng)MACs等IP核,PCIe的32/64位地址空間(基地址)可自動(dòng)映射至34/66 位SRIO地址空間(基地址)。PCIe應(yīng)用程序通過內(nèi)存或I/O讀寫與C6455通信。這些事務(wù)均可通過流寫入、原語和確認(rèn)讀/寫事務(wù) (SWRITEs, ATOMIC, NREADs, NWRITE/NWRITE_Rs)等I/O操作映射至SRIO空間。以實(shí)現(xiàn)從PCIe到SRIO或從SRIO向PCIe的轉(zhuǎn)換,從而在各個(gè)協(xié)議域之間建立數(shù)據(jù)流。

5 結(jié) 論

      在C6455等高端DSP中,SRIO已逐漸成為主流數(shù)據(jù)互連方式之一。SRIO具有引腳少、I/O處理開銷低、可達(dá)3.125Gbps高速率等優(yōu)勢(shì), C6455間的SRIO通信設(shè)計(jì)和基于SRIO的加載技術(shù)提高了系統(tǒng)設(shè)計(jì)的靈活性,而基于DSP和FPGA的SRIO網(wǎng)絡(luò)設(shè)計(jì)降低了多處理器集成的難度,可方便進(jìn)行共享式或分布式處理,構(gòu)成具備共享帶寬和強(qiáng)大處理能力的通用處理平臺(tái),從而更好地解決“強(qiáng)大計(jì)算能力”和“快速數(shù)據(jù)傳輸”兩大挑戰(zhàn)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉