zoukankan      html  css  js  c++  java
  • 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的干预,但是中断方式不需要。

    通道方式

  • 相关阅读:
    数据库基础
    oracle高级查询之Over();
    Java Web Servlet开发流程图(页面提交方法、Servlet跳转几种方法)
    Servlet——HttpServletRequest对象详解
    spring <context:annotation-config> 跟 <context:component-scan>诠释及区别
    Spring+SpringMVC +MyBatis整合配置文件案例66666
    eclipse新工作空间集成maven并构建新web项目
    第二章:第一个Netty程序
    第一章:Netty介绍
    eclipse 创建maven web示例
  • 原文地址:https://www.cnblogs.com/juanzhi/p/12763834.html
Copyright © 2011-2022 走看看