1. 程式人生 > >並行與串行的區別及並行通信的系統同步方式

並行與串行的區別及並行通信的系統同步方式

show 足夠 現在 也有 變化 兩個 輸入 理論 大型

本篇這裏所指並行信號和串行信號,包括了傳輸(通信)方式,又有接口類型,同時還有數據本身的協議特點,信號、協議、總線和接口。想了解信號、協議、總線和接口之間的區別的,可以看前一篇文章:高速串行簡史(一):信號、接口、協議及總線

什麽是並行信號?串行信號?

要了解並行信號和串行信號,我們還是來先了解下並行通信(傳輸)和串行通信(傳輸)的概念吧。並行信號就是以並行方式通信的信號,而串行信號就是以串行方式通信的信號。串行通信指數據在單條一位寬的傳輸線上,一比特接一比特地按順序傳送的方式,在早期的定義裏也有說只有一根數據線,每個時鐘脈沖下只能發送一位數據的方式;而在並行通信中一個字節(8位)數據是在8條並行傳輸線上同時由源端傳到目的地,也可以說有多個數據線(幾根就是幾位),在每個時鐘脈沖下可以發送多個數據位(幾位的並行口就發送幾位)。

所以早期對串行通信與並行通信的理解為:同樣的一個字節數據(8位),串行通信要分8次由低位到高位按順序一位位地傳送,而並行通信由於有8根線路,所以只要一次就可以傳送過去,形象的說,把線路(通道)比作道路,能並排開幾輛車的就可以說是“並行”,只能一輛一輛開的就屬於“串行”了。

並行通信與串行通信的區別對比及優缺點

很明顯,並行通信的速度要比串行通信的速度快得多,效率更高,費時更少。不過這些都是早期I/O速率都不高的情況下的理論理解,隨著信息技術的飛速發展,之前的理解放在現在來看已經過時了,因為現在是高速串行信號時代了(我們的主題)。

在高速狀態下,並行口的幾根數據線之間存在串擾,而並行口需要信號同時發送同時接收,任何一根數據線的延遲都會引起問題。而串行只有一根數據線,不存在信號線之間的串擾,而且串行還可以采用低壓差分信號,可以大大提高它的抗幹擾性,所以可以實現更高的傳輸速率,盡管並行可以一次傳多個數據位,但是時鐘遠遠低於串行,所以目前串行傳輸是高速傳輸的首選。

在此套用鐵桿粉絲“絕對零度”的回復:“打個比方,運送大型設備零件,並行信號就好比多輛貨車,每輛車運送一些零件,大家按一定的時間要求送到目的地才能裝配出完整的設備,一輛車出故障就會導致無法完成組裝。而串行信號就好比火車,正常情況下一輛車就可以把所有零件運送完畢,而且不會出現問題。”個人覺得這個比喻還是比較恰當的,在這裏火車本身也是比貨車速度快的。

從另外的角度來看,並行傳輸還有很多方式如系統同步(共同時鐘)方式及源同步時鐘方式等。先來看系統同步先天的內在問題,下圖是並行傳輸中系統同步方式的示意圖。

技術分享圖片

首先,並行信號由於需要多位傳輸路徑,這在早期是可以接受的。但是摩爾定律的現象使得與幾十年前相比可生產的芯片中矽電路的數量大幅增加,而芯片封裝技術的pin密度並沒有像矽密度一樣以相同的速度在增加,因此I/O pin的封裝實際上比矽電路還貴,這就意味著對於大多數芯片來說pin管腳越來越多變得不可接受。就好像我們都知道車道越多我們的通行效率就會更快,但隨著現在的城市空間越來越小以及地價越來越貴,更多的車道慢慢的只能變得越來越難以實現。況且並行本身的I/O速率不高,就像拖拉機或毛馬路,速度上不去再多車道也是枉然。

第二個內在問題就是時序的需求。由上圖可知數據由芯片#1同步啟動並被芯片#2使用相同的時鐘同步捕獲,芯片#2輸入端的數據必須滿足相對於芯片的時鐘輸入的建立和保持時間。詳細的系統同步時序模型如下圖所示。

技術分享圖片

這些建立和保持時間必須用足夠的余量來計算,以允許時鐘分配路徑延遲到兩個芯片的差異,並通過芯片到啟動和捕捉觸發器。延遲可能會因芯片工藝,電壓和溫度(PVT)條件而異,並且必須增加余量以應對最壞的情況。對於較高的時鐘頻率,可能需要在芯片中使用鎖相環(PLL)來調整時鐘相位,以補償芯片內的時鐘分配延遲,並適應變化的工藝,電壓和溫度條件。 如果時鐘頻率足夠高,則不可能建立一個可以通過這種共同時鐘總線來可靠地傳輸數據的系統。

並行與串行的區別及並行通信的系統同步方式