-
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總線標準接口
計算機總線有多種可選擇的設計,這種多樣性意味着配備着有這種接口電路的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年首次被推出,作為一個工業標準一直非常流行。
I/O總線SCSI
(小型計算機系統接口)
SCSI總線標準經歷了多次修改,它的數據傳輸能力增長的非常快,幾乎每兩年就會翻一倍。連接到SCSI總線的設備不屬於處理器的地址空間,這與連接到處理器總線的設備是一樣的。SCSI總線通過SCSI控制器連接到處理器總線上。這個控制器採用DMA方式在主存和設備之間傳送數據包。數據包可能是一個數據塊,也可以是處理發送給設備的命令或設備的狀態信息。
I/O總線USB
(通用串行總線)
USB的設計達到如下幾個主要目標:
提供一個簡單、廉價、使用方便的互聯繫統,克服由於計算機只能提供有限數量的I/O端口帶來的困難。
能夠滿足I/O設備的多種數據傳送特性,包括電話和Internet連接器。
I/O總線I/O方式
(數據傳輸方式)
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數據在主存中的地址,每次傳輸的字節數,以及數據的傳輸方向等。