版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2.1綜述
2.2硬件體系結(jié)構(gòu)
2.3數(shù)字信號(hào)處理器2.1綜述所謂體系結(jié)構(gòu),是指一個(gè)全面、一致的功能、組件、設(shè)計(jì)原則的集合,依靠它可以組織、設(shè)計(jì)、構(gòu)建一個(gè)系統(tǒng)。一個(gè)特定系統(tǒng)的體系結(jié)構(gòu)對(duì)系統(tǒng)功能和組成進(jìn)行了區(qū)分,并將這些系統(tǒng)功能分配給相應(yīng)的組件和接口。當(dāng)系統(tǒng)復(fù)雜性增加的時(shí)候,系統(tǒng)體系結(jié)構(gòu)的作用越來越重要。一個(gè)強(qiáng)有力的體系結(jié)構(gòu)可以簡化并加速系統(tǒng)的開發(fā),相反,一個(gè)差的體系結(jié)構(gòu)會(huì)阻礙系統(tǒng)的開發(fā)。
軟件無線電體系結(jié)構(gòu)是實(shí)現(xiàn)軟件無線電概念的具體設(shè)計(jì)結(jié)構(gòu),包括硬件、軟件和接口協(xié)議等部分。軟件無線電體系結(jié)構(gòu)是軟件無線電技術(shù)的核心。軟件無線電體系結(jié)構(gòu)的設(shè)計(jì)必須綜合考慮無線通信的技術(shù)現(xiàn)狀和長遠(yuǎn)發(fā)展,具有融合各個(gè)通信標(biāo)準(zhǔn)的能力。從廣義上講,軟件無線電的專門技術(shù)和相關(guān)技術(shù)(也是軟件無線電的技術(shù)基礎(chǔ))都屬于軟件無線電體系結(jié)構(gòu)的研究范圍,如軟件設(shè)計(jì)技術(shù)、寬帶天線和多頻段射頻模塊技術(shù)、電磁兼容技術(shù)、材料技術(shù)、抗干擾和保密技術(shù)等。
軟件無線電的結(jié)構(gòu)特點(diǎn)就是結(jié)構(gòu)開放,這樣在硬件不變的情況下,通過改變軟件即可方便地改變?cè)O(shè)備的性能和功能,保持最先進(jìn)的技術(shù)。處理模塊(無論是硬件模塊還是軟件模塊)可以更換和增減數(shù)量,在投入不大的情況下,可以使設(shè)備不斷得到升級(jí)。
一個(gè)實(shí)際的軟件無線電系統(tǒng)的基本構(gòu)成如圖2-1所示。
由圖2-1可知,軟件無線電的基本結(jié)構(gòu)可以分為:寬帶天線、射頻前端、變頻、高速ADC/DAC、數(shù)字信號(hào)處理,另外還有系統(tǒng)的控制部分。該結(jié)構(gòu)大體上可分為硬件部分和軟件部分。圖2-1一個(gè)實(shí)際的軟件無線電系統(tǒng)的基本構(gòu)成當(dāng)系統(tǒng)處于接收狀態(tài)時(shí),無線信號(hào)通過天線耦合到寬帶射頻收/發(fā)部分,通過下變頻并采樣后將數(shù)據(jù)傳輸?shù)綌?shù)字信號(hào)處理器中;當(dāng)系統(tǒng)處于發(fā)射狀態(tài)時(shí),由數(shù)字信號(hào)處理器將處理形成的高速數(shù)字信號(hào)輸出至高速DAC并轉(zhuǎn)換成模擬信號(hào),通過天線發(fā)射出去。整個(gè)工作是通過軟硬件的協(xié)調(diào)共同完成的,其硬件部分越來越通用化,而軟件部分則越來越層次化、功能化。軟硬件之間有接口通信協(xié)議,該通信協(xié)議主要由通信幀格式的定義和通信過程的操作時(shí)序組成,能夠表達(dá)硬件平臺(tái)層的各種功能和設(shè)備驅(qū)動(dòng)層的各種請(qǐng)求,并且具有一定的可擴(kuò)展能力。
本書將從硬件和軟件兩個(gè)方面分別介紹軟件無線電的體系結(jié)構(gòu),硬件體系結(jié)構(gòu)主要從軟件無線電系統(tǒng)的硬件結(jié)構(gòu)和構(gòu)成進(jìn)行說明,軟件體系結(jié)構(gòu)主要從軟件無線電的軟件構(gòu)成進(jìn)行說明,軟件無線電的標(biāo)準(zhǔn)——軟件通信結(jié)構(gòu)(SCA)也作為軟件結(jié)構(gòu)進(jìn)行說明。本章介紹軟件無線電的硬件體系結(jié)構(gòu)。2.2硬件體系結(jié)構(gòu)關(guān)于軟件無線電硬件體系結(jié)構(gòu)的劃分,通常有兩種方法:一是按照構(gòu)成硬件平臺(tái)的物理介質(zhì)劃分;二是按照系統(tǒng)中各功能模塊的連接方式劃分,即各功能模塊如何互聯(lián),從而組成一個(gè)開放的、可擴(kuò)展的、標(biāo)準(zhǔn)的,同時(shí)具有較高數(shù)據(jù)吞吐率的硬件平臺(tái)。上述兩種劃分方法不是截然分開的,因?yàn)槿魏斡布脚_(tái)的構(gòu)成都同時(shí)包括了這兩方面的問題。
1.按照物理介質(zhì)劃分的硬件體系結(jié)構(gòu)
按照物理介質(zhì)劃分的硬件體系結(jié)構(gòu)主要分為三種:第一種是以通用處理器GPP為基礎(chǔ)的
體系結(jié)構(gòu),該結(jié)構(gòu)直接采用PC機(jī)和工作站進(jìn)行數(shù)字信號(hào)處理;第二種是以DSP為基礎(chǔ)進(jìn)行數(shù)字
信號(hào)處理的體系結(jié)構(gòu);第三種是以FPGA為基礎(chǔ)進(jìn)行數(shù)字信號(hào)處理的體系結(jié)構(gòu)。
GPP:即通用處理器(General-PurposeProcessor),一般指的是服務(wù)器用和桌面計(jì)算用CPU芯片,諸如英特爾、奔騰或PowerPC等。
DSP:即數(shù)字信號(hào)處理器(DigitalSignalProcessor),是指專門為快速實(shí)現(xiàn)各種數(shù)字信號(hào)處理算法而設(shè)計(jì)的具有特殊結(jié)構(gòu)的微處理器。
FPGA:即現(xiàn)場可編程門陣列(FieldProgrammableGateArray),它是在PAL、GAL、PLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。FPGA是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路出現(xiàn)的,它既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。
1)基于GPP的設(shè)計(jì)
這種設(shè)計(jì)完全采用PC機(jī)和工作站完成所有的信號(hào)處理工作,這樣的軟件無線電系統(tǒng)也稱為虛擬無線電(VirtualRadio)。對(duì)于這種無線電系統(tǒng),從實(shí)體上我們無法觀察到一個(gè)真正意義上的電臺(tái),它完全從軟件的角度解決無線通信問題。這種結(jié)構(gòu)以美國麻省理工學(xué)院(MIT)計(jì)算機(jī)科學(xué)實(shí)驗(yàn)室開發(fā)的SpectrumWare系統(tǒng)為代表。該系統(tǒng)是一個(gè)以GPP作為核心處理單元,主要用于無線通信系統(tǒng)設(shè)計(jì)和驗(yàn)證的實(shí)驗(yàn)平臺(tái)。通用機(jī)與其他類型系統(tǒng)的最大區(qū)別是:它不是一個(gè)實(shí)時(shí)的同步系統(tǒng),不能像DSP那樣適合于嚴(yán)格定時(shí)采樣信號(hào)的實(shí)時(shí)處理,只能通過中斷來保持一定的同步。然而計(jì)算機(jī)體系結(jié)構(gòu)的開放性、靈活性、可編程性和人機(jī)界面等方面的能力非常強(qiáng),開發(fā)調(diào)試非常容易,最接近理想的軟件無線電,是未來的研究方向,具有深遠(yuǎn)意義。但是,由于通用計(jì)算機(jī)等技術(shù)水平還達(dá)不到理想處理能力,因此目前其性能比較差,成本相當(dāng)高,實(shí)用性不強(qiáng)。
2)基于DSP的設(shè)計(jì)
基于DSP的設(shè)計(jì)是目前可實(shí)現(xiàn)的一種設(shè)計(jì)。這種結(jié)構(gòu)的通用性、靈活性比較好,開發(fā)調(diào)試比較容易,性能比較好,其主要代表是美軍的SPEAKeasy多頻段多模電臺(tái)(MBMMR,Multi-Band-MultiModeRadio)。該電臺(tái)采用TI公司的TMS320C40多芯片組Quad-C40MCM,能夠提供200MFLOPS和1100MIPS的處理能力以及300MB的I/O吞吐量。SPEAKeasy的思路是:立足于當(dāng)前的硬件水平來構(gòu)造實(shí)用的、能夠初步實(shí)現(xiàn)軟件無線電思想的無線通信系統(tǒng)。
3)基于FPGA的設(shè)計(jì)
隨著電子設(shè)計(jì)自動(dòng)化的發(fā)展,可編程器件可以在線編程,動(dòng)態(tài)改變器件的邏輯功能。這樣可以實(shí)現(xiàn)物理器件的時(shí)分復(fù)用,甚至自適應(yīng)的硬件系統(tǒng)也可以實(shí)時(shí)地按要求實(shí)現(xiàn)軟件無線電結(jié)構(gòu)的大部分模塊。
FPGA這種可重配置處理器非常適用于范圍廣泛的大計(jì)算量的任務(wù)。最新一代的FPGA在性能和容量上都有了顯著的提高,使它的應(yīng)用范圍擴(kuò)大到了具有數(shù)字濾波器等復(fù)雜的運(yùn)算功能。基于FPGA的設(shè)計(jì)通用性、靈活性好,隨著可重構(gòu)技術(shù)的發(fā)展,開發(fā)調(diào)試比較容易,目前已可以局部使用,成本很低,體積和功耗可以很小,性能比較好。在SPEAKeasy電臺(tái)中,對(duì)于一些復(fù)雜的、通用DSP不能完成的功能,可用專用處理器和FPGA來實(shí)現(xiàn)。
需要注意的是,這三種信號(hào)處理器件的特點(diǎn)使得在當(dāng)前條件下純粹采用某種設(shè)計(jì)并不合適,通常采用基于多類型器件混合設(shè)計(jì)的方式。
2.按照系統(tǒng)中各功能模塊的連接方式劃分的硬件體系結(jié)構(gòu)
在軟件無線電系統(tǒng)中,各功能模塊通過一定的連接方式進(jìn)行互聯(lián)而組成了一個(gè)開放的、可擴(kuò)展的、標(biāo)準(zhǔn)的、具有較高數(shù)據(jù)吞吐率的硬件平臺(tái)。按照系統(tǒng)中各功能模塊的連接方式,硬件體系結(jié)構(gòu)可以分為流水式結(jié)構(gòu)、總線式結(jié)構(gòu)、交換式結(jié)構(gòu)、基于計(jì)算機(jī)和網(wǎng)絡(luò)式結(jié)構(gòu)。
1)流水式結(jié)構(gòu)
流水式結(jié)構(gòu)如圖2-2所示。這種結(jié)構(gòu)包括天線、多頻段射頻(RF)轉(zhuǎn)換、寬帶ADC/DAC、DDC/DUC、數(shù)字信號(hào)處理等。圖2-2流水式結(jié)構(gòu)示意圖另外,在該體系中各模塊之間的接口一般都是面向特定要求(傳輸)而設(shè)計(jì)的,各模塊之間不存在統(tǒng)一和開放的接口標(biāo)準(zhǔn),這使得該結(jié)構(gòu)的伸縮性和通用性較差,從而不利于技術(shù)的協(xié)同與進(jìn)步,而且?guī)挶容^窄。因此,這種流水式結(jié)構(gòu)不能滿足軟件無線電的內(nèi)在要求,僅適用于某些特定的通信體制。
2)總線式結(jié)構(gòu)
流水式結(jié)構(gòu)中各個(gè)模塊的直接耦合過于緊密,存在著牽一發(fā)而動(dòng)全局的問題?;谶@種情況,人們提出了總線式結(jié)構(gòu)。總線式結(jié)構(gòu)的軟件無線電結(jié)構(gòu)中,各功能單元通過總線連接起來,并通過總線交換數(shù)據(jù)及控制命令,如圖2-3所示。這種結(jié)構(gòu)非常簡單,模塊化程度高,系統(tǒng)靈活,具有很好的開放性、通用性和伸縮性,而且容易實(shí)現(xiàn),可以根據(jù)不同的要求由公共的功能模塊集合成不同系統(tǒng),功能擴(kuò)展和系統(tǒng)升級(jí)方便。圖2-3總線式結(jié)構(gòu)示意圖但是,多個(gè)功能模塊以時(shí)分復(fù)用的方式通過公共系統(tǒng)總線完成信號(hào)傳輸,這對(duì)系統(tǒng)總線的性能提出了很大的挑戰(zhàn),總線成為系統(tǒng)功能擴(kuò)展的瓶頸,特別是在實(shí)時(shí)性要求高的通信系統(tǒng)中。因此,總線必須具有高速率,能提供復(fù)雜控制,便于功能擴(kuò)展(可集成未來更高性能的處理器)的功能。另外,軟件無線電總線式結(jié)構(gòu)還應(yīng)該具有以下特點(diǎn):
(1)支持多處理器系統(tǒng)。
由于軟件無線電是在高、中頻上對(duì)信號(hào)進(jìn)行采樣,數(shù)據(jù)運(yùn)算量非常大,因此要求很高的處理速度。如果采用DSP,則目前任何單片DSP都難以勝任,因此軟件無線電總線應(yīng)能保證多DSP的并行處理,共享系統(tǒng)資源。
(2)具有寬帶高速的特性。
為保證大量數(shù)據(jù)的傳輸,軟件無線電總線具有極高的數(shù)據(jù)傳輸和I/O吞吐能力,總線傳輸速率超過50Mb/s,支持32~64位數(shù)據(jù)和地址總線。
(3)具有良好的機(jī)械和電磁特性。
總線能夠在惡劣的通信環(huán)境中正常工作,保證一定的通信性能。
(4)需采用較復(fù)雜的控制機(jī)制,如采用分級(jí)總線方式或多總線方式等。
軟件無線電要求通信系統(tǒng)具有較高的實(shí)時(shí)處理能力,只有采用先進(jìn)的標(biāo)準(zhǔn)化總線結(jié)構(gòu),才能發(fā)揮其適應(yīng)性廣,升級(jí)換代簡便的特點(diǎn)。鑒于目前實(shí)現(xiàn)起來較為容易,這種結(jié)構(gòu)既是實(shí)現(xiàn)軟件無線電的一種折中方案,也是首選方案,常用來開發(fā)原型樣機(jī)。目前,已形成工業(yè)標(biāo)準(zhǔn)的系統(tǒng)總線包括ISA、EISA、VESA、PCI、STD、VME、PC/104、CompactPCI和SmallPCI等。在軟件無線電中,PCI和VME是較為常見的總線。其中,VME總線正是針對(duì)多處理器系統(tǒng)設(shè)計(jì)的,是一種支持多機(jī)并行處理的高性能總線,其帶寬、資源、功能、電磁兼容等都超過了一般的總線,是目前數(shù)字信號(hào)處理和工業(yè)控制等應(yīng)用中受到眾多廠商廣泛支持的標(biāo)準(zhǔn)化總線,也是軟件無線電的常用總線。美國在SPEAKeasy-Ⅰ中選擇的就是VME總線。
3)交換式結(jié)構(gòu)
交換式結(jié)構(gòu)如圖2-4所示。該平臺(tái)采用適配器和交換網(wǎng)為各功能模塊提供統(tǒng)一的數(shù)據(jù)通信服務(wù),各個(gè)功能模塊都是由相同的DSP單元組成的,模塊之間通過數(shù)據(jù)包交換來傳送數(shù)據(jù),即功能模塊通過適配器來進(jìn)行拆包和打包(類似于ATM信元),并通過交換網(wǎng)絡(luò)來交換數(shù)據(jù)。這種體系遵循相同的通信接口和協(xié)議,它們之間的耦合性很弱。在實(shí)現(xiàn)某種具體的通信系統(tǒng)時(shí),要考慮如何配置各個(gè)功能板的功能(可重構(gòu)性),功能板之間可以通過建立一個(gè)虛電路來進(jìn)行通信。圖2-4交換式結(jié)構(gòu)示意圖利用交換式結(jié)構(gòu)可以方便地實(shí)現(xiàn)數(shù)據(jù)的廣播(Broadcast)和多播(Mulitcast),大大拓展了硬件平臺(tái)的處理能力,極大地提高了平臺(tái)的靈活性和可擴(kuò)展性。這種結(jié)構(gòu)具有效率高、帶寬寬以及通用性好的特點(diǎn),并且具有較好的吞吐量和實(shí)時(shí)性能,適用于多種無線通信系統(tǒng)。該體系結(jié)構(gòu)的缺點(diǎn)是:時(shí)延長,硬件復(fù)雜,不太容易實(shí)現(xiàn)而且成本高。但是,由于其結(jié)合了總線式結(jié)構(gòu)和流水式結(jié)構(gòu)的優(yōu)點(diǎn),符合軟件無線電的特點(diǎn),因此它將是一種很有前途的硬件平臺(tái)。
另外,在此基礎(chǔ)上還有一種改進(jìn)的結(jié)構(gòu)——環(huán)形硬件體系平臺(tái)。該結(jié)構(gòu)中各個(gè)功能模塊通過適配板組織成為一個(gè)環(huán)形結(jié)構(gòu)。這種環(huán)形結(jié)構(gòu)也可以看做是一種交換網(wǎng)絡(luò),它既具有流水線的特點(diǎn),同時(shí)又能夠?qū)崿F(xiàn)廣播和選播,是一種非常有前途的結(jié)構(gòu)。
4)基于計(jì)算機(jī)和網(wǎng)絡(luò)式結(jié)構(gòu)
基于計(jì)算機(jī)和網(wǎng)絡(luò)式結(jié)構(gòu)如圖2-5所示。這種結(jié)構(gòu)由可編程前端和并行計(jì)算機(jī)平臺(tái)組成。前者包括寬帶多波段天線、上下變頻器、ADC/DAC、外圍電路(如數(shù)據(jù)總線和控制器);后者主要由計(jì)算機(jī)群組成,它充分利用計(jì)算機(jī)的數(shù)據(jù)處理能力以完成信號(hào)處理,是該系統(tǒng)的關(guān)鍵部分。這些技術(shù)為軟件無線電平臺(tái)提供了充足的性能,同時(shí)具有很好的可擴(kuò)展性和靈活性。在這種結(jié)構(gòu)中,射頻信號(hào)下變頻成中頻信號(hào),前端的ADC將中頻數(shù)字化,交給運(yùn)算平臺(tái)得到信息;相反,信息通過平臺(tái)調(diào)制,經(jīng)DAC轉(zhuǎn)換為中頻信號(hào),然后變頻到射頻發(fā)送。圖2-5基于計(jì)算機(jī)和網(wǎng)絡(luò)式結(jié)構(gòu)這種體系結(jié)構(gòu)的優(yōu)點(diǎn)如下:
(1)由于計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)很普遍且較為成熟,因此可以方便地提供接入平臺(tái)。只需要安裝適配器和相關(guān)軟件即可在現(xiàn)存的計(jì)算機(jī)群上實(shí)現(xiàn)該結(jié)構(gòu),這使得采用這一技術(shù)成為十分經(jīng)濟(jì)的選擇。
(2)由于該系統(tǒng)是基于網(wǎng)絡(luò)的,因此可以為最近出現(xiàn)的互聯(lián)網(wǎng)絡(luò)與移動(dòng)通信結(jié)合的趨勢提供強(qiáng)有力的支持,使無線網(wǎng)絡(luò)可以很容易地與計(jì)算機(jī)網(wǎng)絡(luò)融合。
(3)這種結(jié)構(gòu)的效率高,帶寬寬,可擴(kuò)展性和通用性很好。
(4)該系統(tǒng)比DSP-FPGA方案軟件化程度高,更靈活,更接近理想軟件無線電。
目前基于通用計(jì)算機(jī)實(shí)現(xiàn)軟件無線電系統(tǒng)還比較困難,該技術(shù)尚不夠成熟,所實(shí)現(xiàn)的系統(tǒng)與完成的任務(wù)相比代價(jià)偏高,器件體積較大,不便于應(yīng)用到個(gè)人手持終端中。
5)性能比較
以上幾種硬件體系結(jié)構(gòu)各有優(yōu)缺點(diǎn)。表2-1從延時(shí)、帶寬、硬件復(fù)雜度、伸縮性和通用性等方面對(duì)它們各自的性能進(jìn)行了比較。從表2-1中可以看出,流水式結(jié)構(gòu)在效率、時(shí)延方面具有優(yōu)點(diǎn),但伸縮性差,僅適用于某些特定的通信機(jī)制;總線式結(jié)構(gòu)容易實(shí)現(xiàn),常用來開發(fā)原型樣機(jī);交換式結(jié)構(gòu)與基于計(jì)算機(jī)和網(wǎng)絡(luò)式結(jié)構(gòu)使用網(wǎng)絡(luò)大大拓展了硬件平臺(tái)的處理能力,通用性、伸縮性、靈活性最好,適用于多種通信體制,但它們的主要缺點(diǎn)是時(shí)延長,硬件較復(fù)雜,成本高。
圖2-6所示為軟件無線電系統(tǒng)結(jié)構(gòu)。
在最頂級(jí)的層次,一個(gè)軟件無線電系統(tǒng)包含四個(gè)部分,即天線、射頻前端、基帶數(shù)字信號(hào)處理器和控制器。這樣軟件無線電硬件平臺(tái)包括可配置硬件和可編程數(shù)字信號(hào)處理器??删幊逃布樘炀€、射頻前端,理想狀況下,射頻前端應(yīng)該僅有ADC/DAC,但是由于實(shí)際器件性能的限制,還會(huì)包括DDC、DUC、DDS、濾波器等,這些我們?cè)诤竺鏁?huì)有所介紹;控制器和基帶數(shù)字信號(hào)處理器由具可編程能力的數(shù)字信號(hào)處理器件構(gòu)成,它們主要有GPP、DSP、FPGA。2.3數(shù)字信號(hào)處理器圖2-6軟件無線電系統(tǒng)結(jié)構(gòu)有些文獻(xiàn)將ASIC(ApplicationSpecificIntergratedCircuits)也作為具有可編程能力的信號(hào)處理器件。ASIC即專用集成電路,是指應(yīng)特定用戶要求和特定電子系統(tǒng)的需要而設(shè)計(jì)、制造的集成電路。在DSP功能較弱的時(shí)候,在大部分?jǐn)?shù)字無線系統(tǒng)中均采用了ASIC。ASIC的特點(diǎn)是高性能、低功耗、低成本(產(chǎn)量較大時(shí))。不幸的是,ASIC有兩個(gè)主要缺點(diǎn),即開發(fā)成本高,可編程性差,這大大限制了ASIC在軟件無線電中的應(yīng)用。雖然基于GPP的軟件無線電平臺(tái)最接近“通信世界的計(jì)算機(jī)”的概念,但就目前狀況來看,DSP和FPGA已成為軟件無線電實(shí)現(xiàn)的主流器件?,F(xiàn)在DSP的處理速度已高達(dá)2000MIPS,性價(jià)比不斷上升,開發(fā)手段不斷改進(jìn)。在當(dāng)今數(shù)字化時(shí)代背景下,DSP已成為通信、計(jì)算機(jī)、消費(fèi)類電子產(chǎn)品等領(lǐng)域的基礎(chǔ)器件,被譽(yù)為信息社會(huì)革命的旗手。同時(shí)DSP已成為集成電路中發(fā)展最快的電子產(chǎn)品,并成為電子產(chǎn)品更新?lián)Q代的決定因素。因此基于DSP技術(shù)的開發(fā)應(yīng)用早已是軟件無線電的主流。
FPGA雖然早先主要應(yīng)用于外圍的邏輯電路,但由于工藝技術(shù)的進(jìn)步,提升了性能并降低了功耗和成本,因此FPGA正從外圍邏輯應(yīng)用進(jìn)入到信號(hào)處理系統(tǒng)核心,威脅著傳統(tǒng)DSP處理器的領(lǐng)地。隨著FPGA進(jìn)入90nm和65nm工藝時(shí)代,高性能的數(shù)字信號(hào)處理應(yīng)用被FPGA廠商認(rèn)為是新的增長點(diǎn),自2006年下半年開始,Xilinx和Altera這兩大FPGA巨頭不約而同在公開場合大量宣傳其器件在數(shù)字信號(hào)處理方面的應(yīng)用,聲稱FPGA可以補(bǔ)充傳統(tǒng)DSP處理器的不足,甚至可以取代DSP處理器?,F(xiàn)在的實(shí)際系統(tǒng)中僅采用單一處理器形式的結(jié)構(gòu)較為少見,常見的做法是通過ASIC、FPGA、DSP、GPP的合適組合構(gòu)成一個(gè)軟件無線電平臺(tái)。隨著微電子技術(shù)的發(fā)展,這四種器
件之間的界線開始模糊,比如ASIC逐漸提供更多的可編程功能,而DSP和FPGA則開始具備ASIC的傳統(tǒng)處理功能等,在實(shí)際使用中我們將面臨更多的選擇。
ASIC、FPGA、DSP、GPP的可編程性和處理能力對(duì)比如圖2-7所示。圖2-7ASIC、FPGA、DSP、GPP的可編程性和處理能力對(duì)比在本章中,我們將在了解軟件無線電對(duì)信號(hào)處理要求的基礎(chǔ)上,對(duì)GPP、DSP、FPGA三種器件的性能進(jìn)行了解和對(duì)比,這將有助于實(shí)際的選擇和比較。由于ASIC缺乏可編程能力,因此本書不再對(duì)其進(jìn)行說明。2.3.1信號(hào)處理器處理能力的度量
在介紹軟件無線電信號(hào)處理的特點(diǎn)之前,我們先介紹一下對(duì)信號(hào)處理器信號(hào)處理能力進(jìn)行度量的指標(biāo),這個(gè)指標(biāo)通常就是運(yùn)算速度。信號(hào)處理器的運(yùn)算速度可以用以下幾種性能指標(biāo)來描述。
1.時(shí)鐘速率
時(shí)鐘速率越快,運(yùn)算速度就越快。但是,在比較處理器的時(shí)鐘速率時(shí),處理器的輸入時(shí)鐘可能與其指令速率一樣,也可能是指令速率的兩倍到四倍,不同的處理器可能不一樣。而且,許多處理器具有時(shí)鐘倍頻器或鎖相環(huán),可以使用外部低頻時(shí)鐘產(chǎn)生片上所需的高頻時(shí)鐘信號(hào)。
2.指令執(zhí)行速度
指令執(zhí)行速度是指以一條指令所需的執(zhí)行時(shí)間或每秒鐘執(zhí)行的指令數(shù)目來度量,這兩者互為倒數(shù),單位分別為ns(納秒)和MIPS(百萬條指令每秒)。
但是,指令執(zhí)行速度并不能表明處理器的真正性能,不同的處理器在單個(gè)指令下完成的任務(wù)量不一樣,單純地比較指令的執(zhí)行時(shí)間并不能公正地區(qū)別性能的差異?,F(xiàn)在一些新的處理器采用超長指令字(VLIW)架構(gòu),在這種架構(gòu)中,單個(gè)周期時(shí)間內(nèi)可以實(shí)現(xiàn)多條指令,而每個(gè)指令所實(shí)現(xiàn)的任務(wù)比傳統(tǒng)處理器少,因此相對(duì)VLIW和傳統(tǒng)處理器而言,比較MIPS的大小時(shí)會(huì)產(chǎn)生誤導(dǎo)作用。即使在傳統(tǒng)處理器之間比較MIPS的大小也具有一定的片面性。例如,某些處理器允許在單個(gè)指令中同時(shí)對(duì)幾位一起進(jìn)行移位,而有些處理器的一個(gè)指令只能對(duì)單個(gè)數(shù)據(jù)位進(jìn)行移位;有些處理器可以進(jìn)行與正在執(zhí)行的ALU指令無關(guān)的數(shù)據(jù)并行處理(在執(zhí)行指令的同時(shí)加載操作數(shù)),而另外有些處理器只能支持與正在執(zhí)行的ALU指令有關(guān)的數(shù)據(jù)并行處理;有些新的處理器允許在單個(gè)指令內(nèi)定義兩個(gè)MAC。因此僅僅進(jìn)行MIPS比較并不能準(zhǔn)確得出處理器的性能。
3.操作執(zhí)行速度
操作執(zhí)行速度是指以每秒鐘進(jìn)行的操作數(shù)目來度量。操作可以分為定點(diǎn)和浮點(diǎn),其單位有MOPS(百萬次操作每秒)、MFLOPS(百萬次浮點(diǎn)操作每秒)和BOPS(十億次操作每秒)。
該指標(biāo)與MIPS有一定的聯(lián)系。例如,某些處理器能同時(shí)進(jìn)行浮點(diǎn)乘法操作和浮點(diǎn)加法操作,因而其產(chǎn)品標(biāo)稱的MFLOPS為MIPS的兩倍。
4.乘加運(yùn)算(MAC)執(zhí)行速度
乘加運(yùn)算執(zhí)行速度是指以完成一次MAC運(yùn)算的時(shí)間或每秒鐘執(zhí)行的乘加運(yùn)算數(shù)目來度量,這兩者互為倒數(shù),單位分別為ns和MMACS(百萬次乘加每秒)。與MIP相比,MAC較為科學(xué),但未能提供比較處理器性能差異的足夠信息,比如在絕大多數(shù)處理器中,MAC操作僅在單個(gè)指令周期內(nèi)實(shí)現(xiàn),但某些處理器在單個(gè)MAC周期內(nèi)會(huì)處理其他任務(wù),而且這個(gè)也不能反映諸如循環(huán)操作等的性能,而這種操作在所有的應(yīng)用中都會(huì)用到。
5.FFT運(yùn)算執(zhí)行速度
FFT運(yùn)算執(zhí)行速度是指以運(yùn)行一個(gè)N點(diǎn)FFT程序所需的時(shí)間來度量。由于FFT運(yùn)算涉及的運(yùn)算在數(shù)字信號(hào)處理中很有代表性,因此FFT運(yùn)算時(shí)間常作為衡量處理器芯片運(yùn)算能力的一個(gè)指標(biāo)。這種方法比上述方法更為科學(xué)。2.3.2信號(hào)處理能力的需求
在軟件無線電的通用硬件平臺(tái)中,選用處理器件的重要指標(biāo)是信號(hào)處理能力?,F(xiàn)代軟件無線電系統(tǒng)的性能要求越來越高,對(duì)器件的要求也越來越高。例如,為了較好地進(jìn)行濾波等處理,需要每采樣點(diǎn)100次操作,若系統(tǒng)帶寬為10MHz的系統(tǒng),則采樣頻率要大于25MHz,這就需要2500MIPS的運(yùn)算能力。這種需求的增加速度是十分驚人的。比如,從1G到3G,實(shí)際處理能力的需求是每4年提高一個(gè)數(shù)量級(jí),這超過了摩爾定理的速度,即集成電路的集成度每隔18個(gè)月要翻一番,也就是說每6~7年提高一個(gè)數(shù)量級(jí)。為了對(duì)軟件無線電系統(tǒng)的信號(hào)處理能力需求有個(gè)感性的認(rèn)識(shí),在這里以3G移動(dòng)通信標(biāo)準(zhǔn)之一的UMTS/WCDMA為例進(jìn)行說明。
隨著通信技術(shù)的不斷成熟以及用戶對(duì)通信質(zhì)量的要求越來越高,現(xiàn)有2G網(wǎng)絡(luò)已經(jīng)不可避免地向3G演變。在3G中,普遍采用了CDMA技術(shù),UMTS/WCDMA是其中一個(gè)重要的標(biāo)準(zhǔn),它采用了如下兩種復(fù)雜的技術(shù)用于提高移動(dòng)通信系統(tǒng)的性能。
(1)在網(wǎng)絡(luò)層面采用軟切換(即先接入新的基站,而后切斷原基站;硬切換就是先切斷原基站,而后接入新的基站),使用戶在切換過程中總保持與兩個(gè)或兩個(gè)以上基站的聯(lián)系,這大大降低了掉話率。
(2)在空中接口層面采用Rake接收機(jī)。這種接收機(jī)有多個(gè)相關(guān)支路,每個(gè)相關(guān)支路對(duì)應(yīng)一條可分離的接收信號(hào)的多徑分量進(jìn)行接收,多個(gè)接收值進(jìn)行加權(quán)取和。Rake接收機(jī)實(shí)質(zhì)上就是同時(shí)存在著多個(gè)接收機(jī)。這種接收機(jī)大大提高了在多徑環(huán)境下接收機(jī)的性能,一般基站采用的支路數(shù)為4條,手機(jī)所采用的支路數(shù)為3條。顯然,UMTS/WCDMA的系統(tǒng)復(fù)雜度大大提高了,這樣對(duì)信號(hào)處理能力的要求也就提高了。另外,UMTS基站是非同步的,在路徑搜索和切換過程中將需要更多的操作,因此,UMTS接收機(jī)需要更多的信號(hào)處理能力。若設(shè)計(jì)一個(gè)具有多個(gè)空中接口(比如UMTS、CDMA2000、GSM、TDMA)的軟件無線電系統(tǒng),則顯然應(yīng)該把實(shí)現(xiàn)UMTS收發(fā)機(jī)作為最高的情況。在此情況下軟件無線電平臺(tái)所需要的處理能力可列于表2-2中,軟件無線電平臺(tái)必須滿足其要求。從表2-2中可以看到:
(1)系統(tǒng)所要求的總的處理能力是很高的,可達(dá)10000MMACS。
(2)發(fā)射機(jī)所需要的處理能力是接收機(jī)的1/3,這對(duì)于大部分通信系統(tǒng)都是適用的。
(3)按數(shù)據(jù)處理要求的速率不同,可以將處理的區(qū)域按樣點(diǎn)的來源類型分為中頻區(qū)、碼片區(qū)和碼元區(qū)。在中頻區(qū)主要完成上、下變頻,其要求處理能力最高;在碼片區(qū)主要完成以碼片(一個(gè)碼片中包含多個(gè)中頻樣點(diǎn))為單位的數(shù)據(jù)處理任務(wù),處理能力要求次之;在碼元區(qū)主要完成以碼元(一個(gè)碼元中包含
多個(gè)碼片)為單位的數(shù)據(jù)處理任務(wù),處理能力要求最小。2.3.3對(duì)信號(hào)處理器的要求
表2-2只是處理能力的大致需求,但已經(jīng)說明在軟件無線電中信號(hào)處理算法運(yùn)算量是很大的,且算法的實(shí)現(xiàn)都必須實(shí)時(shí)。另外,軟件無線電的信號(hào)處理算法具有如下特點(diǎn)。
(1)信號(hào)處理算法通常需要執(zhí)行大量的乘累加運(yùn)算。例如在卷積、數(shù)字濾波、FFT、相關(guān)運(yùn)算、矩陣運(yùn)算等算法中都有大量的類似于∑A(k)B(n-k)的運(yùn)算。
(2)信號(hào)處理算法常具有某些特定模式。比較典型的是數(shù)字濾波器中的連續(xù)推移位。
(3)信號(hào)處理算法的大部分處理時(shí)間花在執(zhí)行相對(duì)小循環(huán)的操作上。
(4)信號(hào)處理要求專門的接口,同時(shí)大量的數(shù)據(jù)交換需要有高速的數(shù)據(jù)吞吐能力。比如一個(gè)非常重要的接口就是與ADC/DAC的接口。
(5)軟件無線電中信號(hào)處理數(shù)值范圍較寬,采用的數(shù)據(jù)格式以浮點(diǎn)形式為佳。
信號(hào)處理的定點(diǎn)格式是將數(shù)字表示為-1.0~+1.0之間的小數(shù)形式進(jìn)行工作;浮點(diǎn)格式是將數(shù)字表示為尾數(shù)加指數(shù)的形式(即尾數(shù)×2n)進(jìn)行工作。定點(diǎn)格式需要考慮溢出問題,浮點(diǎn)格式則沒有這個(gè)缺點(diǎn)。這些特點(diǎn)決定了軟件無線電中信號(hào)處理器必須具備如下功能:大運(yùn)算量的實(shí)時(shí)運(yùn)算必須具有多個(gè)可并行執(zhí)行的功能單元,并對(duì)常用的數(shù)字信號(hào)處理操作提供直接的硬件加速支持;強(qiáng)的實(shí)時(shí)性決定了數(shù)字信號(hào)處理器不能有太多的動(dòng)態(tài)特征,因此對(duì)高速緩存(Cache)機(jī)制、分支預(yù)測機(jī)制和終端響應(yīng)機(jī)制的選擇或采用具有一定的限制。在運(yùn)算上數(shù)字信號(hào)處理算法包含大量的簡單運(yùn)算和短小循環(huán),數(shù)據(jù)運(yùn)算高度重復(fù),處理器應(yīng)該設(shè)置片內(nèi)存儲(chǔ)器、單周期MAC功能單元和硬件“零開銷循環(huán)”控制機(jī)制,以對(duì)算法需求提供必要的支持。在算法處理過程中,需要進(jìn)行頻繁的數(shù)據(jù)訪問,以滿足運(yùn)算實(shí)時(shí)、快速的要求,數(shù)據(jù)地址的計(jì)算會(huì)隨著訪問的頻繁度而線性增長,這樣,數(shù)據(jù)地址計(jì)算的速度和數(shù)據(jù)訪問的速度要求較高,處理器應(yīng)該有高的存儲(chǔ)器帶寬、專門的地址計(jì)算單元和專用的尋址模式,用來對(duì)高效的數(shù)據(jù)訪問提供必要的支持。
2.3.4GPP
1.GPP芯片簡介
GPP即通用處理器,一般指的是服務(wù)器用和桌面計(jì)算用CPU芯片。它具有很高的性能,而且有操作系統(tǒng)支持,適合完成寬范圍的處理工作,與任何一種編程語言都無關(guān),應(yīng)用極為靈活。
由于GPP是為通用計(jì)算機(jī)的廣泛應(yīng)用而設(shè)計(jì)的,其運(yùn)行的程序?qū)\(yùn)算量和實(shí)時(shí)性需求并不十分嚴(yán)格,它追求各種應(yīng)用程序執(zhí)行性能的平衡,以達(dá)到總體性能的提升,因此,對(duì)于能夠提高總體性能的各種技術(shù)或者機(jī)制,GPP都會(huì)在考慮高性能、低價(jià)格、低功耗的前提下有選擇地采納,而不會(huì)受到應(yīng)用程序的限制。因此,GPP對(duì)于控制密集型應(yīng)用可以提供高效的支持。
2.GPP芯片的種類和性能特點(diǎn)
GPP的生產(chǎn)廠商主要有美國的Intel和AMD公司。IBM、HP(COMPAQ)、SGI、SUN等公司都生產(chǎn)各具特點(diǎn)的服務(wù)器用高性能通用微處理器,這些微處理器都采用RISC指令系統(tǒng),通過超標(biāo)量、亂序執(zhí)行、動(dòng)態(tài)分支預(yù)測、推測執(zhí)行等機(jī)制,提高指令級(jí)并行性,以改善性能。這類芯片被廣泛用于各種工作站、服務(wù)器和高性能計(jì)算機(jī)中。下面分別對(duì)其性能進(jìn)行介紹。
1)GPP結(jié)構(gòu)
GPP采用馮·諾依曼結(jié)構(gòu),如圖2-8所示。在這種結(jié)構(gòu)中,只有一個(gè)存儲(chǔ)器空間通過一組總線(一個(gè)地址總線和一個(gè)數(shù)據(jù)總線)連接到處理器核。通常,做一次乘法會(huì)發(fā)生4次存儲(chǔ)器訪問,用掉至少4個(gè)指令周期。在高速運(yùn)算時(shí),往往會(huì)在傳輸通道上出現(xiàn)瓶頸效應(yīng)。
需要注意的是,現(xiàn)在典型的高性能GPP實(shí)際上已包含兩個(gè)片內(nèi)高速緩存:一個(gè)是數(shù)據(jù),另一個(gè)是指令。它們直接連接到處理器核,以加快運(yùn)行時(shí)的訪問速度。從物理上說,這種片內(nèi)的雙存儲(chǔ)器和總線的結(jié)構(gòu)幾乎與哈佛結(jié)構(gòu)一樣。然而從邏輯上說,兩者還是有重要區(qū)別的。GPP使用控制邏輯來決定哪些數(shù)據(jù)和指令字存儲(chǔ)在片內(nèi)的高速緩存里,其程序員并不加以指定(也可能根本不知道)。圖2-8馮·諾依曼結(jié)構(gòu)
2)MAC運(yùn)算的實(shí)現(xiàn)
GPP不是設(shè)計(jì)來做密集乘法任務(wù)的,即使是一些現(xiàn)代的GPP,也要求多個(gè)指令周期來做一次乘法。
3)零開銷循環(huán)
GPP沒有零開銷循環(huán)機(jī)制,其循環(huán)是通過使用軟件來實(shí)現(xiàn)的。但是某些高性能的GPP使用轉(zhuǎn)移預(yù)報(bào)硬件,幾乎可達(dá)到與硬件支持的零開銷循環(huán)同樣的效果。
4)數(shù)據(jù)格式
GPP通常采用浮點(diǎn)數(shù)據(jù)格式。
5)數(shù)據(jù)寬度
數(shù)據(jù)寬度一般較長,精度較好,可達(dá)64位。
6)尋址方式
GPP僅具有常用尋址模式,數(shù)字信號(hào)處理所需要的特殊的尋址模式在GPP中是不常使用的,只能通過軟件來實(shí)現(xiàn)。
7)指令集
GPP的指令集具有簡潔的結(jié)構(gòu)和通用性,對(duì)編譯技術(shù)可以提供很好的支持,但程序所占用的空間較大。早期的GPP通常采用CISC指令集結(jié)構(gòu),后期廣泛采用RISC指令集結(jié)構(gòu),這種指令集結(jié)構(gòu)簡潔規(guī)整,單條指令通常在單個(gè)周期內(nèi)完成單個(gè)操作,這樣可降低體系結(jié)構(gòu)的復(fù)雜性。但是沒有專為數(shù)字信號(hào)處理設(shè)置的特殊指令。
8)執(zhí)行時(shí)間的可預(yù)測性
在軟件無線電中,數(shù)字信號(hào)處理應(yīng)用大多具有硬性實(shí)時(shí)要求,在每種情況下所有處理工作都必須在指定時(shí)間內(nèi)完成。這種實(shí)時(shí)限制要求程序設(shè)計(jì)者確定每個(gè)樣本究竟需要多少時(shí)間,或者在最壞情況下至少需用多少時(shí)間。由于GPP有操作系統(tǒng)支持,因此其缺點(diǎn)是確定代碼執(zhí)行時(shí)間非常困難。這是因?yàn)榇罅砍咚贁?shù)據(jù)和程序緩存使用動(dòng)態(tài)分配程序,在不同的線程下操作系統(tǒng)內(nèi)核使用的CPU時(shí)間不同,操作系統(tǒng)不能保證軟件無線電系統(tǒng)所需要的執(zhí)行時(shí)間,對(duì)于高性能GPP來說,執(zhí)行時(shí)間的預(yù)測變得復(fù)雜和困難。
如果打算用低成本的GPP去完成實(shí)時(shí)信號(hào)處理的任務(wù),則執(zhí)行時(shí)間的預(yù)測大概不會(huì)成為什么問題,因?yàn)榈统杀綠PP具有相對(duì)直接的結(jié)構(gòu),比較容易預(yù)測執(zhí)行時(shí)間。然而,大多數(shù)實(shí)時(shí)信號(hào)處理應(yīng)用所要求的處理能力是低成本GPP所不能提供的。
9)芯片資源
由于GPP具有通用性,因此片上資源直接針對(duì)信號(hào)處理的并不多,主要針對(duì)片內(nèi)存儲(chǔ)器的設(shè)置,這可以提高數(shù)據(jù)訪問的性能,但通常GPP的運(yùn)行程序都很大,不太容易設(shè)置片內(nèi)存儲(chǔ)器。GPP減小處理器速度和存儲(chǔ)器訪問速度之間的差距的典型方法是在GPP內(nèi)部設(shè)置高速緩存(Cache)。但是現(xiàn)在為了信號(hào)處理應(yīng)用,有些GPP也設(shè)置了大的片內(nèi)存儲(chǔ)器。
10)操作系統(tǒng)支持
計(jì)算機(jī)操作系統(tǒng)支持從文字界面向圖形界面、從單任務(wù)向多任務(wù)進(jìn)展,其中,具體業(yè)務(wù)為從簡單的文字處理到MP3、Flash播放、音視頻編解碼、3D游戲等。通信、網(wǎng)絡(luò)功能需要支持不同層次的協(xié)議,多個(gè)業(yè)務(wù)還可能同時(shí)進(jìn)行,同時(shí)也不斷提出了實(shí)時(shí)、高保真、高分辨率、低延遲的質(zhì)量要求,而這些需求似乎還沒有止境。
對(duì)GPP而言,具有操作系統(tǒng)支持是非常有利的因素。
11)功耗、成本
GPP的功耗和成本較高,且不利于集成。
12)處理能力
GPP處理能力較強(qiáng),時(shí)鐘速率高,現(xiàn)在高性能的Pentium4處理器時(shí)鐘已達(dá)3.2GHz。除此而外,為了提高處理指令執(zhí)行的并行性,GPP采用了單指令多數(shù)據(jù)(SIMD,SingleInstructionMultipleData)體制、超長指令字VLIW結(jié)構(gòu)和超標(biāo)量體系結(jié)構(gòu)。其中,SIMD處理器把輸入的長的數(shù)據(jù)分解為多個(gè)較短的數(shù)據(jù),然后由單指令并行地操作,從而提高處理海量、可分解數(shù)據(jù)的能力。該技術(shù)能大幅度地提高在多媒體和信號(hào)處理中大量使用的一些矢量操作的計(jì)算速度,如坐標(biāo)變換和旋轉(zhuǎn)。通用SIMD處理器增強(qiáng)的兩個(gè)例子是Pentium的MMX擴(kuò)展和PowerPC族的AltiVec擴(kuò)展,而VLIW結(jié)構(gòu)和超標(biāo)量結(jié)構(gòu)都可以使GPP在單個(gè)時(shí)鐘周期內(nèi)執(zhí)行多條指令。現(xiàn)在GPP處理速度可達(dá)10000MIPS以上。從上面的簡要介紹中可以看到,雖然GPP不是針對(duì)信號(hào)處理而設(shè)計(jì)的,但是它的通用性非常好,一個(gè)GPP平臺(tái)和操作系統(tǒng)聯(lián)合后可以完成所有的處理任務(wù),可以實(shí)現(xiàn)完全的控制和靈活性,無線接口將非常靈活。在這樣的系統(tǒng)中,新的無線標(biāo)準(zhǔn)可以實(shí)現(xiàn)在GPP上運(yùn)行不同的軟件,非常符合“通信世界中的個(gè)人計(jì)算機(jī)”這樣的概念。在操作系統(tǒng)的支持下可以為軟件無線電系統(tǒng)開發(fā)提供很多便利條件,比如虛擬存儲(chǔ)器、多線程等。開發(fā)環(huán)境很容易使用,GPP系統(tǒng)可以采用常用的語言(如C/C++)進(jìn)行編程,而且不需要對(duì)系統(tǒng)進(jìn)行詳細(xì)的了解。另外,廠商現(xiàn)在也根據(jù)信號(hào)處理的需求對(duì)GPP進(jìn)行了一些改進(jìn)。雖然如此,但采用GPP實(shí)現(xiàn)軟件無線電的限制因素也較為明顯,最大的問題是采用確定代碼執(zhí)行時(shí)間非常困難。為此,通常采用實(shí)時(shí)操作系統(tǒng)來解決,但這需要特殊的編程工具和知識(shí),這與采用標(biāo)準(zhǔn)的編程工具和跨平臺(tái)代碼是相矛盾的。另一個(gè)限制因素是處理能力,雖然處理器的速度可達(dá)到吉赫茲,但系統(tǒng)的總線速度和存儲(chǔ)器是受限的。
另外在應(yīng)用層面,現(xiàn)在很多系統(tǒng)中并不需要很強(qiáng)的靈活性,需要對(duì)成本、功耗等因素進(jìn)行綜合考慮,這樣使GPP英雄無用武之地。更好的方法是采用DSP和GPP,GPP用于監(jiān)測和控制接口,以及低速率的基帶處理,大的信號(hào)處理任務(wù)則通過DSP完成。這樣可降低PCI總線上數(shù)據(jù)的流量,而且可以對(duì)DSP在線編程。2.3.5DSP
1.DSP芯片簡介
DSP是一種專門用來實(shí)現(xiàn)信號(hào)處理算法的微處理器芯片,可以認(rèn)為是GPP的特例。根據(jù)使用方法的不同,DSP可以分為專用DSP和通用DSP。專用DSP只能用來實(shí)現(xiàn)某種特定的數(shù)字信號(hào)處理功能,更適合特殊的運(yùn)算,如數(shù)字濾波、卷積和FFT。Motorola公司的DSP56200、Zoran公司的ZR34881、Inmos公司的IMSA100等就屬于專用型DSP芯片。例如,數(shù)字濾波、FFT等使用方便,處理速度快,但是靈活性差。通用DSP芯片適合普通的DSP應(yīng)用,類似GPP一樣有完整的指令系統(tǒng),通過軟件來實(shí)現(xiàn)各種功能。例如,TI公司的一系列DSP芯片就屬于通用DSP芯片。這里提到的DSP指通用DSP。
2.DSP芯片的種類和性能特點(diǎn)
從1978年第一片DSP芯片發(fā)布至今,DSP一直處于高速發(fā)展之中,其性價(jià)比越來越高,應(yīng)用領(lǐng)域越來越廣。DSP和通用處理器有很大的區(qū)別,因?yàn)镈SP的結(jié)構(gòu)和指令是專門針對(duì)信號(hào)處理而設(shè)計(jì)和開發(fā)的?,F(xiàn)在開發(fā)DSP芯片的公司很多,主要有TI、ADI、Motorola等公司。目前最知名的是美國德州儀器公司(TI,TexasInstruments)的TMS320系列,其中有主要面向低功耗、手持設(shè)備、無線終端應(yīng)用的TMS320C5000系列和面向高性能、多功能、復(fù)雜應(yīng)用領(lǐng)域的TMS320C6000系列。美國ADI公司在DSP芯片市場上也占有一定的份額,相繼推出了一系列具有自己特點(diǎn)的DSP芯片,其定點(diǎn)DSP芯片有ADSP2101/2103/2105、ADSP2111/2115、ADSP2126/2162/2164、ADSP2127/2181、ADSP-BF532以及Blackfin系列,浮點(diǎn)DSP芯片有ADSP21000/21020、ADSP21060/21062,以及TigersharcTS101、Tigersharc、TS201S。Motorola公司推出的DSP芯片比較晚。1986年該公司推出了定點(diǎn)DSP處理器MC56001;1990年,又推出了與IEEE浮點(diǎn)格式兼容的浮點(diǎn)DSP芯片MC96002;此外還有DSP53611、16位的DSP56800、24位的DSP563XX和MSC8101等產(chǎn)品。下面我們從多個(gè)方面討論DSP的性能特點(diǎn),以方便在實(shí)際工作中選用。
1)DSP的結(jié)構(gòu)
傳統(tǒng)的GPP采用馮·諾依曼存儲(chǔ)結(jié)構(gòu),DSP一般采用哈佛結(jié)構(gòu)。在哈佛結(jié)構(gòu)中有兩個(gè)存儲(chǔ)空間:程序存儲(chǔ)空間和數(shù)據(jù)存儲(chǔ)空間。處理器內(nèi)核通過兩套總線與這些存儲(chǔ)空間相連,允許對(duì)存儲(chǔ)器同時(shí)進(jìn)行兩個(gè)訪問,這種安排使處理器的帶寬加倍,適合高速運(yùn)算。DSP的結(jié)構(gòu)如圖2-9所示。圖2-9DSP的結(jié)構(gòu)
2)MAC運(yùn)算的實(shí)現(xiàn)
DSP具有專用的硬件乘法器,這是DSP的特征之一。硬件乘法器的功能是在單周期內(nèi)完成一次乘法運(yùn)算。DSP內(nèi)還增加了累加器寄存器來處理多個(gè)乘積的和,而且該寄存器通常比其他寄存器寬,這樣可保證乘累加運(yùn)算結(jié)果不至于發(fā)生溢出。這些操作都可以在一個(gè)機(jī)器周期內(nèi)完成。
在數(shù)字信號(hào)處理運(yùn)算中乘累加運(yùn)算量是很大的,因此硬件乘法器是DSP實(shí)現(xiàn)快速運(yùn)算的重要保障。
3)零開銷循環(huán)
GPP每執(zhí)行一次循環(huán)都要用軟件判斷循環(huán)結(jié)束條件是否滿足,并更新循環(huán)計(jì)數(shù)器,還要進(jìn)行條件轉(zhuǎn)移。這些例行操作要消耗幾個(gè)周期的時(shí)間,這種消耗對(duì)于短循環(huán)是相當(dāng)可觀的。與GPP不同,DSP可以用硬件實(shí)現(xiàn)更新計(jì)數(shù)器等例行操作,不用額外消耗任何時(shí)間,所以是一種零開銷循環(huán)。由于數(shù)字信號(hào)處理程序百分之九十的執(zhí)行時(shí)間是在循環(huán)中度過的,因此零開銷循環(huán)對(duì)提高程序效率非常重要。
4)數(shù)據(jù)格式
DSP可以分為定點(diǎn)DSP芯片和浮點(diǎn)DSP芯片。
大多數(shù)DSP以定點(diǎn)格式進(jìn)行工作,稱為定點(diǎn)DSP芯片,如TI公司的TMS320C1X/C2X、TMS320C2XX/C5X、TMS320C54X/C62XX系列,AD公司的ADSP21XX系列,AT&T公司的DSP16/16A,Motolora公司的MC56000等。一般批量產(chǎn)品選用定點(diǎn)DSP。編程和算法設(shè)計(jì)人員通過分析或仿真來確定所需要的動(dòng)態(tài)范圍和精度。以浮點(diǎn)格式工作的DSP稱為浮點(diǎn)DSP芯片,如TI公司的TMS320C3X/C4X/C8X,AD公司的ADSP21XXX系列,AT&T公司的DSP32/32C,Motolora公司的MC96002等。不同浮點(diǎn)DSP芯片所采用的浮點(diǎn)格式不完全一樣,有的DSP芯片采用自定義的浮點(diǎn)格式,如TMS320C3X,而有的DSP芯片則采用IEEE的標(biāo)準(zhǔn)浮點(diǎn)格式,如Motorola公司的MC96002、FUJITSU公司的MB86232和ZORAN公司的ZR35325等。浮點(diǎn)算法是一種較復(fù)雜的常規(guī)算法,利用浮點(diǎn)數(shù)據(jù)可以實(shí)現(xiàn)大的數(shù)據(jù)動(dòng)態(tài)范圍(這個(gè)動(dòng)態(tài)范圍可以用最大數(shù)和最小數(shù)的比值來表示)。浮點(diǎn)DSP在應(yīng)用中,設(shè)計(jì)工程師不用關(guān)心其動(dòng)態(tài)范圍和精度一類的問題。浮點(diǎn)DSP比定點(diǎn)DSP更容易編程,但是成本和功耗較高。
5)數(shù)據(jù)寬度
數(shù)據(jù)寬度或字長表示DSP芯片的運(yùn)算精度,一般的定點(diǎn)DSP芯片的字長為16位,如TMS320系列,但有的公司的定點(diǎn)芯片為24位,如Motorola公司的MC56001等。浮點(diǎn)芯片的字長一般為32位,累加器為40位。通常精度越高,則尺寸越大,管腳越多,存儲(chǔ)器要求也越大,成本相應(yīng)地也會(huì)增大。在滿足設(shè)計(jì)要求的條件下,要盡量選用小字長的DSP以減小成本。
請(qǐng)注意,絕大多數(shù)DSP器件的指令字和數(shù)據(jù)字的寬度一樣,也有一些不一樣,如ADI(公司的ADSP-21XX系列的數(shù)據(jù)字為16位,而指令字為24位。
6)尋址模式
DSP具有特殊的尋址模式。DSP一般包含有專門的地址產(chǎn)生器,它能產(chǎn)生信號(hào)處理算法需要的特殊尋址,如循環(huán)尋址和位翻轉(zhuǎn)尋址。循環(huán)尋址對(duì)應(yīng)于流水FIR濾波算法,位翻轉(zhuǎn)尋址對(duì)應(yīng)于FFT算法。
7)指令集
DSP具有特殊設(shè)計(jì)的指令。在DSP的指令系統(tǒng)中,有許多指令是多功能指令,即一條指令可以完成幾種不同的操作,或者說一條指令具有幾條指令的功能。例如,TMS320C2000中的MACD指令在一個(gè)指令周期內(nèi)可以完成乘法、累加和數(shù)據(jù)移動(dòng)三項(xiàng)功能,這種特殊的指令無疑能大大提高程序的運(yùn)行效率。
8)執(zhí)行時(shí)間的可預(yù)測性
由于DSP執(zhí)行程序的進(jìn)程對(duì)程序員來說是透明的,因此很容易預(yù)測處理每項(xiàng)工作的執(zhí)行時(shí)間。這時(shí)候,DSP對(duì)高性能GPP的優(yōu)勢在于:即便是使用了高速緩存的DSP,哪些指令會(huì)放進(jìn)去也是由程序員(而不是處理器)來決定的,因此很容易判斷指令是從高速緩存還是從存儲(chǔ)器中讀取。DSP一般不使用動(dòng)態(tài)特性,如轉(zhuǎn)移預(yù)測和推理執(zhí)行等。因此,由一段給定的代碼來預(yù)測所要求的執(zhí)行時(shí)間是直截了當(dāng)?shù)?,這使得程序員得以確定芯片的性能限制。
9)芯片的硬件資源
不同的DSP芯片所提供的硬件資源是不相同的,如片內(nèi)RAM、ROM的數(shù)量,外部可擴(kuò)展的程序和數(shù)據(jù)空間,總線接口,I/O接口等。即使是同一系列的DSP芯片(如TI公司的TMS320C54X系列),系列中不同DSP芯片也具有不同的內(nèi)部硬件資源,可以適應(yīng)不同的需要。
10)操作系統(tǒng)
DSP有實(shí)時(shí)操作系統(tǒng)的支持。目前,DSP實(shí)時(shí)操作系統(tǒng)的品種較多,據(jù)統(tǒng)計(jì),僅用于信息電器的DSP操作系統(tǒng)就有10種左右,其中較為流行的主要有CY-DRTOS、VxWorks、pSOS。與通用操作系統(tǒng)相比較,實(shí)時(shí)操作系統(tǒng)在系統(tǒng)實(shí)時(shí)高效性、硬件的相關(guān)依賴性、軟件固態(tài)化以及應(yīng)用的專用性等方面具有較為突出的特點(diǎn)。
11)功耗和成本
電源電壓過去常采用5V,在某些DSP應(yīng)用場合,功耗也是一個(gè)需要特別注意的問題。例如,便攜式的DSP設(shè)備、手持設(shè)備、野外應(yīng)用的DSP設(shè)備等都對(duì)功耗有特殊的要求。目前,3.3V供電的低功耗高速DSP芯片已大量使用。
DSP的成本較低。
12)DSP芯片的處理能力
TMS320C6000系列為新一代高性價(jià)比DSP芯片,是高端DSP處理器的代表。C6000系列的DSP定點(diǎn)運(yùn)算可以達(dá)到1200~8000MIPS,浮點(diǎn)運(yùn)算可以達(dá)到600~1800MFLOPS的運(yùn)算速度。其代表是定點(diǎn)系列的TMS320C62X和浮點(diǎn)系列的TMS320C67X。TMS320C64X為TI公司最新推出的高性能定點(diǎn)DSP處理器,時(shí)鐘速度提高到了1GHz,單片處理能力可達(dá)到8000MIPS。
為了提高DSP的處理能力,通常采用以下措施。
(1)廣泛采用流水線。
與哈佛總線結(jié)構(gòu)相關(guān),DSP廣泛采用流水線以減少指令執(zhí)行時(shí)間,從而增強(qiáng)了處理器的處理能力。要執(zhí)行一條DSP指令,需要通過取指、譯碼、取操作數(shù)、執(zhí)行等幾個(gè)階段,DSP的流水線結(jié)構(gòu)是指它的這幾個(gè)階段在程序執(zhí)行過程中是重疊進(jìn)行的,即在對(duì)本條指令取指的同時(shí),前面的三條指令已依次完成譯碼、取操作數(shù)、執(zhí)行的操作。利用這種流水線機(jī)制可保證DSP的乘法、加法以及乘累加運(yùn)算在單周期內(nèi)完成,這對(duì)提高DSP的運(yùn)算速度具有重要意義,特別是當(dāng)設(shè)計(jì)的算法需要連續(xù)的乘累加運(yùn)算時(shí)。圖2-10所示為流水線示意圖。流水線級(jí)數(shù)就等于最后總的加速比,當(dāng)然并不是說把流水線級(jí)數(shù)分得越多,處理器的性能就越好。流水線處理器性能提高的關(guān)鍵在于每個(gè)時(shí)鐘周期處理器都應(yīng)當(dāng)能啟動(dòng)一條指令的執(zhí)行。圖2-10流水線示意圖
(2)多處理單元結(jié)構(gòu)。
DSP內(nèi)部一般都包括多個(gè)處理單元,如ALU、乘法器、輔助算術(shù)單元等。它們都可在單獨(dú)的一個(gè)指令周期內(nèi)執(zhí)行完計(jì)算和操作任務(wù),而且往往同時(shí)完成。這種結(jié)構(gòu)特別適合于濾波器的設(shè)計(jì),如FIR和IIR。這種多處理單元結(jié)構(gòu)還表現(xiàn)為將一些特殊的算法做成硬件,如典型的FFT的位翻轉(zhuǎn)尋址和流水FIR濾波算法的循環(huán)尋址等。大部分DSP具有零消耗循環(huán)控制的專門硬件,這使得處理器不用花時(shí)間測試循環(huán)計(jì)數(shù)器的值就能執(zhí)行一組指令的循環(huán),完成循環(huán)跳轉(zhuǎn)和循環(huán)計(jì)數(shù)器的衰減。
(3)各種并行處理機(jī)制。
DSP處理器的更高性能由于不能從傳統(tǒng)結(jié)構(gòu)中得到解決,因此提出了各種提高性能的策略。其中,提高時(shí)鐘頻率似乎是有限的,最好的方法是提高并行性。提高操作并行性可以由兩個(gè)途徑實(shí)現(xiàn):提高每條指令執(zhí)行的操作的數(shù)量;提高每個(gè)指令周期中執(zhí)行的指令的數(shù)量。
GPP中所采用的SIMD、VLIW和超標(biāo)量技術(shù)在DSP中都有采用。
由此可知,DSP在信號(hào)處理方面獨(dú)具優(yōu)勢,而且成本較低,功耗較低,開發(fā)也非常方便,在現(xiàn)階段,與GPP相比,DSP的綜合性能較強(qiáng),因此使用范圍較廣,是軟件無線電系統(tǒng)的主流選擇之一。
3.多處理器并行技術(shù)
雖然現(xiàn)代單片DSP的處理能力已經(jīng)非常強(qiáng)大,但是面對(duì)軟件無線電的應(yīng)用需求,還是有些力不從心,因此采用多DSP并行處理是必然的趨勢。
圖2-11給出了采用總線共享方式實(shí)現(xiàn)多DSP并行處理的組成框圖??偩€共享使多個(gè)DSP共同使用一條總線,存儲(chǔ)器的地址在各DSP內(nèi)部所占用的地段是相同的。當(dāng)多個(gè)DSP申請(qǐng)總線使用權(quán)時(shí),總線仲裁電路將根據(jù)分時(shí)享用或優(yōu)先等級(jí)原則把總線的使用權(quán)交給其中的某個(gè)DSP,并把此DSP作為此時(shí)的主處理器,而其他的DSP則必須處于等待狀態(tài),直到交出總線使用權(quán)。圖2-11采用總線共享方式實(shí)現(xiàn)多DSP并行處理的組成框圖當(dāng)然還有其他的一些解決方式,某些DSP專門提供了特殊用途的硬件來解決各個(gè)處理器的內(nèi)部連接,比如AnalogDevices公司的ADSP-2106x提供了雙向地址總線和數(shù)據(jù)總線,與六條雙向總線相配合,很容易把六個(gè)處理器通過共同的外部總線連接成一個(gè)系統(tǒng)。
4.DSP開發(fā)工具
在具體設(shè)計(jì)基于DSP的軟件無線電系統(tǒng)的時(shí)候,首先需要選擇DSP芯片。只有選定了DSP芯片,才能進(jìn)一步設(shè)計(jì)其外圍電路及系統(tǒng)的其他電路??偟膩碚f,DSP芯片的選擇應(yīng)根據(jù)實(shí)際應(yīng)用系統(tǒng)的需要而確定,并考慮上述DSP芯片的具體性能,除此以外還要考慮其他一些影響DSP使用的因素,主要有價(jià)格、封裝形式、質(zhì)量標(biāo)準(zhǔn)、供貨情況、生命周期等。另外特別需要考慮DSP芯片的開發(fā)工具,在DSP系統(tǒng)的開發(fā)過程中,如果沒有開發(fā)工具的支持,那么要想開發(fā)一個(gè)復(fù)雜的DSP系統(tǒng)幾乎是不可能的。如果有功能強(qiáng)大的開發(fā)工具的支持,如C語言支持,則開發(fā)的時(shí)間就會(huì)大大縮短。一個(gè)復(fù)雜的DSP系統(tǒng)必須有功能強(qiáng)大的開發(fā)工具支持。開發(fā)工具包括軟件和硬件兩部分。軟件開發(fā)工具主要包括:C編譯器、匯編器、鏈接器、程序庫、軟件仿真器等。在確定DSP算法后,編寫的程序代碼通過軟件仿真器進(jìn)行仿真運(yùn)行,從而確定必要的性能指標(biāo)。硬件開發(fā)工具包括在線硬件仿真器和系統(tǒng)開發(fā)板。在線硬件仿真器通常是JTAG周邊掃描接口板,可以對(duì)設(shè)計(jì)的硬件進(jìn)行在線調(diào)試。在硬件系統(tǒng)完成之前,在不同功能的開發(fā)板上實(shí)時(shí)運(yùn)行設(shè)計(jì)的DSP軟件可以提高開發(fā)效率,甚至在有的數(shù)量小的產(chǎn)品中,直接將開發(fā)板當(dāng)作最終產(chǎn)品。
1)DSP處理器開發(fā)工具簡介
隨著DSP處理器的功能不斷強(qiáng)化和系統(tǒng)開發(fā)周期不斷縮短,設(shè)計(jì)和調(diào)試DSP系統(tǒng)越來越依賴于DSP開發(fā)系統(tǒng)和開發(fā)工具。圖2-12為DSP處理器開發(fā)流程圖。圖2-12DSP處理器開發(fā)流程圖雖然廠家不同,但提供的開發(fā)調(diào)試工具大致類同,一般有下列幾種。
(1)C語言編譯器(CCompiler)。
一般廠家為了方便開發(fā)DSP系統(tǒng),減小編寫匯編程序的難度,都提供了高級(jí)語言設(shè)計(jì)方法,一般是C語言。開發(fā)系統(tǒng)針對(duì)DSP庫函數(shù)、頭文件及編寫的C程序,自動(dòng)生成對(duì)應(yīng)的匯編語言,這一步稱為C編譯。C編譯器通常符合ANSIC標(biāo)準(zhǔn),可以對(duì)編寫的程序進(jìn)行不同等級(jí)的優(yōu)化,以產(chǎn)生高效的匯編代碼;C編譯器還具有對(duì)存儲(chǔ)器的配置、分配及部分鏈接功能,并具有靈活的匯編語言接口等多種功能。
C編程方法易學(xué)易用,但編譯出的匯編程序比手工匯編程序長得多,因而其效率一般只有20%~40%。為了克服C編譯器效率低的缺點(diǎn),在提供標(biāo)準(zhǔn)C庫函數(shù)的同時(shí),開發(fā)系統(tǒng)也提供了許多針對(duì)DSP運(yùn)算的高效庫函數(shù),例如FFT、FIR、IIR、相關(guān)、矩陣運(yùn)算等,它們都是手工匯編的,帶有高級(jí)語言調(diào)用/返回接口。
一般為了得到高效編程,在系統(tǒng)軟件開發(fā)中,關(guān)鍵的DSP運(yùn)算程序都是自行用匯編語言手工編寫的,按照規(guī)定的接口約定,由C程序進(jìn)行調(diào)用,這樣可極大地提高編程效率。
(2)匯編器(Assembler)。
匯編器用來將匯編語言原文件轉(zhuǎn)變?yōu)榛诠媚繕?biāo)文件格式的機(jī)器語言目標(biāo)文件。
(3)鏈接器(Linker)。
鏈接器用來將主程序、庫函數(shù)和子程序等,由匯編器產(chǎn)生的目標(biāo)文件鏈接在一起,產(chǎn)生一個(gè)可執(zhí)行的模塊,形成DSP目標(biāo)代碼。
(4)軟件模擬器(Simulator)。
軟件模擬器是脫離硬件的純軟件仿真工具。將程序代碼加載后,在一個(gè)窗口工作環(huán)境中,可以模擬DSP的運(yùn)行程序,同時(shí)對(duì)程序進(jìn)行單步執(zhí)行并設(shè)置斷點(diǎn),對(duì)寄存器/存儲(chǔ)器進(jìn)行觀察、修改,統(tǒng)計(jì)某段程序的執(zhí)行時(shí)間等。通常在程序編寫完以后,都會(huì)在軟件仿真器上進(jìn)行調(diào)試,以初步確定程序的可運(yùn)行性。軟件仿真器的主要缺點(diǎn)是對(duì)外部接口的仿真不夠完善。
(5)硬件仿真器(Emulator)。
硬件仿真器用JTAG接口電纜把DSP硬件目標(biāo)系統(tǒng)和裝有仿真軟件/仿真卡的PC接口板連接起來,用PC平臺(tái)對(duì)實(shí)際硬件目標(biāo)系統(tǒng)進(jìn)行調(diào)試,能仿真程序在實(shí)際硬件環(huán)境下的功能。
為了方便調(diào)試,廠家會(huì)提供一個(gè)包含DSP、存儲(chǔ)器、常用接口電路的通用電路板和相應(yīng)軟件的軟/硬件系統(tǒng),通常有兩種形式:一種是電路板卡的形式,插入計(jì)算機(jī)中;另一種是通過計(jì)算機(jī)的串口或并口連接到計(jì)算機(jī)。這些都是通過計(jì)算機(jī)的控制端口來控制DSP的運(yùn)行的,并且有簡單的DSK(DSPStarterKit)入門套件和較為復(fù)雜的EVM(EValuationModule)評(píng)估模塊等。這些都有助于初學(xué)者熟悉和使用DSP處理器,也可以作為程序的初步運(yùn)行對(duì)象,以方便調(diào)試。隨著DSP應(yīng)用范圍的擴(kuò)大、處理能力的加強(qiáng)以及DSP更新速度的加快,DSP處理系統(tǒng)越來越復(fù)雜,對(duì)設(shè)計(jì)者來說難度也越來越大,為此有的廠家已制定了一些標(biāo)準(zhǔn),依據(jù)標(biāo)準(zhǔn)來設(shè)計(jì)生產(chǎn)電路板級(jí)DSP處理模塊,同時(shí)為這種標(biāo)準(zhǔn)模塊提供豐富的軟件開發(fā)系統(tǒng)和算法庫。
其中典型的如TMS320C4X和SDSP2106X,它們可以通過通信口和全局總線插座將若干模塊安裝在母板上,方便地組成多處理器系統(tǒng)。這種模塊化設(shè)計(jì)降低了硬件設(shè)計(jì)難度,減少了硬件設(shè)計(jì)時(shí)間,有利于更高效地開發(fā)DSP系統(tǒng)。
2)DSP開發(fā)系統(tǒng)
目前各DSP芯片生產(chǎn)廠家已經(jīng)把以上列出的各開發(fā)工具集成在一起,構(gòu)成了集成開發(fā)環(huán)境。集成開發(fā)環(huán)境可以提供環(huán)境配置、源程序編輯、編譯連接、程序調(diào)試、跟蹤分析等各個(gè)環(huán)節(jié),以加速軟件開發(fā)進(jìn)程,提高工作效率。集成開發(fā)環(huán)境把編譯、匯編、鏈接等工具集成在一起,用一條命令即可完成全部的匯編工作。另外,它把軟/硬件開發(fā)工具集成在其中,使程序的編寫、匯編、程序的軟/硬件仿真和調(diào)試等開發(fā)工作在統(tǒng)一的環(huán)境中進(jìn)行,給開發(fā)工作帶來了極大的方便。下面列出兩個(gè)主要公司出品的集成開發(fā)環(huán)境。
(1)TI的CCS集成開發(fā)環(huán)境。
在編譯器市場中,最為著名的是TI公司的CCS(CodeComposerStudio),它包含有編譯器和集成開發(fā)環(huán)境IDE,是TI開發(fā)的一個(gè)完整的DSP集成開發(fā)環(huán)境。CCS是為TI高端產(chǎn)品C6000和高性能C5000設(shè)計(jì)的新的軟件工具,它將代碼生成工具和調(diào)試工具集成在一起,并提供了基于可視化鏈接和剖析的編譯功能。CCS能在一個(gè)控制窗口內(nèi)使用所有的工具,無需像其他開發(fā)系統(tǒng)那樣在幾個(gè)不同的應(yīng)用程序之間切換,因而使客戶能夠開發(fā)出更可靠的應(yīng)用系統(tǒng),縮短產(chǎn)品的上市時(shí)間。由于TI的DSP使用非常廣泛,因此CCS也就成為了使用最為廣泛的DSP開發(fā)軟件之一。在一個(gè)開放式插件(plug_in)結(jié)構(gòu)下,CCS內(nèi)部集成了以下軟件工具:集成開發(fā)環(huán)境CodeComposer(包括編輯、調(diào)試、項(xiàng)目管理、代碼性能測試和實(shí)時(shí)調(diào)查),代碼生成工具(包括C編譯器、匯編優(yōu)化器、匯編器和鏈接器),軟件模擬器(Simulator),實(shí)時(shí)基礎(chǔ)軟件(DSP/BIOS),主機(jī)與目標(biāo)機(jī)之間的實(shí)時(shí)數(shù)據(jù)交換軟件(RTDX),實(shí)時(shí)分析(real_timeanalysis)和數(shù)據(jù)可視化(datavisualization)軟件。
(2)ADI的CROSSCORE集成開發(fā)環(huán)境。
由ADI公司推出的CROSSCORE系列DSP開發(fā)工具是當(dāng)前最先進(jìn)的集成式開發(fā)系統(tǒng)之一。該系統(tǒng)包括VisualDSP++軟件開發(fā)環(huán)境、EZ-KitLite評(píng)估板,以及基于USB與PCI的高性能仿真器。該系統(tǒng)支持ADI公司的在業(yè)界領(lǐng)先的處理器,像Blackfin和TigerSHARC系列處理器,可使用C語言或匯編語言進(jìn)行開發(fā)。其中,VisualDSP++是一種集成軟件開發(fā)環(huán)境,包括匯編程序、C/C++編譯程序、連接程序、調(diào)試程序、歸檔程序、用于創(chuàng)建可引導(dǎo)圖像的加載工具、VDK(VisualDSP++內(nèi)核)、高級(jí)繪圖工具和統(tǒng)計(jì)剖析。EZ-KitLite評(píng)估系統(tǒng)通過增加JTAG在線仿真來支持?jǐn)U展。仿真程序適用于串行端口、PCI和USB主機(jī)平臺(tái)。2.3.6FPGA
1.FPGA芯片簡介
FPGA的結(jié)構(gòu)如圖2-13所示。圖2-13FPGA的結(jié)構(gòu)
FPGA是具有可編程互聯(lián)門的陣列,其邏輯功能可以進(jìn)行重定義。FPGA最初是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路出現(xiàn)的,它既解決了定制電路的不足,又克服了原有可編程器件門電路有限的缺點(diǎn)。可以毫不夸張地講,F(xiàn)PGA能完成任何數(shù)字器件的功能,上至高性能CPU,下至簡單的組合電路,都可以用FPGA來實(shí)現(xiàn)。設(shè)計(jì)人員可以通過傳統(tǒng)的原理圖輸入法或是硬件描述語言,自由地設(shè)計(jì)一個(gè)數(shù)字系統(tǒng)。通過軟件仿真,我們可以事先驗(yàn)證設(shè)計(jì)的正確性。在PCB完成以后,還可以利用FPGA的在線修改能力,隨時(shí)修改設(shè)計(jì)而不必改動(dòng)硬件電路。
FPGA一般采用SRAM工藝,也有一些專用器件采用Flash工藝或反熔絲工藝等,其集成度很高,器件密度為數(shù)萬門到數(shù)千萬門不等。FPGA通常包含三類可編程資源:可編程邏輯功能塊、可編程I/O塊和可編程布線資源??删幊踢壿嫻δ軌K是實(shí)現(xiàn)用戶功能的基本單元,它們通常排列成一個(gè)陣列,散布于整個(gè)芯片;可編程I/O塊完成芯片上邏輯與外部封裝腳的接口,常圍繞著陣列排列于芯片四周;可編程布線資源包括各種長度的連線線段和一些可編程連接開關(guān),它們將各個(gè)可編程邏輯塊或I/O塊連接起來,構(gòu)成特定功能的電路。布線資源通常分為兩類:時(shí)鐘布線資源和信號(hào)布線資源。時(shí)鐘布線資源用于饋入高速時(shí)鐘信號(hào),信號(hào)布線資源用于連接邏輯塊的輸入/輸出信號(hào)。這些布線資源具有一定的層次結(jié)構(gòu),短線用于連接相鄰的邏輯塊,中等長線用于連接間隔較遠(yuǎn)的邏輯塊,長線用于在整個(gè)芯片上發(fā)送數(shù)據(jù)。不同廠家生產(chǎn)的FPGA在可編程邏輯塊的規(guī)模、內(nèi)部互聯(lián)線的結(jié)構(gòu)和采用的可編程元件上存在較大的差異。但其基本結(jié)構(gòu)都基于查找表(LUT)加寄存器結(jié)構(gòu),這也是FPGA有別于其他類型可編程器件的標(biāo)志。
FPGA可以分為兩大類:
(1)PLD可編程邏輯器件;
(2)FPGA現(xiàn)場可編程門陣列。這兩者的差別在于FPGA的邏輯塊通常遠(yuǎn)遠(yuǎn)小于PLD,這樣FPGA就具有較好的資源利用率。FPGA邏輯塊中通常包含n輸入的查找表(LUT)以及用于存儲(chǔ)數(shù)據(jù)的觸發(fā)器。輸入邏輯塊的數(shù)據(jù)送入LUT或觸發(fā)器的輸入口,LUT的輸出與邏輯塊的輸出口或觸發(fā)器的輸入口連接,采用多路開關(guān)(Mux)選擇不同的輸入組合。
LUT通常用靜態(tài)RAM實(shí)現(xiàn),其地址線接入輸入信號(hào),數(shù)據(jù)由數(shù)據(jù)輸出線輸出。這樣,依靠正確設(shè)置存儲(chǔ)的內(nèi)容,LUT就可以實(shí)現(xiàn)n輸入的布爾代數(shù),如圖2-14所示。每個(gè)邏輯塊中的觸發(fā)器用于存儲(chǔ)數(shù)據(jù)。LUT和觸發(fā)器依靠可編程布線資源進(jìn)行互聯(lián)可以實(shí)現(xiàn)任意組合函數(shù),也可以實(shí)現(xiàn)任意時(shí)序函數(shù)。圖2-14FPGA中查找表的功能示意圖采用SRAM工藝的FPGA芯片在掉電后信息就會(huì)丟失,一定需要外加專用配置芯片,在上電的時(shí)候,由這個(gè)配置芯片將數(shù)據(jù)加載到FPGA中,然后FPGA就可以正常工作了。由于配置時(shí)間很短,因此不會(huì)影響系統(tǒng)的正常工作。但也有少數(shù)FPGA采用反熔絲或Flash工藝,對(duì)于這種FPGA,不需要外加專用配置芯片。
FPGA的可重配置能力很強(qiáng),其配置一般在系統(tǒng)上電時(shí)完成。在工作期間,F(xiàn)PGA的配置是不發(fā)生變化的,所以在系統(tǒng)斷電之前,F(xiàn)PGA的工作狀態(tài)是不變的。這是因?yàn)镕PGA是由存放在片內(nèi)RAM中的程序來設(shè)置其工作狀態(tài)的,工作時(shí)需要對(duì)片內(nèi)的RAM進(jìn)行編程,加電時(shí),F(xiàn)PGA芯片將EPROM中數(shù)據(jù)讀入片內(nèi)編程RAM中,配置完成后,F(xiàn)PGA進(jìn)入工作狀態(tài),掉電后FPGA恢復(fù)成白片,內(nèi)部邏輯關(guān)系消失。FPGA的編程無需專用的FPGA編程器,只需用通用的EPROM、PROM編程器即可。當(dāng)需要修改FPGA的功能時(shí),只需換一片EPROM即可。同一片F(xiàn)PGA,不同的編程數(shù)據(jù),可以產(chǎn)生不同的電路功能?,F(xiàn)在的某些FPGA(比如XilinxXC6200、AtmelAT40K)已經(jīng)允許動(dòng)態(tài)重配,即在工作狀態(tài)下對(duì)芯片功能進(jìn)行重配置。在軟件無線電的應(yīng)用中,F(xiàn)PGA的主要優(yōu)勢在于:FPGA可以進(jìn)行并行化,比如在實(shí)現(xiàn)乘加運(yùn)算(MAC)時(shí)FPGA可以采用流水線陣列乘法或分布式算法實(shí)現(xiàn)并行MAC運(yùn)算,效率很高,這在很多信號(hào)處理算法(比如濾波器)的實(shí)現(xiàn)上是很有利的。
2.FPGA芯片的種類和性能
目前FPGA的主要生產(chǎn)廠商是Altera、Xilinx。FPGA的品種也很多。
Altera的主要產(chǎn)品有MAX3000/7000、FLEX10K、APEX20K、ACEX1K、Stratix、Cyclone等。
Xilinx是FPGA的發(fā)明者,產(chǎn)品種類為XC9500、Coolrunner、Spartan、Virtex等。
由于FPGA的結(jié)構(gòu)完全不同于前面介紹的GPP和DSP,幾乎沒有什么可對(duì)比性,因此在這里主要說明其處理能力和頗具特點(diǎn)的地方。
在FPGA中,通常采用描述規(guī)模的方式來描述功能的大小,即其中擁有邏輯單元或邏輯門的數(shù)目。另外,所能支持的時(shí)鐘速率也是指標(biāo)之一。
1)處理能力
FPGA可以工作于順序方式或并行方式。在并行工作下,其性能遠(yuǎn)遠(yuǎn)優(yōu)于DSP,對(duì)DSP處理器需要大量運(yùn)算指令完成的工作,F(xiàn)PGA僅需要一個(gè)指令周期就能夠完成。隨著微電子技術(shù)的發(fā)展,F(xiàn)PGA的集成度非常高,性能越來越好,片上資源也較為豐富,特別是有大量的乘法器,使得處理速度非???。以Xilinx的XC2V8000芯片為例,其上有168個(gè)乘法器,當(dāng)時(shí)鐘速率為250MHz時(shí),如果使用全部乘法器,則其運(yùn)算速度可以達(dá)到驚人的42000MMACS,比DSP快得多;如果時(shí)鐘速率僅為最大速率的一半,且假定資源的利用也僅有一半,則整個(gè)運(yùn)算速度下降到10500MMACS,與DSP相比也具有一定的優(yōu)勢。
需要注意的是,F(xiàn)PGA并不適合復(fù)雜的算法,它主要針對(duì)復(fù)雜性不高的計(jì)算密集型算法。
2)硬件可重構(gòu)性
FPGA具有很強(qiáng)的硬件可重構(gòu)性,這是GPP、DSP所沒有的功能。通過下載不同的配置文件,可獲得不同的硬件結(jié)構(gòu)和硬件功能,因此基于FPGA的系統(tǒng)具有良好的系統(tǒng)結(jié)構(gòu)可重配置特性。配置文件的加載有多種方式。
(1)將多個(gè)文件預(yù)先存儲(chǔ)在系統(tǒng)的ROM中,系統(tǒng)根據(jù)實(shí)際需要自動(dòng)選擇下載配置文件。缺點(diǎn)是配置文件數(shù)目有限。
(2)將配置文件全部預(yù)存在大的存儲(chǔ)器中,由外圍系統(tǒng)選擇下載配置。
(3)通過遠(yuǎn)程下載,如無線或互聯(lián)網(wǎng)絡(luò)。
3)成本
FPGA的成本較高。
3.FPGA芯片的開發(fā)工具
FPGA的開發(fā)流程如圖2-15所示。其前期準(zhǔn)備工作和DSP是相同的,隨后采用專用開發(fā)工具輔助設(shè)計(jì)人員完成系統(tǒng)的開發(fā)。其電路設(shè)計(jì)采用的方式可以很多,包括原理圖輸入、硬件描述語言輸入,如VHDL、Verilog等。即使結(jié)構(gòu)非常復(fù)雜,設(shè)計(jì)者也不必?fù)?dān)心FPGA的內(nèi)部結(jié)構(gòu),開發(fā)工具可自動(dòng)將設(shè)計(jì)者的電路映射、配置、布線到FPGA中。圖2-15FPGA的開發(fā)流程大部分現(xiàn)有的FPGA系統(tǒng)的開發(fā)工具原本用于加快ASIC原型的設(shè)計(jì),重點(diǎn)在于節(jié)約開發(fā)時(shí)間,而不是提高資源的有效利用。當(dāng)設(shè)計(jì)一個(gè)全新的無線系統(tǒng)時(shí),多花一些器件成本但是減少開發(fā)時(shí)間在經(jīng)濟(jì)上是合算的。但是在將產(chǎn)品FPGA化的時(shí)候,卻需要盡可能充分利用FPGA的資源,在這種情況下可能還需要用到手工布線。
FPGA開發(fā)工具包括軟件工具和硬件工具兩種。
其中,硬件工具主要是FPGA廠商或第三方廠商開發(fā)的FPGA開發(fā)板及其下載線。另外,還包括示波器、邏輯分析儀等板級(jí)的調(diào)試儀器。
在軟件方面,針對(duì)FPGA設(shè)計(jì)的各個(gè)階段,F(xiàn)PGA廠商和EDA軟件公司提供了很多優(yōu)秀的EDA工具,如圖2-15所示。每種EDA工具都有自己的特點(diǎn)。一般情況下FPGA廠商會(huì)提供相應(yīng)的集成開發(fā)環(huán)境,如AlteraQuartusII和XilinxISE,在使用時(shí)是非常方便的,但它們?cè)谶壿嬀C合和設(shè)計(jì)仿真等環(huán)節(jié)都不是非常優(yōu)秀,因此一般都會(huì)提供第三方EDA工具的接口,讓用戶更方便地利用其他EDA工具。較為常見的方式是FPGA廠商提供的集成開發(fā)環(huán)境與第三方提供的專業(yè)邏輯仿真軟件、專業(yè)邏輯綜合軟件一起使用,進(jìn)行多種EDA工具的協(xié)同設(shè)計(jì),比如QuartusⅡ+ModelSim+FPGACompilerⅡ,ISE+ModelSim+SynplifyPro等。2.3.7數(shù)字信號(hào)處理器的性能比較
GPP、DSP和FPGA都是實(shí)現(xiàn)軟件無線電的主流信號(hào)處理硬件,在具體應(yīng)用時(shí),需要按照它們的性能特點(diǎn)進(jìn)行選擇。下面從幾個(gè)方面說明它們的性能差異。由于GPP應(yīng)用較少且和DSP較為類似,因此在這里不專門進(jìn)行比較。
1)硬件結(jié)構(gòu)和性能發(fā)展
DSP采用了數(shù)據(jù)總線和程序總線分離的哈佛結(jié)構(gòu)及改進(jìn)哈佛結(jié)構(gòu),具有硬件乘法器和指令流控制,一個(gè)指令字可以同時(shí)控制片內(nèi)多個(gè)功能單元的操作。其優(yōu)勢源于大多數(shù)信號(hào)處理算法中的乘累加運(yùn)算是基本運(yùn)算,而且比重很大,通過多級(jí)流水線結(jié)構(gòu),DSP可以獲得僅僅受乘法器速度限制的MAC速度。DSP的優(yōu)勢主要是具有很好的通用性和靈活性,與普通單片機(jī)應(yīng)用系統(tǒng)十分相似,只要將調(diào)好的機(jī)器碼放在程序ROM中,就能使系統(tǒng)正常工作。在DSP中增加更多的MAC單元能進(jìn)一步提高DSP的吞吐量,但對(duì)于某些一般數(shù)據(jù)處理量比較大的DSP算法,其通用性卻下降了,比如Viterbi編譯碼器和FIR濾波器就屬于這種情況。為了解決這個(gè)問題,DSP生產(chǎn)商將一些專用的硬件加速器的協(xié)處理器模塊加入處理器結(jié)構(gòu),如Viterbi協(xié)處理器、Turbo協(xié)處理器和增強(qiáng)性濾波器協(xié)處理器等。由于這些協(xié)處理器本身具有非通用性(主要是傾向于某種或某些算法的協(xié)處理器),因而導(dǎo)致DSP無法適用于多種類型的DSP算法和DSP技術(shù)應(yīng)用。結(jié)果成
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 贛南醫(yī)學(xué)院《英語閱讀與思辨》2023-2024學(xué)年第一學(xué)期期末試卷
- 七年級(jí)語文上冊(cè)第二單元6散步教案新人教版
- 七年級(jí)道德與法治上冊(cè)第四單元生命的思考第八課探問生命第1課時(shí)誤區(qū)警示新人教版
- 三年級(jí)數(shù)學(xué)上冊(cè)7長方形和正方形第3課時(shí)周長導(dǎo)學(xué)案新人教版
- 三年級(jí)數(shù)學(xué)上冊(cè)第2單元兩三位數(shù)乘一位數(shù)2.8解決問題課時(shí)練冀教版
- 慢性胃炎培訓(xùn)課件
- 《先芥蒂與麻醉》課件
- 人教版八年級(jí)物理下冊(cè)全冊(cè)教案
- 函數(shù)的圖象課件
- 涂料調(diào)色完整版本
- 九月主題計(jì)劃《 嗨,你好》
- e乙二醇精制車間設(shè)備布置圖
- 縣級(jí)綜治中心等級(jí)評(píng)定細(xì)則、申報(bào)表、負(fù)面清單、流程圖
- 行政強(qiáng)制法講座-PPT課件
- 2022年新媒體編輯實(shí)戰(zhàn)教程測試題及答案(題庫)
- 崗位現(xiàn)場應(yīng)急處置方案卡全套(全套20頁)
- 涼席竹片銑槽機(jī)(課程設(shè)計(jì))
- 高壓線防護(hù)搭設(shè)方案
- 綜合機(jī)械化固體充填采煤技術(shù)要求-編制說明
- 十人聯(lián)名推薦表
- 七、分蛋糕博弈
評(píng)論
0/150
提交評(píng)論