UCIE中的Adapter是什么?
掃描二維碼
隨時(shí)隨地手機(jī)看文章
UCIE協(xié)議主要包括protocol層,Adapter層和PHY層。Protocol層復(fù)用CXL,PCIE或自定義的stream流格式。
Adapter層主要負(fù)責(zé):
數(shù)據(jù)的可靠傳輸。實(shí)現(xiàn)retry,CRC校驗(yàn),奇偶校驗(yàn)等功能。 多路傳輸仲裁和復(fù)用。D2D adapter支持多路數(shù)據(jù)共用物理層傳輸,Adapter層實(shí)現(xiàn)對(duì)數(shù)據(jù)源的仲裁和選擇。 物理層鏈路狀態(tài)管理。 傳輸協(xié)議和參數(shù)協(xié)商。
protocol和Adapter之間基于flit的FDI接口,即flit aware D2D interface。Adapter和PHY之間基于RDI接口,Raw D2D interface。功能示意如下:

協(xié)議棧復(fù)用
D2D支持多個(gè)protocol復(fù)用同一個(gè)Adapter進(jìn)行傳輸,由參數(shù)Multi_Protocaol_Enable和Enhanced Multi_Protocol_Enable決定。
D2D支持同一個(gè)protocol的多路數(shù)據(jù)流傳輸,Adapter需要支持對(duì)數(shù)據(jù)流的Arb和Mux。

同時(shí)D2D支持多個(gè)protocol的復(fù)用傳輸,Adapter需要支持對(duì)protocol間的Stack Mux。

Multi_Protocol_Enable和Enhanced Multi_Protocol_Enable的特性如下:
Multi_Protocol_Enable
支持兩個(gè)協(xié)議棧在同一物理鏈路上復(fù)用,每個(gè)協(xié)議棧各占用一半帶寬。 兩個(gè)協(xié)議棧必須是同一協(xié)議且具有相同的協(xié)議能力。 Adapter必須保證不會(huì)連續(xù)發(fā)送來(lái)自同一協(xié)議棧的flit。 Adapter可以插入NOP flit以保證不發(fā)送連續(xù)flit,這些flit不會(huì)轉(zhuǎn)發(fā)到接收方的協(xié)議層。 接收協(xié)議層必須能夠以最大鏈路速度接收相同flit的連續(xù)塊,但不會(huì)接收連續(xù)的flit。 兩個(gè)協(xié)議棧必須使用相同的協(xié)議和flit格式。 每個(gè)協(xié)議棧有棧標(biāo)識(shí)符,用于在接收方對(duì)flit進(jìn)行解復(fù)用。 Enhanced Multi_Protocol_Enable:
支持相同或不同協(xié)議的兩個(gè)棧在同一物理鏈路上動(dòng)態(tài)復(fù)用。 協(xié)議棧和Adapter必須支持共同的flit格式以啟用此功能。 Adapter必須確定每個(gè)協(xié)議層的接收器可以接受的最大帶寬百分比。 Adapter需要支持100%帶寬(不限速)和限速至最大帶寬的50%。 如果Adapter指定一個(gè)協(xié)議棧最大帶寬的50%,則對(duì)端device必須保證不會(huì)連續(xù)發(fā)送相同棧的flit。 Adapter插入NOP flit以避免超過協(xié)商的最大帶寬。 接收協(xié)議層必須能夠在協(xié)商的最大帶寬百分比下接收f(shuō)lit,并且能夠在最大協(xié)商鏈路速度下接收相同flit的連續(xù)塊。 Adapter允許每個(gè)協(xié)議層獨(dú)立使用100%的鏈路帶寬。 仲裁是按flit進(jìn)行的,如果兩個(gè)協(xié)議層都被允許使用100%帶寬,Adapter需要支持輪詢仲裁。 允許使用特定的仲裁方案,前提是按flit進(jìn)行,且不違反協(xié)商的最大帶寬百分比。 flit頭包含棧標(biāo)識(shí)符以識(shí)別目標(biāo)棧。 棧復(fù)用器為每個(gè)協(xié)議棧維護(hù)獨(dú)立的鏈路狀態(tài)機(jī),鏈路狀態(tài)轉(zhuǎn)換相關(guān)的邊帶消息中包含特定的opcode,以識(shí)別對(duì)于的協(xié)議棧。
總的來(lái)說(shuō),無(wú)論哪種復(fù)用,均需要多個(gè)數(shù)據(jù)源或協(xié)議棧具有相同的flit格式,Adapter可利用NOP flit進(jìn)行各協(xié)議棧的帶寬調(diào)整。
Link初始化
D2D的初始化氛圍四個(gè)步驟:
Stage0: 每個(gè)Die單獨(dú)的初始化,如時(shí)鐘,復(fù)位初始化等。該步驟兩個(gè)Die獨(dú)立進(jìn)行,互不影響,結(jié)束時(shí)間也不同。
Stage1:Sideband初始化。
Stage2:Mainband training和repair。training參數(shù)的協(xié)商依賴Stage1中Sideband正常工作。
Stage3:協(xié)議棧參數(shù),F(xiàn)lit格式協(xié)商。
Stage1和Stage2后續(xù)介紹,先介紹Stage3的參數(shù)協(xié)商內(nèi)容。
Adapter初始化
在link的Stage0~2結(jié)束后,RDI正常work,Adapter需要一系列sequence來(lái)確定local capabilities以及和對(duì)端的參數(shù)協(xié)商。主要包含三部分:
確定local Capabilities remote link 參數(shù)協(xié)商 FDI bring up
local Capabilities
此部分需要確定如下幾點(diǎn):
PHY traning結(jié)果確定。
是否支持retry機(jī)制,Adapter需要判斷在給定的鏈路速度和配置下是支持retry。
retry協(xié)商,如果Adapter支持retry,必須在參數(shù)交換過程中通知remote link partner。
Retimer Receiver buffer的credit大小,每個(gè)credit對(duì)應(yīng)256字節(jié)的mainband數(shù)據(jù)。
Parameter Exchange
Adapter和remote partner協(xié)商參數(shù),均使用sideband的{AdvCap.Adapter}消息。在初始化需要協(xié)商的AdvCap.Adapter參數(shù)主要如下:
Raw Format。UCIe link控制寄存器中的位域,用于指示是否支持Raw Format格式傳輸。
68B Flit Mode。協(xié)議控制參數(shù),用于指示是否支持CXL 68B Flit Mode,或者PCIe Non-Flit Mode.
CXL 256B Flit Mode。協(xié)議控制參數(shù),用于指示是否支持CXL 256B Flit Mode。
PCIe Flit Mode。協(xié)議控制參數(shù),用于指示協(xié)議層是否支持PCIe Flit Mode。
Streaming。協(xié)議控制參數(shù),指示是否支持Streaming Raw Format,Streaming Flit Format。與CXL和PCIe protocol互斥。
Retry。指示Adapter是否支持retry機(jī)制。
Multi_Protocol_Enable。Adapter連接多個(gè)FDI的協(xié)議層時(shí),需要使能該bit,同時(shí)Stack0_Enable和Stack1_Enable需要使能。
CXL_LatOpt_Fmt5,CXL_LatOpt_Fmt5。是否支持Format5/6的傳輸格式。僅在CXL協(xié)議和CXL 256B Flit模式下可以使用。
Retimer。在Retimer和同一個(gè)package內(nèi)的Adapter進(jìn)行參數(shù)協(xié)商時(shí),需要使能該bit。
Retimer_Credits。僅在Retimer參數(shù)使能時(shí)開啟,9bit位寬,用于指示retimer的receiver buffer的大小,每個(gè)credit表示一個(gè)256B數(shù)據(jù)大小。
DP/UP。上游或下游端口標(biāo)記,用于通知retimer當(dāng)前l(fā)ink的端口類型,目前適用于PCIe和CXL協(xié)議層。
68B Flit Format。使能68B Flit Format。
Enhanced Multi_Protocol_Enable
Standard 256B End Header Flit Format
Standard 256B Start Header Flit Format
Latency-Optimized 256B without Optional Bytes Flit Format
Latency-Optimized 256B with Optional Bytes Flit Format
Stack 0 Maximum Bandwidth_Limit。使能Enhanced Multi_Protocol_Enable時(shí),stack0的最大利用帶寬。
Stack 1 Maximum Bandwidth_Limit。使能Enhanced Multi_Protocol_Enable時(shí),stack1的最大利用帶寬。
PCIE/CXL協(xié)議參數(shù)協(xié)商
Adapter的local Capabilities確定后,需要通過邊帶消息與remote link partner協(xié)商和確定協(xié)議參數(shù)。
Capabilities inform:DP Adapter發(fā)送{AdvCap.Adapter}邊帶消息,向UP Adapter通知其支持的Capabilities。
PCIe/CXL protocol Support:如果UP Adapter要支持PCIe或CXL協(xié)議,則需要先等待DP Adapter的第一個(gè){AdvCap.Adapter}消息,確定DP Adapter的Capabilities,然后向DP Adapter發(fā)送自己的{AdvCap.Adapter}邊帶消息。UP可以根據(jù)DP的Capabilities更改其Capabilities。
configuration response:一旦DP收到UP的Capabilities消息,DP使用{FinCap.Adapter}邊帶消息響應(yīng)UP的配置,如圖3-4所示。
協(xié)議參數(shù)確定:
如果兩個(gè)Adapter都使能了“68B Flit Mode”,則在{FinCap.Adapter}消息中設(shè)置為1b。 如果兩個(gè)Adapter都使能了“CXL 256B Flit Mode”,則在{FinCap.Adapter}消息中設(shè)置為1b。 如果兩個(gè)Adapter都使能了“PCIe Flit Mode”,則在{FinCap.Adapter}消息中將“PCIe Flit Mode”位設(shè)置為1b。 如果協(xié)商了Stream流傳輸協(xié)議,則不交換該棧的{FinCap.Adapter}消息,即DP不再向UP發(fā)送{FinCap.Adapter}邊帶消息。

68B/256B Flit Mode參數(shù)協(xié)商
如果{FinCap.Adapter}消息中設(shè)置了“68B Flit Mode”或“CXL 256B Flit Mode”,則需要使用{AdvCap.CXL}和{FinCap.CXL}消息進(jìn)行新一輪參數(shù)協(xié)商,如圖所示。
其他參數(shù)的最終確定(如果協(xié)商了PCIe或CXL協(xié)議):
如果兩個(gè)Adapter都使能了“Raw Format”,則在{FinCap.Adapter}消息中設(shè)置為1b。 如果兩個(gè)Adapter都使能了“Retry”且未協(xié)商“Raw Format”,則啟用Adapter Retry,并將“Retry”設(shè)置為{FinCap.Adapter}消息中的1b。 如果兩個(gè)Adapter都使能了“Enhanced Multi_Protocol_Enable”,則在適配器中啟用Stack0和Stack1,并將所有三個(gè)參數(shù)(“Enhanced Multi_Protocol_Enable”,“Stack0_Enable”和“Stack1_Enable”)設(shè)置為{FinCap.Adapter}消息中的1b(如果需要發(fā)送{FinCap.Adapter}消息)。 如果兩個(gè)Adapter都使能了“Multi_Protocol_Enable”且未協(xié)商“Enhanced Multi_Protocol_Enable”,則在適配器中啟用Stack0和Stack1,并將所有三個(gè)參數(shù)(“Multi_Protocol_Enable”,“Stack0_Enable”和“Stack1_Enable”)設(shè)置為{FinCap.Adapter}消息中的1b。 如果未協(xié)商“Enhanced Multi_Protocol_Enable”或“Multi_Protocol_Enable”,則使用e lowest common denominator 來(lái)確定啟用Stack0還是Stack1,相應(yīng)位在{FinCap.Adapter}消息中設(shè)置為1b。如果都通告了棧啟用,則選擇Stack0作為操作模式,并將Stack0_Enable設(shè)置為{FinCap.Adapter}消息中的1b。 如果兩個(gè)Adapter都使能了CXL_LatOpt_Fmt5,則在{FinCap.Adapter}消息中設(shè)置為1b。 如果兩個(gè)Adapter都使能了CXL_LatOpt_Fmt6,則在{FinCap.Adapter}消息中設(shè)置為1b。

多協(xié)議棧參數(shù)協(xié)商
如果協(xié)商了Stream protocol傳輸,則不區(qū)分DP(下游端口)和UP(上游端口),每一方獨(dú)立地發(fā)送自己的Capabilities消息。同時(shí)允許交換廠商定義的邊帶消息,以實(shí)現(xiàn)相應(yīng)廠商的特定擴(kuò)展。
最終配置的Capabilities由link雙方共同確定。對(duì)于Stream protocol傳輸,不發(fā)送{FinCap.*}消息。適配器必須以特定實(shí)現(xiàn)的方式確定廠商特定的要求。圖3-6至圖3-11展示了棧0和棧1具有不同協(xié)議的不同場(chǎng)景示例。






在參數(shù)協(xié)商中,需要超時(shí)機(jī)制來(lái)保證參數(shù)交換的過程正常進(jìn)行:
超時(shí)時(shí)間:Adapter必須實(shí)現(xiàn)參數(shù)交換的8毫秒(-0%/+50%)的超時(shí)時(shí)間機(jī)制。
超時(shí)測(cè)量:參數(shù)交換完成的超時(shí)測(cè)量包括鏈路初始化第三階段的第一部分和第二部分的所有步驟,即local Capabilities和remote Capabilities協(xié)商。
超時(shí)計(jì)時(shí)器:計(jì)時(shí)器只在RDI處于active狀態(tài)時(shí)工作。
重置計(jì)時(shí)器:如果適配器收到來(lái)自remote link partner的{AdvCap..Stall}、{FinCap..Stall}、{MultiProtAdvCap..Stall}或{MultiProtFinCap..Stall}消息,計(jì)時(shí)器必須重置。
超時(shí)處理:參數(shù)交換或鏈路狀態(tài)機(jī)轉(zhuǎn)換的8毫秒超時(shí)被視為不可用錯(cuò)誤(UUE),Adapter必須將RDI置于LinkError狀態(tài)。
UCIe重定時(shí)器:UCIe重定時(shí)器必須確保在與其包內(nèi)的UCIe die響應(yīng)/啟動(dòng)參數(shù)交換之前,與remote重定時(shí)器partner解決能力通告問題(并與自己的能力合并)。
解決過程中的通信:在解決過程中,重定時(shí)器必須每隔4毫秒發(fā)送相應(yīng)的暫停消息,以確保在其包內(nèi)的UCIe die上不會(huì)產(chǎn)生超時(shí)。
FDI bring up
參數(shù)交換完成后,Adapter將結(jié)果反映到FDI上的協(xié)議層,并按照后續(xù)定義的流程執(zhí)行FDI啟動(dòng)。一旦FDI處于Active狀態(tài),它就完成了鏈路初始化的第三階段,并且可以開始協(xié)議flit傳輸。
當(dāng)同一Adapter上啟用了多個(gè)棧時(shí),每個(gè)??赡茉诓煌瑫r(shí)間完成FDI啟動(dòng)流程。FDI的數(shù)據(jù)寬度取決于UCIe棧的操作頻率以及通過UCIe物理鏈路傳輸?shù)目値?。RDI的數(shù)據(jù)寬度固定為至少每個(gè)物理通道每個(gè)模塊一個(gè)字節(jié),該模塊由適配器控制。
State Machine Hierarchy
UCIe采用分層方法管理鏈路狀態(tài),可以在不同層之間實(shí)現(xiàn)功能劃分,并在FDI和RDI上使用相同的狀態(tài)轉(zhuǎn)換序列。
對(duì)于CXL,ARB/MUX的vLSM(虛擬低層狀態(tài)機(jī))體現(xiàn)在FDI的pl_state_sts。Adapter LSM用于協(xié)調(diào)與remote link partner的鏈路狀態(tài),適用于所有配置。每個(gè)協(xié)議棧都有其對(duì)應(yīng)的適配器狀態(tài)機(jī)。對(duì)于PCIe或Stream protocol傳輸,Adapter LSM體現(xiàn)在FDI的pl_state_sts。
RDI狀態(tài)機(jī)表征物理層的狀態(tài)。Adapter的數(shù)據(jù)路徑和RDI數(shù)據(jù)寬度可以擴(kuò)展到多模塊配置,但僅有一個(gè)RDI狀態(tài)機(jī)。多模塊的PHY在RDI狀態(tài)和各個(gè)模塊之間進(jìn)行同步。
vLSM狀態(tài)轉(zhuǎn)換使用mainband數(shù)據(jù)路徑上的ALMPs(鏈路管理協(xié)議)與remote link partner同步。狀態(tài)轉(zhuǎn)換規(guī)則遵循CXL規(guī)范中的CXL 256B Flit Mode規(guī)則。
Adapter LSM狀態(tài)轉(zhuǎn)換使用{LinkMgmt.Adapter*}sideband消息與remote link partner同步,這些消息由D2D適配器發(fā)起和接收。
RDI SM狀態(tài)轉(zhuǎn)換使用{LinkMgmt.RDI*}sideband消息與remote link partner同步,這些消息由物理層發(fā)起和接收。

分層的狀態(tài)管理包含如下幾個(gè)主要信息:
Active State轉(zhuǎn)換:RDI狀態(tài)機(jī)(RDI SM)必須先進(jìn)入活A(yù)ctive狀態(tài),之后Adapter狀態(tài)機(jī)(Adapter LSM)才能開始協(xié)商過渡到Active狀態(tài)。Adapter LSM必須處于活躍狀態(tài),虛擬低層狀態(tài)機(jī)(vLSMs)才能開始協(xié)商過渡到Active狀態(tài)。即Active狀態(tài)是自下而上逐層轉(zhuǎn)換。
Retrain State轉(zhuǎn)換:RDI SM必須先進(jìn)入重新訓(xùn)練(Retrain)狀態(tài),然后才能將重新訓(xùn)練狀態(tài)傳播到Adapter LSMs。如果RDI SM處于Retrain狀態(tài),必須將Retrain狀態(tài)傳播到所有處于Active狀態(tài)的Adapter LSMs。在所有相關(guān)的Adapter LSMs都已過渡到Retrain狀態(tài)之前,Adapter不得請(qǐng)求RDI退出Retrain狀態(tài)。Retrain狀態(tài)是自下而上逐層轉(zhuǎn)換。
電源管理狀態(tài)轉(zhuǎn)換:對(duì)于CXL協(xié)議,CXL.io和CXL.cachemem vLSMs必須在相應(yīng)的Adapter LSM過渡到電源管理(PM)狀態(tài)之前先過渡到PM狀態(tài)。如果同一個(gè)Adapter上啟用了多個(gè)棧,則所有Adapter LSMs在RDI SM過渡到PM狀態(tài)之前必須處于PM狀態(tài)。PM狀態(tài)則是自上而下逐層轉(zhuǎn)換。
鏈路錯(cuò)誤狀態(tài)轉(zhuǎn)換:RDI SM必須先進(jìn)入鏈路錯(cuò)誤(LinkError)狀態(tài),之后Adapter LSM才能過渡到LinkError狀態(tài)。RDI SMs使用邊帶消息與remote link partner協(xié)商LinkError狀態(tài)轉(zhuǎn)換,并將LinkError狀態(tài)傳播到所有已啟用的Adapter LSMs。如果使用CXL協(xié)議,Adapter LSM在將LinkError狀態(tài)傳播到兩個(gè)vLSMs之前必須處于LinkError狀態(tài)。LinkError狀態(tài)轉(zhuǎn)換優(yōu)先于LinkReset或Disabled狀態(tài)轉(zhuǎn)換。在所有相關(guān)的Adapter LSMs和CXL vLSMs都已過渡到LinkError狀態(tài)之前,Adapter不得請(qǐng)求RDI退出LinkError狀態(tài)。LinkError狀態(tài)是自下而上逐層轉(zhuǎn)換。
鏈路重置或禁用狀態(tài)轉(zhuǎn)換:Adapter LSM使用邊帶消息與其remote link partner協(xié)商LinkReset或Disabled狀態(tài)轉(zhuǎn)換。只有當(dāng)所有相關(guān)的Adapter LSMs都已過渡到LinkReset或Disabled狀態(tài)時(shí),LinkReset或Disabled才會(huì)傳播到RDI SM。Disabled狀態(tài)轉(zhuǎn)換優(yōu)先于LinkReset狀態(tài)轉(zhuǎn)換。如果RDI SM轉(zhuǎn)換到LinkReset或Disabled狀態(tài),它必須將此狀態(tài)傳播到所有Adapter LSMs。如果Adapter LSM轉(zhuǎn)換到LinkReset或Disabled狀態(tài),它必須將其傳播到CXL協(xié)議的兩個(gè)vLSMs。該過程種的狀態(tài)則是自上而下逐層轉(zhuǎn)換。
UCIe Retimer:對(duì)于UCIe Retimer,Retimer芯片需要與remote Retimer partner協(xié)商狀態(tài)轉(zhuǎn)換,并確保不同的UCIe芯片保持同步,避免在等待響應(yīng)時(shí)發(fā)生超時(shí)。例如,如果UCIe芯片0向UCIe Retimer0發(fā)送Active請(qǐng)求消息,UCIe Retimer0必須與UCIe Retimer1確認(rèn)Active請(qǐng)求消息已轉(zhuǎn)發(fā)給UCIe芯片1,并且UCIe芯片1已用Active狀態(tài)消息響應(yīng),然后才能用Active狀態(tài)消息響應(yīng)UCIe芯片0。在UCIe芯片0和UCIe芯片1的所有相關(guān)狀態(tài)都達(dá)到低功耗狀態(tài)之前,不能使封裝外互連進(jìn)入低功耗狀態(tài)。UCIe Retimer在完成與遠(yuǎn)程Retimer伙伴的協(xié)商時(shí),必須每4ms響應(yīng)一次“暫?!本幋a。
Power Management Link States
PCIe和CXL協(xié)議必須支持電源管理狀態(tài)。FDI支持L1和L2電源狀態(tài),遵循CXL 256B Flit Mode的握手規(guī)則和狀態(tài)轉(zhuǎn)換。RDI支持在接口上實(shí)現(xiàn)L1和L2,以便物理層執(zhí)行電源管理優(yōu)化,但物理層可以將L1和L2映射到內(nèi)部的共同狀態(tài)。
電源管理狀態(tài)允許全局時(shí)鐘門控,并啟用系統(tǒng)級(jí)流程,如封裝級(jí)空閑(C-states)。其他協(xié)議可以通過發(fā)送PMNAK來(lái)禁用PM流程。
進(jìn)入電源管理狀態(tài):
協(xié)議層PM進(jìn)入請(qǐng)求:FDI定義了一個(gè)基于鏈路空閑時(shí)間的PM進(jìn)入請(qǐng)求的通用流程。所有使用UCIe的協(xié)議在需要支持PM時(shí)必須遵循該流程。 Adapter鏈路狀態(tài)機(jī)PM進(jìn)入:通過邊帶與remote link partner協(xié)調(diào)PM轉(zhuǎn)換。Adapter在兩個(gè)協(xié)議棧之間復(fù)用時(shí),每個(gè)棧的鏈路狀態(tài)機(jī)必須獨(dú)立轉(zhuǎn)換到PM。 RDI上的PM進(jìn)入:一旦Adapter的所有LSM處于PM狀態(tài),Adapter可以在RDI上啟動(dòng)PM。

退出電源管理:
協(xié)議層的活動(dòng)請(qǐng)求通過FDI和RDI傳輸?shù)奖镜匚锢韺印?/section> 物理層使用邊帶協(xié)調(diào)喚醒和物理鏈路的重新訓(xùn)練。 物理鏈路重新訓(xùn)練后,RDI在雙方處于Active狀態(tài),并從雙方觸發(fā)Adapter LSM PM退出。 對(duì)于PCIe或Stream傳輸協(xié)議場(chǎng)景,這也將協(xié)議層轉(zhuǎn)換為FDI上的活躍狀態(tài)。 對(duì)于CXL協(xié)議,此步驟后是ALMP交換,將所需協(xié)議帶入活躍狀態(tài),然后可以開始協(xié)議Flit傳輸。
Retry Rules
原始比特錯(cuò)誤率(BER)高于1e-27,除非操作格式為Raw Format,否則Adapter必須支持Retry。如果Adapter不支持Retry,物理層在鏈路訓(xùn)練期間BER不得高于1e-27。
在鏈路初始化的階段協(xié)商了Retry,即使在運(yùn)行時(shí)鏈路速度降低,也不能禁用Retry。Retry只能在下一次鏈路初始化時(shí)重新協(xié)商(即,RDI移動(dòng)到Reset狀態(tài))。
對(duì)于多個(gè)協(xié)議棧的Adapter,Tx Retry緩沖區(qū)在棧之間共享。
UCIe中的Retry方案是PCIe基礎(chǔ)規(guī)范中定義的Flit模式Retry機(jī)制的簡(jiǎn)化版本。其中一些規(guī)則不適用,并進(jìn)行了相應(yīng)的參數(shù)變更:
選擇性Nak及其相關(guān)規(guī)則不適用,且不得實(shí)現(xiàn)。 在鏈路操作期間,除非與PCIe Retry規(guī)則沖突,顯式序列號(hào)flit和Ack/Nak flit交替發(fā)送,這允許更快的Ack轉(zhuǎn)換,從而可以使用更小的重試緩沖區(qū)。 所有10位Retry相關(guān)計(jì)數(shù)器被替換為8位計(jì)數(shù)器,最大允許序列號(hào)為255。 REPLAY_TIMEOUT_FLIT_COUNT是一個(gè)9位計(jì)數(shù)器,在1FF處飽和。 除了在PCIe基礎(chǔ)規(guī)范中描述的增加REPLAY_TIMEOUT_FLIT_COUNT外,當(dāng)處于Active狀態(tài)且自上次發(fā)送flit后,已經(jīng)過去一個(gè)flit時(shí)間,且既沒有傳輸有效載荷flit也沒有傳輸NOP flit時(shí),也必須增加計(jì)數(shù)。 NAK_WITHDRAWAL_ALLOWED始終設(shè)置為0b。 IDLE Flit握手階段不適用,因?yàn)橥ㄟ^邊帶握手管理到鏈路活躍的轉(zhuǎn)換,并且沒有交換IDLE flit的要求。
Runtime Link Testing using Parity
UCIe支持在運(yùn)行時(shí)通過定期在數(shù)據(jù)流中注入校驗(yàn)字節(jié)來(lái)檢測(cè)鏈路健康狀況的機(jī)制。當(dāng)啟用此機(jī)制時(shí),Adapter會(huì)在數(shù)據(jù)流中間定期注入校驗(yàn)字節(jié),接收方會(huì)檢查并記錄插入校驗(yàn)字節(jié)的校驗(yàn)錯(cuò)誤。
Adapter每256256N字節(jié)數(shù)據(jù)插入64*N字節(jié),其中N由錯(cuò)誤和鏈路測(cè)試控制寄存器決定。只有插入字節(jié)的第0位包含校驗(yàn)信息,其余7位保留。

Adapter的發(fā)送器和接收器必須跟蹤經(jīng)過的數(shù)據(jù)字節(jié)數(shù),以計(jì)算或檢查校驗(yàn)信息。
如果RDI不再處于Active狀態(tài),數(shù)據(jù)計(jì)數(shù)和校驗(yàn)將被重置,雙方必須在下次從重新訓(xùn)練進(jìn)入Active狀態(tài)之前協(xié)商啟用校驗(yàn)注入。
軟件通過向UCIe鏈路上的兩個(gè)Adapter中的寄存器寫入1b來(lái)啟用此機(jī)制,并在寫入后觸發(fā)UCIe鏈路重新訓(xùn)練。
Adapter在重新訓(xùn)練期間交換邊帶消息,以確保remote link partner的接收器準(zhǔn)備好接收數(shù)據(jù)流中的額外校驗(yàn)字節(jié)。
Adapter發(fā)送{ParityFeature.Req}邊帶消息給remote link partner,remote Adapter接收器已啟用并準(zhǔn)備好接受校驗(yàn)字節(jié),則響應(yīng){ParityFeature.Ack}邊帶消息。
如果Adapter未準(zhǔn)備好接受校驗(yàn)字節(jié),或該特性尚未使能,則響應(yīng){ParityFeature.Nak}。
Adapter允許在啟用校驗(yàn)特性時(shí)轉(zhuǎn)換到更高延遲的數(shù)據(jù)路徑。
Retimer接收器不得將校驗(yàn)字節(jié)寫入其接收器緩沖區(qū),或?qū)⑵滢D(zhuǎn)發(fā)給遠(yuǎn)程重定時(shí)器伙伴。
如果芯片檢測(cè)到校驗(yàn)錯(cuò)誤,該錯(cuò)誤被視為可糾正錯(cuò)誤。





