隨著對移動和有線設備的能源效率需求的增長,系統(tǒng)開發(fā)人員會越來越多地使用功率智能型硬件解決方案,而更加節(jié)能的代碼能使之如虎添翼。 最前沿的功率智能型硬件技術就是多核SoC,它能夠工作在各種各樣的頻率及電壓下。還有一些CPU和外設也支持多種功耗模式。我們已經(jīng)看到硬件方面的進展,但是要真正地從這些進展中得到好處,還需要一種新型的操作系統(tǒng)。 在功率高效型嵌入式設計迎來曙光的今天,前輩們所使用的實時操作系統(tǒng)(RTOS)已經(jīng)不再滿足需要。這時所需要的是節(jié)能型RTOS,它更加注重處理CPU的各種模式,同時均衡系統(tǒng)總響應度及功耗。 硬件技術趨勢 現(xiàn)在,電池的體積越來越小,但提供的容量卻越來越大。而大量的電子設備開始采用比以往更大的、由觸摸屏控制的、具備高級特性的背光LCD顯示器,這樣提高了產(chǎn)品的易用性,其代價是功耗更大,并且當LCD技術獲得重大進展時,就會推動背光需求,這就需要更多的功率。 圖1 任務的調度:未經(jīng)優(yōu)化的系統(tǒng)相對經(jīng)過優(yōu)化的系統(tǒng) 現(xiàn)代SoC設計采用了動態(tài)的電壓和頻率調節(jié)(DVFS)。在最簡單的情況下,降低頻率就能夠降低功耗,并且系統(tǒng)也能夠降低供給CPU的電壓,給節(jié)能帶來倍增的效果。CPU內(nèi)核提供了各式各樣的功耗狀態(tài):運行(run)、睡眠(sleep)、打盹(doze)和小睡(snooze)。 CPU功耗狀態(tài)的功耗越小,喚醒CPU所需要的時間就越長。最深的節(jié)能等級會保存硬件的寄存器狀態(tài),并使DRAM進入自保持模式,但較深的節(jié)能等級也會表現(xiàn)為在系統(tǒng)剛被喚醒時反應緩慢。 今天的設計通常會加入支持DVFS中動態(tài)電壓部分的電源管理IC(PMIC)。當SoC的頻率達到最大時,電壓也必須達到最大,以維持轉換時間,并且在較低頻率時,電壓可以降低。 圖1是經(jīng)過優(yōu)化和未經(jīng)優(yōu)化的系統(tǒng)示例。如果系統(tǒng)沒有針對功耗進行調整,處理器將快速完成作業(yè),比實際需要更快。頻率的降低使得降低所需電壓成為可能,這意味著能夠在滿足時間限制的同時節(jié)省功耗。 有了上述硬件技術的進步,軟件就當仁不讓地占據(jù)了控制系統(tǒng)總體功耗的位置。要想盡可能地節(jié)省所有嵌入式設備的功耗,就需要一套相當復雜的電源管理系統(tǒng)。用于電源管理的軟件可以分為被動電源管理和主動電源管理。 被動電源管理 最基本的電源管理方法是被動電源管理。被動電源管理通過將電源域置于低功耗狀態(tài)來監(jiān)視設備何時被使用,檢測設備何時停止活動,并做出反應。 例如,當設備的用戶界面被激活——用戶接觸觸摸屏——設備就處于活動狀態(tài)并保持在全功耗模式。如果觸摸屏不活動,隨著定時器計時結束,電源域的狀態(tài)機將轉換到低功耗狀態(tài)。第一次超時事件可能會將背光降至50%亮度。第二次超時事件可以將其完全關閉。 主動電源管理 主動電源管理采用的理念就是系統(tǒng)可以預測將來的資源使用,但這實際上是不可能的。對于系統(tǒng)而言,能夠做到的是分析每個任務,并引入復雜的調度技術,以便預測當系統(tǒng)在工作時任務需要什么,并相應地調節(jié)電壓和頻率。通過分析數(shù)據(jù),根據(jù)實際功率使用狀況以及系統(tǒng)正在執(zhí)行的動態(tài)測量來進行手動編程,或者通過動態(tài)測量該系統(tǒng)正在執(zhí)行的任務來進行手動編程。 圖2 使用DVFS時,頻率可快速調節(jié),而電壓則以慢得多的固定轉換速率變化 監(jiān)視任務時,可以監(jiān)視它們訪問哪些API,使用哪些設備以及每次準備好接受調度所消耗的時間。接著,這些數(shù)據(jù)連同最近每項任務執(zhí)行調度的歷史會被搜集并存儲起來,以便用于分析完成這項作業(yè)需要多少處理資源。 通過使用DVFS,系統(tǒng)開發(fā)人員可以節(jié)省大量功耗,但這樣做是有代價的,因為在低功耗和高功耗狀態(tài)之間的切換會消耗額外的功率。低頻到高頻的切換意味著我們需要首先將電壓調節(jié)至CPU頻率可以承受的預定電壓水平。降低頻率的過程是瞬時的,但是電壓的調節(jié)過程受限于轉換速率,需要一定時間才能達到最佳設置,如圖2所示。 考慮到電源管理結構,有時,與其降低DVFS之后再重新調高以滿足新任務的需要,還不如讓系統(tǒng)保持在高功耗狀態(tài)。 用于對稱多處理(SMP)系統(tǒng) 對稱多處理(SMP,SymmetricalMulti-Processing)技術,是指在一臺計算機上使用兩個或兩個以上處理器去進行計算處理。如果有兩個內(nèi)核,兩項待運行任務,這兩項任務可同時運行。如果DVFS設置為相同頻率,每項任務都可以運行在任意內(nèi)核上。實際上,如果我們在單獨調節(jié)的每個內(nèi)核上使用不同的DVFS設置,情況會變得更加復雜。 隨著今天SoC中SMP復雜度的增加,遇到支持4個或更多個對稱內(nèi)核的系統(tǒng)并不罕見。這就需要調度多個可能工作在不同頻率上的內(nèi)核,增加了管理每個內(nèi)核的DVFS方面以及調度每個內(nèi)核上任務的復雜度。 |