美文网首页
什么是中断原理?

什么是中断原理?

作者: 迪捷软件 | 来源:发表于2022-01-17 10:52 被阅读0次

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能够在不具备真实开发板的情况下,运行仿真的龙芯程序,并基于此做一些辅助测试,系统调试、系统开发等工作。

相关文章

  • 什么是中断原理?

    01.为什么会引出中断的概念 首先引出中断产生的原因,对于CPU而言,假如没有中断的概念,CPU会根据指令在内存中...

  • 零拷贝原理-中断和DMA

    为何要懂零拷贝原理?因为rocketmq存储核心使用的就是零拷贝原理。 io读写的方式中断DMA 中断方式中断方式...

  • JAVA多线程10-基础篇-线程终止

    本节摘要: 介绍线程中断的原理、阻塞方法以及代码示例 一、为什么需要中断 有哪些场景我们需要中断线程?通常有以下几...

  • 什么是中断?

    什么是中断? 中断嘛,对于很多新手来讲,有点难以理解,举个容易的现实的例子吧。如果还不懂,骚年,考虑换行吧,或许这...

  • 「阿里面试系列」面试加分项,从jvm层面了解线程的启动和停止

    线程的启动的实现原理 线程停止的实现原理分析 为什么中断线程会抛出InterruptedException 线程的...

  • 按键与中断处理

    NVIC中断工作原理 cortex-m3支持256个中断,其中包含了16个内核中断,240个外部中断。stm32中...

  • java线程中断原理

    稍有java基础的同学都知道,在java中创建并启动一个线程比较容易,而线程中断的难度更高一些,并且使用的场景也相...

  • Java多线程学习之Interrupt中断

    引言 本文将由以下几点来说明Interrupt中断:1.什么是中断?为什么使用中断?2.中断的作用3.中断的使用 ...

  • Linux C/C++定时器的实现原理和使用方法

    定时器的实现原理 定时器的实现依赖的是CPU时钟中断,时钟中断的精度就决定定时器精度的极限。一个时钟中断源如何实现...

  • IRQL(多线程中断请求级别)

    IRQL IRQL(Interrupt ReQuest Level)中断请求级别,什么是"中断"呢? 中断就是硬件...

网友评论

      本文标题:什么是中断原理?

      本文链接:https://www.haomeiwen.com/subject/qghchrtx.html