问:
若四个中断源同时有中断请求,给出 CPU 执行程序的轨迹图
答:
如果有4个中断源(INT1,INT2,INT3,INT4)同时产生中断请求,CPU的执行程序轨迹图如下:
1. CPU zunächst执行主程序,检测到INT1中断请求,跳转到INT1中断服务程序ISR1。
2. CPU执行ISR1,在返回主程序之前,检测到INT2中断请求,跳转到ISR2。
3. CPU执行ISR2,在返回ISR1之前,检测到INT3中断请求,跳转到ISR3。
4. CPU执行ISR3,在返回ISR2之前,检测到INT4中断请求,跳转到ISR4。
5. CPU执行ISR4,完成后返回ISR3。
6. CPU返回ISR3,完成后返回ISR2。
7. CPU返回ISR2,完成后返回ISR1。
8. CPU返回ISR1,完成后返回主程序继续执行。
在这个过程中,中断请求INT1-INT4的响应顺序遵循嵌套的原则,每产生一个新的中断,CPU会暂停当前服务的中断,首先响应新的中断,待新的中断服务程序完成后才会返回继续执行之前暂停的中断服务程序。
这个轨迹图演示了CPU在多中断请求的情景下,根据中断的嵌套关系,依次响应各中断的执行过程。每接收到一个新的中断请求,CPU会将当前执行的程序推迟,转而执行新的中断服务程序。这个机制可以保证在有多个中断产生的情况下,各中断依然可以得到顺序响应,系统继续正常运转。
除非硬件开启了中断嵌套禁止功能,否则CPU会一直根据中断的嵌套关系对各中断进行响应,直到所有中断都服务完毕,才最终返回到主程序继续执行。