消費類(lèi)音頻應用的解決方案
諸如移動(dòng)音頻播放器、機頂盒(STB)、數字電視(DTV)和數字通用光盤(pán)(DVD) 播放機和刻錄機等消費設備,通常都是采用多功能系統芯片(SOC)來(lái)實(shí)現的。這樣的SOC主要執行兩種功能:應用處理和視頻/音頻信號處理。應用處理(或主處理)通常是通過(guò)像MIPS處理器這樣的一個(gè)可編程內核實(shí)現的。由于其計算復雜性的程度,視頻信號處理是使用專(zhuān)用的硬件完成的。在某種程度上,與視頻信號的處理相比,音頻信號處理的計算需求并沒(méi)有那么大,在過(guò)去,都是采用固定線(xiàn)路邏輯或一個(gè)數字信號處理器(DSP)進(jìn)行處理。
本文引用地址:http://dyxdggzs.com/article/80458.htm然而,由于用戶(hù)的產(chǎn)品需要支持更多復雜的算法,音頻子系統的需求也在增加,先進(jìn)的前/后處理和全雙工需要進(jìn)行同時(shí)編解碼。當音頻需求增加時(shí),因架構上的創(chuàng )新,處理器的頻率也在提高,使像MIPS科技這樣的可編程處理器能夠與主功能一起實(shí)現要求苛刻的音頻應用。
在一個(gè)MIPS內核上構建兩種類(lèi)型的執行音頻應用的SOC結構是可能的:(1)一個(gè)是作為主處理CPU,另一個(gè)是進(jìn)行音頻處理的專(zhuān)用CPU(參見(jiàn)圖1),或者(2)采用一個(gè)單CPU作為主處理和音頻處理。使用MIPS處理器可以為音頻處理帶來(lái)顯著(zhù)的好處。最重要的是優(yōu)點(diǎn),這類(lèi)解決方案可以提供以下的功能:
⊙單處理器架構的高度集成的SOC解決方案
⊙減少整個(gè)SOC設計和制造過(guò)程的成本
⊙可編程音頻處理器可以延長(cháng)SOC設計的生命周期
⊙快速投放市場(chǎng)的優(yōu)勢
⊙MIPS的軟音頻接口有利于應用軟件的開(kāi)發(fā)和集成
多內核SOC音頻架構
在多內核的情況下,主CPU運行操作系統、最終用戶(hù)應用和服務(wù),而用一個(gè)專(zhuān)用音頻處理器運行音頻處理功能。獲得MIPS科技的若干授權就可以得到專(zhuān)門(mén)用于MIPS音頻處理內核的消費電子設備的SOC工具。簡(jiǎn)而言之,使用MIPS用于音頻設計的處理器就可獲得一種可編程解決方案??删幊绦砸馕吨?zhù)一個(gè)現有的設計可以簡(jiǎn)便地適用于各種各樣的音頻算法。這可以提供兩個(gè)重要的優(yōu)勢:?jiǎn)蜸OC的能力可用于多最終用戶(hù)的應用;同時(shí)延長(cháng)SOC設計的生命周期,以跟上音頻標準迅速不斷進(jìn)化和變化的腳步。
專(zhuān)用音頻處理器的優(yōu)點(diǎn)在于它不會(huì )與其他應用爭奪CPU的周期,因此有許多余??臻g。這種音頻協(xié)處理器的余??臻g能用于多種方式:(1)備用的CPU周期可以同時(shí)用于對多數據流的編碼和解碼;(2)它可保證高檔設計中的最高音頻質(zhì)量;或者(3)余??臻g可以通過(guò)降低電壓減低處理器的頻率,因此而降低音頻子系統和整個(gè)SOC的功耗。
使用可編程處理器實(shí)現音頻算法的優(yōu)點(diǎn)在其配置方面的表現尤為明顯,因為它具有符合不斷進(jìn)化形成的全球音頻標準的靈活性。利用專(zhuān)用的DSP,電流性能和功率需求可能得到滿(mǎn)足,但是它們可能無(wú)法根據變化滿(mǎn)足未來(lái)的需要。MIPS的音頻處理器可為通往高性能處理器提供一條清晰而簡(jiǎn)便的遷徙途徑,而且與其上一代產(chǎn)品是二進(jìn)制兼容的。
圖1 音頻處理架構
當一個(gè)內核的音頻處理功能與主CPU單獨完成時(shí),在主CPU和音頻處理器之間需要一種通信機制。在兩個(gè)MIPS內核之間建立一個(gè)通信接口要比在一個(gè)MIPS CPU和一個(gè)DSP之間簡(jiǎn)單得多。例如,MIPS CPU上可使用的LL和SC(加載-連接/存儲-條件)指令能被用來(lái)十分簡(jiǎn)便地建立起通信和同步化機制。
單內核SOC音頻架構
在一個(gè)單內核環(huán)境中,最大的好處是通過(guò)完全省掉DSP或固定線(xiàn)路音頻模塊,而在MIPS主處理器上執行音頻。這既減少了裸片尺寸,又節省了總的系統調試時(shí)間。反過(guò)來(lái),這也保證了減少成本和更為迅速地投放市場(chǎng)。
利用一個(gè)運行在主CPU上的實(shí)時(shí)操作系統(RTOS),音頻處理可以完成系統的線(xiàn)程(任務(wù))之一。RTOS必須保證這個(gè)音頻線(xiàn)程得到足夠的時(shí)序時(shí)隙,以一種適時(shí)的方式完成其任務(wù)。通常,音頻處理將僅僅需要一小部分CPU周期;因此,這個(gè)要求可以容易地得到滿(mǎn)足。除了RTOS之外,這個(gè)單處理器也能執行其他諸如視頻控制等應用。適當的時(shí)序機制是保證準時(shí)地完成所有任務(wù)所必需的。
在一個(gè)單內核解決方案中,由于指令和/或數據高速緩存的干擾會(huì )使音頻應用的性能下降。這種降級是操作系統與處理器上執行的其他控制功能的特定組合功能。如果性能的下降不可接受,那么就可能需要使用兩種方法中的一種。一旦引起降級的原因與指令或數據高速緩存隔離開(kāi)來(lái),第一種需要的方法是鎖定控制關(guān)鍵功能或數據數組占用的高速緩存線(xiàn)路。
如果高速緩存線(xiàn)鎖方法不理想的話(huà),那么可以使用一個(gè)專(zhuān)用的高速暫存存儲器RAM(Scratchpad RAM,SPRAM)。SPRAM是為MIPS處理器執行選擇提供可預測的低等待時(shí)間的片上存儲器。如果必要的話(huà),SPRAM的容量可能比高速緩存的容量大得多,不過(guò),通常小容量的SPRAM可能有助于為應用帶來(lái)顯著(zhù)的性能。通過(guò)在SPRAM中加載軟件音頻解碼器的關(guān)鍵功能的“文本”(代碼)段,能夠減少音頻解碼器中的指令高速緩存的錯誤。交替地使用SPRAM可保持常用的數據數組,以減少數據高速緩存的錯誤。
最低成本的整體解決方案:將MIPS處理器用于音頻
當做出系統架構決定的時(shí)候,需要考慮若干主要的成本因素,例如:授權、版稅、裸片尺寸、開(kāi)發(fā)工具和設計時(shí)間。尤其是在低檔系統中,如果使用一個(gè)單內核SOC架構,可以完全省掉DSP,縮小整個(gè)裸片的尺寸,且無(wú)需支付DSP的授權費用和版稅。這將使SOC制造商和OEM的總體成本顯著(zhù)減少。
不論SOC廠(chǎng)商選擇在一個(gè)專(zhuān)用的內核上運行音頻,還是在主CPU上進(jìn)行音頻處理,由于同樣的工具鏈能用于開(kāi)發(fā)基于主CPU和音頻的應用,所以軟件開(kāi)發(fā)工具的成本更低。開(kāi)發(fā)工具成本的一個(gè)主要組成部分是與工具有關(guān)的維護。在專(zhuān)用DSP的情況下,這可能是整個(gè)成本的很大一部分。
那些使用一個(gè)MIPS內核實(shí)現控制功能和使用DSP進(jìn)行音頻處理的開(kāi)發(fā)商必須熟悉兩種不同的開(kāi)發(fā)環(huán)境。一種典型的開(kāi)發(fā)環(huán)境可能包括操作系統、編譯器、模擬器、仿真器、調試程序、線(xiàn)跡工具、探針和剖面儀。然而,當同樣的內核再度使用時(shí),只需熟悉一種開(kāi)發(fā)環(huán)境,從而減少總體設計時(shí)間和設計成本。
前優(yōu)化音頻軟件提供上市時(shí)間優(yōu)勢
MIPS科技和其音頻軟件合作伙伴可為MIPS32內核提供各種各樣經(jīng)過(guò)優(yōu)化的音頻應用軟件。這些應用軟件包括多種用于數碼相機、數碼攝像機、機頂盒、數字電視和DVD播放機等消費產(chǎn)品的標準音頻多媒體數字信號編解碼器。這些高度優(yōu)化的算法與MIPS科技提供的高性能開(kāi)發(fā)工具一道,可幫助開(kāi)發(fā)商把重點(diǎn)放在驅動(dòng)應用的開(kāi)發(fā)和集成方面,而無(wú)需對標準音頻的算法進(jìn)行優(yōu)化。
對于那些希望調整其他音頻/DSP算法的用戶(hù),MIPS DSP程序庫(MIPS DSP Library)作為MIPS軟件工具包的一部分可供使用。這個(gè)程序庫具有廣泛的適用于語(yǔ)音壓縮、回聲消除、噪音消除、通道均衡、音頻處理等信號處理功能,還包括濾波器和FFT等通用功能。這些功能已在MIPS科技的多種處理器系列中實(shí)現了優(yōu)化。
MIPS內核有許多特性有助于有效地實(shí)現像DSP這樣的應用。經(jīng)過(guò)優(yōu)化的音頻多媒體數字信號編解碼器和DSP程序庫可利用這些特性提供重要的優(yōu)勢:
⊙為在所有音頻算法中使用32位整數數據的內部計算提供盡可能最優(yōu)異的音頻質(zhì)量。
⊙MIPS32乘法積累(Multiply-Accumulate,MADD)指令在對DSP MAC運行進(jìn)行編碼時(shí)是非常有效的。
⊙在DSP回路中適當的時(shí)候,可使用MIPS32架構中的數據預取指令。這可使數據預取進(jìn)入高速緩存的下一個(gè)反復,同時(shí)執行當前的反復指令。由于可避免高速緩存的錯誤等待時(shí)間,可以顯著(zhù)地節省總體運行時(shí)間。
⊙存儲器占板面積小對大多數最節省成本的解決方案都是很理想的,MIPS16應用特定擴展(Application Specific Extension,ASE)可用于 減少程序代碼容量。這可以通過(guò)簡(jiǎn)便地使用一個(gè)編輯時(shí)間選擇來(lái)實(shí)現,以顯著(zhù)減少程序代碼的容量。
圖2 MIPS音頻解碼的應用實(shí)例
除了上述的特性之外,該軟件還利用其他技術(shù)得到盡可能最高的性能:
⊙MIPS32匯編工具具備加強關(guān)鍵運算計算的人工編碼能力;
⊙建立在內核到內核基礎上的人工時(shí)序可以最大限度地減少加載使用(在指令需要的數據開(kāi)始執行之后,來(lái)自高速緩存/存儲器系統的加載指令數據到達—直到數據可供使用之前,處理器都不會(huì )運行)的瓶頸;
⊙循環(huán)展開(kāi)和軟件流水線(xiàn)操作可用于最佳的代碼時(shí)序。
為了提供最大限度的靈活性,可在軟件中執行MIPS消費音頻平臺的所有算法。不過(guò),SOC設計者還是可以通過(guò)CorExtend的特性使用MIPS內核指令集來(lái)滿(mǎn)足新出現的音頻標準。用戶(hù)定義的指令(UDI)或CorExtend可為應用加速增加新的指令和狀態(tài)。這種定制能力為SOC廠(chǎng)商提供了改進(jìn)性能和產(chǎn)品個(gè)性化的功能。
遷徙途徑
MIPS科技不斷開(kāi)發(fā)越來(lái)越先進(jìn)的內核設計,并實(shí)現架構方面的進(jìn)展,在持續改善性能方面積累了豐富的經(jīng)驗。在內核領(lǐng)域,MIPS科技已在產(chǎn)品中增加了一個(gè)8段流水線(xiàn),從而改進(jìn)了時(shí)鐘速度性能。在架構方面,MIPS科技已通過(guò)增加第二版架構(Release 2 Architecture)改善了IPC性能。
MIPS科技繼續承諾改進(jìn)性能,最近又為多線(xiàn)程(Multi-Threading,MT)發(fā)布了ASE MIPS處理器。這種產(chǎn)品與音頻市場(chǎng)有著(zhù)特殊的關(guān)系。MIPS MT ASE利用來(lái)自另一個(gè)可用線(xiàn)程的有用的工作填充流水線(xiàn)固定位置的方法,改善了整個(gè)系統的性能。但是,MT ASE在音頻方面更為顯著(zhù)的特性是其提供了服務(wù)質(zhì)量(QoS)時(shí)序機制。
MT ASE采用了一個(gè)可以共享一條單流水線(xiàn)的多重虛擬處理元素(Virtual Processing Elements,VPE)的概念。在一個(gè)音頻環(huán)境中,可以使用兩個(gè)VPE:一個(gè)運行OS(操作系統),另一個(gè)運行音頻應用。MT ASE可以利用時(shí)序政策,保證使特定任務(wù)的處理器帶寬分配最小。此外,它還可提供服務(wù)質(zhì)量特性。這兩個(gè)特性的結合可以在不跳過(guò)任何音頻幀的情況下保證音頻應用的實(shí)時(shí)執行,同時(shí)也維護了所有其他的實(shí)時(shí)任務(wù),以及適時(shí)方式的OS。
QoS特性根本上消除了OS中斷對音頻功能表現的影響。通常,中斷服務(wù)可在“發(fā)生”異常的線(xiàn)程執行時(shí)間方面引起相當大的可變性。MT ASE可提供一個(gè)機制,它可使任何異步異常得到延緩,直到OS線(xiàn)程(非豁免線(xiàn)程)被預定。這增加了在一種有限的和受控的方式下OS任務(wù)的中斷等待時(shí)間,同時(shí)保持了音頻任務(wù)的執行。如果中斷處理程序的執行僅僅是發(fā)生在輸出時(shí)隙未分配豁免實(shí)時(shí)QoS線(xiàn)程期間,那么,中斷服務(wù)對這樣的實(shí)時(shí)代碼執行時(shí)間沒(méi)有直接的影響。
MIPS音頻解碼器應用實(shí)例
音頻解碼器通常作為驅動(dòng)器應用進(jìn)行存取。驅動(dòng)器的作用是從適當的輸入設備提取引入的位流,并將經(jīng)過(guò)解碼的位流發(fā)送到音頻輸出設備,如圖2所顯示的那樣。它也可以執行其他后處理功能,例如在發(fā)送到輸出設備之前,對經(jīng)過(guò)解碼的音頻位流進(jìn)行低音控制。驅動(dòng)器通過(guò)一個(gè)標準接口機制訪(fǎng)問(wèn)MIPS的音頻產(chǎn)品,也就是MIPS的軟音頻接口(Soft Audio Interface,SAI)。這個(gè)通用接口可使各種來(lái)自MIPS科技的音頻解碼器易于與主應用進(jìn)行連接。
MIPS SAI可提供解碼器和主程序,或高級控制和運算監控解碼器RTOS之間的接口功能和結構。這種接口為訪(fǎng)問(wèn)控制解碼器運算和訪(fǎng)問(wèn)狀態(tài)和差錯信息參數提供了機會(huì )。該接口可執行三個(gè)基本功能:一個(gè)是對解碼器進(jìn)行初始化,第二個(gè)是閱讀幀標題,第三個(gè)實(shí)際上是進(jìn)行解碼處理。所有的解碼器都具有與特定解碼器有關(guān)的預確認字段數據結構。解碼器對所有的幀進(jìn)行閱讀和結構更新。在幀開(kāi)始或結束時(shí),主程序可訪(fǎng)問(wèn)數據結構,閱讀狀態(tài)或改變控制參數。參考下面的代碼實(shí)例,它說(shuō)明了驅動(dòng)程序的運行情況。MIPS SAI的功能用粗體字表示。
int main(void)
{
decoder_specific_struct dec_ptr;
//Initialize the decoder.
mips_sai_dec_init(&dec_ptr);
//Open the bitstream input device.
open_input();
//Open the audio output device.
open_output();
//Allocate buffers for decoder operation.
allocate_buffers(&dec_ptr);
while(not-end-of-input-bitstream)
//Read the input bitstream.
read_input(&dec_ptr);
//Read the frame header for encoded stream parameters.
mips_sai_dec_readheader(&dec_ptr);
//Set up params for decoder operation.
setup_params(&dec_ptr);
//Decode the frame
mips_sai_dec_process(&dec_ptr);
//write the decoder output to the device driver.
write_output(&dec_ptr);
end-while
//Close the input and output devices.
close_input();
close_output();
return 0;
}
結語(yǔ)
MIPS處理器可供使用的各種特性為實(shí)現消費音頻算法提供了一系列的優(yōu)勢。這些優(yōu)勢包括單一的可編程架構、更低的系統成本和縮短上市時(shí)間。這使MIPS處理器成為從電池供電的移動(dòng)音頻播放器到高性能DVD刻錄設備等消費電子產(chǎn)品音頻應用的一種可行和具有吸引力的解決方案。
評論