<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 基于數字語(yǔ)音解碼器的低功耗設計方案

基于數字語(yǔ)音解碼器的低功耗設計方案

作者: 時(shí)間:2016-10-10 來(lái)源:網(wǎng)絡(luò ) 收藏

近年來(lái),隨著(zhù)個(gè)人手持多媒體設備的快速增長(cháng),變得越來(lái)越重要,甚至成為決定產(chǎn)品是否成功的關(guān)鍵,如筆記本電腦、PDA、移動(dòng)電話(huà)等時(shí)尚消費和商務(wù)類(lèi)電子產(chǎn)品,對電池的供電時(shí)間要求越來(lái)越高,高功耗成為延長(cháng)電池使用時(shí)間突出的制約因素。

本文引用地址:http://dyxdggzs.com/article/201610/306719.htm

CMOS數字電路的功耗主要由3部分組成:跳變功耗、短路功耗和靜態(tài)漏電功耗。其中占系統功耗比例大于90%的為跳變功耗,也稱(chēng)動(dòng)態(tài)功耗。對于SoC而言,所有的設計方法都是圍繞著(zhù)動(dòng)態(tài)功耗來(lái)進(jìn)行。如何從各個(gè)層次、各個(gè)方面盡量減少動(dòng)態(tài)功耗,將是語(yǔ)音解碼設計中的重點(diǎn)內容。

1 語(yǔ)音策略

SoC低功耗的設計應該從頂層到底層各個(gè)階段進(jìn)行優(yōu)化設計的工作,主要運用各級的低功耗策略,通常在系統級、算法級、結構級、電路級、布局布線(xiàn)以及制造工藝等層次上綜合考慮。有研究表明,除了制造工藝外,高抽象層次(系統級、算法級、結構級)的設計因素對功耗的影響比其他層次要大的多。因此系統級、算法級、結構級的技術(shù)的研究非常重要。

1.1 系統級的低功耗設計策略

降低系統級的功耗實(shí)際上是減少動(dòng)態(tài)功耗。主要方法是時(shí)鐘采用Power-down管理模式,在SoC處于空閑狀態(tài)時(shí),使SoC運作于休眠狀態(tài)(只有部分設備處于工作之中);在預設時(shí)間到來(lái)時(shí),產(chǎn)生一個(gè)中斷,由該中斷喚醒其他設備;或采用門(mén)生時(shí)鐘技術(shù)停掉未工作模塊的時(shí)鐘,從而降低系統功耗。

另外,多時(shí)鐘設計也是降低系統功耗的有效方法,即讓運算量小的模塊采用低頻率時(shí)鐘;而運算量大的模塊使用高頻率時(shí)鐘。

本設計綜合使用了上述設計策略以降低系統功耗。使用一個(gè)系統主頻,通過(guò)對時(shí)鐘的精細控制,即時(shí)鐘使能禁止以控制模塊的工作狀態(tài);使用雙向不交疊時(shí)鐘技術(shù),提高運算量大的模塊的操作頻率,同時(shí)消除了競爭與冒險的可能。雙向不交疊時(shí)鐘由系統時(shí)鐘Cp分為2個(gè)不交疊的時(shí)鐘,yCp和zCp,如圖1所示在運算時(shí),由yCp時(shí)鐘控制輸入數據,由zCD時(shí)鐘控制取出結果。

1.2 算法級低功耗設計策略

算法級低功耗設計主要在于軟件代碼的優(yōu)化,減少由于算法的低效率引起的不必要功耗。一方面是對標準C代碼的優(yōu)化。C語(yǔ)言具有易讀性、可移植性,但是C語(yǔ)言在實(shí)際工程應用中,不便于對系統硬件資源的直接控制,無(wú)法發(fā)揮SoC的特點(diǎn)。用匯編語(yǔ)言編程,可以根據芯片自身硬件結構特點(diǎn),對匯編程序進(jìn)行優(yōu)化與精簡(jiǎn),往往能夠使一些復雜的算法和功能模塊在實(shí)時(shí)處理方面取得非常好的效果。另一方面分析了影響執行效率的數據相關(guān)、控制相關(guān)和資源沖突等因素后,在手工匯編的基礎上充分挖掘算法的潛力,最大限度發(fā)揮硬件性能,以達到實(shí)時(shí)要求和低功耗設計的指標。

在本設計里主要根據SoC平臺的資源和指令集特點(diǎn),使用軟硬件協(xié)同設計方法在C代碼轉化為匯編代碼時(shí),通過(guò)分析標準C算法發(fā)現,大部分循環(huán)和函數的調用存在冗余,頻繁的函數調用操作(壓棧出棧)占用了CPU的部分處理時(shí)間。在匯編代碼中可以通過(guò)循環(huán)展開(kāi)以減少不必要的循環(huán)判斷,其基本原則的原始代碼為:普通的單循環(huán),一個(gè)周期執行一次乘累加(MAC)指令,優(yōu)化后進(jìn)行了4次循環(huán)展開(kāi)。在優(yōu)化后的代碼中,4個(gè)MAC被同時(shí)使用,并且在作乘累加時(shí),提取下次運算的數據,消除了流水線(xiàn)等待,充分應用了硬件資源,提高了效率。除了循環(huán)展開(kāi),在某些情況下進(jìn)行循環(huán)合并也可提高效率。主要原因是每個(gè)循環(huán)體均需要有控制指令,減少循環(huán)的個(gè)數自然會(huì )減少控制指令的條數。注意兩個(gè)合并的循環(huán)必須有相同的循環(huán)數。

對于在代碼里多次用到的函數,應考慮用調用指令,這樣可以大大減少代碼的體積;而對于只調用少次的函數,則宜嵌入主函數中,因為它不僅可以減少傳參過(guò)程中的指令,而且可以減少調用函數的壓棧出棧操作。當然,對于一些大而復雜的函數,雖然它只被調用1次,但由于寄存器的數目有限,如果考慮直接嵌入主函數,可能要頻繁地做push和pop操作,反而得不償失,這時(shí)就應該用調用指令。

如果有些處理比較復雜,在整個(gè)解碼過(guò)程中運算量大且耗時(shí)長(cháng),有必要設計相關(guān)硬件協(xié)處理器,通過(guò)匯編指令直接操作協(xié)處理器,既可以提高效率減少運算量也有利于控制功耗,但成本會(huì )增加。這種處理方法在實(shí)時(shí)影響明顯的模塊尤其關(guān)鍵和有效。例如在MP3的解碼中,通過(guò)增加矩陣乘法器以提高子帶綜合濾波的處理速度,取得明顯效果:可減少運算時(shí)間91%。這種軟硬件協(xié)同的設計手段在語(yǔ)音中多處用到。

在算法級中還涉及其他方面的低功耗設計,如減少存儲器的存取次數,縮短片選信號的寬度等方面的考慮,本設計也做了相應的處理??偟恼f(shuō)來(lái),算法級的優(yōu)化設計在降低系統功耗方面潛力大,對降低整個(gè)語(yǔ)音的功耗具有重要意義。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>