如果系统中同时具有微处理器和DMA控制器,DMA就是另外一个总线主。然而,在微处理器控制总线的期间内,DMA处在从属状态或空闲状态,DMA在编程周期为从属设备。在DMA需要控制传送的时候便向CPU请求使用总线,DMA一旦获得总线的控制权,就成了总线的主设备,而CPU则进入空闲状态。每个周期之内,系统中只能有一个总线主设备。
图3-13所示的DMA传送工作过程: :I/O设备向DMA控制器发出DMA请求。通过后面进一步的学习可以知道,一个DMA控制器可以连接多个I/O设备,如果设备申请DMA的通道没有被屏蔽,DMA控制器就会处理该请求,进入。 :DMA控制器检测到来自外设的请求信号后,便向CPU发出总线请求,要求获得总线的控制权。 :CPU响应DMA控制器的请求。在向DMA控制器发出应答信号的同时,CPU交出总线的控制权给DMA控制器。此时,DMA成为系统的总线主设备。 :DMA通知I/O外设,开始DMA数据传输。 |