| 中断源及外部可屏蔽中断的控制逻辑 |
|
| 作者:陆志才 文章引用自“微型计算机组成原理”(高教出版社,南开大学2003)点击数: 更新时间:2007-2-22 22:05:33 |
|
| |
|
|
中断源及外部可屏蔽中断的控制逻辑
图5.22所示是Pc/AT机中断源总的示意图。从中断源来自CPU外部还是内部,可分成外部中断和内部中断两大类。外部中断从两根请求线引入CPU,通过NMI引入的是非屏蔽中断请求,从INTR引入的是可屏蔽中断请求。在PC/AT机中,可屏蔽中断源都是一些“设备”,它们的中断请求由两片8259A级联系统来控制,如图5.23所示。 在Pc/AT机中,主8259A占用端口地址20H和21H,从8259A占用端口地址AOH和 AlH。 在与Pc/AT兼容的高档微机中,采用了图5.23所示的逻辑(集成到多功能接口芯片或控制芯片组中芯片),在中断控制中仍使用上面4个端口地址。 1.外部中断源 (1)非屏蔽中断

在Pc/AT机中,存储器奇偶校验错等致命错误是非屏蔽中断源。电源掉电并未列入其中,因为电源掉电的处理需要借助于不间断电源(uPS)功能块,以保证中断服务期间的供电。在响应非屏蔽中断请求时,CPU自动形成中断类型号2。 (2)可屏蔽中断 在PC/AT机中,可屏蔽中断从主板或系统总线(ISA总线)插槽引人,其中断源的设置见表5.2。其中一些中断源并未列出,是为用户所保留的。一般机器只配一台打印机,使用并行口l,所以并行口2一般不用,IRQ 5可由用户使用。IRQ9标注有“改向”,这是为了保持与PC/XT机的兼容。在PC/xT机中仅用了一片8259A,PC/AT机中的主8259A就是与它对应的。在Pc/AT机中主片的IRQ2用于级联,原来在PC/xT机中接到IRQ2上的设备,在机器更新时,可接到PC/AT机的IRQ9。如该设备产生中断请求,中断类型号为7lH的中断服务程序(对应IRQ9)将自动转移到中断类型号为0AH的中断服务程序(对应IRQ2)。这样,原先在PC/XT机上使用IRQ2的程序不必修改,在PC/AT机上照样可以运行。对于外部可屏蔽 中断,在中断响应时,要经过两个中断响应周期,由8259A产生相应的中断类型号。

2.内部中断源 在CPU执行程序时,遇到一些特定的情况也会引起中断,这些情况(或叫事件)统称为内部中断源。内部中断源有以下四种: 1)除法错中断 当进行除法运算时,发现除数为O或商超过了寄存器所能表示的范围,CPU自动产生中断类型号为0的中断。 2)溢出中断 在运算的过程中,如果运算的结果超出了相应数据的表示范围,就会产生溢出。在出现溢出时,并不立即引起中断,而是置位标志寄存器的溢出标志OF。当CPU执行溢出中断指令INTO时,发现OF被置位,才产生中断类型号为4的中断。因此,如果觉得本次运算有可能溢出,应在它的后面安排一条INTO指令。在执行INTO指令时,如果OF没有被置位,则不进行任何操作。 3)单步中断 单步运行是调试程序的一种常用方式。要单步运行,需要将标志寄存器中的单步标志TF置1。在TF为1的情况下,CPU在每条指令执行后产生类型号为1的中断。在单步中断服务程序中显示一些内部寄存器的值和一些附带信息,供程序员观察和分析指令的执行结果。注意,在单步中断服务程序中执行时并不是单步方式(也不应该是单步方式)。这是因为在所有类型的中断处理过程中,CPU都是先把标志寄存器的内容自动压入堆栈,然后清除TF和IF。因此,CPU在进入单步中断服务程序时,它就不再处于单步方式了,而是按正常的方式执行中断服务程序,只有当单步中断服务程序结束时,从堆栈中弹出原来的标志后才使CPU又回到单步方式。 4)软中断(又称软件中断,或指令中断) CPU在执行中断指令INT n时,产生一个类型为n的中断,这就是前面所说的用软件方法引起中断。 需要特别提一下类型为3的中断指令(INT 3),类型3为断点中断。这里所说的断点,是指在程序执行过程中人为设置的,实际上是一条INT 3指令。执行到该指令时,转入类型3的中断服务程序,在该服务程序中显示寄存器的内容和部分内存单元的内容。这样,程序员就可确定到断点之前的一段程序是否正确,是否需要修改。在程序中设置断点也是常用的程序调试方法,而调试程序DEBUG(用于调试汇编语言程序)和一般的高级语言开发平台都提供设置断点的手段(程序员不必亲自在程序中加入INT3指令)。需要指出的是,系统并未提供断点中断服务程序,通常由调试程序DEBUG和高级语言开发平台来提供。 INT n执行时,标志寄存器的内容被压入堆栈,然后IF和TF被复位,接着,CS和IP的内容也被压入堆栈,堆栈指针减6,由中断类型号乘以4得到存放中断向量的起始地址,并将中断向量的低位字和高位字送到IP和cs中。这样下一条要执行的指令就是中断服务程序的第一条指令。 3.各类中断的优先级别 在Pc/AT机中,各类中断的优先级见表5.3,其中内部中断的优先级别最高(单步中断除外),其次是不可屏蔽中断,单步中断的优先级别最低。

|
|
本篇文章属于主题:PC/AT机的中断系统,了解更多请点击:PC/AT机的中断系统 |
|
|
| 文章录入:admin 责任编辑:admin |
|
上一篇文章: 中断向量与中断向量表 下一篇文章: 中断处理过程 |
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |