PCI Express --- LTSSM

LTSSM是PCI Express的链路训练和状态机,用于控制和管理数据链路。它包括Detect、Polling、Configuration等多个状态,涉及链路训练、速度和宽度协商。在PCIe设备连接过程中,LTSSM从Detect开始,经过Polling和Configuration,进入正常工作状态L0,还能进入低功耗状态如L0s和L1,以及恢复和错误处理状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

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.Configuration 子状态 

1.2.3 Polling.Speed 子状态

1.2.4 Polling.Compliance 子状态

1.3 Configuration 状态

1.3.1 Link Number 协商

1.3.2 Lane Number 协商

1.3.3 确认Link/Lane Number

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 种类型:

  • PCIe链路训练状态:Detect、Polling 和 Configuration状态。正常PCIe链路训练状态转换流程:Detect -> Polling -> Configuration -> L0;L0是PCIe链路可以正常工作的电源状态。
  • PCIe链路重训练状态:Recovery 状态。进入这个状态因素很多,比如电源状态的变化,PCIe链路速率的变化等。
  • 电源管理状态:PCIe总线的电源状态主要有两部分内容。
    • 基于软件控制的PCI-PM电源管理机制
    • 基于硬件控制的ASPM(Active State Power Management)电源管理机制,是基于硬件自主控制的链路电源管理机制,只有在PCIe设备处于D0状态时才可以启动ASPM机制,与ASPM有关的链路状态有L0、L0s、L1 (包括L1.1和L1.2)和 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共模电压

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智小星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值