5.1概述
产生和应用
在IO设备和主机交换数据时,由于设备本身的机电特性的影响,其工作速度比较低,与CPU无法匹配,如果采用程序查询的方式需要CPU进行等待,但是如果在等待的过程中CPU可以执行其他的程序,可以提高计算机系统的效率。
中断技术提高计算机的处理速度,比如在程序断电时,立即启动备份电源防止数据丢失,在控制系统中,需要及时响应外部的信号并作出反应
5.2中断
中断是计算机在异常情况或者是发出特殊请求计算机停止当前运行程序的状态,中断不仅可以为外部设备服务,也可以为计算机服务(比如发出乘法的溢出,比如发生除数为0的情况),具体可以看这一篇博客:
HIT-CSAPP第八章 异常控制流上课笔记_旅僧的博客-CSDN博客
工作过程
中断服务程序->入口地址(PC)中断向量(后边会详细介绍)
举例
CPU向打印机发出打印的信号,然后打印机开始做准备工作,同时信号返回CPU继续执行主程序,当打印机准备完之后,CPU执行完当前的指令之后执行中断服务程序,此时CPU处在内核态。
形象举例:我放学回家,不知道什么时候饿了,然后发出饿的信号给妈妈,妈妈回应我说她知道了,这时候妈妈准备饭的时间很长,我不会等妈妈做完饭先去写作业,我做题做一半时候妈妈好饭之后发出信号给我让我吃饭,我得等这个题写完之后才能吃饭。
硬件构成
接口电路
中断实现需要硬件和软件共同来完成。
为了实现这些功能需要硬件软件相配合,下面是硬件的组成。
- 中断请求触发器(INTR)和中断屏蔽触发器
- 排队器
- 中断向量形成地址
- 程序中断接口电路
每台设备都必须要有一个中断请求触发器INTR为1的时候代表向CPU发出中断请求,将要执行的程序形成一个个的地址用硬件来进行一个排队,如果需要执行这个程序的时候产生一个中断向量地址,向量的地址代表中断程序的入口地址。
MASK决定优先级,如果优先级比较低那么mask的值就是1
程序查询通过软件的方式进行排队。硬件的方式是硬件排队器,但是这种方式只能屏蔽掉优先级别更低的程序,可以增加硬件实现更高级别的信号的屏蔽。
中断向量地址形成部件
CPU一旦响应了IO中断 就要暂停线性的程序,转去执行中断服务程序,不同的设备有不同的中断服务程序,每个服务程序都有一个入口地址,CPU必须找到这个入口地址。
入口地址可以由硬件和软件形成,这里介绍硬件。所谓硬件向量法,就是通过向量地址来寻找设备的专断服务程序的入口地址,而且向量的地址是由硬件电路产生的。
CS:IP相当于PC
中断服务程序的流程
允许中断服务程序的时候只需要讲EINT的值变为1就行。
可能需要我们对中断流程有很深入的理解。
程序查询和程序中断比较
回顾一下 之前的中断控制方式,如果是输入命令,先启动命令,通过地址总线选择相应的接口,通过地址译码之后的到选择电路,这个接口准备开始工作。
- 启动外部设备,跟设备的选择信号结合在一起,置D触发器为0,B触发器为1
- B触发器为0,通过接口电路发出启动设备的命令。
- 启动命令之后外部设备就可以把数据通过接口电路送到数据寄存器DBR中,此时外部设备的工作已经完成了。
- 完成后的外部设备会发出一个结束的信号,会置D触发器为1,
- D触发器产生1的信号配合着屏蔽触发器产生0的信号
- 两种信号通过INTR触发器产生中断请求的信号
- 但是产生信号的影响还有受排队器的控制
- 中断的请求排的级别高就可以为之服务了。
- 排队器经过设备编码之后产生了向量的地址。
杂项
中断的结构和工作过程
- 如果CPU处于开中断的状态时,一旦接受了中断请求,CPU就会自动关中断。同时为了返回主程序断点,CPU需要将PC的内容存至存储器(堆栈)中,中断结束后,为了返回主程序运行,并且允许接受新的中断,必须恢复寄存器和开中断
- CPU响应中断要保护现场,包括对pc和寄存器内容的保护,前者通过硬件实现,后者通过中断服务程序(软件来完成)。
- 处理中断的过程大致可分为 中断请求 中断判优 中断响应 中断服务 中断返回
- 执行中断服务程序的流程是保护现场 执行中断服务程序 恢复现场 中断返回
- 为了反应工作状态IO接口中通常设有状态触发器:常见的有 工作触发器B 完成触发器D 中断请求触发器INTR 中断屏蔽触发器MASK
- D/A信号是将数字信号转换成模拟信号,A/D信号是将模拟信号转换成数字信号
中断向量
- 若采用硬件向量法形成的中断服务程序的入口地址,CPU在中断周期需完成保护断点 将中断向量的地址送给PC,硬件关中断
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net