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 Type | Format | Type | Description |
---|---|---|---|
MR | 000 / 001 | 0 0000 | 读存储器请求 |
MRL | 000 / 001 | 0 0001 | Memory Read Request Locked |
MW | 010 | 0 0000 | Memory Write Request |
IOR | 000 | 0 0010 | I/O读请求 |
IOW | 010 | 0 0010 | I/O写请求 |
CR0 | 000 | 0 0100 | 配置读类型0 |
CW0 | 010 | 0 0100 | 配置写类型0 |
CR1 | 000 | 0 0101 | 配置读类型1 |
CW1 | 010 | 0 0101 | 配置写类型1 |
Msg | 001 | 1 0 r2 r1 r0 | 消息请求 |
MsgD | 011 | 1 0 r2 r1 r0 | 带数据的消息请求 |
一些额外的交易类型如下:
TLP Type | Format | Type | Description |
---|---|---|---|
Cpl | 000 | 0 1010 | 无数据完成(0字节) |
CplD | 010 | 0 1010 | Completion with data (data will be present in TLP) |
CplLk | 000 | 0 1011 | Completion for Locked Memory read without data |
CplDLk | 010 | 0 1011 | Completion for Locked Memory Read |
FetchAdd | 010 / 011 | 0 1100 | Fetch and Add atomic Operation Request |
Swap | 010 / 011 | 0 1101 | Unconditional Swap Atomic Operation Request |
CAS (Compare and Swap) | 010 / 011 | 0 1110 | Compare and swap Atomic Operation |
LPrfx | 100 | 0 L3 L2 L1 L0 | Local TLP Prefix |
EPrfx | 100 | 1 E3 E2 E1 E0 | End-End TLP Prefix |
TLP 长度编码:
Length [9:0] | TLP Data Payload Size |
---|---|
00 0000 0001 | 1 DW |
00 0000 0010 | 2 DW |
… | … |
11 1111 1111 | 1023 DW |
00 0000 0000 | 1024 DW |
DW:双字。
全 1:1023 个 双字。
全 0:数据包中有 1024 个双字。
假设有 1024个双字的数据,那么Root Complex会将数据分成更小的数据包,并发送到端点。如果中间存在交换机,则数据将按原样转发,而不会将其拆分为数据包,即没有任何更改。
地址翻译:
AT Coding | Description |
---|---|
00 | Default / Untranslated |
01 | Translation Request |
10 | Translated |
11 | Reserved |
数据使用路由信息,如总线号;到达特定端点的设备号、功能号等。
路由类型(3 或 4 个 D Words of Header)取决于 TLP 摘要的需要。
交换机检查总线号和设备号,并相应地将数据包转发到该特定端点,以便在运行时执行路由。
PCIe TLP详解相关推荐
- PCIE传输速率详解、Gbps和GB的区分
PCIE通道数 1.PCIe规范,它又称为PCI-Express规范 2.PCIe吞吐量(可用带宽)计算方法:吞吐量 = 传输速率 * 编码方案,现行的PCIe 3.0规范,信号速率为8GT/s,编 ...
- PCIE接口详解及应用模式
PCI-Express(peripheral component interconnect express)是一种高速串行计算机扩展总线标准,它原来的名称为"3GIO",是由英特尔 ...
- [SSD科普1] PCIE接口详解及应用模式
PCI-Express(peripheral component interconnect express)是一种高速串行计算机扩展总线标准,它原来的名称为"3GIO",是由英特尔 ...
- RK3568平台开发系列讲解(调试篇)PCIe调试详解
- 5.PCIe协议分析3-PCIe TLP包详解1
目录 1.回顾 2.PCIe TLP简介 3.PCIe TLP Header结构 4.总结 1.回顾 上一节我们讲解了PIO XAPP1052 XDMA三者联系和区别,大家具体知道了PIO XAPP1 ...
- pcie握手机制_【博文连载】PCIe扫盲——Ack/Nak 机制详解(一)
原标题:[博文连载]PCIe扫盲--Ack/Nak 机制详解(一) 前面在数据链路层入门的文章中简单地提到过Ack/Nak机制的原理和作用,接下来的几篇文章中将对Ack/Nak机制进行详细地介绍. A ...
- 串行总线的详解XAUI/XLAUI SFP+ PCIE SATA QPI
主要介绍一下工作常用到的串行总线: FPGA DMA控制器: DMA:direct memory access;包括一条地址总线,一条控制总线,和控制寄存器. 1.XAUI和xlaui https:/ ...
- SSD硬盘的接口区别详解图解 SATA、mSATA、PCI-E、M.2(NVMe协议) 、U.2、Type-c、USB、Macbook接口
转 扫盲:SATA.mSATA .PCIe和M.2--SSD硬盘的接口 2019年03月02日 20:47:06 nedwons 阅读数 11035更多 个人分类: 非技术 SATAT通道:硬盘--内 ...
- PCIe链路训练过程详解
接口速度决定SSD的性能上限.如今,PCIe SSD正全面进入PCIe 4.0时代,并向速度更快的PCIe 5.0进发.为避免PCIe链路以较低的速率工作导致PCIe SSD性能下降(如PCIe 4. ...
最新文章
- TCP与UDP区别小结
- 软件驱动安装在docker_docker 安装软件
- 链接器ld程序的脚本文件u-boot.lds(二)
- 跨主机使用 Rex-Ray volume - 每天5分钟玩转 Docker 容器技术(77)
- 关 于 解 析 php 的 问 题
- spring3.2.5学习(一)——spring环境配置以及IOC简介
- 怎样输出矩阵乘积C语言,c语言矩阵相乘
- prerenderspaplugin可以抓取动态数据吗_RPA编程思路之数据抓取
- Windows下安装X710网卡驱动
- 凯恩帝串口通信怎么设置_凯恩帝K100T-Ci_V3.1_连接调试手册_140815.pdf
- JavaScript “use strict“(严格模式)
- 下载keep运动软件_keep运动软件下载
- 关于金融危机下的亮剑精神!
- java游戏源码合集,已整理成文档
- 基于STM32F103单片机的生理监控心率脉搏监控TFT彩屏显示
- Dubbo 2 Dubbo 概述 2.1 Dubbo 概念 2.2 Dubbo 架构
- 网鼎杯青龙组 web题-AreUSerialz
- 小程序 - 折线图画法
- HTML5 + canvas 飙车游戏(附源码)
- Stata: 断点回归 (RDD) 中的平滑性检验