卢骏 · 2020年05月25日

ARM GIC(八)总结

GIC,是arm为了实现复杂的中断控制,而定义的一套架构。版本也历经了多个变化,从最初的GICv1到现在最新的GICv4。每一个新的版本,都增加了一些新的功能。

1.png

目前最新的GIC-600 IP,支持GICv4。

不过从GICv3开始,架构就和之前的架构,变化就比较大了。

一、变化一:cpu interface

下图是GICv2架构,cpu interface是实现在gic内部,而且gic的寄存器,都是memory-mapped方式访问。

2.png

下图是GICv3架构,cpu interface从gic内部剥离,实现在PE的内部。并且将cpu interface的寄存器,提供了系统寄存器访问方式,从而实现中断的快速响应。
3.png

二、变化二:core的标识

GICv3中,对于core的标识,使用了属性层次的方式,来进行标识,从而可以支持更多的core。

4.png

而GICv2中,支持最大8个core。

三、变化三:消息中断

GICv3中,加入了LPI中断类型,来实现消息中断。并且提供了ITS,来实现中断的转换。

四、变化四:SGI处理

对于SGI的处理,有如下的变化。

5.png

五、总结

gicv3/v4,架构,比gicv2架构,增加了很多的特性,从而支持更复杂的中断管理,支持更多的cpu。

自此,本系列博文到此就要结束了,基本上,除了虚拟中断的相关内容,我将GIC的内容都进行了介绍。希望大家看完这系列博文,能够对GIC有所认识。当初,自己也是看了很多的文档,外加上代码,才对这个理解的。

后面,如果我有去了解过虚拟中断,会在写一系列博文,来介绍虚拟中断。

系列其他篇

原文首发于骏的世界博客
作者:卢骏.
更多Arm技术相关的文章请关注Arm技术博客极术专栏,每日更新。
推荐阅读
关注数
23583
内容数
1035
Arm相关的技术博客,提供最新Arm技术干货,欢迎关注
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息