用于 PCIe* 解决方案的 Intel® Stratix® 10 Avalon® -ST和Single Root I/O Virtualization (SR-IOV)接口用户指南

ID 683111
日期 12/06/2017
Public
文档目录

6.1.6. TX信用接口(TX Credit Interface)

在发送一个TLP之前,流程控制逻辑(flow control logic)验证link partner的RX报告是否有足够的缓冲空间来接收此TLP。TX Credit接口对Application报告可用的RX缓冲空间。它对称作Flow Control credits的单元中的可用空间进行报告。

Flow Control credits对以下TLP类别进行了定义:

  • Posted transactions - 不需要响应(response)的TLP
  • Non-Posted transactions - 需要完成(completion)的TLP
  • Completions - 响应非发布传输(non-posted transactions)的TLP
表 32.  传输类型的分类
TLP类型 类别
Memory Write Posted

Memory Read

Memory Read Lock

Non-posted

I/O Read

I/O Write

Non-posted

Configuration Read

Configuration Write

Non-posted
Message Posted (布线方法取决于Message类型)

Completions

Completions with Data

Completion Locked

Completion Lock with Data

Completions
Fetch and Add AtomicOp Non-posted
表 33.  Header和Data Credits的值下表将信用(credits)转换成双字(dwords)。PCI Express Base Specification将一个双字(dword)定义为四个字节。
信用类型(Credit Type) 双字的数量(Number of Dwords)
Header Credit - completions 4 dwords
Header credit - requests 5 dwords
Data credits 4 dwords
表 34.  TX流程控制信用接口(TX Flow Control Credit Interface)IP core对Application Layer提供TX信用信息。为优化性能,Application在提交传输请求前可以执行基于信用的检查,并重新排序(reorder)数据包以提高吞吐量。重新排序(reordering)是可选的。IP core在发送TLP之前总要检查是否有足够的TX信用。

信号

方向

说明

tx_ph_cdts[7:0]

Output

流程控制(FC)发布请求的头信用净值(header credit net value)
tx_pd_cdts[11:0]

Output

FC发布请求的数据信用净值(data credit net value)
tx_nph_cdts[7:0]

Output

FC非发布请求的头信用净值(header credit net value)

tx_npd_cdts[11:0] L-Tile

Output

FC非发布请求的数据信用净值(data credit net value)

Tx_npd_cdts[11:0]不用于H-Tile器件。您可以监控非发布头信用(non-posted header credit)来决定是否有足够的空间来发送下一个非发布数据TLP。

tx_cplh_cdts[7:0]

Output

FC Completion的头信用净值(non-posted header credit)。值为0表示无限的Completion header credits。
tx_cpld_cdts[11:0]L-Tile

Output

FC Completion的数据信用净值(data credit net value)。值为0表示无限的Completion data credit。

Tx_cpld_cdts[11:0]不用于H-Tile器件。您可以监控完成头信用(completion header credit)来决定是否有足够的空间来发送下一个非发布数据TLP。completion TLP大小为请求数据大小,或者是completion拆分时的64个字节。

对于Root Ports或者non peer-to-peer Endpoints,假设此信用是无限的。

tx_hdr_cdts_consumed[1:0]

Output

对每个使用的header credit, 置位1个coreclkout_hip周期。请注意那些Hard IP用于内部生成的Completions或Messages的credit不在此信号中进行跟踪。

对于Gen3 x16 512-bit接口,tx_hdr_cdts_consumed[1]用于较高总线,tx_hdr_cdts_consumed[1]用于较低总线。

tx_data_cdts_consumed[1:0]

Output

对每个使用的data credit, 置位1个coreclkout_hip周期。请注意那些Hard IP用于内部生成的Completions或Messages的credit不在此信号中进行跟踪。

对于Gen3 x16 512-bit接口,tx_data_cdts_consumed[1]用于较高总线,tx_data_cdts_consumed[0]用于较低总线。

tx_cdts_type[3:0] Output

指定显示在tx_cdts_data_value[1:0]总线上的credit类型。以下编码定义为:

  • 2'b00: Posted credits

  • 2'b01: Non-posted credits4

  • 2'b10: Completion credits

  • 2'b11: 保留

对于Gen3 x16 512-bit接口,tx_cdts_type[3:2]用于较高总线,tx_cdts_type[1:0]用于较低总线。

tx_cdts_data_value[3:0] H-Tile

tx_cdts_data_value[1:0] L-Tile

Output

对于H-Tile: 当消耗1, 2 data credits时。当消耗0, 1 data credit时。

对于L-Tile: tx_cdts_data_value+1的值指定消耗的data credit。

对于H- 以及 L-Tiles: 仅当tx_data_cdts_consumed置位时有效。

对于Gen3 x16 512-bit接口,tx_cdts_data_value[3:2]用于较高总线,tx_cdts_data_value[1:0]用于较低总线。

4 PCIe IP core不消耗non-posted credits。