[A-30]ARMv8/v9-GIC-中断处理(中断状态机\中断生命周期)

ver0.1

前言

前一篇文章,我们站在SOC安全框架的视角下,对GIC的安全相关的架构设计做了梳理。所有的中断信号在SOC启动阶段的初始化过程中必须被配置到一个具有安全等级的Group中,目前ARM为中断信号设计了3个组: Secure Group 0、Secure Group 1、Non-Secure Group 1。在分组的基础上,在信号到达GIC-CPU-Interfaces的时候,还会根据当前PE的执行状态,将这些信号进行分流,通过FIQ或者IRQ接口将中断信号注入到PE-Core,PE-Core会按照ARM的Exception架构中设定好的处理入口,对中断信号进行响应。本文我们看一下GIC是如何管理一个中断信号从出生到消亡的整个过程,以及GIC是如何管理中断的状态?同样本文也需要一些基础知识,推荐一些前序文章,建议大家先读一读找找感觉:
(1) [V-02] 虚拟化基础-CPU架构(基于AArch64)
(2) [V-05] 虚拟化基础-异常模型(Exception)(AArch64) .
(3) [A-25]ARMv8/v9-GIC的系统架构(中断的硬件基础)
(4) [A-26]ARMv8/v9-GIC的中断类型
(5) [A-27]ARMv8/v9-GIC的核心组件(中断编程的基础组件)
(6) [A-28]ARMv8/v9-GIC中断信号的路由机制与策略
(7) [A-29]ARMv8/v9-GIC-中断子系统的安全架构设计(Security/FIQ/IRQ)

正文

1.1 中断状态机(Interrupt state machine)

本文后续要讨论的一些问题都涉及到中断信号的一些非常严格的临界状态,中断的这些状态之间的迁移勾勒出了ARM中断处理的一些思想,因此我们有必要花费一点时间讲清楚这个问题。

1.1.1 状态机(State Machine)

提到状态,就避免不了状态机这个概念。最通俗易懂的理解状态和状态机,就是马路上的信号灯。红色、黄色、绿色信号灯亮起的情况下,这就是一个个独立的状态,而三种颜色的信号灯的交替亮起的过程,就是一个信号灯状态机管理的过程,信号灯必须按照状态机制定的规则进行状态迁移。在计算机领域状态机的概念更是得到了广泛的应用,比较经典的例子如图1-1所示。

你可能感兴趣的:(ARMv8/ARMv9,系统架构,arm开发,arm,linux,架构)