當前位置:
首頁 > 科技 > CPU是怎麼調節輸入電壓的?為什麼要這麼做?

CPU是怎麼調節輸入電壓的?為什麼要這麼做?

CPU是怎麼調節輸入電壓的?為什麼要這麼做?

有朋友問我CPU的核心電壓Vcore是多少,我的答案是大概1V左右。這個回答引起了爭議,」到底是左還是右,計算機科學這種事可容不得模糊!「,我也很無奈,核心電壓是個動態變化的過程,會隨著運行頻率不同會被動態調節,1V只是個中位數。核心電壓也曾經小而美,但隨著CPU電源管理的演進早已十分複雜。今天我們就一起來了解一下為什麼要隨著頻率不同而改變電壓?怎麼和由誰改變電壓?電壓調節的演進等等,也就是從Why,How,Who和When來全面掌握CPU電壓調節的知識。


WHY?為什麼要調節電壓?

除了提供更高的性能之外,CPU們的戰場還有一個:誰的能效比更好。現代CPU往往採用低電壓大電流的供電方案,也是為了改善能效比:低電壓帶來低功耗。要理解這點,要從原理上談起。

從含有1億4000萬個場效應晶體管FET的奔騰4到高達80多億的Kabylake,Intel忠實的按照摩爾定律增加著晶體管的數目。這麼多個FET隨著每一次的翻轉都在消耗者能量。一個FET的簡單示意圖如下:

CPU是怎麼調節輸入電壓的?為什麼要這麼做?

當輸入低電平時,CL被充電,我們假設a焦耳的電能被儲存在電容中。而當輸入變成高電平後,這些電能則被釋放,a焦耳的能量被釋放了出來。因為CL很小,這個a也十分的小,幾乎可以忽略不計。但如果我們以1GHz頻率翻轉這個FET,則能量消耗就是a × 10^9,這就不能忽略了,再加上CPU中有幾十億個FET,消耗的能量變得相當可觀。

從圖示中,也許你可以直觀的看出,能耗和頻率是正相關的。這個理解很正確,實際上能耗和頻率成線性相關。能耗關係公示是(參考資料1):

CPU是怎麼調節輸入電壓的?為什麼要這麼做?

P代表能耗。C可以簡單看作一個常數,它由製程等因素決定,製程越小,C越小;V代表電壓,和P是二次方的關係;而f就是頻率了。理想情況,提高一倍頻率,則能耗提高一倍。而V的冪函數關係對P來說更至關重要。

通俗的來講,CPU可以看作由幾十億到上百億個小開關組成的。開關切換的速度f決定了計算機的性能。為了高性能,必須提高開關速度f,這才是大家關心的。而V則因為省電的原因越小越好。那為什麼不把v定成很低很低呢?

我們這裡要引入門延遲(Gate Delay)的概念。簡單來說,組成CPU的FET充放電需要一定時間,這個時間就是門延遲。只有在充放電完成後採樣才能保證信號的完整性。而這個充放電時間和電壓負相關,即電壓高,則充放電時間就短。也和製程正相關,即製程越小,充放電時間就短。讓我們去除製程的干擾因素,當我們不斷提高頻率f後,過了某個節點,太快的翻轉會造成門延遲跟不上,從而影響數字信號的完整性,從而造成錯誤。這也是為什麼超頻到某個階段會不穩定,隨機出錯的原因。那麼怎麼辦呢?聰明的你也許想到了超頻中常用的辦法:加壓。對了,可以通過提高電壓來減小門延遲,讓系統重新穩定下來。

也就是說,為了省電,要降低V,但為了達到數G的主頻,而不得不提高電壓V到一個可以接受的最小值,達到一個平衡。

我們來總結一下,對於一定頻率,需要保證一定的最低電壓,雖然不同晶元這個值不同,但同一種晶元卻有著明確的對應關係,我們把它叫做頻率電壓對照表T1。它是一個靜態表,T1往往存貯在PCU裡面。PCU是什麼我們今後再介紹。


怎麼和由誰改變電壓?

在曾經那個什麼都很簡單的年代,CPU一開機就是一個頻率,當然沒有動態調整電壓的需求,這一切隨著EIST的引入而不得不發生了改變。

有了EIST,隨著工作量不同,操作系統可以動態調節頻率。而光調頻率不調電壓,節能的目的就大半浪費了。於是Intel提出來VRM(Voltage Regulator Module, 電壓調節模塊)標準,對位於主板上的VRM建立了標準,以期規範其電氣特性和CPU和VRM的通訊協議。

CPU是怎麼調節輸入電壓的?為什麼要這麼做?

圖片出自參考資料3

VRM負責將8/4 pin的CPU 12V供電轉成CPU的低電壓輸入。最新的VRM已經是11.1了,可以在Intel官網上下載到,我也在參考資料2裡面附上了它的鏈接。

對於其中的電氣標準我們這裡不再詳述,CPU和VRM如何通訊才是我們感興趣的地方:

CPU是怎麼調節輸入電壓的?為什麼要這麼做?

CPU是怎麼調節輸入電壓的?為什麼要這麼做?

可以看到,CPU傳入VID給VRM,VRM根據VID給出不同的Vcore。VID原來有5 bit,現在被擴展到了8 bit。不同的VID根據標準對應不同的電壓,對應關係太長,我這裡只列出最大和最小值:

CPU是怎麼調節輸入電壓的?為什麼要這麼做?

CPU是怎麼調節輸入電壓的?為什麼要這麼做?

有同學會問最小值只有0.03125v, 這麼小能夠驅動CPU內核嗎?這個是理論上VRM可以提供的最小值,而真實條件下,PCU並不會輸入11111101的VID值。

電壓調節模塊VRM根據傳入參數不同,根據標準提供不同的電壓。那麼誰來提供VID呢?還記得我們前面說的表T1嗎?PCU在改變頻率的同時,根據頻率找到響應VID,傳給VRM來得到相應電壓。


VRM在哪裡?

看到VRM有spec,有些人認為它是一個模塊,實際上它是由幾部分組成的:

CPU是怎麼調節輸入電壓的?為什麼要這麼做?

圖片出自參考資料3

包括MOSFETs,Chokes(電感), 電容和PWM晶元。 PWM晶元實現了VID==>電壓的邏輯,常見的是ISL6334,支持VRM 11.1標準。

最開始VRM只有一個,給CPU內核供電。隨著北橋和GPU被集成進CPU,VRM也由一個變成了5+1,分別是給CPU的:Core VR、Graphics VR、PLL VR、System Agent VR和IO VR,加上另外的內存VR。

高端VRM效果不錯,但低端主板VRM十分糟糕,Intel在Haswell將為CPU服務的VRM全部集成進了CPU,變成了FIVR(Fully Integrated Voltage Regulator,全集成式電壓調節模塊)或者ISVR(Integrated Silicon Voltage Regulator),只在主板上留下了為內存服務的VR:

CPU是怎麼調節輸入電壓的?為什麼要這麼做?

FIVR的電氣特性很好,同時也大大簡化了主板的設計,收到很大歡迎。但是因為發熱的問題,後期被移出CPU,再後面又被重新加入。FIVR不可或缺的一個重要原因是如果希望CPU中各個內核工作頻率不同,又要省電,最好它們都有自己的VR,FIVR可以做到這一點,每個core都有自己的Vcore:

CPU是怎麼調節輸入電壓的?為什麼要這麼做?

這也是現在EIST和睿頻的Domain不再是整個CPU的一個原因。


超頻怎麼辦?

VR都被集成進CPU變成FIVR了,超頻需要的加壓怎麼辦?其實還可以做:

CPU是怎麼調節輸入電壓的?為什麼要這麼做?

FIVR需要的輸入電壓VccIn可以提高,這樣他們給出的VccCorex也就會相應提高。


結論

CPU的核心電壓Vcore隨運行頻率不同,在1V左右波動。CPU內部的各個內核的Vcore因為它們頻率不同,也不一樣。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!

TAG: |