做一個性能超強的單核CPU在技術上可行嗎?
CPU的的單核性能有多重要,這個不用再重複了,但是CPU的單核性能可以無限增加下去嗎?回答這個問題之前,先說一個小故事吧。很多年前VIA威盛還可以跟英特爾硬剛,那時候是Pentium 4時代,英特爾在CPU頻率不斷突破1GHz、2GHz、3GHz之後要做更高頻率的CPU,放言稱奔4頻率上4GHz,後來就有了英特爾前任CEO巴瑞特下跪的一幕,因為英特爾在奔4時代並沒有如承諾的那樣推出4GHz高頻的產品。
但是很多人不知道的是,4GHz並不是英特爾當時的最終目標,2001年的IDF會議上英特爾曾經表示奔4處理器可以上10GHz頻率。如今18年過去了,這個目標一直都沒實現,(矽基時代)可能永遠都無法實現了。
這件事就能說明CPU頻率不是想提升就提升的,奔4時代過去這麼多年了,其實CPU的主流頻率依然在4GHz左右,英特爾雖然在酷睿i7-8086K上首次實現官方5GHz頻率,但絕大多數處理器日常使用的頻率都沒這麼高,高負載下頻率在4GHz出頭就不錯了。
制約單核性能超強的CPU出現的第一個問題就是頻率無法大幅提升,而這個因素也跟現在的製程工藝有關,實質上是摩爾定律已經失效了,這個影響了半導體行業50年的金科玉律隨著矽基芯片物理極限的到來已經失效了,從28nm節點之後其實就沒有帶來很大的性能改進了,而且功耗問題也越來越嚴重。
大家都知道理論上製程工藝越先進(製程數字越小),CPU性能會更高,功耗、發熱會更低,但是實際上這個問題很複雜,CPU的功耗可以分為靜態功耗(Static Power)及動態功耗(Dynamic Power),前者主要是漏電流引起的,製程越先進,漏電流又有增加的趨勢,而動態功耗可以用1/2*CV2F這個公式來計算,F頻率越高,動態功耗就越高。
為了上更高的頻率,電壓增加不可避免,但電壓高了功耗也高了,總之靜態功耗、動態功耗的存在就決定了CPU頻率越高,功耗就會極速增加,將會嚴重影響處理器的性能表現,因為要降頻。
說到這一點,英特爾的14nm工藝雖然被人調侃擠牙膏,但從技術上來說真的很牛了,從Skylake架構的第一代14nm到現在Coffee Lake的14nm++工藝,性能提升26%,或者功耗降低52%,在不改變基本結構的情況下這個成績很難得。
製程工藝的放緩導致CPU頻率不可能大幅提升,有很多人會想到那麼有沒有非常牛的CPU架構讓IPC性能大幅提升呢?理論上這種思路是可以的,但是現實很殘酷,CPU架構還是要服從半導體工藝物理定律的,沒有先進的工藝,再好的CPU架構也不可能實現。
此外,即便不考慮工藝對CPU架構的影響,單純說CPU架構的話,不論是X86還是ARM架構,在64位時代CPU單元不外乎就是ALU單元、緩存、I/O等子單元,但是不論提升那部分單元,歸根到底還是要算到晶體管數量上來,還要考慮提升導致的成本——這個成本不只是錢的問題,比如提升L1/L2/L3緩存可以提高性能,但是緩存佔用的核心面積很大,而且還有命中率及命中懲罰的問題,不是隨便加加單元就行的。
此外,CPU的內部還可以分為整數部分、浮點部分,前者對日常使用很重要,浮點性能對計算更重要,但CPU的浮點性能並不是日常所需的,所以大家普遍感覺不到這部分的提升。
支持AVX512的酷睿i9-7900X浮點性能提升很大
公平地說,近年來CPU浮點單元的進步是符合題目所說的單核超強的要求的,因為從SSE到AVX到AVX2再到最新的AVX-512,CPU浮點性能是有大幅提升的。如英特爾所說:“借助多達兩個512位融合乘加(FMA) 單元,應用程序在512位矢量內的每個時鐘週期每秒可打包32次雙精度和64次單精度浮點運算,以及八個64位和十六個32位整數。因此,與英特爾高級矢量擴展2.0(英特爾AVX2)相比,數據寄存器的寬度、數量以及FMA單元的寬度都增加了一倍。”
但是前面也說了,CPU的浮點性能不是日常所需的,整數性能更加重要一些,但是整數單元性能提升就沒這麼明顯了,導致很多人以為CPU架構多年來擠牙膏。