问答题
设某计算机有4级中断A、B、C、D,其硬件排队优先级次序为A>B>C>D。下表列出了执行每级中断服务程序所需的时间。
{{B}}执行每级中断服务程序所需的时间{{/B}}
|
| 中断服务程序 |
所需时间 |
| A |
5μs |
| B |
15μs |
| C |
3μs |
| D |
12μs |
如果以执行中断服务程序的时间作为确定中断优先级的尺度(时间越短优先级越高),试问
问答题
如何为各级中断服务程序设置屏蔽码?
【正确答案】本题考查中断处理次序。中断响应次序和中断处理次序是两个不同的概念。中断响应次序也称为硬件排队次序,它是不可改变的。在不改变硬件排队电路的前提下,可以通过改变中断屏蔽字来改变中断处理的优先级,使原来级别较低的中断源变成较高的级别。
由题意可知,中断处理的次序为C>A>D>B。屏蔽码中的“1”表示屏蔽该中断源的中断请求,“0”表示没有屏蔽,各中断服务程序的屏蔽码见下表。
{{B}}各中断服务程序的屏蔽码{{/B}}
|
| 中断源 |
中断屏蔽码 |
| A |
B |
C |
D |
| A |
1 |
1 |
0 |
1 |
| B |
0 |
1 |
0 |
0 |
| C |
1 |
1 |
1 |
1 |
| D |
0 |
1 |
0 |
1 |
【答案解析】
问答题
如果A、B、C、D分别在6μs、8μs、10μs、0μs时刻发出中断请求,请画出CPU执行中断服务程序的序列。
【正确答案】各级中断发出的中断请求信号的时刻,画出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)。
[*]
CPU执行中断服务程序的序列
【答案解析】
问答题
基于上一问,请计算上述4个中断服务程序的平均执行时间。
【正确答案】因为在35μs时间内,完成了4级中断的处理,所以平均执行时间为35μs/4=8.75μs。
【答案解析】