码迷,mamicode.com
首页 > 其他好文 > 详细

cpu与外设进行数据交换的方式

时间:2020-04-23 23:32:29      阅读:447      评论:0      收藏:0      [点我收藏+]

标签:控制器   完成   通过   总线   情况下   串行   dma   决定   嵌套   

程序查询方式

  信息交换的控制完全由主机执行程序实现,主机一直询问设备有没有准备好,读取设备的状态决定数据传送还是等待。

  该方式下,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的干预,但是中断方式不需要。

通道方式

cpu与外设进行数据交换的方式

标签:控制器   完成   通过   总线   情况下   串行   dma   决定   嵌套   

原文地址:https://www.cnblogs.com/juanzhi/p/12763834.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!