多DSP系統(tǒng)互連方案分析
在通信系統(tǒng)中,特別是在VoIP網(wǎng)關(guān)、3G無(wú)線基站等系統(tǒng)中,隨著輸入語(yǔ)音數(shù)據(jù)和分組數(shù)據(jù)量的急劇增加,系統(tǒng)的處理能力也需極大地增加。這需要一種功能強(qiáng)大的實(shí)時(shí)分布式處理系統(tǒng),系統(tǒng)往往需要進(jìn)行非常復(fù)雜的數(shù)據(jù)處理。目前使用的單個(gè)DSP已不能適應(yīng),迫切需要把多個(gè)DSP組成互連系統(tǒng),以增加整體數(shù)據(jù)處理能力。在圖像處理中,也需要使用多DSP系統(tǒng),進(jìn)行大規(guī)模的圖像信號(hào)處理。本文根據(jù)TI公司DSP對(duì)外的主機(jī)接口(HPI)、外部存儲(chǔ)器接口(EMIF)、多通道緩沖串口(McBSP),詳述了利用其組成多DSP系統(tǒng)時(shí)各種互連方案的應(yīng)用背景和優(yōu)缺點(diǎn)。
1 TMS320C6X簡(jiǎn)介
TMS320C6X內(nèi)部主要包括一個(gè)中央處理器單元CPU、一個(gè)程序內(nèi)存和一個(gè)數(shù)據(jù)內(nèi)存、DMA、一個(gè)外部存儲(chǔ)器接口(EMIF)、一個(gè)主機(jī)接口(HPI)、兩個(gè)多通道緩沖串口(McBSP)。TMS320C6X的CPU內(nèi)部有8個(gè)處理單元,每個(gè)時(shí)鐘周期最多可處理8條指令。對(duì)C6203而言,當(dāng)時(shí)鐘頻率為300MHz時(shí),處理能力可達(dá)2400MIPS。TMS320C6X的接口靈活、處理能力強(qiáng)、運(yùn)算速度高,可以廣泛應(yīng)用于無(wú)線基站、DSL、圖像處理、醫(yī)療、雷達(dá)等實(shí)時(shí)多任務(wù)處理系統(tǒng)中。
2 利用TMS320C5X/C6X的主機(jī)接口(HPI)組成多DSP互連系統(tǒng)
主機(jī)接口(HPI)是DSP的一個(gè)16/32bit寬的對(duì)外接口。外部主機(jī)可通過(guò)HPI 訪問DSP所有地址空間,復(fù)位時(shí)向DSP加載程序,對(duì)DSP進(jìn)行控制。外部主機(jī)是HPI的主管方,DSP是HPI的從方;主機(jī)可通過(guò)HPI訪問DSP,但DSP不能通過(guò)HPI向外部發(fā)起訪問。
在這類系統(tǒng)中通常包括一個(gè)主處理器和很多從處理器。主處理器一般是通信控制處理器(如MPC8260),用來(lái)進(jìn)行系統(tǒng)輸入輸出數(shù)據(jù)的協(xié)議處理并管理整個(gè)系統(tǒng);從處理器一般是多個(gè)DSP(如TI的TMS320C6X),用來(lái)進(jìn)行業(yè)務(wù)處理。主處理器通過(guò)HPI向DSP加載程序,對(duì)DSP進(jìn)行控制;可以通過(guò)HPI向DSP寫入待處理的數(shù)據(jù)或通過(guò)HPI讀取DSP處理完的數(shù)據(jù),DSP之間的數(shù)據(jù)可以通過(guò)HPI由主處理器進(jìn)行中轉(zhuǎn)。如圖1所示,主處理器可直接連接多個(gè)DSP,HPI和主處理器之間的連接需要增加一些外部邏輯。此方案結(jié)構(gòu)簡(jiǎn)單,但主處理器負(fù)擔(dān)較重,和多個(gè)DSP通信效率較低,且主處理器和DSP陣列需要在同一塊單板上。
另一種方案如圖2所示,主處理器通過(guò)PCI總線連接到一個(gè)PCI/HPI接口轉(zhuǎn)換控制芯片上,接口轉(zhuǎn)換芯片控制多個(gè)DSP并完成主處理器和DSP之間、DSP相互之間的數(shù)據(jù)交換。此時(shí)主處理器和DSP陣列可以不在同一塊單板上。
在該系統(tǒng)中(若主處理器為MPC8260,需增加8260到PCI總線的橋片),HPI/PCI接口轉(zhuǎn)換控制芯片是整個(gè)系統(tǒng)設(shè)計(jì)的關(guān)鍵,可選TI公司的PCI2040、PLX公司的PCI9054、Tundra公司的Tsi920等。
Tsi920是一個(gè)基于PCI的多DSP端口數(shù)據(jù)傳輸管理芯片,是專為VoIP網(wǎng)關(guān)、無(wú)線基站等需要采用多DSP系統(tǒng)而設(shè)計(jì)的。它的一端是PCI接口,另外一端是四個(gè)HPI接口,每個(gè)HPI最多可無(wú)縫連接8個(gè)DSP。因此在一個(gè)單板系統(tǒng)中最多可直接管理32個(gè)DSP。DSP可以是TI公司的TMS320C5X/C6X,也可以是MOTOROLA公司的MSC8101。Tsi920的一個(gè)特點(diǎn)是其4個(gè)HPI端口可同時(shí)工作,使得主處理器和DSP之間通信能力提高了將近四倍;另一個(gè)特點(diǎn)是它具有智能的數(shù)據(jù)傳輸管理能力,可在DSP和主處理器之間、各個(gè)DSP之間自動(dòng)傳輸數(shù)據(jù),數(shù)據(jù)的傳輸采用特定的包路由協(xié)議進(jìn)行尋址,有特定的傳輸數(shù)據(jù)包格式,數(shù)據(jù)包頭部包含目的DSP的地址。數(shù)據(jù)的傳輸幾乎不需要主處理器參與,使得主處理器節(jié)省了管理數(shù)據(jù)傳輸所需的大量時(shí)間,可以進(jìn)行更為關(guān)鍵的協(xié)議或業(yè)務(wù)處理。
使用Tsi920構(gòu)成多DSP系統(tǒng)的一個(gè)應(yīng)用實(shí)例是VoIP網(wǎng)關(guān),系統(tǒng)的構(gòu)成如圖3所示。DSP的串口通過(guò)一個(gè)TDM交換芯片(Lucent T8105)連接到T1/E1線上,各個(gè)DSP通過(guò)串口讀入語(yǔ)音數(shù)據(jù),進(jìn)行多通道語(yǔ)音編碼和回聲抵消,然后把處理完的分組數(shù)據(jù)放在內(nèi)部存儲(chǔ)區(qū);Tsi920定期查詢此存儲(chǔ)區(qū),若發(fā)現(xiàn)有分組數(shù)據(jù),則通過(guò)DSP的HPI端口取走分組數(shù)據(jù)并放入其內(nèi)部FIFO,然后通過(guò)PowerSpan橋片把分組數(shù)據(jù)寫入MPC8260的本地存儲(chǔ)區(qū);處理器(MPC8260+MPC750)對(duì)這些分組數(shù)據(jù)進(jìn)行IP業(yè)務(wù)處理,并把處理完的IP數(shù)據(jù)通過(guò)MPC8260通信處理模塊(CPM)的以太網(wǎng)接口、ATM接口或其它I/O接口送到外部網(wǎng)絡(luò)。其中DSP陣列和主處理器可放在同一塊單板上,也可放在通過(guò)PCI連接的兩塊單板上。
目前有一些新型的DSP本身提供了一個(gè)對(duì)外的PCI接口,如TMS320C6205、C6415、C6416,這個(gè)PCI接口和HPI接口復(fù)用。當(dāng)采用這些DSP構(gòu)成互連系統(tǒng)時(shí),可直接通過(guò)PCI總線把多個(gè)帶有PCI接口的DSP和帶有PCI接口的主處理器互連起來(lái),主處理器通過(guò)PCI總線控制各個(gè)DSP,各個(gè)DSP之間、DSP和主處理器之間可通過(guò)PCI總線傳輸數(shù)據(jù)。
3 利用TMS320C5X/C6X的EMIF組成多DSP互連系統(tǒng)
EMIF是DSP的外部存儲(chǔ)器接口,DSP通過(guò)EMIF接外部存儲(chǔ)器如SDRAM、SRAM、ROM等。
目前DSP的處理速度越來(lái)越高,TMS320C6203的峰值處理能力可達(dá)2400MIPS,C641X的處理能力更是高達(dá)4800~8800MIPS。然而在通過(guò)HPI連接的多DSP系統(tǒng)中,由于HPI為異步接口,數(shù)據(jù)傳輸速率有限,各個(gè)傳輸速率之和≤50Mbytes/s,數(shù)據(jù)傳輸有時(shí)會(huì)成為系統(tǒng)處理能力提高的瓶頸,使得CPU或系統(tǒng)輸入輸出模塊產(chǎn)生的大量數(shù)據(jù)流無(wú)法及時(shí)送到多個(gè)DSP。在多DSP分布式處理系統(tǒng)中,DSP相互之間需進(jìn)行大量的數(shù)據(jù)傳輸,然而TI的DSP沒有高速的片間無(wú)縫傳輸機(jī)制,使得相關(guān)的任務(wù)因等待數(shù)據(jù)而被延遲,造成系統(tǒng)整體效率的降低。
通過(guò)EMIF可實(shí)現(xiàn)多DSP全互連系統(tǒng)。目前較實(shí)用的有以下幾種方案。
· 共享存儲(chǔ)器方案
共享存儲(chǔ)器是最簡(jiǎn)單的互連方案。異步SRAM作為全局存儲(chǔ)器由所有DSP、CPU共享,DSP訪問SRAM的總線是EMIF。DSP片間通信是通過(guò)向共享SRAM中寫入和讀取數(shù)據(jù)兩個(gè)過(guò)程完成。但EMIF訪問SRAM的帶寬有限,這個(gè)帶寬還是多片DSP、主機(jī)分時(shí)共享。隨著互連DSP數(shù)量的增加,每個(gè)DSP的平均傳輸帶寬就要降低,總線仲裁也將變得更為復(fù)雜。
· 通過(guò)FIFO直接互連方案
在多個(gè)DSP組成的全互連方案中,兩兩DSP之間專用的BiFIFO(雙向先進(jìn)先出存儲(chǔ)器)通過(guò)EMIF接口互連,DSP各自通過(guò)BiFIFO與主機(jī)或外設(shè)互連。此方案的優(yōu)點(diǎn)是能夠?qū)崿F(xiàn)DSP相互之間或DSP與主機(jī)之間數(shù)據(jù)的高速傳輸,但缺點(diǎn)是DSP需查詢多個(gè)FIFO的狀態(tài),同時(shí),每?jī)蓚€(gè)DSP固定的連接有時(shí)是不需要的,使用BiFIFO資源浪費(fèi),系統(tǒng)的擴(kuò)展也比較困難。
· 通過(guò)專用互連芯片(Crossbar)實(shí)現(xiàn)多DSP互連方案
可以設(shè)計(jì)一個(gè)專用互連芯片(Crossbar)來(lái)實(shí)現(xiàn)多個(gè)DSP、CPU、I/O器件之間的高速互連。圖4所示的互連方案提供了一個(gè)按照包路由協(xié)議進(jìn)行尋址交換的機(jī)制。專用互連芯片(Crossbar)提供多個(gè)異步讀寫FIFO接口,完成到外部器件的連接和數(shù)據(jù)包的路由轉(zhuǎn)發(fā)功能。DSP通過(guò)EMIF總線訪問對(duì)應(yīng)端口的BiFIFO,數(shù)據(jù)由Crossbar傳輸?shù)街付―SP,Crossbar同時(shí)也給主機(jī)和外部I/O模塊一個(gè)通路。主機(jī)通過(guò)HPI訪問和控制DSP,也可以通過(guò)Crossbar訪問DSP。BiFIFO為兩個(gè)芯片之間數(shù)據(jù)的突發(fā)傳輸提供了一個(gè)雙向緩沖區(qū)。
圖4中Crossbar提供6個(gè)高速互連通道,每個(gè)通道的數(shù)據(jù)總線寬度為32bit/16bit/8bit;每個(gè)通道的數(shù)據(jù)吞吐帶寬可達(dá)200MBytes/s,每個(gè)通道都提供與異步FIFO的無(wú)縫接口;Crossbar可以同時(shí)提供3對(duì)端口到端口的數(shù)據(jù)傳輸通道,也可以提供一個(gè)端口到多個(gè)端口的數(shù)據(jù)分發(fā);任何具有FIFO接口的CPU、DSP及高速并行I/O都可以通過(guò)Crossbar及雙向FIFO實(shí)現(xiàn)互連。
在本方案中需自定義互連路由協(xié)議,互連和路由模塊(Crossbar&Router)可以由FPGA實(shí)現(xiàn),每個(gè)端口上的BiFIFO可以根據(jù)實(shí)際需要選用FPGA內(nèi)部邏輯實(shí)現(xiàn)或用專用外部器件實(shí)現(xiàn)。多個(gè)Crossbar進(jìn)行互連可實(shí)現(xiàn)大規(guī)模的DSP陣列。此方案的優(yōu)點(diǎn)是能夠?qū)崿F(xiàn)多個(gè)DSP、CPU、外部并行I/O等器件之間的數(shù)據(jù)高速傳輸,且擴(kuò)展容易;缺點(diǎn)是FPGA邏輯十分復(fù)雜,實(shí)現(xiàn)難度較大。
下面是在3G WCDMA基站中使用Crossbar的一個(gè)例子。在這個(gè)例子中,把上下行鏈路碼片速率級(jí)處理和符號(hào)速率級(jí)處理、編碼和譯碼處理放在一塊單板上。碼片速率級(jí)處理包括上行解擴(kuò)和下行擴(kuò)頻,由FPGA/ASIC實(shí)現(xiàn);符號(hào)速率級(jí)處理包括上行鏈路信道估值、信道譯碼協(xié)議、下行鏈路信道編碼協(xié)議等,由DSP實(shí)現(xiàn)。
系統(tǒng)構(gòu)成如圖5所示。對(duì)下行鏈路來(lái)說(shuō),從網(wǎng)絡(luò)過(guò)來(lái)的數(shù)據(jù)通過(guò)UTOPIA接口進(jìn)入Crossbar,然后由Crossbar中轉(zhuǎn)到編碼DSP,在DSP內(nèi)完成信道編碼協(xié)議處理,接著通過(guò)Crossbar把編碼后的數(shù)據(jù)送入FPGA/ASIC完成擴(kuò)頻,最后輸出信號(hào)經(jīng)過(guò)上變頻并通過(guò)天線發(fā)送出去。對(duì)上行鏈路來(lái)說(shuō),經(jīng)過(guò)射頻接收和下變頻后的數(shù)據(jù)首先被送入FPGA/ASIC進(jìn)行碼片速率級(jí)處理,如匹配濾波、解擴(kuò)/解擾等,同時(shí)一片DSP輔助進(jìn)行多徑搜索和信道估值。在此過(guò)程中這片DSP需要和FPGA/ASIC通過(guò)Crossbar進(jìn)行數(shù)據(jù)的相互傳遞,經(jīng)過(guò)信道估值和解擴(kuò)處理的數(shù)據(jù)再通過(guò)Crossbar送入另外一片DSP進(jìn)行信道譯碼協(xié)議處理,處理結(jié)果通過(guò)Crossbar送入U(xiǎn)TOPIA接口,接著送到基站控制器(RNC)進(jìn)行處理。
4 利用TMS320C5X/C6X的McBSP組成多DSP互連系統(tǒng)
McBSP稱為多通道緩沖串口,它有一個(gè)發(fā)送端口和一個(gè)接收端口。多個(gè)DSP可通過(guò)McBSP連接到一個(gè)串行時(shí)隙交換芯片,采用時(shí)隙交換的方式進(jìn)行數(shù)據(jù)交換。數(shù)據(jù)的收發(fā)以幀為單位進(jìn)行。每個(gè)發(fā)送幀分成n個(gè)發(fā)送時(shí)隙,不同的發(fā)送時(shí)隙對(duì)應(yīng)不同的接收DSP,例如:DSP0的發(fā)送端口在時(shí)隙1給DSP1發(fā)送數(shù)據(jù),在時(shí)隙2給DSP2發(fā)送數(shù)據(jù),在時(shí)隙n給DSPn發(fā)送數(shù)據(jù);每個(gè)接收幀分成n個(gè)接收時(shí)隙,不同的接收時(shí)隙對(duì)應(yīng)不同的發(fā)送DSP。例如:DSP1的接收端口在時(shí)隙0接收來(lái)自DSP0的數(shù)據(jù),在時(shí)隙2接收來(lái)自DSP2的數(shù)據(jù),在時(shí)隙n接收來(lái)自DSPn的數(shù)據(jù)。這種方案的優(yōu)點(diǎn)是接口簡(jiǎn)單,可以實(shí)現(xiàn)多個(gè)DSP的全互連,缺點(diǎn)是數(shù)據(jù)以串行方式傳輸,速率較低。
不同的應(yīng)用需要的處理能力不同,對(duì)各個(gè)DSP之間、DSP與主處理器之間的數(shù)據(jù)流量和時(shí)延要求也不同,因此需要的DSP數(shù)目、互連方式也各異。利用DSP三個(gè)不同接口的互連方式,HPI有利于外部主處理器對(duì)各個(gè)DSP進(jìn)行控制,適合于主處理器和多個(gè)DSP構(gòu)成主從方式的互連系統(tǒng);EMIF數(shù)據(jù)傳輸?shù)乃俾矢?適合于構(gòu)成DSP高速全互連陣列;McBSP接口簡(jiǎn)單,適用于對(duì)傳輸速率要求不高的低速全互連系統(tǒng);也可以同時(shí)利用兩種接口構(gòu)成多DSP互連系統(tǒng),充分利用不同接口的優(yōu)點(diǎn),例如可以采用HPI作為主處理器控制多個(gè)從DSP的控制接口,同時(shí)采用EMIF連接到Crossbar作為多個(gè)DSP、主處理器、外部并行I/O之間高速互連的數(shù)據(jù)接口。
以上所述的多DSP系統(tǒng)互連方案各有優(yōu)缺點(diǎn),可以根據(jù)實(shí)際需要進(jìn)行選擇。