ARM
Jump to navigation
Jump to search
ARM Architecture
- ARM developed by Advanced RISC Maсhines (UK)
- Manuf
- Annapurna Labs, Analog Devices, Apple, Applied Micro (now MACOM), Atmel, Broadcom,
- Cavium (now Marvell), Cirrus Logic, Cypress, Freescale (now NXP), Huawei, Intel, Marvell,
- Motorola, Nvidia, NXP, Qualcomm, Renesas, Samsung, STMicro, Texas Instruments, VLSI,
- DEC (Digital Equipment Corporation), Maxim Integrated, Xilinx, ST-Ericsson, Silicon Labs
- Processors
- Motorola 68000, National Semiconductor 32016
- Intel StrongARM, XScale, Atom, (80286, 80386, 80486)
- VLSI VPS10101 - CPU ARM Ruby II (32-bit ARM6 core)
- Apple ARM610 (ARM6-based) - Apple Newton PDA
- Apple A4, A5, A5X, A6, A6X, A7, A8, A8X, A9, ...
- CSR PLC's Quatro family
- Freescale/NXP i.MX CPU
- Marvell Feroceon series CPU
- ST-Ericsson Nova, NovaThor
- Silicon Labs Precision32 MCU
- Samsung Hummingbird, Exynos
- Texas Instruments OMAP CPU
- Qualcomm Scorpion, Krait, Kryo
- Nvidia Tegra 3 Gen SoC
ARM Cores (Family)
Architecture | Core bit-width |
Cores | Profile | References | |
---|---|---|---|---|---|
Arm Holdings | Third-party | ||||
ARMv1 | 32-bit | ARM1 | N/A | Classic | |
ARMv2 | 32-bit | ARM2, ARM250, ARM3 | Amber, STORM Open Soft Core | Classic | |
ARMv3 | 32-bit | ARM6, ARM7 | N/A | Classic | |
ARMv4 | 32-bit | ARM8 | StrongARM, FA526, ZAP Open Source Core | Classic | |
ARMv4T | 32-bit | ARM7TDMI, ARM9TDMI, SecurCore SC100 | Classic | ||
ARMv5TE | 32-bit | ARM7EJ, ARM9E, ARM10E | XScale, Feroceon, FA626TE, PJ1 / Mohawk | Classic | |
ARMv6 | 32-bit | ARM11 | N/A | Classic | |
ARMv6-M | 32-bit | ARM Cortex-M0, ARM Cortex-M0+, ARM Cortex-M1, SecurCore SC000 |
Microcontroller | ||
ARMv7-M | 32-bit | ARM Cortex-M3, SecurCore SC300 | Microcontroller | ||
ARMv7E-M | 32-bit | ARM Cortex-M4, ARM Cortex-M7 | Microcontroller | ||
ARMv8-M | 32-bit | ARM Cortex-M23, ARM Cortex-M33 | Microcontroller | ||
ARMv7-R | 32-bit | ARM Cortex-R4, ARM Cortex-R5, ARM Cortex-R7, ARM Cortex-R8 |
Real-time | ||
ARMv8-R | 32-bit | ARM Cortex-R52 | Real-time | ||
64-bit | ARM Cortex-R82 | Real-time | |||
ARMv7-A | 32-bit | ARM Cortex-A5, ARM Cortex-A7, ARM Cortex-A8, ARM Cortex-A9, ARM Cortex-A12, ARM Cortex-A15, ARM Cortex-A17 |
Apple A4 - 1x ARM (Cortex-A8), Apple A5 - 2x ARM (Cortex-A9), Apple A6 (Swift), PJ4 / Sheeva, Qualcomm Scorpion / Krait |
Application | |
ARMv8-A | 32-bit | ARM Cortex-A32 | Application | ||
32/64-bit | ARM Cortex-A35, ARM Cortex-A53, ARM Cortex-A57, ARM Cortex-A72, ARM Cortex-A73 |
Applied Micro X-Gene, nVIDIA Denver 1/2, Qualcomm Kryo, Cavium ThunderX, AMD K12, Apple A7 (Cyclone), Apple A8 (Typhoon), Apple A9 (Twister), Apple A10 (Hurricane / Zephyr), Samsung M1/M2 ("Mongoose"), M3 ("Meerkat") |
Application | ||
64-bit | ARM Cortex-A34 | Application | |||
ARMv8.1-A | 32/64-bit | N/A | Cavium ThunderX2 | Application | |
ARMv8.2-A | 64/32-bit | ARM Cortex-A55, ARM Cortex-A75, ARM Cortex-A76, ARM Cortex-A77, ARM Cortex-A78, ARM Cortex-X1, ARM Neoverse N1 |
nVIDIA Carmel, Samsung M4 ("Cheetah"), Fujitsu A64FX (ARMv8 SVE 512-bit) |
Application | |
64-bit | ARM Cortex-A65, ARM Cortex-A65AE, ARM Neoverse E1 (SMT) |
Apple A11 (Monsoon / Mistral) | Application | ||
ARMv8.3-A | 64/32-bit | N/A | Application | ||
64-bit | N/A | Apple A12 (Vortex / Tempest) Marvell ThunderX3 (v8.3+) 96C/384TC |
Application | ||
ARMv8.4-A | 64/32-bit | N/A | Application | ||
64-bit | N/A | Apple A13 (Lightning / Thunder) | Application | ||
ARMv8.5-A | 64/32-bit | N/A | Application | ||
ARMv8.6-A | 64/32-bit | N/A | Apple A14 (Firestorm / Icestorm) | Application |
Example applications of ARM cores
ARM cores are used in a number of products, particularly PDAs and smartphones. Some computing examples are Microsoft's Surface (2012 tablet), Surface 2
- and Pocket PC devices (following Pocket PC 2002), Apple's iPads and Asus's Eee Pad Transformer tablet computers, and several Chromebook laptops.
Others include Apple's iPhone smartphones and iPod portable media players, Canon PowerShot digital cameras, Nintendo Switch hybrid and Nintendo 3DS
- handheld game consoles, and TomTom turn-by-turn GPS navigation systems.
In 2005, Arm Holdings took part in the development of Manchester University's computer SpiNNaker,
- which used ARM cores to simulate the human brain.
ARM chips are also used in Raspberry Pi, BeagleBoard, BeagleBone, PandaBoard and other SBCs,
- because they are very small, inexpensive and consume very little power.
- ARM Cores
Core MIPS/MHz S/mm² mW/MHz Freq/MHz Cache MMU 25nm ARM7TDMI 0,9 1,02 0,78 60–70 ARM7TDMI-S 0,9 1,20 1,10 60–70 18nm ARM7TDMI 0,9 0,59 0,30 80–110 ARM7TDMI-S 0,9 0,62 0,39 80–110 ARM7EJ-S 1,0 0,85 0,40 80–110 ARM940T 1,1 4,2 0,75 180–200 4K/4K MPU ARM946E-S 1,1 5,0 1,00 150–170 0/1М MPU ARM966E-S 1,1 4,0 0,90 150–170 ARM720T 1,1 3,5 0,65 60–80 8K + ARM920T 1,1 6,0 0,25 220–270 16K/16K + ARM922T 1,1 3,5 0,25 220–270 180/200 + ARM926EJ-S 1,0 6,5 1,40 180–200 4К/128К + 13nm ARM7TDMI 0,9 0,30 0,08 100–133 ARM7TDMI-S 0,9 0,32 0,11 100–133 ARM7EJ-S 1,0 0,42 0,12 100–133 ARM940T 1,1 2,1 0,20 220–250 4K/4K MPU ARM946E-S 1,1 2,5 0,25 180–210 0/1М MPU ARM966E-S 1,1 2,0 0,22 180–210 ARM720T 0,9 1,8 0,20 100–120 8K + ARM920T 1,1 6,0 0,25 220–270 16K/16K + ARM922T 1,1 3,5 0,25 220–270 8K/8K + ARM926EJ-S 1,0 3,2 0,35 220–270 4К/128К + ARM1020E 1,23 10,3 0,60 270–325 32K/32K + ARM1022E 1,23 6,7 0,60 270–325 16K/16K +
List of ARM Microarchitectures
These cores implement the ARM instruction set, and were developed independently by companies with an architectural license from ARM.
Core (Family) |
Instruction set |
Micro architecture |
Feature | Cache (I/D), MMU |
Typical MIPS MHz (per core) |
---|---|---|---|---|---|
StrongARM (Digital / Intel) |
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 (Faraday Technology) |
ARMv4 | FA510 | 6-stage pipeline | Up to 32 KB / 32 KB, MPU | 1.26 DMIPS/MHz 100-200 MHz |
FA526 | Up to 32 KB / 32 KB, MMU | 1.26 MIPS/MHz 166-300 MHz | |||
FA626 | 8-stage pipeline | 32 KB / 32 KB, 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, 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, SpeedStep added | 32 KB / 32 KB, MMU | 312-624 MHz | ||
Monahans XScale (3 Gen) |
Wireless MMX2 added | 32 KB / 32 KB L1, optional L2 cache up to 512 KB, MMU |
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 (QSD S4 ) |
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 |
Krait (QSD S4 ) |
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 | ||
ARMv8-A | Kryo (QSD 820) |
4 cores | ? | 2.2 GHz 6.3 DMIPS/MHz | |
ThunderX (Cavium) |
ARMv8-A | ThunderX | 64-bit, with two models with 8–16 or 24–48 cores (×2 w/two chips) |
? | 2.2 GHz |
AMD K12 (AMD) |
ARMv8-A | K12 | K12 Core: 64-bit ARM (2016) | ? | ? |
X-Gene (Applied Micro) |
ARMv8-A | X-Gene | 64-bit, quad issue, SMP, 64 cores | Cache, MMU, virtualization | 3.0 GHz 4.2 DMIPS/MHz |
Denver (nVIDIA) |
ARMv8-A | Denver (Tegra K1/X2) |
2 cores, AArch64, 7-wide superscalar, in-order, dynamic code optimization, 128 MB cache, Denver1: 28nm, Denver2:16nm |
128 KB I-cache/ 64 KB D-cache |
2.5 GHz |
Carmel (nVIDIA) |
ARMv8.2-A | Carmel (Drive Xavier) |
2 cores, AArch64, 10-wide superscalar, in-order, dynamic code optimization, ? MB cache, functional safety, dual execution, parity & ECC |
? KB I-cache ? KB D-cache |
? GHz |
Exynos (Samsung) |
ARMv8-A | M1 ("Mongoose") |
4 cores, AArch64, 4-wide, quad-issue, superscalar, out-of-order (Exynos 8890) |
64 KB I-cache / 32 KB D-cache, L2: 16-way shared 2 MB |
2.6 GHz 5.1 DMIPS/MHz |
ARMv8-A | M2 ("Mongoose") |
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 |
2.3 GHz | |
ARMv8-A | M3 ("Meerkat") Exynos-M3 |
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 |
2.7 GHz | |
ARMv8.2-A | M4 ("Cheetah") |
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 |
2.73 GHz | |
ARMv8.2-A | M5 ("Lion") |
2 cores, AArch64, 6-decode, 6-issue, 6-wide. superscalar, out-of-order |
64 KB I-cache / 64 KB D-cache, L2: 8-way shared 2 MB, L3: 12-way shared 3 MB |
2.73 GHz | |
Apple Ax (Apple) |
ARMv7-A | Swift (Apple A6, A6X) |
2 cores, ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4 FPU / NEON |
L1: 32 KB / 32 KB, L2: 1 MB |
3.5 DMIPS/MHz |
ARMv8-A | Cyclone (Apple A7) |
2 cores, ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4 FPU / NEON / TrustZone / AArch64, superscalar |
L1: 64 KB / 64 KB, L2: 1 MB, SLC: 4 MB |
1.3 GHz 1.4 GHz | |
ARMv8-A | Typhoon (Apple A8, 8X) |
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, SLC: 4 MB |
1.4 GHz 1.5 GHz | |
ARMv8-A | Twister (Apple A9, 9X) (iPhone 6s / 6s Plus) |
2 cores, ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4 FPU / NEON / TrustZone / AArch64 |
L1: 64 KB / 64 KB, L2: 2 MB, SLC: 4 MB or 0 MB |
1.85 GHz 2.26 GHz | |
ARMv8.1-A | Hurricane / Zephyr (Apple A10, 10X) (iPhone 7 / 7 Plus) |
Hurricane: 2 or 3 cores, AArch64, 6-decode, 6-issue, 9-wide, out-of-order, superscalar Zephyr: 2 or 3 cores, AArch64, out-of-order, superscalar |
L1: 64 KB / 64 KB, L2: 3 MB or 8 MB L1: 32 KB / 32 KB, L2: none, SLC: 4 MB or 0 MB |
2.34 GHz or 2.38 GHz 1.05 GHz | |
ARMv8.2-A | Monsoon / Mistral (Apple A11 Bionic) |
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 L1: 32 KB / 32 KB, L2: 1 MB, SLC: 4 MB |
2.39 GHz . 1.70 GHz | |
ARMv8.3-A | Vortex / Tempest (Apple A12,A12X,A12Z) (iPhone XS / XS Max) |
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 L1: 32 KB / 32 KB, L2: 2 MB, SLC: 8 MB |
2.49 GHz . 1.59 GHz | |
ARMv8.4-A | Lightning / Thunder (Apple A13 Bionic) (iPhone 11 / 11 Pro / 11 Pro Max / SE2) |
Lightning: 2 cores, AArch64, 7-decode, ?-issue, 11-wide, superscalar, out-of-order Thunder: 4 cores, AArch64, out-of-order, superscalar, 8x GPU, 7nm (TSMC) |
L1: 128 KB / 128 KB, L2: 8 MB L1: 32 KB / 48 KB, L2: 4 MB, SLC: 16 MB |
2.66 GHz . 1.73 GHz | |
ARMv8.5-A | Firestorm / Icestorm (Apple A14 Bionic) (iPhone 12 / iPad Air (4 Gen)) |
Firestorm: 2 cores. AArch64, 7-decode, ?-issue, 11-wide, superscalar, out-of-order Icestorm: 4 cores, AArch64, out-of-order, superscalar, 16x Neural Engine, 5nm (TSMC) |
L1: 192 KB / 128 KB, L2: 8 MB L1: 128 KB / 64 KB, L2: 4 MB, SLC: 16 MB |
3.00 GHz . 1.82 GHz | |
ARMv8.5-A | Avalanche / Blizzard (Apple A15) |
Avalanche: 2 cores, AArch64, out-of-order, superscalar, 8-decode, ?-issue, 14-wide Blizzard: 4 cores, AArch64, out-of-order, superscalar, 4-decode, ?-issue, 8-wide |
L1: 192 KB / 128 KB, L2: 12 MB L1: 128 KB / 64 KB, L2: 4 MB, SLC: 32 MB |
2.93 GHz or 3.23 GHz 2.02 GHz | |
ARMv8.5-A | Everest / Sawtooth (Apple A16) |
Everest: 2 cores, AArch64, out-of-order, superscalar, 8-decode, ?-issue, 14-wide Sawtooth: 4 cores, AArch64, out-of-order, superscalar, 4-decode, ?-issue, 8-wide |
L1: 192 KB / 128 KB, L2: 16 MB L1: 128 KB / 64 KB, L2: 4 MB, SLC: 24 MB |
3.46 GHz . 2.02 GHz | |
ARMv8.5-A | Firestorm / Icestorm (Apple M1) |
Firestorm: 4, 6, 8, 16 cores, AArch64, out-of-order, superscalar, 8-decode, ?-issue, 14-wide Icestorm: 2 or 4 cores, AArch64, out-of-order, superscalar, 4-decode, ?-issue, 7-wide |
L1: 192 KB / 128 KB, L2: 12, 24 or 48 MB L1: 128 / 64 KB, L2: 4 or 8 MB, SLC: 8, 24, 48 or 96 MB |
3.2 GHz or 3.23 GHz 2.06 GHz | |
ARMv8.5-A | Avalanche / Blizzard (Apple M2) |
Avalanche: 4, 6, 8 cores, AArch64, out-of-order, superscalar, 8-decode, ?-issue, 14-wide Blizzard: 4 cores, AArch64, out-of-order, superscalar, 4-decode, ?-issue, 8-wide |
L1: 192 KB / 128 KB, L2: 16 or 32 MB L1: 128 KB / 64 KB, L2: 4 MB, SLC: 8, 24 or 48 MB |
3.49 GHz . 2.42 GHz |
Timeline
The following table lists each core by the year it was announced. • List of ARM processors on Wikipedia
Year | Classic cores | Cortex cores | Neoverse cores | |||||||
---|---|---|---|---|---|---|---|---|---|---|
ARM1-6 | ARM7/8 | ARM9 | ARM10 | ARM11 | MCU ARM (Cortex-M) |
Real-time (Cortex-R) |
Application (Cortex-A) (32-bit) |
Application (Cortex-A) (64-bit) |
Application (64-bit) | |
1985 | ARM1 | |||||||||
1986 | ARM2 | |||||||||
1989 | ARM3 | |||||||||
1992 | ARM250 | |||||||||
1993 | ARM60 ARM610 |
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 | ARM7EJ-S ARM7TDMI-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 |
|||||||
2021 | Cortex-A510 Cortex-A710 Cortex-X2 |
Neoverse N2 | ||||||||
2022 | Cortex-M85(F) | Cortex-A715 Cortex-X3 |
Application ARM-based chips
|
Devices
- CPU: Intel StrongARM GDS1110BD @206MHz
- MPU: SA-1110 RISC 32-bit (256-pin BGA)
- GDS1110BC