"本文主要对PCI Express (PCIe) 的链路训练和状态机(LTSSM)进行了总结,探讨了PCIe链路初始化、训练过程中的关键概念,包括位锁定、符号锁定、块锁定、链路宽度、lane反转、极性反转、链路数据速率以及Ordered Set等核心要素。"
在PCIe接口的设计中,链路训练是确保数据传输稳定性和可靠性的重要环节。LTSSM负责管理这一过程,确保设备之间的物理层正确配置和同步。在链路训练阶段,有以下几个关键目标:
1. 位锁定:通过接收端的时钟恢复电路(CDR)实现,CDR利用输入比特流作为参考,重构发送端的时钟,从而使接收器能准确地采样输入的比特。
2. 符号锁定:在Gen1和Gen2中,8b/10b编码被使用,接收器通过识别连续的码字(com)来确定10比特的边界,保证数据的正确解码。
3. 块锁定:在Gen3中,由于采用了128b/130b编码,EIEOS(电气空闲退出OS)模式用于标识块边界。EIEOS由交替的00h和FFh字节组成,其结束标志着新块的开始,帮助接收器确定正确的块位置。
4. 链路宽度:PCIe设备支持多种链路宽度,如x2、x4等。在训练期间,设备会自动协商并选择双方支持的最宽公共链路宽度。
5. Lane反转:有时为了简化布线,lane的物理编号可以在逻辑上反转,使得设备的lane可以直接对应,而不是交叉连接。如果设备支持此功能,会在链路训练中自动检测并执行。
6. 极性反转:D+和D-差分对的极性可以根据需要在两端进行反转,方便电路板设计。与lane反转不同,极性反转是强制性的,保证一致性。
7. 链路数据速率:默认训练始于2.5GT/s,但根据设备能力,可以通告更高的速度并在训练完成后自动进行快速重训练,以达到更高速率。
8. Lane-to-Lane De-skew:解决多lane并行传输中因走线长度差异导致的信号偏移问题。接收端通过调整延迟来对齐各lane的比特流,确保数据同步。
9. Ordered Set:在PHY层之间通信的一种方式,作为lane管理数据包,用于链路维护和状态报告。
PCIe-LTSSM的训练过程确保了设备间物理链路的正确配置,为高速、可靠的PCIe通信提供了坚实的基础。