0 引言 當(dāng)前信號(hào)處理領(lǐng)域內(nèi)陣列信號(hào)處理技術(shù)正在迅速發(fā)展,各種新的算法及新的處理技術(shù)不斷出現(xiàn),要求信號(hào)處理系統(tǒng)具有快速適應(yīng)各種新算法和新技術(shù)的能力,采用傳統(tǒng)的基于專用硬件的設(shè)計(jì)方法所開(kāi)發(fā)出來(lái)的信號(hào)處理系統(tǒng)無(wú)法滿足這樣的要求。開(kāi)發(fā)具有通用性的計(jì)算平臺(tái),盡可能通過(guò)軟件來(lái)實(shí)現(xiàn)信號(hào)處理功能,成為信號(hào)處理的新趨勢(shì),“軟件雷達(dá)”、“軟件無(wú)線電”等概念都是基于這一思想。 通過(guò)靈活的軟件編程來(lái)適應(yīng)算法的變化,通過(guò)簡(jiǎn)單的硬件擴(kuò)展來(lái)適應(yīng)規(guī)模的變化,使系統(tǒng)的靈活性大大提高,研制周期、費(fèi)用大為減少。要支持這種設(shè)計(jì)思路,必須研制出組成通用計(jì)算平臺(tái)的信號(hào)處理模塊,該模塊既能滿足系統(tǒng)實(shí)時(shí)處理需求,又具備通用性、可擴(kuò)展性。 本文提出了一種基于TMS320C6701信號(hào)處理器的高性能信號(hào)處理模塊的設(shè)計(jì)方案,設(shè)計(jì)了具有一定通用性的并行信號(hào)處理模塊,該模塊具有高速互連接口,可以根據(jù)應(yīng)用系統(tǒng)的需求構(gòu)成不同的并行系統(tǒng),完成各種信號(hào)處理任務(wù)。 1 系統(tǒng)結(jié)構(gòu) 隨著微電子技術(shù)的突飛猛進(jìn),處理器的速度不斷得以提高,但實(shí)際應(yīng)用對(duì)于計(jì)算能力的需求還是遠(yuǎn)遠(yuǎn)超出了單個(gè)處理器可以提供的范圍,采用并行處理技術(shù)構(gòu)成多處理器系統(tǒng)滿足需要較強(qiáng)計(jì)算能力的應(yīng)用是一種行之有效的技術(shù)途徑。 并行處理的目的是通過(guò)采用多個(gè)處理單元同時(shí)對(duì)任務(wù)進(jìn)行處理,加速整個(gè)計(jì)算的過(guò)程,從而減少任務(wù)的執(zhí)行時(shí)間。整個(gè)任務(wù)可分解成一些小的任務(wù),分別分配給并行處理系統(tǒng)中各個(gè)處理單元執(zhí)行。一般而言,這些并行執(zhí)行的任務(wù)都不能完全獨(dú)立執(zhí)行,一個(gè)任務(wù)中的計(jì)算可能需要用到另一個(gè)任務(wù)中的數(shù)據(jù),各處理單元之間存在進(jìn)行數(shù)據(jù)交換的要求。因?yàn)榻粨Q數(shù)據(jù)而必須等待的時(shí)間,反映了處理單元之間的同步開(kāi)銷。因此不難看出,并行處理額外增加了數(shù)據(jù)通信和同步等待等開(kāi)銷。 為使任務(wù)執(zhí)行時(shí)間減少增加處理單元個(gè)數(shù)成為首要手段,同時(shí)要將任務(wù)進(jìn)行更細(xì)粒度的劃分以增加任務(wù)的并行度,但在增加處理單元和任務(wù)細(xì)粒度化的同時(shí)將帶來(lái)總通信量的增加,再加上同步時(shí)間和任務(wù)分配不均所造成的空等待時(shí)間開(kāi)銷,增加處理單元的個(gè)數(shù)對(duì)增加系統(tǒng)處理能力得不償失。這使得在設(shè)計(jì)并行處理系統(tǒng)時(shí)必須著重考慮以下兩個(gè)方面:處理單元性能的提高以及處理單元間通信技術(shù)的改進(jìn)。 1.1 處理單元的選擇 在通信、語(yǔ)音、圖像處理中信號(hào)的動(dòng)態(tài)范圍有限,一般采用定點(diǎn)運(yùn)算就可以滿足要求,雷達(dá)、聲納信號(hào)需要較大的數(shù)據(jù)動(dòng)態(tài)范圍和數(shù)據(jù)精度,若按定點(diǎn)處理會(huì)發(fā)生數(shù)據(jù)上溢出或下溢出,嚴(yán)重時(shí)處理將無(wú)法進(jìn)行,如果使用移位定標(biāo)或用定點(diǎn)模擬浮點(diǎn)運(yùn)算,程序的執(zhí)行速度將大大降低,為增強(qiáng)計(jì)算平臺(tái)的適用性,該通用信號(hào)處理平臺(tái)使用浮點(diǎn)處理器。 同樣的任務(wù)量,用高性能的處理單元構(gòu)成的“小”規(guī)模系統(tǒng),其效率要高于用較低性能的處理單元構(gòu)成的“大”規(guī)模系統(tǒng)。并行處理單元的性能相當(dāng)重要,它不僅包括運(yùn)算速度,還包括存儲(chǔ)器帶寬、數(shù)據(jù)通信速度等,美國(guó)TI公司的TMS320C6000系列DSP是業(yè)界最高性能的通用可編程DSP,TMS320C6701又是該系列中性能較高的浮點(diǎn)處理器。該款DSP完全滿足設(shè)計(jì)的通用計(jì)算平臺(tái)對(duì)信號(hào)處理單元性能的要求,因此選擇TMS320C6701作為信號(hào)處理模塊的處理單元。 1.2 通信網(wǎng)絡(luò)的設(shè)計(jì) 陣列信號(hào)處理必然是多個(gè)信號(hào)處理單元并行工作,子任務(wù)分配在并行處理系統(tǒng)的各個(gè)處理單元中,子任務(wù)間數(shù)據(jù)通信速度和同步時(shí)間等不僅取決于處理單元本身的通信速度,還取決于連接處理單元的通信互連網(wǎng)絡(luò),通信鏈路豐富的復(fù)雜網(wǎng)絡(luò)往往能提供較高的數(shù)據(jù)通信速度,然而其設(shè)計(jì)和維護(hù)的難度要高得多。針對(duì)不同的實(shí)際應(yīng)用,采用不同形式的通信網(wǎng)絡(luò),可以降低通信網(wǎng)絡(luò)的復(fù)雜度。 在互連結(jié)構(gòu)設(shè)計(jì)中,把整個(gè)并行信號(hào)處理系統(tǒng)的互連結(jié)構(gòu)分為兩級(jí):系統(tǒng)級(jí)互連結(jié)構(gòu)、模塊級(jí)互連結(jié)構(gòu)。 系統(tǒng)級(jí)互連結(jié)構(gòu)主要用于模塊間的通信,該設(shè)計(jì)中系統(tǒng)級(jí)的控制網(wǎng)絡(luò)和信號(hào)處理網(wǎng)絡(luò)分別采用RaceWay及VME實(shí)現(xiàn)。模塊級(jí)互連結(jié)構(gòu)主要指信號(hào)處理模塊內(nèi)的網(wǎng)絡(luò)結(jié)構(gòu)。信號(hào)處理模塊系統(tǒng)結(jié)構(gòu)如圖1所示。 信號(hào)處理模塊內(nèi)包含4個(gè)DSP,可提供4GFLOPS的峰值處理能力。模塊內(nèi)采用共享總線互連結(jié)構(gòu)。一般情況下,程序代碼和運(yùn)算數(shù)據(jù)應(yīng)存放于各DSP的片內(nèi)RAM或局部存儲(chǔ)器中,這樣可以減少共享存儲(chǔ)器訪問(wèn)次數(shù),減少總線爭(zhēng)用,縮短存儲(chǔ)訪問(wèn)延時(shí)。共享存儲(chǔ)器通常用來(lái)支持模塊內(nèi)4個(gè)DSP之間交換數(shù)據(jù),以及用來(lái)支持在模塊之間交換數(shù)據(jù)。 為了減少模塊內(nèi)各個(gè)DSP爭(zhēng)用總線帶來(lái)的時(shí)延,提高DSP之間的通信能力,相鄰的DSP之間還通過(guò)雙向的FIFO連接,構(gòu)成FIFO環(huán)。這種結(jié)構(gòu)十分適合流水處理的應(yīng)用,最大限度地減小了數(shù)據(jù)移動(dòng)的開(kāi)銷,提高了處理器間的通信速度。 流水處理以其簡(jiǎn)單高效而被廣泛采用,但因?yàn)樗焕昧巳蝿?wù)時(shí)間上的并行性,而忽視了空間上的并行性,所以并行度不高,加速比受到限制。當(dāng)流水線中某一段任務(wù)負(fù)載量大于其他段時(shí),就會(huì)形成處理瓶頸而降低系統(tǒng)效率。因此,流水線往往和并發(fā)操作結(jié)合起來(lái),即在流水線處理的基礎(chǔ)上,部分的利用空間并行性,稱為局部并行全局串行網(wǎng)絡(luò)。與之對(duì)應(yīng)的是全局并行局部串行網(wǎng)絡(luò),即先利用空間并行性再利用時(shí)間并行性,設(shè)計(jì)出并行工作的多條流水線。 該并行信號(hào)處理系統(tǒng)的信號(hào)處理模塊所采用的互連形式--共享總線和FIFO環(huán)的結(jié)構(gòu),能夠很好地適應(yīng)流水處理的各種變形。 2 硬件設(shè)計(jì) 該信號(hào)處理模塊符合VME標(biāo)準(zhǔn),采用6U雙高板結(jié)構(gòu),模塊內(nèi)部硬件實(shí)現(xiàn)上可劃分為四級(jí)總線結(jié)構(gòu),分別是局部總線、全局總線、PCI總線以及VME總線。在局部總線上的資源有:SBRAM、SDRAM及雙向FIFO;全局總線上的資源有:PCI總線接口、SRAM、FLASH;PCI總線上的資源有:RaceWay接口、HOST?PCI的橋、PCI?VME的橋以及PCI?DSP的橋;VME總線上的資源有: VME總線接口。 2.1 存儲(chǔ)系統(tǒng)設(shè)計(jì) 信號(hào)處理模塊的存儲(chǔ)器空間包括:局部總線空間和全局總線空間。局部總線空間由局部控制寄存器空間、SBSRAM空間、SDRAM空間、FIFO空間、內(nèi)部程序存儲(chǔ)器空間、內(nèi)部數(shù)據(jù)存儲(chǔ)器空間和內(nèi)部外設(shè)空間構(gòu)成。全局總線空間由全局FLASH空間、全局SRAM空間、全局總線控制寄存器空間和PCI接口空間構(gòu)成。 EMIF是外部存儲(chǔ)器和TMS320C6701片內(nèi)各功能單元的接口,DSP訪問(wèn)片外存儲(chǔ)器時(shí)必須通過(guò)EMIF。 EMIF具有很強(qiáng)的接口能力,其數(shù)據(jù)總線寬度為32b,可尋址空間為4GB,可以與目前幾乎所有類型的存儲(chǔ)器直接接口,數(shù)據(jù)吞吐能力最高可達(dá)667MB/s。EMIF支持的器件類型包括:同步突發(fā)靜態(tài)RAM(SBSRAM)、同步動(dòng)態(tài)RAM(SDRAM)、異步器件(包括異步SRAM、ROM和FLASH等),異步接口速度、時(shí)序可編程,可以配合不同的器件。 EMIF處理的外總線請(qǐng)求有四種來(lái)源:片內(nèi)程序存儲(chǔ)器控制器發(fā)出的取指請(qǐng)求,片內(nèi)數(shù)據(jù)存儲(chǔ)器控制器發(fā)出的數(shù)據(jù)存取請(qǐng)求,片內(nèi)DMA控制器的請(qǐng)求,外部共享存儲(chǔ)器設(shè)備的控制器發(fā)出的請(qǐng)求。當(dāng)同時(shí)有多個(gè)部分申請(qǐng)外總線時(shí),由EMIF根據(jù)設(shè)置的優(yōu)先級(jí)進(jìn)行仲裁,然后響應(yīng)各個(gè)申請(qǐng)。一旦某個(gè)申請(qǐng)者根據(jù)優(yōu)先級(jí)獲得了處理權(quán),這一處理權(quán)會(huì)一直保留到該申請(qǐng)者放棄請(qǐng)求或者是有更高優(yōu)先級(jí)的申請(qǐng)者提出申請(qǐng),其間即便有新的申請(qǐng)出現(xiàn),EMIF也不會(huì)受理。在新的申請(qǐng)開(kāi)始得到處理之前,對(duì)于已經(jīng)獲得處理權(quán)的前一個(gè)申請(qǐng)者,其尚未完成的操作部分可以優(yōu)先繼續(xù)完成。 2.2 全局總線設(shè)計(jì) 模塊內(nèi)全局總線可由4個(gè)DSP、PCI接口芯片中的任何一個(gè)來(lái)占用,全局總線仲裁電路的設(shè)計(jì)是該模塊設(shè)計(jì)中的一個(gè)要點(diǎn)。考慮到PCI接口是整個(gè)系統(tǒng)信息交換最重要的通道,它的利用率的高低直接決定了系統(tǒng)的性能,所以將其優(yōu)先權(quán)定為高,將DSP的優(yōu)先權(quán)定為低。DSP之間的仲裁采用輪轉(zhuǎn)優(yōu)先級(jí)仲裁算法。 DSP通過(guò)異步接口空間訪問(wèn)全局總線,由于TMS320C6701的異步接口空間僅能夠提供4MB的地址空間,為了克服芯片的這個(gè)限制,采用頁(yè)面的機(jī)制擴(kuò)充異步接口空間,使該空間最大可訪問(wèn)的空間達(dá)到2GB。把DSP的EMIF提供4MB的異步接口空間分為兩部分,低2MB(即A21=0)用于訪問(wèn)全局資源,高2MB用于訪問(wèn)每個(gè)DSP的局部資源。采用這種DSP異步接口空間的劃分方法簡(jiǎn)化并加快了譯碼。當(dāng)復(fù)位時(shí)每個(gè)DSP的頁(yè)面寄存器都被置為0×0000 0000,它會(huì)自動(dòng)通過(guò)異步接口空間指向FLASH,實(shí)現(xiàn)自舉。當(dāng)一個(gè)DSP獲得全局總線的訪問(wèn)權(quán)后,由該DSP的頁(yè)面寄存器決定全局總線地址的高11位(GA31:GA21),全局總線地址的低位(GA20:GA2)直接由該DSP驅(qū)動(dòng),GA1和GA0由譯碼得到。 通過(guò)以下計(jì)算公式可以計(jì)算頁(yè)面值和頁(yè)內(nèi)偏移量: 頁(yè)面值=(全局總線上的地址&0XFFE00000)》21;頁(yè)內(nèi)偏移量=(全局總線上的地址&0X001FFFFF);軟件通過(guò)以上計(jì)算公式給出當(dāng)前全局地址訪問(wèn)的頁(yè)面值和頁(yè)內(nèi)偏移量。頁(yè)面值決定高位地址(GLA21~GLA31),頁(yè)內(nèi)偏移量決定于DSP的低位地址線(EA2~EA20),這樣就將全局總線地址映射到DSP的物理空間CE0的全局總線空間內(nèi)。 2.3 調(diào)試接口 JTAG是基于IEEE 1149.1標(biāo)準(zhǔn)的一種邊界掃描測(cè)試方式。TI公司為C6000系列DSP提供了JTAG端口支持,結(jié)合配套的仿真軟件可以訪問(wèn)DSP的所有資源,包括片內(nèi)寄存器以及所有的存儲(chǔ)器,從而提供了一個(gè)實(shí)時(shí)的硬件仿真與調(diào)試環(huán)境,便于開(kāi)發(fā)人員進(jìn)行系統(tǒng)軟件調(diào)試。 該信號(hào)處理模塊提供兩種方式的JTAG調(diào)試。一種方式是使用TI的XDS510仿真器和JTAG仿真協(xié)議給信號(hào)處理模塊下載程序,在軟件開(kāi)發(fā)和調(diào)試時(shí)控制程序的執(zhí)行。另一種方式是使用TI的代碼編譯開(kāi)發(fā)環(huán)境和Pentek的SwiftNet通信協(xié)議給信號(hào)處理模塊下載程序和進(jìn)行調(diào)試。這兩種方式可通過(guò)一個(gè)選擇器進(jìn)行選擇使用。 該信號(hào)處理板上有4片DSP,需要進(jìn)行多處理器仿真調(diào)試,將DSP的JTAG端口和JTAG仿真器或JTAG控制器間以菊花鏈方式互連。JTAG調(diào)試接口電路如圖2所示。 3 系統(tǒng)軟件設(shè)計(jì) 隨著嵌入式系統(tǒng)應(yīng)用范圍不斷擴(kuò)大,功能也越來(lái)越強(qiáng)。對(duì)于不同的系統(tǒng)應(yīng)用需要采用定制信號(hào)處理算法。 在實(shí)時(shí)操作系統(tǒng)支持下開(kāi)發(fā)DSP算法,方便快捷,程序思路清晰,便于代碼調(diào)試和重用,但是目前大多數(shù)DSP實(shí)際應(yīng)用中,仍然采用與早期單片機(jī)開(kāi)發(fā)一樣的開(kāi)發(fā)方式,用匯編語(yǔ)言直接在硬件層上開(kāi)發(fā)。開(kāi)發(fā)模式的局限,已經(jīng)嚴(yán)重影響了DSP以及嵌入式系統(tǒng)應(yīng)用的發(fā)展。 并且隨著對(duì)DSP系統(tǒng)性能要求的迅速提高,DSP軟件將會(huì)日益復(fù)雜,特別是開(kāi)發(fā)大規(guī)模并行系統(tǒng)的軟件,處理機(jī)之間的通信與同步、資源管理、并行任務(wù)分配等都是相當(dāng)繁重的工作。如果完全由程序員手工完成,將增加研發(fā)周期,軟件質(zhì)量也難以保證。因此,需要將這些底層的工作交給系統(tǒng)軟件來(lái)處理,程序員的精力集中于信號(hào)處理算法的實(shí)現(xiàn)。 信號(hào)處理模塊主要承擔(dān)高速實(shí)時(shí)信號(hào)處理任務(wù),使用DSP陣列。如上所述,并行DSP上使用操作系統(tǒng),將會(huì)使復(fù)雜的并行程序開(kāi)發(fā)變得相對(duì)容易并且效率高。 因此,可以考慮選擇系統(tǒng)性能較好并且開(kāi)發(fā)工具齊全的COTS產(chǎn)品,在此基礎(chǔ)上進(jìn)行二次開(kāi)發(fā),將并行調(diào)試技術(shù)、負(fù)載平衡技術(shù)等融合進(jìn)去。 VSPWorks操作系統(tǒng)是Wind River公司推出的用于DSP的內(nèi)存占用量小的高性能實(shí)時(shí)操作系統(tǒng)。VSPWorks RTOS能夠與VxWorks RTOS進(jìn)行通信,這樣開(kāi)發(fā)者就可以很容易設(shè)計(jì)出DSP與通用處理器組合在一起的系統(tǒng)。因此,在實(shí)現(xiàn)信號(hào)處理模塊的操作系統(tǒng)時(shí),選用VSPWorks操作系統(tǒng)為基礎(chǔ),擴(kuò)充并行調(diào)試和負(fù)載平衡等功能。另外,還要考慮系統(tǒng)的容錯(cuò)和重構(gòu)等問(wèn)題。 作為通用的信號(hào)處理平臺(tái),是否受用戶歡迎,很大程度并不在于技術(shù)的先進(jìn)性,而在于其開(kāi)發(fā)工具是否友好,開(kāi)發(fā)環(huán)境是否完備。該信號(hào)處理模塊為了方便用戶應(yīng)用,提供良好的集成開(kāi)發(fā)環(huán)境(IDE),在IDE中不但包括編輯、編譯、連接等一般工具,另外還針對(duì)并行系統(tǒng)開(kāi)發(fā)的要求提供了任務(wù)加載工具、并行調(diào)試工具和負(fù)載平衡分析工具等。該開(kāi)發(fā)環(huán)境在宿主機(jī)上運(yùn)行,通過(guò)調(diào)試口(如RS232、JTAG)與目標(biāo)系統(tǒng)連接。 該信號(hào)處理模塊軟件開(kāi)發(fā)環(huán)境包含三個(gè)高度集成的部分:運(yùn)行在宿主機(jī)和目標(biāo)機(jī)上的強(qiáng)有力的交叉開(kāi)發(fā)工具和實(shí)用程序;運(yùn)行在目標(biāo)機(jī)上的高性能、可裁剪的實(shí)時(shí)操作系統(tǒng);連接宿主機(jī)和目標(biāo)機(jī)的多種通信方式,如:以太網(wǎng)、串口線、仿真器等。信號(hào)處理模塊軟件開(kāi)發(fā)環(huán)境如圖3所示。 4 結(jié)語(yǔ) 本文通過(guò)對(duì)信號(hào)處理實(shí)時(shí)性、通用性需求的深入研究,提出了基于TMS320C6701處理器的高性能通用信號(hào)處理平臺(tái)系統(tǒng)結(jié)構(gòu),重點(diǎn)論述了該平臺(tái)的通信網(wǎng)絡(luò)、存儲(chǔ)器系統(tǒng)、調(diào)試電路等的設(shè)計(jì),實(shí)現(xiàn)了支持信號(hào)處理器的實(shí)時(shí)操作系統(tǒng)VSPWorks配置,完善了信號(hào)處理平臺(tái)軟件開(kāi)發(fā)環(huán)境。通過(guò)把不同分辨率的合成孔徑雷達(dá)成像的計(jì)算過(guò)程映射到不同規(guī)模的信號(hào)處理模塊組成的并行信號(hào)處理系統(tǒng)上,處理能力、存儲(chǔ)容量、通信帶寬等均能滿足系統(tǒng)需求,證明了該信號(hào)處理平臺(tái)的通用性、可擴(kuò)展性及應(yīng)對(duì)大規(guī)模浮點(diǎn)處理的有效性。 |