GIC spec之介绍3

术语

        本文档中架构描述使用了用于Armv8架构相同的术语。为获取更多术语相关的信息,可以看Arm Architecture Reference Manual Armv8。

        另外一个AArch64系统寄存器名字被合适的地方被使用,优先于将AArch32和AArch64系统寄存器的名字列出。AArch64寄存器名字的ELx后缀表明最低异常级别的寄存器也可以访问。单独的AArch64系统寄存器描述包含AArch32系统寄存器中提供相同功能的引用。

        在本文档中使用下列部分定义的架构术语:

(1)中断类型

(2)中断状态

(3)中断处理模型

(4)其他术语

2.1 中断类型

        实现了GIC架构的设备可以控制外设中断。外设中断通常由物理信号发给GIC产生。GIC架构定义了下列类型的外设中断:

LPI中断:LPI为目标到外设的中断,该中断路由到亲和性层次中特定PE:

  1. LPI通常为非安全Group1中断,在两个安全状态使能的系统中;
  2. LPI为边沿触发中断;
  3. LPI使用ITS可以被路由;
  4. LPI没有active状态,因此不需要明确的解除激活;
  5. LPI通常为基于信息的中断;

PPI中断:PPI中断为外设中断,目标为单个或特定的PE,不同的PE可以使用相同的中断号来表示不同的事件:

  1. PPI为Group0中断,安全Group1中断,或非安全Group1中断;
  2. PPI支持边沿中断或电平敏感中断;
  3. PPI不能使用ITS进行路由;
  4. PPI有active状态,因此要求明确的解除激活;

NOTE: 通常PPI中断被每个PE上相同中断源的不同实例使用,因此允许一个通用的中断号被PE特定的事件使用,比如来自私有timer的中断;

SPI中断:SPI中断为外设中断,它能够被Distributor路由到特定的可以处理它的PE上,或者发送到系统中被配置为可以接受该类型中断的一组Group中的一个;

  1. SPI中断为Group0中断,安全Group1中断,或非安全Group1中断;
  2. SPI支持边沿中断或电平敏感中断;
  3. SPI不能使用ITS进行路由;
  4. SPI有active状态,因此要求明确的解除激活;

SGI中断:SGI中断通常用于处理器内部交流,在GIC中写一个SGI寄存器产生SGI中断:

  1. SGI中断为Group0中断,安全Group1中断,或非安全Group1中断;
  2. SGI为边沿触发中断;
  3. SGI不能使用ITS路由;
  4. SGI有active状态,因此要求明确的解除激活;

        边沿触发中断有下列属性:它在检查到一个中断信号的上升边沿时产生,不管信号的状态,保持发送直到中断被软件acked。

        为获取边沿触发基于信息的中断,可以查看基于信息的中断。

电平中断有下列属性:

(1)当中断信号电平active时发出中断,当电平非active时取消中断;

(2)由软件明确的取消中断。

2.2 中断状态

        下列状态应用于GIC和连接的PE的每个接口:

Inactive: 中断为非active或pending状态;

Pending: 中断在硬件被识别发出,或由软件产生,等待目标PE被处理;

Active:中断被PE acked和处理,因此相同的其他中断不会对PE发送,直到初始中断不再active。LPI没有active状态,转化到非active状态被PE acked;

Active and pending: 一个active的中断,被后续的发出中断pending。LPI没有active和pending状态,转化到inactive状态,被PE所acked。

        GIC维护每个支持的中断的状态。状态机定义了不同中断状态之间的可能转换,对每个中断类型,条件会导致转换。

猜你喜欢

转载自blog.csdn.net/flyingnosky/article/details/123943701
GIC