9.1 CXL啟動和復位概覽
9.1.1 總體
CXL設備的三種復位:
這三種復位被歸納為傳統(Conventional)復位。Function級復位和CXL復位不是傳統復位。
9.1.2 對比CXL和PCIe行為
- Warning:即將到來的事件的早期通知
- Signaling:實際啟動狀態轉換
9.2 CXL設備啟動流程
CXL設備將沿用PCIe的Warm reset和Cold reset。
9.3 CXL系統復位進入流程
在系統復位過程中,主機發送下列CXL PM VDM給CXL設備。
?PM Logical Opcode[7:0]=RESETPREP
?Parameter[15:0]=REQUEST
?ResetType = Warm Reset
?PrepType = General Prep
CXL設備應向主機刷新任何相關上下文,清理為主機服務的數據,并將連接到CXL設備的內存置于安全狀態。所有復位準備完成后,CXL設備發出下列CXL PM VDM給主機。
?PM Logical Opcode[7:0]=RESETPREP
?Parameter[15:0]=RESPONSE
?ResetType = Warm Reset
?PrepType = General Prep
9.4 CXL設備睡眠狀態進入流程
9.5 Function-level復位(FLR)
PCIe的FLR機制使軟件能夠以Function-level粒度停止和復位Endpoint硬件。CXL設備向主機軟件公開一個或多個PCIe Function。這些Function可以向主機呈現FLR能力,從而現有的PCIe兼容軟件可以向這些Function發出FLR。
9.6 緩存管理
舊有的操作系統或舊有的PCIe總線驅動程序不知道CXL.cache功能。所以,設備驅動程序應該提供CXL.cache功能的支持,以管理CXL緩存。
系統軟件可能希望在不復位系統或整個設備的情況下,確保支持CXLcache的設備不包含任何有效的緩存行。由于不需要設備通過FLR清除緩存內容,因此為此定義了單獨的控制位和狀態位。此功能對于所有支持CXL 2.0 CXLcache的設備都是必需的。軟件通過下面的步驟保證設備內沒有有效的緩存行:
9.7 CXL復位
9.7.1 對易失性HDM的影響
由于易失性HDM(Host-managed Device Memory)范圍的所有權可能在CXL復位后發生變化,因此必須確保CXL復位之前存在的易失性內存內容沒有泄漏。
兩種情況需要考慮:
- 設備繼續綁定到同一主機,但是系統軟件將易失性HDM分配給其它的軟件實體。
- 設備被遷移到另外一個主機。
9.7.2 軟件動作
在執行CXL復位時,系統軟件應遵循以下步驟:
重新初始化和聯機設備時,系統軟件應遵循以下步驟:
9.8 全局持久刷新(Global Persistent Flush,GPF)
全局持久性刷新(GPF)是一種基于硬件的機制,用于將緩存和內存緩沖區刷新到持久性域(Persistent Domain)。持久性域定義為一個位置,用于保證重新啟動設備時保留其數據內容,而不是丟棄數據。比如,當發生突然斷電,主機可以啟動GPF以確保未完成的數據被寫回持久介質中。
9.8.1 主機和交換機職責
所有支持CXL 2.0的主機和交換機都需要支持GPF。GPF流程包含兩個階段:GPF Phase 1和GPF Phase 2。在Phase 1,設備停止新的傳輸,寫回緩存;在Phase 2,持久性設備刷新本地的寫緩沖區里的數據到持久性域。在兩個階段之間,主機必須確保停止注入新的CXL.cache事務,并在進入Phase 2之前寫回到本地緩存。
9.8.2 設備職責
所有CXL 2.0及更高版本的設備都需要支持GPF,且應在其AGENT_INFO響應中設置CAPABILITY_VECTOR字段的第1個bit。
收到GPF Phase 1請求消息后,CXL設備應按指定順序執行以下步驟:
收到GPF Phase 2請求消息后,CXL設備應按指定順序執行以下步驟:
9.8.3 能量預算
通常有必要評估系統是否有足夠的能量在斷電情況下處理GPF。系統軟件可能會通過使用各種CXL DVSEC寄存器中的可用信息,和系統其余部分的信息來確定。
9.9 熱插拔
CXL 1.1主機和CXL 1.1設備不支持熱插拔。CXL 2.0根端口、CXL 2.0設備和CXL交換機需要支持Hot-Add和Hot-Remove。
支持熱插拔需要什么流程?需要看PCIe協議。
9.10 軟件枚舉
CXL 2.0設備呈現給主機軟件的是一個或多個PCIe Endpoint。CXL 1.1設備則呈現為RCiEP(Root Complex Integrated Endpoints)。CXL設備的發現遵循PCIe規范,但CXL 1.1層次結構和CXL 2.0虛擬層次結構之間存在一些差異。
9.11 CXL 1.1 層次
暫時略過。
9.12 CXL 2.0 枚舉
支持CXL 2.0的主機可以在系統軟件中表示為零個或多個CXL 2.0主機橋(Host Bridge),零個或多個CXL 1.1主機橋,零個或多個PCIe主機橋。主機橋是一種軟件概念,它表示根端口的集合。
9.12.1 CXL 2.0根端口(Root Port)
每個CXL 2.0主機橋與基本總線號(Base Bus Number)關聯,該總線號應包含一個或多個支持CXL 2.0的根端口。這些根端口顯示在PCIe配置空間中。根端口可以處于以下四種狀態之一:
- 1.斷開連接
- 2.連接到CXL 2.0設備/交換機
- 3.連接到CXL 1.1設備
- 4.連接到PCIe設備/交換機
9.12.2 CXL 2.0虛擬層次
在CXL 2.0模式下運行的根端口可以直接連接到CXL 2.0設備或CXL交換機。這些根端口形成CXL 2.0虛擬層次結構(Virtual Hierarchy,VH)。
9.12.3 枚舉支持CXL 2.0的下游端口
軟件可以使用下游端口配置空間中的Link Status寄存器和CXL DVSEC ID 7結構的組合來確定具有CXL 2.0功能的下游端口處于哪個狀態。
其它內容暫時略。
9.13 HDM的軟件視圖
HDM作為正常存儲呈現給OS/VMM,但是與主機內存相比,HDM可能具有不同的性能/延遲屬性。因此,具有CXL.mem設備的系統可以被視為異構存儲器系統。ACPI HMAT表是為此類系統引入的,可以報告不同內存范圍的延遲和帶寬特性。
9.13.1 內存交織
內存交織允許以統一的間隔將連續的內存地址映射到不同的CXL設備。
9.13.2 CXL內存設備標簽存儲區
暫時略過。
9.14 CXL OS固件接口擴展
9.14.1 CXL Early Discovery Table (CEDT)
CXL早期發現表(CXL Early Discovery Table)使操作系統能夠在啟動期間的早期,即在分析ACPI命名空間之前,找到CXL主機橋和主機橋寄存器的位置。此表中的信息可由早期啟動代碼用于執行CXL主機的預初始化,例如配置CXLcache和CXLmem。
9.14.2 CXL_OSC
暫時略過
9.15 CXL設備可操作性模型(Manageability Model)
可管理性是被管理實體向管理實體公開的一組功能。CXL設備是被管理實體。這些能力通常分為sensor和effector。性能計數器是sensor的一個示例,而更新設備固件的能力是effector的一個示例。Sensor和effector可以在帶內(即通過駐留OS/VMM的軟件)訪問,也可以在帶外(即通過運行在獨立于OS的管理控制器上的固件)訪問。
帶內軟件可以通過發出PCIe配置讀/寫或MMIO讀/寫事務來訪問CXL設備的可管理性功能。S0狀態下的帶外可管理性可以在PCI Express基礎架構上利用MCTP。
-
控制器
+關注
關注
112文章
16451瀏覽量
179489 -
寄存器
+關注
關注
31文章
5363瀏覽量
121200 -
交換機
+關注
關注
21文章
2657瀏覽量
100188 -
PCIe
+關注
關注
15文章
1262瀏覽量
83202 -
HDM
+關注
關注
0文章
9瀏覽量
10524 -
PCIe接口
+關注
關注
0文章
121瀏覽量
9790
發布評論請先 登錄
相關推薦
評論