2024.10.13:计算机组成原理学习笔记
中断响应步骤
- 中断响应 (中断响应的过程也称中断隐指令)
- 第一步:关中断
- 第二步:保存断点
- 第三步:引出中断服务程序
- 中断源识别判优方法1:软件查询方法
- 中断源识别判优方法2:采用硬件判优方法(外部中断独有)
中断响应 (中断响应的过程也称中断隐指令)
中断隐指令是硬件直接实现的一系列自动操作
第一步:关中断
为了让一些关键操作不被打扰而引入的一种机制,注意关中断这种机制只可以挡住可屏蔽中断
在保护断点和现场的过程中,CPU不能响应更高级中断源的中断请求,否则的话,可能导致断点或者现场保存不完整,无法恢复现行的程序
因此,在这些操作之前,我们会先把中断关闭
如何关闭?CPU内部会有一个PSW或者PSWR或者EFLAGS这样的一个寄存器,其内部就会有这样的一位,如果设置为1,CPU就不会再去检测INTR这些引脚了,CPU只会去检测NMI,因为NMI上面传输的是不可屏蔽中断。若那个位置设置为0,这两种引脚它都会去检测,它才能检测到有没有外部中断
第二步:保存断点
我们应该将原本正在执行的这个程序,它的断点保存在栈或者说特定的寄存器中,断点就是你PC和PSW的值
注意:异常的指令通常是没有执行成功的,异常处理后要重新执行,断点为当前指令地址
中断的断点是下一条指令的地址,此时我们应该将PC还有PSW里面的内容去存到内存的堆栈区
第三步:引出中断服务程序
识别中断源,引出其对应的中断服务程序。
- 异常是通过软件识别的方式区寻找这个异常的处理程序
- 在外部中断中我们要识别这个中断源,从而找到它对应的中断服务程序的地址,有两种方法
中断源识别判优方法1:软件查询方法
检测到中断请求时,通过中断响应,自动转到一个特定的中断查询程序,在中断查询程序中,按中断优先顺序依次查询哪个设备(外设)有中断请求,转到第一个查询到有请求的中断服务程序去执行
软件进行中断识别的方式,硬件结构很简单,且可软件更改查询顺序,改变中断响应的优先级。但因软件查询的速度慢,中断请求可能无法得到实时响应
中断源识别判优方法2:采用硬件判优方法(外部中断独有)
没有依赖任何软件,而是可以直接知道中断源对应的一个类型号
外部中断最常用的一种方法去寻找他的服务程序的入口地址的方法,简而言之,其实就是每一个中断请求或者说中断源,它会有一个类型号,这个类型号就可以被当做去识别它对应的服务程序的一个依据。CPU就可以根据这个类型号去确定这个中断服务程序的首地址PC和初始PSW
?:因为当你知道了中断服务程序的这两个东西,将其放在CPU的这两个硬件中去,CPU就可以根据这个首地址以及现在的状态去执行中断服务程序
中断向量:中断服务程序首地址、初始PSW
系统中所有的中断向量都会集中放到主存的某个位置,这个区域就叫做中断向量表