ARM

From WikiDevi.Wi-Cat.RU
Jump to navigation Jump to search

ARM Architecture

ARM developed by Advanced RISC Maсhines (UK)
Manuf
Processors
Apple A4, A5, A5X, A6, A6X, A7, A8, A8X, A9, ...

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.
Tronsmart MK908, a Rockchip-based quad-core Android "mini PC", with a microSD card next to it for a size comparison

processorarm.gif

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 (3rd Gen)
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
(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. ? up to 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)
? Up to 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 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
Up to 2.5 GHz
Carmel
(nVIDIA)
ARMv8
(t.b.d.)
Carmel 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
Up to ? GHz
Exynos
(Samsung)
ARMv8-A M1/M2
("Mongoose")
Exynos 8890
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.6 GHz
5.1 DMIPS/MHz
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
?
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
?
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,
L3: 4 MB
1.3 or 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,
L3: 4 MB
1.4 or 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,
L3: 4 MB or 0 MB
1.85 or 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, 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 / 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, L3: 4 MB
2.39 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, L3: 8 MB
2.5GHz / 1.6GHz
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, L3: 16 MB
2.65GHz / 1.80GHz
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: 128 KB / 128 KB,
L2: 8 MB, L3: 16 MB
3.10GHz / 1.80GHz

Devices

CPU: Intel StrongARM GDS1110BD @206MHz
MPU: SA-1110 RISC 32-bit (256-pin BGA)
GDS1110BC

See also