【導(dǎo)讀】回首2004年,Intel雄心勃勃,宣布代碼為Prescott超長流水線的奔騰4將會發(fā)布4GHz主頻CPU,但最后結(jié)果是因為種種原因止步于3.8GHz。其后主頻不進反退,直到到代號Haswell的酷睿4代(4790K)才真正站上4GHz,繼任的broadwell, Skylake, Kabylake和Coffeelake對頻率提高又變得無所作為。時間走過了十幾年,為什么CPU主頻不能繼續(xù)提高呢?究竟發(fā)生了什么?我們是不是已經(jīng)頂?shù)筋l率天花板了呢?
通過前一篇文章(CPU制造的那些事之二:Die的大小和良品率),我們知道想要提高CPU的運算效能,不能夠簡單通過堆砌內(nèi)核的方式。那么能不能簡單提高CPU主頻,讓CPU每個內(nèi)核更快的算出結(jié)果呢?為什么持CPU制程牛耳的Intel,不再勇攀主頻高峰了呢?其實,瓶頸主要在于散熱,我們來詳細(xì)了解一下個中原因。
為什么CPU會發(fā)熱
從含有1億4000萬個場效應(yīng)晶體管FET的奔騰4到高達(dá)80多億的Kabylake,Intel忠實的按照摩爾定律增加著晶體管的數(shù)目。這么多個FET隨著每一次的翻轉(zhuǎn)都在消耗者能量。一個FET的簡單示意圖如下:
當(dāng)輸入低電平時,CL被充電,我們假設(shè)a焦耳的電能被儲存在電容中。而當(dāng)輸入變成高電平后,這些電能則被釋放,a焦耳的能量被釋放了出來。因為CL很小,這個a也十分的小,幾乎可以忽略不計。但如果我們以1GHz頻率翻轉(zhuǎn)這個FET,則能量消耗就是a × 10^9,這就不能忽略了,再加上CPU中有幾十億個FET,消耗的能量變得相當(dāng)可觀。
耗能和頻率的關(guān)系
從圖示中,也許你可以直觀的看出,能耗和頻率是正相關(guān)的。這個理解很正確,實際上能耗和頻率成線性相關(guān)。能耗關(guān)系公示是(參考資料2):
P代表能耗。C可以簡單看作一個常數(shù),它由制程等因素決定;V代表電壓;而f就是頻率了。理想情況,提高一倍頻率,則能耗提高一倍??雌饋聿⒉皇謬?yán)重,不是嗎?但實際情況卻沒有這么簡單。
我們這里要引入門延遲(Gate Delay)的概念。簡單來說,組成CPU的FET充放電需要一定時間,這個時間就是門延遲。只有在充放電完成后采樣才能保證信號的完整性。而這個充放電時間和電壓負(fù)相關(guān),即電壓高,則充放電時間就短。也和制程正相關(guān),即制程越小,充放電時間就短。讓我們?nèi)コ瞥痰母蓴_因素,當(dāng)我們不斷提高頻率f后,過了某個節(jié)點,太快的翻轉(zhuǎn)會造成門延遲跟不上,從而影響數(shù)字信號的完整性,從而造成錯誤。
這也是為什么超頻到某個階段會不穩(wěn)定,隨機出錯的原因。那么怎么辦呢?聰明的你也許想到了超頻中常用的辦法:加壓。對了,可以通過提高電壓來減小門延遲,讓系統(tǒng)重新穩(wěn)定下來。
讓我們回頭再來看看公式,你會發(fā)現(xiàn)電壓和功耗可不是線性相關(guān),而是平方的關(guān)系!再乘以f,情況就更加糟糕了。我們提高頻率,同時不得不提高電壓,造成P的大幅提高!我們回憶一下初中學(xué)過的y=x^3的函數(shù)圖:
Y在經(jīng)過前期緩慢的提高后在a點會開始陡峭的上升。這個a就是轉(zhuǎn)折點,過了它,就劃不來了。功耗和頻率的關(guān)系也大抵如此,我們看兩個實際的例子:
i7-2600K頻率和功耗的關(guān)系
Exynos頻率和功耗的關(guān)系
從ARM和X86陣營來看,他們能耗曲線是不是和冪函數(shù)圖很像?
不可忽視的其他因素
現(xiàn)實情況比這個更復(fù)雜。實際上,上面公式里的P只是動態(tài)能耗。CPU的整體功耗還包括短路功耗和漏電功耗:
短路功耗是在FET翻轉(zhuǎn)時,有個極短時間會有電子直接跑掉。它和電壓、頻率正相關(guān)。
漏電功耗是電子穿透MOSFET的泄漏情況,它和制程與溫度有關(guān)。
綜合這些,我們看一個實際的例子:
這里的Transition Power就是動態(tài)能耗,可以看出它隨著頻率陡峭上升;短路功耗和頻率幾乎呈現(xiàn)線性關(guān)系;而Static power就是指漏電功耗,它也上升是因為頻率上升導(dǎo)致溫度上升,從而漏電加重。
我們這里引入熱密度的概念,即單位面積發(fā)出熱的數(shù)量。從此圖看出,隨著頻率的提高,各種因素綜合疊加導(dǎo)致功耗上升嚴(yán)重,而芯片尺寸不變,從而熱密度提高很快,現(xiàn)有散熱設(shè)備短時間內(nèi)排不出這么多熱量,就會造成死機等現(xiàn)象(CPU風(fēng)扇停轉(zhuǎn)后會發(fā)生什么?CPU憑什么燒不壞)。這也是為什么超頻往往需要很好的散熱設(shè)備的原因(手把手來超頻一:升級散熱系統(tǒng))。
一個腦洞
我們最后開一個腦洞:假設(shè)沒有散熱問題,沒有門延遲,一個完美的世界里,頻率有上限嗎?這是個很有意思的思考。大家都知道電信號在導(dǎo)線里的傳播速度很快,接近光速。我們這里就取光速:每秒30萬公里。相信每個略微了解相對論的人都知道光速是物理極限,我們這里不討論科幻問題。因為沒有門延遲,電信號以光速傳播。光速,這個數(shù)字很大,但我們的頻率可是以G為單位,就是10^9,也非常大。在1GHz的情況下,電信號只能傳播30cm!10GHz的話,才能傳播3cm。晶圓大小是300mm,如果我們做出個和它一樣大的CPU,也許最高頻率只有1GHz。而現(xiàn)在CPU的die大小差不多1cm,所以理論上30GHz是極限頻率!
結(jié)論
經(jīng)由液氮制冷的加持,CPU的頻率在極限玩家的幫助下才能挑戰(zhàn)9GHz。這對于我們?nèi)粘k娔X用戶來說十分遙遠(yuǎn),在可以預(yù)見的未來,CPU頻率因為熱密度的關(guān)系并不會大幅提高,我們可能永遠(yuǎn)也看不到10GHz的硅基CPU。也許只有在拋棄硅或者轉(zhuǎn)換到量子計算,CPU頻率才會有翻天覆地的變化。
這并不意味著CPU效能的止步不前,實際上目前的CoffeeLake 3.8G的CPU相比奔騰4的3.8G,Benchmark跑下來效能提高了十幾倍,而功耗反倒下降不少!這全拜改進架構(gòu)的福。在吸取了基于netburst深度流水來提高主頻,卻被“譽為”高頻低能的奔騰4教訓(xùn)后,這也是Intel等芯片制造商努力的方向。
推薦閱讀: