cpu与外设进行数据交换的方式
程序查询方式
信息交换的控制完全由主机执行程序实现,主机一直询问设备有没有准备好,读取设备的状态决定数据传送还是等待。
该方式下,cpu需要“踏步等待”,cpu与 I/O 串行工作。
设计简单,设备少,但是效率低。
中断方式
计算机在执行现有程序时,暂时中止现有程序的执行,转去对其他程序的处理,在处理完毕后CPU又返回到现有程序的断点处,继续执行原有程序。
cpu在某一时刻启动外设,然后CPU继续执行原有程序,不用等外设,外设准备好了之后,向cpu发出中断请求,请求cpu为自己服务。在可以响应中断的情况下,CPU暂时中止现有程序,转去执行中断服务程序为外设服务,在中断服务程序中完成一次主机与外设之间的数据传送,传送完成后,CPU返回原来的程序。
1.中断隐指令
不是指令,是硬件实现的。它需要做的一些操作:1)关中断,为了保护中断不被打扰,首先需要关中断;2)保护断点,程序的断点(PC的内容)保存起来。3)引出中断服务程序,把中断服务程序的入口地址传送给程序计数器。
2. 中断向量
中断服务程序的入口地址。
3.寻址中断服务程序的方法
硬件向量法和软件查询。硬件产生的实际是中断类型号,软件查询是通过软件编程的方法寻找入口地址。
4.中断处理流程
关中断->保存断点->引入中断服务程序->保存现场和屏蔽字 ->开中断(允许中断嵌套)->执行中断服务程序->关中断(恢复现场和屏蔽字时候不能被打扰)->恢复现场和屏蔽字 ->开中断、中断返回
DMA方式
完全由硬件进行成组信息传送的控制方式。内存与外设之间有一条“直接数据通道”,信息传送不再经过CPU。
DMA的传送过程
1)预处理:CPU会做一些准备工作:测试I/O设备,设置DMA控制器的相关配置等,然后CPU走了;I/O设备发送DMA请求,DMA控制器向CPU发送总线请求
2)数据传送:完全由硬件控制
3)后处理:DMA控制器向CPU发送中断请求,CPU执行中断服务程序做DMA结束处理:检查校验数据啦,是否还有传送啦
DMA方式与中断方式的区别
1)CPU
2) 发生时间:中断请求只能发生在指令的执行周期之后,而对DMA的响应可以发生在每个机器周期
3)传送过程:中断传送过程还是需要CPU的干预,但是中断方式不需要。