ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

从0开始学PCIE 6.3 - Transaction Layer_6

从0开始学PCIE 6.3 - Transaction Layer_6 2.2.8 message请求规则本文档定义了如下几类报文INTx中断信令电源管理错误信令锁定事务支持插槽功耗上限支持厂商自定义报文延迟容忍度上报LTR报文优化缓冲区刷新/填充OBFF报文设备就绪状态DRS报文功能就绪状态FRS报文层级ID报文精确时间测量PTM报文完整性与数据加密IDE报文下述规则适用于所有报文请求每类报文还有对应的附加专用规则。除通用头部字段之外参见图2‑49、图2‑50所有报文请求都必须包含下列字段请求者IDRequester ID[15:0]报文编码Message Code[7:0]指明该请求承载的具体报文类型EP位仅针对带数据载荷的报文标记数据载荷被污染参见2.7节对于不带载荷的报文该位为保留位。所有报文请求TLP类型必须为Msg无载荷报文或MsgD带载荷报文。必须完整解码报文编码字段禁止报文别名复用。除非明确标注为保留位Attr[2]字段不做保留。除非另有说明Attr[1:0]字段为保留位。除非另有说明TH字段不适用于报文请求该比特为保留位。除Flit模式下“按地址路由报文”以外AT[1:0]必须固定为00b接收端不强制、也不建议校验该字段。字节8~15除非有专门定义一律为保留。在Flit模式与非Flit模式互相转换翻译时无论报文编码是什么字节8‑15必须原样拷贝不得修改。在Flit模式与非Flit模式互相转换翻译时字节6的比特6‑0必须原样拷贝不受报文编码影响。报文请求属于Posted已投递事务不需要完成包Completion。报文请求排序规则与存储器写请求完全相同。很多报文含厂商自定义报文可以在非D0电源状态下使用。强烈建议桥端口的桥功能处于D1/D2/D3hot状态时对报文的处理逻辑与D0状态保持一致。同时建议Type0设备在非D0状态也支持收发报文。图2‑49报文请求头部 — 非Flit模式字段排布DW0Fmt、Type、T9、TC、T8、A2、R、TH、TD、EP、Attr、AT、Length DW1Requester ID保留位Message Code DW2‑3字节8‑15默认保留图2‑50报文请求头部 — Flit模式DW0Type、TC、OHC、TS、Attr、Length DW1Requester ID、EP、保留位、Message Code DW2‑3字节8‑15默认保留除地址路由、ID路由外报文还支持多种隐式路由报文头部不带目的地址/目的ID路由类型本身就隐含了目标接收方。报文路由机制遵循下面规则路由模式由Type字段内子字段r[2:0]决定。r[2:0]的取值定义见表2‑20报文路由表。每种报文允许使用的路由值在对应小节规定。表2‑20 报文路由r[2:0]二进制说明字节8‑15000路由到根复合体RC保留001按地址路由Flit模式下携带AT地址/AT010按ID路由参见2.2.4.2节011根复合体广播下发保留100本地报文在接收端终结不再转发保留101汇聚后送往根复合体RC保留110‑111保留报文在接收端终结保留Flit模式下使用按ID路由时若目的段ID不等于请求源段ID必须携带OHC‑A4扩展头部在字节0中填入目的段号同时置位DSV比特若目的段与请求源段相同DSV可以置1。当不使用按ID路由时DSV必须清0。DSV为0时目的段号字段必须写00h。 对于需要PASID/ER/PMR的“路由到RC”报文必须携带OHC‑A1。2.2.8.1 INTx中断信令 — 规则报文信号中断MSI/MSI‑X是PCIe优先使用的中断机制参见6.1章节。但部分设备功能单元不支持MSI/MSI‑X或者固件/软件没有开启MSI/MSI‑X此时可以使用INTx虚拟线中断。交换机必须支持转发该类中断。INTx中断信令规则如下INTx机制一共定义8条独立报文见表2‑21。Assert_INTx/Deassert_INTx报文不带数据载荷TLP类型为Msg。Length字段为保留位。Assert_INTx/Deassert_INTx报文头部请求者ID内的功能号必须等于0注意ARI与非ARI设备请求者ID中功能号位宽不一样。Assert_INTx/Deassert_INTx报文只允许由上游端口发出。接收端可以选择校验这条规则如果校验发现违规该TLP判定为畸形TLP。该错误会上报接收端口参见6.2节。Assert_INTx/Deassert_INTx中断报文必须使用默认流量等级TC0。接收端必须校验违规报文按畸形TLP处理。该错误会上报接收端口参见6.2节。表2‑21 INTx机制报文名称Code[7:0]路由r[2:0]支持(RC/Ep/Sw/Br)描述Assert_INTA0010 0000100All r/tr置位INTA虚拟信号线用于兼容传统PCI的INTx模拟Assert_INTB0010 0001100All r/tr置位INTB虚拟信号线Assert_INTC0010 0010100All r/tr置位INTC虚拟信号线Assert_INTD0010 0011100All r/tr置位INTD虚拟信号线Deassert_INTA0010 0100100All r/tr撤销INTA虚拟信号线Deassert_INTB0010 0101100All r/tr撤销INTB虚拟信号线Deassert_INTC0010 0110100All r/tr撤销INTC虚拟信号线Deassert_INTD0010 0111100All r/tr撤销INTD虚拟信号线缩写说明RC根复合体Ep端点Sw交换机BrPCIe转PCI‑X桥r作为接收方支持t作为发送方支持tr收发都支持。Assert_INTx/Deassert_INTx报文对模拟传统PCI的A/B/C/D四路虚拟中断信号线。工作规则链路两端器件都要维护四路虚拟信号线逻辑状态Assert代表“置有效”Deassert代表“置无效”。Assert_INTx对应INTx虚拟信号线变为有效。Deassert_INTx对应INTx虚拟信号线变为无效。上游端口本地虚拟信号线状态发生改变时必须向链路对侧下游端口发送对应的Assert/Deassert报文同步状态。备注收到重复Assert/Deassert报文不会改变状态不属于错误。当命令寄存器“中断禁止”比特置位见7.5.1.1.3INTx中断信令整体关闭。如果此时还有处于有效状态的虚拟信号线必须发送对应的Deassert报文全部撤销。PCI‑PCI桥必须按照表2‑22完成次级侧虚拟信号线到主侧的重映射映射依据次级侧设备的设备号。交换机要为每一个下游端口独立维护四路虚拟信号线状态在上游端口侧将多路端口状态合并输出一组虚拟信号。如果交换机某个下游端口进入DL_Down状态该端口关联所有INTx虚拟信号线全部撤销同步更新交换机上游端口状态。如果最终造成上游侧某路INTx变为无效上游端口需要向外发出对应的Deassert_INTx报文。根复合体RC需要为每一路下游端口独立维护四路INTx虚拟信号线再把这些虚拟中断映射到系统中断资源。具体映射逻辑属于系统实现相关。如果RC的下游端口进入DL_Down状态该端口全部INTx虚拟信号线撤销同时释放对应的系统中断资源。表2‑22 INTx虚拟信号线桥接重映射表桥次级侧收到报文提取请求者IDRequesterID[7:3]设备号开启ARI转发时此处填0。桥次级侧报文ReqID[7:3]取值次级侧虚拟信号映射到桥主侧虚拟信号0,4,8,12,16,20,24,28INTA /INTB /INTC /INTDINTA /INTB /INTC /INTD1,5,9,13,17,21,25,29INTA /INTB /INTC /INTDINTB /INTC /INTD /INTA2,6,10,14,18,22,26,30INTA /INTB /INTC /INTDINTC /INTD /INTA /INTB3,7,11,15,19,23,27,31INTA /INTB /INTC /INTDINTD /INTA /INTB /INTC实现注释系统中断映射系统固件BIOS、操作系统软件必须理解整个拓扑下传统INTx中断的重映射规则包含多级交换机、PCIe‑PCI桥完成设备中断到系统中断控制器的关联。表2‑22的重映射会在每一级交换机上逐级生效PCIe‑PCI桥、PCI‑PCI桥也执行同类映射逻辑。实现注释ARI设备产生INTx虚拟线中断映射ARI设备隐含设备号固定为0。当上层下游端口开启ARI转发访问扩展功能时软件要知道下游端口会统一使用设备号0做INTx虚拟线映射。非感知ARI的软件读取传统设备号字段会得到非0值从而算出错误映射关系。2.2.8.2 电源管理报文电源管理报文用于实现PCIe电源管理详细见第5章。规则报文定义参见表2‑23。PM报文不带载荷TLP类型为Msg。Length字段保留。PM_Active_State_Nak报文请求者ID内功能号必须填写发送该报文的下游端口对应的功能编号为兼容旧版本规范也可以填000b。PME_TO_Ack报文请求者ID的功能号字段可以保留兼容旧版本时填写上游端口关联的其中一个功能编号。注意ARI与非ARI设备的功能号位宽不一样。电源管理报文强制TC0接收端校验违规判定畸形TLP上报接收端口错误。表2‑23电源管理报文名称Code[7:0]路由type[2:0]支持(RC/Ep/Sw/Br)说明PM_Active_State_Nak0001 0100100t / r / tr / r报文在接收端终结PM_PME0001 1000000r /‑ /tr /t由需要PME信号的组件向上游发送报文向上传播PME_Turn_Off0001 1001011t / r /‑ /r向下广播PME_TO_Ack0001 1011101r / t /特殊处理 /t上游端口发出参见5.3.3.2.1节交换机处理逻辑特殊2.2.8.3 错误信令报文错误信令报文用于上报事务相关错误也上报与具体事务无关的接口错误报文由检测到错误的组件发起。报文定义见表2‑24。错误信令报文无载荷TLPMsg。Length字段保留。请求者ID中的功能号指明是设备的哪一个功能上报错误。ARI与非ARI设备功能号位宽不同。错误报文强制TC0接收端校验违规按畸形TLP上报接收端口错误。表2‑24错误信令报文名称Code[7:0]路由type[2:0]支持(RC/Ep/Sw/Br)描述ERR_COR0011 0000000r / t / tr / t检测到可纠正错误时发送ERR_NONFATAL0011 0001000r / t / tr / t检测到非致命不可纠正错误ERR_FATAL0011 0011000r / t / tr / t检测到致命不可纠正错误报文头中的请求者ID标识报错源。根复合体RC将这些报文转换成平台系统级事件详见6.2节。ERR_COR报文头部带有ECS可纠正错误子类字段用来区分不同错误子类型图2‑51非Flit图2‑52 Flit模式ERR_NONFATAL与ERR_FATAL报文没有ECS字段。图2‑51 ERR_COR报文头部非Flit模式字节8开始存放ECS字段后续保留。 图2‑52 ERR_COR报文头部Flit模式同样字节8位置放ECS。表2‑25 ERR_COR子类ECS编码ECS编码含义说明00ECS_LEGACY不支持ECS能力的设备使用该值具备ECS能力的发起方禁止写该编码见7.5.3.301ECS_SIG_SFW上报DPC、SFI事件时ECS能力设备必须填此编码10ECS_SIG_OS上报AER、RP‑PIO事件时ECS能力设备填此编码11ECS_Extended预留未来扩展发送方禁止使用接收端内部按ECS_SIG_OS同等处理2.2.8.4 锁定事务支持Unlock报文用于支持锁定事务序列锁定事务细节参考6.5节。Unlock报文构造规则Unlock报文定义见表2‑26。Unlock报文不带载荷TLP类型Msg。Length字段保留。Unlock报文的请求者ID中功能号字段为保留。Unlock报文必须TC0接收端校验违规判定畸形TLP并上报接收端口错误。表2‑26 Unlock报文名称Code[7:0]路由type[2:0]支持说明Unlock0000 0000011t r tr r解锁完成报文2.2.8.5 插槽功耗上限支持该报文由RC/交换机的下游端口发送给同链路对侧组件端点、交换机、桥的上游端口传递插槽功耗限制参数。使用Set_Slot_Power_Limit报文见表2‑27。该报文携带1DW载荷TLP类型MsgD。强制TC0接收端校验违规判定畸形TLP上报接收端口。表2‑27 Set_Slot_Power_Limit报文名称Code[7:0]路由type[2:0]支持说明Set_Slot_Power_Limit0101 0000100t r tr r向上游端口设置插槽功耗上限载荷1DW格式说明 载荷拷贝来自发送方下游端口的“插槽能力寄存器”写入链路对侧上游端口“设备能力寄存器”。DW0字节1比特1‑0对应Slot Power Limit Scale缩放因子DW0字节0比特7‑0Slot Power Limit Value功耗限值DW0字节2的7‑0、字节3的7‑2发送端必须写0接收端忽略。报文自动发送触发条件RC/交换机下游端口自动发送对插槽能力寄存器做配置写操作同时数据链路层状态变为DL_Up链路状态由非DL_Up切到DL_Up并且插槽控制寄存器的Auto Slot Power Limit Disable位为0。如果插槽能力寄存器尚未初始化该发送动作可选不执行。接收该报文的上游组件需要把报文载荷拷贝到自身设备能力寄存器。实现特例板载集成设备不是外接适配器卡如果功耗低于对应外形规格定义最低插槽功耗硬件可以把捕获的插槽功耗上限相关字段硬编码写成全0不需要拷贝报文载荷。功耗限制控制机制更多细节参考6.9章节。2.2.8.6 厂商自定义消息Vendor‑Defined Messages厂商自定义消息用于扩展PCI Express的消息能力既可以作为PCIe通用能力扩展也可以实现厂商私有扩展。本节对这类消息的通用规则进行定义。厂商自定义消息见表2‑28采用图2‑53所示的消息头格式。请求者ID由实现定义。在Flit模式下请求者ID字段必须填写该请求者对应的ID值。如果使用按ID路由模式第8、9字节组成16位的目的ID字段其他情况下这两个字节为保留字段。第10、11字节构成16位厂商ID字段该ID由PCI‑SIG分配标识定义本条消息的厂商。第12~15字节可供厂商自定义使用。第6字节低7位可供厂商自定义第6字节的第7位在非Flit模式下为保留位在Flit模式下该位为EP位。表2‑28 厂商自定义消息名称Code[7:0]二进制路由type[2:0]二进制支持(RC/Ep/Sw/Br)说明/备注厂商自定义类型0Vendor‑Defined Type 00111 1110000,010,011,100见注释1若完成器未实现该消息会触发**不支持请求(UR)**检测。厂商自定义类型1Vendor‑Defined Type 10111 1111000,010,011,100见注释1若完成器未实现该消息完成器静默丢弃该报文不报错。注释1端点/根复合体/桥是否发送该消息由具体实现决定交换机收到此类消息当路由字段为000b、010b、011b时必须对消息做转发。图2‑53非Flit模式厂商自定义消息头 图2‑54Flit模式厂商自定义消息头两种厂商自定义消息都可以携带数据载荷无载荷TLP类型为Msg携带载荷则TLP类型为MsgD。对于两种厂商自定义消息Attr[1:0]、Attr[2]字段不是保留位。不同厂商、PCI‑SIG定义的消息依靠Vendor ID字段值区分。某一厂商定义消息的进一步细分格式不在本规范文档的讨论范围内。某厂商定义消息是否得到支持由芯片实现决定本规范不作强制。完成器收到未实现的厂商自定义Type1消息直接静默丢弃不属于错误事件。如果收到按ID路由的消息目标功能不存在是静默丢弃还是上报UR错误由实现自行选择。完成器收到未实现的厂商自定义Type0消息必须上报“不支持请求UR”错误错误上报规则见6.2节。《PCIe‑to‑PCI‑PCI‑X桥》规范对用于兼容PCI‑X设备ID消息的厂商自定义消息有额外约束限制Tag[7:0]、Length[9:0]以及消息头12‑15字节的用途。 仅在纯PCIe环境内部使用的厂商自定义消息不需要转发到PCIe‑to‑PCI‑X桥后方设备不受该附加规则约束细节参考桥接规范。 关于大Tag能力的相关考量参见2.2.6.2节。2.2.8.6.1 PCI‑SIG定义的VDM消息PCI‑SIG定义VDM消息属于厂商自定义Type‑1消息固定使用PCI‑SIG厂商ID0001h。作为Type1消息如果接收完成器没有实现该消息就会直接静默丢弃报文。除普通厂商自定义Type‑1消息规则外PCI‑SIG VDM报文还需要遵守如下规则报文头部格式如图2‑55非Flit、图2‑56Flit。请求者ID字段必须填写发送端请求者对应的ID。Message Code固定01111111b。Vendor ID固定为0001h该ID分配给PCI‑SIG组织。通过Subtype子类型字段区分不同PCI‑SIG标准VDM消息全部PCI‑SIG VDM列表见附录F。图2‑55非Flit模式PCI‑SIG定义VDM消息头 图2‑56Flit模式PCI‑SIG定义VDM消息头2.2.8.6.2 设备就绪状态消息DRS MessageDRSDevice Readiness Status设备就绪状态协议基于PCI‑SIG定义VDM机制实现。DRS消息是不带载荷的PCI‑SIG VDM厂商自定义Type1消息。除PCI‑SIG‑VDM通用规则外DRS报文强制满足报文格式定义参考表2‑29、图2‑57。TLP报文类型必须为Msg无数据载荷。TC[2:0]流量类别字段 000b。Attr[2:0]属性字段保留。Tag标签字段保留。Subtype子类型固定值08h。Message Routing消息路由字段100b本地终止报文终止于接收端口。接收端口可以可选做上述规则校验禁止校验保留比特位该校验是可选功能参考6.2.3.4。 如果开启校验发现TLP违反上述格式规则判定为畸形TLPMalformed TLP。开启校验时该错误会关联到接收端口上报详见第6.2节。表2‑29 DRS消息名称Code[7:0]二进制Routing type[2:0]RCEpSwBr说明/备注DRS Message0111 1111100rttr设备就绪状态消息图2‑57非Flit模式DRS消息报文头 图2‑58Flit模式DRS消息报文头2.2.8.6.3 功能就绪状态消息FRS MessageFRSFunction Readiness Status功能就绪状态协议同样使用PCI‑SIG定义VDM是不带载荷的Type‑1 VDM消息。除PCI‑SIG‑VDM通用规则外FRS报文强制规则报文格式参考表2‑30、图2‑59/2‑60。TLP类型必须为Msg无载荷。TC[2:0] 000b。Attr[2:0]字段保留。Tag字段保留。Subtype子类型固定值09h。FRS Reason[3:0]字段说明产生本FRS消息的触发原因0001b收到DRS消息。下游端口收到DRS消息且链路控制寄存器的DRS信号控制位配置为“DRS转FRS使能”。0010b完成D3热状态到D0状态的状态迁移。功能已经完成上电进入可配置状态最终是D0_uninitialized还是D0_active取决于No_Soft_Reset位7.5.2.2节。0011bFLR功能级复位完成。对应功能完成FLR复位进入可配置状态。1000bVF虚拟功能已使能。物理功能PF上报该PF下属所有虚拟功能VF全部进入可配置状态。1001bVF虚拟功能已禁用。PF上报其下属全部VF已被关闭此时该PF下SR‑IOV单根IO虚拟化的数据结构可以被访问。其余所有编码值保留。Message Routing路由字段必须清零为000b路由至根复合体。接收端口可以可选校验上述规则不可校验保留比特校验能力为可选实现6.2.3.4。 如果开启校验收到不符合格式的报文判定为畸形TLP。开启校验的前提下该错误在接收端口上报见6.2节。表2‑30 FRS消息名称Code[7:0]Routing type[2:0]RCEpSwBr说明FRS Message0111 1111000rttr功能就绪状态消息图2‑59非Flit模式FRS消息头 图2‑60Flit模式FRS消息头2.2.8.6.4 层级ID消息Hierarchy ID Message层级ID消息基于PCI‑SIG‑VDM机制实现属于带载荷的PCI‑SIG VDM消息MsgD类型。除PCI‑SIG‑VDM基础规则外该消息的额外约束报文格式参考表2‑31、图2‑61、图2‑62。TLP类型必须是MsgD带数据载荷消息。载荷长度固定4个双字(DWORD)。Length字段值等于4。TC[2:0]000b。Attr[2:0]字段保留。Tag字段保留。Subtype子类型固定01h。Message Routing路由字段011b从根复合体做广播发送。接收端口可选择校验上述规则但禁止检查保留比特校验为可选能力6.2.3.4。若校验发现报文违规则判定为畸形TLP。开启校验错误在接收端口上报6.2节。该消息的载荷内容存放System GUID系统全局唯一ID低128bit。 关于Hierarchy ID、GUID Authority ID、System GUID字段详细定义参考6.25章节。表2‑31 Hierarchy ID消息名称Code[7:0]Routing type[2:0]RCEpSwBr说明Hierarchy ID Message0111 1111011trtr层级ID消息2.2.8.7 被忽略消息Ignored Messages表2‑32中列出的这些消息过去用于热插拔信令机制该机制现已废弃不再支持。MUSTFLITFlit模式下发送端严禁发送这类消息。 如果实现了该消息发送功能行为必须遵循PCI‑e 1.0a规范的要求。除正常链路层处理、TLP格式合法性强制检查之外MUSTFLITFlit模式下接收端不得对这些消息做上层事务层业务处理不再执行原先设计的事务层功能逻辑。 如果芯片完整实现旧版本消息处理逻辑接收端处理该消息时必须遵循PCI‑e1.0a规范。接收端对表2‑32中的被忽略消息处理规则物理层、数据链路层对该消息的处理方式必须与其他普通TLP报文完全一致。事务层仍然要占用、扣减流控信用但除此之外不执行任何业务动作。表2‑32 被忽略消息名称Code[7:0]二进制Routing type[2:0]二进制RCEpSwBr说明/备注Ignored Message0100 0001100已废弃热插拔信令消息Ignored Message0100 0011100已废弃热插拔信令消息Ignored Message0100 0000100已废弃热插拔信令消息Ignored Message0100 0101100已废弃热插拔信令消息Ignored Message0100 0111100已废弃热插拔信令消息Ignored Message0100 0100100已废弃热插拔信令消息Ignored Message0100 1000100已废弃热插拔信令消息2.2.8.8 延迟容限上报消息LTRLatency Tolerance ReportingLTR消息为可选功能用于上报设备对于读、写业务服务延迟的容忍特性。LTR的详细机制参见6.18节。LTR报文构造强制规则消息编码定义见表2‑33。LTR消息不带数据载荷TLP报文类型 Msg。Length字段为保留字段。LTR消息必须使用默认流量等级TC0。实现LTR功能的接收端必须校验本条规则收到TC非0的LTR报文判定为畸形TLP。该错误会作为接收端口的上报错误参见第6.2节。表2‑33 LTR消息名称Code[7:0]二进制Routing r[2:0]二进制RCEpSwBr说明/备注LTR0001 0000100rttr延迟容限上报注释1LTR属于可选能力。支持LTR的功能必须实现第7章定义的上报、使能相关寄存器机制。图2‑63非Flit模式LTR消息报文头 图2‑64Flit模式LTR消息报文头 报文载荷字段No‑Snoop Latency无侦听访问的延迟容忍值Snoop Latency发生侦听访问场景的延迟容忍值2.2.8.9 优化缓冲区刷新/填充消息OBFFOptimized Buffer Flush/FillOBFF消息是可选机制用于把平台中央资源状态通知给端点设备详细机制见6.19节。OBFF报文构造规则消息编码定义见表2‑34。OBFF消息无载荷TLP类型 Msg。Length字段保留。请求者ID必须填写发送端口自身ID。OBFF消息强制使用TC0默认流量等级支持OBFF的接收端必须校验不符合则判定畸形TLP。错误上报关联接收端口见6.2节。表2‑34 OBFF消息名称Code[7:0]二进制Routing r[2:0]二进制RCEpSwBr说明/备注OBFF0001 0010100trtr优化缓冲区刷新填充注释1OBFF为可选支持OBFF的功能需要实现第7章软件初始化配置中对应的上报与使能机制。图2‑65非Flit模式OBFF消息头 图2‑66Flit模式OBFF消息头 报文尾部OBFF CodeOBFF事件编码。2.2.8.10 精确时间测量消息PTMPrecision Time Measurement消息编码见表2‑35。规则PTM Request、PTM ResponseTLP类型为Msg不带数据载荷Length字段保留。报文格式见图2‑67。PTM ResponseDTLP类型为MsgD带载荷。TLP头部8‑15字节存放64bit PTM主时钟时间额外携带1个DWORD载荷存放32bit传播延迟字段格式见图2‑68。PTM ResponseD字段填充规则参考6.21.3.2。请求者ID必须等于发送端口自身ID。PTM会话PTM dialog一对匹配消息一条PTM Request加上对应的PTM Response / PTM ResponseD应答报文。PTM消息必须使用TC0流量等级实现PTM的接收端做校验非法TC视为畸形TLP在接收端口上报错误见6.2节。表2‑35 PTM消息名称TLP类型Code[7:0]二进制Routing r[2:0]RCEPSwBr说明/注释PTM RequestMsg0101 0010100rttr发起一次PTM时间测量会话PTM ResponseMsg0101 0011100trtr结束本次PTM会话不携带时间信息PTM ResponseDMsgD0101 0011100trtr结束本次PTM会话携带精确时间信息图2‑67非Flit模式 PTM Request / PTM Response报文头 图2‑68非Flit模式 PTM ResponseD报文头 图2‑69Flit模式 PTM Request / Response 图2‑70Flit模式 PTM ResponseD注释传播延迟Propagation Delay[31:0]字节序问题图2‑68中Propagation Delay字段字节排布定义字节0PropagationDelay[31:24]字节1PropagationDelay[23:16]字节2PropagationDelay[15:8]字节3PropagationDelay[7:0]⚠️历史歧义旧版本规范文本描述模糊部分老实现采用了相反字节序字节0[7:0]字节1[15:8]字节2[23:16]字节3[31:24]建议硬件实现提供适配两种字节序的机制可选能力PTM传播延迟适配能力。2.2.8.11 完整性与数据加密消息IDEIntegrity and Data EncryptionIDE消息配合可选IDE完整性加密机制使用详细参考6.33节。IDE消息报文构造规则消息编码见表2‑36。IDE消息不带载荷TLP类型为Msg。Length字段为保留。请求者IDRequester ID填写发送端口上实现IDE功能的那个功能单元的RID。属于链路IDE流Link IDE Stream的IDE Sync、IDE Fail消息路由方式使用本地路由100b。属于**选择性IDE流Selective IDE Stream**的IDE Sync / IDE Fail路由使用按ID路由010b目的ID 选择性IDE‑RID关联寄存器块中的RID Base值。仅当对应Selective‑IDE‑RID关联寄存器Valid有效位置1才允许发送该消息。IDE Sync、IDE Fail的TC流量等级必须和所属IDE流的TC保持一致只允许映射到非UIO的虚拟通道VCIDE消息不设计用于UIO类型VC。IDE Sync消息隐式和该报文头部IDE前缀里指明的IDE流进行绑定。表2‑36 IDE消息名称TLP类型Code[7:0]二进制Routing type[2:0]RCEPSwBr说明/注释IDE SyncMsg0101 0100010 /100trtrtr同步对应IDE流的PR计数IDE FailMsg0101 0101010 /100trtrtr检测端口向IDE对端端口上报IDE流发生故障注释1硬件实现IDE可选功能时就必须支持这两类消息。报文附图说明图2‑71链路IDE流‑IDE Sync消息非Flit图2‑72链路IDE流‑IDE Sync消息Flit模式报文字段PR_Sent_Counter‑CPL、PR_Sent_Counter‑NPR分别记录完成报文、非posted报文的PR防护计数。图2‑73选择性IDE流‑IDE Sync非Flit增加Destination RID目的RID字段图2‑74选择性IDE流‑IDE SyncFlit图2‑75链路IDE流‑IDE Fail非Flit携带Stream ID流编号图2‑76链路IDE流‑IDE FailFlit图2‑77选择性IDE流‑IDE Fail非Flit带Destination RIDStream ID图2‑78选择性IDE流‑IDE FailFlit关键歧义点总结Ignored Messages只是上层业务不处理链路层仍然完整接收、流控信用照常消耗不是直接丢弃报文。LTR/OBFF/PTM强制TC0支持该功能的接收端必须校验TC错的报Malformed TLP畸形报文错误。PTM ResponseD唯一带载荷的PTM消息注意传播延迟字节序历史兼容坑点。IDE分两种流Link IDE本地路由100bSelective IDE按ID路由010b带目的RIDIDE‑Sync携带两个PR计数器用于加密链路同步。关键概念释义歧义澄清Vendor‑Defined Type 0 / Type1Type0未实现必须报UR错误Type1未实现就静默丢弃不产生错误上报。PCI‑SIG官方定义的VDM全部采用Type 1。MUSTFLIT协议标记仅Flit模式下强制满足该条要求非Flit模式不强制。Silently discarded静默丢弃直接丢掉报文不完成应答、不记录可报告错误。Msg / MsgDTLP消息事务编码Msg 无载荷消息MsgD 携带数据载荷的消息。DRS/FRS设备/功能就绪状态用于PCIe热复位、FLR、电源状态切换后通知系统设备/功能已经可以被配置访问。Hierarchy IDRC广播下发系统GUID用于多根/虚拟化环境识别平台拓扑。术语注释协议歧义点Posted事务报文请求属于Posted发送完成之后不需要对方回复Completion完成包。Message aliasing 报文别名不允许多个逻辑报文复用到同一组Message Code编码收到报文必须完整解码。Implicit routing隐式路由报文头部不写目的ID/地址路由模式r[2:0]本身就代表目的地。DSVDestination Segment ValidFlit模式OHC‑A4字段置1表示携带有效目的段号用于跨Segment ID路由。INTx virtual wire虚拟信号线PCIe用报文模拟传统PCI边带中断信号链路两端同步状态。ECSERR_COR Subclass可纠正错误子类型仅ERR_COR报文存在该字段。
返回列表