PCIE 6.1:4.3 Retimers 译文

4.3 Retimers 重定时器

本节定义了对重定时器的要求,重定时器时物理层协议感知的、且可以与Retimer每侧具有任何兼容通道的任何对组件进行互操作。感知物理层协议的重定时器的一个重要功能是在每个方向上执行均衡过程的第2/3阶段。上行端口和下行端口之间最多允许有两个重定时器。

两个重定时器的限制,是基于多方面的考虑,最明显的是修改SKP有序集的限制和在均衡过程的第2/3阶段花费的时间限制。为了确保互操作性,平台设计人员必须确保所有PCI Express link都遵守两个Retimer限制,包括那些涉及形状因素以及涉及有源电缆的链路。形式因素规范可能会定义额外的Retimer规则,这些规则必须遵守其形式因素。评估与本节中不基于Retimer定义的任何扩展设备的互操作性不在本规范的范围之内。

扩展设备的许多架构都是可能的,例如,仅模拟中继器、不感知协议的重定时器等。本规范描述了一个物理层协议感知的重定时器。如果对特定通道、扩展装置和末端装置对进行了适当的分析,则可以在封闭系统中使用其他类型的扩展装置,但进行这种分析的具体方法超出了本规范的范围。

重定时器有两个伪端口,一个面向上行,另一个面向下行。每个伪端口的发送端必须从100MHZ的参考时钟中获得时钟。参考时钟必须满足§8.6的要求。Retimer支持一个或多个参考时钟架构,如第8.6节电气子块中定义的。

在大多数操作中,Retimer只是转发接收到的Ordered set、DLLP、TLP、Logical Idle和Electric Idle。Retimer对数据链路层和事务层是完全透明的。系统软件不得在存在Retimer的任何链路上启用L0s。Retimers对信标的支持是可选的,超出了本规范的范围。

当使用128b/130b编码时,Retimer执行协议,以便每个链路段经历独立的链路均衡,链路均衡如§4.3.6节所述。

当链路伙伴们(注:RC和EP)处于Configuration状态时,动态确定伪端口方向(上行还是下行)。crosslink和常规链路都是支持的。

4.3.1 对于Retimer的要求

以下是对Retimer的要求的高度概括:

  • Retimer必须符合第8章电气子块中描述的所有电气规范。Retimer必须以以下两种模式之一运行:
    • Retimer接收器工作在8.0 GT/s及以上,其间阻抗满足ZRX-DC参数定义的2.5 GT/s范围。
    • Retimer接收器工作在8.0 GT/s及以上,阻抗不符合ZRX-DC参数定义的2.5 GT/s范围。在这种模式下,必须在接收EIOS或推断电气空闲的1ms内满足2.5 GT/s的ZRX-DC参数,同时接收器处于电空闲状态。
  • 当多个Lane正在转发Symbols时(包括upconfigure情况),转发符号必须始终de-skew。(注:在多通道的PCIe链路中(一条Link中有多个Lane),由于不同通道上的走线长度不同,受到的干扰不同,甚至其阻抗不同导致它们在不同时间到达接收逻辑Rx,这个问题被称为信号偏移(Signal Skew);接收逻辑Rx需要将早到达的Lane的Bit流进行延迟,以对齐所有Lane的Bit 流,从而补偿不同Lane之间的偏移(Skew))
  • 动态确定端口方向。(注:动态确定伪端口方向,即动态确定retimer端口哪个是面向RC、哪个是面向EP)
  • 动态确定数据流模式(Flit Mode或Non-Flit Mode)。
  • 执行Lane极性反转(如果需要的话)。
  • 在每个链路段上使用128b/130b或1b/1b编码时,参与链路均衡过程中的阶段2和阶段3。
  • 在每个链路段上参与5.0 GT/s速率下的去加重协商。
  • 参与Link Upconfigure
  • 参与L0p
  • 在loopback Lead和loopback Follower之间传递环回数据。
    • 可选地,当使用8b/10b或128b/130b编码时,能够在一个伪端口上执行Follower Loopback
    • 使用1b/1b时,能够在一个伪端口上执行Follower Loopback
  • 在每个伪端口上生成合规性码型。
    • 负载板方法(即,在Polling.Active状态中超时)。
  • 当链路通过TS1有序集中的Compliance Receive bit进入Polling.Compliance时,转发Modified Compliance Pattern
  • 当端口通过在上行端口和下行端口中的Link Control 2寄存器中的Enter Compliance位设定为1且在Retimer中的Retimer Enter Compliance设为1(以特定的实现方式访问)、进入Polling.Compliance时,转发Compliance或Modified Compliance。
  • 根据链路的上下游端口调整数据速率
  • 根据链路的上下行端口调整链路宽度
  • 在Configuration状态期间捕获Lane numbers
    • 当使用128b/130b和1b/1b编码时,需要Lane numbers用于加扰种子
  • 在链路训练期间的Polling和Configuration状态中,捕获Flit Mode Supported bit
    • Flit Mode Supported bit用于确定数据流模式
  • 动态调整Retimer Receiver阻抗,以匹配终端Component Receiver阻抗。
  • 在所有数据速率下推断进入电气空闲
  • 转发时修改有序集的某些字段
  • 通过添加或删除SKP Symbols来执行时钟补偿
  • 支持L1
    • 可选地,支持L1 PM子状态
  • 如果支持32.0 GT/s,则参与链路均衡到最高数据速率
  • 如果支持32.0 GT/s的能力,则参与无需均衡模式
    • 如果支持32.0 GT/s的能力,则参与使用修改TS1/TS2有序集
  • 转发Phy Payload Type为0b的1b/1b Control SKP有序集。因此,带有Margin Payload的1b/1b控制SKP有序集将被转发。

4.3.2 支持的Reitmer拓扑

图4-62显示了本规范中定义的retimer支持的拓扑。在一条链路的上行端口和下行端口之间可能存在一个或两个Retimer。每个Retimer都有两个伪端口,它们动态地决定它们的下游/上游方向。每个Retimer都有一个Upstream Path和一个Downstream Path。在转发模式下,两个伪端口必须始终以相同的数据速率运行。因此,每个路径也将具有相同的数据速率。允许Retimer支持本规范定义的任何宽度选项作为其最大宽度。Retimer在各个高级运行模式下的行为为:

  • 转发模式:
    • 符号,电气空闲,退出电气空闲;在每个上行和下行路径上转发。
  • 执行模式:
    • 上行伪端口作为组件的上行端口。下行伪端口充当组件的下行端口。该模式适用于以下情况:
      • Polling.Compliance。
      • 链路均衡过程的Phase 2和Phase 3。
      • 可选地,Follower Loopback。

图4-62 支持的Reitmer拓扑
图4-62 支持的Reitmer拓扑

4.3.3 变量

在一次基本复位后,或是在Retimer在所有Lanes上都收到了两个连续的Link和Lane number为PAD的TS2(在一微秒的时间窗内、在上行和下行伪端口中都收到TS2,从第一条Lane上收到的第二个TS2的最后一个Symbol到最后一条Lane上收到的第二个TS2的最后一个Symbol)时,按照如下规定将以下的变量设为以下规定的值:

  • RT_port_orientation = undefined
  • RT_captured_lane_number = PAD
  • RT_captured_link_number = PAD
  • RT_G3_EQ_complete = 0b
  • RT_G4_EQ_complete = 0b
  • RT_G5_EQ_complete = 0b
  • RT_G6_EQ_complete = 0b
  • RT_LinkUp = 0b
  • RT_number = undefined
  • RT_next_data_rate = 2.5 GT/s
  • RT_error_data_rate = 2.5 GT/s
  • RT_flit_mode_enabled = 0b

4.3.4 接收端阻抗传递规则

当基本复位生效,Retimer发送端和接收端应该满足4.2.5.9.1中的要求。当基本复位解除时,Retimer被允许花100ms来开始主动确定其接收器阻抗。只支持5.0 GT/s或更低链路速度的Retimer,必须在20ms内完成此操作。在此间隔期间,接收器阻抗保持在基本复位期间所需的值。一旦度过了这个时间间隔,Retimer lane上的接收器阻抗确定如下:

  • 在上游或下游端口的Receiver满足ZRX-DC参数的1.0 ms内,低阻抗反向传播(即Retimer的Receiver在另一个伪端口对应的Lane上满足ZRX-DC参数)。每条Lane独立运行,这一要求始终适用。
  • 在检测到ZRX-DC状态之前,Retimer必须保持其发送器处于电空闲状态。这适用于每个Lane的基础上(注:即这一条也是对每条Lane都适用的)。

4.3.5 模式间的切换

Retimer有两种基本模式:转发模式和执行模式。当在这些模式之间切换时,必须同时在发送端所有通道的有序集边界上进行切换。在以当前模式传输的最后一个有序集和以新模式传输的第一个符号之间不得有其他符号。

当使用128b/130b或1b/1b时,发送端在模式切换时必须保持正确的加扰种子和LFSR值。

在转发模式和执行模式之间切换时,Retimer必须保证在前一种模式下发送的最后一个EIEOS和新模式下发送的第一个EIEOS之间至少发送16个TS1,最多发送64个TS1。

当切换到执行链路均衡模式时,Retimer必须确保发送端不会在一行中发送两个SKP有序集,并且不能超过SKP有序集之间的最大允许间隔,参见4.2.8.4。

4.3.6 转发规则

这些规则适用于Retimer处于转发模式的情况。基本复位解除后,Retimer处于Forwarding模式。
这些规则适用于Retimer处于转发模式的情况。基本复位解除后,Retimer处于Forwarding模式。

  • 如果Retimer 's Receiver检测到Lane上有电气空闲退出,Retimer必须进入Forwarding模式,并将该Lane上的Symbol转发到相反的伪端口,如§节4.3.6.3所述。

  • Retimer必须在给定的Lane上继续转发接收到的Symbols,直到它进入执行模式、或者直到收到EIOS、或者直到在该Lane上推断出电气空闲。即使接收端失去符号锁定或块对齐,此要求也适用。参见§4.3.6.5关于电气空闲进入的规则。
    -除了第4.3.6.9节和第4.3.6.7节中描述的情况外,Retimer应不变地转发所有符号。
    -当以64.0 GT/s数据速率运行时,Retimer必须遵循§4.2.3.2节的要求,以识别收到的SKP OS、EIEOS和EIOS。

  • 当运行数据速率为2.5 GT/s时,如果一个伪端口的某个Lane接收到TS1 Ordered set (Link and Lane number设置为PAD)持续5ms或更长时间、另一个伪端口在同一时间窗口内没有检测到任何一个Lane从电气空闲状态退出、且出现以下两种情况之一:

    • 依次执行:
      • 某条接收到到TS1的Lane上收到EIOS
      • 随后是一段时间的电空闲,时间小于5毫秒
      • 然后是根据§Section 4.3.6.3的不能转发的电气空闲退出
      • 注意:这被解释为连接到接收器的端口进入电气空闲状态,随后合规性码型的数据速率变化超过2.5 GT/s。
    • 任何接收TS1有序集的Lane上收到2.5 GT/s的合规性码型

    然后Retimer进入Execution mode CompLoadBoard状态,并遵循第4.3.7.1节。

  • 当使用1b/1b编码的128b/130b时,如果上行伪端口上的任何Lane收到两个连续的TS1有序集,EC字段等于10b,Retimer进入执行模式均衡,并遵循4.3.7.2。

  • 如果Retimer配置为支持Execution mode Follower Loopback、并且如果任何一个伪端口上的任何Lane接收到两个连续的Loopback bit设置为1的TS1有序集或两个连续的Loopback bit设置为1的TS2有序集,则Retimer进入Execution mode Follower Loopback,并遵循4.3.7.3节。

4.3.6.1 转发类型规则

Retimer必须确定它转发的是什么类型的符号。推断电气空闲的规则是Retimer转发的符号类型的功能。如果一条路径在某个lane上转发两个连续的TS1有序集或两个连续的TS2有序集,则该路径是转发有序集。如果一条路径在正在转发字符的所有lanes上、转发8个连续的字符时段的空闲数据,则该路径正在转发非训练集。当Retimer从转发训练集过渡到转发非训练集时,变量RT_error_data_rate设置为2.5 GT/s。

4.3.6.2 Orientation, Lane Numbers, and Data Stream Mode Rules 方向、车道号和数据流模式规则

Retimer必须动态地确定端口方向、Lane分配、Lane极性和数据流模式。

  • 当RT_LinkUp=0时,第一个在任何Lane上接收两个连续的具有非pad Lane号的TS1有序集的伪端口,其RT_port_orientation变量设置为Upstream Port,而另一个伪端口将其RT_port_orientation变量设置为Downstream Port。
  • Retimer在Lane number的确定中不起主动作用。Retimer必须在链路组件之间的配置状态结束时使用RT_captured_lane_number变量捕获Lane numbers。这适用于第一次通过Configuration,即当RT_LinkUp变量设置为0b时。在链路宽度配置期间,后续通过Configuration时、不能改变Lane numbers。当使用128b/130b或1b/1b时,需要Lane numbers用于scrambling seed。当Retimer处于执行模式时,需要Link numbers用于某些情况下。在RT_LinkUp变量设置为0b后,无论何时接收到首个两个连续的non-PAD Lane numbers和non-PAD Link numbers的TS2之时,使用RT_captured_lane_number和RT_captured_link_number变量捕获Link numbers和Lane numbers。当Lane reversal发生时,Retimer必须正常工作。当Retimer捕获到Lane numbers和Link numbers时,RT_LinkUp变量被设置为1b。此外,如果TS2 Ordered Sets中的Disable Scrambling bit被设置为1b,在上述任何一种情况下,Retimer都确定在使用8b/10b编码时禁用加扰。
  • Lane polarity is determined any time the Lane exits Electrical Idle, and achieves Symbol lock at 2.5 GT/s as described in § Section 4.2.5.5 :
  • 车道极性在车道退出电气空闲的任何时间确定,并达到2.5 GT/s的符号锁定,如§4.2.5.5所述:
    • If polarity inversion is determined the Receiver must invert the received data. The Transmitter must never invert the transmitted data.
    • 如果确定极性反转,则接收器必须反转接收到的数据。发送器绝不能反转传输的数据。
  • The Retimer plays an active part of Data Stream Mode determination. If the Retimer supports Flit Mode operation, for each Pseudo Port, it must capture the value of the Flit Mode Supported bit of the Data Rate Identifier field in the eight consecutive TS2 Ordered Sets received with Link and Lane numbers set to PAD when the RT_LinkUp variable is set to 0b. If the Flit Mode Supported bit is 1b in eight consecutive TS2 Ordered Sets received by both Pseudo Ports, the RT_flit_mode_enabled variable must be set to 1b and each Pseudo Port must follow Flit Mode rules (as specified in § Section 4.2 ) to identify transitions between Ordered Set Data and Data Streams. If the Retimer does not support Flit Mode operation, its RT_flit_mode_enabled variable must remain set to 0b and it must set bit 0 of the Data Rate Identifier (Symbol 0) to 0b in all TS Ordered Sets that it forwards (as described in § Section 4.3.6.7 ).
  • Retimer在数据流模式确定中起着积极的作用。如果Retimer支持Flit Mode操作,对于每个伪端口,当RT_LinkUp变量设置为0b时,它必须捕获连续8个TS2有序集中接收的链路和Lane号设置为PAD的数据速率标识符字段的Flit Mode Supported bit的值。如果两个伪端口接收到的8个连续TS2有序集的Flit Mode Supported bit为1b,则RT_flit_mode_enabled变量必须设置为1b,并且每个伪端口必须遵循Flit Mode规则(如§Section 4.2所述)来识别有序集数据和数据流之间的转换。如果Retimer不支持Flit Mode操作,它的RT_flit_mode_enabled变量必须保持设置为0b,并且在它转发的所有TS Ordered Sets中,它必须将数据速率标识符(符号0)的第0位设置为0b(如§4.3.6.7节所述)。
    • When using 8b/10b with Flit Mode, NOP Flits (instead of Idle data) identify the start of the data stream.
    • 当在Flit模式下使用8b/10b时,NOP Flits(而不是Idle data)标识数据流的开始。
    • When using 128b/130b or 1b/1b with Flit Mode, SDS Ordered Sets identify the start of the data stream.
    • 当使用128b/130b或1b/1b与Flit模式时,SDS有序集识别数据流的开始。
  • The Retimer’s place in the system topology is determined when eight consecutive TS2 Ordered Sets are received with (non-PAD) matching Link and Lane numbers and identical data rate identifiers. If the Retimer Present bits are set to 01b on the Upstream Pseudo Port, the RT_number must be set to 10b, otherwise RT_number must be set to 01b. The RT_number is used to determine Pseudo Ports B, C, D and E. This identification is needed for Execution Mode Follower Loopback with 1b/1b encoding.
  • Retimer在系统拓扑中的位置是在接收到8个连续的TS2有序集时确定的,这些TS2有序集具有(非pad)匹配的链路和通道号以及相同的数据速率标识符。如果上行伪端口的Retimer Present位设置为01b,则RT_number必须设置为10b,否则RT_number必须设置为01b。RT_number用于确定伪端口B、C、D和e。使用1b/1b编码的执行模式跟踪环回需要此标识。
4.3.6.3 Electrical Idle Exit Rules 电气闲置退出规则

At data rates other than 2.5 GT/s, EIEOS are sent within the training sets to ensure that the analog circuit detects an exit from Electrical Idle. Receiving an EIEOS is required when using 128b/130b or 1b/1b encoding to achieve Block Alignment. When the Retimer starts forwarding data after detecting an Electrical Idle exit, the Retimer starts transmitting on a training set boundary. The first training sets it forwards must be an EIEOS, when operating at data rates higher than 2.5 GT/s. The first EIEOS sent will be in place of the TS1 or TS2 Ordered Set that it would otherwise forward.
在数据速率大于2.5 GT/s的情况下,EIEOS在训练集内发送,以确保模拟电路检测到从电气空闲状态退出。当使用128b/130b或1b/1b编码实现块对齐时,需要接收EIEOS。当Retimer检测到一个电气空闲状态退出后开始转发数据时,Retimer开始在训练集边界上发送数据。当以高于2.5 GT/s的数据速率运行时,转发的第一个训练集必须是EIEOS。发送的第一个EIEOS将取代TS1或TS2有序集,否则它将转发。

If no Lanes meet ZRX-DC on a Pseudo Port, and the following sequence occurs:
如果在一个伪端口上没有Lanes满足ZRX-DC、并且出现以下一系列情况:

  • An exit from Electrical Idle is detected on any Lane of that Pseudo Port.
  • 在伪端口的某条lane上检测到从电气空闲状态退出。
  • And then if not all Lanes infer Electrical Idle, via absence of exit from Electrical Idle in a 12 ms window on that Pseudo Port and the other Pseudo Port is not receiving Ordered Sets on any Lane in that same 12 ms window.
  • 而且接着
  • REG_U3_CDRRX_EN如果不是所有的Lane都推断电空闲,则通过在该伪端口上的12 ms窗口中没有从电空闲退出,而另一个伪端口在相同的12 ms窗口中没有接收任何Lane上的有序集。

Then the same Pseudo Port, where no Lanes meet ZRX-DC, sends the Electrical Idle Exit pattern described below for 5 μs on all Lanes.
那么,接着在没有lanes满足ZRX-DC的伪端口上、在所有lanes上发送5 μs的如下所述的电空闲出口模式。

If operating at 2.5 GT/s and the following occurs:
如果以2.5 GT/s的速率运行、且出现以下情况:

  • any Lane detects an exit from Electrical Idle
  • 某条lane上检测到从电气空闲状态退出
  • and then receives two consecutive TS1 Ordered Sets with Lane and Link numbers equal to PAD
  • 接着接收到了2个连续的Lane&lane number等于PAD的TS1
  • and the other Pseudo Port is not receiving Ordered Sets on any Lane
  • 而且另一个伪端口没有在任一lane上收到有序集

Then Receiver Detection is performed on all Lanes of the Pseudo Port that is not receiving Ordered Sets. If no Receivers were detected then:
接着没有收到有序集的伪端口、其所有lanes上都执行Receiver Detection。如果没有探测到接收端,则:

  • The result is back propagated as described in § Section 4.3.4 , within 1.0 ms.
  • 在1ms内,如4.3.4节所述那样将结果向后传。
  • The same Pseudo Port that received the TS1 Ordered Sets with Lane and Link numbers equal to PAD, sends the Electrical Idle Exit pattern described below for 5 μs on all Lanes.

If a Lane detects an exit from Electrical Idle then the Lane must start forwarding when all of the following are true:

  • Data rate is determined, see § Section 4.3.6.4 , current data rate is changed to RT_next_data_rate if required.
  • Lane polarity is determined, see § Section 4.3.6.2 .
  • Two consecutive TS1 Ordered Sets or two consecutive TS2 Ordered Sets are received.
  • Two consecutive TS1 Ordered Sets or two consecutive TS2 Ordered Sets are received on all Lanes that detected an exit from Electrical Idle or the max Retimer Exit Latency has occurred, see § Table 4-64.
  • Lane De-skew is achieved on all Lanes that received two consecutive TS1 or two consecutive TS2 Ordered Sets.
  • If a data rate change has occurred then 6 μs has elapsed since Electrical Idle Exit was detected.

All Ordered Sets used to establish forwarding must be discarded. Only Lanes that have detected a Receiver on the other Pseudo Port, as described in § Section 4.3.4 , are considered for forwarding.

Otherwise after a 3.0 ms timeout, if the other Pseudo Port is not receiving Ordered Sets then Receiver Detection is performed on all Lanes of the Pseudo Port that is not receiving Ordered Sets, the result is back propagated as described in § Section 4.3.4 , and if no Receivers were detected:

  • Then the same Pseudo Port that was unable to receive two consecutive TS1 or TS2 Ordered Sets on any Lane sends the Electrical Idle Exit pattern described below for 5 μs on all Lanes.
  • Else the Electrical Idle Exit pattern described below is forwarded on all Lanes that detected an exit from Electrical Idle.
  • When using 128b/130b encoding:
    • One EIEOS
    • 32 Data Blocks, each with a payload of 16 Idle data Symbols (00h), scrambled, for Symbols 0 to 13.
    • Symbol 14 and 15 of each Data Block either contain Idle data Symbols (00h), scrambled, or DC Balance, determined by applying the same rules in § Section 4.2.5.1 to these Data Blocks.
  • When using 8b/10b encoding:
    • The Modified Compliance Pattern with the error status Symbol set to 00h.
  • This Path now is forwarding the Electrical Idle Exit pattern. In this state Electrical Idle is inferred by the absence of Electrical Idle Exit, see § Table 4-65. The Path continues forwarding the Electrical Idle Exit pattern until Electrical Idle is inferred on any lane, or a 48 ms time out occurs. If a 48 ms time out occurs then:
    • The RT_LinkUp variable is set to 0b.
    • The Pseudo Port places its Transmitter in Electrical Idle
    • The RT_next_data_rate and the RT_error_data_rate must be set to 2.5 GT/s for both Pseudo Ports
    • Receiver Detection is performed on the Pseudo Port that was sending the Electrical Idle Exit pattern and timed out, the result is back propagated as described in § Section 4.3.4 .

The Transmitter, on the opposite Pseudo Port that was sending the Electrical Idle Exit Pattern and timed out, sends the Electrical Idle Exit Pattern described above for 5 μs.

IMPLEMENTATION NOTE:
ELECTRICAL IDLE EXIT
Forwarding Electrical Idle Exit occurs in error cases where a Retimer is unable to decode training sets. Upstream and Downstream Ports use Electrical Idle Exit (without decoding any Symbols) during Polling.Compliance, and Recovery.Speed. If the Retimer does not forward Electrical Idle Exit then the Upstream and Downstream Ports will misbehave in certain conditions. For example, this may occur after a speed change to a higher data rate. In this event forwarding Electrical Idle Exit is required to keep the Upstream and Downstream Ports in lock step at Recovery.Speed, so that the data rate will return to the previous data rate, rather than a Link Down condition from a time out to Detect.

When a Retimer detects an exit from Electrical Idle and starts forwarding data, the time this takes is called the Retimer Exit Latency, and allows for such things as data rate change (if required), clock and data recovery, Symbol lock, Block Alignment, Lane-to-Lane de-skew, Receiver tuning, etc. The Maximum Retimer Exit Latency is specified below for several conditions:

  • The data rate before and after Electrical Idle and Electrical Idle exit detect does not change.
  • Data rate change to a data rate that uses 8b/10b encoding.
  • Data rate change to a data rate that uses 128b/130b encoding for the first time.
  • Data rate change to a data rate that uses 128b/130b encoding not for the first time.
  • Data rate change to a data rate that uses 1b/1b encoding for the first time.
  • Data rate change to a data rate that uses 1b/1b encoding not for the first time.
  • How long both transmitters have been in Electrical Idle when a data rate change occurs.

Retimers are permitted to change their data rate while in Electrical Idle, and it is recommended that Retimers start the data rate change while in Electrical Idle to minimize Retimer Exit latency.

Table 4-64 Maximum Retimer Exit Latency

ConditionLink in Electrical Idle for X μs, where:Link in Electrical Idle for X μs, where:
ConditionX < 500 μsX ≥ 500 μs

4.3.7 执行模式规则

在执行模式下,Retimer直接控制伪端口传输的所有信息、而非转发信息。

4.3.7.1 CompLoadBoard Rules

当Retimer处于CompLoadBoard (Compliance LoadBoard)状态时,两个伪端口都像普通端口一样执行协议,在每个端口上生成以下子节中指定的符号,而不是从一个伪端口转发到另一个。

实现注意:
无源负载接在发送端
当一个无源负载置于一个伪端口上、而且另一个伪端口收到信息量,则进入该状态。
4.3.7.1.1 CompLoadBoard.Entry
  • RT_LinkUp = 0b.
  • 收到Compliance Pattern的伪端口(伪端口A)执行以下操作:
    • 数据速率保持在2.5 GT/s。
    • 发送端置于电气空闲状态。
    • 接收器忽略传入的Symbols。
  • 另一个伪端口(伪端口B)执行以下操作:
    • 数据速率保持在2.5 GT/s。
    • 发送端置于电气空闲状态。如第8.4.5.7节所述,在所有lane上执行Receiver Detection。
    • 接收器忽略传入的Symbols。
  • 如果伪端口B的Receiver Detection确定没有接收器接在任何通道上,那么两个伪端口的下一个状态是CompLoadBoard.Exit。
  • 否则,两个伪端口的下一个状态是CompLoadBoard.Pattern。
4.3.7.1.2 CompLoadBoard.Pattern

当Retimer进入CompLoadBoard.Pattern时,会发生以下情况:

  • 伪端口A执行如下操作:
    • 发送端置于电气空闲状态。
    • 接收器忽略传入的Symbols。
  • 伪端口B执行如下操作:
    • 发送器在检测到接收器的所有通道上以第4.2.7.2.2节所述的数据速率和去强调/预设级别发送Compliance Pattern(即,每次连续进入CompLoadBoard都会推进该pattern),除非在Polling.Configuration期间未将Setting设置为设置#1。如果伪端口B在Fundamental Reset退出后收到TS1或TS2有序集(或其补集),则不使用设置#26及以后的设置。如果新的数据速率不是2.5 GT/s,在数据速率改变之前,发送端将被置于电气空闲状态。电气空闲时间必须大于1ms,但不超过2ms。
  • 如果伪端口B检测到、检测到接收器的任何Lane的Electrical Idle退出,则两个伪端口的下一个状态是CompLoadBoard.Exit。
4.3.7.1.3 CompLoadBoard.Exit

当Retimer进入CompLoadBoard.Exit时,会发生以下情况:

  • 对于伪端口A:
    • 数据速率保持在2.5 GT/s。
    • 发送器发送第4.3.6.3节中描述的Electrical Idle Exit pattern,在伪端口B检测到Electrical Idle exit的Lane(s)上持续1ms。然后将发送端置于Electrical Idle。
    • 接收器忽略传入的Symbols。
  • 对于伪端口B:
    • 如果发送器的传输速率不是2.5 GT/s,则发送8个连续的EIOS。
    • 发送端置于电气空闲状态。如果发送端的传输速率不是2.5 GT/s,则电气空闲时间段必须至少为1.0 ms。
    • 数据速率切换到2.5 GT/s,如果还没有在2.5 GT/s的话。
  • 两个伪端口置为Forwarding mode。
实现注意:
TS1有序集在转发模式下
一旦进入转发模式,可能会发生以下两种情况之一:
• TS1有序集接收到后,并从伪端口B接收端转发到伪端口A发送端。Link训练仍在继续。
• 或者:TS1有序集未被接收,因为从合规负载板上的lane上正在接收100 MHz脉冲,推进了Compliance Pattern。在这种情况下,当连接到伪端口A的设备从Polling.Active超时到Polling.Compliance时,Retimer必须从Forwarding模式切换到CompLoadBoard模式。Retimer每次进入CompLoadBoard,将推进Compliance Pattern
4.3.7.2 Link Equalization Rules

当处于执行Link Equalization的Execution mode下,伪端口作为普通端口,在每个端口上生成Symbols、而不是从一个伪端口转发到另一个伪端口。当Retimer处于Execution mode时,它必须使用RT_captured_lane_number和RT_captured_link_number中存储的Lane numbers和Link numbers。

当链路上的上游和下游端口处于协商进入均衡过程的第二阶段时,Retimer遵循第4.3.5节中描述的切换到执行模式的过程、进入此模式。

4.3.7.2.1 Downstream Lanes 译文

当下行伪端口想要调节上行端口的发送端时,上行端口处于Phase1时(下行端口)从两个连续的TS0/TS1中收到的LF和FS必须存下来,以备在Phase3期间使用。

4.3.7.2.1.1 Phase 1 译文

发送端的行为如4.2.7.4.2.1.1节所述,以下为不同之处:

  • 如果运行速率为64.0 GT/s及以上,当上行伪端口的状态为Phase0时Retimer向下游发送的TS0中的Retimer Equalization Extend bit应设为1b、而当上行伪端口的状态为Phase1时Retimer向下游发送的TS0中的Retimer Equalization Extend bit应设为0b;24ms超时减少到22ms。
4.3.7.2.1.2 Phase 2 译文

发送端的行为如4.2.7.4.2.1.2节所述,以下为不同之处:

  • 如果运行速率为16GT/s及以上,当上行伪端口状态为Phase2 Active时Retimer发送的TS1中的Retimer Equalization Extend bit应设为1b,而当上行伪端口状态为Phase2 Passive时Retimer发送的TS1中的Retimer Equalization Extend bit应设为0b。
  • 如果所有已配置的Lanes都收到了两个连续的EC=11b的TS1,则下一状态为Phase3。
  • 否则,在32ms超时(32~36ms)后,下一状态为Force Timeout。
4.3.7.2.1.3 Phase 3 Active 译文

如果运行速率为8.0 GT/s,那么发送端行为如4.2.7.4.2.1.3节描述,除了其中的24ms超时变为2.5ms超时之外,还有以下不同之处:

  • 如果所有已配置的Lanes都运行在最优设置下,则下一阶段为Phase3 Passive。
  • 否则,在2.5ms超时(2.5~2.6ms)之后的下一状态为Force Timeout。

如果运行速率为16.0 GT/s,那么发送端行为如4.2.7.4.2.1.3节描述,除了其中的24ms超时变为22ms超时之外,还有以下不同之处:

  • 发送的TS0/TS1中的Retimer Equalization Extend bit应设为0b。
  • 如果所有已配置的Lanes都运行在最优设置下、且所有已配置的Lanes收到了两个连续的Retimer Equalization Extend bit为0b的TS1,则下一阶段为Phase3 Passive。
  • 否则,在22ms超时(22~23 ms)之后的下一状态为Force Timeout。
4.3.7.2.1.4 Phase 3 Passive 译文
  • 发送端发送EC=11b、Retimer Equalization Extend=0b的TS1,且Transmitter Preset字段和Coefficients字段必不能变为与Phase3 Active中发送的最终值不同的值。
  • 当上行伪端口退出Phase3时,发送端切换到转发模式。
4.3.7.2.2 Upstream Lanes 译文

如果上行伪端口想要调节下行端口的发送端,则在下行端口处于Phase1时收到的两个连续的TS1中LF和FS值、必须存下来,以备在Phase2期间使用。

4.3.7.2.2.1 Phase 0 译文

发送端遵循4.2.7.4.2.2.1节的Phase0规则,以下为不同之处:

  • 如果运行速率为64.0 GT/s及以上,则在下行伪端口状态处于Phase1时(在上行lanes中)发送的TS0中的Retimer Equalization Extend bit应设为1b、EC=00b,其他情况下Retimer Equalization Extend bit应设为0b;12ms超时变为10ms。
4.3.7.2.2.2 Phase 1 Active 译文

发送端遵循4.2.7.4.2.2.2节对上行Lanes的Phase1规定。

4.3.7.2.2.3 Phase 2 Active 译文

如果运行速率为8.0 GT/s,那么发送端行为如4.2.7.4.2.2.3节描述,除了其中的24ms超时变为2.5ms超时之外,还有以下不同之处:

  • 如果所有已配置的Lanes都运行在最优设置下,则下一阶段为Phase2 Passive。
  • 否则,在2.5ms超时(2.5~2.6ms)之后的下一状态为Force Timeout。

如果运行速率为16.0 GT/s,那么发送端行为如4.2.7.4.2.2.3节描述,除了其中的24ms超时变为22ms超时之外,还有以下不同之处:

  • 发送的TS1中的Retimer Equalization Extend bit应设为0b。
  • 如果所有已配置的Lanes都运行在最优设置下、且所有已配置的Lanes收到了两个连续的Retimer Equalization Extend bit为0b的TS1,则下一阶段为Phase2 Passive。
  • 否则,在22ms超时(22~23ms)之后的下一状态为Force Timeout。
4.3.7.2.2.4 Phase 2 Passive 译文
  • 发送端发送EC=10b、Retimer Equalization Extend=0b的TS1,且其Transmitter Preset字段和Coefficients字段必不能变为与Phase2 Active中发送的最终值不同的值。
  • 如果运行速率为8.0 GT/s,则在下行伪端口已经完成Phase3 Active时下一状态为Phase3。
  • 如果运行速率为16.0 GT/s及以上,则在下行伪端口已经开始Phase3 Active时下一状态为Phase3。
4.3.7.2.2.5 Phase 3 译文

发送端遵循4.2.7.4.2.2.4节对上行Lanes的Phase3的规则,以下为不同之处:

  • 如果运行速率为16GT/s及以上,当下行伪端口为Phase3 Active时Retimer发送的TS1中的Retimer Equalization Extend bit应设为1b,而当上行伪端口状态为Phase3 Passive时Retimer发送的TS1中的Retimer Equalization Extend bit应设为0b。
  • 如果所有已配置的Lanes都收到了两个连续的EC=00b的TS1,那么接下来Retimer切到转发模式。
  • 否则,在32ms超时(32~36ms)后,下一状态为Force Timeout。
4.3.7.2.3 Force Timeout 译文
  • 第4.3.6.3节中描述的Electrical Idle Exit Pattern由两个伪端口以当前数据速率传输至少1.0 ms。
  • 如果在任何通道上,接收端接收到EIOS或通过未检测到从电空闲退出推断电空闲(见§表4-65),则对面伪端口的所有通道上的发送端发送EIOSQ,然后进入电气空闲状态。
  • 如果两个路径的发送端都处于电气空闲状态,则两个伪端口的RT_next_data_rate设置为RT_error_data_rate、RT_error_data_rate设置为2.5 GT/s,Retimer进入Forwarding模式。
    • 两个伪端口的发送端必须处于“电气空闲”状态至少6 μs,才能转发数据。
  • 否则,超时48 ms后,两个伪端口的RT_next_data_rate和RT_error_data_rate分别设置为2.5 GT/s和2.5 GT/s,Retimer进入转发模式。
实现注意:
FORCE TIMEOUT状态的目的
此状态的目的是确保两个链路组件同时都处于Recovery.Speed,从而使他们回退到以前的数据速率。
  • 8
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
PCIe(Peripheral Component Interconnect Express)总线中,"prefetchable"和"nonprefetchable"是与内存读取和写入操作相关的两个关键概念。 首先,"prefetchable"(可预取)和"nonprefetchable"(不可预取)是用来描述PCIe设备对于数据读取操作的一种指示。当一个PCIe设备需要从系统内存中读取数据时,它可以选择使用可预取或不可预取的方式。 可预取(prefetchable)指的是设备可以先把未来可能需要的数据预取到自己的缓冲区中,并在需要时直接使用,从而减少对主系统内存的访问。这可以提高设备的读取性能,尤其对于需要较大数据块的设备来说。可预取的数据通常以缓存行(cache line)的形式进行处理,这样设备可以在需要时迅速获取。 不可预取(nonprefetchable)则指的是设备每次只能从系统内存中读取特定数据,不能预先将数据缓存起来。这样的读取行为通常发生在具有特殊需求的设备上,例如DMA(Direct Memory Access)控制器,其需要获取实时的、即时的数据,而不需要进行缓存。 从以上描述可以看出,可预取和不可预取主要是为了适应不同设备对于数据读取的需求。对于需要高性能且可以预测数据访问模式的设备,可预取机制可以提升读取性能;而对于实时性要求高、不能缓存数据的设备,不可预取则更加适合。 总之,PCIe的可预取和不可预取机制允许设备根据自身的特性选择适合的数据读取方式,以提高系统整体的性能和效率。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值