一代CPU王者的發展簡史:從技壓英特爾的x86-64位技術到全新的 Ryzen 架構
今年,眾所期待的 CPU 終於上市了。從 2012 年開始研發,背負著帶領 重返榮耀的 CPU,一上市便造成轟動。極高的性價比以及低功耗,為筆電以及桌機的 CPU 市場,注入了活水。
64 位處理器的興起
在 32 位 CPU 中,
因此,從 90 年代起,眾多的 CPU 製造商開始研發製造 64 位元的 CPU。其中,PC 市場的領頭羊,Intel 便從 1994 年開始,
1999 年時,AMD則發佈和 Intel 截然不同的方法。AMD 決定將既有的 x86 指令集架構,擴增成 64 位元的指令集。採用這個方法意味著原有的程式,將得以執行在新的 AMD 64 位的 CPU 上,大大減低後續重新編寫程式的需求。指令集架構的差異,
64 位元指令集架構之戰,AMD 大獲全勝
在 2001 年,Intel 終於發佈其第一款的 64 位 CPU──Itanium。然而,這一款 CPU 在市場的接受度卻沒有如同其所預期般,迅速的被採用。最主要的原因,莫過於軟體的數量不足、以及和其他 64 位處理器相比的弱勢效能。
其中,軟體數量不足的關鍵,就在於指令集架構的差異。在高速計算裡面,為了讓程式得以執行的更快,大多數的工程師會修改或直接編寫組合語言,
此外,沒有明顯優勢的 CPU 效能,也讓開發商不願投入更多的資源在 Intel 的 Itanium 上。因此,Intel 只能加速下一款 CPU 的開發,以期待能滿足市場的需求。
2003 年,震撼市場的消息發出。AMD 發佈了第一款 x86-64 的 CPU──Opteron 以及 Athlon 64。光是讓既有的 32 位 CPU 運行於其上,就已經為 AMD 添增光彩。更不用說新的 CPU 所採用的硬體架構 K8 是何等的強悍。
扭轉頹勢,Intel 版 x86-64 現身
為了避免商用以及高速科學計算領域的市占率下滑,Intel 於 2004 年時緊急推出新的 Xeon CPU。此外,在桌機市場,Athlon 64 的優秀效能,讓 Intel 不得不以既有的 Pentium 4 為基礎將指令集架構擴展至 64 位。
然而,即使 Intel 推出新了的 CPU,其 CPU 硬體架構效能提升卻不足,導致新的 CPU 效能稍微落後採用 K8 架構的 Opteron 以及 Athlon 64。K8 架構成了傳說,為 AMD 帶來榮耀。同時,其主要硬體架構師 Jim Keller 也逐漸為人所知。
邁向多核心之路,黃金交叉將出現?
在 2005 年 5 月時,AMD 以及 Intel 皆發佈了消費者市場的雙核心 CPU,分別為 AMD Athlon 64 X2 以及 Intel Pentium D。第一款消費市場的雙核心 CPU,揭開了嶄新的時代序幕。多的核心便意味著作業系統中的多執行緒,可以同時運行在一顆 CPU 中,大幅降低執行緒所需等待的時間。
比較這兩款 x86-64 雙核心 CPU 的效能時,這一次,AMD 持續維持著其領先的姿態,Athlon 64 X2 的效能大幅超越 Pentium D。AMD CPU 的市占率一舉攀升,就在黃金交叉將要出現之時。Intel 展開逆襲,2006 年 8 月,Intel 推出了下一代的 CPU──Core 2 系列。
由 CPU Benchmarks 所統計的資料,該資料是統計全球使用該款 benchmarks 的 CPU 廠牌。雖然不是實際的 CPU 出貨量,但是足以當做參考。(Source:CPU Benchmarks)
新系列的 Intel CPU,斷開和 Pentium 4 的關聯,以 Pentium III 的 CPU 硬體架構為基礎重新設計,並採用 AMD 所發展的 64 位元指令集架構。這一次,Intel 以過往成功的產品為基礎並重新設計,以 Core 為名重新出發。這一次,Intel 結束產品線的混亂以及產品效能低落的數年。
同步多執行緒,徹底發揮 CPU 核心的計算能力
在 2008 年,Intel 將其 Hyper-Threading 的技術重新導入 Core i 系列 CPU,也就我們現在所熟知的 i3、i5、i7 處理器。所謂的 Hyper-Threading,便是在一個 CPU 核心內部在將其分成兩份。然而,究竟是如何將 CPU 切成兩份呢?根據 Intel 於 2002 年所發佈的Hyper-Threading Technology Architecture and Microarchitecture便可略知一二。
在論文中,Intel 便給出了兩張比較圖。兩個核心最主要的差異,在採用 Hyper-Threading 技術中的 CPU 中,Architecture State 單元會比一般的核心多一個。大致上,Architecture State 單元包含了多數的暫存器以及中斷訊號的控制器等,用以記錄執行緒執行的資訊,是無法被共用的資料。
左圖為未採用 Hyper-Threading 技術的 CPU Cores,右圖則是採用了 Hyper-Threading 技術的 CPU Cores,其中,兩者間的差異為一個 CPU Core 中有不同數量的 Architecture State 單元。(Source:Intel Technology Journal Vol. 1)
因此,在採用這個技術之後,只需要額外的 5% 面積,便可以達成更高的指令集平行化,讓 CPU 盡可能地滿載,釋放 CPU 所有的潛能。根據這一篇論文中所提供的資料,採用這一項技術後,在多執行緒的執行情況下,將可帶來將近 30% 的效能提升,相當驚人。
做為應對,AMD於 2011 年推出 Bulldozer,其採用的並非是 Intel 所使用的 SMT 技術,而是 Clustered MultiThreaded(CMT)技術。此技術是將一顆 CPU 內部的整數執行單元複製一份,讓 CPU 具備在同一核心內部執行兩個執行緒能力,在後續要擴增核心的計算能力上,相當的容易,所需要的修改相對的較少。
然而,其缺點便是沒有辦法共用執行單元,無法享有 SMT 中最重要的優點,用兩個 Thread 盡可能讓執行單元不會有空閒狀態。此外,兩個獨立的 L1 Cache 雖然感覺在實作上會比較簡單。但是,為了要維持 Cache 的一致性,便需要擁有額外的 Core 內部資料交換單元,大大的提升控制電路的複雜性。
最後,結果便是眾所皆知的,AMD於 x86 的 CPU 市占率直直落,現今在中高端的筆電市場中,更幾乎看不到採用AMDCPU 的產品。就在 AMD 要消失在市場之中時,Zen CPU 的消息傳出!
Ryzen CPU,硬體架構的重新設計
在 2012 年,K8 的主要硬體架構師 Jim Keller 回到 AMD。這一次,他的回歸,讓 AMD 重返榮耀的聲音響起。是否新的 CPU 可以再現 K8 的傳說?這一次的 Ryzen CPU 和先前的 AMD CPU 有何差異?
將底層硬體架構做比較,可以發現 Ryzen CPU,取消了 Bulldozer 所提出的 Integer Cluster,並以類似 Intel Hyper-Threading 的技術取而代之。如此便能讓 CPU 盡可能地達到滿載的狀況。
此外,新的 Ryzen CPU 也引進了 Intel 於 Sandy Bridge 架構開始採用的 Micro-op Queue,以減少重新 Decode 的需求,提升單次可執行的指令數。借由更多先進的技術,讓 AMD 得以獲得大幅度的效能提升。也因此,AMD 公佈 Ryzen CPU 其每個週期可以執行的指令比前一代 CPU 多 52%,改善幅度相當大。
至於實際的 Ryzen CPU 效能如何呢?現在已經有相當多的評測文章將 Intel Kaby Lake 系列和 Ryzen 系列 CPU 做比較,在這不再多做評比。不過,在一般的應用上,AMD 的 CPU 不會再像之前的 CPU,看不到 Intel CPU 的車尾燈。
AMD 於 2016 年 HOT CHIPS 上所發佈的架構圖。從圖中可以發現,新的架構取消掉 CMT 的技術,讓 CPU 核心變得較不複雜。(Source:AMD)
至此,我們已經看完了兩大 x86 巨頭間的廝殺,同時在短短的 17 年間,CPU 產業已經採用相當多的技術,以滿足與日漸增的計算需求。千禧年後 CPU 的發展簡史,讓我們見證了一代 CPU 王者的興起沒落以及歸來。
從圖中可以發現在 AMD Bulldozer 中,一共有兩個整數運算單元,此技術便稱為 Clustered MultiThreaded。(Source:By Shigeru23 (Made by uploader (ref:[1], [2], [3])) [GFDLor CC BY 3.0], via Wikimedia Commons)
Intel 展開逆襲,2006 年 8 月,Intel 推出了下一代的 CPU──Core 2 系列。由 CPU Benchmarks 所統計的資料,該資料是統計全球使用該款 benchmarks 的 CPU 廠牌。雖然不是實際的 CPU 出貨量,但是足以當做參考。(Source:CPU Benchmarks)
新系列的 Intel CPU,斷開和 Pentium 4 的關聯,以 Pentium III 的 CPU 硬體架構為基礎重新設計,並採用 AMD 所發展的 64 位元指令集架構。這一次,Intel 以過往成功的產品為基礎並重新設計,以 Core 為名重新出發。這一次,Intel 結束產品線的混亂以及產品效能低落的數年。
同步多執行緒,徹底發揮 CPU 核心的計算能力
在 2008 年,Intel 將其 Hyper-Threading 的技術重新導入 Core i 系列 CPU,也就我們現在所熟知的 i3、i5、i7 處理器。所謂的 Hyper-Threading,便是在一個 CPU 核心內部在將其分成兩份。然而,究竟是如何將 CPU 切成兩份呢?根據 Intel 於 2002 年所發佈的Hyper-Threading Technology Architecture and Microarchitecture便可略知一二。
在論文中,Intel 便給出了兩張比較圖。兩個核心最主要的差異,在採用 Hyper-Threading 技術中的 CPU 中,Architecture State 單元會比一般的核心多一個。大致上,Architecture State 單元包含了多數的暫存器以及中斷訊號的控制器等,用以記錄執行緒執行的資訊,是無法被共用的資料。
左圖為未採用 Hyper-Threading 技術的 CPU Cores,右圖則是採用了 Hyper-Threading 技術的 CPU Cores,其中,兩者間的差異為一個 CPU Core 中有不同數量的 Architecture State 單元。(Source:Intel Technology Journal Vol. 1)
因此,在採用這個技術之後,只需要額外的 5% 面積,便可以達成更高的指令集平行化,讓 CPU 盡可能地滿載,釋放 CPU 所有的潛能。根據這一篇論文中所提供的資料,採用這一項技術後,在多執行緒的執行情況下,將可帶來將近 30% 的效能提升,相當驚人。
做為應對,AMD於 2011 年推出 Bulldozer,其採用的並非是 Intel 所使用的 SMT 技術,而是 Clustered MultiThreaded(CMT)技術。此技術是將一顆 CPU 內部的整數執行單元複製一份,讓 CPU 具備在同一核心內部執行兩個執行緒能力,在後續要擴增核心的計算能力上,相當的容易,所需要的修改相對的較少。
然而,其缺點便是沒有辦法共用執行單元,無法享有 SMT 中最重要的優點,用兩個 Thread 盡可能讓執行單元不會有空閒狀態。此外,兩個獨立的 L1 Cache 雖然感覺在實作上會比較簡單。但是,為了要維持 Cache 的一致性,便需要擁有額外的 Core 內部資料交換單元,大大的提升控制電路的複雜性。
最後,結果便是眾所皆知的,AMD於 x86 的 CPU 市占率直直落,現今在中高端的筆電市場中,更幾乎看不到採用AMDCPU 的產品。就在 AMD 要消失在市場之中時,Zen CPU 的消息傳出!
Ryzen CPU,硬體架構的重新設計
在 2012 年,K8 的主要硬體架構師 Jim Keller 回到 AMD。這一次,他的回歸,讓 AMD 重返榮耀的聲音響起。是否新的 CPU 可以再現 K8 的傳說?這一次的 Ryzen CPU 和先前的 AMD CPU 有何差異?
將底層硬體架構做比較,可以發現 Ryzen CPU,取消了 Bulldozer 所提出的 Integer Cluster,並以類似 Intel Hyper-Threading 的技術取而代之。如此便能讓 CPU 盡可能地達到滿載的狀況。
此外,新的 Ryzen CPU 也引進了 Intel 於 Sandy Bridge 架構開始採用的 Micro-op Queue,以減少重新 Decode 的需求,提升單次可執行的指令數。借由更多先進的技術,讓 AMD 得以獲得大幅度的效能提升。也因此,AMD 公佈 Ryzen CPU 其每個週期可以執行的指令比前一代 CPU 多 52%,改善幅度相當大。
至於實際的 Ryzen CPU 效能如何呢?現在已經有相當多的評測文章將 Intel Kaby Lake 系列和 Ryzen 系列 CPU 做比較,在這不再多做評比。不過,在一般的應用上,AMD 的 CPU 不會再像之前的 CPU,看不到 Intel CPU 的車尾燈。
AMD 於 2016 年 HOT CHIPS 上所發佈的架構圖。從圖中可以發現,新的架構取消掉 CMT 的技術,讓 CPU 核心變得較不複雜。(Source:AMD)
至此,我們已經看完了兩大 x86 巨頭間的廝殺,同時在短短的 17 年間,CPU 產業已經採用相當多的技術,以滿足與日漸增的計算需求。千禧年後 CPU 的發展簡史,讓我們見證了一代 CPU 王者的興起沒落以及歸來。
從圖中可以發現在 AMD Bulldozer 中,一共有兩個整數運算單元,此技術便稱為 Clustered MultiThreaded。(Source:By Shigeru23 (Made by uploader (ref:[1], [2], [3])) [GFDLor CC BY 3.0], via Wikimedia Commons)