I/O設備與主機間進行數據輸入輸出主要有直接程序控制方式、中斷方式、DMA方式和通道控制方式.
直接程序控制方式的主要特點是:CPU直接通過I/O指令對I/O接口進行訪問操作,主機與外設之間交換信息的每個步驟均在程序中表示出來,整個輸入輸出過程是由CPU執行程序來完成的。
中斷方式的特點是:當I/O接A准備好接收數據或向CPU傳送數據時,就發出中斷信號通知CPU。對中斷信號進行確認后,CPU保存正在執行的程序的現場,轉而執行提前設置好的I/O中斷服務程序,完成一次數據傳送的處理。這樣,CPU就不需要主動查詢外設的狀態,在等待數據期間可以執行其他程序,從而提高了CPU的利用率。采用中斷方式管理I/O設備,CPU和外設可以並行地工作。
雖然中斷方式可以提高CPU的利用率,能處理隨機事件和實時任務,但一次中斷處理過程需要經歷保存現場、中斷處理和恢復現場等階段,需要執行若干條指令才能處理一次中斷事件,因此這種方式無法滿足高速的批量數據傳送要求。
直接內存存取(DirecE Memory Access, DMA)方式的基本思想是:通過硬件控制實現主存與I/O設備間的直接數據傳送,數據的傳送過程由DMA控制器( DMAC)進行控制,不需要CPU的干預。在DMA方式下,需要CPU啟動傳送過程,即向設備發出“傳送一塊數據”的命令。在傳送過程結束時,DMAC通過中斷方式通知CPU進行一些后續處理工作。
DMA方式簡化了CPU對數據傳送的控制,提高了主機與外設並行工作的程度,實現了快速外設和主存之間成批的數據傳送,使系統的效率明顯提高。
通道是一種專用控制器,它通過執行通道程序進行I/O操作的管理,為主機與I/O設備提供一種數據傳輸通道。用通道指令編制的程序存放在存儲器中,當需要進行I/O操作時,CPU只要按約定格式准備好命令和數據,然后啟動通道即可;通道則執行相應的通道程序,完成所要求的操作。用通道程序也可完成較復雜的I/O管理和預處理,從而在很大程度上將主機從繁重的I/O管理工作中解脫出來,提高了系統的效率。
DMA可以使數據在主存(內存)和I/O設備之間直接傳送,在傳送的過程中不用CPU的干預,由DMA的控制器控制總線完成數據的傳送。
DMA控制方式是在主存與外設之間建立數據通路進行數據的交互處理