英特爾 i 系列處理器二代、三代、四代有什麼改進?性能提升大嗎?


已整理完畢. 禁止轉載.

(本回答不涉及GPU, GPU評比請參看notebookcheck提供的GPU天梯: http://www.notebookcheck.net/Intel-HD-Graphics-4600.86106.0.html)

以下為Intel提供性能提升數字:

(2013)Hawell相對於Ivy Bridge, 8%矢量處理性能提升, 6%單線程性能提升, 6%多線程性能提升, 3%總體性能提升.

(2012)Ivy Bridge相對於Sandy Bridge, 3-6%同頻性能提升.

(2011)Sandy Bridge相對於Westmere, 11.3%同頻性能提升.

(2010)Westmere相對於Nehalem, 因為Westmere本就是Nehalem-C, 所以同頻性能相同.

(2008)Nahelm相對於Penryn, 10-25%單線程性能提升, 20-100%多線程性能提升, 15-20%同頻性能提升

可以看到從第一代Core商標(Nehalem架構)到第四代Core商標(Haswell架構), Intel處理器的性能提升越來越小. 但是Intel其實重點提升了處理器的多線程計算能力. 下面是我整理的Intel近幾代處理器性能對比, 是從Spec2006官網海量數據里挑選出來的. (引用: SPEC CPU2006)

(注: 這裡使用了Intel桌面Extreme版處理器做測試對象, 它代表了桌面處理器的最高性能)

(注: rate測試分數有改動, 原因是手邊沒有SB, IB, Haswell的I7-EE版CPU數據, 直接使用了普通版I7做了等效)

從上往下:

綠色:整形多線程分數 (Rate)

紫色:浮點多線程分數 (Rate)

藍色:整形單線程分數 (Base)

紫色:浮點單線程分數 (Base)

圖中橫坐標:

  • Core, Penryn屬於Core架構, 產品名稱:Intel Core Solo/Due 或 Intel Core2.

  • Nehalem, Westmere屬於Nehalem架構, 第一代Intel Core i3/i5/i7.

  • SandyBridge, IvyBridge屬於SandyBridge架構, 第二,三代Intel Core i3/i5/i7.

  • Haswell, 最新架構, 第四代Intel Core i3/i5/i7.

(請注意這裡有Core架構和Core商標的區別.)

從圖中可以看到, Intel處理器的多線程運算能力一直在穩定上升, 上升幅度超過單線程幅度.

單線程Spec2006項目每代上升幅度在15%左右, 多線程上升幅度在30%左右. 如今, 多線程運算能力真正代表處理器的性能.

下面來分析這30%多線程性能的上升:

多線程提升要依次考慮到這4個方面: 1. 線程數, 2. 主頻, 3. 編譯器, 4. 核心架構.

這裡可以看出, Core系列處理器架構的改進並不是最重要的, 工藝才是對處理器性能提升最重要的關鍵因素. 因為工藝決定了處理器的核心數量, 主頻, 甚至包括架構細節.

參與分析的CPU具體參數如下:

(注, SB, IB, Haswell三項在作圖時已經等效為6C/12T處理器分數)

以下分別從之前提到的4個方面來描述歷代處理器的區別:

1. 線程

在Core架構時代(最多4線程)到Westmere(最多12線程), 而這段時間Spec2006 Rate項分數變在4倍以上. 從Westermere開始, Intel維持了12線程的數目, 之後的3代產品中, rate分數僅上升了1倍. 可以看出CPU支持的線程數量是最影響處理器性能的因素.

性能的飛躍是從Intel在桌面處理器上使用了Hyper Threading(超線程)技術開始的, Intel認為"單物理核心, 雙線程"這樣的技術等效為1.4個物理核心的性能. 這個技術最早用在了Netburst架構(Pentium4)上, 但是並沒有在Core架構上使用, 直到Nehalem架構上, Intel又重拾HT, 使得Nehalem這一代處理器的性能遠遠超出上一代Penryn產品. Intel也是在這個時候開始使用酷睿(core)i3/i5/i7這個系列名稱的.

2. 主頻

在Core架構時代, 由於剛剛走出Netburst(Pentium4)的陰霾, 採用新的架構, Intel並沒有急於提升主頻, 即便是Extreme版桌面處理器QX6850, 主頻也僅3G.

在Nehalem架構上, Intel開始提升處理器主頻, 直到Sandy Bridge架構時, 主頻已經可以達到3.5G. 這對於Sandy Bridge這樣僅有14級流水線的架構來說是非常驚人的! (對比Pentium4, 雖然P4早就到過4G以上的主頻, 但是有近30級的流水線.)

此外, 在Nehalem架構上, Intel採用了Turbo技術, 結合處理器負載量, 處理器溫度等信息, 動態調整處理器主頻, 最高主頻達到了3.9G, 非常誇張, 這需要架構和製程的共同配合才能做到.

3. 編譯器

Intel C++ Compiler (ICC說明: Intel C++ Compiler)

伴隨著自家處理器的更新換代, Intel總會及時更新ICC編譯器, 以方便軟體針對Intel不同的處理器進行優化. ICC會使用CPUID這個指令, 它可以返回處理器支持的指令集種類, 方便ICC根據具體CPU型號, 輸出優化後彙編指令. (新版的指令集需要配合新版的ICC編譯使用.)

舉個栗子: Nehalem架構處理器使用不同版本的ICC得分:

可以看到, ICC不同版本對Spec2006成績有很大影響. 這是因為使用ICC11編譯的程序無法使用較新指令集. (如SSE4.2)

下面列舉了Intel歷代產品所添加的新指令/指令集, 這些指令均可被當時最新的ICC支持:

這裡簡單分成兩類, 加粗的指令集可以加快CPU計算速度. 未加粗的為CPU功能拓展, 轉換, 輔助類.

這裡也解釋了為什麼有時Intel官方宣傳性能上升~8%, 但是Spec2006的分數卻上升接近15%. 原因就是ICC針對了最新的處理器/指令集做過優化, 像Spec2006這樣的重要測試是需要重點優化的.

4. 架構

為了能直觀的比較架構差別, 這裡先把Spec2006單線程測試(Base)針對主頻做了歸一化. 結果如下:

對比結果如下: (第二, 三列為: 針對上一代產品, 新架構的提升百分比. 第二列為整型測試, 第三列為浮點型測試)

(注: 提升百分比包含ICC編譯器升級帶來的變化)

下面列出架構間的變化, 方便大家對比查看.

4.1 Nehalem

Core的x86解碼能力是每周期4個, Nehalem相同.

Core的Loop Cache是18層, Nehalem應有增加, 數量未知.

Core有16層返回棧緩存, Nehalem相同.

Core的分支預測機制能提前32Byte進行預測, Nehalem相同, 而且增強了預測演算法, 並加快了預測錯後重新取指速度.

Core有6個執行單元, Nehalem相同.

Core的保留站有32層, Nehalem增加至36層.

Core的亂序執行窗口長96層, Nehalem增加至128層.

Core每周期可以進行128bit讀和128bit寫, Nehalem相同.

Core的讀緩存24層(猜測), Nehalem增加至48層.

Core的寫緩存20層, Nehalem增加至32層.

Core的L1I 32k(4-way), L1D 32k(8-way), Nehalem相同

Core沒有SLC, Nehalem的L2 256k(8-way).

Core的L3 4M(8-way), Nehalem 8M, 且延遲是core的1/3.

Core的TLB為L0D 16層, L1D 256層, Nehalem的L1I 64層, L1D 64層, L2 512層.

此外, Nehalem還增強了批量讀寫的演算法, 增加了融合覆蓋的範圍.

4.2 Sandy Bridge

Nehalem的x86解碼能力是每周期4個, SB相同.

Nehalem解碼遇到變長前綴時, 有6周期懲罰, SB只有3周期.

Nehamle使用傳統解碼方式, SB使用的2次解碼, 第二次利用微碼隊列(56層)來完成.

Nehalem有6個執行單元, SB相同.

Nehalem的保留站有36層, SB推測為48層.

Nehalem的亂序執行窗口128層, SB增加為168層.

Nehalem每周期可以進行128bit讀和128bit寫, SB增加為256bit讀和128bit寫.

Nehalem的讀緩存48層, SB增加為64層.

Nehalem的寫緩存32層, SB增加為36層.

Nehalem的L1I 32k(4-way), L1D 32k(8-way), SB的L1I和L1D均為 32k(8-way).

Nehalem的L2 256k(8-way), SB相同, 但延遲稍大些.

Nehalem的L3 8M, SB相同, 且延遲是Nehalem的2/3.

Nehalem的TLB為L1I 64層, L1D 64層, L2 512層, SB的L1I 128層, L1D, L2與Nehalem相同. Haswell的L2 1024層.

SB在Nehalem的基礎上, 再次增強了分支預測的演算法.

SB使用了類似Pentium4的Decoded Icache, 但仍然保留了L1 ICache, Decoded ICache可以保存1506條微碼, 提升了解碼帶寬, 降低了分支預測錯誤的懲罰.

SB使用了改進後的預取策略, 預取的成功率提升很大, 有效降低了Cache Miss幾率.

SB優化了執行單元的結構, 使得讀寫延遲減小, 寫回衝突減少, 數據前遞延遲減少, FPU異常解決速度加快.

SB啟用了非常關鍵的Ring Bus結構, 並將CPU上升為Soc, 集成了System Agent, Memory Controller, PCIe Controller, GPU等.

4.3 Haswell (資料不足, 僅列關鍵數據)

SB的x86解碼能力是每周期4個, Haswell相同.

SB的Loop Cache推測在40層左右, Haswell增加至56層.

SB有6個執行單元, Haswell增加至8個.

SB的保留站推測為48層, Haswell增加至60層.

SB的亂序執行窗口為168層, Haswell增加至192層.

SB每周期可以進行256bit讀和128bit寫, Haswell增加至256bit讀和256bit寫.

SB的L1I和L1D均為32k(8-way), Haswell相同.

SB的L2 256k(8-way), Haswell相同.

SB的L3 8M, Hawell相同.

SB的TLB為L1I 128層, L1D 64層, L2 512層, Haswell的L1I, L1D與SB相同, Haswell的L2 1024層.

基本可以看出來, 在CPU架構上, Intel這幾年基本沒有改動流水線結構, 而是通過增加CPU內部帶寬, 增加CPU內部隊列深度等暴力手段來獲得性能提升. 同時, Intel非常注重提升多線程運算能力和並行計算能力, 許多CPU的改進都是為了大量數據移動/計算而設計的. 比如增強Rep前綴速度, 加快Shuffle/Blend演算法等.

由於Intel手握世界上最先進的製程, 很多改進的實質都是以面積換速度, 比如Decoded ICache這樣的功能. 所以可以大膽預測, 只要Intel的製程還在進步, Intel未來CPU架構里還會加入更多新功能.

結束語:

性能並非是個可以量化分析的數字, 對於CPU來說, 廣義的"性能"過於依賴使用環境. 科學計算十分依賴線程數和計算力峰值. 日常使用依賴於整個主機系統的短板項. 遊戲往往不過分看重CPU的能力.

而狹義的"性能"則好說許多, 即是各種主流benchmark的跑分分數. 不過諷刺的是, benchmark的選擇卻又依賴於使用環境. 有的測試計算能力, 比如算pi值,質數, 象棋的benchmark. 有的測試日常使用, 比如windows自帶的Windows Experience Index. 有的測試遊戲性能, 比如3Dmark.

那選擇什麼樣的benchmark能代表CPU性能呢?

(這是2011年, AMD FX系列處理器發布會上選用的benchmark, 由於架構上有不足, 很多主流benchmark表現並不理想, 因此在自家的廣告上, 甚至不得不請些少見的benchmark項來湊數. )

對於上面的問題, 實際的解決方法是還得按市場的需求來. 即, 以市場認同, 有權威性的benchmark為準. 諸如PCMark, CrystalMark, Cinebench, 3DMark, 7Zip, Aida64等等. 這樣做即方便量化分析CPU性能, 又可以準確的向消費者傳達自家CPU產品的銷售定位.

本回答提到的Spec系列測試, 可以說是測評領域中最重要的測試. 測試內容包括gcc, perl, zip, xml以及大型科學計算如流體力學,語音識別,材料物理等. 但它也有明顯的缺點, spec沒有大量的訪存測試, 沒有模擬普通用戶行為, 這與實際使用有不少區別.

可以看到, "性能評估"其實沒有標準答案. 許多科技網站會做大量CPU評測, 可是僅僅通過分數並不能判斷CPU架構優劣的. 要考慮評測的分數是不是線性, 評測軟體是否針對每一款CPU都優化到位, 評測軟體代碼也許過於機械或脫離實際, 這樣的問題.

如今我們提到"性能", 其實更多想表達的是整個系統的性能. 內存大小, 硬碟速度, 外設協議, 甚至OS好不好, 這些都遠遠大於CPU快或慢帶給用戶的感受. 真正的CPU性能, 已經變得越發朦朧了.


如果只考慮架構上的改進,可以計算單核心單位主頻的性能。具體值可以使用單線程評測性能,除以主頻數量得到。

i7 4770k: 655

i7 3770k: 597

i7 2700k: 575

從這裡可以看出,第三代到第二代只有 4% 提升,第四代性能較第三代也只有 10% 的提升。

一般而言,性能提升在 41% 以上才會有明顯的肉眼可感覺(當然這取決於每個人具體的感覺是敏銳還是遲鈍,每個人的閾值會不同)。

總的來說,i 系列這麼多代,在同頻率同核心數量的情況下,性能並無明顯提升,桌面 CPU 的發展進入了瓶頸期,當然,也可能是因為競爭對手太不給力,導致 intel 無需快速發展。

數據來源

PassMark CPU Benchmarks


同頻提升非常小,主要提升來自於製程的提高。製程進步了了頻率提升了一點點,功耗降了一點點。但是單說cpu架構和效率幾乎原地踏步(只能怪AMD不給力導致英特爾不思進取)。這幾代的噱頭主要集中在核芯顯卡上面,性能可以說是有了質的提高,但是和中端獨立顯卡比依舊孱弱。


桌面沒啥進步,雖然架構改進了很多但是桌面用戶很難感受得到。

移動端第四代core的電源管理大幅改進,讓新一代超級本的續航時間直接增加一半至一倍。


提升十分有限,感覺不是瓶頸了,就是不思進取。不過升級對一些介面有了更好的支持,各種指令集的變化,也體現出了技術的進步。
補充,還有的就是核心顯卡性能的提升


intel最近2代cpu,最主要的宣傳噓頭都在核心顯卡上,每每在新一代cpu正式出山之前都能聽到核心顯卡性能比得上NV xxx的時候,這樣好么


據說製程工藝將近物理極限,要想大幅提升性能可能只有未來的量子計算機了吧


推薦閱讀:

多核 CPU 和多个 CPU 有何区别?
為什麼有這麼多人歧視 AMD?
為什麼沒有128位甚至更多位的處理器呢?用不著?還是做不出來?
為什麼網上的硬體圈子有種強烈的不認可低壓CPU(U結尾)的傾向?
哪位大神可以幫忙分析一下i7 7700與i7 7700k的區別?

TAG:中央處理器CPU |