<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>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 嵌入式系統降低功耗的方法研究

嵌入式系統降低功耗的方法研究

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

另一種常用的時(shí)鐘技術(shù)就是可變頻率時(shí)鐘。它可根據性能要求,配置適當的時(shí)鐘頻率以避免不必要的。門(mén)控時(shí)鐘實(shí)際上是可變頻率時(shí)鐘的一種極限情況(即只有0和最高頻率兩種值),因此,可變頻率時(shí)鐘比門(mén)控時(shí)鐘技術(shù)更加有效,但需要內嵌時(shí)鐘產(chǎn)生模塊PLL,增加了設計復雜度。圖4為在具有低特性的芯片上進(jìn)行的時(shí)鐘設計方案。片上時(shí)鐘系統通過(guò)2個(gè)數字鎖相環(huán)CPUPLL和SysPLL來(lái)穩定16 MHz的輸入時(shí)鐘,分別送到不同的倍頻器和分頻器。經(jīng)CPU-PLL的時(shí)鐘信號作為處理器內核時(shí)鐘,經(jīng)SysPLL的時(shí)鐘信號作為處理器內核之外的系統時(shí)鐘、存儲器時(shí)鐘和外設時(shí)鐘。
由于處理器芯片(如i.MX1)不支持電壓動(dòng)態(tài)調節,可通過(guò)配置片內數字鎖相環(huán)實(shí)現內核頻率動(dòng)態(tài)調節。根據公式計算出系統頻率:



其中:fref是系統的低頻時(shí)鐘頻率,作為倍頻的參考頻率;MFI是倍頻因子的整數部分;MFN和MFD分別是倍頻因子的分子和分母;PD是預設分頻因子。
2.2 操作系統層
系統級低設計一般是在操作系統層實(shí)現。因為操作系統管理系統所有軟硬件資源,并獲取系統的各種狀態(tài)信息,控制硬件設備的狀態(tài)。因此,在操作系統中實(shí)現全局功耗控制是最佳選擇。操作系統層面分成功耗驅動(dòng)模塊和功耗調度模塊。
2.2.1 功耗驅動(dòng)模塊
驅動(dòng)模塊實(shí)現相對簡(jiǎn)單,主要是對硬件操作。功耗模式轉換和頻率調節都是通過(guò)片上時(shí)鐘系統控制寄存器進(jìn)行設置。因此,實(shí)質(zhì)上是對寄存器的設置。從睡眠模式或停止模式進(jìn)入運行模式相對容易,只需向系統發(fā)出中斷信號,喚醒系統進(jìn)入運行模式。而從運行模式到睡眠模式或停止模式相對復雜,其關(guān)鍵代碼如下:

2.2.2 功耗調度模塊
功耗調度模塊實(shí)現的關(guān)鍵技術(shù)在Linux操作系統中有具體體現。在Linux操作系統中,任務(wù)的調度主要由進(jìn)程調度(或任務(wù)調度)模塊 schedule()完成。schedule()掌握系統內所有進(jìn)程的運行狀態(tài),并對其執行的優(yōu)先級進(jìn)行管理調度。因此,系統級實(shí)現功耗控制,需要對Linux內核的schedule()模塊全面改寫(xiě),將DPM和DVS策略加入其中。設計思路為:由于Linux內核提供的 cpu_usage_stat結構記錄了處理器運行時(shí)間的分配情況,可以通過(guò)讀取這些參數計算出當前系統的運行比例,即通過(guò)cpu_scan函數來(lái)實(shí)現具體的操作。cpu_scan函數是處理器設備驅動(dòng)的主要部分,它在固定的時(shí)間片內調用,時(shí)間片的大小可以根據需要在5~1D0 ms之間選取。該函數通過(guò)調用cpu_dvs函數和cpu_dmp函數來(lái)評估系統的狀態(tài),這兩個(gè)函數分別是可變電壓技術(shù)和動(dòng)態(tài)功耗管理的實(shí)現。
(1)DPM策略
DPM策略在低功耗嵌入式Linux系統的實(shí)現上分為觀(guān)測器和控制器兩部分,如圖5所示。我們在實(shí)現過(guò)程中采用了Timeout算法。該算法實(shí)現簡(jiǎn)單,預測準確性也較高。統計表明,只要合理地設計Timeout,這種假設的可信度為95%。采用了Timeout算法的cpu_dmp函數在此不再具體解釋。但在動(dòng)態(tài)電源管理實(shí)現過(guò)程中容易出現一個(gè)喚醒信號發(fā)送給一個(gè)等待隊列中的進(jìn)程后,該進(jìn)程不能夠立即被調度執行,從而造成事件丟失的情況。為了避免這種情況的出現,Llow被設置成比Lmax稍小的值。當事件數量到達Llow時(shí),即使事件處理進(jìn)程被喚醒后不能馬上轉入執行,由于LlowLmax,事件列表還沒(méi)有全滿(mǎn),也不會(huì )造成新事件丟失。這樣,既了事件丟失的幾率,對系統的影響也降到了最小,因為只有當事件列表快滿(mǎn)時(shí)才會(huì )調用事件處理進(jìn)程。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(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>