但很多人不知道的是,4GHz並不是英特爾當時的終極目標。在2001的IDF大會上,英特爾曾經表示奔騰4處理器可以運行在10GHz。現在18年過去了,這個目標始終沒有實現,可能永遠也實現不了。
這個事件可以說明,CPU頻率不是因為想提高就提高的。4時代已經過去這麽多年了,但是CPU的主流頻率還是在4GHz左右。雖然Intel在Core i7-8086K上第壹次實現了官方的5GHz頻率,但是大部分處理器使用的頻率並沒有那麽高,高負載下能有4GHz出頭的頻率就不錯了。
制約超單核性能CPU的第壹個問題是頻率無法大幅提升,這個因素也和目前的工藝技術有關。本質上,摩爾定律已經失效。這條影響了半導體行業50年的黃金法則,隨著矽基芯片物理極限的到來而失效。從28nm節點開始,並沒有帶來很大的性能提升,功耗問題越來越嚴重。
我們都知道,工藝技術越先進(工藝號越小),CPU的性能就會越高,功耗和發熱量就會越低。但其實這個問題很復雜。CPU的功耗可以分為靜態功耗和動態功耗。前者主要是漏電流引起的。工藝越先進,漏電流會越大,動態功耗可以是1/2 *。
為了得到更高的頻率,電壓升高是不可避免的,但是電壓高的時候功耗也高。簡而言之,靜態功耗和動態功耗的存在,決定了CPU頻率越高,功耗增加越快,會嚴重影響處理器的性能,因為要降低頻率。
說到這,雖然Intel的14nm工藝被嘲諷擠牙膏,但在技術上確實很牛逼。從Skylake架構的第壹代14nm到現在咖啡湖的14nm++工藝,性能提升了26%,或者說功耗降低了52%,在不改變基本結構的情況下,這是非常難得的。
工藝技術的放緩使得CPU頻率無法大幅提升。很多人會認為有壹個非常好的CPU架構來大大提高IPC的性能。理論上這種想法是可能的,但現實是殘酷的。CPU架構還是要遵守半導體工藝的物理規律。沒有先進的技術,再好的CPU架構也無法實現。
另外,即使不考慮工藝對CPU架構的影響,如果單純談CPU架構,不管是X86還是ARM架構,在64位時代,CPU單元無非就是ALU單元、cache、I/O等子單元,但無論升級哪個部分的單元,歸根結底還是要算晶體管的數量,還要考慮升級帶來的成本——這個成本不僅僅是錢的問題。比如改進L1/L2/L3緩存,可以提高性能,但是緩存占用核心面積大,也存在命中率和命中懲罰的問題,不需要隨便增加單元。
另外,CPU還可以分為整數部分和浮點部分,前者對於日常使用很重要,浮點性能對於計算更重要,而CPU的浮點性能對於日常使用並不需要,所以大家壹般感覺不到這部分的提升。
支持AVX512的Core i9-7900X浮點性能大幅提升。
平心而論,CPU浮點單元這幾年的進步符合題目中提到的單核超強的要求,因為從SSE到AVX到AVX2再到最新的AVX-512,CPU的浮點性能已經有了很大的提升。正如英特爾所說,“通過多達兩個512位融合乘加(FMA)單元,壹個應用每秒可以封裝32個雙精度和64個單精度浮點運算,以及512位向量中的8個64位和16個32位整數。因此,與英特爾高級矢量擴展2.0(英特爾AVX2)相比,數據寄存器的寬度和數量以及FMA單元的寬度都增加了壹倍。”
但是我之前說過,日常生活中不需要CPU的浮點性能,整數性能更重要,但是整數單元性能的提升並沒有那麽明顯,導致很多人認為CPU架構已經擠了很多年牙膏了。
多核CPU的誕生是因為如今的單核CPU已經難以大幅提升性能。X86、ARM等通用處理器架構壹旦進入成熟期就很難再通過修改架構來提升性能,相比單核性能所消耗的時間和人力成本是相當不劃算的。為了提高單核性能,可以參考奔騰4造成的故障後果。
單核性能的提升除了架構,還有賴於頻率和緩存,而頻率受限於CPU溫度和功耗,緩存受限於CPU面積和成本,所以頻率和緩存只能靠半導體工藝的進步來逐步提升。
最無奈的是現在半導體技術的進步越來越慢。Intel壹個人從14nm到10nm用了好幾年。技術的緩慢進步使得CPU的單核性能和效率難以大幅提升,英特爾也無法大幅改變X86架構。即使ARM處理器的工藝演進更快,但由於手機對續航和芯片面積的要求,CPU的單核性能並不能有很大的提升。
相比之下,CPU通過增加核心數來提升性能是最有效率的,因為CPU的每個核心幾乎都是壹樣的。只要整體架構敲定,設計制造就容易多了,而應用可以通過多線程優化有效利用多核CPU,甚至最大翻倍。這不是單純升級單核的頻率和架構就能達到的範圍,比單純做單核劃算多了。
這樣,隨著多核CPU的普及,支持多核的應用越來越多,多核CPU也越來越普及。當然,用多核CPU的晶體管做壹個超級單核不是必須的,但這對廠商的良率要求太高。因為是單核CPU,壹旦晶圓和芯片出現壹些缺陷,就有可能讓CPU報廢,而多核CPU可以通過屏蔽核來降級,所以成本和利潤自然無法相比。
英特爾、高通、聯發科都是企業,都要權衡成本和利潤。總的來說,做多核CPU的好處自然更符合他們的興趣。就連蘋果也在不斷增加A芯片的核數,所以多核CPU是大勢所趨。
技術路線的選擇應考慮可行性。所謂可行性,不僅包括能否實現,還包括實現的難度是否在可接受的範圍內,以及實現的成本能否承擔。但是,把CPU做成性能超強的單核並不實際,技術難度大,成本高。CPU之所以選擇多核發展,是因為單核很難繼續做下去,也不可能持續穩定的提升性能,所以廠商只做多核。
單核性能的提升遇到了瓶頸,多核處理器技術的成熟決定了多核處理器成為技術發展的主流選擇,而單核處理器已經被拋棄。
當我們看幾代入門級處理器的性能時,會發現單核性能的提升已經進入了壹個瓶頸期。第四代入門級i3 4130 CPU,單核性能1982。上壹代入門級i3 3220 CPU,單核性能達到1759。上壹代入門級i3 2130 CPU,單核性能達到1744。經過三代升級,繩子的性能微乎其微。壹般認為只有性能提升50%以上才會有更直觀的感受。所以單核性能的突破是壹個不可逾越的困難,不壹定不可能,但至少是壹件非常困難的事情。從理論上講,大約從1990開始,提高芯片性能的方法主要有兩種:
1.在有限的面積上增加更多的場效應晶體管。
2.提高時鐘。
經過20多年的發展,我們幾乎已經把這兩種方法運用到了極致。單核CPU要想繼續突破,將面臨不可逾越的功耗和發熱問題,時鐘也會受到限制。相比之下,多核CPU可以通過並行計算減少時鐘,同時保持原有的計算能力。但是多核處理器的協作能力隨著技術的成熟變得穩定高效。在這種情況下,回歸單核路線,試圖做超級單核處理器,並不現實。
另壹方面,即使繼續研發單核技術,也是不計成本投入,不計成本生產。但是理論上單核處理器的性能會有壹個上限,肯定會低於多核處理器。這就好比壹個人可以通過鍛煉來提高體力,但是如果妳再能打,十個二十個人也能對付,對吧?所以個人的提升很重要,但是多人合作,良好的配合才是提高戰鬥力更有效更現實的選擇。同理,當多核處理器能夠很好的配合時,取代單核處理器成為技術選擇的主流也是合理的。超級單核的技術概念不實用,太貴,不存在實際可行性。
2004年,64歲的英特爾CEO巴雷特在6500多名技術人員面前下跪為奔騰4的時鐘頻率不超過4GHz道歉,並決定放棄4GHz頻率的奔騰4。事實上,他曾間接地宣稱,單個核心不可能壹路走到黑。
然後英特爾轉向多核。2005年,英特爾發布雙核CPU,標誌著單核CPU向多核的重大轉折。多核CPU在這之前就已經出現了。比如IBM 2000年發布的POWER4就是雙核CPU,但畢竟電腦CPU的世界還是X86。說Intel領先AMD,Sun,IBM走向多核並不為過,但也可以說Intel是單核這條路上走不下去的第壹人。誰告訴英特爾它有如此巨大的市場份額?
超頻可以用來做什麽?電腦發燒友都知道超頻可以發揮CPU最強的能效。超頻的原理就像妳舉手的時候壹樣。原來妳舉手壹次需要2秒,讓妳1秒舉手壹次,然後1秒10次,然後1秒100次。CPU的性能就是這樣提升的。如果時鐘周期增加到4GHz,CPU每秒將執行40億個周期。
超頻是需要代價的。超頻愛好者會提高CPU的電壓,調整DRAM的CL,這意味著CPU會產生更多的熱量。所以超頻也需要更有效的散熱裝置,這就出現了水冷和壓縮機散熱裝置。CPU燒烤,火鍋炒菜,液氮冷卻確實各有各的東西,這些東西間接告訴我們單核也會有極限。
超頻愛好者會告訴妳,超頻壹定要做好浪費CPU、主板等硬件的心理準備。如果壹個人做壹件事累了,那就和很多人分享。多核CPU就是把多個核心全部做在壹個大管芯上,加上壹些外圍電路封裝成壹個CPU。
但實際上,這種封裝技術仍然屬於傳統的多核封裝技術。很多核需要嚴重依賴於PCB基板上布置的電路來相互通信,而PCB板限制了電路的密度,所以很難形成大規模集成IP核的數量。
於是就有了矽中介和EMIB的解決方案。矽中介相當於挖空壹條地鐵建換乘大廳,而EMIB就像地下隧道。至於換乘大廳還是地下隧道,要看使用面積。
自從CPU發明以來,人們已經嘗試了無數種方法來提高性能,但所有其他方法都因為改善不明顯而很快被通過。這就可以解釋為什麽Intel和AMD總是在提升主頻的路上,直到有壹天主頻被顛覆了才走上多核的道路。
CPU性能=時鐘頻率*IPC,IPC是壹個時鐘周期內完成的指令數,從上面每秒舉手數的例子可以很好的理解。增加IPC只會線性增加CPU的功耗,但增加主頻可能會成倍增加CPU的功耗。多核可以增加IPC來提高CPU的性能,也可以抑制頻率的增加,所以同時CPU的性能也提高了。
以上個人觀點,歡迎批評指正。
讓我給妳解釋壹下...試著理解壹下。...
...
電腦處理器有壹個參數叫做頻率...什麽是2.4G 4.5G...這是指壹秒鐘內有多少個時鐘周期...這不是壹個指令周期...指令周期通常為1-12個時鐘周期或更多...通常,只有內部寄存器讀寫指令。加法、減法、乘法指令可以實現1個時鐘周期...並且存儲器訪問指令的周期數非常高...記憶...不能有效地減少讀寫指令的內存...需要註意的是,內存讀寫速度基本不變...也就是CPU幾乎沒用...例如,如果在2.4G處理器中讀取存儲器中的數據需要6個時鐘周期,那麽在4.8G處理器中需要12個時鐘周期...也就是說,在0.4G處理器中需要壹個周期..所以單純提高頻率來提升性能的作用很小。...
...
首先想到的是在等待讀取內存數據的同時,使用CPU提前讀取下壹個內存中的數據...這壹系列技術本來叫預讀,但是代碼有條件跳轉。能夠判斷條件跳轉的預讀稱為分支預測。預讀層的深度稱為流水線。...
...
管道並不完美...在多任務操作系統中...操作系統的時間片是通過保存和恢復整個寄存器來實現的。這個術語叫做保存和恢復場景...這種切換會嚴重損害預讀的成功率...並影響預讀的命中率...因此CPU仍然需要等待讀取數據...這個問題的解決方案是兩個處理器內核分別處理兩個進程...當有3-4個過程時...單核處理器上的程序將正常運行...但是它會損害預讀性能...並且運行效率很低...也就是說1個4G核的線速還不如4個1G核。....
...
因此,提高頻率根本不會顯著提高處理器的性能...但是增加內核數量顯然會提高性能。...
理論上壹個工廠可以建壹條超大型生產線,那為什麽還要建很多工廠和車間呢?
壹條生產線再大,也只能保證以最快的速度生產出壹批產品。如果要同時生產幾個批次,幾個品種的產品怎麽辦?用這種超大型生產線壹次生產壹批好,還是建幾條生產線同時生產好?
同樣,做壹個超級大核,也只能保證壹個任務能在最快的時間內完成。但是如果妳的電腦必須同時完成幾個任務呢?是選擇讓這個超大核壹個個做任務,還是幾個小核分開做?
結論:
很多時候,手機和電腦要同時處理很多任務。這時候讓多個小核分別處理,比讓壹個大核排隊處理效率更高。大核的制造工藝比較麻煩,發熱功耗比幾個小核更難散熱。
再舉個不太合適的例子,妳要從北京寄火箭到西昌,只能用火車拉,但是妳要從食堂寄點盒飯到宿舍,最好叫幾個快遞小哥坐電動車給妳送。我們在日常使用手機電腦中遇到的很多小任務都比我們需要處理的大任務要多,所以做很多小核遠比做壹個大核實用。畢竟不是每個人都需要整天往西昌送火箭。但是幾乎每天都有人需要叫外賣。
這麽說吧,壹個加工中心有單獨的原料倉庫,用壹輛10噸的卡車來運料,壹次就能滿足壹天的生產。後來產能提高了,品種多了,在不同地點建了幾個倉庫。這時候就要滿足生產要求了。要麽原車加快速度(加快頻率),要麽買壹輛50噸的車,連續幾天每天運壹次每種原料(加強單核計算能力),要麽換幾輛5噸的車,分別運到不同的倉庫(多核)。
那麽問題來了,多種產品同時生產,產量不高,生產倉庫分散的情況下,用壹輛50噸的車運輸,還是用幾輛5噸的車運輸經濟?
所以單核強固然好,但是經常用來同時處理幾個任務,多核更合適。
蘋果單核強,那是因為蘋果是單線程的,不像安卓在後臺掛很多進程。
把cpu做成強單核是可行的,只要頻率足夠高,制造工藝足夠先進,緩存參數l1 l2 l3不低於l1,不低於8way 64k。但即使單核效率足夠高,也只能處理壹個任務,達不到節能的效果。發熱方面,高頻U會高於低頻多核cpu,這是其壹。其次,由於單核物理核易用性高達99%,如果妳開qq多了,很容易導致系統卡頓。相反,如果妳使用兩個或兩個以上的核心,處理器占用會因為核心數量多而減少。這個時候妳可以做更多的下載等任務,或者在網遊中打開更多的窗口,同時登錄多個賬號,這也是處理器沒有高頻發展到單核的原因。發展更多核心路線的原因是amd和Intel都在增加核心的數量。有用戶認為過去處理器處理數據的效率太低,還不如多核。因此,兩家公司都將內核數量推至8核或更多。這些處理器分為民用、商用、國家監控和國防以及微軟雲服務器。為了節能低碳,兩家公司都在向多核發展,而不是壹直走高頻路線,線程數量越來越多。超線程效率比單線程高,那為什麽只做1核1處理器線程,給妳開發壹個6ghz單核?它的應用範圍也很窄,所以不是單核技術做不到超高效,也不是技術做不到,而是沒必要浪費時間,效益不明顯。
後面會講到多核存在的意義。存在就是合理的,那為什麽要做那麽多核而不是4核呢?這要從網遊時代遊戲的多元開放說起。至於我自己玩的網遊劍靈,amd fx8320接近4核4線程,此時處理器使用率為89%。其次,就像某些轉碼軟件HD 1920x1000。
不用說,雖然snb處理器雙核4線程i3能夠扭轉fx 4300和6300相差無幾的局面,但問題是2160p硬件解碼已經占據了100,而fx 6300還沒有。多核處理器將為未來而戰。雖然路很長,但已經是現在的趨勢了。否則Intel也不會把堆核放到10核裏,i7 6950x和i9900k出現的地方,頻率越高單核越強,cpu資源搶奪核數不足的地方,不利於大數據流的處理,最終結果必然是以卡頓或者處理器導致程序無響應而告終,所以多核的發展意義重大。特別是服務器中的核數壹般是民用的2倍或者8倍。電腦真的不僅僅是用來玩遊戲的。妳要明白,計算機的應用非常廣泛,計算機的主要工作主要是基於運算速度。32核以上的處理器不僅僅是跑分高那麽簡單,渲染速度也不是8核能比的,因為它們的核更多,速度是8核的4倍。再舉個例子,fx8和翼龍x6差不多,只有兩個核心兩個線程,但是運行r15浮點計算軟件的速度比較慢,x6需要1分鐘才能完成,而fx8只需要45秒,可見多核的價值。現在銳龍8核16線程比8核8線程推土機渲染快。
首先,我們需要知道如何衡量單核CPU的性能。首先,自然是頻率。更高的頻率意味著在壹段時間內可以處理更多的數據,但只有頻率是不夠的。其次,還要看架構等方面。這種性能可以通過IPC性能來衡量。簡單來說,在相同頻率下,單核性能越好,IPC性能越強,所以提高單核性能可以通過提高IPC性能和頻率來實現。
多年來,為了提高性能,芯片制造商通過頻率和架構的進步來實現單核性能。頻率方面,IBM電腦的CPU頻率在1981為4.77 MHz,intel CPU在195為100Mhz。2000年,AMD率先突破1Ghz。2003年intel CPU的主頻達到了3.7Ghz,而目前最高的單核主頻只有5.3GHz,可以看出歷史上有壹段時間主頻大幅提升,自然帶來了性能的提升,但是可以看出從2003年到現在,主頻提升已經無法和之前相比。
至於架構,PC端大家熟悉的AMD Zen1、Zen2、Zen2+和Zen3架構,每次都會提升性能,Intel也是如此,ARM處理器也是如此,從Arm V4升級到V9版本,每個版本內部還可以細分。事實上,隨著頻率的增加,它變慢了。目前通過架構升級來提升性能是最常見的手段之壹,但是這個地方的升級並不是隨便的。壹般來說,壹個全新的架構出來之後,這個架構會被長期使用,並且會在這個架構的基礎上進行優化叠代。在這方面,英特爾的Skylake比較典型。
基本上頻率升級遇到了瓶頸,架構的升級也不是那麽隨便,用戶對性能的追求也是無止境的,單核真的不夠用。在這種情況下,廠商想到了超線程、多核等技術來提升CPU的性能,所以市面上的處理器基本都是多核,所以就目前的實際情況來看,如果能做出超級單核,自然就沒必要做出這樣的單核,但問題是很難做出這樣的單核。
技術方面,CPU頻率提升遇到了能耗瓶頸。因為CPU的能耗與時鐘頻率的三次方近似成正比,如果CPU頻率高於3Ghz,CPU就會有燒壞的危險。而且隨著工藝的提高,晶體管密度的增加,積熱問題會越來越嚴重,加劇燒壞的可能性。所以頻率的道路真的很難走下去,架構的升級,說白了就是PPA的選擇,受到能耗和芯片面積的制約。
簡而言之,單核性能越高越好。但以目前的技術來看,即使做出了強大的單核處理器,其整體性能也不會超過高階多核處理器,而且目前的操作系統是多任務的,這也讓多核處理器有用武之地。
1.單核性能提升有限,頻率有5G瓶頸,更高頻率有電子隧穿效應,功耗線性上升,穩定性下降;
2.單核壹次只能做壹件事,沒有辦法讓任務流動起來。即使有指令流水線,也只是縮短了指令的平均執行周期,壹次最多只執行壹條指令;
3.多核CPU可以讓多個任務同時執行,並且經過軟件優化後,壹個任務可以拆解到多個核上運行,大大提高了執行效率。