接口可以看作是兩個部件之間交接的部分。硬件與硬件之間有接口,硬件與軟件之間有接口,軟件與軟件之間也有接口。
這里我們所說的I/O接口,一邊連接着主機,一邊連接着外設。
I/O接口的功能
I/O接口的基本結構
CPU和外設之間通常傳遞的信息:數據、狀態、控制。
組成:寄存器組、控制邏輯電路、主機與接口和接口與I/O設備之間的信號聯接線、數據地址線、控制狀態信號線。
其實中間紅框內的部分就是對應到電路板上的插口,又分為內部接口和外部接口兩種。
內部接口:與系統總線相連,實質上是與內存、CPU相連。數據的傳輸方式也只能是並行傳輸。
外部接口:通過接口電纜與外設相連,外部接口的數據傳輸可能是串行方式,因此I/O接口需具有串並轉換功能。
接口與端口
接口就是I/O接口,端口實質接口電路中可以被CPU訪問的寄存器。
I/O端口及其編址
為了便於CPU對I/O設備進行尋址和選擇,必須給眾多的I/O設備進行編址,也就是說給每一台設備規定一些地址碼,稱之為設備號或端口地址。
統一編址:與存儲器共用地址,用訪存指令訪問I/O設備。
獨立編址:單獨使用一套地址,有專門的I/O指令。
接口類型
I/O設備數據傳送控制方式
1.程序直接控制傳送方式
又叫查詢方式。是完全通過程序來控制主機和外圍設備之間的信息傳送。
通常的辦法是在用戶的程序中安排一段由輸入輸出指令和其他指令所組成的程序段直接控制外圍設備的工作。也就是說CPU要不斷地查詢外圍設備的工作狀態,一旦外圍設備“准備好”或“不忙”,即可進行數據的傳送。
該方法是主機與外設之間進行數據交換的最簡單、最基本的控制方法。
無條件傳送:只有在外設總處於准備好狀態
程序查詢方式
優點:
較好協調主機與外設之間的時間差異,所用硬件少。
缺點:
主機與外設只能串行工作,主機一個時間段只能與一個外設進行通訊,CPU效率低。
程序查詢方式接口結構:
一次只能查詢一個字的原因?在這種傳送方式下,外部數據是要存到CPU寄存器中的,故需要一個字。
我們通過一個例題來定量分析一下這種方式下CPU占用情況:
可以發現用程序查詢的方式來管理高速設備是不科學的,該方式傳單位是字,而高速方式產生一個字的時間是非常短的,在使用程序查詢方式的時候,沒查詢這樣一個字,CPU都要執行一次程序查詢方式,並且這里僅僅考慮了查詢的那部分時間,而數據處理的時間還沒有考慮,若是考慮進去那就更不能滿足高速設備的管理要求了。
2.程序中斷傳送方式
具體介紹:
https://www.cnblogs.com/wkfvawl/p/10957080.html
當外圍設備完成數據傳送的准備后,便主動向CPU發出“中斷請求” 信號。若CPU允許中斷,則在一條指令執行完后,響應中斷請求,轉去執行中斷服務子程序,完成數據傳送,通常傳送一個字或一個字節。傳送完后繼續執行原程序。
中斷請求方式在一定程度上實現了CPU和外圍設備的並行工作。
若在某一時刻有幾台設備發出中斷請求,CPU可根據預先定好的優先級,去處理幾台外設的數據傳送。
但是對於工作頻率較高的外設,如磁盤,數據交換通常是成批的,若采用中斷方式,則不合適。一般采用DMA方式。
優點:避免頻繁查詢,適合隨機出現的服務和中低速外設使用。
缺點:成批數據交換時,中斷影響傳送效率,一次傳送一個字符,中斷處理時間大於傳送數據時間。需要一定的硬件電路。
3、直接存儲器訪問方式
具體介紹:
https://www.cnblogs.com/wkfvawl/p/10958751.html
1. DMA方式的引入
前兩種方式以CPU為中心,占用CPU時間。DMA方式以內存為中心。
2. 基本工作原理
在外圍設備和主存之間開辟直接的數據通路。在正常工作時,所有的工作周期均用於執行CPU的程序。當外圍設備完成I/O的准備工作后,占用CPU的工作周期,和主存直接交換數據。完成后,CPU又繼續控制總線,執行原程序。
完成這項工作的是系統中增設的DMA控制器。
DMA控制器在進行DMA傳送之前,由CPU將每次傳送的主存地址、數據的個數等參數傳送給DMA控制器,然后具體的數據傳送就由DMA控制器實現,無須CPU的參與。
缺點:
CPU需要在DMA傳送的開始和結束時參與;
每個需要進行DMA傳送的外設都要對應一個DMA控制器,且DMA控制器是由硬件實現的,不易修改。於是在大型計算機系統中通常設置專門的硬件裝置—通道。
三種方式的 CPU 工作效率比較:
觀察上圖,我們其實可以發現,程序中斷方式和DMA方式主要是針對CPU參與的兩個過程:I/O准備和數據傳送來做出改進。
中斷方式是對I/O准備做出改進,它不需要CPU不斷查詢來確認外設狀態,而是引入了中斷機制,在I/O准備好后,通過中斷請求通知CPU,而在外設准備階段,CPU是可以執行原來的主程序,也就是說CPU只參與數據傳送階段。而DMA方式更是將數據傳送階段也給省了,將數據傳送的工作交給DMA控制器,使得CPU更加專注於主程序的執行。
4、I/O通道控制方式
說通道是一種弱雞版的CPU是因為,與CPU相比,通道可以執行的指令很單一,並且通道程序是放在主機內存中的,也就是說通道與CPU共享內存。
I/O通道具有少數專用的指令系統,能實現指令所控制的操作,管轄其相應的設備控制器,所以I/O通道已具備簡單處理機的功能。但它僅僅是面向外圍設備的控制和數據的傳送,其指令系統也僅僅是幾條簡單的與I/O操作有關的命令。
I/O通道要在CPU的I/O指令指揮下啟動、停止或改變工作狀態。因此,l/O通道不是一個完全獨立的處理機,它只是從屬於CPU的一個專用I/O處理器。它的進一步發展是引入專用的輸入輸出處理機。
通道方式的出現進一步提高了CPU的效率。但需更多的硬件電路。
5、 輸入輸出處理機(IOP)方式
有單獨的存儲器和獨立的運算部件,可訪問系統的內部存儲器
除數據傳輸外,還應有以下功能:能處理傳送過程中出錯及異常情況,數據格式翻譯,數據塊校驗。
IOP方式是通道方式的進一步的發展。它們大多應用在中、大型計算機中。