fpga_feixiang 发表于 2020-12-14 14:06:49

TLP帧头含义详述

TLP Header长3 DW或者4 DW,格式和内容随事务类型的不同而不同。但是对于所有TLP Header来讲,都拥有相同的第一个DW定义,如下图所示(R:Reserved,为0)
https://img2018.cnblogs.com/blog/1005379/201905/1005379-20190530112433481-973978704.png
Fmt()——Format of TLP
Fmt是关于头标长度和该TLP是否有数据(字段)的信息,如下图所示。实际上是3 DW还是4 DW是根据要访问目标的地址位宽有关。
https://img2018.cnblogs.com/blog/1005379/201905/1005379-20190530112534959-413607290.png

Type()

Type的5位编码与Fmt字段一起用于规定事务类型、头标长度和是否有数据负载,如下图所示,只列举了一部分常用的类型,完整版可以查阅官方协议规范。

https://img2018.cnblogs.com/blog/1005379/201905/1005379-20190530112610306-1053470428.png

TC()

Traffic Class,传输类型也代表优先级,优先级高的先得到服务。这里是3比特,说明可以分为8个等级,0-7,TC默认是0,数字越大,优先级越高。

Attr(、)

该字段表述TLP的属性,由3位组成,注意不是连续的。具体含义见规范。

TH()

位为 1 表示当前 TLP 中含有 TPH(TLP Processing Hint)信息,TPH 是 PCIe V2.1 总线规范引入的一个重要功能。TLP 的发送端可以使用 TPH 信息,通知接收端即将访问数据的特性,以便接收端合理地预读和管理数据。

TD()

表示 TLP 中的 TLP Digest(之前说ECRC可选)是否有效,如果这个这个bit置起来,说明该TLP包含ECRC,接收端应该做CRC校验;

EP()

表示当前 TLP 中的数据是否有效,为 1 表示无效,为 0 表示有效。

AT()

Address Type,地址种类,与 PCIe 总线的地址转换相关,可暂时不考虑。

Length()

用来描述 TLP 的有效负载(Data Payload)大小。PCIe 总线设置 Length 字段的目的是提高总线的传送效率。Length 字段以 DW 为单位,其最小单位为 1 个 DW。
页: [1]
查看完整版本: TLP帧头含义详述