操作系统之I/O控制器
一、概念
- CPU无法直接控制I/O设备的机械部件,因此I/O设备还要有一个电子部件作为CPU和IO设备机械部件之间的中介,用于实现CPU对设备的控制。
- 这个电子部件就是IO控制器,又叫设备控制器。CPU可控制IO控制器,又由IO控制器来控制设备的机械部件。
二、功能
1. 接受和识别CPU发出的命令
- 如CPU发出的read/write命令,IO控制器中会有相应的控制寄存器来存放命令和参数。
2. 向CPU报告设备的状态
- IO控制器中会有相应的状态寄存器用于记录IO设备的当前状态。如:1表示空闲,0表示忙碌。
3. 数据交换
- IO控制器中会设置相应的数据寄存器。
- 输出时,数据寄存器暂存CPU发出的数据,之后再有控制器传送设备。
- 输入时,数据寄存器暂存设备发出的数据,之后CPU从数据寄存器中取走数据。
4. 地址识别
- CPU发送读写控制器的寄存器时,会发送地址。(为了区分设备控制器中的各个寄存器,需要给各个寄存器设置一个特定的地址)
- IO控制器需要通过CPU提供的特定地址,来判断CPU要读写的是哪个寄存器。
三、IO控制器组成

1. CPU与控制器的接口
- 当CPU要读入或写出时,会通过控制线向I/O逻辑发出命令。
- CPU还需要通过地址线,指定要操作的设备。
- CPU要读入或写出的数据,会通过数据寄存器暂存。
- 控制寄存器会存储CPU对读写过程的控制指令。
- 状态寄存器用于暂存设备的状态,CPU可以通过该寄存器获取设备为忙碌状态/空闲状态。
2. I/O逻辑
- 负责接收和识别CPU的各种命令(如地址译码),并负责对设备发出命令。
3. 控制器与设备的接口
- 通过该接口向设备输入/输出数据
- 获取设备状态(忙碌/空闲)
- 向设备发出控制信息