TI DSP應(yīng)用系統(tǒng)低功耗設(shè)計(jì)方案
電源管理器 API
表 4 對(duì)運(yùn)行時(shí)應(yīng)用編程接口進(jìn)行了匯總。
采用軟硬件技術(shù)可以提高電源效率,而使用內(nèi)置電源管理 API 的 DSP RTOS 更容易實(shí)現(xiàn)上述目的。
作者:Scott Gary,德州儀器 (TI)
無線及有線系統(tǒng)設(shè)計(jì)師均必須重視電源效率問題,盡管雙方的出發(fā)點(diǎn)不盡相同。
對(duì)于移動(dòng)設(shè)備而言,更長(zhǎng)的電池使用壽命、更長(zhǎng)的通話時(shí)間或更長(zhǎng)的工作時(shí)間都是明顯的優(yōu)勢(shì)。降低電源要求意味著使用體積更小的電池或選擇不同的電池技術(shù),這在一定程度上也緩解了電池發(fā)熱問題。
對(duì)于有線系統(tǒng)而言,設(shè)計(jì)師可通過減小電源體積、減少冷卻需求以及降低風(fēng)扇噪聲來提高電池效率。人們很少會(huì)提到這樣一個(gè)事實(shí):提高電源效率還可節(jié)省空間,用以增加能夠提高系統(tǒng)性能的組件,尤其是設(shè)計(jì)小組希望添加一個(gè)以上處理器時(shí),這一點(diǎn)非常重要。
設(shè)計(jì)嵌入式 DSP 處理器或系統(tǒng)功耗要求嚴(yán)格的系統(tǒng)時(shí),采用 DSP 專用技術(shù)、操作系統(tǒng)及其支持軟件可以降低功耗。超越傳統(tǒng)技術(shù)的 DSP 或雙處理器設(shè)計(jì)在節(jié)約能量方面表現(xiàn)出色。
本文將討論傳統(tǒng)及專門針對(duì) DSP 的功耗優(yōu)化技術(shù),首先對(duì)使用到的術(shù)語和原理進(jìn)行定義與說明。
功耗基礎(chǔ)知識(shí)
互補(bǔ)金屬氧化物半導(dǎo)體 (CMOS) 電路的總功耗是動(dòng)態(tài)功耗與靜態(tài)功耗之和 [參考資料 3]:
當(dāng)門發(fā)生邏輯狀態(tài)轉(zhuǎn)換并產(chǎn)生內(nèi)部結(jié)點(diǎn)充電所需的開關(guān)電流以及P 通道及N 通道同時(shí)暫態(tài)開啟引起直通電流時(shí),就會(huì)出現(xiàn)動(dòng)態(tài)功耗。通過以下公式可以估算其近似值:
其中,Cpd 為動(dòng)態(tài)電容,F(xiàn) 為開關(guān)頻率,Vcc 為電源電壓,而 Nsw 為轉(zhuǎn)換的比特?cái)?shù)。
另外,電壓 (Vcc) 決定著穩(wěn)定工作狀態(tài)下的最大開關(guān)頻率 (F)。
上述關(guān)系中包含兩個(gè)重要概念:
- 動(dòng)態(tài)功耗與開關(guān)頻率呈線性關(guān)系,與電源電壓呈二次關(guān)系。
- 最大安全開關(guān)頻率取決于電源電壓。
為便于本文討論,將特定的頻率及電壓對(duì)稱為“設(shè)定點(diǎn)”。
很顯然,降低 CPU 時(shí)鐘速率將相應(yīng)成比例地降低動(dòng)態(tài)功耗,由于動(dòng)態(tài)功耗與電源電壓成二次關(guān)系,在不影響系統(tǒng)性能的前提下,通過降低電壓就可能額外大大降低功耗。
不過,對(duì)于特定任務(wù)集,降低 CPU 時(shí)鐘速率也會(huì)成比例地延長(zhǎng)執(zhí)行該任務(wù)集的時(shí)間,因此必須仔細(xì)分析應(yīng)用以確保滿足其實(shí)時(shí)需求。
靜態(tài)功耗主要是由于晶體管漏電流造成的。一般說來,CMOS 電路的靜態(tài)功耗很低,與其動(dòng)態(tài)功耗相比可以忽略不計(jì)。嵌入式應(yīng)用在不工作期間通常會(huì)“閑置”CPU 時(shí)鐘以減少動(dòng)態(tài)功耗,從而顯著降低總體功耗。
而在未來的設(shè)計(jì)中必須特別關(guān)注靜態(tài)功耗問題,因?yàn)楦咝阅艿男滦途w管的漏電流將顯著提高 [參考資料 13]。
嵌入式系統(tǒng)常用技術(shù)
常用電源管理技術(shù)可以分為兩類:通過早期硬件設(shè)計(jì)決策實(shí)現(xiàn)或在系統(tǒng)運(yùn)行時(shí)實(shí)現(xiàn)。
設(shè)計(jì)早期的決策對(duì)滿足性能及功耗至關(guān)重要,下面列出了設(shè)計(jì)中需要考慮的十大要素,其中包括硬件選擇、設(shè)計(jì)策略及架構(gòu)選擇。大多數(shù)要素都是嵌入式系統(tǒng)的基本要求,其它要素則需要單獨(dú)考量。盡管下列決策是在設(shè)計(jì)早期制定的,但有些仍需在整個(gè)設(shè)計(jì)周期中進(jìn)行再驗(yàn)證。如下所列:
- 選擇低功耗組件
- 分割電壓與時(shí)鐘域;
- 支持電壓及時(shí)鐘縮放功能;
- 啟用保持電壓門控功能;
- 利用軟件中斷減少輪詢;
- 采用分級(jí)存儲(chǔ)器模型;
- 降低輸出負(fù)載;
- 引導(dǎo)時(shí)關(guān)閉非關(guān)鍵無動(dòng)力資源;
- 盡量減少活動(dòng) PLL 數(shù)量;
- 使用時(shí)鐘分割器快速變換頻率。
有關(guān)上述列表的詳細(xì)信息如表 1 所示。
表 1. 通過早期硬件設(shè)計(jì)決策降低功耗
確定系統(tǒng)架構(gòu)以后,設(shè)計(jì)團(tuán)隊(duì)需要將注意力轉(zhuǎn)向系統(tǒng)運(yùn)行時(shí)環(huán)境。雖然以下列出的僅 14項(xiàng),但在設(shè)計(jì)過程中要始終關(guān)注其中大部分內(nèi)容。
- 不需要時(shí)則關(guān)閉門時(shí)鐘
- 引導(dǎo)過程中主動(dòng)關(guān)閉不必要的功耗
- 僅在需要時(shí)用門向子系統(tǒng)供電
- 激活外設(shè)低功耗模式
- 充分利用外設(shè)活動(dòng)檢測(cè)器
- 使用自動(dòng)刷新模式
- 通過基準(zhǔn)應(yīng)用確定最小必需頻率及電壓
- 根據(jù)總體活動(dòng)情況調(diào)整 CPU 頻率及電壓
- 動(dòng)態(tài)調(diào)度 CPU 頻率及電壓以匹配預(yù)測(cè)工作負(fù)載
- 優(yōu)化代碼的執(zhí)行速度
- 使用低功耗代碼序列及數(shù)據(jù)模型
- 使用代碼覆蓋技術(shù)減少對(duì)高速內(nèi)存的需求
- 更換電源時(shí)進(jìn)入簡(jiǎn)化性能模式
- 平衡精確度與功耗的關(guān)系
老練的設(shè)計(jì)團(tuán)隊(duì)必須至少要從概念上熟悉上述嵌入式系統(tǒng)應(yīng)用設(shè)計(jì)要素(其中一項(xiàng)與 DSP電路有關(guān)),有關(guān)上述列表的詳細(xì)信息如表 2 所示。
表 2. 通過常用運(yùn)行時(shí)技術(shù)降低功耗
實(shí)現(xiàn)表 1 及表 2 所述做法及策略并不容易。任何降低功耗的設(shè)計(jì)都有可能對(duì)性能產(chǎn)生負(fù)面影響或?qū)е孪到y(tǒng)不穩(wěn)定。下表列出了使用基本電源管理技術(shù)所面臨的主要難題。
表 3. 實(shí)際嵌入式系統(tǒng)設(shè)計(jì)面臨的主要難題
DSP RTOS 如何解決難題
大多數(shù)老練的嵌入式系統(tǒng)設(shè)計(jì)師都知道,表 2 中列出的許多技術(shù)問題都可以在操作系統(tǒng)中解決,而不必讓每個(gè)新的設(shè)計(jì)項(xiàng)目都“從零開始”。
上述最有價(jià)值并且得到普遍認(rèn)可的技術(shù)中的一個(gè)子集已包括在 RTOS 中,相關(guān)技術(shù)包括:閑置、關(guān)閉活動(dòng)電源、器件驅(qū)動(dòng)器通知、內(nèi)存管理、V/F 縮放。由于設(shè)計(jì)目標(biāo)不盡相同,將這些技術(shù)構(gòu)建到 RTOS 中需要很多技巧。設(shè)計(jì)師必須可以選擇混合或匹配子集。關(guān)鍵的設(shè)計(jì)目標(biāo)就是高效性、靈活性以及操作系統(tǒng)的松耦合。
TI 的 DSP/BIOS? 操作系統(tǒng)的電源管理器 (PWRM) 非常適于用作現(xiàn)有 RTOS 的電源管理模塊 [參考資料 4]。盡管以下描述的實(shí)施是就特定 DSP/BIOS 而言的,但其概念可簡(jiǎn)單地運(yùn)用其他操作系統(tǒng),甚至用于無操作系統(tǒng)的應(yīng)用環(huán)境。
電源管理器的要求
電源管理器實(shí)施的關(guān)鍵要求如下:
- 管理決策必須由應(yīng)用觸發(fā),而不是操作系統(tǒng)觸發(fā);
- 電源管理活動(dòng)應(yīng)當(dāng)針對(duì)大部分應(yīng)用代碼透明;
- 電源管理器必須支持電壓與頻率 (V/F) 縮放,并充分利用芯片空閑與睡眠模式;
- 電源管理器必須在應(yīng)用代碼、驅(qū)動(dòng)器以及操作系統(tǒng)本身范圍內(nèi)協(xié)調(diào)電源事件處理,并在發(fā)生特定事件時(shí)向客戶端發(fā)出通知;
- 電源管理特性必須在任何線程環(huán)境中可用,并且還必須對(duì)特定客戶端的多個(gè)實(shí)例可用(如一個(gè)器件驅(qū)動(dòng)器的多個(gè)實(shí)例);
- 在向客戶端發(fā)出電源事件通知時(shí),電源管理器必須支持事件處理的延遲完成,并在等待延遲客戶端的完成信號(hào)的同時(shí)通知其他客戶端;
- 對(duì)具有不同功能的不同平臺(tái),電源管理器必須是可擴(kuò)展的和便攜性的。
為滿足上述的關(guān)鍵要求,可將電源管理器作為 DSP/BIOS 的附屬模塊被添加,如圖 1 所示。
圖 1. 電源管理器分區(qū)
電源管理器位于內(nèi)核之外,其不是系統(tǒng)中的一項(xiàng)任務(wù),而是一系列可在應(yīng)用控制線程以及器件驅(qū)動(dòng)器環(huán)境中執(zhí)行任務(wù)的 API。
這意味著無需修改內(nèi)核。但在 CPU 時(shí)鐘與操作系統(tǒng)定時(shí)器時(shí)鐘相耦合的平臺(tái)上,DSP/BIOS 時(shí)鐘模塊 (CLK) 需要補(bǔ)充例行程序,這對(duì)頻率縮放非常重要,因?yàn)檫@些例行程序能夠作為 PWRM 的客戶端程序適應(yīng)操作系統(tǒng)時(shí)鐘。
電源管理器寫入并讀取時(shí)鐘空閑配置寄存器,并通過控制 CPU 時(shí)鐘速率及穩(wěn)壓電路的平臺(tái)特定型功率擴(kuò)展庫 (PSL) [參考資料. 5]直接與 DSP 硬件相連接。PSL 將電源管理器及應(yīng)用的其他部分與頻率和電壓控制硬件的低級(jí)實(shí)施細(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)用:
- 空閑時(shí)鐘域 —— 電源管理器提供的接口可使特定時(shí)鐘域處于空閑狀態(tài),從而降低有效功耗。此外,其還可以在 OS 空閑環(huán)路 (idle loop) 的適當(dāng)點(diǎn)提供能自動(dòng)使 DSP CPU 和高速緩存處于空閑狀態(tài)的機(jī)制。
- 降低引導(dǎo)時(shí)間的功耗——電源管理器包含一個(gè)鉤子機(jī)制 (hook mechanism),這使開發(fā)人員能夠設(shè)定省電功能,以便在引導(dǎo)時(shí)間實(shí)現(xiàn)自動(dòng)調(diào)用。
- 電壓及頻率 (V/F) 縮放——電源管理器提供的接口可使應(yīng)用動(dò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ù)載而定,有可能會(huì)較長(zhǎng);如果處理器在降壓轉(zhuǎn)換期間工作正常,則允許繼續(xù)執(zhí)行應(yīng)用;此外,電源管理器還包含用于查詢 V/F 設(shè)定點(diǎn)屬性及時(shí)延的 API。
- 睡眠模式——電源管理器包含的配置接口及運(yùn)行時(shí)接口使開發(fā)人員可喚醒自定義睡眠模式,以便在非工作狀態(tài)期間節(jié)省電能。
- 電源事件的注冊(cè)及通知——為了調(diào)整整個(gè)應(yīng)用中的 V/F 縮放比例、睡眠模式以及其他事件,電源管理擁有一套注冊(cè)及通知機(jī)制 (registration and notification mechanism),以使諸如應(yīng)用代碼、外設(shè)驅(qū)動(dòng)器、封裝內(nèi)容以及 OS 時(shí)鐘模塊等實(shí)體能夠進(jìn)行注冊(cè),用于通知會(huì)影響這些實(shí)體的特定事件,例如“即將更改 V/F 設(shè)定點(diǎn)”、“完成更改V/F 設(shè)定點(diǎn)”、“進(jìn)入睡眠模式”、“從睡眠模式中喚醒”以及出現(xiàn)“電源故障”等。通知進(jìn)程 (notification process) 是電源管理器的重要特性。當(dāng)無需通知時(shí)可使用“未登記”功能。
評(píng)論