CPU中断

中断是什么

当CPU(中央处理器)执行一条现行指令的时候,如果外设向CPU发出中断请求,那么CPU在满足响应的情况下,将发出中断响应信号,与此同时关闭中断,表示CPU不在受理另外一个设备的中断。这时,CPU将寻找中断请求源是哪一个设备,并保存CPU自己的程序计数器(PC)的内容。然后,他将转移到处理该中断源的中断服务程序。CPU在保存现场信息,设备服务(如交换数据)以后,将恢复现场信息。在这些动作完成以后,开放中断,并返回到原来被中断的主程序的下一条指令。

参考:中断处理

为什么需要中断

如果没有中断,CPU只能按照程序编写的顺序,对各个外设进行查询和处理,即轮询工作方式。
轮询方法貌似公平,但实际效率却很低。且不能及时相应紧急事件。

中断的意义

使得计算机系统具备应对和处理突发事件的能力,提高了CPU的工作效率。

中断信号的分类

  • 同步中断

CPU自己在指令执行的过程中发出的中断,如系统调用、缺页中断

  • 异步中断

其它硬件设备发出的中断。异步中断中包括了系统错误。

中断的上半部和下半部

  • 上半部

紧急的硬件操作

  • 下半部

耗时的代码提取处理,在稍后合适的时候去执行

硬中断和软中断

  • 硬中断

由CPU硬件实现的中断

  • 软中断

由内核实现的中断;软中断时中断下半部的一种实现方式

中断控制器

中断号

  • HW interrupt ID:硬件中断号
  • IRQ_number: 内核中断向量

GIC

GIC,Generic Interrupt Controller。是ARM公司提供的一个通用的中断控制器。主要作用为:
接受硬件中断信号,并经过一定处理后,分发给对应的CPU进行处理。

参考:ARM GICv3中断控制器

IDT

中断向量表(中断描述符表),内核必须初始化IDT,其基址保存在IDTR寄存器。
通过该表项,可以找到中断处理函数入口。

参考:中断向量表

中断门、陷进门、任务门

门,顾名思义,是通往某处的入口。在计算机中,用门来表示一段程序的入口。
拿它和段描述符对比一下就容易理解了,段描述符中描述的是一片内存区域,而门描述符中描述的是一段代码。

参考:门描述符

posted @ 2022-03-21 10:39  武平宁  阅读(784)  评论(0)    收藏  举报