一文聊聊近些年 CPU 在微架構(gòu)、IO 速率上的演進過程
在上一篇《深入了解 CPU 的型號、代際架構(gòu)與微架構(gòu)》?中我們介紹了我手頭的一顆 Intel(R) Core(TM) i5 的型號規(guī)則,以及它的物理硬件的 Die 圖結(jié)構(gòu)。以及它對應的 Skylake 核的微架構(gòu)實現(xiàn)。
不少同學開始問我其它型號的 CPU 和它比有什么區(qū)別呢??紤]到了市場上各種新老 CPU 型號太多了,咱們沒辦法一一介紹。所以我想了一個辦法,咱們把這些年 CPU 進化的幾個關(guān)鍵點講一講。這樣將來大家再看其它的 CPU 的時候,也能做到懂得歷史,也能展望未來了。最重要的微內(nèi)核 sunny cove的 介紹在文章的最后。
一、制程工藝的變化
CPU 的生產(chǎn)過程大概是需要經(jīng)過如下幾步:第一步是晶圓的生產(chǎn)。具體過程是將包含有大量硅的石英沙放到一個巨大的石英熔爐中加熱融化,然后向熔爐中加入一個小的晶種以便于硅晶體圍著這顆晶種生長。直到生成一個單晶硅硅錠。這個硅錠是一個圓柱體,直徑大概在 200 mm 或 300 mm。然后對硅錠進行切割,將圓柱體的硅錠切割成圓形的晶圓。

第二步是 CPU 硬件電路的制作。晶圓表面會被涂上一層光阻物質(zhì),這種光阻物質(zhì)后面被紫外線照到的地方會融化。接著使用固定波長的紫外線通過印著 CPU 復雜電路結(jié)構(gòu)圖樣的模版照射晶圓。用光來對晶圓進行蝕刻。然后再通過沉積的方式加一層硅,涂光阻物質(zhì),再次影印,蝕刻重復多遍形成一個多層結(jié)構(gòu)。而且每層中間都要填充金屬導體。最終在一個非常小的面積上形成一個比一座城市還要復雜的 3D 結(jié)構(gòu)。


第三步是進行封裝和測試。晶圓上的電路被封裝起來,然后進行測試合格后就會推向市場銷售。
在上面的制作步驟中,最重要的是第二步。在這個過程中追求的是不斷底在單位面積的芯片上布局更多的晶體管。每個晶體管的結(jié)構(gòu)大概如下。

晶體管的尺寸越小,單位面積上的電路就越豐富,生產(chǎn)出來的 CPU 的性能就越好。另外還有就是晶體管越小的話,單個晶體管的能耗也會越低,整顆 CPU 也會越省電。
衡量晶體管尺寸大小的標準是晶體管中源極和柵極之間(溝道長度)的距離。在 Intel 歷年的 CPU 中,在 2013 年的 Haswell 采用的是 22 nm 的工藝。到了 2014 年的 Broadwell 開始采用 14 nm 工藝。到了 2019 年的 Ice Lake 開始引入 10 nm 工藝。到了 2022 年的 Raptor Lake,已經(jīng)開始采用 7 nm 工藝了。
一般來說,制程工藝越短,生產(chǎn)出來的 CPU 也就越先進。
二、集成度的變化
CPU 雖然是最精密的設(shè)備,但是它也是無法自己完成工作的。需要和計算機中的內(nèi)存、顯卡、硬盤、網(wǎng)卡、USB設(shè)備、鼠標鍵盤等組件配合才行。所以,CPU 需要通過硬件線路來和這些設(shè)備相連。
在這些設(shè)備中,所有硬件的工作頻率都比 CPU 要慢。只不過有的設(shè)備雖然速度比不上 CPU,但是還是比較快的。另外一些設(shè)備比如硬盤、鍵盤鼠標相比更慢一些。在老式 Intel CPU 中。
在大約 2000 年前后的老式電腦體系結(jié)構(gòu)中,CPU 在主板上設(shè)計了南橋和北橋兩個硬件。北橋負責與CPU通信,并且連接高速設(shè)備內(nèi)存和顯卡,并且與南橋通信;南橋負責與低速設(shè)備硬盤、網(wǎng)卡、鍵盤鼠標、USB設(shè)備通信,并且與北橋通信。

其中北橋芯片是存儲控制器(Memory Controller Hub, MCH)。功能包括了 PCIe(Peripheral Component Interconnect Express,是一種高速串行計算機擴展總線標準)總線功能用來連接顯卡。也包括了內(nèi)存控制器,用來連接內(nèi)存。
后來由于 CPU 對內(nèi)存和顯卡的數(shù)據(jù)帶寬需求越來越大。Intel 從 2011 年正式發(fā)布的 SandyBridge 開始,CPU 整合內(nèi)存控制器和 PCIe 控制器,相當于是把原來北橋的功能集成在 CPU 內(nèi)部了,北橋從那時開始就消失了(參考https://en.wikichip.org/wiki/intel/microarchitectures/sandy_bridge_(client))。
隨著時間的推移,CPU 硬件整合度越來越高。在手機芯片中,已經(jīng)由于只剩下一個芯片了,也沒有“芯片組”的說法了,只剩下孤零零的PCH (Platform Controller Hub)。
未來隨著集成度的進一步提高,未來在臺式機中南橋也可能會消失。在手機中由于體積的特殊性,已經(jīng)實現(xiàn)了最高的集成度。通過系統(tǒng)級芯片(System on Chip,SOC)已經(jīng)把 CPU、GPU、內(nèi)存、導航定位模塊、多媒體模塊等全部集成到了一起。
【文章福利】小編推薦自己的Linux內(nèi)核技術(shù)交流群:【749907784】整理了一些個人覺得比較好的學習書籍、視頻資料共享在群文件里面,有需要的可以自行添加哦!?。。ê曨l教程、電子書、實戰(zhàn)項目及代碼)? ?


零聲白金VIP體驗卡(含基礎(chǔ)架構(gòu)/高性能存儲/golang/QT/音視頻/Linux內(nèi)核)課程:

三、內(nèi)存控制器的變化
每代 CPU 的一大變化就是內(nèi)存控制器的提升,一般來說,越新的 CPU 所支持的內(nèi)存代際越來越新、支持的內(nèi)存頻率越來越高。
先看 2011 年第 3 代的 Ivy Bridge。該代際下的的 CPU 支持的還是 DDR3 代的內(nèi)存。Celeron、Pentium 等系列的 CPU 支持的內(nèi)存頻率大部分都是 DDR3-1333。只有 Core i3 和 Core i5 系列的內(nèi)存頻率支持到了 DDR3-1600。
到了 2014 年第 5 代 Broadwell 開始,Intel 開始在多數(shù)的 Core 系列開始大規(guī)模地支持 DDR4-2400 內(nèi)存。2015 年的第 6 代 Skylake,其代際下高端的 Core i9 支持到了 DDR4-2666。到了 2016 年的 Kaby Lake,普通的 Core i5 和 Core i7 也都支持了 DDR4-2666。2019 年的 Ice Lake 的 Core 系列支持了 DDR4 3200。
到了 2021 年的 Alder Lake S 開始,開始支持 DDR5 的新內(nèi)存。而且還是同時支持 DDR4-3200 和 DDR5-4800。
上面說的是臺式機的內(nèi)存規(guī)格。對于筆記本電腦來說,還有對應的低電壓規(guī)格的內(nèi)存條代際。低電壓標準的內(nèi)存相對比較省電,但性能會差10%左右。在具體的內(nèi)存標準上,包括 DDRxL 和 LPDDRx 兩個系列標準。其中其中 L 是低電壓 Low Voltage 的簡寫,LP 是 Low Power 的簡寫。
拿第 4 代內(nèi)存來舉例, DDR4 的工作電壓雖然相比 DDR3 的 1.5 v 下降到了 1.2 v,更加省電。但是相比用在筆記本中的話,功耗仍然是比較高的。而 DDR4L 可以同時除了兼容 DDR4 的 1.2 v 電壓模式外,還支持 1.05 v 的低電壓模式。LPDDR4 的工作電壓是 1.1 v,DDR4L 和 LPDDR4 所以更適用于用在筆記本電腦等移動設(shè)備上。
CPU支持的內(nèi)存除了以上指標外,還有另外一個就是通道數(shù)。直觀理解,就是 CPU 上可以支持幾條內(nèi)存插槽。家用 PC 電腦一般都 2 個或 4 個內(nèi)存插槽。在英文中對應的叫 channel 數(shù)。越多內(nèi)存插槽的電腦支持的最大內(nèi)存數(shù)量也就越大,整體帶寬也就更高。
四、PCIe 插槽變化
前面我們提到 PCIe 總線。它是一種用于連接高速組件的高速串行計算機擴展總線標準,它取代了歷史上出現(xiàn)的 AGP、PCI 和 PCI- X 總線標準,并經(jīng)過了多次調(diào)整改進。
最早在 2003 年的時候,PCIe 1.0標準首次發(fā)布。后來因為帶寬需求增長越來越快,已經(jīng)陸續(xù)出現(xiàn)了 PCIe 1.0、PCIe 2.0、PCIe 3.0、PCIe 4.0 和 PCIe 5.0 等 5 代標準,PCIe 6.0也將在不久后發(fā)布。傳輸速率每過一代就會增加很多。

Intel 的 CPU 發(fā)展過程中,在 2015 年的 Skylake 中支持了 PCIe 3.0 標準。在 2020 年的 Tiger Lake 的 CPU 中,開始支持了 PCIe 4.0 標準。在 2021 年的 Alder Lake S 中,提供了 16 通道的 PCIe 5.0 用于連接顯卡,同時還支持 4 通道的 PCIe 4.0 通道用于連接固態(tài)硬盤。
五、微架構(gòu)(核)的變化
在每代的 CPU 中,單個物理核的設(shè)計結(jié)構(gòu)也是非常不同的。所以隔代的 CPU 性能差異也不盡相同。
在 2013 年和 2014 年,Haswell、Haswell Refresh、Broadwell 等代際采用的核的微架構(gòu)設(shè)計都是一樣的,都采用的是 Haswell 微架構(gòu)。
在 2015 年的 SkyLake、KabyLake、Coffee Lake 等代際中,采用的都是 Skylake 微架構(gòu)。
到了 2019 年發(fā)布的 Ice Lake 代際中,開始引入了 Sunny Cove 微架構(gòu)。該架構(gòu)下的單核性能大約比上一代提升了有 18% - 20%(參考 https://en.wikichip.org/wiki/intel/microarchitectures/sunny_cove)
每一種不同的 CPU 微架構(gòu),在核的內(nèi)部實現(xiàn)細節(jié)上都會有一些不同。就拿 Ice Lake 中使用的 Sunny Cove 微架構(gòu)來舉例,它相比上一代的 Skylake,具體的改進有如下。

對于負責指令解析的前端部分
μOP cache提升到了 2.3 k(上一代是 1536)
改進的分支預測
iTLB 緩存翻倍
對于負責指令執(zhí)行的后端部分
順序重排緩存器(ReOrder Buffer,ROB)提升到了 352 條目(上一代是224條目)
調(diào)度器(Scheduler)提升到支持 10 路超標量(上一代是 8 路超標量),每個時鐘周期最多可以支持 10 個微操作
對于執(zhí)行引擎部分
存儲操作端口提升到了 2 個(上一代是 1 個)
地址生成端口提升到了 2 個(上一代是 1 個)
對于緩存子系統(tǒng)
L1 緩存提升到了 48 KiB(上一代是 32 KiB)
L2 緩存提升到了 512 Kib(上一代是 256 KiB)
STLB(Shared TLB)緩存提升了到了 2048 條目(上一代是 1536 條目),DTLB也有較大改進
另外 Sunny Cove 還引入了一些新的指令,比如 AVX-512 向量指令。所有這些核設(shè)計細節(jié)中的提升,鑄就了 Sunny Cove 比上一代更強的單核性能。
到了 2020 年之后的 Tiger Lake 中,開始采用 Willow Cove 新微架構(gòu)中 L2 又進一步提升到了 1.25 MB,L3 提升到了 12 MB。(參考https://en.wikichip.org/wiki/intel/microarchitectures/willow_cove)
后面到了 2021 年的 Alder Lake S 時為了平衡性能和功耗, 又開啟了一個新的 CPU 設(shè)計趨勢。就是借鑒手機 CPU 設(shè)計,引入了大核小核的設(shè)計區(qū)分。
在 CPU 的設(shè)計中,在性能核功耗上一直無法兼顧。內(nèi)置更多的晶體管雖然可以提升性能,但會讓發(fā)熱功耗問題更嚴重。雖然制程不斷提升到了 22nm、14nm、10nm、7nm、...,但是由于芯片功能的增加和性能的提升,功耗上取得的效果一直不能令人滿意。
在傳統(tǒng)的 CPU 中,不管是什么樣的任務(wù),都采用一樣的核來調(diào)度和使用。但其實很多場景中,并不需要這些性能和能耗都較高的核。在新的設(shè)計趨勢中,“大核”叫做“Performance Cores”,小核”叫“Efficiency cores”。
當運行各種低負載應用時,可以使用“Efficiency cores”來滿足用戶需求的同時來節(jié)約電量,這種核的性能一般,但優(yōu)勢在于省電。當真正需要有更多性能的時候,才會啟動更高性能的“Performance Cores”。
總結(jié)
由于市場上各種新老 CPU 型號太多了,咱們沒辦法一一去了解。我們只要掌握 CPU 發(fā)展中的幾個關(guān)鍵點的進步,就能夠做到對所有 CPU 有個基本的了解了。
其中最重要的進步點是 CPU 制程工藝的變化。衡量 CPU 制程工藝的尺寸的標準是晶體管中源極和柵極之間(溝道長度)的距離。在這些年中,制程一直在進步。從 65 nm、45nm、22nm、...、10nm、7nm一直在進步。但總體上來說,已經(jīng)快到物理的極限,制程的進步速度在變緩。
另外一個就是集成度的變化。早年的 CPU 中,硬件架構(gòu)上設(shè)計的比較細。在新的 CPU 中,由于對帶寬的要求變得越來越高。所以 CPU 硬件開發(fā)者們傾向于把更多的模塊都集成到 CPU 硬件中。比如歷史上的北橋,絕大部分功能都被 CPU 硬件實現(xiàn)了。在手機芯片中,一個 SoC 更是集成了 CPU、RAM、導航定位模塊、多媒體模塊等眾多功能模塊。
還有就是 IO 支持上的提升。對于內(nèi)存控制器部分來說,支持的內(nèi)存代際越來越高,從 DDR3、DDR4,一直到了今天的 DDR5。另外就是內(nèi)存的頻率,即使是同一代際的內(nèi)存,頻率支持的也是越來越高。還有就是連接顯卡和固態(tài)硬盤的 PCIe 總線,也是從 1.0 逐步支持到了 5.0。
還有更重要的變化是單核微架構(gòu)的設(shè)計。在新的單核架構(gòu)中,CPU 中的各種緩存如 TLB、L1、L2變的越來越大,支持的超變量路數(shù)也再變多。還有就是一個新的發(fā)展趨勢,CPU 廠商們引入了一些更省電的“Efficiency cores”,俗稱小核。用來在系統(tǒng)計算任務(wù)不重的時候,使用小核來調(diào)度,節(jié)約更多的能耗。
CPU硬件一直在進步,在過去的很多年中,服務(wù)器端計算性能的提升都是靠硬件來提升的。但我覺得近些年來,這個提升趨勢有變緩的跡象。因此未來更好地理解硬件內(nèi)部原理,好好設(shè)計和調(diào)優(yōu)服務(wù)的軟件部分,讓硬件性能最大程度地發(fā)揮,這件事情會變得越來越重要。
原文作者:開發(fā)內(nèi)功修煉
