中断源与中断向量

3.中断源与中断向量

(1)中断源

引起中断的原因或来源称为中断源。例如8088CPU允许有256个直接中断源。它们可来自CPU的内部或外部,分别称为内部中断(源)和外部中断(源)。此外还有一类较特殊的中断源(软件运行中也可能发生意外的故障或指令中断),即软中断,它也是内部中断的一种。关于中断的分类,参见图6.11所示。

(2)非屏蔽中断与可屏蔽中断

在CPU内部往往有一个“中断允许标志位”IF,相应地将中断源分为两类:一类不受IF控制,称为非屏蔽中断,即只要有非屏蔽中断产生,CPU可立即响应,与IF状态无关:另类中断源受IF控制,称为可屏蔽中断。

若IF=1,称为开中断状态,即CPU允许中断,此时若有可屏蔽中断产生,则CPU能够响应。若IF=0,称为关中断状态,对于可屏蔽中断请求,CPU不响应。

中断屏蔽功能,它可用来保证CPU在执行一些重要程序段时不被打断,从而确保其操作能在最短时间内正确地完成。

(3)中断向量

所谓向量,就是具有方向的量。该“方向”的起点是中断源,终点是与之对应的中断服务程序。可见引入中断向量的目的是,用什么样的方法能使CPU响应中断请求后及时、准确地转入并执行中断服务程序。由于中断源的数量多且种类杂,而且,中断服务程序在内存中的位置也不同,为此采用了事先将所有中断服务程序的入口地址(中断向量)存于表内。对于8088系统,该表的位置固定在00000H至003FH的地址中,共计1024个存储单元,如图6.12所示。由于8088存储管理系统的特点,即,段地址:段内偏移量,所以中断服务程序的入口地址必须用4个字节表示。由此(1024/4=256)说明了为什么8088系统最多可以处理256个中断源。接下来的问题是怎样查表,若中断请求被响应后,由中断源提供一个表内偏移地址(也称为中断类型码或中断号),并从该地址中将所存内容分别送入CS:IP,当CPU再取指令时,将是中断服务程序的第一条指令。这就是说现在CPU进入了中断处理过程。

当然不同的计算机系统对中断的具体处理方法也不尽相同,有些系统支持多种处理方法,这里就不一一列举了。

(4)中断优先级和中断嵌套

当若干个中断源同时发出中断请求时,CPU怎么办?肯定不会同时处理,那么处理的先后顺序如何确定,也就是如何确定中断的优先级。由于8088系统采用了专用的可编程中断控制器8259A,所以用户可以通过程序设置中断优先级。

当CPU正在执行优先级较低的中断服务程序时,允许响应比它优先级高的中断请求,而将正在处理的中断暂时挂起,这就是中断的嵌套。此时,CPU优先为级别高的中断服务,待优先级高的中断服务结束后,再返回到刚才被中断的较低的那一级,继续为它进行中断服务。

豫ICP备19006514号 网站地图 免责声明:如果侵犯了你的权益,请发邮件至:419017772@qq.com,我们会及时删除侵权内容,谢谢合作!