当某种状态下,发送器想要进入电器空闲状态的时候,发送器必须发送EIOSQ,也既是:电器Electrical Idle Odered Set Sequence。当然,除非在某些情况下,特殊制定,也是可以不发送EIOSQ的。
(1)若当下速率是Gen1/3/4/5, 一个EIOSQ 是由一个 EIOS 组成;
(2)若当下速率是Gen2,一个EIOSQ是由2个EIOS组成。
当使用8b/10b编码的时候,一个EIOS的组成规则,请见Table 4-10 描述。

对于发送端,其必须完整发送整个EIOS;对于接收端,其认为接收到EIOS的标准是:接收到一个COM, 加三个IDL 中的两个 IDL。
128b/130b 和 1b/1b 编码下,EIOS 是有序集块。如果 EIOS 发送后还有 EIOS 需要发送,则要发送正在发送的 EIOS 的全部字符。此外,规定了发射器必须发送 EIOS 的字符 0-13,在转入电气空闲后可以在发送字符 14-15 的任一处停止发送。其实也就是说,PCIe Gen 3 及更高的版本是允许最后一个 EIOS 有序集截断,因为此时的内部时钟可能无法支持继续发送,所以接收器也只是看 EIOS 的前 4 个字符来判断。
Gen 6 之前,只要收到了符合 EIOS 的字符 0-3,就认为收到了 EIOS。Gen 6,只要接收到的块的前 8 个字节中有至少 5 个字节能够匹配对应的 EIOS 的字节,且字符 0 或字符 8 也匹配对应的 EIOS 字节,则认为收到 EIOS。
发送完 EIOS 的最后一个字符后,发射器必须处于电气空闲状态。

EIEOS 有序集是低频周期发送的控制数据,Gen 1 不支持,它的作用是帮助接收器退出电气空闲状态。在 128b/130b 编码中,还可以用于块对齐,这涉及到块对齐的知识。
Gen 2-4,EIEOS 序列是一个 EIEOS 有序集;Gen 5 则由两个背靠背中间无其它信号插入的 EIEOS 有序集组成。但只发一个 EIEOS 有序集也可以帮助块对齐
而 Gen 6 中,EIEOS 序列的定义更加复杂了,除下列特殊情况是由 4 个连续 EIEOS 组成且中间不能被其它有序集插入外,其他情况是一个 EIEOS 有序集组成
Gen 6 中,一个块的开始和末尾的 8 字节中有至少 5 个对齐和连续的字节符合对应的 EIEOS 的字节,并且块的字符 0 或字符 8 符合 EIEOS 对应的字节,接收器可以忽略其中 1bit 的不匹配,则认为收到了 EIEOS
Gen 2 会在以下情况发送 EIEOS 序列:
当使用128b/130b编码模式时候,一个EIOS的组成,是由一个EIOS block ,见下表。

Transmitters must transmit all Symbols of an EIOS if additional EIOSs are to be transmitted following it. Transmitters must transmit Symbols 0-13 of an EIOS, but are permitted to terminate the EIOS anywhere in Symbols 14 or 15, when transitioning to Electrical Idle after it.
An EIOS is considered received when Symbols 0-3 of an Ordered Set Block match the definition of an EIOS.

既然有EIOS 进入电器空闲序列,那么肯定要有退出电器空闲序列。我们看下SPec 中规定的EIEOS :

下面是Gen3/4/5 速率下的,EIEOS 的详细bit流情况,我们可以发现:三种速率下的EIEOS 在串行端的频率大概是1Ghz 。

暂无
疑问1:对于发送端,其必须完整发送整个EIOS;对于接收端,其认为接收到EIOS的标准是:接收到一个COM, 加三个IDL 中的两个 IDL。为什么?连续2个,还是只要收到2个?这么处理好处是什么?
答:
疑问2:在具体实现中,Gen3/4/5 发送EIOS 和 EIEOS 的效果图是怎么样的?
在 8b/10b 编码下,EIOS 由 K28.5 COM 和其后的三个 K28.3 IDL 字符组成。发射器是需要发送 EIOS 有序集的所有字符,不过接收器只要接收到 COM 和其后的两个 IDL 字符,就认为收到了 EIOS。
128b/130b 和 1b/1b 编码下,EIOS 是有序集块。如果 EIOS 发送后还有 EIOS 需要发送,则要发送正在发送的 EIOS 的全部字符。此外,规定了发射器必须发送 EIOS 的字符 0-13,在转入电气空闲后可以在发送字符 14-15 的任一处停止发送。其实也就是说,PCIe Gen 3 及更高的版本是允许最后一个 EIOS 有序集截断,因为此时的内部时钟可能无法支持继续发送,所以接收器也只是看 EIOS 的前 4 个字符来判断。
Gen 6 之前,只要收到了符合 EIOS 的字符 0-3,就认为收到了 EIOS。Gen 6,只要接收到的块的前 8 个字节中有至少 5 个字节能够匹配对应的 EIOS 的字节,且字符 0 或字符 8 也匹配对应的 EIOS 字节,则认为收到 EIOS。
发送完 EIOS 的最后一个字符后,发射器必须处于电气空闲状态。