【PCIE】TLP 发送三阶段和Secondary Bus Reset

news2024/11/24 16:41:27

TLP传输三阶段

TLP 发送的三个阶段涉及到 PCIe 协议栈中的不同层次,具体如下:
在这里插入图片描述

TLP 发送阶段 1(TS1):这个阶段是在传输层(Transaction Layer)中进行的。在这个阶段,TLP 数据包会进行编码和格式化处理,并添加一些控制信息,如 Stream ID 和序列号等。同时,在这个阶段还会进行一些流控制、纠错等相关处理。

TLP 发送阶段 2(TS2):这个阶段是在数据链路层(Data Link Layer)中进行的。在这个阶段,TLP 数据包的比特流会被转换为物理层链接的差分信号,然后通过物理层芯片驱动器(driver)发送到信道上。

TLP 发送阶段 3(TS3):这个阶段是在物理层(Physical Layer)中进行的。在这个阶段,驱动器会将比特流转换为物理层链接的差分信号,并在信道上进行传输。接收端会对这些信号进行抽取、采样和解码,以还原原始的比特流。如果传输成功,接收端会向发送端发送确认反馈(ACK),完成数据传输过程。

因此,TLP 发送阶段从传输层开始,经过数据链路层和物理层,最终完成数据的传输。

TS1

在 PCIe 协议中,TS1 是指 TLP 发送阶段 1(TLP Transmission Stage 1),也可以简称为 TLP 阶段 1。TLP 是指传输层协议(Transaction Layer Packet),用于在 PCIe 系统中传输数据和控制信息。TLP 发送阶段 1 在 TLP 数据包被发送到物理层之前执行,包括以下步骤:

  1. 发送端对 TLP 数据包进行编码,包括添加首部、进行 CRC 校验等。
  2. 发送端将编码后的 TLP 数据包转换成物理层可传输的比特流。
  3. 发送端将比特流发送到物理层,开始传输过程。

因此,TS1 是指 TLP 数据包在经过传输层之前的一个处理阶段,涉及到 TLP 数据包的编码和转换等过程,确保数据能够正确地传输到物理层。需要注意的是,在 PCIe 规范中,TS1 有时也被称为 DLLP 发送阶段 1(Data Link Layer Packet Transmission Stage 1),但含义是相同的。

TS23

在 PCIe 协议中,TS2 是指 TLP 发送阶段 2(TLP Transmission Stage 2),也可以称为 TLP 阶段 2 或 DLLP 发送阶段 2(Data Link Layer Packet Transmission Stage 2)。TS2 是 TLP 数据包进入数据链路层时的一个处理阶段,其主要任务是将传输层中编码后的 TLP 数据包转化为物理层可传输的差分信号,并对其进行一些控制和纠错处理,如预加重、功率控制、差分输出等。

而 TS3 是指 TLP 发送阶段 3(TLP Transmission Stage 3),也可以简称为 TLP 阶段 3。TS3 是在物理层中进行的一个处理阶段,其主要任务是等待接收端的确认反馈(ACK),以确定数据是否成功传输。如果成功,发送端会通知上层协议栈,否则会进行重传或其他纠错操作。

需要注意的是,在 PCIe 规范中,有时也会将 TS2 和 TS3 统称为数据链路层发送阶段,因为它们都是在 PCIe 协议栈的数据链路层中执行的。但 TS2 主要涉及到物理层和数据链路层之间的转换处理,而 TS3 则是针对物理层传输的结果进行的确认和处理。

Secondary Bus Reset

Secondary Bus Reset是PCI Express (PCIe) 总线协议中的一种重置机制,用于恢复处于部分失效状态的PCIe设备和子系统。

在PCIe总线中,每个Root Complex(根复杂)都有一个Primary Bus,而每个Secondary Bus都连接到Primary Bus上的一个PCI桥接器。当Secondary Bus上的某个设备或子系统出现异常情况时,可能会导致连接到该Bus上的其他设备也受到影响,从而造成数据传输错误、系统崩溃等问题。此时,可以利用Secondary Bus Reset机制来尝试修复这些异常情况,并恢复总线的正常工作状态。

具体来说,当Host Controller发现Secondary Bus上出现异常情况时,可以向该Bus发送Secondary Bus Reset信号。这个信号会通知所有连接到该Bus上的设备和子系统进行重置操作,使它们恢复到初始状态。在这个过程中,所有与该Bus相关的内存映射区域和设备配置寄存器都会被清空,所有正在进行的DMA操作也会被终止。

需要注意的是,Secondary Bus Reset信号只会影响到当前Bus上的设备和子系统,并不会影响到PCIe总线中其他Bus上的设备和子系统。因此,如果出现了多个Bus上的异常情况,可能需要对每个Bus都进行Reset操作以达到完全的修复效果。

总之,Secondary Bus Reset是PCIe总线协议中的一种重置机制,用于恢复处于部分失效状态的PCIe设备和子系统。它可以清空所有与该Bus相关的内存映射区域和设备配置寄存器,并终止正在进行的DMA操作,是一个重要的故障恢复手段。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

轻松应对大数据挑战!利用ETLCloud实现TDengine数据库的高效查询与数据迁移

TDengine 是一款开源、云原生的时序数据库,专为物联网、工业互联网、金融、IT 运维监控等场景设计并优化。它能让大量设备、数据采集器每天产生的高达 TB 甚至 PB 级的数据得到高效实时的处理,对业务的运行状态进行实时的监测、预警。 根据TDengine文档…

算法--递归--基础

定义 计算机科学中,递归是一种解决计算问题的方法,其中解决方案取决于同一类问题的更小子集 递归是一种非常高效、简洁的编码技巧,一种应用非常广泛的算法。 如求100以内的和 那么就等同于求10099以内的和 99以内和等同于9998以内的和 … 依…

复杂SQL优化实例

SQL语句的执行顺序: 执行计划指标查看 优化实例一 LIMIT 语句 分页查询是最常用的场景之一,但也通常也是最容易出问题的地方。比如对于下面简单的语句,一般 DBA 想到的办法是在 type, name, create_time 字段上加组合索引。这样条件排序都能…

面对市面上众多的商城系统,我们该如何选择?

数字化时代,传统的实体店铺发展进入瓶颈。越来越多的消费者选择在网上购物,这也催生了各种各样的电商平台和商城系统,如SHOP、Magento等。但是,对于那些想要进入电子商务领域的企业来说,如何选择适合自己的商城系统&am…

[BigGAN] Large Scale GAN Training for High Fidelity Natural Image Synthesis

1、目的 在大型数据集上训练class-conditional GAN,并探索相关的trick 2、贡献 1)数据集的扩大使得GAN的表现也随之提升。文章的网络参数量是之前工作的2~4倍,batch size是之前的8倍。文章分别从两方面对performance进行提升:sca…

计算机视觉:语义分割理论及实战

语义分割 语义分割(Semantic Segmentation)是指将一张图像分割成若干个区域,并对每个区域赋予语义标签的任务。它是计算机视觉中的一种重要技术,被广泛应用于自动驾驶、医学图像分析、地理信息系统等领域。 与传统的图像分割任务…

奇安信应急响应-Linux

Linux需要经常关注的目录 /etc/passwd用户信息文件:我们需要看一下里面到底是什么,保存的用户信息 /etc/rc.d/rc.loacl:开机启动项:类似于Windows的开机启动项,有可能攻击者会在里面写一个后门文件,需要重…

EM算法实现对iris数据集和meat数据集的分类【MATLAB版本】

摘要:本章实验主要是对于学习 EM 算法的原理,掌握并实现混合高斯模型非监督学习 的 EM 算法,要求在两个数据集上面实现混合高斯模型的非监督学习的EM算法。混合模型是相对于单高斯模型而言的,对于某个样本数…

【高级篇】分布式事务

分布式事务 1.分布式事务问题 1.1.本地事务 本地事务,也就是传统的单机事务。在传统数据库事务中,必须要满足四个原则: 1.2.分布式事务 分布式事务,就是指不是在单个服务或单个数据库架构下,产生的事务&#xff0c…

Nginx:Tomcat部署及优化(二)

Nginx:Tomcat部署及优化(二) 一、Tomcat 优化1.1 内核参数优化1.2 Tomcat 配置文件参数优化1.3 Java 虚拟机(JVM)调优 二、NginxTomcat 负载均衡、动静分离 一、Tomcat 优化 Tomcat 默认安装下的缺省配置并不适合生产…

9款超级实用的网页设计工具,快来看看有没有你用过的

随着网络时代的快速发展,游戏、购物、音乐、影视和社交网站的兴起都表明了网页设计的重要性! 网页设计工具作为网页设计师的生产工具,自然要选择好的。 让我们分享9个高质量的网页设计工具,让您的设计效率悄然提高! …

【Python TDD和BDD】零基础也能轻松掌握的学习路线与参考资料

Python TDD和BDD的学习路线 TDD(测试驱动开发)和BDD(行为驱动开发)在软件开发中的作用越来越受到重视。TDD通过先写测试代码,再编写生产代码的方式,使得开发者可以在开发过程中确保代码质量和正确性&#…

黑客学习-xss漏洞总结

1、什么是xss 先来看案例 在一个输入框中,输入js代码,存放alter()其弹窗,结果可以看到,代码成功执行。这个就是xss漏洞 XSS攻击全称跨站脚本攻击,是一种在Web应用中常见的安全漏洞,它允许用户将恶意代码植入到Web页面…

分布式事务 2PC

tip:作为程序员一定学习编程之道,一定要对代码的编写有追求,不能实现就完事了。我们应该让自己写的代码更加优雅,即使这会费时费力。 文章目录 一、简介二、2PC 的运行流程三、2PC 一定能保证数据的一致性吗?四、2PC 的…

软件测试——未来软件测试的5个主要趋势

全球各地的企业每天都在发展变化着,以应对市场挑战,满足日益成熟的客户需求。即使是正在进行的技术进步也会使软件测试专家在实践的过程中更加专注和精确。 2021年给软件测试领域带来了新的技术解决方案,以及质量保证和软件测试的实现。与此同…

Springcloud--异步通信RabbitMq快速入门

RabbitMQ 1.初识MQ 1.1.同步和异步通讯 微服务间通讯有同步和异步两种方式: 同步通讯:就像打电话,需要实时响应。 异步通讯:就像发邮件,不需要马上回复。 两种方式各有优劣,打电话可以立即得到响应&am…

YOLOv5改进系列(8)——添加SOCA注意力机制

【YOLOv5改进系列】前期回顾: YOLOv5改进系列(0)——重要性能指标与训练结果评价及分析 YOLOv5改进系列(1)——添加SE注意力机制

动态查找表

动态查找表 1.二叉排序树1.1. 定义1.2. 查找过程1.3. 插入过程1.4. 创建二叉排序树1.5. 删除操作(1)被移除的结点是叶子结点(2)被移除的结点只有左子树或者只有右子树;(3)被移除的结点既有左子树…

两张图理解MR与XR

我们知道,AR是在现实世界上叠加虚拟信息和图像,VR是完全模拟的虚拟世界,那么对于MR和XR的概念会稍显复杂,本文试图通过2张图来理解它们,如有不对,祈请纠正。 MR 关于MR,先来看看下面第一张图。 …

vue 3 第三十四章:nextTick

nextTick是Vue3中的一个非常有用的函数&#xff0c;它可以在下一次DOM更新循环结束后执行回调函数。这个函数可以用来解决一些异步更新视图的问题&#xff0c;例如在修改数据后立即获取更新后的DOM节点。以下是一个简单的示例&#xff1a; <template><div><p&g…