45,155
次編輯
變更
控制器
,無編輯摘要
==基本功能==
===数据缓冲:===
由于I/O设备的 [[ 速率 ]] 较低而CPU和内存的速率却很高,故在控制器中必须设置一缓冲器。在输出时,用此缓冲器暂存由主机高速传来的 [[ 数据 ]] ,然后才以I/O设备所具有的速率将缓冲器中的数据传送给I/O设备;在输入时,缓冲器则用于暂存从I/O设备送来的数据,待接收到一批数据后,再将缓冲器中的数据高速地传送给主机。
===地址识别:===
就像内存中的每一个单元都有一个地址一样,系统中的每一个设备也都有一个地址,而设备控制器又必须能够识别它所控制的每个设备的地址。此外,为使CPU能向(或从) [[ 寄存器 ]] 中写入(或读出)数据,这些寄存器都应具有唯一的地址。
===状态说明:===
标识和报告设备的状态控制器应记下设备的状态供CPU了解。例如,仅当该设备处于发送就绪状态时,CPU才能启动控制器从设备中读出数据。为此,在控制器中应设置一状态寄存器,用其中的每一位来反映设备的某一种状态。当CPU将该寄存器的内容读入后,便可了解该设备的状态。
===差错控制:===
设备控制器还兼管对由I/O设备传送来的数据进行差错检测。若发现 [[ 传送 ]] 中出现了错误,通常是将差错检测码置位,并向 CPU报告,于是CPU将本次传送来的数据作废,并重新进行一次传送。这样便可保证数据输入的正确性。
===接收和识别命令:===
CPU可以向控制器发送多种不同的命令,设备控制器应能接收并识别这些命令。为此,在控制器中应具有相应的控制寄存器,用来存放接收的命令和参数,并对所接收的命令进行译码。例如, [[ 磁盘 ]] 控制器可以接收CPU发来的Read、Write、Format等15条不同的命令,而且有些命令还带有 [[ 参数 ]] ;相应地,在磁盘控制器中有多个寄存器和命令译码器等。
==新的格局==