如何優(yōu)化嵌入式DSP應用的功耗
電源管理器位于內核之外,其不是系統中的一項任務(wù),而是一系列可在應用控制線(xiàn)程以及器件驅動(dòng)器環(huán)境中執行任務(wù)的 API。
這意味著(zhù)無(wú)需修改內核。但在 CPU 時(shí)鐘與操作系統定時(shí)器時(shí)鐘相耦合的平臺上,DSP/BIOS 時(shí)鐘模塊 (CLK) 需要補充例行程序,這對頻率縮放非常重要,因為這些例行程序能夠作為 PWRM 的客戶(hù)端程序適應操作系統時(shí)鐘。
電源管理器寫(xiě)入并讀取時(shí)鐘空閑配置寄存器,并通過(guò)控制 CPU 時(shí)鐘速率及穩壓電路的平臺特定型功率擴展庫 (PSL) [參考資料. 5]直接與 DSP 硬件相連接。PSL 將電源管理器及應用的其他部分與頻率和電壓控制硬件的低級實(shí)施細節相隔離。
電源管理器擁有若干個(gè)與應用相關(guān)的任務(wù)。由設計工程師對其進(jìn)行靜態(tài)配置,并在運行時(shí)進(jìn)行動(dòng)態(tài)調用:
- 空閑時(shí)鐘域 —— 電源管理器提供的接口可使特定時(shí)鐘域處于空閑狀態(tài),從而降低有效功耗。此外,其還可以在 OS 空閑環(huán)路 (idle loop) 的適當點(diǎn)提供能自動(dòng)使 DSP CPU 和高速緩存處于空閑狀態(tài)的機制。
- 降低引導時(shí)間的功耗——電源管理器包含一個(gè)鉤子機制 (hook mechanism),這使開(kāi)發(fā)人員能夠設定省電功能,以便在引導時(shí)間實(shí)現自動(dòng)調用。
- 電壓及頻率 (V/F) 縮放——電源管理器提供的接口可使應用動(dòng)態(tài)更改 DPS 內核的工作電壓及頻率。因此,應用可利用該特性根據相關(guān)的處理要求相應調整功耗。電源管理器 API 可設定應用中的電壓是否應隨同頻率進(jìn)行縮放,以及在降壓 (down-voltage transition) 轉換過(guò)程中是否可繼續執行任務(wù),轉換時(shí)延由負載而定,有可能會(huì )較長(cháng);如果處理器在降壓轉換期間工作正常,則允許繼續執行應用;此外,電源管理器還包含用于查詢(xún) V/F 設定點(diǎn)屬性及時(shí)延的 API。
- 睡眠模式——電源管理器包含的配置接口及運行時(shí)接口使開(kāi)發(fā)人員可喚醒自定義睡眠模式,以便在非工作狀態(tài)期間節省電能。
- 電源事件的注冊及通知——為了調整整個(gè)應用中的 V/F 縮放比例、睡眠模式以及其他事件,電源管理?yè)碛幸惶鬃约巴ㄖ獧C制 (registration and notification mechanism),以使諸如應用代碼、外設驅動(dòng)器、封裝內容以及 OS 時(shí)鐘模塊等實(shí)體能夠進(jìn)行注冊,用于通知會(huì )影響這些實(shí)體的特定事件,例如“即將更改 V/F 設定點(diǎn)”、“完成更改V/F 設定點(diǎn)”、“進(jìn)入睡眠模式”、“從睡眠模式中喚醒”以及出現“電源故障”等。通知進(jìn)程 (notification process) 是電源管理器的重要特性。當無(wú)需通知時(shí)可使用“未登記”功能。
電源管理器 API
表 4 對運行時(shí)應用編程接口進(jìn)行了匯總。
函 數 | 功 能 |
PWRM_changeSetpoint | 對最新的 V/F 設定點(diǎn)進(jìn)行初始化更改 |
PWRM_configure | 為 PWRM 設置新的配置參數 |
PWRM_getCapabilities | 在該平臺上獲取有關(guān) PWRM 性能的信息 |
PWRM_getCurrentSetpoint | 獲取當前的有效設定點(diǎn) |
PWRM_getNumSetpoints | 獲取該平臺上可用設定點(diǎn)的數量 |
PWRM_getSetpointInfo | 獲取設定點(diǎn)的相應頻率及電壓值 |
PWRM_getTransitionLatency | 獲取兩個(gè)設定點(diǎn)之間比例縮放的時(shí)延 |
PWRM_idleClocks | 使特定時(shí)鐘域立即進(jìn)入空閑模式 |
PWRM_registerNotify | 注冊可在發(fā)生特定功耗事件時(shí)進(jìn)行調用的函數 |
PWRM_sleepDSP | 將 DSP 轉換至新的睡眠狀態(tài) |
PWRM_releaseDependency | 解除此前聲明的資源依賴(lài)性 |
PWRM_setDependency | 聲明對電源的可管理資源具有依賴(lài)性 |
PWRM_unregisterNotify | 未注冊來(lái)自 PWRM 的事件通知 |
表 4. 電源管理運行時(shí) API 的匯總
戰略實(shí)施
由于已經(jīng)建立了提高電源效率的基礎,下一步工作就應該進(jìn)行戰略定義,以便開(kāi)發(fā)低功耗應用,并充分利用 OS 中的部分技術(shù)及支持。
所建議的策略包括以下 11 個(gè)步驟。該戰略具有可重復性:
當無(wú)法滿(mǎn)足電源管理目標,也就是說(shuō)需要采用額外的運行時(shí)方案才能滿(mǎn)足應用電源預算時(shí),就可重復訪(fǎng)問(wèn)這些步驟。
- 從初始就考慮到電源效率;
- 選擇低功耗組件;
- 對電源進(jìn)行建模和估測,并進(jìn)行相應的硬件測試;
- 針對電源管理和測量設計具備鉤子機制的 HW;
- 構建可大幅提高工作效率的 SW;
- 啟用簡(jiǎn)單的電源管理“開(kāi)/關(guān)機切換”特性;
- 在無(wú)需電源管理的情況下也可率先進(jìn)入工作;
- 重復開(kāi)啟“開(kāi)機”特性,并測量功耗開(kāi)銷(xiāo) (payoff);
- 開(kāi)啟代碼生成優(yōu)化功能、重置代碼及數據,并調整 “熱點(diǎn)” 監測;
- 進(jìn)行校準,以實(shí)現頻率及電壓的最小化;
- 激活所有的電源管理特性,并進(jìn)行相應部署。
表 5 對上述戰略進(jìn)行了非常詳盡的匯總說(shuō)明。我們將在下文討論如何高效應用上述策略。
表 5. 低功耗應用開(kāi)發(fā)的詳細策略
音頻應用范例
選用現成的 DSP 評估板 5509A EVM PLUS 板作為測試平臺,該評估板不僅支持 V/F 縮放 ,還包含針對 DSP 內核與總體系統電源測量的鉤子機制。
需要注意的是,EVM 作為易于使用的評估平臺,并未在出廠(chǎng)時(shí)提供最佳功耗配置。另外,在評估效果時(shí)應謹記由于其易于配置,所以 EVM 上測量的總體系統電源數量就應多于通常情況下部署的平臺。EVM 還能以 DSP 內核級與系統級兩種方法測量各種技術(shù)的有效性。
步驟 1 無(wú)需解釋。步驟 2 及 4 基本上都由這種特殊 EVM 完成,這充分表明了該平臺的廣泛適用性。步驟 3(試驗)在 EVM 上進(jìn)行,目的是測量各種技術(shù)的效果(如片上與片外存取的內核及系統電源、DMA 與 CPU 傳輸的比較、空閑外設及時(shí)鐘域的作用等等)。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論