SoC系統(tǒng)的低功耗設(shè)計(jì)
關(guān)鍵詞:VLSI SoC CMOS集成電路 低功耗設(shè)計(jì)
引言
從20世紀(jì)80年代初到90年代初的10年里,微電子領(lǐng)域的很多研究工作都集中到了數(shù)字系統(tǒng)速度的提高上,現(xiàn)如今的技術(shù)擁有的計(jì)算能力能夠使強(qiáng)大的個(gè)人工作站、復(fù)雜實(shí)時(shí)語音和圖像識(shí)別的多媒體計(jì)算機(jī)的實(shí)現(xiàn)成為可能。高速的計(jì)算能力對(duì)于百姓大眾來說是觸指可及的,不像早些年代那樣只為少數(shù)人服務(wù)。另外,用戶希望在任何地方都能訪問到這種計(jì)算能力,而不是被一個(gè)有線的物理網(wǎng)絡(luò)所束縛。便攜能力對(duì)產(chǎn)品的尺寸、重量和功耗加上嚴(yán)格的要求。由于傳統(tǒng)的鎳鉻電池每磅僅能提供20W.h的能量,因而功耗就變得尤為重要。電池技術(shù)正在改進(jìn),每5年最大能將電池的性能提高30%,然而其不可能在短期內(nèi)顯著地解決現(xiàn)在正遇到的功耗問題。
雖然傳統(tǒng)可便攜數(shù)字應(yīng)用的支柱技術(shù)已經(jīng)成功地用于低功耗、低性能的產(chǎn)品上,諸如電子手表、袖珍計(jì)算器等等,但是有很多低功耗、高性能可便攜的應(yīng)用一直在增長。例如,筆記本計(jì)算機(jī)就代表了計(jì)算機(jī)工業(yè)里增長最快的部分。它們要求與桌上計(jì)算機(jī)一樣具有同樣的計(jì)算能力。同樣的要求在個(gè)人通信領(lǐng)域也正在迅速地發(fā)展,如采用了復(fù)雜語音編解碼算法和無線電調(diào)制解調(diào)器的帶袖珍通信終端的新一代數(shù)字蜂窩網(wǎng)。已提出的未來個(gè)人通信服務(wù)PCS(Personal Communication Services)應(yīng)用對(duì)這些要求尤其明顯,通用可便攜多媒體服務(wù)是要支持完整的數(shù)字語音和圖像辨別處理的。在這些應(yīng)用中,不僅語音,而且數(shù)據(jù)也要能在無線鏈路上傳輸。這就為實(shí)現(xiàn)任何人在任何地方的任何時(shí)間開展任何想要的業(yè)務(wù)提供了可能。但是,花在對(duì)語音、圖像的壓縮和解壓上的功耗就必須附加在這些可便攜的終端上。確實(shí),可便攜能力已經(jīng)不再明顯地和低性能聯(lián)系在一起了;相反,高性能且可便攜的應(yīng)用正在逐步得到實(shí)現(xiàn)。
當(dāng)功率可以在非便攜環(huán)境中獲得時(shí),低功耗設(shè)計(jì)的總理也變得十分關(guān)鍵。直到現(xiàn)在,由于大的封裝、散熱片和風(fēng)扇能夠輕而易舉地散掉芯片和系統(tǒng)所產(chǎn)生的熱,其功耗還未引起多大的重視。然而,隨著芯片和系統(tǒng)尺寸持續(xù)地增加,要提供充分的散熱能力就必須付出重要代價(jià),或使所提供的總體功能達(dá)到極限時(shí),設(shè)計(jì)高性能、低功耗數(shù)字系統(tǒng)方法的需求就會(huì)變得更為顯著。幸好,現(xiàn)在已經(jīng)發(fā)展了許多技術(shù)來克服這些矛盾。
由于可以高度集成,并具有低功耗、輸入電流小、連接方便和具有比例性等性質(zhì),CMOS邏輯電路被認(rèn)為是現(xiàn)今最通用的大規(guī)模集成電路技術(shù)。下面研究CMOS集成電路的功耗組成,概述實(shí)現(xiàn)集成電路――SoC(System on Chip)系統(tǒng)的低功耗設(shè)計(jì)的諸多方法。目的在于揭示當(dāng)今電子系統(tǒng)結(jié)構(gòu)復(fù)雜度、速度和其功耗的內(nèi)在聯(lián)系,在及在數(shù)字電子系統(tǒng)設(shè)計(jì)方向上潛在的啟示。
1 CMOS集成電路功耗的物理源
要研究SoC的低功耗設(shè)計(jì),首先要物理層次上弄清該集成電路的功耗組成,其次,才能從物理實(shí)現(xiàn)到系統(tǒng)實(shí)現(xiàn)上采用各種方法來節(jié)省功耗,達(dá)到低功耗設(shè)計(jì)的目的。圖1為典型CMOS數(shù)字電路的功耗物理組成。
(1)動(dòng)態(tài)功耗
動(dòng)態(tài)功耗是由電路中的電容引起的。設(shè)C為CMOS電路的電容,電容值為PMOS管從0狀態(tài)到H狀態(tài)所需的電壓與電量的比值。以一個(gè)反相器為例,當(dāng)該電壓為Vdd時(shí),從0到H狀態(tài)變化(輸入端)所需要的能量是CVdd2。其中一半的能量存儲(chǔ)在電容之中,另一半的能量擴(kuò)展在PMOS之中。對(duì)于輸出端來說,它從H到0過程中,不需要Vdd的充電,但是在NMOS下拉的過程中,會(huì)把電容存儲(chǔ)的另一半能量消耗掉。如果CMOS在每次時(shí)鐘變化時(shí)都變化一次,則所耗的功率就是CBdd2f,但并不是在每個(gè)時(shí)鐘跳變過程之中,所有的CMOS電容都會(huì)進(jìn)行一次轉(zhuǎn)換(除了時(shí)鐘緩沖器),所以最后要再加上一個(gè)概率因子a。電路活動(dòng)因子a代表的是,在平均時(shí)間內(nèi),一個(gè)節(jié)點(diǎn)之中,每個(gè)時(shí)鐘周期之內(nèi),這個(gè)節(jié)點(diǎn)所變化的幾率。最終得到的功耗表達(dá)式為:Psw=aCVdd2f。
(2)內(nèi)部短路功耗
CMOS電路中,如果條件VtnVinVdd-|Vtp|(其中Vtn是NMOS的門限電壓,Vtp是PMOS的門限電壓)成立,這時(shí)在Vdd到地之間的NMOS和PMOS就會(huì)同時(shí)打開,產(chǎn)生短路電流。在門的輸入端上升或者下降的時(shí)間比其輸出端的上升或者下降時(shí)間快的時(shí)候,短路電流現(xiàn)象會(huì)更為明顯。為了減少平均的短路電路,應(yīng)盡量保持輸入和輸出在同一個(gè)沿上。
一般來說,內(nèi)部短路電流功耗不會(huì)超過動(dòng)態(tài)功耗的10%。而且,如果在一個(gè)節(jié)點(diǎn)上,VddVtn+|Vtp|的時(shí)候,短路電流會(huì)被消除掉。
(3)靜態(tài)漏電功耗
靜態(tài)漏電掉的是二極管在反向加電時(shí),晶體管內(nèi)出現(xiàn)的漏電現(xiàn)象。在MOS管中,主要指的是從襯底的注入效應(yīng)和亞門限效應(yīng)。這些與工藝有關(guān),而且漏電所造成的功耗很小,不是考慮的重點(diǎn)。
表1為CMOS集成電路中主要的耗電類型。
表1 CMOS集成電路中主要的耗電類型
類 型 | 公 式 | 比 率 |
動(dòng)態(tài)功耗(switching power) | Psw=aCVdd2f | 70%~90% |
內(nèi)部短路功耗(internal short-circuit power) | Pint=IintVdd | 10%~30% |
靜態(tài)漏電功耗(static leakage power) | Pleak=IleakVdd | 1% |
總功耗(total power) | Ptotal=Psw+Pint+Pleak | 100% |
(4)小結(jié)
通過設(shè)計(jì)工藝技術(shù)的改善,Pint和Pleak能被減小到可以忽略的程度,因而Psw也就成為功耗的主要因素。后面所做的功耗優(yōu)化大部分是圍繞這一個(gè)公式來進(jìn)行的。對(duì)于SoC來說,所有的方法都是圍繞著動(dòng)態(tài)功耗來做文章的,因?yàn)樵陔娐沸盘?hào)變化時(shí),功耗消耗主要在電路中電容的充放電過程。如果從各個(gè)層次、各個(gè)方面盡量減少電路的充放電,將是我們關(guān)心的主題。
2 降低集成電路SoC功耗的方法
功耗對(duì)于一個(gè)便攜式SoC數(shù)字系統(tǒng)來說尤為重要。事實(shí)上,很多便攜式SoC系統(tǒng)的設(shè)計(jì),是先進(jìn)行功耗分析,由功耗分析的結(jié)果再來劃分設(shè)計(jì)結(jié)構(gòu)??梢哉f,功耗將可能決定一切?,F(xiàn)在要做的是,根據(jù)功耗分析的結(jié)果,評(píng)判SoC結(jié)構(gòu),改進(jìn)設(shè)計(jì),優(yōu)化方案。
SoC系統(tǒng)的功耗所涉及的內(nèi)容十分廣泛,從物理實(shí)現(xiàn)到系統(tǒng)實(shí)現(xiàn)都可以采用各種方法來節(jié)省和優(yōu)化功耗。通過對(duì)國外大量文獻(xiàn)的查閱,我們得到了常用的實(shí)現(xiàn)低功耗設(shè)計(jì)的各種較為有效的方法,如表2所列。
表2 常用實(shí)現(xiàn)低功耗的各種方法
類 型 | 采用方法 | 效 果 |
行為級(jí)(系統(tǒng)級(jí)) | Concurrency memor | 幾倍 |
軟件代碼 | 軟件優(yōu)化 | 32.3% |
功率管理 | Clock控制 | 10%~90% |
RTL級(jí) | 結(jié)構(gòu)變換 | 10%~15% |
綜合技術(shù) | 合成與分解邏輯 | 15% |
綜合技術(shù) | 映射 門級(jí)優(yōu)化 | 20% 20% |
布局 | 布局優(yōu)化 | 20% |
(1)系統(tǒng)級(jí)功耗管理
這一部分實(shí)際上是動(dòng)態(tài)功耗管理。主要做法是在沒有操作的時(shí)候(也就是在SoC處于空閑狀態(tài)的時(shí)候),使SoC運(yùn)作于睡眠狀態(tài)(只有部分設(shè)備處于工作之中);在預(yù)設(shè)時(shí)間來臨的時(shí)候,會(huì)產(chǎn)生一個(gè)中斷。由這個(gè)中斷喚醒其它設(shè)備。實(shí)際上,這一部分需要硬件的支持,如判斷,周期性的開、關(guān)門控時(shí)鐘(gate clock)等。
(2)軟件代碼優(yōu)化
軟件代碼優(yōu)化是針對(duì)ARM嵌入式處理器而言的。對(duì)于編譯器來說,所起的使用不到1%,而對(duì)于代碼的優(yōu)化則可以產(chǎn)生高達(dá)90%的功耗節(jié)省。Simunic等人曾分別做過用各種針對(duì)ARM處理器的編譯器進(jìn)行的試驗(yàn)。比此的實(shí)驗(yàn)結(jié)果發(fā)展,風(fēng)格比較好的代碼產(chǎn)生的效果遠(yuǎn)比用ARM編譯器優(yōu)化的效果好。
(3)Clock控制
這是在ASIC設(shè)計(jì)中行之有效的方法之一。如果SoC芯片在正常工作,有很大一部分模塊(它們可能是用于一些特殊用途中,如調(diào)試Debug、程序下載等)是乖于空閑狀態(tài)的,這些器件的空運(yùn)作會(huì)產(chǎn)生相當(dāng)大的功耗。這一部分應(yīng)使用時(shí)鐘控制,即clock enable disable。
(4)RTL級(jí)代碼優(yōu)化
與軟件相似,不同的RTL(Register Transfer Level,寄存器傳輸級(jí))代碼,也會(huì)產(chǎn)生不同的功耗,而且RTL代碼的影響比軟件代碼產(chǎn)生的影響可能還要大。因?yàn)椋琑TL代碼最終會(huì)實(shí)現(xiàn)為電路。電路的風(fēng)格和結(jié)構(gòu)會(huì)對(duì)功耗產(chǎn)生相當(dāng)重要的影響。
RTL級(jí)代碼優(yōu)化主要包括:
①對(duì)于CPU來說,有效的標(biāo)準(zhǔn)功耗管理有睡眠模式和部分未工作模塊掉電。
②硬件結(jié)構(gòu)的優(yōu)化包括能降低工作電壓Vdd的并行處理、流水線處理以及二者的混合處理。
③降低寄存電容C的片內(nèi)存儲(chǔ)器memory模塊劃分。
④降低活動(dòng)因子a的信號(hào)門控、減少glitch(毛刺)的傳播長度、Glitch活動(dòng)最小化、FSM(有限狀態(tài)機(jī))狀態(tài)譯碼的優(yōu)化等。
⑤由硬件實(shí)現(xiàn)的算法級(jí)的功耗優(yōu)化有:流水線和并行處理、Retiming(時(shí)序重定)、Unfolding(程序或算法的展開)、Folding(程序或算法的折疊)等等基本方法以及其組合。
(5)后端綜合與布線優(yōu)化
既然SoC的功耗與寄生電容的充放電有很大的關(guān)系,作為后端綜合與布線,同樣也可采取一些措施來減少寄存器電容??梢詢?yōu)化電路,減少操作(電路的操作),選擇節(jié)能的單元庫,修改信號(hào)的相關(guān)關(guān)系,再次綜合減少毛刺的產(chǎn)生概率。
實(shí)際上,這一部分與使用的工具有關(guān)。與軟件部分有相同之處,后端綜合與布線同軟件的編譯差不多。軟件編譯的結(jié)果是產(chǎn)生可執(zhí)行的機(jī)器代碼;而RTL的綜合與布線是把RTL代碼編譯成真實(shí)的電路。但是,后端綜合與布線優(yōu)化比較編譯優(yōu)化有更好的效果。這是因?yàn)橐欢蜶TL代碼所對(duì)應(yīng)的電路是可以有多種形式的;同時(shí)現(xiàn)有些編譯器會(huì)根據(jù)設(shè)計(jì)者提供的波形,智能地修改電路(前提是最終電路的效果還是一樣的),編譯器就會(huì)進(jìn)行相關(guān)的優(yōu)化。但是后端綜合的優(yōu)化與RTL級(jí)代碼優(yōu)化和時(shí)鐘控制相比,同樣的RTL級(jí)與時(shí)鐘優(yōu)化所產(chǎn)生的影響要遠(yuǎn)大于用編譯工具所產(chǎn)生的影響。
(6)功耗的精確計(jì)算
后端綜合與布線工具不但可以根據(jù)基本單元提供的功耗參數(shù)進(jìn)行優(yōu)化,還可以根據(jù)這些參數(shù)估算出整個(gè)SoC的功耗。正因?yàn)橛羞@樣一些工具,使我們可以精確地知道我們所設(shè)計(jì)的是否達(dá)到設(shè)計(jì)要求。萬一設(shè)計(jì)功耗不符合總體要求,則可能要求從系統(tǒng)級(jí)到物理綜合布線都要做出檢查與分析,做出可能的改進(jìn),盡可能地減少功耗以達(dá)到設(shè)計(jì)要求。
(7)小結(jié)
從上面的各種降低以及估算功耗的方法可以看出,SoC系統(tǒng)的拉耗優(yōu)化涉及到從物理實(shí)現(xiàn)到系統(tǒng)實(shí)現(xiàn)的方方面面,是芯片設(shè)計(jì)中一個(gè)十足的系統(tǒng)工程。可以說,功耗可以決定一切。
結(jié)語
本文首先分析了CMOS集成電路的功耗物理組成,得到了其主要功耗成分。其次,以該主要功耗成分?jǐn)?shù)學(xué)表達(dá)式為指導(dǎo),突出了SoC低功耗設(shè)計(jì)的各種級(jí)別層次的不同方法。不管是現(xiàn)在還是將來,該領(lǐng)域的重要性將會(huì)日益顯著。在下面的一些發(fā)展方向還將會(huì)有較大的發(fā)展:
①實(shí)現(xiàn)SoC系統(tǒng)設(shè)計(jì)的變換以及映射技術(shù)的進(jìn)一步探索。
②將各種低功耗設(shè)計(jì)手段按照各性質(zhì)最佳綜合起來,以便使用基于人工智能的技術(shù)(如遺傳算法和啟發(fā)式算法等等)來研究。
③發(fā)展以實(shí)現(xiàn)低功耗為目的CPU指令程序的改寫技術(shù),以將其擴(kuò)展到復(fù)雜SoC系統(tǒng)的設(shè)計(jì)中。
④進(jìn)一步研究應(yīng)用于SoC低功耗設(shè)計(jì)的編碼和信號(hào)表示技術(shù)。
⑤擴(kuò)展功耗估算模型的數(shù)量以覆蓋所有的SoC系統(tǒng)模式,等等。
隨著便攜式和移動(dòng)計(jì)算要求的進(jìn)一步增長,集成電路―SoC的低功耗設(shè)計(jì)將變成一個(gè)越來越重要且必須面臨的問題。它對(duì)開發(fā)新型電子產(chǎn)品,其意義重大。
評(píng)論