帳號:
密碼:
最新動態
產業快訊
CTIMES / 文章 /
將嵌入式DSP應用耗電最佳化
硬體與軟體技術可以提高電源效率

【作者: Scott Gary】   2007年05月23日 星期三

瀏覽人次:【2179】

無線與有線系統設計人員都應關心電源效率,只不過箇中原由並不相同。對行動裝置而言,更長的電池壽命以及更長的通話或使用時間顯然都是優勢,但降低電力需求還能讓產品使用較小的電池或不同的電池技術,散熱問題也變得更簡單。


對有線系統來說,設計人員可以縮小電源供應體積、降低散熱要求和減少風扇噪音。另一較少為人提及的優點則是在提高電源效率後,系統就能留下更多空間給其它增強效能的零件,這在設計人員使用多顆處理器時特別有用。


無論已含DSP的嵌入式系統,或想在系統功率預算允許下增加DSP的嵌入式系統,都能利用DSP獨有的技術、相關作業系統與支援軟體節省電力。因為如此,DSP或雙處理器設計可以提供傳統技術無法做到的更強大省電功能。


本文將同時介紹傳統技術和DSP特有的技術,但首先要定義文中用到的名詞和原理。


功耗基本知識

CMOS電路的總功耗等於動態(active)與靜態(static)功耗之和。


《公式一》
《公式一》

邏輯閘切換邏輯狀態就會產生動態功耗,它主要來自開關電流(內部元件充電所需)和穿越電流(P和N通道電晶體同時導通所造成)。動態功耗可估計如下:


《公式二》
《公式二》

另一個關係式則指出,電路穩定操作的最大開關頻率(F)是由電壓(Vcc)決定。這些關係式隱含兩個重要概念:


  • (1)動態功耗與開關頻率為線性關係,與供應電壓則為平方關係;


  • (2)最大安全開關頻率是由供應電壓決定。



本文為討論方便,將把一對特定的頻率和電壓稱為「設定點」(setpoint)。


降低處理器時脈頻率,它的動態功耗也會等比例減少,但若在不影響效能的情形下降低電壓,則從前述的平方關係可知它會節省更多電力。但對特定作業而言,降低處理器時脈頻率同樣會等比例延長其執行時間,因此設計人員必須謹慎分析,確保它在時脈頻率降低後仍可達到即時要求。


靜態功耗是電晶體漏電造成,而CMOS電路的靜態功耗過去都遠小於動態功耗。嵌入式應用為避免動態功耗,通常會在閒置時關閉處理器時脈,這能大幅減少總功耗。未來的設計則必須更注意靜態功耗,因為新型電晶體雖然效能更強,漏電流卻也會大幅增加。


嵌入式系統通用技術

常見的功耗管理技術分為兩類,一種屬於硬體設計初期所做的選擇,另一種則是系統運行期間執行的技術。


設計初期所做的決定對達成效能和功耗目標當然很重要。下文就是包括硬體選擇、設計方法和架構選項在內的10大重要決定,其中大多數是嵌入式設計的基本知識,其它則比較複雜。雖然這些都是設計初期要做的決定,仍有些內容須在設計過程重新確認。這10項決定包括:


  • (1)選擇低耗電零件;


  • (2)分割電壓域和時脈域;


  • (3)提供電壓與頻率調整功能;


  • (4)提供保持電壓(retention voltage)閘控功能;


  • (5)利用中斷減少軟體執行輪詢(polling)的次數;


  • (6)採用階層式記憶體模型;


  • (7)減少輸出負載;


  • (8)開機時不要啟動非必要資源的電源;


  • (9)將主動鎖相迴路(active PLL)的數目減至最少;


  • (10)利用時脈除頻器迅速選擇替代頻率。



系統架構確定後,設計團隊應把注意力轉到系統執行期間環境。雖然這部份只有14個重點,其中多數卻必須在設計過程隨時注意:


  • (1)關閉不需要的閘極時脈;


  • (2)開機時主動關閉不必要的耗電裝置;


  • (3)僅在必要時提供電源給次系統;


  • (4)啟動週邊裝置的低耗電模式;


  • (5)利用週邊裝置動作偵測器;


  • (6)利用自動更新模式(auto-refresh mode);


  • (7)測量應用效能,找出最低所需的頻率與電壓;


  • (8)根據整體工作情形調整處理器頻率和電壓;


  • (9)動態安排處理器頻率和電壓,使其配合工作負載預測;


  • (10)將程式碼執行速度最佳化;


  • (11)使用耗電較少的程式碼序列(code sequence)和資料型樣(data pattern);


  • (12)利用程式碼重疊技巧(code overlays)減少所需的高速記憶體;


  • (13)改變電源時進入精簡功能模式;


  • (14)降低精確度,以便減少功耗。



這些項目適用於所有的嵌入式系統,包括內建DSP的產品,而且多數有經驗的設計人員至少在觀念上應很熟悉它們。


這些動作與方法看似簡單,實現卻不容易。任何降低設計功耗的做法都可能影響系統效能和穩定性。而使用基本電源管理技術時也可能遇到一些困難。


DSP即時作業系統有那些幫助

多數有經驗的嵌入式設計人員都知道許多技術皆能由作業系統提供,不需他們針對每個新設計重新再做一遍。


即時作業系統(RTOS)甚至可包含一些最有價值和眾所認可的技術,例如讓電路進入閒置狀態(idling)、避免動態功耗、裝置驅動程式通知、記憶體管理以及電壓/頻率調整。然而這些技術的設計目標差異太大,要把它們全部加入即時作業系統並不容易,必須由開發人員做出適當取捨。就應用耗電最佳化而言,主要設計目標應該是效率、彈性以及與作業系統的鬆散結合(loose coupling)。


要瞭解現有即時作業系統的電源管理模組有那些特性、限制和功能,一個好例子就是TI為DSP/BIOS作業系統提供的電源管理程式(Power Manager;PWRM)。雖然以下介紹的設計主要是針對DSP/BIOS,其觀念卻很容易運用到其它作業系統或不含作業系統的應用環境。


電源管理程式要求

設計電源管理程式時,最主要的七個要求為:


  • (1)電源管理動作須由應用啟動,而不是由作業系統啟動;


  • (2)電源管理動作對多數應用程式碼必須完全透明;


  • (3)電源管理程式必須支援電壓與頻率調整,並能利用晶片的閒置與休眠模式;


  • (4)應用程式必須協調電源管理事件的處理,發生特定事件時必須通知用戶程式;


  • (5)所有的執行緒環境(thread context)以及特定用戶程式的多個實體(instance)都須能使用這些電源管理功能,例如裝置驅動程式的多個實體;


  • (6)將電源事件通知用戶程式後,電源管理程式須能容忍對方延遲完成事件處理,並在等待對方傳回完成訊號的同時,繼續通知其它用戶程式;


  • (7)電源管理程式須能擴充,並可移植到各種不同功能的平台。



為達到前述的要求,如(圖一)所示把Power Manager當成附屬模組加入DSP/BIOS。



《圖一 Power Manager的功能分割》
《圖一 Power Manager的功能分割》

Power Manager位於DSP/BIOS核心之外。它不是作業系統執行的一個工作,而是在應用控制緒(control thread)和裝置驅動程式環境裡執行的一組應用程式界面(API)。


這表示核心不需要任何修改。但是在處理器時脈與作業系統計時器時脈耦合在一起的其它平台上,設計人員就必須為DSP/BIOS時脈模組(CLK)提供輔助常式。這對頻率調整很重要,因為這些常式可將作業系統時脈當成Power Manager的用戶程式進行調整。


Power Manager界面透過特定平台專用的電源調整程式庫(Power Scaling Library)直接控制DSP硬體,並且讀寫時脈閒置組態暫存器(clock idle configuration register),該程式庫可以控制處理器時脈速率和穩壓電路。透過電源調整程式庫,Power Manager和其它應用軟體就不需要知道頻率及電壓控制硬體的實作細節。


Power Manager是由設計工程師靜態配置其組態,並由應用軟體在執行期間動態呼叫。它有幾項功能與應用有關:


將時脈域設為閒置狀態

Power Manager提供界面將特定時脈域設為閒置狀態,以便減少動態功耗。它還提供一套機制,可在作業系統閒置迴圈(idle loop)的適當位置讓DSP內部的處理器和快取記憶體自動進入閒置狀態。


開機省電功能

Power Manager包含一套程式連結機制,讓開發人員指定一個在開機時自動呼叫的省電函式。


電壓與頻率調整

Power Manager提供界面讓應用動態調整DSP核心的操作電壓和頻率,應用軟體可以根據實際處理需求,利用這項功能調整功耗。Power Manager應用程式界面讓應用指定是否同時調整電壓和頻率,以及調降電壓過程中是否繼續執行程式(調整所需時間與負載有關,而且可能很長;若處理器在調降電壓過程中仍很穩定,就可以讓應用繼續執行)。Power Manager還有應用程式界面可以查詢電壓/頻率設定點以及調整所需時間。


休眠模式

Power Manager提供與休眠有關的組態與執行期間界面,開發人員可利用它們啟動客製休眠模式,減少無動作期間(inactivity)的功耗。


電源事件的註冊與通知

為了協調應用執行期間的電壓/頻率調整動作、休眠模式和其它事件,Power Manager提供一套註冊和通知機制,讓應用程式碼、週邊驅動程式、封裝內容(packaged content)以及作業系統時脈模組等軟體元件,把會影響它們的事件向Power Manager註冊,以便在發生這些事件時通知它們。這些電源事件包括:即將調整電壓/頻率設定點、電壓/頻率設定點調整完成、進入休眠模式、離開休眠模式和電源故障。通知程序是Power Manager的一項重要功能。當軟體元件不需要通知時,也可向Power Manager取消註冊。


實際設計

電源效率分析的準備工作至此算大功告成,接著就是擬定一套方法,利用作業系統提供的技術和支援發展省電應用。本文建議的方法共有11個步驟,設計人員只要發現尚未達成功耗目標,或者需要額外的執行期間技術來滿足應用功耗預算,就應該重新執行這些步驟。


  • (1)一開始就要考慮電源效率的問題;


  • (2)選擇低耗電元件;


  • (3)建立功耗模型和估計功耗值,然後進行硬體實驗;


  • (4)設計硬體並提供軟體連結點(hooks),以便管理和測量功耗;


  • (5)採用高效率的軟體架構;


  • (6)為電源管理功能提供易於使用的開關;


  • (7)在不啟動電源管理功能的情形下,先讓系統正常運作;


  • (8)輪流開啟電源管理功能,並測量其省電效果;


  • (9)啟動程式碼產生最佳化,重新安排程式和資料,並調校其中影響最大的部份;


  • (10)針對最低頻率和電壓進行校準;


  • (11)啟動和使用所有電源管理功能。



在前述11個步驟裡,步驟(1)的意思很清楚,不需再做解釋。步驟(2)和(4)基本上就是利用這套評估模組來完成,它們證明一套廣泛供應的平台確實有其價值。步驟(3)(實驗)是在評估模組上執行,它會測量不同技術的省電能力,例如存取晶片內部和外部電路時的核心與系統功耗、DMA與CPU的傳輸比較、以及讓特定週邊裝置和時脈域進入閒置狀態的省電效果等。


與功耗有關的重要設計決定包括:


  • (1)使用作業系統的執行緒(threading)和阻斷(blocking)等程式元素(primitives),讓時脈能夠進入閒置狀態;


  • (2)利用DMA執行高效率的背景資料串流。DMA只有在完成整塊資料傳輸時才會中斷處理器作業,而不是序列埠每輸入/輸出一筆樣本資料就中斷一次;


  • (3)利用外部共享時脈做為序列埠的主時脈,這樣就不必為了調整DSP內部處理器的頻率而重新設定序列埠;


  • (4)註冊一個回呼函式(callback)來連結編碼解碼器裝置驅動程式,讓應用程式進入休眠模式時能關閉編碼解碼器;


  • (5)使用校準功能,以便在音訊品質下降前退回前一個頻率(和電壓)設定點;


  • (6)使用電源管理程式的時脈適應功能,確保定期執行函式(periodic function)在頻率調整後仍能以規定的速率執行;


  • (7)從關閉DSP到重新啟動的這段時間,應使用電源管理程式的深度休眠(deep sleep)界面讓DSP進入深度休眠模式。



結語

要將省電能力強大的技術整合到即時作業系統,最好方法就是讓開發人員選擇最符合應用需求的技術。只要作業系統具備這些省電支援功能,開發人員就能輕鬆、安全和以最小負擔的方式提高應用電源效率。


本文介紹一種適合所有應用的功耗最佳化策略,它會在嵌入式應用的初期發展階段調整設計和減少耗電量。這套方法會視情況反覆執行某些步驟,例如當它發現耗電超出要求或需要增加其它執行期間技術時,就會重新執行最前面的幾項動作。本文以採用這套方法的音訊應用為例,證明只要利用幾種高效益省電技術,即可大幅降低應用的耗電量。


---作者任職於TI德州儀器---


相關文章
以爆管和接觸器驅動器提高HEV/EV電池斷開系統安全性
低 IQ技術無需犧牲系統性能即可延長電池續航力
以霍爾效應電流感測器創新簡化高電壓感測
以固態繼電器簡化高電壓應用中的絕緣監控設計
以半導體技術協助打造更安全更智慧的車輛
comments powered by Disqus
相關討論
  相關新聞
» 調研:2027年超過七成筆電將是AI PC 並具備生成式AI功能
» 新唐科技MA35D0 微處理器系列適用於工業邊緣設備
» SIG:2028年藍牙裝置年度總出貨量將達到75億台
» 羅姆旗下SiCrystal與意法半導體擴大SiC晶圓供貨協議
» 美光針對用戶端和資料中心等市場 推出232層QLC NAND


刊登廣告 新聞信箱 讀者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 遠播資訊股份有限公司版權所有 Powered by O3  v3.20.2048.18.216.83.240
地址:台北數位產業園區(digiBlock Taipei) 103台北市大同區承德路三段287-2號A棟204室
電話 (02)2585-5526 #0 轉接至總機 /  E-Mail: webmaster@ctimes.com.tw