歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Linux編程基礎--什麼是I/O

Linux編程基礎--什麼是I/O

日期:2017/3/1 9:37:04   编辑:Linux編程

I/O是input/output的縮寫,即輸入輸出端口。每個設備都會有一個專用的I/O地址,用來處理自己的輸入輸出信息。CPU與外部設備、存儲器的連接和數據交換都需要通過接口設備來實現,前者被稱為I/O接口,而後者則被稱為存儲器接口。存儲器通常在CPU的同步控制下工作,接口電路比較簡單;而I/O設備品種繁多,其相應的接口電路也各不相同,因此,習慣上說到接口只是指I/O接口。

1接口分類編輯

I/O接口的功能是負責實現CPU通過系統總線把I/O電路和外圍設備聯系在一起,按照電路和設備的復雜程度,I/O接口的硬件主要分為兩大類:

(1)I/O接口芯片

這些芯片大都是集成電路,通過CPU輸入不同的命令和參數,並控制相關的I/O電路和簡單的外設作相應的操作,常見的接口芯片如定時計數器、中斷控制器、DMA控制器、並行接口等。

(2)I/O接口控制卡

由若干個集成電路按一定的邏輯組成為一個部件,或者直接與CPU同在主板上,或是一個插件插在系統總線插槽上。

按照接口的連接對象來分,又可以將他們分為串行接口、並行接口、鍵盤接口和磁盤接口等。

2接口功能編輯

由於計算機的外圍設備品種繁多,幾乎都采用了機電傳動設備,因此,CPU在與I/O設備進行數據交換時存在以下問題:

速度不匹配:I/O設備的工作速度要比CPU慢許多,而且由於種類的不同,他們之間的速度差異也很大,例如硬盤的傳輸速度就要比打印機快出很多。

時序不匹配:各個I/O設備都有自己的定時控制電路,以自己的速度傳輸數據,無法與CPU的時序取得統一。

信息格式不匹配:不同的I/O設備存儲和處理信息的格式不同,例如可以分為串行和並行兩種;也可以分為二進制格式、ASCII編碼和BCD編碼等。

信息類型不匹配:不同I/O設備采用的信號類型不同,有些是數字信號,而有些是模擬信號,因此所采用的處理方式也不同。

基於以上原因,CPU與外設之間的數據交換必須通過接口來完成,通常接口有以下一些功能:

(1)設置數據的寄存、緩沖邏輯,以適應CPU與外設之間的速度差異,接口通常由一些寄存器或RAM芯片組成,如果芯片足夠大還可以實現批量數據的傳輸;

(2)能夠進行信息格式的轉換,例如串行和並行的轉換;

(3)能夠協調CPU和外設兩者在信息的類型和電平的差異,如電平轉換驅動器、數模或模數轉換器等;

(4)協調時序差異;

(5)地址譯碼和設備選擇功能;

(6)設置中斷和DMA控制邏輯,以保證在中斷和DMA允許的情況下產生中斷和DMA請求信號,並在接受到中斷和DMA應答之後完成中斷處理和DMA傳輸。

3控制方式編輯

CPU通過接口對外設進行控制的方式有以下幾種:

(1)程序查詢方式

這種方式下,CPU通過I/O指令詢問指定外設當前的狀態,如果外設准備就緒,則進行數據的輸入或輸出,否則CPU等待,循環查詢。

這種方式的優點是結構簡單,只需要少量的硬件電路即可,缺點是由於CPU的速度遠遠高於外設,因此通常處於等待狀態,工作效率很低

(2)中斷處理方式

在這種方式下,CPU不再被動等待,而是可以執行其他程序,一旦外設為數據交換准備就緒,可以向CPU提出服務請求,CPU如果響應該請求,便暫時停止當前程序的執行,轉去執行與該請求對應的服務程序,完成後,再繼續執行原來被中斷的程序。

中斷處理方式的優點是顯而易見的,它不但為CPU省去了查詢外設狀態和等待外設就緒所花費的時間,提高了CPU的工作效率,還滿足了外設的實時要求。但需要為每個I/O設備分配一個中斷請求號和相應的中斷服務程序,此外還需要一個中斷控制器(I/O接口芯片)管理I/O設備提出的中斷請求,例如設置中斷屏蔽、中斷請求優先級等。

此外,中斷處理方式的缺點是每傳送一個字符都要進行中斷,啟動中斷控制器,還要保留和恢復現場以便能繼續原程序的執行,花費的工作量很大,這樣如果需要大量數據交換,系統的性能會很低。

(3)DMA(直接存儲器存取)傳送方式

DMA最明顯的一個特點是它不是用軟件而是采用一個專門的控制器來控制內存與外設之間的數據交流,無須CPU介入,大大提高CPU的工作效率。

在進行DMA數據傳送之前,DMA控制器會向CPU申請總線控制權,CPU如果允許,則將控制權交出,因此,在數據交換時,總線控制權由DMA控制器掌握,在傳輸結束後,DMA控制器將總線控制權交還給CPU。

Copyright © Linux教程網 All Rights Reserved