计算机中断技术大作业题目深入理解中断系统目录一:什么是中断 (2)中断的定义 (2)中断技术差生的原因 (3)中断技术差生的优点 (5)中断技术差生的缺点 (7)二:基本概念 (8)中断源 (8)我们把引起中断的原因,或者能够发出中断请求信号的来源统称为中断源。
在上面看书的例子中,打断你看书的时间就是中断源(电话响了)。
(8)中断嵌套 (8)中断级联 (9)图 (10)软中断,硬中断 (10)NMI(不可屏蔽中断)&可屏蔽中断 (11)中断请求号&中断向量 (11)中断响应INTA&中断周期 (11)中断响应INTA:当8259A接收到第一个/INTA有效的负脉冲后,将被响应的中断源置入ISR(正在服务寄存器)的对应位,即ISR对应位置1,同时把IRR(中断请求寄存器)的对应位清0; (11)单步中断&IF中断允许标志位 (12)IMR中断屏蔽字&中断优先级 (12)中断控制器&APIC (12)中断共享&中断冲突 (12)MSI-X中断(PCI E)、中断处理子程序 (13)0号中断、1号中断 (13)中断描述符、中断描述符表 (13)异常 (13)中断门、OS的事件、消息 (14)三:中断资源相关 (14)我的电脑中断相关资源占用情况 (14)ISA中断 (18)PCI中断 (22)IRQ0-15中断请求外的 (22)四:中断系统 (22)中断系统怎样协调完成中断过程 (23)五:多处理器系统的中断 (24)怎么连接 (24)如何处理 (25)六:硬件、软件是怎么配合完成中断处理的 (25)七:编写8251查询发送、中断接收的自检程序 (27)摘要学习计算机组成原理和计算机接口技术之中,“中断”是一个必须要学习的美容,计算机之所以能够“智能”的运行起来使得其更容易被人使用很重要的一点就是有了中断技术。
因为中断计算机从一个只靠计算速度和存储量来来博得人们喜爱的机器变成了一个用户有好的聪明的机器。
本文将从几个问题入手来来逐一介绍计算机中断技术和中断系统。
一:什么是中断中断的定义在计算机科学中,中断是指由于接收到来自外围硬件(相对于中央处理器和内存)的异步信号或来自软件的同步信号,而进行相应的硬件/软件处理。
发出这样的信号称为进行中断请求(interrupt request,IRQ)。
硬件中断导致处理器通过一个上下文切换(context switch)来保存执行状态(以程序计数器和程序状态字等寄存器信息为主);软件中断则通常作为CPU指令集中的一个指令,以可编程的方式直接指示这种上下文切换,并将处理导向一段中断处理代码。
中断在计算机多任务处理,尤其是实时系统中尤为有用。
这样的系统,包括运行于其上的操作系统,也被称为“中断驱动的”(interrupt-driven)。
上面是来自维基百科对中断定义。
个人认为中断就是计算机在执行程序的过程中,当出现异常情况或者是特殊请求时,计算机停止执行现行程序的运行,转向对这些异常情况或特殊请求的处理,处理后再返回到现行程序的间断处,继续执行原程序,这就是中断。
图中断处理过程打一个不太恰当的比方。
比如说你正在看书那么你就是CPU,看书就相当于你正在执行的程序,当你电话响了或者是有其他的事情发生导致你必须停下正在看的书去做另一件事(接电话)。
那么这就是一个中断,在这个中断中现行程序是看书,中断时电话响了,CPU是你自己。
当你接完电话之后(假设接完电话就没其他特殊的事了)那么你就回去看书,也就相当于定义中的返回执行原程序。
中断技术差生的原因讲了上面的内容也许你对中断概念有了一定的了解。
那么为什么会产生中断呢为了介绍为什么会产生中断我们有必要对计算机的组成结构和工作的过程来了解一下。
下图是计算机的组成结构。
图计算机组成结构可以看到计算机石油输入输出设备控制器运算器和存储器组成的,那么计算机是如何工作的呢计算机工作时,首先由键盘等输入设备。
输入程序和数据,程序和数据信息,通过J/O接口电路,经数据总线送入主存贮器中,接着CPU开始运行输入的指令,并处理输入的数据。
CPU要进行下列工作:⑴将指令的地址放到地址总线;⑵按着上述地址,通过数据总线在主存贮器中找到并取出指令,由指令译码器对该指令进行分析译码;⑶根据译码结果,取出指令所要处理的数据地址及相应的数据;⑷执行指令所代表的具体操作;⑸检查是否还有其它的控制信号,若有,则对定进行处理;⑹把执行指令后所得的指令结果、状态的标志信号、控制信号和定时信号提供给整个微机系统;⑺继续处理用户输入的程序和数据。
可以看到上在计算机工作过程中要始终检查有没有控制信号,而这控制信号中就有关于中断的控制信号。
在计算机系统中中断的例子有很多。
用户敲击键盘,每击一次键都要产生一个中断信号。
告诉CPU有“键盘输入发生了”,要求CPU读入键值。
至于为什么必须要读入键值呢其实很简单,在执行程序和用户控制两个事件之间显然是用户控制事件的优先级要高于执行程序的优先级。
要不你按下键盘电脑半天没有反应那你还不得把电脑踢了以I/O中断为例。
在I/O设备与主机交换信息时,由于设备本身机电特性的影响,其工作效率较低,与CPU无法匹配。
因此,CPU启动之设备之后,往往需要等待一段时间才能实现与I/O设备之间的信息交换。
如果在设备准备同时,CPU不做无所谓的等待,而继续执行现行程序,只有当I/O设备就绪向CPU提出请求后在暂时中断CPU现行程序转入I/O服务程序,这便产生了I/O中断。
中断是用以提高计算机工作效率、增强计算机功能的一重要技术。
最初引入硬件中断,只是出于性能上的考量。
如果计算机系统没有中断,则处理器与外部设备通信时,它必须在向该设备发出指令后进行忙等待(Busy waiting,反复轮询该设备是否完成了动作并返回结果。
这就造成了大量处理器周期被浪费。
引入中断以后,当处理器发出设备请求后就可以立即返回以处理其他任务,而当设备完成动作后,发送中断信号给处理器,后者就可以再回过头获取处理结果。
这样,在设备进行处理的周期内,处理器可以执行其他一些有意义的工作,而只付出一些很小的、切换上下文所引发的时间代价。
后来被用于CPU外部与内部紧急事件的处理、机器故障的处理、时间控制等多个方面,并产生通过软件方式进入中断处理(软中断)的概念。
中断技术差生的优点先让我们感受一下中断机制对并发处理带来的帮助。
让我们用程序来探讨一下烧水问题,如果没有“中断”(注意,我们这里只是模仿中断的场景,实际上是用异步事件——消息——处理机制来展示中断产生的效果。
毕竟,在用户空间没有办法与实际中断产生直接联系,不过操作系统为用户空间提供的异步事件机制,可以看作是模仿中断的产物),设计如下:voidStayInKitchen(){boolWaterIsBoiled= false;while(WaterIsBoiled!= true ){boolVaporGavenOff= false;if(VaporGavenOff)WaterIsBoiled=true;elseWaterIsBoiled=false;}n”);n”);}voidwatching_tv(){while(1){编程异常通常叫做软中断2.? 软中断是通讯进程之间用来模拟硬中断的一种信号通讯方式。
3.? 中断源发中断请求或软中断信号后,CPU或接收进程在适当的时机自动进行中断处理或完成软中断信号对应的功能4.? 软中断是软件实现的中断,也就是程序运行时其他程序对它的中断;而硬中断是硬件实现的中断,是程序运行时设备对它的中断。
?硬中断:1.? 硬中断是由外部事件引起的因此具有随机性和突发性;软中断是执行中断指令产生的,无面外部施加中断请求信号,因此中断的发生不是随机的而是由程序安排好的。
2.? 硬中断的中断响应周期,CPU需要发中断回合信号(NMI不需要),软中断的中断响应周期,CPU不需发中断回合信号。
3.? 硬中断的中断号是由中断控制器提供的(NMI硬中断中断号系统指定为02H);软中断的中断号由指令直接给出,无需使用中断控制器。
4.? 硬中断是可屏蔽的(NMI硬中断不可屏蔽),软中断不可屏蔽。
区别:1.? 软中断发生的时间是由程序控制的,而硬中断发生的时间是随机的2.? 软中断是由程序调用发生的,而硬中断是由外设引发的3.? 硬件中断处理程序要确保它能快速地完成它的任务,这样程序执行时才不会等待较长时间NMI(不可屏蔽中断)& 可屏蔽中断非屏蔽中断是出现在NMI线上的请求,不受标志位IF的影响,在当前指令执行完以后,CPU就响应。
这种中断通常用于电源故障。
非屏蔽中断的优先权高于屏蔽中断。
可屏蔽中断I/O设备发出的所有中断(IRQ)都可以产生可屏蔽中断,受标志位IF的影响,根据中断循序标志的设置来判断CPU是否响应中断请求。
中断请求号 & 中断向量中断请求号就是中断编号。
中断向量中断服务程序的入口地址。
在某些计算机中,中断向量的位置存放一条跳转到中断服务程序入口地址的跳转指令。
中断响应INTA & 中断周期中断响应INTA:当8259A接收到第一个/INTA有效的负脉冲后,将被响应的中断源置入ISR(正在服务寄存器)的对应位,即ISR对应位置1,同时把IRR(中断请求寄存器)的对应位清0;当8259A接收到第二个/INTA有效的负脉冲后,就将其中断类型号送入数据总线。
中短周期:当CPU采用中断方式实现I/O交换信息时,CPU在每条指令执行结束之后检查是否又中断请求,如果有就执行中断响应,又称中短周期。
单步中断 & IF中断允许标志位单步中断:执行一条指令中断一次。
IF中断允许标志位:标识寄存器中的一位,可以屏蔽可屏蔽中断请求INTR如果外设有可屏蔽中断请求INTR,而此时CPU内IF=0,那么CPU不会响应中断只有可屏蔽中断请求INTR和IF有关系,内中断和不可屏蔽中断NMI,都不受IF的影响IMR中断屏蔽字 & 中断优先级IMR中断屏蔽字:以实现对各中断的屏蔽。
中断优先级:为使系统能及时响应并处理发生的所有中断,系统根据引起中断事件的重要性和紧迫程度,硬件将中断源分为若干个级别,称作中断优先级。
中断控制器 & APIC中断控制器:中断控制器的功能就是在多个中断源的系统中,接收外部的中断请求,并进行判断,选中当前优先级最高的中断请求,再将此请求送到CPU的INTR端;当CPU响应中断并进入中断子程序的处理过程后,中断控制器仍负责外部的中断请求的管理。
比如当某个外部中断的请求的优先级高于当前正在处理的中断优先级时,中断控制器会让此中断通过而到达CPU的INTR端,从而实现中断的嵌套,反之,对其它的级别较底的中断则给予禁止。