李吉鋒+毛曉丹+董博宇+張偉峰+劉志哲+王平
摘 要: 現(xiàn)代嵌入式系統(tǒng)的廣泛應(yīng)用對信號處理運算量以及實時性都提出了更高的要求,通過多處理器構(gòu)建并行處理體系結(jié)構(gòu)已經(jīng)成為了解決這一問題的必然趨勢。在研究并行處理體系結(jié)構(gòu)的基礎(chǔ)上,設(shè)計并實現(xiàn)了一種基于多DSP+FPGA的高速并行信號處理系統(tǒng),該系統(tǒng)具有集成度高、運算能力強、通用性好、可擴展性好等特點,滿足大規(guī)模實時信號處理的實際應(yīng)用需求。
關(guān)鍵詞: 信號處理; 高速; 并行; DSP; FPGA
中圖分類號: TN911.7?34 文獻標(biāo)識碼: A 文章編號: 1004?373X(2014)03?0076?04
Design of a high?speed parallel signal processing system
LI Ji?feng1, MAO Xiao?dan2, DONG Bo?yu1, ZHANG Wei?feng1, LIU Zhi?zhe1, WANG Ping1
(1. Institute No. 25 of the Second Academy, China Aerospace Science & Industry Corp., Beijing 100854, China;
2. Institute No. 706 of the Second Academy, China Aerospace Science & Industry Corp., Beijing 100142, China)
Abstract: With widely using of embedded system, the requirements of large quantity and real?time processing are more and more serious. It has been inevitable tendency that building a parallel processing system structure with multi?processor. Based on the research of parallel processing system structure, a high?speed parallel signal processing system based on multi?DSP+FPGA is designed and implemented. The system has the characteristics of high?integration, powerful processing capability, good generality and scalability, that can meet the practical application requirement of large?scale real?time signal processing.
Keywords: signal processing; high?speed; parallel; DSP; FPGA
0 引 言
隨著信息技術(shù)的飛速發(fā)展,現(xiàn)代嵌入式系統(tǒng)應(yīng)用越來越廣泛,需求也越來越高,主要體現(xiàn)在信號處理運算量急劇增加,實時性要求不斷提高,其典型的應(yīng)用領(lǐng)域包括數(shù)字化醫(yī)療、圖像處理以及軍事應(yīng)用等等[1]。數(shù)字信號處理器(DSP)和可編程邏輯門陣列(FPGA)作為信號處理的核心部件,自面世以來,處理能力不斷增強,尤其是VLSI 技術(shù)的發(fā)展使DSP 和FPGA芯片的性能有了很大的提高,但是面對信號處理實際需求的不斷提高,以單DSP或FPGA為核心的單處理器系統(tǒng)仍然難以滿足實際需求,因此,通過多處理器構(gòu)建并行處理體系結(jié)構(gòu)已經(jīng)成為了解決這一問題的必然趨勢。
本文設(shè)計并實現(xiàn)了一種基于多DSP+FPGA的高速并行信號處理系統(tǒng),該系統(tǒng)具有集成度高、運算能力強、結(jié)構(gòu)靈活、可擴展性好等特點,可以廣泛應(yīng)用于寬帶數(shù)字通信、軟件無線電、雷達成像信號處理等領(lǐng)域。
1 并行處理體系結(jié)構(gòu)介紹
并行處理系統(tǒng)將多個處理單元以一定的拓?fù)浣Y(jié)構(gòu)連結(jié)在一起,通過一定的方法可以將一個任務(wù)分成若干個子任務(wù),分別由各處理單元完成,其目的是采用多個處理單元同時對同一任務(wù)進行處理而減少整個任務(wù)的執(zhí)行時間,如何能以最短的時間完成任務(wù)是并行處理系統(tǒng)設(shè)計者最關(guān)心的問題[2]。
決定并行處理系統(tǒng)性能的三個要素是:處理單元、并行處理拓?fù)浣Y(jié)構(gòu)、并行處理任務(wù)分配[2]。在系統(tǒng)設(shè)計階段選擇合適的處理器是基礎(chǔ),而制定合理的并行拓?fù)浣Y(jié)構(gòu),又是充分合理利用系統(tǒng)資源的關(guān)鍵。
并行處理系統(tǒng)各處理單元之間的拓?fù)浣Y(jié)構(gòu)大致可分為兩類:一種是共享總線或共享存儲器系統(tǒng),一般稱之為緊耦合式并行系統(tǒng)[3];另一種是各處理單元有各自獨立的數(shù)據(jù)存儲器而通過通信口相連的分布式并行系統(tǒng),一般稱之為松耦合式并行系統(tǒng)[3]。
共享總線系統(tǒng)使多個處理單元共同使用一套數(shù)據(jù)總線,比較典型的應(yīng)用是基于大型工業(yè)標(biāo)準(zhǔn),如VME、CPCI、PCIE標(biāo)準(zhǔn)等,這種結(jié)構(gòu)的優(yōu)點是簡單,當(dāng)處理器數(shù)目較少(一般少于6個)時,可以獲得較高的并行處理性能,但當(dāng)處理單元個數(shù)較多時,共享總線可能會造成頻繁的總線等待甚至沖突,引起各處理單元等待總線令牌的時間大大增加,不利于并行處理效率的提高。
松耦合式并行系統(tǒng)由于不依賴特定的總線或者共享存儲器,因而較為靈活,其各處理單元的連結(jié)方式很多,一般有線形、樹形、星形、網(wǎng)孔形、超立方體結(jié)構(gòu)等,各種連結(jié)方式有各自的特點,其應(yīng)用場合也不一樣,比較典型的應(yīng)用有基于鏈路口(LINK)的多處理器并行系統(tǒng)、基于同步串口(SPORT)的多處理器并行系統(tǒng)、基于HPI/IDMA的多處理器并行系統(tǒng)、基于數(shù)據(jù)交換的多處理器并行系統(tǒng)等[4]。
2 多DSP+FPGA并行處理系統(tǒng)設(shè)計
2.1 系統(tǒng)原理框圖
本設(shè)計以DSP和FPGA為核心處理單元,結(jié)合上述兩種并行處理體系結(jié)構(gòu)的特點,構(gòu)建了高速實時并行處理系統(tǒng),系統(tǒng)硬件組成原理框圖如圖1所示。
圖1 系統(tǒng)組成原理框圖
由圖1可以看出,該并行處理系統(tǒng)由兩個獨立的并行處理通道構(gòu)成,分別命名為A通道和B通道,兩個通道對稱分布,原理圖完全一樣,實現(xiàn)并行處理。
該并行處理系統(tǒng)在方案構(gòu)建過程中,充分考慮DSP和FPGA在信號處理領(lǐng)域的特點,DSP處理靈活性強,F(xiàn)PGA規(guī)模大、處理并行度高,所以該系統(tǒng)綜合了二者的優(yōu)勢,采用DSP+FPGA構(gòu)成核心處理單元的工作模式,每個處理通道由兩片DSP和一片F(xiàn)PGA組成,整個并行處理系統(tǒng)由四片DSP和兩片F(xiàn)PGA組成,兩個處理通道之間通過FPGA的高速串行總線接口RocketIO實現(xiàn)互連,實現(xiàn)高速數(shù)據(jù)交換,整個并行處理系統(tǒng)通過RocketIO接口、LVDS接口以及若干獨立IO管腳實現(xiàn)與外部的互連。
2.2 核心處理器選型
2.2.1 DSP選型
本系統(tǒng)選擇的DSP是TI公司的TMS320C6713B,它是一款性能非常優(yōu)良的單核32位浮點DSP芯片,采用0.13 μm CMOS工藝,3.3 V的IO電壓,1.2 V的內(nèi)核電壓,非常有利于芯片功耗的降低;它采用超長指令字(VLIW)結(jié)構(gòu)的TMS320C67x DSP核,最高時鐘頻率可達300 MHz,專門的ALUs和浮點乘法器可提供高效率的浮點運算處理,每個時鐘周期可以并行執(zhí)行8條32位指令,每秒最大的處理能力為2 400 MIPS或者1 800 MFLOPS(單精度);增強型直接存儲器訪問(EDMA)控制器提供高效的數(shù)據(jù)傳輸能力,可控制16個獨立通道完成不受CPU干預(yù)的數(shù)據(jù)傳輸;它采用兩級緩沖(Cache)機制,第一級Cache中程序和數(shù)據(jù)空間各有4 KB,第二級Cache中提供總計256 KB的程序和數(shù)據(jù)空間;32 b的EMIF接口支持與SDRAM、SBSRAM、SRAM、FLASH等的無縫接口,片外最大可尋址空間達512 MB;其具有豐富的外設(shè)接口包括16 b HPI接口、MCASP接口、MCBSP接口、I2C接口、SPI接口等[5]。
2.2.2 FPGA選型
本系統(tǒng)選擇的FPGA是Xilinx公司Virtex?5系列產(chǎn)品V5SX240T,Virtex?5系列FPGA是Xilinx公司于2009年新推出的高性能信號處理器,它采用65 nm Cooper CMOS工藝,內(nèi)核電壓僅為1.0 V,其中SXT系列FPGA由于其豐富的存儲器和乘法器(DSP48E)資源而非常適用于高性能數(shù)字信號處理領(lǐng)域,V5SX240T是其中性能最強的一款,具有如下特點[6]:片內(nèi)工作時鐘可達500 MHz;37 440個Slices資源;516個36 Kb block RAM/FIFOs資源,可靈活配置為18 b、36 b、72 b寬度的RAM/FIFOs;1 056個高性能DSP48E乘法器資源:可實現(xiàn)25×18的復(fù)數(shù)乘法;24個高速串行總線接口RocketIO GTP:最高接口速率可達3.75 Gb/s;6個高性能時鐘管理模塊(CMT):每個CMT包含兩個DCM和一個PLL;豐富的IO資源:為用戶提供960個可靈活配置的通用IO管腳;豐富的外設(shè)資源:提供PCIE接口以及以太網(wǎng)接口。
2.3 并行處理通道設(shè)計
2.3.1 存儲器容量擴展
在高速并行處理系統(tǒng)中,為了達到實時性要求,海量數(shù)據(jù)的吞吐是必不可少的,為了增強該并行處理系統(tǒng)的實時處理能力,對每個并行處理通道均進行了存儲資源的擴展。
FPGA除了上電引導(dǎo)配置PROM外,還外接了2片16 B位寬的DDRII存儲器MT47H64M16HR,兩片存儲器可獨立使用,也可以拼合作為32 b寬度并行使用,總存儲容量為2 Gb,接口工作時鐘可達266 MHz,其總線帶寬最高可達:533 MHz×32 B=16.65 Gb。另外,F(xiàn)PGA還外接了1片32 B位寬的同步靜態(tài)存儲器,存儲容量為128 Mb。
DSP除了上電引導(dǎo)程序FLASH外,還外接了2片16 b位寬的SDRAM存儲器MT48LC32M16A2T,兩片存儲器總存儲容量為1 Gb,接口工作時鐘可達133 MHz,其總線帶寬最高可達:133 MHz×32 b=4.15 Gb。另外,為了增強兩片DSP之間的數(shù)據(jù)交換能力,其間還設(shè)計了一片雙端口存儲器IDT70T3509M,容量為128 Mb,接口工作時鐘可達133 MHz。
通過以上存儲資源的擴展,極大緩解了海量數(shù)據(jù)處理過程中FPGA和DSP片內(nèi)存儲資源的壓力,有效增強了該并行處理系統(tǒng)的實時處理能力。
2.3.2 DSP乒乓操作
根據(jù)本系統(tǒng)中DSP和FPGA器件的特點,在實際處理過程中,可以進行處理功能的劃分,TMS320C6713B負(fù)責(zé)完成浮點運算處理,達到盡可能保留處理過程中數(shù)據(jù)精度的目的,V5SX240T負(fù)責(zé)完成定點運算處理,充分利用FPGA可重構(gòu)的優(yōu)勢,提高運算效率。
從處理器綜合性能來看,由于V5SX240T相比于TMS320C6713B的處理能力來說更為強大,為了不使TMS320C6713B的處理能力成為系統(tǒng)的瓶頸,可以通過擴展TMS320C6713B的處理能力來解決這一問題,本系統(tǒng)的每個處理通道中,均采用兩片TMS320C6713B實現(xiàn)并行處理,實現(xiàn)了整個數(shù)據(jù)處理鏈路性能的均衡,最大限度發(fā)揮了系統(tǒng)并行處理能力。
在每個并行處理通道中,兩片TMS320C6713B并行完成浮點運算處理,然后交替地向V5SX240T傳送處理結(jié)果,V5SX240T根據(jù)收到的數(shù)據(jù)繼續(xù)進行后續(xù)的處理運算。假設(shè)運算過程中兩片TMS320C6713B的處理周期均為PRT,則V5SX240T的處理周期為TMS320C6713B的一半,即PRT1=PRT/2,詳細的并行處理時序圖如圖2所示。
2.4 接口設(shè)計
2.4.1 RocketIO接口
RocketIO是Xilinx FPGA內(nèi)嵌的可編程高速串行收發(fā)器,在使用時不占用FPGA其他邏輯與片上存儲資源,在Virtex?5 SXT系列FPGA中稱作GTP,其內(nèi)建的CDR電路、8B/10B編解碼電路以及CML信號模式使其線速率最高可達10 Gb/s以上。一個完整的GTP收發(fā)器主要包括PMA和PCS兩個子層,每兩個GTP共用一個PLL,組成一個GTP_Dual[7],其結(jié)構(gòu)框圖如圖3所示。
圖2 DSP和FPGA并行處理時序圖
圖3 GTP_DUAL Tile結(jié)構(gòu)框圖
RocketIO收發(fā)器具有如下特征:具有可配置終端、電壓擺幅與耦合的電流模邏輯串行驅(qū)動或緩沖器;可編程發(fā)送預(yù)加重和接收均衡,以實現(xiàn)最優(yōu)信號完整性;最多支持24個通道的綁定(多通道同步工作)應(yīng)用,總線帶寬可達90 Gb;傳輸速率在100~500 Mb/s區(qū)間時具有可選的5倍過采樣功能;可選的嵌入式PCS功能,例如8 B/10 B編碼、逗號對齊、通道綁定以及時鐘校正;最小化的確定性數(shù)據(jù)通道延遲。
從應(yīng)用上講,RocketIO處于數(shù)據(jù)傳輸協(xié)議的物理層,用以實現(xiàn)最基本的數(shù)據(jù)通信環(huán)境。其主要功能可以概括為:將輸入的并行數(shù)據(jù)經(jīng)過編碼,轉(zhuǎn)化為高速的差分串行信號。目前已為RocketIO推出了多種協(xié)議標(biāo)準(zhǔn),如Aurora、Serial RapidIO、PCIExpress等,其中Aurora是Xilinx公司為RocketIO開發(fā)的鏈路層協(xié)議[8],另外,用戶也可根據(jù)應(yīng)用需求自定義協(xié)議。
在本并行處理系統(tǒng)的物理連接方式上,A通道和B通道之間采用8組GTP互連,其總線帶寬可達30 Gb,A通道和B通道分別通過8組GTP實現(xiàn)與外界的互聯(lián),設(shè)計過程中,采用專用接插件,其總線帶寬同樣可達30 Gb。在應(yīng)用通信協(xié)議設(shè)計上,除了物理上RocketIO接口連接測試驗證滿足要求之外,還針對實際應(yīng)用建立了自定義協(xié)議,提高了該并行系統(tǒng)接口傳輸?shù)撵`活性。
2.4.2 HPI接口
HPI接口[9]是TMS320C6000提供的一個16/32 b寬度的并行端口,主機(上位機)可以通過它直接訪問CPU的存儲空間,HPI與CPU存儲空間的互聯(lián)是通過DMA控制器實現(xiàn)的。
TMS320C6713B的HPI接口信號與其他功能模塊信號是復(fù)用的,在設(shè)計過程中,通過對HPI_EN管腳進行上拉處理,使能HPI接口,該接口信號包括:數(shù)據(jù)信號HD[15:0]、中斷信號HINT、控制信號HCS、HR/W、HCNTL等,主機按照如下時序完成對HPI的訪問:初始化HPIC寄存器;初始化HPIA寄存器;從HPID寄存器讀取/寫入數(shù)據(jù),由于HPI口數(shù)據(jù)寬度為16 b,因此對于一個32 b數(shù)據(jù)需要進行兩次halfword的存取。
本并行處理系統(tǒng)設(shè)計過程中,HPI接口具有兩種工作模式:HPI boot模式和HPI數(shù)據(jù)傳輸模式。由于HPI接口所有信號均接入FPGA(XC3S1400A)中,因此可以靈活配置HD[4:3]的上拉/下拉狀態(tài),當(dāng)配置HD[4:3]=00時,即TMS320C6713B工作在HPI boot模式下,此時,外部將程序數(shù)據(jù)傳輸至XC3S1400A內(nèi)部,然后由XC3S1400A產(chǎn)生HPI寫時序,將程序數(shù)據(jù)寫入TMS320C6713B片內(nèi)程序存儲區(qū),最后發(fā)送HPI中斷,實現(xiàn)DSP程序的bootload。當(dāng)TMS320C6713B工作在HPI數(shù)據(jù)傳輸模式時,可以完全自主地產(chǎn)生HPI接口時序信號實現(xiàn)讀寫操作,通過FPGA產(chǎn)生HPI時序?qū)崿F(xiàn)了對該HPI接口速率的靈活配置,為實際應(yīng)用提供了方便。
2.4.3 LVDS接口
LVDS接口又稱RS644總線接口[10],即低電壓差分信號接口,這種技術(shù)的核心是采用極低的電壓擺幅高速差動傳輸數(shù)據(jù),具有低功耗、低誤碼率、低串?dāng)_和低輻射等特點,LVDS采用平衡電纜傳輸,速率可達幾百Mbps,LVDS在對信號完整性、低抖動及共模特性要求較高的系統(tǒng)中得到了越來越廣泛的應(yīng)用。
本并行處理系統(tǒng)充分運用Xilinx公司FPGA在IO端口集成的LVDS收發(fā)器,即差分輸入緩沖模塊IBUFDS和差分輸出緩沖模塊OBUFDS,對FPGA的IO端口進行配置,將LVDS驅(qū)動器映射到IO 端口上。本系統(tǒng)中共計提供了22對LVDS信號,用戶可根據(jù)實際需要進行靈活定義和配置。
2.4.4 其他接口信號
本并行處理系統(tǒng)的XC3S1400A還提供了若干獨立IO接口信號,用戶可以根據(jù)實際需要進行配置使用,例如可以用作硬件中斷信號,或者是板間需要同步處理的脈沖信號等。
3 應(yīng)用驗證
由于本并行處理系統(tǒng)具有通用化、可擴展、可重構(gòu)的特點,因此可根據(jù)不同的應(yīng)用需求,通過增減并行處理通道來改變處理能力,達到適應(yīng)不同算法需求的目的。下面以基于該并行處理平臺構(gòu)建的某算法評估系統(tǒng)來驗證系統(tǒng)的實際處理能力,該評估系統(tǒng)原理框圖如圖4所示。
圖4 某算法評估系統(tǒng)原理框圖
在圖4中,外部輸入的四路模擬信號經(jīng)過A/D采樣之后,送入FPGA進行預(yù)處理,F(xiàn)PGA處理之后的數(shù)據(jù)按照處理節(jié)拍分時發(fā)送至A、B、C、D四個處理通道,實現(xiàn)四個處理通道并行運算,運算完成之后,四個處理通道將處理結(jié)果回傳至預(yù)處理FPGA,進行最后的融合數(shù)據(jù),整個處理過程中,DSP通過外部通信接口實現(xiàn)與外部的接口通信,并與預(yù)處理FPGA進行數(shù)據(jù)交互。
本算法評估系統(tǒng)采用多通道并行處理思路,實現(xiàn)算法的評估,根據(jù)實際不同算法不同的運算量需求,本系統(tǒng)可以靈活增減處理通道,達到系統(tǒng)性能的最優(yōu)化。
4 結(jié) 論
本文在研究現(xiàn)代嵌入式系統(tǒng)兩種典型的并行處理體系結(jié)構(gòu)的基礎(chǔ)上,設(shè)計并實現(xiàn)了一種基于多DSP+FPGA的高速并行處理系統(tǒng)架構(gòu),該系統(tǒng)兼顧DSP和FPGA的性能優(yōu)勢,采用二者協(xié)同處理,滿足高速實時信號處理的應(yīng)用需求,該并行處理系統(tǒng)采用通用化、標(biāo)準(zhǔn)化設(shè)計思路,具有集成度高、運算能力強、結(jié)構(gòu)靈活、可擴展性好等特點,以此為基礎(chǔ)構(gòu)建的某算法評估系統(tǒng),經(jīng)過實際驗證,處理性能良好,為信號處理領(lǐng)域大規(guī)模通用硬件電路設(shè)計提供了有力參考與借鑒。
參考文獻
[1] 潘昉晟,趙峰.基于FPGA和多DSP的并行信號處理系統(tǒng)的實現(xiàn)[J].計算機工程,2006,32(23):247?249.
[2] 廖曉群,藺麗華.DSP并行處理系統(tǒng)設(shè)計中的幾個關(guān)鍵問題[J].西安科技學(xué)院學(xué)報,2001,21(3):227?230.
[3] 郭宇,葛臨東.多DSP并行處理板設(shè)計及其在軟件無線電中的應(yīng)用[J].信息工程大學(xué)學(xué)報,2007,8(2):198?201.
[4] 杜金榜,鐘小鵬.多DSP并行處理系統(tǒng)的設(shè)計與開發(fā)[J].計算機測量與控制,2006,14(5):658?661.
[5] Texas Instruments. TMS320C6713 Floating?point digital signal processor: complete datasheet [M]. USA: Texas Instruments, 2001.
[6] Xilinx. Application note: Virtex?5 platform FPGA handbook [M]. USA: Xilinx, 2009.
[7] 陳長林,邱兆坤.RocketIO及其在高速數(shù)據(jù)傳輸中的應(yīng)用[J].技術(shù)縱橫,2010(11):25?28.
[8] 武榮偉,蘇濤. RocketIO在高速數(shù)據(jù)通信中的應(yīng)用[J].通信技術(shù),2010,43(11):9?11.
[9] 任麗香,馬淑芬.TMS320C6000系列DSPs的原理與應(yīng)用[M].北京:電子工業(yè)出版社,2000.
[10] 陳瑩,高雙成.基于FPGA的LVDS接口應(yīng)用[J].電子科技,2012,25(1):8?12.