GICv3中断是GICv2的改进,本文主要基于GICv2,简单讨论GICv3的改进内容
我们知道GICv2默认支持如下中断类型:
在GICv3中,新增了一个中断类型
GICv2的中断类型,如下
中断类型 | 中断号 |
---|---|
SGI | 0-15 |
PPI | 16-31 |
SPI | 32-1019 |
Reserved | 1020-1023 |
而GICv3的中断号相比于GICv2增加了LPI和一些扩展,如下
中断类型 | 中断号 |
---|---|
SGI | 0-15 |
PPI | 16-31 |
SPI | 32-1019 |
Reserved | 1020-8191 |
LPI | 8192-Implementation defined |
为了支持Message-Based的中断LPI,GICv3的中断控制器引入了ITS组件,ITS的作用是将Device_id的Event_ID转换成INTID(LPI硬件中断号),然后通过查表转换成对应的Redistributor,最后转发给CPU上。
PCIe总线协议支持消息中断MSI,这个实现是通过GICv3的ITS实现的