0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CXL事務(wù)層詳解

安芯教育科技 ? 來源:老秦談芯 ? 作者:老秦談芯 ? 2022-10-10 16:02 ? 次閱讀

第三章 CXL事務(wù)層

3.1 CXL.io

CXL.io為IO設(shè)備提供非一致性的load/strore接口。事務(wù)類型、事務(wù)數(shù)據(jù)包格式、信用流量控制、虛擬通道管理、事務(wù)順序的規(guī)則等遵循PCIe協(xié)議。CXL.io的事務(wù)層如下圖中的黃色部分所示。

abbcb9ec-4855-11ed-a3b6-dac502259ad0.png

3.1.1 CXL.io端點(diǎn)(Endpoint)

CXL設(shè)備需要支持在CXL 1.1和CXL 2.0模式下運(yùn)行。當(dāng)鏈路配置為在CXL 1.1模式下運(yùn)行時,CXL.io端點(diǎn)必須作為PCIe RCiEP;而當(dāng)配置為在CXL 2.0模式下運(yùn)行時,必須作為PCI Express端點(diǎn)。

RCiEP是Root Complex Integrated Endpoints的縮寫,PCIe端點(diǎn)的一種。

3.1.2 CXL電源管理VDM(Vendor Defined Message)格式

CXL電源管理消息使用PCIe的VDM Type 0,帶有4DW的負(fù)載數(shù)據(jù),包括PMREQ,PMRSP和PMGO消息。

CXL電源管理VDM的格式如下:

ac28ce16-4855-11ed-a3b6-dac502259ad0.png

如果接收方CXL組件接收到“有毒”的電源管理VDM,則應(yīng)丟棄此類消息。由于接收方在接收到此類VDM后能夠繼續(xù)正常運(yùn)行,因此應(yīng)將此事件視為非致命性錯誤(non-fatal)。如果接收方的電源管理單元(PMU)不理解電源管理VDM數(shù)據(jù)負(fù)載的內(nèi)容,則應(yīng)無聲地丟棄該消息,并且不發(fā)出無法糾正錯誤(uncorrectableerror)的信號

數(shù)據(jù)負(fù)載的字段定義比較多,就不貼圖了。

電源管理信用和初始化過程是本地鏈接。設(shè)備和主機(jī)之間通過CXL.io通道發(fā)送的消息類型主要涉及兩種,分別是CREDIT_RTN和AGENT_INFO,其中PM2IP是主機(jī)發(fā)給設(shè)備的電源管理消息,而IP2PM是設(shè)備發(fā)給主機(jī)的電源管理消息。至于“信用”機(jī)制就不解釋了,在前面講CCIX的時候已經(jīng)介紹過了。

所謂的上游端口(Upstream Port)指的是設(shè)備的端口;而下游端口(Downstream Port)是主機(jī)端口。CXL上游端口PMU必須能夠接收和處理CREDIT_RTN消息,而不依賴于任何其它PM2IP消息。此外,CREDIT_RTN消息不使用信用。CREDIT_RTN消息用于初始化和更新每側(cè)的TX信用,以便可以適當(dāng)?shù)毓芾砹髁靠刂?。在PM初始化期間的第一條CREDIT_RTN消息,通過NUM_CREDITS字段發(fā)送的信用表示CREDIT_RTN的發(fā)起方可以從另一端接收的信用相關(guān)PM消息的數(shù)量。在后續(xù)CREDIT_RTN消息期間,NUM_CREDITS字段表示自上一條CREDIT_RTN消息以來在同一方向釋放的PM信用數(shù)。下游端口PMU還使用第一條CREDIT_RTN消息為上游端口PMU分配PM_AGENT_ID。此ID通過CREDIT_RTN消息中的TARGET_AGENT_ID字段進(jìn)行通信。在啟動任何IP2PM消息之前,上游端口PMU必須等待來自下游端口PMU的CREDIT_RTN消息

參考下圖,第一條消息,PM2IP.CREDIT_RTN(Target_Agent_ID,Num_Credits=1) ,這個消息里面包含了2個內(nèi)容,一個是Target_Agent_ID,另一個是主機(jī)給了設(shè)備1個信用值。之后,設(shè)備也給主機(jī)發(fā)送了一個消息IP2PM. CREDIT_RTN(Num_Credits=2),授權(quán)了主機(jī)2個信用值。在初始化的時候,設(shè)備必須先等待接受來自主機(jī)的CREDIT_RTN消息,而不能先向主機(jī)發(fā)送消息。

ac3de4b8-4855-11ed-a3b6-dac502259ad0.png

上游端口PMU必須遵循的規(guī)則:

在啟動任何IP2PM消息之前,上游端口PMU必須等待接收PM2IP.CREDIT_RTN消息。

上游端口PMU必須從下游端口PMU接收到的第一條PM2IP消息中提取TARGET_AGENT_ID字段,并將其用作未來消息中的PM_AGENT_ID。

上游端口PMU必須實現(xiàn)足夠的資源來接收和處理任何CREDIT_RTN消息,而不依賴于任何其他PM2IP或IP2PM消息或其他消息類。

上游端口PMU必須實現(xiàn)至少一個信用,以接收PM2IP消息。

上游端口PMU必須盡快向下游端口PMU返回信用,以防止通過CXL鏈路阻塞電源管理消息通信。

建議上游端口PMU占用信用額度不得超過10us。

插播一句,是不是看的暈暈的?這里簡單介紹一下供應(yīng)商定義的消息(VDM),PCIe協(xié)議里是這么說的“TheVendor Defined Messages allow expansion of PCI Express messaging capabilities,either as a general extension to the PCI Express Specification or avendor-specific extension”。

aca0e7c0-4855-11ed-a3b6-dac502259ad0.png

3.1.3 CXL錯誤VDM格式

CXL錯誤消息使用PCIe的VDM Type 0,沒有負(fù)載數(shù)據(jù),格式如下。

acbfe814-4855-11ed-a3b6-dac502259ad0.png

3.1.4 CXL所需的可選PCIe功能

ace85696-4855-11ed-a3b6-dac502259ad0.png

3.1.5 錯誤傳播

設(shè)備檢測到的CXL.cache和CXL.mem錯誤通過CXL.io通信流傳播到上游端口。這些錯誤在PCIe AER寄存器中記錄為可糾正(Correctable)和不可糾正(Uncorrectable)的內(nèi)部錯誤。

3.1.6 ATS上的存儲器類型指示

對某些內(nèi)存區(qū)域的請求只能在CXL.io上發(fā)出,而不能在CXL.cache上發(fā)出。由主機(jī)決定這些內(nèi)存區(qū)域是什么。例如,在x86系統(tǒng)上,主機(jī)可以選擇僅通過CXL.io限制對不可緩存(Uncacheable)類型內(nèi)存的訪問。主機(jī)通過ATS完成(ATS Completion)向設(shè)備來指示這些區(qū)域。

ad3f71b0-4855-11ed-a3b6-dac502259ad0.png

adce1ce4-4855-11ed-a3b6-dac502259ad0.png

插播一句,ATS是Address Translation Services的縮寫。PCIe協(xié)議里面有一整章講ATS。為節(jié)省CPU資源,I/O Function常采用DMA方式訪問內(nèi)存。一般I/O Function看到的物理地址空間與CPU一樣。但有時候,I/O Function看到的地址空間不是真實的物理地址,需要RC將DMA請求進(jìn)行處理,通過一次地址轉(zhuǎn)換才能將訪問到真實的物理地址。這種地址轉(zhuǎn)換機(jī)制有利于訪問權(quán)限檢查。

ade6cde8-4855-11ed-a3b6-dac502259ad0.png

一般PCIe設(shè)備在本地實現(xiàn)一個地址緩存(Address Translation Cache,ATC),類似CPU中的TLB。Function發(fā)送存儲器讀寫請求前,先在本地的ATC中查找是否有該地址的條目。如果在ATC中查找成功,直接采用轉(zhuǎn)換后地址進(jìn)行訪問。如果在ATC中沒有找到該地址的條碼,則給TA(TranslationAgent)發(fā)送該地址的地址轉(zhuǎn)換請求。在ARM體系中,TA的功能由SMMU(System Memory Management Unit)承擔(dān),此外SMMU還要顯式的負(fù)責(zé)同步TLB和與它相連的分布ATC中的數(shù)據(jù)一致性。關(guān)于SMMU,之前的文章介紹過。

3.1.7 可延遲寫

CXL規(guī)范中定義的可延遲寫入僅在CXL1.1模式下運(yùn)行時適用。在CXL 2.0模式下操作時,請參閱PCIe規(guī)范以了解此功能。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 電源管理
    +關(guān)注

    關(guān)注

    115

    文章

    6107

    瀏覽量

    143486
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8279

    瀏覽量

    150031
  • PCIe
    +關(guān)注

    關(guān)注

    15

    文章

    1166

    瀏覽量

    82042

原文標(biāo)題:技術(shù)分享 | CXL學(xué)習(xí)(三)

文章出處:【微信號:Ithingedu,微信公眾號:安芯教育科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Flex Bus物理CXL幀和數(shù)據(jù)概述

    在傳輸端,F(xiàn)lex Bus物理準(zhǔn)備從PCIe鏈路層或CXL ARB/MUX接收的數(shù)據(jù),以便通過Flex Bus鏈路進(jìn)行傳輸。
    的頭像 發(fā)表于 09-11 14:34 ?2553次閱讀
    Flex Bus物理<b class='flag-5'>層</b>的<b class='flag-5'>CXL</b>幀和數(shù)據(jù)概述

    TCPIP詳解卷三:TCP事務(wù)協(xié)議,HTTP,NNTP和UNIX域協(xié)議

    TCPIP詳解卷三:TCP事務(wù)協(xié)議,HTTP,NNTP和UNIX域協(xié)議
    發(fā)表于 09-28 12:45

    詳解Spring事務(wù)管理

    在學(xué)習(xí)spring事務(wù)管理時,我忍不住要問,spring為什么進(jìn)行事務(wù)管理,spring怎么進(jìn)行的事務(wù)管理?首先,為什么要進(jìn)行事務(wù),接下來說說spring是怎樣進(jìn)行
    發(fā)表于 07-12 06:54

    Spring事務(wù)管理詳解說明

    Spring事務(wù)管理詳解
    發(fā)表于 05-20 13:46

    一窺CXL協(xié)議

    出TLP發(fā)給事務(wù);事務(wù)解析TLP,取出有效負(fù)載數(shù)據(jù)。1.4 概述1.4.1 CXLCXL在PCIe 5.0的基礎(chǔ)上復(fù)用三種類型的協(xié)議,分別 CX
    發(fā)表于 09-09 15:03

    一文解析CXL系統(tǒng)架構(gòu)

    1、CXL系統(tǒng)架構(gòu)簡析  CXL支持三種設(shè)備類型,如下圖。Type 1支持CXL.cache和CXL.io;Type2支持CXL.cache
    發(fā)表于 09-14 14:24

    CXL事務(wù)的結(jié)構(gòu)是由哪些部分組成的

    3.1 CXL.ioCXL.io為IO設(shè)備提供非一致性的load/strore接口。事務(wù)類型、事務(wù)數(shù)據(jù)包格式、信用流量控制、虛擬通道管理、事務(wù)順序的規(guī)則等遵循PCIe協(xié)議。
    發(fā)表于 10-08 15:21

    CXL事務(wù)學(xué)習(xí)相關(guān)資料推薦

    1、CXL事務(wù)學(xué)習(xí)  CXL.cache協(xié)議將設(shè)備和主機(jī)之間的交互定義為多個請求,每個請求至少有一條相關(guān)的響應(yīng)消息,有時還有數(shù)據(jù)傳輸。該接口在每個方向上由三個通道組成:請求(Requ
    發(fā)表于 10-18 14:19

    CXL內(nèi)存協(xié)議介紹

    Coherency Engine,簡稱DCOH)。從Master到Subordinate的CXL.mem事務(wù)被稱作M2S;反過來,從Subordinate到Master的事務(wù)稱作S2M。M2S
    發(fā)表于 11-01 15:08

    一文詳解CXL鏈路層格式的定義

    4.1 CXL.io鏈路層CXL.io鏈路層充當(dāng)CXL.io事務(wù)和Flex Bus物理之間的
    發(fā)表于 02-21 14:27

    《TCP-IP詳解_卷3_TCP事務(wù)協(xié)議,HTTP,NNTP

    《TCP-IP詳解_卷3_TCP事務(wù)協(xié)議,HTTP,NNTP和UNIX域協(xié)議》
    發(fā)表于 03-24 22:42 ?39次下載

    一個簡單地的例子來回顧PCIe總線的結(jié)構(gòu)、事務(wù)、數(shù)據(jù)鏈路層和物理

    如下圖所示,Completer的應(yīng)用會根據(jù)接受到的信息進(jìn)行相應(yīng)的處理,處理完成后會將數(shù)據(jù)發(fā)送至事務(wù),事務(wù)根據(jù)這一信息創(chuàng)建一個新的TLP
    的頭像 發(fā)表于 05-02 09:58 ?9062次閱讀
    一個簡單地的例子來回顧PCIe總線的結(jié)構(gòu)、<b class='flag-5'>事務(wù)</b><b class='flag-5'>層</b>、數(shù)據(jù)鏈路層和物理<b class='flag-5'>層</b>

    PCIe 6.0入門之事務(wù)

    作為協(xié)議的最高層,事務(wù)的主要功能是: ? 流水線式完整拆分交易協(xié)議 ? 區(qū)分事務(wù)層數(shù)據(jù)包 (TLP) 的排序和處理要求的機(jī)制 ? 基于credit的流量控制 ? 可選支持?jǐn)?shù)據(jù)中毒和端到端數(shù)據(jù)完整性檢測。
    的頭像 發(fā)表于 05-22 17:30 ?3189次閱讀
    PCIe 6.0入門之<b class='flag-5'>事務(wù)</b><b class='flag-5'>層</b>

    揭開CXL的神秘面紗:概述

    CXL 是一種在主機(jī)(通常是 CPU)和設(shè)備(通常是附加了內(nèi)存的加速器)之間實現(xiàn)高帶寬、低延遲鏈接的技術(shù)。CXL 堆棧專為低延遲而設(shè)計,使用 PCIe 電氣和附加卡的標(biāo)準(zhǔn) PCIe 外形規(guī)格。CXL 使用靈活的處理器端口,可以自
    的頭像 發(fā)表于 05-26 10:33 ?3680次閱讀
    揭開<b class='flag-5'>CXL</b>的神秘面紗:概述

    關(guān)于CXL的功能與特性詳解

    CXL.io 和CXL.cache 是CXL 協(xié)定中的兩個子協(xié)定,它們的功能和用途有所不同,主要是為了引入非對稱的概念;CXL.io 類似于PCIe 的事件(event),主要用于初始
    的頭像 發(fā)表于 11-22 15:43 ?1024次閱讀
    關(guān)于<b class='flag-5'>CXL</b>的功能與特性<b class='flag-5'>詳解</b>