8.4-中断系统小结(cpu中断七个问题)

2023-11-07

【README】

本文转自bilibili《计算机组成原理(哈工大刘宏伟)》的视频讲解,非常棒,墙裂推荐;


【1】中断介绍

1)作用:用中断系统实现了外设数据的输入输出; 还可以用于程序调试,计算机系统的异常事件,都可以用中断系统来处理;

2)中断因素

  1. 人为设置的中断;
  2. 程序性事故,如java异常;
  3. 硬件故障,如硬盘坏道;
  4. Io设备,如数据输入输出;
  5. 外部事件,如键盘中断按钮,调试程序;

【2】 cpu中断问题

【2.1】问题1:各中断源如何向cpu提出请求?

给每一个中断源设置一个触发器,用触发器来标记这个中断源是否提出了中断请求;
一个中断源对应一个中断请求触发器INTR,多个触发器组成了中断请求标记寄存器 INTR

中断请求标记寄存器 INTR 如下:


【2.2】 问题2:各中断源同时提出请求,怎么办?

对中断源进行分级;响应优先级最高的中断源(对中断源的级别进行排队);

中断优先级分为:响应优先级和处理优先级;

响应优先级,由硬件决定(中断源)决定,无法修改;

处理优先级可以修改,通过设置中断屏蔽字到中断屏蔽寄存器来屏蔽其他中断


 【2.3】问题3:Cpu在什么条件,什么时间,以什么方式响应中断?

【2.3.1】cpu在什么条件下响应中断请求 ?

  • 为了表示cpu是否响应中断请求,有一个允许中断触发器EINT,值=1表示允许cpu 响应中断源发出的中断请求;

【2.3.2】 cpu在什么时间响应中断请求 ?

  • 通常情况下,cpu只有在指令的执行阶段结束以后,才能够响应中断请求;但cpu的某些指令的执行阶段比较长,这种情况就允许cpu在指令执行过程中,响应中断请求;

【2.3.3】 cpu响应中断过程:

  • 在指令执行以后,cpu发送查询信号到中断源的中断请求触发器;查询信号把中断请求触发器的输出端设置为1,把中断请求信号发送到排队电路;

补充:中断隐指令作为响应中断的一部分,有3个操作(保护程序断点,寻找入口地址,硬件关中断):如下:

中断响应步骤如下:

步骤

描述

1

Cpu完成指令执行阶段后,通过硬件向量法查找中断源;各个中断源的信号送入排队器;

2

排队器把中断源信号(只有一根线为1)送给中断标记触发器,从而把INT设置为1,而EINT设置为0;

3

此外,排队器还要把中断信号送给向量地址形成部件,这个向量地址送给PC,为执行中断服务程序做准备;(向量地址保存了中断服务程序的入口地址)

 【小结】中断响应过程中要解决的3个问题

问题1)保护程序断点 断点就是中断服务程序执行完成后,返回执行的指令;

       方法1 断点存到特定地址(0号地址)内;

        方法2 断点进栈;

问题2)寻找中断服务程序入口地址;

        方法1 采用硬件向量法:把中断向量地址发送到PC寄存器;PC中保存了向量地址,这个向量地址保存了中断服务程序的入口地址,或跳转指令,该指令会跳转到中断服务程序;

        方法2 软件查询法:中断识别程序的入口地址发送到PC寄存器;计算机执行中断识别程序来查找中断服务程序的入口地址;

问题3)硬件关中断(把中断允许触发器的值设置为0

关中断的目的: 避免在单重中断的机器中,在执行中断服务程序的过程中,有新的中断源会打断当前的中断服务程序的执行;

另外,即使在多重中断的cpu中,采用关中断的方式,也是为了保存程序断点,保存程序现场的一个过程;


【2.4】问题4:如何保护现场 ?

【2.5】问题5:如何恢复现场?

1 保护现场
1.1    保存断点:由中断隐指令(硬件)来做,包括3个步骤(保存断点,形成中断服务程序的入口地址,硬件关中断) ;
1.2    保存寄存器内容(由中断服务程序来做,软件):cpu当中的一些寄存器在执行中断服务程序的时候需要用到;这些寄存器的内容也要进行保存 ;因为这些内容将来中断返回的时候,主程序还要用到;

2 恢复现场
2.1 由中断服务程序完成;
因为中断服务程序在保存现场的时候,可以吧寄存器内容压入到堆栈中;
在中断服务程序恢复现场时,可以出栈;

3 中断服务程序的工作内容包括:
1)    保护现场;push指令;
2)    其他服务程序(中断服务程序剩余部分);
3)    恢复现场;pop指令;
4)    中断返回;IRET指令;

【补充*】上述保护现场入栈,恢复现场出栈,也是线程切换的流程,即线程上线文切换的原理,可以看到,频繁切换就是入栈和出栈过程,即寄存器数据送入内存栈,和内存栈数据送入寄存器的过程;频繁切换的话,可以看到成本非常高,这个切换过程并没有做实际的业务逻辑


【2.6】问题6:如何寻找中断服务程序的入口地址?

通过硬件向量法,或程序查询法寻找;

【2.6.1】硬件向量法

排队器输出:只有1根线是高电平1,其他全部为低电平0;
向量地址形成部件:根据排队器输出,确定需要响应的中断源,从而确定执行哪一个中断服务程序(通过中断向量地址确定);

用硬件查找中断服务程序入口地址有两种方法:
方法1: 在中断向量地址的存储单元中存放一条跳转指令 如 jmp 200,则200就是中断服务程序的入口地址;
方法2: 在中断向量地址的存储单元中存放的就是中断服务程序的入口地址,如中断向量地址12H,其保存的入口地址200;

【2.6.2】程序查询法

中断识别程序查询步骤

步骤

指令

说明

1

SKP DZ 1#

SKP表示跳过下一条指令;

指令功能:查询第1号中断源的完成触发器D;看触发器是等于0还是等于1;

    1. 若等于1,说明中断源已经准备好了,提出了中断请求,cpu就要去执行响应的中断服务程序(步骤2);
    2. 若等于0,说明1号中断源没有准备好,则跳过指令2,进入2号中断源的查询(步骤3)

2

JMP 1#SR

执行中断服务程序

3

SKP DZ 2

……

4

JMP 2SR

……


【2.7】问题7:处理中断的过程中又出现新的中断 怎么办?

 处理过程如下:

  • 处理中断1时,发生了中断2,且中断2优先级大于中断1,则停止中断1的服务程序,转而执行中断2的服务程序;
  • 处理中断2时,发生了中断3,且中断3优先级大于中断2,则停止中断2的服务程序,转而执行中断3的服务程序;

上图中: 产生了3次中断,和3个断点,分别是 k+1, l+1, m+1 ;

【例】利用中断屏蔽字修改中断处理优先级(响应多个中断),参见

https://blog.csdn.net/PacosonSWJTU/article/details/123595867


 【3】cpu中断全过程小结

cpu全过程有5个步骤:

  1. 中断请求;
  2. 中断判优;
  3. 中断响应;
  4. 中断处理;
  5. 中断返回;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

8.4-中断系统小结(cpu中断七个问题) 的相关文章

  • 计算机组成原理实验四 微程序控制器实验报告

    我班算是几乎最后一个做实验的班级了 报告参考了一些朋友提供的数据加上一些自己的主观拙见 本人水平有限加之制作仓促难免有错误 望大家批评指正 4 1 微程序控制器实验 一 实验目的 1 掌握微程序控制器的组成原理 2 掌握微程序的编制 写入
  • 【计算机组成原理】笔记(B站王道考研)

    课程 B站 王道考研 截图来自课程 计算机硬件 p4 计算机硬件的基本组成 冯诺依曼结构 理解冯诺依曼计算机 在计算机系统中 软件和硬件在逻辑上等价 冯诺依曼计算机特点 计算机由运算器 控制器 存储器 输入设备 输出设备五大部件组成 指令和
  • 计算机组成原理实验三-----系统总线和具有基本输入输出功能的总线接口实验

    总线是计算机中连接各个功能部件的纽带 是计算机各部件之间进行信息传输的公共通路 总线不只是一组简单的信号传输线 它还是一组协议 他有两大特征 分时 同一总线在同一时刻 只能有一个部件占领总线发送信息 其他部件要发送信息得在该 部件发送完释放
  • 浮点的加减计算方法

    浮点的计算方法 1 计算步骤 2 基本要素 2 1 浮点数 2 2 规格化浮点数 2 3 偏置指数 2 4 IEEE浮点数 2 5 特点 3 计算实例 4 舍入机制 扩展 乘除计算步骤 1 计算步骤 浮点数格式 单精度 符号位1位 阶码8位
  • 【计算机组成原理】(四)原码补码的加减乘除

    各种码的作用 模运算的性质 3 1 12 9 9 0 12 9 21 1 12 9 33 2 12 9 15 2 12 9 我们发现等号右边都是 9 相当于等号的左边的数除去12的余数都是9 那我们就说这几个等好左边的数 在mod12的情况
  • 【笔记】CPU的结构和功能(一)

    一 CPU的结构 1 CPU的功能 2 CPU结构框图 3 CPU的寄存器 用户可见寄存器 控制和状态寄存器 4 控制单元和中断系统 二 指令周期 1 指令周期的基本概念 2 指令周期的数据流 取指周期数据流 间址周期的数据流 执行周期的数
  • 计算机指令——从纸带说起

    前言 其实很多时候我都会感叹计算机的伟大 通过一个个电路就完成了如今各种系统 通过各种各样的语言就能够指挥设备完成不同的动作 当写下第一个hellow world的时候我就在想他什么怎么出现 今天搞明白其中的原理 我在这和大家分享 打孔卡
  • 计算机组成原理笔记03

    计算机组成原理笔记03 做题笔记1 内容 教材的思维导图 课后练习 计算部分 中国大学MOOC计算机组成原理 计算部分 1 教材的思维导图 在看题之前 最好先看这篇定点运算 写的特别清晰明了 2 课后练习 3 2 选择题 1 一个C语言程序
  • 关于存储器按字节寻址和按字寻址的理解

    关于存储器按字节寻址和按字寻址的理解 近日在学习MOOC上学习哈工大刘宏伟老师的 计算机系统组成原理 课程 在4 1节提到主存的时候简单地提到一下关于按字节寻址和按字寻址的寻址空间问题 个人非常疑惑于是各处搜索查找资料 下面是本人就这个问题
  • 5.5_数据的存储和排列

    文章目录 一 大小端模式 二 边界对齐 在这个小结中 我们要探讨的是 数据的存储和排列 一 大小端模式 首先来看一个之前提到过的问题 叫做大小端模式 我们在内存里经常会存储某一些多字节的数据 比如 c 语言里的 Int 型变量 在很多时候占
  • 8.4-中断系统小结(cpu中断七个问题)

    README 本文转自bilibili 计算机组成原理 哈工大刘宏伟 的视频讲解 非常棒 墙裂推荐 1 中断介绍 1 作用 用中断系统实现了外设数据的输入输出 还可以用于程序调试 计算机系统的异常事件 都可以用中断系统来处理 2 中断因素
  • 1. 存储器分类

    存储器的分类 存储器有很多的分类依据 按存储介质 读写功能 存取方式 在计算机中的作用等 按存储介质分类 磁性介质 磁盘 磁带 光介质 光盘 半导体介质 内存 固态硬盘 内存是易失性存储器 掉电后无信息保存 固态硬盘是非易失性存储器 掉电信
  • 计算机组成原理--基于Logisim的8位可控加减法器实验的应用(超详细/设计/实验/作业/练习)

    目录 课程名 计算机组成原理 内容 作用 设计 实验 作业 练习 学习 基于Logisim的8位可控加减法器实验 一 前言 二 环境与设备 三 内容 四 结果与分析 课程名 计算机组成原理 内容 作用 设计 实验 作业 练习 学习 基于Lo
  • 计算机组成原理——存储器(一)

    存储器 一 一 存储器概述 二 存储器的分级结构 三 主存储器的技术指标 四 存储器与CPU的联系 地址总线 CPU与存储器的联系 编址方式 1 按字编址 M N 方式 2 按字节编址 五 SRAM存储器 cache 1 存储元基本结构 2
  • 计算机组成原理笔记

    CPU的功能和结构 运算器 对数据进行加工 算术逻辑单元ALU 暂存寄存器 通用寄存器 累加寄存器ACC 程序状态字寄存器PSW 移位器 计数器 控制器 取指令 分析指令 执行指令 中断处理 程序计数器PC 指令寄存器IR 指令译码器 时序
  • 计算机组成原理——指令系统题库

    指令系统题库 选择题 1 以下有关指令系统的说法中错误的是什么 A 指令系统是一台机器硬件能执行的指令全体 B 任何程序运行前都要先转化为机器语言 C 指令系统是计算机软件 硬件的界面 D 指令系统和机器语言是无关的 2 在CPU执行指令的
  • 《计算机组成原理实验》 多周期CPU

    计算机组成原理实验 多周期CPU 前言 这是中山大学2018年计算机组成原理实验中多周期CPU的实验报告 仿真与写板的内容暂略 所有源代码 包括写板 已经上传至我的github当中 欢迎大家访问 github个人主页 https stara
  • 计算机组成原理 总线与微命令实验

    总线与微命令实验 实验环境 计算机组成原理实验环境 实验目的 理解总线的概念和作用 连接运算器与存储器 熟悉计算机的数据通路 理解微命令与微操作的概念 实验要求 做好实验预习 读懂实验电路图 熟悉实验元器件的功能特性和使用方法 按照实验内容
  • 计算机中的指令跳转

    前言 在上一章中说了 高级语言为什么怎么样成为计算机能够读懂的语言 下面就来说说这些计算机能够读懂的语言中 他们究竟是如何设计的 CPU是如何执行指令的 在我们现实常用的CPU中 有几百亿的晶体管通过电路起来 在逻辑上我们可以认为CPU就是
  • 【计算机组成原理】2、二进制原码反码补码、左移右移、进制转换,进制相减、内存地址偏移计算与容量计算

    文章目录 一 二进制的原码 反码 补码 1 1 二进制计算 1 2 左移 右移 1 3 异或 二 进制转换 2 1 二进制 八进制 十六进制转为十进制 2 2 十进制转为二进制 八进制 十六进制 2 3 二进制转为八进制 十进制 十六进制

随机推荐

  • python随机函数random要导入哪个包_python学习之随机函数random

    文章目录 python学习之随机函数random 提示 以下是本篇文章正文内容 下面案例可供参考 一 随机函数模块 要想使用随机数 需先导入随机数模块 导入模块 import random 也就是在开头写上import random 二 六
  • Spring源码分析之如何开始Spring源码分析

    一 概述 对于大多数第一次看spring源码的人来说 都会感觉不知从哪开始看起 因为spring项目源码由多个子项目组成 如spring beans spring context spring core spring aop spring
  • 程序员成熟的标志

    http www cnblogs com n216 archive 2011 05 16 2047327 html 程序员成长路线图 从入门到优秀 成熟篇 节选3 程序员在经历了若干年编程工作之后 很想知道自己水平到底如何 自己是否已经成为
  • spring boot社区养老医疗服务平台 毕业设计源码041148

    springboot社区养老医疗服务平台 摘 要 随着社会的发展 社会的各行各业都在利用信息化时代的优势 计算机的优势和普及使得各种信息系统的开发成为必需 社区养老医疗服务平台 主要的模块包括查看首页 站点内容 轮播图 公告栏 系统用户 管
  • 关于工业4.0和智能制造的总结以及背后的思考

    工业4 0是德国首先提出来的 美国叫 工业互联网 我国叫 中国制造2025 这三者其实本质都是一样的 核心都是智能制造 在即将过去的2015年里 互联网 这个概念已经是家户喻晓了 大众创业 万众创新 上升到国家战略 此时又恰逢工业4 0来袭
  • python 动态仪表盘_使用Echarts3实现渐变仪表盘需求

    Echarts 仪表盘实践 项目过程中遇到一个这样的需求 这明显是一个仪表盘类型的图表 打开echarts的官方文档 可以看到有一个默认的实现 如下 使用了默认的参数 option tooltip formatter a b c toolb
  • SylixOS热插拔子系统分析(二)

    1 系统与驱动 热插拔子系统中 系统与驱动层的交互分为热插拔事件和循环检测 热插拔事件是针对设备能够产生热插拔中断通知的情况 SylixOS可以将通知以异步的方式来处理 而循环检测是设备不能产生一个热插拔中断通知的情况 需要轮询检测某些事件
  • 数据在 Mocaverse 项目启动过程中是如何发挥作用的

    日期 2023年5月 数据源 Mocaverse Realm Ticket Collection Airdrop Mocaverse Optimizes an NFT Project at Launch Beyond NFT 是 Web3
  • 微软辅助服务器代码是什么东西,IT界“古玩”微软公开MS-DOS和Word源码

    对于软件巨头微软 从早期DOS到如今Windows 旗下应用软件工具可谓丰富 近日 从微软官方博客了解 宣布公开早期版本MS DOS和Word for Windows的源代码 在计算机历史博物馆的帮助下 这两个软件早期版本的源代码首度公开
  • 移动端日历插件(vue3-small-calendar)

    背景 同事做移动端项目时希望用到可平铺选择的日历插件 然度娘无过最后问题到我这边 虽然咱不是前端但是秉着技术问题不是问题且问题到我为止的原则 自己研究了2天完成了vue3 small calendar插件 此插件目前已发布npm 大家觉得可
  • 如何评价一个规划方案的合理性?记xx项目规划单位招标

    今天共4家公司设计单位参与投标 上午两家 下午两家 公司请了两位专家来评价各家方案 从整体规划方案水平上看 投标方案水平都不是特别突出 没有让人眼前一亮的方案 有的只是一些小创意小想法 对于新的规划理念 新的规划思维没有看到 另外大家对于西
  • 安装 inotify-tools

    摘要 inotify tools 是一款google出的用于监控文件系统的软件 一 软件下载地址官方站点地址 http inotify tools sourceforge net 仓库地址 https github com rvoicila
  • 华为OD机试真题(Java),整数编码(100%通过+复盘思路)

    一 题目描述 实现一个整数编码方法 使得待编码的数字越小 编码后所占用的字节数越小 编码规则如下 编码时7位一组 每个字节的低7位用于存储待编码数字的补码 字节的最高位表示后续是否还有字节 置1表示后面还有更多的字节 置0表示当前字节为最后
  • .sh脚本bash命令 从输出中过滤字符串(正则)替换json中value值 grep命令 sed命令 替换字符串

    bash命令 获取 sh文件当前目录 输出值赋给变量 grep命令查询文件 变量方法 sed命令正则替换文件或变量中字符串 带颜色输出 获取 sh文件当前目录 获取 sh文件当前目录 basepath cddirname 0 pwd bas
  • vue2实例

    目录 数据与方法 你提到vue有两种数据和方法 js是不是只有一种 vue2自带的实例和方法 vue2 会和jQuery冲突d的问题 vue2中被人吐槽的this vue3已改进 箭头函数和普通函数中的this 生命周期 数据与方法 没看懂
  • 深入分析 ESP32 的 WiFi 状态机

    本工程已托管到 GitHub 具体路径是 https github com tidyjiang8 esp32 projects tree master sta 在前一篇博客 让 ESP32 连接到你的 WiFi 热点 中 我们已经简单地分析
  • jquery+ajax清除session,并跳出iframe框架页面

    集合页面
  • Checkstyle检查规则

    Checkstyle是一个检查java文件编码规范的开源工具 最新版本支持184个检查规则 Checkstyle官网如下 https checkstyle sourceforge io Checkstyle的GitHub地址如下 https
  • 企业的述职如何做才有效?

    360度考核法又称全方位考核法 是指通过被考核者自己 同事 上级 下属以及客户对考核者进行全方位评价 以帮助其提高能力或业绩 职如何做才有效 每年的元旦前后很多单位都会针对全员做一件事情 述职 述职这个词在古时候诸侯向天子陈述职守 现在指基
  • 8.4-中断系统小结(cpu中断七个问题)

    README 本文转自bilibili 计算机组成原理 哈工大刘宏伟 的视频讲解 非常棒 墙裂推荐 1 中断介绍 1 作用 用中断系统实现了外设数据的输入输出 还可以用于程序调试 计算机系统的异常事件 都可以用中断系统来处理 2 中断因素