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

          新聞中心

          EEPW首頁 > 模擬技術 > 設計應用 > 基于自適應DVFS的SoC低功耗技術研究

          基于自適應DVFS的SoC低功耗技術研究

          作者: 時間:2009-07-09 來源:網絡 收藏
          對于PM模塊,ARM可以通過總線進行配置,PM通過監(jiān)測可變電壓區(qū)的電流實現性能監(jiān)控。對于處理MIPS需求比較高的操作,CPU空轉時間變少,電流需求變小;對于處理MIPS要求比較低的操作,CPU執(zhí)行密集操作,電流需求變大。
          該設計核心在于如何使PM模塊能根據某種算法來自適應地預測電流的需求,而且預測的響應時間、額外功耗都比較小,即達到適時、恰好的電壓要求。對于自適應算法,可選取圖2所示的簡單前向線性預測。

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

          3 仿真實驗與結果
          圖3給出系統(tǒng)模型。構造這樣一個系統(tǒng),使得測試將按事先在開發(fā)板上的運行給定benchmark程序。測試得到的功耗參數,則按CPU負載折算成為歸一的nop和mac兩種類型指令程序,這兩種指令在測試向量中間或分布。CPU行為模型執(zhí)行相關程序,該模型只能取指令,執(zhí)行2級流水。對于nop操作,在執(zhí)行階段進行nop;對于mac:操作,在執(zhí)行階段對固定數據進行mac,這樣即可簡化設計。CPU BM采用Verilog進行編寫。CPU有一條AHB總線,對memory進行訪問控制。MEM模塊采用ahb接口,存放編譯好的二進制指令,并固定頻率。PM Model對CPU BM的翻轉率進行monitotor在監(jiān)控各階段的翻轉率后,作為輸入流入自適應濾波器,計算得到所需的調節(jié)電壓,給PS Model;同時輸出翻轉率,給PC Model。

          PC Model將翻轉率、時鐘、電壓作為輸入,用于計算系統(tǒng)功耗。PS Model按照PM發(fā)出的電壓調節(jié)指令進行電壓頻率調節(jié)。由于是rtl Model,所以電壓調節(jié)是不可見的,只是按照實際情況,若電壓從低到高,則先調節(jié)電壓,再調節(jié)頻率;反之亦反。
          對于自適應選取的電壓,可按圖4予以實現。表2給出按照130 nm工藝實現電壓時,CPU與總線頻率的關系。在調節(jié)電壓時,時鐘被停頓若干時鐘周期。假設電源網絡的RC參數不變,則認為電壓切換與切換電壓差成正比,如圖4所示。

          對于前向預測的步長,按照實時操作系統(tǒng)的節(jié)拍,從1~50 ms進行調節(jié)。通過實踐,可得圖5所示不同步長下的不同功耗數值,同時每次切換的額外開銷也計算在內。
          由圖5可見,對功耗、效率與調節(jié)步長都有一定的關系,合理選取調節(jié)步長后,可得效率與功耗的均衡。采用步長為25 ms時,功耗不到的25%,而效率損失只有1/3。由此可見,在CPU資源總負荷利用率為30%時,該步長相對較為合理。

          4 結 語
          提供了一種自適應動態(tài)電壓頻率調節(jié)方式,構造了與之對應的系統(tǒng)模型。在計算機上對該模型進行了模擬實驗,得到一組均衡的前向預測參數。實驗結果驗證了自適應動態(tài)電壓頻率調節(jié)方式的有效性,給出了評估動態(tài)電壓頻率調節(jié)仿真的有效途徑。


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();