处理器中断的本质是什么?硬中断、软中断、异常有何区别?

嵌入式ARM 2023-05-15 13:01

1. 中断的由来

1956年,ERA 1103A计算机系统引入了中断(interrupt)机制。

ERA 1103A用于接收、处理风洞试验数据,再将数据处理结果返回给风洞,如此循环往复。但风洞数据的准备时间比较长,ERA 1103A只能处于等待状态,这段时间被白白的浪费掉了。为了提高ERA 1103A的利用率,其引出了一条中断线,在等待风洞数据的这段时间运行其他程序,当风洞数据到来的时通过中断线告知ERA 1103A停止当前工作去接收风洞数据。

以上就是最初的中断设计原型。

ERA 1103A计算机系统

2. 中断分类

现代处理器的中断概念变得越来越广泛,已经不仅仅局限于外部设备中断。
中断存在的意义是CPU控制外部设备的同时,外部设备也可以高效的“控制CPU”。发展至今,这种设计思想扩展到了外部硬件控制CPU、软件控制CPU、CPU运行管理等三个方面。
因此,使用events事件来表示则更加的贴切实际,但在平时描述中,基本上仍然采用了中断这个词。

events的分类如下图所示,主要包括中断和异常,外部硬件控制CPU对应hardware interupt,软件控制CPU对应software interrupt,CPU运行管理则对应exception

2.1 hardware interrupt

硬件中断是我们平时接触的最多的一类event,比如鼠标、键盘、网卡等等都可以产生硬件中断。因为CPU并不知道外部硬件设备何时产生硬件中断请求,也不会提前获知产生硬件中断的前提,因此,硬件中断属于异步event。

CPU和外部IO设备通过一根或多根硬件连线进行硬件中断信号的传递。这种硬件连线可以在SoC内部实现,也可以在外部PCB板上实现。

当CPU内部集成了中断控制器IP之后,各个IO设备的中断信号线可以在SoC内部连接到中断控制器。例如非常常见的ARM GIC,当然,它不仅可以处理外部IO设备的硬件中断,也可以处理CPU内部之间硬件中断。其内部结构如下图所示:

内部GIC

外部IO设备可以通过中断控制芯片连接到CPU,该类芯片通常称之为PIC。

此类中断控制芯片中最具有代表性的应该是Intel 8259,在微机原理课程中就能找到它的影子。

Intel 8259 PIC

它是为Intel 8085和Intel 8086微处理器设计的可编程中断控制器(PIC)。8259将多个中断输入源组合成一个到主微处理器的单一中断输出,将系统中可用的中断级别扩展到处理器芯片上的一个或两个级别之外。在如今高性能GIC中,仍然可见这种分层次、可扩展的中断架构设计理念。

2.2 software interrupt

假设操作系统阻止非特权代码直接访问系统资源,那么应用程序如何访问这些受保护的资源呢?此时,软件中断就可以实现这一目的。当一个应用软件终止或者它向操作系统请求一些服务时,软件中断就会发生。如果说在软件代码中包含了系统调用,那么可以将software interrupt理解为同步事件。

当CPU接收到一个软件中断信号时,它可能会暂时将控制切换到一个中断处理程序程序,并且内核中被中断挂起的进程(例如,一个程序的运行实例)将在中断被接受后恢复。

应用程序基于系统调用完成应用层和操作系统内核之间的通信,实现对CPU的控制。

2.3 异常

CPU异常发生在各种错误的情况下,例如当访问无效的内存地址或除零时,为了对它们作出反应,产生了异常处理机制。不同架构的处理器对异常类型的定义有所不同,但核心思想是CPU工作过程遇到了不被允许的错误或者强制停止指令等,我们可以将异常做如下分类。

对于Faults异常,通常不影响软件代码的继续运行,此类异常主要包括:

  • 除0操作
  • 无效操作码
  • 设备不可用

对于Traps异常,比较常见的就是JTAG debug。当CPU收到了debug指令后,会进入到异常模式。此类异常主要包括:

  • 断点
  • 溢出
  • 调试指令

对于Abort异常,比较常见的就是取指异常,当我们从RAM中没有正确的获取到待执行指令时,CPU进入到Abort异常。此类异常主要包括:

  • 访存错误
  • 总线错误
  • cache错误

END

来源:Linux与SoC

版权归原作者所有,如有侵权,请联系删除。

推荐阅读
大学还用Protel 99 SE、51单片机教学?
状态机——单片机的万能语言(附代码)
C语言指针p、*p、&p、*&p、&*p分别代表什么?

→点关注,不迷路←

嵌入式ARM 关注这个时代最火的嵌入式ARM,你想知道的都在这里。
评论 (0)
  • UNISOC Miracle Gaming奇迹手游引擎亮点:• 高帧稳帧:支持《王者荣耀》等主流手游90帧高画质模式,连续丢帧率最高降低85%;• 丝滑操控:游戏冷启动速度提升50%,《和平精英》开镜开枪操作延迟降低80%;• 极速网络:专属游戏网络引擎,使《王者荣耀》平均延迟降低80%;• 智感语音:与腾讯GVoice联合,弱网环境仍能保持清晰通话;• 超高画质:游戏画质增强、超级HDR画质、游戏超分技术,优化游戏视效。全球手游市场规模日益壮大,游戏玩家对极致体验的追求愈发苛刻。紫光展锐全新U
    紫光展锐 2025-05-07 17:07 368浏览
  • 温度传感器的工作原理依据其类型可分为以下几种主要形式:一、热电阻温度传感器利用金属或半导体材料的电阻值随温度变化的特性实现测温:l ‌金属热电阻‌(如铂电阻 Pt100、Pt1000):高温下电阻值呈线性增长,稳定性高,适用于工业精密测温。l ‌热敏电阻‌(NTC/PTC):NTC 热敏电阻阻值随温度升高而下降,PTC 则相反;灵敏度高但线性范围较窄,常用于电子设备温控。二、热电偶传感器基于‌塞贝克效应‌(Seebeck effect):两种不同
    锦正茂科技 2025-05-09 13:31 270浏览
  • 二位半 5线数码管的驱动方法这个2位半的7段数码管只用5个管脚驱动。如果用常规的7段+共阳/阴则需要用10个管脚。如果把每个段看成独立的灯。5个管脚来点亮,任选其中一个作为COM端时,另外4条线可以单独各控制一个灯。所以实际上最多能驱动5*4 = 20个段。但是这里会有一个小问题。如果想点亮B1,可以让第3条线(P3)置高,P4 置低,其它阳极连P3的灯对应阴极P2 P1都应置高,此时会发现C1也会点亮。实际操作时,可以把COM端线P3设置为PP输出,其它线为OD输出。就可以单独控制了。实际的驱
    southcreek 2025-05-07 15:06 604浏览
  • 后摄像头是长这个样子,如下图。5孔(D-,D+,5V,12V,GND),说的是连接线的个数,如下图。4LED,+12V驱动4颗LED灯珠,给摄像头补光用的,如下图。打开后盖,发现里面有透明白胶(防水)和白色硬胶(固定),用合适的工具,清理其中的胶状物。BOT层,AN3860,Panasonic Semiconductor (松下电器)制造的,Cylinder Motor Driver IC for Video Camera,如下图。TOP层,感光芯片和广角聚焦镜头组合,如下图。感光芯片,看着是玻
    liweicheng 2025-05-07 23:55 517浏览
  • Matter协议是一个由Amazon Alexa、Apple HomeKit、Google Home和Samsung SmartThings等全球科技巨头与CSA联盟共同制定的开放性标准,它就像一份“共生契约”,能让原本相互独立的家居生态在应用层上握手共存,同时它并非另起炉灶,而是以IP(互联网协议)为基础框架,将不同通信协议下的家居设备统一到同一套“语义规则”之下。作为应用层上的互通标准,Matter协议正在重新定义智能家居行业的运行逻辑,它不仅能向下屏蔽家居设备制造商的生态和系统,让设备、平
    华普微HOPERF 2025-05-08 11:40 423浏览
  • 文/郭楚妤编辑/cc孙聪颖‍相较于一众措辞谨慎、毫无掌舵者个人风格的上市公司财报,利亚德的财报显得尤为另类。利亚德光电集团成立于1995年,是一家以LED显示、液晶显示产品设计、生产、销售及服务为主业的高新技术企业。自2016年年报起,无论业绩优劣,董事长李军每年都会在财报末尾附上一首七言打油诗,抒发其对公司当年业绩的感悟。从“三年翻番顺大势”“智能显示我第一”“披荆斩棘幸从容”等词句中,不难窥见李军的雄心壮志。2012年,利亚德(300296.SZ)在深交所创业板上市。成立以来,该公司在细分领
    华尔街科技眼 2025-05-07 19:25 491浏览
  • 硅二极管温度传感器是一种基于硅半导体材料特性的测温装置,其核心原理是利用硅二极管的电学参数(如正向压降或电阻)随温度变化的特性实现温度检测。以下是其工作原理、技术特点及典型应用:一、工作原理1、‌PN结温度特性‌硅二极管由PN结构成,当温度变化时,其正向电压 VF与温度呈线性负相关关系。例如,温度每升高1℃,VF约下降2 mV。2、‌电压—温度关系‌通过jing确测量正向电压的微小变化,可推算出环境温度值。部分型号(如SI410)在宽温域内(如1.4 K至475 K)仍能保持高线性度。
    锦正茂科技 2025-05-09 13:52 301浏览
  • 这款无线入耳式蓝牙耳机是长这个样子的,如下图。侧面特写,如下图。充电接口来个特写,用的是卡座卡在PCB板子上的,上下夹紧PCB的正负极,如下图。撬开耳机喇叭盖子,如下图。精致的喇叭(HY),如下图。喇叭是由电学产生声学的,具体结构如下图。电池包(AFS 451012  21 12),用黄色耐高温胶带进行包裹(安规需求),加强隔离绝缘的,如下图。451012是电池包的型号,聚合物锂电池+3.7V 35mAh,详细如下图。电路板是怎么拿出来的呢,剪断喇叭和电池包的连接线,底部抽出PCB板子
    liweicheng 2025-05-06 22:58 665浏览
  • 飞凌嵌入式作为龙芯合作伙伴,隆重推出FET-2K0300i-S全国产自主可控工业级核心板!FET-2K0300i-S核心板基于龙芯2K0300i工业级处理器开发设计,集成1个64位LA264处理器,主频1GHz,提供高效的计算能力;支持硬件ECC;2K0300i还具备丰富的连接接口USB、SDIO、UART、SPI、CAN-FD、Ethernet、ADC等一应俱全,龙芯2K0300i支持四路CAN-FD接口,具备良好的可靠性、实时性和灵活性,可满足用户多路CAN需求。除性价比超高的国产处理器外,
    飞凌嵌入式 2025-05-07 11:54 111浏览
  • 随着智能驾驶时代到来,汽车正转变为移动计算平台。车载AI技术对存储器提出新挑战:既要高性能,又需低功耗和车规级可靠性。贞光科技代理的紫光国芯车规级LPDDR4存储器,以其卓越性能成为国产芯片产业链中的关键一环,为智能汽车提供坚实的"记忆力"支持。作为官方授权代理商,贞光科技通过专业技术团队和完善供应链,让这款国产存储器更好地服务国内汽车厂商。本文将探讨车载AI算力需求现状及贞光科技如何通过紫光国芯LPDDR4产品满足市场需求。 车载AI算力需求激增的背景与挑战智能驾驶推动算力需求爆发式
    贞光科技 2025-05-07 16:54 232浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦