您現在的位置是:首頁 > 單機遊戲首頁單機遊戲

讓英特爾傲騰涼涼的CXL 3.0,究竟是什麼?

簡介這意味著CXL 3

什麼病會導致眼晴痛

在上週,英特爾正式確認了充滿黑科技意味的傲騰業務和3D Xpoint走向終結,取而代之的是向CXL架構發展。事實上Compute Express Link(CXL)標準在提出之後,迅速成為伺服器市場熱捧的發展趨勢之一,它的特點是能在PCIe標準基礎上建立豐富的I/O功能集,改善裝置之間的快取一致性,更好的將伺服器中的裝置與CPU連結在一起,無論是DRAM這樣的易失性儲存,還是SSD這樣的非易失性儲存。

是的,CXL在設定之初就有著一條雄心勃勃的規劃,極具戰略的眼光讓其在三年內成為伺服器中被看好先進互聯標準,甚至讓Gen-Z、CCIX、OpenCAPI都退出了競爭,傲騰時代結束也變得順利成章。

讓英特爾傲騰涼涼的CXL 3.0,究竟是什麼?

那麼讓傲騰業務徹底涼涼的CXL,究竟實現了一個什麼樣的互聯想法?趁著2022快閃記憶體峰會CXL 3。0標準釋出之際,不妨讓我們花點時間聊聊CXL。

脫胎於PCIe 6.0

CXL聯盟於2019年啟動,英特爾作為發起人,聯合了阿里巴巴、戴爾EMC、Facebook(Meta)、谷歌、HPE、華為和微軟共同建立,隨後AMD、Arm均加入其中。隨著聯盟的擴大化,Gen-Z聯盟也確認將所有技術規格和資產轉讓給CXL,確保CXL作為行業標準向前推進。

讓英特爾傲騰涼涼的CXL 3.0,究竟是什麼?

雖然在標準制定上CXL具備了領先優勢,但CXL聯盟成員還有許多工作要做。特別是在產品方面,第一批原生支援CXL的x86 CPU幾乎沒有出貨,大部分產品佈局需要圍繞英特爾即將釋出的Sapphire Ridge至強處理器進行。

與此同時,CXL 3。0響應了裝置供應商的需求,將比CXL 1。X版本提升了頻寬,並將一些原本複雜的標準設計簡單化,確保易用性。這是2020年CXL 2。0標準引入記憶體池和CXL開關功能之後較大的改動,CXL 3。0將側重於物理和邏輯層面的升級,在物理層面,CXL將每通道吞吐量提升了一倍,達到64GT/s。在邏輯層面,CXL 3。0擴招了標準邏輯能力,允許更復雜的連線拓撲,以及一組CXL裝置內可以靈活實現記憶體共享和記憶體訪問。

讓英特爾傲騰涼涼的CXL 3.0,究竟是什麼?

相對於CXL 1。X和CXL 2。0建立在PCIe 5。0之上,CXL 3。0與PCIe 6。0規範進行合併,這也使得CXL 3。0成為標準建立以來第一次物理層更新。PCIe 6。0標準變化很大,它將總線上的可用頻寬提升了一倍,也就是64GT/s,這意味著PCIe 6。0 x16的頻寬可以達到128GB/s,PCIe的訊號也由原來的二進位制NRZ訊號變成了四態的PAM4訊號,並結合固定資料包FLIT介面實現傳輸,以避免速率翻倍之後不提升頻率的情況。

順帶一提,在NVIDIA Ampere架構GeForce RTX 3080和3090高效能GPU的推廣後,GDDR6X中所使用的PAM4訊號在消費領域也已經獲得了不少的認知。

讓英特爾傲騰涼涼的CXL 3.0,究竟是什麼?

CXL 3。0則正是基於PCIe 6。0標準進行的。它屬於PCIe 6。0全頻寬改進版,在提升總頻寬的同時,也加入了向前糾錯FEC等內容,根據CXL聯盟的說法,CXL 3。0能夠在不增加延遲的情況下完成所有工作,這是PCIe 6。0所面臨的挑戰之一,因為一旦進行糾錯,就一定會增加程序的延遲,為此PCI-SIG特意增加了FEC方式來解決問題。從整體上來看,CXL 3。0與CXL 2。0延遲保持相同。

讓英特爾傲騰涼涼的CXL 3.0,究竟是什麼?

除了獲得PCIe 6。0的基礎更新,CXL聯盟還調整了固定資料包FLIT的大小,原本的CXL 1。X和CXL 2。0使用了68 bytes資料包,在CXL 3。0直接升級到了256 bytes,給CXL 3。0引入的複雜拓撲提供了基礎,另外CXL 3。0還引入了一種低延遲FLIT模式,透過將CRC分解成128 bytes的FLIT顆粒進行和傳輸,以減輕物理層中儲存和轉發的開銷。

除此之外,CXL 3。0還支援32、16、8GT/s的低速率傳輸模式,以相容早期CXL版本。

CXL 3.0特性:記憶體共享、多級拓撲

除了進一步提升整體I/O頻寬,CXL 3。0還需要考慮到不同裝置之間的高階互聯協議。比如CXL 3。0中更新了具有快取的一致性協議,當主機快取資料無效的時候,裝置還能正常執行。這意味著CXL 3。0取代了早起版本基於偏差一致性的方式。為了設計簡單化,保持一致性不是透過共享記憶體空間實現,而是透過主機或者裝置控制訪問實現的。

相比之下,反向失效更接近真正的共享對稱方式,在CXL裝置發生更改的時候可以及時通知到主機。

在CXL 3。0中,裝置可以直接訪問彼此的記憶體,無需透過主機CPU,透過增強的一致性語義來通知彼此的狀態。從延遲角度來看,雙鏈接速度更快,並且也不會佔用寶貴的主機頻寬。

讓英特爾傲騰涼涼的CXL 3.0,究竟是什麼?

除了調整快取功能,CXL 3。0也對主機與裝置之間的記憶體共享進行了更新,CXL 2。0提供了記憶體池設計,多個主機可以對裝置記憶體進行訪問,但是每個主機都需要分配自己專屬記憶體段。在CXL 3。0中國,記憶體共享變得更開放,多個主機可以擁有一個共享記憶體段的一致性副本,如果裝置級別發生變化,可以使用反向失效來保持所有主機同步。

讓英特爾傲騰涼涼的CXL 3.0,究竟是什麼?

但這樣的設計並不能完全取代CXL 2。0上的記憶體池設計,因為某些方案中,記憶體池設計往往更為奏效,因此CXL 3。0會同時支援這兩種模式,進行混合匹配。

另外CXL 3。0消除了單個CXL埠下游的Type-1、Type-2裝置數量限制,CXL 2。0只允許這些裝置中出現一個根埠,而CXL 3。0沒有類似的限制。這意味著現在CXL根埠無論是Type-1、Type-2還是Type-3都可以進行完全混合匹配設定,具體取決於系統構建者的目的。這意味著CXL 3。0能夠將多個加速器連線到單個交換機,以提升密度,使得點對點傳輸功能更加有用。

讓英特爾傲騰涼涼的CXL 3.0,究竟是什麼?

CXL 3。0另一個特性是支援多級切換,允許單個交換機駐留在主機和裝置之間,並允許多級交換機實現多層級交換,對網路拓撲種類和複雜性有更好的支援。即便只有兩層交換機,CXL 3。0也能夠實現非樹狀拓撲,比如環形、網狀或者其他結構,對節點中的主機或裝置沒有任何限制。

讓英特爾傲騰涼涼的CXL 3.0,究竟是什麼?

新的記憶體和拓撲結構功能都可以在CXL聯盟推行的全域性結構連線記憶體(Global Fabric Attached Memory,GFAM)一起使用,GFAM透過進一步分解給主機的記憶體,將CXL記憶體擴充套件版Type-3理念提升到了一個新水平,因此GFAM裝置在功能就是自己的共享記憶體池,主機和裝置可以根據需求進行訪問,其中GFAM可以同時擁有易失性儲存和非易失性儲存,也就是DRAM和SSD都裝在一個模組內,最終實現類似傲騰的功能。

讓英特爾傲騰涼涼的CXL 3.0,究竟是什麼?

GFAM將使得CXL能夠有效支援大型多節點設定,在範例列舉中,CXL列舉了在時下流行的MapReduce模型中如何提供了必要的效能和效率,儘管這套演算法模糊了CXL本地互聯和InfiniBand網路互聯之間位置的界限。

鑑於CXL標準誕生並不久,CXL 1。X和CXL 2。0裝置才剛開始交付,CXL 3。0距離實際的應用部署還有幾年的時間,因此現在也沒有實際的指導案例。但我們已經可以從中一窺整個業界正在向更為便宜、有效的方向前進,而非傲騰這種造價高昂的獨佔硬體解決問題。在IT硬體一輪又一輪的升級經驗中,已經變成了永恆的道理。

讓英特爾傲騰涼涼的CXL 3.0,究竟是什麼?

Top