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