传输层报文分类
![](https://img-blog.csdnimg.cn/direct/3ea9ddf3106541daa69ce553f1881441.png)
传输层报文基本格式
![](https://img-blog.csdnimg.cn/direct/ad25f288280a46fea577c3d5e68097c9.png)
传输层(TL)报文基本格式由以下
![](https://img-blog.csdnimg.cn/direct/37c53d92329d4495a1ec4f622ea16435.png)
TLP Prefix:
长度为若干个Dword,一个Dword为4Byte)组成。Tlp Prefix主要用来携带额外的TLP 信息,例如TPH, Processor Address Space ID (PASID) , MR-IOV TLP Prefix或者Vendor Defined Prefix。
TLP Header
TLP Header 一般的由两种长度3DW和4DW,根据报文是属于32位系统还是64位系统,地址位宽为1DW的TLP header长度共计3DW,地址位宽为2DW的TLP header长度共计4DW。
除了1DW或2DW的地址外,TLP Header的其他DW分别包含了各种定义TLP format/type以及各种属性(attribute)的Field组成。例如下图:
![](https://img-blog.csdnimg.cn/direct/07adeb7c71e6493b8b9dcca4d26860f4.png)
PCIe传输层负责的各种类型的TLP 发送和接收,其中涉及到TLP的路由策略,主要分两大类,地址路由(Address Routing)和ID路由(ID Routing)。典型的Memory 的读写请求是属于地址路由,因为memory是按照地址来寻址的;而典型的Completion类的返回报文是根据Requester(请求者)在PCIe tree结构中的ID来路由的。也就是说,Requester请求发给某一个Completer,是指向某个Completor的Memory地址的,而Completor是根据Requestor的ID来返回completion报文的。
下图是一个典型的4DW Address Routing TLP header组成 (Request TLP)。
![](https://img-blog.csdnimg.cn/direct/ce4f55aa087149dd886946e145d9e3d2.png)
下图是一个典型的3DW Address Routing TLP header组成 (Request TLP)。
![](https://img-blog.csdnimg.cn/direct/eb23246642e946308768b7e091975637.png)
下图是一个典型的ID based Routing TLP header组成(Configuration TLP)。