GIC (General Interrupt Controller)之一

1 中断术语

1.        中断状态

n  Inactive

中断尚未激活或挂起

n  Pending

中断已经由硬件或者软件产生,正等待目标CPU处理

n  Active

CPU已经应答(Acknowledge)来自GIC的中断,该中断正在被CPU处理但尚未完成。

n  Active& Pending

CPU正在处理该中断,此时GIC又收到来自该中断源的中断。

 

2.        中断类型

n  PeripheralInterrupt

外设中断是通过一个物理信号发送到GIC。外设中断可以是电平中断或边沿中断。

u  Privateperipheral interrupt

针对某一个CPU的中断

u  Sharedperipheral interrupt

任意CPU组合的中断

n  Software-GeneratedInterrupt(SGI)

软件产生的中断是通过软件写GICD_SGIR产生的。SGI一般被用作IPI核间中断(Inter-processorInterrupt),用于核间通讯。

SGI具有边沿中断的特性。

GICC_IAR中的CPUID被用来标识哪个CPU发出的中断请求。

n  VirtualInterrupt

n  MaintenanceInterrupt

 

3.        中断处理模型

n  1-N模型

只有一个CPU处理该中断。系统需要实现一种机制决定哪个CPU处理该中断。

n  1-1模型

所有的CPU都收到该中断。当一个处理器应答该中断,只是当前CPU上的该中断挂起状态被清除。其他CPU上的中断挂起状态仍然不变。

 

4.        伪中断 (SpuriousInterrupt)

可能存在GIC通知一个处理器这个中断不在需要的情况。在这种情况下,处理器去应答该中断时,GIC返回一个特殊的中断号,我们称之为伪中断。可能发生这种情况的原因如下:在处理器应答该中断之前,软件改变了该中断的优先级、软件禁用该中断或者改变了目标处理器;1-N中断也是一种情况。

 

5.        处理器安全状态和安全及非安全的GIC访问

 

6.        Banking

Interrupt Banking

       在多处理器系统中,对于PPI和SGI,GIC可以有多个中断使用同一个中断号。这样的中断成为bankedinterrupt,该类中断通过中断号和相关联的CPUinterface可以唯一标识。

 

Register Banking

       是指在同一个地址实现多个寄存器,即多个寄存器拥有相同的地址。在多处理器系统中,为bankedinterrupt的相关寄存器在每个处理器上提供一个独立的copy。

在ARM结构中最常见的Register Banking是R8~R12,在不同模式下,使用不同的物理寄存器。

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值