【PCIE体系结构十三】LTSSM

👉个人主页:highman110

👉作者简介:一名硬件工程师,持续学习,不断记录,保持思考,输出干货内容 

参考书籍:《PCI.EXPRESS系统体系结构标准教材 Mindshare》   

目录

概览       

检测

轮询

配置

L0

恢复

L0s

L1

L2

回环

禁用

Hot复位


概览       

         LTSSM由11个定级状态所组成:检测(Detect)、轮询(Polling)、配置(Configuration)、恢复(Recovery)、L0、LOs、L1、L2、Hot复位、回环(Loopback)和禁用(Disable)。这些状态可分为以下5类:

        1.链路定向状态。

        2.链路重新定向状态。

        3.电源管理状态。

        4.活动电源管理状态。

        5.其他状态。

        从任何类型的复位状态退出后,LTSSM流通过以下步骤重新训练:检测>轮询>配置>L0。其他状态间的转换大家看图中的箭头理解,这里暂不多提。

 

        下面简单描述一下这11种状态:

检测

        这是复位后的初始状态。在该状态中,设备检测链路远端连接的设备是否存在以及使用了多少条lane资源。也可从几个其他LTSSM状态中进入检测状态,大家可以看上面状态机图的箭头。Detect状态主要包含了两个子状态:Detect.Quiet和Detect.Active.

        (1) 检测.静止(Detect.Quiet)子状态

        进入:从基本复位或Hot复位进入,也可从L1、回环、禁用、轮询、配置和恢复状态进入。

        在检测.静止期间:发送器处于电气空闲状态。在将链路置于电气空闲状态前不必发送电气空闲有序集;发送器驱动一个DC共模电压(不必满足0~3.6V的规范);初始化2.5Gbit/s(第一代)的传输速率(不需要通过TS1和TS2有序集来通告链路速率);数据链路层发送LinkUp=0。

        退出到检测.活动:12ms超时后(处于检测.静止状态超过12ms)或当链路退出电气空闲状态时退到该状态。

        (2) 检测.活动(Detect.Active)子状态

        从检测.静止状态进入:12ms后或当链路退出电气空闲状态时进入该状态。

        在检测.活动期间:发送器设备检测链路的所有通道上是否连接了接收器。发送器在所有通道上启动一个稳定的DC共模电压。该电压可以是VbD、GND,或者这两个值之间的其他稳定电压。然后发送器驱动一个与当前值不同的DC共模电压。根据D+和D-向新电压的线路充电速率来检测接收器。在设计时,设备就被设计成知道更改电压所需的充电时间(基于假定的线路阻抗和在没有接收器终端情况下的发送器阻抗)。如果在另一端连接了接收器,充电时间将比没有连接接收器时要长。

        退出到检测.静止:出现在未检测到接收器时。只要未连接接收器,就每12ms重复一次检测.静止到检测.活动的循环。如果在所有已配置的通道上检测到接收器,则下一个状态是轮询。

        退出到轮询:如果设备检测到已连接的接收器则退出到轮询状态。现在该设备必须驱动一个0~3.6V的VTX-CM-DC规范内的DC共模电压。

        特殊情况:如果并非所有的设备通道都连接到接收器。例如,一台x4的设备连接到一台x2的设备。在这种情况下,设备会检测某些通道(两条通道)连接到接收器,而其他则没有。那些连接到接收器的通道属于LTSSM,而那些未连接到接收器的通道有两种选择:

        a.那些未连接到接收器的通道属于另一个LTSSM(如果该通道可作为分离的链路运行),这些LTSSM继续重复上述接收器检测序列(就是剩下的链路继续检测)。

        b.那些未连接到接收器并且无法成为另一条链路或LTSSM一部分的通道必须将无连

接的通道转换为电气空闲状态(就是剩下的链路进入电气空闲)。

轮询

        在链路训练和初始化过程中,设备将在此状态首次进行PLP(如TS1/TS2有序集)交互。在轮询状态期间完成以下训练内容:

        比特锁定;

        符号锁定;

        通道极性;

        通道数据速率;

        另外一致性测试也出现在该状态中:

        在一致性测试期间,发送器输出指定的一致性测试码型。测试设备使用该码型来验证所有的电压、噪声的发射和训练规范是否处于误差范围之内。在轮询状态期间,设备发送TS1和TS2有序集并响应接收到的TS1和TS2有序集。通过交换TS1和TS2有序集中的速率ID字段(支持的最高速率)来通告对更高比特速率的支持。

 

        下面按照上图的箭头,从左往右简单描述一下子状态间的转换。

        1、当检测完成,发送器在所有检测到接收器的通道上驱动DC共模电压后,将进入轮询.活动状态,在这个状态下,两台已连接设备的发送器在所有连接的通道上最少发送1024个通道和链路号字段中使用PAD符号填充的连续的TS1有序集。1024个TS1有序集总计用64us的时间来实现比特和符号锁定。

        2、如果在轮询.活动状态检测到有任意一条lane从未检测到从电气空闲退出,那么就退出到轮询.一致状态(一条通道上的被动测试负载,如电阻器,即可强制所有通道进入轮询.一致状态),当然,在轮询.一致状态如果所有lane都退出了电气空闲,将进入到轮询.活动状态继续进行TS1交互。

        3、如果在轮询.活动状态任意通道上都没有接收到链路和通道号字段设置为PAD符号的TS1或TS2有序集,则退出到检测状态。

        4、如果在轮询.活动状态下,设备在所有通道上接收到8个连续的通道和链路号字段设置为PAD符号的TS1或TS2有序集(或者其补码,由于极性倒置所致),或者24ms超时后,设备在任意通道(在检测状态期间已检测到连接了接收器)上接收到8个连续的TS1或TS2有序集(或者其补码),并且所有通道都检测电气空闲的退出,将进入到轮询.配置状态。

        5、在轮询.配置期间如果接收器看到TS1/TS2有序集的补码(对于TS1有序集而言接收的是D21.5而不是D10.2,对于TS2有序集而言接收的是D26.5而不是D5.2),将进行极性反转。

        6、在Polling状态机中,还有一个Polling.Speed子状态,该状态的主要作用是调整PCIe链路使用的数据传送率。当一个PCIe链路两端的设备可以支持高于2.5GT/s的数据传送率时,可以首先进入该状态,改变PCIe链路的数据传送率。在许多PCIe设备的具体实现中,并没有使用Polling.Speed子状态。此时在PCIe链路的训练过程中,将缺省使用2.5GT/s的数据传送率。此时LTSSM状态机将首先沿着Detect→Polling→Configuration→L0的路径进入L0状态,并使用2.5GT/s的数据传送率,即便PCle链路两端的设备都支持更高的数据传送率。当PCIe设备改变数据传送率时,需要在L0状态,通过向对端设备发送TS1序列(其speed_change位为1),使PCIe链路两端设备进入Recovery状态后,才能改变缺省使用的数据传送率。所以上图中有个叉。

配置

        在配置状态期间完成以下训练内容:

        链路宽度;

        链路号;

        通道反转;

        极性倒置(如果需要);

        执行通道到通道相位补偿。

        发送器和接收器以协商好的数据速率进行通信。在该状态期间,可以禁用加扰、进人禁用和回环状态,并建立从L0s状态转换到L0状态所必需的FTS有序集的数目。

 

        这个状态重要的是链路宽度和lane number的确认,如上图,两端先互相发送带有link number字段和lane number字段的TS1完成link number和lane number accept,然后发送TS2对之前设定的Link/Lane number进行确认,确认无误就可以进入L0了。

L0

        这是链路正常、完全活动的状态,在该状态期间发送并接收TLP、DLLP和PLP。如果需要切换到高于 2.5 GT/s 的速度传输,则需要进入 Recovery 状态进行链路重训练(Re-Training)。

恢复

        PCIe 链路需要进行重训练(Re-Training)时会进入该状态,可能的原因有:

        1、PCIe链路信号发现error,需要调整Bit Lock和Symbol Lock;

        2、从L0s或者L1低功耗电源状态退出;

        3、Speed Change。因为第一次进入L0状态时,速率是2.5GT/s. 当需要进行速率调整5.0GT/s或者8.0GT/s时,需要进入Recovery状态进行Speed Change. 这个阶段,Bit Lock、Symbol Lock等都需要重新获取;

        4、需要重新调整PCIe链路的Width;

        5、软件触发Re-Training操作;

        6、仅在Gen3和Gen4,需要重新进行Equalization。

        在 Recovery状态,重新建立Bit Lock和Symbol/Block Lock的过程与Polling状态相似,但是要比Polling状态花的时间更短。

L0s

        这是ASPM(Active State Power Management)机制提供的第 1 级低功耗的、活动电源管理状态。从L0s状态转换回L0状态只需很短的时间(因为LTSSM不必经过恢复状态)。当链路处于L0状态时,在发送器发送并且远程接收器接收了电气空闲有序集EIOS后即进入该状态。从L0s状态退出到L0状态涉及到发送和接收FTS有序集。从L0s退出到L0时,必须执行通道到通道的相位补偿,并重新建立比特和符号锁定。

L1

        这是是 ASPM(Active State Power Management)机制提供的第 2 级低功耗状态,比L0s更低。L1退出延迟(通过恢复状态)比L0s退出延迟的时间要长。想要进入 L1 状态,位于PCIe总线两端的设备需要进行协商,然后同时进入L1状态。两种可能的方式如下:

        1、ASPM机制下硬件自动切换。当一端设备的硬件发现没有TLP或者DLLP需要再发送的时候,就会自动和另一端进行协商进入L1状态。如果对端设备同意,则二者同时进入L1状态;如果对端设备拒绝,则本端会进入 L0s 状态。协商过程就是发EIOS,如果PCIe设备的接收逻辑RX从任意Lane中收到1个或者2个EIOS序列后,该设备将进入到L1或者L2状态。当PCIe链路工作在2.5GT/s时,需要发送1个EIOS序列;如果工作在5GT/s时,需要发送2个EIOS序列。注意,只有下游设备(EP或者Switch的上游端口)可以主动“进入L1状态”,而上游设(RC或者Switch的下游端口)必须与下游设备进行协商后才能进入L1状态。

        2、电源管理软件通过命令将设备配置为低功耗状态(D1,D2,D3hot)。此时Upstream Port和Downstream Port上的设备同时进入L1状态。

处于L1状态时,PCIe设备的发送逻辑TX仍然需要维持一个相对较低的DC共模电压。

L2

        这是最低的电源状态。大多数发送器和接收器逻辑都已关闭(除了接收器终端外,其必须加电以使接收器处于低阻抗状态)。尽管Vaux电源可用,但是并不保证主电源

和时钟。这种状态可以通过系统唤醒事件来唤醒。

回环

        该状态用做测试和故障隔离状态。可在每条通道上或在整个所配置的链路上进行测试。回环主(Loopback Master)设备向回环从(Loopback Slave)设备发送TS1有序集,其中的TS1训练控制字段内设置了回环比特。回环从设备接收到两个连续的、设置有回环比特的TS1有序集后,就进入回环状态。

禁用

        该状态允许禁用已配置的链路(如意外删除了远程设备)。在该状态中,发送器驱动器处于高阻抗状态,接收器已启用并且处于低阻抗状态。软件可命令设备进入禁用状态,方法是设置链路控制寄存器中的禁用比特。然后该设备发送16个在TS1训练控制字段中设置了禁用链路比特的TS1有序集。当已连接的接收器接收到设置有禁用链路比特的TS1有序集时,就禁用该接收器。

Hot复位

        进人该状态的情况有:当设备的较高层控制进入该状态,或者当设备接收到两个连续的TS1有序集,并且该有序集的TS1训练控制字段中设置了Hot复位比特。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【数据恢复、安全和备份解决方案】上海道宁与LSoft为企业提供先进的技术来处理现代数据安全和保存问题

需要备份和恢复磁盘、 恢复已删除的文档和照片、 安全擦除磁盘、 监控硬盘健康状况、 甚至在Windows 无法正常启动时修复 PC? Active Data Studio是 一组桌面应用程序 和可引导CD/DVD或USB磁盘 用于将任何系统引导至 Windows恢复环境 开发商介绍 LSoft Te…

Anaconda教程,Python版本控制

Anaconda教程,Python版本控制 文章目录 Anaconda教程,Python版本控制1:Anaconda安装1.1:Windows1.2:Linux1.3:MacOS 2:Anaconda使用2.1:创建一个新的环境2.2:安装 Python 包2.3:激活…

HNU-操作系统OS-作业2(15-22章)

OS_homework_2 这份文件是OS_homework_2 by计科210X wolf 202108010XXX 文档设置了目录,可以通过目录快速跳转至答案部分。 第15章 运行程序OS-homework/vm-mechanism/relocation.py 15.1 用种子 1、2 和 3 运行,并计算进程生成的每个虚拟地址是处于界限内还是界限外? 如…

信创办公–基于WPS的EXCEL最佳实践系列 (创建表格)

信创办公–基于WPS的EXCEL最佳实践系列 (创建表格) 目录 应用背景操作步骤1、新建空白工作簿并命名为“奖牌榜”2、使用模板新建工作簿3、新增一张工作表,并将工作簿的标签更改为红色4、复制与隐藏工作表5、添加工作簿属性值6、更改工作簿主题…

有了这套方案,企业降本增效不再是纸上谈兵 (2)

一、生存压力逼近,企业如何应对经济下行残酷挑战? 当前市场经济下滑,客户预算紧缩和投资削减可能导致IT项目推迟或取消,从而直接影响公司收入和盈利能力。各大厂商都在陆续裁员或调整业务,以人力等成本为主的IT公司也必…

QT调用linux外部命令或者shell script

目录 原文链接:https://blog.csdn.net/YMGogre/article/details/128973098 0、本文使用的环境配置: 1、新建一个简单的Shell脚本: 2、在Qt中启动外部Shell脚本: 2.1、使用标准库中提供的方法 —— system() 2.2、使用Qt提供…

占据80%中国企业出海市场,亚马逊云科技如何为出海客户提供更多资源和附加值

亚马逊云科技就可以做到,作为占据80%中国企业出海市场的亚马逊云科技,其覆盖全球的业务体系,从亚马逊海外购、亚马逊全球开店、亚马逊智能硬件与服务,Amazon Alexa,Amazon Music都是属于亚马逊云科技“梦之队”的一员。…

SDK接口远程调试【内网穿透】

文章目录 1.测试环境2.本地配置3. 内网穿透3.1 下载安装cpolar内网穿透3.2 创建隧道 4. 测试公网访问5. 配置固定二级子域名5.1 保留一个二级子域名5.2 配置二级子域名 6. 使用固定二级子域名进行访问 转发自cpolar内网穿透的文章:Java支付宝沙箱环境支付&#xff0…

使用单片机遇到的几个问题及解决方案1

1.为什么我跟着视频学习的过程中,我没有找到“端口"的选项呢?我甚至没有出现“其他插口”。 想要找到设备管理器最快的方法就是: 首先如果把输入法调为大写形式,然后按下“WINX”,再按“M”就会出现一个设备管理…

Vivado 下 IP核之双端口 RAM 读写

目录 Vivado 下 IP核之双端口 RAM 读写 1、RAM IP 核简介 2、实验任务 3、程序设计 3.1、RAM IP 核配置 3.2、顶层模块设计 (1)绘制波形图 4、编写代码 4.1、顶层模块 ip_2port_ram 4.2、RAM 写模块设计 4.3、ram_wr 模块代码 4.4、RAM 读模…

Goby 漏洞发布|maxView Storage Manager 系统 dynamiccontent.properties.xhtml 远程代码执行漏洞

漏洞名称:maxView Storage Manager 系统 dynamiccontent.properties.xhtml 远程代码执行漏洞 English Name:maxView Storage Manager dynamiccontent.properties.xhtml RCE CVSS core: 9.8 影响资产数:1465 漏洞描述: maxVie…

架构之冷热分离

本文依据《从程序员到架构师》阅读有感,记录书中案例并且结合作者工作经历进行分析。 当数据量过大,业务查询慢甚至导致数据库服务器CPU飙升,导致数据库宕机,影响用户体验。 场景: 1.客户两年多产生了近2000万的工单…

Django - 页面静态化和crontab定时任务(二)

一. 前言 一个网页会有很多数据是不需要经常变动的,比如说首页,变动频率低而访问量大,我们可以把它静态化,这样就不需要每次有请求都要查询数据库再返回,可以减少服务器压力 我们可以使用Django的模板渲染功能完成页面…

Amazon SageMaker:探索AI绘画云端部署新方案

目录 1 从艺术实验到AI绘画2 什么是Amazon SageMaker?3 云端部署AI绘画应用3.1 模型构建与部署3.2 AI绘画测试(文生图) 4 亚马逊云科技中国峰会 1 从艺术实验到AI绘画 在过去,人们只希望基于已有的给定数据做一些预测和拟合,因此判别式模型得…

怎么登录远程轻量云服务器?

​  轻量云服务器是一种基于云计算技术的服务器,具有价格低廉、配置灵活、易于管理等优点。但是,由于轻量云服务器通常是在云端运行,需要通过远程连接才能进行管理和操作。那么,怎么登录远程轻量云服务器呢? 要远程连接轻量云服…

JMeter测试笔记(五):JDBC请求

引言: 进行性能测试时,我们有时需要模拟数据库的访问和操作,而JMeter中的JDBC请求可以帮助我们实现这个目的。 在本文中,我们将深入了解JDBC请求的使用方式,并学习如何正确配置它们来模拟对数据库的访问和操作。 如…

C#,彩票数学——彩票预测是玄学还是数学?什么是彩票分析?怎么实现彩票号码的预测?

彩票原理系列文章 彩票与数学——彩票预测是玄学还是数学?https://mp.csdn.net/mp_blog/creation/editor/122517043彩票与数学——常用彩票术语的统计学解释https://mp.csdn.net/mp_blog/creation/editor/122474853彩票与数学——彩票缩水的数学概念与原理https://…

Codeforces Round 877 div2 C No Prime Differences

目录 一、题目 二、题目分析 三、 一、题目 传送门 C. No Prime Differences time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You are given integers n and m. Fill an n by m grid with the…

连杆滑块伸缩模组的制作

1. 运动功能说明 连杆滑块伸缩模组的主要运动方式为舵机带动滑块沿着光轴平行方向做伸缩运动。 2. 结构说明 本模组主要是由舵机、滑块、光轴、连杆等组成。 3. 电子硬件 在这个示例中,我们采用了以下硬件,请大家参考: 主控板 Basra主控板&…

java ssm贸易平台-物流管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java ssm贸易平台-物流管理系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,springspringMVCmybatis),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主…