Arquitectura ARM

ARM (Advance RISC Machine) es una arquitectura de procesador basado en RISC que se caracteriza por ser extremadamente eficiente en el uso de energía. Posee varias familias de procesadores y controladores adaptados a un uso específico cada una.

“RISC” son las siglas de; “Reduced Instruction Set Computing” el cual es una filosofía de diseño de microprocesadores o microcontroladores en donde se utiliza un conjunto de instrucciones de tamaño fijo y reducido (en cantidad). Esto quiere decir que el procesador o controlador posee instruciones simples que se optimizan para trabajar en conjunto y realizar operaciones más complejas.

ARM Ltd Holdings (la empresa propietaria) es la propietaria de esta arquitectura, y licencia los núcleos que crean a los fabricantes que deseen usarlos.

Generalmente las instrucciones se dividen en dos grandes grupos; carga/descarga de datos en/desde RAM y modificación (y posterior almacenamiento) de datos en registros.

Al conjunto de instrucciones que soporta el procesador se le llama; ISA (Instruction Set Available).

Aunque un CPU tenga un determinado conjunto ISA, puede ser que otro CPU de la misma arquitectura y fabricante pero de distinta familia tenga un ISA con diferencias mínimas o más notables (como instrucciones adicionales o la falta de alguna específica). Por eso siempre se recomienda utilizar el set básico para garantizar la mayor compatibilidad posible, igualmente cuando ARM Ltd Holdings licencia a un fabricante un determinado núcleo de CPU, el mismo indica que se debe mantener la compatibilidad de la ISA en su conjunto.

La arquitectura ARM posee varias familias, especialmente adaptadas a determinados requerimientos;

  • Sintaxis de la tabla;

    • Lo que se encuentra entre “[]” son variables.
    • Lo que se encuentra entre paréntesis de una versión de arquitectura son los núcleos y sus modelos.
FamiliaPropósitoVersión de arquitecturaArquitectura de bits
Cortex M[0-85]MicrocontroladorARMv6-M (M0, M0+, M1),
ARMv7-M (M3),
ARMv7E-M (M4, M7),
ARMv8-M (M23, M33),
ARMv8.1-M (M55, M85)
32
Cortex R[4-82]Real TimeARMv7-R (R4, R5, R7, R8), ARMv8-R (R52, R82)32 (R4, R5, R7, R8, R52) y 64 (R82)
Cortex A[5-720]Microprocesador generalARMv7-A (A5, A7, A8, A9, A12, A15, A17),
ARMv8-A (A32, A34, A35, A53, A57, A72, A73),
ARMv8.2-A (A55, A75, A76, A77, A78, A65, A65AE),
ARMv9.0-A (A510, A710, A715),
ARMv9.2-A (A520, A720)
32 (A5, A7, A8, A9, A12, A15, A17, A32, A34, A35, A53, A57, A72, A73, A55, A75, A76, A77, A78)
y 64 (A5, A7, A8, A9, A12, A15, A17, A32, A34, A35, A53, A57, A65, A65AEA72, A73, A55, A75, A76, A77, A78, A510, A710, A715, A520, A720)
Cortex X[1-4]Microprocesador de servidorARMv8.2-A (X1),
ARMv9.0-A (X2, X3),
ARMv9.2-A (X4)
32 (X1) y 64 (X1, X2, X3, X4)
Cortex NeoverseMicroprocesador de datacenter, supercomputadoras y edgeARMv8.2-A (N1), ARMv8.2-A (E1), ARMv8.4-A (V1), ARM9.0-A (E2, N2, V2)32 (N1) y
64 (N1, N2, E1, E2, V1, V2)

Algunos fabricantes licenciados como; Apple y NVIDIA, usan núcleos muy personalizados por ellos, por lo que a veces es muy dificil enmarcarlos en alguna familia.

System on a chip (SOC)

Esta arquitctura (ARM y también RISC-V) tiene una característica importante; permite unir diferentes núcleos (aunque sean de diferentes familias, aunque no es lo común) en un mismo chip, según necesidades del fabricante.

Adicionalmente para tener los menores costos operativos se suele integrar otros componentes en conjunto con los núcleos para dar la mejor performance. Es muy común unir al conjunto la memoria RAM para disminuir el consumo eléctrico y la latencia entre ambos (CPU y RAM). Pero esto dependerá del fabricante, ya que algunos deciden unir una GPU, un modem 4G/5G, el almacenamiento, etc mientras que otros solo crean la CPU en si (como los procesadores Ampere).

Por lo tanto los sistemas en un chip (SOC en inglés) pueden integrar una multitud de componentes.

Al blueprint (el plano) de un SOC se le conoce como “die”;

DIE del Apple M1