I-O控制器
I/O设备:
- 机械部件
- 电子部件(I/O控制器或称设备控制器)
I/O设备的机械部件主要用来执行具体I/O操作,如我们看得见摸得着的鼠标/键盘的按钮、显示器的LED屏、移动硬盘的磁臂、磁盘盘面
I/O设备的电子部件通常是一块插入主板扩充槽的印刷电路板
I/O控制器(用于实现对I/O设备的控制)
CPU无法直接控制I/O设备的机械部件,因此I/O设备还要有一个电子部件作为CPU和I/O设备机械部件之间的中介,用于实现CPU对设备的控制,这个电子部件就是I/O控制器,又称设备控制器,CPU可控制I/O控制器,又由I/O控制器来控制设备的机械部件
I/O控制器的功能
- 接受和识别CPU发出的命令:如CPU发来的read/write命令,I/O控制器中会有相应的控制寄存器来存放命令和参数
- 向CPU报告设备的状态:I/O控制器中会有相应的状态寄存器,用于记录I/O设备的当前状态,如1表示空闲,0表示忙碌
- 数据交换:I/O控制器会设置相应的数据寄存器,输出时,数据寄存器用于暂存CPU发来的数据,之后再由控制器传送设备。输入时,数据寄存器用于暂存设备发来的数据,之后CPU从数据寄存器中取走数据
- 地址识别:类似于内存的地址,为了区分设备控制器中的各个寄存器,也需要给各个寄存器设置一个特定的地址,I/O控制器通过CPU提供的地址来判断CPU要读/写的是哪个寄存器(由I/O逻辑实现)
I/O控制器的组成
注意:
一个I/O控制器可能会对应多个设备
数据寄存器、控制寄存器、状态寄存器可能有多个(如每个控制/状态寄存器对应一个具体的设备),且这些寄存器都要有相应的地址,才能方便CPU操作。有的计算机会让这些寄存器占用内存地址的一部分,称为内存映像I/O,另一些计算机则采用I/O专用地址,即寄存器独立编址