首先需要先了解一下設備控制器的概念:
設備控制器是處理 CPU 傳入和傳出信號的系統。設備通過插頭和插座連接到計算機,并且插座連接到設備控制器。設備控制器從連接的設備處接收數據,并將其存儲在控制器內部的一些特殊目的寄存器(special purpose ) 也就是本地緩沖區中。
特殊用途寄存器,顧名思義是為一項任務而設計的寄存器。例如,cs,ds,gs 和其他段寄存器屬于特殊目的寄存器,因為它們的存在是為了保存段號。 eax,ecx 等是一般用途的寄存器,因為你可以無限制地使用它們。 例如,你不能移動 ds,但是可以移動 eax,ebx。
·通用目的寄存器比如有:eax、ecx、edx、ebx、esi、edi、ebp、esp
·特殊目的寄存器比如有:cs、ds、ss、es、fs、gs、eip、flag
每個設備控制器都會有一個應用程序與之對應,設備控制器通過應用程序的接口通過中斷與操作系統進行通信。設備控制器是硬件,而設備驅動程序是軟件。
文章相對比較長,字數比較多,大家可以先打開頭像關注我,之后慢慢看,///插播一條:我自己在今年年初錄制了一套還比較系統的入門單片機教程,想要的同學找我拿就行了免費的,私信我就可以哦~點我頭像左下角黑色字體加我也能領取哦。最近比較閑,帶做畢設,帶學生參加省級或以上比賽///
I/O 設備通常由機械組件( )和電子組件( )構成。電子組件被稱為 設備控制器(device )或者 適配器(adapter)。在個人計算機上,它通常采用可插入(PCIe)擴展插槽的主板上的芯片或印刷電路卡的形式。
機械設備就是它自己,它的組成如下:
制器卡上通常會有一個連接器,通向設備本身的電纜可以插入到這個連接器中,很多控制器可以操作 2 個、4 個設置 8 個相同的設備。
I/O控制器是控制計算機輸入輸出的一個最基本的控制系統,可指揮計算機的各個部件按照指令的功能要求協調工作的部件。它由指令寄存器IR()、程序計數器PC()和操作控制器OC()三個部件組成,對協調整個電腦有序工作極為重要。
下面小編就從功能和控制方式兩個方面帶大家進一步了解I/O控制器,想學習的客戶朋友就一起看下去吧,絕對干貨哦!
2、I/O控制器的功能
● 接收設備CPU指令:CPU的讀寫指令和參數存儲在控制寄存器中
● 向CPU報告設備的狀態:I/O控制器中會有相應的狀態寄存器,用于記錄I/O設備的當前狀態。(比如1代表設備忙碌,0代表設備就緒)
● 數據交換:數據寄存器,暫存CPU發來的數據和設備發來的數據,之后將數據發給控制寄存器或CPU。
● 地址識別:類似于內存的地址,為了區分設備控制器中的各個寄存器,需要給各個寄存器設置一個特定的地址。I/O控制器通過CPU提供的地址來判斷CPU要讀寫的是哪個寄存器。
這里向大家簡單介紹常見的幾種I/O控制方式,包括程序直接控制方式、中斷驅動方式、DMA(直接存儲方式)、通道控制方式。
控制器與設備之間的接口通常是一個低層次的接口。例如,磁盤可能被格式化為 2,000,000 個扇區,每個磁道 512 字節。然而,實際從驅動出來的卻是一個串行的比特流,從一個前導符()開始,然后是一個扇區中的 4096 位,最后是一個校驗和 或 ECC(錯誤碼,Error- Code)。前導符是在對磁盤進行格式化的時候寫上去的,它包括柱面數和扇區號,扇區大小以及類似的數據,此外還包含同步信息。
控制器的任務是把串行的位流轉換為字節塊,并進行必要的錯誤校正工作。字節塊通常會在控制器內部的一個緩沖區按位進行組裝,然后再對校驗和進行校驗并證明字節塊沒有錯誤后,再將它復制到內存中。
內存映射 I/O
每個控制器都會有幾個寄存器用來和 CPU 進行通信。通過寫入這些寄存器,操作系統可以命令設備發送數據,接收數據、開啟或者關閉設備等。通過從這些寄存器中讀取信息,操作系統能夠知道設備的狀態,是否準備接受一個新命令等。
為了控制寄存器,許多設備都會有數據緩沖區(data buffer),來供系統進行讀寫。例如,在屏幕上顯示一個像素的常規方法是使用一個視頻 RAM,這一 RAM 基本上只是一個數據緩沖區,用來供程序和操作系統寫入數據。
那么問題來了,CPU 如何與設備寄存器和設備數據緩沖區進行通信呢?存在兩個可選的方式。第一種方法是,每個控制寄存器都被分配一個 I/O 端口(I/O port)號,這是一個 8 位或 16 位的整數。所有 I/O 端口的集合形成了受保護的 I/O 端口空間,以便普通用戶程序無法訪問它(只有操作系統可以訪問)。使用特殊的 I/O 指令像是
IN REG,PORT
CPU 可以讀取控制寄存器 PORT 的內容并將結果放在 CPU 寄存器 REG 中。類似的,使用
OUT PORT,REG
CPU 可以將 REG 的內容寫到控制寄存器中。大多數早期計算機,包括幾乎所有大型計算機,如 IBM 360 及其所有后續機型,都是以這種方式工作的。
控制寄存器是一個處理器寄存器而改變或控制的一般行為 CPU 或者其他數字設備。控制寄存器執行的常見任務包括中斷控制,切換尋址模式,分頁控制和協處理器控制。
對單片機感興趣的朋友可以找我,我錄制了一些關于單片機的入門教程,有需要的童鞋找我拿就行,免費的,私信我“林老師”就可以拿~點擊打開我的頭像就能領取