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

          新聞中心

          EEPW首頁 > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 嵌入式媒體引擎的實(shí)用電源管理

          嵌入式媒體引擎的實(shí)用電源管理

          作者:德州儀器 時(shí)間:2005-03-02 來源: 收藏

          2004年10月B版

          本文引用地址:http://www.ex-cimer.com/article/4517.htm

          目前,可用的管理技術(shù)很多,人們也在積極研究許多新技術(shù)。遺憾的是最有效的技術(shù)常常與操作系統(tǒng)及應(yīng)用框架發(fā)生沖突。新技術(shù)往往相當(dāng)復(fù)雜,并針對特定的專門應(yīng)用進(jìn)行優(yōu)化,在多用途計(jì)算平臺上的適用性也時(shí)常受限制。本文首先總結(jié)了普通的節(jié)電技術(shù),然后介紹一些效果更好 (higher-payoff) 的技術(shù)(CPU 時(shí)鐘閑置以及電壓與頻率縮放),并將介紹這些支持技術(shù)如何集成為輔助管理器模塊,從而成為數(shù)字信號處理器 (DSP) 的實(shí)時(shí)操作系統(tǒng)。在此提供了一個(gè)音頻應(yīng)用實(shí)例,說明如何利用該架構(gòu)大幅提高功效。本文是專門介紹低功率設(shè)計(jì)的上下兩部分系列文章中的第一篇。第二篇文章將集中討論外設(shè)及 I/O 管理技術(shù),將節(jié)電擴(kuò)展到 CPU 內(nèi)核范疇之外。

          圖1   電源管理器分區(qū)

          節(jié)電技術(shù)
          CMOS 電路的總功耗是活動功耗與靜態(tài)功耗之和。電路工作或從一種邏輯狀態(tài)轉(zhuǎn)換到另一種邏輯狀態(tài)時(shí)會產(chǎn)生活動功耗;電路未發(fā)生轉(zhuǎn)換時(shí)會發(fā)生靜態(tài)功耗,主要是由于晶體管漏電流造成的?;顒庸慕浦档挠?jì)算方程式如下:Pactive ~ Cpd x F x Vcc2 x Nsw
          這里的 Cpd 為動態(tài)電容,F(xiàn) 為開關(guān)頻率,Vcc 為電源電壓,而 Nsw 為轉(zhuǎn)換的比特?cái)?shù)。從上述方程式中看到,最簡單的節(jié)約活動功耗的方法就是停止電路計(jì)時(shí),即設(shè) F為零,讓 Pactive 為零。許多 CPU 都有“閑置”或“停止”指令以實(shí)現(xiàn)此目的,在 CPU 等待中斷時(shí)通過門控使內(nèi)部 CPU 時(shí)鐘關(guān)閉。此外,一些處理器還包括分立控件,可通過門控關(guān)閉非 CPU 時(shí)鐘域,如高速緩存、DMA、外設(shè)、時(shí)鐘脈沖發(fā)生器等。
          回過頭再來看上面的方程式,如果應(yīng)用在降低 CPU 時(shí)鐘速率時(shí)仍可滿足處理要求,則就能相應(yīng)成比例地節(jié)約活動功耗。如果 CPU 頻率可安全降低,而且該頻率與 CPU 可用的較低工作電壓兼容,那么由于 Vcc 的二次關(guān)系,通過降低電壓就可能額外大大降低功耗。不過,降低 CPU 時(shí)鐘速率也會成比例延長執(zhí)行任務(wù)的時(shí)間,這就要求認(rèn)真分析應(yīng)用,看看其能否仍能滿足實(shí)時(shí)要求。表 1 給出了常用的硬件設(shè)計(jì)技術(shù)總結(jié),表 2 則給出了常用的運(yùn)行時(shí)間節(jié)電技術(shù)。

          為 OS 添加電源管理支持
          時(shí)鐘閑置以及動態(tài)頻率與電壓的縮放對總體應(yīng)用和操作系統(tǒng)本身都會產(chǎn)生巨大影響,這常常是實(shí)現(xiàn)上述技術(shù)的一個(gè)障礙,例如,如果 CPU 頻率的縮放是動態(tài)的,就可能影響 OS時(shí)間基,而且會導(dǎo)致時(shí)鐘與 CPU 時(shí)鐘相關(guān)聯(lián)的外設(shè)驅(qū)動程序的故障。同樣,如果某項(xiàng)任務(wù)在等待 I/O 完成時(shí)任意使 CPU 閑置,那就很容易導(dǎo)致應(yīng)用死鎖。因此,為了積極采用上述技術(shù),OS 功耗必須低 (power aware),某些操作責(zé)任(如 CPU 時(shí)鐘閑置)必須由 OS 來承擔(dān)。
          德州儀器(TI)的 DSP/BIOS操作系統(tǒng)增加了電源管理器模塊(PWRM)作為輔助模塊,如圖1所示。
          電源管理器與 OS 內(nèi)核聯(lián)系松散,位于該內(nèi)核的旁邊;它不是作為系統(tǒng)中的另一項(xiàng)任務(wù),而是作為一組 API 存在,在應(yīng)用控制線程與器件驅(qū)動器環(huán)境下執(zhí)行。
          表 3 總結(jié)了電源管理器的運(yùn)行時(shí)間 API。通過上述 API,電源管理器可支持電壓及頻率 (V/F) 縮放、僅頻率縮放、時(shí)鐘域閑置、OS 閑置時(shí)間內(nèi)配置時(shí)鐘的自動閑置,而最重要的則是整個(gè)應(yīng)用中的用電事件之間得處理協(xié)調(diào)(如應(yīng)用代碼、驅(qū)動程序以及 OS 本身),從而通知注冊的客戶端 (client) 特定用電事件何時(shí)發(fā)生。用電事件的實(shí)例為:將要縮放頻率,縮放頻率完成,進(jìn)入深度睡眠狀態(tài),從深度睡眠狀態(tài)蘇醒,電力不足等。電源管理活動是觸發(fā)式應(yīng)用;更改 DSP 操作模式或功能的主要決定由應(yīng)用做出,并通過調(diào)用電源管理器提供幫助。
          通過寫入時(shí)鐘閑置配置寄存器,以及控制著 CPU 時(shí)鐘速率與穩(wěn)壓電路的平臺專用功耗調(diào)整程序庫 (PSL),PWRM 直接與 DSP 硬件相連。PSL 將 PWRM 及應(yīng)用的其它部分與頻率及電壓控制硬件的低電平 (low-level) 實(shí)施細(xì)節(jié)相隔離,確保在所支持的電壓與頻率組合(設(shè)定點(diǎn))間實(shí)現(xiàn)安全過渡。

          音頻實(shí)例
          以簡單的音頻應(yīng)用作測試工具 (vehicle)并作為測試電源管理器特性效率的基準(zhǔn)。該應(yīng)用經(jīng)過修改可測量激活不同節(jié)電特性時(shí)的效果。電流感測電阻器主板電源以及 DSP 內(nèi)核電源串聯(lián),并用伏特計(jì)測量電阻器上的壓降以確定主板及 DSP 內(nèi)核的電流。表 4 概括了上述結(jié)果。

          結(jié)語
          采取分階段的方法來實(shí)施電源管理可大大降低功耗。不必等目前正在進(jìn)行的新技術(shù)研究取得成果;在某些情況下,將基本而實(shí)用的一些關(guān)鍵支持技術(shù)結(jié)合到操作系統(tǒng)或應(yīng)用框架中就可實(shí)現(xiàn) CPU 節(jié)電達(dá) 95% 以上。電源管理支持的設(shè)計(jì)方式可做到:方便易用,允許開發(fā)人員選取滿足具體應(yīng)用要求的特定技術(shù),而且非常便于攜帶。該框架可作為跳板,為添加新出現(xiàn)的更先進(jìn)的 (aggressive) 專用技術(shù)以及未來的電源管理技術(shù)作好準(zhǔn)備?!?/p>



          關(guān)鍵詞: 模擬IC 電源

          評論


          相關(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); })();