微机原理第6章 中断系统.ppt

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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