PCIe扫盲——PCIe总线事务层入门(一)

news/2025/1/12 11:17:06/文章来源:https://www.cnblogs.com/linhaostudy/p/18623928

在介绍事务层之前,首先简单地了解一下PCIe总线的通信机制。假设某个设备要对另一个设备进行读取数据的操作,首先这个设备(称之为Requester)需要向另一个设备发送一个Request,然后另一个设备(称之为Completer)通过Completion Packet返回数据或者错误信息。

在PCIe Spec中,规定了四种类型的请求(Request):Memory、IO、Configuration和Messages。其中,前三种都是从PCI/PCI-X总线中继承过来的,第四种Messages是PCIe新增加的类型。详细的信息如下表所示:

image

从表中我们可以发现,只有Memory Write和Message是Posted类型的,其他的都是Non-Posted类型的。

  • 所谓Non-posted,就是Requester发送了一个包含Request的包之后,必须要得到一个包含Completion的包的应答,这次传输才算结束,否则会进行等待。

  • 所谓Posted,就是Requester的请求并不需要Completer通过发送包含Completion的包进行应答,当然也就不需要进行等待了。很显然,Posted类型的操作对总线的利用率(效率)要远高于Non-Posted型。

那么为什么要分为Non-Posted和Posted两种类型呢?对于Memory Writes来说,对效率要求较高,因此采用了Posted的方式。但是这并不意味着Posted类型的操作完全不需要Completer进行应答,Completer仍然可采用另一种应答机制——Ack/Nak的机制(在数据链路层实现的)。

PCIe的TLP包共有一下几种类型:

PCIe(Peripheral Component Interconnect Express)中的TLP(Transaction Layer Packet,事务层包)是用于在PCIe设备之间传输数据和控制信息的基本数据单元。TLP包由以下几个部分组成:

  1. 头部(Header):包含包的类型、请求者ID、标签、地址、长度等信息。
  2. 有效载荷(Payload):实际传输的数据内容。
  3. 可选的扩展有效载荷(Optional Extended Payload):用于更大数据量的传输。
  4. 帧校验序列(FCS,Frame Check Sequence):用于确保数据传输的完整性。

TLP包在PCIe链路上传输时,确保了数据的可靠性和完整性,通过使用CRC(循环冗余校验)和序列号来检测和纠正错误

TLP传输的示意图如下图所示:

image

TLP在整个PCIe包结构的位置如以下两张图所示:(第一张为发送端,第二张为接收端)

image

image

其中,TLP包的结构图如下图所示:

image

图中的TLP Digest即ECRC(End-to-End CRC),是可选项。此外,TLP的长度(包括其中的Header、Data和ECRC)是以DW(双字,即四个字节)为单位的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/857455.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024 新版DataGrip安装使用教程(附激活至2099年,以及常见问题处理)

DataGrip 简介 在数据库管理与开发领域,JetBrains 推出的 DataGrip 无疑是一款备受瞩目的工具。它以其对多种数据库引擎的广泛支持而著称,为开发人员和数据库管理员提供了一站式的便捷解决方案。 DataGrip 支持 MySQL、PostgreSQL 等开源数据库,能让使用这些流行数据库的开发…

解锁宠物用品行业的市场密码:看板软件如何助力精准用户调研?

看板软件可以通过数据可视化与分析、供应链优化、售后管理与服务提升以及品牌建设与用户互动等方式,为宠物用品行业解决用户调研中的痛点问题。然而,需要注意的是,看板软件只是解决方案的一部分,企业还需要结合实际情况和市场需求进行综合考虑和实施。宠物用品行业用户调研…

惊!冬至物流大忙,哪类办公软件能增强团队应急能力?

一、前言 冬至期间,物流行业面临着巨大的挑战与机遇。电商平台的促销活动让订单如潮水般涌来,物流 J 人团队需要高效协作,确保每一个包裹都能准确无误且迅速地送达客户手中。在这个关键时期,合适的可视化团队协作办公软件成为了提升工作效率与个人学习效率的得力助手。本文…

触摸芯片之滑条滚轮方案

完美解决了传统用户界面操作复杂和触摸响应异常的问题触摸芯片的常见应用形式:触摸按键模式 触摸滚轮模式 触摸滑条模式触摸按键-触摸开关、控制面板的多按键触摸 触摸滑条/滚轮-触摸调光、调音量、速度、进度、大小家电的状态 智慧家居必备神器——触摸芯片,触摸反应灵敏,无…

DL00358-基于YOLOv8的停车空位检测代码含数据集

YOLOv8(You Only Look Once Version 8)是基于深度学习的目标检测算法,近年来在图像处理领域取得了显著进展,尤其在实时目标检测任务中表现出色。停车空位检测作为计算机视觉应用中的一个重要研究方向,旨在通过智能化系统识别和判断停车场内的空闲车位,为车主提供实时的停…

小迪安全-基础入门-Web应用架构类别源码类别镜像容器建站模版编译封装前后端分离

Web应用&架构类别&源码类别&镜像容器&建站模版&编译封装&前后端分离知识点: 1、基础入门-Web应用-搭建架构上的技术要点 2、基础入门-Web应用-源码类别上的技术要点 一、演示案例-架构类别-模版&分离&集成&容器&镜像 1、套用模版型 c…

流量分析基础篇

1.流量分析是什么?  网络流量分析是指捕捉网络中流动的数据包,并通过查看包内部数据以及进行相关的协议、流量分析、统计等来发现网络运行过程中出现的问题。2.常见的流量包协议TCP ; UDP ; HTTP ; HTTPS ; FTP ; SMB 等TCP / UDP传输机制TCP协议传输先向你发送三次握手建立…

.net framework 4.7.2 框架winform项目升级到.net 8.0项目 log4net不起作用的解决办法

问题描述: 在.net framework 4.7.2 框架中的winform项目,引入log4net作为日志组件使用,一切正常,可以正常输出日志。 但项目框架升级到.net 8.0后,log4net的使用就报错,虽然网上有很多关于.net 8.0配置并使用log4net的方法,但有些我尝试没有用,有些代码所在位置看不懂在…

纯js文字洗牌式切换特效插件

ShuffleText是一款纯js文字洗牌式切换特效插件。该插件在鼠标滑过指定的文本时,文字会不停的逐个进行翻转,类似洗牌效果,非常炫酷。在线演示 下载使用方法 在页面中引入shuffle-text.js文件。< script src="path/to/shuffle-text.js"> HTML结构 ShuffleTex…

ABB机器人IO板短路怎么解决

解决ABB机器人IO板短路问题的步骤 - 关闭控制系统电源:首先,关闭ABB机器人的控制系统电源,以确保安全操作。 - 检查线路连接:检查IO板的线路连接是否牢固,有无松动或损坏的迹象。 - 使用万用表测量:使用万用表测量电路的三相是否有短路或接地现象。在测量时,…

聊一聊 C#线程池 的线程动态注入 (上)

一:背景 1. 讲故事 在线程饥饿的场景中,我们首先要了解的就是线程是如何动态注入的?其实现如今的ThreadPool内部的实现逻辑非常复杂,而且随着版本的迭代内部逻辑也在不断的变化,有时候也没必要详细的去了解,只需在稍微宏观的角度去理解一下即可,我准备用三篇来详细的聊一…