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