華文網

一代CPU王者的發展簡史:從技壓英特爾的x86-64位技術到全新的 Ryzen 架構

今年,眾所期待的 CPU 終於上市了。從 2012 年開始研發,背負著帶領 重返榮耀的 CPU,一上市便造成轟動。極高的性價比以及低功耗,為筆電以及桌機的 CPU 市場,注入了活水。

64 位處理器的興起

在 32 位 CPU 中,

如果單純以 CPU 做記憶體定址時,4GiB 為其極限。多餘的空間,則需額外的軟硬體支援。在早期的超級電腦中,這一類的需求可以靠錢解決。然而,隨著記憶體技術的發展,在一般商業甚至是一般消費性市場中,4G 以上的記憶體將越來越常見。如果有一款 CPU 可以直接定址大量的記憶體,將帶來相當大的優勢。

因此,從 90 年代起,眾多的 CPU 製造商開始研發製造 64 位元的 CPU。其中,PC 市場的領頭羊,Intel 便從 1994 年開始,

和 HP 共同發展新的 64 位元指令集架構以及 CPU,以因應接下來的 CPU 市場競爭。然而,Intel 所提出的 64 位元 CPU,其指令集架構和舊有的 x86 截然不同,將導致原有的程式會無法在新的 Intel CPU 上執行。

1999 年時,AMD則發佈和 Intel 截然不同的方法。AMD 決定將既有的 x86 指令集架構,擴增成 64 位元的指令集。採用這個方法意味著原有的程式,將得以執行在新的 AMD 64 位的 CPU 上,大大減低後續重新編寫程式的需求。指令集架構的差異,

替 AMD 立下勝利的基石。

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)