1、概述

PCIe协议是基于包的传输协议,在link中传输的包主要有三类,TLP、DLLP以及Ordered Set,本文主要对TLP进行总结。
在 PCIe 中,高层次事务起源于发送方的Device Core,终止于接收方的 Device Core。事务层会处理这些请求,其中,发送端的事务层组装TLP,接收端的事务层解析 TLP。在这个过程中,每个设备的数据链路层和物理层也会参与包的组装。

上图是TLP从发送端发出到接收端拆包的一般流程。接下来对上图进行介绍:
对于接收方:
(1)设备A的Device Core(软件层)向他的PCIe的接口发送一个请求,这个请求包括:
①目标地址或者ID(这个由路由方式决定)
②发送端的信息,例如请求者ID和Tag
③事务类型
④Payload的size和payloa内容
⑤TC,流量类别,与QoS相关
⑥请求的自身属性(IDO、RO以及No snoop)
(2)基于这个请求,在TL层组件TLP Header,并在后面跟随者payload,如果支持启用ECRC,后面会再附上ECRC。随后会将TLP放入一个VC Buffer,VC会根据事务排序规则来管理发送TLP的顺序,并在向下转发TLP到DL之前,确认接收方有足够的Buffer来接收一个TLP。
(3)TLP到达DL之后,会被分配一个序列号,并基于TLP的内容和序列号来计算LCRC,跟随在TLP后面。然后会将经过这些处理之后的TLP保留一个副本,存放在DL的Retry Buffer中,这是为了应对传输出错的情况,与此同时,这个TLP也会向下转发至PL。
(4)PL会对这个数据包进行Byte Striping、Scramble、Encode以及并串转换。并在开始和结尾分别加上STP和END的特殊Symbol。Gen3以上不会加END。
对于接收方:
(1)在接收方,为了发送包所做的一切准备现在必须撤销。PL对比特流进行串并转换,对串并转换之后的Symbol进行解码,然后unstripes,移除控制字符,然后这个数据包就会被向上转发至DL。
(2)DL会计算LCRC,并与TLP中的LCRC进行比较,如果CRC检查成功,再检查序列号,如果都没有出现错误,剥离CRC和序列号,向上转发至TL,并返回接收方DL一个AckDLLP,如果在上面的检查中出现了错误,那么返回一个NakDLLP,来申请重传。
(3)TLP在TL层会进行解析,将TLP的信息发送至Device Core来进行响应的操作。如果当前设备是最终接收地,那么TL层还会对比ECRC。
PS:为什么有了ECRC还需要LCRC,这是因为PCIe是点对点的传输协议,LCRC保证了link上传输数据的完整性,但是单个link并不能保证数据到了最终目的地,这时候TLP中的一些字段可能会发生改变,LCRC并不能计算改变下的TLP,这时候就需要ECRC来保证整个传输过程中数据的完整性。

PCIe协议总结1-TLP(1)相关推荐

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

    1.回顾 上一篇博文我们讲解了TLP简介以及TLP Header结构,并列出了TLP的所有类型,如下图.本篇博文讲解核心几个TLP类型的具体结构(下图标注红色的),这些核心的TLP包结构,就是我们下章 ...

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

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

  3. PCIe学习笔记(一)-------1.3 PCIe数据包(TLP,DLLP,PLP)

    目录 1,PCIe的层次结构 2,PCIe数据包 2.1,TLP包 2.2,DLLP包 2.3,PLP包 1,PCIe的层次结构 PICe设备的体系结构可以分为三个层次:事务层(Transaction ...

  4. PCIe协议在SoC中的作用

    下面介绍PCIe在SoC中是如何提高性能的,主要分为以下几个部分: PCIe协议的特点: PCIe设备的认识 PCIe的互联系统 PCIe高带宽低延迟的实现 PCIe对SoC系统性能的提升 一. PC ...

  5. pcie协议_PCIE系统标准体系结构解读(一)

    事务定义为请求者和完成者之间完成一次信息传送需要完成的一系列或多个数据包传送的过程.PCIE 事务可以分为4大类:存储器事务.IO事务.配置事务.消息事务.这些事务可以分成非报告事务(non-post ...

  6. PCIe协议学习笔记之--Configuration Overview

    1 BDF (Bus, Device, Function) BDF是在PCI中就有了的概念.在PCIe 拓扑结构中,我们通过总线号(bus number), 设备号(device numer)和功能号 ...

  7. pcie协议_PCIE总线,你不得不知道的信号分布及使用情况

    PCI-Express简称PCI-E于2001年春季由Intel公司提出.随后在2001年底,包括Intel.AMD.DELL.IBM在内的20多家业界主导公司开始起草新技术的规范,并在2002年底完 ...

  8. PCIe(二)——TLP包构成

    1 简介   TLP包是由PCIe的Endpoint或者Root Complex发送的数据包.在PCIe体系中的事务层生成.   深蓝色部分是物理层添加的开始和结束字段,浅蓝色部分是链路层添加的.这些 ...

  9. PCIE调试笔记理解--TLP理解

    PCIE以TLP包的形式传输.在TX端,TLP包按照应用层 -> 传输层 -> 数据链路层 -> 物理层 一级一级的往下传递:RX端与TX端反向传递.PCIE的TLP包由很多很多的类 ...

最新文章

  1. TimeWatch程序耗时统计
  2. pytorch 查看gpu cuda版本
  3. python utf 8_python写utf-8文件的问题
  4. sim卡无线上网公用服务器,有人推出内置SIM卡GPRS模块!GM3S开启无线数传模块新时代!...
  5. 查找DetailsView1数据控件中的数据
  6. 多线程学习(三)----死锁问题
  7. Hakase and Nano(博弈)
  8. Codeforces Round #149 (Div. 2)【AK】
  9. linux ps mysql_linux系统中ps指令使用详解
  10. git cherry-pick 复制其他分支内容到当前分支
  11. python 操作进程_python进程简单操作
  12. 易我数据恢复向导 v2.0 官网
  13. oracle 列名sql,SQL查询表名、列名、列属性-Oracle
  14. c语言对称矩形的判定,八年级数学下册 第19章 矩形、菱形与正方形 19.1.2 矩形的判定教案 (新版)华东师大版...
  15. 算法设计和分析 ② 分治和递归
  16. foxipdf和adobe_过去和将来的活动:Adobe Max North America和CFCAMP澳大利亚
  17. 安装gtsam遇到的错误
  18. 批处理中出现错误: batch must be either executed or cleared
  19. 【辅助工具】20款优秀的移动产品原型和线框图设计工具
  20. 巅峰战舰服务器维护中,维护公告~

热门文章

  1. A. Alternative Architecture
  2. 【敏捷研发系列】前端DevOps流水线实践
  3. python可视化疫情事实报告(pyecharts)——可视化
  4. PyCharm 2022最新版详细图文安装教程(安装+运行测试+汉化+背景图设置)
  5. 线性变换及其基本性质
  6. 计算机系统讲解(软件设计师考试内容)
  7. Idea中Java项目修改项目名
  8. jmeter结果树为空_【转载】 jmeter 命令行模式(非GUI)运行脚本,察看结果树结果为空,解决办法...
  9. 清华大学出版——C语言从入门到精通(第4版)
  10. ERROR: Timeout after 10 minutes ERROR: Error fetching remote repo 'origin'