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