趙海發(fā)
(濟(jì)源職業(yè)技術(shù)學(xué)院電氣工程系,河南 濟(jì)源 454650)
對(duì)于車輛電子設(shè)備應(yīng)用來說,低功耗是工業(yè)界所希望的,而且對(duì)于某些特殊應(yīng)用來說,低功耗甚至是至關(guān)重要的[1,2,3];隨著數(shù)字技術(shù)和超大集成規(guī)模電路(Very Large Scale Integration,VLSI)的發(fā)展,電路本身的功耗特別引人關(guān)注,尤其是在多芯片模塊中,隨著功耗的增加,散熱成了一個(gè)日益嚴(yán)重的問題.因此,對(duì)于車載電路特別是車輛電子設(shè)備組合邏輯電路中的功耗估計(jì)成為近年來研究的熱點(diǎn)問題之一;而組合邏輯電路大多由各種門電路構(gòu)成,這些門電路的開/關(guān)切換必然消耗功率,所以對(duì)門的開/關(guān)切換的功耗估計(jì)就與門的開關(guān)(轉(zhuǎn)換)量估計(jì)問題直接相關(guān).
文獻(xiàn)[4]針對(duì)目前集成電路功耗估計(jì)和低功耗設(shè)計(jì)的重要性以及常用技術(shù)進(jìn)行了綜述;隨著集成電路工藝水平的提高,靜態(tài)功耗也隨之增加,文獻(xiàn)[5]歸納分析了幾種CMOS靜態(tài)功耗的估計(jì)方法,并與HSPICE高精度模擬法在速度與精確度上進(jìn)行了對(duì)比;文獻(xiàn)[6]針對(duì)基準(zhǔn)電路提出了一種功率估計(jì)方法,方法考慮了估計(jì)精度與估計(jì)時(shí)間之間的權(quán)衡.
基于概率方法的功耗或電流估計(jì)具有獨(dú)特的優(yōu)勢(shì),因?yàn)檫@種方法無需依賴耗時(shí)的仿真就可得到統(tǒng)計(jì)估計(jì)值;文獻(xiàn)[7]針對(duì)組合電路的概率電流波形計(jì)算提出了一種概率峰值電流估計(jì)法;文獻(xiàn)[8,9]對(duì)最壞情況下的功耗估計(jì)進(jìn)行了研究,但由于需要分支定界搜索,故這些方法只能應(yīng)用于小型到中等規(guī)模的電路;關(guān)于組合邏輯門電路的開關(guān)量的估計(jì)研究最初由文獻(xiàn)[10]提出,而在國(guó)內(nèi)鮮見報(bào)道.在文獻(xiàn)[10]中,為了實(shí)現(xiàn)VLSI組合和時(shí)序電路中的平均功耗估計(jì),筆者考慮了開關(guān)量對(duì)門延遲的影響,采用了一般的延遲模型來估計(jì)開關(guān)量,能自動(dòng)計(jì)算出開關(guān)切換率和觸發(fā)器輸出之間的相關(guān)性;文獻(xiàn)[11]針對(duì)開關(guān)量的估計(jì)提出了一種轉(zhuǎn)換密度計(jì)算法,把轉(zhuǎn)換密度對(duì)應(yīng)于電路中門的平均開關(guān)速率.該方法將相互連接的組合邏輯模塊(而事實(shí)上每個(gè)模塊有一定的延遲)看成一個(gè)整體電路,盡管通過將全部模塊歸并為一個(gè)大模塊來考慮其相關(guān)性,但轉(zhuǎn)換密度通過組合邏輯模塊傳播,這樣就會(huì)造成內(nèi)部線路之間的相關(guān)性在傳播過程中被忽略,從而造成單個(gè)模塊的延遲信息被丟失;文獻(xiàn)[12]討論了VLSI電路中主要的功耗來源,重點(diǎn)研究了開關(guān)量的計(jì)算及其功率估計(jì)方法.
為了實(shí)現(xiàn)對(duì)車輛電子設(shè)備組合邏輯電路的功耗估計(jì),本文提出了一種基于概率建模的功耗估計(jì)方法.方法把組合邏輯考慮為可變延遲模型,這樣可以正確計(jì)算出由于門電路的多次轉(zhuǎn)換導(dǎo)致在電路中產(chǎn)生差錯(cuò)的布爾條件,從而得到代表電路中的每個(gè)門在不同時(shí)間點(diǎn)的切換條件的一組布爾函數(shù);然后計(jì)算出在任意特定時(shí)間點(diǎn)每個(gè)門的開/關(guān)概率,把全部門的這些概率加起來,獲得整個(gè)組合邏輯電路在對(duì)應(yīng)于一個(gè)時(shí)鐘周期的所有時(shí)間點(diǎn)的開關(guān)量,從而建立起一般組合邏輯網(wǎng)絡(luò)的功耗估計(jì)概率模型.
首先來分析在對(duì)CMOS電路功耗的一個(gè)簡(jiǎn)化模型條件下,CMOS電路的功耗與開關(guān)量直接相關(guān).為了分析方便和符合電路實(shí)際,假設(shè)如下:
1)在一個(gè)CMOS邏輯門中,電容僅在門的輸出節(jié)點(diǎn);
2)電流或者通過某條路徑從Vdd流到輸出電容,或者從輸出電容流到地;
3)一個(gè)邏輯門中的輸出電壓的任何變化都源于Vdd到地,或者反之.
上述假設(shè)對(duì)于設(shè)計(jì)CMOS門來說都是合理的,而且每次CMOS邏輯門開/關(guān)消耗的能量輸出變化大致等于存儲(chǔ)在門的輸出電容中的能量變化.如果門是由一個(gè)全局時(shí)鐘控制的同步數(shù)字系統(tǒng)的一部分,則可得到門消耗的平均功率為:
(1)
式中Cload為負(fù)載電容,Vdd為電源電壓,Tcyc為全局時(shí)鐘周期,Et為每個(gè)全局時(shí)鐘周期內(nèi)門輸出轉(zhuǎn)換數(shù)量即開關(guān)量(文中的轉(zhuǎn)換、開/關(guān)和切換為同一含義)的期望值[11],或每個(gè)全局時(shí)鐘周期內(nèi)門輸出轉(zhuǎn)換數(shù)量的等效平均數(shù)量.式(1)中的全部參數(shù)除Et外都可以從工藝或電路布局信息來確定,而Et取決于正在執(zhí)行的邏輯功能和初始輸入的統(tǒng)計(jì)特性.
考慮在每個(gè)時(shí)鐘周期的開始,全部門都被預(yù)充電,而且僅當(dāng)門的相關(guān)布爾函數(shù)滿足時(shí),門才完成轉(zhuǎn)換.例如,一個(gè)3輸入的與或門的布爾函數(shù)可以是:
(i1·i2)∨(i2·i3)
(2)
式中i1、i2和i3為初始輸入,這時(shí)門的輸出轉(zhuǎn)換數(shù)量的期望值是:
Et=2×P((i1·i2)∨(i2·i3)=1)
(3)
(4)
(5)
(6)
因?yàn)榈谝粋€(gè)乘積項(xiàng)和第二個(gè)乘積項(xiàng)不是獨(dú)立的,而:
(7)
在一般情況下,給定一個(gè)由靜態(tài)概率所描述的不相關(guān)輸入的布爾函數(shù)的不相交覆蓋,就能確定出函數(shù)值為1的概率,具體由以下兩個(gè)定理給出[14].
定理1給定一個(gè)布爾函數(shù)的任意不相交覆蓋,函數(shù)值為1的概率等于覆蓋中每個(gè)立方體值為1的概率的總和.
定理2給定一個(gè)非相關(guān)輸入的邏輯函數(shù)形式:
(8)
(9)
對(duì)于靜態(tài)CMOS組合邏輯來說,當(dāng)門的輸入變化而且僅當(dāng)描述門的布爾函數(shù)的值不同時(shí),門的輸出才會(huì)變化.例如,一個(gè)2輸入與門的輸出在時(shí)鐘周期t和t+1之間將變化為:
(i1(t)·(i2(t))⊕((i1(t+1)·(i2(t+1))
(10)
如果t的值為1,這里i1(t)、i2(t)和i1(t+1)、
i2(t+1)分別為在時(shí)鐘周期t和t+1之間的門輸入.式(10)的不相交覆蓋為:
(11)
(12)
其他的轉(zhuǎn)換概率遵循同樣的方法.
靜態(tài)概率可以從轉(zhuǎn)換概率來計(jì)算,但反過來不成立,因?yàn)橐粋€(gè)時(shí)間幀和下一個(gè)時(shí)間幀之間存在相關(guān)性.靜態(tài)概率和轉(zhuǎn)換概率之間的關(guān)系可以從式(4)和式(12)的定義得到,如:
(13)
靜態(tài)概率和轉(zhuǎn)換概率可用來計(jì)算邏輯電路的Et.例如,根據(jù)式(13),可得出式(11)的值為1的概率為:
(14)
對(duì)于全部初始輸入來說,假設(shè)連續(xù)輸入向量是不相關(guān)的,1或0是等概率的,這時(shí)全部轉(zhuǎn)換概率可以假定為0.25,而且全部靜態(tài)概率可以假定為0.5.當(dāng)然,對(duì)于某個(gè)特定的初始輸入,1或0也有可能不是等概率的,這將導(dǎo)致不均勻轉(zhuǎn)換及其靜態(tài)概率,這通常由用戶提供.
計(jì)算一個(gè)CMOS組合網(wǎng)絡(luò)中的平均功耗可以采用第1節(jié)的方法,即對(duì)于組合邏輯網(wǎng)絡(luò)中的每個(gè)門gi,首先根據(jù)網(wǎng)絡(luò)的初始輸入確定出門的布爾函數(shù)fi,從而得到fi的不相交覆蓋,然后采用定理1和定理2來計(jì)算P(fi=1)的值,最后得到整個(gè)組合邏輯網(wǎng)絡(luò)的平均功耗概率模型為:
(15)
式中Ci為第i個(gè)門的負(fù)載電容,式中∑是對(duì)電路中的全部門求和.
一種類似的方法也可以用來計(jì)算一個(gè)靜態(tài)CMOS組合網(wǎng)絡(luò)中的平均功耗,但需要一個(gè)2向量輸入序列來激活靜態(tài)門.特別地,如果忽略門的延遲,則一個(gè)靜態(tài)CMOS邏輯門的輸出將隨著初始輸入向量從V0變化到Vt而轉(zhuǎn)換,如果
fi=((hi(V0)=0)∧(hi(Vt)=1))∨
((hi(V0)=1)∧(hi(Vt)=0))
(16)
滿足,式中hi為對(duì)應(yīng)于門gi的輸出的邏輯函數(shù).
如上所述,對(duì)于靜態(tài)CMOS電路來說,開關(guān)量必須基于所考慮的一對(duì)輸入向量(V0,Vt)來分析.如果門有明顯的延遲,則有可能存在輸出誤差,這種誤差也可能導(dǎo)致明顯的功耗.如圖1所示電路,假設(shè)反相器和與門的延遲都是一個(gè)時(shí)間單位,如果首先應(yīng)用向量(i1=0,i2=0),其次應(yīng)用(i1=1,i2=1),則將在輸出端得到一個(gè)誤差,這個(gè)誤差可能會(huì)導(dǎo)致功率損耗.下面就來討論這種具有延遲的門的可變延遲模型的功耗估計(jì).
圖1 靜態(tài)CMOS電路中的誤差
不失一般性,考慮圖2所示的多級(jí)邏輯組合電路,它由4個(gè)CMOS門構(gòu)成,有4個(gè)初始輸入和1個(gè)輸出,圖3所示為初始輸入節(jié)點(diǎn)的信號(hào)轉(zhuǎn)換,以及網(wǎng)絡(luò)內(nèi)部節(jié)點(diǎn)上的可能轉(zhuǎn)換,時(shí)間點(diǎn)為歸一化時(shí)間單位.最初的3個(gè)輸入i1、i2和i3在時(shí)間周期0和1之間同時(shí)轉(zhuǎn)換;第四個(gè)輸入i4是一個(gè)延遲到達(dá)信號(hào),它在時(shí)間點(diǎn)5和6之間轉(zhuǎn)換.在這個(gè)例子中,門1和門3的延遲是1個(gè)時(shí)間單位,門2有2個(gè)時(shí)間單位的延遲,而門4有4個(gè)時(shí)間單位的延遲.
圖2 一種多級(jí)組合電路示例
圖3中的ei波形表示第i個(gè)邏輯門上的輸出信號(hào),每個(gè)可能的轉(zhuǎn)換ei,j表示在第j和第j+1個(gè)時(shí)間點(diǎn)之間的由低到高或由高到低的信號(hào)轉(zhuǎn)換.一個(gè)門輸出的全部可能轉(zhuǎn)換數(shù)量可能等于在該門輸入的全部可能轉(zhuǎn)換的總和.這些轉(zhuǎn)換被門的傳播延遲所延遲.
圖3 邏輯門的初始輸入和輸出信號(hào)波形
2.2.1 單位延遲模型
即使在一個(gè)單位延遲模型的理想情況下,一個(gè)多級(jí)網(wǎng)絡(luò)的門輸出節(jié)點(diǎn)在響應(yīng)一個(gè)2向量輸入序列時(shí)可以有多個(gè)轉(zhuǎn)換.事實(shí)上,一個(gè)門輸出可能有和網(wǎng)絡(luò)級(jí)數(shù)一樣多的轉(zhuǎn)換.我們用單位延遲模型來構(gòu)建描述在離散時(shí)間點(diǎn)門輸出的布爾函數(shù).也就是說,僅考慮離散時(shí)刻t,t+1,…,t+l,其中t是輸入從V0變化到Vt的時(shí)間,l是網(wǎng)絡(luò)的級(jí)數(shù)目.
對(duì)于每個(gè)門輸出i來說,我們來構(gòu)建l+1個(gè)布爾函數(shù)fi(t+j),j∈{0,…,l};當(dāng)門的輸出在時(shí)刻t+j為1時(shí),則布爾函數(shù)fi(t+j)的值為1.注意,由于假設(shè)沒有門有零延遲,而且在輸入從V0變化到Vt之前網(wǎng)絡(luò)已經(jīng)是穩(wěn)定的,則fi(t)為V0在第i個(gè)門輸出上得到的邏輯函數(shù).最后,就可以通過fi(t+j)和fi(t+j+1)的異或運(yùn)算來確定是否在離散時(shí)間間隔t+j和t+j+1的邊界發(fā)生轉(zhuǎn)換.
考慮圖1所示網(wǎng)絡(luò),則有:
(17)
假設(shè)兩個(gè)門都有單位延遲,則:
(18)
則有:
(19)
對(duì)于該網(wǎng)絡(luò)來說,有3個(gè)可能的轉(zhuǎn)換:反相器從t到t+1改變狀態(tài),與門從t到t+1改變狀態(tài),與門從t+1到t+2改變狀態(tài).這些轉(zhuǎn)換的布爾方程分別為:
(20)
注意,在圖2所示的組合邏輯電路示例中,2個(gè)向量序列(V01=0,V02=0)、(Vt1=1,Vt2=1)同時(shí)滿足e1,1、e2,1和e2,2.
2.2.2 一般延遲模型
一個(gè)具有大扇入數(shù)的門可能有幾倍的反相器的延遲.如果使用歸一化時(shí)間單位,總可以在電路的門輸出端引入單位延遲緩沖器(大于單位延遲)來對(duì)邏輯門間的不同延遲進(jìn)行建模,于是本文提出的建模方法就能夠?qū)哂腥我忾T傳輸延遲的電路進(jìn)行建模,而無需在電路中引入任何單位延遲緩沖器.
本文提出的基于概率建模方法的功耗估計(jì)實(shí)現(xiàn)偽代碼如圖4所示.功耗估計(jì)是一次處理一個(gè)門,從電路的初級(jí)輸入到電路的初級(jí)輸出.對(duì)于每個(gè)門gi,首先得到其輸入的可能轉(zhuǎn)換時(shí)間的排序列表,然后得到門的輸出的可能轉(zhuǎn)換,同時(shí)考慮了從每個(gè)輸入到門輸出的傳輸延遲.
圖4 基于概率建模方法的功耗估計(jì)實(shí)現(xiàn)偽代碼
為了評(píng)價(jià)本文提出的基于概率建模的功耗估計(jì)方法,對(duì)于給定的每個(gè)門電路,在不同的延遲模型下來比較采用本文提出的方法,獲得的電路中全部門相加起來的總的平均功耗估計(jì)值和所需執(zhí)行時(shí)間與采用時(shí)序邏輯仿真方法獲得的平均功耗估計(jì)值和所需執(zhí)行時(shí)間.
為了測(cè)試本文所提出方法的有效性,我們用C++語言并結(jié)合Matlab語言來實(shí)現(xiàn)本文所描述的時(shí)延分析和功耗估計(jì)方法.采用Matlab中一個(gè)事件驅(qū)動(dòng)的門級(jí)仿真器,該仿真器具有可伸縮的延遲定時(shí)模型(基于輸出電容和扇出),在仿真初始階段,引入一個(gè)30個(gè)周期的預(yù)熱周期;實(shí)驗(yàn)在Pentium IV 2.0 GHz 的PC(512M內(nèi)存)機(jī)和Windows XP操作系統(tǒng)環(huán)境下完成.使用來自于ISCAS-89基準(zhǔn)套件的12個(gè)組合門電路實(shí)例進(jìn)行分析測(cè)試,所采用的全部組合門電路參數(shù)如表1所示.在表1中,s27~s1238為ISCAS-89系列基準(zhǔn)設(shè)置,add16是一個(gè)16位加法器,max16是一個(gè)16位的最大函數(shù)器.由于所采用的全部門電路為技術(shù)-映射靜態(tài)CMOS電路,故門的負(fù)載電容值是已知的,對(duì)于全部電路來說,假設(shè)初始輸入為0.5的均勻靜態(tài)概率和0.25的轉(zhuǎn)換概率,采用20 MHz的時(shí)鐘頻率和5 V的電源電壓.對(duì)于全部門電路,仿真500~1 000個(gè)隨機(jī)生成的輸入向量,每個(gè)函數(shù)ei,j的信號(hào)概率收斂到0.1%以內(nèi).
表1 實(shí)驗(yàn)所用門電路參數(shù)
表2所示為在3種延遲模型下,對(duì)全部門電路采用本文提出的方法和隨機(jī)時(shí)序邏輯仿真方法得到的門的總的平均功耗(μW)估計(jì)值和所需執(zhí)行時(shí)間(s).
表2 實(shí)驗(yàn)結(jié)果
從表2可見,由于兩種方法采用了不同的功耗估計(jì)方法,故得到的平均功耗估計(jì)值是不同的,顯然,本文提出的方法得到的平均功耗估計(jì)值更準(zhǔn)確,因?yàn)樵诿總€(gè)可能的轉(zhuǎn)換函數(shù)ei,j的信號(hào)概率收斂到0.1%以內(nèi),對(duì)于20 MHz的時(shí)鐘頻率來說,每MHz的平均功耗更低;在零延遲模型中,由于全部門有零延遲,因而它們瞬間切換,故總的平均功耗估計(jì)值最低,而且兩種方法得到的結(jié)果大致接近;在單位延遲模型中,全部門有1個(gè)單位的延遲,單位延遲模型考慮了這種誤差,但對(duì)于全部門來說是一個(gè)不變的延遲值,而可變延遲模型對(duì)于不同的門來說采用不同的延遲,可變延遲計(jì)算是最復(fù)雜的,因此這種模型下對(duì)于兩種方法來說,它們總的平均功耗估計(jì)值要高于零延遲模型和單位延遲模型,但這種模型是最符合實(shí)際的模型.同時(shí)還可得出,本文提出的方法所需執(zhí)行時(shí)間要少于隨機(jī)時(shí)序邏輯仿真方法所需執(zhí)行時(shí)間,因而更高效.這兩方面的性能對(duì)于超大規(guī)模集成電路綜合過程中的體系結(jié)構(gòu)設(shè)計(jì)來說是必不可少的.
本文提出了一種估計(jì)車輛電子設(shè)備組合邏輯電路中的開關(guān)平均功耗的方法,基于對(duì)開關(guān)靜態(tài)概率和轉(zhuǎn)換概率的計(jì)算,從而得到組合邏輯電路的功耗模型.實(shí)驗(yàn)結(jié)果表明,本文提出的基于概率的功耗估計(jì)建模方法可用于大規(guī)模的組合邏輯電路,而且在可變延遲模型下還兼顧了內(nèi)部信號(hào)的相關(guān)性,相比于傳統(tǒng)的隨機(jī)時(shí)序邏輯仿真更準(zhǔn)確和更高效.當(dāng)一個(gè)給定的組合電路被嵌入在一個(gè)更大的時(shí)序電路中時(shí),如果輸入到一個(gè)門的信號(hào)能量持續(xù)時(shí)間太小,則信號(hào)不會(huì)迫使門切換,一個(gè)輸入變化必須保證門切換的最小持續(xù)時(shí)間稱為一個(gè)元件的慣性延遲,對(duì)于這種具有嵌入式和慣性延遲的傳輸門組合邏輯電路情況,將是我們下一步研究的重點(diǎn).