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