Execution Mode
当PCIe Retimer处于Execution Mode的时候,Retimer直接控制伪端口发送的信息,而不是对这些信息进行转发。
CompLoadBoard
当Retimer处于CompLoadBoard(Compliance Load Board)状态时,两个伪端口就像常规的port一样,可以按照SPEC规范产生Symbols,而不是简单的把数据从一个伪装端口转发到另一个伪端口。
注:当Retimer的一个伪端口放置一个无源负载,另一个伪端口正处于接收数据的时候进入该状态。
CompLoadBoard.Entry子状态
1 RT_LinkUp = 1’b0。
2 接收Compliance Pattern的伪端口(假如为伪端口A)行为如下:
(1)速率为2.5GT/s。
(2)Tx处于电气空闲状态。
(3)Rx忽略此时接收的Symbol。
3 另一个伪端口(假如为伪端口B)的行为如下:
(1)速率为2.5GT/s。
(2)Tx处于电气空闲状态,并且会在所有的Lane上做终端检测。
(3)Rx忽略此时接收的Symbol。
4 如果伪端口B做完终端检测之后,并没有发现Rx,则会进入CompLoadBoard.Exit状态,否则会进入CompLoadBoard.Pattern状态。
CompLoadBoard.Pattern子状态
当Retimer进入CompLoadBoard.Pattern子状态,具体的行为如下:
1 伪端口A的行为如下:
(1)Tx处于电气空闲状态。
(2)Rx忽略此时接收的Symbol。
2 伪端口B的行为如下:
Tx会以PCIe SPEC4.2.6.2.2中决定的速率和De-emphasis和Preset在检测到对端含有Rx的Lane发送Compliance Pattern。除开以下几种情况:
(1)在Polling.Configuration状态期间,设置不会Setting #1。
(2)完成基本的复位之后,如果伪端口B接收到了TS1/2,那么Setting #26以及之后都不会被使用。
(3)如果新的速率不是2.5GT/s,那么Tx在变速之前会被置于电气空闲状态。
(4)处于电气空闲状态的时间一定要大于1ms,但是不要超过2ms。
3 如果伪端口B在任意一条Lane上检测到了EIEOS,Retimer则进入CompLoadBoard.Exit子状态。
CompLoadBoard.Exit子状态
当Retimer进入CompLoadBoard.Exit子状态,具体的行为如下:
1 伪端口A的行为如下:
(1)速率保持在2.5GT/s。
(2)Tx(在伪端口B之前检测到EIEOS的Lane上)发送EIEOS,然后Tx进入电气空闲状态。
(3)Rx忽略此时接收的Symbol。
2 伪端口B的行为如下:
(1)如果Tx此时的速率不是2.5GT/s,则Tx发送8个连续的EIOS。
(2)Tx处于电气空闲状态,如果此时的速率不是2.5GT/s,则处于电气空闲的时间必须最少有1ms。
(3)速率切换到2.5GT/s。
3 后续两个伪端口都会进入Forwarding Mode。
参考书籍
- PHY Interface For the PCI Express, SATA, USB 3.1, DisplayPort, and Converged IO Architectures 5.2
- PCI Express® Base Specification Revision 5.0 Version 1.0
- PCI Express Technology Comprehensive Guide to Generations 1.x, 2.x, 3.0