2001年,英特爾公布了第三代I/O技術(shù)——3GIO技術(shù)(后更名為PCI Express,即PCIe),以高性能、高擴展性、高可靠性及出色的兼容性取代了包括AGP和PCI在內(nèi)所有的內(nèi)部總線并且不斷升格。例如,2019年5月底公布的PCIe 5.0,其以32Gb/s的單通道帶寬與32GT/s(Giga Transmission per second)每通道數(shù)據(jù)傳輸速率,滿足了現(xiàn)今絕大多數(shù)的需求。但應(yīng)對數(shù)據(jù)TB級增長、異構(gòu)計算大行其道的當(dāng)下,PCIe在內(nèi)存使用效率、延遲和數(shù)據(jù)吞吐量等方面,已經(jīng)面臨壓力。 二十年后,在如今這個數(shù)據(jù)爆炸式增長,異構(gòu)計算大行其道的當(dāng)下,曾經(jīng)的“未來之星“PCI-e 已經(jīng)開始出現(xiàn)后繼無人的現(xiàn)象,無法成為 CPU、GPU、FPGA 以及其他 AI 計算設(shè)備之間溝通的橋梁。為了達到最佳的計算效果,我們越來越期待一種以內(nèi)存為中心的、富有變革性的新技術(shù)出現(xiàn),基于PCI-e協(xié)議的CXL技術(shù)便在此環(huán)境下出世。 2019年,英特爾推出的CXL技術(shù)似乎殺出了重圍。短短幾年時間,CXL便成為業(yè)界公認的先進設(shè)備互聯(lián)標準,其最為強勁的競爭對手Gen-Z、OpenCAPI都紛紛退出了競爭,并將Gen-Z協(xié)議、OpenCAPI協(xié)議轉(zhuǎn)讓給CXL。
1、什么是CXL?
CXL全稱為Compute Express Link,作為一種全新的開放式互聯(lián)技術(shù)標準,其能夠讓CPU與GPU、FPGA或其他加速器之間實現(xiàn)高速高效的互聯(lián),從而滿足高性能異構(gòu)計算的要求,并且其維護CPU內(nèi)存空間和連接設(shè)備內(nèi)存之間的一致性。總體而言,其優(yōu)勢高度概括在極高兼容性和內(nèi)存一致性兩方面上。
2、CXL 協(xié)議
CXL 標準定義了 3 個協(xié)議,這些協(xié)議在通過標準 PCIe 5.0 PHY 以 32 GT/s 傳輸之前一起動態(tài)復(fù)用: CXL.io 協(xié)議本質(zhì)上是經(jīng)過一定改進的 PCIe 5.0 協(xié)議,用于初始化、鏈接、設(shè)備發(fā)現(xiàn)和列舉以及寄存器訪問。它為 I/O 設(shè)備提供了非一致的加載/存儲接口。 CXL.cache 協(xié)議定義了主機和設(shè)備之間的交互,允許連接的 CXL 設(shè)備使用請求和響應(yīng)方法以極低的延遲高效地緩存主機內(nèi)存。 CXL.mem 協(xié)議提供了主機處理器,可以使用加載和存儲命令訪問設(shè)備連接的內(nèi)存,此時主機 CPU 充當(dāng)主設(shè)備,CXL 設(shè)備充當(dāng)從屬設(shè)備,并且可以支持易失性和持久性存儲器架構(gòu)。 如圖 1 所示,CXL.cache 和 CXL.mem 合并且共享一個公共鏈路和事務(wù)層,而 CXL.io 有自己的鏈路和事務(wù)層。
三個協(xié)議產(chǎn)生的數(shù)據(jù)都通過仲裁和多路復(fù)用 (ARB/MUX) 模塊一起動態(tài)復(fù)用,然后被移交到 PCIe 5.0 PHY,進而以 32GT/s 的速度進行傳輸。ARB/MUX 在 CXL 鏈路層(CXL.io 和 CXL.cache/mem)發(fā)出的請求之間進行仲裁,并根據(jù)仲裁結(jié)果復(fù)用數(shù)據(jù),仲裁結(jié)果使用加權(quán)循環(huán)仲裁,權(quán)重由主機設(shè)置。ARB/MUX 還處理鏈路層發(fā)出的功耗狀態(tài)轉(zhuǎn)換請求,向物理層創(chuàng)建實現(xiàn)有序降耗操作的單個請求。
CXL 通過固定寬度的 528 位微片傳輸數(shù)據(jù),該微片由四個 16 字節(jié)時隙組成,并添加了兩個字節(jié) CRC:(4 x 16 + 2 = 66 字節(jié)= 528 位)。插槽采用多種格式定義,可專用于 CXL.cache 協(xié)議或 CXL.mem 協(xié)議。片頭定義了插槽格式,并攜帶允許事務(wù)層將數(shù)據(jù)正確路由到預(yù)期協(xié)議的信息。
由于 CXL 使用 PCIe 5.0 PHY 和電氣元件,它可以有效地插入到任何可以通過 Flex Bus 使用 PCIe 5.0 的系統(tǒng)中。Flex Bus 是一個靈活的高速端口,可以靜態(tài)配置為支持 PCIe 或 CXL。圖 2 舉例顯示了 Flex Bus 鏈路。這種方法使 CXL 系統(tǒng)能夠利用 PCIe 重定時器;但是,目前 CXL 僅定義為直連 CPU 鏈路,因此無法利用 PCIe 交換機。隨著標準的逐步完善,交換功能可能會被添加到標準中;如果是這樣,則需要創(chuàng)建新的 CXL 交換機。
3、CXL 設(shè)備類型
CXL.io 協(xié)議用于初始化和鏈接,所以必須獲得所有 CXL 設(shè)備的支持,如果 CXL.io 協(xié)議發(fā)生故障,鏈接就無法運行。其他兩個協(xié)議的不同組合產(chǎn)生了總共三種被定義并受 CXL 標準支持的獨特 CXL 設(shè)備類型。
圖 3 顯示了三種已定義的 CXL 設(shè)備類型及其相應(yīng)的協(xié)議、典型應(yīng)用以及支持的存儲器訪問類型。
對于 2 型設(shè)備,CXL 定義了兩個一致性“偏置”,用于控制 CXL 對主機和設(shè)備連接存儲器之間的一致性數(shù)據(jù)的處理方式。偏置模式指主機偏置和設(shè)備偏置,并且操作模式可以根據(jù)需要發(fā)生改變,從而在鏈路操作期間優(yōu)化給定任務(wù)的性能。
2 型設(shè)備(例如,加速器)處理提交給主機的工作時間及其后續(xù)完成之間的數(shù)據(jù)時,設(shè)備偏置模式用于確保設(shè)備可以直接訪問其設(shè)備連接的存儲器,而無需與主機的一致性引擎通信。因此,設(shè)備可保證主機沒有緩存線路。這為設(shè)備提供了最優(yōu)的延遲性能,使得設(shè)備偏置成為加速器執(zhí)行工作的主要操作模式。主機處于設(shè)備偏置模式時,主機仍然可以訪問設(shè)備連接的存儲器,但性能卻不是最優(yōu)。
主機偏置模式優(yōu)先考慮從主機到設(shè)備連接存儲器的一致性訪問。該模式通常在工作提交期間使用,此時數(shù)據(jù)會從主機寫入設(shè)備連接的存儲器,而且在主機將數(shù)據(jù)從設(shè)備連接的存儲器中導(dǎo)出后,可使用該模式完成工作。在主機偏置模式下,設(shè)備連接的存儲器對于設(shè)備而言就像主機連接的存儲器一樣,如果設(shè)備需要訪問,就通過一條發(fā)送到主機的請求進行處理。
可以使用軟件或硬件,通過軟件輔助和硬件自治這兩種受支持的模式管理機制來控制偏置模式。加速器或其他 2 型設(shè)備可以選擇偏置模式,如果兩種模式均未選擇,則系統(tǒng)默認為主機偏置模式,這樣就必須通過主機路由對設(shè)備連接存儲器進行所有訪問。偏置模式可以使用 4KB 頁面的顆粒度進行更改,并通過 2 型設(shè)備中執(zhí)行的偏置表進行跟蹤。
CXL 標準的一個重要特征是一致性協(xié)議是不對稱的。Home 緩存代理僅停留在主機中。因此,主機控制存儲器的緩存,從而解決連接的 CXL 設(shè)備請求的給定地址的整個系統(tǒng)的一致性問題。這完全不同于正在使用的現(xiàn)有專有和公開的一致性協(xié)議,特別是那些用于 CPU 到 CPU 連接的協(xié)議,因為它們通常是對稱的,會使得所有互連設(shè)備都變得對等。
雖然這樣有一些優(yōu)點,但是對稱的高速緩存一致性協(xié)議更加復(fù)雜,并且所有設(shè)備都必須處理由此產(chǎn)生的復(fù)雜性。具有不同架構(gòu)的設(shè)備可以采用不同的方法來實現(xiàn)在微架構(gòu)級別優(yōu)化的一致性,而這一情況可能會為實現(xiàn)廣泛的行業(yè)采用增加難度。通過使用主機控制的非對稱方法,可以將不同的 CPU 和加速器輕松納入新興 CXL 生態(tài)系統(tǒng)。
4、CXL的未來
可以設(shè)想在具有內(nèi)存一致性的大型系統(tǒng)中同時使用多個協(xié)議來處理 CPU 到 CPU、CPU 到連接設(shè)備以及更長距離的機箱到機箱要求。目前,CXL 致力于為服務(wù)器提供經(jīng)過優(yōu)化的解決方案。CXL 固有的不對稱性意味著它可能不適用于 CPU 到 CPU 或加速器到加速器的連接。
-
cpu
+關(guān)注
關(guān)注
68文章
10804瀏覽量
210839 -
協(xié)議
+關(guān)注
關(guān)注
2文章
593瀏覽量
39135 -
互聯(lián)技術(shù)
+關(guān)注
關(guān)注
0文章
13瀏覽量
8323
原文標題:一文讀懂CXL協(xié)議
文章出處:【微信號:gh_873435264fd4,微信公眾號:FPGA技術(shù)聯(lián)盟】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論