現代的高頻元件通常會在靜態功率上耗去半數的能量。漏失其實與頻率並無關係,而是由電壓高低決定;另外一半則是耗在動態功率上,這部分則是由系統負載決定,也就是頻率。
由於頻率和電壓高低通常密不可分,頻率越高則所需的驅動電壓也越高,因此一般通常以動態電壓與頻率比例(Dynamic Voltage and Frequency Scaling, DVFS)代表此一觀念。亦即當系統負載低時,頻率就會降低,因而電壓也可以降低。但是這種手法只能達到某種程度的功率節約效果,並使負載變動時的反應時間變慢、同時也需要更複雜的系統/線路板解決方案,才能經常性地調節功率和頻率。
單晶片系統和特別是多重核心元件,都擁有可完全開啟或關閉部分元件運作能力的優點,因此可藉以因應系統負載的變化。由於此一動作是在元件內部完成,因此不須要借助複雜的外部線路。然而,開關元件內的某些區塊往往十分耗時,因此以往這種手法並不受青睞,但現在情況不同。
在新一代的高階多重核心元件當中,半導體業者引進狀態保留功率閘控(State-Retention Power Gating, SRPG)。當電源關閉時,不再將區塊狀態儲存在外部記憶體,而是改以各別的反轉開關(Flip-flop)儲存自身狀態。這樣一來,不論是整組核心、還是核心的一部分、或是其他功能區塊,都可藉此隨意經常開關。因此造就全新而且經濟的運作觀念,也就是核心只有在需要時才運作,因此也只有需要的執行單元會啟動。
本文將概述現代高階功率管理功能,以及其與製程技術及元件設計的關係。文中也會說明如何透過SRPG及元件負載層級認知之類的單晶片系統技術自動開關核心,以便改良新一代的多重核心元件。
高頻核心導致更高耗電
當半導體元件功能變得日益強大,並可能成為大部分電源功率的主要消耗來源之際,功率管理自然成為最重要的議題。以往的頻率躍進競賽,造成今日的功率耗用及頻率較10年前都高漲不少。再加上多重核心及整合性的進步,功率管理已是刻不容緩。這在手機上尤其明顯,因為系統必須在高功率的運作模式及低功率的待機模式之間切換。
不僅如此,在機房的伺服器群裡,每單位面積或瓦數的效能也變得日益重要,因冷卻或因應功率損耗所投注的成本和空間,現在已比各別裝置的最高效能更令人關注。如今多重核心雖然已實現,但要將一項應用分配給兩組效能中等的元件,比起只由單一高效能元件運作,仍有一定的難度。基本物理學通常會認為,假設應用可正確地分配給兩組核心/元件,在兩顆效能中等的元件上,每瓦或每區的整合效能就會比單獨一顆高階元件來得好。
本文將介紹現代半導體元件中的功率損耗基本觀念,以及可在設計元件時納入,以便降低功率損耗的被動式節電功能。這種功能值得探討,但通常不須牽涉軟體。接著會介紹主動式節電功能,這就需要軟體配合硬體方能運作。最後會舉例探討業者元件所擁有的功率模式,以及運用的功能。
功率損耗帶來散熱大難題
動態功率損耗的理論公式為:P=CV2f。P是以瓦數為單位的功率損耗;C是切換元件的電容值;V是電壓;而f則是切換頻率。正如公式顯示,功率損耗會隨頻率呈線性成長、對電壓則是以平方正比成長。但是使用特定製程的某元件,其最高頻率通常要由電壓決定,也就是要看訊號有多難推動,增加電壓當然可以提高頻率,但這樣一來,功率損耗反而會暴增得更厲害,這也是何以近來的時脈頻率成長呈現停滯的緣故之一。
功率損耗所帶來最直接的副作用就是發熱。雖然功率損耗有自身的成本,但熱效應還是最主要的問題,因為要冷卻,就得增加散熱器、風扇與空調等額外成本。此外,排熱量上升也會影響公式中的電容值,連帶又使功率損耗進一步上升。這種相依關係並不穩定,因此若不對熱流加以疏導,或是設法減速以減少功率損耗,很有可能就造成功率/熱量暴增的副作用。
|
圖1 功率損耗隨溫度變化一例 |
工程師須了解元件功率損耗如何隨溫度變化,攝氏25度與攝氏105度的接點溫度Tj間的高低差異,甚至可能引起功率損耗再度上升(圖1)。同時也須了解線路板的電源供應器及熱流設計,必要時是否足以應付遞增的溫度效應。此外,還須知道低溫時的損耗顯然會比元件上所標註的最大功率損耗要少得多,從使用案例可證明,較低的溫度絕對有益。舉例來說,許多環境標準都允許在周遭溫度偏高,或是風扇故障導致排氣散熱速度趨緩時,得犧牲部分效能,例如降低頻率或減少活動核心數目等。一旦元件功率損耗降低,系統自然就會回歸熱流/功率穩定狀態,以適應減低的冷卻效率。
|
圖2 多重核心元件在不同部位的靜態與動態功率損耗 |
靜態與動態功率之間的準確比例(圖2),則要視幾種設計元件時的抉擇而定,像是製程技術、選用的電晶體和布局等。然而,即使是位在晶圓上的各別元件之間或是晶圓之間,也會有微妙的天然製程差異。一顆功率損耗較高的易漏電晶體,可能就會允許較高的頻率上限值,因此自然就會區分出高速高功率和低速低功率的不同。
不過元件之間仍會有差異,因此在為系統分類時,就必須確定系統是否夠穩固、足以應付最高功率的元件。同時還必須理解,晶片製造商標示在外的功率數值,通常指的是功率損耗最高的元件,一般元件損耗則較低,典型與最大值之間的差異,有時可能高達兩倍或更多。
線路板與系統設計師通常會注重兩件事,一為最大功率,設計電源供應時會考量瞬間(次時脈循環長度乘以比例)的最大層級;二為最大散熱,設計熱流時則應考量一段較長時間內的平均損耗(以秒或以分計)。決定元件功率損耗的理論參數包括電壓和頻率,同時還要注意電源供應設計所能容許的最大變動值,以及熱流設計所需的短期平均值。
但是較高階的元件通常都擁有自動節能的功能,因此可回頭專注於可在元件使用率下降時節省功率的方式。舉例來說,核心功率損耗通常會與使用率成正比,並具備靜態偏差值,而DDR記憶體在零使用率時通常不會消耗功率,低使用率下通常可以動態關閉區塊,並降低電壓以便進一步減少靜態功率。
在觀察功率數字時,一定要考慮以下參數:接點溫度、用來提升核心效益的快取使用量元件使用程度、電壓平均值或是以平均值再加上最大變動值、核心和子系統的頻率、輸入/輸出(I/O)組態等,以及元件的歸類等級,即屬於一般還是最高功率。
被動式節電毋須牽涉軟體
在設計半導體元件時,降低功率損耗是很重要的一部分。而這些用來降低損耗的技術,毋須牽涉到系統活動和軟體認知,就算有也很有限。本節說明時脈閘控、休眠區塊及電壓id等技術。
時脈閘控用以降低元件動態功耗
由於區塊的動態功率損耗由頻率決定,因此只須降低頻率,或是在毋須使用時完全關閉,就可有效地降低損耗。時脈閘控就是最常使用的一種技術,啟動區塊的訊號會與一個本地端時脈訊號呼應,當區塊關閉時,時脈也會呈停滯,因此不會有動態功率產生。時脈閘控也可縮小晶圓面積,進而減少功率損耗,而停滯的時脈也可消除對於啟用訊號在區塊內傳遞的需要。
時脈閘控最常都用在大型區塊,例如核心、DDR控制器、介面、加密單元等,但也可運用在區塊內部。舉例來說,核心通常都以高於系統其他部分的頻率運行,對於動態功率也更為敏感,因此位在核心內的元件可施以閘控,例如浮點單元、向量處理引擎,或是各別執行區塊。次階元件的時脈則可視管線(Pipeline)指令決定開關。
休眠區塊為低電壓狀態
電壓水平對於靜態及動態功率損耗來說都至關緊要,降低電壓水平並不會允許在既定頻率下的正確執行。然而就像時脈閘控可在區塊內短期節約功率,電壓水平應該也可臨時變更。這個觀念引據的事實是,保留狀態所需的電壓其實比變更狀態所需的電壓來得低。進入低電壓模式的區塊就被稱為處於休眠狀態。但是休眠功能的實作比時脈閘控要複雜得多,此外還須及早指出狀態變更,才能及時恢復電壓水平,以免影響效能。
|
圖3 提高接地以便降低與Vdd的電壓差,亦可降低靜態動態功率損耗。 |
休眠區塊最典型的做法就是不予降低Vdd,而是提升接地水平(圖3),然而效果一樣,也就是減少電壓差,並減少漏失。
電壓識別可提升半導體產量
電壓識別(VID)會監控半導體元件製造時的過程變化現象(圖4)。若一個電晶體易漏,代表這是一個較快的元件,也就是比較容易驅動,同樣地這個元件的功率損耗也就會較高,通常只須施加較低的電壓,就可降低速度和功率損耗。這種方式通常用來將元件密集集中,讓系統更一致化,但可以提升產量。
|
圖4 圖例顯示元件密度如何分布的外觀,以及VID如何讓位在功率規格以外的元件進入有效分布區,進而將密度集中,讓功率和頻率更為一致。 |
具備VID的元件通常都會在製造測試階段時拿到識別符,這個記號會以熔接或其他永久方式做在元件上。但是要讓VID發生作用,需要電源供應能夠辨識小額變動電壓,識別符會在啟動時讀取,電壓便依此調節。
主動式節電需軟體協助
要進一步改進節能功效,必須先對欲達成的效能/吞吐量進行分析後才能達成。通常必須藉助軟體來界定效能需求,例如作業系統就會觀察待機狀態,並試圖降低效能,還可以透過硬體感應系統在硬體區塊上的負載,尤其是當硬體使用佇列機制時。在複雜的系統裡,來自空調、風扇及其他散熱裝置的功率損耗,可能比各別元件更需要最佳化,因此熱感應變得尤其重要,因功率損耗會在高溫時呈現惡性增長。
DVS以調整電壓方式控制功耗
使用率較低的元件可降低運算吞吐量,而一般最容易達成的方式就是降低核心的時脈頻率,以便節省動態功率。要降低頻率也不難,只要加上各自輸出頻率不同的幾組鎖相迴路(PLL),但共用相同的系統時脈即可;若使用單一PLL,再以時脈分流器將頻率切為兩半、四分之一或更小,也有相同的效果。多重核心元件通常都整合好幾組PLL給所有核心,每個核心也都擁有自己的分流器,因此每個核心都可根據自己的負載,在各自獨立的頻率範圍內運行,此項技術被稱為動態頻率比例(DFS),圖5可見該技術的運作方式。
|
圖5 在使用多組PLL和分流器的多重核心元件中實作頻率選擇的範例。 |
一旦頻率降低,就不須再費力驅動元件,因此電壓也得以降低。這會同時影響到動態和靜態功率損耗,而且效益遠超過只使用DFS。事實上只靠動態電壓比例(DVS)無法達到效果,因此這裡所指的其實是DVFS。
雖然使用電壓比例效果較好,但是方法也比較複雜。就像VID需要電源供應能以些微差距調節,DVS也是如此。使用DVS必須以動態的方式在運作時同時進行,而且有一定的難度。在多重核心元件裡,每個核心通常會擁有不同的電壓需求,以便有效運用能源,同時也可讓核心在不同的負載下運作,但是當核心數目增加,電源線路也勢必增加,因此這種方式顯得既昂貴又不符實際,不論是直接成本還是線路面積都是如此。再者,變更電壓的過程相當緩慢,而從低負載狀態轉換到全速狀態時,可能還會引起過程遲滯,因此導致過程需時不均、甚至造成資料漏失。
SRPG迅速切換低功率或運作狀態電壓
最富效率的節能方式,莫過於完全關閉不需要的部分電源,而且由於核心數量增加而獲得改善的功率/效能,使得在多重核心元件上省下所有動態及靜態功率的想法得以實現。但是因為要花上相當可觀的時間和力氣才能讓執行狀態恢復,因此這種方法並不實際。
對核心而言,這過程已接近部分啟動程序,須啟動核心登錄器、堆疊組態、記憶體管理單元(MMU),還要將核心加入作業系統排程等。且只關閉部分元件電源也很難有效達成,因為啟動與關閉部位間的電壓差很容易就會引起不穩定、漏電,甚至破壞零件。在區塊間施加隔離又會影響區塊自身的效能。此外,還須採用不同的電源線路,這不但會增加晶圓面積,也會導致外部元件數量上升。
晶片商因應此項挑戰的解決方案,就是在高階元件中納入SRPG功能,其觀念就是從較大的非狀態保留線路各別驅動區塊狀態保留閘。SRPG可極為迅速地在低功率及活動狀態之間切換(圖6),基本上就是完全回到Vdd,並恢復穩定狀態,且通常只需不到1微秒(μs)。
|
圖6 將狀態保留開關電源與邏輯電路分離,可以降低邏輯電路功率,並迅速從待機轉換為活動模式。 |
SRPG的觀念與完全關閉電源相仿,會儲存完整的動態功率及幾乎全部的靜態功率,該技術的高速允許在關閉的區塊上採用不同的執行方式,直至該區塊須被喚醒執行作業時,才會恢復運作,然後再還原到低功率狀態。此一觀念常運用在超低功率的微控制器(MCU)方案當中,但是這種方式須視應用範例調整軟體,方可使用。
熱感應功能已成高效元件標準
元件效能、功率損耗及接點溫度之間的密切關聯,襯托出感應這些性質的重要,而且必須要在系統功率狀態趨於不穩定時,能夠正確做出回應。很多位置都可監控感應溫度,但是最重要而且也最精確的,就是直接測量晶圓本身的溫度。內建的溫度感應器長久以來已成為高效能元件的標準,但是通常都是以類比方式輸出,因此需要額外的類比數位轉換器(ADC)將溫度資訊數位化及反饋,所使用的標準介面通常是I2C。
由於半導體元件的功率損耗會隨溫度上升而增加,因此當接點溫度Tj偏高時,通常須借助高速外部冷卻以維持功率效益。但是理想溫度是元件及系統、位置等函數,因此理想點(Sweet Spot)並不固定。一旦溫度感應器的精確性獲得改善、反饋速度變快、晶圓的溫度資料也更完整時,就有辦法以內部負載平衡及外部溫度控制(風扇、交流電等)構成緊密的控制體系,進一步節省功率。半導體業者因此推出內建在元件裡的溫度單元,溫度單元會統合幾組位在晶圓不同位置,但都極為準確的溫度感應器,再配合內建的ADC,具備統計和監控/中斷的能力。
負載感應
與溫度感應同樣重要的,就是要判斷系統負載,傳統上都是透過核心負載檢查執行。但是核心負載只能讓工程師了解瞬間負載和爆發量,對於待命的系統則無法準確觀察。現代的多重核心元件也具備高度自主、獨立於核心以外的加速器,因此系統負載並不一定僅由核心負載構成。
新的資料路徑加速架構(DPAA)技術,其觀念在於將傳統的低階元件驅動程式向下整合到硬體當中,以便減輕緩衝及佇列管理的負荷。透過硬體對於佇列的了解,有助於感應新增的硬體負載,進而有助於控制功率。
有業者將此一觀念稱為遞延式功率管理,此項技術讓核心接收訊息,根據佇列內容決定要休眠抑或甦醒。低階模式時的爆量也會被偵測,並根據組態決定正確的回應方式,決定要維持在低功率模式或只以活動中的核心處理,還是要將其他核心一併喚醒。
電源管理是一門日漸重要的主題,而多重核心元件則為功率與效能間的平衡開啟新的途徑。本文開始時所述的基本功率消耗的關係,也為新觀念及技術所引用。要將電源消耗隨時控制在低點,同時也視系統負載降低功率,這時被動式及主動式功率節約技術扮演重要的角色。
(本文作者任職於飛思卡爾)