为了提高单根线的传输速率,必须要讲到我们模拟电路工程师的三大法宝,差分信号(differential signaling),时钟-数据恢复(Clock-Data Recovery,简称CDR),和信道均一化(Channel Equalization,Eq)。
( V) h/ B' Z3 k Q0 @差分信号的好处:不外乎抗干扰能力强,引入的噪声也比较小,虽然必须要两根线,但速度从几百M提高到几G,还是很值得的。
9 ?: i8 Z5 s2 S3 f$ v
) ~( g/ g# U' }; h3 hCDR的好处:消灭了skew,减少了时钟的功耗和噪声(但多出了CDR电路本身的功耗和噪声),同时避免了电磁干扰。想想在PCB或者电线上传一个15G的时钟,太带感了,幸亏我们不用做这种事。. @, u- ?+ c# _; L j3 x: Z3 h& y
3 _5 _% C# u' Y# v9 w
信道均一化 相当值得一提,这才是SerDes高速发展的决定性因素,所以我决定花点文字讲一下。
0 a- A- X: U* I# | ^; E! r
一般来说,真实世界中的信道都是低通特性的,到处都是小电容,所谓绝缘体中的分子在高频情况下吸收电场能量,再加上金属线中的趋肤效应,所以我们想要的高频信号走不了多远就不像样子了,比如下面某信道的频率特性(绿线)。
* ?( W4 U( j6 h
/ m( c4 h/ d) g. b5 l5 K
如图所示,在对应28Gbps的频点上,信号能量被衰减了30db,电压幅度只剩3%了;在对应56Gbps的频点上更惨,65db意味着信号电压摆幅剩下不到千分之一。在这种信道中,发送端一个完美漂亮的数据眼图:
! u9 ~: P! e! e$ T
) w& `2 }" Z: C2 U. f `8 g, G
到了接收端会变成这样的一堆垃圾:
; x) K' c- ?: u3 X$ `. [
什么都辨认不出来对吧。但是,经过我们聪明的工程师们一番努力,均一化开关打开,信号就变成了这样:
+ |/ z) Q/ G! ^7 u
+ C) q. a0 a) N' S* ^. @
神奇么?我觉得挺神奇的,我认识的电子工程师们第一次看到这个,没人觉得不神奇。
6 C- c5 U2 I) W. \3 Y
5 s5 e, Z8 p+ W! e7 ~下面一个重要的问题,既然有了三大法宝,他们只能用在串口上吗?: ~, N' r$ X) C* [- i, ^" L5 t
答案很显然,不是,串口可以用的,我们并口一样可以用。那为什么并口不用呢?
- ?( P$ m" l2 X+ F7 M- h差分信号这条不用说了,并口的电线本来已经够多了,数目还要再翻一倍?系统工程师会杀人的。
: P# x5 w$ C9 i' R) ICDR 意义也不大,反正你并口速度也不高,一堆数据线中顺便传下时钟,比做接收端做CDR再采样每一位数据省事多了。
4 Y9 F0 z7 s' P" a2 p1 C信道均一化属于屠龙之技,不用差分信号的话也就传几百M,本来就没啥衰减,用这个干啥?还是考虑下各种噪声串扰的问题吧。0 _7 u; O9 D- [& b, M6 `9 n
; o4 ~7 o( F. Y% B0 X' I
于是答案就呼之欲出了。串口为啥比并口快?是因为串口的特性和应用场景,决定了它更加适合采用一些可以提高单根信道速率的设计方法,这些方法用在并口上并不合适。0 p; A/ c: @ ]2 g: I
/ E! M% T7 n5 Y
从现有的应用看来,需要持续稳定高带宽的应用,往往使用高速串行接口,一根带宽不够再加一根,各种视频网络应用,基本如此。而一些历史遗留速度不高的应用,还有一些需要突发性高带宽的应用,并口仍然存活,比如很特殊的DDR。虽然XDR/GDDR/HMC/HCM这些新标准都在试图引入SerDes, 但DRAM行业的特殊性还是让并口继续存活着。
[" X4 [! D/ H+ ]! |; `! E* F8 K& d, `( y8 X) x1 n
这个答案清楚明晰的指出了几乎所有串口的优势,但是忘了提及一点,这些优势其实是三大法宝带来的,并非串口与生俱来。就像小强开车小明走路,小强自然快很多,但并非他天生就快,而是因为小明腿短够不到油门。haha...