Seznam mikroarchitektur procesorů a mikrokontrolérů rodiny ARM , vyvinutých společností ARM Holdings a skupinami třetích stran. Seřazeno podle verze instrukční sady ARM.
Společnost ARM poskytla seznam firem, které samy implementovaly architektury ARM [1] . Některé informace poskytuje i Keil [2] .
Na jejich webu je zveřejněn i seznam vlastních jader ARM [3] .
Rodina ARM | Architektura ARM | Jádro | Doplňky | Mezipaměti (I/D), MMU | Typický MIPS @ MHz |
---|---|---|---|---|---|
ARM1 | ARMv1 | ARM1 | První implementace | Ne | |
ARM2 | ARMv2 | ARM2 | Do ARMv2 byla přidána instrukce MUL (multiply). | Ne | 4 MIPS při 8 MHz 0,33 DMIPS /MHz |
ARMv2a | ARM250 | Integrovaný MEMC (MMU), GPU a I/O koprocesor. Pokyny SWP a SWPB přidány do ARMv2a (výměna) | Ne, MEMC1a | 7 MIPS při 12 MHz | |
ARM3 | ARMv2a | ARM3 | První integrovaná mezipaměť | Jednotně 4 kB | 12 MIPS @ 25 MHz 0,50 DMIPS/MHz |
ARM6 | ARMv3 | ARM60 | ARMv3 přidává podporu pro 32bitové adresování paměti (dříve 26bitové) | Ne | 10 MIPS při 12 MHz |
ARM600 | Stejně jako v ARM60, navíc - mezipaměť a sběrnice koprocesoru (pro jednotku FPA10 s plovoucí desetinnou čárkou) | Jednotně 4 kB | 28 MIPS při 33 MHz | ||
ARM610 | Stejně jako v ARM60, mezipaměť, žádná sběrnice koprocesoru | Jednotně 4 kB | 17 MIPS při 20 MHz 0,65 DMIPS/MHz | ||
ARM7 | ARMv3 | ARM700 | 8 KB sjednocených | 40 MHz | |
ARM710 | Stejně jako ARM700 žádná koprocesorová sběrnice | 8 KB sjednocených | 40 MHz | ||
ARM710a | Jako ARM710 | 8 KB sjednocených | 40 MHz 0,68 DMIPS /MHz | ||
ARM7TDMI | ARMv4T | ARM7TDMI(-S) | 3-stupňový dopravník, Palec. ARMv4 opustil 26bitové adresování | Ne | 15 MIPS při 16,8 MHz 63 DMIPS při 70 MHz |
ARM710T | Stejně jako ARM7TDMI má navíc mezipaměť | 8 KB, unifikovaný, MMU | 36 MIPS při 40 MHz | ||
ARM720T | Stejně jako ARM7TDMI má mezipaměť | 8 KB, unifikovaný, MMU (s rozšířením FCSE - Fast Context Switch Extension ) | 60 MIPS při 59,8 MHz | ||
ARM740T | Stejně jako ARM7TDMI má mezipaměť | MPU | |||
ARM7EJ | ARMv5TEJ | ARM7EJ-S | 5 Stage Pipeline, Thumb, Jazelle DBX, Advanced DSP Instructions | Ne | |
ARM8 | ARMv4 | ARM810 [4] [5] | 5-stupňové potrubí, prediktor statické větve, zdvojnásobení šířky pásma paměti | 8 KB, unifikovaný, MMU | 84 MIPS při 72 MHz 1,16 DMIPS/MHz |
ARM9 TDMI | ARMv4T | ARM9TDMI | 5-stupňový dopravník, Palec | Ne | |
ARM920T | Stejně jako ARM9TDMI, mezipaměti | 16 KB / 16 KB MMU s FCSE ( Fast Context Switch Extension ) [6] | 200 MIPS @ 180 MHz | ||
ARM922T | Stejně jako ARM9TDMI, mezipaměti | 8 KB / 8 KB, MMU | |||
ARM940T | Stejně jako ARM9TDMI, mezipaměti | 4 KB / 4 KB MPU | |||
ARM9E | ARMv5TE | ARM946E-S | Palec, DSP, mezipaměti | Různé, pevně spojené paměti (TCM), MPU | |
ARM966E-S | Palec, DSP | Bez mezipaměti a paměti TCM | |||
ARM968E-S | Jako ARM966E-S | Bez mezipaměti a TCM | |||
ARMv5TEJ | ARM926EJ-S | Palec, Jazelle DBX, DSP | Různé, TCM, MMU | 220 MIPS @ 200 MHz | |
ARMv5TE | ARM996HS | Procesor bez taktu, zbytek shodný s ARM966E-S | Žádná mezipaměť, TCM, MPU | ||
ARM10E | ARMv5TE | ARM1020E | 6stupňové potrubí, Thumb, DSP, (VFP) | 32 KB / 32 KB MMU | |
ARM1022E | Jako ARM1020E | 16 KB / 16 KB, MMU | |||
ARMv5TEJ | ARM1026EJ-S | Palec, Jazelle DBX, DSP, (VFP) | Různé, MMU nebo MPU | ||
ARM11 | ARMv6 | ARM1136J(F)-S [7] | 8stupňové potrubí, SIMD , Thumb, Jazelle DBX, (VFP), DSP | Různé, MMU | 740 @ 532-665 MHz (i.MX31 SoC), 400-528 MHz |
ARMv6T2 | ARM1156T2(F)-S | 8-stupňové potrubí, SIMD , Thumb-2, (VFP), DSP | Různé, MPU | ||
ARMv6Z | ARM1176JZ(F)-S | Jako ARM1136EJ(F)-S | Různé, MMU + TrustZone | 965 DMIPS @ 772 MHz, až 2600 DMIPS se 4 procesory [8] | |
ARMv6K | ARM11MPCore | Jako ARM1136EJ(F)-S, SMP s 1-4 jádry | Různé, MMU | ||
SecurCore | ARMv6-M | SC000 | 0,9 DMIPS/MHz | ||
ARMv4T | SC100 | ||||
ARMv7-M | SC300 | 1,25 DMIPS/MHz | |||
Cortex-M | ARMv6-M | Cortex-M0 [9] | Profil mikrokontroléru, podmnožina Thumb + Thumb-2 (BL, MRS, MSR, ISB, DSB, DMB), [10] hardwarové násobení, volitelný systémový časovač a paměť s bitovým pásmem | Volitelná mezipaměť, bez TCM, bez MPU | 0,84 DMIPS/MHz |
Cortex-M0+ [11] | Mikrokontrolér, podmnožina Thumb a Thumb-2 (BL, MRS, MSR, ISB, DSB, DMB), [10] hardwarové násobení, volitelný systémový časovač a bit-banding memory | Volitelná mezipaměť, žádný TCM, volitelný 8 region MPU | 0,93 DMIPS/MHz | ||
Cortex-M1 [12] | Mikrokontrolér, podmnožina Thumb a Thumb-2 (BL, MRS, MSR, ISB, DSB, DMB), [10] hardwarový násobič, možnost/banka SVC pro ukazatel zásobníku, volitelný systémový časovač, žádná paměť „bit-banding“ | Volitelná mezipaměť, 0-1024 KB I-TCM, 0-1024 KB D-TCM, bez MPU | 136 DMIPS při 170 MHz [13] (závisí na FPGA 0,8 DMIPS/MHz) [14] | ||
ARMv7-M | Cortex-M3 [15] | Mikrokontrolér, Thumb / Thumb-2, hardwarové násobení a dělení, volitelná bit-banding memory | Volitelná mezipaměť, žádný TCM, volitelný 8 region MPU | 1,25 DMIPS/MHz | |
ARMv7E-M | Cortex-M4 [16] | Mikrokontrolér, Thumb / Thumb-2 / DSP / volitelné rozšíření FPv4 pro jednoduchou přesnost, hardwarové násobení a dělení, volitelná paměť bit-banding | Volitelná mezipaměť, žádný TCM, volitelný 8 region MPU | 1,25 DMIPS/MHz (1,27 s FPU FPv4) | |
ARMv7E-M | Cortex-M7 [17] | Mikrokontrolér, Thumb / Thumb-2 / DSP / volitelná jednoduchá a dvojitá přesnost FPU, hardwarové násobení a dělení | 0-64 KB I-cache, 0-64 KB D-cache, 0-16 MB I-TCM, 0-16 MB D-TCM (vše s volitelným ECC), volitelný 8 nebo 16 region MPU | 2,14 DMIPS/MHz | |
Základní linie ARMv8-M | Cortex-M23 | ARM TrustZone | 0,98 DMIPS/MHz
2,5 CoreMark /MHz | ||
Hlavní řada ARMv8-M | Cortex-M33 | ARM TrustZone | 1,5 DMIPS/MHz
3,86 CoreMark/MHz | ||
Cortex-R | ARMv7-R | Cortex-R4 [18] | Profil v reálném čase, Thumb / Thumb-2 / DSP / volitelný FPU VFPv3, hardwarové násobení a volitelné dělení, volitelná parita a ECC pro interní sběrnice, mezipaměť, TCM, 8stupňové potrubí, dvě jádra v režimu lockstep s logikou zpracování chyb | 0-64 KB / 0-64 KB, 0-2 z 0-8 MB TCM, volitelně 8 nebo 12 MPU | |
Cortex-R5 (MPCore) [19] | Profil v reálném čase, Thumb / Thumb-2 / DSP / volitelně VFPv3 FPU, hardwarové násobení a volitelné dělení, volitelná parita a ECC pro interní sběrnice, mezipaměť, TCM, 8stupňové potrubí, dvě jádra v režimu lockstep s logikou zpracování chyb. Volitelně mohou dvě jádra pracovat jako nezávislá. Periferní port s nízkou latencí (LLPP), koherenční port akcelerátoru (ACP) [20] | 0-64 KB / 0-64 KB, 0-2 z 0-8 MB TCM, opt. MPU na 12 nebo 16 | |||
Cortex-R7 (MPCore) [21] | Profil v reálném čase, Thumb / Thumb-2 / DSP / volitelný VFPv3 FPU, hardwarové násobení a volitelné dělení, volitelná parita a ECC pro interní sběrnice, mezipaměť, TCM, 11-stupňové potrubí, dvě jádra v režimu lockstep s logikou zpracování chyb. Jádra mimo provoz, s dynamickým přejmenováním registrů. Volitelně mohou dvě jádra pracovat jako nezávislá. Periferní port s nízkou latencí (LLPP), koherenční port akcelerátoru (ACP) [20] | 0-64 KB / 0-64 KB, ? od 0-128 KB TCM, opt. MPU v 16 | |||
Cortex-A | ARMv7-A | Cortex-A5 [22] | Aplikační profil, ARM / Thumb / Thumb-2 / DSP / SIMD / volitelně VFPv4-D16 FPU / volitelně NEON / Jazelle RCT a DBX, 1-4 jádro, volitelně MPCore, SCU, snoop control unit, General Interrupt Controller (GIC), Accelerator Coherence Port (ACP) | 4-64 KB / 4-64 KB L1, MMU + TrustZone | 1,57 DMIPS/MHz na jádro |
Cortex-A7 MPCore [23] | Aplikační profil, ARM / Thumb / Thumb-2 / DSP / VFPv4-D16 FPU / NEON / Jazelle RCT a DBX / hardwarová virtualizace, provádění v pořadí, superskalární, SMP pro 1-4 jádra, rozšíření velkých fyzických adres (LPAE), Snooping Control Unit (SCU), General Interrupt Controller (GIC), Accelerator Coherence Port (ACP). Architektura a sada rozšíření jsou stejné jako u Cortex-A15. 8-10 stupňů v potrubí, snížená spotřeba energie [24] | 32 KB / 32 KB L1, 0–4 MB L2, MMU + TrustZone | 1,9 DMIPS/MHz na jádro | ||
Cortex-A8 [25] | Aplikační profil, ARM / Thumb / Thumb-2 / VFPv3 FPU / NEON / Jazelle RCT a DAC, 13stupňový superskalární | 16-32 KB / 16-32 KB L1, 0-1 MB L2 opt. ECC, MMU + TrustZone | až 2000 (2,0 DMIPS/MHz od 600 MHz do více než 1 GHz ) | ||
Cortex-A9 MPCore [26] | Aplikační profil, ARM / Thumb / Thumb-2 / DSP / volitelně VFPv3 FPU / volitelně NEON / Jazelle RCT a DBX, provedení mimo pořadí se spekulativním, superskalárním, SMP pro 1-4 jádra, snooping řídicí jednotky (SCU), společný řadič přerušení (GIC), akcelerátor koherenční port (ACP). | 16-64 KB / 16-64 KB L1, 0-8 MB L2 opt. parita, MMU + TrustZone | 2,5 DMIPS/MHz na jádro, 10 000 DMIPS @ 2 GHz na procesní technologii TSMC 40G (dvě jádra) | ||
Cortex-A12 [27] se později spojil s A17 | Aplikační profil, ARM / Thumb-2 / DSP / VFPv4 FPU / NEON / hardwarová virtualizace, spekulativní provádění mimo pořadí, superskalární, 1-4 jádrový SMP, rozšíření velkých fyzických adres (LPAE), snoop řídící jednotka (SCU), běžná přerušení řadiče (GIC), koherenční port akcelerátoru (ACP). | 32-64KB/32KB L1, 256KB-8MB L2 | 3,0 DMIPS/MHz na jádro | ||
Cortex-A15 MPCore [28] | Profil aplikace, ARM / Thumb / Thumb-2 / DSP / VFPv4 FPU / NEON / celočíselné dělení / MAC (kombinované multiply-add) / Jazelle RCT / hardwarová virtualizace, spekulativní provádění mimo pořadí, superskalární, SMP pro 1-4 jádra, Large Physical Address Extensions (LPAE), Snooping Control Unit (SCU), General Interrupt Controller (GIC), Accelerator Coherence Port (ACP). 15-24stupňové potrubí [24] | 32 KB parita / 32 KB ECC L1, 0–4 MB L2 ECC, MMU + TrustZone | Alespoň 3,5 DMIPS/MHz na jádro (až 4,01 DMIPS/MHz v závislosti na implementaci) [29] | ||
Cortex-A17MPCore | Profil aplikace, ARM / Thumb / Thumb-2 / DSP / VFPv4 FPU / NEON / celočíselné dělení / MAC (kombinované multiply-add) / Jazelle RCT / hardwarová virtualizace, spekulativní provádění mimo pořadí, superskalární, SMP pro 1-4 jádra, Large Physical Address Extensions (LPAE), Snooping Control Unit (SCU), General Interrupt Controller (GIC), Accelerator Coherence Port (ACP). | MMU + TrustZone | |||
Cortex-A50 | ARMv8-A | Cortex-A53 [30] | Aplikační profil, AArch32 a AArch64, SMP pro 1-4 jádra, Trustzone, vylepšený NEON SIMD, VFPv4, virtualizace hardwaru, spouštění až dvou instrukcí za cyklus, spouštění potrubí v pořadí | 8–64 KB parita / 8–64 KB ECC L1 na jádro, 128 KB–2 MB sdílená L2, 40bitové fyzické adresy | 2,3 DMIPS/MHz |
Cortex-A57 [31] | Aplikační profil, AArch32 a AArch64, SMP 1-4 jádra, Trustzone, vylepšený NEON SIMD, VFPv4, virtualizace hardwaru, cyklování více instrukcí, provádění hlubokého out-of-order | 48 KB dvojitá parita (DED) / 32 KB L1 s ECC na jádro, 512 KB-2 MB sdílená L2, 44bitový fyz. adresy | Alespoň 4,1 DMIPS/MHz na jádro (až 4,76 DMIPS/MHz v závislosti na implementaci) | ||
Cortex-A72 [32] | |||||
Rodina ARM | Architektura ARM | Jádro | Doplňky | Mezipaměti (I/D), MMU | Typický MIPS @ MHz |
Vyvinuto třetími stranami, které měly architektonickou licenci od ARM, která umožňovala implementaci proprietárních instrukcí.
Rodina | Sada příkazů | mikroarchitektura | Sada rozšíření | Cache I/D), MMU | Typický typický MIPS @ MHz |
---|---|---|---|---|---|
StrongARM | ARMv4 | SA-110 | 5stupňový dopravník | 16 KB / 16 KB, MMU | 100-206 MHz 1,0 DMIPS /MHz |
SA-1100 | Vývoj SA-110 | 16 KB / 8 KB, MMU | |||
Faraday [33] | ARMv4 | FA510 | 6-stupňový dopravník | Mezipaměť až 32 KB / 32 KB, MPU | 1,26 DMIPS/MHz 100-200 MHz |
FA526 | Mezipaměť až 32 KB / 32 KB, MMU | 1,26 MIPS/MHz 166-300 MHz | |||
FA626 | 8-stupňový dopravník | 32 KB / 32 KB mezipaměť, MMU | 1,35 DMIPS/MHz 500 MHz | ||
ARMv5TE | FA606TE | 5stupňový dopravník | Žádná mezipaměť, žádná MMU | 1,22 DMIPS/MHz 200 MHz | |
FA626TE | 8-stupňový dopravník | 32 KB / 32 KB mezipaměť, MMU | 1,43 MIPS/MHz 800 MHz | ||
FMP626TE | 8-stupňové potrubí, SMP | 1,43 MIPS/MHz 500 MHz | |||
FA726TE | 13-stupňová pipeline, běžící dvě instrukce na takt | 2,4 DMIPS /MHz 1000 MHz | |||
Xscale | ARMv5TE | Xscale | 7-stupňové potrubí, Thumb, DSP | 32 KB / 32 KB MMU | 133-400 MHz |
Bulverde | Volitelné: W MMX rozšíření , Wireless SpeedStep | 32 KB / 32 KB MMU | 312-624 MHz | ||
Monahans [34] | Volitelné: rozšíření WMMX2 | 32 KB / 32 KB (L1), volitelná mezipaměť L2 až 512 KB, MMU | Až 1,25 GHz | ||
Marvell Sheeva | ARMv5 | Feroceon | 5-8 fází potrubí, běh jedné instrukce na cyklus | 16 KB / 16 KB, MMU | 600-2000 MHz |
Jolteon | 5-8 fází potrubí, běh dvou instrukcí na cyklus | 32 KB / 32 KB MMU | |||
PJ1 (Mohawk) | 5-8 fází potrubí, běh dvou instrukcí na cyklus, WMMX2 | 32 KB / 32 KB MMU | 1,46 DMIPS/MHz 1,06 GHz | ||
ARMv6 / ARMv7-A | PJ4 | 6-9 fází potrubí, běh dvou instrukcí za cyklus, WMMX2, SMP | 32 KB / 32 KB MMU | 2,41 DMIPS/MHz 1,6 GHz | |
hledík | ARMv7-A | štír [35] | 1 nebo 2 jádra. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv3 FPU / NEON (128bitová šířka) | 256 KB L2 na jádro | 2,1 DMIPS/MHz na jádro |
[ 35] | 1, 2 nebo 4 jádra. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4 FPU / NEON (128bitová šířka) | 4 KB / 4 KB L0, 16 KB / 16 KB L1, 512 KB L2 na jádro | 3,3 DMIPS/MHz na jádro | ||
Apple A6 , Apple A6X |
ARMv7-A | Swift [36] | 2 jádra. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4 FPU / NEON | L1: 32 kB / 32 kB, L2: 1 MB | 3,5 DMIPS/MHz na jádro |
Apple A7 | ARMv8-A | Cyklón | 2 jádra. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4 FPU / NEON / TrustZone / AArch64 | L1: 64 KB / 64 KB, L2: 1 MB | 1,3 GHz |
Apple A8 | ARMv8-A | Cyklón | 2 jádra. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4 FPU / NEON / TrustZone / AArch64 | L1: (n/a); KB, L2: (n/a); MB | 1,4 GHz |
X Gene | ARMv8-A | X Gene | 64-bit, spustit až 4 instrukce za cyklus, SMP, 64 jader [37] | cache, MMU, virtualizace | 3 GHz |
Denver | ARMv8-A | Denver | 64bitová, 2 SMP jádra, hardwarový dekodér až 2 instrukce za cyklus nebo softwarová dynamická rekompilace na široké instrukce | 128 KB I / 64 KB D | až 2,5 GHz |
ThunderX | ARMv8-A | ThunderX | 64-bit, 2 modely: 8-16 nebo 24-48 jader (lze kombinovat 2 čipy) | Až 2,5 GHz |