采用軟硬件技術可以提高電源效率,而使用內置電源管理 API 的 DSP RTOS 更容易實現(xiàn)上述目的。
作者:Scott Gary,德州儀器 (TI)
無線及有線系統(tǒng)設計師均必須重視電源效率問題,盡管雙方的出發(fā)點不盡相同。
對于移動設備而言,更長的電池使用壽命、更長的通話時間或更長的工作時間都是明顯的優(yōu)勢。降低電源要求意味著使用體積更小的電池或選擇不同的電池技術,這在一定程度上也緩解了電池發(fā)熱問題。
對于有線系統(tǒng)而言,設計師可通過減小電源體積、減少冷卻需求以及降低風扇噪聲來提高電池效率。人們很少會提到這樣一個事實:提高電源效率還可節(jié)省空間,用以增加能夠提高系統(tǒng)性能的組件,尤其是設計小組希望添加一個以上處理器時,這一點非常重要。
設計嵌入式 DSP 處理器或系統(tǒng)功耗要求嚴格的系統(tǒng)時,采用 DSP 專用技術、操作系統(tǒng)及其支持軟件可以降低功耗。超越傳統(tǒng)技術的 DSP 或雙處理器設計在節(jié)約能量方面表現(xiàn)出色。
本文將討論傳統(tǒng)及專門針對 DSP 的功耗優(yōu)化技術,首先對使用到的術語和原理進行定義與說明。
功耗基礎知識
互補金屬氧化物半導體 (CMOS) 電路的總功耗是動態(tài)功耗與靜態(tài)功耗之和 [參考資料 3]:
當門發(fā)生邏輯狀態(tài)轉換并產生內部結點充電所需的開關電流以及P 通道及N 通道同時暫態(tài)開啟引起直通電流時,就會出現(xiàn)動態(tài)功耗。通過以下公式可以估算其近似值:
其中,Cpd 為動態(tài)電容,F(xiàn) 為開關頻率,Vcc 為電源電壓,而 Nsw 為轉換的比特數(shù)。
另外,電壓 (Vcc) 決定著穩(wěn)定工作狀態(tài)下的最大開關頻率 (F)。
上述關系中包含兩個重要概念:
- 動態(tài)功耗與開關頻率呈線性關系,與電源電壓呈二次關系。
- 最大安全開關頻率取決于電源電壓。
為便于本文討論,將特定的頻率及電壓對稱為“設定點”。
很顯然,降低 CPU 時鐘速率將相應成比例地降低動態(tài)功耗,由于動態(tài)功耗與電源電壓成二次關系,在不影響系統(tǒng)性能的前提下,通過降低電壓就可能額外大大降低功耗。
不過,對于特定任務集,降低 CPU 時鐘速率也會成比例地延長執(zhí)行該任務集的時間,因此必須仔細分析應用以確保滿足其實時需求。
靜態(tài)功耗主要是由于晶體管漏電流造成的。一般說來,CMOS 電路的靜態(tài)功耗很低,與其動態(tài)功耗相比可以忽略不計。嵌入式應用在不工作期間通常會“閑置”CPU 時鐘以減少動態(tài)功耗,從而顯著降低總體功耗。
而在未來的設計中必須特別關注靜態(tài)功耗問題,因為更高性能的新型晶體管的漏電流將顯著提高 [參考資料 13]。
嵌入式系統(tǒng)常用技術
常用電源管理技術可以分為兩類:通過早期硬件設計決策實現(xiàn)或在系統(tǒng)運行時實現(xiàn)。
設計早期的決策對滿足性能及功耗至關重要,下面列出了設計中需要考慮的十大要素,其中包括硬件選擇、設計策略及架構選擇。大多數(shù)要素都是嵌入式系統(tǒng)的基本要求,其它要素則需要單獨考量。盡管下列決策是在設計早期制定的,但有些仍需在整個設計周期中進行再驗證。如下所列:
- 選擇低功耗組件
- 分割電壓與時鐘域;
- 支持電壓及時鐘縮放功能;
- 啟用保持電壓門控功能;
- 利用軟件中斷減少輪詢;
- 采用分級存儲器模型;
- 降低輸出負載;
- 引導時關閉非關鍵無動力資源;
- 盡量減少活動 PLL 數(shù)量;
- 使用時鐘分割器快速變換頻率。
有關上述列表的詳細信息如表 1 所示。
表 1. 通過早期硬件設計決策降低功耗
確定系統(tǒng)架構以后,設計團隊需要將注意力轉向系統(tǒng)運行時環(huán)境。雖然以下列出的僅 14項,但在設計過程中要始終關注其中大部分內容。
- 不需要時則關閉門時鐘
- 引導過程中主動關閉不必要的功耗
- 僅在需要時用門向子系統(tǒng)供電
- 激活外設低功耗模式
- 充分利用外設活動檢測器
- 使用自動刷新模式
- 通過基準應用確定最小必需頻率及電壓
- 根據(jù)總體活動情況調整 CPU 頻率及電壓
- 動態(tài)調度 CPU 頻率及電壓以匹配預測工作負載
- 優(yōu)化代碼的執(zhí)行速度
- 使用低功耗代碼序列及數(shù)據(jù)模型
- 使用代碼覆蓋技術減少對高速內存的需求
- 更換電源時進入簡化性能模式
- 平衡精確度與功耗的關系
老練的設計團隊必須至少要從概念上熟悉上述嵌入式系統(tǒng)應用設計要素(其中一項與 DSP電路有關),有關上述列表的詳細信息如表 2 所示。
表 2. 通過常用運行時技術降低功耗
實現(xiàn)表 1 及表 2 所述做法及策略并不容易。任何降低功耗的設計都有可能對性能產生負面影響或導致系統(tǒng)不穩(wěn)定。下表列出了使用基本電源管理技術所面臨的主要難題。
表 3. 實際嵌入式系統(tǒng)設計面臨的主要難題
DSP RTOS 如何解決難題
大多數(shù)老練的嵌入式系統(tǒng)設計師都知道,表 2 中列出的許多技術問題都可以在操作系統(tǒng)中解決,而不必讓每個新的設計項目都“從零開始”。
上述最有價值并且得到普遍認可的技術中的一個子集已包括在 RTOS 中,相關技術包括:閑置、關閉活動電源、器件驅動器通知、內存管理、V/F 縮放。由于設計目標不盡相同,將這些技術構建到 RTOS 中需要很多技巧。設計師必須可以選擇混合或匹配子集。關鍵的設計目標就是高效性、靈活性以及操作系統(tǒng)的松耦合。
TI 的 DSP/BIOS™ 操作系統(tǒng)的電源管理器 (PWRM) 非常適于用作現(xiàn)有 RTOS 的電源管理模塊 [參考資料 4]。盡管以下描述的實施是就特定 DSP/BIOS 而言的,但其概念可簡單地運用其他操作系統(tǒng),甚至用于無操作系統(tǒng)的應用環(huán)境。
電源管理器的要求
電源管理器實施的關鍵要求如下:
- 管理決策必須由應用觸發(fā),而不是操作系統(tǒng)觸發(fā);
- 電源管理活動應當針對大部分應用代碼透明;
- 電源管理器必須支持電壓與頻率 (V/F) 縮放,并充分利用芯片空閑與睡眠模式;
- 電源管理器必須在應用代碼、驅動器以及操作系統(tǒng)本身范圍內協(xié)調電源事件處理,并在發(fā)生特定事件時向客戶端發(fā)出通知;
- 電源管理特性必須在任何線程環(huán)境中可用,并且還必須對特定客戶端的多個實例可用(如一個器件驅動器的多個實例);
- 在向客戶端發(fā)出電源事件通知時,電源管理器必須支持事件處理的延遲完成,并在等待延遲客戶端的完成信號的同時通知其他客戶端;
- 對具有不同功能的不同平臺,電源管理器必須是可擴展的和便攜性的。
為滿足上述的關鍵要求,可將電源管理器作為 DSP/BIOS 的附屬模塊被添加,如圖 1 所示。
圖 1. 電源管理器分區(qū) [!--empirenews.page--]
電源管理器位于內核之外,其不是系統(tǒng)中的一項任務,而是一系列可在應用控制線程以及器件驅動器環(huán)境中執(zhí)行任務的 API。
這意味著無需修改內核。但在 CPU 時鐘與操作系統(tǒng)定時器時鐘相耦合的平臺上,DSP/BIOS 時鐘模塊 (CLK) 需要補充例行程序,這對頻率縮放非常重要,因為這些例行程序能夠作為 PWRM 的客戶端程序適應操作系統(tǒng)時鐘。
電源管理器寫入并讀取時鐘空閑配置寄存器,并通過控制 CPU 時鐘速率及穩(wěn)壓電路的平臺特定型功率擴展庫 (PSL) [參考資料. 5]直接與 DSP 硬件相連接。PSL 將電源管理器及應用的其他部分與頻率和電壓控制硬件的低級實施細節(jié)相隔離。
電源管理器擁有若干個與應用相關的任務。由設計工程師對其進行靜態(tài)配置,并在運行時進行動態(tài)調用:
- 空閑時鐘域 —— 電源管理器提供的接口可使特定時鐘域處于空閑狀態(tài),從而降低有效功耗。此外,其還可以在 OS 空閑環(huán)路 (idle loop) 的適當點提供能自動使 DSP CPU 和高速緩存處于空閑狀態(tài)的機制。
- 降低引導時間的功耗——電源管理器包含一個鉤子機制 (hook mechanism),這使開發(fā)人員能夠設定省電功能,以便在引導時間實現(xiàn)自動調用。
- 電壓及頻率 (V/F) 縮放——電源管理器提供的接口可使應用動態(tài)更改 DPS 內核的工作電壓及頻率。因此,應用可利用該特性根據(jù)相關的處理要求相應調整功耗。電源管理器 API 可設定應用中的電壓是否應隨同頻率進行縮放,以及在降壓 (down-voltage transition) 轉換過程中是否可繼續(xù)執(zhí)行任務,轉換時延由負載而定,有可能會較長;如果處理器在降壓轉換期間工作正常,則允許繼續(xù)執(zhí)行應用;此外,電源管理器還包含用于查詢 V/F 設定點屬性及時延的 API。
- 睡眠模式——電源管理器包含的配置接口及運行時接口使開發(fā)人員可喚醒自定義睡眠模式,以便在非工作狀態(tài)期間節(jié)省電能。
- 電源事件的注冊及通知——為了調整整個應用中的 V/F 縮放比例、睡眠模式以及其他事件,電源管理擁有一套注冊及通知機制 (registration and notification mechanism),以使諸如應用代碼、外設驅動器、封裝內容以及 OS 時鐘模塊等實體能夠進行注冊,用于通知會影響這些實體的特定事件,例如“即將更改 V/F 設定點”、“完成更改V/F 設定點”、“進入睡眠模式”、“從睡眠模式中喚醒”以及出現(xiàn)“電源故障”等。通知進程 (notification process) 是電源管理器的重要特性。當無需通知時可使用“未登記”功能。
電源管理器 API
表 4 對運行時應用編程接口進行了匯總。
函 數(shù) |
功 能 |
PWRM_changeSetpoint |
對最新的 V/F 設定點進行初始化更改 |
PWRM_configure |
為 PWRM 設置新的配置參數(shù) |
PWRM_getCapabilities |
在該平臺上獲取有關 PWRM 性能的信息 |
PWRM_getCurrentSetpoint |
獲取當前的有效設定點 |
PWRM_getNumSetpoints |
獲取該平臺上可用設定點的數(shù)量 |
PWRM_getSetpointInfo |
獲取設定點的相應頻率及電壓值 |
PWRM_getTransitionLatency |
獲取兩個設定點之間比例縮放的時延 |
PWRM_idleClocks |
使特定時鐘域立即進入空閑模式 |
PWRM_registerNotify |
注冊可在發(fā)生特定功耗事件時進行調用的函數(shù) |
PWRM_sleepDSP |
將 DSP 轉換至新的睡眠狀態(tài) |
PWRM_releaseDependency |
解除此前聲明的資源依賴性 |
PWRM_setDependency |
聲明對電源的可管理資源具有依賴性 |
PWRM_unregisterNotify |
未注冊來自 PWRM 的事件通知 |
表 4. 電源管理運行時 API 的匯總
戰(zhàn)略實施
由于已經建立了提高電源效率的基礎,下一步工作就應該進行戰(zhàn)略定義,以便開發(fā)低功耗應用,并充分利用 OS 中的部分技術及支持。
所建議的策略包括以下 11 個步驟。該戰(zhàn)略具有可重復性:
當無法滿足電源管理目標,也就是說需要采用額外的運行時方案才能滿足應用電源預算時,就可重復訪問這些步驟。
- 從初始就考慮到電源效率;
- 選擇低功耗組件;
- 對電源進行建模和估測,并進行相應的硬件測試;
- 針對電源管理和測量設計具備鉤子機制的 HW;
- 構建可大幅提高工作效率的 SW;
- 啟用簡單的電源管理“開/關機切換”特性;
- 在無需電源管理的情況下也可率先進入工作;
- 重復開啟“開機”特性,并測量功耗開銷 (payoff);
- 開啟代碼生成優(yōu)化功能、重置代碼及數(shù)據(jù),并調整 “熱點” 監(jiān)測;
- 進行校準,以實現(xiàn)頻率及電壓的最小化;
- 激活所有的電源管理特性,并進行相應部署。
表 5 對上述戰(zhàn)略進行了非常詳盡的匯總說明。我們將在下文討論如何高效應用上述策略。
表 5. 低功耗應用開發(fā)的詳細策略
音頻應用范例
選用現(xiàn)成的 DSP 評估板 5509A EVM PLUS 板作為測試平臺,該評估板不僅支持 V/F 縮放 ,還包含針對 DSP 內核與總體系統(tǒng)電源測量的鉤子機制。
需要注意的是,EVM 作為易于使用的評估平臺,并未在出廠時提供最佳功耗配置。另外,在評估效果時應謹記由于其易于配置,所以 EVM 上測量的總體系統(tǒng)電源數(shù)量就應多于通常情況下部署的平臺。EVM 還能以 DSP 內核級與系統(tǒng)級兩種方法測量各種技術的有效性。
步驟 1 無需解釋。步驟 2 及 4 基本上都由這種特殊 EVM 完成,這充分表明了該平臺的廣泛適用性。步驟 3(試驗)在 EVM 上進行,目的是測量各種技術的效果(如片上與片外存取的內核及系統(tǒng)電源、DMA 與 CPU 傳輸?shù)谋容^、空閑外設及時鐘域的作用等等)。 [!--empirenews.page--]
架構
應用范例如圖 2 所示。如欲獲得該應用的詳細信息(包括獨立的應用手冊及源代碼),請查閱參考資料 15。
圖 2. 音頻應用
音頻信號經過采樣通過多信道緩沖串行端口 (McBSPs) 回放到 DSP。DSP DMA 引擎向McBSP 輸入或讀出采樣信號。立體聲音頻數(shù)據(jù)通過 RxSplit 任務與 Processing Task(正在處理的任務)分離為兩個數(shù)據(jù)流。DIP 開關用于選擇 G726 編碼/解碼處理或簡單音量控制。兩個通道隨后在 TxJoin 任務中組合,然后輸出至揚聲器。
Control(控制)任務被周期性觸發(fā),檢查 DIP 開關以確定是否需要進行模式切換(如改變處理模式或進入睡眠狀態(tài))。根據(jù)應用模式的不同,Control(控制)任務可能會檢查 CPU 負載,如果合適還會更改 V/F 設定點。
與電源相關的關鍵設計決定包括:
- 使用 OS 線程及阻塞原語 (blocking primitive) 空閑時鐘;
- 使用 DMA 提高后臺數(shù)據(jù) (background data) 傳輸效率。在 DMA 塊中完成傳輸(而不是每次數(shù)據(jù)采樣都從串行端口導入或讀出)后即中斷 CPU;
- 使用共享的外部時鐘控制串行端口(無需對串行端口進行重新編程,即可進行 DSP CPU 的頻率縮放);
- 注冊回叫以便為編解碼器驅動程序設定鉤子機制,當應用進入深度睡眠模式時關斷編解碼器;
- 在音頻質量下降前使用校準功能恢復設定點頻率(及電壓);
- 使用電源管理器的時鐘適應功能,使周期函數(shù)在頻率縮放后繼續(xù)以特定速率工作;
- 使用 DSP 再引導間的電源管理器“深度睡眠”接口。
結論
總體效果總結如表 6 所示。前后模式的主要差異用黑體表示。
設置 |
DSP 內核 (mW) |
DSP 節(jié)省 (%) |
電路板 (mW) |
電路板節(jié)省 (%) |
1. CPU 工作頻率為 192MHz、電壓為1.6v |
207.8 |
-- |
2219 |
-- |
2. CPU 工作頻率為192MHz、電壓為 1.6v |
203.3 |
2.17 |
1789 |
|
3. CPU 工作頻率為192MHz、電壓為1.6v |
155.2 |
|
1663 |
25.1 |
4. CPU 工作頻率為144MHz、電壓為 1.4v |
99.5 |
|
1605 |
27.7 |
5. DSP 處于深度睡眠(完全空閑)狀態(tài) |
0.361 |
|
1352 |
|
表 6. 節(jié)電效果
- 模式 #1 為基準測量,全部使用片外代碼。
- 模式 #2 消除所有片上代碼,DSP 級節(jié)電效果較小,但板級節(jié)電達到 19%。
- 模式 #3 包括一些引導時間節(jié)電配置(如關閉 DSP 的 CLKOUT 信號、未用計時器的自動空閑配置以及關閉板上 LED)及在 BIOS 空閑環(huán)路中的閑置,從而可實現(xiàn)25% 的 DSP 內核級節(jié)電。
- 模式 #4 為設定點在 1.4v 下降至 144MHz 時的功耗,在該模式下可進行音頻處理,同時仍能滿足實時最低要求,從而實現(xiàn) 52% 的 DSP 內核級節(jié)電。
- 模式 #5 為應用處于待機模式下的功耗,該模式配置包括外部編解碼器關斷、設定點支持以最小電壓最大頻率快速啟動驅動、DSP 處于門控時鐘深度睡眠模式,該模式下的待機功耗僅為 361µW。
設計人員可根據(jù)特定應用的要求選擇適用的技術,從而更有利于支持 RTOS 集成高回報技術。借助 OS 的這種支持功能,設計人員能夠以低開銷方便安全地提高應用電源效率。
本文討論的電源優(yōu)化策略是一種從嵌入式項目之初即可用于降低與調節(jié)應用功耗的通用模型。當測量功耗無法滿足要求或需要采用額外的運行時技術時,上述策略可重復使用,先期步驟也可重復進行。例如,在音頻應用中采用這種策略,僅需幾種高回報的節(jié)電技術,即可節(jié)省大量電能。