嵌入式系統降低功耗的方法研究
更新事件列表算法代碼如下:
顯式資源需要對驅動程序作一些修改,即在驅動程序發送執行命令前和硬件完成服務并通過驅動程序告訴內核設備就緒后這兩個時間點,插入一個NotifyEvent()函數調用。具體的代碼插入點根據不同類型的設備和對服務開始與結束的不同定義而不同。
根據觀測器得到的系統資源訪問歷史記錄計算出優化策略之后,控制模塊將在通過電源管理機發出控制命令給相應的硬件完成服務,并通過驅動程序告訴內核設備就緒后這兩個時間點插入一個NotifyEvent()函數調用。
(2)DVS策略
目前,嵌入式系統降低功耗多采用動態電壓縮放技術Ⅲ,即系統運行時可以通過設置可編頻率寄存器控制處理器的工作頻率。實驗觀察發現,系統的運行負荷具有明顯的非平穩特性,短時間內可能具有很高的執行負荷,但絕大部分時間維持輕負荷狀態。DVS技術根據嵌入式系統這一特點,在系統負荷較重時將處理器設置為最高執行速度,以保證系統的計算能力;而在系統負荷較輕時動態降低處理器的工作頻率,以降低處理器的執行功耗,從而實現系統計算性能與功耗的優化控制,如圖 6所示。DVS的預測通過采用了基于時間間隔AVGn算法的cpu_dvs函數實現。該函數讀取CPU使用信息,按照AVGn算法來估算系統的運行負荷,并根據返回給cpu_scan函數的結果實現具體的動態電壓縮放。
AVGn算法分析了多種簡單或復雜的估計算法和平滑技術。其基本思想是采用指數平滑平均值方法,即預測即將到來的間隔的n個運行百分比的加權平均值。但AVGn算法存在一個問題就是,逐檔改變頻率導致系統不能及時地響應負載變化,還需要大量深入細致的研究。
2.3 應用程序層
在基于微處理器、微控制器的系統中,軟件起到了引導硬件活動的主導作用。也就是說,軟件對系統的能量消耗有很大的影響。直到目前,還沒有有效且精確的方法可用來評估軟件設計對能量消耗所起的效應。沒有能量評估,就無法對軟件進行優化進而減少電能消耗。引起CPU電能消耗的眾多因素中,至少有2個受軟件的影響極大――存儲系統與系統總線。在嵌入式系統的低功耗軟件設計中,主要考慮這2個因素。
3 總 結
功耗已經成為嵌入式系統設計中優先要考慮的問題,隨著處理器速度越來越快,如何降低功耗已經成為衡量嵌入式系統性能優良的一個重要方面。因此,在低功耗嵌入式系統設計過程中要考慮各部分具體的低功耗設計方法,同時也要充分發揮各抽象層的低功耗技術優勢。
本文介紹的低功耗嵌入式系統中仍有很多不足,有待進一步探索:①DPM隨機決策模型和求解算法,并沒有解答最優策略是否存在、若存在最優策略具有什么特性等基本問題,也沒能從理論上解釋“實踐中超時策略可以取得優良節能效果”的原因。②本文的DVS策略采用與AVGn算法類似的假設條件,在實際應用中這些條件過于苛刻。如何將本文DVS策略的思想應用到特定的非理想情況的嵌入式系統中,尚需進一步研究。
評論