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