什么是DMA?

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

DMA 空闲周期

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

当磁盘控制器准备好从磁盘传输信息时,它会向 DMA 控制器传输 DMA 请求 (DRQ) 信号。因此,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 信号被重新声明以请求使用总线。然后重复相同的过程,直到最后一次传输。

  • 当传输计数用完时,生成终端计数以指示传输结束。

以上是 什么是DMA? 的全部内容, 来源链接: utcz.com/z/311438.html

回到顶部