您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > 微机原理第6章 - 中断系统
本章主要内容•基本知识中断与异常、中断分类、实地址方式与保护方式下的中断*、中断过程、中断管理等•可编程中断控制器*8259A的内部结构及工作原理*、8259A的引脚信号、8259A的工作方式*、8259A的编程方法*、高级中断控制器•中断调用及其应用第6章中断系统6.1中断的基本知识一、中断与异常二、中断分类三、实方式与保护方式下的中断四、中断过程五、外部中断源的管理一、中断与异常1.中断2.异常3.中断和异常的区别4.异常的类型什么是中断所谓中断,是指处理器在执行正常程序过程中,当出现某些异常情况或某个外部设备请求时,处理器暂时中止正在执行的程序,转而去执行其特定的服务程序,并在执行完服务程序后返回原来被中止的程序处继续执行的过程。什么是异常?异常是指把因内部意外条件而改变程序执行流程以报告出错情况和非正常状态的过程称为异常中断(简称异常)。中断和异常有什么区别?(1)中断处理异步发生的外部事件。(2)异常处理同步发生的内部事件。(3)硬件中断是作为外部事件的结果而发生的。(4)中断是在当前指令执行完后才去执行服务程序的,在中断处理程序完成中断服务后,程序继续执行被中断指令之后的指令。异常有哪几种类型?(1)失效(2)陷井(3)终止什么是失效失效又称为故障(Faults):是在引起异常的指令之前被检测和处理。在执行完失效对应的服务程序后,会返回到该失效指令处,重新执行该指令。什么是陷井?陷井(Traps)是在引起异常的指令执行之后才被报告,且服务程序完成后,返回到原程序引起异常指令的下一条指令处继续向下执行。★陷井与中断处理方法一样,但与失效不同什么是终止?中止(Abort)是一种不能确定引起异常指令确切位置的异常(有时称为夭折或失败)。二、中断分类内部中断或异常1.失效异常2.陷井异常3.中止异常•中断分类图主要失效异常•除法出错、调试异常、界限检查、无效操作码、协处理器不存在、无效TSS、段不存在、堆栈段溢出、一般性保护错、页面出错、协处理器错(仅80286)、机器检查(Pentium~Pentium4)等。主要陷井异常•系统中的主要陷井异常包括单步陷井、断点异常、溢出以及中断指令INTn等。•中断分类图主要中止异常•系统中的主要中止异常包括双重故障(在执行一个异常处理程序中又出现另一个异常)、协处理器段溢出等。•中断分类图外部中断1.不可屏蔽中断(NMI)2.可屏蔽中断(INTR)•中断分类图不可屏蔽中断•含义:不能用软件来控制是否允许中断的一种外部中断。•常见NMI中断有:(1)电源掉电(2)存储器检验出错(3)总线奇偶错等。•中断分类图可屏蔽中断•含义:可用软件控制是否允许中断的外部中断。即STI使IF=1,允许中断;CLI使IF=0,禁止中断。•常见INTR中断有:所有外部设备中断如键盘、鼠标、打印机、显示器、声卡、CD-ROM等•中断分类图三、实方式与保护方式下的中断1.术语及概念2.实方式下中断服务程序入口地址3.保护方式下中断服务程序入口地址*4.保护方式与实方式中断主要区别术语及概念•中断类型号•中断向量•中断向量表•中断描述符•中断描述符表中断类型号•中断类型号:中断类型的唯一编号。•数量:256个。•编号:0~255。•适用范围:8086~Pentium4(各种工作方式)返回中断向量•含义:中断服务程序的入口地址(CS:IP)•组成及格式:共4个字节,段地址及偏移地址。中断向量表•含义:存放256个中断向量的内存区域。即存放中断服务程序入口地址的内存区域称为中断向量表。•中断向量表大小:1KB•中断向量表地址范围:00000H~003FFH。•适用范围:实地址方式。中断向量组成及格式中断描述符•含义:描述某中断对应中断服务程序的入口地址信息及其属性,包括偏移地址和对应段的选择子。•组成及格式:8个字节中断描述符表•含义:存放256个中断描述符的内存区域。•中断描述符表容量:2KB。•适用范围:保护地址和V86方式。实方式下中断服务程序入口地址•中断类型号n与其对应的中断向量存放起始地址之间的关系是:起始地址=4×n;末地址=4×n+3即中断向量在4×n~4×n+3指示的内存单元中•示例实地址方式下的中断服务程序入口地址求法(例子)【例1】假设在实地址方式下,内存单元00140H到00147H中存放的内容如图所示,求51H号中断的中断服务程序入口地址。解:例1求解(1)求中断向量存放的首地址和末地址51H可知中断向量存放首地址为51H×4=144H(左移两位方法)末地址=51H×4+3=147H(2)从首末地址对应的4个单元找出中断向量00144H到00147H中内容就是51H号中断的中断向量。对照中断向量组成及格式可知段地址=4540H,偏移地址=3430H,所以中断服务程序入口地址为段地址×16+偏移地址=45400H+3430H=48830H保护方式下中断服务程序入口地址(1)通过中断类型号n从中断描述符表IDT中找出中断描述符。目的是求偏移地址。中断描述符首地址=中断类型号码n×8+IDT基地从该地址开始取出8字节内容就是中断描述符。(2)通过中断描述符中的选择子从GDT或LDT中找出或求出段描述符。(3)据段描述符提供的段基地址与中断描述符提供的偏移地址合成物理地址。示例保护方式下的中断服务程序入口地址求法(例子)【例2】已知保护方式下,内存单元中有关单元存放的内容如右图所示,IDT的首地址为00280000H,GDT首地址为00500000H,求20H号中断服务程序入口地址。解:例2求解(1)求偏移地址先找中断描述符,然后从中找出中断服务程序偏移地址由n=20H知,中断描述符存放在00280000H+20H×8=00280100H开始的8个单元,所以中断描述符为:0042EE0000132012H(2)求中断服务程序所在段的段基地址段选择子为:0013H=0000000000010011BTI=0,段描述符在GDT中,RPL=11为普通用户程序请求,索引值=0000000000010B所以中断描述符描述的中断服务程序所在段描述符在GDT中的位置为:索引值×8+GDT首地址=0000000000010000B+00500000H=00500010H因此,段描述符为:3918404234000096H段基地址=39423400H(3)合成物理地址服务程序入口地址=对应段的段基地址+偏移地址=39423400H+00422012H=39845412H段选择子与段描述符段基址(B31-B24)GD00段界(L19-L16)高地址访问权字节段基址(B23-B16)段基址(B15-B0)低地址段界(L15-L0)索引TIRPL15143210....段选择子段描述符表指示器0:GDT1:LDT保护方式与实方式中断主要区别(1)表的大小不同中断描述符表2KB;中断向量表1KB(2)表的位置不同保护方式下的中断描述符表可位于内存的任何位置,由中断描述符寄存器(IDTR)决定;实地址方式下的中断向量表只能固定在00000H~003FFH的最低内存1KB的区域。(3)中断服务程序存放位置不同保护方式下的中断服务程序可以放到内存的任何区域,而实地址方式下的中断服务程序只能在存放的1MB以下的内存区域。四、中断过程1.中断请求2.中断判优3.中断响应4.中断服务(处理)5.中断返回中断请求•含义:中断源发出中断请求信号•外部中断源主要有:(1)I/O设备,如键盘、显示器、打印机等。(2)数据通道,如软、硬磁盘,磁带等。(3)实时钟,如外部所需的定时电路等。(4)故障源,如掉电、存储器奇偶校错等。•内部中断源主要包括:(1)CPU指令产生异常,如被0除、溢出、单步等。(2)程序执行INT软件中断指令,如INT19H等。中断判优•由于中断是随机的,可能同时出现多个中断源同时请求中断,这时必须对申请中断的中断源进行优先级判别,这一阶段称为中断判优。中断响应•中断响应过程:把从接到中断请求到中断处理之前,即从请求有效到转中断服务程序入口地址这一段时间。•可屏蔽中断的响应过程可屏蔽中断的响应过程(1)处理器接到中断申请,处理完当前指令即进入响应周期。(2)第二阶段即中断响应周期,在其间CPU向外部中断控制器发送两个响应脉冲信号INTA。第一个响应脉冲通知中断控制器,已经响应外部中断请求,让中断控制器提供中断类型号。第二个响应脉冲,CPU取走中断类型号。(3)将标志寄存器中的内容压入堆栈保护,然后清IF和TF标志,以禁止INTR引脚以及陷进和单步中断。(4)将断点地址压入堆栈(CS:EIP或CS:IP)。断点地址:指中断时CPU待执行的下一条指令对应的逻辑地址。顺序:先压入断点地址的CS,后压入偏移地址EIP(或IP)。(5)CPU得到中断类型号码n后,通过中断类型号与中断服务程序入口地址的关系找出该类型对应的段基地址和偏移地址,从而转入中断服务程序入口地址。完成中断响应任务。中断服务(处理)1.保护现场保护现场实质:将重要信息压入堆栈。2.开中断目的:开放所有可屏蔽中断,以允许高级中断嵌套。3.执行中断服务程序中断服务程序主体-中断的目的。4.关中断目的:关中断以确保可靠有效地恢复现场。5.恢复现场恢复现实质:将原来压入堆栈中的内容弹出来。中断返回•中断服务程序的最后一条指令都无一例外地使用中断返回指令(如IRET或IRETD)。•中断返回的目的:使原来在中断响应过程中的断点地址和标志寄存器中的内容,依次从堆栈中弹出,以便继续执行原来的程序。五、外部中断源的管理•问题的引出:多个外部中断源同时请求中断,而CPU仅一个INTR引脚,如何处理?•解决方法:对中断控制器硬件编程实现中断管理。•中断源管理的任务:区别中断源、识别中断源优先级以及处理多级中断嵌套问题。中断优先级识别•中断优先级排队:把多个中断源按轻重缓急优先处理权由高到低的顺序排列起来。•排队方法:软件排队和硬件排队。•在8086~Pentium4系统中,中断优先级从高到低依次为:内部异常中断(除单步)INTnNMIINTR单步中断多级中断嵌套•含义:在低级中断中断正在处理时高一级中断请求,则进入高级中断处理程序,处理完高级再返回低级中断处理程序。•示意图6.2可编程中断控制器8259A•基本情况:(1)8位可编程中断控制器,又称优先级控制器(2)处理8级向量优先级中断(3)具有单一+5V供电(4)8259A芯片级联组成强大的中断管理系统(多至64级外部中断)。(5)优先级方式可编程(6)多级中断管理•主要内容一、内部结构及工作原理二、引脚信号三、工作方式四、编程方法一、内部结构及工作原理数据总线缓冲器•数据总线缓冲器是一个三态、双向的8位缓冲器,是8259A与CPU系统数据总线的接口。•数据总线缓冲器的主要功能有:(1)通过数据总线缓冲器,CPU向8259A内部发送命令。(2)CPU接收8259A状态信息。(3)在中断响应周期,CPU从中获得中断类型号。读/写逻辑•接收CPU送来的读/写控制信号、片选信号以及地址选择信号,对内部各个寄存器进行读写操作。级联缓冲/比较器•级联缓冲/比较器在级联方式的主从结构中(两个以上的8259A组成的系统),用来存放和比较系统中各8259A的从设备标志(ID)。控制逻辑•控制逻辑是控制8259A内部各个部件的主要逻辑电路。•主要功能包括:(1)根据CPU对8259A编程设定的工作方式来产生内部控制信号。(2)如果中断请求寄存器IRR有未被屏蔽的位,则控制逻辑对应于当时最高优先的中断源,向CPU发中断请求信号INT。(3)接收CPU送来的中断响应信号,并允许中断服务寄存器ISR的相应位(ISRi)置位。(4)控制发出相应的中断类型号,以供CPU读取。中断请求寄存器IRR•IRR是一个专门用于记录外部中断源的中断申请的8位寄存器。•IRR的8个输入端分别可接8个中断源,只要有中断请求(引脚IRi由低电平变高电平)时,相应的IRR位就会置1(IRRi=1),直到中断服务寄存器相应位置1,IRR相应位才复位。中断
本文标题:微机原理第6章 - 中断系统
链接地址:https://www.777doc.com/doc-3177941 .html