微机原理第6章 - 中断系统_第1页
微机原理第6章 - 中断系统_第2页
微机原理第6章 - 中断系统_第3页
微机原理第6章 - 中断系统_第4页
微机原理第6章 - 中断系统_第5页
已阅读5页,还剩113页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本章的主要内容为:基本的知识中断和异常、中断分类、实际地址方式和保护方式中的中断*、中断过程、中断管理等可编程中断控制器* 8259A的内部结构和工作原理*、8259A的管脚信号、8259A的工作方式*、8259A的编程高级中断控制器中断调用及其应用第6章中断系统,6.1中断的基本知识,一,中断和异常二,中断分类三,实方式和保护方式下的中断四,中断进程五,外部中断源的管理,一,中断和异常,一.中断二.异常三.中断和中断是指处理器在执行正常程序的过程中发生了某种异常或外部设备的请求的情况下,处理器暂时中止执行中的程序,执行该特定的服务程序,执行服务程序后,返回到停止的程序继续处理什么是异常? 所

2、谓异常,是指在内部意想不到的条件下变更程序执行进程,报告错误状况和异常状态的过程称为异常中断(简称异常)。 中断和异常有什么区别? (1)中断异步发生的外部事件的处理。 (2)例外处理同步发生的内部事件。 (3)硬件中断作为外部事件的结果而发生。 (4)在执行当前的指令之后执行服务程序,在中断处理程序完成中断服务之后,程序继续执行中断指令之后的指令。 异常有什么种类?(1)故障(2)陷井(3)结束后,故障又称为什么,故障又称为故障(Faults ) :在引起异常的命令前被检测、处理。 在运行了与失效对应的服务程序后,返回到该失效的命令,再次运行该命令。 什么是陷阱? 陷阱(Traps )是在执

3、行异常命令后报告的,在服务程序完成后,返回原来的程序,继续执行发生异常命令的下一个命令。 陷阱与中断处理方法相同,但与失效不同,终止是什么? 中止是无法确定异常命令的正确位置的异常(有时称为死亡或失败)。 二、中断分类、内部中断或异常、1 .故障异常2 .陷井异常3 .中止异常、中断分类图、主要故障异常、除法错误、调试异常、极限检查、无效操作码、不存在协处理器、无效TSS、不存在段、码头溢出、一般主要的陷阱异常、系统中的主要陷阱异常包括单步陷阱、中断点异常、溢出、中断指令INT n等。 中断分类图,主要中止异常,系统中的主要中止异常包括双重故障(一个异常处理程序运行中发生另一个异常)、协处理器

4、段溢出等。中断分类图、外部中断、1 .不可屏蔽中断(NMI) 2.可屏蔽中断(INTR )、中断分类图、不可屏蔽中断、意思:不能用软件控制是否允许中断的外部中断。 常见的NMI中断包括: (1)电源停电(2)内存检查错误(3)总线奇偶校验错误等。 可以阻止中断分类图、中断,意义:可以通过软件控制是否允许中断外部中断。 换句话说,在设STI为IF=1的情况下,允许中断的CLI为IF=0,并且禁止中断。 常见的INTR中断包括键盘、鼠标、打印机、显示器、声卡、CD-ROM等所有外部设备中断、中断分类图、3、实模式和保护模式下的中断、1 .术语和概念2 .实模式下的中断4 .保护模式和实模式中断的主

5、要区别在于:术语和概念、中断类型编号中断矢量中断描述符中断描述符表、中断类型编号、中断类型编号:中断类型的唯一编号。 数量: 256个。 号码: 0到255。范围: 8086 奔腾4 (各种工作方式)、返回、中断矢量、意义:中断服务程序的条目地址(CS:IP )配置和格式:共计4个字节,段地址和偏移地址。 中断向量表,意思:存储256个中断向量的存储器区域。 换句话说,存储有中断服务程序的条目地址的存储器区域被称为中断向量表。 中断矢量大小: 1KB中断矢量地址范围: 00000H003FFH。 适用范围:实际地址方式。 中断向量的构成和格式、中断描述符、含义:描述与某个中断对应的中断服务程序

6、的条目地址信息及其属性,包含偏移地址和对应段的选择符。 配置和格式: 8字节,中断描述符表,意义:存储256个中断描述符的内存区域。 中断描述符表的容量: 2KB。 适用范围:保护地址和V86方式。 另外,在实际方式中,中断服务程序的入口地址、中断类型编号n与与其对应的中断向量存储开始地址的关系,是开始地址=4n的末尾地址=4n 3、即中断向量,在由4n 4n 3指示的存储单元中表示例子假设以实际地址方式求中断服务程序入口地址的方法(例),【例1】以实际地址方式求存储在存储器单元00140h00147h中的内容,如图所示,求51H号的中断服务程序入口地址。 解:例1中,(1)求出中断向量存储的

7、开头地址和末尾地址51H时,中断向量存储的开头地址从与51H4=144H (向左移动两个的方法)末尾地址=51H4 3=147H (2)开头末尾地址对应的4个单元开始进行中断矢量将中断向量的配置与格式相匹配,可以发现段地址=4540H,偏移地址=3430H,因此中断服务程序入口地址是段地址16偏移地址=45400H 3430H=48830H 目的是求出偏移地址。 中断描述符的开头地址=中断类型编号n8 IDT基站是中断描述符,从该地址取出8字节的内容。 (2)根据定界符中的选择符从GDT或LDT中找到或求出段描述符。 (3)根据由段描述符提供的基于段的地址和由中断描述符提供的偏移地址来合成物理

8、地址。 例如,在保护方式中的中断服务程序入口地址的求法(例)、【例2】在已知的保护方式中,与存储单元有关的单元的存储内容如右图所示,IDT的开头地址为00280000H,GDT的开头地址为00500000H,第20H号的中断服务解: (1)查找偏移地址的中断描述符,从n=20H获得中断服务程序的偏移地址,并且在以00280000H 20H8=00280100H开始的八个单元中存储了中断描述符中断描述符是: 0042ee001312h(2)求中断服务程序所在的段的段基础地址段选择符是: 0013h=00000001011bti=0, 由于段描述符是GDT,RPL=11是一般用户程序请求索引值=0

9、000 0000 0001 0 B,所以存在由中断描述符描述的中断服务程序的段描述符在GDT内的位置, 由于索引值为8 GDT的开头地址=00000000000010000 b 00500000 h=00500010 h,所以段描述符具有段基本地址=39423400H (3) 合成物理地址服务程序的条目地址=对应段的段基地址偏移地址=39423400H 00422012H=39845412H,段选择符和段描述符,段选择符,段描述符中断向量表1KB (2)表位置不同的保护方式下的中断描述符表无论处于存储器的哪个位置,都可以由中断描述符寄存器(IDTR )决定的实际地址方式下的中断向量表是0000

10、0H003FFH的最低存储器(3)中断服务程序保存位置不同的保护方式下的中断服务程序可以保存在内存的任何区域中,但实际地址方式下的中断服务程序只能保存在保存的1MB以下的内存区域中。四、中断进程,1 .中断请求2 .中断判定优先级3 .中断应答4 .中断服务(处理)5.中断返回、中断请求、意思:中断源发出中断请求信号的外部中断源主要是(1) I/O设备,例如键盘(2)软硬盘磁带等数据通道。 (3)外部所需的定时电路等实时时钟。 (4)停电、内存奇偶校验错误等故障源。 (1) CPU指令发生异常,例如除以0、溢出、步骤等。 (2)程序执行INT 19H等INT软件中断指令。 因为中断判断优秀,中

11、断是随机的,所以多个中断源有可能同时请求中断。在这种情况下,中断判断优秀的是必须优先判别申请中断的中断源。 中断响应、中断响应进程:从接收到中断请求到中断处理,即从请求有效到转移到中断服务程序的入口地址的时间。 可以切断中断的响应过程,可以切断中断的响应过程,(1)处理器收到中断申请,处理完当前指令后进入响应周期。 (2)在第二阶段的中断响应周期期间,CPU向外部中断控制器发送两个响应脉冲信号INTA。 最初的响应脉冲通知中断控制器,响应外部中断请求,让中断控制器提供中断类型编号。 第2个响应脉冲由CPU取中断类型编号。 (3)将标志寄存器的内容压入堆栈保护中,清除IF和TF标志,禁止INTR

12、端子、陷阱和降级。 (4)将中断点的地址推入堆栈(CS:EIP或CS:IP )。 中断点地址:中断时与CPU执行的下一个指令相对应的逻辑地址。 顺序先按下中断点地址的CS,再按下偏移地址EIP (或IP )。 (5)在获得中断类型号n之后,CPU根据中断类型号和中断服务程序入口地址之间的关系,找到与该类型对应的基于段的地址和偏移地址,并转换到中断服务程序入口地址。 完成中断响应任务。 中断服务(处理),1 .保护现场保护现场的本质:把重要信息塞进堆栈里。 2 .中断的目的:释放所有可中断的中断,以允许高级中断嵌套。 3 .执行中断服务程序的中断服务程序主体-中断的目的。 4 .关闭中断的目的:

13、关闭中断,确保切实有效地恢复现场。 5 .恢复现场现实:弹出堆里的内容。 中断返回、中断服务程序的最后的命令无一例外地使用中断返回命令(IRET和IRETD等)。 中断返回的目的:从堆栈开始依次弹出中断响应中的中断点的地址和标志寄存器的内容,继续执行原始程序。 五、管理外部中断源,引出问题:多个外部中断源要求同时中断,CPU只用INTR管脚,如何处理? 解决方法:对中断控制器的硬件编程,实现中断管理。 中断源管理任务:区分中断源,确定中断源的优先级,并处理分层中断嵌套问题。 中断优先级识别、中断优先级排序:按优先级从高到低的顺序排列多个中断源。 排队方法:软件排队和硬件排队。 在8086 奔腾

14、4系统中,按照中断优先级从高到低的顺序,按内部异常中断(单步除外) intnmiintintra单步中断、多电平中断嵌套、意思:在处理下位中断时,按上位等级的分配示意图,6.2可编程中断控制器8259A,基本情况: (1)8位可编程中断控制器,别名优先级控制器(2)处理级别8矢量优先级中断(3)单一的5V电力供给(4)8259A芯片级联中强力分配(5)优先级方式可编程(6)多级中断管理的主要内容1、内部结构和工作原理2、管脚信号3、工作方式4、编程方法:数据总线缓冲器为一个三状态,双向的8位缓冲器,8259A和CPU系统的数据(1) CPU通过数据总线缓冲器向8259A内部传输命令。 (2)

15、CPU接收8259A状态信息。 (3)在中断响应周期时,CPU获得中断类型编号。 另外,接收读/写逻辑、从CPU发送来的读/写控制信号、芯片选择信号、地址选择信号,对内部的各寄存器进行读/写动作。 级联缓冲器/比较器和级联缓冲器/比较器是级联主从结构(由两个或多个8259A组成的系统),用于存储和比较系统中每个8259A的从标志(ID )。 另外,控制逻辑、控制逻辑是控制8259A内部各部分的主要逻辑电路。 (1)基于CPU编程到8259A中的操作方法来生成内部控制信号。 (2)如果存在未被中断请求寄存器IRR掩蔽的位,则控制逻辑向对应于此时的最高优先级的中断源的CPU发送中断请求信号INT。

16、 (3)从CPU接收中断响应信号并允许中断服务寄存器ISR的相应位(ISRi )的位置。 (4)控制CPU发出对应的中断类型号以供读取。 中断请求寄存器IRR,IRR是用于记录外部中断源的中断请求的8位寄存器。 可以将八个中断源分别连接到IRR的八个输入端,并且只要存在中断请求(管脚IRi从低电平变为高电平),相应IRR的位置就为1(IRRi=1),并且中断服务寄存器中相应的位置1,IRR的相应比特中断优先级识别器PR确定与存储在IRR中的各中断请求信号相对应的中断源的优先级。 总是选择当前最高优先级中断源的中断请求通知控制逻辑,并且控制逻辑向CPU发送中断请求信号INT。 中断服务寄存器IS

17、R、ISR是用于CPU记录处理中(服务)的中断源的8位寄存器。 有中断请求并响应CPU时,即CPU响应中断后发生第一个中断响应脉冲时,对应的中断服务寄存器的相应位置1在中断结束或有中断结束命令前不复位。 中断掩码寄存器IMR和IMR是来自8位硬件的中断源的寄存器。 如果IMR的对应位为1,则屏蔽对应于中断源的中断请求。 只有在对应的位为0、IF=1时,CPU才能响应中断。 8259A业务流程,1 )如果外部IRi有中断申请,IRRi=1。 2) PR确定优先级,并将当前最高优先级中断源的请求通知给控制逻辑。 控制逻辑向CPU发送INT信号。 3 )在响应中断的情况下,CPU发送/INTA,并且在接收到响应后,控制逻辑准备

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论