複製鏈接
請複製以下鏈接發送給好友

I/O總線

鎖定
I/O總線指纜線和連接器系統,用來傳輸I/O路徑技術指定的數據和控制信號,另外還包括一個總線終結電阻或電路,這個終結電阻用來減弱電纜上的信號反射干擾
主機和I/O設備之前通過總線連接,這個總線一般被稱為I/O總線。
中文名
I/O總線
外文名
I / O bus
學科範疇
計算機組成原理
釋    義
連接CPU與I/O設備的總線
傳輸信號
數據、地址、控制信號
數據傳輸方式
程序查詢、程序中斷、DMA、通道

I/O總線常見類型

ISA(Industry Standard Architecture)工業標準體系結構總線.
EISA(Extension Industry Standard Architecture)擴展標準體系結構總線.
MCA(Micro Channel)微通道總線.
此外,為了解決CPU與高速外設之間傳輸速度慢的"瓶頸"問題,出現了兩種局部總線,它們是:
VESA(Video Electronic Standards Association)視頻電子標準協會局部總線,簡稱VL總線.
PCI(Peripheral Component Interconnect)外圍部件互連局部總線,簡稱PCI總線. 486級的主板多采用VL總線,而奔騰主板多采用PCI總線。 繼PCI之後又開發了更外圍的接口總線,它們是:USB(Universal Serial Bus)通用串行總線。IEEE1394(美國電氣及電子工程師協會1394標準)俗稱"火線(Fire Ware)"。

I/O總線總線方式

用來傳輸數據的總線線路可以分為三個類型:數據線、地址線和控制線。其中控制信號一般包括:同步時序信號或應答信號、數據傳送控制信號(如地址有效、讀寫控制、M/IO選擇)、中斷請求及響應信號、DMA請求及響應信號等。控制信號説明是否執行讀或寫操作。通常,使用單根
線來傳送控制信號,當它被置1時表示進行讀操作,被置0時表示進行寫操作。在允許傳輸不同長度的操作數時,如字節、字或長字,數據的長度也被顯示出來。 [1] 
總線控制信號還要傳送時序信息。這些信息詳細説明何時處理器和I/O設備可以將數據放到總線上或從總線上接收數據。有多種傳輸數據的方式,大致可以將他們分為同步和異步兩種方式。 [2] 

I/O總線標準接口

計算機總線有多種可選擇的設計,這種多樣性意味着配備着有這種接口電路的I/O設備適用於一台計算機不一定就適用與另外一台計算機。因此,每一種I/O設備與計算機的連接可能都需要設計一種不同的接口,這樣就會產生很多不同的接口。最符合實際的解決方法就是開發出標準的接口信號和協議。
總線結構與處理器結構密切相關,而且還依賴於處理器芯片的電氣特性,所以不可能為處理器總線定義一個統一標準。但拓展總線就沒有這些限制了,因此可以使用標準的信號方式。事實上,已經有I/O總線的標準被制定出來了。其中有些是默認的,當特定的設計在商業上取得成功時,這些設計就成為了事實上的標準。例如,IBM為它的個人計算機PC AT開發的總線ISA(工業標準體系結構),由於這種計算機的流行導致其他製造商為他們的I/O設備生產出與ISA兼容的接口,這樣ISA就成為了事實上的標準。
還有一些標準是行業共同協作開發的,由於在兼容產品上的共同切身利益,即使那些互相競爭的公司也參與了標準的開發。IEEE(電氣和電子工程師協會)、ANSI美國國家標準學會)等組織及一些國際組織如ISO國際標準化組織)已經承認了這些標準,並授予他們官方的地位。
一台計算機使用的標準可能不止一個,如典型的Pentium計算機有PCI和ISA兩種總線以提供大範圍的設備給用户選擇。
下面來簡單介紹三種廣泛使用的標準。

I/O總線PCI

(外圍部件互連)
PCI標準定義了主板上的一種拓展I/O總線。它支持處理器總線的功能,但又以一種標準的形式獨立於任何的處理器。連接到PCI總線的設備在處理器看來就好像是他們是直接連接到處理器總線上的一樣。它們在處理器的存儲器地址空間內分配地址。
PCI是一種廉價且真正獨立於處理器的總線。它的設計預見了為支持高速磁盤、圖形和視頻設備而引起的對總線帶寬需求的快速增長,也預見了對多處理器系統專業化需求的快速增長。PCI總線自1992年首次被推出,作為一個工業標準一直非常流行。
PCI總線首創的一個重要特性是I/O設備的即插即用。要連接一台新的設備,用户只需將設備接口板連接到總線上即可,其餘操作由軟件來完成。

I/O總線SCSI

(小型計算機系統接口)
SCSI標準用來連接機箱內外的附加設備。SCSI總線是高速並行總線,用於像硬盤和視頻顯示器之類的設備。
SCSI總線標準經歷了多次修改,它的數據傳輸能力增長的非常快,幾乎每兩年就會翻一倍。連接到SCSI總線的設備不屬於處理器的地址空間,這與連接到處理器總線的設備是一樣的。SCSI總線通過SCSI控制器連接到處理器總線上。這個控制器採用DMA方式在主存和設備之間傳送數據包。數據包可能是一個數據塊,也可以是處理發送給設備的命令或設備的狀態信息。

I/O總線USB

(通用串行總線)
USB標準也是用來連接機箱內外的附加設備的,使用串行傳輸,適合鍵盤,遊戲控制器和Internet連接等設備的需求。
USB的設計達到如下幾個主要目標:
提供一個簡單、廉價、使用方便的互聯繫統,克服由於計算機只能提供有限數量的I/O端口帶來的困難。
能夠滿足I/O設備的多種數據傳送特性,包括電話和Internet連接器。
採用“即插即用”的操作模式,使用户操作更加方便。 [2] 

I/O總線I/O方式

(數據傳輸方式)
通常,輸入輸出的基本控制方式(簡稱為I/O方式)有以下幾種:程序查詢方式程序中斷方式、直接存儲器訪問(direct memory access, DMA)方式和通道方式 [1] 

I/O總線程序查詢方式

CPU直接通過I/O指令I/O接口進行操作訪問,主機與外部設備交換信息的每一過程均在程序中表示出來。如果接口尚未準備好,CPU就等待,如果已經做好準備,CPU才能運行I/O指令。
CPU在讀I/O數據時,首先讀取狀態寄存器中的標誌,以判斷I/O數據是否準備好。如果還沒準備好,則CPU要繼續查詢狀態;如果當標誌指出數據已經準備就緒,則CPU讀取I/O數據寄存器的內容。
CPU在寫數據時也採用類似的辦法。CPU首先讀取I/O狀態寄存器中的標誌,以判斷I/O寄存器是否空閒。如果不空閒(還沒準備好),則CPU要一直查詢I/O狀態;當標誌指出輸出寄存器已經準備空閒,CPU寫數據到輸出寄存器。

I/O總線程序中斷方式

CPU首先對I/O接口及一個中斷控制器進行初始化,然後去運行CPU自己的程序(用户程序)。當I/O設備準備好時,由中斷控制器向CPU發出中斷請求。CPU在收到中斷請求後,若能響應中斷,則暫時停止當前正在運行的程序,轉去運行中斷服務程序,然後再返回被中斷的程序繼續運行。顯然,程序中斷方式省去了程序查詢方式下的I/O狀態查詢時間,因此提高了效率。

I/O總線DMA方式

在主存與I/O設備之間直接傳輸數據,傳輸過程中並不需要CPU干預,而是由一個稱為DMA控制器(DMAC,direct memory access controller)的硬件控制器來實現的。這種由硬件來直接實現I/O數據傳輸的方法被稱為直接存儲器訪問方式。
CPU要做的事情就是對DMAC進行初始化,初始化的工作包括I/O數據在主存中的地址,每次傳輸的字節數,以及數據的傳輸方向等。
DMA在存儲器和I/O設備之間建立數據通路,讓I/O設備和內存通過該數據通路直接交換數據,不經過CPU的干預,實現內存與外設之間的快速數據傳送。減少CPU等待時間。 [3] 

I/O總線通道方式

通道是一個專用控制器,它通過運行通道程序來進行I/O操作的管理,為主機和I/O設備提供一種數據傳輸通道。CPU先給通道準備好數據和命令,然後發送簡單的通道命令,啓動通道開始工作。若啓動成功,則CPU可以繼續運行自己的運算處理。而通道則運行相應的通道程序,管理有關的I/O設備,當運行完指定的任務後,再通知CPU。這就使CPU擺脱了大量的I/O管理工作,可以高速的處理其他數據。 [1] 
參考資料
  • 1.    張代遠 編著.計算機組成原理教程(第二版):清華大學出版社,2009
  • 2.    Carl Hamacher,Zvonko Vranesic, Sawat Zaky著,張紅光,張健民,李瑩等譯.計算機組成:機械工業出版社,2004
  • 3.    嚴雲洋.計算機組成原理:科學出版社,2011