Lista de la familia ARM de microarquitecturas de procesadores y microcontroladores , desarrollada por ARM Holdings y grupos de terceros. Ordenado por versión del conjunto de instrucciones ARM.
ARM proporcionó una lista de empresas que implementaron arquitecturas ARM ellas mismas [1] . Keil [2] también proporciona cierta información .
También se publica una lista de los propios núcleos de ARM en su sitio web [3] .
familia ARM | arquitectura BRAZO | Núcleo | Complementos | Cachés (I/D), MMU | MIPS típicos a MHz |
---|---|---|---|---|---|
ARM1 | ARMv1 | ARM1 | Primera implementación | No | |
ARM2 | ARMv2 | ARM2 | Se agregó la instrucción MUL (multiplicar) a ARMv2 | No | 4 MIPS a 8 MHz 0,33 DMIPS /MHz |
ARMv2a | ARM250 | Coprocesador integrado de MEMC (MMU), GPU y E/S. Se agregaron instrucciones SWP y SWPB a ARMv2a (intercambio) | No, MEMC1a | 7 MIPS a 12 MHz | |
ARM3 | ARMv2a | ARM3 | Primera memoria caché integrada | 4 KB unificados | 12 MIPS a 25 MHz 0,50 DMIPS/MHz |
BRAZO6 | ARMv3 | ARM60 | ARMv3 agrega soporte para direccionamiento de memoria de 32 bits (anteriormente de 26 bits) | No | 10 MIPS a 12 MHz |
ARM600 | Al igual que en ARM60, además: caché y bus de coprocesador (para la unidad de procesamiento de coma flotante FPA10) | 4 KB unificados | 28 MIPS a 33 MHz | ||
ARM610 | Como en ARM60, caché, sin bus de coprocesador | 4 KB unificados | 17 MIPS a 20 MHz 0,65 DMIPS/MHz | ||
ARM7 | ARMv3 | ARM700 | 8 KB unificados | 40 MHz | |
ARM710 | Como ARM700, sin bus de coprocesador | 8 KB unificados | 40 MHz | ||
ARM710a | Me gusta ARM710 | 8 KB unificados | 40 MHz 0,68 DMIPS /MHz | ||
ARM7TDMI | ARMv4T | ARM7TDMI(-S) | Transportador de 3 etapas, Pulgar. ARMv4 abandonó el direccionamiento de 26 bits | No | 15 MIPS a 16,8 MHz 63 DMIPS a 70 MHz |
ARM710T | Al igual que ARM7TDMI, también tiene un caché | 8 KB, unificado, MMU | 36 MIPS a 40 MHz | ||
ARM720T | Como ARM7TDMI, tiene un caché | 8 KB, unificado, MMU (con FCSE - extensión de cambio de contexto rápido ) | 60 MIPS a 59,8 MHz | ||
ARM740T | Como ARM7TDMI, tiene un caché | MPU | |||
ARM7EJ | ARMv5TEJ | ARM7EJ-S | Pipeline de 5 etapas, pulgar, Jazelle DBX, instrucciones DSP avanzadas | No | |
ARM8 | ARMv4 | ARM810 [4] [5] | Tubería de 5 etapas, predictor de rama estática, duplicación del ancho de banda de la memoria | 8 KB, unificado, MMU | 84 MIPS a 72 MHz 1,16 DMIPS/MHz |
ARM9 TDMI | ARMv4T | ARM9TDMI | Transportador de 5 etapas, Pulgar | No | |
ARM920T | Como ARM9TDMI, cachés | MMU de 16 KB/16 KB con FCSE ( extensión de cambio de contexto rápido ) [6] | 200 MIPS a 180 MHz | ||
ARM922T | Como ARM9TDMI, cachés | 8 KB/8 KB, MMU | |||
ARM940T | Como ARM9TDMI, cachés | MPU de 4 KB/4 KB | |||
ARM9E | ARMv5TE | ARM946E-S | Pulgar, DSP, cachés | Varios, memoria estrechamente acoplada (TCM), MPU | |
ARM966E-S | Pulgar, DSP | Sin caché y memoria TCM | |||
ARM968E-S | Como ARM966E-S | Sin caché y TCM | |||
ARMv5TEJ | ARM926EJ-S | Pulgar, Jazelle DBX, DSP | Varios, TCM, MMU | 220 MIPS a 200 MHz | |
ARMv5TE | BRAZO996HS | Procesador sin velocidad de reloj, el resto es igual que ARM966E-S | Sin caché, TCM, MPU | ||
ARM10E | ARMv5TE | ARM1020E | Tubería de 6 etapas, pulgar, DSP, (VFP) | MMU de 32 KB/32 KB | |
ARM1022E | Me gusta ARM1020E | 16 KB/16 KB, MMU | |||
ARMv5TEJ | ARM1026EJ-S | Pulgar, Jazelle DBX, DSP, (VFP) | Varios, MMU o MPU | ||
BRAZO11 | ARMv6 | BRAZO1136J(F)-S [7] | Tubería de 8 etapas, SIMD , pulgar, Jazelle DBX, (VFP), DSP | Varios, MMU | 740 a 532-665 MHz (SoC i.MX31), 400-528 MHz |
ARMv6T2 | ARM1156T2(F)-S | Canalización de 8 etapas, SIMD , Thumb-2, (VFP), DSP | Varios, MPU | ||
ARMv6Z | BRAZO1176JZ(F)-S | Como ARM1136EJ(F)-S | Varios, MMU + TrustZone | 965 DMIPS @ 772 MHz, hasta 2600 DMIPS con 4 procesadores [8] | |
ARMv6K | ARM11MPCore | Como ARM1136EJ(F)-S, SMP con 1-4 núcleos | Varios, MMU | ||
SecurCore | ARMv6-M | SC000 | 0.9DMIPS/MHz | ||
ARMv4T | SC100 | ||||
ARMv7-M | SC300 | 1,25 DMIPS/MHz | |||
Cortex-M | ARMv6-M | Corteza-M0 [9] | Perfil de microcontrolador, subconjunto Thumb + Thumb-2 (BL, MRS, MSR, ISB, DSB, DMB), [10] multiplicación de hardware, temporizador de sistema opcional y memoria de banda de bits | Caché opcional, sin TCM, sin MPU | 0,84 DMIPS/MHz |
Corteza-M0+ [11] | Microcontrolador, subconjunto de Thumb y Thumb-2 (BL, MRS, MSR, ISB, DSB, DMB), [10] multiplicación de hardware, temporizador de sistema opcional y memoria de banda de bits | Caché opcional, sin TCM, MPU de 8 regiones opcional | 0.93DMIPS/MHz | ||
Corteza-M1 [12] | Microcontrolador, subconjunto de Thumb y Thumb-2 (BL, MRS, MSR, ISB, DSB, DMB), [10] multiplicador de hardware, opción/banco SVC para puntero de pila, temporizador de sistema opcional, sin memoria de "bandas de bits" | Caché opcional, 0-1024 KB I-TCM, 0-1024 KB D-TCM, sin MPU | 136 DMIPS a 170 MHz [13] (0,8 DMIPS/MHz dependiente de FPGA) [14] | ||
ARMv7-M | Corteza-M3 [15] | Microcontrolador, Thumb / Thumb-2, multiplicación y división de hardware, memoria de banda de bits opcional | Caché opcional, sin TCM, MPU de 8 regiones opcional | 1,25 DMIPS/MHz | |
ARMv7E-M | Corteza-M4 [16] | Microcontrolador, Thumb / Thumb-2 / DSP / extensión FPv4 opcional para precisión simple, multiplicación y división de hardware, memoria de banda de bits opcional | Caché opcional, sin TCM, MPU de 8 regiones opcional | 1,25 DMIPS/MHz (1,27 con FPU FPv4) | |
ARMv7E-M | Corteza-M7 [17] | Microcontrolador, Thumb / Thumb-2 / DSP / FPU de precisión simple y doble opcional, multiplicación y división de hardware | 0-64 KB I-cache, 0-64 KB D-cache, 0-16 MB I-TCM, 0-16 MB D-TCM (todos con ECC opcional), MPU opcional de 8 o 16 regiones | 2,14 DMIPS/MHz | |
Línea base ARMv8-M | Corteza-M23 | Zona de confianza de ARM | 0.98DMIPS/MHz
2,5 CoreMark /MHz | ||
Línea principal ARMv8-M | Corteza-M33 | Zona de confianza de ARM | 1,5 DMIPS/MHz
3,86 marca de núcleo/MHz | ||
Cortex-R | ARMv7-R | Corteza-R4 [18] | Perfil en tiempo real, Thumb / Thumb-2 / DSP / VFPv3 FPU opcional, multiplicación de hardware y división opcional, paridad y ECC opcionales para buses internos, caché, TCM, canalización de 8 etapas, dos núcleos en modo lockstep con lógica de manejo de errores | 0-64 KB / 0-64 KB, 0-2 de 0-8 MB TCM, opcional 8 o 12 MPU | |
Cortex-R5 (MPCore) [19] | Perfil en tiempo real, Thumb/Thumb-2/DSP/FPU VFPv3 opcional, multiplicación de hardware y división opcional, paridad y ECC opcionales para buses internos, caché, TCM, canalización de 8 etapas, dos núcleos en modo lockstep con lógica de manejo de errores. Opcionalmente, dos núcleos pueden funcionar como independientes. Puerto periférico de baja latencia (LLPP), puerto de coherencia del acelerador (ACP) [20] | 0-64 KB / 0-64 KB, 0-2 de 0-8 MB TCM, opt. MPU en 12 o 16 | |||
Cortex-R7 (MPCore) [21] | Perfil en tiempo real, Thumb/Thumb-2/DSP/FPU VFPv3 opcional, multiplicación de hardware y división opcional, paridad y ECC opcionales para buses internos, caché, TCM, canalización de 11 etapas, dos núcleos en modo lockstep con lógica de manejo de errores. Kernels desordenados, con cambio de nombre de registro dinámico. Opcionalmente, dos núcleos pueden funcionar como independientes. Puerto periférico de baja latencia (LLPP), puerto de coherencia del acelerador (ACP) [20] | 0-64 KB / 0-64 KB, ? de 0-128 KB TCM, opt. MPU a los 16 | |||
Corteza-A | ARMv7-A | Corteza-A5 [22] | Perfil de aplicación, ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4-D16 FPU opcional / NEON / Jazelle RCT y DBX opcionales, 1-4 núcleos, MPCore opcional, SCU, unidad de control snoop, controlador de interrupción general (GIC), Puerto de coherencia del acelerador (ACP) | 4-64 KB / 4-64 KB L1, MMU + TrustZone | 1,57 DMIPS/MHz por núcleo |
Cortex-A7 MPCore [23] | Perfil de aplicación, ARM / Thumb / Thumb-2 / DSP / VFPv4-D16 FPU / NEON / Jazelle RCT y DBX / virtualización de hardware, ejecución en orden, superescalar, SMP para 1-4 núcleos, extensiones de direcciones físicas grandes (LPAE), Unidad de control de indagación (SCU), Controlador de interrupción general (GIC), Puerto de coherencia del acelerador (ACP). La arquitectura y el conjunto de extensiones son los mismos que Cortex-A15. 8-10 etapas en una tubería, consumo de energía reducido [24] | 32 KB/32 KB L1, 0-4 MB L2, MMU + TrustZone | 1,9 DMIPS/MHz por núcleo | ||
Corteza-A8 [25] | Perfil de aplicación, ARM / Thumb / Thumb-2 / VFPv3 FPU / NEON / Jazelle RCT y DAC, superescalar de 13 etapas | 16-32 KB / 16-32 KB L1, 0-1 MB L2 opcional ECC, MMU + TrustZone | hasta 2000 (2,0 DMIPS/MHz de 600 MHz a más de 1 GHz ) | ||
Cortex-A9 MPCore [26] | Perfil de aplicación, ARM / Thumb / Thumb-2 / DSP / VFPv3 FPU opcional / NEON / Jazelle RCT y DBX opcionales, ejecución fuera de orden con SMP especulativo, superescalar para 1-4 núcleos, indagación de la unidad de control (SCU), controlador de interrupción común (GIC), puerto de coherencia del acelerador (ACP). | 16-64 KB / 16-64 KB L1, 0-8 MB L2 opcional paridad, MMU + TrustZone | 2,5 DMIPS/MHz por núcleo, 10 000 DMIPS a 2 GHz en tecnología de proceso TSMC 40G (dos núcleos) | ||
Cortex-A12 [27] luego se fusionó con A17 | Perfil de aplicación, ARM / Thumb-2 / DSP / VFPv4 FPU / NEON / virtualización de hardware, ejecución especulativa fuera de orden, superescalar, SMP de 1-4 núcleos, extensiones de direcciones físicas grandes (LPAE), unidad de control snoop (SCU), interrupciones comunes del controlador (GIC), puerto de coherencia del acelerador (ACP). | 32-64 KB/32 KB L1, 256 KB-8 MB L2 | 3,0 DMIPS/MHz por núcleo | ||
Cortex-A15 MPCore [28] | Perfil de aplicación, ARM / Thumb / Thumb-2 / DSP / VFPv4 FPU / NEON / división de enteros / MAC (multiplicación y suma combinadas) / Jazelle RCT / virtualización de hardware, ejecución especulativa fuera de orden, superescalar, SMP para 1-4 núcleos, extensiones de direcciones físicas grandes (LPAE), unidad de control de indagación (SCU), controlador de interrupción general (GIC), puerto de coherencia del acelerador (ACP). Tubería de 15-24 etapas [24] | 32 KB de paridad/32 KB ECC L1, 0-4 MB L2 ECC, MMU + TrustZone | Al menos 3,5 DMIPS/MHz por núcleo (hasta 4,01 DMIPS/MHz según la implementación) [29] | ||
Cortex-A17MPCore | Perfil de aplicación, ARM / Thumb / Thumb-2 / DSP / VFPv4 FPU / NEON / división de enteros / MAC (multiplicación y suma combinadas) / Jazelle RCT / virtualización de hardware, ejecución especulativa fuera de orden, superescalar, SMP para 1-4 núcleos, extensiones de direcciones físicas grandes (LPAE), unidad de control de indagación (SCU), controlador de interrupción general (GIC), puerto de coherencia del acelerador (ACP). | MMU + Zona de Confianza | |||
Cortex-A50 | ARMv8-A | Corteza-A53 [30] | Perfil de aplicación, AArch32 y AArch64, SMP para 1-4 núcleos, Trustzone, NEON SIMD mejorado, VFPv4, virtualización de hardware, ejecución de hasta dos instrucciones por ciclo, ejecución de canalización en orden | 8-64 KB de paridad/8-64 KB ECC L1 por núcleo, 128 KB-2 MB L2 compartida, direcciones físicas de 40 bits | 2.3DMIPS/MHz |
Corteza-A57 [31] | Perfil de aplicación, AArch32 y AArch64, SMP de 1 a 4 núcleos, Trustzone, NEON SIMD mejorado, VFPv4, virtualización de hardware, bucle de instrucciones múltiples, ejecución fuera de orden profunda | 48 KB de doble paridad (DED) / 32 KB L1 con ECC por núcleo, 512 KB-2 MB compartidos L2, 44 bits phys. direcciones | Al menos 4,1 DMIPS/MHz por núcleo (hasta 4,76 DMIPS/MHz según la implementación) | ||
Corteza-A72 [32] | |||||
familia ARM | arquitectura BRAZO | Núcleo | Complementos | Cachés (I/D), MMU | MIPS típicos a MHz |
Desarrollado por terceros que poseían una licencia arquitectónica de ARM que permitía la implementación de instrucciones propietarias.
Familia | conjunto de comandos | microarquitectura | conjunto de extensión | I/D de caché), MMU | Típico Típico MIPS @ MHz |
---|---|---|---|---|---|
Brazo fuerte | ARMv4 | SA-110 | transportador de 5 etapas | 16 KB/16 KB, MMU | 100-206 MHz 1,0 DMIPS /MHz |
SA-1100 | Desarrollo SA-110 | 16 KB/8 KB, MMU | |||
faraday [33] | ARMv4 | FA510 | transportador de 6 etapas | Hasta 32 KB/32 KB de caché, MPU | 1,26 DMIPS/MHz 100-200 MHz |
FA526 | Hasta 32 KB/32 KB de caché, MMU | 1,26 MIPS/MHz 166-300 MHz | |||
FA626 | transportador de 8 etapas | 32 KB/32 KB de caché, MMU | 1.35DMIPS/MHz 500MHz | ||
ARMv5TE | FA606TE | transportador de 5 etapas | Sin caché, sin MMU | 1.22DMIPS/MHz 200MHz | |
FA626TE | transportador de 8 etapas | 32 KB/32 KB de caché, MMU | 1,43 MIPS/MHz 800 MHz | ||
FMP626TE | Tubería de 8 etapas, SMP | 1,43 MIPS/MHz 500 MHz | |||
FA726TE | Tubería de 13 etapas, ejecutando dos instrucciones por reloj | 2.4DMIPS/MHz 1000MHz | |||
Xescala | ARMv5TE | Xescala | Tubería de 7 etapas, pulgar, DSP | MMU de 32 KB/32 KB | 133-400 MHz |
bulverde | Opcional: Extensiones W MMX , Wireless SpeedStep | MMU de 32 KB/32 KB | 312-624 MHz | ||
Monahan [34] | Opcional: extensión WMMX2 | 32 KB/32 KB (L1), caché L2 opcional hasta 512 KB, MMU | Hasta 1,25 GHz | ||
Marvell Sheeva | ARMv5 | Feroceon | 5-8 etapas de tubería, ejecutando una instrucción por ciclo | 16 KB/16 KB, MMU | 600-2000 MHz |
Jolteon | 5-8 etapas de canalización, ejecutando dos instrucciones por ciclo | MMU de 32 KB/32 KB | |||
PJ1 (mohicano) | 5-8 etapas de tubería, ejecutando dos instrucciones por ciclo, WMMX2 | MMU de 32 KB/32 KB | 1,46 DMIPS /MHz 1,06 GHz | ||
ARMv6 / ARMv7-A | PJ4 | 6-9 etapas de tubería, ejecutando dos instrucciones por ciclo, WMMX2, SMP | MMU de 32 KB/32 KB | 2,41 DMIPS/MHz 1,6 GHz | |
boca de dragón | ARMv7-A | Escorpión [35] | 1 o 2 núcleos. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv3 FPU / NEON (128 bits de ancho) | 256 KB L2 por núcleo | 2,1 DMIPS/MHz por núcleo |
[ 35] | 1, 2 o 4 núcleos. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4 FPU / NEON (128 bits de ancho) | 4 KB/4 KB L0, 16 KB/16 KB L1, 512 KB L2 por núcleo | 3,3 DMIPS/MHz por núcleo | ||
Manzana A6 , Manzana A6X |
ARMv7-A | rápido [36] | 2 núcleos. BRAZO / Pulgar / Pulgar-2 / DSP / SIMD / VFPv4 FPU / NEON | L1: 32 KB/32 KB, L2: 1 MB | 3,5 DMIPS/MHz por núcleo |
manzana a7 | ARMv8-A | Ciclón | 2 núcleos. BRAZO / Pulgar / Pulgar-2 / DSP / SIMD / VFPv4 FPU / NEON / TrustZone / AArch64 | L1: 64 KB / 64 KB, L2: 1 MB | 1,3 GHz |
manzana a8 | ARMv8-A | Ciclón | 2 núcleos. BRAZO / Pulgar / Pulgar-2 / DSP / SIMD / VFPv4 FPU / NEON / TrustZone / AArch64 | L1: (n/a);KB, L2: (n/a);MB | 1,4 GHz |
Gen X | ARMv8-A | Gen X | 64 bits, ejecuta hasta 4 instrucciones por ciclo, SMP, 64 núcleos [37] | caché, MMU, virtualización | 3 GHz |
denver | ARMv8-A | denver | 64 bits, 2 núcleos SMP, decodificador de hardware de hasta 2 instrucciones por ciclo o recompilación dinámica de software para instrucciones amplias | 128 KB I / 64 KB D | hasta 2,5 GHz |
TruenoX | ARMv8-A | TruenoX | 64 bits, 2 modelos: 8-16 o 24-48 núcleos (se pueden combinar 2 chips) | Hasta 2,5 GHz |