PPI(private peripheral interrupt)、SGI(software generated interrupt)和LPI(locality-specific peripheral interrupt)四种中断类型,以及distributor、redistributor、ITS(interrupt translation service)和CPU interface四大组件。
为了实现中断的配置、接收、仲裁和路由功能,GICv3设计了不同组件,它包含了SPI(shared peripheral interrupt)、PPI(private peripheral interrupt)、SGI(software generated interrupt)和LPI(locality-specific peripheral interrupt)四种中断类型,以及distributor、redistributor、ITS(interrupt translation service)和CPU interface四...
• PPI:(Private Peripheral Interrupt,私有外设中断),该中断来源于core,但是该中断只对指定的core有效,所谓的私有即指对core私有; • SPI:(Shared Peripheral Interrupt,共享外设中断),该中断来源于外部设备,该中断可以对所有的core有效; • SGI:(Software Generated Interrupt,软件中断),用于给其它的core发送中断...
SGI(Software-generated interrupt )软件产生中断,这是用户软件编程可以产生的中断 Virtual interrupt 虚拟中断,可以在虚拟化场景下将中断发到VMM或者VM 四种中断类型,我们只关注前三个,其中SGI和PPI的中断号在前32个,由于GICv2结构简单,SGI和PPI直连到每个CPU上,看上面的结构图,每个PPI和SGI都对应一个CPU,因此这种情...
PPI(Private Peripheral Interrupt) 私有外设中断。这是每个核心私有的中断。PPI会送达到指定的CPU上,应用场景有CPU本地时钟。 SGI(Software Generated Interrupt) 软件触发的中断。软件可以通过写GICD_SGIR寄存器来触发一个中断事件,一般用于核间通信。 LPI(Locality-specific Peripheral Interrupt) ...
GIC-v3 的架构变化如下:以前 SPI、PPI、SGI 都归 Distributor(分发器端) 管,现在只有 SPI 归 Distributor管,PPI、SGI、LPI 都归 Redistributor 管,作用还是一样的。 寄存器分布,不同东西的寄存器开头不一样: GIC-v 3的中断号规定如下,来源于ARM官方文档。
③SGI(Software-generated Interrupt),软件中断,由软件触发引起的中断,通过向寄存器GICD_SGIR写入数据来触发,系统使用SGI中断来完成多核之间的通信。 在图中,SGI是软件(软件运行在CPU上)触发,所以SGI中断源头是各个CPU上的应用,另外SGI和PPI一样,每个CPU都有属于自己的SGI,所以必须指定CPU。
PPI:私有外设中断:是每个 CPU 私有的中断。最多支持 16 个 PPI 中断,硬件中断号从 ID16~ID31。 SGI:软件触发中断:通常用于多核间通讯,最多支持 16 个 SGI 中断,硬件中断号从 ID0~ID15。 中断状态 lnactive:中断源没有发送中断; Pending:中断源已经发送中断,等待处理器处理; ...
在DTS中,外设的interrupt type有两种,一种是SPI,另外一种是PPI。SGI用于processor之间的通信,和外设无关。 uart3的interrupt属性中的74表示该外设使用的GIC interrupt ID号。GIC最大支持1020个HW interrupt ID,具体的ID分配情况如下: (1)ID0~ID31是用于分发到一个特定的process的interrupt。标识这些interrupt不能仅...
对于SGI和PPI中断,当前中断在当前处理器中是pending状态的。 对于SPI中断,当前中断至少在一个处理器中处于pending状态。 对于SPI和PPI中断来讲: 写入0:无影响 写入1:其效果取决于是边缘触发还是电平敏感中断: 边缘触发(Edge-triggered),如果中断不处于pending状态,则不受影响。如果之前是pending状态,则会变成inactive状...