設備控制器的基本功能
控制器的作用是控制和協調整個計算機的動作控制通常需要程序計數器(PC)、指令寄存器(IR)、指令譯碼器(ID)、定時與控制電路以及脈沖源、中斷等共同完成。控制器由:指令寄存器Instruction Register、指令譯碼器Instruction Decoder、定時與控制電路Programmable Logic Array、程序計數器Program Counter、标志寄存器Flags Register、堆棧和堆棧指針Stack Pointer、寄存器組等構成。
接收和識别命令
CPU可以向控制器發送多種不同的命令,設備控制器應能接收并識别這些命令。為此,在控制器中應具有相應的控制寄存器,用來存放接收的命令和參數,并對所接收的命令進行譯碼。例如,磁盤控制器可以接收CPU發來的Read、Write、Format等15條不同的命令,而且有些命令還帶有參數;相應地,在磁盤控制器中有多個寄存器和命令譯碼器等。
數據交換
這是指實現CPU與控制器之間、控制器與設備之間的數據交換。對于前者,是通過數據總線,由CPU并行地把數據寫入控制器,或從控制器中并行地讀出數據;對于後者,是設備将數據輸入到控制器,或從控制器傳送給設備。為此,在控制器中須設置數據寄存器。
标識和報告設備的狀态
控制器應記下設備的狀态供CPU了解。例如,僅當該設備處于發送就緒狀态時,CPU才能啟動控制器從設備中讀出數據。為此,在控制器中應設置一狀态寄存器,用其中的每一位來反映設備的某一種狀态。當CPU将該寄存器的内容讀入後,便可了解該設備的狀态。
地址識别
就像内存中的每一個單元都有一個地址一樣,系統中的每一個設備也都有一個地址,而設備控制器又必須能夠識别它所控制的每個設備的地址。此外,為使CPU能向(或從)寄存器中寫入(或讀出)數據,這些寄存器都應具有唯一的地址。例如,在IB-MPC機中規定,硬盤控制器中各寄存器的地址分别為320~32F之一。控制器應能正确識别這些地址,為此,在控制器中應配置地址譯碼器。
數據緩沖
由于I/O設備的速率較低而CPU和内存的速率卻很高,故在控制器中必須設置一緩沖器。在輸出時,用此緩沖器暫存由主機高速傳來的數據,然後才以I/O設備所具有的速率将緩沖器中的數據傳送給I/O設備;在輸入時,緩沖器則用于暫存從I/O設備送來的數據,待接收到一批數據後,再将緩沖器中的數據高速地傳送給主機。
差錯控制
設備控制器還兼管對由I/O設備傳送來的數據進行差錯檢測。若發現傳送中出現了錯誤,通常是将差錯檢測碼置位,并向CPU報告,于是CPU将本次傳送來的數據作廢,并重新進行一次傳送。這樣便可保證數據輸入的正确性。
設備控制器的組成
設備控制器與處理機的接口
該接口用于實現CPU與設備控制器之間的通信。共有三類信号線:數據線、地址線和控制線。數據線通常與兩類寄存器相連接,第一類是數據寄存器(在控制器中可以有一個或多個數據寄存器,用于存放從設備送來的數據(輸入)或從CPU送來的數據(輸出));第二類是控制/狀态寄存器(在控制器中可以有一個或多個這類寄存器,用于存放從CPU送來的控制信息或設備的狀态信息)。
設備控制器與設備的接口
在一個設備控制器上,可以連接一個或多個設備。相應地,在控制器中便有一個或多個設備接口,一個接口連接一台設備。在每個接口中都存在數據、控制和狀态三種類型的信号。控制器中的I/O邏輯根據處理機發來的地址信号去選擇一個設備接口。
I/O邏輯
在設備控制器中的I/O邏輯用于實現對設備的控制。它通過一組控制線與處理機交互,處理機利用該邏輯向控制器發送I/O命令;I/O邏輯對收到的命令進行譯碼。每當CPU要啟動一個設備時,一方面将啟動命令發送給控制器;另一方面又同時通過地址線把地址發送給控制器,由控制器的I/O邏輯對收到的地址進行譯碼,再根據所譯出的命令對所選設備進行控制。



















