新聞中心

EEPW首頁 > 手機(jī)與無線通信 > 牛人業(yè)話 > 為什么串口比并口快?

為什么串口比并口快?

作者: 時間:2016-06-21 來源:網(wǎng)絡(luò) 收藏

  作為一個電路設(shè)計(jì)師,我整個職業(yè)生涯都花在接口電路上,串行并行都做過,且速度不慢(DDR3-1600Mbps, SerDes 30Gbps),這個問題不答實(shí)在技癢難耐。已經(jīng)看到的答案中,大家基本上都命中了關(guān)鍵的知識點(diǎn),但是沒有把背后的邏輯說清楚,也沒有人從電學(xué)特性和經(jīng)濟(jì) 的角度分析這個問題。大言不慚,歡迎大家拍磚。

本文引用地址:http://www.butianyuan.cn/article/201606/292913.htm

  ----------補(bǔ)充--------

  名詞解釋:

  Mbps, Gbps: 一百萬比特每秒,十億比特每秒

  skew:時間偏差,A比B快/慢一秒,就叫skew一秒

  PCB:印刷電路板,也就是大多數(shù)電路板

  IO: 輸入輸出電路

  cable: 線纜

  SerDes:串行轉(zhuǎn)并行,并行轉(zhuǎn)串行

  還有人說貫口最快的,我們來算一算。業(yè)界目前大量應(yīng)用的28Gbps SerDes,傳一個比特只要35.7皮秒,這點(diǎn)時間光在真空中可以走上一厘米,連角膜到視網(wǎng)膜都不夠。哪個快?

  ----------正式答案的分割線--------

  先說我的答案,串行接口為啥比并行接口快?是因?yàn)?a class="contentlabel" href="http://www.butianyuan.cn/news/listbylabel/label/串口">串口的特性和應(yīng)用場景,決定了它更加適合采用一些提高單根信道速率的設(shè)計(jì)方法,這些方法用在上并不合適。

  討論這個問題,首先要搞清楚定義,什么叫并行接口(parallel link)? 什么叫串行接口(serial link)?這就可以吵一天。

  并 口代表DDR說:“我是的純正血統(tǒng)杰出代表,每8bit要附帶一對DQS線作為時鐘,每個bit都要同步到這對DQS上去,skew超標(biāo)就不能工 作,64位DDR3-1600總帶寬可以到100Gbps,哪個做得到”?鄙人冷笑,說:“別以為我不知道你的底細(xì),別看你IO是1.6G,內(nèi)存控制 器給你的一般都是4位并行的400M,你要先悄悄做一下并行轉(zhuǎn)串行,再輸出。何況你傳64bit數(shù)據(jù)需要80根全速率的DQ/DQS線,還要20多根半速 率命令地址線,平均下來一根線1G還不到”。

  XAUI舉手問:“我算么?XAUI一定是8組16根差分線,4組讀4組寫,缺任何一組都不符合協(xié)議,看著很并行啊?” 32位的PCI-E也一臉關(guān)心的等著答案。

  我們先這么定義:在一個獨(dú)立的信道上,每次同時傳輸1bit為串口,每次同時傳輸多個bit為。 標(biāo)準(zhǔn)的串口如XAUI,HDMI等,每對差分線組成一個信道(channel),每個信道是否能成功傳輸并不取決于其他信道。而DDR這種,10根線組成 一個信道,每次同時傳8bit,錯了某一bit只能重新傳,便是標(biāo)準(zhǔn)并口,芯片內(nèi)部的并轉(zhuǎn)串和IO并不相關(guān),不影響定性。按照這個定義,大家看看各種接口 協(xié)議怎么劃分呢?我覺得已經(jīng)很清楚了,以單個channel的傳輸速率衡量,串口一般來說更快。下一個問題就是,為什么呢?

  這是一個電學(xué)問題,但首先是一個經(jīng)濟(jì)問題。

  對 任何一種協(xié)議,提高總帶寬不過是兩種辦法,首先要提高單根線的傳輸速率,其次只能增加電線的數(shù)目。增加線的數(shù)目實(shí)在費(fèi)錢,首先現(xiàn)在的芯片往往IO都很緊 張,增加了IO PAD還要搭上額外的ESD和面積;封裝和PCB上增加額外的線更復(fù)雜更貴這就不用說了,對于某些用cable的協(xié)議基本就是不可接受的。你是愿意插16 根網(wǎng)線還是一根?接電視機(jī)的時候喜歡一根線的HDMI,還是五根線的RGB+音頻?還有 @Arthur Wang 提到的150米長線。。。。。。何況并口還要對這些線進(jìn)行長度匹配,想想頭就大了。

  歷史上,工程師們確實(shí)是先做了串口,速度不夠沒辦法只好含淚加電線上并口,直到他們發(fā)現(xiàn)了三大法寶來提速,并口的動力就不那么強(qiáng)勁了,正如 @auxten 所言。但是在芯片內(nèi)部,增加總線寬度的代價并不高,因此CPU里面有個1024位的數(shù)據(jù)總線也不奇怪。

  為了提高單根線的傳輸速率,必須要講到我們模擬電路工程師的三大法寶,差分信號(differential signaling),時鐘-數(shù)據(jù)恢復(fù)(Clock-Data Recovery,簡稱CDR),和信道均一化(Channel Equalization,Eq)。

  差分信號的好處 ,不外乎抗干擾能力強(qiáng),引入的噪聲也比較小,雖然必須要兩根線,但速度從幾百M(fèi)提高到幾G,還是很值得的。

  CDR的好處 @龔黎明 也說過了,消滅了skew,減少了時鐘的功耗和噪聲(但多出了CDR電路本身的功耗和噪聲),同時避免了電磁干擾。想想在PCB或者電線上傳一個15G的時鐘,太帶感了,幸虧我們不用做這種事。

  信道均一化 相當(dāng)值得一提,這才是SerDes高速發(fā)展的決定性因素,所以我決定花點(diǎn)文字講一下。

  一般來說,真實(shí)世界中的信道都是低通特性的,到處都是小電容,所謂絕緣體中的分子在高頻情況下吸收電場能量,再加上金屬線中的趨膚效應(yīng),所以我們想要的高頻信號走不了多遠(yuǎn)就不像樣子了,比如下面某信道的頻率特性(綠線)。

  

 

  如圖所示,在對應(yīng)28Gbps的頻點(diǎn)上,信號能量被衰減了30db,電壓幅度只剩3%了;在對應(yīng)56Gbps的頻點(diǎn)上更慘,65db意味著信號電壓擺幅剩下不到千分之一。在這種信道中,發(fā)送端一個完美漂亮的數(shù)據(jù)眼圖:

  

 

  到了接收端會變成這樣的一堆垃圾:

  

 

  什么都辨認(rèn)不出來對吧。但是,經(jīng)過我們聰明的工程師們一番努力,均一化開關(guān)打開,信號就變成了這樣:

  

 

  神奇么?我覺得挺神奇的,我認(rèn)識的電子工程師們第一次看到這個,沒人覺得不神奇。

  下面一個重要的問題,既然有了三大法寶,他們只能用在串口上嗎?

  答案很顯然,不是,串口可以用的,我們并口一樣可以用。那為什么并口不用呢?

  差分信號這條不用說了,并口的電線本來已經(jīng)夠多了,數(shù)目還要再翻一倍?系統(tǒng)工程師會殺人的。

  CDR 意義也不大,反正你并口速度也不高,一堆數(shù)據(jù)線中順便傳下時鐘,比做接收端做CDR再采樣每一位數(shù)據(jù)省事多了。

  信道均一化屬于屠龍之技,不用差分信號的話也就傳幾百M(fèi),本來就沒啥衰減,用這個干啥?還是考慮下各種噪聲串?dāng)_的問題吧。

  于是答案就呼之欲出了。串口為啥比并口快?是因?yàn)榇诘奶匦院蛻?yīng)用場景,決定了它更加適合采用一些可以提高單根信道速率的設(shè)計(jì)方法,這些方法用在并口上并不合適。

  從 現(xiàn)有的應(yīng)用看來,需要持續(xù)穩(wěn)定高帶寬的應(yīng)用,往往使用高速串行接口,一根帶寬不夠再加一根,各種視頻網(wǎng)絡(luò)應(yīng)用,基本如此。而一些歷史遺留速度不高的應(yīng)用, 還有一些需要突發(fā)性高帶寬的應(yīng)用,并口仍然存活,比如很特殊的DDR。雖然XDR/GDDR/HMC/HCM這些新標(biāo)準(zhǔn)都在試圖引入SerDes, 但DRAM行業(yè)的特殊性還是讓并口繼續(xù)存活著。



關(guān)鍵詞: 串口 并口

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉