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详解相关推荐

  1. PCIE传输速率详解、Gbps和GB的区分

    PCIE通道数 1.PCIe规范,它又称为PCI-Express规范 2.PCIe吞吐量(可用带宽)计算方法:吞吐量 = 传输速率 *  编码方案,现行的PCIe 3.0规范,信号速率为8GT/s,编 ...

  2. PCIE接口详解及应用模式

    PCI-Express(peripheral component interconnect express)是一种高速串行计算机扩展总线标准,它原来的名称为"3GIO",是由英特尔 ...

  3. [SSD科普1] PCIE接口详解及应用模式

    PCI-Express(peripheral component interconnect express)是一种高速串行计算机扩展总线标准,它原来的名称为"3GIO",是由英特尔 ...

  4. RK3568平台开发系列讲解(调试篇)PCIe调试详解

  5. 5.PCIe协议分析3-PCIe TLP包详解1

    目录 1.回顾 2.PCIe TLP简介 3.PCIe TLP Header结构 4.总结 1.回顾 上一节我们讲解了PIO XAPP1052 XDMA三者联系和区别,大家具体知道了PIO XAPP1 ...

  6. pcie握手机制_【博文连载】PCIe扫盲——Ack/Nak 机制详解(一)

    原标题:[博文连载]PCIe扫盲--Ack/Nak 机制详解(一) 前面在数据链路层入门的文章中简单地提到过Ack/Nak机制的原理和作用,接下来的几篇文章中将对Ack/Nak机制进行详细地介绍. A ...

  7. 串行总线的详解XAUI/XLAUI SFP+ PCIE SATA QPI

    主要介绍一下工作常用到的串行总线: FPGA DMA控制器: DMA:direct memory access;包括一条地址总线,一条控制总线,和控制寄存器. 1.XAUI和xlaui https:/ ...

  8. 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通道:硬盘--内 ...

  9. PCIe链路训练过程详解

    接口速度决定SSD的性能上限.如今,PCIe SSD正全面进入PCIe 4.0时代,并向速度更快的PCIe 5.0进发.为避免PCIe链路以较低的速率工作导致PCIe SSD性能下降(如PCIe 4. ...

最新文章

  1. TCP与UDP区别小结
  2. 软件驱动安装在docker_docker 安装软件
  3. 链接器ld程序的脚本文件u-boot.lds(二)
  4. 跨主机使用 Rex-Ray volume - 每天5分钟玩转 Docker 容器技术(77)
  5. 关 于 解 析 php 的 问 题
  6. spring3.2.5学习(一)——spring环境配置以及IOC简介
  7. 怎样输出矩阵乘积C语言,c语言矩阵相乘
  8. prerenderspaplugin可以抓取动态数据吗_RPA编程思路之数据抓取
  9. Windows下安装X710网卡驱动
  10. 凯恩帝串口通信怎么设置_凯恩帝K100T-Ci_V3.1_连接调试手册_140815.pdf
  11. JavaScript “use strict“(严格模式)
  12. 下载keep运动软件_keep运动软件下载
  13. 关于金融危机下的亮剑精神!
  14. java游戏源码合集,已整理成文档
  15. 基于STM32F103单片机的生理监控心率脉搏监控TFT彩屏显示
  16. Dubbo 2 Dubbo 概述 2.1 Dubbo 概念 2.2 Dubbo 架构
  17. 网鼎杯青龙组 web题-AreUSerialz
  18. 小程序 - 折线图画法
  19. HTML5 + canvas 飙车游戏(附源码)
  20. Stata: 断点回归 (RDD) 中的平滑性检验

热门文章

  1. Android中播放本地SD卡中歌曲须要的加入的权限
  2. 傅里叶变换基函数可视化
  3. 云服务器密码忘了_云服务器 root 密码忘记了怎么办
  4. Flink实操 : 广播变量/累加器/分布式缓存
  5. Matplotlib绘制三维数据点与线
  6. Tomcat一些常见错误(遇到错误就更新)
  7. Linux如何关闭防火墙?
  8. Python进程池Pool的使用
  9. proftpd的SSH_DISCONNECT (Read TImed out,Key exchange failed.错误解决
  10. npy格式的文件生成图像展示