什么是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信号以请求使用总线。然后重复相同的过程,直到最后一次传输。
- 当传输计数用尽时,将生成终端计数以指示传输结束。
广告