首页 理论教育PCIExpress体系结构导读中的LTSSM状态机

PCIExpress体系结构导读中的LTSSM状态机

【摘要】:PCIe总线在进行链路训练时,将使用LTSSM状态机。LTSSM状态机由“Detect”、“Pol-ling”、“Configuration”、“Disabled”、“Hot Reset”、“Loopback”、“L0”、“L0s”、“L1”、“L2”和“Recovery”共11个状态组成。LTSSM状态机的转换逻辑如图8-5所示,而各个状态的含义如下所示。图8-5 LTSSM示意图●Detect状态。当PCIe链路被复位或者数据链路层通过填写某些寄存器后,LTSSM将进入该状态。该状态也是LTSSM的初始状态。该状态是LTSSM状态机的重要状态。

PCIe总线在进行链路训练时,将使用LTSSM状态机。LTSSM状态机由“Detect”、“Pol-ling”、“Configuration”、“Disabled”、“Hot Reset”、“Loopback”、“L0”、“L0s”、“L1”、“L2”和“Recovery”共11个状态组成。这些状态分别与PCIe总线的链路训练、链路重训练、ASPM(Active State Power Management)和系统软件的电源管理相关。LTSSM状态机的转换逻辑如图8-5所示,而各个状态的含义如下所示。

978-7-111-29822-9-Part02-99.jpg

图8-5 LTSSM示意图

●Detect状态。当PCIe链路被复位或者数据链路层通过填写某些寄存器后,LTSSM将进入该状态。该状态也是LTSSM的初始状态。当PCIe链路处于该状态时,发送逻辑TX并不知道对端接收逻辑RX的存在,因此需要使用Receiver Detect识别逻辑判断对端接收逻辑RX是否可以正常工作,之后才能进入其他状态。

●Polling状态。当PCIe链路进入该状态时,将向对端发送TS1和TS2序列,并接收对端的TS1和TS2序列,以确定Bit/Symbol Lock、Lane的极性。PCIe链路处于该状态时,将进行Loopback测试,确定当前使用的PCIe链路可以正常工作。

●Configuration状态。当PCIe链路进入该状态时,将确定PCIe链路的宽度、Link Number、Lane reversal、Polarity inversion和Lane-to-Lane的延时。该状态是LTSSM状态机最重要的状态。值得注意的是PCIe链路在进行初始化时,链路两端统一使用2.5GT/s的数据传送率,直到进入L0状态。

●L0状态。PCIe链路的正常工作状态。PCIe链路可以正常发送和接收TLP、DLLP和PLP。PCIe链路可以从该状态进入Recovery状态,以改变数据传送率。

●Recovery状态。PCIe链路需要进行链路重训练时需要进入该状态。该状态是LTSSM状态机的重要状态。(www.chuimin.cn)

●L0s、L1和L2状态。PCIe链路的低功耗状态,其中PCIe链路处于L0s状态时,使用的功耗相对较高,而处于L2状态时,使用的功耗最低。

●Disabled状态。系统软件可以通过设置寄存器,使PCIe链路进入Disabled状态。当PCIe链路的对端设备被拔出时,LTSSM也需要进入该状态。

●Loopback状态。PCIe链路进入该状态时,发送端口将转发其接收端口接收到的数据,PCIe测试仪器可以利用该状态进行数据测试。

●Hot Reset状态。当处理器系统进行Hot Reset操作时,PCIe链路将进入Recovery状态,然后进入Hot Reset状态进行PCIe链路的重训练。

LTSSM的各个状态将在下文详细介绍,本章将重点介绍Detect、Polling、Configuration、L0和Recovery状态,囿于篇幅并不对Disabled、Loopback和Hot Reset状态进行详细说明,对这些状态有兴趣的读者可以参阅PCIe总线规范,以获得进一步信息。

PCIe设备的物理层进行复位后,LTSSM状态机首先沿着“Detect”→“Polling”→“Configuration”→“L0”的路径进入到正常工作状态“L0”,这也是链路训练的正常工作路径,也是最重要的一条路径。

物理层链路训练所涉及的内容非常复杂。为便于读者理解,本书仅介绍其主要工作流程,即PCIe设备的正常工作路径,以帮助读者掌握链路训练的概要,而不会介绍异常处理和一些并不重要的分支。