王磊磊,王 璐
(1.上海科技大學 信息科學與技術學院,上海 201210;2.中國科學院上海微系統與信息技術研究所,上海 200050;3.中國科學院大學 電子電氣與通信工程學院,北京 100049)
電壓噪聲是芯片設計領域一種長期存在的問題,它嚴重威脅著集成電路的電源完整性[1-2]。電壓噪聲指當片上供電網絡所連接的負載電路發生翻轉或者有突然的電流需求時,由于供電網絡上的電感、電容和電阻等電子元素的存在,電網上的電壓會偏離正常值并持續波動一段時間。隨著集成電路技術節點的推進以及低功耗技術如動態電壓頻率調節的發展,芯片中的電路模塊將被較低的供電電壓所供給,這將導致電路模塊所能容忍的供電電壓的波動范圍越來越低。因此芯片供電電壓的噪聲容限在逐步降低,這使得片上供電網絡的電壓噪聲越來越容易達到其噪聲容限。當電壓噪聲超過噪聲容限時,芯片中的門電路由于電容充放電速度變慢將不能得到及時的狀態切換,從而導致電路模塊中時序和功能的錯誤。所以降低電壓噪聲是芯片穩定性的重要研究內容,是在芯片設計及芯片運行時期均需考慮的問題。

圖1 電源門控技術及其引起的電壓噪聲示意圖
與此同時,電源門控技術作為一種集成電路中的功耗管理技術,在功耗問題日益成為集成電路設計中的首要問題的今天,被廣泛運用于芯片設計中[3-4]。電源門控技術通過一個休眠晶體管連接電路與芯片上的供電網絡,如圖1所示。當所連接的電路處于空閑狀態時,休眠晶體管會處于關閉狀態,以此來避免所連接電路產生的靜態功耗;當所連接的電路需要處于工作狀態時,休眠靜態管會打開,使得電路可以接入電網中,從而正常工作。不幸的是,當休眠晶體管打開時,其所連接電路會突然產生一個瞬時的巨大的電流需求,而沖擊電流的需求會在供電網絡中引入電壓噪聲,這種電壓噪聲將嚴重威脅著芯片中其他電路模塊的正常運行。尤其是當多個電路模塊同時接入電路時,所有電路模塊產生的電壓噪聲混合在一起,對芯片功能穩定性的威脅更加嚴重。因此,電源門控技術所引入的電壓噪聲應該被嚴格限制,用以防止影響芯片功能的正確運行。
前人在減小電源門控技術引入的電壓噪聲方面做了有限的研究,主要分為電路設計層面的工作[5-7]和系統層面的研究[8-9]。在文獻[5]中,作者通過聯合優化休眠晶體管的設計和供應電壓的選取,來減小電源門控電路接入電網時的時間,從而減小能量損失以及電壓噪聲威脅時間。在文獻[6]中,作者通過優化和調制電源門控技術中的休眠晶體管的控制信號,來減小電路中的電壓噪聲。在文獻[7]中,作者提出一種門單元級別的電源門控開關策略,來確定門單元電路的開啟順序,從而減小系統噪聲。在文獻[8]中,一種額外的轉換開關作用于去耦合電容,當去耦合電容所在的本地電網被電源門控技術關閉后,去耦合電容能通過轉換開關接入到全局電網中,從而繼續抑制其它活躍的電路區域引入的電壓噪聲。在文獻[9]中,作者提出利用電源門控技術來開關多處理器片上系統的每個處理器單元,通過選定的處理器單元,在受到潛在電壓噪聲威脅時,提前關閉以及威脅過后打開,使得在消除電壓噪聲威脅的同時,整個系統的任務執行時間和性能代價最小。
筆者提出一種系統級的電路模塊接入電網的時間序列優化方案,使得芯片上待工作的電路模塊開啟的過程中,引入的總的電壓噪聲最大值能減小。與文獻[7]的工作相比,提出的方案集中在模塊級別的開關調控,從而能大幅度節約電源門控技術的資源占用,而且不需要考慮門電路之間的驅動關系;與文獻[9]中處理器的運算任務優化工作相比,提出的方案以優化電壓噪聲為目的,這在噪聲容限日漸降低的今天是非常重要的。并且提出的技術還能與文獻[5-6,8]中的技術協同作用,起到更好地抑制電壓噪聲的效果。

圖2 系統級電源門控技術在多電路模塊中的應用
電源開關技術作用于模塊級別的電路如圖2所示。在圖中,芯片上的電路可以分成許多個電路模塊,其中有些模塊使用了電源門控技術,如圖2中的模塊A, B和C;有些模塊則沒有使用電源門控技術,如圖2中的模塊a和b。當被關閉的模塊通過休眠晶體管的導通而接入電路繼續運行時,由于沖擊電流的需求會在供電網絡中引入電壓噪聲,這會對供電網絡接入的其他正常工作的電路模塊(比如非門控模塊a,b或者其他已經接入電路的門控模塊)產生嚴重的威脅。
供電網絡噪聲分析是集成電路后端設計中的重要問題。供電網絡可以被抽取為一種包含很多電阻電感電容的RLC網絡,前人提出了很多的方法[10-11]去求解這個大規模的線性方程組。這些細致的分析方法對精確的供電網絡仿真有重要貢獻,然而對于系統級的供電網絡分析而言,設計者需要快速求解帶有若干個電路模塊的供電網絡分析問題。所以使用更加快速和有效的分析方法[2]對電源門控序列優化具有重要的意義。
供電網絡作為線性時不變的系統,其對沖擊電流的噪聲響應v(t)表示為

(1)

圖3 單位沖擊電流激勵下,供電網絡的電壓噪聲響應
其中,I(τ)表示電路負載在τ時刻的電流值(即供電網絡的激勵值),其中τ∈ [0,t],h(t)是單位沖擊電流0時刻作用于供電網絡引入噪聲的沖激響應。因此,供電網絡上的電壓噪聲可以等效于不同時刻τ的電流的沖激響應在時間t時的線性疊加。如果把時間離散化為一個時間序列,以一個時間窗口Δt為一個時間點,則可以認為τ∈[0,Δt, 2Δt, …,kΔt],其中,k=t/Δt。根據式(1),電壓噪聲可以重新寫為
(2)

圖4 兩種電流激勵分別引入的電壓噪聲及總的電壓噪聲
建立供電網絡模型(具體方法見實驗章節),單位沖擊電流激勵下的供電網絡響應如圖3所示(Vdd為1.05V)。可以看出,在單次電流激勵后電壓噪聲會衰減并在一段時間之后趨緊于0。根據式(2),兩個電流激勵分別產生的噪聲以及總的噪聲如圖4所示。在圖中,h1(t)表示在0時間點0.8倍單位沖擊電流激勵下的系統噪聲,h2(t)表示在第500時間點1.2倍單位沖擊電流激勵下的系統噪聲,H(t)表示根據式(2)所得到的系統總的噪聲,即所有激勵的噪聲的疊加值。顯然可以看出,系統總的電壓噪聲可能會比單一激勵產生的電壓噪聲低。這是由于系統中不同噪聲響應序列中的正負電壓可能會相互抵消的緣故。

圖5 電路模塊不同的開啟序列會導致電壓噪聲相差很大
由前兩節的分析可知,在系統級的電路模塊開關控制中,電路模塊不同的開啟序列將產生不同的電壓噪聲。假設以下場景,在圖1中所示的系統中,電路模塊A, B和C需要通過電源門控技術開啟,開啟時3個電路模塊所產生的沖擊電流分別為0.8I0,1.2I0和1.0I0(I0為單位沖擊電流的幅度值)。分析3種不同的開啟時間序列引起的供電網絡上某個觀測點的噪聲效果,如圖5所示。圖5(a)中所示為電路模塊A,B和C在1時刻同時通過電源門控技術開啟,可以看出,由于各個沖擊電流的沖激響應疊加,電壓噪聲接近0.5 V,這甚至達到了供應電壓的近50%(Vdd=1.05 V)。在圖5(b)中,3個電路模塊的開啟時間點分別為1,451和151,可以看出,總的電壓噪聲可以達到0.2 V。而在圖5(c)中,3個電路模塊的開啟時間為1,201和401,總的電壓噪聲最高不超過0.15 V。因此可以看出,在給定需要開啟的門電路后,不同的開啟順序及時間間隔會嚴重影響供電電壓的噪聲,其差值能到達驚人的地步。由1.2節的分析可知,總的電壓噪聲是各個電路模塊開啟時產生的電壓噪聲的疊加。這說明,不同電路模塊開啟時產生的電壓噪聲不僅是可以部分抵消的,且抵消的程度受這些電路模塊的開啟間隔所影響。所以電源門控技術的開啟序列需要被優化,以使得引入的電壓噪聲達到最小。
假設:(1)在供電網絡中僅關注少數幾個感興趣位置的電壓噪聲(即少數幾個電路模塊掛載點的電壓噪聲),這是合理的,因為系統級模型只需關注這些掛載點處的電壓安全。特別地,在下文中只研究某感興趣的點(稱為HotSpot點)的電壓噪聲,全網格的電壓噪聲響應問題會作為未來的工作進行討論。(2)在供電網絡中,不同位置的沖擊電流在HotSpot點產生的噪聲響應具有相似的頻域特性(如圖3所示),故可使用同一響應序列,這是合理的。因為給定的供電網絡會具有特定的頻域阻抗[12]。
提出的電源門控技術開啟序列優化問題可以描述如下:
給定:(1)芯片中需要通過電源門控技術開啟的N個電路模塊 {1,2,…,N};(2)N個電路模塊開啟時分別產生的沖擊電流幅度a1×N=[a1,a2,…,aN];(3)單位幅度電流激勵產生的沖激響應時間序列h1×k=[h1,h2,…,hk] ;(4)完成所有電路模塊開啟操作的總時間限制為M個時間窗口,這里可以離散出一個時間窗口序列 {1,2,…,M},其中每一時間窗口都可以進行電路模塊的開啟工作。
求解:每個電路模塊開啟的時間窗口mn∈{1,2,…,M} ,其中n∈{1,2,…,N} 。使得在這一過程中產生的電壓噪聲的最大值Vmax最小。
由式(2)可知,若第n個電路模塊(n∈{1,2,…,N})在tn時刻開啟,則其產生的電壓噪聲在t時刻(t>tn)的值,v(t,n),可表示為
v(t,n)=an×h(t-tn) 。
(3)
為了保持式(3)在t (4) 這里設置一個二值變量xm,n來表示第n個電路模塊是否在第m個時間窗口開啟,若xi,j為1則表示第n個電路模塊在第m個時間窗口開啟,反之若為0則表示第n個電路模塊不在第m個時間窗口開啟,其中n∈{1,2,…,N}且m∈{1,2,…,M}。所以總的電壓噪聲可以表示為 (5) 值得注意的是,式(5)中的Δt表示一個時間窗口的大小(即為步長10ns),即可認為第n個電路模塊在第m個時間窗口開啟,其開啟時間tn=(m-1)Δt。單位沖擊電流的響應序列可以離散化為 [h1,h2, …,hk](見節2問題描述),則可以用矩陣 (6) 來表示M種在不同時間窗口為起始點的響應序列。用XM×N,即二值變量xm,n所組成的矩陣,來選擇其中的N個時間序列,再與N個對應的電流幅度值相乘,可以得出式(5)所示電壓噪聲在(M-1+k)個時間窗口中的離散值 (7) 用Vmax表示上述噪聲序列中的最大值,則優化目標是最小化Vmax。此外在XM×N中,由于每個電路模塊只需要被開啟一次,需要XM×N的每列變量中有且僅有一個變量值為1(如式(12)所示);由于每個時間窗口中最多只允許開啟一個電路模塊,需要XM×N的每一行變量中最多僅有一個變量值為1(如(13)所示)。因此可以給出優化問題: minVmax, (8) 約束條件為 (9) (10) xm,n∈{0,1} , (11) (12) (13) 顯然,這是一個混合整數線性規劃問題(Mixed Integer Linear Programming, MILP)。 求解上節描述的MILP問題,線性規劃松弛和分支定界兩種技術可以被使用來逐漸獲得問題的全局最優解。 圖6 分支定界法示意圖 求解方法如下:(1)首先線性規劃松弛法可以被采用,將所有0/1二值變量松弛成連續變量,原問題即轉換成線性規劃問題,之后可以通過求解此線性規劃問題得出一個實數解,其目標函數的值作為目標函數取值范圍的下限;其次可以采用啟發式算法獲取一個整型解,其目標函數的值作為目標函數取值范圍的上限。(2)當解空間不為空時,不斷搜尋最優解:(a)當解為實數解時,若其目標函數的取值大于當前上限值,則跳過這個解,并且使用分支定界法縮小解空間;(b)當解為整數解時,若其目標函數的取值小于當前上限值,則更新當前上限值。 分支定界法的示意圖如圖6所示。二叉樹中每個節點表示一個整型變量,其分支代表此變量取不同值。假設圖中當x1=1之后其余子孫節點變量松弛成連續變量后,目標函數的最小值依然大于當前上限,則可以直接舍去此分支上的所有解。其中變量的順序選擇可以參考文獻[13]。分支定界法可以有效地縮小求解需要遍歷的解空間,能增加求解效率。 值得注意的是,在實際的電路模塊開啟序列優化的過程中,并不需要每次均求解MILP問題。這是因為系統級的電路門控模塊的數量往往比較少(典型值小于10,見實驗部分),因此對于常用的電路模塊開啟序列,可以采用離線計算,提前獲得開啟序列的最優方案,再將此方案保存到一個查找表中。當需要獲取待開啟電路模塊的開啟序列時,可以使用在線查表的方式,來獲得開啟序列的最優方案,從而節省了重復求解相同問題所產生的開銷。舉例說明,若圖2所示的待開啟電路模塊A,B和C的最優開啟序列,通過事先求解MILP問題可以得到結果為(1,201,401),則可以把(A,B,C)與對應的(1,201,401)存為查找表中的一條映射信息。當需要開啟電路模塊A,B和C時,可以通過查找表直接獲取其最優開啟序列,從而增加優化方案的可實現性。 實驗設置包含單位沖擊電流噪聲序列的獲取和電路模塊沖擊電流幅度信息的獲取,分別為:(1)根據文獻[14]中的方法建立了一個5層的片上供電網絡,之后抽取其參數并通過宏模型[15]的方法,將含有大規模節點的供電網絡壓縮成只包含少數連接電路模塊節點的網絡模型,以便進行快速的噪聲序列分析。之后的實驗中可以通過spice仿真獲取此供電網絡在單位沖擊電流的激勵下的噪聲響應序列。(2)通過GEM5仿真器[16]運行標準的SPEC CPU2006測試樣例[17]來獲取芯片系統運行時的統計計數信息,比如緩存缺失次數,根據這些統計計數信息再用McPAT仿真器[18]來獲取電路各個模塊的切換時的功耗信息(電流幅度)。之后通過求解MILP問題,可以獲取電路模塊的最優開啟序列。 為了顯示提出的開啟序列優化方法對減小供電網絡噪聲上的效果,設置另外兩種開啟序列的方法作為對比方法:方法1:使用均勻的時間間隔開啟每個電路模塊,時間間隔為M/N的向下取整。方法2:使用非均勻的時間間隔開啟每個電路模塊,每個模塊開啟后的時間間隔與此模塊的沖擊電流幅度值成正比。 圖7和圖8顯示了兩個測試樣例的實驗結果。分別用3種方法獲取電路模塊在規定完成時間之內的開啟序列,然后獲得總的噪聲響應曲線。從圖中可以看出,提出的方法優化出的電路模塊開啟序列能大幅度地減少引入的電壓噪聲。 圖7 在32個時間窗口完成時,4個電路模塊開啟的總噪聲 圖8 在32個時間窗口完成時,12個電路模塊開啟的總噪聲 在測試樣例一中(即電路開啟模塊為4),表1展示了提出的方法相比于兩種對比方法在減小電壓噪聲幅度上的表現。可以看出,當約束時間為4個時間窗口(即每個時間窗口都需要選擇一個模塊開啟)時,由于解空間很小,提出的優化方法對比方法1和2僅有2.1%的提升;而當時間約束增加到8以上時,提出的方法能大幅度地減小電壓噪聲達30%以上。特別地,當約束時間由16增長為32時,提出的優化方法得到的總噪聲上限不再發生變化,這表明當約束時間過長時,優化出的開啟序列能在較短的時間中就完成開啟操作。 表1 當操作的時間約束變化時,提出的方法(標注*)和兩種對比方法在總噪聲上的表現 圖9 最大噪聲和約束時間之間的權衡關系 圖9展示了最大噪聲和完成開啟序列操作的約束時間之間的權衡關系(電路模塊個數分別為4,6和8)。可以看出,隨著約束時間的變長,最大電壓噪聲可以被優化到一個很小的值。所以當約束時間更長時,提出的方法獲得的噪聲結果不再發生變化。此外,若要限制電壓噪聲在一定范圍內,提出的方法顯示隨著待開啟電路模塊的數量不同,其完成操作的最低約束時間也不同。例如,要限制電壓噪聲在0.2V,4個電路模塊的開啟時間至少需要4個時間窗口,而8個電路模塊的開啟時間則需要至少16個時間窗口。 筆者提出了一種系統層面的電源門控技術的開啟序列方案,通過減小電源門控技術打開電路模塊時產生的總的電壓噪聲最大值。通過建立和求解混合整數線性規劃問題,可以獲得最優的多電路模塊在規定完成時間內接入電網的順序及時間間隔,從而使得引入的電壓噪聲能最大程度的減小。實驗結果表明,提出的電源門控技術開啟方案能減小引入的電壓噪聲達30%以上,并且得到了總開啟時間的長短與引入電壓噪聲的大小之間的權衡。未來可以繼續研究的問題包括多模塊電路開啟時的供電網絡全網絡的噪聲響應分析。
3.2 問題求解

4 實驗結果及分析
4.1 開啟序列優化在減小噪聲上的效果





5 結束語