PCIe专题学习——2.1

2023-11-03

之前我们对PCIe的一些基础概念做了一个宏观的介绍,了解了PCIe是一种封装分层协议(packet-based layered protocol),主要包括事务层(Transaction layer),数据链路层(Data link layer)和物理层(physical layer)。

一:事务层TLP的前世今生

PCIe总线使用的数据报文首先在事务层中形成,这个数据报文也被称为事务层数据报文,即TLP(Transaction Layer packet),TLP在经过数据链路层时被加上sequence number前缀和crc后缀,然后发向物理层。

生活中,有时,我们会陷入一个哲学性的思考:“我们来自哪里,终归何方?”同样的,TLP也有这个命题的答案,TLP来自发送设备的事务层,历经“磨难”,终归接收端的事务层。

那么,在TLP传递的过程中到底要经理哪些磨难呢?请看下图~

 

我们逐一解析一下这些磨难:

1:发送端Device Core发送事务请求:数据读写,完成反馈(Completions),信息(Message)等;

2:事务层根据Device Core的请求,生成TLP Header,加上Device Core提供的data,最后加上ECRC(end to end crc),此时TLP会放入事务层缓存(Virtual Channel Buffer)之中;

 

3:当TLP传递至数据链路层时,会被加上sequence number以及LCRC(link CRC),此时,生成“加强版”TLP,并放入数据链路层的Retry buffer;

 

4:当TLP被传送至物理层时,被加上头和尾,到这里,TLP在发送端就组装完毕了;

 

5:在接收端就很发送端做的事情相反了,在物理层需要掐头去尾,然后传输至数据链路层;

6:数据链路层收到传入的TLP后,通过计算LCRC验证传输是否正确,正确的话就去掉sequence Number和LCRC,将TLP传输至事务层;

7:事务层接收到TLP后,解析其内容,并将信息传给接收端Device Core,至此,发送端传过来的组装TLP已拆解完毕;

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PCIe专题学习——2.1 的相关文章

  • pcie标准_PCIe 5.0 标准

    PCIe规范由PCISIG组织进行发布的 xff0c PCISIG其英文全称为 xff1a Peripheral Component Interconnect Special Interest Group 外围部件互连专业组 xff0c 简
  • linux pcie RC 框架

    1 linux pcie rc framework Following is a brief explanation of layers shown in the diagram There are different drivers fo
  • NGFF、M.2、PCIe、NVMe概念区分以及PCIEx1 x4 x8 x16区别

    对于NGFF M 2 PCIe NVMe等概念的说明 解决方案 NGFF Next Generation Form Factor xff0c 顾名思义 xff0c 是物理外形 Form Factor 的标准 与 NGFF 并列的是 2 5
  • 深入PCI与PCIe

    转载于老狼 xff1a https zhuanlan zhihu com p 26172972 https zhuanlan zhihu com p 26244141 PCI总线和设备树是X86硬件体系内很重要的组成部分 xff0c 几乎所
  • PCIe RAS

    对于Linux系统针对RAS的AER错误处理机制完成 PCIe RAS简单来讲就是PCIe的错误检测 纠正以及汇报的机制 它可以方便我们准确的定位 xff0c 纠正和分析错误增强系统的健壮性和可靠性 PCIe错误的分类 PCIe错误分为可校
  • Jetson Xavier RC EP 的PCIe互通测试(12)

    一 硬件连接 xff1a 交叉线 X16引脚定义 xff1a 从此面看 xff1a 从上到下 xff0c 依次为A1 A2 A3 从背面看 xff1a 从上到下 xff0c 依次为B1 B2 B3 注意断开 xff1a A2 A3 B1 B
  • 老男孩读PCIe之五:TLP结构

    来源 xff1a http www ssdfans com p 61 3683 无论Request TLP xff0c 还是作为回应的Completion TLP xff0c 它们模样都差不多 xff1a 图5 1 TLP主要由三部分组成
  • PCIe扫盲——PCIe简介

    转载地址 xff1a http blog chinaaet com justlxy p 5100053066 PCI Express是继ISA和PCI总线之后的第三代I O总线 xff0c 即3GIO 由Intel在2001年的IDF上提出
  • FPGA基于XDMA实现PCIE X8的HDMI视频采集 提供工程源码和QT上位机程序和技术支持

    目录 1 前言2 我已有的PCIE方案3 PCIE理论4 总体设计思路和方案5 vivado工程详解6 驱动安装7 QT上位机软件8 上板调试验证9 福利 xff1a 工程代码的获取 1 前言 PCIE xff08 PCI Express
  • Linux PCIe驱动框架分析(第三章)

    目录 项目背景 1 概述 2 流程分析 2 1 Device Tree 2 2 probe流程 2 3 中断处理 2 4 总结 项目背景 Kernel版本 4 14 ARM64处理器 使用工具 Source Insight 3 5 Visi
  • 大带宽、高速率接口对比---USB、PCIE、SATA、HDMI和以太网等接口

    一 PCIE接口 二 USB接口 三 SATA接口 SATA 编码方式 原始频宽 传输速率 有效速率 排线最长长度 SATA1 0 SATA2 0 8bit 10bit 3Gb s 300MB s 275MB s 1M SATA3 0 8b
  • [PCIe]LTSSM与电源管理

    1 LTSSM LTSSM全称是Link Training and Status State Machine 有以下11个状态 Detect Polling Configuration Recovery L0 L0s L1 L2 Hot R
  • PCIe专题学习——2.4

    之前我们讲了对PCIe的一些基础概念做了一个宏观的介绍 了解了PCIe是一种封装分层协议 packet based layered protocol 主要包括事务层 Transaction layer 数据链路层 Data link lay
  • PCIe专题学习——2.5(Flow control缓存架构及信用积分)

    之前我们讲了对PCIe的一些基础概念作了一个宏观的介绍 了解了PCIe是一种封装分层协议 packet based layered protocol 主要包括事务层 Transaction layer 数据链路层 Data link lay
  • 【PCIe 5.0 - 8】PCIe 事务层详解4 - First/Last DW Byte Enables规则

    First Last DW Byte Enables规则 Byte Enables包含在Memory I O 和Configuration Requests中 本节定义了相应的规则 Byte Enables出现在Request header
  • 深入PCI与PCIe之一:硬件篇

    PCI总线和设备树是X86硬件体系内很重要的组成部分 几乎所有的外围硬件都以这样或那样的形式连接到PCI设备树上 虽然Intel为了方便各种IP的接入而提出IOSF总线 但是其主体接口 primary interface 还依然是PCIe形
  • 玻纤效应对skew的影响(三)

    玻纤效应对skew的影响 一 玻纤效应对skew的影响 二 对内skew对32Gbps NRZ和64Gbps PAM 4的影响 这一篇中 玻纤效应造成的对内skew将会加入到32Gbps NRZ和64Gbps PAM 4 SerDes全链路
  • Linux驱动程序DMA传输到PC作为主机的PCIe卡

    我正在开发一个 DMA 例程 将数据从 PC 传输到 PCIe 卡上的 FPGA 我阅读了 DMA API txt 和 LDD3 ch 15 详细信息 但是 我不知道如何从 PC 到 PCIe 卡上的一致 iomem 块进行 DMA 传输
  • 在用户空间中启用写组合 IO 访问

    我有一个带有用户空间驱动程序的 PCIe 设备 我通过 BAR 向设备写入命令 这些命令对延迟敏感并且数据量很小 64 字节 因此我不想使用 DMA 如果我使用以下命令重新映射内核中 BAR 的物理地址ioremap wc然后将64字节写入
  • Intel NVMe 驱动器扇区大小不是 4096 的 xfs 文件系统导致性能下降

    我正在 Linux Ubuntu 14 04 上使用 NVMe 卡 我发现 当使用默认扇区大小 512 的 xfs 文件系统进行格式化时 Intel NVMe 卡的性能会出现一些下降 或任何其他小于 4096 的扇区大小 在实验中 我使用默

随机推荐

  • POI getDataFormat() 格式对照

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 参照org apache poi ss usermodel BuiltinFormats的说明 Open Declaration org apache poi ss use
  • C#获得DataGrid单元格的值

    WPF中的DataGrid控件类似于WindowsForm中的DataGridView 但是DataGridView中的单元格值获取非常简单直观 如下 string cellvalue datagridview Rows rowindex
  • RuntimeError: CUDA error: device-side assert triggered

    RuntimeError CUDA error device side assert triggered解决办法 这是由于数据标签默认是从0开始的 比如标签类别为5类 默认是 0 1 2 3 4 而自己是 1 2 3 4 5 只需要在标签数
  • Scala的基础语法(超详细版)

    Scala的基础语法 文章目录 Scala的基础语法 1 声明值和变量 2 数据类型 3 算术和操作符重载 4 控制结构语句 4 1条件分支语句 4 2循环语句 5 方法与函数 5 1方法 5 2 函数 5 3 方法转换成函数 1 声明值和
  • python爬虫-北京租房可视化分析

    目的 使用scrapy框架爬取租赁信息 对数据进行处理利用python中的seaborn matplotlib库进行可视化分析 最后查看昌平区待租量排前十小区对应地铁站点 及其平均租房价格 1 爬虫 使用scrapy框架爬取beike租房信
  • chatGPT做算法题

    今天突发奇想 自己编了一道算法题让newbing和chatgpt做 问newbing后 没搜索到相关内容 回复无法理解题目 问chatGPT后给出了回答 见下图 一开始我很震惊 算法居然如此简洁 我知道这个题可以用动态规划解 但是算法也没有
  • CocosCreator查找图片引用

    相信大家可能需要查找图片在哪个Prefab中使用到 于是我们像下图这样查找一下 查找的时候CocosCreator会给出我们查找的图片资源的uuid 比如 我的uuid 33a791ca 5a28 4c2a b451 7c6b8f9a037
  • 简单C语言两数相加

    在C语言中 相加两数是一个基本的要求 但其实也有复杂操作 比如高精度加法 或者链表相加 还要考虑进位 都是比较难的 那么今天我们来聊一聊简单的problem a b 先发代码 include
  • hiveSQL基本语句三-----连接查询--inner join、left join、full join、union all、union

    一 inner join 连接2个表 取出公共部分 必须重命名 on后连接条件键值唯一 连接前注意去重 提高效率 inner可省略 select from user list 1 as a inner join user list 2 as
  • keras图像风格迁移

    风格迁移 在内容上尽量与基准图像保持一致 在风格上尽量与风格图像保持一致 1 使用预训练的VGG19网络提取特征 2 损失函数之一是 内容损失 content loss 代表合成的图像的特征与基准图像的特征之间的L2距离 保证生成的图像内容
  • 创客教育的法则

    认为创客教育顾名思义是创造客户价值的意思 那可就错了 创客是教育培训行业里的一个专用名词 属于新型创新的模式 格物斯坦提醒 想要进行创客教育的学生 老师以及家长们 要谨慎选择合适的创客教育培训机构 这样才能万无一失 核心注重课程体系的自主研
  • vscode+gcc+jlink调试mcu程序(用于替代IDE)

    一 前言 几年前写过一篇类似的文章 那时是用于调试rtthread系统 使用 VSCode arm none eabi gdb J Link GDB Server 调试RTThread 当时有关vscode和gcc调试MCU的文章很少 所以
  • golang中数组和切片的区别与联系

    golang中数组和切片的区别 切片时指针类型 数组是值类型 数组的长度是固定的 而切片不是 切片是动态的数组 切片比数组多一个属性 容量 cap 切片的底层是数组 既然一个是指针类型 一个是值类型 那么区别体现在哪里呢 看下这个例子 nu
  • 思科模拟器Cisco Packet Tracer安装指南

    前言 本篇为思科模拟器Cisco Packet Tracer的官方英文正版安装指南 官方英文正版虽然可以免费使用 但是要登录思科账户 账户同时登录思科旗下的网络学院并订阅课程和完善个人资料 本篇会教你怎么一步一步去完成这些 而且绝大部分还是
  • 最常犯的 HTML 标识错误 Top 100

    国外的一个网站 W3CLove 最近对在其网站上进行的 45 万的网页验证进行统计 下面是最频繁的错误和警告列表 W3CLove是一个用来验证网页编写是否规范的在线网站 不过用它来测试 oschina 页面的时候 提示错误 Sorry we
  • H5之微信授权登陆 (uniapp网页版微信授权登录)

    今天来复盘代码了 不然这个月过完 我可能脑子里又啥都不剩了 感觉自己跟个金鱼脑一样 十分沧桑 1 首先 要做微信授权登录 你的有一个微信公众号 因为授权登录要配置APPID 以及网页授权域名 这里的网页授权域名真的让我栽了好多的坑一言难尽
  • 在Linux系统中部署Tomcat并通过公网访问

    如果你想要将SSM的项目部署上线 那么你首先就必须将Tomncat上传部署到LInux系统中 因为SSM打包后的war文件需要Tomcat容器 接下来我就详细介绍一下如何在Linux中部署Tomcat并如何通过公网访问 1 购买阿里云服务器
  • Java基础之流程控制08:For循环

    For循环 虽然所有循环结构都可以用 while 或者 do while 表示 但 Java 提供了另一种语句 for循环 使一些循环结构变得更加简单 for 循环语句是支持迭代的一种通用结构 是最有效 最灵活的循环结构 for 循环执行的
  • Harris角点检测

    一 什么是角点 也叫作感兴趣的关键点 我们可以直观的概括下角点所具有的特征 gt 轮廓之间的交点 gt 对于同一场景 即使视角发生变化 通常具备稳定性质的特征 gt 该点附近区域的像素点无论在梯度方向上还是其梯度幅值上有着较大变化 二 角点
  • PCIe专题学习——2.1

    之前我们对PCIe的一些基础概念做了一个宏观的介绍 了解了PCIe是一种封装分层协议 packet based layered protocol 主要包括事务层 Transaction layer 数据链路层 Data link layer