Articulo de referencia

ARM Cortex-M

Circuitos integrados de microcontroladores ARM Cortex-M0 y Cortex-M3 de NXP y Silicon Labs ( Energy Micro ). Chip derivado de un circuito integrado STM32 F100C4T6B. Microcontrol...

Circuitos integrados de microcontroladores ARM Cortex-M0 y Cortex-M3 de NXP y Silicon Labs ( Energy Micro ).
Chip derivado de un circuito integrado STM32 F100C4T6B. Microcontrolador ARM Cortex-M3 de 24 MHz con 16 KB de memoria flash y 4 KB de RAM. Fabricado por STMicroelectronics .   

El ARM Cortex-M es un grupo de núcleos de procesador ARM RISC de 32 bits con licencia de ARM Limited . Estos núcleos están optimizados para circuitos integrados de bajo costo y eficiencia energética, que se han incorporado en decenas de miles de millones de dispositivos de consumo. [ 1 ] Aunque suelen ser el componente principal de los chips de microcontroladores , a veces también se incorporan dentro de otros tipos de chips. La familia Cortex-M consta de Cortex-M0, [ 2 ] Cortex-M0+, [ 3 ] Cortex-M1, [ 4 ] Cortex-M3, [ 5 ] Cortex-M4, [ 6 ] Cortex-M7, [ 7 ] Cortex-M23, [ 8 ] Cortex-M33, [ 9 ] Cortex-M35P, [ 10 ] Cortex-M52, [ 11 ] Cortex-M55, [ 12 ] Cortex-M85. [ 13 ] Hay una opción de unidad de punto flotante (FPU) disponible para los núcleos Cortex-M4 / M7 / M33 / M35P / M52 / M55 / M85, y cuando se incluyen en el silicio, estos núcleos a veces se conocen como "Cortex-MxF", donde "x" es la variante del núcleo.

Descripción general

La familia ARM Cortex-M son núcleos de microprocesadores ARM diseñados para su uso en microcontroladores , ASIC , ASSP , FPGA y SoC . Los núcleos Cortex-M se utilizan comúnmente como chips de microcontrolador dedicados, pero también se encuentran "ocultos" dentro de los chips SoC como controladores de administración de energía, controladores de E/S, controladores de sistema, controladores de pantalla táctil, controladores de baterías inteligentes y controladores de sensores.

La principal diferencia con los núcleos Cortex-A es que los núcleos Cortex-M no tienen unidad de gestión de memoria (MMU) para la memoria virtual , considerada esencial para los sistemas operativos "completos" . En cambio, los programas Cortex-M se ejecutan directamente sobre el hardware o en alguno de los muchos sistemas operativos en tiempo real que admiten un Cortex-M .

Si bien los microcontroladores de 8 bits fueron muy populares en el pasado, Cortex-M ha ido ganando terreno en el mercado de 8 bits a medida que los precios de los chips Cortex-M de gama baja han disminuido. Los Cortex-M se han convertido en una alternativa popular a los chips de 8 bits en aplicaciones que se benefician de las operaciones matemáticas de 32 bits, y también reemplazan a los núcleos ARM más antiguos, como ARM7 y ARM9 .

En particular, el controlador de nivelación de desgaste integrado en la mayoría de las tarjetas SD o unidades flash es un microcontrolador 8051 (de 8 bits) o una CPU ARM. [ 14 ]

Licencia

ARM Limited no fabrica ni vende dispositivos de CPU basados ​​en sus propios diseños, sino que licencia la arquitectura del procesador a terceros interesados. ARM ofrece diversas condiciones de licencia, con diferentes costes y prestaciones. A todos los licenciatarios, ARM les proporciona una descripción de hardware integrable del núcleo ARM, así como un conjunto completo de herramientas de desarrollo de software y el derecho a vender chips fabricados que contengan la CPU ARM.

Personalización de silicio

Los fabricantes de dispositivos integrados (IDM) reciben la propiedad intelectual del procesador ARM como RTL sintetizable (escrito en Verilog ). De esta forma, pueden realizar optimizaciones y extensiones a nivel arquitectónico. Esto permite al fabricante alcanzar objetivos de diseño personalizados, como mayor velocidad de reloj, consumo de energía muy bajo, extensiones del conjunto de instrucciones (incluida la coma flotante), optimizaciones de tamaño, soporte para depuración, etc. Para determinar qué componentes se han incluido en un chip de CPU ARM específico, consulte la hoja de datos del fabricante y la documentación relacionada.

Algunas de las opciones de silicio para los núcleos Cortex-M son:

  • Temporizador SysTick: Un temporizador del sistema de 24 bits que extiende la funcionalidad tanto del procesador como del controlador de interrupciones vectorizadas anidadas (NVIC). Cuando está presente, también proporciona una interrupción SysTick de prioridad configurable adicional. [ 15 ] [ 16 ] [ 17 ] Aunque el temporizador SysTick es opcional para el M0/M0+/M1/M23, es extremadamente raro encontrar un microcontrolador Cortex-M sin él. Si un microcontrolador Cortex-M33/M35P/M52/M55/M85 tiene la opción de extensión de seguridad, entonces opcionalmente puede tener dos SysTicks (uno seguro, uno no seguro).
  • Bit-Band: Asigna una palabra completa de memoria a un solo bit en la región bit-band. Por ejemplo, escribir en una palabra alias establecerá o borrará el bit correspondiente en la región bit-band. Esto permite que cada bit individual en la región bit-band sea directamente accesible desde una dirección alineada a palabra. En particular, los bits individuales se pueden establecer, borrar o alternar desde C/C++ sin realizar una secuencia de instrucciones de lectura-modificación-escritura. [ 15 ] [ 16 ] [ 17 ] Aunque el bit-band es opcional, es menos común encontrar un microcontrolador Cortex-M3 y Cortex-M4 sin él. Algunos microcontroladores Cortex-M0 y Cortex-M0+ tienen bit-band.
  • Unidad de protección de memoria (MPU): Proporciona soporte para proteger regiones de memoria mediante la aplicación de reglas de privilegio y acceso. Admite hasta dieciséis regiones diferentes, cada una de las cuales puede dividirse en subregiones de igual tamaño. [ 15 ] [ 16 ] [ 17 ]
  • Memoria de acoplamiento estrecho (TCM): Memoria SRAM de baja latencia (sin estado de espera ) que se puede usar para almacenar la pila de llamadas , las estructuras de control del RTOS, las estructuras de datos de interrupción, el código del controlador de interrupciones y el código crítico para la velocidad. Aparte de la caché de la CPU , la TCM es la memoria más rápida en un microcontrolador ARM Cortex-M. Dado que la TCM no se almacena en caché y es accesible a la misma velocidad que el procesador y la caché, podría describirse conceptualmente como una "caché direccionable". Hay una ITCM (TCM de instrucciones) y una DTCM (TCM de datos) para permitir que un procesador con arquitectura Harvard lea de ambas simultáneamente. La DTCM no puede contener instrucciones, pero la ITCM sí puede contener datos. Dado que la TCM está estrechamente conectada al núcleo del procesador, es posible que los motores DMA no puedan acceder a ella en algunas implementaciones.
  • Nota: La mayoría de los chips Cortex-M3 y M4 tienen banda de bits y MPU. La opción de banda de bits se puede agregar al M0/M0+ utilizando el kit de diseño de sistema Cortex-M. [ 29 ]
  • Nota: El software debe validar la existencia de cada característica antes de intentar utilizarla. [ 17 ]
  • Nota: La información pública disponible sobre el Cortex-M35P es limitada hasta que se publique su Manual de Referencia Técnica .

Opciones adicionales de silicio: [ 15 ] [ 16 ]

  • Orden de bytes de los datos: Little-endian o big-endian. A diferencia de los núcleos ARM tradicionales, el Cortex-M está configurado de forma permanente en el silicio con una de estas dos opciones.
  • Interrupciones: 1 a 32 (M0/M0+/M1), 1 a 240 (M3/M4/M7/M23), 1 a 480 (M33/M35P/M52/M55/M85).
  • Controlador de interrupción de activación: Opcional.
  • Registro de desplazamiento de tabla vectorial: Opcional. (No disponible para M0).
  • Ancho de búsqueda de instrucciones: solo 16 bits, o mayormente 32 bits.
  • Soporte de usuario/privilegios: Opcional.
  • Reiniciar todos los registros: Opcional.
  • Puerto de E/S de ciclo único: Opcional. (M0+/M23).
  • Puerto de acceso de depuración (DAP): Ninguno, SWD , JTAG y SWD. (opcional para todos los núcleos Cortex-M)
  • Desactivar la función de depuración: Opcional.
  • Número de comparadores de punto de observación: de 0 a 2 (M0/M0+/M1), de 0 a 4 (M3/M4/M7/M23/M33/M35P/M52/M55/M85).
  • Número de comparadores de puntos de ruptura: de 0 a 4 (M0/M0+/M1/M23), de 0 a 8 (M3/M4/M7/M33/M35P/M52/M55/M85).

Conjuntos de instrucciones

El Cortex-M0 / M0+ / M1 implementa la arquitectura ARMv6-M , [ 15 ] el Cortex-M3 implementa la arquitectura ARMv7-M , [ 16 ] el Cortex-M4 / Cortex-M7 implementa la arquitectura ARMv7E-M , [ 16 ] el Cortex-M23 / M33 / M35P implementa la arquitectura ARMv8-M , [ 31 ] y el Cortex-M52 / M55 / M85 implementa la arquitectura ARMv8.1-M . [ 31 ] Las arquitecturas son compatibles con instrucciones binarias ascendentes desde ARMv6-M a ARMv7-M a ARMv7E-M. Las instrucciones binarias disponibles para el Cortex-M0 / Cortex-M0+ / Cortex-M1 pueden ejecutarse sin modificación en el Cortex-M3 / Cortex-M4 / Cortex-M7. Las instrucciones binarias disponibles para el Cortex-M3 pueden ejecutarse sin modificaciones en el Cortex-M4 / Cortex-M7 / Cortex-M33 / Cortex-M35P. [ 15 ] [ 16 ] Solo se admiten los conjuntos de instrucciones Thumb-1 y Thumb-2 en las arquitecturas Cortex-M; el conjunto de instrucciones ARM de 32 bits heredado no es compatible.

Todos los núcleos Cortex-M implementan un subconjunto común de instrucciones que consiste principalmente en Thumb-1, algunas Thumb-2, incluyendo una multiplicación de resultados de 32 bits. Los procesadores Cortex-M0, Cortex-M0+, Cortex-M1 y Cortex-M23 fueron diseñados para crear el chip de silicio más pequeño, por lo que cuentan con la menor cantidad de instrucciones de la familia Cortex-M.

El Cortex-M0 / M0+ / M1 incluye instrucciones Thumb-1, excepto las nuevas instrucciones (CBZ, CBNZ, IT) que se agregaron en la arquitectura ARMv7-M. El Cortex-M0 / M0+ / M1 incluye un subconjunto menor de instrucciones Thumb-2 (BL, DMB, DSB, ISB, MRS, MSR). [ 15 ] El Cortex-M3 / M4 / M7 / M33 / M35P tiene todas las instrucciones Thumb-1 y Thumb-2 básicas. El Cortex-M3 agrega tres instrucciones Thumb-1, todas las instrucciones Thumb-2, división entera por hardware e instrucciones aritméticas de saturación . El Cortex-M4 agrega instrucciones DSP y una unidad de punto flotante de precisión simple opcional (VFPv4-SP). El Cortex-M7 agrega una FPU de doble precisión opcional (VFPv5). [ 23 ] [ 16 ] Los Cortex-M23 / M33 / M35P / M52 / M55 / M85 añaden instrucciones TrustZone .

  • Nota: El recuento de ciclos de latencia de interrupción presupone que: 1) la pila se encuentra en la RAM en estado de espera cero, 2) no hay otra función de interrupción en ejecución, y 3) la opción de extensión de seguridad no existe, ya que añade ciclos adicionales. Los núcleos Cortex-M con arquitectura de computadora Harvard tienen una latencia de interrupción menor que los núcleos Cortex-M con arquitectura de computadora Von Neumann.
  • Nota: La serie Cortex-M incluye tres nuevas instrucciones Thumb-1 de 16 bits para el modo de suspensión: SEV, WFE y WFI.
  • Nota: El Cortex-M0 / M0+ / M1 no incluye estas instrucciones Thumb-1 de 16 bits : CBZ, CBNZ, IT. [ 15 ] [ 16 ]
  • Nota: Los procesadores Cortex-M0 / M0+ / M1 solo incluyen estas instrucciones Thumb-2 de 32 bits : BL, DMB, DSB, ISB, MRS, MSR. [ 15 ] [ 16 ]
  • Nota: El Cortex-M0 / M0+ / M1 / ​​M23 solo tiene instrucciones de multiplicación de 32 bits con un resultado de 32 bits inferiores (32  bits × 32  bits = 32 bits inferiores  ), mientras que el Cortex-M3 / M4 / M7 / M33 / M35P incluye instrucciones de multiplicación adicionales de 32 bits con resultados de 64 bits (32  bits × 32  bits = 64  bits). El Cortex-M4 / M7 (opcionalmente M33 / M35P) incluye instrucciones DSP para multiplicaciones de (16  bits × 16  bits = 32  bits), (32  bits × 16  bits = 32 bits superiores  ), (32  bits × 32  bits = 32 bits superiores  ). [ 15 ] [ 16 ]
  • Nota: El número de ciclos necesarios para completar las instrucciones de multiplicación y división varía según el diseño del núcleo ARM Cortex-M. Algunos núcleos ofrecen la opción de elegir entre alta velocidad o tamaño reducido (baja velocidad), lo que permite utilizar menos silicio a costa de un mayor número de ciclos. Una interrupción durante la ejecución de una instrucción de división o de una instrucción de multiplicación iterativa lenta provocará que el procesador abandone la instrucción y la reinicie una vez que finalice la interrupción.
    • Instrucciones de multiplicación "resultado de 32 bits" : Cortex-M0/M0+/M23 es una opción de silicio de 1 o 32 ciclos, Cortex-M1 es una opción de silicio de 3 o 33 ciclos, Cortex-M3/M4/M7/M33/M35P es de 1 ciclo. 
    • Instrucciones de multiplicación "resultado de 64 bits" : Cortex-M3 tarda de 3 a 5 ciclos (dependiendo de los valores), Cortex-M4/M7/M33/M35P tarda 1 ciclo. 
    • Instrucciones de división : Cortex-M3/M4 es de 2 a 12 ciclos (dependiendo de los valores), Cortex-M7 es de 3 a 20 ciclos (dependiendo de los valores), Cortex-M23 es una opción de 17 o 34 ciclos, Cortex-M33 es de 2 a 11 ciclos (dependiendo de los valores), Cortex-M35P está por determinar. 
  • Nota: Algunos núcleos Cortex-M tienen opciones de silicio para varios tipos de unidades de punto flotante ( FPU ). El Cortex-M55/M85 tiene una opción para precisión media ( HP ), el Cortex-M4/M7/M33/M35P/M52/M55/M85 tiene una opción para precisión simple ( SP ), y el Cortex-M7/M52/M55/M85 tiene una opción para precisión doble ( DP ). Cuando se incluye una FPU, el núcleo a veces se denomina "Cortex-MxF", donde "x" es la variante del núcleo, como Cortex- M4F . [ 15 ] [ 16 ]
  • Nota: MOVW es un alias que significa instrucción MOV "ancha" de 32 bits.
  • Nota: BW es una bifurcación incondicional de larga distancia (similar en codificación, operación y rango a BL, menos la configuración del registro LR).
  • Nota: Para Cortex-M1, existen las instrucciones WFE / WFI / SEV, pero se ejecutan como una instrucción NOP.
  • Nota: Las instrucciones FPU de precisión media (HP) son válidas en el Cortex-M52 / M55 / M85 solo cuando la opción HP FPU está presente en el chip.
  • Nota: Las instrucciones FPU de precisión simple (SP) son válidas en los procesadores Cortex-M4 / M7 / M33 / M35P / M52 / M55 / M85 solo cuando la opción SP FPU está presente en el chip.
  • Nota: Las instrucciones FPU de doble precisión (DP) son válidas en los procesadores Cortex-M7 / M52 / M55 / M85 solo cuando la opción DP FPU está presente en el chip.

Desuso

La arquitectura ARM para la serie ARM Cortex-M eliminó algunas características de los núcleos heredados más antiguos: [ 15 ] [ 16 ]

Las capacidades del conjunto de instrucciones ARM de 32 bits se duplican de muchas maneras en los conjuntos de instrucciones Thumb-1 y Thumb-2, pero algunas características de ARM no tienen una característica similar:

  • Las instrucciones SWP y SWPB (intercambio) de ARM no tienen una característica similar en Cortex-M.

El conjunto de instrucciones Thumb-1 de 16 bits ha evolucionado con el tiempo desde su lanzamiento inicial en los núcleos ARM7T heredados con la arquitectura ARMv4T. Se añadieron nuevas instrucciones Thumb-1 con el lanzamiento de cada arquitectura ARMv5/ARMv6/ARMv6T2 heredada. Algunas instrucciones Thumb-1 de 16 bits se eliminaron de los núcleos Cortex-M:

  • La instrucción "BLX <inmediato>" ya no existe porque se utilizaba para cambiar del conjunto de instrucciones Thumb-1 al conjunto de instrucciones ARM. La instrucción "BLX <registro>" todavía está disponible en el Cortex-M.
  • SETEND no existe porque ya no se admite el cambio sobre la marcha del modo de orden de bytes de los datos.
  • Las instrucciones del coprocesador no eran compatibles con los núcleos Cortex-M hasta que se reintrodujo la opción de silicio en "ARMv8-M Mainline" para los núcleos ARM Cortex-M33/M35P.
  • La instrucción SWI pasó a llamarse SVC, aunque su codificación binaria es la misma. Sin embargo, el código del controlador SVC difiere del código del controlador SWI debido a cambios en los modelos de excepciones.

Corteza-M0

Botón Amazon Dash Somat: CYBL10563-68FNXI
nRF51822

El núcleo Cortex-M0 está optimizado para tamaños de chips de silicio pequeños y su uso en chips de menor precio. [ 2 ]

Las características clave del núcleo Cortex-M0 son: [ 18 ]

  • Arquitectura ARMv6-M [ 15 ]
  • Tubería de 3 etapas
  • Conjuntos de instrucciones:
    • Pulgar-1 (la mayoría), faltan CBZ, CBNZ, IT
    • Pulgar-2 (algunos), solo BL, DMB, DSB, ISB, MRS, MSR
    • Multiplicación de un entero de hardware de 32 bits con un resultado de 32 bits.
  • De 1 a 32 interrupciones , más NMI

Opciones de silicio:

  • Velocidad de multiplicación de enteros por hardware: 1 o 32 ciclos.

Papas fritas

Los siguientes microcontroladores se basan en el núcleo Cortex-M0:

Los siguientes chips tienen un Cortex-M0 como núcleo secundario:

Corteza-M0+

Placa NXP ( Freescale ) FRDM-KL25Z con KL25Z128VLK (Kinetis L)
Placa NXP LPC800-MAX con LPC812

El Cortex-M0+ es un superconjunto optimizado del Cortex-M0. El Cortex-M0+ tiene compatibilidad total con el conjunto de instrucciones del Cortex-M0, lo que permite el uso del mismo compilador y herramientas de depuración. La arquitectura de pipeline del Cortex-M0+ se redujo de 3 a 2 etapas, lo que disminuye el consumo de energía y aumenta el rendimiento (mayor IPC promedio debido a que las bifurcaciones requieren un ciclo menos). Además de las funciones de depuración del Cortex-M0 existente, se puede agregar al Cortex-M0+ una opción de silicio llamada Micro Trace Buffer (MTB), que proporciona un búfer de rastreo de instrucciones simple. El Cortex-M0+ también recibió características del Cortex-M3 y del Cortex-M4, que se pueden agregar como opciones de silicio, como la unidad de protección de memoria (MPU) y la reubicación de la tabla de vectores. [ 19 ]

Las características clave del núcleo Cortex-M0+ son: [ 19 ]

  • Arquitectura ARMv6-M [ 15 ]
  • Pipeline de 2 etapas (una etapa menos que Cortex-M0)
  • Conjuntos de instrucciones: (igual que Cortex-M0)
    • Pulgar-1 (la mayoría), faltan CBZ, CBNZ, IT
    • Pulgar-2 (algunos), solo BL, DMB, DSB, ISB, MRS, MSR
    • Multiplicación de un entero de hardware de 32 bits con un resultado de 32 bits.
  • De 1 a 32 interrupciones , más NMI

Opciones de silicio:

  • Velocidad de multiplicación de enteros por hardware: 1 o 32 ciclos
  • Unidad de protección de memoria (MPU) de 8 regiones (igual que M3 y M4)
  • Reubicación de la tabla de vectores (igual que M3, M4)
  • Puerto de E/S de ciclo único (disponible en M0+/M23)
  • Tampón de microtrazas (MTB) (disponible en M0+/M23/M33/M35P)

Papas fritas

Los siguientes microcontroladores se basan en el núcleo Cortex-M0+:

Los siguientes chips tienen un Cortex-M0+ como núcleo secundario:

  • Cypress PSoC 6200 (un Cortex-M4F + un Cortex-M0+)
  • ST WB (un Cortex-M4F + un Cortex-M0+)

Los microcontroladores ARM más pequeños son del tipo Cortex-M0+ (a fecha de 2014, el más pequeño, de 1,6  mm x 2  mm en un encapsulado a escala de chip, es el Kinetis KL03). [ 33 ]

El 21 de junio de 2018, investigadores de la Universidad de Michigan anunciaron en el Simposio de 2018 sobre Tecnología y Circuitos VLSI el "ordenador más pequeño del mundo", o dispositivo informático , basado en el ARM Cortex-M0+ (e incluyendo RAM y transmisores y receptores inalámbricos basados ​​en energía fotovoltaica ) , con el artículo "Un sistema de sensor inalámbrico y sin batería de 0,04 mm³ y 16 nW con procesador Cortex-M0+ integrado y comunicación óptica para la medición de la temperatura celular". El dispositivo tiene una décima parte del tamaño del ordenador que IBM había anunciado meses atrás, en marzo de 2018, que ostentaba el récord mundial y que es más pequeño que un grano de sal.  

Corteza-M1

El Cortex-M1 es un núcleo optimizado especialmente diseñado para ser cargado en chips FPGA . [ 4 ]

Las características clave del núcleo Cortex-M1 son: [ 20 ]

  • Arquitectura ARMv6-M [ 15 ]
  • Tubería de 3 etapas .
  • Conjuntos de instrucciones:
    • Pulgar-1 (la mayoría), faltan CBZ, CBNZ, IT.
    • Pulgar-2 (algunos), solo BL, DMB, DSB, ISB, MRS, MSR.
    • Multiplicación de un entero de hardware de 32 bits por un resultado de 32 bits.
  • De 1 a 32 interrupciones , más NMI .

Opciones de silicio:

  • Velocidad de multiplicación de enteros por hardware: 3 o 33 ciclos.
  • Memoria de acoplamiento estrecho (TCM) opcional: de 0 a 1  MB de TCM de instrucciones, de 0 a 1  MB de TCM de datos, cada una con ECC opcional.
  • Interrupciones externas: 0, 1, 8, 16, 32.
  • Depuración: ninguna, reducida, completa.
  • Orden de bytes de los datos: little-endian o BE-8 big-endian.
  • Extensión del sistema operativo: presente o ausente.

Papas fritas

Los siguientes proveedores admiten el Cortex-M1 como núcleos blandos en sus chips FPGA:

Corteza-M3

Placa Arduino Due con microcontrolador Atmel ATSAM3X8E ( núcleo ARM Cortex-M3 )
Placa de desarrollo NXP LPCXpresso con LPC1343

Las características clave del núcleo Cortex-M3 son: [ 21 ] [ 36 ]

  • Arquitectura ARMv7-M [ 16 ]
  • Pipeline de 3 etapas con especulación de ramificaciones .
  • Conjuntos de instrucciones:
    • Pulgar-1 (completo).
    • Pulgar-2 (completo).
    • Multiplicación de enteros por hardware de 32 bits con un resultado de 32 o 64 bits, con o sin signo, sumando o restando después de la multiplicación. La multiplicación de 32 bits requiere 1 ciclo, pero la multiplicación de 64 bits y las instrucciones MAC requieren ciclos adicionales.
    • División entera por hardware de 32 bits (2–12 ciclos).
    • soporte aritmético de saturación .
  • De 1 a 240 interrupciones , más NMI .
  • Latencia de interrupción de 12 ciclos.
  • Modos de suspensión integrados.

Opciones de silicio:

  • Unidad de protección de memoria (MPU) opcional: 0 u 8 regiones.

Papas fritas

Los siguientes microcontroladores se basan en el núcleo Cortex-M3:

Resumen AIR1 E205: MAX32550
MicroTik RB260GS r2: STM32F107RBT6

Los siguientes chips tienen un Cortex-M3 como núcleo secundario:

Los siguientes FPGA incluyen un núcleo Cortex-M3:

Los siguientes proveedores admiten el Cortex-M3 como núcleos blandos en sus chips FPGA:

  • Altera Cyclone-II, Cyclone-III, Stratix-II, Stratix-III
  • Xilinx Spartan-3, Virtex-2, Virtex-3, Virtex-4, Artix-7 [ 38 ]

Corteza-M4

Placa Wonder Gecko STK de Silicon Labs ( Energy Micro ) con EFM32 WG990
Placa de lanzamiento TI Stellaris con LM4F120

Conceptualmente, el Cortex-M4 es un Cortex-M3 con instrucciones DSP y una unidad de punto flotante (FPU) opcional. Un núcleo con FPU se conoce como Cortex-M4F.

Las características clave del núcleo Cortex-M4 son: [ 22 ]

  • Arquitectura ARMv7E-M [ 16 ]
  • Pipeline de 3 etapas con especulación de ramificaciones .
  • Conjuntos de instrucciones:
    • Pulgar-1 (completo).
    • Pulgar-2 (completo).
    • Multiplicación de enteros por hardware de 32 bits con un resultado de 32 o 64 bits, con o sin signo, sumando o restando después de la multiplicación. La multiplicación y la operación MAC de 32 bits requieren 1 ciclo.
    • División entera por hardware de 32 bits (2–12 ciclos).
    • Soporte para aritmética de saturación .
    • Extensión DSP: MAC de 16/32 bits de ciclo único , MAC dual de 16 bits de ciclo único, aritmética SIMD de 8/16 bits .
  • De 1 a 240 interrupciones , más NMI .
  • Latencia de interrupción de 12 ciclos.
  • Modos de suspensión integrados.

Opciones de silicio:

  • Unidad de punto flotante (FPU) opcional: solo precisión simple, compatible con IEEE-754 . Se denomina extensión FPv4-SP.
  • Unidad de protección de memoria (MPU) opcional: 0 u 8 regiones.

Papas fritas

Los siguientes microcontroladores se basan en el núcleo Cortex-M4:

Los siguientes microcontroladores se basan en el núcleo Cortex-M4F (M4 + FPU ):

nRF52833 en una placa Micro Bit v2
STM32F407IGH6

Los siguientes chips tienen un núcleo secundario Cortex-M4 o M4F:

Corteza-M7

Placa Arduino GIGA R1 WiFi con microcontrolador STM32H747XIH6 (doble núcleo ARM Cortex-M7 + ARM Cortex-M4)
Game & Watch: Super Mario Bros. : STM32H7B0VBT6

El Cortex-M7 es un núcleo de alto rendimiento con casi el doble de eficiencia energética que el Cortex-M4 anterior. [ 7 ] Cuenta con una arquitectura de pipeline superscalar de 6 etapas con predicción de bifurcaciones y una unidad de punto flotante opcional capaz de realizar operaciones de precisión simple y, opcionalmente, de doble precisión . [ 7 ] [ 39 ] Los buses de instrucciones y datos se han ampliado a 64 bits de ancho en comparación con los buses anteriores de 32 bits. Si un núcleo contiene una FPU, se conoce como Cortex-M7F; de lo contrario, es un Cortex-M7.

Las características clave del núcleo Cortex-M7 son: [ 23 ]

  • Arquitectura ARMv7E-M.
  • Pipeline de 6 etapas con especulación de bifurcación . El segundo más largo de todos los núcleos ARM Cortex-M, siendo el primero el Cortex-M85.
  • Conjuntos de instrucciones:
    • Pulgar-1 (completo).
    • Pulgar-2 (completo).
    • Multiplicación de enteros por hardware de 32 bits con un resultado de 32 o 64 bits, con o sin signo, sumando o restando después de la multiplicación. La multiplicación y la operación MAC de 32 bits requieren 1 ciclo.
    • División entera por hardware de 32 bits (2–12 ciclos).
    • Soporte para aritmética de saturación .
    • Extensión DSP: MAC de 16/32 bits de ciclo único , MAC dual de 16 bits de ciclo único, aritmética SIMD de 8/16 bits .
  • De 1 a 240 interrupciones , más NMI .
  • Latencia de interrupción de 12 ciclos.
  • Modos de suspensión integrados.

Opciones de silicio:

  • Unidad de punto flotante (FPU) opcional: (precisión simple) o (precisión simple y doble), ambas compatibles con IEEE-754-2008. Se denomina extensión FPv5.
  • Caché de CPU opcional :  caché de instrucciones de 0 a 64 KB,  caché de datos de 0 a 64 KB, cada una con ECC opcional .
  • Memoria de acoplamiento estrecho (TCM) opcional: de 0 a 16  MB para instrucciones y de 0 a 16  MB para datos, cada una con ECC opcional.
  • Unidad de protección de memoria (MPU) opcional: 8 o 16 regiones.
  • Macrocelda de rastreo integrada (ETM) opcional: solo instrucciones o instrucciones y datos.
  • Modo de retención opcional (con el kit de administración de energía del brazo) para los modos de suspensión.
  • Funcionamiento opcional con doble redundancia y sincronización .

Papas fritas

Los siguientes microcontroladores se basan en el núcleo Cortex-M7:

Los siguientes chips tienen un Cortex-M7 como núcleo secundario:

Corteza-M23

El núcleo Cortex-M23 se anunció en octubre de 2016 [ 40 ] y se basa en la arquitectura ARMv8-M que se anunció previamente en noviembre de 2015. [ 41 ] Conceptualmente, el Cortex-M23 es similar a un Cortex-M0+ más instrucciones de división entera y características de seguridad TrustZone, y también tiene una canalización de instrucciones de 2 etapas . [ 8 ]

Las características clave del núcleo Cortex-M23 son: [ 24 ] [ 40 ]

  • Arquitectura base ARMv8-M. [ 31 ]
  • Pipeline de 2 etapas. (similar a Cortex-M0+)
  • Instrucciones de seguridad de TrustZone .
  • División entera por hardware de 32 bits (17 o 34 ciclos). (Más lenta que la división en todos los demás núcleos)
  • Límites de apilamiento. (Disponible solo con la opción SAU)

Opciones de silicio:

  • Velocidad de multiplicación de enteros por hardware: 1 o 32 ciclos.
  • Velocidad de división entera por hardware: máximo 17 o 34 ciclos. Dependiendo del divisor, la instrucción puede completarse en menos ciclos.
  • Unidad de protección de memoria (MPU) opcional: 0, 4, 8, 12, 16 regiones.
  • Unidad de atribución de seguridad (SAU) opcional: 0, 4, 8 regiones.
  • Puerto de E/S de ciclo único (disponible en M0+/M23).
  • Tampón de microtrazas (MTB)

Papas fritas

Los siguientes microcontroladores se basan en el núcleo Cortex-M23:

Corteza-M33

SparkFun Thing Plus: RP2350

El núcleo Cortex-M33 se anunció en octubre de 2016 [ 40 ] y se basa en la arquitectura ARMv8-M que se anunció previamente en noviembre de 2015. [ 41 ] Conceptualmente, el Cortex-M33 es similar a una combinación de Cortex-M4 y Cortex-M23, y también tiene una canalización de instrucciones de 3 etapas . [ 9 ]

Las características clave del núcleo Cortex-M33 son: [ 25 ] [ 40 ]

Opciones de silicio:

  • Unidad de punto flotante (FPU) opcional: solo precisión simple, compatible con IEEE-754 . Se denomina extensión FPv5.
  • Unidad de protección de memoria (MPU) opcional: 0, 4, 8, 12, 16 regiones.
  • Unidad de atribución de seguridad (SAU) opcional: 0, 4, 8 regiones.
  • Tampón de microtrazas (MTB)

Papas fritas

Los siguientes microcontroladores se basan en el núcleo Cortex-M33:

Los siguientes chips tienen un núcleo secundario Cortex-M33 o M33F:

Cortex-M35P

El núcleo Cortex-M35P se anunció en mayo de 2018 y se basa en la arquitectura Armv8-M . Conceptualmente, es un núcleo Cortex-M33 con una nueva caché de instrucciones, además de nuevos conceptos de hardware a prueba de manipulaciones tomados de la familia ARM SecurCore, y funciones de paridad y ECC configurables. [ 10 ]

Actualmente, la información sobre el Cortex-M35P es limitada, ya que su Manual de Referencia Técnica y su Guía de Usuario Genérica aún no se han publicado.

Papas fritas

Los siguientes microcontroladores se basan en el núcleo Cortex-M35P:

Corteza-M52

El núcleo Cortex-M52 se anunció en noviembre de 2023 y se basa en la arquitectura Armv8.1-M . Conceptualmente, puede considerarse una combinación entre el Cortex-M33 y el Cortex-M55. Las principales diferencias radican en que su coprocesador Helium es de un solo ciclo (el M55 es de doble ciclo) y cuenta con un bus principal de 32 bits similar al del M33 para facilitar la transición entre aplicaciones. Dispone de una arquitectura de instrucciones de cuatro etapas. [ 11 ]

Las características clave del núcleo Cortex-M52 incluyen:

  • Arquitectura ARMv8.1-M Mainline/Helium. [ 31 ]
  • Tubería de 4 etapas.
  • Límites de apilamiento (disponibles solo con la opción SAU).
  • Bus principal de 32 bits (AHB o AXI) [ 11 ]

Opciones de silicio:

  • Helio (Extensión vectorial de perfil M, MVE)
  • Extensión de autenticación de punteros e identificación de destino de bifurcación
  • Punto flotante de precisión simple y de doble precisión
  • Compatibilidad con extensiones de procesamiento digital de señales (DSP).
  • Compatibilidad con la extensión de seguridad TrustZone
  • Soporte de seguridad y confiabilidad (RAS)
  • Soporte para coprocesadores
  • MPU segura y no segura con 0, 4, 8, 12 o 16 regiones.
  • SAU con 0, 4 u 8 regiones
  • Caché de instrucciones con un tamaño de hasta 64 KB
  • Caché de datos con un tamaño de hasta 64 KB
  • ECC en cachés y TCM
  • 1–480 interrupciones
  • 3–8 bits de prioridad de excepción
  • Opciones WIC internas y externas, CTI, ITM y DWT opcionales.
  • Instrucciones personalizadas de ARM

Papas fritas

Los siguientes microcontroladores se basan en el núcleo Cortex M52.

  • Geehy Semiconductor G32R5, G32R430 [ 43 ]

Corteza-M55

El núcleo Cortex-M55 se anunció en febrero de 2020 y está basado en la arquitectura Armv8.1-M . Tiene una canalización de instrucciones de 4 o 5 etapas. [ 12 ]

Las características clave del núcleo Cortex-M55 incluyen:

  • Arquitectura ARMv8.1-M Mainline/Helium. [ 31 ]
  • Tubería de 4 etapas.
  • Límites de apilamiento (disponibles solo con la opción SAU).
  • Bus principal AXI de 64 bits [ 12 ]

Opciones de silicio:

  • Helio (Extensión vectorial de perfil M, MVE)
  • Punto flotante de precisión simple y de doble precisión
  • Compatibilidad con extensiones de procesamiento digital de señales (DSP).
  • Compatibilidad con la extensión de seguridad TrustZone
  • Soporte de seguridad y confiabilidad (RAS)
  • Soporte para coprocesadores
  • MPU segura y no segura con 0, 4, 8, 12 o 16 regiones.
  • SAU con 0, 4 u 8 regiones
  • Instruction cache with size of 4 KB, 8 KB, 16 KB, 32 KB, 64 KB
  • Data cache with size of 4 KB, 8 KB, 16 KB, 32 KB, 64 KB
  • ECC on caches and TCMs
  • 1–480 interrupts
  • 3–8 exception priority bits
  • Internal and external WIC options, optional CTI, ITM, and DWT
  • ARM Custom Instructions

Chips

  • Alif Semiconductor Ensemble & Balletto MCU families offer single or dual Cortex-M55 cores, each paired with Ethos-U55 NPUs
  • Ambiq Apollo330 Plus, Apollo510
  • InfineonPSoC Edge
  • STSTM32 N6

Cortex-M85

The Cortex-M85 core was announced in April 2022 and based on the Armv8.1-M architecture. It has a 7-stage instruction pipeline.[13]

Silicon options:

  • Optional CPU cache: 0 to 64 KB instruction-cache, 0 to 64 KB data-cache, each with optional ECC.
  • Optional Tightly-Coupled Memory (TCM): 0 to 16 MB instruction-TCM, 0 to 16 MB data-TCM, each with optional ECC.
  • Optional Memory Protection Unit (MPU): 16 regions. Can have separate ones for secure and non-secure mode if TrustZone is implemented.
  • Up to 480 interrupts and NMI
  • 3–8 exception priority bits
  • Optional dual-redundantlock-step operation.

Chips

Development tools

Documentation

The documentation for ARM chips is extensive. In the past, 8-bit microcontroller documentation would typically fit in a single document, but as microcontrollers have evolved, so has everything required to support them. A documentation package for ARM chips typically consists of a collection of documents from the IC manufacturer as well as the CPU core vendor (ARM Limited).

A typical top-down documentation tree is:

Documentation tree (top to bottom)
  1. IC manufacturer website.
  2. IC manufacturer marketing slides.
  3. IC manufacturer datasheet for the exact physical chip.
  4. IC manufacturer reference manual that describes common peripherals and aspects of a physical chip family.
  5. ARM core website.
  6. ARM core generic user guide.
  7. ARM core technical reference manual.
  8. ARM architecture reference manual.

IC manufacturers have additional documents, such as: evaluation board user manuals, application notes, getting started guides, software library documents, errata, and more. See External links section for links to official Arm documents.

See also

References

  1. ARM Cortex-M website; ARM Limited.
  2. 1 2 "Cortex-M0 Home" . ARM Limited .
  3. "Cortex-M0+ Home" . ARM Limited .
  4. 1 2 "Cortex-M1 Home" . ARM Limited .
  5. "Cortex-M3 Home" . ARM Limited .
  6. "Cortex-M4 Home" . ARM Limited .
  7. 1 2 3 "Cortex-M7 Home" . ARM Limited .
  8. 1 2 "Cortex-M23 Home" . ARM Limited .
  9. 1 2 "Cortex-M33 Home" . ARM Limited .
  10. 1 2 3 "Cortex-M35P Home" . ARM Limited .
  11. 1 2 3 "Cortex-M52 Home" . ARM Limited .
  12. 1 2 3 "Cortex-M55 Home" . ARM Limited .
  13. 1 2 "Cortex-M85 Home" . ARM Limited .
  14. "Sobre el hackeo de tarjetas MicroSD" .
  15. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 "Manual de referencia de la arquitectura ARMv6-M" . ARM Limited .
  16. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 "Manual de referencia de la arquitectura ARMv7-M" . ARM Limited .
  17. 1 2 3 4 Desarrollo de software embebido Cortex-M3; Nota de aplicación 179; ARM Limited.
  18. 1 2 3 "Manual de referencia técnica de Cortex-M0" . ARM Limited .
  19. 1 2 3 4 "Manual de referencia técnica de Cortex-M0+" . ARM Limited .
  20. 1 2 3 "Manual de referencia técnica de Cortex-M1" . ARM Limited .
  21. 1 2 3 "Manual de referencia técnica de Cortex-M3" . ARM Limited .
  22. 1 2 3 "Manual de referencia técnica de Cortex-M4" . ARM Limited .
  23. 1 2 3 4 "Manual de referencia técnica de Cortex-M7" . ARM Limited .
  24. 1 2 3 "Manual de referencia técnica de Cortex-M23" . ARM Limited .
  25. 1 2 3 "Manual de referencia técnica de Cortex-M33" . ARM Limited .
  26. 1 2 "Manual de referencia técnica de Cortex-M52" . ARM Limited .
  27. 1 2 "Manual de referencia técnica de Cortex-M55" . ARM Limited .
  28. 1 2 "Manual de referencia técnica de Cortex-M85" . ARM Limited .
  29. 1 2 3 "Kit de diseño del sistema Cortex-M (CMSDK)" . Arm Holdings . Archivado del original el 4 de marzo de 2016.
  30. 1 2 3 4 5 6 7 8 9 10 Guía de programación ARM Cortex-M para instrucciones de barrera de memoria; Sección 3.6 Requisitos de implementación del sistema; Nota de aplicación 321; ARM Limited.
  31. 1 2 3 4 5 6 7 8 9 10 11 12 "Manual de referencia de la arquitectura ARMv8-M" . ARM Limited .
  32. Microcontroladores PIC y SAM de 32 bits; Microchip.
  33. Fingas, Jon (25 de febrero de 2014). "Freescale hace que el chip controlador ARM más pequeño del mundo sea aún más pequeño" . Recuperado el 2 de octubre de 2014 .
  34. GOWIN Semiconductor se une a ARM DesignStart ofreciendo procesadores ARM Cortex-M1 gratuitos para sus familias de productos FPGA.
  35. Cortex-M1 DesignStart FPGA XilinxEdition; ARM Limited.
  36. Sadasivan, Shyam. "Introducción al procesador ARM Cortex-M3" (PDF) . ARM Limited. Archivado del original (PDF) el 26 de julio de 2014.
  37. "Análisis profundo del Samsung Exynos 7420: un SoC moderno de 14 nm" . AnandTech. Archivado del original el 30 de junio de 2015. Consultado el 15 de junio de 2015 .
  38. Diseño de FPGA Cortex-M3 Edición Xilinx
  39. "ARM impulsa el mercado de microcontroladores con el procesador Cortex-M7 de alto rendimiento" . ARM Limited (Comunicado de prensa). 24 de septiembre de 2014.
  40. 1 2 3 4 Los nuevos procesadores ARM Cortex-M ofrecen el próximo estándar de la industria para IoT seguro; ARM Limited; 25 de octubre de 2016.
  41. 1 2 La arquitectura ARMv8-M simplifica la seguridad para dispositivos inteligentes integrados; ARM Limited; 10 de noviembre de 2015.
  42. "nRF54H20 - Nordic Semiconductor" . www.nordicsemi.com . Consultado el 30 de octubre de 2024 .
  43. "Se presenta en Electronica China 2024 el primer microcontrolador de control en tiempo real de doble núcleo del mundo con procesador Cortex-M52" .
  44. https://newsroom.st.com/media-center/press-item.html/p4733.html

Lecturas adicionales

  • Guía del diseñador para la familia de procesadores Cortex-M ; 3.ª ed.; Trevor Martin; 648 páginas; 2022; ISBN 978-0323854948.
  • Guía definitiva de los procesadores ARM Cortex-M0 y Cortex-M0+ ; 2.ª ed.; Joseph Yiu; 784 páginas; 2015; ISBN 978-0128032770.
  • Guía definitiva de los procesadores ARM Cortex-M3 y Cortex-M4 ; 3.ª ed.; Joseph Yiu; 864 páginas; 2013; ISBN 978-0124080829.
  • Guía definitiva de los procesadores ARM Cortex-M23 y Cortex-M33 ; 1.ª ed.; Joseph Yiu; 928 páginas; 2020; ISBN 978-0128207352.
  • Microcontroladores con C: Cortex-M y más allá ; 1.ª ed.; Klaus Elk; 227 páginas; 2023; ISBN 979-8862003437.
  • Sistemas embebidos con microcontroladores ARM Cortex-M en lenguaje ensamblador y C ; 4.ª ed.; Yifeng Zhu; 730 páginas; 2023; ISBN 978-0982692677.
  • Ensamblador ARM para aplicaciones embebidas ; 5.ª edición; Daniel Lewis; 379 páginas; 2019; ISBN 978-1092542234.
  • Programación en lenguaje ensamblador: ARM Cortex-M3 ; 1.ª edición; Vincent Mahout; 256 páginas; 2012; ISBN 978-1848213296.
  • Procesamiento de señales digitales y aplicaciones con el ARM Cortex-M4 ; 1.ª ed.; Donald Reay; 320 páginas; 2015; ISBN 978-1118859049.
  • Introducción práctica a los sistemas operativos en tiempo real con microcontroladores ; 1.ª ed.; Brian Amos; 496 páginas; 2020; ISBN 978-1838826734.
Documentos oficiales de ARM Cortex-M
  • Sitio web oficial de ARM Cortex-M
  • Cortex-M para principiantes arm.com
  • Extensiones de seguridad ARMv8-M arm.com
  • Estándar de interfaz de software para microcontroladores Cortex (CMSIS) arm.com
Tarjetas de referencia rápida
  • Instrucciones: Pulgar-1 ( 1 ), ARM y Pulgar-2 ( 2 ), Vector de punto flotante ( 3 ) arm.com
  • Códigos de operación: Thumb-1 ( 1 , 2 ), ARM ( 3 , 4 ), Directivas del ensamblador GNU ( 5 ).
Migrando
  • Migración de 8051 a Cortex-M3 – arm.com
  • Migración de PIC a Cortex-M3 – arm.com
  • Migración de ARM7TDMI a Cortex-M3 – arm.com
  • Migración de Cortex-M4 a Cortex-M7 – keil.com
Otro
  • Segmentación de bits en microcontroladores STM32 Cortex-M