3.3 CXL.mem
3.3.1 介紹
CXL內(nèi)存協(xié)議被稱作CXL.mem。CXL.mem定義了CPU和內(nèi)存之間的傳輸接口。該協(xié)議可用于多個(gè)不同的內(nèi)存連接選項(xiàng),包括當(dāng)內(nèi)存控制器位于主機(jī)CPU中時(shí),或當(dāng)內(nèi)存控制器位于加速器設(shè)備內(nèi)時(shí),或當(dāng)內(nèi)存控制器移動(dòng)到內(nèi)存緩沖芯片時(shí)。
CPU中的一致性引擎使用CXL.mem請(qǐng)求和響應(yīng)與內(nèi)存接口。在此配置中,CPU一致性引擎被視為CXL.mem主設(shè)備(Master),內(nèi)存設(shè)備被視為CXL.mem從設(shè)備(Subordinate)。主設(shè)備負(fù)責(zé)向從設(shè)備發(fā)起讀寫請(qǐng)求,從設(shè)備負(fù)責(zé)響應(yīng)主設(shè)備的讀寫請(qǐng)求。
當(dāng)從設(shè)備是一個(gè)加速器時(shí),CXL.mem協(xié)議認(rèn)為設(shè)備內(nèi)部也有一個(gè)一致性引擎(Device Coherency Engine,簡(jiǎn)稱DCOH)。
從Master到Subordinate的CXL.mem事務(wù)被稱作M2S;反過來,從Subordinate到Master的事務(wù)稱作S2M。
M2S事務(wù)只有兩種消息類型:
無數(shù)據(jù)的請(qǐng)求(Req)
有數(shù)據(jù)的請(qǐng)求(RwD)
對(duì)應(yīng)的,S2M事務(wù)也只有兩種類型:
無數(shù)據(jù)的響應(yīng)(NDR)
有數(shù)據(jù)的響應(yīng)(DRS)
3.3.2 內(nèi)存QoS遙測(cè)
內(nèi)存QoS遙測(cè)是內(nèi)存設(shè)備的一種機(jī)制,用于在CXL.mem請(qǐng)求的每個(gè)響應(yīng)消息中指示其當(dāng)前負(fù)載級(jí)別(DevLoad)。這使主機(jī)能夠根據(jù)負(fù)載級(jí)別來衡量對(duì)部分設(shè)備、單個(gè)設(shè)備或設(shè)備組的CXL.mem請(qǐng)求的速率,從而優(yōu)化這些內(nèi)存設(shè)備的性能,同時(shí)限制結(jié)構(gòu)擁塞。
插播一句,QoS是Quality of Service的縮寫,翻譯過來就是服務(wù)質(zhì)量。對(duì)于內(nèi)存系統(tǒng)而言,帶寬和延時(shí)受到一定的限制,如何向其它的模塊提供服務(wù)是一個(gè)系統(tǒng)問題。SoC有的模塊可能帶寬需求不大,但是對(duì)于延時(shí)要求很高,比如顯示模塊。而有的模塊對(duì)于帶寬要求很大,但是延時(shí)可以略高,比如數(shù)據(jù)處理器。如果對(duì)SoC所有模塊的內(nèi)存需求一視同仁,可能影響整個(gè)系統(tǒng)的運(yùn)行。利用QoS機(jī)制,可以對(duì)每個(gè)模塊的內(nèi)存訪問排列順序,達(dá)到內(nèi)存系統(tǒng)的最佳利用。
內(nèi)存QoS遙測(cè)內(nèi)容比較繞,我也沒看太懂,暫時(shí)略過,不影響CXL的學(xué)習(xí)。
3.3.3 M2S請(qǐng)求(Req)
Req消息是無數(shù)據(jù)請(qǐng)求,消息字段定義如下:

各字段的編碼和詳細(xì)解釋就不貼圖了,如果有需要,大家可以去協(xié)議里面查找。
3.3.4 M2S帶數(shù)據(jù)請(qǐng)求(RwD)
RwD是有數(shù)據(jù)請(qǐng)求,消息字段定義如下:

3.3.5 S2M無數(shù)據(jù)響應(yīng)(NDR)
NDR消息類包含從Subordinate到Master的完成和指示,不帶數(shù)據(jù)。

3.3.6 S2M數(shù)據(jù)響應(yīng)(DRS)
DRS消息類包含從Subordinate到Master讀取的內(nèi)存數(shù)據(jù)。

3.3.7 轉(zhuǎn)發(fā)和排序規(guī)則
在多跳互連網(wǎng)絡(luò)中,Req和RwD消息的每一跳都需要信用值
如果請(qǐng)求和MemRdFwd或MemWrFwd指向相同的緩存行地址,則M2S Req通道中的CXL.mem請(qǐng)求不能發(fā)送MemRdFwd或MemWrFwd
NDR和DRS消息需要在源位置預(yù)先分配
在CXL.mem上,只有在寫入完成后,寫入數(shù)據(jù)才能保證對(duì)以后的訪問可見
CXL.mem請(qǐng)求需要在設(shè)備上進(jìn)行轉(zhuǎn)發(fā),而不依賴于任何設(shè)備啟動(dòng)請(qǐng)求
緩存行的M2S和S2M數(shù)據(jù)傳輸不能與其它緩存行交織
3.4 事務(wù)順序總結(jié)(Transaction Ordering Summary)
沒什么重要內(nèi)容,暫時(shí)略過。
3.5 到設(shè)備掛載內(nèi)存(DAM)的事務(wù)流
3.5.1 Type 1和Type 2的事務(wù)流
3.5.1.1 注釋和假設(shè)
下面的示意圖做了如下假設(shè):
設(shè)備內(nèi)部有一個(gè)設(shè)備一致性引擎,稱作DCOH
DCOH里包含一個(gè)監(jiān)聽過濾器,是用來追蹤監(jiān)聽設(shè)備的緩存
DCOH有一個(gè)偏置表查找機(jī)制,具體實(shí)現(xiàn)依賴于設(shè)備
設(shè)備特定的流程,如下圖紅色箭頭所示,不需要完全遵守下圖,具體實(shí)現(xiàn)取決于設(shè)備

3.5.1.2 主機(jī)請(qǐng)求
主機(jī)發(fā)起的可緩存讀(Cacheable read)示例如下圖。主機(jī)請(qǐng)求獲得一個(gè)緩存行的非獨(dú)占副本。主機(jī)發(fā)送MemRd,SnpData給設(shè)備,設(shè)備DCOH接收到SnpData,在偵聽過濾器中查找此緩存行。如果SF Hit(圖中綠色字體),設(shè)備將該緩存行狀態(tài)從Exclusive變?yōu)镾hared(圖中綠色字體)。隨后將數(shù)據(jù)和響應(yīng)發(fā)給DCOH,DCOH收到之后,回復(fù)Cmp-S給主機(jī),然后將數(shù)據(jù)通過MemData發(fā)送給主機(jī)。

CXL協(xié)議中還給了好幾個(gè)示例,就不一一貼上了。
3.5.1.3 設(shè)備請(qǐng)求(主機(jī)偏向和設(shè)備偏向)
到設(shè)備掛載內(nèi)存的設(shè)備讀取示例如下圖,包含兩個(gè)流程分支。第一個(gè),設(shè)備向設(shè)備掛載的內(nèi)存發(fā)起讀請(qǐng)求,由于配置成主機(jī)偏向(圖中的紫色字體),設(shè)備要向主機(jī)發(fā)送一致性請(qǐng)求。主機(jī)在解析完一致性后,在CXL.mem上發(fā)送MemRdFwd以完成事務(wù),此時(shí)設(shè)備可以在內(nèi)部完成讀取。第二個(gè),配置成設(shè)備偏向,設(shè)備讀取可以在設(shè)備內(nèi)完成,不需要向主機(jī)發(fā)送請(qǐng)求。

同樣的,后面還有幾個(gè)流程示例,先不貼了。
3.5.2 Type2和Type 3的內(nèi)存流
為了支持節(jié)省延遲,CXL.mem包含一個(gè)推測(cè)性內(nèi)存讀取命令(MemSpecRd),用于在主代理解決一致性之前啟動(dòng)內(nèi)存訪問。解決完一致性問題后,主機(jī)可能會(huì)發(fā)出請(qǐng)求讀?。∕emRd,MemRdOwn),設(shè)備應(yīng)與較早的MemSpecRd合并以節(jié)省延遲,見下圖。為了避免性能影響,建議將MemSpecRd命令視為低優(yōu)先級(jí),以避免其它正常請(qǐng)求訪問增加延遲。

3.6 Type 3設(shè)備的事務(wù)流
Type 3設(shè)備是內(nèi)存擴(kuò)展器,它既不緩存主機(jī)內(nèi)存,也不需要主機(jī)主動(dòng)管理設(shè)備緩存。因此,Type 3設(shè)備沒有DCOH代理。主機(jī)將這些設(shè)備視為分解的內(nèi)存控制器。到Type 3設(shè)備的事務(wù)流簡(jiǎn)化為兩個(gè)類,即讀和寫。
M2S讀取Type 2設(shè)備與Type 3設(shè)備的關(guān)鍵區(qū)別在于,Type 3設(shè)備沒有S2M NDR響應(yīng)消息。與Type 2設(shè)備一樣,向Type 3設(shè)備的寫入完成也需要S2M NDR Cmp消息


本章總結(jié):這一章的內(nèi)容極多,很多地方看的也是暈頭轉(zhuǎn)向,先搭個(gè)架子在這,以后有需要或者有時(shí)間再來仔細(xì)研究。
審核編輯 :李倩
-
cpu
+關(guān)注
關(guān)注
68文章
11279瀏覽量
225015 -
內(nèi)存控制器
+關(guān)注
關(guān)注
0文章
40瀏覽量
9407
原文標(biāo)題:技術(shù)分享 | CXL學(xué)習(xí)(五)
文章出處:【微信號(hào):Ithingedu,微信公眾號(hào):安芯教育科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
瀾起科技發(fā)布PCIe 6.x/CXL 3.x AEC解決方案
Penguin Solutions SMART Modular CXL NV-CMM E3.S 2T 內(nèi)存模塊通過 CXL 兼容性認(rèn)證
借助CXL和壓縮技術(shù)實(shí)現(xiàn)高效數(shù)據(jù)傳輸
解析DS320PR822:PCIe 5.0和CXL 1.1的高性能線性轉(zhuǎn)接驅(qū)動(dòng)器
探索CXL 70 - 5C天線:450 MHz頻段通信的理想選擇
紫光國芯榮獲2025年度CXL產(chǎn)品技術(shù)創(chuàng)新獎(jiǎng)
請(qǐng)問platform_mem_desc[ ] 數(shù)組有什么作用???
(MEM_ISUSED(mem)) 內(nèi)存分配問題求解
讓高性能計(jì)算芯片設(shè)計(jì)與CXL規(guī)范修訂保持同步
64GT/s+8000MT/s:瀾起CXL 3.1芯片破解數(shù)據(jù)中心內(nèi)存瓶頸
瀾起科技推出CXL? 3.1內(nèi)存擴(kuò)展控制器,助力下一代數(shù)據(jù)中心基礎(chǔ)設(shè)施性能升級(jí)
第二代AMD Versal Premium系列SoC滿足各種CXL應(yīng)用需求
Arm Neoverse CMN S3 推動(dòng)Compute Express Link (CXL) 存儲(chǔ)創(chuàng)新
新思科技解讀CXL 3.1標(biāo)準(zhǔn)
CXL.mem是什么?
評(píng)論