ARM的DSP增強型擴展
現在,很多新興的應用領(lǐng)域涌現了許多新的算法標準,這些算法對于處理器提出了更高的性能和控制要求。信號處理需要處理器提供高峰值性能,但這部分在整個(gè)算法中的比例有減少的趨勢。對于開(kāi)發(fā)包含高性能算法的大規模應用的設計團隊來(lái)說(shuō),有很多種可供選擇的方案。市場(chǎng)競爭的壓力使得選擇一個(gè)對高性能有充分保障的處理器平臺來(lái)實(shí)現高性能的功能變得非常重要。但是選擇超出需求性能很多的處理器平臺對于系統成本和電源消耗也是有著(zhù)很大影響的,這會(huì )直接導致產(chǎn)品缺乏競爭力。
ARM在提供通用的RISC處理器架構的同時(shí),為其增添了一些針對特定應用的高性能指令集,以期能夠達到軟件和硬件的一個(gè)優(yōu)化平衡。這樣,一些高度涉及信號處理的應用本來(lái)是要借助一塊專(zhuān)用DSP來(lái)完成的,現在由一個(gè)ARM內核就可以實(shí)現同樣的功能。比較典型的例子就是MP3音頻算法。對于MP3算法的分析表明,一些關(guān)鍵的前端步驟的處理,包括讀入比特流,霍夫曼(Huffman)解碼和反量化(inverse quantization),這時(shí),ARM RISC架構比普通的DSP能體現更佳的性能。同時(shí),這個(gè)通用處理器還可以處理復雜的任務(wù)控制。
ARM為信號處理算法專(zhuān)門(mén)發(fā)布了v5TE的架構,在普通的ARM架構基礎上新增了有效的DSP指令。ARM的擴展DSP指令集使得ARM的CPU系列能夠更好的適應復雜的信號處理,同時(shí)還保留了作為高性能RISC處理器所特有的低功耗特性。ARM v5TE的DSP擴展指令集已經(jīng)在A(yíng)RM946E-STM 和 ARM966E-STM和ARM926EJ-STM上得到應用。Intel也同時(shí)在他們和ARM架構兼容的XScale微處理器系列里實(shí)現了DSP指令集的擴展,并且主頻達到了1GHZ。
ARM的解決方案在解決應用問(wèn)題而增強了性能的同時(shí),還在性能和功耗,CPU核面積的大小等方面達到了均衡。像ARM9ETM這樣的單核解決方案,同時(shí)滿(mǎn)足了任務(wù)控制和信號處理方面的需求,比傳統的DSP內核加通用內核的雙核方案,在最終的效率和開(kāi)發(fā)過(guò)程方面有了很大的提升。
目標應用:
ARM專(zhuān)門(mén)為ARM的各個(gè)平臺開(kāi)發(fā)了近乎于CD音質(zhì)的音頻算法,比如MP3,包括了WMA和MPEG AAC標準??偟膩?lái)說(shuō),有著(zhù)DSP增強指令的內核是最適合于應用在以前既需要高性能的DSP核同時(shí)又要求能夠進(jìn)行有效的任務(wù)控制的場(chǎng)合。比如大容量存儲器,語(yǔ)音編碼器,語(yǔ)音識別合成,網(wǎng)絡(luò )應用,車(chē)控系統,智能手機,發(fā)報機和調制解調器。
下圖列舉了DSP增強指令。包括單周期16x16和32x16的乘法指令,增加了飽和運算功能的運算指令。這些指令為開(kāi)發(fā)穩定的操作系統和比特級精確的算法提供了方便。前導零運算指令為算法的標準化和浮點(diǎn)數運算特別是對于除法運算帶來(lái)了高性能。這些DSP增強指令在A(yíng)RMv5TE中得到了很好的實(shí)現。
![]() |
![]() |
DSP增強指令集并沒(méi)有用特別的硬件邏輯來(lái)實(shí)現諸如modulo addressing,bit-wise reversal addressing和zerooverhead
looping的指令。但同時(shí)支持這些運算也是很有意義的,所以可以用一些已有的指令組合來(lái)實(shí)現,盡管這會(huì )帶來(lái)一些性能上的微小的損失。
Bit-wise reversal addressing在快速傅立葉變換(FFT)中是一個(gè)很常見(jiàn)的功能需求,是很多DSP算法的基礎功能?,F有的桶位移(barrel shifter)功能提供了實(shí)現bit-wise reversal的一種仿真方法,和用單指令實(shí)現相比只有微小的性能損失。例如,對于一個(gè)512個(gè)樣本的FFT來(lái)說(shuō),在A(yíng)RM9E核上需要大概29k的時(shí)鐘周期,其中只有大概300個(gè)時(shí)鐘周期是用來(lái)仿真bit-reversed addressing的,只占了整個(gè)FFT變換的1%。
案例分析——語(yǔ)音編碼:
GSM-AMR(Adaptive Multi Rate)語(yǔ)音編碼方案已被3GPP (the Third Generation Partnership Project)選為GSM,UMTS和WCDMA網(wǎng)絡(luò )的語(yǔ)音解決方案。 它近乎有線(xiàn)的語(yǔ)音傳輸質(zhì)量和有效的頻譜使用范圍使得它可能成為下一代的無(wú)線(xiàn)語(yǔ)音編碼標準。
AMR自適應系統可跟據無(wú)線(xiàn)信道的質(zhì)量自動(dòng)調整語(yǔ)音和信道的比特率工作模式。支持AMR的增強型射頻源算法還可以根據傳輸負荷和信道質(zhì)量調整半比特率和全比特率模式。AMR編碼的思想不止是根據無(wú)線(xiàn)傳輸的情況作出調整,并且能根據網(wǎng)絡(luò )運營(yíng)商的需要做出調整。
AMR(自適應多速率)編解碼器組由速率從1 2 . 2 k b p s至4 . 7 5 k b p s的ACELP聲碼器組成,它有8種固定的信源速率模式(4.75~12.20kbit/s)。AMR以20ms的語(yǔ)音為一幀進(jìn)行處理(對應于160個(gè)采樣值在每秒8000個(gè)采樣值的速率下)。AMR把160個(gè)13位的采樣值映射為編碼塊,還能把這個(gè)編碼塊重構造為160個(gè)語(yǔ)音采樣值。對于這160個(gè)采樣值中的每一個(gè)來(lái)說(shuō),語(yǔ)音信號基于碼激勵線(xiàn)性預測(CELP)編碼模式分析得到線(xiàn)性預測(LP)系數。這些系數被編碼和傳輸。在解碼的時(shí)候,這些系數被解碼然后語(yǔ)音通過(guò)LP合成和加權濾波器合成為發(fā)音時(shí)的激發(fā)訊號(excitation signal)。
AMR語(yǔ)音編碼器是用定點(diǎn)標準C語(yǔ)言(fixed-point ANSI-C)描述的精確到bit位的算法,易于驗證和測試。
AMR實(shí)現:
就像其他很多信號處理應用一樣,實(shí)現AMR算法的一個(gè)關(guān)鍵是有效的數字濾波和數字相關(guān)性。ARM9E架構實(shí)現了對應于相關(guān)性操作的“塊”操作,這使得對寄存器的訪(fǎng)問(wèn)減少,提高了效率。
ARM9E指令集可以把兩個(gè)16位數相乘的操作數分別放在一個(gè)32位的寄存器里,各占用半字的大小。然后把結果標量乘積放在一個(gè)32位的寄存器里。這種實(shí)現通過(guò)使用四個(gè)通用寄存器作為累加數,能夠從三個(gè)另外的輸入數據和系數得到聯(lián)合乘積,而不用對數據和系數做移動(dòng)操作。
通常,普通的實(shí)現會(huì )對輸入數據進(jìn)行移位迭代以產(chǎn)生下一個(gè)乘積。通過(guò)復用塊操作中的數據,四個(gè)相關(guān)系數的乘加操作只通過(guò)一次傳輸,節省了Load/Store的操作。圖三指出了相關(guān)系數的塊操作過(guò)程 。
ARM9E的單周期飽和運算指令也使得塊聯(lián)合乘法變得更快。而相應的操作在A(yíng)RM9架構上要用到四個(gè)周期。
由于塊操作對于相關(guān)系數計算效率上的增強,對于需要大量計算的AMR編碼功能,ARM9E只需要實(shí)現同樣功能的ARM9架構的指令的66%。
![]() |
ITU標準G.723.1是一個(gè)為視頻會(huì )議應用定制的語(yǔ)音壓縮算法的國際標準。他能夠把采樣率為8KHz的語(yǔ)音信號編碼為能在6.4或者5.3Kbps的信道上傳輸的信號。G.723提供了約為4KHz的鐘鳴聲質(zhì)量的語(yǔ)音帶寬。這是通過(guò)GSTN或者無(wú)線(xiàn)信號進(jìn)行可視電話(huà)的必需的語(yǔ)音編碼器。G.723.1還是通過(guò)ISDN,B-ISDN,guaranteed QoS LAN, non-guaranteed QoS LAN進(jìn)行視頻電話(huà),或者利用幀中繼(VoFR)和VoIP進(jìn)行語(yǔ)音傳輸的可供選擇的標準。
![]() |
![]() |
比較分析:
對于許多數字信號算法,點(diǎn)積運算功能通常對于峰值處理能力有著(zhù)較高的要求,圖四給出了ARM9E相對于A(yíng)RM9處理點(diǎn)積更好的性能的圖示??梢钥吹接辛薉SP增強指令集,通常能提高平均兩倍的性能。
ARM DSP增強解決方案的一個(gè)很重要的好處,也是相比于專(zhuān)用DSP的一大優(yōu)點(diǎn)就是所有的處理都能夠在一個(gè)單獨的ARM處理器上完成。這既減少了功耗,芯片面積,還使得硬件和軟件的開(kāi)發(fā)過(guò)程變得簡(jiǎn)化。
ARM能夠在處理關(guān)鍵算法的同時(shí)滿(mǎn)足系統任務(wù)控制的需求,比如IO控制,卡式存儲器,顯示和鍵盤(pán)。而專(zhuān)用的DSP處理器要完成同樣的任務(wù)就需要另一個(gè)單獨的微控制單元?;趦蓚€(gè)處理器單元的設計需要多余的芯片面積。另外,由于要在DSP和微控制器間開(kāi)發(fā)關(guān)于控制和數據的交換的協(xié)議,這也使得開(kāi)發(fā)變得復雜。把這些復雜的功能整合到一個(gè)單獨的處理器對于簡(jiǎn)化開(kāi)發(fā)和加速產(chǎn)品的上市時(shí)間是一個(gè)非常關(guān)鍵的因素。
因為ARM DSP增強型處理器只需要一個(gè)單獨的存儲器系統,統一的存儲器映射簡(jiǎn)化了軟件總體的設計難度。對于那些需要RTOS的系統來(lái)說(shuō),現在只需要一個(gè)任務(wù)通過(guò)簡(jiǎn)單的API來(lái)完成對于DSP功能的調用。而專(zhuān)用的DSP解決方案需要開(kāi)發(fā)預約式時(shí)間調度程序來(lái)完成RTOS對于DSP功能的使用,這增加了復雜性和兩個(gè)處理器間切換時(shí)時(shí)間處理的難度。
總結:
ARM DSP增強架構和DSP擴展指令集提供了開(kāi)發(fā)者直接使用嵌入式內核開(kāi)發(fā)高性能的數字處理算法的可能,并且不會(huì )帶來(lái)控制性能的損失。ARM‘E’內核增強了靈活性和編程解決方案的應用空間,作為SoC設計的內核,它能夠提供許多需要峰值處理能力的算法優(yōu)化的解決方案和復雜的控制能力。
ARM的DSP解決方案和他的通用RISC架構內核在硬件資源和提供算法高性能的處理能力方面達到了很好的平衡,在實(shí)現增強性能的同時(shí),沒(méi)有增加很多芯片面積和電源消耗。
作為市場(chǎng)上嵌入式內核IP的領(lǐng)先者,ARM提供了基于內核的SoC設計方案,包括嵌入式軟件開(kāi)發(fā)套件(RVDS),開(kāi)發(fā)板,外設PrimeCell IP模塊,和AMBA-SoC標準片上總線(xiàn)。
評論