计算机组成原理(7)输入输出系统 DMA 程序中断

信息交换

CPU管理外设有一下方式:

  • 程序查询方式
  • 程序中断方式
  • 直接内存访问(DMA)方式
  • 通道方式
  • 外围处理机(PPU)方式
    计算机组成原理(7)输入输出系统 DMA 程序中断
    这四种方法对应上述四种方式
  • 程序查询
    数据在CPU与外设之间 全靠计算机控制
    浪费CPU
  • 程序中断
    外围设备主动通知CPU。就是一致学习的中断请求
    比系统查询好,但是开销大
  • DMA直接内存访问
    完全由硬件执行IO交换。DMA完全接管总线控制。数据交换不仅过CPU,直接在内存与外设之间。传输速度受内存访问时间限制,适用于内存与高速外围设备之间的大批次交换场景
  • 通道
    CPU将权力下放给通道。通道时特殊的处理器,其中有应用称为输入输出处理器(IOP),实现对外围设备统一管理。提高CPU效率但是硬件代价增加。
  • 外围处理机
    ppu时通道的进一步发展。ppu独立于主机工作,类似于微小的计算机。这种系统变成了分布式多机系统

程序查询与程序中断适合传输速率小的设备,单片机,微型计算机。而DMA,通道,ppu适用于传输速率高设备,大中型计算机中。计算机组成原理(7)输入输出系统 DMA 程序中断

程序中断方式

计算机组成原理(7)输入输出系统 DMA 程序中断

计算机组成原理(7)输入输出系统 DMA 程序中断
中断PC就保存之前的信息,子程序就保护CPU现场。

DMA方式

完全由硬件执行,DMA控制器完全接管总线控制。数据不经过CPU,直接内存与外设访问

操作过程:

  • 程序发送DMA请求
  • CPU切换为DMA工作模式,DMA控制器接管总线
  • DMA对内存操作
  • 向CPU报告DMA的结束
    DMA方式 数据传送前,结束后的管理工作均有管理程序完成,DMA控制器仅负责数据传送工作

DMA与CPU分时使用内存的三种方式

  • 停止CPU访问内存
    整个过程CPU放弃总线控制,交给DMA控制器。数据传输完毕后DMA通知CPU可是使用内存 。并把控制权交还CPU

  • 周期挪用
    IO设备没有DMA请求,CPU按程序要求访问内存。一旦有了DMA请求,IO挪用内存周期。
    产生IO于CPU冲突后,IO优先,因为IO有访问时间要求

  • DMA与CPU交替进行
    如果CPU工作周期比内存存取周期长很多,交替的方式可以提高DMA,CPU两者的效率