CPU与IO设备数据交互方式

CPU与IO设备交互

CPU与IO设备的数据交换方式主要有程序查询方式、程序中断方式以及DMA方式三种。

程序查询方式

CPU按照IO设备的优先级按序查询IO设备是否已有数据准备就绪。

程序中断方式

当IO设置有数据准备就绪时,就向操作系统发起中断信号,然后又操作系统启动中断处理程序,来响应IO设备。

DMA方式

DMA,全称为Direct Memory Access,直接内存存取。DMA传输将数据从一个地址空间复制到另外一个地址空间。当CPU初始化这个传输动作,传输动作本身是由DMA 控制器来实行和完成。在实现DMA传输时,是由DMA控制器直接掌管总线,因此,存在着一个总线控制权转移问题。即DMA传输前,CPU要把总线控制权交给DMA控制器,而在结束DMA传输后,DMA控制器应立即把总线控制权再交回给CPU。

简单来说,有了DMA控制器,在使用DMA控制器将IO设备的数据复制到内存时,就不需要CPU去执行任何指令啦,CPU继续做其他的工作,完全交由DMA控制器来处理(相当于DMA控制器在执行指令进行数据的复制操作)。下图是程序中断方式和DMA方式的区别示意图:

学习资料参考于:
唐朔飞版《计算机组成原理》