PCIe 5.0 spec学习1.1

您所在的位置:网站首页 dc均衡 PCIe 5.0 spec学习1.1

PCIe 5.0 spec学习1.1

2024-03-24 08:24| 来源: 网络整理| 查看: 265

当以 8.0 GT/s 和更高的数据速率运行时,链路均衡能够调整每个lane的发送器和接收器设置,以提高信号质量,满足spec的电气要求。 

均衡不是强制的,component可以声明自己不需要均衡。

均衡的启动机制可以自主启动或软件启动。 spec强烈建议对打算运行的所有高于 5.0 GT/s 的数据速率使用自主启动机制。

通常均衡要从8G按速率等级逐级往上,比如先在8G下成功完成均衡,然后到16G完成均衡,最后才切到32G,但如果所有参与均衡的component支持跳跃方式并且使能,也可以直接跳到32G去执行均衡(通过TS1/TS2 OS交互来协商这种方式)

当启用此可选机制并在组件之间成功协商时,除最高公共数据速率外,不会以任何其他速率执行均衡。对于不执行均衡的所有高于 5.0 GT/s 的数据速率,预期链路不得以这些数据速率运行。例如,链路可能以 2.5 GT/s 训练到 L0,进入 Recovery 并以 32.0 GT/s 执行均衡,在 8.0 GT/s 和 16.0 GT/s 时跳过均衡。在这种情况下,Link 的预期数据运行速率为 2.5 GT/s、5.0 GT/s 或 32.0 GT/s。如果最高公共数据速率的均衡过程即使在重新均衡尝试后仍不成功,并且链路需要以较低的数据速率均衡,则下游端口必须停止广播均衡旁路以支持最高速率,并确保链路在2.5 GT/s 或 5.0 GT/s。然后执行所需的均衡过程,就像从未支持跳过均衡到最高公共数据速率的可选机制一样。如果较低数据速率的均衡过程由软件驱动,则必须将均衡旁路设置为最高速率禁用和不需要均衡禁用寄存器位各为 1b;设置目标链路速度,使链路以 2.5 GT/s 或 5.0 GT/s 运行;然后将目标链接速度设置为从 8.0 GT/s 开始以较低的速率均衡。如果均衡旁路至最高速率禁用位设置为 1b,则端口不得通告均衡旁路至最高速率支持。

如果所有组件都支持 32.0 GT/s 或更高的数据速率并且所有链路组件都支持 No Equalization Needed 机制,则允许另一种可选机制跳过整个均衡过程并直接进入 32.0 GT/s 或更高的最高通用数据速率,如 TS1/TS2 中被公布或被修改的那样。 如果组件能够从适用于该组件的先前均衡中检索所有数据速率下的均衡和其他电路设置,或者在高于 5.0 GT/s 的所有数据速率中根本不需要均衡,则执行此操作 . 如果将均衡旁路至最高速率禁用位设置为 1b,则组件不得宣传此功能。

如果链路的一个方向广播No Equalization Needed,而另一侧广播均衡旁路到TS1/TS2描述的最高支持速率,则链路将执行后者,因为No Equalization Needed位也表示设备有能力绕到均衡到最高数据速率。 在修改后的 TS1/TS2 有序集中,将 No Equalization Needed 位设置为 1b 的设备还必须将 Equalization bypass to high rate support 设置为 1b。 如果链路的一个方向广播No Equalization Needed,而另一侧是广播均衡旁路以仅在修改的 TS1/TS2 有序集中支持最高速率,则链路将在均衡旁路中运行以支持最高速率。 如果设备在其传输的修改后的 TS1/TS2 有序集中将不需要均衡位通告为 1b 并且将均衡旁路到最高速率支持到 0b,则链路操作未定义。

如果两个组件在初始化链路协商期间(当 LinkUp 设置为 1b)广播他们能够达到5G以上速率并且下游端口选择在5G以上速率时启用均衡,则执行自治机制。

在自治机制中,进入 L0 后,无论当前链路速度如何,如果必须执行均衡过程,则任何组件都不得发送任何 DLLP,直到均衡过程完成。 一旦每个lane的发送器和接收器设置已针对支持的高于 5.0 GT/s 的公共速率(下游端口打算使用自主机制对其执行均衡)进行了调整,则均衡过程被认为已完成。 下游端口需要启动对需要执行均衡的数据速率的速度更改。 在任何均衡(自主或软件启动或重新均衡)期间,下游端口不得广播对高于需要在Recovery中执行均衡的数据速率的支持。 提供以下示例来说明均衡流程。

示例:考虑需要以 8.0 GT/s 和 16.0 GT/s 自主执行均衡的链路。 下游端口进入Recovery在8.0 GT/s下执行均衡,不广播任何高于 8.0 GT/s 的数据速率。

如果链路状态 2 寄存器的Equalization Phase 3 Successful bit和 Equalization 8.0 GT/s Complete bit都设置为 1b,则认为 8.0 GT/s 均衡过程已成功执行。 从 Recovery 过渡到 L0 之后,在初始数据速率更改为 8.0 GT/s 后,下游端口需要从 L0 过渡到 Recovery,宣传 16.0 GT/s 数据速率支持(但不宣传支持 32.0 GT/ s,即使它能够支持 32.0 GT/s),将数据速率更改为 16.0 GT/s 并执行 16.0 GT/s 均衡程序。

如果下行端口检测到均衡问题或上行端口发出均衡重做请求(通过将请求均衡位设置为 1b),则下行端口可能要重做均衡。 给定数据速率下的back-to-back均衡重做次数是特定于实现的,但必须是有限的。 如果在初始或后续均衡过程结束并执行特定数量的均衡重做时,链路无法以执行均衡的数据速率可靠地运行,则它必须恢复到较低的数据速率 的操作。

在均衡过程完成之前,使用自主机制的组件不得启动任何自主链路宽度缩减。 上游端口在接收到来自下游端口的 DLLP 之前不得传输任何 DLLP。 如果下游端口再次执行均衡,它必须在完成均衡过程之前不发送任何 DLLP。 如果Downstream Port能够满足系统要求,Downstream Port可以根据自己的需要或根据Upstream Port的请求再次进行均衡。 如第 6.6 节所述,多次执行均衡可能会干扰链路和设备状态的软件确定。

当使用自主机制以8.0 GT/s或更高的数据速率进行均衡时,下行端口需要阻止DLLP的传输,直到均衡完成;上行端口需要阻止DLLP的传输,直至收到下行端口发来的DLLP。

当使用基于软件的机制时,软件必须保证不会由于链路正在进行均衡过程而对正在进行的事务产生任何副作用(例如,没有超时)。软件可以将1b写入Link Control 3寄存器中的Perform Equalization bit,然后写入Link Control 2寄存器中的Target Link Speed field,然后向下行端口的Link Control寄存器中的Retrain Link bit写1,以执行均衡。如果从8.0 GT/s开始的所有较低数据速率下的均衡程序都未成功执行,且链路无法绕过均衡以达到较高数据速率,则在软件启动的均衡程序期间,软件不得使链路以高于8.0 GT/s的数据速率运行(即,支持的最高速率的均衡旁路为0b,或最高速率的禁用均衡旁路为1b)。对于如下速率,均衡在如下描述视为成功:

• 8.0 GT/s: Equalization 8.0 GT/s Phase 3 Successful bit and Equalization 8.0 GT/s Complete bit of the Link Status 2 register are both set to 1b;

• 16.0 GT/s: Equalization 16.0 GT/s Phase 3 Successful bit and Equalization 16.0 GT/s Complete bit of the 16.0 GT/s Status Register are both set to 1b.

软件在设置下行端口中的Perform Equalization bit之前可以在两个组件中设置链路控制寄存器的Hardware Autonomous Width Disable,或者使用一些其他机制来确保链路处于其全部功能宽度。 

启动自主width缩减的组件需要能够在Hardware Autonomous Width Disable bit设置为1b的1ms内启动到Recovery和Configuration的转换,来将链路升级到其全功能width。如果上游端口最初没有advertise 8.0 GT/s、16.0 GT/s或32.0 GT/s的速率,并且没有参与(participate in)non-advertise速率的自主均衡机制,其相关软件在指示其进入Recovery并advertise先前non-advertise的速率并发起速率改变之前,必须确保在均衡期间不会对进行中的事务产生副作用(如果有的话)。下游端口随后在其切换初始速率改变到上游端口advertise的速率期间启动均衡过程,当其转换到Recovery时。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3