一、前言
如今注重可持續(xù)發(fā)展和節(jié)能環(huán)保的社會背景下,超低功耗MCU(Microcontroller Unit)作為一種領(lǐng)先的技術(shù),被廣泛應(yīng)用于生活中的節(jié)能要求。隨著無線手持終端和物聯(lián)網(wǎng)的發(fā)展,無線終端、智能電話、智能手表、物聯(lián)網(wǎng)模塊、智能水表電子產(chǎn)品都宣稱比以往先進(jìn)。手持消費(fèi)類產(chǎn)品和物聯(lián)網(wǎng)設(shè)備要求產(chǎn)品有豐富的功能、卓越的性能、小型化,在電池電量有限的情況下還要保持長續(xù)航;靜態(tài)與動態(tài)功率需求是電源管理的關(guān)鍵,同時也是設(shè)計(jì)人員面臨的挑戰(zhàn)。
現(xiàn)在低功耗芯片的應(yīng)用場景越來越廣,很多工程師朋友在產(chǎn)品開發(fā)過程中遇到不少問題,那怕最后問題解決了,也是知其然而不知其所以然。下面帶大家來了解低功耗芯片的工作和設(shè)計(jì)原理,通過講解芯片設(shè)計(jì)中應(yīng)用了哪些技術(shù)來揭開它的神秘面紗。
二、芯片功耗原理分析
芯片的功耗主要由動態(tài)功耗與靜態(tài)功耗兩部分組成,動態(tài)功耗是指信號發(fā)生改變時所消耗的功耗,靜態(tài)功耗信號沒有改變時所消耗的功耗。功耗本質(zhì)上就是電學(xué)術(shù)語中的功率,不同于一般簡單的電學(xué)器件,芯片的整體功耗很難通過簡單的電流,電壓或者電阻值的的相乘來計(jì)算。
其原因在于芯片作為具有復(fù)雜功能的器件,其功耗會根據(jù)其不同時段的不同行為和不同的外部條件而發(fā)生很大的變化。在實(shí)際設(shè)計(jì)中一般會選取一些特定的條件,并輔以特定的功能設(shè)定來計(jì)算芯片的功耗。
1. 靜態(tài)功耗(Static Power),又稱漏電流功耗(Leakage Power)。其原理請參見下圖:
PMOS Leak 電流示意圖
上圖中紅色箭頭表明了在通電狀態(tài)下PMOS內(nèi)主要的泄露電流及其走向,意即:
泄漏電流(Leakage Current)= 漏極->N-Well + Gate->N-Well + 源極->漏極
泄露電流形成原因在MOS管中的多種摻雜區(qū)形成導(dǎo)電區(qū)域,同時這些區(qū)域會組成多個PN節(jié),從而在通電后形成一系列微小的電流。
盡管在現(xiàn)今芯片的工作電壓已經(jīng)很低的前提下,每個MOS管的漏電流很小,但由于每顆芯片中集成的晶體管至多幾億甚至幾十億,積少成多,導(dǎo)致芯片的整體leakage power變得越來越恐怖。
后端設(shè)計(jì)中每個標(biāo)準(zhǔn)單元(standard cell)的leakage都集成在其liberty庫文件(.lib)中,因此計(jì)算leakage power只需在制定條件下將design中所有的標(biāo)準(zhǔn)單元(包括各種Macro)的leakage值相加即可。目前所有的主流PR工具對此都有支持。需要指出的是,由于一個標(biāo)準(zhǔn)單元的leakage power和其面積成正比,因此在實(shí)際后端設(shè)計(jì)的各個階段,尤其是low power設(shè)計(jì)中,一般會重點(diǎn)關(guān)注芯片中邏輯門的面積變化并以此快速推斷design的leakage功耗變化。
2. 動態(tài)功耗(Dynamic Power),主要包含翻轉(zhuǎn)功耗與短路功耗兩個部分,翻轉(zhuǎn)功耗是指電平翻轉(zhuǎn)對負(fù)載電容進(jìn)行充放電時消耗的功耗;短路功耗是指PMOS和NMOS存同時導(dǎo)通時構(gòu)成通路,形成短路電流。
翻轉(zhuǎn)功耗(Switching Power)是由充放電電容引起的動態(tài)功耗,當(dāng)芯片中的電路出現(xiàn)任何信號翻轉(zhuǎn)都會產(chǎn)生dynamic power,其中所占最大比例的就是clock信號的翻轉(zhuǎn)。下圖展示了一個反相器(inverter)在信號翻轉(zhuǎn)時的簡單模型:
Inverter Dynamic Power Consumption
當(dāng)我們把反相器簡化成一個簡單的rc電路時,就可以清晰的看清充放電時的電流走向。當(dāng)芯片處于工作狀態(tài)時,每一個工作中的標(biāo)準(zhǔn)單元都會隨著clock or/and data的翻轉(zhuǎn)而不斷重復(fù)上述過程,從而產(chǎn)生大量的動態(tài)功耗。
短路功耗(Internal Power)又可以稱為內(nèi)部功耗 ,主要原因是直接通路電流引起的功耗,即短路造成的。
短路功耗是因?yàn)樵谳斎胄盘栠M(jìn)行翻轉(zhuǎn)時,信號的翻轉(zhuǎn)不可能瞬時完成。因此PMOS和NMOS不可能總是一個截止另外一個導(dǎo)通,總有那么一段時間是使PMOS和NMOS同時導(dǎo)通;電源VDD到地VSS之間就有了通路,就形成了短路電流。
三、芯片功耗計(jì)算方法
數(shù)字芯片CMOS電路中功耗分為靜態(tài)功耗和動態(tài)功耗,動態(tài)功耗是由內(nèi)部功耗和開關(guān)功耗組成的;其中動態(tài)功耗的分析依賴于前端VCS功能仿真提供的包含Switching Activity信息的FSDB波形文件或者SAIF文件。
低功耗方法學(xué)是一項(xiàng)非常重要的學(xué)習(xí)內(nèi)容,在數(shù)字芯片設(shè)計(jì)中可以利用UPF對power domain進(jìn)行系統(tǒng)性的管理,從而提高芯片的能效比。
帶UPF的低功耗設(shè)計(jì)流程中包括了前端 VCS-NLP 功能仿真和后端 VC LP 靜態(tài)驗(yàn)證,在DC綜合和ICC2布局布線中插入標(biāo)準(zhǔn)低功耗單元,每個標(biāo)準(zhǔn)單元(standard cell)的leakage都集成在其liberty庫文件(.lib)中。Signoff階段的Formality邏輯等價性檢查以及PTPX功耗分析等。
電源控制cell基本就五種類型:Level Shifter,Isolation Cell,Power Switches(MTCMOS),Retention Registers和Always-on Logic。其中AO包含buffer和inverter,一種取反一種不取反(新工藝庫都包含這兩種)。各種類型的低功耗技術(shù)所需的cell如下圖所示:
1. 靜態(tài)功耗(leakage power)只需在制定條件下將design中所有的標(biāo)準(zhǔn)單元(包括各種Macro)的leakage值相加即可。需要指出的是,由于一個標(biāo)準(zhǔn)單元的leakage power和其面積成正比,因此在實(shí)際后端設(shè)計(jì)的各個階段,尤其是low power設(shè)計(jì)中,一般會重點(diǎn)關(guān)注芯片中邏輯門的面積變化并以此快速推斷design的leakage功耗變化。
2. 動態(tài)功耗(Dynamic Power)由于和芯片的功能息息相關(guān),因此在計(jì)算的時候會引入翻轉(zhuǎn)率(toggle rate)的概念。翻轉(zhuǎn)率是衡量單位時間內(nèi)device上信號翻轉(zhuǎn)時間所占的比率。在實(shí)際計(jì)算dynamic功耗的時候,又會分成兩個部分。一部分為標(biāo)準(zhǔn)單元內(nèi)部的dynamic功耗,又名Internal Power,這部分的計(jì)算是嵌入liberty庫文件內(nèi)部,通過標(biāo)準(zhǔn)單元的input transition和output load來查表得到的;另一部分為互連線(net)上的dynamic功耗,這部分的計(jì)算通過將所有net上每個翻轉(zhuǎn)周期的功耗乘以其翻轉(zhuǎn)率并相加得到。反轉(zhuǎn)率通過某種固定格式的文件傳入EDA工具,比較常用的格式有SAIF(Switching Activity Interchange Format)、VCD(Value Change Dump)以及FSDB(Fast Signal Database)文件。
四、低功耗芯片常用技術(shù)
1. 多電壓域(Multi-Voltage )
多電壓域設(shè)計(jì)思想就是讓SOC內(nèi)的每個模塊/IP根據(jù)自己的需要,工作在不同電壓域,這樣可以減少所有模塊共電壓域造成的功耗浪費(fèi)。
信號在不同電壓域間進(jìn)行傳輸時,可能會存在驅(qū)動不足或者過驅(qū)動的問題。當(dāng)一個低電壓域的信號去驅(qū)動高電壓域的cell時,欠驅(qū)動力的信號不僅增加了輸入端的上升時間和下降時間,增加短路電流的持續(xù)時間,還會使時序變差;為了解決這個問題,需要在不同電壓域之間添加level-shifter(電平轉(zhuǎn)換器),它可以實(shí)現(xiàn)將某個電壓域的輸出電平轉(zhuǎn)換成另一個電壓域可以識別的邏輯電平。
2. 電源門控(MTCOMS Power Gating)
隨著工藝技術(shù)的發(fā)展,由漏電流所產(chǎn)生的功耗所占的總功耗比例越來越大;希望移動設(shè)備中的SoC芯片在休眠模式下盡量節(jié)省功耗的設(shè)計(jì)來說,最好的辦法是將處于休眠模式狀態(tài)的模塊的供電電源,關(guān)斷而保持其它模塊的正常供電,這種技術(shù)叫電源門控技術(shù)。
電源門控一般有兩種方法:
內(nèi)部電源門控(on-chip power gating);內(nèi)部電源門控是指在芯片內(nèi)部用一些專門的邏輯單元如電源門控單元來控制所選模塊的供電情況。
外部電源門控(external power gating);實(shí)現(xiàn)電源門控最基本的方法,適于消耗漏電功耗較少但關(guān)斷時間較長的設(shè)計(jì)。例如一個SoC系統(tǒng)在板極上有CPU的專用電源,這個電源只提供電壓給CPU;外部電源門控技術(shù)就是,可以關(guān)閉這個電源以使CPU在非活動狀態(tài)時漏電功耗減小到零。
3. 多電壓+功耗控制+寄存器Retention技術(shù)
多電壓域與電源門控的混和應(yīng)用加在上寄存數(shù)據(jù)能夠提高系統(tǒng)的響應(yīng)時間。
芯片系統(tǒng)中的各個模塊都可以工作在不同的電壓下,同時某些模塊的供電電源還可以切斷,并且在電源切斷的情況下還要保持掉電之前的狀態(tài);因此這就需要引入Retention寄存器,當(dāng)?shù)綦姾蟮哪K再次上電后,至少經(jīng)過一個時鐘周期,之前掉電的模塊就可以恢復(fù)到掉電之前的正常狀態(tài)。
4. 低電壓standby(Low-VDD Standby)
在低功耗芯片內(nèi)核中有一個電壓域的供電電壓值VDD為0.6V,并且使用該供電電壓VDD為0.6V的模塊一直都處于Always-On狀態(tài)。
在某種情況下芯片中的其他模塊需要進(jìn)入sleep狀態(tài),這時候可以使用較低的電壓來保持芯片可以工作,同時在0.6V電壓域中放置一個小的控制單元(假如為一個小的CPU);一旦當(dāng)系統(tǒng)需要全速工作,這時候我們可以用0.6V電壓域中的小的控制單元去喚醒其他模塊。
5. 動態(tài)電壓頻率調(diào)節(jié)(DVFS,DVS,AVS,AVFS)
自適應(yīng)的電壓頻率調(diào)節(jié)技術(shù),根據(jù)系統(tǒng)中電壓和工作頻率之間的關(guān)系,可以有效的降低系統(tǒng)功耗。實(shí)現(xiàn)最優(yōu)化性能和功耗之間的平衡,但需要考慮電壓和頻率變化對時序和穩(wěn)定性的影響問題。更多詳細(xì)內(nèi)容請看《芯片動態(tài)電壓頻率技術(shù)原理》。
6. 多閾值工藝(Well Biasing)
多閾值電壓設(shè)計(jì)的策略是:對于性能要求高的模塊,或者頻率比較高的部分,采用閾值電壓比較低的cell,以減少單元門的延遲;對于性能要求較低的模塊,或者頻率較低的部分,多采用閾值電壓比較高的cell,讓功耗更低。通過這種方法,可以實(shí)現(xiàn)在同一塊芯片上,根據(jù)性能和功耗的不同要求而調(diào)整cell的使用,從而避免在不太重要的功能上浪費(fèi)過多的功耗。
工藝中存在著不同的cell類型,cell 類型的速度、電壓和漏電可以用下表表示:低閾值的標(biāo)準(zhǔn)邏輯單元:速度快、漏電流大;高閾值的標(biāo)準(zhǔn)邏輯單元:速度慢、漏電流小。
通過改變器件背柵的電壓,體偏置技術(shù)可以動態(tài)地控制器件的門限電壓。過去通過復(fù)雜的摻雜技術(shù)來控制的門限電壓參數(shù),現(xiàn)在可以通過軟件來編程從而實(shí)現(xiàn)動態(tài)的控制。設(shè)計(jì)者可以利用這種功能來動態(tài)地管理產(chǎn)品的漏電狀況,有效地補(bǔ)償制程和環(huán)境溫度等效應(yīng)造成的影響。
7. 柵極(Gate)
MOSFET結(jié)構(gòu)有三個極,分別是源極(Source),漏極(Drain),柵極(Gate),可以理解成電流從源極進(jìn)去,從漏極出來,而柵極相當(dāng)于水龍頭的作用,加電壓就形成導(dǎo)通,沒有電壓就關(guān)斷(這是常關(guān)型MOS特性,如果是常通型MOS則是加負(fù)電壓關(guān)斷)。形成導(dǎo)通和關(guān)斷就能代表0和1,這就是計(jì)算機(jī)的基礎(chǔ)工作原理,對,0和1,二進(jìn)制,德國數(shù)學(xué)家萊布尼茨發(fā)明的,其還發(fā)明了微積分。
柵極的開關(guān)速度和開啟/關(guān)斷的閾值電壓,決定了晶體管工作的頻率,速度,柵極大小和功耗密切相關(guān),柵極越小,溝道就越小,但是溝道越小就更容易漏電,因此得到更高頻率更好性能的芯片,帶來的副作用就是面臨更大損耗,同時發(fā)熱量也越大。
柵極厚度,大小,結(jié)構(gòu)和材料,很大程度上決定了晶體管的極限工作狀態(tài)下的開關(guān)速度,頻率以及功耗大小,換柵極材料就能繼續(xù)提高晶體管的性能和控制功耗。
8. 疊加效應(yīng)(Stack Effect)
疊加效應(yīng)可以將一個MOS管強(qiáng)制拆分成2個堆疊的MOS管,2個串聯(lián)的MOS管有相同的輸入。
效果:從圖中可以看到,在采用Two-stack的MOS管之后,在休眠狀態(tài)下,Low-Vt的管子leakage power至少降低了2個數(shù)量級(從1降低到1e-2以下),而High-Vt的管子leakage power至少降低了3個數(shù)量級(從1e-1降低到1e-4以下)。
注意:其實(shí)這是在leakage power與速度之間的折衷,最好將這種技術(shù)應(yīng)用到那些有timing slack的單元上,對于timing critial path不能使用。
9. 門控時鐘(Clock Gating)
芯片中翻轉(zhuǎn)率最高的路徑就是clock path,clk path上的功耗消耗會占據(jù)到整個芯片功耗比例的40%甚至更多。clock經(jīng)pll 和預(yù)分頻器輸出后,后面會驅(qū)動成千上萬寄存器,并且為了增加clock的驅(qū)動能力,在clock path上會插入許多buffer,而clock 每個cycle翻轉(zhuǎn)就會帶動整條path上所有cell 翻轉(zhuǎn)。如果當(dāng)某一個subsys 或者module 不工作時clock仍在toggle,那么就會產(chǎn)生很大的功耗浪費(fèi)。
如果能夠根據(jù)系統(tǒng)或者任務(wù)的需要對clock 做動態(tài)的關(guān)斷就能極大地節(jié)省功耗消耗,這種對clock 進(jìn)行關(guān)斷的技術(shù)就是clock gating(時鐘門控)。如上圖,clock gating 技術(shù)主要就是在原來的clock path上加入enable 信號,使 clock 在滿足一定條件后才能往后傳輸。這種方法可以減少信號翻轉(zhuǎn)和短路電流,但需要考慮時鐘網(wǎng)絡(luò)的設(shè)計(jì)、時鐘分布的平衡和時鐘毛刺的消除問題。
五、結(jié)語
UPF(Unified Power Format)用來描述芯片設(shè)計(jì)中的低功耗意圖,包括芯片工作的“電特性”、工作電壓、電壓的開關(guān)、低功耗cell插入的策略和芯片的power state等。低功耗設(shè)計(jì)流程中加入U(xiǎn)PF可以保證功耗意圖在IC設(shè)計(jì)中的一致性,使低功耗意圖在仿真驗(yàn)證、邏輯綜合、物理實(shí)現(xiàn)、等價性驗(yàn)證和最終簽核更容易實(shí)現(xiàn)。
1. 芯片的功能及時序設(shè)計(jì)與優(yōu)化已相對成熟,但功耗上的優(yōu)化還有很多空間可做。
2. 功耗會影響電路性能、芯片散熱、芯片可靠性的問題;電池容量的增加相對有限,而且受到安全因素的限制。
3. 降低功耗方法還能提高工藝,使用新型低功耗器件和材料;減少晶體管尺寸,如從40nm、28nm到14nm、7nm等。用先進(jìn)工藝要做好性能和成本的平衡,詳細(xì)請看《芯片設(shè)計(jì)、流片、驗(yàn)證、成本的那些事!》