新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 如何優(yōu)化嵌入式DSP應(yīng)用的功耗

如何優(yōu)化嵌入式DSP應(yīng)用的功耗

作者: 時(shí)間:2011-06-06 來源:網(wǎng)絡(luò) 收藏

電源管理器位于內(nèi)核之外,其不是系統(tǒng)中的一項(xiàng)任務(wù),而是一系列可在控制線程以及器件驅(qū)動器環(huán)境中執(zhí)行任務(wù)的 API。

這意味著無需修改內(nèi)核。但在 CPU 時(shí)鐘與操作系統(tǒng)定時(shí)器時(shí)鐘相耦合的平臺上,/BIOS 時(shí)鐘模塊 (CLK) 需要補(bǔ)充例行程序,這對頻率縮放非常重要,因?yàn)檫@些例行程序能夠作為 PWRM 的客戶端程序適應(yīng)操作系統(tǒng)時(shí)鐘。

電源管理器寫入并讀取時(shí)鐘空閑配置寄存器,并通過控制 CPU 時(shí)鐘速率及穩(wěn)壓電路的平臺特定型功率擴(kuò)展庫 (PSL) [參考資料. 5]直接與 硬件相連接。PSL 將電源管理器及的其他部分與頻率和電壓控制硬件的低級實(shí)施細(xì)節(jié)相隔離。

電源管理器擁有若干個(gè)與相關(guān)的任務(wù)。由設(shè)計(jì)工程師對其進(jìn)行靜態(tài)配置,并在運(yùn)行時(shí)進(jìn)行動態(tài)調(diào)用:

  • 空閑時(shí)鐘域 —— 電源管理器提供的接口可使特定時(shí)鐘域處于空閑狀態(tài),從而降低有效。此外,其還可以在 OS 空閑環(huán)路 (idle loop) 的適當(dāng)點(diǎn)提供能自動使 CPU 和高速緩存處于空閑狀態(tài)的機(jī)制。
  • 降低引導(dǎo)時(shí)間的——電源管理器包含一個(gè)鉤子機(jī)制 (hook mechanism),這使開發(fā)人員能夠設(shè)定省電功能,以便在引導(dǎo)時(shí)間實(shí)現(xiàn)自動調(diào)用。
  • 電壓及頻率 (V/F) 縮放——電源管理器提供的接口可使應(yīng)用動態(tài)更改 DPS 內(nèi)核的工作電壓及頻率。因此,應(yīng)用可利用該特性根據(jù)相關(guān)的處理要求相應(yīng)調(diào)整。電源管理器 API 可設(shè)定應(yīng)用中的電壓是否應(yīng)隨同頻率進(jìn)行縮放,以及在降壓 (down-voltage transition) 轉(zhuǎn)換過程中是否可繼續(xù)執(zhí)行任務(wù),轉(zhuǎn)換時(shí)延由負(fù)載而定,有可能會較長;如果處理器在降壓轉(zhuǎn)換期間工作正常,則允許繼續(xù)執(zhí)行應(yīng)用;此外,電源管理器還包含用于查詢 V/F 設(shè)定點(diǎn)屬性及時(shí)延的 API。
  • 睡眠模式——電源管理器包含的配置接口及運(yùn)行時(shí)接口使開發(fā)人員可喚醒自定義睡眠模式,以便在非工作狀態(tài)期間節(jié)省電能。
  • 電源事件的注冊及通知——為了調(diào)整整個(gè)應(yīng)用中的 V/F 縮放比例、睡眠模式以及其他事件,電源管理擁有一套注冊及通知機(jī)制 (registration and notification mechanism),以使諸如應(yīng)用代碼、外設(shè)驅(qū)動器、封裝內(nèi)容以及 OS 時(shí)鐘模塊等實(shí)體能夠進(jìn)行注冊,用于通知會影響這些實(shí)體的特定事件,例如“即將更改 V/F 設(shè)定點(diǎn)”、“完成更改V/F 設(shè)定點(diǎn)”、“進(jìn)入睡眠模式”、“從睡眠模式中喚醒”以及出現(xiàn)“電源故障”等。通知進(jìn)程 (notification process) 是電源管理器的重要特性。當(dāng)無需通知時(shí)可使用“未登記”功能。

電源管理器 API

表 4 對運(yùn)行時(shí)應(yīng)用編程接口進(jìn)行了匯總。

數(shù)

PWRM_changeSetpoint

對最新的 V/F 設(shè)定點(diǎn)進(jìn)行初始化更改

PWRM_configure

為 PWRM 設(shè)置新的配置參數(shù)

PWRM_getCapabilities

在該平臺上獲取有關(guān) PWRM 性能的信息

PWRM_getCurrentSetpoint

獲取當(dāng)前的有效設(shè)定點(diǎn)

PWRM_getNumSetpoints

獲取該平臺上可用設(shè)定點(diǎn)的數(shù)量

PWRM_getSetpointInfo

獲取設(shè)定點(diǎn)的相應(yīng)頻率及電壓值

PWRM_getTransitionLatency

獲取兩個(gè)設(shè)定點(diǎn)之間比例縮放的時(shí)延

PWRM_idleClocks

使特定時(shí)鐘域立即進(jìn)入空閑模式

PWRM_registerNotify

注冊可在發(fā)生特定功耗事件時(shí)進(jìn)行調(diào)用的函數(shù)

PWRM_sleepDSP

將 DSP 轉(zhuǎn)換至新的睡眠狀態(tài)

PWRM_releaseDependency

解除此前聲明的資源依賴性

PWRM_setDependency

聲明對電源的可管理資源具有依賴性

PWRM_unregisterNotify

未注冊來自 PWRM 的事件通知

表 4. 電源管理運(yùn)行時(shí) API 的匯總

戰(zhàn)略實(shí)施

由于已經(jīng)建立了提高電源效率的基礎(chǔ),下一步工作就應(yīng)該進(jìn)行戰(zhàn)略定義,以便開發(fā)低功耗應(yīng)用,并充分利用 OS 中的部分技術(shù)及支持。

所建議的策略包括以下 11 個(gè)步驟。該戰(zhàn)略具有可重復(fù)性:
當(dāng)無法滿足電源管理目標(biāo),也就是說需要采用額外的運(yùn)行時(shí)方案才能滿足應(yīng)用電源預(yù)算時(shí),就可重復(fù)訪問這些步驟。

  1. 從初始就考慮到電源效率;
  2. 選擇低功耗組件;
  3. 對電源進(jìn)行建模和估測,并進(jìn)行相應(yīng)的硬件測試;
  4. 針對電源管理和測量設(shè)計(jì)具備鉤子機(jī)制的 HW;
  5. 構(gòu)建可大幅提高工作效率的 SW;
  6. 啟用簡單的電源管理“開/關(guān)機(jī)切換”特性;
  7. 在無需電源管理的情況下也可率先進(jìn)入工作;
  8. 重復(fù)開啟“開機(jī)”特性,并測量功耗開銷 (payoff);
  9. 開啟代碼生成功能、重置代碼及數(shù)據(jù),并調(diào)整 “熱點(diǎn)” 監(jiān)測;
  10. 進(jìn)行校準(zhǔn),以實(shí)現(xiàn)頻率及電壓的最小化;
  11. 激活所有的電源管理特性,并進(jìn)行相應(yīng)部署。

表 5 對上述戰(zhàn)略進(jìn)行了非常詳盡的匯總說明。我們將在下文討論高效應(yīng)用上述策略。

表 5. 低功耗應(yīng)用開發(fā)的詳細(xì)策略

音頻應(yīng)用范例

選用現(xiàn)成的 DSP 評估板 5509A EVM PLUS 板作為測試平臺,該評估板不僅支持 V/F 縮放 ,還包含針對 DSP 內(nèi)核與總體系統(tǒng)電源測量的鉤子機(jī)制。

需要注意的是,EVM 作為易于使用的評估平臺,并未在出廠時(shí)提供最佳功耗配置。另外,在評估效果時(shí)應(yīng)謹(jǐn)記由于其易于配置,所以 EVM 上測量的總體系統(tǒng)電源數(shù)量就應(yīng)多于通常情況下部署的平臺。EVM 還能以 DSP 內(nèi)核級與系統(tǒng)級兩種方法測量各種技術(shù)的有效性。

步驟 1 無需解釋。步驟 2 及 4 基本上都由這種特殊 EVM 完成,這充分表明了該平臺的廣泛適用性。步驟 3(試驗(yàn))在 EVM 上進(jìn)行,目的是測量各種技術(shù)的效果(如片上與片外存取的內(nèi)核及系統(tǒng)電源、DMA 與 CPU 傳輸?shù)谋容^、空閑外設(shè)及時(shí)鐘域的作用等等)。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉