I/O接口
I/O接口👩🏻🍳🧑🏽💼:又稱I/O控製器(I/O Controller)、設備控製器📋,負責協調主機與外部設備之間的數據傳輸🙆🏽♀️。
I/O控製器多種多樣,也會製定相應的標準🌦,如🫓:用於控製USB設備的IO接口、用於控製SATA 3.0硬盤的IO接口等
(I/O控製器就是一塊芯片🙍🏼,常被集成在主板上)
I/O接口的作用
數據緩沖:通過數據緩沖寄存器(DBR)達到主機和外設工作速度的匹配;
錯誤或狀態監測:通過狀態寄存器反饋設備的各種錯誤、狀態信息🫱🏿,供CPU查用;
控製和定時:接收從控製總線發來的控製信號⛹🏿♀️、時鐘信號;
數據格式轉換:串-並、並-串等格式轉換🏋🏿;
與主機和設備通信:實現主機一I/O接口—I/O設備之間的通信。
設備側的 外部接口🧑🏽⚕️:外部接口通過接口電纜與外設相連🧖🏽♀️,外部接口的數據傳輸可能是串行方式,因此I/O接口需具有串/並 轉換功能。
主機側的 內部接口💂🏿:內部接口與系統總線相連,實質上是與內存、CPU相 連。數據的傳輸方式只能是並行傳輸。
I/O接口的工作原理
①發送命令字到I/O控製寄存器,向設備發送命令(需要驅動程序的協助)🏖👩🏼🔧;
②從狀態寄存器讀取狀態字,獲得設備或I/O控製器的狀態信息;
③讀/寫數據:從數據緩沖寄存器發送或讀取數據🔽,完成主機與外設的數據交換🕗。
接口與端口
I/O端口是指接口電路中可以被CPU直接訪問的寄存器。
I/O端口及其編址
統一編址
把 I/O端口當做存儲器的單元進行地址分配🧅,用統一的訪存指令就可以訪問 I/O端口,又稱存儲器映射方式。 靠不同的地址碼區分內存和I/O設備🕵️♀️,I/O地址要求相對固定在地址的某部分。
優點:
不需要專門的輸入/輸出指令👱🏼♀️,所有訪存指令都可直接訪問端口🦻🏽,程序設計靈活性高端口有較大的編址空間讀寫控製邏輯電路簡單。
缺點:
端口占用了主存地址空間,使主存地址空間變小外設尋址時間長(地址位數多,地址譯碼速度慢)👩🏽🦲。
獨立編址
I/O端口地址與存儲器地址無關🧻,獨立編址CPU需要設置專門的輸入/輸出指令訪問端口,又稱**I/O映射方式
**🏊🏽♀️。 靠不同的指令區分內存和I/O設備👇👩🏿🦰。
優點𓀄:
使用專用I/O指令,程序編製清晰;
I/O端口地址位數少,地址譯碼速度快;
I/O端口的地址不占用主存地址空間。
缺點:
I/O指令類型少,一般只能對端口進行傳送操作,
程序設計靈活性差
需要CPU提供存儲器讀/寫、I/O設備讀/寫兩組控製
信號,增加了控製邏輯電路的復雜性
I/O接口的類型
按數據傳送方式可分為
並行接口:一個字節或一個字所有位同時傳送🎰。
串行接口:一位一位地傳送。 註:這裏所說的數據傳送方式指的是外設和接口一側的傳送方式🐷,而在主機和接口一側🤏🏼,數據總是並行傳送的。接口要完成數據格式轉換。
按主機訪問I/O設備的控製方式可分為
程序查詢接口
中斷接口
DMA接口
123
按功能選擇的靈活性可分為
可編程接口
不可編程接口
鏈接:https://blog.csdn.net/weixin_43848614/article/details/127193111
作者😒:何為xl