數字信號處理器概論
數字信號處理學(xué)科與數字信號處理器
數字信號處理(DSP)自1965年由Cooley和Tukey提出DFT(離散傅里葉變換)的高效快速算法(Fourier Transform,簡(jiǎn)稱(chēng)FFT)以來(lái),已有近40年的歷史。隨著(zhù)計算機和信息技術(shù)的發(fā)展,數字信號處理技術(shù)已形成一門(mén)獨立的學(xué)科系統。數字信號處理作為一門(mén)獨立學(xué)科是圍繞著(zhù)三個(gè)方面迅速發(fā)展的:理論、現實(shí)和應用。作為數字信號理論,一般是指利用經(jīng)典理論(如數字、信號與系統分析等)作為基礎而形成的獨特的信號處理理論,以及各種快速算法和各類(lèi)濾波技術(shù)等基礎理論。由此在各個(gè)應用領(lǐng)域如語(yǔ)音與圖象處理、信息的壓縮與編碼、信號的調制與調解、信道的辨識與均衡、各種智能控制與移動(dòng)通訊等都延伸出各自的理論與技術(shù),到目前可以說(shuō)凡是用計算機來(lái)處理各類(lèi)信號的場(chǎng)合都引用了數字信號處理的基本理論、概念和技術(shù)。
數字化技術(shù)有今天的飛速發(fā)展,是依仗于強大的軟、硬件環(huán)境支撐。作為數字信號處理的一個(gè)實(shí)際任務(wù)就是要求能夠快速、高效、實(shí)時(shí)完成處理任務(wù),這就要通過(guò)通用或專(zhuān)用的數字信號處理器來(lái)完成。因此,數字信號處理器是用來(lái)完成數字信號處理任務(wù)的一個(gè)軟、硬件環(huán)境和硬件平臺。
DSP算法及芯片分類(lèi)
DSP運算的基本類(lèi)型是乘法和累加(MAC)運算,對于卷積、相關(guān)、濾波和FFT基本上都是這一類(lèi)運算。這樣的運算可以用通用機來(lái)完成,但受到其成本和結構的限制不可能有很高的實(shí)時(shí)處理能力。
DSP運算的特點(diǎn)是尋址操作。數據尋址范圍大,結構復雜但很有規律。例如FFT運算,它的蝶形運算相關(guān)節點(diǎn)從相鄰兩點(diǎn)直至跨越N/2間隔的地址范圍,每次變更都很有規律,級間按一定規律排列,雖然要運算log2N遍,但每級的地址都可以預測,也就是尋址操作很有規律而且可以預測。這就不同于一般的通用機,在通用機中對數據庫的操作,具有很大的隨機性,這種隨機尋址方式不是信號處理器的強項。
可以看出無(wú)論是專(zhuān)用的DSP芯片或通用DSP芯片在結構考慮上都能適應DSP運算的這些特點(diǎn)。而專(zhuān)用芯片在結構上考慮的更加專(zhuān)業(yè)化,更為合理,因而有更高的運算速度。
DSP芯片按用途或構成分類(lèi)可以分為下列幾種類(lèi)型: 為不同算法而專(zhuān)門(mén)設計的專(zhuān)用芯片:例如用于做卷積/相關(guān)并具有橫向濾波器結構: INMOS公司的A100、A110;HARRIS公司的HPS43168; PLESSY GEC 公司的PDSP16256等。 用于做FFT: Austek公司的A41102, PLESSY GEC 公司的PDSP16150等。這些都是為做FIR、IIR、FFT運算而設計的,因而運算速度高,但是具有有限的可編程能力,靈活性差。
為某種目的應用的專(zhuān)門(mén)設計系統,即ASIC系統。它只涉及一種或一種以上自然類(lèi)型數據的處理,例如音頻、視頻、語(yǔ)音的壓縮和解壓,調制/解調器等。其內部都是由基本DSP運算單元構建,包括FIR、IIR、FFT、DCT,以及卷積碼的編/解碼器及RS編/解碼器等。其特點(diǎn)是計算復雜而且密集,數據量、運算量都很大。
積木式結構:它是由乘法器、存儲器、控制電路等單元邏輯電路搭接而成,這種結構方式也稱(chēng)為硬連線(xiàn)邏輯電路。它是一種早期實(shí)現方法,具有成本低、速度高等特點(diǎn),由于是硬連接因而沒(méi)有可編程能力。目前主要用于接收機的前端某些高頻操作中。
用FPGA(現場(chǎng)可編程陳列)實(shí)現DSP的各種功能。實(shí)質(zhì)上這也是一種硬連接邏輯電路,但由于有現場(chǎng)可編程能力,允許根據需要迅速重新組合基礎邏輯來(lái)滿(mǎn)足使用要求,因而更加靈活,而且比通用DSP芯片具有更高的速度。一些大的公司如 Xinlinx、Altera也正把FPGA產(chǎn)品擴展到DSP應用中去。
通用可編程DSP芯片:這是目前用得最多的數字信號處理應用器件,其特點(diǎn)本文將予以詳細討論。
片上系統Soc(System on Chip),這是數字化應用及微電子技術(shù)迅速發(fā)展的產(chǎn)物,是下一代基于DSP產(chǎn)品的主要發(fā)展方向之一。它把一種應用系統集成在一個(gè)芯片上。通常,為滿(mǎn)足系統的性能要求和提高功率效率,會(huì )把DSP和MCU的多處理器處理平臺集成在一起。圖1 是由TI公司推出的開(kāi)放多媒體應用平臺(OMAP),用來(lái)支持2.5G和3G應用而設計的處理器體系結構,它支持語(yǔ)音、音頻、圖像和視頻信號處理應用的各種性能。其中關(guān)鍵器件有:低功耗的DSP芯片,用來(lái)做媒體處理;MCU用來(lái)支持應用操作系統及以控制為核心的應用處理;MTC是內存和流量控制器,確保處理器能高效訪(fǎng)問(wèn)外部存儲區,避免產(chǎn)生瓶頸現象,提高整個(gè)平臺的處理速度。
DSP對MCU性能上的改進(jìn)
對數字信號處理器可以確切的下這樣的定義:解決實(shí)時(shí)處理要求,適合DSP運算需求的單片可編程微處理器芯片。原理上說(shuō)通用微機、單片機都可以用來(lái)做信號處理的硬件平臺,但作為DSP實(shí)時(shí)處理要求必須滿(mǎn)足大數據量、復雜計算、實(shí)時(shí)性強的各種運算,因而DSP芯片針對DSP算法特點(diǎn)做了以下幾方面的改進(jìn):
運算能力上的擴充
采用專(zhuān)用的硬件乘法器,有足夠的字長(cháng),乘法結果保留全部數值,用雙字長(cháng)乘法存儲器,同時(shí)可以用來(lái)做雙精度運算。
自動(dòng)產(chǎn)生數據地址
通用處理器由ALU產(chǎn)生地址,在DSP中專(zhuān)門(mén)有地址產(chǎn)生單元,通過(guò)程序循環(huán),自動(dòng)產(chǎn)生數據地址,這一單元本身也是一個(gè)微處理器,可以通過(guò)編程產(chǎn)生復雜的非順序地址(例如FFT中的倒位序地址產(chǎn)生)。
指令時(shí)序的產(chǎn)生不對其他運算單元造成額外開(kāi)銷(xiāo)
指令時(shí)序是可編程的,在遇到執行程序轉移和循環(huán)時(shí),不會(huì )額外增加開(kāi)銷(xiāo)。
簡(jiǎn)單比例定標運算得到寬的動(dòng)態(tài)范圍
一般DSP芯片中都有桶形移位器,可以在一定范圍內調整數據輸出寬度,特別是在做浮點(diǎn)和塊浮點(diǎn)運算時(shí),免去主處理器作多次移位和旋轉操作。
DSP處理器特點(diǎn)
DSP處理器的著(zhù)眼點(diǎn)是要求速度快、處理的數據量大、效率高。但是單純提高時(shí)鐘速度受到工藝等各種因素的限制,一般是緩慢的,所以必須從結構上著(zhù)手。某些概念其實(shí)在二十世紀40年代已經(jīng)出現:其一是改造處理器的處理方法,用多總線(xiàn)、多存儲器體系結構;其二是提高程序和數據流的速度,采用流水線(xiàn),并行處理等方法。盡管不同廠(chǎng)商采用不同的技術(shù)和措施,但在這些方面都有共同點(diǎn)。以下就DSP芯片一些特點(diǎn)來(lái)作說(shuō)明。
采用哈佛(Harvard)結構和改進(jìn)的哈佛結構
通用機采用馮·諾依曼(Von Neumenn)結構,這主要考慮到成本,其結構如圖 2 所示。把指令、數據、地址的傳送采用同一條總線(xiàn),靠指令計數來(lái)區分三者。由于取指和存取數據是在同一存取空間通過(guò)同一總線(xiàn)傳輸,因而指令的執行只能是順序的,不可能重疊進(jìn)行,所以無(wú)法提高運算速度。
DSP處理器幾乎毫無(wú)例外的采用哈佛結構,如圖3所示。哈佛結構把程序代碼和數據的存儲空間分開(kāi),并有各自的地址和數據總線(xiàn),每個(gè)存儲器獨立編址,用獨立的一組程序總線(xiàn)和數據總線(xiàn)進(jìn)行訪(fǎng)問(wèn)。
如果程序代碼存儲空間與數據存儲空間之間還可以進(jìn)行數據交換,則稱(chēng)為改進(jìn)的哈佛結構。這種結構可以并行進(jìn)行數據操作。例如在做數字濾波時(shí)把系數放在程序空間,待處理的樣本數據放在數據空間,處理時(shí)可以同時(shí)提取濾波器系數和樣本進(jìn)行乘法和累加操作,從而大大提高運算速度。 改進(jìn)哈佛結構還可以從程序存儲區來(lái)初始化數據存儲區,或把數據存儲區的內容轉移到程序存儲區,這樣可以復用存儲器,降低成本,提高存儲器使用效率。
多總線(xiàn)結構
例如TMS320C54X結構中有一組程序總線(xiàn)(PB PAB),兩組讀數據總線(xiàn)(CB CAB)、(DB DAB),和一組寫(xiě)數據總線(xiàn)(EB EAB),這樣可以同時(shí)讀取兩組數據和存儲一組數據,即同一時(shí)鐘周期內可以執行一條3個(gè)操作的指令。這種附加總線(xiàn)和擴充地址增加數據流量,提高尋址能力。
采用流水線(xiàn)操作
計算機在執行一條指令時(shí),要通過(guò)取指、譯碼、取數、執行等各階段。由于DSP哈佛結構指令的各個(gè)階段可以重疊進(jìn)行,這樣對每一條指令似乎都是在一個(gè)周期內完成,可以把指令周期減到最小,增加數據吞吐量。
這種流水線(xiàn)操作也不是十全十美的,其主要原因是,一項處理很難被分解成若干個(gè)處理規模一致、在時(shí)間上有最佳配合的流水段,因而需要用寄存器協(xié)調流水線(xiàn)工作。
流水線(xiàn)操作適用于循環(huán)操作時(shí)間足夠長(cháng)或多個(gè)數據點(diǎn)反復執行同一指令的情況。這是由于,流水線(xiàn)啟動(dòng)和停止的階段是流水線(xiàn)逐步被填滿(mǎn)和出空的過(guò)程。對于一次性非重復計算,流水線(xiàn)不可能達到穩態(tài),反而用主要時(shí)間做填滿(mǎn)和出空操作,因而是不合適的。
硬件乘法器和高效的MAC指令
在DSP算法中,乘法累加操作是大量的運算。因而DSP芯片都有硬件乘法器,使得乘法運算做到一個(gè)周期內完成。與之配合的指令為MAC-乘法累加指令,其功能如圖 4 所示,它可以在單周期內取兩個(gè)操作數相乘,并將結果加載到累加器。有的DSP還具有多組MAC結構,可以并行處理。
獨立的傳輸總線(xiàn)及其控制器
處理器高速處理速度必須與高速的數據訪(fǎng)問(wèn)和傳輸相配合。而且為不影響CPU及其相關(guān)總線(xiàn)的工作,DSP的DMA單獨設置了傳輸總線(xiàn)及其控制器,因此DMA可以獨立工作。
為了提高DSP的實(shí)時(shí)處理能力,有時(shí)把多個(gè)DSP組成DSP處理器陣列,并行工作,此時(shí)DMA成為各處理器之間進(jìn)行數據傳輸的主要通道。
專(zhuān)用的數據地址發(fā)生器(DAG)
在DSP運算中,存儲器的訪(fǎng)問(wèn)具有可預測性。例如在FIR濾波中,樣本、系數都是順序訪(fǎng)問(wèn)的,因此在DSP芯片中專(zhuān)門(mén)設置數據地址發(fā)生器。其實(shí)它也是一個(gè)ALU單元,具有簡(jiǎn)單的運算能力。在通用機的CPU中,數據地址和數據處理都由同一ALU完成。例如在8086中,做一次加法需要三個(gè)周期,而計算一次地址需要5~6 周期,這樣會(huì )耗費大量的時(shí)間。在DSP芯片中就不需要這樣的額外開(kāi)銷(xiāo)。另外在DSP芯片的數據地址產(chǎn)生中還支持間接尋址、循環(huán)尋址、倒位尋址等特殊操作,以適應DSP運算的各種尋址需求。
豐富的外設(Peripherals)
DSP處理器往往是脫機獨立工作,因此為與外設接口方便,往往設置了豐富的周邊接口電路。一般包含下列幾種主要外設:
時(shí)鐘產(chǎn)生器(振蕩器與鎖相環(huán)PLL);
定時(shí)器(Timer);
軟件可編程等待狀態(tài)發(fā)生器,以便使較快的片內設施與較慢的片外電路及存儲器協(xié)調工作;
通用的I/O口;
多通道同步緩沖串口(McBSP)和異步串口;
主機接口(HIP)
JTAG邊界掃描邏輯電路(IEEE 標準1149. 1),便于對DSP處理器做片上在線(xiàn)仿真和多處理器情況下的調試。
具有片內存儲器
DSP芯片片內一般帶有存放程序的只讀存儲器ROM和存放數據的隨機存儲器RAM,符合DSP運算簡(jiǎn)單、核心程序短小的特征,同時(shí)可以提高指令傳輸效率,減小總線(xiàn)接口壓力。并且它不存在與外部總線(xiàn)競爭和訪(fǎng)問(wèn)外部存儲器速度不匹配的問(wèn)題,這樣使DSP處理器具有強大的數據處理能力。
與結構相配合的采用RISC指令集
一般DSP處理器具有高度專(zhuān)門(mén)化、復雜且不規則的指令集,這樣單個(gè)指令字可以同時(shí)控制片內多個(gè)功能單元操作。DSP處理器指令集在設計時(shí)有兩個(gè)特點(diǎn):其一是最大限度的使用了處理器的硬件資源,因此往往是在單個(gè)指令中并行完成若干操作。例如在完成主要算術(shù)運算的同時(shí),并行地從存儲器提取一個(gè)或兩個(gè)數據以及完成地址指針的更新。其次是指令所使用的存儲空間減到最小,為縮短指令字長(cháng),往往用狀態(tài)寄存器的模式來(lái)控制處理器的操作特性,例如舍入或飽和的處理,而不再將這些信息作為指令的一部分來(lái)處理。
由于傳統DSP芯片指令集的高度專(zhuān)門(mén)化及多功能操作使它難以用高級語(yǔ)言編譯,所以一般C編譯效率不高。另外C語(yǔ)言也不適合用來(lái)描述這種多存儲空間、多組總線(xiàn)、高度專(zhuān)門(mén)化結構的硬件系統,這些都是導致用C編譯傳統DSP處理器效率不高的原因。
綜上所述DSP處理器實(shí)現高速運算的主要途徑可以概括為:具有硬件乘法器及乘-加單元;高效的存儲器訪(fǎng)問(wèn);零開(kāi)銷(xiāo)循環(huán);專(zhuān)門(mén)的適應硬件結構的指令集;多執行單元;數據流的線(xiàn)性I/O口。
DSP處理器性能指標
對DSP處理器缺乏一種諸如對PC機那樣公正合理的性能評價(jià)體系,這是由于各DSP廠(chǎng)商推出的產(chǎn)品在結構和數據傳輸能力上有很大的差異,它是專(zhuān)門(mén)為某種目的而設計的,因而正確評價(jià)只有與特定的應用聯(lián)系起來(lái),評價(jià)結果才有意義。這里將常用的指標評價(jià)方法做一介紹。
傳統評價(jià)方法,這是最簡(jiǎn)單的評價(jià)指標:
MIPS(Millions of Instructions Per Second),一般DSP為20~100MIPS,使用超長(cháng)指令字的TMS320B2XX為2400MIPS。
MOPS(Millions of Operations Per Second),每秒執行百萬(wàn)操作。這個(gè)指標的問(wèn)題是什么是一次操作。通常操作包括CPU操作外,還包括地址計算、DMA訪(fǎng)問(wèn)數據傳輸、I/O操作等。一般說(shuō)MOPS越高意味著(zhù)乘積-累加和運算速度越快。
MFLOaPS(Million Floating Point Operations Per Second),這是衡量浮點(diǎn)DSP芯片的重要指標。例如TMS320C31在主頻為40MHZ時(shí),處理能力為40MFLOPS,TMS320C6701在指令周期為6ns時(shí),單精度運算可達1GFLOPS。
MBPS(Million Bit Per Second),它是對總線(xiàn)和I/O口數據吞吐率的度量,也就是某個(gè)總線(xiàn)或I/O的帶寬。例如對TMS320C6XXX、200MHZ時(shí)鐘、32bit總線(xiàn)時(shí),總線(xiàn)數據吞吐率則為800Mbyte/s或6400MBPS。
MACS(Multiply-Accumulates Per Second),例如TMS320C6XXX乘加速度達300MMACS~600MMACS。
以上傳統指標雖然可以作為設計時(shí)可選的參考指標,但是有很大的局限性。例如它沒(méi)有考慮存儲器的使用和器件的功耗,一旦器件與外部速度較慢的存儲器進(jìn)行數據交換時(shí),運行速度馬上就會(huì )被降低。
另一評價(jià)指標是核心算法評價(jià)指標。它是利用構成大多數DSP系統的基本運算模塊,例如FIR、IIR、FFT、向量加等典型運算。規定大小適度、統一輸入、輸出要求,在保證功能一致性的條件下,也允許程序員針對所使用的處理進(jìn)行代碼的優(yōu)化,評價(jià)指標是執行時(shí)間、存儲器的使用和能耗等。
表1是對一些處理器評價(jià)的結果,其中DSP53611和MSC8101是MOTOROLA產(chǎn)品,TMS320C54166203是TI公司產(chǎn)品。TMS320C6701和Pentium Ⅲ屬于浮點(diǎn)運算。
這種評價(jià)方法很容易用軟件仿真或基于硬件應用的開(kāi)發(fā)工具來(lái)決定執行的周期數。
從上列執行時(shí)間可以看出處理器結構對其性能的影響。例如TMS320C6203,時(shí)鐘300MHZ,由于采用超長(cháng)指令字結構、每個(gè)指令周期內處理8條指令,因此等效為2400MIPS,與TMS320C5416相比MIPS之比為15:1。但執行同樣的256點(diǎn)復數FFT所需時(shí)間之比為7.8:1,因此兩者用MIPS作為比較指標就有差距。其原因是C6203指令比C5416簡(jiǎn)單,因而完成同樣任務(wù)需要更多的指令,另外也由于數據的獨立和流水作業(yè)的影響等因素,C6203的并行性不能同時(shí)得到最佳的發(fā)揮。并且,這種核心算法評估指標并沒(méi)有反映出計算精度,提高計算精度意味著(zhù)字長(cháng)的增加或采用浮點(diǎn)運算,相應的存儲器容量增加,這些情況都沒(méi)有能在指標中反映。
DSP處理器還有其他評估指標,各類(lèi)評估指標之間都有其自身的不足,因而正確的選用器件要根據任務(wù)需要量身定做,不可一味追求某項高指標,要根據性能價(jià)格比合理選用器件。
評論