IO 方式

IO 方式 Polling Interrupt DMA
优点 设计简单,硬件量少
缺点 主机外设串行工作,效率低

程序查询方式 Polling

中断方式 Interrupt

异常中断 > 处理

DMA 方式

DMA 方式 停止访存 周期挪用 交替访存
工作方式 1. DMA 请求
2. CPU 放弃总线控制权,停止访存
3. DMA 传数据
4. 归还总线控制权
CPU 在访存时才发请求
同时请求则 DMA 优先
存取周期分片
一半给 CPU
一半给 DMA
优点 控制简单 折中 传送速率高
缺点 DMA 访存时 CPU 阻塞 控制权建立归还机制复杂 硬件逻辑复杂
适用 高传输速率设备の成组传输
为什么周期挪用 DMA 优先

防止数据丢失

流程

  1. 预处理
    1. 初始化
      1. 寄存器
      2. 传输方向
      3. 测试启动设备
    2. 外设发出 DMA 请求
  2. 数据传输 循环实现,完全由 DMA 硬件实现
  3. 后处理
    1. DMA 控制器中断请求做后处理
      1. 数据校验

注意

  1. DMA 请求
    1. DMA 请求: 外设 $\to$ DMAC
    2. 总线请求: DMAC $\to$ CPU
      1. 总线请求请求的是总线控制权
      2. 总线请求的
        • 响应时机是 机器周期/存取周期/总线周期/流水线段长 末
        • 处理时机是挪用 CPU 的 存取周期
Warning

  1. CPU 用于 DMA I/O 的时间
  • 不包括传输时间,因为传输由 DMA 硬件线路负责
  • 只计算预处理+后处理
DMA vs. 中断

IO 方式 DMA 中断
现场保护 ❌ 不需要 ✅ 需要
CPU 介入 ❌ 无 CPU 介入,完全 DMA 硬件完成 ✅ 需要 CPU 介入
请求响应时机 总线周期末 EX 末
请求优先级
传输方式 硬件传输 软件传输