前文
训练序列有序集用于比特对齐、符号对齐以及交换物理层参数。2.5GT/s和5GT/s速率时,训练序列有序集不会加扰,只用8b/10b 编码。但到8GT/s及以上速率时,采用128b/130b编码,符号有可能加扰有可能不加扰,具体参阅SPEC物理层章节,后续可能会写。
训练序列(TS1或TS2或ModifiedTS1或ModifiedTS2)是连续传输的,并且只能被SKP有序集(Section4.2.7)或对于2.5GT/s 以外的数据速率由EIEOS有序集中断(Section4.2.4.3)。
当支持8.0GT/s或更高的数据速率时,使用8b/10b编码的TS1(或TS2)有序集(即2.5或5.0GT/s数据速率)可以是标准TS1 (或TS2)有序集(即,对于TS1有序集,Symbol6是D10.2,对于TS2有序集,是D5.2)或EQTS1有序集(或EQTS2有序集) (即,Symbol6的bit7是1b)。传输EQTS1有序集的能力是特定于实现的。支持8.0GT/s或更高数据速率的端口必须接受LTSSM 状态中的TS1(或TS2)类型,除非明确要求查找特定类型。不支持8.0GT/s数据速率的端口允许(但不是必需)接受EQTS1(或 TS2)有序集。
当支持16.0GT/s和更高数据速率时,使用128b/130b编码(即8.0GT/s或更高数据速率)的TS2可以是标准TS2有序集(即Symbol 7 为45h)或128b/130bEQTS2(即,Symbol7的bit7为1b)。除非明确要求查找特定类型,否则支持16.0GT/s或更高数据速 率的端口必须在LTSSM状态中接受任一TS2类型。允许(但不是必需)不支持16.0GT/s数据速率的端口接受128b/130bEQTS2 有序集。 使用8b/10b 编码时,仅当Symbol6与先前的TS1或TS2有序集的Symbol6相匹配时,才将TS1或TS2有序集视为连续(传输过 程中不能Symbol6的值不能随意改动)
打算协商备用协议或传递一个TrainingSetMessage的组件必须在Configuration.Lanenum.Wait,Configuration.Lanenum.Accept 和 Configuration.Complete 子状态中使用 Modified TS1/TS2 Ordered Set,而不是 TS1/TS2 OrderedSet。为了可以发送 ModifiedTS1/TS2 Ordered Set,组件必须在Polling.Active,Polling.Configuration,TS1/TS2 Ordered Set 中将 TS1 和 TS2 有序集的 Enhanced Link behavior Control 字段设置为 11b, Configuration.Linkwidth.Start 和 Configuration.Linkwidth.Accept 子状态,并执行 LinkUp = 0b 时过渡到 Configuration.Lanenum.Wait 子 状 态 中 概 述 的 步 骤 。 如 果 链 路 伙伴不支持 Modified TS1/TS2 Ordered Set , 则 从 Configuration.LaneNum.Wait 开始,标准 TS 应停止在Enhanced LinkbehaviorControl 字段中发送 11b 并切换到适当的编码。
给出一个polling阶段OS的在lane上的发送示例:
直至双方协商polling完毕后,进入下一个状态
Polling概述
在PCIe的 LTSSM状态机中,Polling态进Configuration状态是一个关键的步骤,标志着链路两端已经建立了基本的物理层通信,并准备开始协商链路的工作参数(如链路宽度和操作速率)。Polling状态成功进入 Configuration状态的条件和过程:
1. 完成接收器检测和锁定 (Receiver Detection and Locking
在 Polling.Active 子状态,每个端口(按照距离CPU的远近分为下游端口和上游端口)都会在所有配置的 Lane 上交替发送 TS1 (Training Sequence 1) 有序集。
这些 TS1 序列有两个主要目的:
* 接收器检测 (Receiver Detection):确认对端确实存在一个活动的接收器。
* 位锁定 (Bit Lock) 和 符号锁定 (Symbol Lock):接收端的物理层 (PHY) 使用传入的 TS1 序列来锁定发送端发送数据的比特边界(位锁定)和识别 COM (Comma) 符号以确定符号边界(符号锁定)。这是正确解码后续数据的基础。
2. 交换 TS1 序列并达成基本协议 (Exchange TS1s and Basic Agreement):
两端设备通过接收对方发送的 TS1 序列,不仅确认了对方的存在和活动状态,还能从TS1中携带的信息字段获取对方的基本能力:
* Link Number:通常是未配置的(0xFF)。
* Lane Number:发送该TS1的物理Lane的编号(在 Polling 阶段通常是未配置的,如 0x1F