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