2 g. e ~( @5 f$ ^
2,所有高速串口都采用差分总线传输,外界噪声同时加载到并行传输的两条差分线上,相减之后可以抵消,对外部噪声的抵抗能力强。
7 ]: |( V5 n, l) ?" ^+ H' C' x3,没有时钟skew问题,因为它根本就没有同步时钟,不存在时钟和数据流的对齐问题。只需要保证差分信号线是对齐的就行,这是很容易的,因为差分信号线的值总是相反,相关性强,易控制。一根线跳的时候,另一根线经过一个非门的延时马上会跳,这个非门的延时是很容易补偿的。并行总线最大的问题就是多根线传输的时候,无法保证所有的沿变都对齐,很有可能传着传着某些信号跟不上,落后了一个T,数据就传错了。想控制也难,因为各个信号没有相关性,互相的沿变本身就是独立的,因为布线不同,很有可能一个跳的早点,另一个跳的晚点,再加上各个传输线电阻不同,噪声不同,传一会儿就分辨不出来哪个值对应哪个周期。
- Q0 T$ t+ c$ @& {& G/ O4,线少,干扰少。并行传输,一般32根或者64根,一根线跳变,会给旁边的线带来噪声,频率越高,这种噪声越大,很容易导致别的线值被篡改或者无法辨认,所以频率不可能很高。串行传输一般就4根数据线,分成Rx两根差分线和Tx两根差分线,差分线总是往相反方向跳,可以抵消各自的跳变噪声,比如Rx的正极性发生跳变时会产生噪声,这种噪声可以被Rx的负极性以相反的跳变直接抵消掉(因为他们是差分信号对),总的噪声为0,根绝了内部噪声。综上,串口传输的各种优势使得其内外噪声皆免疫,又没有信号对齐之忧,可以以极高的速率传输。比如SATA可以以6Gb的速率传输数据流,PCIE可以以8Gb的速率传输数据流。这种速率,并行传输是根本做不到的,更不要说串行传输还能节省大量引脚。
3 Z1 ?3 C% b! w" z, H" l! b为了提高单根线的传输速率,必须要讲到我们模拟电路工程师的三大法宝,差分信号(differential signaling),时钟-数据恢复(Clock-Data Recovery,简称CDR),和信道均一化(Channel Equalization,Eq)
% O0 @* h0 _- s3 x
差分信号的好处 不外乎抗干扰能力强,引入的噪声也比较小,虽然必须要两根线,但速度从几百M提高到几G,还是很值得的。
; B$ V3 [3 G# h. B+ j
CDR的好处 消灭了skew,减少了时钟的功耗和噪声(但多出了CDR电路本身的功耗和噪声),同时避免了电磁干扰。想想在PCB或者电线上传一个15G的时钟,太带感了,幸亏我们不用做这种事。
4 ?6 O5 F# P/ [! p' Z
信道均一化 相当值得一提,这才是SerDes高速发展的决定性因素,所以我决定花点文字讲一下。2 [8 ]" o6 `" ^3 G2 I
1 c8 B7 v* y8 ~. I ?# O
一般来说,真实世界中的信道都是低通特性的,到处都是小电容,所谓绝缘体中的分子在高频情况下吸收电场能量,再加上金属线中的趋肤效应,所以我们想要的高频信号走不了多远就不像样子了,比如下面某信道的频率特性(绿线)。
7 P& _; f' R- O* S |# }/ c6 E
a3 q- i# v$ a0 J. Y" u5 v7 G4 F
9 a" G4 N F6 _5 Y% C- w2 s' R
如图所示,在对应28Gbps的频点上,信号能量被衰减了30db,电压幅度只剩3%了;在对应56Gbps的频点上更惨,65db意味着信号电压摆幅剩下不到千分之一。在这种信道中,发送端一个完美漂亮的数据眼图:
, r! K1 J1 U. z8 I* O 到了接收端会变成这样的一堆垃圾:
$ G$ j G- H- R4 v' }6 i
什么都辨认不出来对吧。但是,经过我们聪明的工程师们一番努力,均一化开关打开,信号就变成了这样:
. c4 A8 J: ?3 `) d; j+ `0 l
既然有了三大法宝,他们只能用在串口上吗?1 ?) t: i! P3 x) `! B4 M
答案很显然,不是,串口可以用的,我们并口一样可以用。那为什么并口不用呢?
! d& d' z W" G! b2 G
差分信号这条不用说了,并口的电线本来已经够多了,数目还要再翻一倍?系统工程师会杀人的。0 o' a* t5 b, m
; i/ Y/ ]! ^2 G% G( o
CDR 意义也不大,反正你并口速度也不高,一堆数据线中顺便传下时钟,比做接收端做CDR再采样每一位数据省事多了。" N( p# {* H" G! X8 Y
/ y I, x2 U8 J
信道均一化属于屠龙之技,不用差分信号的话也就传几百M,本来就没啥衰减,用这个干啥?还是考虑下各种噪声串扰的问题吧。
$ _ J1 M: B; E6 M" D% G( d
于是答案就呼之欲出了。串口为啥比并口快?是因为串口的特性和应用场景,决定了它更加适合采用一些可以提高单根信道速率的设计方法,这些方法用在并口上并不合适。
# C- F4 d1 l- n* I. p, z, m; \从现有的应用看来,需要持续稳定高带宽的应用,往往使用高速串行接口,一根带宽不够再加一根,各种视频
网络应用,基本如此。而一些历史遗留速度不高的应用,还有一些需要突发性高带宽的应用,并口仍然存活,比如很特殊的DDR。虽然XDR/GDDR/HMC/HCM这些新标准都在试图引入SerDes, 但DRAM行业的特殊性还是让并口继续存活着。