接收传输事务排序 - 1.3 简体中文

UltraScale+ 器件 Integrated Block for PCI Express 产品指南 (PG213)

Document ID
PG213
Release Date
2022-11-16
Version
1.3 简体中文

核在其接收侧包含相应的逻辑,用于确保从链路接收到的 TLP 以及交付至其完成器请求接口和请求器完成接口的 TLP 不会违反 PCI Express® 传输事务排序约束。集成块基于下列关键规则来执行排序操作:

  • 转发请求必须能够在完成器请求 (CQ) 接口上传递非转发请求。为支持此功能,集成块会在 CQ 接口上实现流量控制机制,用户逻辑可通过此机制来控制非转发请求的流量,而不会影响转发请求。用户逻辑可通过断言 pcie_cq_np_req[0] 信号有效来标示接收非转发请求的缓冲器的可用情况。

    仅当可用信用值为非 0 值时,集成块才会向用户应用交付非转发请求。当非转发请求交付因缺少信用值而暂停时,集成块会持续交付转发请求。当信用值机制对非转发请求的交付不施加任何反压时,集成块会按从链路接收到转发请求和非转发请求的顺序来交付这些请求。如需获取有关控制非转发请求流程的更多信息,请参阅 针对非转发请求的选择性流量控制

  • PCIe 排序要求不允许完成 TLP 传递转发请求,但存在下列例外情况:
    • 已设置“Relaxed Ordering”(宽松排序)属性位的完成包可传递转发请求。
    • 已设置基于 ID 的排序位的完成包可传递转发请求,前提是完成器 ID 与转发请求器 ID 不同。

只有在先前到达的所有转发 TLP 全部完成传输之后,集成块才会在请求器完成 (RC) 接口上开始传输从链路接收到的完成 TLP,除非适用下列 2 项规则之一。

在将 TLP 完全传输到用户接口之后,将由用户应用负责根据需要强制执行排序约束。

表 1. 接收排序规则
行传递 转发 非转发 完成
转发
非转发
完成

a) 否

b) 是(宽松排序)