在 link 进入Electrical Idle 状态前,必须要发送 Electrical Idle Ordered Set Sequence (EIOSQ)。在2.5 GT/s, 8.0 GT/s, 16.0 GT/s, 32.0 GT/s, 以及64.0 GT/s速率下,一组 EIOSQ seq 由一个 EIOS 构成。在5.0 GT/s速率下则由两个 EIOS 构成。
EIOS:
在 8b/10b 编码下,EIOS 由一个 K28.5 (COM) Symbol 加上 三个 K28.3 (IDL) Symbol 构成。发送端必须发送所有EIOS里面的所有symbol。而接收端在收到 EIOS 中的 COM symbol 及三个 IDL symbol 中的两个即认为 EIOS 已经被收到。
在128b/130b编码下,EIOS 是一组 Order Set (66h)。
在1b/1b编码下,EIOS 是一组 Order Set (0Fh,F0h)。
对于由OS构成的EIOS,规则如下:
- 如果发送端发出的 EIOS 后面仍然发送 EIOS,那么发送端必须发送全部的 0~15 symbol。
- 如果发送端在发出当前 EIOS 后直接进入 Electrical Idle 状态,那么发送端需要发送 0~13 symbol,但是可以停止发送 symbol 14 和 symbol 15。
- 如果速率在 64GT/s 以下,接收端在接收到 symbol 0~3 后即可认为收到 EIOS。
- 如果速率在 64GT/s 及以上时:如果接收端在收到的前 8 个 symbol 中有大于等于 5 个 symbol 符合 EIOS 的编码方式,并且 symbol 0 或者 symbol 8 符合 EIOS 编码方式。当 link 收到 EIOS 后,不论后续收到的 7 个 symbol 是什么,link 都可以进入 Electrical Idle 状态了。
EIOS是可以截断的:
发送端在发送最后一个 EIOS symbol 后,必须要在 TTX-IDLE-SET-TO-IDLE 时间内进入 Electrical Idle 状态:
EIEOS:
EIEOS 仅在非 2.5GT/s 的速率下传输。是发送端发出的一组周期性低频信号用来通知对端退出Electrical Idle 状态。128b/130b 编码下,EIEOS 还会用来实现 block alignment。
Electrical Idle Exit Ordered Set Sequence(EIEOSQ) 在 32.0GT/s 速率下,由两组连续非间断的 EIEOS 构成;在5.0 GT/s, 8.0 GT/s, 及 16.0 GT/s 速率下则由一组 EIEOS 构成。不同速率下的 EIEOS 编码方式如下:
而在 64.0GT/s 速率下,EIEOSQ 在不同的场景下由不同数量的 EIEOS 构成:
64.0GT/s 的 EIEOS 编码如下:
不同编码方式下发送 EIEOS 场景规定如下:
8b/10b:
128b/130b:
1b/1b: