為什麼串列埠比並口快?

時間 2021-05-07 17:25:28

1樓:晶元設計工程師

正好在上家公司做過高速匯流排的驗證,來試著回答一下吧。

作為讀書時的模擬戰五渣,只能給出唯物辯證法的兩條基本原理:

1.事物是普遍聯絡的。

2.事物是永恆發展的。

早期的板級電子通訊都是基於串列埠的,最經典的莫過於uart,非同步,全雙工,基於波特率匹配的串列埠通訊。在那個計算速度異常緩慢,對通訊速率要求不高的時代,其實這就足夠了。但隨著以矽積體電路為核心的電子資訊科技的發展,大家對通訊速率的要求都變高了,嘗試著如果使用八根線呢(外加一根時鐘線進行同步),那豈不是一次傳輸能收發8位元,也就是乙個位元組?

想法非常美好,但是並行傳輸並沒能走到32bit以上就走不下去了。原因如下:

1.金屬訊號線之間的串擾非常厲害,雜訊難以避免(來自於外界的干擾和自身對外界的干擾即EMI)。

2.多位元傳輸的訊號對齊變得異常艱難。

3.由於走線數量的增加,對系統工程師非常不友好,加之晶元pin腳的數量本就十分寶貴,版級佈線的難度急劇增加。

前兩個原因導致了嚴重的訊號完整性問題,傳輸效率變得極其低下,從而又導致了資料完整性的問題。

就在這時,差分電路的優點體現出來了,兩顆高度匹配的mos連上尾電流源擁有了強大的共模抑制比,可以將共模干擾降到最低,同時也能將EMI降到最低,此外差分電路在傳遞訊號時所需的翻轉電壓的絕對值只需要達到vdd的一半(取的是兩個mos漏極的電壓差),更低的翻轉電壓意味著更低的傳輸功耗,更短的翻轉時間。此時,工程師們發現,用兩根傳輸線連線至差分電路的兩個柵極可以提供極高的訊號穩定性,這意味著更高的頻寬,更高的訊號完整性,更高的資料傳輸率,更低的傳輸功耗。至此,序列匯流排再一次獲得了生命力,並開創了以資料報為基本傳輸單位的各種高速匯流排協議。

驚不驚喜,意不意外?序列-並行-序列,如此乙個迴圈,最終又回到了序列(基於差分匯流排的序列傳輸)。否定之否定,螺旋上公升,波浪前進,這是基於唯物辯證法的偉大實踐。

很多同學會有疑問,就這些?故事到這裡就結束了?沒有並行匯流排啥事了?

別急,我們不是說過嘛,事物是普遍聯絡的,請看。

隨著計算機體系結構的不斷發展,兩組差分訊號線(一組作為RX,一組作為TX,我們稱之為一條lane)很快就不夠用了(貌似見的最少的都是兩條lane起步),多條lane開始同時進行資料收發,目前已知的pCIe gen5可以支援32條lane的資料傳輸,並行並沒有消失,他只是以另外一種生命形式繼續存在著,至此序列與並行已經發展成了「你中有我,我中有你」的相互關係,目前基於單通道差分匯流排的傳輸模式已經很少見了,並行和序列以這種的形式完成了階段性的融合。

2樓:我要勵志減肥

因為併聯的線在pcb上走幾厘公尺,每根線之間的skew就很大

這樣你在接收端同時收到的幾個bit你都不知道發射端是不是同一時間發射的...

3樓:花生

科學的對比,環境首先要相同,串列埠並口應用環境差別太大,根本不具備可比行。

應用環境決定channel loss 的大小。

並口最典型的應用如DDR, 應用環境PCB, 有的甚至把DRAM 和control 封裝到一起, 最新的DDR4 , 已32bit, 3200為例,匯流排速度100G, DQ+DQS 一共36根,還不算命令位址線。

串列埠的如HDMI, 線長1公尺, 還有2公尺的,應用環境差別這麼大,怎麼去比較?

4樓:終南小師傅

並口最大的問題是時鐘同步問題,從目前電氣傳輸理論上來看,並口速率無法過Gbps,即使有這種私有介面,造價一定也是相當昂貴,沒有串列埠經濟,串列埠的傳輸 @又見山人已經講的相當詳細了。

個人認為,串列埠並口使用就是牽涉誰更經濟實用的問題,沒有快或慢絕對的差別。

5樓:秦旋

串列埠不用隨路時鐘,可以從資料裡恢復,每次單bit,可以分段新增糾錯碼保證訊雜比。並口需要多BIT同步,傳輸時間相同,這個長距傳輸很難保證。

6樓:

並行通訊就是社會主義思維,煉鋼不用修真正的高爐,而用許多個鐵匠爐化了鐵鍋鋁勺湊數。想象中他肯定是最快的,是很快的,其實效率啥樣?有目共睹~!

序列通訊呢資本主義淘汰思維,有好技術了就不用原始技術!想象中乙個資料通過一根線或者幾根線兩根線傳,還要分時序傳輸,怎麼會快呢?實際現在已經發展到千兆級別了,還沒有發展止步的跡象。

7樓:BreakTheLoop

串列埠的極限速度並不比並口的快,而是隨著電子技術的提公升,設計乙個快速的並口並不如設計乙個高速的串列埠更經濟,所以我們選擇了科技樹上串列埠的一支。

比方說從前造橋技術只能造出最寬三公尺的橋,當時想要實現河岸兩邊AB兩點間的雙車道就必須造兩座橋。而現在的造橋技術可以造出寬12公尺甚至寬50公尺的橋,那麼我只要造一座橋已經可以實現四車道甚至16車道,從此再也沒有造兩座橋的必要了。

8樓:wiz khalifa

並口可能有感應電流相互干擾,還得校驗什麼的,還有同步的問題,乙個clk脈衝裡要和最慢的乙個匹配上才好。電流可是相當快的。

順便膜拜第乙個答案,搞硬體的人比搞軟體的人厲害多了。

9樓:李秉超

邊際效應,你花一塊錢能辦到的事花十塊錢就達不到十倍的效果。你想達到單車道十倍的運力指望修建十車道的路是不行的,隨便換道就帶來額外開銷。

綜合考慮,還是單車道合算。

10樓:王王

有100輛車,需要從甲地去乙地,你覺得是一輛接一輛地開過去呢,還是4輛一排分25排保持隊形開過去?想想一下後一種的難度,和保持隊形的情況下不降速的可能性。

11樓:沐風

上圖是M3核的32位CPU,Icode 是核心指令匯流排 Dcode是除錯介面匯流排 system是系統匯流排 DMA等,可以看出,在CPU核心裡面都是以匯流排的方式傳送資料和指令的。

所以在理想的條件下,並口傳送資料的吞吐率一定會比串列埠快。

在實際的情況下,就看1、2樓的分析吧! 有干擾的原因有工程佈線的原因有造價等諸多原因

12樓:

第一名的答案比較片面吧。拋開走線談速度沒有意義啊。ddr的頻寬遠大於pcie,因為和controller比較近。同步時鐘才是保證高速傳輸的關鍵

13樓:鑽石之光

串列埠,並口,它們之間永遠是競爭關係,速度上來講更多的是材料和工藝的限制,而且自己在自己的領域有特點;乙個系統所有環節,串列埠與並口互相限制。

14樓:Andrew Song

不邀自來, @龔黎明 已經說的比較清楚了.我從應用的角度說說我的理解.豐富下思維,做個簡單參考.

先說串列埠比並口快的這個說法,如果同樣走線,都是單端,未必會更快.否則晶元裡面過了serdes以後,就不會出現串轉並的這乙個過程了.

所以,以下說的串列埠指差分DATA_P/DATA_N傳輸,以序列的方式傳輸資料,並口指以並行以一組單端訊號data0~32,並伴隨這隨路時鐘的情況.

[歷史]我們看歷史,在單端訊號的時候,並沒有出現序列比並行快的時候,直到差分訊號的出現.單段訊號為什麼流行呢?一開始並不是因為傳輸速度快,而是為了節約走線,降低成本.

能用序列就用序列,才使得大家對序列線路有研究的興趣.對提高速率有興趣研究.

1.差分串型線路P/N乙個為正,乙個為負,使得差分線路在整體對外看來,電流接近於0,對外的輻射最小,受干擾的可能最小.差分線路要求P/N走線盡量考得近一點.

就是這個道理.有干擾的時候P/N 電壓同時公升高,或者降低,共模訊號變化,差模不邊,使得天然抗干擾能力增強,抗干擾能力增強,提速就自然是容易的事情,尤其後來出現電流模型CML以後,使得差分訊號的傳輸速度可以公升高的10G,而單端訊號一般幾百M以後就出現受干擾等速率無法公升高.

2.通過調節預加重,均衡等引數,提公升訊號質量,降低干擾,相比並行單埠訊號,可以提公升速率.

3.通過串型編碼,提高扛干擾能力,比如8b/10b, 64b/66b等編碼,提高抗干擾能力,可以提高速率.

總結1:提高資料抗干擾能力,可以提公升速率.

4.資料建立保持時間.並行包括一些串型訊號(SPI,I2C)都會遇到問題,要求並行訊號,Data0~32保持走線一致,時鐘也要和data保持一致,如果出現不一致,抱歉,建立時間保持時間不足,怎麼辦?

降低速度.

串型差分訊號(serdes),時鐘在訊號裡面,所以可以保證走線一致,到對端將時鐘恢復出來

總結2:搞定建立保持時間,可以提高速率

5.並行訊號不可避免的有SSN 問題,當所有資料從0到1

或者從1到0的時候,對電源,晶元要求苛刻,如果電源瞬態相應不夠,那麼訊號質量會有問題,所以,只能降速度,速率上不去.差分serdes訊號對外來看,無論輸出0還是1,或者翻轉,從晶元上來看,都是輸入輸出相等,所以~不存在這個問題.

這個問題能不能解決?能!!!!,使用VTT電源,晶元設計電源能供上,晶元外多加電容.

參考DDR,目前DDR算是並行裡面最快的了吧~,但是時鐘等關鍵的訊號也是差分的,資料是單端的.

總結3:並行未必慢,只要問題解決的好!

對於DDR800來說,64bit DDR1333,遠高於 10GE Serdes訊號(XFI)

但是我們為什麼還是覺得序列比並行快呢?

因為我們大部分基礎的都是板級,裝置級的連線,這種連線走線長,衰減的厲害,訊號抗干擾差,上面總結差分序列的好處可以明顯的體現出來,而並行訊號出了單板,過了聯結器訊號就不成樣子了.

所以,我們覺得序列比並行快!

PS:對於XLAUI / XAUI這樣的訊號,算並行還是算序列???

15樓:宋六

如果沒記錯,應該是先有序列介面協議,再有的並行介面協議。類似於USB2.0,USB3.

0,串列埠和並口的傳輸協議也經過了好幾代的發展。由於當初的技術水平有限,時鐘頻率不高,所以在相同的頻率下,提高位寬能有效增加傳輸速率,因此起初的並口是比串列埠快的。但隨著技術的發展,當頻率提高時,並行傳輸時的干擾及同步問題不能忽視,從而限制了並行介面協議的發展。

所以我們現在看到的串列埠比並口快。

但如我們所見,串列埠也正在被USB之類的介面所代替,僅用於除錯用途。現在主流的傳輸方式,都是遠距離使用序列傳輸,單板內或板間使用並行傳輸。現在最常見的使用並行傳輸的就是DDR介面,但時序要求非常高。

而最常見的使用序列傳輸的就是乙太網介面。根據我的理解,現在並行傳輸的速率還是明顯高於序列傳輸的。只不過並行傳輸隱藏在板內,不容易被普通人發現而已。

具體請參見PCIE介面固態硬碟與SATA3介面固態硬碟的對比。

PC 上的串列埠有什麼用,為什麼串列埠在 PC 上消失了?

你的大東東 其實串列埠並沒有消失,你說的串列埠我猜測應該是DSub介面那種吧。串列埠在PC上挺多的,除了前面答主提到的USB,還有硬碟的SATA介面,網線介面。 就說一下大家都說的串列埠和usb在傳輸距離上的對比吧。RS 232 C標準規定,驅動器允許有2500pF的電容負載,通訊距離將受此電容限制...

為什麼網上連開源的stm32 8個串列埠程式都沒有

任意通用的多串列埠程式從原理上來說是無法實現的,而有約束條件的串列埠程式缺少通用性,所以沒有這樣的開源專案。以問題為例,8個串列埠同時工作,如果沒有約束條件,那麼,為了通用性,需要覆蓋UART的全部功能,標準串列埠是全雙工的,8個串列埠就需要16個任務對應,至少需要8個接收中斷源,8個接收中斷源必然...

為什麼要重男輕女,為什麼?

Stunk 簡單說說國內重男輕女的假象 嫁出去的女兒潑出去的水 這是一句俗話,深入人心 現代社會,物質生產跟上來了,女兒們開始反哺原生家庭了,於是也出現了農村地區殺男嬰的故事 先說說古代為何 重男輕女 因為女兒不顧原生家庭 在物質匱乏的古代,生存本來就是一件難事,讓女人來顧家是不可能的 怎麼得出這個...