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