當前位置: 華文問答 > 數碼

為什麽 CPU 主頻很難超過 4GHz?

2015-09-01數碼

題主眼光非常獨到。為什麽CPU沒能變得更快?題主是在闡述一個電腦架構裏的現象。主流中央處理器的確在05年之後就很少超過4GHz的頻率。登納德定律說單核上晶體管數量每兩年能翻一倍,然而05年之後碰到了瓶頸,之後就很少提登納德定律,只能依靠並列運算來為摩爾定律續命。我們可以看到上圖的綠線指示的是主流中央處理器的頻率,不但沒能上升,近來還有下降的趨勢。工程師們天生是要為整個系統做權衡的。而在登納德定律和摩爾定律都生效的年代,電子工程師不需要權衡,只要做一件事:把晶體管做小。無需權衡,只要做小,那簡直是電子工程師的黃金年代。然而五十年過去了,黃金時代已經過去,工程師們必須做權衡。

需要權衡的瓶頸包括是記憶體讀取瓶頸,指令行並列處理瓶頸,和散熱瓶頸。而散熱瓶頸被認為是最難以跨越的。[1]

先說記憶體讀取。中央處理器和記憶體是分離的兩個區域,之間依靠通道連線,而通道是有頻寬的。處理器的晶體管數量每兩年翻一倍,然而頻寬的增長達不到它的速度,所以記憶體讀寫所占的時間逐漸超過處理器計算的時間,削弱了創新的動力。

再說指令行並列處理。CPU主頻每翻一倍,只要所有元件都能完成運算,整個系統的執行速度就能上升一倍。然而每個元件和電線都是有物理內容的;電訊號傳過元件後會有延遲,受元件電阻和電容影響;電訊號在電線中也只能以介質中的光速傳播,小於3億米每秒,大約2億米每秒。4GHz時是每秒40億下時鐘,電訊號只能前進6厘米。工業界近20年來為了加快主頻,在其他方式都到極限後采用了流水線式設計,把一條指令拆成多個時鐘來完成,以此在一條指令完成時間不變的情況下,增加單位時間的吞吐量。上圖是我學架構時設計的五級流水線式處理器構架,把一條機械語言拆成取指令,解碼指令,處理,寫回記憶體,和寫回寄存器五級。而英特爾i7現在的技術把整個指令拆到了二十四級[2],如此細致的拆分令人發指,同時也很難再想象如何再改進。

而溫度是最可怕的權衡。超過4GHz後,溫度上升造成的效能損失超過了指令行處理加速獲得的效能提升。如果說前兩個瓶頸還能依靠設計解決,那這個瓶頸就只能靠新材料或是工藝來解決了。而現代電腦所依賴的物理元件,MOSFET,全稱金氧半導體場效應管,從登納德定律出現到05年四十年時間內都沒有更好的替代產品。最新出了一批新的場效應管,然而沒能在根本上解決散熱的問題。