zoukankan      html  css  js  c++  java
  • 组成原理(七):程序查询及中断方式

    学习重点

    • 程序查询方式
      • 流程
      • 接口电路
    • 程序中断方式
      • 中断概念
      • 中断源
    • 中断电路
      • INTR和MASK
      • 排队器
      • 向量地址形成部件
      • 接口基本电路
    • 多重中断

    1.程序查询方式

    流程

    1. 查询流程

      • 单个设备

      • 多个设备

    2. 程序流程

      I/O—>CPU—>主存

    接口电路

    D:工作触发器
    B:完成触发器
    DBR:数据缓冲寄存器

    2.程序中断方式

    1. 中断概念

    2. 中断源(中断的产生)
      打印机为例

    3.中断电路

    1. INTR和MASK

      • INTR:中断请求触发器(1:有请求)
        INTerrupt Request 可屏蔽中断请求信号
      • NMI:
        Non Maskable Interrupt 不可屏蔽中断请求信号
      • MASK:中断屏蔽触发器(1:被屏蔽)
      • D:完成触发器(1:完成)
      • cpu查询 + 未屏蔽 + 设备工作结束(往DBR存数据)才能发送中断请求
    2. 排队器

      • 实现方式:

        • 硬件:
          集中在CPU内中断系统或分散在接口电路中
        • 软件:程序查询
      • 部分电路:

      • 完整电路:

        • 某设备选择,则之前优先级都有电(可中断),后面优先级的都没电
        • 优先级高的设备可中断优先级低的设备的操作
    3. 中断向量地址形成部件:

      • 入口地址查询两种方式:

        • 程序查询:按照D的值查找
        • 硬件向量法:硬件产生向量地址,再由向量地址找到入口地址
      • 向量地址形成部件:

      • 主存存放入口地址或跳转命令(JMP 跳转命令):

    4. 程序中断方式接口电路:

      • 组件:
        INTA:中断响应信号
        D:工作触发器
        B:完成触发器
        DBR:数据缓冲寄存器
        ENIT:可被中断触发器
      • 中断响应且排队器排到才能进行中断服务程序
    5. CPU响应中断的条件和时间:

      • 条件:
        • 允许中断触发器ENIT=1
        • 可用开中断指令将ENIT置1,可以中断
        • 可用关中断指令将ENIT置0,不可中断
      • 时间:
        • D=1且MASK=0时,每条指令执行阶段结束前,cpu发送中断查询信号

    4.多重中断

    1. 中断基本流程:

      • 保护现场
        • 断点保护(中断隐指令)
        • 寄存器内容保护(进栈指令)
      • 执行中断程序(设备服务程序)
      • 恢复现场(出栈指令)
      • 中断返回(中断返回指令)
    2. 单重中断:
      不允许中断现行的中断服务程序

    3. 多重中断概念:
      允许更高级别的中断源中断现行中断服务程序

    4. 示意图:

    5. 流程:

      开中断:开启中断,可被中断
      关中断:关闭中断,不可被中断

  • 相关阅读:
    Java中,由this关键字引发的问题
    Spring3.2.11与Quartz2.2.1整合时内存泄漏的问题的解决
    使用Nexus管理Maven仓库时,上传带依赖的第三方jar
    ActiveMQ5.10.2版本配置JMX
    JAVA的Hashtable在遍历时的迭代器线程问题
    关于JAVA中String类型的最大长度
    新增了某个模组后VS编译不过,报错说找不到头文件
    重写Overlap事件
    cmd端口占用查看和关闭端口
    转---详细的Android开发环境搭建教程
  • 原文地址:https://www.cnblogs.com/kenshine/p/14516591.html
Copyright © 2011-2022 走看看