摘要
現(xiàn)代高頻器件所消耗的電量大約有一半是靜態(tài)電量-漏電與頻率無關(guān),但與電壓水平相關(guān),另一半則是動(dòng)態(tài)電量-基于系統(tǒng)負(fù)載,從而與頻率相關(guān)。由于頻率與電壓水平密切相關(guān),因此需要較高的電壓水平來驅(qū)動(dòng)頻率;一般的概念是利用 DVFS-動(dòng)態(tài)電壓和頻率調(diào)節(jié)。也就是說,當(dāng)系統(tǒng)負(fù)載較低時(shí),頻率被降低,從而可降低電壓。然而,這種方法只能節(jié)省一定的電量,對(duì)負(fù)載變化的反應(yīng)速度較慢,因此也需要更復(fù)雜的系統(tǒng)/板卡解決方案,以不斷適應(yīng)功率和頻率。
片上系統(tǒng)尤其是多核器件的優(yōu)勢(shì)在于能夠完全打開和關(guān)閉器件的組成部件,以匹配系統(tǒng)負(fù)載。由于在器件內(nèi)部便可完成上述操作,因此不需要如此復(fù)雜的外部電路。然而,在器件內(nèi)打開和關(guān)閉部件過去是一個(gè)緩慢的過程,因此不可行,現(xiàn)在這種情況正在發(fā)生改變。
通過新一代高端多核器件,飛思卡爾推出了 SRPG(狀態(tài)保持電源門控)概念。這種技術(shù)在掉電時(shí)不把模塊狀態(tài)存儲(chǔ)到外部存儲(chǔ)器,而是允許每個(gè)觸發(fā)器保存自己的狀態(tài)。因此,整個(gè)內(nèi)核、內(nèi)核子集或其他功能塊可即時(shí)打開和關(guān)閉。 這推出了一個(gè)新的非常有效的執(zhí)行概念,內(nèi)核只在需要時(shí)才運(yùn)行,然后只在可能需要時(shí)執(zhí)行單元。
本文簡(jiǎn)要介紹了現(xiàn)代高端電源管理,以及這種技術(shù)如何與工藝技術(shù)和設(shè)備設(shè)計(jì)相關(guān)。然后展示了如何通過利用 SRPG 進(jìn)一步改進(jìn)新一代多核器件,以及設(shè)備負(fù)載水平感知等其他 SoC 技術(shù)自動(dòng)打開和關(guān)閉內(nèi)核。
引言
隨著半導(dǎo)體器件變得更加強(qiáng)大,因此可能消耗大量的電力,電源管理已經(jīng)成為一個(gè)越來越重要的主題。與十年前相比,頻率的競(jìng)賽已經(jīng)導(dǎo)致事實(shí)上的電源上限和通用的高頻。此外,多核和集成度的提高產(chǎn)生了功能非常強(qiáng)大的器件,使功耗管理變得至關(guān)重要。在手機(jī)等手持設(shè)備領(lǐng)域也如此,此類設(shè)備應(yīng)在高性能激活狀態(tài)和低功耗的待機(jī)狀態(tài)之間進(jìn)行切換。但在服務(wù)器中心也如此,在服務(wù)器中心每個(gè)區(qū)域和/或瓦的性能的重要性日益增加。散熱和功耗以及空間等成本比單個(gè)器件的最大性能更加重要。多核如今已成為現(xiàn)實(shí),在兩個(gè)中等性能的器件之間分割應(yīng)用與在高性能器件之間分割的難易程度相當(dāng)?;疚锢硗ǔ閮蓚€(gè)中等性能的器件比高端器件提供更高的每瓦和每面積匯聚性能,假定應(yīng)用可正確地在內(nèi)核/器件之間進(jìn)行分割。
在這里,我們將展示現(xiàn)代半導(dǎo)體器件的功耗的基本屬性,然后介紹了可包含在設(shè)備設(shè)計(jì)中用于降低功耗的被動(dòng)節(jié)電功能,這些都很容易理解,但通常不要求軟件具體使用它們。然后,我們將討論需要軟件與硬件合作以充分利用的主動(dòng)節(jié)電功能。最后將介紹飛思卡爾 QorIQ 器件提供的功耗模式以及它們所利用的功能。
電源基礎(chǔ)知識(shí)
動(dòng)態(tài)功耗的主要公式為: P = C V2 f
其中 P 代表功耗,單位為瓦,C 代表所切換的設(shè)備的電容,V 代表電壓,f 代表切換頻率。如公式所示,功耗隨著頻率呈線性增長,但與電壓呈平方增長。然而,采用特定工藝技術(shù)的器件的最大頻率取決于電壓有多高,信號(hào)被驅(qū)動(dòng)的程度。增加電壓可允許更高的頻率,但同時(shí)也會(huì)大大增加功耗。這也是停止大多數(shù)增加頻率的做法的根本原因之一。
功耗的直接影響是明顯發(fā)熱。雖然功耗本身是有成本的,但主要問題是熱效應(yīng),因?yàn)楦鶕?jù)使用情況需要散熱片、風(fēng)扇、空調(diào)等冷卻設(shè)備。而熱度增加也影響額定電容,增加功耗。這種相關(guān)性是不穩(wěn)定的,可能導(dǎo)致功率快速增加/熱增加,除非熱被轉(zhuǎn)移,或功耗降低(通過抑制性能)。重要的是需要了解器件功耗隨溫度變化有何差異,低結(jié)溫 Tj 25C 和高結(jié)溫 105C 之間的差異可能導(dǎo)致功耗顯著增加,如圖 1 所示。重要的是,如果需要的話板卡電源和熱設(shè)計(jì)可以應(yīng)對(duì)溫度升高,但同樣重要的是需要了解低溫下的功耗將大大低于器件設(shè)為最大功率時(shí)的功耗。因此,在確保低溫的情況下使用器件可降低功耗。例如,許多環(huán)保標(biāo)準(zhǔn)允許縮減功能,即如果環(huán)境溫度高于正常狀況或風(fēng)扇破裂,風(fēng)速降低,則降低頻率或減少活動(dòng)內(nèi)核的數(shù)量。借助新的縮減式冷卻方式來降低器件的功耗可使系統(tǒng)回到熱/功率穩(wěn)定狀態(tài)。
(圖字)功率
圖1:功耗如何隨溫度變化而改變。
現(xiàn)代高頻器件所消耗的電量大約有一半是靜態(tài)功率- 漏電與頻率無關(guān),但與電壓水平有關(guān),而另一半則是動(dòng)態(tài)功率 – 基于系統(tǒng)負(fù)荷,因此與頻率及電壓有關(guān)。靜態(tài)和動(dòng)態(tài)功率之間的合適比率取決于器件的設(shè)計(jì)選擇數(shù)量,如工藝技術(shù)、晶體管的選擇和布局。但在包含芯片的各個(gè)器件之間和芯片之間也存在自然的工藝差異。漏電較多的晶體管功耗一般也更高,以允許更高的最大頻率。因此,把器件設(shè)置為高速、高功率,或低速、低功率比較常見。然而,器件之間依然存在差異,當(dāng)設(shè)計(jì)系統(tǒng)特性時(shí),確保它足夠強(qiáng)大以處理最大功率器件非常重要。同樣重要的是需要了解芯片供應(yīng)商提供的功率數(shù)通常指那些功率最大的器件,而一個(gè)典型器件擁有較低的功耗。典型功率器件和最大功率器件之間的功耗可能相差兩倍或更多。
(圖字)內(nèi)核靜態(tài);內(nèi)核動(dòng)態(tài);系統(tǒng)動(dòng)態(tài);系統(tǒng)靜態(tài)
圖2:多核器件不同子部件的靜態(tài)功耗和動(dòng)態(tài)功耗差異。
板卡和系統(tǒng)設(shè)計(jì)人員通常關(guān)注兩種情況:功率最大時(shí)- 電源設(shè)計(jì)應(yīng)考慮瞬時(shí)(子時(shí)鐘周期時(shí)標(biāo))最高水平。熱最大值時(shí) - 熱設(shè)計(jì)應(yīng)考慮較長時(shí)間間隔(從數(shù)秒到數(shù)分鐘)內(nèi)的平均功耗。決定器件功耗的基本參數(shù)是電壓和頻率,其中重要的是觀察最大抖動(dòng),電源設(shè)計(jì)可能有最大抖動(dòng),熱設(shè)計(jì)可能有短期平均值。但高端器件通常具有自動(dòng)節(jié)電功能,我們將在后面討論這個(gè)功能,這樣由于器件利用率降低而達(dá)到節(jié)電的目的。例如,內(nèi)核功耗往往與利用率成正比,帶靜態(tài)補(bǔ)償,而且DDR內(nèi)存在利用率為零時(shí),幾乎不消耗功率。低利用率還可以在動(dòng)態(tài)電平和較低的電壓電平時(shí)關(guān)閉各個(gè)模塊,以降低靜態(tài)功耗。
看功率數(shù)時(shí),需要考慮以下參數(shù):結(jié)溫、器件利用率水平(包括高速緩存的使用率)以了解內(nèi)核效率、電壓 - 平均值或平均值加最大抖動(dòng)、內(nèi)核和子系統(tǒng)頻率、I/O配置以及群體器件的使用功率- 典型功率還是最大功率。
被動(dòng)節(jié)電
降低功耗是設(shè)計(jì)半導(dǎo)體裝置的一個(gè)重要組成部分??墒褂迷S多先進(jìn)技術(shù)來降低功耗,而無需任何或僅需非常有限的活動(dòng)系統(tǒng)和軟件感知。在本節(jié),我們將討論時(shí)鐘門控、打盹模塊和電壓 ID。
時(shí)鐘門控
由于一個(gè)模塊的動(dòng)態(tài)功耗取決于頻率,因此我們通過降低頻率或在不使用時(shí)將其完全關(guān)閉就可以大大減少動(dòng)態(tài)功耗。時(shí)鐘門控技術(shù)是一種常用技術(shù),在這個(gè)技術(shù)中,一個(gè)模塊的啟用信號(hào)關(guān)聯(lián)到本地時(shí)鐘信號(hào)。當(dāng)模塊被禁用時(shí),時(shí)鐘也將被停止,從而消除了動(dòng)態(tài)功率。時(shí)鐘門控技術(shù)也可用于減少芯片尺寸,從而降低功耗,因?yàn)闀r(shí)鐘停止則無需在模塊內(nèi)啟用信號(hào)傳播。
時(shí)鐘門控技術(shù)多用于較大的模塊,如內(nèi)核、DDR 控制器、接口、加密單元等,但它也可在模塊內(nèi)使用。例如,通常內(nèi)核運(yùn)行的頻率比系統(tǒng)內(nèi)其他部件的頻率高,因而對(duì)動(dòng)態(tài)功耗更敏感。因此,可以對(duì)內(nèi)核中的組件,如浮點(diǎn)單元、矢量處理引擎或單個(gè)執(zhí)行塊實(shí)行門控。子組件時(shí)鐘的啟用和禁用取決于管道中的指令。
飛思卡爾已將廣泛的時(shí)鐘門控應(yīng)用于幾代器件,而且將繼續(xù)將其作為產(chǎn)品設(shè)計(jì)工藝的一個(gè)重要組成部分。
打盹模塊
電壓水平對(duì)于靜態(tài)和動(dòng)態(tài)功耗都至關(guān)重要,,但降低電壓就不能以給定的頻率正確執(zhí)行。然而,正如時(shí)鐘門控技術(shù)可短期節(jié)省模塊的功率一樣,電壓水平也可以臨時(shí)改變。這一理念利用了狀態(tài)保持需要的電壓比狀態(tài)變化需要的電壓更少這一事實(shí)。把模塊置于這種低電壓模式被稱為 “打盹”狀態(tài)。然而,實(shí)施打盹功能比時(shí)鐘門控技術(shù)更復(fù)雜,它還需要盡早指示狀態(tài)變化,這樣電壓水平可以即時(shí)調(diào)回,而不影響性能。
打盹狀態(tài)的典型實(shí)施方法不是為了降低 Vdd,而是為了提高接地電平。最終的效果是相同的,降低電壓差和減少漏電。飛思卡爾在 45nm P50x0 器件的高速緩存中推出打盹功能,而且 28nm e6500 內(nèi)核支持打盹功能。
?。▓D字)正常;打盹
圖3:提高接地以降低相對(duì)于 Vdd 的電壓差,從而降低靜態(tài)和動(dòng)態(tài)功耗。
電壓 ID
電壓識(shí)別 - VID,監(jiān)控半導(dǎo)體器件制造的工藝變化。假定漏晶體管能提供快速器件 - 即更易驅(qū)動(dòng),以及高功耗器件,那么通??梢酝ㄟ^采用較低的電壓來降低速度和功耗。這可以使器件群更緊密地聯(lián)系在一起,從而產(chǎn)生更統(tǒng)一的系統(tǒng),同時(shí)實(shí)現(xiàn)更大的產(chǎn)出。
帶VID的器件在生產(chǎn)測(cè)試階段會(huì)獲得標(biāo)識(shí),這個(gè)標(biāo)識(shí)會(huì)通過熔斷或其它永久機(jī)械手段印在器件上。然而,需要電源能夠慢慢調(diào)節(jié)電壓才能讓 VID 起作用。在啟動(dòng)過程中會(huì)讀取 ID,并相應(yīng)地調(diào)整電壓。
?。▓D字)功率;頻率;頻率過低;功率過高
圖4:通過這個(gè)示例可以看到器件群如何傳播以及 VID 如何能允許電源規(guī)格之外的器件移入,或者看到推動(dòng)群聚集以便使功率和頻率更統(tǒng)一。
主動(dòng)節(jié)電
感知所需的性能/吞吐量可以進(jìn)一步節(jié)電。這通常通過讓軟件指定性能需求(如操作系統(tǒng)觀察空閑狀態(tài),盡可能降低性能)來實(shí)現(xiàn)。正如下文所述,它也可以通過硬件感應(yīng)硬件塊上的系統(tǒng)負(fù)荷,特別是使用硬件排隊(duì)機(jī)制來實(shí)現(xiàn)。在復(fù)雜系統(tǒng)中,對(duì)于優(yōu)化功耗來說,來自空調(diào)、風(fēng)扇和其它熱設(shè)備的功耗比單個(gè)器件更重要。由于功耗隨著溫度升高而大大增加,因此熱感應(yīng)是一個(gè)重要方面。
動(dòng)態(tài)電壓和頻率調(diào)節(jié)
器件利用率低可以減少其計(jì)算吞吐量,一般來說,最簡(jiǎn)單方法是通過降低內(nèi)核的時(shí)鐘頻率來實(shí)現(xiàn),從而節(jié)省動(dòng)態(tài)功耗。降低頻率通常容易實(shí)現(xiàn):使用來自同一個(gè)系統(tǒng)定時(shí)器但帶有不同頻率輸出的多個(gè) PLL。也可以使用一個(gè) PLL 并擁有時(shí)鐘分頻器將頻率減半,或減少四分之一等來實(shí)現(xiàn)同樣目的。多核器件經(jīng)常把幾個(gè) PLL 融合在一起,用于這些內(nèi)核,而且每個(gè)內(nèi)核有數(shù)個(gè)分頻器。這樣可允許每個(gè)內(nèi)核根據(jù)其負(fù)載 以獨(dú)立的頻率范圍運(yùn)行。這種技術(shù)稱為動(dòng)態(tài)頻率調(diào)節(jié)(Dynamic Frequency Scaling) - DFS,常用于飛思卡爾的 QorIQ 產(chǎn)品中,請(qǐng)參見圖 5 的實(shí)施示例。
?。▓D字)系統(tǒng)時(shí)鐘;時(shí)鐘選擇(每 CPU);e500 內(nèi)核;I-緩存;D-緩存;128KB L2 緩存
圖5:使用 PLL 和分頻器組合的多核器件的頻率選擇實(shí)施示例。
如果降低頻率,則不再需要努力驅(qū)動(dòng)器件,也同樣可以減少電壓。這將影響動(dòng)態(tài)和靜態(tài)功耗,并且其增益比單獨(dú)的 DFS 更大。動(dòng)態(tài)電壓調(diào)節(jié) – DVS 本身是不可能實(shí)現(xiàn)的,因此,它通常被稱為 DVFS。雖然電壓調(diào)節(jié)的好處更多,但也更為復(fù)雜。正如 VID 要求電源能夠慢慢改變電壓水平, DVS 也是如此。有了 DVS,操作時(shí)也需要實(shí)現(xiàn)動(dòng)態(tài)化,并面臨一些挑戰(zhàn)。多核器件的每個(gè)內(nèi)核通常有不同的電壓需求,以實(shí)現(xiàn)節(jié)能,同時(shí)內(nèi)核可能處于不同的負(fù)載下,而且隨著內(nèi)核數(shù)量的增加,需要的電源平面數(shù)量相當(dāng)大,這對(duì)于直接成本和板卡面積來說是不切實(shí)際的,而且非常昂貴。其次,改變電壓水平的過程相對(duì)較慢,從低負(fù)載情況調(diào)整到突發(fā)情況會(huì)增加過程延遲,會(huì)導(dǎo)致不均衡的過程時(shí)間,甚至導(dǎo)致數(shù)據(jù)丟失。在實(shí)時(shí)系統(tǒng)中,這往往是不可取的。飛思卡爾的 QorIQ 器件不支持 DVS,但推出了不同的技術(shù)–SRPG,更好地發(fā)揮了現(xiàn)代器件有多個(gè)內(nèi)核的優(yōu)勢(shì),接下來我們將討論這個(gè)方面。
狀態(tài)保持功率門控
最高能效的節(jié)電是完全關(guān)閉所有不需要的部件,節(jié)省所有動(dòng)態(tài)和靜態(tài)功耗,采用多核器件已使其成為了現(xiàn)實(shí),因?yàn)樵黾拥膬?nèi)核數(shù)量改進(jìn)了功率/性能粒度。然而,這還不是非常切合實(shí)際,因?yàn)樗枰罅康臅r(shí)間和精力來恢復(fù)執(zhí)行狀態(tài)。對(duì)于內(nèi)核而言,這是一個(gè)部分啟動(dòng)程序,需要重新初始化內(nèi)核寄存器、堆棧和堆配置、MMU 等,此外,還要將內(nèi)核添加到操作系統(tǒng)調(diào)度程序。關(guān)閉部分器件也難以有效地實(shí)施,因?yàn)閱⒂煤徒貌糠种g的電壓差很容易導(dǎo)致不穩(wěn)定、漏電、甚至損壞組件。模塊之間的隔離也會(huì)影響塊本身的性能。此外,還需要有不同的電源平面,這會(huì)增加芯片尺寸或外部組件的數(shù)量。
飛思卡爾應(yīng)對(duì)這一挑戰(zhàn)的解決方案是在高端 QorIQ 器件中推出了 SRPG –狀態(tài)保持功率門控(SRPG)。其思路是將模塊狀態(tài)保持門控與非狀態(tài)保持邏輯分開供電,非狀態(tài)保持邏輯通常是較大的集。SRPG允許在低功耗和活動(dòng)狀態(tài)之間非??焖俚剡M(jìn)行轉(zhuǎn)換,本質(zhì)上說是VDD回調(diào),并且必須重新達(dá)到一個(gè)穩(wěn)定水平 - 這通??赡苁且粋€(gè)亞微秒事件。與完全關(guān)閉的概念類似,SRPG理念節(jié)省了全部動(dòng)態(tài)功耗和幾乎所有靜態(tài)功耗。該技術(shù)的高速功能允許不同的執(zhí)行方式,其中模塊始終處于關(guān)閉狀態(tài),直到被主動(dòng)請(qǐng)求要執(zhí)行一些任務(wù),隨后它們被喚醒,執(zhí)行任務(wù),然后又返回到低功耗狀態(tài)。這一概念經(jīng)常用于超低功耗 MCU 解決方案中。然而,根據(jù)應(yīng)用使用情況可能需要修改軟件。
?。▓D字)邏輯;flip flop:觸發(fā)器
圖6:將狀態(tài)保持觸發(fā)器和邏輯分開供電,可使邏輯掉電,并在空閑和激活模式之間快速切換。
熱傳感
器件的性能、功耗和結(jié)溫之間有緊密的聯(lián)系,這樣能夠感應(yīng)到它們并能夠在系統(tǒng)開始出現(xiàn)不穩(wěn)定的功率狀態(tài)時(shí)做出反應(yīng),就變得很重要。在許多位置都可以感應(yīng)到溫度,但最重要、最準(zhǔn)確的溫度感應(yīng)直接在芯片本身上。集成式溫度傳感器長期以來一直是高性能器件的標(biāo)準(zhǔn),但后來一般只采用一個(gè)模擬輸出,這需要一個(gè)外部 ADC 將溫度進(jìn)行數(shù)字化處理并進(jìn)行反饋,通常通過一些標(biāo)準(zhǔn)的接口,如 I2C,來執(zhí)行。
由于半導(dǎo)體器件的功耗隨著溫度的增加而增加,因此當(dāng) Tj 較高時(shí),以更高的速率運(yùn)行外部冷卻設(shè)備是典型的節(jié)電做法。然而,最佳溫度取決于器件和系統(tǒng)的功能、位置等綜合因素,并且最有效點(diǎn)(sweet spot)會(huì)變化。因此,更精確的溫度傳感器、快速反饋和更寬的芯片溫度設(shè)置可節(jié)省電力,因?yàn)樗梢蕴峁└鼑?yán)格的控制回路,以平衡內(nèi)部負(fù)載、控制外部溫度,如風(fēng)扇和 AC。因此,飛思卡爾在努力為 QorIQ 器件開發(fā)一個(gè)完整的集成式溫度單元。該溫度單元將包含多個(gè)高精度溫度傳感器(針對(duì)芯片的不同部件)以及集??成的 ADC、統(tǒng)計(jì)和看門狗/中斷功能。
負(fù)載傳感
與溫度傳感同樣重要的是要了解系統(tǒng)負(fù)載,過去通過內(nèi)核負(fù)載檢查實(shí)現(xiàn)。然而,內(nèi)核負(fù)載只告訴我們瞬時(shí)工作和突發(fā)情況,而空閑系統(tǒng)可能提供一個(gè)錯(cuò)誤的視圖。現(xiàn)代多核器件還擁有與內(nèi)核分隔開的高度自主的加速器。因此,系統(tǒng)負(fù)載不一定與內(nèi)核負(fù)載相同。
飛思卡爾的DPAA(數(shù)據(jù)路徑加速架構(gòu))技術(shù)表達(dá)了這樣一個(gè)概念:傳統(tǒng)的低端器件驅(qū)動(dòng)器被推到硬件中以降低緩沖器和隊(duì)列管理等負(fù)載。硬件了解隊(duì)列情況,這可以提供一個(gè)新的硬件負(fù)載傳感功能,從而有助于電源管理。飛思卡爾將這一概念稱之為級(jí)聯(lián)電源管理(Cascaded power management)。該技術(shù)可根據(jù)隊(duì)列情況通知內(nèi)核進(jìn)入睡眠模式或被喚醒。還可以檢測(cè)處于低功耗模式時(shí)的突發(fā)狀況時(shí),并可根據(jù)配置采取適當(dāng)?shù)男袆?dòng);可以是保持低功耗模式并用活動(dòng)內(nèi)核來進(jìn)行處理,或喚醒其他內(nèi)核。
結(jié)論
電源管理變得越來越重要,多核器件為平衡功耗和性能提供了許多新方法。本文開頭部分描述了影響功耗的一些基本要素,然后介紹了解決這些問題的新概念和技術(shù)。被動(dòng)和主動(dòng)節(jié)電技術(shù)發(fā)揮了重要作用,這些技術(shù)使功耗始終保持在最低限度,還可以根據(jù)系統(tǒng)負(fù)載情況最大限度地降低功耗。
Freescale和Freescale標(biāo)識(shí)是飛思卡爾半導(dǎo)體公司在美國專利商標(biāo)局注冊(cè)的商標(biāo)。CoreNet 和 QorIQ是飛思卡爾半導(dǎo)體公司的商標(biāo)。所有其他產(chǎn)品和服務(wù)名稱是其各自所有者的財(cái)產(chǎn)。Power Architecture和Power .org文字標(biāo)識(shí)及Power和Power.org標(biāo)識(shí)及相關(guān)標(biāo)識(shí)是Power.org的許可商標(biāo)和服務(wù)標(biāo)識(shí)。
評(píng)論