硬件总线基础10:PCIe总线基础-链路训练(2)

发布网友 发布时间:2024-10-24 13:03

我来回答

1个回答

热心网友 时间:2024-11-02 22:11

LTSSM,即链路训练和状态状态机,是PCIe总线链路训练的关键组成部分。当设备复位后,首先进入Detect状态,以检测链路上的设备和可用资源。Detect状态有Detect.Quiet和Detect.Active两个子状态,设备通过物理特性检测链路对端,确认可用Lane。如果没有检测到接收逻辑或部分Lane未响应,设备会重新发送信号尝试识别。

接下来是Polling状态,分为Polling.Active、Polling.Compliance和Polling.Configuration。设备通过TS2序列同步并确认链路状态,然后进入Configuration状态,进行关键配置,如Link Number和Lane Number协商,确保设备进入正常工作状态L0。如果出现错误,可能会先返回到Configuration状态进行错误处理。

Configuration状态包括子状态如Configuration.Linkwidth.Start和Configuration.Linkwidth.Accept,用于确定链路宽度;Configuration.Lanenum.Wait和Configuration.Lanenum.Accept,确认物理和逻辑Lane号对应。在配置完成后,设备进入Configuration.Idle状态,通过Idle序列确认LinkUp状态,进入DL_Init状态。

Recovery状态复杂,从L0、L0s和L1状态进入,用于链路重训练。设备在检测到对端设备处于Idle状态或推测其处于逻辑Idle状态时进入Recovery。该状态包括Recovery.RcvLock、Recovery.Speed、Recovery.RevrCfg和Recovery.Idle子状态,涉及数据速率切换、确认和同步等过程。

在实际应用中,如设备A和B支持多种速率,如果链路训练失败,设备可能降低速率尝试。例如,如果尝试8.0 GT/s失败,设备会降低到5.0 GT/s,如果仍不成功,则可能返回到Detect状态重新开始训练。

LTSSM还包括其他状态,如电源管理相关的L0、L0s、L1和L2状态,这些会在后续章节详细讲解。要深入了解PCIe总线的链路训练,建议参考《PCI Express Technology 3.0》和PCIe规范,以及王齐的《PCI Express 体系结构导读》和Mike Jackson的《PCI Express Technology 3.0》。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com