李吉鋒+毛曉丹+董博宇+張偉峰+劉志哲+王平
摘 要: 現(xiàn)代嵌入式系統(tǒng)的廣泛應用對信號處理運算量以及實時性都提出了更高的要求,通過多處理器構建并行處理體系結構已經成為了解決這一問題的必然趨勢。在研究并行處理體系結構的基礎上,設計并實現(xiàn)了一種基于多DSP+FPGA的高速并行信號處理系統(tǒng),該系統(tǒng)具有集成度高、運算能力強、通用性好、可擴展性好等特點,滿足大規(guī)模實時信號處理的實際應用需求。
關鍵詞: 信號處理; 高速; 并行; DSP; FPGA
中圖分類號: TN911.7?34 文獻標識碼: 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 引 言
隨著信息技術的飛速發(fā)展,現(xiàn)代嵌入式系統(tǒng)應用越來越廣泛,需求也越來越高,主要體現(xiàn)在信號處理運算量急劇增加,實時性要求不斷提高,其典型的應用領域包括數(shù)字化醫(yī)療、圖像處理以及軍事應用等等[1]。數(shù)字信號處理器(DSP)和可編程邏輯門陣列(FPGA)作為信號處理的核心部件,自面世以來,處理能力不斷增強,尤其是VLSI 技術的發(fā)展使DSP 和FPGA芯片的性能有了很大的提高,但是面對信號處理實際需求的不斷提高,以單DSP或FPGA為核心的單處理器系統(tǒng)仍然難以滿足實際需求,因此,通過多處理器構建并行處理體系結構已經成為了解決這一問題的必然趨勢。
本文設計并實現(xiàn)了一種基于多DSP+FPGA的高速并行信號處理系統(tǒng),該系統(tǒng)具有集成度高、運算能力強、結構靈活、可擴展性好等特點,可以廣泛應用于寬帶數(shù)字通信、軟件無線電、雷達成像信號處理等領域。
1 并行處理體系結構介紹
并行處理系統(tǒng)將多個處理單元以一定的拓撲結構連結在一起,通過一定的方法可以將一個任務分成若干個子任務,分別由各處理單元完成,其目的是采用多個處理單元同時對同一任務進行處理而減少整個任務的執(zhí)行時間,如何能以最短的時間完成任務是并行處理系統(tǒng)設計者最關心的問題[2]。
決定并行處理系統(tǒng)性能的三個要素是:處理單元、并行處理拓撲結構、并行處理任務分配[2]。在系統(tǒng)設計階段選擇合適的處理器是基礎,而制定合理的并行拓撲結構,又是充分合理利用系統(tǒng)資源的關鍵。
并行處理系統(tǒng)各處理單元之間的拓撲結構大致可分為兩類:一種是共享總線或共享存儲器系統(tǒng),一般稱之為緊耦合式并行系統(tǒng)[3];另一種是各處理單元有各自獨立的數(shù)據(jù)存儲器而通過通信口相連的分布式并行系統(tǒng),一般稱之為松耦合式并行系統(tǒng)[3]。
共享總線系統(tǒng)使多個處理單元共同使用一套數(shù)據(jù)總線,比較典型的應用是基于大型工業(yè)標準,如VME、CPCI、PCIE標準等,這種結構的優(yōu)點是簡單,當處理器數(shù)目較少(一般少于6個)時,可以獲得較高的并行處理性能,但當處理單元個數(shù)較多時,共享總線可能會造成頻繁的總線等待甚至沖突,引起各處理單元等待總線令牌的時間大大增加,不利于并行處理效率的提高。
松耦合式并行系統(tǒng)由于不依賴特定的總線或者共享存儲器,因而較為靈活,其各處理單元的連結方式很多,一般有線形、樹形、星形、網孔形、超立方體結構等,各種連結方式有各自的特點,其應用場合也不一樣,比較典型的應用有基于鏈路口(LINK)的多處理器并行系統(tǒng)、基于同步串口(SPORT)的多處理器并行系統(tǒng)、基于HPI/IDMA的多處理器并行系統(tǒng)、基于數(shù)據(jù)交換的多處理器并行系統(tǒng)等[4]。
2 多DSP+FPGA并行處理系統(tǒng)設計
2.1 系統(tǒng)原理框圖
本設計以DSP和FPGA為核心處理單元,結合上述兩種并行處理體系結構的特點,構建了高速實時并行處理系統(tǒng),系統(tǒng)硬件組成原理框圖如圖1所示。
圖1 系統(tǒng)組成原理框圖
由圖1可以看出,該并行處理系統(tǒng)由兩個獨立的并行處理通道構成,分別命名為A通道和B通道,兩個通道對稱分布,原理圖完全一樣,實現(xiàn)并行處理。
該并行處理系統(tǒng)在方案構建過程中,充分考慮DSP和FPGA在信號處理領域的特點,DSP處理靈活性強,F(xiàn)PGA規(guī)模大、處理并行度高,所以該系統(tǒng)綜合了二者的優(yōu)勢,采用DSP+FPGA構成核心處理單元的工作模式,每個處理通道由兩片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的內核電壓,非常有利于芯片功耗的降低;它采用超長指令字(VLIW)結構的TMS320C67x DSP核,最高時鐘頻率可達300 MHz,專門的ALUs和浮點乘法器可提供高效率的浮點運算處理,每個時鐘周期可以并行執(zhí)行8條32位指令,每秒最大的處理能力為2 400 MIPS或者1 800 MFLOPS(單精度);增強型直接存儲器訪問(EDMA)控制器提供高效的數(shù)據(jù)傳輸能力,可控制16個獨立通道完成不受CPU干預的數(shù)據(jù)傳輸;它采用兩級緩沖(Cache)機制,第一級Cache中程序和數(shù)據(jù)空間各有4 KB,第二級Cache中提供總計256 KB的程序和數(shù)據(jù)空間;32 b的EMIF接口支持與SDRAM、SBSRAM、SRAM、FLASH等的無縫接口,片外最大可尋址空間達512 MB;其具有豐富的外設接口包括16 b HPI接口、MCASP接口、MCBSP接口、I2C接口、SPI接口等[5]。
2.2.2 FPGA選型
本系統(tǒng)選擇的FPGA是Xilinx公司Virtex?5系列產品V5SX240T,Virtex?5系列FPGA是Xilinx公司于2009年新推出的高性能信號處理器,它采用65 nm Cooper CMOS工藝,內核電壓僅為1.0 V,其中SXT系列FPGA由于其豐富的存儲器和乘法器(DSP48E)資源而非常適用于高性能數(shù)字信號處理領域,V5SX240T是其中性能最強的一款,具有如下特點[6]:片內工作時鐘可達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的復數(shù)乘法;24個高速串行總線接口RocketIO GTP:最高接口速率可達3.75 Gb/s;6個高性能時鐘管理模塊(CMT):每個CMT包含兩個DCM和一個PLL;豐富的IO資源:為用戶提供960個可靈活配置的通用IO管腳;豐富的外設資源:提供PCIE接口以及以太網接口。
2.3 并行處理通道設計
2.3.1 存儲器容量擴展
在高速并行處理系統(tǒng)中,為了達到實時性要求,海量數(shù)據(jù)的吞吐是必不可少的,為了增強該并行處理系統(tǒng)的實時處理能力,對每個并行處理通道均進行了存儲資源的擴展。
FPGA除了上電引導配置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除了上電引導程序FLASH外,還外接了2片16 b位寬的SDRAM存儲器MT48LC32M16A2T,兩片存儲器總存儲容量為1 Gb,接口工作時鐘可達133 MHz,其總線帶寬最高可達:133 MHz×32 b=4.15 Gb。另外,為了增強兩片DSP之間的數(shù)據(jù)交換能力,其間還設計了一片雙端口存儲器IDT70T3509M,容量為128 Mb,接口工作時鐘可達133 MHz。
通過以上存儲資源的擴展,極大緩解了海量數(shù)據(jù)處理過程中FPGA和DSP片內存儲資源的壓力,有效增強了該并行處理系統(tǒng)的實時處理能力。
2.3.2 DSP乒乓操作
根據(jù)本系統(tǒng)中DSP和FPGA器件的特點,在實際處理過程中,可以進行處理功能的劃分,TMS320C6713B負責完成浮點運算處理,達到盡可能保留處理過程中數(shù)據(jù)精度的目的,V5SX240T負責完成定點運算處理,充分利用FPGA可重構的優(yōu)勢,提高運算效率。
從處理器綜合性能來看,由于V5SX240T相比于TMS320C6713B的處理能力來說更為強大,為了不使TMS320C6713B的處理能力成為系統(tǒng)的瓶頸,可以通過擴展TMS320C6713B的處理能力來解決這一問題,本系統(tǒng)的每個處理通道中,均采用兩片TMS320C6713B實現(xiàn)并行處理,實現(xiàn)了整個數(shù)據(jù)處理鏈路性能的均衡,最大限度發(fā)揮了系統(tǒng)并行處理能力。
在每個并行處理通道中,兩片TMS320C6713B并行完成浮點運算處理,然后交替地向V5SX240T傳送處理結果,V5SX240T根據(jù)收到的數(shù)據(jù)繼續(xù)進行后續(xù)的處理運算。假設運算過程中兩片TMS320C6713B的處理周期均為PRT,則V5SX240T的處理周期為TMS320C6713B的一半,即PRT1=PRT/2,詳細的并行處理時序圖如圖2所示。
2.4 接口設計
2.4.1 RocketIO接口
RocketIO是Xilinx FPGA內嵌的可編程高速串行收發(fā)器,在使用時不占用FPGA其他邏輯與片上存儲資源,在Virtex?5 SXT系列FPGA中稱作GTP,其內建的CDR電路、8B/10B編解碼電路以及CML信號模式使其線速率最高可達10 Gb/s以上。一個完整的GTP收發(fā)器主要包括PMA和PCS兩個子層,每兩個GTP共用一個PLL,組成一個GTP_Dual[7],其結構框圖如圖3所示。
圖2 DSP和FPGA并行處理時序圖
圖3 GTP_DUAL Tile結構框圖
RocketIO收發(fā)器具有如下特征:具有可配置終端、電壓擺幅與耦合的電流模邏輯串行驅動或緩沖器;可編程發(fā)送預加重和接收均衡,以實現(xiàn)最優(yōu)信號完整性;最多支持24個通道的綁定(多通道同步工作)應用,總線帶寬可達90 Gb;傳輸速率在100~500 Mb/s區(qū)間時具有可選的5倍過采樣功能;可選的嵌入式PCS功能,例如8 B/10 B編碼、逗號對齊、通道綁定以及時鐘校正;最小化的確定性數(shù)據(jù)通道延遲。
從應用上講,RocketIO處于數(shù)據(jù)傳輸協(xié)議的物理層,用以實現(xiàn)最基本的數(shù)據(jù)通信環(huán)境。其主要功能可以概括為:將輸入的并行數(shù)據(jù)經過編碼,轉化為高速的差分串行信號。目前已為RocketIO推出了多種協(xié)議標準,如Aurora、Serial RapidIO、PCIExpress等,其中Aurora是Xilinx公司為RocketIO開發(fā)的鏈路層協(xié)議[8],另外,用戶也可根據(jù)應用需求自定義協(xié)議。
在本并行處理系統(tǒng)的物理連接方式上,A通道和B通道之間采用8組GTP互連,其總線帶寬可達30 Gb,A通道和B通道分別通過8組GTP實現(xiàn)與外界的互聯(lián),設計過程中,采用專用接插件,其總線帶寬同樣可達30 Gb。在應用通信協(xié)議設計上,除了物理上RocketIO接口連接測試驗證滿足要求之外,還針對實際應用建立了自定義協(xié)議,提高了該并行系統(tǒng)接口傳輸?shù)撵`活性。
2.4.2 HPI接口
HPI接口[9]是TMS320C6000提供的一個16/32 b寬度的并行端口,主機(上位機)可以通過它直接訪問CPU的存儲空間,HPI與CPU存儲空間的互聯(lián)是通過DMA控制器實現(xiàn)的。
TMS320C6713B的HPI接口信號與其他功能模塊信號是復用的,在設計過程中,通過對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)設計過程中,HPI接口具有兩種工作模式:HPI boot模式和HPI數(shù)據(jù)傳輸模式。由于HPI接口所有信號均接入FPGA(XC3S1400A)中,因此可以靈活配置HD[4:3]的上拉/下拉狀態(tài),當配置HD[4:3]=00時,即TMS320C6713B工作在HPI boot模式下,此時,外部將程序數(shù)據(jù)傳輸至XC3S1400A內部,然后由XC3S1400A產生HPI寫時序,將程序數(shù)據(jù)寫入TMS320C6713B片內程序存儲區(qū),最后發(fā)送HPI中斷,實現(xiàn)DSP程序的bootload。當TMS320C6713B工作在HPI數(shù)據(jù)傳輸模式時,可以完全自主地產生HPI接口時序信號實現(xiàn)讀寫操作,通過FPGA產生HPI時序實現(xiàn)了對該HPI接口速率的靈活配置,為實際應用提供了方便。
2.4.3 LVDS接口
LVDS接口又稱RS644總線接口[10],即低電壓差分信號接口,這種技術的核心是采用極低的電壓擺幅高速差動傳輸數(shù)據(jù),具有低功耗、低誤碼率、低串擾和低輻射等特點,LVDS采用平衡電纜傳輸,速率可達幾百Mbps,LVDS在對信號完整性、低抖動及共模特性要求較高的系統(tǒng)中得到了越來越廣泛的應用。
本并行處理系統(tǒng)充分運用Xilinx公司FPGA在IO端口集成的LVDS收發(fā)器,即差分輸入緩沖模塊IBUFDS和差分輸出緩沖模塊OBUFDS,對FPGA的IO端口進行配置,將LVDS驅動器映射到IO 端口上。本系統(tǒng)中共計提供了22對LVDS信號,用戶可根據(jù)實際需要進行靈活定義和配置。
2.4.4 其他接口信號
本并行處理系統(tǒng)的XC3S1400A還提供了若干獨立IO接口信號,用戶可以根據(jù)實際需要進行配置使用,例如可以用作硬件中斷信號,或者是板間需要同步處理的脈沖信號等。
3 應用驗證
由于本并行處理系統(tǒng)具有通用化、可擴展、可重構的特點,因此可根據(jù)不同的應用需求,通過增減并行處理通道來改變處理能力,達到適應不同算法需求的目的。下面以基于該并行處理平臺構建的某算法評估系統(tǒng)來驗證系統(tǒng)的實際處理能力,該評估系統(tǒng)原理框圖如圖4所示。
圖4 某算法評估系統(tǒng)原理框圖
在圖4中,外部輸入的四路模擬信號經過A/D采樣之后,送入FPGA進行預處理,F(xiàn)PGA處理之后的數(shù)據(jù)按照處理節(jié)拍分時發(fā)送至A、B、C、D四個處理通道,實現(xiàn)四個處理通道并行運算,運算完成之后,四個處理通道將處理結果回傳至預處理FPGA,進行最后的融合數(shù)據(jù),整個處理過程中,DSP通過外部通信接口實現(xiàn)與外部的接口通信,并與預處理FPGA進行數(shù)據(jù)交互。
本算法評估系統(tǒng)采用多通道并行處理思路,實現(xiàn)算法的評估,根據(jù)實際不同算法不同的運算量需求,本系統(tǒng)可以靈活增減處理通道,達到系統(tǒng)性能的最優(yōu)化。
4 結 論
本文在研究現(xiàn)代嵌入式系統(tǒng)兩種典型的并行處理體系結構的基礎上,設計并實現(xiàn)了一種基于多DSP+FPGA的高速并行處理系統(tǒng)架構,該系統(tǒng)兼顧DSP和FPGA的性能優(yōu)勢,采用二者協(xié)同處理,滿足高速實時信號處理的應用需求,該并行處理系統(tǒng)采用通用化、標準化設計思路,具有集成度高、運算能力強、結構靈活、可擴展性好等特點,以此為基礎構建的某算法評估系統(tǒng),經過實際驗證,處理性能良好,為信號處理領域大規(guī)模通用硬件電路設計提供了有力參考與借鑒。
參考文獻
[1] 潘昉晟,趙峰.基于FPGA和多DSP的并行信號處理系統(tǒng)的實現(xiàn)[J].計算機工程,2006,32(23):247?249.
[2] 廖曉群,藺麗華.DSP并行處理系統(tǒng)設計中的幾個關鍵問題[J].西安科技學院學報,2001,21(3):227?230.
[3] 郭宇,葛臨東.多DSP并行處理板設計及其在軟件無線電中的應用[J].信息工程大學學報,2007,8(2):198?201.
[4] 杜金榜,鐘小鵬.多DSP并行處理系統(tǒng)的設計與開發(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ù)傳輸中的應用[J].技術縱橫,2010(11):25?28.
[8] 武榮偉,蘇濤. RocketIO在高速數(shù)據(jù)通信中的應用[J].通信技術,2010,43(11):9?11.
[9] 任麗香,馬淑芬.TMS320C6000系列DSPs的原理與應用[M].北京:電子工業(yè)出版社,2000.
[10] 陳瑩,高雙成.基于FPGA的LVDS接口應用[J].電子科技,2012,25(1):8?12.