? ? ? ?? ? ? ?
1、內存與接口的編址方式
1.1 內存和接口地址獨立編址方法
內存地址和接口地址是兩個完全獨立和相互隔離的地址空間。訪問數據的指令也不同,接口只有讀寫指令,其余都是內存指令。
特點:接口和內存指令容易區分,但接口指令太少、功能太單一了。
1.2 內存和接口地址統一編址方法
內存地址和接口地址在一個公共的地址空間。其中一部分劃給接口使用,其余地址給內存單元使用。分配的地址空間只能給自己使用,比如內存單元分配的地址空間,只允許給內存單元使用。
特點:內存的指令可以全部用于接口。不區分內存指令和接口指令;缺點:內存地址不連續,原因是整個地址空間被分為兩部分。
2、程序的控制方式
在完成外設數據輸入輸出時,整個過程由CPU執行程序進行控制的。分為兩種控制方式。
2.1 無條件傳送
外設提前準備好,隨時可以無條件接收CPU發來的數據、無條件向CPU提供要輸入的數據。
2.2 程序查詢方式
通過CPU查詢程序判斷外設是否準備好接收數據或向提供CPU要輸入的數據。如果滿足條件則執行相應的動作。
缺點:
1、降低了CPU的效率:因為CPU需要不停的對外設的狀態進行查詢。
2、對外部的突發事件無法做出實時響應:CPU必須等待I/O系統完成傳輸任務,在此期間需要定時查詢I/O系統的狀態,確認數據傳輸是否完成。
3、中斷方式
3.1 工作流程
I/O系統和外設交換數據時,CPU無需等待和查詢I/O的狀態,可以處理其他任務。當I/O設備準備好后,發送中斷通知給CPU,CPU接收到中斷信號,保存當前執行的任務,轉入I/O中斷服務程序的執行,完成和I/O系統的數據傳輸任務,然后再返回中斷之前的任務。因為省掉了CPU等待的問題,所以效率較高。
? ? ? ?? ? ? ?
3.2 中斷處理的方法
1、多中斷信號法
每一個中斷源都有屬于自己的一條中斷請求信號向CPU提出中斷請求。
2、中斷軟件查詢法
通過中斷服務程序去輪詢每個中斷源確認是哪個發起了中斷請求。然后根據優先級進行響應處理。
3、菊花鏈法
改進了軟件查詢方法。本質是硬件查詢法。所以的I/O模塊共享一根共同的請求線,中斷信號以鏈式的方式在各個模塊相連。
4、總線仲裁法
I/O發出中斷請求之前,由總線獲得控制權,然后由總線的仲裁機制決定誰可以發出中斷信號請求。
5、中斷向量法
中斷向量表用來保存各個中斷源服務的入口地址。
? ? ? ?? ? ? ?
3.3 中斷優先級控制
在具有多個中斷源的計算機當中,需要根據中斷源的緊迫程度不同,根據輕重緩急進行安排中斷的執行順序。
1、當多個中斷請求同時發出中斷請求,CPU根據優先級決定先響應哪一個。
2、當CPU正在執行某個中斷請求時,來了一個比它優先級高的中斷請求。CPU應暫停當前中斷請求,去執行優先級高的請求。完成后再返回被暫停的中斷請求。也被稱為中斷嵌套。
4、DMA 直接存取方式
DMA指的是內存與I/O設備之間直接塊傳送,不需要CPU干涉,只需要CPU傳輸之前(發送一條傳數據指令)、傳輸結束(CPU根據輪詢或中斷判斷過程是否結束和下次操作是否準備就緒)。DMA硬件直接執行傳輸任務。CPU可以處理別的任務。
? ? ? ?? ? ? ?
5、 通道方式和外圍處理機方式
5.1 通道方式
通道是一個具有特殊功能的處理器被稱為輸入輸入處理器(IOP),它承擔了CPU的一部分功能,實現了對?外圍設備的統一管理,完成外圍設備和主存直接的數據傳送。
通道方式大大提高了CPU的工作效率,但需要增加硬件成本。
5.2 外圍處理機
外圍處理機(PPU) 它根據主機的I/O指令完成對外圍設備的輸入和輸出。