System Architecture OverviewIn addition to development of processor architecture, standardization across areas of system architecture is a key aspect of a rich re-usable ecosystem. Three of these areas are closely related to processor and operating system development:
- System timer support is included in recent A-profile, R-profile and M-profile architectures.
- Standardization of interrupt controller support.
- IOMMU support for virtualization.
ARM Generic Interrupt Controller
- GICv2 is a memory mapped solution supporting up to eight processors.
- GICv3 offers support for much higher interrupt counts and larger numbers of processors. This version includes support for the System registers in ARMv8-A and ARMv8-R designs.
- GICv4 adds supports the direct injection of virtual interrupts.
IOMMU support allows systems to share A-profile page tables with peripherals, providing virtual device support compatibility at the system level with the ARM architecture memory model. Similar to GIC developments, support is evolving to cater for the increasing complexity in larger systems:
- SMMUv2 is a register-based architecture in general use today.
- SMMUv3 is under development with key partners across the ecosystem. This version scales to much larger systems and includes support for features such as the ATS and PRI functionality defined in the PCIe standard. The specification is expected to be published in 2016.