1. 有哪幾種I/O控制方式各適用於何種場合
共有四種I/O控制方式。
1、程序I/O方式
適用於:早期計算機無中斷機構,處理機對I/O設備的控制採用程序I/O方式或稱忙等的方式。
2、中斷驅動I/O控制方式
適用於:適用於有中斷機構的計算機系統中。
3、直接存儲器訪間(DMA)I/O控制方式
適用於:具有DMA控制器的計算機系統中。
4、I/O通道控制方式
適用於:具有通道程序的計算機系統中。
常見的I/O控制方式:
1、程序直接訪問方式跟循環檢測IO方式,是最古老的方式。CPU和IO串列,每讀一個位元組(或字),CPU都需要不斷檢測狀態寄存器的busy標志,當busy=1時,表示IO還沒完成;當busy=0時,表示IO完成。此時讀取一個字的過程才結束,接著讀取下一個字。
2、中斷控制方式:循環檢測先進些,IO設備和CPU可以並行工作,只有在開始IO和結束IO時,才需要CPU。但每次只能讀取一個字。
3、DMA方式:Direct Memory Access,直接存儲器訪問,比中斷先進的地方是每次可以讀取一個塊,而不是一個字。
4、通道方式:比DMA先進的地方是,每次可以處理多個塊,而不只是一個塊。
分類依據:
現代計算機系統中總是配備有各種外部設備,他們都在CPU控制下進行工作。CPU對外部設備的控制方式主要有以下四種。
1、程序I/O方式
程序查詢方式也稱為程序輪詢方式,該方式採用用戶程序直接控制主機與外部設備之間輸入/輸出操作。
CPU必須不停地循環測試I/O設備的狀態埠,當發現設備處於准備好(Ready)狀態時,CPU就可以與I/O設備進行數據存取操作。這種方式下的CPU與I/O設備是串列工作的,輸入/輸出一般以位元組或字為單位進行。
這個方式頻繁地測試I/O設備,I/O設備的速度相對來說又很慢,極大地降低了CPU的處理效率,並且僅僅依靠測試設備狀態位來進行數據傳送,不能及時發現傳輸中的硬體錯誤。但是這種方式的過程很簡單,易理解,並且不需要額外硬體。
2、中斷驅動I/O控制方式
當I/O設備結束(完成、特殊或異常)時,就會向CPU發出中斷請求信號,CPU收到信號就可以採取相應措施。
當某個進程要啟動某個設備時,CPU就向相應的設備控制器發出一條設備I/O啟動指令,然後CPU又返回做原來的工作。CPU與I/O設備可以並行工作,與程序查詢方式相比,大大提高了CPU的利用率。但是在中斷方式下,同程序查詢方式一樣,也是以位元組或字為單位進行。
但是該方法大大降低了CPU的效率,因為當中斷發生的非常頻繁的時候,系統需要進行頻繁的中斷源識別、保護現場、中斷處理、恢復現場。這種方法對於以「塊」為存取單位的塊設備,效率是低下的。
3、直接存儲器訪間(DMA)I/O控制方式
DMA方式也稱為直接主存存取方式,其思想是:允許主存儲器和I/O設備之間通過「DMA控制器(DMAC)」直接進行批量數據交換,除了在數據傳輸開始和結束時,整個過程無須CPU的干預。每傳輸一個「塊」數據只需要佔用一個主存周期。
DMA方式下,一個完整的數據傳輸過程:
1)DMA初始化
當進程需要I/O設備進行數據輸入輸出時,CPU對DMA控制器初始化,並向I/O埠發出操作命令,提供准備傳輸的數據起始地址,需要傳送的數據長度等信息送入到DMA控制器中的主存地址寄存器和傳送位元組計數器中。
2)DMA傳輸
DMA控制器獲得匯流排控制權後,進行輸出讀寫命令,直接控制主存與I/O設備之間的傳輸。在DMA控制器的控制下,數據傳輸過程中不需要CPU的參與。
3)DMA結束
當完成本次數據傳輸後,DMA控制器釋放匯流排控制權,並向I/O設備埠發出結束信號。
4、I/O通道控制方式
通道(Channel)也稱為外圍設備處理器、輸入輸出處理機,是相對於CPU而言的。是一個處理器。也能執行指令和由指令的程序,只不過通道執行的指令是與外部設備相關的指令。
是一種實現主存與I/O設備進行直接數據交換的控制方式,與DMA控制方式相比,通道所需要的CPU控制更少,一個通道可以控制多個設備,並且能夠一次進行多個不連續的數據塊的存取交換,從而大大提高了計算機系統效率。