
gic
文章平均质量分 70
RJ436
这个作者很懒,什么都没留下…
展开
-
ARM GIC (五)gicv3架构-LPI
ITS将接收到的LPI中断,进行解析,然后发送到对应的redistributor,再由redistributor将中断信息,发送给cpu interface。需要将外设发送的DeviceID,eventID,通过一系列查表,得到LPI的中断号以及该中断对应的target redistributor,然后将LPI中断,发送给对应的redistributor。LPI,和SPI,PPI,SGI有些差别,LPI的中断的配置,以及中断的状态,是保存在memory的表中,而不是保存在gic的寄存器中的。原创 2023-12-22 07:44:38 · 2569 阅读 · 1 评论 -
ARM GIC(四) gicv3架构基础
其中,cpu interface是实现在core内部的,distributor,redistributor,ITS是实现在gic内部的。distribute:distributor对收到的中断源进行仲裁,然后发送给对应的cpu interface。redistributor:PPI,SGI,LPI中断的管理,将中断发送给cpu interface。distributor:SPI中断的管理,将中断发送给redistributor。这个中断生命周期,和gicv2的中断生命周期是一样的。原创 2023-12-21 23:51:38 · 1018 阅读 · 0 评论 -
ARM GIC(三) gicv2架构
还是刚刚的例子,cpu在响应优先级为4的中断A,当中断A的上半部分完成后,通知GIC,优先级重置(drop priority),GIC将当前的最高优先级中断重置,重置到响应中断A之前的优先级,比如优先级6,那么此时优先级为5的中断B,就可以被cpu响应。ARM的cpu,特别是cortex-A系列的CPU,目前都是多core的cpu,因此对于多core的cpu的中断管理,就不能像单core那样简单去管理,由此arm定义了GICv2架构,来支持多核cpu的中断管理。中断完成,是指cpu处理完中断。原创 2023-12-21 08:35:47 · 2062 阅读 · 0 评论 -
ARM GIC(二)中断分类
SGI(software-generated interrupts)软件产生的中断,主要用于核间交互,内核中的IPI,inter-processor interrupts就是基于SGI的,中断号ID0 - ID15用于SGI。因为soc中,中断有很多,为了方便对中断的管理,对每个中断,附加了中断优先级。在中断仲裁时,高优先级的中断,会优于低优先级的中断,发送给cpu处理。当cpu在响应低优先级中断时,如果此时来了高优先级中断,那么高优先级中断会抢占低优先级中断,而被处理器响应。以下是中断状态的转移图。原创 2023-12-21 08:27:40 · 756 阅读 · 0 评论 -
ARM GIC(一) cortex-A 处理器中断简介
因此就需要有一个中断控制器来作为中间的桥接,收集soc的所有中断信号,然后仲裁选择合适的中断,再发送给CPU,等待CPU处理。当对应的中断源有效时,gic根据该中断源的配置,决定是否将该中断信号,发送给CPU。当CPU接受到gic发送的中断,通过读取gic的寄存器,就可以知道,中断的来源来自于哪里,从而可以做相应的处理。其中虚拟中断,是为了实现虚拟化而加入的,在这个系列中,不讨论虚拟中断,只介绍物理中断的相关知识。gic的核心功能,就是对soc中外设的中断源的管理,并且提供给软件,配置以及控制这些中断源。原创 2023-12-21 08:18:22 · 650 阅读 · 0 评论