模拟卷 组成原理 异常和中断 解答题
第 44 题

(11 分)设某计算机有 4 级中断 A、B、C、D,其硬件排队优先级次序为 A>B>C>D。如表所示列出了执行每级中断服务程序所需的时间。

如果以执行中断服务程序的时间作为确定中断优先级的尺度:时间越短优先级越高。

(1)如何为各级中断服务程序设置屏蔽码?

(2)如果 A、B、C、D 分别在 0μs、8μs、10μs、0μs 时刻发出中断请求,请画出 CPU 执行中断服务程序的序列。

(3)基于上题,请计算上述 4 个中断服务程序的平均执行时间。

异常和中断

[tag_link]

【解析】 本题考查中断处理次序。中断响应次序和中断处理次序是两个不同的概念。 中断响应次序也称为硬件排队次序,它是不可改变的。在不改变硬件排队电路的前提下,可以通过改变中断屏蔽字来改变中断处理的优先级,使原来级别较低的中断源变成较高的级别。

(1)由题意,可知中断处理的次序为 C > A > D > B 。屏蔽码中的“1”表示屏蔽该中断源的中断请求,“0”表示没有屏蔽,各中断服务程序的屏蔽码如下表所示。 中断屏蔽码 中断源 A B C D ​ A 1 0 1 1 ​ B 1 1 1 0 ​ C 0 0 1 1 ​ D 1 0 1 1 ​ ​

(2)根据各级中断发出的中断请求信号的时刻,画出 CPU 执行中断服务程序的序列,如下图所示。 第 0 μ s 时,D 请求到来,由于没有其他的中断请求,所以开始执行中断服务程序 D。 第 6 μ s 时,A 请求到来,A 的优先级高于 D,转去执行中断服务程序 A。 第 8 μ s 时,B 请求到来,由于 B 的优先级低于 A,所以不响应 B 请求,继续执行中断服务程序 A。 第 10 μ s 时,C 请求到来,C 的优先级最高,虽然此时中断服务程序 A 还没结束,也必须暂停转去执行中断服务程序 C。 中断服务程序 C 所需时间为 3 μ s ,当第 13 μ s 时,中断服务程序 C 执行完毕,返回执行中断服务程序 A。 第 14 μ s 时,中断服务程序 A 执行完毕(共执行 5 μ s ),返回执行中断服务程序 D。 第 20 μ s 时,中断服务程序 D 执行完毕(共执行 12 μ s ),返回现行程序。 因为 B 请求还存在,所以此时开始执行中断服务程序 B,直至 35 μ s 结束(共执行 15 μ s )。 [图片] 注意:有同学会问执行完 D 为什么又要返回现行程序再响应 B 的中断,这是因为 B 的中断在有 A、C、D 的条件下 B 中断都是被屏蔽而暂时不响应的,而当上述 3 种中断执行完毕后,回到主程序,B 中断才不被屏蔽,所以这时候才会直接响应 B 的中断,如果不回到主程序而直接响应 B 的中断是错误的。

(3)在 35 μ s 时间内,完成了 4 级中断的处理,所以平均执行时间为 4 35 ​ = 8.75 μ s