发射传输事务排序 - 1.3 简体中文

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

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

在发射侧,集成块在 2 个不同接口上接收 TLP:请求器请求 (RQ) 接口和完成器完成 (CC) 接口。集成块不会对从每个接口接收到的传输事务进行重新排序。在集成块的发射流水线中,当请求器侧的请求和完成器侧的完成包已多路复用到单一数据流后,其排序方式将变得非常难以预测。如果完成 TLP 必须保持其相对于请求的顺序不变,那么对于需要严格保留排序(相对于从 CC 接口发射的完成包)不变的任意请求,用户逻辑可以在 s_axis_rq_tuser 总线中的 seq_num[3:0] 输入上为其提供 4 位序列号。集成块会将此序列号置于其 pcie_rq_seq_num[3:0] 输出上,当发射流水线中的请求 TLP 进展至特定状态(即,来自用户应用的所有新完成 TLP 都无法继续传递该包)时,集成块会断言 pcie_rq_seq_num_vld 有效。在以下情况下,此机制可用于保留 TLP 排序不变:

  • 用户逻辑要求保留请求 TLP 与紧随其后的完成 TLP 之间的排序不变。在此情况下,用户逻辑必须等待请求器请求的序列号显示在 pcie_rq_seq_num[3:0] 输出上之后,方可在目标完成接口上开始传输完成 TLP。
  • 用户逻辑要求保留请求 TLP 与 MSI/MSI-X TLP(通过 MSI 报文接口发送信号)之间的排序不变。在此情况下,用户逻辑必须等待请求器请求的序列号显示在 pcie_rq_seq_num[3:0] 输出上之后,才能在 MSI 报文接口上发出 MSI 或 MSI-X 信号。