对输入输出,需要解决的问题有:
- 控制方式(输入输出方式):CPU如何控制输入输出?
- 传输方式:传输通道、方式、速率等
- 数据识别和转换
输入/输出方式
程序直接控制
例如读串口,直接使用汇编指令来查询接口状态并且读取:
特点是成本低,但也效率低,严重占用CPU资源(等待读取的时候CPU无法进行其他操作)
程序中断
外部设备在希望CPU处理的时候发出请求,CPU接到请求,中断正在进行的程序进行响应,处理完成后恢复原来的程序
在没有请求时,CPU和外设可以并行工作
中断中涉及的一些概念:
- 中断源
- 外部中断:I/O设备等
- 内部中断(异常):处理器硬件故障、程序出错、陷阱
- 中断触发器
- 中断状态寄存器
- 中断优先级
- 表明响应中断的顺序
- 禁止中断与中断屏蔽
- CPU设有中断允许触发器
- 可以有选择封锁一些不希望响应的中断
中断的完整过程:
- 中断源设备设置中断触发器,发出中断请求
- CPU根据当前是否允许中断、中断的优先级,等待当前指令结束后相应中断
- CPU保存现场信息之后运行中断处理程序,然后从中断返回
直接存储访问(DMA)
直接在IO设备和主存之间成组传输数据,然后由CPU访问主存得到外设数据