復(fù)雜SoC設(shè)計(jì)中的功率管理 (下)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
功率優(yōu)化技術(shù)
圖5中,根據(jù)靜態(tài)與動(dòng)態(tài)功率以及這些技術(shù)所應(yīng)用的設(shè)計(jì)抽象層次,對(duì)各項(xiàng)功率優(yōu)化技術(shù)進(jìn)行了分類。使用這些方法中的哪項(xiàng)或哪幾項(xiàng)要取決于設(shè)計(jì)目標(biāo)。將這些方法結(jié)合到設(shè)計(jì)流程中,就形成了一種集成式的功率管理設(shè)計(jì)策略。
模塊門控時(shí)鐘
模塊門控時(shí)鐘可用于體系結(jié)構(gòu)層次,對(duì)不在使用狀態(tài)下的某些設(shè)計(jì)部分禁用時(shí)鐘。Power Compiler能夠替換手動(dòng)插入的門控時(shí)鐘邏輯電路,運(yùn)用庫(kù)的ICG(集成門控時(shí)鐘)單元控制時(shí)鐘進(jìn)入任何模塊。一旦用戶在腳本中創(chuàng)建出時(shí)鐘,此工具就能自動(dòng)確定這樣的組合邏輯。
模塊門控時(shí)鐘可以應(yīng)用于一系列的層次上,包括芯片級(jí)、域級(jí)(DSP、CPU等)、模塊和子模塊。當(dāng)整個(gè)芯片處于空閑模式,但必須對(duì)外
部的喚醒事件做出響應(yīng)時(shí),可通過應(yīng)用程序來對(duì)芯片時(shí)鐘進(jìn)行門控。在最低層次上也同樣適用,當(dāng)不需要訪問存儲(chǔ)器時(shí),在SDRAM首先設(shè)定為自刷新模式后,SDRAM控制器中的時(shí)鐘可以關(guān)閉。除將時(shí)鐘關(guān)閉和打開以外,門控結(jié)構(gòu)還可以包括可配置的時(shí)鐘信號(hào)分頻器,用于改變不同設(shè)計(jì)部分的時(shí)鐘速率。
設(shè)計(jì)這樣的時(shí)鐘結(jié)構(gòu)要對(duì)芯片功能及功率分析有充分的了解??偟膩碚f,時(shí)鐘開關(guān)功耗占據(jù)了芯片總功耗的30%以上,因此門控時(shí)鐘通常能夠獲得良好效果。
門控時(shí)鐘遇到的挑戰(zhàn)
除了確定在哪里和怎樣進(jìn)行門控時(shí)鐘和(或)時(shí)鐘分頻以外,高層次的門控時(shí)鐘還涉及一系列的時(shí)序和可測(cè)性設(shè)計(jì)方面的問題。對(duì)時(shí)序問題可通過觀察時(shí)鐘結(jié)構(gòu)中一段較長(zhǎng)的路徑來進(jìn)行了解,這段路徑可以包含一個(gè)數(shù)字式鎖相環(huán)、一個(gè)時(shí)鐘分頻器、多個(gè)模式開關(guān)多路轉(zhuǎn)換器和多級(jí)門控時(shí)鐘。
在用諸如Astro CTS(時(shí)鐘樹綜合)等工具對(duì)典型芯片進(jìn)行高質(zhì)量的時(shí)鐘樹綜合后,復(fù)雜的門控時(shí)鐘和分頻器會(huì)要求手動(dòng)干預(yù),在大多數(shù)情況下是要求修改工具范圍以外的設(shè)計(jì)部分,例如,為了防止出現(xiàn)嚴(yán)重的時(shí)鐘相位延遲,因而需要進(jìn)入干預(yù)。
寄存器和高層次時(shí)鐘體系內(nèi)的非CTS單元放置得過遠(yuǎn),會(huì)造成高層次擴(kuò)展時(shí)鐘樹插入延遲的增加,并因此導(dǎo)致時(shí)鐘相位延遲的增加。非CTS單元的基于網(wǎng)絡(luò)權(quán)重的布局控制能夠避免這一問題。該方法可以提取連接門控時(shí)鐘單元、開關(guān)多路轉(zhuǎn)換器和受驅(qū)動(dòng)的CTS宏的節(jié)點(diǎn),從而在布局優(yōu)化中,將較重的網(wǎng)絡(luò)權(quán)重應(yīng)用在這些節(jié)點(diǎn)上,并將這些單元的距離拉近。這項(xiàng)優(yōu)化技術(shù)能夠使單元的負(fù)載最小化,并因此使單元延遲和輸出回轉(zhuǎn)(slew)最小。
對(duì)時(shí)鐘分配效果不佳的布局也會(huì)導(dǎo)致相位延遲問題。這是由于時(shí)鐘樹綜合是根據(jù)時(shí)鐘樹里最長(zhǎng)分支的延遲特性來平衡整個(gè)時(shí)鐘樹,因此,布局不當(dāng)會(huì)造成單獨(dú)一根很長(zhǎng)的時(shí)鐘通路,使得整個(gè)時(shí)鐘樹的插入延遲增加。適當(dāng)?shù)牟季窒拗瓶梢愿玫仄胶鈺r(shí)鐘樹,防止這一問題的發(fā)生。
其它導(dǎo)致時(shí)鐘相位延遲的原因包括非CTS單元的布局不當(dāng),以及非CTS單元輸出回轉(zhuǎn)過大。Synopsys公司針對(duì)這些問題給出了解決方案,并提出了其它三種時(shí)鐘分布問題的處理方法:減少時(shí)鐘扭曲、減少時(shí)鐘占空比失真和提高門控時(shí)鐘效率。
由于受到上市時(shí)間的限制,手動(dòng)時(shí)鐘樹分析和平衡方法不適用于復(fù)雜的ASIC設(shè)計(jì)。Synopsys公司提供了一項(xiàng)時(shí)鐘平衡自動(dòng)化策略,這項(xiàng)自動(dòng)化策略包括三個(gè)步驟:提取一個(gè)通用的共享時(shí)鐘分布拓?fù)?、針?duì)每個(gè)不適合通用時(shí)鐘分布的時(shí)鐘路徑定義局部平衡策略,以及將這些局部平衡限制條件與通用時(shí)鐘分布的限制條件相結(jié)合。其結(jié)果是生成用于CTS工具的時(shí)鐘樹綜合限制條件,對(duì)整個(gè)時(shí)鐘分布進(jìn)行自動(dòng)平衡。
另一項(xiàng)時(shí)序問題是,在異步重新啟動(dòng)時(shí)鐘時(shí)會(huì)出現(xiàn)時(shí)鐘毛刺,因此,有必要在設(shè)計(jì)中包含對(duì)重新啟動(dòng)進(jìn)行定時(shí)的電路,以避免出 現(xiàn)毛刺現(xiàn)象。
多電壓島
在門控時(shí)鐘對(duì)動(dòng)態(tài)功率進(jìn)行限制時(shí),使用多種供電電壓和(或)多種閾值電壓有助于管理動(dòng)態(tài)功率和泄漏功率。閾值電壓不必與供電電壓一起按比例縮放。
電壓島或電壓域的使用提供了一種同時(shí)滿足功耗和性能要求的方法。在本方案中,邏輯電路部分根據(jù)功能分為獨(dú)立的區(qū)域組,必須工作在最高速度下的區(qū)域采用最高的供電電壓,對(duì)時(shí)序要求不太嚴(yán)格的區(qū)域采用較低的供電電壓。
頻率有必要跟電壓一起按比例縮放,這樣,電壓島方法就能與門控時(shí)鐘進(jìn)行良好的配合。門控時(shí)鐘模塊中的邏輯電路持續(xù)消耗泄漏功率,但是通過降低此模塊的供電電壓就能減小泄漏功率。
多供電電壓必須通過單獨(dú)的供電引腳或集成到器件內(nèi)的模擬電壓調(diào)節(jié)器來提供。這些電壓調(diào)節(jié)器的效率必須包含在器件的功率計(jì)算中。如果僅有小部分的設(shè)計(jì)工作在較低的電壓下,則在電壓調(diào)節(jié)器中耗費(fèi)的功率可能會(huì)大于低壓邏輯電路中節(jié)省的功率。另外,電壓島的設(shè)計(jì)可能需要采用電平轉(zhuǎn)換單元,以確保在電壓域之間信號(hào)傳輸?shù)恼_轉(zhuǎn)換。
除了降低供電電壓外,還可以根據(jù)系統(tǒng)要求改變某一電壓島的供電電壓。相對(duì)于其它挑戰(zhàn)而言,這種方法要求采用已經(jīng)在所有電壓下經(jīng)過特性化的單元。Synopsys的可縮放多項(xiàng)式模型(Scalable Pdynomial Model, SPM)支持必要的時(shí)序和功率信息,非線性查找表格模型(Non-Linear look-up table Model, NLM)也可用于電壓島的設(shè)計(jì)。SOC還可以設(shè)計(jì)電源關(guān)斷的特定電壓島,以消除它們的泄漏功率。這些電壓島要求采用電源隔離單元,可以是簡(jiǎn)單的"與"門。從電源關(guān)斷部分進(jìn)入有源域的輸出絕對(duì)不允許出現(xiàn)漂移,電源隔離邏輯確保有源域的所有輸入信號(hào)均箝位在穩(wěn)定的數(shù)值上。另外,還可能需要采用狀態(tài)保持技術(shù),從而保證模塊能在通電時(shí)恢復(fù)運(yùn)行。對(duì)各個(gè)電壓島進(jìn)行電源關(guān)斷或?qū)﹄妷哼M(jìn)行動(dòng)態(tài)按比例縮放時(shí),也可能需要電源排序電路,以確保芯片的正確運(yùn)行。
多閾值設(shè)計(jì)
多供電電壓島與多閾值綜合之間可以良好配合,通過在關(guān)鍵的時(shí)序路徑上采用低Vth單元和在非關(guān)鍵的時(shí)序路徑上采用高Vth單元這樣的優(yōu)化手段能夠滿足時(shí)序目標(biāo)。如果芯片供貨商提供了與狀態(tài)相關(guān)的泄漏模型,則利用它們可以獲得更好的泄漏結(jié)果。
根據(jù)設(shè)計(jì)團(tuán)隊(duì)所采用的方法或選擇,可以將one-pass或two-pass的綜合流程應(yīng)用于多閾值設(shè)計(jì)。初次綜合可采用低Vth、高性能庫(kù)來執(zhí)行,隨后采用多Vth庫(kù)來進(jìn)行增量編譯,以降低泄漏電流。對(duì)于時(shí)序和泄漏均十分重要的設(shè)計(jì),可同時(shí)采用多Vth庫(kù)來執(zhí)行one-pass綜合。這種設(shè)計(jì)首先對(duì)時(shí)序進(jìn)行了優(yōu)化,然后在不影響已實(shí)現(xiàn)的時(shí)序效果(即worst negative slack,WNS)的條件下,再對(duì)泄漏功率進(jìn)行優(yōu)化。功率優(yōu)化后,再進(jìn)行面積優(yōu)化。不論是采用one-pass流程,還是two-pass流程對(duì)泄漏功率進(jìn)行優(yōu)化,在綜合環(huán)境(使用Power Compiler搭配Design Compiler或Physical Compiler)中都推薦采用多Vth庫(kù)。
流程的實(shí)現(xiàn)要依靠合理的泄漏約束,此約束在Power Compiler中由set_max_leakage_power命令指定。
綜合中的功率優(yōu)化
綜合工具能夠通過采用如RTL級(jí)門控時(shí)鐘插入和門級(jí)功率優(yōu)化等技術(shù)來優(yōu)化功率設(shè)計(jì)。這些技術(shù)由Power Compiler結(jié)合Design Compiler和(或)Physical Compiler共同實(shí)現(xiàn)。
當(dāng)無需觸發(fā)器的輸出信號(hào)時(shí),RTL級(jí)門控時(shí)鐘能夠?qū)⑼ㄏ虼笮图拇嫫鹘M的時(shí)鐘信號(hào)關(guān)斷。圖6所示為沒有門控時(shí)鐘和帶有門控時(shí)鐘的 設(shè)計(jì)編輯的同步負(fù)載使能電路的比較。Power Compiler能夠自動(dòng)插入門控時(shí)鐘電路,將圖6a中的反饋網(wǎng)和多路轉(zhuǎn)換器替代為圖6b中的鎖存器和插入到寄存器時(shí)鐘網(wǎng)的雙輸入門電路。
由于門控電路取代了多路器,因而這種類型的門控時(shí)鐘對(duì)面積的影響相對(duì)不大,而且,實(shí)際上還能將面積縮減5~15%。Power Compiler能夠自動(dòng)實(shí)現(xiàn)這種門控電路,而且不需要改變RTL代碼。
Power Compiler還能采用庫(kù)中的ICG來替換手動(dòng)插入的門控時(shí)鐘。這項(xiàng)功能能夠支持那些在物理流程中擁有手動(dòng)門控時(shí)鐘的傳統(tǒng)模塊或IP。Power Compiler能夠識(shí)別ICG中與功率相關(guān)的屬性,從而有助于此類單元的布局。對(duì)于門控時(shí)鐘的高級(jí)用戶,Power Compiler能夠通過實(shí)現(xiàn)多級(jí)門控時(shí)鐘,來節(jié)省更多的功率。在這項(xiàng)技術(shù)中,一個(gè)門控時(shí)鐘單元代替寄存器組,作為另一個(gè)門控時(shí)鐘單元的饋入。
RTL級(jí)門控時(shí)鐘能夠以多種方式節(jié)省功率:由于時(shí)鐘信號(hào)不必持續(xù)饋入寄存器組,因而內(nèi)部功耗降低;由于時(shí)鐘網(wǎng)絡(luò)中的電容值減小,因而開關(guān)功耗降低;由于下游邏輯電路并未改變,因而功耗還能夠進(jìn)一步降低。
在Power Compiler與Physical Compiler協(xié)同工作時(shí),門控時(shí)鐘單元的布局得到了優(yōu)化。在Physical Compiler流程中,Power Compiler確保門電路單元能夠就近放置在一起,門控電路部件與其所驅(qū)動(dòng)的部件也能靠近放置,這樣的布局減少了其它方式中門控時(shí)鐘可能出現(xiàn)的時(shí)鐘扭曲。
除非加入特定的可測(cè)性設(shè)計(jì),否則門控時(shí)鐘會(huì)導(dǎo)致芯片的可測(cè)性下降。由于時(shí)鐘信號(hào)是由內(nèi)部信號(hào)進(jìn)行控制,所以測(cè)試工程師無法控制可測(cè)性設(shè)計(jì)掃描觸發(fā)器的負(fù)載。這個(gè)問題可以通過在測(cè)試編輯過程中增加一個(gè)測(cè)試引腳,并將其指定為一個(gè)固定值(1‘b1)來加以避免。添加了控制點(diǎn)的門控時(shí)鐘電路如圖8所示。
Power Compiler的set_clock_gating_style指令的選項(xiàng)能夠在門控時(shí)鐘中指定所添加的具易測(cè)性的邏輯電路的數(shù)量和類型,以此改善芯片的可測(cè)試性。例如,可在門控時(shí)鐘鎖存器前后添加一個(gè)用于測(cè)試的控制點(diǎn),并且選擇test_mode或scan_enable模式,還可通過其它選項(xiàng)增加可觀察性邏輯或者增加建立時(shí)間和保持時(shí)間裕量。若要使用Design Compiler的check_tes指令或check_dft指令,則要先使用hookup_testports和set_test_hold 1 Test_Mode指令。
門控時(shí)鐘不應(yīng)在具有由Design Compiler實(shí)現(xiàn)的主/從觸發(fā)器的變量(或信號(hào))的設(shè)計(jì)中使用。Design Compiler采用clocked_on_also信號(hào)類型屬性來實(shí)現(xiàn)這些觸發(fā)器。但在門控時(shí)鐘發(fā)生的抽象層面上,Power Compiler不能識(shí)別出這項(xiàng)屬性,而只能將觸發(fā)器的從時(shí)鐘信號(hào)進(jìn)行門控。可以使用set_clock_gating_signals指令,將特定的由主從型觸發(fā)器實(shí)現(xiàn)的設(shè)計(jì)變量(或信號(hào))排除在外:
dc_shell> set_clock_gating_signals -design TOP -exclude
{ A B }
總之,最佳的代碼編制是由以下四種方式中的任意一種實(shí)現(xiàn)的基本同步負(fù)載使能,這些實(shí)現(xiàn)方式可以混用,也可以相互嵌套。
"If-Else"語句
條件賦值
"Case"語句
"For"循環(huán)
&nb sp; 除了RTL級(jí)優(yōu)化外,Power Compiler還采用下列門級(jí)優(yōu)化技術(shù)(按優(yōu)先次序排列),同時(shí)對(duì)功率、時(shí)序和面積進(jìn)行優(yōu)化:
尺寸選擇(sizing);
優(yōu)化技術(shù)(technology mapping) ;
引腳交換(pin swapping) ;
因子分解(factoring);
緩沖器插入(buffer insertion);
相位分配(phase assignment)
這些優(yōu)化要求采用具有功率特性的庫(kù)。由于Power Compiler自動(dòng)保持時(shí)序,并在設(shè)計(jì)人員的約束下維持設(shè)計(jì)的面積,因此,這項(xiàng)工具實(shí)現(xiàn)了門級(jí)的“一鍵式”(push-button)功率節(jié)省。
高水平功率管理范例
為了表明SOC中高水平功率管理的潛力,Synopsys公司與ARM、NS和Artisan公司共同合作,制造了一款用于驗(yàn)證大幅節(jié)省功耗效果的測(cè)試芯片。此芯片采用專門的硬件和軟件,以控制不同芯片域內(nèi)的電壓和時(shí)鐘頻率,并對(duì)本文上述的電壓和頻率按比例縮放技術(shù)應(yīng)用了高層次控制。
控制組件包括了ARM公司的Intelligent Energy Manager軟件,此軟件用于平衡處理器的工作負(fù)載和能量消耗。而NS公司所提供的PowerWise硬件監(jiān)控性能以及與電壓調(diào)節(jié)器的通信,其目的是在每一種工作頻率下,將供電電壓按比例縮小至最低的工作電平。這套系統(tǒng)能夠?qū)τ捎谥圃旃に囁a(chǎn)生的硅芯片性能差別以及由于溫度波動(dòng)所造成的運(yùn)行時(shí)間性能變化進(jìn)行補(bǔ)償。
這款240MHz的芯片分為三個(gè)主要的電源域:可縮放電壓的CPU電源、存儲(chǔ)器電源域和供芯片其它部分使用的標(biāo)準(zhǔn)固定電壓域。這些相互獨(dú)立的電源域能夠?qū)PU和RAM進(jìn)行精確的電壓控制和電流測(cè)量。標(biāo)準(zhǔn)單元和電平轉(zhuǎn)換器的工作范圍是0.7~1.32V。
針對(duì)大量應(yīng)用高速緩存的工作負(fù)載,對(duì)處理工作負(fù)載的功耗和精確時(shí)間均進(jìn)行了測(cè)量,并對(duì)僅使用動(dòng)態(tài)頻率按比例縮放的效果和同時(shí)使用動(dòng)態(tài)電壓和頻率按比例縮放的效果進(jìn)行了比較。圖8總結(jié)了標(biāo)準(zhǔn)化至1.2V工作電壓下的結(jié)果。圖中表明功率節(jié)省僅是在芯片的動(dòng)態(tài)電壓和頻率按比例縮放子系統(tǒng)中。通常在這樣的SoC中,有些芯片無法進(jìn)行電壓按比例縮放,如外部存儲(chǔ)器等部件通常只能工作在固定的電壓下,因此設(shè)計(jì)分區(qū)和規(guī)劃時(shí)必須考慮到系統(tǒng)級(jí)的功率節(jié)省。
與只有頻率按比例縮放相比,電壓和頻率均按比例縮放可以顯著降低能量消耗。例如,在120MHz下運(yùn)行時(shí),能夠削減一半的功耗要求,但如果同時(shí)對(duì)供電電壓進(jìn)行按比例縮放,就能將功耗削減80%。
結(jié)語
通過將各種功率管理技術(shù)相結(jié)合,能夠使芯片功耗大幅降低,就像由Synopsys、ARM、NS和Aritisan等公司的測(cè)試芯片所獲得的那樣。典型的SoC設(shè)計(jì)可能不需要用到所有這些技術(shù),但是主流的解決方案已經(jīng)存在,可以滿足全部的設(shè)計(jì)要求。
設(shè)計(jì)人員應(yīng)根據(jù)詳盡的功率分析和對(duì)可用工具功能的充分了解,選擇正確的解決方案。在設(shè)計(jì)流程中應(yīng)盡早分析功率要求,以避免發(fā)生與功率相關(guān)的錯(cuò)誤。因?yàn)閷哟屋^高的技術(shù)能夠最大程度地節(jié)省功率,所以早期分析還有益于功率目標(biāo)的實(shí)現(xiàn)。