什么是中断原理?

01.为什么会引出中断的概念

首先引出中断产生的原因,对于CPU而言,假如没有中断的概念,CPU会根据指令在内存中的存放顺序,依次取指,解码,执行;通常情况下PC的值一般指向下一条需要处理的指令地址。

当程序顺序执行时,PC每次根据指令字节数增加相应的值。以32位指令解码为例,每执行一条非跳转指令的情况下一般是增加4字节。执行过程中,若遇到跳转/返回指令,则跳转/返回到对应的PC地址执行。

CPU指令的处理流程可参考下图:

▲CPU处理指令过程

对于上图不存在中断的情况下,如果当前状态需要CPU处理一些比较紧急的事件,顺序执行往往会导致不能够及时响应该事件。

比如当你敲下键盘上的“空格键”,发现操作系统在处理键盘响应之前,要先执行完当前正在执行的任务,可能需要经过10S才能响应键盘的输入请求,这样的设计往往不是很合理;

因此引入中断可以很好的解决该问题,依旧以键盘按下“空格键”为例,当前CPU正在处理其他任务,检测到键盘输入后,产生一个外部中断。

此时CPU首先保存当前执行状态(现场保护)主要包括寄存器状态、堆栈信息、当前PC地址等信息然后跳转到对键盘输入的处理,执行完键盘相关的任务后返回被打断的位置继续执行。因此,引入中断后,指令的处理流程可以进一步归纳如下图:

▲CPU带中断处理指令过程

在上图这种设计模式下,CPU能够在键盘按下“空格键”后,及时优先相应键盘的输入中断,并在执行完中断后从之前被打断的位置继续执行。

02.中断执行原理细化

程序最终都是以指令的形式在CPU中解码执行,中断作为程序的一小部分,最终也是在CPU中处理并执行,需要理解中断的处理实际上最终在CPU中处理,而外部设备仅仅是发送信号给CPU,告诉CPU某一时刻有中断产生,请求CPU响应中断,最终决定是否处理以及处理过程全都交给CPU执行。例如生活中手上端着一个很烫的盘子,手仅仅是通过痛觉神经将信号给大脑,而实际上通过大脑够控制你下一步的行为。

接下来假设CPU需要处理中断了,在说明该问题之前先回到CPU处理指令的流程,当前CPU正在处理程序,外部产生了一个timer中断需要处理,CPU处理的过程参考下图:

基于以上内容,基于我司自主研发的SkyEye天目全数字实时仿真软件在仿真芯片的搭建过程中,往往需要通过连线先建立部分外设和中断控制器之间的连接关系,再建立中断控制器和CPU之间的连接关系。串口、中断、CPU之间的连接关系如图所示:

基于以上仿真硬件设计,SkyEye能够在不具备真实开发板的情况下,运行仿真的龙芯程序,并基于此做一些辅助测试,系统调试、系统开发等工作。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值