6.1.1 匯流排概述
- 匯流排簡圖:
- 匯流排的物理實現:
“一根”;資料匯流排可能包含多跟訊號線,所有硬體部件都可以透過這跟匯流排傳遞資料。
同一時刻只能有一個部件傳送資料,但可以有多個部件接受資料。
基本概念
- 匯流排的定義:匯流排是一組能為多個部件分時共享的公共資訊傳送線路。
- 為什麼要用匯流排?
早期計算機外部裝置少時大多采用分散連線方式,不易實現隨時增減外部裝置。
為了更好的解決I/O裝置和主機之間連線的靈活性問題,計算機的結構從分散連線發展為匯流排連線 - 匯流排的定義中,分時和共享的含義:
分時:指同一時刻只允許有一個部件向匯流排傳送資訊,如果系統中有多個部件,則它們只能分時地向匯流排傳送資訊。
共享:指匯流排上可以掛接多個部件,各個部件之間互相交換的資訊都可以透過這組線路分時共享。 - 匯流排的特性:
- 機械特性:尺寸、形狀、管腳數、排列順序
- 電氣特性:傳輸方向和有效電平範圍
- 功能特性:每根傳輸線和功能(地址、資料、控制)
- 時間特性:訊號的時序關係
匯流排的分類及經典結構
按照資料傳輸格式分類
-
序列匯流排
傳送方資料只能逐bit傳送,接收方資料也只能逐bit接收。
例如USB
優點:只需要一條傳輸線,成本低,廣泛應用於長距離傳輸;應用於計算機內部時,可以節省佈線空間。
缺點:在資料傳送和接收的時候,要進行拆卸和裝配,要考慮並行轉換問題。 -
並行匯流排
匯流排可以同時傳多位資料。
優點:匯流排的邏輯時序比較簡單,電路實現起來比較容易。
缺點:訊號線數量多,佔用更多的佈線空間;遠距離傳輸成本高昂;由於工作頻率較高時,並行的訊號線之間會產生嚴重干擾,對每條線等長的要求也越高,所以無法持續提升工作頻率。所以並行匯流排不一定比序列匯流排更快。
按匯流排功能(連線的部件)分類
- 片內匯流排:
片內匯流排是晶片內部的匯流排。
它是CPU晶片內部暫存器與暫存器之間、暫存器與ALU之間的公共連線線。 - 系統匯流排:
系統匯流排是計算機系統內個功能部件(CPU、主存、I/O介面)之間相互連線的匯流排。
按系統匯流排傳輸資訊內容的不同,又可分為3類:資料匯流排(DB)、地址匯流排(AB)和控制匯流排(CB)。- 資料匯流排:傳輸各功能部件之間的資料資訊,包括指令和運算元;位數(根數)與機器字長、儲存字長有關;雙向。
- 地址匯流排:傳輸地址資訊,包括主存單元或I/O埠的地址;位數與主存地址空間大小及裝置數量有關,單向。
- 控制匯流排:一根控制線傳輸一個訊號;有出(CPU送出的控制命令)有入(主存(或外設)返回CPU的反饋訊號)
- 通訊匯流排:
通訊匯流排是用於計算機系統之間或計算機系統與其他系統(如遠端通訊裝置、測試裝置)之間資訊傳送的匯流排,通訊匯流排也稱為外部匯流排。 - 系統匯流排的結構:
- 單匯流排結構:
CPU、主存、I/O裝置都連線在一組匯流排上,允許I/O裝置之間、I/O裝置和CPU之間或I/O裝置與主存之間直接交換資訊。
優點:結構簡單、成本低、易於接入新的裝置。
缺點:頻寬低、負載重,多個部件只能爭用唯一的匯流排,且不支援併發(並行)傳送操作。 - 雙匯流排結構:
結構:雙匯流排結構有兩條匯流排,一條是 主存匯流排,用於CPU、主存和通道(管理I/O裝置的小CPU)之間進行資料傳送;另一條是I/O匯流排,用於多個外部裝置與通道之間進行資料傳送。
通道是具有特殊功能的處理器,能對I/O裝置進行統一管理。通道程式放在主存中。
優點:
主存匯流排支援突發(猝發)傳送:送出一個地址,收到多個地址連續的資料。
優點:將較低速的I/O裝置從單匯流排上分離出來,實現儲存器匯流排和I/O匯流排分離。
缺點:需要增加通道等硬體裝置。 - 三匯流排結構:
結構:三匯流排結構是在計算機系統各部件之間採用3條各自獨立的匯流排來構成資訊通路,這3條匯流排分別為主存匯流排、I/O匯流排和直接記憶體訪問DMA匯流排。
DMA:Direct Memory Access, 直接記憶體訪問。
優點:提高了I/O裝置的效能,使其更快地響應命令,提高系統吞吐量。
缺點:系統工作效率較低。
- 單匯流排結構:
按時序控制方式分類
- 同步匯流排
- 非同步匯流排
6.1.2 匯流排的效能指標
- 匯流排的傳輸週期(匯流排週期):
一次匯流排操作所需時間(包括申請階段、定址階段、傳輸階段和結束階段),通常由若干個匯流排時鐘週期構成。 - 匯流排時鐘週期:
即機器的時鐘週期。計算機有一個統一的時鐘,以控制整個計算機的各個部件,匯流排也要受此時鐘的控制。
大多數情況下,一個匯流排週期包含多個匯流排時鐘週期;但有的時候,一個匯流排週期就是一個匯流排時鐘週期;有時候,一個匯流排時鐘週期可包含多個匯流排週期。
現在的計算機中,匯流排時鐘週期也有可能由橋接器提供。 - 匯流排的工作頻率:
匯流排上各種操作的頻率,為匯流排週期的倒數。
若匯流排週期 = N個時鐘週期,則匯流排的工作頻率 = 時脈頻率 / N。
實際上指一秒內傳輸幾次資料。 - 匯流排的時脈頻率:
即機器的時脈頻率,為時鐘週期的倒數。
若時鐘週期為T,則時脈頻率為1/T。
實際上指一秒內有多少個時鐘週期。 - 匯流排寬度:
又稱匯流排位寬,它是匯流排上同時能夠傳輸的資料位數,通常指資料匯流排的根數,如32根稱為32位匯流排。 - 匯流排頻寬:
可理解為匯流排的資料傳輸率,即單位時間內匯流排上可傳輸資料的位數,通常用每秒傳送資訊的位元組數來衡量,單位可用位元組/秒(B/s)表示。
匯流排頻寬 = 匯流排工作頻率 * 匯流排寬度 = 匯流排寬度 / 匯流排週期
注:匯流排頻寬是指匯流排本身能達到的最高傳輸速率。
在計算實際的有效傳輸率時,要用實際傳送的資料量除以耗時。 - 匯流排複用:
匯流排複用是指一種訊號在不同的時間傳輸不同的資訊。可以使用較少的線傳輸更多的資訊,從而節省了空間和成本。 - 訊號線數:
地址匯流排、資料匯流排和控制匯流排3種匯流排數的總和稱為訊號線數。
6.2 匯流排操作和定時
- 匯流排週期的四個階段:
- 申請分配階段:
由需要使用匯流排的主模組(或主裝置)提出和申請,經匯流排仲裁機構決定將下一傳輸週期的匯流排使用權授予某一申請者。也可將此階段細分為傳輸請求和匯流排仲裁兩個階段。 - 定址階段:
獲得使用權的主模組透過匯流排發出本次要訪問的從模考的地址及有關命令,啟動參與本次傳輸的從模組。 - 傳輸階段:
主模組和從模組進行資料交換,可單向或雙向進行資料傳送。 - 結束階段:主模組的有關資訊均從系統匯流排上撤除,讓出匯流排使用權。
- 申請分配階段:
- 匯流排定時:指匯流排在雙方交換資料的過程中需要時間上配合關係和控制,這種控制稱為匯流排定時,它的實質是一種協議或規則。
- 同步通訊(同步定時方式):由統一時鐘控制資料傳送
- 非同步通訊(非同步定時方式):採用應答方式,沒用功能時鐘標準
- 半同步通訊:同步、非同步結合
- 分離式通訊:充分挖掘系統匯流排每瞬間的潛力
同步定時方式
假設:CPU為主裝置,某個輸入裝置為從裝置。CPU要從這個從裝置讀取資料,進行讀操作。
- CPU在T1時刻的上升沿給出地址資訊
- 在T2的上升沿給出讀命令(低電平有效),與地址資訊相符合的輸入裝置按命令進行一系列的內部操作,且必須在T3的上升沿來之前將CPU所需的資料送到資料匯流排上。
- CPU在T3時鐘週期內,將資料線上的資訊傳送到其內部暫存器中。
- CPU在T4的上升沿撤銷讀命令,輸入裝置不再向資料匯流排上傳送資料,撤銷它對資料匯流排的驅動。
- 總結:同步定時方式由若干個時鐘週期產生相等的時間間隔,每個間隔構成一個匯流排週期。
在一個匯流排週期中,傳送方和接收方可進行一次資料傳送。
因為採用統一的時鐘,每個部件或裝置傳送或接受資訊都在固定的匯流排傳送週期中,一個匯流排的傳送週期結束,下一個匯流排的傳送週期開始。 - 優點:傳送速度快,具有較高的傳輸速率;匯流排控制邏輯簡單。
- 缺點:主從裝置屬於強制性同步;不能及時進行資料通訊的有效性檢驗,可靠性較差。
- 同步通訊適用於匯流排長度較短及匯流排所接部件的存取時間比較接近的系統。
非同步定時方式
- 在非同步定時方式中,沒有統一的時鐘,也沒有固定的時間間隔,完全依靠傳送雙方相互制約的“握手”訊號來實現定時控制。
主裝置提出交換資訊和“請求”訊號,經介面傳送到從裝置;從裝置接到主裝置的請求後,透過介面向主裝置發出“回答”訊號。 - 根據“請求”和“回答”訊號的撤銷是否互鎖,分為一下3種型別。
- 不互鎖方式:主裝置發出“請求”訊號後,不必等到接到從裝置“回答”訊號,而是經過一段時間後,便撤銷“請求”訊號。
而從裝置在接到“請求”訊號後,發出“回答”訊號,並經過一段時間,自動撤銷“回答”訊號。
雙方不存在互鎖關係。
速度最快,可靠性最差。 - 半互鎖方式:主裝置發出請求訊號後,必須等接到從裝置的回答訊號後,才能撤銷請求訊號,有互鎖關係。
而從裝置接到請求訊號後,發出回答訊號,但不必等待獲知主裝置的請求訊號撤銷,而是隔一段時間後自動撤銷回答訊號,不存在互鎖關係。 - 全互鎖方式:主裝置發出請求訊號後,必須等從裝置回答後才能撤銷請求訊號。
從裝置發出回答訊號,必須獲知主裝置請求訊號已經撤銷後,再撤銷其回答訊號。雙方存在互鎖關係。
最可靠,速度最慢
- 不互鎖方式:主裝置發出“請求”訊號後,不必等到接到從裝置“回答”訊號,而是經過一段時間後,便撤銷“請求”訊號。
- 優點:匯流排週期長度可變,能保證兩速度相差很大的部件或裝置之間可靠地進行資訊交換,自動適應時間的配合。
- 缺點:比同步控制方式稍複雜一些,速度比同步定時方式慢。
半同步通訊
- 半同步通訊影像如下:
- 半同步通訊:統一時鐘的基礎上,增加一個“等待”響應訊號\(\overline {WAIT}\)
分離式通訊
- 上述三種通訊方式的共同點:
一個匯流排傳輸週期(以輸入資料為例)- 主模組發地址、命令(使用匯流排)
- 從裝置準備資料(不使用匯流排,匯流排空閒)
- 從模組向主模組發資料(使用匯流排)
- 分離式通訊的思想是合理利用從裝置準備資料時的匯流排空閒。
分離式通訊的一個匯流排傳輸週期:- 子週期1:主模組申請佔用匯流排,使用完後放棄匯流排的使用權
- 子週期2:從模組申請佔用匯流排,將各種資訊送至匯流排上。
- 特點:
- 各裝置均有權申請匯流排
- 採用同步方式通訊,不等對方回答
- 各模組準備資料時,不佔用匯流排
- 匯流排利用率提高