第7章 中断和异常
- 格式:ppt
- 大小:1.12 MB
- 文档页数:56
第七章微计算机的中断系统7-1 什么是中断类型码、中断向量、中断向量表?在基于8086/8088的微机系统中,中断类型码和中断向量之间有什么关系?解:处理机可处理的每种中断的编号为中断类型。
中断向量是指中断处理程序的入口地址,由处理机自动寻址。
中断向量表是存放所有类型中断处理程序入口地址的一个默认的内存区域。
在8086系统中,中断类型码乘4可得到向量表的入口,从此处读出4字节内容即为中断向量。
7-2 什么是硬件中断和软件中断?在PC机中两者的处理过程有什么不同?解:硬件中断通过中断请求线输入电信号来请求处理机进行中断服务;软件中断是处理机内部识别并进行处理的中断过程。
硬件中断一般由中断控制器提供中断类型码,处理机自动转向中断处理程序;软件中断完全由处理机内部形成中断处理程序的入口地址并转向中断处理程序,不需外部提供信息。
7-3 试叙述基于8086/8088的微机处理硬件中断的过程。
解:以INTR中断请求为例。
当8086收到INTR的高电平信号时,在当前指令执行完毕且IF=1的条件下,8086在两个总线周期中分别发出INTA#有效信号;在第二个INTA#期间,8086收到中断源发来的一字节中断类型码;8086完成保护现场的操作,CS、IP内容进入堆栈,清除IF、TF;8086将类型码乘4后得到中断向量入口地址,从此地址开始读取4字节的中断处理程序的入口地址,8086从此地址开始执行,完成INTR中断请求的响应过程。
7-4 在PC机中如何使用“用户中断”入口请求中断和进行编程?解:PC机中分配用户使用的中断是IRQ9,经扩展槽B40h亿引出,故把用户的中断请求线连接到B40h上。
在应用程序中,利用25H号系统调用将中断服务程序的入口地址写入对于0AH 类型中断对应的中断向量表中去。
在应用程序中把主片8259A D2屏蔽位清零,把从主片8259A D1屏蔽位清0,使主片的IR2、从片的IR1可以输入中断请求。
“微机系统原理与接口技术”第七章习题解答(部分)1. 8086系统采用向量式中断,试简述8086系统中中断类型码、中断向量、中断向量表的含义及其之间的关系。
答:中断类型码:用于区分不同的中断源,即系统中每个中断源都应该对应一个唯一的类型 码。
8086系统中的中断类型码以 8位无符号数(00H 〜0FFH )表示,一共可以区分 256个不同的中断源。
中断向量:中断服务程序(ISR )的入口地址,也就是 ISR 的第一条指令在存储器中的 位置。
8086系统中的中断向量由两个字(4个字节)组成,低位字表示入口的偏移地址,高 位字表示入口的段基址。
显然,每个中断类型码对应一个中断向量,则8086系统中共应有256个中断向量。
中断向量表:中断向量的存放地。
8086系统将最低的 1KB (00000H 〜003FFH ) RAM 空间用于存放这256个中断向量。
三者之间的关系是:利用中断类型码 n 可以很容易地从中断向量表中找到该中断源所对应的中断向量,即:中断向量存放的起始地址 m = nX 4,从中断向量表的 m 地址单元开始连续取出的四个字节就是 n 号中断的ISR 入口地址。
8086CPU 正是用这种方法完成中断索引的。
系统将广义中断分为异常和狭义中断两大类。
(5)对。
4. 8086系统的RAM 存储单元中,从 0000H:002CH 开始依次存放 23H 、0FFH 、00H 和 0F0H 4个字节的中断向量,该向量对应的中断类型码是多少?而中断类型码为 14H 的中断向量应存放在哪些存储单元中?答:中断向量0F000:0FF23存放在0002CH 双字单元中,说明其对应的中断类型码N =2CH - 4= 0BH 。
14H 号中断向量的起始存放地址为4X 14H = 00050H ,即该中断向量的偏移量部分存放2.判断下列说法是否正确,如有错,指出错误原因并改正:(1) (2) (3) (4) (5) 答:(1)优先级别高的中断总是先响应、先处理。
分析流水线处理器的中断和异常响应机制——以ARM7系列3级流水线为例SC11011042-吴德云为增加处理器指令流的速度,ARM7系列使用3级流水线,允许多个操作同时处理,比逐条指令执行要快。
[1]图1ARM7流水线技术示意图PC 指向正被取指的指令,而非正在执行的指令。
ARM 流水线的一条指令只有在完全通过”执行”阶段才被处理。
这句话很重要,也就是说,当处理器开始取第四条指令时,第一条指令才完成执行。
我们如果不考虑流水线的设计,只看它的原理,其实是很简单的,他的复杂之处在于发生流水线冒险时,如何保证其工作得仍然很好。
流水线冒险一般分为控制冒险和数据冒险,而数据冒险一般可分为阻塞(即下一条指令依赖于前一条指令的结果)、分支和跳转、异常(异常和中断)。
由于ARM 是硬件flush 流水设计的,当发生冒险时,会暂停取指,然后清流水,(MIPS 解决冒险通常依赖于编译器,比如插入一条NOP 指令及重新排列指令序列)。
1.1ARM7的中断响应机制1.1.1中断延时从外部请求信号发出到取出对应的中断服务程序(ISR)的第一条指令,这期间的间隔时间。
1.1.2中断过程ARM 体系中通常在存储地址的低端固化了一个32字节的硬件中断向量表,用来指定各异常中断及其处理程序的对应关系。
当一个异常出现以后,ARM 微处理器会执行以下几步操作:1)保存处理器当前状态、中断屏蔽位以及各条件标志位;2)设置当前程序状态寄存器CPSR 中相应的位;3)将寄存器lr_mode 设置成返回地址;4)将程序计数器(PC)值设置成该异常中断的中断向量地址,从而跳转到相应的异常中断处从存储器中读取指令解码指令寄存器读(从寄存器Bank )移位及ALU 操作寄存器写(到寄存器Bank )PC PC PC -4PC-2PC -8PC -4ARM Thumb理程序处执行。
在接收到中断请求以后,ARM处理器内核会自动执行以上四步,程序计数器PC总是跳转到相应的固定地址。
第7章输入/输出与中断一、自测练习题㈠选择题1.一微机系统有10根地址线用于I/O端口寻址,因而具有I/O空间的范围是( )字节。
A) 1024 B) 10K C) 0.5M D) 1M2.8086CPU读/写一次存储器或I/O端口所需的时间称为一个( )。
A) 总线周期 B) 指令周期 C) 时钟周期 D) 基本指令执行时间3.微型计算机的输入/输出有三种不同的控制方法,其中以( )控制的输入/输出是微机进行I/O的一种最主要的控制方式。
A) 程序控制 B) 中断控制C) DMA控制D) 以上均可4.程序查询I/O方式的工作流程是按( )的次序完成一个字符的传输。
A) 写数据端口,读/写控制端口B) 读状态端口,读/写数据端口C) 写控制端口,读状态端口,写数据端口D) 随I/O接口的具体要求而定5.在CPU与外设的I/O传送控制方式中,效率高、实时性强的方式是( )。
A) 同步传送 B) 查询传送 C) 无条件传送 D) 中断传送6.在CPU与外设的I/O传送控制方式中,传送速度最快的方式是( )。
A) 无条件传送 B) 查询传送 C) 中断传送 D) DMA传递7.用具有两个状态(“0”和“1”态)的一组开关作简单输入设备时,应采用( )传送方式来输入信息。
A) 无条件B) 查询C) 中断D) DMA8.用一组发光二极管作为简单输出设备时,应采用( )传送方式来输出信息。
A) DMA B) 无条件C) 查询D) 中断9.在微机系统中引入中断技术,可以( )。
A) 提高外设速度B) 减轻主存负担C) 提高处理器的效率D) 增加信息交换的精度10.CPU响应中断请求的时刻是在( )。
A) 执行完成正在执行的程序以后 B) 执行完正在执行的指令以后C) 执行完本时钟周期以后D)执行完正在执行的机器周期以后11.8086/8088CPU向应两个硬中断INTR和NMI时,相同的必要条件是( )。
A) 允许中断B) 当前I/O操作执行结束C) 总线空闲D) 当前访问内存操作结束12.在微型计算机系统中,高速外设与内存储器进行批量数据传送时,应采用( )。
中断和异常处理读书笔记中断(interrupt)通常被定义为一个事件,该事件改变处理器执行的指令顺序。
这样的事件与CPU芯片内外部硬件电路产生的电信号相对应。
中断通常分为同步(synchronous)中断和异步(asynchronous)中断:同步中断是当指令执行时由CPU控制单元产生的,之所以称为同步,是因为只有在一条指令终止执行后CPU才会发出中断。
异步中断是由其他硬件设备依照CPU时钟信号随机产生的。
在Intel微处理器手册中,把同步和异步中断分别称为异常(exception)和中断(interrupt)。
中断是由间隔定时器和I/O设备产生的,而异常是由程序的错误产生的,或者是由内核必须处理的异常条件产生的。
中断信号的作用:中断信号提供了一种特殊的方式,使处理器转而去执行正常控制流之外的代码。
当一个中断信号达到时,CPU必须停止它当前正在做的事情,并且切换到一个新的活动。
为了做到这一点,就要在内核态堆栈保存程序计数器的当前值,并把与中断类型相关的一个地址放进程序计数器。
中断处理与进程切换有一个明显的差异:由中断或异常处理程序所执行的代码不是一个进程,更确切的说,它是一个内核控制路径,代表中断发生时正在运行的进程执行。
作为一个内核控制路径,中断处理程序比一个进程要轻,中断的上下文很少,建立蒙昧无知中止中断处理所需要的时间很少。
中断处理是由内核执行的最敏感的任务之一,因为它必须满足以下约束:当内核正打算去完成一些别的事情时,中断随时会到来。
因此,内核的目标就是让中断尽可能快的处理完,尽其所能把更多的处理向后推迟。
内核响应中断后需要进行的操作分为两部分:关键而紧急的部分,内核立即执行;其余推迟的部分,内核随后执行。
因为中断随时会到来,所以内核可能正在处理其中一个中断时,另一个中断又发生了。
因此,中断处理程序必须编写成使相应的内核控制路径能以嵌套的方式执行。
当最后一个内核控制路径终止时,内核必须能恢复被中断进程的执行,或者,如果中断信号已导致了重新调度,内核能切换到另外的进程。
《嵌入式系统设计》作业习题第一章:嵌入式系统概述1 .和PC系统机相比嵌入式系统不具备以下哪个特点(C)。
A、系统内核小B、专用性强C、可执行多任务D、系统精简2 .嵌入式系统有硬件和软件部分构成,以下(C)不属于嵌入式系统软件。
A.系统软件B.驱动C.FPGA编程软件D.嵌入式中间件3 .以下哪个不是嵌入式系统设计的主要目标?(D)A低成本B低功耗C实时要求高D超高性能4 .下面哪个系统不属于嵌入式系统(C)A、MP3播放器B、GPS接收机C、“银河”巨型计算机D、“银河玉衡”核心路由器5 .下面关于哈佛结构描述正确的是(A)A程序存储空间与数据存储空间分离B存储空间与IO空间分离C程序存储空间与数据存储空间合并D存储空间与IO空间合并6 .嵌入式操作系统的主要目标并不包括(A)A强大多任务支持B实时处理能力C代码体积D与硬件的交互能力7 .以下属于嵌入式操作系统的是(BC)A、LinUX操作系统B、μC∕0S∙ll操作系统C、VXWorkS操作系统D、UbUntU操作系统8 .嵌入式系统的基本定义为:以O中心,以()为基础,O可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的O系统。
应用计算机技术软硬件专用计算机9 .以MCU为核心的嵌入式产品至少应包括(BCD)A、显示部分B、输入部分C、输出部分D、通信部分10、一般而言,嵌入式系统的构架可以分为4个部分:分别是(处理器)、存储器、输入/输出和软件,一般软件亦分为操作系统相关和(应用软件)两个主要部分。
第二章:STM32微控制器概述LCorteX-M处理器采用的架构是(D)(A)v4T(B)v5TE(C)v6(D)v72 .Cortex-M3的提供的流水线是(B)(A)2级(B)3级(C)5级(D)8级3 .Cortex-M3系列处理器支持Thumb-2指令集。
(对)4.STM32系歹IJMCU在使用电池供电时,提供3.3~5V的低电压工作能力。
408中计算机组成原理选择题各章节分408中计算机组成原理是一门重要的课程,它涵盖了计算机组成原理的各个方面。
在这门课程中,选择题是一种常见的考试形式,它能够帮助学生巩固知识,提高解题能力。
下面将对408中计算机组成原理选择题的各章节进行分析。
第一章:计算机系统概述。
这一章主要介绍了计算机系统的基本概念和组成部分。
选择题主要涉及计算机的发展历程、计算机的基本组成和计算机的性能指标等内容。
第二章:数据的表示和运算。
这一章主要介绍了计算机中数据的表示方式和运算方法。
选择题主要涉及二进制数的表示和转换、定点数和浮点数的表示和运算等内容。
第三章:存储器。
这一章主要介绍了计算机中的存储器的种类和组织方式。
选择题主要涉及存储器的层次结构、存储器的访问方式和存储器的容量等内容。
第四章:指令系统。
这一章主要介绍了计算机中的指令系统的设计和实现。
选择题主要涉及指令的格式和编码、指令的执行过程和指令的寻址方式等内容。
第五章:中央处理器。
这一章主要介绍了计算机中的中央处理器的结构和功能。
选择题主要涉及中央处理器的组成和工作原理、中央处理器的时序控制和数据通路设计等内容。
第六章:总线。
这一章主要介绍了计算机中的总线的种类和工作原理。
选择题主要涉及总线的分类和特点、总线的传输方式和总线的控制方式等内容。
第七章:输入输出系统。
这一章主要介绍了计算机中的输入输出系统的组成和工作原理。
选择题主要涉及输入输出设备的分类和特点、输入输出接口的设计和输入输出控制方式等内容。
第八章:中断和异常处理。
这一章主要介绍了计算机中的中断和异常处理的机制和方法。
选择题主要涉及中断的分类和处理过程、异常的产生和处理方式等内容。
通过对408中计算机组成原理选择题的各章节进行分析,我们可以看出,这门课程的内容非常丰富,涵盖了计算机组成原理的各个方面。
选择题能够帮助学生巩固知识,提高解题能力。
因此,学生在学习这门课程时,应该注重理论知识的学习,同时也要多做选择题,加强对知识的理解和应用能力。
1.2 操作系统以什么方式组织用户使用计算机?答:操作系统以进程的方式组织用户使用计算机。
用户所需完成的各种任务必须由相应的程序来表达出来。
为了实现用户的任务,必须让相应功能的程序执行。
而进程就是指程序的运行,操作系统的进程调度程序决定CPU在各进程间的切换。
操作系统为用户提供进程创建和结束等的系统调用功能,使用户能够创建新进程。
操作系统在初始化后,会为每个可能的系统用户创建第一个用户进程,用户的其他进程则可以由母进程通过“进程创建”系统调用进行创建。
1.4 早期监督程序(Monitor)的功能是什么?答:早期监督程序的功能是代替系统操作员的部分工作,自动控制作业的运行。
监督程序首先把第一道作业调入主存,并启动该作业。
运行结束后,再把下一道作业调入主存启动运行。
它如同一个系统操作员,负责批作业的I/O,并自动根据作业控制说明书以单道串行的方式控制作业运行,同时在程序运行过程中通过提供各种系统调用,控制使用计算机资源。
1.7 试述多道程序设计技术的基本思想。
为什么采用多道程序设计技术可以提高资源利用率?答:多道程序设计技术的基本思想是,在主存同时保持多道程序,主机以交替的方式同时处理多道程序。
从宏观上看,主机内同时保持和处理若干道已开始运行但尚未结束的程序。
从微观上看,某一时刻处理机只运行某道程序。
可以提高资源利用率的原因:由于任何一道作业的运行总是交替地串行使用CPU、外设等资源,即使用一段时间的CPU,然后使用一段时间的I/O设备,由于采用多道程序设计技术,加之对多道程序实施合理的运行调度,则可以实现CPU和I/O设备的高度并行,可以大大提高CPU与外设的利用率。
1.8 什么是分时系统?其主要特征是什么?适用于哪些应用?答:分时系统是以多道程序设计技术为基础的交互式系统,在此系统中,一台计算机与多台终端相连接,用户通过各自的终端和终端命令以交互的方式使用计算机系统。
每个用户都感觉到好像是自己在独占计算机系统,而在系统内部则由操作系统以时间片轮转的方式负责协调多个用户分享CPU。
中断机制和中断描述符表、中断和异常的处理注:本分类下⽂章⼤多整理⾃《深⼊分析linux内核源代码》⼀书,另有参考其他⼀些资料如《linux内核完全剖析》、《linux c 编程⼀站式学习》等,只是为了更好地理清系统编程和⽹络编程中的⼀些概念性问题,并没有深⼊地阅读分析源码,我也是草草翻过这本书,请有兴趣的朋友⾃⼰参考相关资料。
此书出版较早,分析的版本为2.4.16,故出现的⼀些概念可能跟最新版本内核不同。
此书已经开源,阅读地址1、中断向量Intel x86 系列微机共⽀持256 种向量中断,为使处理器较容易地识别每种中断源,将它们从0~255 编号,即赋予⼀个中断类型码 n,Intel 把这个8 位的⽆符号整数叫做⼀个向量,因此,也叫中断向量。
所有256 种中断可分为两⼤类:异常和中断。
异常⼜分为故障(Fault)、陷阱(Trap)和夭折(Abort),它们的共同特点是既不使⽤中断控制器,⼜不能被屏蔽。
中断⼜分为外部可屏蔽中断(INTR)和外部⾮屏蔽中断(NMI),所有I/O 设备产⽣的中断请求(IRQ)均引起屏蔽中断,⽽紧急的事件(如硬件故障)引起的故障产⽣⾮屏蔽中断。
⾮屏蔽中断的向量和异常的向量是固定的,⽽屏蔽中断的向量可以通过对中断控制器的编程来改变。
Linux 对256 个向量的分配如下。
• 从0~31 的向量对应于异常和⾮屏蔽中断。
• 从32~47 的向量(即由I/O 设备引起的中断)分配给屏蔽中断。
• 剩余的从48~255 的向量⽤来标识软中断。
Linux 只⽤了其中的⼀个(即128 或0x80向量)⽤来实现系统调⽤。
当⽤户态下的进程执⾏⼀条int 0x80 汇编指令时,CPU 就切换到内核态,并开始执⾏system_call() 内核函数。
2、外设可屏蔽中断、异常及⾮屏蔽中断Intel x86 通过两⽚中断控制器8259A 来响应15 个外中断源,每个8259A 可管理8 个中断源。
PLC中断与异常PLC(可编程逻辑控制器)是自动化控制领域常用的设备,也是工业生产自动化程度不断提高的重要工具之一。
PLC的主要作用是对各种输入信号(如开关量、模拟量等)进行采集、处理,再根据设定的各种输出条件(比如控制电机运转、开关灯光等)来控制各种工业设备的运作。
然而,即使是最先进的PLC设备也难以完全避免中断和异常,下面我们从PLC中断和异常这两个方面来进行分析。
一、PLC中断1.什么是PLC中断PLC中断是指由于外部事件的发生,导致原来正在被执行的程序需要暂时中断执行,去处理其他事件,等处理完这个事件后,再回到原来的执行点继续执行。
在传统的计算机中,系统中断通常是由外设驱动产生的,但在PLC中,大多数中断都是由PLC自身的输出信号直接产生的。
这些输出信号一般会触发PLC内部的中断处理程序,从而引发PLC中断。
2.PLC中断类型(1)I/O中断I/O中断是PLC中最常见的中断类型,它是由PLC的输入/输出模块所控制的。
当外部程序的输入信号发生变化时,输入模块会向PLC发送一个中断请求信号,PLC则会在当前的程序执行点上停下来,并跳转到中断服务程序,以完成相关的中断处理操作。
(2)定时器/计数器中断为保证PLC所执行的程序能够满足实时性要求,很多PLC设备都内置了定时器/计数器。
这些定时器/计数器通常会在PLC运行的同时计时/计数,当计时时间达到设定值时,会向PLC发送中断请求信号,引发PLC中断。
(3)总线中断当PLC通过网络(如CAN总线、以太网等)连接到其他设备上时,发生在其他设备上的事件也可能会导致PLC中断。
比如当某个节点失联时,周围节点会发送一个“节点失联”信息帧,PLC 就会收到这个信息,判断该事件为中断请求,并按照相应的中断处理程序进行处理。
二、PLC异常1.什么是PLC异常在PLC系统中,除了中断外,还存在一些异常。
与中断不同的是,异常通常是源于PLC本身的一些内部问题,如错误的PLC程序设计、PLC硬件故障、传感器故障等。