并行總線與串行總線
雖然隨著技術(shù)的發(fā)展,現(xiàn)代的數(shù)字芯片已經(jīng)集成了越來越多的功能,但是對(duì)于稍微復(fù)雜一點(diǎn)的系統(tǒng)來說,很多時(shí)候單獨(dú)一個(gè)芯片很難完成所有的工作,這就需要和其它芯片配合起來工作。比如我們現(xiàn)在的CPU的處理能力越來越強(qiáng),很多CPU內(nèi)部甚至集成了顯示處理的功能,但是仍然需要配合外部的內(nèi)存芯片來存儲(chǔ)臨時(shí)的數(shù)據(jù)、需要配合橋接芯片擴(kuò)展硬盤、USB等外圍接口;現(xiàn)代的FPGA內(nèi)部也可以集成CPU、DSP、RAM、高速收發(fā)器等,但有些場(chǎng)合可能還需要配合專用的DSP來進(jìn)一步提高浮點(diǎn)處理效率、配合額外的內(nèi)存芯片來擴(kuò)展存儲(chǔ)空間、配合專用的物理層芯片來擴(kuò)展網(wǎng)口、USB等,或者需要多片F(xiàn)PGA互連來提高處理能力。所以的這一切,都需要用到相應(yīng)的總線來實(shí)現(xiàn)多個(gè)數(shù)字芯片間的互連。如果我們把各個(gè)功能芯片想象成人體的各個(gè)功能器官的話,總線就是血脈和經(jīng)絡(luò),通過這些路徑,各個(gè)功能模塊間才能進(jìn)行有效的數(shù)據(jù)交換和協(xié)同工作。
本文引用地址:http://m.butianyuan.cn/article/201807/383770.htm我們經(jīng)常使用到的總線根據(jù)數(shù)據(jù)傳輸方式的不同,可以分為并行總線和串行總線。
并行總線:
并行總線是數(shù)字電路里最早也是最普遍采用的總線結(jié)構(gòu)。在這種總線上,要傳輸?shù)臄?shù)據(jù)線、地址線、控制線等都是并行傳輸,比如要傳輸8位的數(shù)據(jù)寬度,就需要8根數(shù)據(jù)信號(hào)線同時(shí)傳輸,如果要傳輸32位的數(shù)據(jù)寬度就需要32根數(shù)據(jù)信號(hào)線同時(shí)傳輸。除了數(shù)據(jù)線以外,如果要尋址比較大的地址空間,還需要很多根地址線的組合來代表不同的地址空間。下圖是一個(gè)典型的微處理器的并行總線的工作時(shí)序,其中包含了1根時(shí)鐘線、16根數(shù)據(jù)線、16根地址線以及一些讀寫控制信號(hào)。
很多經(jīng)典的處理器都采用了并行的總線架構(gòu)。比如大家熟知的51單片機(jī)就采用了8根并行數(shù)據(jù)線和16根地址線;CPU的鼻祖,Intel 公司的8086微處理器最初推出時(shí)具有16根并行數(shù)據(jù)線和16根地址線;現(xiàn)在很多嵌入式系統(tǒng)中廣泛使用的ARM處理器則大部分使用32根數(shù)據(jù)線以及若干根地址線。
并行總線的最大好處是總線的邏輯時(shí)序比較簡(jiǎn)單,電路實(shí)現(xiàn)起來比較容易,但是缺點(diǎn)也是非常明顯的。比如并行總線的信號(hào)線數(shù)量非常多,會(huì)占用大量的管腳和布線空間,因此芯片和PCB板的尺寸很難實(shí)現(xiàn)小型化,特別是如果要用電纜進(jìn)行遠(yuǎn)距離傳輸時(shí),由于信號(hào)線的數(shù)量非常多,使得電纜變得非常昂貴和笨重。
采用并行總線的另外一個(gè)問題在于總線的吞吐量很難持續(xù)提升。對(duì)于并行總線來說,其總線吞吐量=數(shù)據(jù)線位數(shù)×數(shù)據(jù)速率。我們可以通過提升數(shù)據(jù)線的位數(shù)來提高總線吞吐量,也可以通過提升數(shù)據(jù)速率來提高總線吞吐量。以個(gè)人計(jì)算機(jī)里曾經(jīng)非常流行的PCI總線為例,其最早推出時(shí)總線是32位的數(shù)據(jù)線,工作時(shí)鐘頻率是33MHz,其總線吞吐量=32bit×33MHz;后來為了提升其總線吞吐量推出的PCI-X總線,把總線寬度擴(kuò)展到64位,工作時(shí)鐘頻率最高提升到133MHz,其總線吞吐量=64bit×133MHz。下圖是PCI插槽和PCI-X插槽的一個(gè)對(duì)比,可以看到PCI-X由于使用了更多的數(shù)據(jù)線,其插槽更長(zhǎng)(來源:網(wǎng)絡(luò)圖片)。
但是隨著人們對(duì)于總線吞吐量的要求的不斷提高,這種提升總線帶寬的方式遇到了瓶頸。首先由于芯片尺寸和布線空間的限制,64位數(shù)據(jù)寬度已經(jīng)幾乎是極限了。另外一方面,這64根數(shù)據(jù)線是共用一個(gè)采樣時(shí)鐘,為了保證所有的信號(hào)都滿足其建立保持時(shí)間的要求,在PCB上布線、換層、拐彎時(shí)需要保證精確等長(zhǎng)。而總線工作速率越高,對(duì)于各條線的等長(zhǎng)要求就越高,對(duì)于這么多根信號(hào)要實(shí)現(xiàn)等長(zhǎng)的布線是很難做到的。
下圖是用邏輯分析儀采集到的一個(gè)實(shí)際的8位總線的工作時(shí)序,我們可以看到在數(shù)據(jù)從0x00跳變到0xFF狀態(tài)過程中,這8根線實(shí)際并不是精確一起跳變的。
對(duì)于并行總線來說,更致命的是這種總線上通常掛有多個(gè)設(shè)備,且讀寫共用,各種信號(hào)分叉造成的反射問題使得信號(hào)質(zhì)量進(jìn)一步惡化。
串行總線:
為了解決并行總線占用尺寸過大且對(duì)布線等長(zhǎng)要求過于苛刻的問題,隨著芯片技術(shù)的發(fā)展和速度的提升,越來越多的數(shù)字接口開始采用串行總線。所謂串行總線,就是并行的數(shù)據(jù)在總線上不再是并行地傳輸,而是時(shí)分復(fù)用在一根或幾根線上傳輸。比如在并行總線上傳輸1個(gè)Byte的數(shù)據(jù)寬度需要8根線,而如果把這8根線上的信號(hào)時(shí)分復(fù)用在一根線上就可以大大減少需要的走線數(shù)量,同時(shí)也不需要再考慮8根線之間的等長(zhǎng)關(guān)系。
采用串行總線以后,就單根線來說,由于上面要傳輸原來多根線傳輸?shù)臄?shù)據(jù),所以其工作速率一般要比相應(yīng)的并行總線高很多。比如以前計(jì)算機(jī)上的擴(kuò)展槽上廣泛使用的PCI總線采用并行32位的數(shù)據(jù)線,每根數(shù)據(jù)線上的數(shù)據(jù)傳輸速率是33Mbit/s,演變到PCI-E(PCI-Express)的串行版本后每根線上的數(shù)據(jù)速率至少是2.5Gbit/s(PCI-E 1代標(biāo)準(zhǔn)),現(xiàn)在PCI-E的數(shù)據(jù)速率已經(jīng)達(dá)到了5Gbit/s(PCI-E 2代標(biāo)準(zhǔn))或8Gbit/s(PCI-E 3代標(biāo)準(zhǔn))。采用串行總線的另一個(gè)好處是在提高數(shù)據(jù)傳輸速率的同時(shí)節(jié)省了布線空間,同時(shí)芯片的功耗也降低了,所以在現(xiàn)代的電子設(shè)備中,當(dāng)需要進(jìn)行高速數(shù)據(jù)傳輸時(shí),使用串行總線的越來越多。
數(shù)據(jù)速率提高以后,對(duì)于阻抗匹配、線路損耗和抖動(dòng)的要求就更高,稍不注意就很容易產(chǎn)生信號(hào)質(zhì)量的問題。下圖是一個(gè)典型的1Gbps的信號(hào)從發(fā)送端經(jīng)過芯片封裝、PCB板、連接器、背板傳輸?shù)浇邮斩说男盘?hào)路徑,從中我們可以看到在發(fā)送端的接近理想的0、1跳變的數(shù)字信號(hào)到達(dá)接收端后由于高頻損耗、反射等的影響信號(hào)波形已經(jīng)變得非常惡劣,所以串行總線的設(shè)計(jì)對(duì)于數(shù)字電路的工程師來說是個(gè)很大挑戰(zhàn)。
使用串行總線的設(shè)備的體積、功耗和數(shù)據(jù)傳輸速度都比使用并行接口的設(shè)備更有優(yōu)勢(shì),因此得到了廣泛的應(yīng)用。比如以前在計(jì)算機(jī)上廣泛使用的連接打印機(jī)的DB25的并口已經(jīng)被USB和網(wǎng)口取代,以前連接硬盤的40pin的PATA接口已經(jīng)被串行的SATA接口取代,以前計(jì)算機(jī)上的PCI擴(kuò)展槽已經(jīng)被PCI-Express取代。但是如前所述,采用串行總線以后信號(hào)的數(shù)據(jù)速率一般都會(huì)有幾倍甚至幾百倍的提升,對(duì)于電路的設(shè)計(jì)和測(cè)試都提出了很高的要求,因此需要設(shè)計(jì)和測(cè)試工程師掌握大量的高速設(shè)計(jì)的相關(guān)知識(shí)和技能。
評(píng)論