PCI Express --- LTSSM

news2024/11/16 17:35:43

目录

1. 链路训练和状态机

1.1 Detect 状态

1.1.1 Detect.Quiet 子状态 

1.1.2 Detect.Active 子状态 

1.2 Polling 状态

1.2.1 Polling.Active 子状态

1.2.2 Polling.Compliance 子状态

1.2.2 Polling.Configuration 子状态 

1.2.3 Polling.Speed 子状态

1.3 Configuration 状态

1.4 L0 状态

1.5 L0s 状态

1.6 L1 状态

1.7 L2 状态

1.8 Recovery 状态

1.9 Hot Reset 状态

1.10 Disable 状态

1.11 Loopback 状态


        LTSSM是指Link Training and Status State Machine,是PCIe物理层实现的,用于控制和管理PCIe总线上的数据链路。它提供了一组状态,以便设备进行链路训练和链接协商。

        在PCIe总线上,发送端和接收端需要进行链路训练,以便确定最佳的链接速度和链接宽度。LTSSM的作用是控制这个过程,并在链路训练期间跟踪链路状态和错误。

        LTSSM状态包括:Detect、Polling、Configuration、Recovery、L0、L0s、L1、L2、Hot Reset、Loopback和Disable。当设备之间开始建立连接时,LTSSM从Detect状态开始。然后,它进入Polling状态,等待对方回应确认连接。如果确认完成,则进入Configuration状态,进行链路配置。之后,LTSSM进入L0状态,表明链路处于活动状态。如果设备需要低功耗状态,则可以进入L0s或L1状态。如果出现错误,则可能会进入L2状态或Loopback状态进行修复。

1. 链路训练和状态机

       物理层的链路训练和状态机(LTSSM)模块负责配置和初始化一个设备的物理层、端口的发送器和接收器以及相关的链路,以状态机来管理和描述这个过程。

        下图展示了LTSSM的 11 个状态,这些状态可以分为以下 4 种类型:

  • 链路训练状态:Detect、Polling 和 Configuration状态。
  • 链路重训练状态:Recovery 状态。
  • 电源管理状态:L0、L0s、L1 和 L2。
  • 其它状态:Disable、Loopback 和 Hot Reset。

1.1 Detect 状态

        Detect 状态是在基本复位或者软件产生的热复位命令后进入的初始状态,在复位80ms内进入这个状态。Detect状态也能从其它状态进入。如下图所示:

        Detect有两个子状态:Detect.Quiet 和 Detect.Active。

1.1.1 Detect.Quiet 子状态 

进入条件Detect.Quiet 期间退出条件

1. 基本复位或热复位进入;

2. 从L2、Loopback、Disable、Polling、Configuration 和 Recovery 状态进入。

1. 发送器处于Electrical Idle状态;

2.发送器DC共模电压(不满足0~3.6V的规格);

3. 传输速率默认Gen1;

4. 向数据链路层发送LinkUp = 0的链路状态指示。

1. 处于Detect.Quiet子状态超过12ms,或者当链路退出Electrical Idle状态时,退出本子状态,进入Detect.Active状态。

1.1.2 Detect.Active 子状态 

进入条件Detect.Active 期间退出条件

1. 从Detect.Quiet 子状态进入。

1. TX设备检测RX设备是否存在,通过RC充放电时间来检测,当设备没有连接,RC充放电时间短,接上以后时间长;

1. 如果没有检测到RX端,返回到Detect.Quiet子状态,循环检测12ms。

2. 检测到RX端设备,进入下一个Polling状态,这个时候DC共模电压符合规范限定值(0~3.6V)。

1.2 Polling 状态

        Polling 状态是链路训练和初始化过程中的第一个时段,在这个过程中两相连设备互相发送PLP包(TS1 和 TS2 序列)。Polling 状态机共有 4 个子状态:

  • Polling.Active:进行 Bit Lock 和 Symbol Lock;
  • Polling.Compliance:进行 Compliance 合规性测试;
  • Polling.Configuration:实现极性翻转(Lane Polarity Inversion);
  • Polling.Speed:确定链路速率。

1.2.1 Polling.Active 子状态

1.2.2 Polling.Configuration 子状态 

进入条件Polling.Configuration 期间退出条件

1. 从Polling.Active 子状态进入。

1. 如果接收器发现所接收到的TS1/TS2有序集为反码,则它颠倒差分输入对端子的极性,完成Lane Polarity Inversion;Polarity Inversion是强制性的,必须在所有的Lane上独立实现。

2. 发送器发送 8 个以上的TS2有序集。

1. 退出到Configuration 状态,连续收到8个TS2有续集中,Rate ID字段都没有大于Gen1 2.5Gbps的,则进入到Configuration状态。

2. 退出到Polling.Speed子状态,连续收到8个TS2有续集中,至少有1个Lane上,Rate ID字段大于Gen1 2.5Gbps,则进入到Polling.Speed子状态。

3. 退出到Detect状态:如果以上两个退出条件都不满足,则48ms之后返回到Detect状态。

1.2.3 Polling.Speed 子状态

进入条件Polling.Speed 期间退出条件

1. 从Polling.Configuration子状态进入。

1. 发送器发送1条Electrical Idle有序集,然后进入电气闲状态,时间在20ns ~ 2ms之间;

2. 在所有Lane上将数据速率改变为链路两方都支持的、最高的公共数据速率。

无条件返回到Polling.Active子状态。

1.2.4 Polling.Compliance 子状态

进入条件Polling.Compliance 期间退出条件

1. 从Polling.Active进入

1. 50Ω阻抗的测试探针或者50Ω的接地阻抗钩到任一Lane上的TX发送信号差分对,使得设备进入Polling.Compliance。在这个状态下,要求该设备在链路上生成合格性测试位谱。

2. 发送器在所有Lane上输出合格性测试位谱。

3. 在Polling.Compliance期间,不发送Skip有序集。

1. 当所有Lane上检测到一个Electrical Idle退出时,发送器通过发送1024个TS1有序集退出该合格性测试状态,返回Polling.Active子状态。

1.3 Configuration 状态

1.4 L0 状态

1.5 L0s 状态

1.6 L1 状态

1.7 L2 状态

1.8 Recovery 状态

1.9 Hot Reset 状态

1.10 Disable 状态

1.11 Loopback 状态

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

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

相关文章

性能测试超细总结,如何才能做到有效压测?性能压测看这篇就够了...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 目标制定以及业务…

java SSM 游戏资讯系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM 游戏资讯系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,springspringMVCmybatis),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和 数据库,系统主要采用B…

3ds Max - Pivot Painter Tool

很久之前的笔记,整理归档; Pivot Painter Tool是3dsMax中的插件,主要是辅助将Mesh中每个Element生成自己的Pivot Position,方便如使用World Position Offset对每个Element进行精确控制,导入使用Pivot Painter Tool工具…

深入理解Linux虚拟内存管理(七)

系列文章目录 Linux 内核设计与实现 深入理解 Linux 内核 Linux 设备驱动程序 Linux设备驱动开发详解 深入理解Linux虚拟内存管理(一) 深入理解Linux虚拟内存管理(二) 深入理解Linux虚拟内存管理(三) 深入理…

Linux系统和Windows系统下Python2代码转换为Python3代码工具使用指南

简介 本文主要介绍Linux系统和Windows系统下Python2代码转换为Python3代码工具2to3.py或2to3指令使用指南。 项目场景及问题描述 Python2的最后一个版本是2.7,在2020年彻底停止支持。有些环境不方便同时安装Python2和Python3,或者在使用Python3的环境…

【JVM】JVM 垃圾回收算法

文章目录 前言标记清除(Mark-Sweep)介绍优缺点 复制(拷贝 Copying)介绍优缺点 标记整理(Mark-Compact)介绍优缺点 前言 目前JVM中有三种常见的垃圾回收算法,分别是:标记清除、标记整…

Matter实战系列-----1.软硬件开发环境搭建

一、硬件方面 我使用的是一套xG21 BRD4180B和两块xG24 BRD4187C,如下图: 1.1 RCP: 芯片型号EFR32MG21A020F1024IM32 1.2 Matter Light/Switch over Thread: 芯片型号EFR32MG24B220F1536IM48 1.3 蓝牙5.0 USB dongle 注意由于Linux对蓝牙…

阿里、字节、网易面试必考,黑马【爆火】微服务项目发布

最近,收到一位粉丝投稿,他说:“阿里三面凉凉了,输在了微服务上。” 在看到微服务的面试题后,整个人都是懵的,发现没有经验的自己,一窍不通。 如今,微服务已经成为Java开发者必备的…

深入篇【C++】string类的常用接口介绍:标准库中的string类 【万字总结】

深入篇【C】string类的常用接口介绍:标准库中的string类 Ⅰ.string类介绍Ⅱ.string类的常用接口①.string类对象的常用构造1.string()2.string(const char*ch)3.string(const string& str)4.string(size_t n,char c)5.string(const string& str,size_t pos,…

想开发测试工具,应该如何入手?

何为测试工具?就是能辅助测试同学来完成特定的操作的工具,比如常见的如postman、Fiddler、Charles、jira,包括jmeter等,当然还包括公司自己开发的用例转换工具,造数工具,Mock工具或是平台等等。一般以应用程…

测试在“鸡头”和“凤尾”间如何选择?

经常在知乎上碰到这样的问题:同时拿到多个offer,公司有大有小,有创业型有成熟性,怎么在“鸡头”和“凤尾”间做选择? 为什么会纠结呢?通常创业型公司,给优秀的测试员的薪酬远高于市场平均值&…

“我只想找个测试岗,你却百般刁难我!”给我们带来的思考

最近看到一篇帖子,讲的是一个七八年的大龄测试员被公司补偿性裁员后,找工作的糟心经历。 原文是酱紫的: ---------------------------------------- 不管怎么说,我做测试也有七八年了,一直觉得自己的技术还是可以的&…

MongoDB实际场景应用

你要构建一个在线零售商店,这个店铺需要处理会员数据、订单数据以及商品数据等。为了保存和管理这些数据,你可以使用MongoDB。 目录 1. 设计数据模式 2. 插入数据 3. 查询数据 1. 设计数据模式 对于在线零售商店的数据,你可以设计三个Mo…

3年经验,面试测试岗20k都拿不到了吗?

我的情况 大概介绍一下个人情况,女,本科,三年多测试工作经验,懂python,会写脚本,会selenium,会性能,然而到今天都没有收到一份offer!从年后就开始准备简历,年…

C#基于云计算SaaS模式的医学检验云LIS系统全套源码

一、云LIS系统概述: 云LIS系统是一种基于云计算技术的实验室信息管理系统,它的主要功能是管理实验室中的各种信息数据,包括样品数据、检测结果、仪器设备管理、质控管理等。 二、与传统的LIS系统相比,云LIS系统具有以下优势&…

考完PMP后,还有必要考NPDP吗?

PMP证书目前在国内有很高的知名度,报考人数也在逐年上升,可以说,几乎所有的项目经理都有过考PMP的计划。 但随着PMP的持证人数越来越多,不少考完PMP的项目经理,开始考虑要不要报名NPDP考试。 那么考完PMP后有必要考N…

软件测试项目拿到不知道从哪里下手?今天我手把手教你

1.登录页面 2.首页 3.项目管理 4.测试环境 1>设置headers;可以每个url设置共同的header,可以存在变量;执行时,指定接口补全header; 5.接口管理 swagger导入功能;根据指定的测试环境url,导入s…

基于javaweb jsp+SSM 网红书店图书借阅系统的设计与实现

一.项目介绍 本系统分为管理员和读者两类 管理员:维护管理员账号和读者账号信息、维护书籍分类信息、维护书籍信息、维护书籍借阅信息、维护书籍预约信息、邮件管理、书籍阅读量统计、系统管理 读者:书籍借阅、书籍预约、预约邮件管理以及个人信息 …

Kubernetes的kubectl命令补全

Kubernetes的kubectl命令补全 环境准备 首先我们需要安装一个kubernetes的集群,可以参考我写的教程: 文档教程:https://blog.csdn.net/m0_51510236/article/details/130842122视频教程:https://space.bilibili.com/34615738341…

【springboot 实践】断点续传这么搞--附代码

目录 背景开搞RandomAccessFileAPI 代码文件分块断点续传、文件秒传分块上传、文件合并 总结 今天给大家分享的又是一篇实战文章,也是最近私活里遇到的,万能的互联网给了我办法,分享一下。 背景 最近接到一个新的需求,需要上传2…