低功耗芯片設計是本世紀以來最重要的新興設計方法??梢哉f沒有低功耗設計,就沒有今天的智能手機,移動設備,物聯網,及高性能計算等產業。隨著芯片圖形尺寸越來越小,低功耗設計在現在及未來的芯片中會起到越來越重要的作用。低功耗技術也貫穿整個SOC設計的流程,可以預見的是低功耗設計也將越來越重要,所以深入理解低功耗技術是我們芯片設計進階的必經之路。
1. 低功耗設計的目的
1.1 低功耗設計技術的產生
回顧芯片設計發展的三個階段,我們可以發現,不同的技術是為了解決特定問題而產生的:
第一個為解決設計復雜度的階段: 80年代開發的邏輯綜合工具極大得提高了設計效率;
第二個為提高設計規模和頻率的階段: 90年代IP復用讓大規模SOC能快速推出市場,同時時鐘頻率從幾十MHz提高到了GHz。芯片設計也是圍繞著時鐘頻率與時序進行,例如像時序驅動的邏輯綜合及布局布線等。
第三個為低功耗設計階段 。 進入二十一世紀后,人們逐漸認識到單純靠增加時鐘頻率再也不能提高性能了。 相反的,功耗的增加帶來了一系列問題。例如芯片溫度增高引起的散熱及電路性能下降,電源及信號噪聲管理等。本世紀初以來移動設備特別是手機的興起更是引發了低功耗芯片設計的浪潮。
如果不加入低功耗技術,那么功耗發展的趨勢大概如下表所示(可能不是很準確,只是給大家一個直觀的印象):
可以看到,總功耗大概是翻倍的增加。英特爾曾在1999年給出了其處理器功率密度隨著時間的變化如下圖所示。
可以看到,按照當時的發展趨勢(摩爾定律),晶體管的尺寸逐年縮小,芯片上的功率密度將很快達到甚至超過核反應堆甚至火箭噴口的功率密度,這是一個不可控的狀態。因此,當時的業界共識是35納米就是工藝的極限了。
但是事實上,現在的工藝水平已經到了7nm;5nm甚至3nm已經在開發中了。這里面低功耗設計功不可沒,可以說低功耗設計在給摩爾定律續命,也成就了現在半導體的繁榮。
1.2 低功耗設計的目的
功耗(Power)和能量(Energy)是兩個完全不同的概念,但是生活中很多人會把他們混淆起來。我們作為芯片工程師,一定不能犯這種低級錯誤,否則就貽笑大方了。
功耗是一個瞬時的概念,而能量是一個時間內的消耗。
能量=功耗*時間
概念可以自己去查。用一個簡單的圖表示如下:
稍微分析一下就可以知道,比如手機,能量越大(也就是電池越大),使用時間越長。同時如果功率越小,就顯得越不耗電,使用時間就越長。
所以低功耗時間的最直接的目的就是:
這個是大家最直觀的感受。比如手機,現在“充電五分鐘,通話兩小時”已經是標配了。如果是“充電兩小時,通話五分鐘”那場景不忍直視了。
還有,電動汽車,現在的電池容量和續航里程已經是直接的競爭指標了。
記得最深刻的是,當年高通驍龍820就是功耗沒做好,輸給了麒麟920,給了華為麒麟崛起的機會。現在華為手機電池耐用已經深入人心了。可以看到,低功耗技術直接決定商業競爭的成敗,這是“幾千億的大生意”啊(手動狗頭)!
- 提高設備的可靠性
隨著設備消耗能量,會產生熱量。功耗越大,產生熱量越快。如果不能及時散熱,那么設備溫度就會升高。溫度升高可能導致設備不能正常工作甚至損壞。所以有些芯片會在溫度升高時候,把頻率降低,本來能跑2GHz的CPU,溫度高了就只能跑1G,這個以前在用手機玩游戲的時候體驗比較明顯。
- 降低成本
功耗越大,產生熱量越快,對封裝,散熱系統等要求越高。比如,低功耗的只需要塑料封裝就能保證正常功能,高功耗的就可能需要陶瓷封裝,成本自然就高很多。再比如,低功耗的可能自然散熱就能保證正常功能,高功耗的可能需要水冷,加銅片等等,這些都會導致成本上升。
成本的高低直接決定商業的成敗,可能你能做出功能很強的產品,但是如果做出來沒人買的起,或者同等功能下,別的公司成品低很多,那也是一個失敗的產品。
低功耗對芯片的影響還有很多方面??梢哉f現在低功耗技術在芯片設計中已經是不可缺少,并且貫穿芯片設計的前后端整個流程。了解低功耗技術對芯片設計也是極其重要的。
2. 功耗的組成
低功耗技術就是一系列的降低功耗的技術。
在了解低功耗技術之前,我們必須先了解功耗的構成。
一個SOC芯片的功耗由兩部分組成:動態功耗和靜態功耗。
動態功耗是設備運行時或者說信號改變時所消耗的功耗;
靜態功耗是設備上電但是信號沒有改變時所消耗的功耗;
這里要注意的是:在設備運行時,也需要消耗靜態功耗的,因為設備運行時也是上電狀態。功耗分類把靜態功耗單獨拿出來,只是為了理論分析方便。
2.1 動態功耗
動態功耗可以分為:
1.翻轉功耗(有的地方稱為開關功耗,但是筆者認為這個名字不準確,因為開關包含的功耗很多,其實是從英文switching power翻譯過來,從switching可以看到,名稱想表現是動作。所以稱為翻轉功耗比較準確)
- 短路功耗(或者稱為內部功耗,英文是internal power)
2.1.1 翻轉功耗(switching power)
Switching power 是一個門電路對輸出電容進行充電和放電需要的功耗。簡單的說就是一個門電路輸出從0變到1和從1變到0所需要消耗的功耗。
Switching power 是動態功耗最主要的組成部分。
下面是一個CMOS非門(反相器)的門電路,輸出接了一個輸出電容:
清晰一點的符號圖如下:
每次傳輸的能量消耗為:
CL是輸出的電容大小;Vdd是供電電壓。這樣我們可以計算出傳輸的功耗為:
f是傳輸的頻率;Ptrans是輸出翻轉的概率;fclock是時鐘頻率。
這里用fclock*Ptrans=f是合理的,因為時鐘就是輸出是否改變的參考,乘以概率,就是翻轉的頻率。
如果我們定義:
即把電容乘以翻轉概率定義為有效電容,那么我們可以得到經常見到的計算公式如下:
推導過程其實很簡單,但是這個最終的結果卻十分重要。
- Switching power 和電壓,翻轉率,負載電容有關;
- Switching power和數據無關,也就傳輸的數據不會影響翻轉功耗,但是數據的翻轉率會影響翻轉功耗;
- Switching power和傳輸的大小也無關
由這個公式我們很容易得到如果想減少功耗,那么方法就是:
- 降低電壓;
- 降低翻轉率;
- 減少負載電容
當然,這些方法的前提永遠是 芯片的功能要滿足要求 。功率再低,功能不滿足的芯片和板磚有什么區別,起碼板磚還能拍人。
芯片的功能要滿足要求這個基礎就決定了這些方法有一些限制,比如不可能把電壓降到0,不可能讓信號永遠不翻轉,不可能電容減少到0。這些都是前提。
2.1.2 內部功耗(internal power)
內部功耗又可以稱為短路功耗,因為主要原因是由于短路造成的。短路功耗是因為在輸入信號進行翻轉時,信號的翻轉不可能瞬時完成,因此PMOS和NMOS不可能總是一個截止另外一個導通,總有那么一段時間是使PMOS和NMOS同時導通,那么從電源VDD到地VSS之間就有了通路,就形成了短路電流,如下面的反相器電路圖所示:
加上短路功耗后,總的動態功耗如下:
后面的部分就是短路功耗。tsc是短路電流持續的時間,Ipeak是總的短路電流(包含了內部電容充電的電流)
由于傳輸中短路持續的時間特別短,短路功耗相比翻轉功耗來說小很多。所以一般情況下會忽略短路功耗,把翻轉功耗就當作動態功耗,那么動態功耗的簡化公式就是:
但是值得注意的是,有的情況下,還是要考慮短路功耗,比如如何處理門控模塊的懸空的輸出的時候。
2.2 靜態功耗
靜態功耗是由于漏電流引起的,在CMOS 門中,漏電流主要來自4個源頭:
- 亞閾值漏電流(Sub-thresholdLeakage, ISUB): 亞閾值泄漏電流是晶體管應當截止時流過的電流.
- 柵極漏電流(GateLeakage, Igate): 由于柵極氧化物隧穿和熱載流子注入,從柵極直接通過氧化物流到襯底的電流。
- 柵極感應漏電流(GateInduced Drain Leakage, IGIDL): 結泄漏電流發生在源或漏擴散區處在與襯底不同電位的情況下。結泄漏電流與其他泄漏電流相比時通常都很小。
- 反向偏置結泄漏(ReverseBias Junction Leakage ,IREV):由少數載流子漂移和在耗盡區產生電子/空穴對引起。
MOS管的結構圖如下:
漏電流組成如下圖所示:
2.2.1亞閾值漏電流(Sub-thresholdLeakage)
亞閾值漏電流(Sub-thresholdLeakage)發生在CMOS gate沒有完全關斷時。一個比較好的計算公式如下:
W/L是晶體管的尺寸,Vth是熱相關常量;Cox/Vth/W/L都是工藝相關,不可以調整。VGS就是VDD;
VT 是閾值電壓 ;可以看到,閾值電壓越高,漏電功耗就越低。但是閾值電壓越高,對應的翻轉速度就會越慢,延時就會越大,性能就越差。
- 可以通過調整VDD/VT來降低漏電流,從而減少漏電功耗。
- 增加VT會帶來性能損失,只能在滿足功能需求前提下增加VT;
- ISUB只和VDD/VT有關,和信號翻轉這些都沒關系。這是一個工藝強相關的電流,RTL設計對其無影響。
亞閾值泄漏電流隨溫度呈指數增長(Vth)。這大大增加了設計低功率系統的復雜性。即使在室溫下的泄漏是可以接受的,在最壞的情況下,溫度會超過芯片的設計目標。
2.2.2柵極漏電流(Gate Leakage)
柵極泄漏電流發生在一個電壓加到柵上時(例如當門導通時)載流子遂穿通過薄柵介質的情況下。
泄漏電流與介質厚度有極強的關系。工藝中通過選擇合適厚度的介質將柵泄漏電流限制到一個可接受的水平上。泄漏電流還取決于柵極電壓。通過使晶體管堆疊起來并使截止晶體管靠近電源/地線可以使柵泄漏電流減小。
在以往的技術節點中,漏電電流一直以亞閾值漏電為主。但是從90nm開始,門極漏電幾乎是亞閾值漏電的1/3。在某些情況下,在65nm工藝下,它可以等于亞閾值泄漏。低于65nm,high-k介電材料必須進行保持門級泄漏電流檢查,這似乎是唯一有效減少門泄漏電流的方法。
其他兩種流電流占比比較小,所以一般不做分析。有時會把靜態功耗統一為一個公式:
Ipeak為泄露電流,減少靜態功耗的方法就是減小VDD和Ipeak。
2.3 不同結構的功耗組成
SOC中不同結構的對功耗的消耗是不一樣的。有幾個功耗大戶如下:
- 時鐘樹功耗:時鐘樹的功耗通常占整個SOC功耗的40%左右,這是因為時鐘是一直在翻轉的信號,所以動態功耗特別大。所以門控時鐘技術就特別重要。
- CPU: CPU是SOC主控制器,工作時CPU一般都必須要打開,隨著CPU頻率越來越高,功耗也越來越大。所以現在的多核,大小核就比較流行,不同場景下用不同功耗的CPU核;
- GPU: GPU是并行處理單元,由于其算力主要來自多個模塊并行計算,為了正常工作,通常需要很多模塊同時運算,功耗也很大,所以很多SOC都不帶GPU或者默認關掉;
- 存儲器:DDR這些存儲器作為SOC主存也需要時刻使用,也是功耗消耗的大戶。
SOC還有很大其他模塊,但是時鐘樹,CPU/GPU, 存儲器占了絕大部分的功耗。在AI芯片的時代,CCN IP也是功耗的主要來源,和GPU比較類似。
后記
為了方便理解和總結,本文的思維導圖如下:
低功耗技術是SOC芯片設計必須掌握的技術,不是之一。因為我們正處在低功耗芯片設計的時代。如果你不懂低功耗技術,那么可能你就很難理解整個芯片設計中各種做法的原因,甚至很難聽懂別人討論時的“行話”,這些才是最致命的,可能會讓人覺得你還沒“入行”。
版權聲明:
本文作者:烓圍瑋未。主要從事ISP/MIPI/SOC/車規芯片設計
首發于知乎專欄:芯片設計進階之路
轉發無需授權,請保留這段聲明。
評論
查看更多