The ARM Cortex-A is a group of 32-bit and 64-bit RISC ARM processor cores licensed by Arm Holdings. The cores are intended for application use. The group consists of 32-bit cores: ARM Cortex-A5, ARM Cortex-A7, ARM Cortex-A8, ARM Cortex-A9, ARM Cortex-A12, ARM Cortex-A15, ARM Cortex-A17 MPCore, and ARM Cortex-A32, and 64-bit cores: ARM Cortex-A35, ARM Cortex-A53, ARM Cortex-A55, ARM Cortex-A57, ARM Cortex-A72, ARM Cortex-A73, ARM Cortex-A75, and ARM Cortex-A76.
|Designed by||ARM Holdings|
|Instruction set||ARM, Thumb-2 (32-bit cores); ARMv7-A and ARMv8-A|
A64, A32, T32 (64-bit cores); ARMv8-A, ARMv8.1-A,
The 32-bit ARM Cortex-A cores, except for the Cortex-A32, implement the ARMv7-A profile of the ARMv7 architecture. The main distinguishing feature of the ARMv7-A profile, compared to the other two profiles, the ARMv7-R profile implemented by the ARM Cortex-R cores and the ARMv7-M profile implemented by most of the ARM Cortex-M cores, is that only the ARMv7-A profile includes a memory management unit (MMU). Many modern operating systems require a MMU to run.
The 64-bit ARM Cortex-A cores as well as the 32-bit ARM Cortex-A32 implement the ARMv8-A profile of the ARMv8 architecture.
ARM Holdings neither manufactures nor sells CPU devices based on its own designs, but rather licenses the processor architecture to interested parties. ARM offers a variety of licensing terms, varying in cost and deliverables. To all licensees, ARM provides an integratable hardware description of the ARM core, as well as complete software development toolset, and the right to sell manufactured silicon containing the ARM CPU.
Integrated device manufacturers (IDM) receive the ARM Processor IP as synthesizable RTL (written in Verilog). In this form, they have the ability to perform architectural level optimizations and extensions. This allows the manufacturer to achieve custom design goals, such as higher clock speed, very low power consumption, instruction set extensions, optimizations for size, debug support, etc. To determine which components have been included in an ARM IC chip, consult the manufacturer datasheet and related documentation.
The Cortex-A5 / A7 / A8 / A9 / A12 / A15 / A17 cores implement the ARMv7-A architecture. The Cortex-A32 / A35 / A53 / A57 / A72 / A73 / A75 / A76 cores implement the ARMv8-A architecture.
The amount of documentation for all ARM chips is daunting, especially for newcomers. The documentation for microcontrollers from past decades would easily be inclusive in a single document, but as chips have evolved so has the documentation grown. The total documentation is especially hard to grasp for all ARM chips since it consists of documents from the IC manufacturer and documents from CPU core vendor (ARM Holdings).
A typical top-down documentation tree is:
- IC Manufacturer's high-level marketing slides
- IC Manufacturer datasheet for the exact physical chip
- IC Manufacturer Reference Manuals — describes common peripherals and other aspects of physical chips within the same series
- ARM Core Reference Manuals — for the exact ARM core processor within the chip
- ARM Architecture Reference Manuals — includes detailed description of all instruction sets of the core
IC Manufacturers usually have additional documents, including: evaluation board user manuals, application notes, getting started with development software, software library documents, errata, and more.
|Wikimedia Commons has media related to ARM Cortex-A.|
- ARM Cortex-A official documents
Cortex-A5 32 Link Link ARMv7-A Cortex-A7 32 Link Link ARMv7-A Cortex-A8 32 Link Link ARMv7-A Cortex-A9 32 Link Link ARMv7-A Cortex-A12 32 — merged into A17 ARMv7-A Cortex-A15 32 Link Link ARMv7-A Cortex-A17 32 Link Link ARMv7-A Cortex-A32 32 Link — ARMv8-A Cortex-A35 32/64 Link — ARMv8-A Cortex-A53 32/64 Link Link ARMv8-A Cortex-A55 32/64 Link — ARMv8.2-A Cortex-A57 32/64 Link Link ARMv8-A Cortex-A72 32/64 Link Link ARMv8-A Cortex-A73 32/64 Link Link ARMv8-A Cortex-A75 32/64 Link — ARMv8.2-A Cortex-A76 64 Link — ARMv8.3-A
- Quick Reference Cards
- Instructions: Thumb (1), ARM and Thumb-2 (2), Vector Floating-Point (3) - arm.com
- Opcodes: Thumb (1, 2), ARM (3, 4), GNU Assembler Directives (5).