gicv2与gicv3的区别

描述

  一、gicv2与gicv3

  但是在gicv3之前一直都是使用的giv2,这两者有什么区别?

  最近在做实验室的版本兼容,很我一直以为这个gicv2和gicv3版本更新的年代不是很久。最后看了一下gicv2的文章发现在2016年都有了,为什么现在还有gicv2,吐槽一下。不过活还是得干,之前做过关于gicv3的东西,但是现在还得整个gicv2,在基于这个gicv3上进行修改,那么必须对比一下这两个之间的差别。

  循序渐进,先整概念,再看源码。

  二、概念

  1、gic概念

  gic : general interrupt controller

  分类

  GIC中断控制器的分类:gicv1(已弃用),gicv2,gicv3,gicv4

  • ◾gic400,支持gicv2架构版本。

  • ◾gic500,支持gicv3架构版本。

  • ◾gic600,支持gicv3架构版本

  核心功能

  gic的核心功能,就是对soc中外设的中断源的管理,并且提供给软件,配置以及控制这些中断源。

  • ◾当对应的中断源有效时,gic根据该中断源的配置,决定是否将该中断信号,发送给CPU。如果有多个中断源有效,那么gic还会进行仲裁,选择最高优先级中断,发送给CPU。

  • ◾当CPU接受到gic发送的中断,通过读取gic的寄存器,就可以知道,中断的来源来自于哪里,从而可以做相应的处理。

  • ◾当CPU处理完中断之后,会告诉gic,其实就是访问gic的寄存器,该中断处理完毕。gic接受到该信息后,就将该中断源取消,避免又重新发送该中断给cpu以及允许中断抢占

  gicv3较gicv2的特点

  GICv3架构是GICv2架构的升级版,增加了很多东西。变化在于以下:

  • ◾使用属性层次(affinity hierarchies),来对core进行标识,使gic支持更多的core

  • ◾将cpu interface独立出来,用户可以将其设计在core内部

  • ◾增加redistributor组件,用来连接distributor和cpu interface

  • ◾增加了LPI,使用ITS来解析

  • ◾对于cpu interface的寄存器,增加系统寄存器访问方式

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分