定義
驅動器是計算機主機設備與外部設備之間的接口 。它根據其實現方式又分為硬體驅動器(例如磁碟驅動器、磁帶驅動器、軟碟驅動器等)和軟體驅動器,它為各種不同的輸入/輸出設備正常運行提供所要求的信號電平和指令。雙向匯流排驅動器即連線在雙向匯流排上設備之間傳送和接收信息的接口。雙向匯流排驅動器目的是保證設備能正確地接收和傳送數據。主要與雙向匯流排的類型有關。雙向匯流排驅動器也有相應設備驅動程式。
設備驅動程式
設備驅動程式通常又稱為設備處理程式,它是 I/O 進程與設備控制器之間的通信程式,又由於它常以進程的形式存在,故以後就簡稱之為設備驅動進程。其主要任務是接收上層軟體發來的抽象 I/O 要求,如 read 或 write 命令,在把它轉換為具體要求後,傳送給設備控制器,啟動設備去執行;此外,它也將由設備控制器發來的信號傳送給上層軟體。由於驅動程式與硬體密切相關,故應為每一類設備配置一種驅動程式;有時也可為非常類似的兩類設備配置一個驅動程式。
功能
為了實現 I/O 進程與設備控制器之間的通信,設備驅動程式應具有以下功能:
(1) 接收由設備獨立性軟體發來的命令和參數,並將命令中的抽象要求轉換為具體要求,例如,將磁碟塊號轉換為磁碟的盤面、磁軌號及扇區號。
(2) 檢查用戶 I/O 請求的合法性,了解 I/O 設備的狀態,傳遞有關參數,設定設備的工作方式。
(3) 發出 I/O 命令。如果設備空閒,便立即啟動 I/O 設備去完成指定的 I/O 操作;如果設備處於忙碌狀態,則將請求者的請求塊掛在設備佇列上等待。
(4) 及時回響由控制器或通道發來的中斷請求, 並根據其中斷類型調用相應的中斷處理程式進行處理。
(5) 對於設定有通道的計算機系統,驅動程式還應能夠根據用戶的 I/O 請求,自動地構成通道程式。
雙向匯流排類型
ISA(Industry Standard Architecture)匯流排
這是為在 1984 年推出的 80286 型微機而設計的匯流排結構。其匯流排的頻寬為 8 位,最高傳輸速率為 2 Mb/s。之後不久又推出了 16 位的(EISA)匯流排,其最高傳輸速率為 8 Mb/s,後又升至 16 Mb/s,能連線 12 台設備。
EISA(Extended ISA)匯流排
到 20 世紀 80 年代末期, ISA 匯流排已難於滿足頻寬和傳輸速率的要求, 於是人們又開發出擴展 ISA(EISA)匯流排,其頻寬為 32 位,匯流排的傳輸速率高達 32 Mb/s,同樣可以連線 12台外部設備。
VESA匯流排
ESA(Video Electronic Standard Association)匯流排的設計思想是以低價位迅速占領市場。VESA 匯流排的頻寬為 32 位,最高傳輸速率為 132 Mb/s。它在 20 世紀 90 年代初被推出時,廣泛套用於 486 微機中。但 VESA 匯流排仍存在較嚴重的缺點,比如,它所能連線的設備數僅為 2~4 台,在控制器中無緩衝,故難於適應處理器速度的不斷提高,也不能支持後來出現的 Pentium 微機。
PCI(Peripheral Component Interface)匯流排
隨著 Pentium 系列晶片的推出,Intel 公司分別在 1992 年和 1995 年頒布了 PCI 匯流排的V1.0 和 V2.1 規範,後者支持 64 位系統。PCI 在 CPU 和外設間插入一複雜的管理層,用於協調數據傳輸和提供一致的接口。在管理層中配有數據緩衝,通過該緩衝可將線路的驅動能力放大,使 PCI 最多能支持 10 種外設,並使高時鐘頻率的 CPU 能很好地運行,最大傳輸速率可達 132 Mb/s。PCI 既可連線 ISA、EISA 等傳統型匯流排,又可支持 Pentium 的 64 位系統,是基於奔騰等新一代微處理器而發展的匯流排。