微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > 微电子学习交流 > PCIe PHY在GEN1/2与GEN3时,差别巨大,为什么啊?

PCIe PHY在GEN1/2与GEN3时,差别巨大,为什么啊?

时间:12-12 整理:3721RD 点击:
GEN1/GEN2时,使用8b/10b,而GEN3时,使用的是128b/130b。
GEN1/GEN2时,所有lane的scramble使用相同的seed,而GEN3时,总共有8个seed。
为什么这样做啊?请知道的大哥大姐指点一下。谢谢。
猜测是电气特性在速度变高而导致的,不知道对不对,也不知道详细细节是怎样的。

不知道,帮顶

8b10b损失20%带宽啊。。。

8b/10b的确损失20%的效率,用128b/130b的效率就高多了。扰码不知道,求解。

有道理,不过这样以来,PHY的data path design就要设计2套了,gate count也增加不小啊。

弃用8b10b, 8Gbps就double了前一代的速率,否则要10Gbps
由此剩下的PCB成本和设计复杂度超过两套data path增加的gate count
128b130b严格说算不上encoding,实现起来简单,跟8b10b起的作用不一样

128/130和8b/10b不同只是插入两位的sync bit,所以需要扰码来提高编码的transition数量以及避免很长的0或者1,达到8b/10b的类似效果,使得serdes中的cdr能够恢复出数据与时钟。

谢谢解答。
但是在128b/130b时,各个lane的扰码seed是不同的。
然而在8b/10b时,所有lane公用同一个seed='hFFFF。这些要怎么理解啊?

8b10b编码是在scramble之后做的,不论输入如何,编码输出只有
4个0 6个1
5个0 5个1
6个0 4个1
三种情况,而且有running disparity机制来保证dc balance
所以我真不太清楚8b10b里的scramble的作用。。。

嗯,8b/10b里面没有scramble

8b10b: for dc balance within symbol range
scramble: decrease EMI in a relatively long period

精心设计一下被scramble的原始数据,scramble后也是可以发出超长全0么?

scramble的作用是避免出现周期性的code是频带能量集中,简单说就是让频带的能谱看上去尽可能接近白噪声

scramble之后是可能有超长全0,但后面还有8b10b呢,8b10b后就不可能超长全0了

懂了^^

那128b/130b呢,这个是scramble后就发出去了,是不是可能会出现超长0?

同意上面兄台说的,Gen3如果还采用8b/10b,就需要采用10G的tranceiver, 这对布线的阻抗要求太高,耦合电容也要换用更小的,这对兼容性的挑战太大了。

这是在说相声吗?

你怎么看出来的。

Gen3 spec上貌似没有10G字样
莫非你看到 USB3.1去了?

要满足128/130编码的吞吐率,但是使用8/10编码,需要的带宽是10G  上面说的应该是这个意思吧

“Gen3如果还采用8b/10b”——注意如果两个字

sync header要么10要么01,在最极端的情况下也就128b的0,PCIE GEN3用的degree 23的scrambler,实际出现这种超长0/1的机会极小
即便真出现了并造成CDR unlock,接下来会发生的事是传输时检测到framing error,然后EIEOS reset scrambler,然后就又正常了。而前面收到的错误包在Link Layer应该还有纠错机制。
我想来,因为没有8b10b,GEN3上出现framing error的情况应比GEN1/2频繁,造成些额外的LTSSM cycle through的overhead,但还是远比用8b10b的overhead小

谢谢这位大哥的解答。
GEN3时23-bit的scramble,在各个lane上的seed是不同的,这又是出于什么考虑的呢?
还有一个问题,既然GEN1/2时有8b/10b,可以避免DC balance的0/1个数不平衡的问题,那为什么还要用scramble呢?是不是可以取消啊?

我觉得用不同的seed是避免所有lane上传输的数据一样(当不同lane在scramble前的data都一样时),减少Simultaneous Switching Noise
第二个问题回答过了,scramble让数据看起来伪随机,好处前面讲了

我猜你还是没有看懂我在说什么,pcie1.1到pci2.0,到pcie3.0,速度是按照2倍的提升。刨去8b10b的编码损耗,pcie1.1的一个lane实际带宽是2G,pcie2.0是4G,这样pcie3.0就应该是8G,pcie如果还用8b10b编码,这样线上实际的速率就是10G了。明白了吗?

谢谢解答。第二个问题我也看到您前面的解答了。非常感谢。
那为何GEN1/GEN2时,各个lane使用的SEED都相同?不用避免simultaneous switching noise吗?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top