系統(tǒng)架構(gòu)師通常對未來不耐煩,尤其是當(dāng)他們看到好的東西即將到來時(shí)。因此,當(dāng)談到英特爾創(chuàng)建的 Compute Express Link 或 CXL 互連時(shí),我們可以有一定的期待,因?yàn)樵摶ミB現(xiàn)在已經(jīng)吸收了 Hewlett Packard Enterprise 的 Gen-Z 技術(shù)和IBM 的 OpenCAPI 技術(shù)。 在可預(yù)見的未來, CXL將成為跨計(jì)算引擎的內(nèi)存結(jié)構(gòu)標(biāo)準(zhǔn)。 CXL 2.0 規(guī)范在 PCI-Express 5.0 外圍互連中帶來內(nèi)存池(memory pooling),這很快將在 CPU 引擎上可用,這是偉大的。但是所有的目光都已經(jīng)轉(zhuǎn)向剛剛發(fā)布的 CXL 3.0 規(guī)范,該規(guī)范建立在 2023 年推出的 PCI-Express 6.0 互連之上,帶寬是上一代的2倍。 人們也已經(jīng)開始考慮 CXL 4.0 ,在PCI Express 7.0之上提供另一個(gè) 2 倍帶寬。根據(jù)預(yù)測,這將于 2025 年推出。 在某種程度上,我們預(yù)計(jì) CXL 將遵循 IBM 的“Bluelink”O(jiān)penCAPI 互連所開辟的道路?!八{(lán)色巨人”在“Cumulus”和“Nimbus”Power9 處理器中使用 Bluelink 互連來提供跨多個(gè)處理器的 NUMA 互連,運(yùn)行 Nvidia 的 NVLink 協(xié)議以提供跨 Power9 CPU 和 Nvidia“Volta”V100 GPU 加速器的內(nèi)存一致性,并通過 OpenCAPI 端口為其他類型的加速器提供更通用的內(nèi)存連貫鏈接。 但顯然,OpenCAPI 和 CXL 的路徑不會完全相同。OpenCAPI 是 kaput,CXL 是數(shù)據(jù)中心內(nèi)存一致性的標(biāo)準(zhǔn)。 IBM 在“Cirrus”Power10 處理器上放置了更快的 OpenCAPI 端口,它們用于提供與 Power9 芯片一樣的 NUMA 鏈接,以及使用 Bluelink SerDes 作為內(nèi)存控制器的新 OpenCAPI 內(nèi)存接口。與 DDR4 或 DDR5 控制器相比,運(yùn)行速度稍慢。但它占用的芯片空間要少得多,消耗的功率也更少——并且具有與芯片中的其他 I/O 完全相同的優(yōu)點(diǎn)。 理論上,IBM 可以支持在 Power10 上的 OpenCAPI 互連上運(yùn)行 CXL 和 NVLink 協(xié)議,但 Nvidia 有一些我們不理解的酸葡萄——不提供與 Nvidia 當(dāng)前的“Ampere”A100 和即將推出的“Hopper”H100 GPU相干的內(nèi)存。在 OpenCAPI 和 NVLink 之間的信號速率和通道數(shù)方面,IBM 和 Nvidia 之間可能存在阻抗不匹配。IBM 在其 Power10 芯片上有 PCI-Express 5.0 控制器——這些是獨(dú)特的控制器,不是 Bluelink SerDes——因此本可以支持 CXL 一致性協(xié)議,但據(jù)我們所知,藍(lán)色巨人也選擇不這樣做. 鑒于我們認(rèn)為 CXL 是許多 GPU 加速器及其內(nèi)存將在未來鏈接到 CPU 的方式,IBM 的這一策略似乎很奇怪。因此,我們正在推動 IBM 推出支持 CXL 2.0 和 NVLink 3.0 相干鏈路(coherent links)的 Power10+ 處理器,以及更高的核心數(shù)和更高的時(shí)鐘速度,這可能發(fā)生在一年或一年半之后。 鑒于其 OpenCAPI 內(nèi)存的巨大優(yōu)勢,IBM 沒有理由無法獲得部分 AI 和 HPC 預(yù)算,該內(nèi)存通過 24 核雙芯片模塊驅(qū)動 818 GB/秒的內(nèi)存帶寬。我們還預(yù)計(jì)未來來自 Nvidia 的數(shù)據(jù)中心 GPU 計(jì)算引擎將以某種方式支持 CXL,但具體如何與 NVLink 并排或合并尚不清楚。 目前還不清楚HPE 如何將 Gen-Z 知識產(chǎn)權(quán)捐贈給 CXL 聯(lián)盟。但I(xiàn)BM 上周捐贈給 CXL 指導(dǎo)組織的 OpenCAPI 知識產(chǎn)權(quán)將用于打造 CXL 4.0 標(biāo)準(zhǔn),這兩家系統(tǒng)供應(yīng)商正在給CXL方面提供他們必須力所能及的幫助。為此,他們應(yīng)該受到贊揚(yáng)。 換句話說,我們認(rèn)為 Gen-Z 和 OpenCAPI 都遠(yuǎn)遠(yuǎn)領(lǐng)先于 CXL,并且可以很容易地被用作節(jié)點(diǎn)內(nèi)(in-node)和節(jié)點(diǎn)間(inter-node)內(nèi)存和加速器結(jié)構(gòu)。HPE 已經(jīng)設(shè)計(jì)了一套非常優(yōu)雅的內(nèi)存結(jié)構(gòu)開關(guān)和光收發(fā)器,IBM 是唯一一家在其Bluelink SerDes 上提供跨 Nvidia GPU 的 CPU-GPU 一致性以及通過其 OpenCAPI 內(nèi)存接口連接盒內(nèi)或盒內(nèi)內(nèi)存的能力的 CPU 供應(yīng)商。 我們相信 Gen-Z 和 OpenCAPI 技術(shù)將有助于使 CXL 變得更好,并改進(jìn)所提供的一致性的種類。CXL 最初提供了一種非對稱一致性,其中 CPU 可以像本地一樣讀取和寫入加速器中的遠(yuǎn)程存儲器,但使用 PCI-Express 總線而不是專有的 NUMA 互連——這是一個(gè)巨大的過度簡化——而不是擁有完整的緩存CPU 和加速器之間的一致性,這會產(chǎn)生大量開銷,并且會產(chǎn)生自身的阻抗不匹配,因?yàn)檫^去 PCI-Express 比 NUMA 互連要慢。 但正如我們之前指出的那樣,隨著 PCI-Express 的速度每兩年左右翻一番,并且隨著帶寬的跳躍,延遲保持穩(wěn)定,我們認(rèn)為 CXL 很有可能成為一種通用的 NUMA 互連和內(nèi)存控制器,就像 IBM 對 OpenCAPI 所做的那樣,英特爾已經(jīng)為 CXL 內(nèi)存和 CXL NUMA 提出了這一建議,Marvell 對 CXL 內(nèi)存當(dāng)然也是這么想的也是。這就是為什么在 CXL 3.0 中,該協(xié)議提供了所謂的“增強(qiáng)的一致性”,這是另一種說法,它恰好是設(shè)備之間的那種完全一致性。 例如,Nvidia 在一個(gè)NVSwitch 網(wǎng)絡(luò)或 IBM 在 Power9 CPU 和 Nvidia Volta GPU 之間提供。英特爾一開始不想做的那種完全一致性。這意味著支持 CXL.memory 子協(xié)議的設(shè)備可以通過 CXL 交換機(jī)或直接點(diǎn)對點(diǎn)網(wǎng)絡(luò)直接訪問彼此的內(nèi)存,而不是不對稱地訪問。 CXL 沒有理由不能成為內(nèi)存區(qū)域網(wǎng)絡(luò)的基礎(chǔ),因?yàn)?IBM在 Power10 芯片上通過其OpenCAPI 內(nèi)存的“memory inception””實(shí)現(xiàn)創(chuàng)建了內(nèi)存區(qū)域網(wǎng)絡(luò)。正如英特爾和 Marvell 在他們的概念演示中所展示的那樣,chippery和interconnects的調(diào)色板對于像 CXL 這樣的標(biāo)準(zhǔn)是非常開放的,并且在許多向量上對其進(jìn)行改進(jìn)非常重要。行業(yè)讓英特爾贏得了這一場競爭,從長遠(yuǎn)來看,我們會因此而變得更好。英特爾在很大程度上放棄了 CXL,現(xiàn)在各種外部創(chuàng)新都可以承擔(dān)。 英特爾將 Universal Chiplet Interconnect Express推廣為用于連接計(jì)算引擎插槽內(nèi)的chiplet的標(biāo)準(zhǔn)也是如此?;旧?,我們將生活在這樣一個(gè)世界中:運(yùn)行 UCI-Express 的 PCI-Express 連接插槽內(nèi)的chiplet,運(yùn)行 CXL 的 PCI-Express 連接節(jié)點(diǎn)內(nèi)的插槽和芯片(這變得越來越短暫),并且 PCI-Express 交換結(jié)構(gòu)跨越有朝一日,一些機(jī)架甚至一行可能會使用 CXL 將 CPU、加速器、內(nèi)存和閃存連接在一起,形成可分解和可組合的虛擬硬件服務(wù)器。 目前,即將出現(xiàn)的是在 PCI-Express 6.0 傳輸之上運(yùn)行的 CXL 3.0,以下是 CXL 3.0 如何與之前的 CXL 1.0/1.1 版本和當(dāng)前在 PCI-Express 之上的 CXL 2.0 版本疊加5.0 運(yùn)輸: 當(dāng) CXL 協(xié)議在 I/O 模式下運(yùn)行時(shí)——即所謂的 CXL.io——它本質(zhì)上與用于 I/O 設(shè)備的 PCI-Express 外圍協(xié)議相同。CXL.cache 和 CXL.memory 協(xié)議在 PCI-Express 傳輸之上添加緩存和內(nèi)存尋址,并以 PCI-Express 協(xié)議的大約一半延遲運(yùn)行。 舉例而言,就像我們在 2021 年 9 月與英特爾交談時(shí)所做的那樣,CXL 協(xié)議規(guī)范要求當(dāng)緩存線丟失時(shí)對 snoop 命令的 snoop 響應(yīng)必須低于 50 納秒(引腳到引腳),而對于內(nèi)存讀?。ㄒ_到引腳),延遲必須低于 80 納秒。相比之下,在典型的 X86 服務(wù)器中,本地 DDR4 內(nèi)存訪問 CPU 插槽大約需要 80 納秒,而 NUMA 訪問相鄰 CPU 插槽中的遠(yuǎn)程內(nèi)存大約需要 135 納秒。 通過在 PCI-Express 6.0 傳輸之上運(yùn)行 CXL 3.0 協(xié)議,所有三種類型的驅(qū)動程序的帶寬都增加了一倍,而延遲沒有任何增加。由于 256 字節(jié)流控制單元或 flit 固定數(shù)據(jù)包大?。ù笥?PCI-Express 5.0 傳輸中使用的 64 字節(jié)數(shù)據(jù)包),帶寬增加到 256 GB/秒 x16 通道(包括兩個(gè)方向) ) 和 PAM-4 脈沖幅度調(diào)制編碼,可將 PCI-Express 傳輸上的每個(gè)信號的比特?cái)?shù)加倍。PCI-Express 協(xié)議結(jié)合使用循環(huán)冗余校驗(yàn) (CRC:cyclic redundancy check) 和三向前向糾錯(cuò) (FEC :three-way forward error correction) 算法來保護(hù)通過線路傳輸?shù)臄?shù)據(jù),這是一種比以前的 PCI-Express 協(xié)議更好的方法因此為什么選擇 PCI-Express 6.0 和 CXL 3。 CXL 3.0 協(xié)議確實(shí)具有低延遲 CRC 算法,該算法將 256 B flit 分成 128 B 半 flit,并在這些子 flit 上進(jìn)行 CRC 檢查和傳輸,這可以將傳輸延遲減少 2 納秒到 5 納秒之間。 CXL 3.0 帶來的新功能是內(nèi)存共享,這與 CXL 2.0 提供的內(nèi)存池不同。這是內(nèi)存池的樣子: 借助內(nèi)存池,您可以在帶有 CPU 的主機(jī)和帶有自己內(nèi)存的加速器的機(jī)箱之間使用 CXL 的 PCI-Express 交換機(jī),或者只是原始內(nèi)存塊(有或沒有結(jié)構(gòu)管理器),然后分配加速器(及其內(nèi)存) 或根據(jù)需要分配給主機(jī)的內(nèi)存容量。如上圖右側(cè)所示,如果您想硬編碼 PCI-Express 拓?fù)湟怨┧鼈冩溄?,您也可以在所有主機(jī)和所有加速器或內(nèi)存設(shè)備之間進(jìn)行點(diǎn)對點(diǎn)互連,而無需交換機(jī)。 使用 CXL 3.0 內(nèi)存共享,設(shè)備上的內(nèi)存可以同時(shí)與多個(gè)主機(jī)同時(shí)共享。下圖顯示了 CXL 3.0 啟用的設(shè)備共享內(nèi)存和共享區(qū)域的一致副本的組合: 系統(tǒng)和集群設(shè)計(jì)人員將能夠?qū)?nèi)存池和內(nèi)存共享技術(shù)與 CXL 3.0 混合和匹配。CXL 3.0 也將允許多層交換機(jī),這在 CXL 2.0 中是不可能的,因此您可以想象具有各種拓?fù)浜蛯拥?PCI-Express 網(wǎng)絡(luò)能夠?qū)⒏鞣N設(shè)備和存儲器捆綁到交換機(jī)結(jié)構(gòu)中。在超大規(guī)模和云構(gòu)建者中常見的 Spine/Leaf 網(wǎng)絡(luò)是可能的,包括僅共享其緩存的設(shè)備、僅共享其內(nèi)存的設(shè)備以及共享其緩存和內(nèi)存的設(shè)備。(即 CXL 設(shè)備命名法中的Type 1、Type 3 和Type 2。) CXL 結(jié)構(gòu)將是真正有用的,并且在 3.0 規(guī)范中啟用。使用結(jié)構(gòu),您可以獲得支持 CXL 的設(shè)備的軟件定義的動態(tài)網(wǎng)絡(luò),而不是使用鏈接特定 CXL 設(shè)備的特定拓?fù)湓O(shè)置的靜態(tài)網(wǎng)絡(luò)。以下是在 CXL 2.0 中無法實(shí)現(xiàn)的結(jié)構(gòu)中實(shí)現(xiàn)的非樹拓?fù)涞暮唵问纠?/p> 這是整潔的一點(diǎn)。CXL 3.0 結(jié)構(gòu)可以擴(kuò)展到 4,096 個(gè) CXL 設(shè)備?,F(xiàn)在,問問自己這個(gè)問題:世界上有多少大型iron NUMA系統(tǒng)和 HPC 或 AI 超級計(jì)算機(jī)擁有超過 4,096 臺設(shè)備?沒有你想的那么多。因此,正如我們多年來一直在說的那樣,對于特定類別的集群系統(tǒng),無論節(jié)點(diǎn)在其內(nèi)存中是松散耦合還是緊密耦合,運(yùn)行 CXL 的 PCI-Express 結(jié)構(gòu)幾乎就是它們聯(lián)網(wǎng)所需的全部。以太網(wǎng)或 InfiniBand 將僅用于與外界對話。我們也希望看到 DRAM 前端的閃存設(shè)備作為存儲集群下的硬件作為快速緩存。(傲騰 3D XPoint 持久內(nèi)存不再是一個(gè)選項(xiàng). 但對于某種形式的 PCM 存儲器或另一種形式的 ReRAM,總是有希望的。) 當(dāng)我們坐在這里思考所有這些時(shí),我們不禁思考內(nèi)存共享如何簡化 HPC 和 AI 應(yīng)用程序的編程,特別是如果共享內(nèi)存中有足夠的計(jì)算來對數(shù)據(jù)進(jìn)行一些集體操作處理,這就有各種有趣的可能性。. 無論如何, CXL 結(jié)構(gòu)將會很有趣,它將成為許多系統(tǒng)架構(gòu)的核心。訣竅在于共享內(nèi)存以降低 DRAM 的有效成本——微軟 Azure的研究表明,在其云上,內(nèi)存容量利用率平均僅為 40% 左右,而運(yùn)行的虛擬機(jī)中有一半從未觸及超過一半從底層硬件分配給他們的管理程序的內(nèi)存——通過 CXL 切換和具有內(nèi)存的設(shè)備和作為內(nèi)存的設(shè)備的可組合性帶來的靈活性。 我們想要的,也是我們一直想要的,是以內(nèi)存為中心的系統(tǒng)架構(gòu),它允許各種計(jì)算引擎在內(nèi)存中共享被操作的數(shù)據(jù),并盡可能少地移動這些數(shù)據(jù)。至少在理論上,這是提高系統(tǒng)能效的途徑。幾年之內(nèi),我們將在實(shí)踐中對這一切進(jìn)行測試,這確實(shí)令人興奮。我們現(xiàn)在需要的只是兩年前的 PCI-Express 7.0,我們可以享受一些真正的樂趣。 系統(tǒng)內(nèi)存的未來主要是 CXL 超大規(guī)模制造商和云構(gòu)建者在其 X86 服務(wù)器中投入的最昂貴的組件是什么?它是 GPU 加速器,正確。因此,讓我們以另一種方式問這個(gè)問題:在構(gòu)成其大部分服務(wù)器機(jī)群的更通用、非加速服務(wù)器中,最昂貴的組件是什么?存儲。 如果你計(jì)算一下隨著時(shí)間推移的成本,大約十年前,CPU 曾經(jīng)占數(shù)據(jù)中心基礎(chǔ)設(shè)施工作負(fù)載基本服務(wù)器成本的一半左右;HPC 系統(tǒng)在內(nèi)核上的強(qiáng)度更高,在內(nèi)存上的強(qiáng)度更低。內(nèi)存約占系統(tǒng)成本的 15%,主板約占 10%,本地存儲(即磁盤驅(qū)動器)約占 5% 到 10%,具體取決于您想要該磁盤的容量或速度。其余部分由電源、網(wǎng)絡(luò)接口和機(jī)箱組成,在很多情況下,網(wǎng)絡(luò)接口已經(jīng)在主板上,因此除了公司想要更快的以太網(wǎng)或 InfiniBand 接口的情況外,成本已經(jīng)捆綁在一起。 隨著時(shí)間的推移,閃存被添加到系統(tǒng)中,服務(wù)器的主內(nèi)存成本飆升至頂峰(但相對于其他組件的價(jià)格有所下降),隨著 AMD 的重新進(jìn)入,X86 CPU 又回到了競爭。因此,通用服務(wù)器的服務(wù)器成本餅中的相對切片大小在這里和那里擴(kuò)大和縮小。根據(jù)配置,CPU 和主內(nèi)存各占系統(tǒng)成本的三分之一左右,而如今,內(nèi)存通常比 CPU 更昂貴。對于超大規(guī)模和云建設(shè)者來說,內(nèi)存絕對是最昂貴的項(xiàng)目,因?yàn)?X86 CPU 上的競爭更加激烈,從而降低了成本。 有趣的是:據(jù)英特爾稱,CPU 仍占 IT 設(shè)備功耗預(yù)算的 32% 左右,內(nèi)存僅消耗 14%,外圍設(shè)備成本約為 20%,主板約為 10%,磁盤驅(qū)動器約為 5%。(我們推測,閃存是功耗預(yù)算派的外圍部分)。包括計(jì)算、存儲和網(wǎng)絡(luò)在內(nèi)的IT 設(shè)備消耗的功耗不到一半,而電源調(diào)節(jié)、照明、安全系統(tǒng)和其他方面數(shù)據(jù)中心設(shè)施消耗了一半多一點(diǎn),這給出了相當(dāng)可憐的 1.8 的電源使用效率。典型的超大規(guī)模和云構(gòu)建者數(shù)據(jù)中心的 PUE 約為 1.2。 可以這么說,內(nèi)存是一個(gè)很大的成本因素,并且由于許多應(yīng)用程序受到內(nèi)存帶寬和內(nèi)存容量的限制,將主內(nèi)存與 CPU 以及實(shí)際上任何計(jì)算引擎分離,是我們所寫的可組合數(shù)據(jù)中心的一部分很多在下一個(gè)平臺。 原因很簡單:我們希望來自芯片的 I/O 也是可配置的,這意味著,從長遠(yuǎn)來看,融合內(nèi)存控制器和 PCI-Express 控制器,或者提出通用傳輸和控制器它可以根據(jù)插入端口的內(nèi)容說出 I/O 或內(nèi)存語義。IBM在 Power10 處理器上使用其 OpenCAPI 內(nèi)存接口完成了后者,但我們認(rèn)為隨著時(shí)間的推移英特爾和其他公司將使用在 PCI-Express 傳輸之上運(yùn)行的 CXL 協(xié)議執(zhí)行前者。 芯片制造商 Marvell 不再試圖將其 ThunderX 系列 Arm 服務(wù)器 CPU 銷售到數(shù)據(jù)中心,但仍希望參與 CXL 內(nèi)存游戲。為此,早在 5 月初,它就收購了一家名為 Tanzanite Silicon Solutions 的初創(chuàng)公司,用于其智能邏輯接口連接器,這是 CPU 和內(nèi)存之間的 CXL 橋,將幫助打散服務(wù)器,并將其重新組合在一起方式——自下一個(gè)平臺建立之前我們就一直在談?wù)摰氖虑?。Tanzanite 成立于 2020 年,去年展示了第一個(gè)使用 FPGA 的服務(wù)器 CXL 內(nèi)存池,因?yàn)樗趯ζ?SLIC 芯片進(jìn)行最后潤色。 “今天,內(nèi)存必須通過內(nèi)存控制器連接到 CPU、GPU、DPU,”Marvell 閃存業(yè)務(wù)部副總裁 Thad Omura 告訴The Next Platform?!斑@有兩個(gè)問題。一是非常昂貴的內(nèi)存要么未被充分利用,要么更糟糕的是,未被使用。在某些情況下,還有更多的未充分利用,而不僅僅是內(nèi)存。如果您需要更多內(nèi)存來處理大型工作負(fù)載,有時(shí)您會在系統(tǒng)中添加另一個(gè) CPU 以提高內(nèi)存容量和帶寬,但該 CPU 也可能未得到充分利用。這實(shí)際上是第二個(gè)問題:這種基礎(chǔ)設(shè)施無法擴(kuò)展。如果不添加更多 CPU,就無法向系統(tǒng)添加更多內(nèi)存。 所以問題是這樣的:你如何讓內(nèi)存成為可共享和可擴(kuò)展的?” 正如 Omura 在上表中指出的那樣,另一個(gè)問題是 CPU 上的內(nèi)核數(shù)量比內(nèi)存帶寬增長得更快,因此內(nèi)核的性能與為其供電的 DIMM 之間的差距越來越大,正如上面的 Meta Platforms 數(shù)據(jù)所示. 最后,除了一些科學(xué)項(xiàng)目之外,沒有辦法聚合內(nèi)存并將計(jì)算移近它以便可以就地處理,這限制了系統(tǒng)的整體性能。 來自 Hewlett Packard Enterprise 的Gen Z 、來自 IBM 的 OpenCAPI 以及來自 Xilinx 和 Arm 陣型的 CCIX 都是融合內(nèi)存和 I/O 傳輸?shù)母偁幷?,但從長遠(yuǎn)來看,顯然英特爾的 CXL 已成為每個(gè)人都將支持的標(biāo)準(zhǔn),且他已經(jīng)獲得了Gen Z和OpenCAPI 的支持。 “CXL 獲得了很大的吸引力,并且基本上與所有主要的超大規(guī)模廠商合作,幫助他們弄清楚如何部署這項(xiàng)技術(shù),”O(jiān)mura 說。因此,對Tanzanite的收購(其價(jià)值未披露)于 5 月底完成。 借助 SLIC 芯片,Marvell 將能夠通過 CXL 擴(kuò)展控制器以及比 DIMM 尺寸更大的更胖更高的擴(kuò)展內(nèi)存模塊,幫助行業(yè)創(chuàng)建標(biāo)準(zhǔn) DIMM 尺寸。(IBM 已經(jīng)用它的幾代 Power Systems 服務(wù)器和他們自己開發(fā)的“Centaur”:緩沖內(nèi)存控制器完成了后者。) Omura 說,CXL 內(nèi)存要做的第一件事就是打開現(xiàn)代處理器上 DRAM 和 PCI-Express 控制器的內(nèi)存帶寬,我們同意這個(gè)觀點(diǎn)。 如果您現(xiàn)在有一個(gè)系統(tǒng)并且您在其內(nèi)存插槽中設(shè)置了帶寬,您可以通過為每個(gè)內(nèi)存通道添加兩個(gè) DIMM 來增加容量,但是每個(gè) DIMM 獲得一半的內(nèi)存帶寬。但是隨著使用 SLIC 芯片向系統(tǒng)添加 CXL 內(nèi)存 DIMM,您可以使用大部分 PCI-Express 總線為系統(tǒng)添加更多內(nèi)存通道。 誠然,來自 PCI-Express 5.0 插槽的帶寬沒有芯片上的 DRAM 控制器那么高,延遲也沒有那么低,但它可以工作。在某些時(shí)候,當(dāng) PCI-Express 6.0 推出時(shí),某些類別的處理器可能不需要 DDR5 或 DDR6 內(nèi)存控制器,DDR 控制器可能會變成奇特的部件,就像 HBM 堆疊內(nèi)存是奇特的并且只用于特殊的用例。希望 CXL 內(nèi)存超過 PCI-Express 5.0 和 6。0 不會比通過 NUMA 鏈接到多插槽系統(tǒng)中的相鄰插槽更糟糕(如果有的話),而且一旦 CXL 端口實(shí)際上是系統(tǒng)和 DDR 上的主內(nèi)存端口,它可能更不麻煩和 HBM 是專用的、奇異的內(nèi)存,僅在必要時(shí)使用。至少這是我們認(rèn)為可能發(fā)生的事情。 CXL 內(nèi)存擴(kuò)展只是這一演變的第一階段。不久之后,像 Marvell 的 SLIC 之類的 CXL 芯片將被用于創(chuàng)建跨多種(通常是不兼容的)計(jì)算引擎的共享內(nèi)存池,甚至更進(jìn)一步,我們可以期待 CXL 交換基礎(chǔ)設(shè)施創(chuàng)建一個(gè)不同類型的存儲設(shè)備和不同類型的計(jì)算引擎之間的可組合結(jié)構(gòu)。像這樣: 在 Marvell 的完整愿景中,有時(shí) XPU 上會有一些本地內(nèi)存——X 是指定 CPU、GPU、DPU 等的變體——而 PCI-Express 上的 CXL ink將連接到內(nèi)存模塊它已在其上集成計(jì)算以執(zhí)行專門的功能——您可以打賭,Marvell 希望使用其定制處理器設(shè)計(jì)團(tuán)隊(duì)來幫助超大規(guī)模、云構(gòu)建者和其他任何擁有合理容量的人將計(jì)算放在內(nèi)存上并將其鏈接到 XPU。Marvell 顯然也熱衷于使用它通過 Tanzanite 收購獲得的 CXL 控制器來創(chuàng)建具有原生 CXL 功能和可組合性的 SmartNIC 和 DPU。 然后,幾年后,正如我們多次談到的那樣,我們將在數(shù)據(jù)中心機(jī)架內(nèi)獲得真正的可組合性,而不僅僅是 GPU 和通過 PCI-Express 工作的閃存。但跨越各種計(jì)算、內(nèi)存和存儲。 Marvell 已經(jīng)擁有數(shù)據(jù)中心服務(wù)器和機(jī)架架構(gòu)所需的計(jì)算(Octeon NPU 和定制的 ThunderX3 處理器)、DPU 和 SmartNIC、電光、重定時(shí)器和 SSD 控制器,現(xiàn)在 Tanzanite 為其提供了一種供應(yīng)方式CXL 擴(kuò)展器、CXL 光纖交換機(jī)和其他芯片共同構(gòu)成了 Omura 所說的“數(shù)十億美元”的機(jī)會。 這是 Tanzanite 被創(chuàng)造出來追逐的機(jī)會,以下是它在 Marvell 交易之前設(shè)想的原型用例: 我們認(rèn)為,只要 DRAM 內(nèi)存的價(jià)格稍微下降一點(diǎn),上述這些機(jī)器中的每一臺都會賣得很好。內(nèi)存還是太貴了。 CXL 3.0標(biāo)準(zhǔn)發(fā)布,速度翻番
雖然在技術(shù)上仍然是新事物,但用于主機(jī)到設(shè)備連接的 Compute Express Link (CXL) 標(biāo)準(zhǔn)已迅速在服務(wù)器市場占據(jù)一席之地。 據(jù)報(bào)道,該標(biāo)準(zhǔn)旨在提供建立在現(xiàn)有 PCI-Express 標(biāo)準(zhǔn)之上更豐富的 I/O 功能集,其最顯著的是優(yōu)勢在于設(shè)備之間的緩存一致性。從相關(guān)組織處獲悉,CXL的主要應(yīng)用方向是把CPU連接到服務(wù)器中的加速器,但希望能夠在物理上仍然是通過 PCIe 接口上連接 DRAM 和非易失性存儲。 這是一個(gè)雄心勃勃但得到廣泛支持的路線圖,在短短三年內(nèi)使,CXL 便成為事實(shí)上的先進(jìn)設(shè)備互連標(biāo)準(zhǔn),這就導(dǎo)致競爭對手標(biāo)準(zhǔn) Gen-Z、CCIX 以及截至昨天的 OpenCAPI 都退出了競爭。 雖然 CXL 聯(lián)盟在贏得互連戰(zhàn)爭后快速取得勝利,但聯(lián)盟及其成員還有很多工作要做。假如在產(chǎn)品方面,第一批帶有 CXL 的 x86 CPU 幾乎沒有出貨——這很大程度上取決于你所說的英特爾 Sapphire Ridge 芯片所處的邊緣狀態(tài)。 來到功能方面,設(shè)備供應(yīng)商要求獲得比比 CXL 的原始 1.x 版本更多的帶寬和更多的功能。贏得互連戰(zhàn)爭使 CXL 成為互連之王,但在此過程中,這意味著 CXL 需要能夠解決競爭對手標(biāo)準(zhǔn)設(shè)計(jì)的一些更復(fù)雜的用例。 為此,在本周的 2022 年閃存峰會上,CXL 聯(lián)盟在展會上宣布了 CXL 標(biāo)準(zhǔn)的下一個(gè)完整版本 CXL 3.0。這是繼2020 年底發(fā)布 2.0 標(biāo)準(zhǔn)并引入了內(nèi)存池和 CXL 開關(guān)等功能之后的一次重要更新。 報(bào)道指出,CXL 3.0 側(cè)重于互連的幾個(gè)關(guān)鍵領(lǐng)域的重大改進(jìn)。第一個(gè)是物理方面,CXL 將其每通道吞吐量翻了一番,達(dá)到 64 GT/秒。同時(shí),在邏輯方面,CXL 3.0 大大擴(kuò)展了標(biāo)準(zhǔn)的邏輯能力,允許復(fù)雜的連接拓?fù)浜徒Y(jié)構(gòu),以及在一組 CXL 設(shè)備內(nèi)更靈活的內(nèi)存共享和內(nèi)存訪問模式。 CXL 3.0:建立在 PCI-Express 6.0 之上 首先,我們從物理方面開始了解新版本的CXL 技術(shù)。資料顯示,新版本的標(biāo)準(zhǔn)提供了期待已久的更新,以合并 PCIe 6.0。CXL 之前的兩個(gè)版本,也就是 1.x 和 2.0,都是建立在 PCIe 5.0 之上的,所以這是自 2019 年 CXL 推出以來,其物理層的首次更新。 PCIe 6.0本身是對 PCI-Express 標(biāo)準(zhǔn)內(nèi)部工作的重大更新,它再次將總線上的可用帶寬量翻了一番,達(dá)到 64 GT/秒,對于 x16 卡來說,這可以達(dá)到 128GB/秒。據(jù)報(bào)道,這個(gè)速度是通過將 PCIe 從使用二進(jìn)制 (NRZ) 信號轉(zhuǎn)換為四態(tài) (PAM4) 信號并結(jié)合固定數(shù)據(jù)包 (FLIT) 接口來實(shí)現(xiàn)的。借助這種方法,能使其速度翻倍而不會在更高頻率下運(yùn)行的缺點(diǎn)。由于 CXL 反過來構(gòu)建在 PCIe 之上,這意味著需要更新標(biāo)準(zhǔn)以應(yīng)對 PCIe 的操作變化。 CXL 3.0 的最終結(jié)果是它繼承了 PCIe 6.0 的全部帶寬改進(jìn)——以及前向糾錯(cuò) (FEC) 等所有有趣的東西——與 CXL 2.0 相比,CXL 的總帶寬增加了一倍。 值得注意的是,根據(jù) CXL 聯(lián)盟的說法,他們能夠在不增加延遲的情況下完成所有這些工作。這是 PCI-SIG 在設(shè)計(jì) PCIe 6.0 時(shí)面臨的挑戰(zhàn)之一,因?yàn)楸匾募m錯(cuò)會增加進(jìn)程的延遲,導(dǎo)致 PCI-SIG 使用低延遲形式的 FEC。盡管如此,CXL 3.0 在嘗試減少延遲方面更進(jìn)了一步,導(dǎo)致 3.0 具有與 CXL 1.x/2.0 相同的延遲。 除了基本的 PCIe .60 更新之外,CXL 聯(lián)盟還調(diào)整了他們的 FLIT size。CXL 1.x/2.0 使用了一個(gè)相對較小的 68 字節(jié)數(shù)據(jù)包,而 CXL 3.0 將其增加到了 256 字節(jié)。更大的 FLIT size是 CXL 3.0 的關(guān)鍵通信變化之一,因?yàn)樗趆eader FLIT 中為標(biāo)準(zhǔn)提供了更多位,而這些位又是啟用 3.0 標(biāo)準(zhǔn)引入的復(fù)雜拓?fù)浜徒Y(jié)構(gòu)所必需的。盡管作為一項(xiàng)附加功能,CXL 3.0 還提供了一種低延遲“變體”FLIT 模式,該模式將 CRC 分解為 128 字節(jié)“sub-FLIT granular transfers”,旨在減輕物理層中的存儲和轉(zhuǎn)發(fā)開銷. 值得注意的是,256 字節(jié)的 FLIT 大小使 CXL 3.0 與 PCIe 6.0 保持一致,后者本身使用 256 字節(jié)的 FLIT。和它的底層物理層一樣,CXL 不僅支持在新的 64 GT/秒傳輸速率下使用大型 FLIT,而且還支持 32、16 和 8 GT/秒,本質(zhì)上允許新協(xié)議功能以更慢的傳輸速率使用. 最后,CXL 3.0 完全向后兼容早期版本的 CXL。因此,設(shè)備和主機(jī)可以根據(jù)需要降級以匹配硬件鏈的其余部分,盡管在此過程中會失去更新的功能和速度。 CXL 3.0 特性:增強(qiáng)的一致性、內(nèi)存共享、多級拓?fù)浜徒Y(jié)構(gòu) 除了進(jìn)一步提高整體 I/O 帶寬外,上述針對 CXL 的協(xié)議更改也已實(shí)施,以支持標(biāo)準(zhǔn)內(nèi)的新功能。CXL 1.x 是作為(相對)簡單的主機(jī)到設(shè)備標(biāo)準(zhǔn)而誕生的,但現(xiàn)在 CXL 是服務(wù)器的主要設(shè)備互連協(xié)議,它需要擴(kuò)展其功能以適應(yīng)更高級的設(shè)備,并最終適應(yīng)更大的用例。 從特性級別開始,這里最大的新聞是該標(biāo)準(zhǔn)更新了具有內(nèi)存的設(shè)備的緩存一致性協(xié)議(Type-2 和 Type-3,用 CXL 的說法)。正如 CXL 所說,增強(qiáng)的一致性允許設(shè)備支持使主機(jī)緩存的數(shù)據(jù)無效。這取代了 CXL 早期版本中使用的基于偏差的一致性方法,為了保持簡潔,保持一致性不是通過共享內(nèi)存空間的控制,而是通過讓主機(jī)或設(shè)備負(fù)責(zé)控制訪問。相比之下,Back invalidation更接近真正的共享/對稱方法,允許 CXL 設(shè)備在設(shè)備進(jìn)行更改時(shí)通知主機(jī)。 包含Back invalidation也為設(shè)備之間的新對等連接打開了大門。在 CXL 3.0 中,設(shè)備現(xiàn)在可以直接訪問彼此的內(nèi)存,而無需通過主機(jī),使用增強(qiáng)的一致性語義來通知彼此它們的狀態(tài)。從延遲的角度來看,跳過主機(jī)不僅速度更快,而且在涉及交換機(jī)的設(shè)置中,這意味著設(shè)備不會通過請求占用寶貴的主機(jī)到交換機(jī)帶寬。雖然我們稍后會進(jìn)入拓?fù)?,但這些變化與更大的拓?fù)涿芮邢嚓P(guān),允許將設(shè)備組織成虛擬層次結(jié)構(gòu),其中層次結(jié)構(gòu)中的所有設(shè)備共享一個(gè)一致性域。 除了調(diào)整緩存功能外,CXL 3.0 還對主機(jī)和設(shè)備之間的內(nèi)存共享進(jìn)行了一些重要更新。CXL 2.0 提供了內(nèi)存池,其中多個(gè)主機(jī)可以訪問設(shè)備的內(nèi)存,但必須為每個(gè)主機(jī)分配自己的專用內(nèi)存段,而 CXL 3.0 引入了真正的內(nèi)存共享。利用新的增強(qiáng)一致性語義,多個(gè)主機(jī)可以擁有一個(gè)共享段的一致副本,如果設(shè)備級別發(fā)生變化,可以使用反向失效來保持所有主機(jī)同步。 然而,應(yīng)該注意的是,這并不能完全取代池化。在某些用例中,CXL 2.0 風(fēng)格的池更可取(保持一致性需要權(quán)衡取舍),并且 CXL 3.0 支持根據(jù)需要混合和匹配這兩種模式。 CXL 3.0 進(jìn)一步增強(qiáng)了這種改進(jìn)的主機(jī)設(shè)備功能,消除了之前對可以連接到單個(gè) CXL 根端口下游的 Type-1/Type-2 設(shè)備數(shù)量的限制。 CXL 2.0 只允許這些處理設(shè)備中的一個(gè)出現(xiàn)在根端口的下游,而 CXL 3.0 則完全解除了這些限制?,F(xiàn)在,CXL 根端口可以支持 Type-1/2/3 設(shè)備的完全混合匹配設(shè)置,具體取決于系統(tǒng)構(gòu)建者的目標(biāo)。值得注意的是,這意味著能夠?qū)⒍鄠€(gè)加速器連接到單個(gè)交換機(jī),提高密度(每個(gè)主機(jī)更多的加速器),并使新的點(diǎn)對點(diǎn)傳輸功能更加有用。 CXL 3.0 的另一大特性變化是支持多級切換。這建立在 CXL 2.0 的基礎(chǔ)上,該版本引入了對 CXL 協(xié)議交換機(jī)的支持,但僅允許單個(gè)交換機(jī)駐留在主機(jī)及其設(shè)備之間。另一方面,多級交換允許多層交換機(jī)——也就是說,交換機(jī)饋入其他交換機(jī)——這極大地增加了所支持的網(wǎng)絡(luò)拓?fù)涞姆N類和復(fù)雜性。 即使只有兩層交換機(jī),這也足以實(shí)現(xiàn)非樹狀拓?fù)浣Y(jié)構(gòu),例如環(huán)形、網(wǎng)狀結(jié)構(gòu)和其他結(jié)構(gòu)設(shè)置。并且各個(gè)節(jié)點(diǎn)可以是主機(jī)或設(shè)備,對類型沒有任何限制。 最終,最大的區(qū)別可能是支持的節(jié)點(diǎn)數(shù)量。CXL 的尋址機(jī)制,聯(lián)盟稱之為基于端口的路由 (PBR),最多支持 2^ 12(4096) 個(gè)設(shè)備。因此,CXL 設(shè)置只能擴(kuò)展至此,尤其是當(dāng)加速器、附加內(nèi)存和其他設(shè)備迅速占用端口時(shí)。 總結(jié)一下,完整的 CXL 3.0 標(biāo)準(zhǔn)將于今天,即 FMS 2022 的第一天向公眾發(fā)布。官方上,該聯(lián)盟沒有提供任何關(guān)于何時(shí)期望 CXL 3.0 出現(xiàn)在設(shè)備中的指導(dǎo)——這取決于設(shè)備制造商- 但有理由說它不會馬上。隨著 CXL 1.1 主機(jī)剛剛交付——更不用說 CXL 2.0 主機(jī)——CXL 的實(shí)際產(chǎn)品化比標(biāo)準(zhǔn)落后幾年,這對于這些大型行業(yè)互連標(biāo)準(zhǔn)來說是典型的。
聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)發(fā)僅為更大范圍傳播,若有異議請聯(lián)系我們修改或刪除:zhangkai@cgbtek.com