PCIe(二)——TLP包构成

1 简介

  TLP包是由PCIe的Endpoint或者Root Complex发送的数据包。在PCIe体系中的事务层生成。
在这里插入图片描述
  深蓝色部分是物理层添加的开始和结束字段,浅蓝色部分是链路层添加的。这些都是由IP核自动添加,用户无需关心。中间红框内的是TLP包,在事务层生成,如果用户使用的是Riffa等集成度较高的框架也无需关心。但是有时可能会要求自己构建TLP或者解析TLP包。所以将重点介绍TLP包的构成。
  由图可以看出TLP包由头(Hander)、数据(Data)、ECRC(校验)四个部分组成。重点看TLP包的头和数据部分。

TLP包的Hander部分

在这里插入图片描述
  一个DW字节是32位,4byte。

名称字段作用
FmtDW0[31:29]决定了包头是3DW长度还是4DW长度的
TypeDW0[28:24]决定了包的类型,类型有Mrd(读地址内数据)、Mwr(向地址写数据)、Cfg(配置PCIe)、Msg(消息)、Cpl(读地址数据请求后返回的数据包)
Traffic ClassDW0[22:20]包交换优先级,数字越大优先级越高
AttrDW0[18]、DW0[13:12]包的属性。Attr[13]是解析包是顺序还是乱序,一般设置为顺序。Attr[12]是Cache一致性,数据量小的时候可以打开以提高数据传输效率,数据量大则关闭
THDW0[16]PCIe2.1提出,xilinx7不支持此设置
TD(TLP Digest)DW0[15]为1是必须添加ECRC,为0时不添加
EPDW0[14]错误包标志。为1时代表此包为错误包,将被忽略
AT(Addr Type)DW0[11:10]地址类型。一共有三种类型:内存地址(00)、虚拟地址(10)、转换完成的内存地址(11)。当表示虚拟地址是需将地址转换成内存地址
LengthDW0[9:0]用来表示数据包的长度,用于Mwr、Cpl、Msg包。注意单位是DW,也就是32字节的,注意单位转换。一个数据包的数据长度最多为4096byte
Requester IDDW1[31:16]这个ID是PCIe的endpoint设备在root comlex初始化时对设备分配的,分为bus number[]、Device Number[]、Func[]
TagDW1[15:8]扩展标识,由请求方产生,与Requeseter ID构成唯一标识,用来识别应答信息
First/Last byte Enables第一字节和最后一个字节有效标志DW1[7:0]
AddressDW2或者DW2 + DW3地址位。Fmt决定了这个位数是32位还是64位

  数据完成包的包头结构
在这里插入图片描述
  DW0部分与前面相同。下面重点介绍与前面一个包不同的部分。

名称字段作用
Completer IDDW1[31:16]反馈设备ID,可以用于DEBUG
Requester IDDW2[31:16]数据请求设备的ID,一般从请求包复制ID
Completer statusDW1[15:13]包状态。成功响应(000),不支持请求(001),配置请求重试(010),请求忽略(100)
Byte countDW1[11:0]未发送数据位计数
Lower AddressDW2[6:0]第一个有效字节地址的低七位

  注意:1.Lower address和length不能跨越Root Complex的RCB(Read Completion Boundary)读完成包的边界但是可以是RCB的整数倍。意思是单个包发送的数据如果大于RCB就必须是RCB的整数倍,如果不足RCB则结束地址一定是RCB的整数倍,所以一个数据请求信号的应答包通常会分成几个数据包来应答数据包。IPcore的link control可以知道此值,一般设为64或者128,默认128。
     2.MPS(Max Payload Size)由EP和RC设置,是系统传输数据的最大承载数量。PCIe设备都有一个值。系统的MPS会取最小值,对应的IPcore接口为PCIe core:cfg_dstatus[15:0]MPS
     3.包头的Fmt和Type数据表如下:

TLP类型Fmt[1:0]Type[4:0]
存储器读请求Mrd00=3DW,无数据   01=4DW,无数据0 0000
锁定存储器读请求MrdLk00=3DW,无数据   01=4DW,无数据0 0001
存储器写请求MWr10=3DW,有数据   11=4DW,有数据0 0000
IO读请求IORd00=3DW,无数据0 0010
IO写请求10=3DW,有数据0 0010
Type 0配置读请求(CfgRd0)00=3DW,无数据0 0100
Type 1配置读请求(CfgRd1)00=3DW,无数据0 0101
Type 0配置写请求(CfgRd0)10=3DW,有数据0 0100
Type 1配置写请求(CfgRd1)10=3DW,有数据0 0101
消息请求(Msg))01=4DW,无数据1 0rrr
带数据的消息请求(MsgD))11=4DW,有数据1 0rrr
完成Cpl00=3DW,无数据0 1010
带数据的完成CplD10=3DW,有数据0 1010
锁定完成(CplLk)00=3DW,无数据0 1011
带数据的锁定完成CplDLk10=3DW,有数据0 1010

路由方式

TLP类型路由方式
Mrd,MRdlk\MWr地址路由
IOEd、IOW地址路由
CfgRd0、CfgRd1、CfgWr0、CfgWr1ID路由
Msg、MsgD地址路由、ID路由或隐含式路由
Cpl、CpIDID路由

地址路由

  端点设备检查TLP包中的地址与BAR中所有的地址进行比较,如果不属于本端点范围,则拒绝。

ID路由

  端点设备检查TLP包里的总线ID和设备ID功能ID是否与本端点一致,这些信息可以再Type0的配置信息里捕获。

读写过程

  处理器发送MRD给目标的设备ID,设备响应CPld包给处理器。

  • 4
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
OBJECTIVE OF THE SPECIFICATION.................................................................................... 27 DOCUMENT ORGANIZATION ................................................................................................ 27 DOCUMENTATION CONVENTIONS...................................................................................... 28 TERMS AND ACRONYMS........................................................................................................ 29 REFERENCE DOCUMENTS...................................................................................................... 36 1. INTRODUCTION ................................................................................................................ 37 1.1. A THIRD GENERATION I/O INTERCONNECT ................................................................... 37 1.2. PCI EXPRESS LINK......................................................................................................... 39 1.3. PCI EXPRESS FABRIC TOPOLOGY .................................................................................. 41 1.3.1. Root Complex........................................................................................................ 41 1.3.2. Endpoints .............................................................................................................. 42 1.3.3. Switch.................................................................................................................... 45 1.3.4. Root Complex Event Collector.............................................................................. 46 1.3.5. PCI Express to PCI/PCI-X Bridge........................................................................ 46 1.4. PCI EXPRESS FABRIC TOPOLOGY CONFIGURATION....................................................... 46 1.5. PCI EXPRESS LAYERING OVERVIEW.............................................................................. 47 1.5.1. Transaction Layer................................................................................................. 48 1.5.2. Data Link Layer .................................................................................................... 48 1.5.3. Physical Layer ...................................................................................................... 49 1.5.4. Layer Functions and Services............................................................................... 49 2. TRANSACTION LAYER SPECIFICATION ..................................................................... 53 2.1. TRANSACTION LAYER OVERVIEW.................................................................................. 53 2.1.1. Address Spaces, Transaction Types, and Usage................................................... 54 2.1.2. Packet Format Overview ...................................................................................... 56 2.2. TRANSACTION LAYER PROTOCOL - PACKET DEFINITION............................................... 58 2.2.1. Common Packet Header Fields ............................................................................ 58 2.2.2. TLPs with Data Payloads - Rules ......................................................................... 61 2.2.3. TLP Digest Rules .................................................................................................. 65 2.2.4. Routing and Addressing Rules .............................................................................. 65 2.2.5. First/Last DW Byte Enables Rules........................................................................ 69 2.2.6. Transaction Descriptor......................................................................................... 71 2.2.7. Memory, I/O, and Configuration Request Rules................................................... 77 2.2.8. Message Request Rules......................................................................................... 83 2.2.9. Completion Rules.................................................................................................. 97 2.2.10. TLP Prefix Rules ................................................................................................. 100 2.3. HANDLING OF RECEIVED TLPS.................................................................................... 104
PCI Express (PCIe) TLP (Transaction Layer Packet) 是 PCI Express 协议的一个重要部分,它用于在不同的 PCIe 设备之间传输数据。PCIe TLP 由四个部分组成:头部、有效载荷、可选的可扩展有效载荷和 FCS(帧校验序列)。 具体来说,PCIe TLP 的格式如下: |---------------------------| | PCIe TLP 头部 (12 字节) | |---------------------------| | 有效载荷 (0 - 1024 字节) | |---------------------------| | 可扩展有效载荷 (0 - 1024 字节) | |---------------------------| | FCS(帧校验序列)(4 字节) | |---------------------------| PCIe TLP 头部括以下字段: - TC(传输类别):指定 TLP 的类型,比如请求(Memory Read/Write)、Completion 等。 - TD(传输方向):指定 TLP 的传输方向,是从上游设备到下游设备还是相反。 - EP(端点):指定 TLP 的目标设备端口号。 - Length(长度):指定有效载荷的长度。 - First DW BE(第一个双字节字节 Enable):指定有效载荷的第一个双字节的哪些字节是有效的。 - Last DW BE(最后一个双字节字节 Enable):指定有效载荷的最后一个双字节的哪些字节是有效的。 - Tag(标签):可选字段,用于匹配请求和 Completion TLP。 - Requester ID(请求者 ID):可选字段,用于标识发起 TLP 的设备。 - Completer ID(完成者 ID):可选字段,用于标识处理 TLP 的设备。 PCIe TLP 的有效载荷可以是数据、地址或控制信息。可扩展有效载荷在某些情况下用于传输额外的数据或信息。FCS 是一个校验序列,用于检测传输中的错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值