系統(tǒng)架構(gòu)師通常對(duì)未來不耐煩,尤其是當(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ù)測(cè),這將于 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 的路徑不會(huì)完全相同。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 之間的信號(hào)速率和通道數(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 的這一策略似乎很奇怪。因此,我們正在推動(dòng) IBM 推出支持 CXL 2.0 和 NVLink 3.0 相干鏈路(coherent links)的 Power10+ 處理器,以及更高的核心數(shù)和更高的時(shí)鐘速度,這可能發(fā)生在一年或一年半之后。
鑒于其 OpenCAPI 內(nèi)存的巨大優(yōu)勢(shì),IBM 沒有理由無法獲得部分 AI 和 HPC 預(yù)算,該內(nèi)存通過 24 核雙芯片模塊驅(qū)動(dòng) 818 GB/秒的內(nèi)存帶寬。我們還預(yù)計(jì)未來來自 Nvidia 的數(shù)據(jù)中心 GPU 計(jì)算引擎將以某種方式支持 CXL,但具體如何與 NVLink 并排或合并尚不清楚。
目前還不清楚HPE 如何將 Gen-Z 知識(shí)產(chǎn)權(quán)捐贈(zèng)給 CXL 聯(lián)盟。但I(xiàn)BM 上周捐贈(zèng)給 CXL 指導(dǎo)組織的 OpenCAPI 知識(shí)產(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 最初提供了一種非對(duì)稱一致性,其中 CPU 可以像本地一樣讀取和寫入加速器中的遠(yuǎn)程存儲(chǔ)器,但使用 PCI-Express 總線而不是專有的 NUMA 互連——這是一個(gè)巨大的過度簡(jiǎn)化——而不是擁有完整的緩存CPU 和加速器之間的一致性,這會(huì)產(chǎn)生大量開銷,并且會(huì)產(chǎn)生自身的阻抗不匹配,因?yàn)檫^去 PCI-Express 比 NUMA 互連要慢。
但正如我們之前指出的那樣,隨著 PCI-Express 的速度每?jī)赡曜笥曳环?,并且隨著帶寬的跳躍,延遲保持穩(wěn)定,我們認(rèn)為 CXL 很有可能成為一種通用的 NUMA 互連和內(nèi)存控制器,就像 IBM 對(duì) OpenCAPI 所做的那樣,英特爾已經(jīng)為 CXL 內(nèi)存和 CXL NUMA 提出了這一建議,Marvell 對(duì) 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)對(duì)點(diǎn)網(wǎng)絡(luò)直接訪問彼此的內(nèi)存,而不是不對(duì)稱地訪問。
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)色板對(duì)于像 CXL 這樣的標(biāo)準(zhǔn)是非常開放的,并且在許多向量上對(duì)其進(jìn)行改進(jìn)非常重要。行業(yè)讓英特爾贏得了這一場(chǎng)競(jìng)爭(zhēng),從長(zhǎng)遠(yuǎn)來看,我們會(huì)因此而變得更好。英特爾在很大程度上放棄了 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ī)架甚至一行可能會(huì)使用 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)行。
舉例而言,就像我們?cè)?2021 年 9 月與英特爾交談時(shí)所做的那樣,CXL 協(xié)議規(guī)范要求當(dāng)緩存線丟失時(shí)對(duì) snoop 命令的 snoop 響應(yīng)必須低于 50 納秒(引腳到引腳),而對(duì)于內(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ū)動(dòng)程序的帶寬都增加了一倍,而延遲沒有任何增加。由于 256 字節(jié)流控制單元或 flit 固定數(shù)據(jù)包大?。ù笥?PCI-Express 5.0 傳輸中使用的 64 字節(jié)數(shù)據(jù)包),帶寬增加到 256 GB/秒 x16 通道(包括兩個(gè)方向) ) 和 PAM-4 脈沖幅度調(diào)制編碼,可將 PCI-Express 傳輸上的每個(gè)信號(hào)的比特?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)對(duì)點(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è)備和存儲(chǔ)器捆綁到交換機(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è)備的軟件定義的動(dòng)態(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ù)涞暮?jiǎn)單示例:
這是整潔的一點(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ì)算機(jī)擁有超過 4,096 臺(tái)設(shè)備?沒有你想的那么多。因此,正如我們多年來一直在說的那樣,對(duì)于特定類別的集群系統(tǒng),無論節(jié)點(diǎn)在其內(nèi)存中是松散耦合還是緊密耦合,運(yùn)行 CXL 的 PCI-Express 結(jié)構(gòu)幾乎就是它們聯(lián)網(wǎng)所需的全部。以太網(wǎng)或 InfiniBand 將僅用于與外界對(duì)話。我們也希望看到 DRAM 前端的閃存設(shè)備作為存儲(chǔ)集群下的硬件作為快速緩存。(傲騰 3D XPoint 持久內(nèi)存不再是一個(gè)選項(xiàng). 但對(duì)于某種形式的 PCM 存儲(chǔ)器或另一種形式的 ReRAM,總是有希望的。)
當(dāng)我們坐在這里思考所有這些時(shí),我們不禁思考內(nèi)存共享如何簡(jiǎn)化 HPC 和 AI 應(yīng)用程序的編程,特別是如果共享內(nèi)存中有足夠的計(jì)算來對(duì)數(shù)據(jù)進(jìn)行一些集體操作處理,這就有各種有趣的可能性。.
無論如何, CXL 結(jié)構(gòu)將會(huì)很有趣,它將成為許多系統(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ù),并盡可能少地移動(dòng)這些數(shù)據(jù)。至少在理論上,這是提高系統(tǒng)能效的途徑。幾年之內(nèi),我們將在實(shí)踐中對(duì)這一切進(jìn)行測(cè)試,這確實(shí)令人興奮。我們現(xiàn)在需要的只是兩年前的 PCI-Express 7.0,我們可以享受一些真正的樂趣。
系統(tǒng)內(nèi)存的未來主要是 CXL
超大規(guī)模制造商和云構(gòu)建者在其 X86 服務(wù)器中投入的最昂貴的組件是什么?它是 GPU 加速器,正確。因此,讓我們以另一種方式問這個(gè)問題:在構(gòu)成其大部分服務(wù)器機(jī)群的更通用、非加速服務(wù)器中,最昂貴的組件是什么?存儲(chǔ)。
如果你計(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%,本地存儲(chǔ)(即磁盤驅(qū)動(dòng)器)約占 5% 到 10%,具體取決于您想要該磁盤的容量或速度。其余部分由電源、網(wǎng)絡(luò)接口和機(jī)箱組成,在很多情況下,網(wǎng)絡(luò)接口已經(jīng)在主板上,因此除了公司想要更快的以太網(wǎng)或 InfiniBand 接口的情況外,成本已經(jīng)捆綁在一起。
隨著時(shí)間的推移,閃存被添加到系統(tǒng)中,服務(wù)器的主內(nèi)存成本飆升至頂峰(但相對(duì)于其他組件的價(jià)格有所下降),隨著 AMD 的重新進(jìn)入,X86 CPU 又回到了競(jìng)爭(zhēng)。因此,通用服務(wù)器的服務(wù)器成本餅中的相對(duì)切片大小在這里和那里擴(kuò)大和縮小。根據(jù)配置,CPU 和主內(nèi)存各占系統(tǒng)成本的三分之一左右,而如今,內(nèi)存通常比 CPU 更昂貴。對(duì)于超大規(guī)模和云建設(shè)者來說,內(nèi)存絕對(duì)是最昂貴的項(xiàng)目,因?yàn)?X86 CPU 上的競(jìng)爭(zhēng)更加激烈,從而降低了成本。
有趣的是:據(jù)英特爾稱,CPU 仍占 IT 設(shè)備功耗預(yù)算的 32% 左右,內(nèi)存僅消耗 14%,外圍設(shè)備成本約為 20%,主板約為 10%,磁盤驅(qū)動(dòng)器約為 5%。(我們推測(cè),閃存是功耗預(yù)算派的外圍部分)。包括計(jì)算、存儲(chǔ)和網(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è)平臺(tái)。
原因很簡(jiǎn)單:我們希望來自芯片的 I/O 也是可配置的,這意味著,從長(zhǎng)遠(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 月初,它就收購(gòu)了一家名為 Tanzanite Silicon Solutions 的初創(chuàng)公司,用于其智能邏輯接口連接器,這是 CPU 和內(nèi)存之間的 CXL 橋,將幫助打散服務(wù)器,并將其重新組合在一起方式——自下一個(gè)平臺(tái)建立之前我們就一直在談?wù)摰氖虑?。Tanzanite 成立于 2020 年,去年展示了第一個(gè)使用 FPGA 的服務(wù)器 CXL 內(nèi)存池,因?yàn)樗趯?duì)其 SLIC 芯片進(jìn)行最后潤(rù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í)您會(huì)在系統(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)存帶寬增長(zhǎng)得更快,因此內(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ù)母?jìng)爭(zhēng)者,但從長(zhǎng)遠(yuǎn)來看,顯然英特爾的 CXL 已成為每個(gè)人都將支持的標(biāo)準(zhǔn),且他已經(jīng)獲得了Gen Z和OpenCAPI 的支持。
“CXL 獲得了很大的吸引力,并且基本上與所有主要的超大規(guī)模廠商合作,幫助他們弄清楚如何部署這項(xiàng)技術(shù),”O(jiān)mura 說。因此,對(duì)Tanzanite的收購(gòu)(其價(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)存通道。
誠(chéng)然,來自 PCI-Express 5.0 插槽的帶寬沒有芯片上的 DRAM 控制器那么高,延遲也沒有那么低,但它可以工作。在某些時(shí)候,當(dāng) PCI-Express 6.0 推出時(shí),某些類別的處理器可能不需要 DDR5 或 DDR6 內(nèi)存控制器,DDR 控制器可能會(huì)變成奇特的部件,就像 HBM 堆疊內(nèi)存是奇特的并且只用于特殊的用例。希望 CXL 內(nèi)存超過 PCI-Express 5.0 和 6。0 不會(huì)比通過 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è)不同類型的存儲(chǔ)設(shè)備和不同類型的計(jì)算引擎之間的可組合結(jié)構(gòu)。像這樣:
在 Marvell 的完整愿景中,有時(shí) XPU 上會(huì)有一些本地內(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 收購(gòu)獲得的 CXL 控制器來創(chuàng)建具有原生 CXL 功能和可組合性的 SmartNIC 和 DPU。
然后,幾年后,正如我們多次談到的那樣,我們將在數(shù)據(jù)中心機(jī)架內(nèi)獲得真正的可組合性,而不僅僅是 GPU 和通過 PCI-Express 工作的閃存。但跨越各種計(jì)算、內(nèi)存和存儲(chǔ)。
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ī)會(huì)。
這是 Tanzanite 被創(chuàng)造出來追逐的機(jī)會(huì),以下是它在 Marvell 交易之前設(shè)想的原型用例:
我們認(rèn)為,只要 DRAM 內(nèi)存的價(jià)格稍微下降一點(diǎn),上述這些機(jī)器中的每一臺(tái)都會(huì)賣得很好。內(nèi)存還是太貴了。
CXL 3.0標(biāo)準(zhǔn)發(fā)布,速度翻番
雖然在技術(shù)上仍然是新事物,但用于主機(jī)到設(shè)備連接的 Compute Express Link (CXL) 標(biāo)準(zhǔn)已迅速在服務(wù)器市場(chǎng)占據(jù)一席之地。 據(jù)報(bào)道,該標(biāo)準(zhǔn)旨在提供建立在現(xiàn)有 PCI-Express 標(biāo)準(zhǔn)之上更豐富的 I/O 功能集,其最顯著的是優(yōu)勢(shì)在于設(shè)備之間的緩存一致性。從相關(guān)組織處獲悉,CXL的主要應(yīng)用方向是把CPU連接到服務(wù)器中的加速器,但希望能夠在物理上仍然是通過 PCIe 接口上連接 DRAM 和非易失性存儲(chǔ)。 這是一個(gè)雄心勃勃但得到廣泛支持的路線圖,在短短三年內(nèi)使,CXL 便成為事實(shí)上的先進(jìn)設(shè)備互連標(biāo)準(zhǔn),這就導(dǎo)致競(jìng)爭(zhēng)對(duì)手標(biāo)準(zhǔn) Gen-Z、CCIX 以及截至昨天的 OpenCAPI 都退出了競(jìng)爭(zhēng)。 雖然 CXL 聯(lián)盟在贏得互連戰(zhàn)爭(zhēng)后快速取得勝利,但聯(lián)盟及其成員還有很多工作要做。假如在產(chǎn)品方面,第一批帶有 CXL 的 x86 CPU 幾乎沒有出貨——這很大程度上取決于你所說的英特爾 Sapphire Ridge 芯片所處的邊緣狀態(tài)。 來到功能方面,設(shè)備供應(yīng)商要求獲得比比 CXL 的原始 1.x 版本更多的帶寬和更多的功能。贏得互連戰(zhàn)爭(zhēng)使 CXL 成為互連之王,但在此過程中,這意味著 CXL 需要能夠解決競(jìng)爭(zhēng)對(duì)手標(biāo)準(zhǔn)設(shè)計(jì)的一些更復(fù)雜的用例。 為此,在本周的 2022 年閃存峰會(huì)上,CXL 聯(lián)盟在展會(huì)上宣布了 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本身是對(duì) PCI-Express 標(biāo)準(zhǔn)內(nèi)部工作的重大更新,它再次將總線上的可用帶寬量翻了一番,達(dá)到 64 GT/秒,對(duì)于 x16 卡來說,這可以達(dá)到 128GB/秒。據(jù)報(bào)道,這個(gè)速度是通過將 PCIe 從使用二進(jìn)制 (NRZ) 信號(hào)轉(zhuǎn)換為四態(tài) (PAM4) 信號(hào)并結(jié)合固定數(shù)據(jù)包 (FLIT) 接口來實(shí)現(xiàn)的。借助這種方法,能使其速度翻倍而不會(huì)在更高頻率下運(yùn)行的缺點(diǎn)。由于 CXL 反過來構(gòu)建在 PCIe 之上,這意味著需要更新標(biāo)準(zhǔn)以應(yīng)對(duì) 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ò)會(huì)增加進(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è)相對(duì)較小的 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”,旨在減輕物理層中的存儲(chǔ)和轉(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ù)需要降級(jí)以匹配硬件鏈的其余部分,盡管在此過程中會(huì)失去更新的功能和速度。 CXL 3.0 特性:增強(qiáng)的一致性、內(nèi)存共享、多級(jí)拓?fù)浜徒Y(jié)構(gòu) 除了進(jìn)一步提高整體 I/O 帶寬外,上述針對(duì) CXL 的協(xié)議更改也已實(shí)施,以支持標(biāo)準(zhǔn)內(nèi)的新功能。CXL 1.x 是作為(相對(duì))簡(jiǎn)單的主機(jī)到設(shè)備標(biāo)準(zhǔn)而誕生的,但現(xiàn)在 CXL 是服務(wù)器的主要設(shè)備互連協(xié)議,它需要擴(kuò)展其功能以適應(yīng)更高級(jí)的設(shè)備,并最終適應(yīng)更大的用例。 從特性級(jí)別開始,這里最大的新聞是該標(biāo)準(zhǔn)更新了具有內(nèi)存的設(shè)備的緩存一致性協(xié)議(Type-2 和 Type-3,用 CXL 的說法)。正如 CXL 所說,增強(qiáng)的一致性允許設(shè)備支持使主機(jī)緩存的數(shù)據(jù)無效。這取代了 CXL 早期版本中使用的基于偏差的一致性方法,為了保持簡(jiǎn)潔,保持一致性不是通過共享內(nèi)存空間的控制,而是通過讓主機(jī)或設(shè)備負(fù)責(zé)控制訪問。相比之下,Back invalidation更接近真正的共享/對(duì)稱方法,允許 CXL 設(shè)備在設(shè)備進(jìn)行更改時(shí)通知主機(jī)。 包含Back invalidation也為設(shè)備之間的新對(duì)等連接打開了大門。在 CXL 3.0 中,設(shè)備現(xiàn)在可以直接訪問彼此的內(nèi)存,而無需通過主機(jī),使用增強(qiáng)的一致性語義來通知彼此它們的狀態(tài)。從延遲的角度來看,跳過主機(jī)不僅速度更快,而且在涉及交換機(jī)的設(shè)置中,這意味著設(shè)備不會(huì)通過請(qǐng)求占用寶貴的主機(jī)到交換機(jī)帶寬。雖然我們稍后會(huì)進(jìn)入拓?fù)洌@些變化與更大的拓?fù)涿芮邢嚓P(guān),允許將設(shè)備組織成虛擬層次結(jié)構(gòu),其中層次結(jié)構(gòu)中的所有設(shè)備共享一個(gè)一致性域。 除了調(diào)整緩存功能外,CXL 3.0 還對(duì)主機(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è)備級(jí)別發(fā)生變化,可以使用反向失效來保持所有主機(jī)同步。 然而,應(yīng)該注意的是,這并不能完全取代池化。在某些用例中,CXL 2.0 風(fēng)格的池更可?。ū3忠恢滦孕枰獧?quán)衡取舍),并且 CXL 3.0 支持根據(jù)需要混合和匹配這兩種模式。 CXL 3.0 進(jìn)一步增強(qiáng)了這種改進(jìn)的主機(jī)設(shè)備功能,消除了之前對(duì)可以連接到單個(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)對(duì)點(diǎn)傳輸功能更加有用。 CXL 3.0 的另一大特性變化是支持多級(jí)切換。這建立在 CXL 2.0 的基礎(chǔ)上,該版本引入了對(duì) CXL 協(xié)議交換機(jī)的支持,但僅允許單個(gè)交換機(jī)駐留在主機(jī)及其設(shè)備之間。另一方面,多級(jí)交換允許多層交換機(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è)備,對(duì)類型沒有任何限制。 最終,最大的區(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è)備制造商- 但有理由說它不會(huì)馬上。隨著 CXL 1.1 主機(jī)剛剛交付——更不用說 CXL 2.0 主機(jī)——CXL 的實(shí)際產(chǎn)品化比標(biāo)準(zhǔn)落后幾年,這對(duì)于這些大型行業(yè)互連標(biāo)準(zhǔn)來說是典型的。
聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)發(fā)僅為更大范圍傳播,若有異議請(qǐng)聯(lián)系我們修改或刪除:zhangkai@cgbtek.com
COPYRIGHT北京華林嘉業(yè)科技有限公司 版權(quán)所有 京ICP備09080401號(hào)