什么是DMA?


DMA 代表直接内存访问。它是一种硬件控制的数据传输技术。使用外部设备来控制数据传输。外部设备生成控制数据传输所需的地址和控制信号。外部设备还允许外围设备直接访问内存。控制数据传输的外部设备称为DMA控制器。

DMA空闲周期

当系统打开时,开关处于A位置。处理器开始执行程序,直到它需要从磁盘读取信息块。磁盘处理器将一系列命令传输到磁盘控制器,以搜索并从磁盘读取所需的信息块。

当磁盘控制器准备好从磁盘传输信息时,它会将DMA请求(DRQ)信号传输到DMA控制器。因此,DMA控制器向处理器HOLD输入发送HOLD信号。

处理器通过暂停总线并传输HLDA确认信号来响应此信号。当DMA控制器获得HLDA信号时,它会传输控制信号以将开关位置从A修改为B。

DMA活动周期

当DMA控制器接收总线的控制权时,它会传输磁盘第一个信息字节要写入的内存地址。它还会向磁盘控制器设备传输DMA确认(DACK)信号,指示它准备好传输输出字节。

循环窃取模式

在这种数据传输模式下,设备只能进行一次传输(字节或字)。每次传输后,DMAC都将所有总线的控制权交还给处理器。这是一种单次传输模式,过程如下:

  • I/O设备在其准备好传输数据时激活DRQ线路。
  • DMAC激活HLDA线路以请求处理器使用总线。
  • 处理器激活HLDA,授予DMAC对总线的控制权。
  • DMAC向请求I/O设备激活DACK,并执行DMA总线周期,从而导致数据传输。
  • I/O设备在传输一个字节或字的数据后,取消激活其DRQ。
  • DMA取消激活DACK线路。
  • 字/字节传输计数递减,内存地址递增。
  • HOLD线路被取消激活,将所有总线的控制权交还给处理器。
  • 当I/O设备准备好传输另一个字节或字时,重新激活HOLD信号以请求使用总线。然后重复相同的过程,直到最后一次传输。
  • 当传输计数用尽时,将生成终端计数以指示传输结束。

更新于: 2021年7月27日

15K+ 浏览量

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告