计算机组成原理——DMA的传送方式和传送过程

1,141 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

上篇文章介绍了DMA,本文主要介绍DMA的传送方式和传送过程。

DMA的传送方式

主存和DMA控制器之间有一条数据通路,因此主存和IO设备之间交换信息时,不通过CPU。但是当IO设备和CPU同时访问主存时可能发生冲突,我们介绍下DMA如何与CPU使用主存

  • 停止CPU访问主存
  • DMA与CPU交替访问主存:适用于CPU工作周期远大于主存存取周期的情况,将一个CPU周期分为两份,一份专门用于DMA访问内存,另一份用于CPU访问内存。相对于上一种方法,不需要总线使用权的申请,建立和归还,省下了时间。
  • 周期挪用:同时冲突DMA优先,CPU正在访存时有需求,则下个周期给DMA,如果同时请求,则借用给DMA几个周期,其余时间CPU占用内存。

DMA的传送过程

image.png

DMA方式和中断方式的区别

  • 中断方式是程序的切换,需要保护和恢复现场;而DMA方式除了预处理和后处理,其他时候不占用CPU的任何资源。
  • 对中断请求的响应只能发生在每条指令执行完毕时(即指令的执行周期后);而对DMA请求的响应可以发生在每个机器周期结束时(在取指周期、间址周期、执行周期后均可),只要CPU不占用总线就可被响应。
  • 中断传送过程需要CPU的干预;而DMA传送过程不需要CPU的干预,因此数据传输率非常高,适合于高速外设的成组数据传送。
  • DMA请求的优先级高于中断请求。
  • 中断方式具有对异常事件的处理能力,而 DMA方式仅局限于传送数据块的IO操作。从数据传送来看,中断方式靠程序传送,DMA方式靠硬件传送。