基于嵌入式DSP應(yīng)用的低功耗優(yōu)化策略
一部分最重要的并得到普遍認(rèn)可的技術(shù)方法可以融合到RTOS中,相關(guān)的技術(shù)包括:閑置、關(guān)閉活動(dòng)電源、器件驅(qū)動(dòng)程序通知、內(nèi)存管理、電壓/頻率調(diào)節(jié)。然而,由于設(shè)計(jì)目標(biāo)不盡相同,將這些技術(shù)構(gòu)建到RTOS中并不容易。設(shè)計(jì)師需要在這些方法中做出選擇,設(shè)計(jì)的關(guān)鍵目標(biāo)就是高效性、靈活性以及與操作系統(tǒng)本身的松散關(guān)系。
TI的DSP/BIOS操作系統(tǒng)的電源管理器(PWRM)非常適于用作現(xiàn)有RTOS的電源管理模塊。盡管以下描述的設(shè)計(jì)實(shí)現(xiàn)是針對(duì)DSP/BIOS,但其概念可很容易地運(yùn)用到其他操作系統(tǒng),甚至用于無操作系統(tǒng)的應(yīng)用環(huán)境。
電源管理器的要求
電源管理器設(shè)計(jì)的關(guān)鍵要求如下:
1. 管理決策必須由應(yīng)用觸發(fā),而不是操作系統(tǒng)觸發(fā);
2. 電源管理活動(dòng)應(yīng)當(dāng)針對(duì)大部分應(yīng)用代碼透明;
3. 電源管理器必須支持電壓與頻率(V/F)調(diào)節(jié),并充分利用芯片的空閑與睡眠模式;
4. 電源管理器必須在應(yīng)用代碼、驅(qū)動(dòng)程序以及操作系統(tǒng)本身范圍內(nèi)協(xié)調(diào)電源事件處理,并在發(fā)生特定事件時(shí)向客戶端發(fā)出通知;
5. 電源管理特性必須在任何線程環(huán)境中可用,并且還必須對(duì)特定客戶端的多個(gè)實(shí)例可用(如一個(gè)器件驅(qū)動(dòng)程序的多個(gè)實(shí)例);
6. 在向客戶端發(fā)出電源事件通知時(shí),電源管理器必須支持事件處理的延遲完成,并在等待延遲客戶端的完成信號(hào)的同時(shí)通知其他客戶端;
7. 對(duì)具有不同功能的不同平臺(tái),電源管理器必須是可擴(kuò)展的和可移植的。
為滿足上述的關(guān)鍵要求,可將電源管理器作為DSP/BIOS的附屬模塊添加,如圖1所示。電源管理器位于內(nèi)核之外,它不是系統(tǒng)中的一項(xiàng)任務(wù),而是一組可在應(yīng)用控制線程以及器件驅(qū)動(dòng)程序環(huán)境中執(zhí)行的API。
圖1. 電源管理器分區(qū)
這意味著無需修改內(nèi)核,但在CPU時(shí)鐘與操作系統(tǒng)定時(shí)器時(shí)鐘相結(jié)合的平臺(tái)上,DSP/BIOS時(shí)鐘模塊(CLK)需要補(bǔ)充例程(routine),這對(duì)頻率縮放非常重要,因?yàn)檫@些例程能夠使OS時(shí)鐘適應(yīng)PWRM的客戶端。
電源管理器通過寫入并讀取時(shí)鐘空閑配置寄存器,并通過控制CPU時(shí)鐘速率及穩(wěn)壓電路的特定平臺(tái)功率擴(kuò)展庫(PSL),直接與DSP硬件相連接。PSL將電源管理器及應(yīng)用的其他部分與頻率和電壓控制硬件的低層實(shí)現(xiàn)細(xì)節(jié)相隔離。
電源管理器擁有若干個(gè)與應(yīng)用相關(guān)的任務(wù)。由設(shè)計(jì)工程師對(duì)其進(jìn)行靜態(tài)配置,并在運(yùn)行時(shí)進(jìn)行動(dòng)態(tài)調(diào)用:
1.空閑時(shí)鐘域―電源管理器提供的接口可使特定時(shí)鐘域處于空閑狀態(tài),從而降低功耗。此外,它還可以在OS空閑循環(huán)的適當(dāng)點(diǎn)提供能自動(dòng)使DSP CPU和高速緩存處于空閑狀態(tài)的機(jī)制。
2.降低引導(dǎo)時(shí)間的功耗―電源管理器包含一個(gè)鉤子機(jī)制(hook mechanism),這使開發(fā)人員能夠設(shè)定省函數(shù),以便在引導(dǎo)時(shí)間實(shí)現(xiàn)自動(dòng)調(diào)用。
3.電壓及頻率(V/F)調(diào)節(jié)―電源管理器提供的接口可使應(yīng)用程序動(dòng)態(tài)更改DSP內(nèi)核的工作電壓及頻率。因此,應(yīng)用程序可利用該特性根據(jù)相關(guān)的處理要求相應(yīng)調(diào)整功耗。電源管理器API可設(shè)定應(yīng)用中的電壓是否應(yīng)隨同頻率進(jìn)行調(diào)節(jié),以及在降壓轉(zhuǎn)換過程中是否可繼續(xù)執(zhí)行任務(wù),轉(zhuǎn)換時(shí)延由負(fù)載而定,有可能會(huì)較長;如果處理器在降壓轉(zhuǎn)換期間工作正常,則允許繼續(xù)執(zhí)行應(yīng)用;此外,電源管理器還包含用于查詢V/F設(shè)定點(diǎn)屬性及時(shí)延的API。
4.睡眠模式―電源管理器包含的配置及運(yùn)行時(shí)接口使開發(fā)人員可產(chǎn)生自定義睡眠模式,以便在非工作狀態(tài)期間節(jié)省電能。
5.電源事件的注冊(cè)及通知―為了調(diào)整整個(gè)應(yīng)用中的V/F調(diào)節(jié)比例、睡眠模式以及其他事件,電源管理擁有一套記錄及通知機(jī)制,以使諸如應(yīng)用代碼、外設(shè)驅(qū)動(dòng)程序、打包的內(nèi)容以及OS時(shí)鐘模塊能針對(duì)會(huì)影響到他們的特定事件進(jìn)行記錄,以便通知。這些電源事件如“即將更改 V/F 設(shè)定點(diǎn)”、“完成更改V/F 設(shè)定點(diǎn)”、“進(jìn)入睡眠模式”、“從睡眠模式中喚醒”以及出現(xiàn)“電源故障”等。通知進(jìn)程(notification process)是電源管理器的重要特性。當(dāng)無需通知時(shí)可使用“未登記”功能。
策略實(shí)施
上面已經(jīng)建立了提高電源效率的基礎(chǔ),下一步工作就應(yīng)該確定開發(fā)高效率應(yīng)用的策略,并充分利用OS中的部分方法及支持。
所建議的策略包括以下11個(gè)步驟。該策略具有可重復(fù)性:當(dāng)無法滿足電源管理目標(biāo),或者需要采用額外的運(yùn)行時(shí)方法才能滿足應(yīng)用的電源預(yù)算時(shí),就可重復(fù)這些步驟。
1. 從最初就考慮到電源效率;
2. 選擇低功耗組件;
3. 對(duì)電源進(jìn)行建模和估測(cè),并進(jìn)行相應(yīng)的硬件測(cè)試;
4. 針對(duì)電源管理和測(cè)量設(shè)計(jì)具備鉤子機(jī)制的硬件;
5. 構(gòu)建可大幅提高工作效率的軟件;
6. 啟用簡(jiǎn)單的電源管理開/關(guān)機(jī)切換;
7. 在無電源管理的情況下也可先進(jìn)入工作;
8. 重復(fù)開啟“開機(jī)”特性,并測(cè)量功耗開銷(payoff);
9. 開啟代碼生成優(yōu)化功能、重置代碼及數(shù)據(jù),并調(diào)整“熱點(diǎn)”監(jiān)測(cè);
10. 進(jìn)行校準(zhǔn),以實(shí)現(xiàn)頻率及電壓的最低;
11. 激活并應(yīng)用所有的電源管理特性。
選用現(xiàn)成的DSP*估板5509A EVM PLUS板作為測(cè)試平臺(tái),該*估板不僅支持V/F調(diào)節(jié),還包含針對(duì)DSP內(nèi)核與總體系統(tǒng)電源測(cè)量的鉤子機(jī)制。
需要注意的是,EVM作為易于使用的*估平臺(tái),并未在出廠時(shí)提供最佳功耗配置。另外,在*估效果時(shí)應(yīng)謹(jǐn)記由于其易于配置,所以EVM上測(cè)量的總體系統(tǒng)電源數(shù)量就應(yīng)多于通常情況下部署的平臺(tái)。EVM還能以DSP內(nèi)核級(jí)與系統(tǒng)級(jí)兩種方法測(cè)量各種技術(shù)的有效性。
步驟1無需解釋。步驟2及4基本上都由這種特殊EVM完成,這充分表明了該平臺(tái)的廣泛適用性。步驟3(試驗(yàn))在EVM上進(jìn)行,目的是測(cè)量各種技術(shù)的效果(如片上與片外存取的內(nèi)核及系統(tǒng)電源、DMA與CPU傳輸?shù)谋容^、空閑外設(shè)及時(shí)鐘域的作用等等)。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論