Generic Interrupt Controllers

The Arm CoreLink Generic Interrupt Controllers

Getting Started

A Generic Interrupt Controller (GIC) is an exclusive block of IP that performs critical tasks of interrupt management, prioritization and routing. GICs are primarily used for boosting processor efficiency and supporting interrupt virtualization. GICs are implemented based on Arm GIC architecture which has evolved from GICv1 to latest version GICv3/v4. Arm has several generic interrupt controllers that provide a range of interrupt management solutions for all types of Arm Cortex multiprocessor systems. These controllers span from the simplest GIC-400 for systems with small CPU cores counts to GIC-600 for high-performant and multi-chip systems. GIC-600AE adds additional safety features targeting high performant ASIL B to ASIL D systems. 

CoreLink Generic Interrupt Controllers Chip.

Whitepaper: Enterprise Virtualization with Arm CoreLink SMMU and Arm CoreLink GIC

Download

The Generic Interrupt Controller family

CoreLink GIC-600AE Generic Interrupt Controller 

CoreLink GIC-600AE Chip Diagram

Software compatible with GIC-600. Additional features meet safety requirements for building high performance ASIL B to ASIL D systems.

The GIC-600AE is part of Arm's Safety Ready program, a collection of products across the Arm portfolio that have been through various and rigorous levels of functional safety systematic flows and development. 

GIC-600AE Generic Interrupt Controller is designed to support DynamIQ cores such as Cortex-A78AE, Cortex-A76AE, Cortex-A76 and Cortex-A55. Fully backwards compatible with Armv8.0 cores.

GIC-600AE adds address and white noise protection on top of ECC protection of memory data and AXI4-Stream interconnect with fault detection. With shared SRAM architecture, GIC-600AE incorporates efficient functional logic duplication. All main logic is duplicated for lock-step operation, with optionally duplicated comparators. External interface between GIC-600AE and system interconnect is protected using the AMBA extensions for interface protection.

GIC-600AE incorporates a fault tolerant, programmable fault management unit for error detection and reporting via standard error records registers (Armv8.2 RAS compliant).

Safety documentation package includes a Development Interface Report, safety manual and FMEA/FMEDA analysis for specific example configuration.

CoreLink GIC-600 Generic Interrupt Controller

Detects, manages, virtualizes and distributes interrupts for Armv8.0-A processors. Configurable up to 512 processor threads per chip, up to 16 chips and 960 shared interrupts.

CoreLink GIC-600 Generic Interrupt Controller is designed to support DynamIQ cores such as Cortex-A76 and Cortex-A55 while also fully backwards compatible with v8.0 cores.

CoreLink GIC-600 supports upto 56K Locality-specific Peripheral Interrupts (LPI) generated from message-based interrupts, such as PCIe MSI/MSI-X. CoreLink GIC-600 uses affinity level routing for addressing cores. This provides scalability and ease of interrupt migration. GIC-600 is configured as a distributed network of interrupt processing and distribution blocks routed over an AXI stream interconnect delivering maximum flexibility to suit core count and SoC layout.

CoreLink GIC-600 is an Arm implementation of the latest GICv3 architecture, for more information see Arm Generic Interrupt Controller Architecture Specification version 3.0 and 4.0

CoreLink GIC-500 Generic Interrupt Controller

CoreLink GIC-500 Generic Interrupt Controller

Detects, manages, virtualizes and distributes interrupts for Armv8.0-A processors. Configurable up to 128 single-threaded cores and 960 shared interrupts.

CoreLink GIC-500 Generic Interrupt Controller is designed to support v8.0 cores Cortex-A73Cortex-A72Cortex-A57 and Cortex-A53.

CoreLink GIC-500 supports upto 56K Locality-specific Peripheral Interrupts (LPI) generated from message-based interrupts such as PCIe MSI/MSI-X. CoreLink GIC-500 uses affinity-level routing for addressing cores. This provides scalability and ease of interrupt migration.

GIC-500 is configured as a single monolithic block with a network of discrete redistribution blocks for each core to suit size and SoC layout. CoreLink GIC-500 is an Arm implementation of the latest GICv3 architecture, for more information see Arm Generic Interrupt Controller Architecture Specification version 3.0 and 4.0.

CoreLink GIC-400 Generic Interrupt Controller

CoreLink GIC-400 Generic Interrupt Controller

Detects, manages and virtualizes interrupts for Armv7 processors. Configurable up to 8 cores and 480 shared interrupts.

CoreLink GIC-400 Generic Interrupt Controller detects, manages, virtualizes and distributes up to 480 shared interrupts between up to 8 cores in Cortex-A15 and Cortex-A7 multiprocessors.

GIC-400 can be configured to support only the required number of cores and interrupts to reduce gate count. GIC-400 implements GICv2 architecture, Security and Virtualization Extensions, for more information see Arm Generic Interrupt Controller Architecture version 2.0.

Start designing now

Arm Flexible Access gives you quick and easy access to this IP, relevant tools and models, and valuable support. You can evaluate and design solutions before committing to production, and only pay when you’re ready to manufacture.

Highlights

CoreLink GIC-600AE features

  • Meets automotive safety requirements for building high-performance ASIL B to ASIL D systems.
  • Software compatible with GIC-600 with Arm v8.2 compliant RAS reporting interface.
  • Efficient functional logic duplication, ECC and address protection for SRAM.
  • AMBA extensions for interface protection.
  • Fault management unit to simplify error reporting, testing and integration.

CoreLink GIC-600 features

  • Builds on top of GIC-500 features by implementing GICv3 for Armv8.0-A DynamIQ processors.
  • Supports up to 512 processor cores/threads per chip and up to 16 chips in a multi-chip configuration.
  • Delivers enhanced power management features such as P-/Q-channel low power modes and clock gating.
  • Supports up to 16 Interrupt Translation Services (ITS) modules across a single or multi-chip system.
  • Enhanced features for ECC protection, error logging and reporting, performance monitoring and software debug/recovery.
  •  
      

     


    CoreLink GIC-500 features

    • Builds on top of GIC-400 features by implementing GICv3 architecture, for Armv8.0-A processors.
    • Supports up to 128 cores within a maximum of 32 clusters using affinity-level routing.
    • Supports Interrupt Translation Services (ITS) module for ID translation and core migration for incoming message-based interrupt.
    • ITS commands and translation tables are stored in DRAM.


    CoreLink GIC-400 features

    • Implements GICv2 architecture for Armv7 processors.
    • Types of interrupts supported are: Software-Generated Interrupt (SGI), Shared Peripheral Interrupt (SPI), Private Peripheral Interrupt (PPI).
    • Interrupt management supports interrupt enable/disable, setting of security and priority levels, and migration of interrupts across CPU clusters.
    • Supports virtualization of interrupts by sending physical interrupts to hypervisor for creating virtual interrupts.

    GIC-500 Characteristics

    The CoreLink GIC-500 is a build-time configurable interrupt controller that supports up to 128 cores. The GIC-500 only supports Arm v8.0-A cores that implement the GIC CPU interface with the Standard GIC Stream Protocol interface, such as Cortex-A72, Cortex-A57 and Cortex-A53. The GIC-500 receives message-based interrupts as writes to the AXI4 slave interface or other interrupts from physical inputs. It also supports an AXI4 slave interface for configuration. The GIC-500 supports an Interrupt Translation Service (ITS) module that enables ID translation for peripherals to be programmed directly by a virtual machine. It is fully programmable via registers for managing interrupt sources, interrupt behavior and routing of interrupts to one or more cores.

                                                                                


    Scalability and multi-chip interrupt management with GIC-600

    In addition to supporting all features of CoreLink GIC-500, CoreLink GIC-600 also enables scalability of interrupt management with a distributed design within a single chip and support for multi-chip interrupt management for up to 16 chips. Private peripheral interrupt (PPI) and Software Generated Interrupt (SGI) modules can be co-located with processor clusters in the same clock and power domains. Similarly Interrupt Translation Service (ITS) modules can be located in close proximity to peripherals driving message-based interrupts such as PCIe. Incoming interrupts from these modules are routed to a centralized distributor over a flexible bi-directional flexible AXI4-Stream interconnect that enables scaling to a very large number of processor cores with minimized latency and layout/wiring congestion.

     

    Interrupt management between multiple chips is enabled by a direct link between distributors of each chip over a free flowing cross-chip virtual channel that could utilize PCIe or similar chip-to-chip protocol for the physical transport. 


    • Manual containing technical information.
    • CoreLink GIC-600AE Technical Reference Manual

      For system designers, system integrators and programmers who are designing a SoC, the Technical Reference Manual is the go-to resource.

      GIC-600AE TRM
    • Manual containing technical information.
    • CoreLink GIC-600 Technical Reference Manual

      For system designers, system integrators and programmers who are designing a SoC, the Technical Reference Manual is the go-to resource.

      GIC-600 TRM
    • Manual containing technical information.
    • CoreLink GIC-500 Technical Reference Manual

      For system designers, system integrators and programmers who are designing a SoC, the Technical Reference Manual is the go-to resource.

      GIC-500 TRM
    • Manual containing technical information.
    • CoreLink GIC-400 Technical Reference Manual

      For system designers, system integrators and programmers who are designing a SoC, the Technical Reference Manual is the go-to resource.

      GIC-400 TRM
    • A program that is running on a desktop.
    • GICv3 architecture

      GICv3 builds on top of GICv2, adding support for a larger number of Arm cores and also message-based interrupts. 

      Read here
    • A program that is running on a desktop.
    • GICv2 architecture

      GICv2 is the second generation GIC architecture for Armv7 cores.

      Read here

    Get support

    Resources

    CoreLink GIC-500 features

    • Builds on top of GIC-400 features by implementing GICv3 architecture, for Armv8.0-A processors.
    • Supports up to 128 cores within a maximum of 32 clusters using affinity-level routing.
    • Supports Interrupt Translation Services (ITS) module for ID translation and core migration for incoming message-based interrupt.
    • ITS commands and translation tables are stored in DRAM.

    Community Forums

    Suggested answer After first execution control goes to task 2 but i want him to go to task1 what i suppose to do here?
    • Real Time Operating Systems (RTOS)
    0 votes 212 views 1 replies Latest 14 hours ago by fixxxer Answer this
    Suggested answer Is there any extra parameter needed to start networking on FVP_MPS2_M7 simulator?
    • Embedded Software
    • Cortex-M7
    • Simulation
    • Cortex-M3
    • networking
    • Fast Models
    • Cortex-M7 FVP
    0 votes 927 views 1 replies Latest 15 hours ago by fixxxer Answer this
    Suggested answer L1 cache BW 0 votes 454 views 2 replies Latest 15 hours ago by fixxxer Answer this
    Suggested answer Making ONVIF conformant surveillance camera with STM32H743.
    • stm32 h7
    0 votes 823 views 5 replies Latest 2 days ago by ibrahim1236 Answer this
    Suggested answer Which ARM board will be most suitable?
    • Video Processor Embedded Algorithms
    • Video Processor
    0 votes 1688 views 3 replies Latest 3 days ago by Dharmalingam.K Answer this
    Suggested answer In AXI Why there is a read response in each data transfer? 0 votes 5431 views 4 replies Latest 4 days ago by Jenniferl Answer this
    Suggested answer After first execution control goes to task 2 but i want him to go to task1 what i suppose to do here? Latest 14 hours ago by fixxxer 1 replies 212 views
    Suggested answer Is there any extra parameter needed to start networking on FVP_MPS2_M7 simulator? Latest 15 hours ago by fixxxer 1 replies 927 views
    Suggested answer L1 cache BW Latest 15 hours ago by fixxxer 2 replies 454 views
    Suggested answer Making ONVIF conformant surveillance camera with STM32H743. Latest 2 days ago by ibrahim1236 5 replies 823 views
    Suggested answer Which ARM board will be most suitable? Latest 3 days ago by Dharmalingam.K 3 replies 1688 views
    Suggested answer In AXI Why there is a read response in each data transfer? Latest 4 days ago by Jenniferl 4 replies 5431 views