雖然在技術(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ù)器中的加速器,但希望能夠在物理上仍然是通過(guò) PCIe 接口上連接 DRAM 和非易失性存儲(chǔ)。
這是一個(gè)雄心勃勃但得到廣泛支持的路線(xiàn)圖,在短短三年內(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 幾乎沒(méi)有出貨——這很大程度上取決于你所說(shuō)的英特爾 Sapphire Ridge 芯片所處的邊緣狀態(tài)。
來(lái)到功能方面,設(shè)備供應(yīng)商要求獲得比比 CXL 的原始 1.x 版本更多的帶寬和更多的功能。贏得互連戰(zhàn)爭(zhēng)使 CXL 成為互連之王,但在此過(guò)程中,這意味著 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 開(kāi)關(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)存訪(fǎng)問(wèn)模式。
? ?
CXL 3.0:建立在 PCI-Express 6.0 之上
首先,我們從物理方面開(kāi)始了解新版本的CXL 技術(shù)。資料顯示,新版本的標(biāo)準(zhǔn)提供了期待已久的更新,以合并 PCIe 6.0。CXL 之前的兩個(gè)版本,也就是 1.x 和 2.0,都是建立在 PCIe 5.0 之上的,所以這是自 2019 年 CXL 推出以來(lái),其物理層的首次更新。 ? PCIe 6.0本身是對(duì) PCI-Express 標(biāo)準(zhǔn)內(nèi)部工作的重大更新,它再次將總線(xiàn)上的可用帶寬量翻了一番,達(dá)到 64 GT/秒,對(duì)于 x16 卡來(lái)說(shuō),這可以達(dá)到 128GB/秒。據(jù)報(bào)道,這個(gè)速度是通過(guò)將 PCIe 從使用二進(jìn)制 (NRZ) 信號(hào)轉(zhuǎn)換為四態(tài) (PAM4) 信號(hào)并結(jié)合固定數(shù)據(jù)包 (FLIT) 接口來(lái)實(shí)現(xiàn)的。借助這種方法,能使其速度翻倍而不會(huì)在更高頻率下運(yùn)行的缺點(diǎn)。由于 CXL 反過(guò)來(lái)構(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)盟的說(shuō)法,他們能夠在不增加延遲的情況下完成所有這些工作。這是 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ā)開(kāi)銷(xiāo). ? 值得注意的是,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í)以匹配硬件鏈的其余部分,盡管在此過(guò)程中會(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í)別開(kāi)始,這里最大的新聞是該標(biāo)準(zhǔn)更新了具有內(nèi)存的設(shè)備的緩存一致性協(xié)議(Type-2 和 Type-3,用 CXL 的說(shuō)法)。正如 CXL 所說(shuō),增強(qiáng)的一致性允許設(shè)備支持使主機(jī)緩存的數(shù)據(jù)無(wú)效。這取代了 CXL 早期版本中使用的基于偏差的一致性方法,為了保持簡(jiǎn)潔,保持一致性不是通過(guò)共享內(nèi)存空間的控制,而是通過(guò)讓主機(jī)或設(shè)備負(fù)責(zé)控制訪(fǎng)問(wèn)。相比之下,Back invalidation更接近真正的共享/對(duì)稱(chēng)方法,允許 CXL 設(shè)備在設(shè)備進(jìn)行更改時(shí)通知主機(jī)。 ? 包含Back invalidation也為設(shè)備之間的新對(duì)等連接打開(kāi)了大門(mén)。在 CXL 3.0 中,設(shè)備現(xiàn)在可以直接訪(fǎng)問(wèn)彼此的內(nèi)存,而無(wú)需通過(guò)主機(jī),使用增強(qiáng)的一致性語(yǔ)義來(lái)通知彼此它們的狀態(tài)。從延遲的角度來(lái)看,跳過(guò)主機(jī)不僅速度更快,而且在涉及交換機(jī)的設(shè)置中,這意味著設(shè)備不會(huì)通過(guò)請(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ī)可以訪(fǎng)問(wèn)設(shè)備的內(nèi)存,但必須為每個(gè)主機(jī)分配自己的專(zhuān)用內(nèi)存段,而 CXL 3.0 引入了真正的內(nèi)存共享。利用新的增強(qiáng)一致性語(yǔ)義,多個(gè)主機(jī)可以擁有一個(gè)共享段的一致副本,如果設(shè)備級(jí)別發(fā)生變化,可以使用反向失效來(lái)保持所有主機(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ī)——也就是說(shuō),交換機(jī)饋入其他交換機(jī)——這極大地增加了所支持的網(wǎng)絡(luò)拓?fù)涞姆N類(lèi)和復(fù)雜性。 ?
? 即使只有兩層交換機(jī),這也足以實(shí)現(xiàn)非樹(shù)狀拓?fù)浣Y(jié)構(gòu),例如環(huán)形、網(wǎng)狀結(jié)構(gòu)和其他結(jié)構(gòu)設(shè)置。并且各個(gè)節(jié)點(diǎn)可以是主機(jī)或設(shè)備,對(duì)類(lèi)型沒(méi)有任何限制。 ?
? 同時(shí),對(duì)于真正奇特的設(shè)置,CXL 3.0 甚至可以支持主干/葉架構(gòu),其中流量通過(guò)頂級(jí)主干節(jié)點(diǎn)路由,其唯一工作是將流量進(jìn)一步路由回包含實(shí)際主機(jī)的低級(jí)(葉)節(jié)點(diǎn)/設(shè)備。 ?
? 最后,所有這些新的內(nèi)存和拓?fù)?結(jié)構(gòu)功能都可以在 CXL 聯(lián)盟所稱(chēng)的全球結(jié)構(gòu)附加內(nèi)存 (GFAM) 中一起使用。簡(jiǎn)而言之,GFAM 通過(guò)進(jìn)一步分解來(lái)自給定主機(jī)的內(nèi)存,將 CXL 的內(nèi)存擴(kuò)展板(Type-3)理念提升到了一個(gè)新的水平。在這方面,GFAM 設(shè)備在功能上是它自己的共享內(nèi)存池,主機(jī)和設(shè)備可以根據(jù)需要訪(fǎng)問(wèn)它。GFAM 設(shè)備可以同時(shí)包含易失性和非易失性存儲(chǔ)器,例如 DRAM 和閃存。 ?
? 反過(guò)來(lái),GFAM 將使 CXL 能夠有效地支持大型多節(jié)點(diǎn)設(shè)置。正如 Consortium 在他們的一個(gè)示例中使用的那樣,GFAM 允許 CXL 3.0 為在 CXL 連接的機(jī)器集群上實(shí)施 MapReduce 提供必要的性能和效率。當(dāng)然,MapReduce 是一種非常流行的用于加速器的算法,因此擴(kuò)展 CXL 以更好地處理集群加速器常見(jiàn)的工作負(fù)載是標(biāo)準(zhǔn)的下一步明顯(并且可以說(shuō)是必要的)。盡管它確實(shí)模糊了 CXL 等本地互連的結(jié)束位置和 InfiniBand 等網(wǎng)絡(luò)互連的開(kāi)始位置之間的界限。 ? 最終,最大的區(qū)別可能是支持的節(jié)點(diǎn)數(shù)量。CXL 的尋址機(jī)制,聯(lián)盟稱(chēng)之為基于端口的路由 (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)盟沒(méi)有提供任何關(guān)于何時(shí)期望 CXL 3.0 出現(xiàn)在設(shè)備中的指導(dǎo)——這取決于設(shè)備制造商- 但有理由說(shuō)它不會(huì)馬上。隨著 CXL 1.1 主機(jī)剛剛交付——更不用說(shuō) CXL 2.0 主機(jī)——CXL 的實(shí)際產(chǎn)品化比標(biāo)準(zhǔn)落后幾年,這對(duì)于這些大型行業(yè)互連標(biāo)準(zhǔn)來(lái)說(shuō)是典型的。 ?
? ?
編輯:黃飛
?
評(píng)論