微机原理 f5-中断过程及优先级

微机原理

第五章

中断(***)

截屏2023-11-15 16.52.05

中断的概述:外设随机地向CPU发出中断请求,如果响应中断请求CPU会暂停正在运行的程序,去执行中断服务的子程序,中断服务完毕后,返回到主程序被中断处继续执行的过程。

中断源—引起中断的事件

键盘、鼠标是中断方式传送数据

中断系统应具有以下功能(***)

  1. 能实现中断响应、中断服务和中断返回。
  2. 能实现中断优先级排队。(同时)
  3. 能实现中断嵌套。(不同时分先后)(优先级高的可以嵌入优先级低的,但是优先级低的不可以嵌入优先级高的)

中断过程(***)

一个完整的中断基本过程包括:中断请求、中断判优(优先级)、中断响应、中断处理及中断返回

截屏2023-11-15 17.12.17

中断请求

当某一外部中断源要求CPU中断时,首先要向CPU发出中断请求,中断请求被放入中断请求寄存器中,并通过INTR(可屏蔽中断信号)或NMI(不可屏蔽中断信号)信号线引入CPU。

截屏2023-11-15 17.16.33

中断判优

由于中断请求是随机的,在某一瞬间有可能出现两个或两个以上同时提出请求的情况。这时需要给每个中断源判断优先级。
另一个作用能实现中断嵌套。

截屏2023-11-15 17.39.37

中断响应

CPU每执行完一条指令后,查询是否有中断请求。当查询到有中断请求且此时CPU允许中断(即IF=1,开中断)(INTR需要查询IF,NMI不需要)CPU响应中断。
响应中断后系统做的工作(中断一旦被响应):

  1. 自动关中断;IF=0 TF=0(自动)(IF可屏蔽中断、TF单步运行,调试标志)

  2. 保护FR和断点;(入栈保护)(FR状态寄存器)(断点:当前的CS和IP)
  3. 形成中断入口地址。通过中断矢量,查询中断地址表实现。(在保护好CS和 IP之后去寻找中断入口地址)

截屏2023-11-15 17.46.54

中断处理

图中为AX,BX的举例
执行中断服务开始要用PUSH压栈指令—保护现场;结束后要用POP指令弹出—恢复现场。

栈:先入后出,例如:PUSH AX PUSH BX PUSH CX;POP CX POP BX POP AX; 内层对应,外层对应。

截屏2023-11-15 18.52.10

中断返回

响应中断以后,自动关中断。

手动开中断的指令为:STI—SET IF

通常在中断返回前,要用指令开中断,以便再次响应中断,然后执行中断返回指令IRET。
IRET具有弹出断点地址送IP和CS及恢复标志寄存器FR内容的功能。

中断优先权

软件查询方式

截屏2023-11-18 14.10.15

INTR收到中断之后,使用指令逐个询问。(例指令查询是不是A申请的中断,如若是则执行A中断服务程序,否则询问下一个)

硬件优先权排队电路

简单硬件方式—菊花链法或链式优先权排队电路。

专用硬件方式(***)—可编程的中断控制器(8259A)

© 2022 - 2024 PWN022. All rights reserved.
载入天数...载入时分秒...