<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 如何優(yōu)化嵌入式DSP應(yīng)用的功耗

          如何優(yōu)化嵌入式DSP應(yīng)用的功耗

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

          架構(gòu)

          范例如圖 2 所示。如欲獲得該的詳細(xì)信息(包括獨(dú)立的手冊(cè)及源代碼),請(qǐng)查閱參考資料 15。

          圖 2. 音頻應(yīng)用

          音頻信號(hào)經(jīng)過(guò)采樣通過(guò)多信道緩沖串行端口 (McBSPs) 回放到 。 DMA 引擎向McBSP 輸入或讀出采樣信號(hào)。立體聲音頻數(shù)據(jù)通過(guò) RxSplit 任務(wù)與 Processing Task(正在處理的任務(wù))分離為兩個(gè)數(shù)據(jù)流。DIP 開(kāi)關(guān)用于選擇 G726 編碼/解碼處理或簡(jiǎn)單音量控制。兩個(gè)通道隨后在 TxJoin 任務(wù)中組合,然后輸出至揚(yáng)聲器。

          Control(控制)任務(wù)被周期性觸發(fā),檢查 DIP 開(kāi)關(guān)以確定是否需要進(jìn)行模式切換(如改變處理模式或進(jìn)入睡眠狀態(tài))。根據(jù)應(yīng)用模式的不同,Control(控制)任務(wù)可能會(huì)檢查 CPU 負(fù)載,如果合適還會(huì)更改 V/F 設(shè)定點(diǎn)。

          與電源相關(guān)的關(guān)鍵設(shè)計(jì)決定包括:

          1. 使用 OS 線程及阻塞原語(yǔ) (blocking primitive) 空閑時(shí)鐘;
          2. 使用 DMA 提高后臺(tái)數(shù)據(jù) (background data) 傳輸效率。在 DMA 塊中完成傳輸(而不是每次數(shù)據(jù)采樣都從串行端口導(dǎo)入或讀出)后即中斷 CPU;
          3. 使用共享的外部時(shí)鐘控制串行端口(無(wú)需對(duì)串行端口進(jìn)行重新編程,即可進(jìn)行 CPU 的頻率縮放);
          4. 注冊(cè)回叫以便為編解碼器驅(qū)動(dòng)程序設(shè)定鉤子機(jī)制,當(dāng)應(yīng)用進(jìn)入深度睡眠模式時(shí)關(guān)斷編解碼器;
          5. 在音頻質(zhì)量下降前使用校準(zhǔn)功能恢復(fù)設(shè)定點(diǎn)頻率(及電壓);
          6. 使用電源管理器的時(shí)鐘適應(yīng)功能,使周期函數(shù)在頻率縮放后繼續(xù)以特定速率工作;
          7. 使用 DSP 再引導(dǎo)間的電源管理器“深度睡眠”接口。

          結(jié)論

          總體效果總結(jié)如表 6 所示。前后模式的主要差異用黑體表示。

          設(shè)置

          DSP 內(nèi)核 (mW)

          DSP 節(jié)省 (%)

          電路板 (mW)

          電路板節(jié)省 (%)

          1. CPU 工作頻率為 192MHz、電壓為1.6v
          均為片外代碼
          降低引導(dǎo)功能:關(guān)閉
          空閑環(huán)路:域處于活動(dòng)狀態(tài)

          207.8

          --

          2219

          --

          2. CPU 工作頻率為192MHz、電壓為 1.6v
          均為片上代碼
          降低引導(dǎo):關(guān)閉
          空閑環(huán)路:域處于活動(dòng)狀態(tài)

          203.3

          2.17

          1789


          3. CPU 工作頻率為192MHz、電壓為1.6v
          均為片上代碼
          降低引導(dǎo):開(kāi)啟
          空閑環(huán)路:域處于空閑狀態(tài)

          155.2


          1663

          25.1

          4. CPU 工作頻率為144MHz、電壓為 1.4v
          均為片上代碼
          降低引導(dǎo)功耗:開(kāi)啟
          空閑環(huán)路:域處于空閑狀態(tài)

          99.5


          1605

          27.7

          5. DSP 處于深度睡眠(完全空閑)狀態(tài)
          休眠前電壓值最小時(shí)頻率達(dá)到最大
          編解碼器斷電

          0.361


          1352


          表 6. 節(jié)電效果

          • 模式 #1 為基準(zhǔn)測(cè)量,全部使用片外代碼。
          • 模式 #2 消除所有片上代碼,DSP 級(jí)節(jié)電效果較小,但板級(jí)節(jié)電達(dá)到 19%。
          • 模式 #3 包括一些引導(dǎo)時(shí)間節(jié)電配置(如關(guān)閉 DSP 的 CLKOUT 信號(hào)、未用計(jì)時(shí)器的自動(dòng)空閑配置以及關(guān)閉板上 LED)及在 BIOS 空閑環(huán)路中的閑置,從而可實(shí)現(xiàn)25% 的 DSP 內(nèi)核級(jí)節(jié)電。
          • 模式 #4 為設(shè)定點(diǎn)在 1.4v 下降至 144MHz 時(shí)的功耗,在該模式下可進(jìn)行音頻處理,同時(shí)仍能滿足實(shí)時(shí)最低要求,從而實(shí)現(xiàn) 52% 的 DSP 內(nèi)核級(jí)節(jié)電。
          • 模式 #5 為應(yīng)用處于待機(jī)模式下的功耗,該模式配置包括外部編解碼器關(guān)斷、設(shè)定點(diǎn)支持以最小電壓最大頻率快速啟動(dòng)驅(qū)動(dòng)、DSP 處于門控時(shí)鐘深度睡眠模式,該模式下的待機(jī)功耗僅為 361µW。

          設(shè)計(jì)人員可根據(jù)特定應(yīng)用的要求選擇適用的技術(shù),從而更有利于支持 RTOS 集成高回報(bào)技術(shù)。借助 OS 的這種支持功能,設(shè)計(jì)人員能夠以低開(kāi)銷方便安全地提高應(yīng)用電源效率。

          本文討論的電源策略是一種從項(xiàng)目之初即可用于降低與調(diào)節(jié)應(yīng)用功耗的通用模型。當(dāng)測(cè)量功耗無(wú)法滿足要求或需要采用額外的運(yùn)行時(shí)技術(shù)時(shí),上述策略可重復(fù)使用,先期步驟也可重復(fù)進(jìn)行。例如,在音頻應(yīng)用中采用這種策略,僅需幾種高回報(bào)的節(jié)電技術(shù),即可節(jié)省大量電能。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁(yè) 1 2 3 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();