當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]嵌入式Linux的動(dòng)態(tài)電源管理技術(shù)

摘要 在SoC硬件對(duì)電源管理支持基礎(chǔ)上,通過(guò)設(shè)計(jì)電源管理操作點(diǎn)、管理類(lèi)、管理策略等結(jié)構(gòu),把系統(tǒng)創(chuàng)建的任務(wù)和具體電源管理硬件參數(shù)聯(lián)系起來(lái),為任務(wù)間精細(xì)電源管理提供包括應(yīng)用層、操作系統(tǒng)層以及硬件層的框架結(jié)構(gòu)。結(jié)合用戶層制定的策略,實(shí)時(shí)、動(dòng)態(tài)、低延遲管理系統(tǒng)動(dòng)態(tài)功耗,調(diào)整CPU工作頻率和電壓、外部總線時(shí)鐘頻率、外部設(shè)備時(shí)鐘/電源參數(shù)。實(shí)踐證明,節(jié)能效果良好。
關(guān)鍵詞  嵌入式Linux  動(dòng)態(tài)電源管理  智能終端  DPM

引 言
    如何有效地管理嵌入式系統(tǒng),尤其是移動(dòng)終端的電源功耗,是一個(gè)很有價(jià)值的課題。動(dòng)態(tài)電源管理DPM(Dynamic Power, Management)技術(shù)提供一種操作系統(tǒng)級(jí)別的電源管理能力,包含CPU工作頻率和電壓,外部總線時(shí)鐘頻率,外部設(shè)備時(shí)鐘/電源等方面的動(dòng)態(tài)調(diào)節(jié)、管理功能。通過(guò)用戶層制定策略與內(nèi)核提供管理功能交互,實(shí)時(shí)調(diào)整電源參數(shù)而同時(shí)滿足系統(tǒng)實(shí)時(shí)應(yīng)用的需求,允許電源管理參數(shù)在短時(shí)間的空閑或任務(wù)運(yùn)行在低電源需求時(shí),可以被頻繁地、低延遲地調(diào)整,從而實(shí)現(xiàn)更精細(xì)、更智能的電源管理。

1 動(dòng)態(tài)電源管理原理
    CMOS電路的總功耗是活動(dòng)功耗與靜態(tài)功耗之和。當(dāng)電路工作或邏輯狀態(tài)轉(zhuǎn)換時(shí)會(huì)產(chǎn)生活動(dòng)功耗,未發(fā)生轉(zhuǎn)換時(shí)晶體管漏電流會(huì)造成靜態(tài)功耗:
   
    式中C為電容,fc為開(kāi)關(guān)頻率,Vdd為電源電壓,IQ為漏電流。C·Vdd·fc為活動(dòng)功耗;VddIQ為靜態(tài)功耗。在操作系統(tǒng)級(jí)的電源管理設(shè)計(jì)實(shí)現(xiàn)中,重點(diǎn)是活動(dòng)功耗。從中可以得出幾種管理活動(dòng)功耗的方法:
    ①電壓/時(shí)鐘調(diào)節(jié)。通過(guò)降低電壓和時(shí)鐘來(lái)減少活動(dòng)功耗和靜態(tài)功耗。
    ②時(shí)鐘選通。停止電路時(shí)鐘,即設(shè)fc為O,讓Pactive為0。將時(shí)鐘從不用的電路模塊斷開(kāi),減少活動(dòng)功耗。許多CPU都有“閑置”或“停止”指令,一些處理器還可通過(guò)門(mén)控關(guān)閉非CPU時(shí)鐘模塊,如高速緩存、DMA外設(shè)等。
    ③電源供應(yīng)選通。斷開(kāi)電路中不使用的模塊電源供應(yīng)。這種方法需要考慮重新恢復(fù)該模塊的代價(jià)。

    斷開(kāi)不使用的模塊的時(shí)鐘和電源供應(yīng)可以減少電源消耗,但要能夠正確預(yù)測(cè)硬件模塊的空閑時(shí)期。因?yàn)橹匦率鼓苡布K時(shí)鐘和電源會(huì)造成一定延遲,不正確的預(yù)測(cè)將導(dǎo)致性能下降。

    從式(1)可以看出:降低電壓對(duì)功耗的貢獻(xiàn)是2次方的;降低時(shí)鐘也可降低功耗,但它同時(shí)也降低性能,延長(zhǎng)同一任務(wù)的執(zhí)行時(shí)間。設(shè)2.0 V高壓下的能量消耗為E高=P高·T,則1.0 V低壓下能量消耗為E低=P低·2T(實(shí)踐中頻率近似線性依賴電壓),再根據(jù)式(1)容易得到P高=8P低。綜合上式可以得出:E高=4E低,所以,選擇滿足性能所需的最低時(shí)鐘頻率,在時(shí)鐘頻率和各種系統(tǒng)部件運(yùn)行電壓要求范圍內(nèi),設(shè)定最低的電源電壓,將會(huì)大量減少系統(tǒng)功耗。上例中完成任務(wù)所需的能量可以節(jié)約75%。

2 硬件平臺(tái)對(duì)動(dòng)態(tài)電源管理的支持
    通過(guò)調(diào)節(jié)電壓、頻率來(lái)減少系統(tǒng)活動(dòng)功耗需要硬件支持。SoC系統(tǒng)一般有多個(gè)執(zhí)行單元,如PM(電源管理)模塊、OSC(片上晶振)模塊、PLL(鎖相環(huán))模塊、CPU核以及CPU核中的數(shù)據(jù)緩存和指令緩存,其他模塊統(tǒng)稱為外圍模塊(例如1,CD控制器、UART、SDRAM控制器等)。CPU高頻時(shí)鐘主要由PLL提供,同時(shí)PLL也為外圍模塊和SoC總線提供其他頻率時(shí)鐘。一般SoC系統(tǒng)都有一些分頻器和乘法器可以控制這些時(shí)鐘。PM模塊主要是管理系統(tǒng)的電源供應(yīng)狀態(tài)。一般有自己的低頻、高準(zhǔn)確度晶,振,用以維持一個(gè)RTC時(shí)鐘、RTC定時(shí)器和中斷控制單元。其中中斷控制單元使RTC定時(shí)器和外部設(shè)備能夠喚醒掛起的SoC系統(tǒng)。下面以一個(gè)廣泛用于手持設(shè)備的TI0MAPl610處理器為例。 

    ①時(shí)鐘模塊。OMAPl610提供一個(gè)數(shù)字相控鎖環(huán)(DPLL),將外頻或晶振輸入轉(zhuǎn)化為高頻,供給OMAP 3.2核以及其他片上設(shè)備。操作DPLL控制寄存器DPLLl_CTL_REG就可以設(shè)置DPLL輸出時(shí)鐘,輔以設(shè)置時(shí)鐘復(fù)用寄存器(MUX)和時(shí)鐘控制寄存器ARM_CKCTL,就能控制MPU和DSP的運(yùn)行頻率,MPU、DSP外設(shè)時(shí)鐘,以及LCD刷新時(shí)鐘,TC_CK時(shí)鐘(Trafflc Control Clock)等。

    ②電源管理模塊。OMAPl610集成一個(gè)超低功耗控制模塊(ULPD),用以控制OMAP3.2時(shí)鐘和控制OMAPl610進(jìn)出多種電源管理模式。操作ULPD控制寄存器ULPD_POWER_CTRL,可以設(shè)置處理器電壓、管理運(yùn)行模式。

3 嵌入式Linux動(dòng)態(tài)電源管理軟件實(shí)現(xiàn)
    嵌入式Linux已被廣泛應(yīng)用在電源功耗敏感的嵌入式設(shè)備上,特別是移動(dòng)手持設(shè)備;因此,設(shè)計(jì)高效、精細(xì)的電源管理技術(shù)是嵌入式Linux開(kāi)發(fā)成功的關(guān)鍵技術(shù)之一。

3.1動(dòng)態(tài)電源管理實(shí)現(xiàn)原理

    系統(tǒng)運(yùn)行在常見(jiàn)的幾種不同狀態(tài),有不同電源級(jí)別要求,其中蘊(yùn)涵著豐富的節(jié)能機(jī)會(huì)。狀態(tài)轉(zhuǎn)化如圖1所示。

    ①系統(tǒng)運(yùn)行在任務(wù)、任務(wù)一、任務(wù)+中的任務(wù)狀態(tài)之一,可以響應(yīng)中斷進(jìn)入中斷處理,可以進(jìn)入空閑或睡眠狀態(tài)。不同的任務(wù)要求不同的電源級(jí)別,例如播放MP3可以降低處理器的頻率,而運(yùn)行在線互動(dòng)游戲時(shí)則要求處理器全速運(yùn)行,所以DPM需要在不同任務(wù)中提供電源管理服務(wù)。
    ②系統(tǒng)進(jìn)入空閑,這時(shí)可以被中斷喚醒,處理中斷:DPM提供受管理的空閑模式,可以更智能地節(jié)省電源。
    ③系統(tǒng)在中斷處理完可以進(jìn)入空閑狀態(tài),或者從中斷中回到任務(wù)態(tài)。
    ④系統(tǒng)在任務(wù)狀態(tài)下可進(jìn)入睡眠模式。系統(tǒng)可掛起到RAM或者其他存儲(chǔ)器中,關(guān)閉外設(shè),實(shí)現(xiàn)最大限度地省電。通過(guò)特定事件(例如定義UART中斷)要求系統(tǒng)退出睡眠模式。

    綜上所述,可以把動(dòng)態(tài)電源管理分為平臺(tái)掛起/恢復(fù)、設(shè)備電源管理以及平臺(tái)動(dòng)態(tài)管理等三類(lèi)。平臺(tái)掛起/恢復(fù)目標(biāo)在于管理較大的、非常見(jiàn)的重大電源狀態(tài)改變,用于減少產(chǎn)品設(shè)備在長(zhǎng)時(shí)間的空閑之后,減少電源消耗。設(shè)備電源管理用于關(guān)斷/恢復(fù)平臺(tái)中的設(shè)備(平臺(tái)掛起/恢復(fù)以及動(dòng)態(tài)管理中均要用到);而平臺(tái)動(dòng)態(tài)管理目標(biāo)在于頻繁發(fā)生、更高粒度的電源狀態(tài)改變范圍之內(nèi)的管理。系統(tǒng)運(yùn)行的任務(wù)可以細(xì)分為普通任務(wù)和功率受監(jiān)控的任務(wù)。前者電源狀態(tài)是DPM_NO_STATE,不作電源管理;后者對(duì)功率敏感,在被調(diào)度時(shí)(參見(jiàn)圖1)可以通過(guò)DPM來(lái)設(shè)置其電源管理狀態(tài),要求運(yùn)行在不同的電源級(jí)別。本文重點(diǎn)描述平臺(tái)動(dòng)態(tài)電源管理和設(shè)備電源管理兩類(lèi),并將設(shè)備電源管理視為動(dòng)態(tài)電源管理的組成部分。

3.2平臺(tái)動(dòng)態(tài)電源管理設(shè)計(jì)

    在Linux架構(gòu)下實(shí)現(xiàn)電源管理內(nèi)核模塊需要實(shí)現(xiàn)一個(gè)應(yīng)用層和操作系統(tǒng)的接口,一個(gè)為多個(gè)硬件平臺(tái)提供通用電源管理邏輯控制框架的硬件無(wú)關(guān)層,以及一個(gè)管理特定硬件電源控制接口的平臺(tái)相關(guān)電源控制層。

3.2.1 內(nèi)核模塊控制模型

    模型主要由操作點(diǎn)、管理類(lèi)、管理策略等組成。
    ①用電源管理操作點(diǎn)對(duì)應(yīng)平臺(tái)硬件相關(guān)參數(shù)。例如,TIOMAPl610參考開(kāi)發(fā)板有多個(gè)參數(shù):CPU電壓、DPLL頻率控制(通過(guò)倍頻器和分頻器兩個(gè)參數(shù))、CPU頻率控制、TC交通控制器、外部設(shè)備控制、DSP運(yùn)行頻率、DSP的MMU單元頻率和LCD刷新頻率。如果使用TI的DSP代碼,則后四個(gè)參數(shù)為不可控,均使用默認(rèn)值,如表1所列。

    其中,“192 MHz—1.5 V”操作點(diǎn)參數(shù)“1 500”表示OMAP3.2核心電壓為1 500 mV;“16”表示DPLL頻率控制12 MHz晶振輸入16倍頻;“1”表示分頻為1;“1”表示OMAP3.2核心分頻為1(所以它運(yùn)行在192 MHz)“2”表示TC(交通控制器)分頻為2(所以它運(yùn)行在96 MHz).
    ②類(lèi):多個(gè)操作點(diǎn)組成一個(gè)管理類(lèi)。
    ③策略:多個(gè)或一個(gè)類(lèi)組成策略。

    一般可以簡(jiǎn)化系統(tǒng)模型,直接將DPM策略映射到一個(gè)系統(tǒng)操作狀態(tài)下特定的DPM操作點(diǎn),如表2所列。復(fù)雜點(diǎn)系統(tǒng)可以考慮將DPM策略映射到一個(gè)多操作點(diǎn)的DPM管理類(lèi),再根據(jù)操作狀態(tài)切換時(shí)選擇管理類(lèi)中滿足約束的第一個(gè)操作點(diǎn)。

    表2中策略映射到四個(gè)操作點(diǎn),分別對(duì)應(yīng)“sleep”、 “idle”、“task-1”、“task”四種電源狀態(tài)。除非用戶加以改變,否則系統(tǒng)fork創(chuàng)建的任務(wù)默認(rèn)運(yùn)行在DPM-TASK-STATE狀態(tài),對(duì)應(yīng)表2中task狀態(tài),其操作點(diǎn)為192 MHz-1.5 V。

    通過(guò)這種結(jié)構(gòu),電源管理系統(tǒng)把系統(tǒng)創(chuàng)建的任務(wù)和具體的電源管理硬件單元參數(shù)連接起來(lái),為任務(wù)間精細(xì)電源管理提供一個(gè)框架。

3.2.2內(nèi)核功能實(shí)現(xiàn)

    如圖2所示,DPM軟件實(shí)現(xiàn)可以分為應(yīng)用層、內(nèi)核層、硬件設(shè)備等幾個(gè)部分。其中內(nèi)核層又可以分為接口層,硬件無(wú)關(guān)層和內(nèi)核硬件相關(guān)層(圖2中虛線部分),可以分為以下幾個(gè)方面來(lái)描述。

    第一,用戶層可以通過(guò)內(nèi)核提供的sysfs文件系統(tǒng)和設(shè)備驅(qū)動(dòng)模型(LDM)接口來(lái)進(jìn)行電源管理。DPM實(shí)現(xiàn)還提供Proc接口來(lái)實(shí)現(xiàn)電源管理的命令;也可以通過(guò)增加系統(tǒng)調(diào)用接口使用戶程序更容易調(diào)用DPM功能。

    通過(guò)修改任務(wù)切換宏switch_tO,添加dpm_set_OS(task_dpm_ state)接口,然后電源管理引擎將當(dāng)前任務(wù)電源狀態(tài)設(shè)置到硬件參數(shù)。

    第二,內(nèi)核硬件無(wú)關(guān)層提供電源管理邏輯控制框架。電源管理引擎主要實(shí)現(xiàn)API調(diào)用,選擇操作點(diǎn),提供操作點(diǎn)設(shè)置的同步和異步邏輯等。

    設(shè)備電源管理模塊還實(shí)現(xiàn)設(shè)備驅(qū)動(dòng)約束,通過(guò)LDM接口管理設(shè)備時(shí)鐘和電源,提供掛起和恢復(fù)控制。 設(shè)備時(shí)鐘電源關(guān)層主要對(duì)應(yīng)系統(tǒng)的各種總線和設(shè)備時(shí)鐘電源參數(shù)管理。 

3.2.3 設(shè)備電源管理和驅(qū)動(dòng)約束

    DPM通過(guò)LDM可以對(duì)設(shè)備進(jìn)行電源管理。LDM中device_driver結(jié)構(gòu)有設(shè)備掛起和恢復(fù)等回調(diào)函數(shù),device結(jié)構(gòu)有驅(qū)動(dòng)約束。需要在設(shè)備初始化時(shí)使用注冊(cè)函數(shù)向相應(yīng)系統(tǒng)總線注冊(cè)該設(shè)備。例如,簡(jiǎn)化后12C的LDM相關(guān)參數(shù)為:

   
    I2C驅(qū)動(dòng)注冊(cè)到MPU公有TI外圍總線:driver_reg-ister(&omap_i2c_driver)platform_device_register(&omap_i2c_device)。在驅(qū)動(dòng)程序中實(shí)現(xiàn)掛起和恢復(fù)函數(shù):omap_i2c_controller_suspen(&omap_i2c_device),omap_i2c_con-troller_resume(&omap_i2c_deviee)。這樣,所有注冊(cè)到系統(tǒng)的設(shè)備在sysfs中都有一個(gè)管理接口。通過(guò)這些接口可以操縱設(shè)備的電源狀態(tài)。在多種情況下,可利用該接口來(lái)掛斷設(shè)備,例如:應(yīng)用程序顯式掛斷應(yīng)用中不需要的設(shè)備;平臺(tái)掛起前需掛斷所有設(shè)備;當(dāng)DPM將系統(tǒng)設(shè)置到設(shè)備不兼容狀態(tài)時(shí)需掛起該設(shè)備等等。其中DPM中管理設(shè)備電源狀態(tài)時(shí)還提供設(shè)備驅(qū)動(dòng)約束檢查(頻率相關(guān))。例如,當(dāng)系統(tǒng)電源狀態(tài)改變,準(zhǔn)備運(yùn)行在新的操作點(diǎn)時(shí),驅(qū)動(dòng)約束檢查該狀態(tài)是否滿足設(shè)備正常運(yùn)行。如果不滿足,且當(dāng)前操作點(diǎn)force屬性設(shè)置為1,設(shè)備首先被LDM回調(diào)函數(shù)關(guān)斷(或?qū)⒃O(shè)備置于和此時(shí)PLL相應(yīng)的掛起狀態(tài));如果滿足條件,則利用設(shè)備驅(qū)動(dòng)中實(shí)現(xiàn)的調(diào)節(jié)函數(shù)轉(zhuǎn)到新?tīng)顟B(tài)。

    驅(qū)動(dòng)約束還用于限制DPM操作方式。當(dāng)沒(méi)有設(shè)備被使用時(shí),約束才允許DPM將系統(tǒng)轉(zhuǎn)到低電源空閑狀態(tài)。

4 總 結(jié)
    DPM技術(shù)通過(guò)內(nèi)核模塊的方式實(shí)現(xiàn)任務(wù)級(jí)別電源管理、實(shí)現(xiàn)了有效的設(shè)備電源管理,滿足了嵌入式Linux的需求,補(bǔ)充了基于桌面系統(tǒng)APM和APCI電源管理技術(shù)的不足。實(shí)踐證明,DPM對(duì)嵌入式系統(tǒng),尤其是移動(dòng)終端,能夠起到很好的節(jié)能效果。

    當(dāng)然,動(dòng)態(tài)電源管理系統(tǒng)還有待于進(jìn)一步完善。例如:①可以根據(jù)硬件和軟件收集系統(tǒng)負(fù)載狀態(tài),使用Markov,鏈等手段準(zhǔn)確預(yù)測(cè)電源狀態(tài),從而設(shè)計(jì)出更智能、更有效的狀態(tài)切換管理策略;②電源管理和實(shí)時(shí)性能要求之間的復(fù)雜關(guān)系還需處理等等。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉