输入输出(I/O)是计算机系统中至关重要的组成部分,它负责了CPU与外部设备之间的通信。中断机制则是I/O操作的一种高效处理方式,允许CPU在等待数据准备就绪时执行其他任务,提高了系统的效率。
I/O接口是CPU与外部设备间通信的桥梁,它的主要功能包括:
1. **I/O地址译码与设备选择**:所有外设通过I/O接口连接到系统总线上。通过I/O地址译码,CPU可以确定与哪个外设进行通信。在同一时间,只有一个外设能与CPU进行数据传输。
2. **信息的输入/输出**:CPU可以通过I/O接口从外部设备接收信息,也可以将处理结果发送出去。同时,CPU可以向接口发送命令字来控制接口和设备的操作,并监测其工作状态。接口也能向CPU发起中断请求,通知CPU数据已准备好或者有其他事件发生。
3. **命令、数据和状态的缓冲与锁存**:由于CPU与外设的速度差异,接口需要具有缓冲能力,确保数据在不同速度之间同步。CPU发送的命令和数据被暂存在接口中,同样,来自外设的信息也会被缓冲,等待CPU处理。
4. **信息转换**:接口还需要进行数据格式、电平、码制的转换,以适应不同设备的需求。例如,数字量、模拟量、开关量的转换,以及控制信号的管理。
在CPU与I/O设备间传输的信息主要有三种类型:
- **数据信息**:这是CPU和外设之间交换的基础,可以是数字量、模拟量或开关量。
- **状态信息**:反映外设当前的工作状态,如READY(准备好)、BUSY(忙),帮助协调CPU和外设的操作。
- **控制信息**:由CPU发送给外设,控制其操作,如启动和停止信号。
I/O接口通常包含数据端口、状态端口和控制端口,每个端口都有独立的地址,CPU通过地址来读写数据、状态或发出控制命令。
I/O端口的编址方式主要有两种:
1. **统一编址**:将I/O端口视为内存单元处理,用相同的地址和指令进行访问。优点是访问灵活,但可能减少内存的可用地址,并且无法直接区分内存操作和I/O操作。
2. **独立编址**:内存和外设地址空间分开,有专门的I/O指令。优点是程序清晰,I/O指令执行速度快,但需要额外的控制信号和专门的I/O指令,增加了指令系统的复杂性。
在实际的微机系统中,如Intel MCS-51和8086/8088,会根据设计需求选择不同的编址方式来平衡灵活性和效率。