什么是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信号被重新声明以请求使用总线。然后重复相同的过程,直到最后一次传输。
当传输计数用完时,生成终端计数以指示传输结束。
评论列表