AMD 重返榮耀?解析曾技壓英特爾的 64 位元技術到全新的 Ryzen 架構

作者 | 發布日期 2017 年 04 月 18 日 9:02 | 分類 處理器 , 記憶體 follow us in feedly

今年,眾所期待的 AMD Ryzen CPU 終於上市了。從 2012 年開始研發,背負著帶領 AMD 重返榮耀的 CPU,一上市便造成轟動。極高的性價比以及低功耗,為筆電以及桌機的 CPU 市場,注入了活水。然而,當眾人都說要重返榮耀,那 AMD 的過往榮耀是什麼?這一間公司又是如何讓 Intel 感到頭疼?這一切,就從 AMD 發表 x86-64 指令集架構說起。



64 位元處理器的興起

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

因此,從 1990 年代起,眾多的 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 64K8 架構成了傳說,為 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 DAMD CPU 的市佔率一舉攀升,就在黃金交叉將要出現時,Intel 展開逆襲,2006 年 月,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,也就我們現在所熟知的 i3i5i7 處理器。所謂的 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 MultiThreadedCMT)技術。此技術是將一顆 CPU 內部的整數執行單元複製一份,讓 CPU 具備在同一核心內部執行兩個執行緒能力,在後續擴增核心的計算能力上,相當容易,所需要的修改相對較少。

然而,其缺點便是沒有辦法共用執行單元,無法享有 SMT 中最重要的優點,用兩個 Thread 盡可能讓執行單元不會有空閒狀態。此外,兩個獨立的 L1 Cache 雖然感覺在實作上比較簡單。但為了要維持 Cache 的一致性,需要擁有額外的 Core 內部資料交換單元,大大提升控制電路的複雜性。

最後,結果便是眾所皆知的,AMD 於 x86 的 CPU 市佔率直直落,現今中高階筆電市場中,更幾乎看不到採用 AMD CPU 的產品。就在 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])) [GFDL or CC BY 3.0], via Wikimedia Commons

(首圖來源:pixabay) 

關鍵字: , , , , , , ,