今年,眾所期待的 AMD Ryzen CPU 終于上市了。從 2012 年開(kāi)始研發(fā),背負(fù)著帶領(lǐng) AMD 重返榮耀的 CPU,一上市便造成轟動(dòng)。極高的性?xún)r(jià)比以及低功耗,為筆電以及桌機(jī)的 CPU 市場(chǎng),注入了活水。然而,當(dāng)眾人都說(shuō)要重返榮耀,那 AMD 的過(guò)往榮耀是什么?這一間公司又是如何讓 Intel 感到頭疼?這一切,就從 AMD 發(fā)布 x86-64 指令集架構(gòu)說(shuō)起。
64 位處理器的興起
在 32 位 CPU 中,如果單純以 CPU 做存儲(chǔ)器定址時(shí),4GiB 為其極限。多余的空間,則需額外的軟硬件支持。在早期的超級(jí)電腦中,這一類(lèi)的需求可以靠錢(qián)解決。然而,隨著存儲(chǔ)器技術(shù)的發(fā)展,在一般商業(yè)甚至是一般消費(fèi)性市場(chǎng)中,4G 以上的存儲(chǔ)器將越來(lái)越常見(jiàn)。如果有一款 CPU 可以直接定址大量的存儲(chǔ)器,將帶來(lái)相當(dāng)大的優(yōu)勢(shì)。
因此,從 90 年代起,眾多的 CPU 制造商開(kāi)始研發(fā)制造 64 位的 CPU。其中,PC 市場(chǎng)的領(lǐng)頭羊,Intel 便從 1994 年開(kāi)始,和 HP 共同發(fā)展新的 64 位指令集架構(gòu)以及 CPU,以因應(yīng)接下來(lái)的 CPU 市場(chǎng)競(jìng)爭(zhēng)。然而,Intel 所提出的 64 位 CPU,其指令集架構(gòu)和舊有的 x86 截然不同,將導(dǎo)致原有的程序會(huì)無(wú)法在新的 Intel CPU 上執(zhí)行。
1999 年時(shí),AMD 則發(fā)布和 Intel 截然不同的方法。AMD 決定將既有的 x86 指令集架構(gòu),擴(kuò)增成 64 位的指令集。采用這個(gè)方法意味著原有的程序,將得以執(zhí)行在新的 AMD 64 位的 CPU 上,大大減低后續(xù)重新編寫(xiě)程序的需求。指令集架構(gòu)的差異,替 AMD 立下勝利的基石。
64 位指令集架構(gòu)之戰(zhàn),AMD 大獲全勝
在 2001 年,Intel 終于發(fā)布其第一款的 64 位 CPU──Itanium。然而,這一款 CPU 在市場(chǎng)的接受度卻沒(méi)有如同其所預(yù)期般,迅速的被采用。最主要的原因,莫過(guò)于軟件的數(shù)量不足、以及和其他 64 位處理器相比的弱勢(shì)效能。
其中,軟件數(shù)量不足的關(guān)鍵,就在于指令集架構(gòu)的差異。在高速計(jì)算里面,為了讓程序得以執(zhí)行的更快,大多數(shù)的工程師會(huì)修改或直接編寫(xiě)組合語(yǔ)言,以期讓程序能更符合硬件的執(zhí)行模式。如果更換不同的指令集架構(gòu),將需要耗費(fèi)大量的時(shí)間修改組合語(yǔ)言,甚至重新開(kāi)發(fā)整個(gè)程序。
此外,沒(méi)有明顯優(yōu)勢(shì)的 CPU 效能,也讓開(kāi)發(fā)商不愿投入更多的資源在 Intel 的 Itanium 上。因此,Intel 只能加速下一款 CPU 的開(kāi)發(fā),以期待能滿足市場(chǎng)的需求。
2003 年,震撼市場(chǎng)的消息發(fā)出。AMD 發(fā)布了第一款 x86-64 的 CPU──Opteron 以及 Athlon 64。光是讓既有的 32 位 CPU 運(yùn)行于其上,就已經(jīng)為 AMD 添增光彩。更不用說(shuō)新的 CPU 所采用的硬件架構(gòu) K8 是何等的強(qiáng)悍。
扭轉(zhuǎn)頹勢(shì),Intel 版 x86-64 現(xiàn)身
為了避免商用以及高速科學(xué)計(jì)算領(lǐng)域的市占率下滑,Intel 于 2004 年時(shí)緊急推出新的 Xeon CPU。此外,在桌機(jī)市場(chǎng),Athlon 64 的優(yōu)秀效能,讓 Intel 不得不以既有的 Pentium 4 為基礎(chǔ)將指令集架構(gòu)擴(kuò)展至 64 位。
然而,即使 Intel 推出新了的 CPU,其 CPU 硬件架構(gòu)效能提升卻不足,導(dǎo)致新的 CPU 效能稍微落后采用 K8 架構(gòu)的 Opteron 以及 Athlon 64。K8 架構(gòu)成了傳說(shuō),為 AMD 帶來(lái)榮耀。同時(shí),其主要硬件架構(gòu)師 Jim Keller 也逐漸為人所知。
邁向多核心之路,黃金交叉將出現(xiàn)?
在 2005 年 5 月時(shí),AMD 以及 Intel 皆發(fā)布了消費(fèi)者市場(chǎng)的雙核心 CPU,分別為 AMD Athlon 64 X2 以及 Intel Pentium D。第一款消費(fèi)市場(chǎng)的雙核心 CPU,揭開(kāi)了嶄新的時(shí)代序幕。多的核心便意味著作業(yè)系統(tǒng)中的多執(zhí)行緒,可以同時(shí)運(yùn)行在一顆 CPU 中,大幅降低執(zhí)行緒所需等待的時(shí)間。
比較這兩款 x86-64 雙核心 CPU 的效能時(shí),這一次,AMD 持續(xù)維持著其領(lǐng)先的姿態(tài),Athlon 64 X2 的效能大幅超越 Pentium D。AMD CPU 的市占率一舉攀升,就在黃金交叉將要出現(xiàn)之時(shí)。Intel 展開(kāi)逆襲,2006 年 8 月,Intel 推出了下一代的 CPU──Core 2 系列。
▲ 由 CPU Benchmarks 所統(tǒng)計(jì)的資料,該資料是統(tǒng)計(jì)全球使用該款 benchmarks 的 CPU 廠牌。雖然不是實(shí)際的 CPU 出貨量,但是足以當(dāng)做參考。(Source:CPU Benchmarks)
新系列的 Intel CPU,斷開(kāi)和 Pentium 4 的關(guān)聯(lián),以 Pentium III 的 CPU 硬件架構(gòu)為基礎(chǔ)重新設(shè)計(jì),并采用 AMD 所發(fā)展的 64 位指令集架構(gòu)。這一次,Intel 以過(guò)往成功的產(chǎn)品為基礎(chǔ)并重新設(shè)計(jì),以 Core 為名重新出發(fā)。這一次,Intel 結(jié)束產(chǎn)品線的混亂以及產(chǎn)品效能低落的數(shù)年。
同步多線程,徹底發(fā)揮 CPU 核心的計(jì)算能力
在 2008 年,Intel 將其 Hyper-Threading 的技術(shù)重新導(dǎo)入 Core i 系列 CPU,也就我們現(xiàn)在所熟知的 i3、i5、i7 處理器。所謂的 Hyper-Threading,便是在一個(gè) CPU 核心內(nèi)部在將其分成兩份。然而,究竟是如何將 CPU 切成兩份呢?根據(jù) Intel 于 2002 年所發(fā)布的 Hyper-Threading Technology Architecture and Microarchitecture便可略知一二。
在論文中,Intel 便給出了兩張比較圖。兩個(gè)核心最主要的差異,在采用 Hyper-Threading 技術(shù)中的 CPU 中,Architecture State 單元會(huì)比一般的核心多一個(gè)。大致上,Architecture State 單元包含了多數(shù)的暫存器以及中斷訊號(hào)的控制器等,用以記錄執(zhí)行緒執(zhí)行的資訊,是無(wú)法被共用的資料。
▲ 左圖為未采用 Hyper-Threading 技術(shù)的 CPU Cores,右圖則是采用了 Hyper-Threading 技術(shù)的 CPU Cores,其中,兩者間的差異為一個(gè) CPU Core 中有不同數(shù)量的 Architecture State 單元。(Source:Intel Technology Journal Vol. 1)
因此,在采用這個(gè)技術(shù)之后,只需要額外的 5% 面積,便可以達(dá)成更高的指令集平行化,讓 CPU 盡可能地滿載,釋放 CPU 所有的潛能。根據(jù)這一篇論文中所提供的數(shù)據(jù),采用這一項(xiàng)技術(shù)后,在多執(zhí)行緒的執(zhí)行情況下,將可帶來(lái)將近 30% 的效能提升,相當(dāng)驚人。
做為應(yīng)對(duì),AMD 于 2011 年推出 Bulldozer,其采用的并非是 Intel 所使用的 SMT 技術(shù),而是 Clustered MultiThreaded(CMT)技術(shù)。此技術(shù)是將一顆 CPU 內(nèi)部的整數(shù)執(zhí)行單元復(fù)制一份,讓 CPU 具備在同一核心內(nèi)部執(zhí)行兩個(gè)執(zhí)行緒能力,在后續(xù)要擴(kuò)增核心的計(jì)算能力上,相當(dāng)?shù)娜菀祝枰男薷南鄬?duì)的較少。
然而,其缺點(diǎn)便是沒(méi)有辦法共用執(zhí)行單元,無(wú)法享有 SMT 中最重要的優(yōu)點(diǎn),用兩個(gè) Thread 盡可能讓執(zhí)行單元不會(huì)有空閑狀態(tài)。此外,兩個(gè)獨(dú)立的 L1 Cache 雖然感覺(jué)在實(shí)作上會(huì)比較簡(jiǎn)單。但是,為了要維持 Cache 的一致性,便需要擁有額外的 Core 內(nèi)部資料交換單元,大大的提升控制電路的復(fù)雜性。
最后,結(jié)果便是眾所皆知的,AMD 于 x86 的 CPU 市占率直直落,現(xiàn)今在中高端的筆電市場(chǎng)中,更幾乎看不到采用 AMD CPU 的產(chǎn)品。就在 AMD 要消失在市場(chǎng)之中時(shí),Zen CPU 的消息傳出!
Ryzen CPU,硬件架構(gòu)的重新設(shè)計(jì)
在 2012 年,K8 的主要硬件架構(gòu)師 Jim Keller 回到 AMD。這一次,他的回歸,讓 AMD 重返榮耀的聲音響起。是否新的 CPU 可以再現(xiàn) K8 的傳說(shuō)?這一次的 Ryzen CPU 和先前的 AMD CPU 有何差異?
將底層硬件架構(gòu)做比較,可以發(fā)現(xiàn) Ryzen CPU,取消了 Bulldozer 所提出的 Integer Cluster,并以類(lèi)似 Intel Hyper-Threading 的技術(shù)取而代之。如此便能讓 CPU 盡可能地達(dá)到滿載的狀況。
此外,新的 Ryzen CPU 也引進(jìn)了 Intel 于 Sandy Bridge 架構(gòu)開(kāi)始采用的 Micro-op Queue,以減少重新 Decode 的需求,提升單次可執(zhí)行的指令數(shù)。借由更多先進(jìn)的技術(shù),讓 AMD 得以獲得大幅度的效能提升。也因此,AMD 公布 Ryzen CPU 其每個(gè)周期可以執(zhí)行的指令比前一代 CPU 多 52%,改善幅度相當(dāng)大。
至于實(shí)際的 Ryzen CPU 效能如何呢?現(xiàn)在已經(jīng)有相當(dāng)多的評(píng)測(cè)文章將 Intel Kaby Lake 系列和 Ryzen 系列 CPU 做比較,在這不再多做評(píng)比。不過(guò),在一般的應(yīng)用上,AMD 的 CPU 不會(huì)再像之前的 CPU,看不到 Intel CPU 的車(chē)尾燈。
▲ AMD 于 2016 年 HOT CHIPS 上所發(fā)布的架構(gòu)圖。從圖中可以發(fā)現(xiàn),新的架構(gòu)取消掉 CMT 的技術(shù),讓 CPU 核心變得較不復(fù)雜。(Source:AMD)
至此,我們已經(jīng)看完了兩大 x86 巨頭間的廝殺,同時(shí)在短短的 17 年間,CPU 產(chǎn)業(yè)已經(jīng)采用相當(dāng)多的技術(shù),以滿足與日漸增的計(jì)算需求。千禧年后 CPU 的發(fā)展簡(jiǎn)史,讓我們見(jiàn)證了一代 CPU 王者的興起沒(méi)落以及歸來(lái)。
▲ 從圖中可以發(fā)現(xiàn)在 AMD Bulldozer 中,一共有兩個(gè)整數(shù)運(yùn)算單元,此技術(shù)便稱(chēng)為 Clustered MultiThreaded。(Source:By Shigeru23 (Made by uploader (ref:[1], [2], [3])) [GFDLor CC BY 3.0], via Wikimedia Commons)
(首圖來(lái)源:pixabay)
如需獲取更多資訊,請(qǐng)關(guān)注微信公眾賬號(hào):Technews科技新報(bào)