中断是指芯片运行过程中,出现某些意外情况需要cpu干预时,芯片能自动停止正在运行的任务并转入处理新情况的任务,处理完毕后又返回原被暂停的任务继续运行或处理新的任务。
中断的几个主要目的。第一,通过中断可以提高CPU效率。假设一种场景,CPU通知其它设备完成某项工作,当设备完成任务后,CPU如何知道呢?一种方式是设备标记状态寄存器,等待CPU来查询,这种做法弊端是程序员在编写程序时不能确切知道设备完成任务所需的时间,也就是说需要定时去查询设备的状态。我们知道,现代CPU一般频率很高,如果去频繁查询外部设备,尤其是低速设备,必将浪费很多的CPU资源;如果查询的时间间隔长,那么外设的利用率就不高。有一种解决办法,那就是外设处理完任务,主动告诉CPU,从而省去了CPU的查询开销。
中断的第二个用途是,可以维护系统正常运行。现代的操作系统都是多任务系统,表面看起来多个程序在并行,实际上真正的CPU是分时复用的,多个进程同时进行,交互式执行且切换频率较高,并不是真的并行。因此不会出现恶意程序一直霸占CPU资源不释放,是不是整个系统就不会挂死。CPU的切换分配是由操作系统负责完成的,原理就是通过中断把控制权从程序手中交还给操作系统。另外,CPU访问内存或其它设备时,也可能发生一些错误。对于不同错误有不同的处理方式,也可以通过中断来完成。
对于一些特定的应用场景,设备系统需要满足实时性。所谓实时性,就是要求系统在规定的或者可预期的时间内作出反应。此类需求也可以通过中断来满足。
还记得前面讲ARM异常时的概念吗?中断算一种异步异常,《ARM系列 -- 异常和特权》。A系列处理器提供四个管脚来实现中断,分别是:
nIRQ:物理普通中断
nFIQ:物理快速中断
nVIRQ:虚拟普通中断
nVFIQ:虚拟快速中断
如下图所示:

参考链接:https://www.cnblogs.com/Alfred-HOO/articles/15755880.html
浙公网安备 33010602011771号