Linux外部設備的硬件接口
計算機的外部設各通常由電氣部分和機械部分兩部分組成。電氣部分是用來(lái)控制機械部分的,因此電氣部分也叫做外部設各的控制器。
本文引用地址:http://dyxdggzs.com/article/148498.htm控制器通過(guò)計算機系統總線(xiàn)掛接到系統上?;蛘哒f(shuō),計算機系統就是通過(guò)控制器來(lái)控制和操作外部設備的。典型的方式是,把外部設各中的各個(gè)控制器看做是一組互不沖突的寄存器組,并賦予它們相應的地址,從而使處理器可以像訪(fǎng)問(wèn)存儲器一樣來(lái)訪(fǎng)問(wèn)控制器,并通過(guò)控制器來(lái)訪(fǎng)問(wèn)外部設各。
外部設各通常包含4組寄存器,即狀態(tài)寄存器、控制寄存器、數據輸入寄存器和數據輸出寄存器。這些寄存器有各自的地址,這個(gè)地址叫做端口。這些寄存器的作用分別為:
·狀態(tài)寄存器用來(lái)向處理器提供外部設備的工作狀態(tài)。例如,設各的當前操作是否執行完畢,數據是否可被讀出或寫(xiě)入以及錯誤提示等。
·控制寄存器是被用來(lái)管理外部設備工作模式的。也就是說(shuō),在設備初始化或運行時(shí), 處理器可通過(guò)向控制寄存器寫(xiě)入命令來(lái)啟動(dòng)或改變設各工作模式。
·數據輸入寄存器和數據輸出寄存器是用來(lái)與處理器傳遞數據的。
外部設各與處理器關(guān)系示意圖如圖所示。
圖 外部設備與處理器關(guān)系示意圖
為了識別外部設各的這些寄存器,系統給這些寄存器都賦予了地址,于是外部設各寄存器占用的地址空間叫做I/O空間。對于I/O空間的處理,目前有兩種方式:一種是與存儲器統一編址,即在整個(gè)內存空間中劃出一個(gè)范圍作為I/O空間,這種方式的特點(diǎn)是處理器沒(méi)有獨立的I/O指令,而是把外部設各的寄存器作為存儲單元來(lái)對待的;另一種方式是處理器具有單獨的I/O指令,所以在這種方式中I/O地址空間是獨立編址的。不管是統一編址還是獨立編址,從邏輯上來(lái)看,外設的各寄存器就相當于一種存儲裝置,它可向處理器提供數據,也可接收處理器的數據,即處理器可對它們進(jìn)行讀/寫(xiě)操作。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論