0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

GIC-600的组件是如何连接的

麦辣鸡腿堡 来源:TrustZone 作者:TrustZone 2023-11-07 17:19 次阅读

为了适应大规模的SoC设计,GIC-600被设计成分布式IP。

所谓分布式,GIC-600由几种组件构成,每个组件可以跟其它相关模块在物理设计上摆放在一起,并与其拥有共同的电源域;组件之间通过片上网络(network on chip,简称NoC)通信,从而达到更好的时序。

GIC-600的重要组件包括以下几种:

• Distributor:GIC-600的核心部件,负责与其它组件通信,主要处理SPI和LPI

• Redistributor:与cluster或core交互,主要处理PPI和SGI

• ITS(Interrupt Translation Service):处理基于消息的中断,用于解析LPI

• SPI collator:顾名思义,收集整理SPI

• Wake request:产生wake_request给core

在具体介绍每个组件之前,我们有必要先来研究一下这些组件之间是如何连接的。主要有两种方式,

如何连接

第一种是利用片上网络,比如CMN-600这样的IP

图片

图1 利用NoC连接GIC-600的组件

第一种方法,适合大规模的物理设计,尤其是全局时钟方案复杂的SoC。比如有很多的cluster,一般而言,一个redistributor对应一个cluster,这样redistributor可以和cluster一起做布局布线,redistributor和cluster之间的通信可以保持在一个比较高的频率,且timing容易实现。

同样,对于有很多PCIe控制器的设计,ITS可以和PCIe控制器放在一起,实现LPI。对于SPI来说,一般多是给低速的外设准备的,所以SPI collator可以和distributor放在一起。

Wake request组件的主要作用就是可以产生唤醒信号给core,如果SoC设计中没有做关于core功耗方面的设计,这个组件可以不需要;如果有功耗控制的需求,这些唤醒信号要给SCP(system control processor)或者相关的模块,再做进一步的设计,具体取决于设计需要了。

第二种是私有的桥接。

图片

图2 利用私有桥接连接GIC-600的组件

第二种方法,适合规模较小的,全局时钟方案简单的SoC,GIC-600的组件不依赖于片上网络(因为没有可用接口,比如NIC等)。这种方法的弊端是,组件之间的走线可能会非常长,并且可能需要在别的IP中穿行。好处是,不占用任何NoC的带宽。

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

    关注

    18

    文章

    6032

    浏览量

    135990
  • soc
    soc
    +关注

    关注

    38

    文章

    4165

    浏览量

    218239
  • 中断
    +关注

    关注

    5

    文章

    898

    浏览量

    41494
  • gic
    gic
    +关注

    关注

    0

    文章

    14

    浏览量

    6272
收藏 人收藏

    评论

    相关推荐

    ARM之中断GIC分析

      1.“站的高尿的远”  GIC为中断控制器,不要和ARM core的中断搞混了,这些中断都是连接到ARM core的IRQ或者FIQ上的。  要了解arm中断系统,GIC绝对不容错过,好先付
    发表于 11-26 13:50

    ARM GIC(八)GICv3架构的变化

    GIC,是arm为了实现复杂的中断控制,而定义的一套架构。版本也历经了多个变化,从最初的GICv1到现在最新的GICv4。每一个新的版本,都增加了一些新的功能。目前最新的GIC-600 IP,支持
    发表于 04-07 10:59

    ARM体系中对中断的处理资料分享

    后又返回原被暂停的程序继续运行。2、GIC-600的重要组件包括几种为了适应大规模的SoC设计,GIC-600被设计成分布式IP。所谓分布式,GIC-600由几种
    发表于 04-13 18:09

    ARM GIC电源管理使用手册指南

    ;rdistif_base_addrs[proc_num];assert(gicr_base != 0U);gicv3_rdistif_mark_core_asleep(gicr_base);}以下是GIC-600 支持
    发表于 05-27 16:41

    探讨系统IP的好处和基于Cortex-A处理器的高性能虚拟机的软件支持

    Interrupt Controller (GIC)当运行在虚拟化环境时,及时地将中断和异常通知到虚拟处理单元是很重要的。GIC-600是GICv3构架兼容的中断控制器,它具有支持很大数量CPU core和多芯片
    发表于 10-27 16:25

    GIC ITS的ITS tables和Command Queue访问简析

    (Normal, Non-cacheable).对于GIC-600/GIC-700, GIC ITS访问tables和command queue的接口是ACE-lite master interface
    发表于 12-20 14:35

    ARM CoreLink GIC-600通用中断控制器参考手册

    ARM CoreLink GIC-600通用中断控制器参考手册
    发表于 08-02 12:32

    ARM CORELINK GIC-600AE通用中断控制器威廉希尔官方网站 参考手册

    GIC-600AE是GIC-600的功能安全(FUSA)变种。 GIC-600AE是一种通用中断控制器(GIC),可处理从外设到内核以及内核之间的中断。
    发表于 08-09 06:10

    基于GIC的物联网的应用方案

    本文档内容介绍了基于GIC的物联网的应用方案,供参阅。
    发表于 09-18 15:46 0次下载
    基于<b class='flag-5'>GIC</b>的物联网的应用方案

    扒一扒GIC-600的相关知识

    为了适应大规模的SoC设计,GIC-600被设计成分布式IP。所谓分布式,GIC-600由几种组件构成,每个组件可以跟其它相关模块在物理设计上摆放在一起,并与其拥有共同的电源域
    发表于 02-06 11:36 2739次阅读

    介绍SMMU的相关知识

    为了适应大规模的SoC设计,GIC-600被设计成分布式IP。所谓分布式,GIC-600由几种组件构成,每个组件可以跟其它相关模块在物理设计上摆放在一起,并与其拥有共同的电源域;
    的头像 发表于 02-15 09:48 3606次阅读

    GIC是什么意思 GIC硬件原理

    GIC硬件原理 ARM公司提供了一个通用的中断控制器 GIC(Generic Interrupt Controller) , GIC 的版本包括 V1 ~ V4 ,由于本人使用的SoC中的中断控制器
    的头像 发表于 09-28 14:58 1971次阅读
    <b class='flag-5'>GIC</b>是什么意思 <b class='flag-5'>GIC</b>硬件原理

    GIC-600的内部结构组件

    接下来看看每个组件。 • 首先是distributor,一个SoC只有一个。 •它的组件只能与distributor通信。所以,可以看出,distributor是GIC-600中的核心,其作用是收集
    的头像 发表于 11-07 17:29 624次阅读
    <b class='flag-5'>GIC-600</b>的内部结构<b class='flag-5'>组件</b>

    gic和ARM Core的连接

    • ◾nVIRQ: 虚拟普通中断 • ◾nVFIQ: 虚拟快速中断 (2)gicv3和ARM Core的连接 gicv3 AXI-stream协议 • ◾gic stream协议,是基于AXI-stream协议
    的头像 发表于 11-07 18:07 634次阅读
    <b class='flag-5'>gic</b>和ARM Core的<b class='flag-5'>连接</b>

    gic组件介绍

    (1)gicv2的组件 在GICv2中,最大支持8个core • distributor:实现中断分发,对于PPI,SGI是各个core独有的中断,不参与目的core的仲裁,SPI是所有core共享
    的头像 发表于 11-08 15:57 459次阅读
    <b class='flag-5'>gic</b>的<b class='flag-5'>组件</b>介绍