PCIe TLP详解

PCIe TLP详解

事务层数据包格式:

TLP前缀TLP包头数据负载TLP摘要
0, 1, 2,3,…H+1, H+2,…J, J+1,J+2,…K,K+1,K+2,…
  • 前缀,这是一个可选的
  • TLP 标头
  • 数据有效载荷
  • TLP 摘要

TLP 数据包格式中的信息分布为:
TLP 前缀。
标题(必填)。
数据(适用时包括在内):取决于交易类型。
TLP 摘要(可选)。

TLP 包头:
在这里插入图片描述

  • 提供数据包的格式。
  • 数据包的类型。
  • 关联数据的长度(如果有)。
  • 事务描述符。
  • 地址/路由信息
  • 字节使能
  • 消息编码
  • 完成状态

32 位 if 信息提供:

  • 格式
  • TLP 数据包类型
  • 流量类别信息
  • 属性
  • T 头(存在 TLP 前缀,如果存在)
  • TLP 摘要、端点(TLP 是正常的或中毒的)
  • 地址转换(当内存可用时)
  • 长度(以 32 位字表示的数据长度符号)

数据包格式和类型编码:

TLP TypeFormatTypeDescription
MR000 / 0010 0000读存储器请求
MRL000 / 0010 0001Memory Read Request Locked
MW0100 0000Memory Write Request
IOR0000 0010I/O读请求
IOW0100 0010I/O写请求
CR00000 0100配置读类型0
CW00100 0100配置写类型0
CR10000 0101配置读类型1
CW10100 0101配置写类型1
Msg0011 0 r2 r1 r0消息请求
MsgD0111 0 r2 r1 r0带数据的消息请求

一些额外的交易类型如下:

TLP TypeFormatTypeDescription
Cpl0000 1010无数据完成(0字节)
CplD0100 1010Completion with data (data will be present in TLP)
CplLk0000 1011Completion for Locked Memory read without data
CplDLk0100 1011Completion for Locked Memory Read
FetchAdd010 / 0110 1100Fetch and Add atomic Operation Request
Swap010 / 0110 1101Unconditional Swap Atomic Operation Request
CAS (Compare and Swap)010 / 0110 1110Compare and swap Atomic Operation
LPrfx1000 L3 L2 L1 L0Local TLP Prefix
EPrfx1001 E3 E2 E1 E0End-End TLP Prefix

TLP 长度编码:

Length [9:0]TLP Data Payload Size
00 0000 00011 DW
00 0000 00102 DW
11 1111 11111023 DW
00 0000 00001024 DW

DW:双字。
全 1:1023 个 双字。
全 0:数据包中有 1024 个双字。
假设有 1024个双字的数据,那么Root Complex会将数据分成更小的数据包,并发送到端点。如果中间存在交换机,则数据将按原样转发,而不会将其拆分为数据包,即没有任何更改。

地址翻译:

AT CodingDescription
00Default / Untranslated
01Translation Request
10Translated
11Reserved

数据使用路由信息,如总线号;到达特定端点的设备号、功能号等。
路由类型(3 或 4 个 D Words of Header)取决于 TLP 摘要的需要。
交换机检查总线号和设备号,并相应地将数据包转发到该特定端点,以便在运行时执行路由。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值