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

來源:互聯網
上載者:User

標籤:i/o   基本概念   

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。



本文出自 “LinuxQt濟南高新區” 部落格,請務必保留此出處http://qtlinux.blog.51cto.com/3052744/1579883

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.