PCIE协议-2-事务层规范-Handling of Received TLPs

2.3 接收到的TLP的处理

本节描述了当接收到的TLP从接收数据链路层传送到接收事务层,并且在数据链路层已经验证了接收到的TLP的完整性后,如何处理所有接收到的TLP。规则在图2-41所示的流程图中进行了图解。

  • 保留字段中的值必须由接收器忽略。
  • 如果Fmt字段的值指示存在至少一个TLP前缀:
    • 通过检查后续DW中第一个字节的Fmt字段,直到Fmt字段不匹配TLP前缀的Fmt字段,来检测头标中是否还有额外的TLP前缀。
    • 根据TLP前缀处理规则处理所有接收到的TLP前缀(见第2.2.10节)。
  • 如果设置了扩展Fmt字段支持位,使用Fmt和Type编码的接收到的TLP,如果Fmt和Type是保留的,则为畸形TLP(见表2-1和表2-3)。
    • 这是一个与接收端口相关联的报告错误(见第6.2节)。
  • 如果清除了扩展Fmt字段支持位,处理Fmt[2]设置的接收到的TLP是未定义的。
  • 所有Fmt[2]清除且使用未定义的Type字段值的接收到的TLP都是畸形TLP。
    • 这是一个与接收端口相关联的报告错误(见第6.2节)。
  • 所有接收到的畸形TLP都必须被丢弃。
    • 接收到的畸形TLP如果关于要释放哪个缓冲区不明确,或者映射到未初始化或已禁用的虚拟通道,则必须在不更新接收流控制信息的情况下被丢弃。
    • 所有其他接收到的畸形TLP都必须被丢弃,可以选择不更新接收流控制信息。
  • 否则,更新接收流控制跟踪信息(见第2.6节)。
  • 如果Type字段的值表明TLP是一个请求,根据请求处理规则进行处理;否则,TLP是一个完成,根据完成处理规则进行处理(后续章节)。

Switch必须处理同时针对Switch内部资源以及位于Switch外部的资源的TLP。Switch根据上述规则处理所有针对Switch内部资源的TLP。通过Switch的TLP,或者既针对Switch又通过它的TLP,根据以下规则进行处理(见图2-42):

  • 如果Type字段的值表明TLP不是消息(Msg)或带有数据的消息(MsgD)请求,TLP必须根据所使用的路由机制进行路由(见第2.2.4.1节和第2.2.4.2节)。
  • Switch使用完成中的请求者ID字段中的信息来路由完成(Completions)。
  • 如果Type字段的值表明TLP是消息(Msg)或带有数据的消息(MsgD)请求,根据Type字段中r[2:0]子字段指示的路由机制路由请求。
    • 如果r[2:0]的值表明Msg/MsgD被路由到根复合体(000b),Switch必须将Msg/MsgD路由到Switch的上游端口。
      • 在Switch的上游端口接收到指定000b路由的Msg/MsgD请求是一个错误。Switch可以检查此规则的违规情况 - 违规的TLP是畸形TLP。如果进行了检查,这是一个与接收端口相关联的报告错误(见第6.2节)。
    • 如果r[2:0]的值表明Msg/MsgD通过地址进行路由(001b),Switch必须按照它路由地址内存请求的方式路由Msg/MsgD。
    • 如果r[2:0]的值表明Msg/MsgD通过ID进行路由(011b),Switch必须按照它路由ID完成的方式路由Msg/MsgD。
    • 如果r[2:0]的值表明Msg/MsgD是来自根复合体的广播(011b),Switch必须将Msg/MsgD路由到Switch的所有下游端口。
      • 在Switch的下游端口接收到指定011b路由的Msg/MsgD请求是一个错误。Switch可以检查此规则的违规情况 - 违规的TLP是畸形TLP。如果进行了检查,这是一个与接收端口相关联的报告错误(见第6.2节)。
    • 如果r[2:0]的值表明Msg/MsgD在接收器处终止(100b或保留值),或者消息代码字段的值被定义并且对应于Switch必须理解的消息,则Switch必须根据消息处理规则处理该消息。
    • 如果r[2:0]的值表明聚集并路由到根复合体(101b),请参阅第5.3.3.2.1节了解消息处理规则。
    • 接收任何指定101b路由的Msg/MsgD请求,除了PME_TO_Ack之外,都是一个错误。
    • 在Switch的上游端口接收到PME_TO_Ack是一个错误。Switch可以(但非必须)检查这些规则的违规情况。这些检查是独立的可选检查(见
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值