问答题
阅读以下关于中断的叙述,回答问题1至问题3,将答案填入对应栏内。 【说明】 某计算机中断系统有4级中断I1,I2,I3和I4,中断响应的优先次序为I1→I2→I3→I4,即先响应I1,冉响应I2,……,最后响应I4。每级中断对应一个屏蔽码,屏蔽码中某位为“1”表示禁止中断(关中断),若为“0”则表示允许中断(开中断)。各级中断处理程序与屏蔽码的关系如表3-1所示。
问答题
若ti时刻I1、I2和I4级同时产生中断,在各中断处理完成后,tj(ti<tj)时刻发出I3级中断申请,CPU为I3服务时,I1级发出请求,在CPU为I1服务时,I2级发出请求。请参照图3-1所示的格式,画出CPU的运行轨迹。
【正确答案】正确答案:
.jpg)
【答案解析】解析:本题考查的是中断基础知识,中断是计算机中一个非常重要的概念,在嵌入式计算机中的应用极为广泛。采用中断的优点是既能提高CPU的效率又能对突发事件作出实时处理。考生需要正确理解中断的概念,了解中断处理过程,包括中断请求、中断响应、中断处理如中断返回。同时还要正确理解中断的优先级概念,CPU对各中断级的处理一般原则是; (1)不同优先级的中断同时发生时,按优先级别高低依次处理。 (2)当CPU在处理级别低的中断处理过程中,又出现级别更高的中断请求时,应立即暂停低级中断的处理程序而去优先处理高级中断,等高级中断处理完毕后,再返回到原来未处理完的低级别的中断处理程序,这种中断处理方式称为多重(级)中断。 (3)在处理某一中断的过程中,出现比它级别低的或同级的中断请求,则应处理完当前的中断后,再接着响应新的中断请求。 (4)中断优先级相同的不同设备同时请求中断时,则按事先规定的次序,逐个处理。 中断响应的优先次序可以由中断响应的硬件排队电路决定,然而,CPU处理中断服务的优先次序可以由屏蔽码来决定。通常把屏蔽码看成软排队,中断处理次序可以不同于中断响应的次序。通常屏蔽寄存器的编码由程序员填写。 屏蔽技术向用户提供了一种手段,可以用程序控制中断系统,动态地调度多重中断优先处理的次序,从而提高了中断系统的灵活性。 [问题1][分析] 根据中断的知识以及表3-1中断处理程序与屏蔽码的关系可以确定中断处理的次序与中断响应的优先次序一致,即I1→I2→I3→I4。按照这个处理次序,可以画出CPU的运行轨迹的示意图,连续处理中断时,回到正常程序的部分可以画也可以不画。
问答题
若将中断优先次序设置为I1→I4→I3→I2,即先响应I1,再响应I4,……,最后响应I2。请重新设置各级的屏蔽码,填写表3-2。
【正确答案】正确答案:若将中断处理次序设置为I1→I4→I3→I2,则:
.jpg)
【答案解析】解析:若将中断处理优先次序设置为I1→I4→I3→I2。屏蔽码中,按某位为1表示禁止中断 (关中断),若为0则表示允许中断(开中断),见参考答案。
问答题
设中断优先次序为I1→I4→I3→I2。若ti时刻I1、I2和I4级同时产生中断,在各中断处理完成后,tj(ti<tj)时刻发出I3级中断申请,CPU为I3服务时,I1级发出请求,在CPU为I1服务时,I2级发出请求。请画出这种情况下CPU的运行轨迹。
【正确答案】正确答案:
.jpg)
【答案解析】解析:在同样的中断请求的情况下,尽管CPU中断响应的优先次序不变(I1→I2→I3→I4),但是由于中断屏蔽码不同,CPU的运行轨迹发生了变化,详见参考答案。其中ti时刻I1、 I2和I4三个请求同时到达,CPU首先响应I1级请求,紧接着响应I2级请求,但是I2级的屏蔽吗是对I4级开放的,当I2级的程序执行到开中断指令时,立即被I4级中断,CPU转去执行I4级程序,待服务完毕后,再返回处理I2级。如果忽略上述细节,也可简单的画出CPU按I1、I4和I2的处理次序执行。在tj时刻,CPU处理完I4级程序后,I3级发出申请,CPU响应并为其服务。在为I3级服务的过程中,又来了I1级请求,I3级可被I1级中断,故CPU转为I1级服务。在CPU为I1级服务的过程中,I2级发出申请,但因I2级的处理级别最低,故CPU不理睬I2级的请求,直至I3级服务完毕,再响应I2级请求。本题主要考查考生对多重中断处理的理解,在画CPU处理轨迹时,可以画回到正常程序,也可以不画回到正常程序。