數(shù)字語音解碼器的低功耗設(shè)計策略
在本設(shè)計里主要根據(jù)SoC平臺的資源和指令集特點,使用軟硬件協(xié)同設(shè)計方法在C代碼轉(zhuǎn)化為匯編代碼時,通過分析標準C算法發(fā)現(xiàn),大部分循環(huán)和函數(shù)的調(diào)用存在冗余,頻繁的函數(shù)調(diào)用操作(壓棧出棧)占用了CPU的部分處理時間。在匯編代碼中可以通過循環(huán)展開以減少不必要的循環(huán)判斷,其基本原則的原始代碼為:普通的單循環(huán),一個周期執(zhí)行一次乘累加(MAC)指令,優(yōu)化后進行了4次循環(huán)展開。在優(yōu)化后的代碼中,4個MAC被同時使用,并且在作乘累加時,提取下次運算的數(shù)據(jù),消除了流水線等待,充分應用了硬件資源,提高了效率。除了循環(huán)展開,在某些情況下進行循環(huán)合并也可提高效率。主要原因是每個循環(huán)體均需要有控制指令,減少循環(huán)的個數(shù)自然會減少控制指令的條數(shù)。注意兩個合并的循環(huán)必須有相同的循環(huán)數(shù)。
對于在代碼里多次用到的函數(shù),應考慮用調(diào)用指令,這樣可以大大減少代碼的體積;而對于只調(diào)用少次的函數(shù),則宜嵌入主函數(shù)中,因為它不僅可以減少傳參過程中的指令,而且可以減少調(diào)用函數(shù)的壓棧出棧操作。當然,對于一些大而復雜的函數(shù),雖然它只被調(diào)用1次,但由于寄存器的數(shù)目有限,如果考慮直接嵌入主函數(shù),可能要頻繁地做push和pop操作,反而得不償失,這時就應該用調(diào)用指令。
如果有些處理比較復雜,在整個解碼過程中運算量大且耗時長,有必要設(shè)計相關(guān)硬件協(xié)處理器,通過匯編指令直接操作協(xié)處理器,既可以提高效率減少運算量也有利于控制功耗,但成本會增加。這種處理方法在實時影響明顯的模塊尤其關(guān)鍵和有效。例如在MP3的解碼中,通過增加矩陣乘法器以提高子帶綜合濾波的處理速度,取得明顯效果:可減少運算時間91%。這種軟硬件協(xié)同的設(shè)計手段在語音解碼器中多處用到。
在算法級中還涉及其他方面的低功耗設(shè)計,如減少存儲器的存取次數(shù),縮短片選信號的寬度等方面的考慮,本設(shè)計也做了相應的處理??偟恼f來,算法級的優(yōu)化設(shè)計在降低系統(tǒng)功耗方面潛力大,對降低整個語音解碼器的功耗具有重要意義。
1.3 結(jié)構(gòu)級低功耗設(shè)計策略
在結(jié)構(gòu)級,降低功耗最重要的策略是利用并行處理或流水線技術(shù)。流水優(yōu)化后,還可以減少中間數(shù)據(jù)的讀取操作,且比串行處理對存儲器的讀取操作減少約50%,這對降低系統(tǒng)功耗大有裨益。
由于語音解碼的模塊較多,通過研究可以發(fā)現(xiàn),通過簡單的消除數(shù)據(jù)相關(guān)后各模塊可以流水操作,減少了解碼的時間,從而降低實時處理的時鐘頻率;在多聲道語音處理中,可以使用多聲道并行處理,增加處理模塊以減少處理時間。在MP3解碼中,立體聲處理之后,左聲道的后續(xù)處理(混疊重建、IMDCT和子帶綜合濾波等)和右聲道的后續(xù)處理可以并行進行,由于IMDCT(逆改進離散余弦變換)和子帶綜合濾波是解碼中運算量最大的部分,左右聲道的并行性幾乎可以把系統(tǒng)的處理時間減少一半。
為了提高處理速度,還可以挖掘耗時長的模塊的內(nèi)部并行處理潛力。例如在IMDCT處理是MP3和ACC語音處理中運算量大耗時長的模塊??梢栽贗MDCT內(nèi)部放置2個乘法器,這樣可以同時運算兩列數(shù)據(jù),速度提高1倍。
顯然通過增加硬件的模式提高處理速度并未減少運算量,但提高了處理速度,其代價就是增加了芯片面積,導致成本上升,處理時必須綜合考慮,以達到較好的性價比。
在電路級和工藝級的低功耗設(shè)計技術(shù)主要是全定制集成電路設(shè)計技術(shù)。全定制的設(shè)計可以將硅片充分利用,布局、布線、排版組合等均需要反復斟酌調(diào)整,按最佳尺寸、最合理布局、最短連線、最便捷引腳等設(shè)計原則設(shè)計版圖,與同樣功能而采用自動布局布線方法實現(xiàn)的電路相比較,手工設(shè)計電路可以節(jié)省一半以上的芯片面積,尤其是使用基于鎖存器的手工布局布線代替基于D觸發(fā)器自動布局布線,降低面積
的同時系統(tǒng)功耗減少了約88%。
2 結(jié)論
首先分析了CMOS集成電路的功耗物理組成,得到其主要功耗。其次,SoC低功耗設(shè)計的各種級別層次采用不同的設(shè)計方法,由此重點分析了在語音解碼中各層次采取各種策略以降低系統(tǒng)功耗,并取得了初步效果。系統(tǒng)級使用雙向不交疊時鐘技術(shù),可以將運算主頻降低50%;算法級主要使用匯編語言重寫和優(yōu)化原代碼,將MP3解碼的C代碼轉(zhuǎn)為匯編代碼后,從原來的86 Kb降為13 Kb,AMR解碼的C代碼轉(zhuǎn)為匯編代碼后,從原來的158Kb降為25 Kb;在結(jié)構(gòu)級,增加協(xié)處理器進行并行計算,在IMDCT內(nèi)部放置2個乘法器,這樣可以同時計算兩列數(shù)據(jù),速度提高1倍,MP3的解碼中,通過增加矩陣乘法器以提高子帶綜合濾波的處理速度,可減少91%的運算時間。本文引用地址:http://www.ex-cimer.com/article/166578.htm
評論