1 DMA系统简介
DMA(direct memory access)是一种外设与存储器或者存储器与存储器之间直接传输数据的方式,在进行DMA存取时,CPU让出总线控制权,不在采用输入输出指令的方法进行数据存取,而采用一个专门的硬件DMAC(Direct Memory Access Control)控制电路,减少了中间环节,从而提高了传输速率。
1.1 DMA基本原理
DMA直接实现I/O与存储器之间的数据传送。
①当I/O接口准备好,希望进行DMA操作时,就像DMAC发出DMA请求信号DRQ(DMA Request)
②DMAC将此请求信号转变成对CPU的总线请求信号(Hold Request)
③CPU当前总线执行周期结束,相应DMAC操作,发出应答信号HLDA(Hold Acknowledgment),此时,由DMAC接管对总线的控制
④由DMAC对存储器寻址,并发出相应的控制信号(DACK,/RD,/WR),使存储器与I/O接口之间直接交换数据
⑤在传送一字节数据时,DMAC自动修改存储器地址和传送字节计数器,并检测传送是否结束
⑥DMA传送结束,DMAC向CPU发出结束信号(EOP),并释放总线,使得CPU重新获得总线控制,恢复正常工作