ARM Architecture
ARM architecture is a family of reduced instruction set computing (RISC) processor designs used in most smartphones, tablets, embedded systems, and an increasing share of servers and laptops. Its power-efficient design trades instruction complexity for lower energy consumption per operation.
itComputer architecture and hardware | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic — ARM Architecture
Arm architecture is the agreement between software and a processing element: it says which instructions, registers, exceptions, and memory rules exist, while remaining conspicuously uninterested in how the chip earns its lunch. That division is useful. Software needs a dependable contract. Hardware designers need room for pipelines, caches, prediction, and other machinery that makes the same instruction complete at noticeably different speeds.
The first trap is a word that sounds more specific than it is. arm64 usually points toward AArch64, the 64-bit execution state. It does not identify a particular Cortex core, cache layout, or optional feature. A64, the instruction set used in that state, has 32-bit instructions. The name is not lying exactly; it is merely standing at an angle that encourages confusion.
The next useful map has three profiles. A-profile serves application systems, R-profile serves timing-sensitive real-time work, and M-profile serves small microcontrollers. Cortex is a processor brand, not a fourth profile or an architecture version. Before following a register name or exception rule, identify the profile, version, execution state, and instruction set. This sounds bureaucratic until a manual answers a perfectly good question about a different machine.
For A-profile work, the programmer's model is the visible furniture: registers, instructions, execution state, exception state, and memory rules. In AArch64, X0 and W0 are two widths of the same register storage. Writing W0 clears the upper half of X0. The procedure call standard then adds the social rules: how separately compiled functions pass arguments, return results, and avoid wrecking each other's registers.
Exceptions and memory are where the contract becomes less decorative. An exception transfers control to privileged software through an exception vector. Exception levels commonly map application code to EL0 and an operating-system kernel to EL1, but the labels are conventions. Memory mappings also carry permissions, execute controls, cacheability, shareability, and a memory type. A peripheral register is not ordinary storage wearing a funny hat; Device memory needs device access behavior.
The other surprise is that instruction order and memory observation order are separate problems. A processor can preserve the required instruction behavior while accesses become visible in another order. Dependencies, acquire and release operations, and barriers exist for the low-level boundary. Application code normally uses its language's atomic operations, which saves everyone from becoming an amateur memory-model archaeologist before breakfast.
Read the Course tab for the full map and Glossary when the names begin breeding. Use Slides for the relationships, Cheatsheet for the document-routing and diagnostic questions, and Reference for the official path from introductory guides to the architecture manual. Keep one rule nearby: architecture tells you what software may assume; processor and system documents tell you what this particular machine actually does.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://developer.arm.com/-/media/Arm%20Developer%20Community/PDF/Learn%20the%20Architecture/Introducing%20the%20Arm%20architecture.pdf?revision=0b6b67ea-edd7-4975-b23c-d4904ac0cb35
Supports
- Architecture as a functional contract between hardware and software
- A-profile, R-profile, and M-profile targets
- Architecture versus microarchitecture
- Architecture naming, implementation-defined features, and documentation layers
- Cortex as processor IP rather than the complete Arm architecture
- https://developer.arm.com/-/media/Arm%20Developer%20Community/PDF/Learn%20the%20Architecture/Armv8-A%20Instruction%20Set%20Architecture.pdf?revision=ebf53406-04fd-4c67-a485-1b329febfb3e
Supports
- A64 as the instruction set for AArch64 and its fixed 32-bit instruction width
- A32 and T32 as instruction sets for AArch32
- Simple sequential execution and permitted internal microarchitectural optimization
- AArch64 general-purpose, floating-point, vector, and system register concepts
- Instruction-definition fields and interaction with compiled code
- https://developer.arm.com/documentation/102374/latest/
Supports
- Thirty-one AArch64 general-purpose registers
- X and W register views and zeroing of upper bits after a W-register write
- A64 instruction classes, loads and stores, branches, and system operations
- Maintained study path for the AArch64 programmer's model
- https://developer.arm.com/-/media/Arm%20Developer%20Community/PDF/Learn%20the%20Architecture/Exception%20model.pdf?revision=a62f2bf2-b08a-4a4f-8cbe-38c67ddf4434
Supports
- Exception levels and conventional application, kernel, hypervisor, and firmware roles
- Required EL0 and EL1 and optional EL2 and EL3 in Armv8-A
- AArch64 and AArch32 execution states
- Synchronous and asynchronous exceptions
- Exception entry, saved return state, vectors, and exception return
- System-register access associated with Exception levels
- https://developer.arm.com/-/media/Arm%20Developer%20Community/PDF/Learn%20the%20Architecture/Armv8-A%20memory%20model%20guide.pdf?revision=58b1dd0a-3800-4218-b21a-f95a0332034c
Supports
- Normal and Device memory types
- Translation-table descriptors and access attributes
- Permissions, execute controls, cacheability, and shareability
- Memory-access ordering as distinct from instruction execution order
- Low-level relevance to boot code, drivers, and MMU management
- https://developer.arm.com/-/media/Arm%20Developer%20Community/PDF/Learn%20the%20Architecture/LearnTheArchitecture-MemoryManagement-101811_0100_00_en.pdf?revision=1fdc3375-d81c-4457-b786-04fb98557de0
Supports
- Virtual-address translation and translation-table structure
- Stage 1 virtual-to-intermediate translation
- Stage 2 intermediate-to-physical translation under a hypervisor
- AArch64 address-space configuration and translation faults
- https://github.com/ARM-software/abi-aa/blob/main/aapcs64/aapcs64.rst
Supports
- Procedure Call Standard scope for the Arm 64-bit ABI
- Register roles, stack rules, parameter passing, and result return
- Caller-saved and callee-saved register duties
- Distinction between ISA behavior and binary interoperability rules
- https://developer.arm.com/documentation/ddi0602/latest/
Supports
- Searchable normative A64 instruction descriptions
- Encodings, operands, feature conditions, exceptions, and architectural pseudocode
- https://developer.arm.com/documentation/ddi0487/latest/
Supports
- Normative A-profile architecture reference
- Instructions, registers, exceptions, virtual memory, memory ordering, and debug architecture
- Mandatory and optional architectural feature rules
- https://developer.arm.com/community/arm-community-blogs/b/architectures-and-processors-blog/posts/the-armv8-a-architecture-and-its-ongoing-development
Supports
- Armv8-A public preview in October 2011
- Armv8.1-A introduction and planned 2015 specification visibility
- https://developer.arm.com/Tools%20and%20Software/Linux%20Kernel
Supports
- Armv8.1-A features dated 2014
- Armv8.2-A features dated 2015
- Armv8.3-A features dated 2016
- Armv8.4-A features dated 2017
- Armv8.5-A features dated 2018
- Armv8.6-A features dated 2019
- https://developer.arm.com/community/arm-community-blogs/b/architectures-and-processors-blog/posts/first-armv9-cpu-cores
Supports
- Armv9 architecture introduced in March 2021
- First Cortex CPU generation based on Armv9
- https://www.arm.com/products/silicon-ip-cpu/cortex-a/cortex-a520
Supports
- Cortex-A520 as an Armv9.2 high-efficiency CPU
- Cortex-A520 compatibility with Cortex-A725 and Cortex-X925 in a DynamIQ cluster
- https://www.arm.com/products/silicon-ip-cpu
Supports
- Arm CPU product families across consumer and infrastructure systems
- https://www.arm.com/products/silicon-ip-cpu/cortex-a/cortex-a725
Supports
- Cortex-A725 as a premium-efficiency Armv9.2 CPU
- https://www.arm.com/products/silicon-ip-cpu/neoverse/neoverse-n2
Supports
- Neoverse N2 as an Armv9 infrastructure CPU
- https://www.arm.com/products/cortex-x
Supports
- Cortex-X925 as an Armv9.2 performance-focused CPU
- https://www.arm.com/products/silicon-ip-cpu/neoverse/neoverse-v2
Supports
- Neoverse V2 as an Armv9 CPU for cloud, HPC, and machine-learning workloads
