計算機系統(tǒng)總線基礎
一. 總線的概念
本文引用地址:http://cafeforensic.com/article/148718.htm在計算機系統(tǒng)中,不同的子系統(tǒng)必須具有連接彼此的接口,比如,內存和處理器需要通信,處理器和I/O設備也需要通信。這些工作都是由總線來完成的。總線就是一條共享的通信鏈路,它用一套線路來連接多個子系統(tǒng)。下圖是一個典型的計算機總線示意圖:
總線結構的兩個主要優(yōu)點是功能多和成本低。通過定義一種連接方案,就能夠方便的添加新設備,比如我們可以輕松的為自己的筆記本擴展內存條,或者外擴一塊硬盤。外圍設備也可以在使用同類總線的計算機系統(tǒng)之間移動。而且,因為同一套線路被多個路徑共享,所以總線具有較好的成本效益。
總線的主要缺點在于它會產生通信瓶頸,這可能會限制I/O的最大吞吐量。當I/O數(shù)據(jù)傳輸必須通過單個總線的時候,這條總線的帶寬就會限制I/O的最大吞吐量。如何設計總線系統(tǒng),使之能夠滿足處理器的要求并能夠接納大量的I/O設備,使我們面臨的一大挑戰(zhàn)。
二. 控制線路和數(shù)據(jù)線路
總線通常包括一套控制線路和一套數(shù)據(jù)線路??刂凭€路用來傳輸請求和確認信號,并指出數(shù)據(jù)線上的信息類型??偩€的數(shù)據(jù)線在源和目的之間傳遞信息。這種信息可能包括數(shù)據(jù)、復雜指令或者地址。比如,如果磁盤要把磁盤扇區(qū)中的數(shù)據(jù)寫入內存,內存的地址和磁盤的實際數(shù)據(jù)都會通過數(shù)據(jù)線來傳輸??刂瓶偩€則指明了在傳輸過程中每一刻數(shù)據(jù)線包含的信息種類。一些總線使用兩套信號線在一次總線傳輸中分別傳送數(shù)據(jù)和地址。不管哪種情況下,控制總線都要遵循總線協(xié)議,并指出總線傳輸?shù)膬热?。由于總線的共享的,所以我們還需要一個協(xié)議來決定誰下一個使用。
三. 處理器-內存總線和I/O總線
對于傳統(tǒng)的PC機,總線可以分為處理器-內存總線和I/O總線。處理器內存總線長度短,速度通常很高,而且配合內存系統(tǒng)使內存-處理器的帶寬達到最大。與之形成對比的I/O總線,它可以很長,可以連接很多類型的設備,并且經常要連接多種具有不同數(shù)據(jù)帶寬的設備。I/O總線一般不和內存直接連接而是通過處理器-內存總線或者背板總線連接到內存上。
I/O總線被用作擴展機器和連接新外設的手段。主流的I/O總線標準有1394和USB等。他們可以把各種外設連接到臺式機,從鍵盤、相機到磁盤。
下圖為早期的I/O總線示意圖:
四. 總線通信的兩種方式:同步和異步
總線的通信的兩種基本方式是同步和異步。如果總線是同步的,控制線上就有一個時鐘以及一個與該時鐘相關的固定的通信協(xié)議。比如,為了使處理器-內存總線執(zhí)行一個從內存總線執(zhí)行一個讀操作。我們需要一個協(xié)議能夠在第一個時鐘周期傳輸?shù)刂泛妥x操作命令,并使用控制線來指明請求的類型。內存可能被要求在第五個時鐘周期做出響應,提供數(shù)據(jù)字。
同步總線主要有兩個缺點。第一,總線上的每個設備必須運行在同一個時鐘頻率下。其次,由于時鐘偏差問題,速度很快的同步總線,長度不能太大。處理器-內存總線通常是同步的,因為設備間通信的距離短,數(shù)量少,而且準備在快的時鐘頻率下工作。
異步總線不需要時鐘。正因為不需要時鐘,所以異步總線可以適應很多不同的設備,異步總線可以延長而不用擔心時鐘偏差或其他同步問題。1394和USB都是異步總線。為了協(xié)調發(fā)送者和接受者之間的數(shù)據(jù)傳輸,異步總線采用握手協(xié)議。握手協(xié)議由一系列步驟組成,只有當發(fā)送者和接收者達成一致時,才能進行下一步工作。這種協(xié)議通過一套附加的控制線路實現(xiàn)的。
評論