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]