List of ARM microarchitectures
This is a list of microarchitectures based on the ARM family of instruction sets designed by ARM Holdings and 3rd parties, sorted by version of the ARM instruction set, release and name. In 2005, ARM provided a summary of the numerous vendors who implement ARM cores in their design.[1] Keil also provides a somewhat newer summary of vendors of ARM based processors.[2] ARM further provides a chart[3] displaying an overview of the ARM processor lineup with performance and functionality versus capabilities for the more recent ARM core families.
ARM cores
Designed by ARM
ARM family | ARM architecture | ARM core | Feature | Cache (I / D), MMU | Typical MIPS @ MHz | Reference |
---|---|---|---|---|---|---|
ARM1 | ARMv1 | ARM1 | First implementation | None | ||
ARM2 | ARMv2 | ARM2 | ARMv2 added the MUL (multiply) instruction | None | 4 MIPS @ 8 MHz 0.33 DMIPS/MHz |
|
ARMv2a | ARM250 | Integrated MEMC (MMU), graphics and I/O processor. ARMv2a added the SWP and SWPB (swap) instructions | None, MEMC1a | 7 MIPS @ 12 MHz | ||
ARM3 | ARMv2a | ARM3 | First integrated memory cache | 4 KB unified | 12 MIPS @ 25 MHz 0.50 DMIPS/MHz |
|
ARM6 | ARMv3 | ARM60 | ARMv3 first to support 32-bit memory address space (previously 26-bit). ARMv3M first added long multiply instructions (32x32=64). |
None | 10 MIPS @ 12 MHz | |
ARM600 | As ARM60, cache and coprocessor bus (for FPA10 floating-point unit) | 4 KB unified | 28 MIPS @ 33 MHz | |||
ARM610 | As ARM60, cache, no coprocessor bus | 4 KB unified | 17 MIPS @ 20 MHz 0.65 DMIPS/MHz |
[4] | ||
ARM7 | ARMv3 | ARM700 | 8 KB unified | 40 MHz | ||
ARM710 | As ARM700, no coprocessor bus | 8 KB unified | 40 MHz | [5] | ||
ARM710a | As ARM710 | 8 KB unified | 40 MHz 0.68 DMIPS/MHz |
|||
ARM7T | ARMv4T | ARM7TDMI(-S) | 3-stage pipeline, Thumb, ARMv4 first to drop legacy ARM 26-bit addressing | None | 15 MIPS @ 16.8 MHz 63 DMIPS @ 70 MHz |
|
ARM710T | As ARM7TDMI, cache | 8 KB unified, MMU | 36 MIPS @ 40 MHz | |||
ARM720T | As ARM7TDMI, cache | 8 KB unified, MMU with FCSE (Fast Context Switch Extension) | 60 MIPS @ 59.8 MHz | |||
ARM740T | As ARM7TDMI, cache | MPU | ||||
ARM7EJ | ARMv5TEJ | ARM7EJ-S | 5-stage pipeline, Thumb, Jazelle DBX, enhanced DSP instructions | None | ||
ARM8 | ARMv4 | ARM810 | 5-stage pipeline, static branch prediction, double-bandwidth memory | 8 KB unified, MMU | 84 MIPS @ 72 MHz 1.16 DMIPS/MHz |
[6][7] |
ARM9T | ARMv4T | ARM9TDMI | 5-stage pipeline, Thumb | None | ||
ARM920T | As ARM9TDMI, cache | 16 KB / 16 KB, MMU with FCSE (Fast Context Switch Extension) | 200 MIPS @ 180 MHz | [8] | ||
ARM922T | As ARM9TDMI, caches | 8 KB / 8 KB, MMU | ||||
ARM940T | As ARM9TDMI, caches | 4 KB / 4 KB, MPU | ||||
ARM9E | ARMv5TE | ARM946E-S | Thumb, enhanced DSP instructions, caches | Variable, tightly coupled memories, MPU | ||
ARM966E-S | Thumb, enhanced DSP instructions | No cache, TCMs | ||||
ARM968E-S | As ARM966E-S | No cache, TCMs | ||||
ARMv5TEJ | ARM926EJ-S | Thumb, Jazelle DBX, enhanced DSP instructions | Variable, TCMs, MMU | 220 MIPS @ 200 MHz | ||
ARMv5TE | ARM996HS | Clockless processor, as ARM966E-S | No caches, TCMs, MPU | |||
ARM10E | ARMv5TE | ARM1020E | 6-stage pipeline, Thumb, enhanced DSP instructions, (VFP) | 32 KB / 32 KB, MMU | ||
ARM1022E | As ARM1020E | 16 KB / 16 KB, MMU | ||||
ARMv5TEJ | ARM1026EJ-S | Thumb, Jazelle DBX, enhanced DSP instructions, (VFP) | Variable, MMU or MPU | |||
ARM11 | ARMv6 | ARM1136J(F)-S | 8-stage pipeline, SIMD, Thumb, Jazelle DBX, (VFP), enhanced DSP instructions, unaligned memory access | Variable, MMU | 740 @ 532–665 MHz (i.MX31 SoC), 400–528 MHz | [9] |
ARMv6T2 | ARM1156T2(F)-S | 9-stage pipeline, SIMD, Thumb-2, (VFP), enhanced DSP instructions | Variable, MPU | [10] | ||
ARMv6Z | ARM1176JZ(F)-S | As ARM1136EJ(F)-S | Variable, MMU + TrustZone | 965 DMIPS @ 772 MHz, up to 2,600 DMIPS with four processors | [11] | |
ARMv6K | ARM11MPCore | As ARM1136EJ(F)-S, 1–4 core SMP | Variable, MMU | |||
SecurCore | ARMv6-M | SC000 | As Cortex-M0 | 0.9 DMIPS/MHz | ||
ARMv4T | SC100 | As ARM7TDMI | ||||
ARMv7-M | SC300 | As Cortex-M3 | 1.25 DMIPS/MHz | |||
Cortex-M | ARMv6-M | Cortex-M0 | Microcontroller profile, most Thumb + some Thumb-2,[12] hardware multiply instruction (optional small), optional system timer, optional bit-banding memory | Optional cache, no TCM, no MPU | 0.84 DMIPS/MHz | [13] |
Cortex-M0+ | Microcontroller profile, most Thumb + some Thumb-2,[12] hardware multiply instruction (optional small), optional system timer, optional bit-banding memory | Optional cache, no TCM, optional MPU with 8 regions | 0.93 DMIPS/MHz | [14] | ||
Cortex-M1 | Microcontroller profile, most Thumb + some Thumb-2,[12] hardware multiply instruction (optional small), OS option adds SVC / banked stack pointer, optional system timer, no bit-banding memory | Optional cache, 0–1024 KB I-TCM, 0–1024 KB D-TCM, no MPU | 136 DMIPS @ 170 MHz,[15] (0.8 DMIPS/MHz FPGA-dependent)[16] | [17] | ||
ARMv7-M | Cortex-M3 | Microcontroller profile, Thumb / Thumb-2, hardware multiply and divide instructions, optional bit-banding memory | Optional cache, no TCM, optional MPU with 8 regions | 1.25 DMIPS/MHz | [18] | |
ARMv7E-M | Cortex-M4 | Microcontroller profile, Thumb / Thumb-2 / DSP / optional VFPv4-SP single-precision FPU, hardware multiply and divide instructions, optional bit-banding memory | Optional cache, no TCM, optional MPU with 8 regions | 1.25 DMIPS/MHz (1.27 w/FPU) | [19] | |
Cortex-M7 | Microcontroller profile, Thumb / Thumb-2 / DSP / optional VFPv5 single and double precision FPU, hardware multiply and divide instructions | 0−64 KB I-cache, 0−64 KB D-cache, 0–16 MB I-TCM, 0–16 MB D-TCM (all these w/optional ECC), optional MPU with 8 or 16 regions | 2.14 DMIPS/MHz | [20] | ||
ARMv8-M Baseline | Cortex-M23 | Microcontroller profile, Thumb-1 (most), Thumb-2 (some), Divide, TrustZone | Optional cache, no TCM, optional MPU with 16 regions | 0.99 DMIPS/MHz | [21] | |
ARMv8-M Mainline | Cortex-M33 | Microcontroller profile, Thumb-1, Thumb-2, Saturated, DSP, Divide, FPU (SP), TrustZone, Co-processor | Optional cache, no TCM, optional MPU with 16 regions | 1.50 DMIPS/MHz | [22] | |
Cortex-M35P | Microcontroller profile, Thumb-1, Thumb-2, Saturated, DSP, Divide, FPU (SP), TrustZone, Co-processor | Built-in cache (with option 2–16 KB), I-cache, no TCM, optional MPU with 16 regions | 1.50 DMIPS/MHz | [23] | ||
ARMv8.1-M Mainline | Cortex-M55 | [24] | ||||
Cortex-R | ARMv7-R | Cortex-R4 | Real-time profile, Thumb / Thumb-2 / DSP / optional VFPv3 FPU, hardware multiply and optional divide instructions, optional parity & ECC for internal buses / cache / TCM, 8-stage pipeline dual-core running lockstep with fault logic | 0–64 KB / 0–64 KB, 0–2 of 0–8 MB TCM, opt. MPU with 8/12 regions | 1.67 DMIPS/MHz[25] | [26] |
Cortex-R5 | Real-time profile, Thumb / Thumb-2 / DSP / optional VFPv3 FPU and precision, hardware multiply and optional divide instructions, optional parity & ECC for internal buses / cache / TCM, 8-stage pipeline dual-core running lock-step with fault logic / optional as 2 independent cores, low-latency peripheral port (LLPP), accelerator coherency port (ACP)[27] | 0–64 KB / 0–64 KB, 0–2 of 0–8 MB TCM, opt. MPU with 12/16 regions | 1.67 DMIPS/MHz[25] | [28] | ||
Cortex-R7 | Real-time profile, Thumb / Thumb-2 / DSP / optional VFPv3 FPU and precision, hardware multiply and optional divide instructions, optional parity & ECC for internal buses / cache / TCM, 11-stage pipeline dual-core running lock-step with fault logic / out-of-order execution / dynamic register renaming / optional as 2 independent cores, low-latency peripheral port (LLPP), ACP[27] | 0–64 KB / 0–64 KB, ? of 0–128 KB TCM, opt. MPU with 16 regions | 2.50 DMIPS/MHz[25] | [29] | ||
Cortex-R8 | TBD | 0–64 KB / 0–64 KB L1, 0–1 / 0–1 MB TCM, opt MPU with 24 regions | 2.50 DMIPS/MHz[25] | [30] | ||
ARMv8-R | Cortex-R52 | TBD | 0–32 KB / 0–32 KB L1, 0–1 / 0–1 MB TCM, opt MPU with 24+24 regions | 2.16 DMIPS/MHz[31] | [32] | |
Cortex-R82 | TBD | 16–128 KB /16–64 KB L1, 64K–1MB L2, 0.16–1 / 0.16–1 MB TCM,
opt MPU with 32+32 regions |
3.41 DMIPS/MHz[33] | [34] | ||
Cortex-A (32-bit) |
ARMv7-A | Cortex-A5 | Application profile, ARM / Thumb / Thumb-2 / DSP / SIMD / Optional VFPv4-D16 FPU / Optional NEON / Jazelle RCT and DBX, 1–4 cores / optional MPCore, snoop control unit (SCU), generic interrupt controller (GIC), accelerator coherence port (ACP) | 4−64 KB / 4−64 KB L1, MMU + TrustZone | 1.57 DMIPS/MHz per core | [35] |
Cortex-A7 | Application profile, ARM / Thumb / Thumb-2 / DSP / VFPv4 FPU / NEON / Jazelle RCT and DBX / Hardware virtualization, in-order execution, superscalar, 1–4 SMP cores, MPCore, Large Physical Address Extensions (LPAE), snoop control unit (SCU), generic interrupt controller (GIC), architecture and feature set are identical to A15, 8–10 stage pipeline, low-power design[36] | 8−64 KB / 8−64 KB L1, 0–1 MB L2, MMU + TrustZone | 1.9 DMIPS/MHz per core | [37] | ||
Cortex-A8 | Application profile, ARM / Thumb / Thumb-2 / VFPv3 FPU / NEON / Jazelle RCT and DAC, 13-stage superscalar pipeline | 16–32 KB / 16–32 KB L1, 0–1 MB L2 opt. ECC, MMU + TrustZone | Up to 2000 (2.0 DMIPS/MHz in speed from 600 MHz to greater than 1 GHz) | [38] | ||
Cortex-A9 | Application profile, ARM / Thumb / Thumb-2 / DSP / Optional VFPv3 FPU / Optional NEON / Jazelle RCT and DBX, out-of-order speculative issue superscalar, 1–4 SMP cores, MPCore, snoop control unit (SCU), generic interrupt controller (GIC), accelerator coherence port (ACP) | 16–64 KB / 16–64 KB L1, 0–8 MB L2 opt. parity, MMU + TrustZone | 2.5 DMIPS/MHz per core, 10,000 DMIPS @ 2 GHz on Performance Optimized TSMC 40G (dual-core) | [39] | ||
Cortex-A12 | Application profile, ARM / Thumb-2 / DSP / VFPv4 FPU / NEON / Hardware virtualization, out-of-order speculative issue superscalar, 1–4 SMP cores, Large Physical Address Extensions (LPAE), snoop control unit (SCU), generic interrupt controller (GIC), accelerator coherence port (ACP) | 32−64 KB | 3.0 DMIPS/MHz per core | [40] | ||
Cortex-A15 | Application profile, ARM / Thumb / Thumb-2 / DSP / VFPv4 FPU / NEON / integer divide / fused MAC / Jazelle RCT / hardware virtualization, out-of-order speculative issue superscalar, 1–4 SMP cores, MPCore, Large Physical Address Extensions (LPAE), snoop control unit (SCU), generic interrupt controller (GIC), ACP, 15-24 stage pipeline[36] | 32 KB w/parity / 32 KB w/ECC L1, 0–4 MB L2, L2 has ECC, MMU + TrustZone | At least 3.5 DMIPS/MHz per core (up to 4.01 DMIPS/MHz depending on implementation)[41] | [42] | ||
Cortex-A17 | Application profile, ARM / Thumb / Thumb-2 / DSP / VFPv4 FPU / NEON / integer divide / fused MAC / Jazelle RCT / hardware virtualization, out-of-order speculative issue superscalar, 1–4 SMP cores, MPCore, Large Physical Address Extensions (LPAE), snoop control unit (SCU), generic interrupt controller (GIC), ACP | 32 KB L1, 256 KB–8 MB L2 w/optional ECC | 2.8 DMIPS/MHz | [43] | ||
ARMv8-A | Cortex-A32 | Application profile, AArch32, 1–4 SMP cores, TrustZone, NEON advanced SIMD, VFPv4, hardware virtualization, dual issue, in-order pipeline | 8–64 KB w/optional parity / 8−64 KB w/optional ECC L1 per core, 128 KB–1 MB L2 w/optional ECC shared | [44] | ||
Cortex-A (64-bit) |
ARMv8-A | Cortex-A34 | Application profile, AArch64, 1–4 SMP cores, TrustZone, NEON advanced SIMD, VFPv4, hardware virtualization, 2-width decode, in-order pipeline | 8−64 KB w/parity / 8−64 KB w/ECC L1 per core, 128 KB–1 MB L2 shared, 40-bit physical addresses | [45] | |
Cortex-A35 | Application profile, AArch32 and AArch64, 1–4 SMP cores, TrustZone, NEON advanced SIMD, VFPv4, hardware virtualization, 2-width decode, in-order pipeline | 8−64 KB w/parity / 8−64 KB w/ECC L1 per core, 128 KB–1 MB L2 shared, 40-bit physical addresses | 1.78 DMIPS/MHz | [46] | ||
Cortex-A53 | Application profile, AArch32 and AArch64, 1–4 SMP cores, TrustZone, NEON advanced SIMD, VFPv4, hardware virtualization, 2-width decode, in-order pipeline | 8−64 KB w/parity / 8−64 KB w/ECC L1 per core, 128 KB–2 MB L2 shared, 40-bit physical addresses | 2.3 DMIPS/MHz | [47] | ||
Cortex-A57 | Application profile, AArch32 and AArch64, 1–4 SMP cores, TrustZone, NEON advanced SIMD, VFPv4, hardware virtualization, 3-width decode superscalar, deeply out-of-order pipeline | 48 KB w/DED parity / 32 KB w/ECC L1 per core; 512 KB–2 MB L2 shared w/ECC; 44-bit physical addresses | 4.1–4.5 DMIPS/MHz[48][49] | [50] | ||
Cortex-A72 | Application profile, AArch32 and AArch64, 1–4 SMP cores, TrustZone, NEON advanced SIMD, VFPv4, hardware virtualization, 3-width superscalar, deeply out-of-order pipeline | 48 KB w/DED parity / 32 KB w/ECC L1 per core; 512 KB–2 MB L2 shared w/ECC; 44-bit physical addresses | 4.7 DMIPS/MHz | [51] | ||
Cortex-A73 | Application profile, AArch32 and AArch64, 1–4 SMP cores, TrustZone, NEON advanced SIMD, VFPv4, hardware virtualization, 2-width superscalar, deeply out-of-order pipeline | 64 KB / 32−64 KB L1 per core, 256 KB–8 MB L2 shared w/ optional ECC, 44-bit physical addresses | 4.8 DMIPS/MHz[52] | [53] | ||
ARMv8.2-A | Cortex-A55 | Application profile, AArch32 and AArch64, 1–8 SMP cores, TrustZone, NEON advanced SIMD, VFPv4, hardware virtualization, 2-width decode, in-order pipeline[54] | 16−64 KB / 16−64 KB L1, 256 KB L2 per core, 4 MB L3 shared | [55] | ||
Cortex-A65 | Application profile, AArch64, 1–8 SMP cores, TrustZone, NEON advanced SIMD, VFPv4, hardware virtualization, 2-wide decode superscalar, 3-width issue, out-of-order pipeline, SMT | [56] | ||||
Cortex-A65AE | As ARM Cortex-A65, adds dual core lockstep for safety applications | 64 / 64 KB L1, 256 KB L2 per core, 4 MB L3 shared | [57] | |||
Cortex-A75 | Application profile, AArch32 and AArch64, 1–8 SMP cores, TrustZone, NEON advanced SIMD, VFPv4, hardware virtualization, 3-width decode superscalar, deeply out-of-order pipeline[58] | 64 / 64 KB L1, 512 KB L2 per core, 4 MB L3 shared | [59] | |||
Cortex-A76 | Application profile, AArch32 (non-privileged level or EL0 only) and AArch64, 1–4 SMP cores, TrustZone, NEON advanced SIMD, VFPv4, hardware virtualization, 4-width decode superscalar, 8-way issue, 13 stage pipeline, deeply out-of-order pipeline[60] | 64 / 64 KB L1, 256−512 KB L2 per core, 512 KB−4 MB L3 shared | [61] | |||
Cortex-A76AE | As ARM Cortex-A76, adds dual core lockstep for safety applications | [62] | ||||
Cortex-A77 | Application profile, AArch32 (non-privileged level or EL0 only) and AArch64, 1–4 SMP cores, TrustZone, NEON advanced SIMD, VFPv4, hardware virtualization, 4-width decode superscalar, 6-width instruction fetch, 12-way issue, 13 stage pipeline, deeply out-of-order pipeline[60] | 1.5K L0 MOPs cache, 64 / 64 KB L1, 256−512 KB L2 per core, 512 KB−4 MB L3 shared | [63] | |||
Cortex-A78 | [64] | |||||
Cortex-A78AE | As ARM Cortex-A78, adds dual core lockstep for safety applications | [65] | ||||
Cortex-X1 | Performance-tuned variant of Cortex-A78 | |||||
Cortex-A78C | [66] | |||||
Neoverse | Neoverse N1 | Application profile, AArch32 (non-privileged level or EL0 only) and AArch64, 1–4 SMP cores, TrustZone, NEON advanced SIMD, VFPv4, hardware virtualization, 4-width decode superscalar, 8-way dispatch/issue, 13 stage pipeline, deeply out-of-order pipeline[60] | 64 / 64 KB L1, 512−1024 KB L2 per core, 2−128 MB L3 shared, 128 MB system level cache | [67] | ||
Neoverse E1 | Application profile, AArch64, 1–8 SMP cores, TrustZone, NEON advanced SIMD, VFPv4, hardware virtualization, 2-wide decode superscalar, 3-width issue, 10 stage pipeline, out-of-order pipeline, SMT | 32−64 KB / 32−64 KB L1, 256 KB L2 per core, 4 MB L3 shared | [68] | |||
ARM family | ARM architecture | ARM core | Feature | Cache (I / D), MMU | Typical MIPS @ MHz | Reference |
As Dhrystone is a synthetic benchmark developed in 1980s, it is no longer representative of prevailing workloads – use with caution.
Designed by third parties
These cores implement the ARM instruction set, and were developed independently by companies with an architectural license from ARM.
Core Family | Instruction set | Microarchitecture | Feature | Cache (I / D), MMU | Typical MIPS @ MHz |
---|---|---|---|---|---|
StrongARM (Digital) |
ARMv4 | SA-110 | 5-stage pipeline | 16 KB / 16 KB, MMU | 100–233 MHz 1.0 DMIPS/MHz |
SA-1100 | derivative of the SA-110 | 16 KB / 8 KB, MMU | |||
Faraday[69] (Faraday Technology) |
ARMv4 | FA510 | 6-stage pipeline | Up to 32 KB / 32 KB cache, MPU | 1.26 DMIPS/MHz 100–200 MHz |
FA526 | Up to 32 KB / 32 KB cache, MMU | 1.26 MIPS/MHz 166–300 MHz | |||
FA626 | 8-stage pipeline | 32 KB / 32 KB cache, MMU | 1.35 DMIPS/MHz 500 MHz | ||
ARMv5TE | FA606TE | 5-stage pipeline | No cache, no MMU | 1.22 DMIPS/MHz 200 MHz | |
FA626TE | 8-stage pipeline | 32 KB / 32 KB cache, MMU | 1.43 MIPS/MHz 800 MHz | ||
FMP626TE | 8-stage pipeline, SMP | 1.43 MIPS/MHz 500 MHz | |||
FA726TE | 13 stage pipeline, dual issue | 2.4 DMIPS/MHz 1000 MHz | |||
XScale (Intel / Marvell) |
ARMv5TE | XScale | 7-stage pipeline, Thumb, enhanced DSP instructions | 32 KB / 32 KB, MMU | 133–400 MHz |
Bulverde | Wireless MMX, wireless SpeedStep added | 32 KB / 32 KB, MMU | 312–624 MHz | ||
Monahans[70] | Wireless MMX2 added | 32 KB / 32 KB L1, optional L2 cache up to 512 KB, MMU | Up to 1.25 GHz | ||
Sheeva (Marvell) |
ARMv5 | Feroceon | 5–8 stage pipeline, single-issue | 16 KB / 16 KB, MMU | 600–2000 MHz |
Jolteon | 5–8 stage pipeline, dual-issue | 32 KB / 32 KB, MMU | |||
PJ1 (Mohawk) | 5–8 stage pipeline, single-issue, Wireless MMX2 | 32 KB / 32 KB, MMU | 1.46 DMIPS/MHz 1.06 GHz | ||
ARMv6 / ARMv7-A | PJ4 | 6–9 stage pipeline, dual-issue, Wireless MMX2, SMP | 32 KB / 32 KB, MMU | 2.41 DMIPS/MHz 1.6 GHz | |
Snapdragon (Qualcomm) |
ARMv7-A | Scorpion[71] | 1 or 2 cores. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv3 FPU / NEON (128-bit wide) | 256 KB L2 per core | 2.1 DMIPS/MHz per core |
Krait[71] | 1, 2, or 4 cores. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4 FPU / NEON (128-bit wide) | 4 KB / 4 KB L0, 16 KB / 16 KB L1, 512 KB L2 per core | 3.3 DMIPS/MHz per core | ||
ARMv8-A | Kryo[72] | 4 cores. | ? | Up to 2.2 GHz
(6.3 DMIPS/MHz) | |
Ax (Apple) |
ARMv7-A | Swift[73] | 2 cores. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4 FPU / NEON | L1: 32 KB / 32 KB, L2: 1 MB | 3.5 DMIPS/MHz per core |
ARMv8-A | Cyclone[74] | 2 cores. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4 FPU / NEON / TrustZone / AArch64. Out-of-order, superscalar. | L1: 64 KB / 64 KB, L2: 1 MB, L3: 4 MB | 1.3 or 1.4 GHz | |
ARMv8-A | Typhoon[74][75] | 2 or 3 cores. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4 FPU / NEON / TrustZone / AArch64 | L1: 64 KB / 64 KB, L2: 1 MB or 2 MB, L3: 4 MB | 1.4 or 1.5 GHz | |
ARMv8-A | Twister[76] | 2 cores. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4 FPU / NEON / TrustZone / AArch64 | L1: 64 KB / 64 KB, L2: 2 MB, L3: 4 MB or 0 MB | 1.85 or 2.26 GHz | |
ARMv8.1-A | Hurricane and Zephyr[77] | Hurricane: 2 or 3 cores. AArch64, 6-decode, 6-issue, 9-wide, superscalar, out-of-order Zephyr: 2 or 3 cores. AArch64. | L1: 64 KB / 64 KB, L2: 3 MB or 8 MB, L3: 4 MB or 0 MB | 2.34 or 2.38 GHz | |
ARMv8.2-A | Monsoon and Mistral[78] | Monsoon: 2 cores. AArch64, 7-decode, ?-issue, 11-wide, superscalar, out-of-order Mistral: 4 cores. AArch64, out-of-order, superscalar. Based on Swift. | L1I: 128 KB, L1D: 64 KB, L2: 8 MB, L3: 4 MB | 2.39 GHz | |
ARMv8.3-A | Vortex and Tempest[79] | Vortex: 2 or 4 cores. AArch64, 7-decode, ?-issue, 11-wide, superscalar, out-of-order Tempest: 4 cores. AArch64, 3-decode, out-of-order, superscalar. Based on Swift. | L1: 128 KB / 128 KB, L2: 8 MB, L3: 8 MB | 2.5 GHz | |
ARMv8.4-A | Lightning and Thunder[80] | Lightning: 2 cores. AArch64, 7-decode, ?-issue, 11-wide, superscalar, out-of-order Thunder: 4 cores. AArch64, out-of-order, superscalar. | L1: 128 KB / 128 KB, L2: 8 MB, L3: 16 MB | 2.66 GHz | |
X-Gene (Applied Micro) |
ARMv8-A | X-Gene | 64-bit, quad issue, SMP, 64 cores[81] | Cache, MMU, virtualization | 3 GHz (4.2 DMIPS/MHz per core) |
Denver (Nvidia) |
ARMv8-A | Denver[82][83] | 2 cores. AArch64, 7-wide superscalar, in-order, dynamic code optimization, 128 MB optimization cache, Denver1: 28nm, Denver2:16nm | 128 KB I-cache / 64 KB D-cache | Up to 2.5 GHz |
Carmel (Nvidia) |
ARMv8.2-A | Carmel[84][85] | 2 cores. AArch64, 10-wide superscalar, in-order, dynamic code optimization, ? MB optimization cache, functional safety, dual execution, parity & ECC | ? KB I-cache / ? KB D-cache | Up to ? GHz |
ThunderX (Cavium) |
ARMv8-A | ThunderX | 64-bit, with two models with 8–16 or 24–48 cores (×2 w/two chips) | ? | Up to 2.2 GHz |
K12 (AMD) |
ARMv8-A | K12[86] | ? | ? | ? |
Exynos (Samsung) |
ARMv8-A | M1/M2 ("Mongoose")[87] | 4 cores. AArch64, 4-wide, quad-issue, superscalar, out-of-order | 64 KB I-cache / 32 KB D-cache, L2: 16-way shared 2 MB | 5.1 DMIPS/MHz
(2.6 GHz) |
ARMv8-A | M3 ("Meerkat")[88] | 4 cores, AArch64, 6-decode, 6-issue, 6-wide. superscalar, out-of-order | 64 KB I-cache / 32 KB D-cache, L2: 8-way private 512 KB, L3: 16-way shared 4 MB | ? | |
ARMv8.2-A | M4 ("Cheetah")[89] | 2 cores, AArch64, 6-decode, 6-issue, 6-wide. superscalar, out-of-order | 64 KB I-cache / 32 KB D-cache, L2: 8-way private 512 KB, L3: 16-way shared 4 MB | ? | |
ARM core timeline
The following table lists each core by the year it was announced.[90][91] Cores before ARM7 aren't included in this table.
Year | Classic cores | Cortex cores | Neoverse cores | |||||||
---|---|---|---|---|---|---|---|---|---|---|
ARM7 | ARM8 | ARM9 | ARM10 | ARM11 | Microcontroller | Real-time | Application (32-bit) | Application (64-bit) | Application (64-bit) | |
1993 | ARM700 | |||||||||
1994 | ARM710 ARM7DI ARM7TDMI | |||||||||
1995 | ARM710a | |||||||||
1996 | ARM810 | |||||||||
1997 | ARM710T ARM720T ARM740T | |||||||||
1998 | ARM9TDMI ARM940T | |||||||||
1999 | ARM9E-S ARM966E-S | |||||||||
2000 | ARM920T ARM922T ARM946E-S | ARM1020T | ||||||||
2001 | ARM7TDMI-S ARM7EJ-S | ARM9EJ-S ARM926EJ-S | ARM1020E ARM1022E | |||||||
2002 | ARM1026EJ-S | ARM1136J(F)-S | ||||||||
2003 | ARM968E-S | ARM1156T2(F)-S ARM1176JZ(F)-S | ||||||||
2004 | Cortex-M3 | |||||||||
2005 | ARM11MPCore | Cortex-A8 | ||||||||
2006 | ARM996HS | |||||||||
2007 | Cortex-M1 | Cortex-A9 | ||||||||
2008 | ||||||||||
2009 | Cortex-M0 | Cortex-A5 | ||||||||
2010 | Cortex-M4(F) | Cortex-A15 | ||||||||
2011 | Cortex-R4 Cortex-R5 Cortex-R7 | Cortex-A7 | ||||||||
2012 | Cortex-M0+ | Cortex-A53 Cortex-A57 | ||||||||
2013 | Cortex-A12 | |||||||||
2014 | Cortex-M7(F) | Cortex-A17 | ||||||||
2015 | Cortex-A35 Cortex-A72 | |||||||||
2016 | Cortex-M23 Cortex-M33(F) | Cortex-R8 Cortex-R52 | Cortex-A32 | Cortex-A73 | ||||||
2017 | Cortex-A55 Cortex-A75 | |||||||||
2018 | Cortex-M35P(F) | Cortex-A65AE Cortex-A76 Cortex-A76AE | ||||||||
2019 | Cortex-A77 | Neoverse E1 Neoverse N1 | ||||||||
2020 | Cortex-M55(F) | Cortex-R82 | Cortex-A78 Cortex-X1[92] |
See also
References
- "ARM Powered Standard Products" (PDF). 2005. Archived from the original (PDF) on 20 October 2017. Retrieved 23 December 2017.
- ARM Ltd and ARM Germany GmbH. "Device Database". Keil. Archived from the original on 10 January 2011. Retrieved 6 January 2011.
- "Processors". ARM. 2011. Archived from the original on 17 January 2011. Retrieved 6 January 2011.
- "ARM610 Datasheet" (PDF). ARM Holdings. August 1993. Retrieved 29 January 2019.
- "ARM710 Datasheet" (PDF). ARM Holdings. July 1994. Retrieved 29 January 2019.
- ARM Holdings (7 August 1996). "ARM810 – Dancing to the Beat of a Different Drum" (PDF). Hot Chips. Archived (PDF) from the original on 24 December 2018. Retrieved 14 November 2018.
- "VLSI Technology Now Shipping ARM810". EE Times. 26 August 1996. Archived from the original on 26 September 2013. Retrieved 21 September 2013.
- Register 13, FCSE PID register Archived 7 July 2011 at the Wayback Machine ARM920T Technical Reference Manual
- "ARM1136J(F)-S – ARM Processor". Arm.com. Archived from the original on 21 March 2009. Retrieved 18 April 2009.
- "ARM1156 Processor". Arm Holdings. Archived from the original on 13 February 2010.
- "ARM11 Processor Family". ARM. Archived from the original on 15 January 2011. Retrieved 12 December 2010.
- "Cortex-M0/M0+/M1 Instruction set; ARM Holding". Archived from the original on 18 April 2013.
- "Cortex-M0". Arm Developer. Retrieved 23 September 2020.
- "Cortex-M0+". Arm Developer. Retrieved 23 September 2020.
- "ARM Extends Cortex Family with First Processor Optimized for FPGA" (Press release). ARM Holdings. 19 March 2007. Archived from the original on 5 May 2007. Retrieved 11 April 2007.
- "ARM Cortex-M1". ARM product website. Archived from the original on 1 April 2007. Retrieved 11 April 2007.
- "Cortex-M1". Arm Developer. Retrieved 23 September 2020.
- "Cortex-M3". Arm Developer. Retrieved 23 September 2020.
- "Cortex-M4". Arm Developer. Retrieved 23 September 2020.
- "Cortex-M7". Arm Developer. Retrieved 23 September 2020.
- "Cortex-M23". Arm Developer. Retrieved 23 September 2020.
- "Cortex-M33". Arm Developer. Retrieved 23 September 2020.
- "Cortex-M35P". Arm Developer. Archived from the original on 8 May 2019. Retrieved 29 April 2019.
- "Cortex-M55". Arm Developer. Retrieved 28 September 2020.
- "Cortex-R – Arm Developer". ARM Developer. Arm Ltd. Archived from the original on 30 March 2018. Retrieved 29 March 2018.
- "Cortex-R4". Arm Developer. Retrieved 23 September 2020.
- "Cortex-R5 & Cortex-R7 Press Release; ARM Holdings; 31 January 2011". Archived from the original on 7 July 2011. Retrieved 13 June 2011.
- "Cortex-R5". Arm Developer. Retrieved 23 September 2020.
- "Cortex-R7". Arm Developer. Retrieved 23 September 2020.
- "Cortex-R8". Arm Developer. Retrieved 23 September 2020.
- "Cortex-R". Arm Developer. Archived from the original on 30 March 2018. Retrieved 26 October 2018.
- "Cortex-R52". Arm Developer. Archived from the original on 26 October 2018. Retrieved 26 October 2018.
- "Cortex-R82". Arm Developer. Retrieved 30 September 2020.
- "Arm Cortex-R comparison Table_v2" (PDF). ARM Developer. 2020. Retrieved 30 September 2020.
- "Cortex-A5". Arm Developer. Retrieved 23 September 2020.
- "Deep inside ARM's new Intel killer". The Register. 20 October 2011. Archived from the original on 10 August 2017. Retrieved 10 August 2017.
- "Cortex-A7". Arm Developer. Retrieved 23 September 2020.
- "Cortex-A8". Arm Developer. Retrieved 23 September 2020.
- "Cortex-A9". Arm Developer. Retrieved 23 September 2020.
- "Cortex-A12 Summary; ARM Holdings". Archived from the original on 7 June 2013. Retrieved 3 June 2013.
- "Exclusive : ARM Cortex-A15 "40 Per Cent" Faster Than Cortex-A9 | ITProPortal.com". Archived from the original on 21 July 2011. Retrieved 13 June 2011.
- "Cortex-A15". Arm Developer. Retrieved 23 September 2020.
- "Cortex-A17". Arm Developer. Retrieved 23 September 2020.
- "Cortex-A32". Arm Developer. Retrieved 23 September 2020.
- "Cortex-A34". Arm Developer. Retrieved 11 October 2019.
- "Cortex-A35". Arm Developer. Retrieved 23 September 2020.
- "Cortex-A53". Arm Developer. Retrieved 23 September 2020.
- "Cortex-Ax vs performance". Archived from the original on 15 June 2017. Retrieved 5 May 2017.
- "Relative Performance of ARM Cortex-A 32-bit and 64-bit Cores". Archived from the original on 1 May 2017. Retrieved 5 May 2017.
- "Cortex-A57". Arm Developer. Retrieved 23 September 2020.
- "Cortex-A72". Arm Developer. Retrieved 23 September 2020.
- "Cortex-Ax vs performance". Archived from the original on 15 June 2017. Retrieved 5 May 2017.
- "Cortex-A73". Arm Developer. Retrieved 23 September 2020.
- "Hardware.Info Nederland". nl.hardware.info (in Dutch). Archived from the original on 24 December 2018. Retrieved 27 November 2017.
- "Cortex-A55". Arm Developer. Retrieved 23 September 2020.
- "Cortex-A65". Arm Developer. Retrieved 3 October 2020.
- "Cortex-A65AE". Arm Developer. Retrieved 11 October 2019.
- "Hardware.Info Nederland". nl.hardware.info (in Dutch). Archived from the original on 24 December 2018. Retrieved 27 November 2017.
- "Cortex-A75". Arm Developer. Retrieved 23 September 2020.
- "Arm's Cortex-A76 CPU Unveiled: Taking Aim at the Top for 7nm". AnandTech. Archived from the original on 16 November 2018. Retrieved 15 November 2018.
- "Cortex-A76". Arm Developer. Retrieved 23 September 2020.
- "Cortex-A76AE". Arm Developer. Retrieved 29 September 2020.
- "Cortex-A77". Arm Developer. Retrieved 16 June 2019.
- "Cortex-A78". Arm Developer. Retrieved 29 September 2020.
- "Cortex-A78AE". Arm Developer. Retrieved 30 September 2020.
- "Cortex-A78C". Arm Developer. Retrieved 26 November 2020.
- "Neoverse N1". Arm Developer. Retrieved 16 June 2019.
- "Neoverse E1". Arm Developer. Retrieved 3 October 2020.
- "Processor Cores". Faraday Technology. Archived from the original on 19 February 2015. Retrieved 19 February 2015.
- "3rd Generation Intel XScale Microarchitecture: Developer's Manual" (PDF). download.intel.com. Intel. May 2007. Archived (PDF) from the original on 25 February 2008. Retrieved 2 December 2010.
- "Qualcomm's New Snapdragon S4: MSM8960 & Krait Architecture Explored". AnandTech. Retrieved 23 September 2020.
- "Snapdragon 820 and Kryo CPU: heterogeneous computing and the role of custom compute". Qualcomm. 2 September 2015. Archived from the original on 5 September 2015. Retrieved 6 September 2015.
- Lal Shimpi, Anand (15 September 2012). "The iPhone 5's A6 SoC: Not A15 or A9, a Custom Apple Core Instead". AnandTech. Archived from the original on 15 September 2012. Retrieved 15 September 2012.
- Smith, Ryan (11 November 2014). "Apple A8X's GPU - GAX6850, Even Better Than I Thought". AnandTech. Archived from the original on 30 November 2014. Retrieved 29 November 2014.
- Chester, Brandon (15 July 2015). "Apple Refreshes The iPod Touch With A8 SoC And New Cameras". AnandTech. Archived from the original on 5 September 2015. Retrieved 11 September 2015.
- Ho, Joshua (28 September 2015). "iPhone 6s and iPhone 6s Plus Preliminary Results". AnandTech. Archived from the original on 26 May 2016. Retrieved 18 December 2015.
- Ho, Joshua (28 September 2015). "The iPhone 7 and iPhone 7 Plus Review". AnandTech. Archived from the original on 14 September 2017. Retrieved 14 September 2017.
- "A11 Bionic - Apple". WikiChip. Retrieved 1 February 2019.
- "The iPhone XS & XS Max Review: Unveiling the Silicon Secrets". AnandTech. Archived from the original on 12 February 2019. Retrieved 11 February 2019.
- Frumusanu, Andrei. "The Apple iPhone 11, 11 Pro & 11 Pro Max Review: Performance, Battery, & Camera Elevated". AnandTech. Retrieved 20 October 2019.
- "AppliedMicro's 64-core chip could spark off ARM core war copy". Archived from the original on 21 August 2014. Retrieved 21 August 2014.
- "NVIDIA Denver Hot Chips Disclosure". Archived from the original on 5 December 2014. Retrieved 29 November 2014.
- "Mile High Milestone: Tegra K1 "Denver" Will Be First 64-bit ARM Processor for Android". Archived from the original on 12 August 2014. Retrieved 29 November 2014.
- "Drive Xavier für autonome Autos wird ausgeliefert" (in German). Archived from the original on 5 March 2018. Retrieved 5 March 2018.
- "NVIDIA Drive Xavier SOC Detailed – A Marvel of Engineering, Biggest and Most Complex SOC Design To Date With 9 Billion Transistors". Archived from the original on 24 February 2018. Retrieved 5 March 2018.
- "AMD Announces K12 Core: Custom 64-bit ARM Design in 2016". Archived from the original on 26 June 2015. Retrieved 26 June 2015.
- "Samsung Announces Exynos 8890 with Cat.12/13 Modem and Custom CPU". AnandTech. Retrieved 23 September 2020.
- "Hot Chips 2018: Samsung's Exynos-M3 CPU Architecture Deep Dive". AnandTech. Archived from the original on 20 August 2018. Retrieved 20 August 2018.
- "Evolution of the Samsung Exynos CPU Microarchitecture" (PDF). Retrieved 5 February 2021.
- "ARM Company Milestones". Archived from the original on 28 March 2014. Retrieved 6 April 2014.
- "ARM Press Releases". Archived from the original on 9 April 2014. Retrieved 6 April 2014.
- https://www.anandtech.com/show/15813/arm-cortex-a78-cortex-x1-cpu-ip-diverging