计算机组成原理——中央处理器-异常和中断机制(课程笔记)
说明
- 博客作为笔记备份,不定时更新
- 参考内容为《计算机组成原理(第3版)》唐朔飞 高等教育出版社;王道考研《计算机组成原理考研复习指导2023》
- 文中的例题摘自王道考研《计算机组成原理考研复习指导2023》,大多是我个人认为较为典型的题目以及错题的部分整理
文章目录
- 中断系统
- 1. 概述
- 1.1 引起中断的因素
- 1.2 中断的分类
- 2. 中断请求标记和中断判优逻辑
- 2.1 中断请求标记
- 2.2 中断判优逻辑
- 3. 中断服务程序入口地址的寻找
- 3.1 硬件向量法
- 3.2 软件查询法
- 4. 中断响应
- 4.1 中断响应的条件
- 4.2 响应中断的时间
- 4.3 中断隐指令
- 5. 保护现场和恢复现场
- 6. 中断屏蔽技术
- 6.1 多重中断
- 6.2 屏蔽技术
- 屏蔽触发器与屏蔽字
- 屏蔽技术可以改变优先等级
- 6.3 多重中断的断点保护
- 7. 中断和异常
- 7.1 异常的基本概念
- 7.2 异常的分类
- 7.3 异常 VS 中断
- 7.4 异常的响应
- 8. 例题
- 更新文档
中断系统
资料书P243 课本8.4节以及I/O中断的内容
1. 概述
1.1 引起中断的因素
- 人为设置的中断:例如“转管指令”
- 程序性事故:如定点溢出、浮点溢出、操作码无法识别、除法中出现“非法”等
- 硬件故障:电源掉电、插件接触不良、磁表面损坏等
- I/O设备([[输入输出系统]]):I/O设备被启动后,一旦准备就绪,就向CPU发出中断请求
- 外部事件:例如用户通过键盘来中断现行程序
1.2 中断的分类
- 可屏蔽中断
- 通过可屏蔽中断请求线INTRINTRINTR 向CPU发出的中断请求
- CPU可通过在中断控制器中设置相应的屏蔽字来决定是否屏蔽
- CPU根据该中断源是否被屏蔽来确定是否给予响应
- 不可屏蔽中断
- 通过不可屏蔽中断请求线NMINMINMI向CPU发出的中断请求
- 这类中断CPU不能禁止响应,CPU快速处理这类紧急事件
- 一般是非常紧急的硬件故障,如电源掉电
2. 中断请求标记和中断判优逻辑
2.1 中断请求标记
- 中断请求触发器INTRINTRINTR
- 作用:判断是哪个中断源提出请求(一个中断源一个INTR)
- 触发器可集中设置在CPU内,组成中断请求标记寄存器(每一位对应一个中断源);也可以分散到各个中断源中
2.2 中断判优逻辑
- 硬件排队
- 链式排队器
- 在接口电路内分别设置各个设备的排队器(课本图5.38)
- 每个接口电路中都设有一个非门和一个与非门
- 当有一个或多个中断源提出中断请求时,排队器输出端INTPiINTP_iINTPi只有一个高电平
- 集中设置在CPU内的排队器
- 链式排队器
- 软件排队
- 通过编写查询程序实现
- 程序按中断源的优先级从高到低依次查询各个中断源是否有中断请求
3. 中断服务程序入口地址的寻找
3.1 硬件向量法
- 利用硬件产生向量地址,根据向量地址找到中断服务程序的入口地址
- 由向量地址找中断服务程序入口地址的方法(2种)
- 在向量地址内存放一条无条件转移指令,CPU响应中断时,将向量地址送至PC
- 设置向量地址表,该表在存储器内,存储单元的地址是向量地址,存储单元中的内容是入口地址
- 硬件向量法寻找入口地址速度快,现代计算机普遍采用这种方法
3.2 软件查询法
- 用软件寻找中断服务程序的入口地址
- 当查找到某一中断源有中断请求时,安排转移指令直接指向此中断源的中断服务程序的入口地址
4. 中断响应
4.1 中断响应的条件
- 在中断系统设有允许中断触发器EINT,它可被开中断指令置1,被关中断指令置0
- EINT = 1时,CPU允许响应中断源的请求;反之CPU禁止响应中断
4.2 响应中断的时间
- CPU总是在指令执行周期结束后响应任何中断源的中断请求
- 之所以在指令执行周期后进入中断周期,是因为CPU在执行周期结束时统一向所有中断源发送中断查询信号,只有此时CPU才知道哪个中断源有请求
- 为了防止因某些指令执行时间很长,导致CPU在执行周期结束时查询中断请求过迟而出错,可在指令执行过程中设置若干个查询断点,CPU在每个查询断点均发出查中断询信号,以便发现有中断请求便可及时响应
4.3 中断隐指令
- 其操作由硬件直接实现,不是指令系统中的一条真正的指令,实质上是硬件的一列自动操作
- 具体完成的操作
- 保护程序断点
- 将当前PC的内容(程序断点)保存到堆栈或存储器的指定单元中
- 寻找中断服务程序的入口地址
- 硬件向量法:在中断周期内,将向量地址送至PC,使CPU执行下一条无条件转移指令,转至中断服务程序的入口地址
- 软件查询法:将软件查询入口地址的程序首地址送至PC,CPU执行中断识别程序,找到入口地址
- 关中断
- CPU进入中断周期说明CPU响应了某一中断源的请求,此时要关中断以禁止CPU再次响应新的中断请求
- 中断标记触发器INT为1时,置EINT为0,即关中断
- 保护程序断点
5. 保护现场和恢复现场
- 保护现场
- 保护程序断点:由中断隐指令完成
- 保护CPU内部各个寄存器内容:可在中断服务程序中由用户(或系统)用机器指令编程实现
- 恢复现场
- 在中断返回前将寄存器内容恢复到之前的状态,由中断服务程序完成
- 恢复现场前要关中断
6. 中断屏蔽技术
6.1 多重中断
- 多重中断(中断嵌套):CPU正在执行一个中断服务程序时,又有另一个中断源提出新的中断请求,CPU响应了这个新的中断请求,暂时停止正在运行的服务程序
- 单重中断:CPU对新的请求不予响应,等到执行完当前的中断服务程序后再响应
- 实现多重中断的条件
- 提前设置开中断指令,即提前将EINT置1,使CPU允许响应中断请求
- 优先级高的中断源有权中断优先级低的中断源
6.2 屏蔽技术
屏蔽触发器与屏蔽字
- 每个中断请求触发器就有一个屏蔽触发器,将所有屏蔽触发器组合在一起,就组成了一个屏蔽寄存器
- 屏蔽寄存器中的内容称为屏蔽字,屏蔽字与中断源的优先级是一一对应的
屏蔽技术可以改变优先等级
- 响应优先级:CPU响应各中断请求源的优先次序,通常是硬件线路已经设置好的,不便于改动
- 处理优先级:CPU实际对各中断源请求的处理优先次序。若不采用屏蔽技术,响应的优先次序就是处理的优先次序
- 采用屏蔽技术后,可以改变CPU处理各中断源的优先等级,从而改变CPU执行程序的轨迹。在不改变CPU响应中断的次序下,通过改变屏蔽字可以改变CPU处理中断的次序
- 采用屏蔽技术后,在中断服务程序中需设置新的屏蔽字。在原先中断服务程序的基础上增加了置屏蔽字和恢复屏蔽字
6.3 多重中断的断点保护
- 中断系统对断点的保存都是在中断周期内,由中断隐指令实现的,对用户透明
- 断点可以保存在堆栈或指定的存储单元中
7. 中断和异常
7.1 异常的基本概念
- 由CPU内部产生的意外事件被称为异常,也叫内中断
- 异常是CPU执行一条指令时,由CPU在其内部检测到的、与正在执行的指令相关的同步事件;中断是一种典型的由外部设备触发的、与当前正在执行的指令无关的异步事件
7.2 异常的分类
- 异常是由CPU内部产生的意外事件,分为硬故障中断和程序性异常
- 硬故障中断:是由硬连线出现异常引起的,例如存储器校验出错、总线错误等
- 程序性异常:也称为软件中断,是指在CPU内部因执行指令而引起的异常事件,例如整除0、溢出、断点、地址越界、缺页等
- 按异常发生的原因和返回方式分为:
- 故障
- 指在引起故障的指令启动后、执行结束前被检测到的异常事件
- 比如指令译码时,出现“非法操作码”;除数为0;发生缺页或缺段等
- 故障恢复后回到断点继续执行;无法恢复故障必须终止进程的执行
- 自陷
- 是预先安排好的一种“异常”事件,就像预先设定的“陷阱”一样
- 事先在程序中用一条特殊指令或通过某种方式设定特殊控制标志来人为设置一个陷阱,当执行到被设置了陷阱的指令时,CPU在执行完自陷指令后,自动根据不同陷阱类型进行相应的处理,然后返回到自陷指令的下一条指令执行(若自陷指令为转移指令,则返回到转移目标指令执行)
- 例如:在x86机器中,用于程序调试“断点设置”和单步跟踪的功能就是通过陷阱机制实现的
- 终止
- 若在执行指令的过程中发生了使计算机无法继续执行的硬件故障,那么程序无法继续执行只能终止,此时调出中断服务程序来重启系统
- 这种异常不是由特定指令产生的,而是随机发生的
- 例如:控制器出错、存储器校验出错等
- 故障异常和自陷异常属于程序性异常(软件中断);终止异常和外中断属于硬件中断
- 故障
7.3 异常 VS 中断
异常和中断本质上是一样的,但又有不同点:
区别项 | 异常 | 中断 |
---|---|---|
与指令的关系 | 由特定指令在执行过程中产生 | 不和任何指令相关联,也不阻止任何指令的完成 |
与CPU的关系 | 异常的检测由CPU自身完成,不必通过外部的某个信号通知CPU | CPU必须通过中断请求线获取中断源的信息,才能知道哪个设备发生了何种中断 |
断点 | 异常指令通常没有执行成功,异常处理后要重新执行,其断点是当前指令地址 | 中断的断点是下一条指令的地址 |
7.4 异常的响应
- 异常的响应过程和中断基本一样,但异常和中断源的识别方式不同,异常大多采用软件识别方式,而中断可以采用软件识别方式或硬件识别方式
8. 例题
(201520152015)内部异常(内中断)可分为故障(fault)、陷阱(trap)和终止(abort)三类,下列有关内部异常的叙述中,错误的是()
A. 内部异常的产生与当前执行的指令相关
B. 内部异常的检测由CPU内部逻辑实现
C. 内部异常的响应发生在指令执行过程中
D. 内部异常处理后返回到发生异常的指令继续执行
解答:内部异常的检测由CPU内部逻辑实现,且其响应发生在指令执行过程中。但是内部异常中的终止,在其处理结束后,不会返回,程序直接终止。选D
错误原因:错选B
(201620162016)异常是指令执行过程中在处理器内部发生的特殊事件,中断是来自处理器外部的请求事件,下列关于中断或异常情况的叙述中,错误的是()
A. “访存时缺页”属于中断
B. “整数除以0”属于异常
C. “DMA传送结束”属于中断
D. “存储保护错”属于异常
解答:
- 首先需明确,内中断即异常的信号来源是CPU内部;外部中断的信号来源是CPU外部
- 需要特别强调的是CPU指令流相关一定是内中断,也即所谓的异常。而非CPU指令流导致的才是外中断,比如时钟中断,DMA中断等才是真正的外中断。访存时缺页,我们听过太多的缺页中断,缺页异常,后来根本分不清谁是谁了,只需要抓住:缺页是CPU访存指令时才有的。是CPU相关。于是A项错误。 整数除0,当然是CPU干的。存储保护错,也是内存访问相关,属于异常,也叫内中断。来自:(转载)中断和异常的再总结 - 蔡军帅 - 博客园 (cnblogs.com)
错误原因:错选D
(202120212021)异常事件在当前指令执行过程中进行检测,中断请求则在当前指令执行后进行检测,下列事件中,相应处理程序执行后,必须回到当前指令重新执行的是()
A. 系统调用
B. 页缺失
C. DMA传送结束
D. 打印机缺纸
解答:外部中断都是在一条指令执行完成后才被检测并处理的。DMA请求只请求总线的使用权,不影响当前指令的执行,不会导致被中断指令的重新执行。缺页中断发生在取指或间址等指令执行过程中,并会阻塞整个指令,当缺页中断发生后,必须回到这条指令重新执行,以便重新访存。选B
错误原因:错选A
更新文档
更新日期 | 更新内容 |
---|---|
2022/7/28 | 增加例题 |
计算机组成原理——中央处理器-异常和中断机制(课程笔记)相关推荐
- 北科计算机网络真题,北京科技大学计算机组成原理和数据结构历年试题及笔记...
[实例简介]北京科技大学计算机组成原理和数据结构历年试题及笔记 [实例截图] [核心代码] 北京科技大学1999年数据结构考研试题及答案.rar 北京科技大学1999年计算机组成原理考研试题及答案.r ...
- 计算机组成原理 小说,计算机组成原理--中央处理器CPU5
计算机组成原理--中央处理器CPU5 (15页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 综合内容? 用组合逻辑设计方法设计一颗CPU ...
- 计算机组成原理——中央处理器-数据通路(课程笔记)
说明 博客作为笔记备份,不定时更新 参考内容为<计算机组成原理(第3版)>唐朔飞 高等教育出版社:王道考研<计算机组成原理考研复习指导2023> 文中的例题摘自王道考研< ...
- 合肥工业大学《系统硬件综合设计》(《计算机组成原理》,CPU)课程设计报告(2020)
文章目录 1 课程设计概述 1.1 设计目的 1.2 设计任务 1.3 设计要求 1.4 技术指标 2 总体方案设计 2.1 MIPS体系结构 2.1.1 MIPS寄存器 2.1.2 MIPS指令集 ...
- 计算机组成原理——中央处理器cpu
计算机组成原理-题库 中央处理器选择题 1.中央处理器(CPU)是指什么. A. 运算器 B. 控制器 C. 运算器和控制器 D. 运算器.控制器和主存储器 2.在CPU中跟踪指令后继地址的寄存器是什 ...
- 计算机组成原理时序发生器qd,计算机组成原理微程序控制器组成实验课程实验报告书...
学生课程实验报告书 13 级 计算机与信息科学 系 软件工程 专业 1303 班 学号 3138907308 姓名 王明渊 2014 --2015 学年 第 2 学期 另外它还产生节拍信号W1-W3的 ...
- 多思计算机组成原理实验:模型机课程设计
第十一章 模型机课程设计 计算机组成原理实验教程 基于多思网络虚拟实验系统 张雯雰 实验目的 融会贯通所学知识,设计和调试一台模型计算机 进一步掌握计算机组成的基本原理,建立整机概念 培养工程设计和研 ...
- 计算机组成原理节拍发生器实验报告,计算机组成原理微程序控制器组成实验课程实验报告书研讨.doc...
文档介绍: 学生课程实验报告书 13级计算机与信息科学系软件工程专业 130 3班学号 3138907308 姓名王明渊 2014 --2015 学年第2学期实验项目: 微程序控制器组成实验实验时间: ...
- 计算机组成原理---中央处理器
中央处理器 1)CPU功能和基本结构 1. cpu功能 2. cpu基本结构 3. 注意点: 2)指令执行过程 1. 指令周期 2. 数据流 3. 执行方案 4. 总结 5. 注意点 3)数据通路的功 ...
- 计算机组成原理-中央处理器详细讲解
目录 CPU的功能和基本结构 CPU的功能 运算器和控制器的功能 运算器的基本结构 控制器的基本结构 CPU的结构基本结构 指令执行过程 指令周期 指令周期流程 编辑 指令周期的数据流 取指周期 间 ...
最新文章
- scikit-learn 多分类混淆矩阵
- 奇异值分解(SVD) --- 几何意义2
- poj_2182 线段树/树状数组
- 【Python】4000字归纳总结 Pandas+Sklearn 带你做数据预处理
- wxWidgets:wxCheckBox类用法
- 线程安全退出 VS PostMessage,SendMessage的区别
- Github | Google开源高性能机器学习研究工具Jax
- mysql 三表left join_mysql left join 3表查询问题
- coding4fun比赛总结
- 从补丁到Root——CVE-2014-4323分析
- echar地图使用小总结
- [Android] 百度地图API Android相关配置教程(包含获取包名、发布版SHA1和开发版SHA1)
- 移动物联网卡哪里可以办理
- 使用本地代理拦截网址及重定向
- 我的世界(方块地图)生成
- 【转载】如何学习统计学,或我的学习之路——初学者写给初学者
- js 转化为实体符_js字符实体 转义字符串
- Android 仿微信通讯录 导航分组列表-上】使用ItemDecoration为RecyclerView打造带悬停头部的分组列表
- gif动图可以压缩大小吗?gif图片怎么压缩?
- AttributeError: module 'tensorflow' has no attribute 'Session'.解决办法
热门文章
- 关于Tween的几个注意事项
- java 用户留存率_Java后台实现日留存率,求解!
- 1-十八烷基-3-三乙氧基丙基硅烷咪唑溴盐离子液体([ODTIm]Br)修饰Fe3O4磁性纳米颗粒
- 「四年总结」一名程序猿的打怪升级之路
- 大数据——DBT:dbt集成数据质量监控插件elementary(生产环境篇)
- JetBrain全家桶介绍
- 解决前端微信浏览器中video标签不能自动播放视频问题
- 7474触发器 异步三进制加法计数器
- 【CSU-PIPIOJ】1254 PIPI上学路
- 使命召唤9怎么样使用计算机,玩家实测COD9 教你如何使用FXAA、TXAA