前面提到的程序查询方式和中断方式都是通过微处理器执行指令来实现对外设的数据传送的。前者是由微处理器不断读取I/O端口寄存器的状态,后者是在满足条件时响应中断,并且尽管中断方式比程序查询方式占用CPU的时间要少些,但是采用中断方式的时候,微处理器要保留现场断点(下一条指令的地址以及所有标志位入栈),这样,中断请求与响应花费的时间、执行数据块传送指令进行地址增量和计数器减量的时间,这些额外的时间加起来,和有效的数据传送指令相比,花费时间仍然很多,因此影响了微计算机输入输出效率。比较高效的是下面提到的方式――直接存储器存取。

  直接存储器存取(DMA)的控制方式是由DMA控制器来实现对存储器的直接访问,控制存储器和I/O设备之间的数据传送的,并不经过CPU,传输过程中CPU不占用总线。这样,传输时就不需要保存断点等等额外操作了。当然也不需要像程序查询方式那样。它克服了中断与程序查询方法的弊端。在数据块传送时,每传送一个字节,存储器的地址就增加一,所要传送的字节数就减少一。在直接存储器存取这种控制方式下,整个控制数据块传送的过程,包括地址增量和计数器减量的操作,都是由硬件控制完成的,而不像前面提到的方式要依靠软件编程来实现。因而大大缩短了数据传送的控制时间。控制时间和数据传送时间的比值,较前两种方法都要小得多,也就提高了整个系统的处理效率。