"); //-->
让DMA卡代替CPU控制在快速设备与主存储器之间直接传输数据,此时每传输一个数据只需一个总线周期即可。从共同使用总线的角度看,DMA和CPU成为竞争对手关系。当完成一批数据传输之后,快速设备还是要向CPU发一次中断请求,报告本次传输结束的同时,"请示"下一步的操作要求。
DMA 传送方式的优先级高于程序中断,两者的区别主要表现在对CPU的干扰程度不同。程序中断请求不但使CPU停下来,而且要CPU执行中断服务程序为中断请求服务,这个请求包括了对断点和现场的处理以及CPU与外设的传送,所以CPU付出了很多的代价;DMA请求仅仅使CPU暂停一下,不需要对断点和现场的处理,并且是由DMA控制外设与主存之间的数据传送,无需CPU的干预,DMA只是借用了一点CPU的时间而已。还有一个区别就是,CPU对这两个请求的响应时间不同,对程序中断请求一般都在执行完一条指令的时钟周期末尾响应,而对DMA的请求,由于考虑它的高效性,CPU在每条指令执行的各个阶段之中都可以让给DMA使用,是立即响应。 DMA主要由硬件来实现,此时高速外设和内存之间进行数据交换不通过CPU的控制,而是利用系统总线。DMA方式是I/O系统与主机交换数据的主要方式之一,另外还有程序查询方式和中断方式。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。