对输入输出,需要解决的问题有:

  • 控制方式(输入输出方式):CPU如何控制输入输出?
  • 传输方式:传输通道、方式、速率等
  • 数据识别和转换

输入/输出方式

程序直接控制

例如读串口,直接使用汇编指令来查询接口状态并且读取:

image-20241222115316241

特点是成本低,但也效率低,严重占用CPU资源(等待读取的时候CPU无法进行其他操作)

程序中断

外部设备在希望CPU处理的时候发出请求,CPU接到请求,中断正在进行的程序进行响应,处理完成后恢复原来的程序

在没有请求时,CPU和外设可以并行工作

中断中涉及的一些概念:

  • 中断源
    • 外部中断:I/O设备等
    • 内部中断(异常):处理器硬件故障、程序出错、陷阱
    • 中断触发器
    • 中断状态寄存器
  • 中断优先级
    • 表明响应中断的顺序
  • 禁止中断与中断屏蔽
    • CPU设有中断允许触发器
    • 可以有选择封锁一些不希望响应的中断

中断的完整过程:

  • 中断源设备设置中断触发器,发出中断请求
  • CPU根据当前是否允许中断、中断的优先级,等待当前指令结束后相应中断
  • CPU保存现场信息之后运行中断处理程序,然后从中断返回

直接存储访问(DMA)

直接在IO设备和主存之间成组传输数据,然后由CPU访问主存得到外设数据

通道控制方式

image-20241222124238322