中断与中断控制.ppt
- 文档编号:2732340
- 上传时间:2022-11-10
- 格式:PPT
- 页数:58
- 大小:245.50KB
中断与中断控制.ppt
《中断与中断控制.ppt》由会员分享,可在线阅读,更多相关《中断与中断控制.ppt(58页珍藏版)》请在冰豆网上搜索。
8.1中断的基本概念中断的基本概念8.2可编程中断控制器可编程中断控制器82598.3中断服务程序的编程中断服务程序的编程8.4保护模式的中断处理保护模式的中断处理第第8章章中断与中断控制中断与中断控制18.1中断的基本概念中断的基本概念所谓中断(所谓中断(Interrupt),是指计算机在运行过程中,当有某些紧急事件或外设请求发生时,迫使CPU暂时中断现行程序的运行而去处理紧急情况或外设请求,即去执行其对应的中断服务程序;等到事件处理完毕,又返回原程序的中断点处,继续执行被中断的程序。
这个过程和机制称为中断。
CPU与与I/O设备并行工作设备并行工作实现实时处理实现实时处理多道程序或多重任务的运行多道程序或多重任务的运行故障处理故障处理中断的中断的用途用途28.1中断的基本概念中断的基本概念中断最初是作为中断最初是作为处理器处理器与外部设备交换信息的一与外部设备交换信息的一种控制方式提出的。
由此,最初的中断全部是对种控制方式提出的。
由此,最初的中断全部是对外部设备而言的,称为外部设备而言的,称为外部中断外部中断或或硬件中断硬件中断。
随着计算机技术的发展,中断的范围也随之扩大,随着计算机技术的发展,中断的范围也随之扩大,出现了内部出现了内部软件中断软件中断的概念,它是为解决机器内的概念,它是为解决机器内部运行时出现的异常以及为编程方便而提出的。
部运行时出现的异常以及为编程方便而提出的。
外部中断或硬件中断通常称为外部中断或硬件中断通常称为中断中断(Interrupt),软件中断或异常中断通常称为软件中断或异常中断通常称为异常异常(Exception)38.1中断的基本概念中断的基本概念中断与异常的区别中断与异常的区别:
F中断是异步事件,可能随时发生,与处理器中断是异步事件,可能随时发生,与处理器正在执行的内容无关。
中断主要由正在执行的内容无关。
中断主要由I/O设备产设备产生,可以被启用或禁止。
生,可以被启用或禁止。
F异常是同步事件,它是某一特定指令执行的异常是同步事件,它是某一特定指令执行的结果。
在相同条件下,异常可以重现。
例如,结果。
在相同条件下,异常可以重现。
例如,内存访问错误、被零除等是典型的异常。
内存访问错误、被零除等是典型的异常。
F系统服务调用通常视作异常系统服务调用通常视作异常。
48.1中断的基本概念中断的基本概念不论哪种中断都遵循同样的中断处理过程不论哪种中断都遵循同样的中断处理过程中中断断源源中断中断请求请求当当前前程程序序中断中断服务服务程序程序程序断点程序断点中断返回中断返回中断响应中断响应处理器暂停执行当前程序,转而执行中断服务程序,处理完毕后处理器暂停执行当前程序,转而执行中断服务程序,处理完毕后再返回到断点处继续执行原来的程序再返回到断点处继续执行原来的程序5F中断的类型中断的类型PC系列微机最多可以支持系列微机最多可以支持256种中断,它们被分为四种类型:
种中断,它们被分为四种类型:
异常异常软件中断软件中断外部可屏蔽中断外部可屏蔽中断外部非屏蔽中断外部非屏蔽中断每个中断和异常都指定了一个类型号,也称为中断号。
对应每每个中断和异常都指定了一个类型号,也称为中断号。
对应每一种中断应当有一个中断服务程序(一种中断应当有一个中断服务程序(InterruptServiceProgramISP)中断类型号通过一个地址指针表与中断服务程序的入口地址相中断类型号通过一个地址指针表与中断服务程序的入口地址相联,在实模式下,该表称为中断向量表,在保护模式下,该表联,在实模式下,该表称为中断向量表,在保护模式下,该表称为中断描述符表。
称为中断描述符表。
61.异常异常为处理器执行某些操作而引起的中断,包括除法错误异常、调为处理器执行某些操作而引起的中断,包括除法错误异常、调试异常、断点中断等试异常、断点中断等异常的例子:
异常的例子:
0型型除法错误异常除法错误异常1型型调试异常调试异常.F中断的类型中断的类型72.软件中断软件中断执行执行有定义的有定义的INTn指令而引发的中断,称为软件中断指令而引发的中断,称为软件中断有定义的有定义的并非所有的中断号都有对应的中断服务程序并非所有的中断号都有对应的中断服务程序软件中断使用软件中断使用05H、10H0FFH中的若干个中断号中的若干个中断号软件中断进一步分为软件中断进一步分为BIOS中断和中断和DOS中断中断F中断的类型中断的类型83.外部可屏蔽中断外部可屏蔽中断外部可屏蔽中断是处理器响应各种外部硬件中断的最常用的方外部可屏蔽中断是处理器响应各种外部硬件中断的最常用的方法,通过处理器的法,通过处理器的INTR引脚产生引脚产生外部可屏蔽中断受处理器内部的中断允许标志位外部可屏蔽中断受处理器内部的中断允许标志位IF的控制的控制处理器以电平触发方式接受处理器以电平触发方式接受INTR请求,当每条指令结束时,请求,当每条指令结束时,若若INTR为高电平且为高电平且IF=1,则则CPU响应相应响应相应I/O接口的中断请求。
接口的中断请求。
处理器只有一个处理器只有一个INTR引脚可以接受外部可屏蔽中断请求,为引脚可以接受外部可屏蔽中断请求,为了管理众多的外部中断源,微机系统中采用可编程中断控制器了管理众多的外部中断源,微机系统中采用可编程中断控制器8259。
PC系列机通过两片系列机通过两片8259级连可以响应级连可以响应15个外部中断源个外部中断源F中断的类型中断的类型94.外部非屏蔽中断外部非屏蔽中断为外部紧急请求提供服务的中断,通过处理器的为外部紧急请求提供服务的中断,通过处理器的NMI引脚产生引脚产生NMI输入是上升沿触发的,输入是上升沿触发的,只要只要NMI输入端上出现由输入端上出现由0到到1的跳的跳变,一个中断服务请求就被锁存在变,一个中断服务请求就被锁存在Pentium中,与中,与IF标志的状标志的状态无关态无关NMI有一个专用的类型号有一个专用的类型号02H使用非屏蔽中断的典型例子是电源故障中断使用非屏蔽中断的典型例子是电源故障中断F中断的类型中断的类型10F中断的优先级与中断嵌套中断的优先级与中断嵌套通常一个系统有多个中断源,而通常一个系统有多个中断源,而CPU同一时刻只能响应一个中同一时刻只能响应一个中断源的请求,那么当多个中断源同时请求中断服务时,应该先断源的请求,那么当多个中断源同时请求中断服务时,应该先响应哪一个,有一个次序安排的问题。
按中断源的轻重缓急程响应哪一个,有一个次序安排的问题。
按中断源的轻重缓急程度确定的优先级别,称为度确定的优先级别,称为优先级优先级。
内部中断和异常内部中断和异常软件中断软件中断外部非屏蔽中断外部非屏蔽中断外部可屏蔽中断外部可屏蔽中断优优先先级级递递增增11F中断的优先级与中断嵌套中断的优先级与中断嵌套当当CPU正在响应某一中断源的请求,执行为其服务的中断服务正在响应某一中断源的请求,执行为其服务的中断服务程序时,如果有优先级更高的中断源发出请求,程序时,如果有优先级更高的中断源发出请求,CPU将中止正将中止正在执行的中断服务程序而转入为新的中断源服务,等新的中断在执行的中断服务程序而转入为新的中断源服务,等新的中断服务程序执行完后,再返回到被中止的中断服务程序,这一过服务程序执行完后,再返回到被中止的中断服务程序,这一过程称为中断嵌套。
程称为中断嵌套。
中断嵌套可以有多级,具体级数原则上不限,只取决于堆栈深中断嵌套可以有多级,具体级数原则上不限,只取决于堆栈深度度12F中断的优先级与中断嵌套中断的优先级与中断嵌套1#中断请求中断请求响应响应返回返回1#中断中断服务程序服务程序2#中断请求中断请求响应响应返回返回2#中断中断服务程序服务程序3#中断请求中断请求响应响应返回返回3#中断中断服务程序服务程序原主程序原主程序中断优先级中断优先级3#2#1#13F中断向量表中断向量表中断向量表包含中断向量表包含256个中断向量。
每个中断向量占用两个字(个中断向量。
每个中断向量占用两个字(4个字节),高地址字为中断服务程序所在代码段的段基址个字节),高地址字为中断服务程序所在代码段的段基址,低低地址字为代码段中中断服务程序第一条指令的偏移量地址字为代码段中中断服务程序第一条指令的偏移量。
中断向量表存放在内存最低端的中断向量表存放在内存最低端的1K单元之中,物理地址单元之中,物理地址00000H003FFH00000H00004H003FCH0型中断向量型中断向量1型中断向量型中断向量255型中断向量型中断向量n型中断向量型中断向量4*n4n4n+2n型型ISP首指令的有效地址首指令的有效地址n型型ISP代码段的段基址代码段的段基址14F中断指令中断指令STI开中断指令开中断指令将标志寄存器中的中断标志位将标志寄存器中的中断标志位IF置置1,允许允许CPU响应来自响应来自INTR引脚的中断请求引脚的中断请求CLI关中断指令关中断指令将标志寄存器中的中断标志位将标志寄存器中的中断标志位IF清清0,使,使CPU不响应来自不响应来自INTR引脚的中断请求引脚的中断请求15F中断指令中断指令INTn软件中断指令软件中断指令n为中断号。
调用为中断号。
调用n号中断服务程序号中断服务程序将标志寄存器压栈将标志寄存器压栈将将TF置置0,禁止单步操作,将,禁止单步操作,将IF置置0,使,使CPU处于关中断状态处于关中断状态断点的断点的CS、IP压栈压栈从中断向量表取从中断向量表取n号中断向量号中断向量IP、CS转向转向n号中断服务程序号中断服务程序16F中断指令中断指令IRET中断返回指令中断返回指令中断服务程序的出口指令,从栈顶弹出中断服务程序的出口指令,从栈顶弹出6个字节依次写入个字节依次写入IP、CS和标志寄存器和标志寄存器在执行在执行IRET之前必须保证栈顶是断点地址,否则执行之前必须保证栈顶是断点地址,否则执行IRET指令指令将导致系统瘫痪将导致系统瘫痪178.2可编程中断控制器可编程中断控制器8259A8259A是一种可编程中断控制器是一种可编程中断控制器,有如下功能:
有如下功能:
一片一片Intel8259可管理可管理8个中断请求,并把当前优先个中断请求,并把当前优先级最高的中断请求送到级最高的中断请求送到CPU的的INTR端。
端。
当当CPU响应中断时,为响应中断时,为CPU提供中断类型码。
提供中断类型码。
8个外部中断的优先级排列方式,可以通过对个外部中断的优先级排列方式,可以通过对8259编程进行指定。
编程进行指定。
可以通过编程屏蔽某些中断请求可以通过编程屏蔽某些中断请求允许允许9片片8259级联,构成级联,构成64级中断系统。
级中断系统。
在在PC/AT系列微机中,使用两片系列微机中,使用两片8259级联,构成级联,构成15级中断级中断18F8259A的引脚信号的引脚信号28脚双列直插式封装脚双列直插式封装19D7D0:
数据线。
用于与数据线。
用于与CPU之间传送命令、状态、之间传送命令、状态、中断类型码。
中断类型码。
:
读出信号。
通知:
读出信号。
通知8259把某个内部寄存器的值把某个内部寄存器的值送数据线送数据线D7D0。
:
写入信号。
通知写入信号。
通知8259把数据线把数据线D7D0上的值上的值写入内部某个寄存器。
写入内部某个寄存器。
IR7IR0:
8级中断请求输入级中断请求输入。
F8259A的引脚信号的引脚信号20A0:
选择内部寄存器的端口地址。
选择内部寄存器的端口地址。
在标准在标准AT机中,使用两片机中,使用两片8259构成主从式中断系统,构成主从式中断系统,主主8259的端口地址:
的端口地址:
20H,21H从从8259的端口地址:
的端口地址:
A0H,A1HINT:
把把IR7IR0上的最高优先级请求传送到上的最高优先级请求传送到CPU的的INTR引脚引脚:
接收:
接收CPU的中断响应信号。
的中断响应信号。
CPU发出的中断响发出的中断响应信号为两个负脉冲。
第一个负脉冲作为中断应答信应信号为两个负脉冲。
第一个负脉冲作为中断应答信号,第二个负脉冲到来时,号,第二个负脉冲到来时,8259从数据线从数据线
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中断 控制