S4.2.4.3 Electrical Idle Sequence(EIOS)

一 本章节主讲知识点
1.1 EIOS的具体码型
1.2 EIOS的识别规则
1.3 EIEOS的具体码型
二 本章节原文翻译
2.1 EIOS

当某种状态下,发送器想要进入电器空闲状态的时候,发送器必须发送EIOSQ,也既是:电器Electrical Idle Odered Set Sequence。当然,除非在某些情况下,特殊制定,也是可以不发送EIOSQ的。

(1)若当下速率是Gen1/3/4/5, 一个EIOSQ 是由一个 EIOS 组成;

(2)若当下速率是Gen2,一个EIOSQ是由2个EIOS组成。

2.1.1 8b/10b 编码模式,Gen1/Gen2 

当使用8b/10b编码的时候,一个EIOS的组成规则,请见Table 4-10  描述。

            

对于发送端,其必须完整发送整个EIOS;对于接收端,其认为接收到EIOS的标准是:接收到一个COM, 加三个IDL 中的两个 IDL。

2.1.2 128b/130b 编码模式,Gen3/Gen4/Gen5

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 的最后一个字符后,发射器必须处于电气空闲状态。

2.2 EIOS

EIEOS 有序集是低频周期发送的控制数据,Gen 1 不支持,它的作用是帮助接收器退出电气空闲状态。在 128b/130b 编码中,还可以用于块对齐,这涉及到块对齐的知识。

Gen 2-4,EIEOS 序列是一个 EIEOS 有序集;Gen 5 则由两个背靠背中间无其它信号插入的 EIEOS 有序集组成。但只发一个 EIEOS 有序集也可以帮助块对齐

而 Gen 6 中,EIEOS 序列的定义更加复杂了,除下列特殊情况是由 4 个连续 EIEOS 组成且中间不能被其它有序集插入外,其他情况是一个 EIEOS 有序集组成

  • 从 Recovery.Speed 或 L1 状态进入 Recovery.RcvrLock,直到接收器所有 Lane 收到了退出电气空闲信号或任意 Lane 收到了两个连续有效的 TS1 有序集
  • 在 L0p 状态增大链路宽度操作时,接收器在需要激活的所有 Lane 检测到退出电气空闲或有两个连续有效的 TS1 有序集
  • 从电气空闲进入 Loopback,直到接收器在需要激活的所有 Lane 检测到电气空闲或两个连续的 TS1 有序集

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 的效果图是怎么样的?

五 总结
5.1 EIOS

在 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 的最后一个字符后,发射器必须处于电气空闲状态。

5.2 EIEOS

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

那么菜

你的鼓励和批评是我最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值