【方辉专栏】ARM64体系结构编程与实践学习笔记(六) ARM 通用中断控制
发布时间:2022-07-26

摘要: 本文主要对Arm通用中断控制进行简单介绍。

关键字:Armv8、体系结构、ARM架构、中断控制、GIC、通用中断控制、GIC-700


1. 中断控制的发展

在早期ARM系统中(例如ARM7/ARM9),采用单核处理器设计,系统支持的中断源比较少并且是单核处理器系统,使用简单的寄存器表示每个中断源的使能、关闭以及状态。假设系统一共有64个中断源,每个寄存器有32位,每位描述一个中断,那么只需要两个中断使能寄存器(Interrupt Enable Register ,IER)和两个中断状态寄存器(Interrupt Status Register,ISR)。

现在随着处理器设计越来越复杂,中断源变得越来越多,有的系统中断源有几百甚至上千个,同时中断类型也越来越多。由于以上原因,ARM公司开发了通用中断控制(Generic Interrupt Controller,GIC)专门用于管理中断。目前版本为GIC-4,典型的IP是GIC-700.


2. GIC-700组成

GIC-700包含以下几个模块,通过这些模块,在系统内实现符合GICv3 、GICv3.1 和 GICv4.1的中断管理控制。


2.1 GIC分配器(GIC Distributor ,GICD)

分配器是所有 GIC 通信的中心,包含所有共享外设中断 (SPI) 以及特定于位置的外设中断 (LPI)的功能


2.2 GIC集群接口 (GIC Cluster Interface,GCI)

GIC集群接口维护一组特定内核的专用外设中断 (PPI) 和软件生成中断 (SGI)。GIC集群接口可以 从 1 到 64 个内核扩展,最好放置在它所服务的处理器旁边,以减少到内核的布线。GCI也称为再分配器。


2.3 中断翻译服务(Interrupt Translation Service ,ITS)

ITS转换来自外部 PCI Express (PCIe) 根联合体 (RC) 或其他来源的基于消息的中断、消息信号中断 (MSI/MSIx)。ITS 还在核心电源管理期间管理 LPI。

GIC-700每个芯片最多支持 32 个 ITS 模块。


2.4 SPI整理器(SPI Collator)

GIC-700支持多达1984个分布在系统中的SPI 。 SPI Collator 使SPI 可以从Distributor 远程转换为消息。这使得分配器的分层时钟门控和其他更积极的低功耗状态的使用成为可能。

单个配置中最多可支持 32个SPI 整理器。1984 SPI 可以分布在 32 个 SPI Collator 中,一个 SPI Collator 中最多有1024个 SPI。


2.5 唤醒请求(Wake Request)

唤醒请求包含芯片上每个内核的所有架构定义的唤醒请求 信号。 它是一个单独的块,可以远离分配器放置,例如靠近系统控制处理器。


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


关于亿道电子

亿道电子技术有限公司(英文名称:Emdoor Electronics Technology Co.,Ltd)是国内资深的研发工具软件提供商,公司成立于 2002 年,面向中国广大的制造业客户提供研发、设计、管理过程中使用的各种软件开发工具,致力于帮助客户提高研发管理效率、缩短产品设计周期,提升产品可靠性。

20 年来,先后与 Altium、ARM、Ansys、QT、Adobe、Visu-IT、Minitab、Testplant、EPLAN、HighTec、GreenHills、PLS、Ashling、MSC Software 、Autodesk、Source Insight、TeamEDA、MicroFocus等多家全球知名公司建立战略合作伙伴关系,并作为他们在中国区的主要分销合作伙伴服务了数千家中国本土客户,为客户提供从芯片级开发工具、EDA 设计工具、软件编译以及测试工具、结构设计工具、仿真工具、电气设计工具、以及嵌入式 GUI 工具等等。亿道电子凭借多年的经验积累,真正的帮助客户实现了让研发更简单、更可靠、更高效的目标。


欢迎关注“亿道电子”公众号

了解更多研发工具软件知识