張文華
(中國電子科技集團公司第二十研究所,西安 710068)
隨著導(dǎo)航產(chǎn)業(yè)的不斷發(fā)展,導(dǎo)航SoC芯片的設(shè)計實現(xiàn)逐漸成為導(dǎo)航技術(shù)的核心之一[1]。隨著集成電路設(shè)計工藝尺寸的不斷減小、芯片功能的不斷復(fù)雜,運算量的不斷增加和工作頻率的不斷提高,SoC芯片的功耗急劇增加,功率密度及散熱問題成為影響芯片性能的主要因素,主要體現(xiàn)以下幾個方面:
·可靠性問題
功耗的增加會帶來芯片溫度的升高,對可靠性會帶來很大影響[2]。隨著溫度的升高,金屬的電遷移現(xiàn)象會越來越嚴重,甚至帶來短路或斷路問題;芯片溫度的升高還會帶來供電網(wǎng)絡(luò)的電壓降問題,影響電路性能;芯片的寄生效應(yīng)也會隨著溫度的升高而加重,電路時鐘偏差、時序問題也會變得嚴重,甚至引起電路功能的錯誤;溫度升高還會增加系統(tǒng)的噪聲,從而降低系統(tǒng)的噪聲容限。
·散熱問題
芯片正常工作時會產(chǎn)生大量熱量,必須采用有效的散熱措施,否則芯片溫度會迅速增加,從而燒毀芯片甚至影響電子系統(tǒng)的應(yīng)用。一般情況下,可以在封裝過程中通過一些設(shè)計手段實現(xiàn)散熱,陶封器件比塑封器件散熱好一些,但是帶來的成本增加非??捎^。
·設(shè)備需求
目前便攜式電子設(shè)備的使用都依賴于電池供電,而電池的發(fā)展速度還遠不能滿足系統(tǒng)功能的增加和芯片功耗的增長,為了盡可能增加電池的耐久性,改善使用體驗,必須尋找有效的低功耗設(shè)計方法和技術(shù)。
·環(huán)境保護問題
功耗問題歸根結(jié)底是能源問題和環(huán)境問題,探索芯片設(shè)計中有效的低功耗設(shè)計策略,能夠提高電子系統(tǒng)的能源利用率,有利于環(huán)境保護。
導(dǎo)航SoC芯片的功耗可分為處理器功耗、通訊功耗和存儲器功耗,一般將處理器功耗和通訊功耗歸并為邏輯功耗。邏輯功耗由動態(tài)功耗和靜態(tài)功耗組成,動態(tài)功耗主要包含開關(guān)功耗和短路功耗,開關(guān)功耗是指對負載電容充放電引起的功耗,短路功耗是指在信號翻轉(zhuǎn)過程中n管和p管同時導(dǎo)通時的短路電流引起的功耗。靜態(tài)功耗是由泄漏電流引起的功耗,泄露電流主要由4部分構(gòu)成:亞閾值溝道泄露電流Isub、柵極隧穿效應(yīng)電流Igate、有源區(qū)寄生二極管反偏漏電流Idiode、穩(wěn)定狀態(tài)時的偏置電流及比例電路(比例電流源偏置)電流Idc。
隨著特征尺寸的不斷縮小,集成電路的功耗分布有極大的變化,在0.18μm及以上的CMOS工藝中,開關(guān)功耗為芯片的主要功耗,約占總功耗的70%~90%,在40nm CMOS工藝下,靜態(tài)功耗占芯片整體功耗的比例已達到50%。
(1)開關(guān)功耗
當輸入信號 Vin為理想信號,即上升下降時間為0時,隨著輸入信號的跳變,負載電容的充放電過程會產(chǎn)生開關(guān)功耗,如圖1所示。
圖1 開關(guān)功耗示意圖
按照實際工作情況引入開關(guān)活動性α,表示器件在每個周期開關(guān)的可能性。在一個周期T內(nèi),開關(guān)功耗可表達為:
由式(1)可知,當工作頻率一定時,影響開關(guān)功耗的主要因素為供電電壓VDD,負載電容C及開關(guān)活動性α。
·供電電壓VDD
由式(1)可知,供電電壓對開關(guān)功耗影響最大,但供電電壓的降低會影響器件的翻轉(zhuǎn)速率,限制最大工作頻率,降低電路噪聲容限,導(dǎo)致電路性能的下降。
·負載電容C
動態(tài)功耗本質(zhì)上為電路中各節(jié)點電容在電平變化過程中充放電引起的功耗。負載電容的大小跟開關(guān)功耗成正比例關(guān)系。在高跳變率的線網(wǎng)上使用面積更小的標準單元以降低節(jié)點電容,走線盡可能短,并使用寄生參數(shù)較小的低層金屬是降低開關(guān)功耗的有效措施。
·開關(guān)活動性α
RTL編碼設(shè)計完成后,開關(guān)活動性已經(jīng)確定,一般由邏輯綜合工具對仿真波形通過統(tǒng)計的方法提取出來,在功耗預(yù)估中,信號線的開關(guān)活動性典型值為0.2,時鐘的開關(guān)活動性為1。
(2)短路功耗
在實際工作中,輸入信號并不是理想階躍波形,從1到0和從0到1的跳變都需要消耗一定的時間,在跳變過程中,存在n管和p管同時導(dǎo)通的情況,在電源和地之間會形成瞬態(tài)短路電流,如圖2所示。
圖2 短路功耗示意圖
為了簡化分析,設(shè)tr=tf,則短路功耗可表達為:
由式(2)可知,工藝參數(shù)、晶體管尺寸、供電電壓、輸入信號的上升下降時間為影響短路功耗的主要因素。在芯片設(shè)計中,可通過重組大扇出邏輯門結(jié)構(gòu)、調(diào)整邏輯門尺寸使得輸入輸出波形匹配,以減少p管和n管同時導(dǎo)通的時間;在組合邏輯中,靜態(tài)電路的毛刺是造成短路功耗的主要原因,通過在跳變頻率較高的信號線上加寄存器可阻止毛刺的產(chǎn)生及傳遞;在電路中盡量保證信號線網(wǎng)的平衡,減少相互等待。
靜態(tài)功耗主要由泄漏電流引起,泄漏電流包括亞閾值溝道泄露電流Isub、柵極隧穿電流Igate、有源區(qū)寄生二極管反偏漏電流Idiode、穩(wěn)定狀態(tài)時的偏置電流及比例電路(比例電流源偏置)電流Idc。其中偏置電流Idc存在于模擬電路中,在SoC設(shè)計中,模擬電路一般以硬核IP的形式直接應(yīng)用,偏置電流為其固定參數(shù),此文不做討論。因此,泄漏電流示意如圖3所示。
圖3 靜態(tài)功耗示意圖
靜態(tài)功耗可表達為:
·亞閾值漏電流Isub
亞閾值泄露電流是無跳變狀態(tài)下源級和漏極之間的電流。隨著特征尺寸的不斷減小,供電電壓會持續(xù)降低,亞閾值漏電流會急劇增加。
·柵極漏電流Igate
柵極漏電流是無跳變狀態(tài)下由晶體管柵極與襯底之間的載流子隧穿效應(yīng)引起的漏電流。隨著特征尺寸的不斷減小,柵極漏電流隨著柵極氧化物厚度的減小急劇增大,目前一般通過采用高k介質(zhì)來減小越來越嚴重的柵極漏電流。
·源/漏極反偏漏電流Idiode
源/漏極反偏漏電流是無跳變狀態(tài)下源/漏極各自的pn結(jié)上有強大的電場時形成的漏電流。
在穩(wěn)定工作狀態(tài),只要為芯片供電,泄露電流就一直存在。當芯片的設(shè)計工藝確定后,靜態(tài)功耗一般采用查找表的方法,可以建立與其輸入狀態(tài)、溫度、溝道長度等參數(shù)相關(guān)的靜態(tài)功耗多維表格。以SMIC 65 nm為例,不同尺寸的二輸入與門功耗如表1所示[3]。
表1 二輸入與門靜態(tài)功耗查找表
在SoC芯片的設(shè)計中,往往需要頻繁讀寫存儲器,存儲系統(tǒng)功耗日益增加,現(xiàn)在已成為SoC芯片功耗的重要組成部分,存儲器功耗主要包括:(1)程序和數(shù)據(jù)存儲器訪問相關(guān)的功耗;(2)存儲器單元內(nèi)部的功耗。在當前微處理器結(jié)構(gòu)中,存儲器系統(tǒng)的功耗比重可能高達40%[3],因此對存儲器系統(tǒng)的功耗的優(yōu)化非常重要。
目前 SoC芯片中主要有兩種存儲單元的實現(xiàn)方式,一種是通過MemoryCompiler自動生成能夠滿足不同容量、速度和尺寸要求的存儲器模塊,內(nèi)嵌于SoC芯片中;一種是將存儲器裸芯通過SiP形式與SoC芯片封裝進同一個外殼中,以一個整體實現(xiàn)SoC芯片功能,不論哪種形式,存儲器模塊確定以后,其自身功耗是固定的,一般只能從系統(tǒng)架構(gòu)級對功耗進行優(yōu)化。
在SoC設(shè)計中,性能、功耗和面積是相互聯(lián)系和制約的主要因素,需要在整個設(shè)計過程中進行不斷的迭代和折中。在系統(tǒng)級、行為級、RTL級、門級和物理級等各個設(shè)計層次上,可以采用多種低功耗設(shè)計策略,主要如表所示。
設(shè)計層次越高的優(yōu)化策略對功耗的優(yōu)化效果越明顯。系統(tǒng)級優(yōu)化包括軟硬件協(xié)同設(shè)計、存儲器系統(tǒng)的多級cache劃分、外存?zhèn)浞?、算法?yōu)化及協(xié)同綜合等方法。行為級優(yōu)化包括優(yōu)化流水線級數(shù)、最小化指令集、并行操作和優(yōu)化流水線結(jié)構(gòu)、高頻時鐘由內(nèi)部PLL產(chǎn)生、電源管理等方法和存儲器架構(gòu)劃分等方法。RTL級優(yōu)化包括降低器件數(shù)量、操作數(shù)隔離等技術(shù)。門級優(yōu)化包括簡化邏輯和映射電路、利用反相器進行時鐘樹綜合等方法、盡可能使用靜態(tài)邏輯器件、盡量減少活動性高的信號經(jīng)過的標準單元數(shù)量等方法。物理級優(yōu)化包括扇出的優(yōu)化、晶體管大小調(diào)整、分塊時鐘樹和毛刺消除等方法。
表2 典型低功耗設(shè)計策略
根據(jù)第1節(jié)的分析可知,芯片的功耗與工作電壓、開關(guān)頻率和負載電容等因素密切相關(guān),要降低芯片功耗,就必須找到合理的低功耗設(shè)計技術(shù)來減小這些因素的影響。
(1)存儲器(系統(tǒng)級)
常見的存儲系統(tǒng)低功耗策略是從系統(tǒng)架構(gòu)設(shè)計層面上盡可能減少存儲器需求,從算法上盡可能減少存儲器的訪問次數(shù)。另一種有效方法是通過多級cache來實現(xiàn)存儲系統(tǒng)的層次化,并將存儲系統(tǒng)劃分成多個子存儲模塊,有選擇的使能各子模塊,對各子模塊應(yīng)用適當?shù)墓墓芾聿呗?,消除或降低處于閑置狀態(tài)的存儲模塊的功耗[4]。但是這種方法需要增加額外的譯碼邏輯電路,在減少功耗的同時增加了芯片面積,同時后端版圖設(shè)計需面對大量小存儲器模塊,增加了布局和時序收斂難度,增加了可觀的工作量。
(2)門控電壓(行為級)
當芯片的某些模塊不工作時,可以切斷其電源,當這些模塊又要恢復(fù)工作時,再恢復(fù)其供電,這種降低功耗的方法叫做門控電壓技術(shù)[5]。門控電壓技術(shù)大幅減小了模塊漏電流和晶體管的開關(guān)活動,可以有效的降低芯片整體的功耗。但同時也帶來了一些新的設(shè)計挑戰(zhàn),包括電源控制模塊、門控電源網(wǎng)絡(luò)、隔離單元、保持寄存器等單元的設(shè)計。
電源控制模塊是一個用來控制指定模塊電源的關(guān)斷和打開的邏輯電路,需要精確控制其關(guān)斷和打開時間;門控電源網(wǎng)絡(luò)是由大量源漏連接的晶體管組成,其作為電源開關(guān)擺放在常開電源軌和受門控的器件單元之間,當開關(guān)打開的時候,供電電源被連接到模塊中各個邏輯單元上,當開關(guān)關(guān)斷的時候,各個邏輯單元的供電電源被有效的切斷;隔離單元用于在切斷模塊電源后保持一個已知的、穩(wěn)定的輸出,以保證后續(xù)邏輯的正確與穩(wěn)定;快速恢復(fù)斷電前狀態(tài)的方法是可以采用保持寄存器,但保持寄存器比普通寄存器占據(jù)更大的面積,且其中的影子寄存器需要常開電源供電,增加了電源網(wǎng)絡(luò)的復(fù)雜性,另一種辦法是在電源關(guān)斷前將模塊寄存器中的數(shù)據(jù)復(fù)制到模塊外部的存儲器中,當喚醒的時候再復(fù)制回來,但是需要一定的恢復(fù)時間。
門控電源技術(shù)可以結(jié)合多電壓域設(shè)計,不同功能的模塊可以設(shè)計成不同的工作電壓并且在不工作的時候切斷其的電源,靈活的供電策略可以大大減小整顆芯片的功耗。
(3)多電壓(RTL級)
按照第一章的分析,功耗和電壓的平方成比例關(guān)系,如果供電電壓降低50%,功耗會降低75%,在 CMOS電路中動態(tài)功耗和靜態(tài)功耗的總和也基本可以達到這樣的降低幅度,因此,降低功耗最有效方法便是降低整個電路的供電電壓。
SoC芯片中不同的模塊可能會有不同的速度要求,例如,CPU單元和RAM單元一般會比外設(shè)單元工作在一個更快的頻率上。供電電壓的降低可以有效減少功耗,但是會增加標準單元傳輸延遲,限制工作頻率。因此,在RTL設(shè)計階段,會為CPU和RAM分配較高的工作電壓,而對工作頻率較低的模塊分配較小的供電電壓,在保證芯片性能要求的基礎(chǔ)上盡量減小功耗,如圖4所示。
圖4 SoC芯片多電壓分布示意圖
(4)門控時鐘(門級)
在SoC芯片設(shè)計中,當寄存器在很長時間內(nèi)數(shù)據(jù)不發(fā)生變化時,可通過切斷其時鐘輸入來避免寄存器的數(shù)據(jù)翻轉(zhuǎn)和刷新,盡量減少不必要的信號翻轉(zhuǎn),將此段時間內(nèi)相應(yīng)寄存器的動態(tài)功耗理論上減小到0。
門控時鐘是一種成熟的低功耗設(shè)計方法[6],一般的通過標準單元庫中提供的帶門控寄存器來實現(xiàn)。通過綜合工具PowerCompiler自動找出長時間內(nèi)數(shù)據(jù)不發(fā)生變化的數(shù)據(jù)路徑,并在該路徑的時鐘網(wǎng)絡(luò)中合理的位置插入時鐘門控單元,減少不必要的時鐘信號翻轉(zhuǎn),并在邏輯綜合中選用門控時鐘寄存器來替換普通寄存器。門控時鐘對于那些需要在很多時鐘周期保持相同的數(shù)據(jù)的寄存器上應(yīng)用十分有效。關(guān)斷時鐘的輸入會杜絕那些不必要的開關(guān)活動,否則寄存器在每次時鐘到來的時候都要重新載入一遍數(shù)據(jù),造成無謂的電流消耗。門控時鐘屬于門級低功耗設(shè)計方法,不需要增加額外的電源網(wǎng)絡(luò)設(shè)計,也不必對RTL編碼進行修改。
(5)多閾值電壓工藝(物理級)
0.13μm及以下的CMOS工藝都支持不同閾值電壓的晶體管,在這種工藝下,一個標準單元庫可以提供兩種或三種不同閾值電壓的標準單元,在綜合和布局布線時根據(jù)邏輯時序的需要放在不同的位置。例如,一個標準單元庫可以提供兩種反相器:一種由低閾值電壓的晶體管組成,另一種用高閾值電壓的晶體管。低閾值電壓的單元有著更高的速度,但同時存在更大的亞閾值漏電流,靜態(tài)功耗可觀。高閾值電壓的單元有更小的亞閾值電流,但是速度卻變差。在物理設(shè)計實現(xiàn)中,可在滿足性能及速度要求的基礎(chǔ)上,通過功耗優(yōu)化命令在時序裕量較大的路徑上將低閾值器件或者標準閾值器件替換為高閾值器件[7],達到降低功耗的目的。具體命令為:setOptMode-efforthigh optLeakagePower
在超深亞微米導(dǎo)航SoC芯片設(shè)計中,功耗是制約芯片工作頻率、影響芯片功能的主要因素之一。本文在分析SoC芯片功耗重要性的基礎(chǔ)上,詳細研究了SoC芯片中動態(tài)功耗、靜態(tài)功耗和存儲器功耗的基本原理,對供電電壓、信號跳變率、工藝參數(shù)等影響功功耗的主要因素做了分析和討論。最后,分別從系統(tǒng)級、行為級、RTL級、門級和物理級提出了各自有效的低功耗設(shè)計策略。