De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda
Circuitos integrados de microcontroladores ARM Cortex-M0 y Cortex-M3 de NXP y Silicon Labs ( Energy Micro )
Muere desde un STM32F100C4T6B IC. Microcontrolador ARM Cortex-M3 de
24  MHz con memoria flash de 16  KB , RAM de 4 KB. Fabricado por STMicroelectronics .

El ARM Cortex-M es un grupo de núcleos de procesador RISC ARM de 32 bits con licencia de Arm Holdings . Estos núcleos están optimizados para microcontroladores de bajo costo y eficiencia energética, que se han integrado en decenas de miles de millones de dispositivos de consumo. [1] Los núcleos consisten en Cortex-M0, Cortex-M0 +, Cortex-M1, Cortex-M3, Cortex-M4, Cortex-M7, Cortex-M23, Cortex-M33, Cortex-M35P, Cortex-M55. [2] [3] [4] [5] [6] [7] [8] Los núcleos Cortex-M4 / M7 / M33 / M35P / M55 tienen una FPU opción de silicio, y cuando se incluyen en el silicio, estos núcleos a veces se conocen como "Cortex-Mx con FPU" o "Cortex-MxF", donde 'x' es el número del núcleo.

Resumen [ editar ]

La familia ARM Cortex-M son núcleos de microprocesador ARM que están diseñados para su uso en microcontroladores , ASIC , ASSP , FPGA y SoC . Los núcleos Cortex-M se utilizan comúnmente como chips de microcontroladores dedicados, pero también están "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ía inteligente y controladores de sensores.

La principal diferencia con el núcleo Cortex-A es que no hay una unidad de gestión de memoria (MMU). Un sistema operativo completo normalmente no se ejecuta en esta clase de procesador.

Aunque los microcontroladores de 8 bits eran muy populares en el pasado, Cortex-M ha ido reduciendo lentamente el mercado de 8 bits a medida que los precios de los chips Cortex-M de gama baja se han movido a la baja. Cortex-M se ha convertido en un reemplazo popular para los chips de 8 bits en aplicaciones que se benefician de las operaciones matemáticas de 32 bits y reemplazan los núcleos ARM heredados más antiguos como ARM7 y ARM9 .

Licencia [ editar ]

Arm Holdings no fabrica ni vende dispositivos de CPU basados ​​en sus propios diseños, sino que otorga licencias de la arquitectura del procesador a las partes interesadas. Arm ofrece una variedad de términos de licencia, que varían en costo y entregables. Para todos los licenciatarios, Arm 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 silicio fabricado que contiene la CPU ARM.

Personalización de silicio [ editar ]

Los fabricantes de dispositivos integrados (IDM) reciben la IP del procesador ARM como RTL sintetizable (escrito en Verilog ). De esta forma, tienen la capacidad de realizar optimizaciones y extensiones a nivel arquitectónico. Esto permite al fabricante lograr objetivos de diseño personalizados, como mayor velocidad de reloj, muy bajo consumo de energía, extensiones del conjunto de instrucciones (incluido el punto flotante), optimizaciones de tamaño, soporte de depuración, etc. Para determinar qué componentes se han incluido en un ARM en particular Chip de CPU, 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 de sistema de 24 bits que amplía la funcionalidad tanto del procesador como del controlador de interrupción vectorial anidado (NVIC). Cuando está presente, también proporciona una interrupción SysTick de prioridad configurable adicional. [9] [10] [11] Aunque el temporizador SysTick es opcional, es muy raro encontrar un microcontrolador Cortex-M sin él. Si un microcontrolador Cortex-M33 tiene la opción de extensión de seguridad, entonces tiene dos SysTicks, uno seguro y otro no seguro.
  • Banda de bits: asigna una palabra completa de memoria a un solo bit en la región de la banda de bits. Por ejemplo, escribir en una palabra de alias activará o borrará el bit correspondiente en la región de la banda de bits. Esto permite que cada bit individual en la región de la banda de bits sea directamente accesible desde una dirección alineada por 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. [9] [10] [11] Aunque la banda de bits es opcional, es menos común encontrar un microcontrolador Cortex-M3 y Cortex-M4 sin ella. Algunos microcontroladores Cortex-M0 y Cortex-M0 + tienen banda de bits.
  • 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 ocho regiones diferentes, cada una de las cuales se puede dividir en otras ocho subregiones de igual tamaño. [9] [10] [11]
  • Tightly-Coupled Memory (TCM): RAM de baja latencia que se utiliza para almacenar rutinas, datos y pilas críticas. Aparte de la memoria caché, suele ser la RAM más rápida del microcontrolador.
  • 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 + usando el kit de diseño del sistema Cortex-M. [13]
  • Nota: El software debe validar la existencia de una función antes de intentar utilizarla. [11]
  • Nota: Hay información pública limitada disponible para el Cortex-M35P hasta que se publique su Manual de referencia técnica .

Opciones de silicio adicionales: [9] [10]

  • Endianidad de datos: Little-endian o big-endian. A diferencia de los núcleos ARM heredados, el Cortex-M se fija permanentemente en silicio como una de estas opciones.
  • Interrupciones: 1 a 32 (M0 / M0 + / M1), 1 a 240 (M3 / M4 / M7 / M23), 1 a 480 (M33 / M35P).
  • Controlador de interrupción de despertador: Opcional.
  • Registro de compensación de tabla de vectores: Opcional. (no disponible para M0).
  • Ancho de búsqueda de instrucciones: solo 16 bits o principalmente 32 bits.
  • Soporte de usuarios / privilegios: Opcional.
  • Restablecer 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)
  • Detener el soporte de depuración: opcional.
  • Número de comparadores de puntos de observación: 0 a 2 (M0 / M0 + / M1), 0 a 4 (M3 / M4 / M7 / M23 / M33 / M35P).
  • Número de comparadores de puntos de ruptura: 0 a 4 (M0 / M0 + / M1 / ​​M23), 0 a 8 (M3 / M4 / M7 / M33 / M35P).

Conjuntos de instrucciones [ editar ]

El Cortex-M0 / M0 + / M1 implementa la arquitectura ARMv6-M , [9] el Cortex-M3 implementa la arquitectura ARMv7-M , [10] el Cortex-M4 / Cortex-M7 implementa la arquitectura ARMv7E-M , [10] el Cortex-M23 / M33 / M35P implementa la arquitectura ARMv8-M , [15] y el Cortex-M55 implementa la arquitectura ARMv8.1-M . [dieciséis] Las arquitecturas son compatibles con instrucciones binarias ascendentes de ARMv6-M a ARMv7-M a ARMv7E-M. Las instrucciones binarias disponibles para Cortex-M0 / Cortex-M0 + / Cortex-M1 se pueden ejecutar sin modificaciones en Cortex-M3 / Cortex-M4 / Cortex-M7. Las instrucciones binarias disponibles para Cortex-M3 se pueden ejecutar sin modificaciones en Cortex-M4 / Cortex-M7 / Cortex-M33 / Cortex-M35P. [9] [10] Solo los conjuntos de instrucciones Thumb-1 y Thumb-2 son compatibles con las arquitecturas Cortex-M; el conjunto de instrucciones ARM heredado de 32 bits no es compatible.

Todos los núcleos Cortex-M implementan un subconjunto común de instrucciones que consta de la mayoría de Thumb-1, algunos Thumb-2, incluida una multiplicación de resultados de 32 bits. Los Cortex-M0 / Cortex-M0 + / Cortex-M1 / Cortex-M23 fueron diseñados para crear la matriz de silicio más pequeña, por lo que tienen 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). El Cortex-M3 / M4 / M7 / M33 / M35P tiene todas las instrucciones básicas Thumb-1 y Thumb-2. El Cortex-M3 agrega tres instrucciones Thumb-1, todas las instrucciones Thumb-2, división de enteros de hardware e instrucciones aritméticas de saturación . El Cortex-M4 agrega instrucciones DSP y una unidad opcional de punto flotante de precisión simple (VFPv4-SP). El Cortex-M7 agrega una FPU opcional de doble precisión (VFPv5). [9] [10] El Cortex-M23 / M33 agrega instrucciones TrustZone .

  • Nota: El Cortex-M0 / M0 + / M1 no incluye estas instrucciones Thumb-1 de 16 bits : CBZ, CBNZ, IT. [9] [10]
  • Nota: El Cortex-M0 / M0 + / M1 solo incluye estas instrucciones Thumb-2 de 32 bits : BL, DMB, DSB, ISB, MRS, MSR. [9] [10]
  • Nota: El Cortex-M0 / M0 + / M1 / ​​M23 solo tiene instrucciones de multiplicación de 32 bits con un resultado inferior a 32 bits (32 bits × 32 bits = 32 bits inferiores), mientras que el Cortex-M3 / M4 / M7 / M33 / M35P incluye instrucciones adicionales de multiplicación 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 (16 bits × 16 bits = 32 bits), (32 bits × 16 bits = 32 bits superiores), (32 bits × 32 bits = 32 bits superiores) multiplicaciones. [9] [10]
  • Nota: El número de ciclos para completar las instrucciones de multiplicación y división varía según los diseños de núcleo de ARM Cortex-M. Algunos núcleos tienen una opción de silicio para elegir entre velocidad rápida o tamaño pequeño (velocidad lenta), por lo que los núcleos tienen la opción de usar menos silicio con la desventaja de un mayor recuento de ciclos. Una interrupción que ocurra durante la ejecución de una instrucción de división o una instrucción de multiplicación iterativa lenta hará que el procesador abandone la instrucción y luego la reinicie después de que regrese la interrupción.
    • Multiplica las instrucciones "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.
    • Multiplica las instrucciones "resultado de 64 bits": Cortex-M3 es de 3 a 5 ciclos (según los valores), Cortex-M4 / M7 / M33 / M35P es 1 ciclo.
    • Divida las instrucciones: Cortex-M3 / M4 es de 2 a 12 ciclos (según los valores), Cortex-M7 es de 3 a 20 ciclos (según los valores), Cortex-M23 es la 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: El Cortex-M4 / M7 / M33 / M35P tiene una opción de silicio sin FPU o FPU de precisión simple ( SP ), y el Cortex-M7 agrega una tercera opción de silicio que admite precisión simple (SP) y doble -precisión ( DP ). Si el Cortex-M4 / M7 / M33 / M35P tiene una FPU, entonces se conoce como el Cortex-M4 F / Cortex-M7 F / Cortex-M33 F / Cortex-M35P F . [9] [10]
  • Nota: La serie Cortex-M incluye tres nuevas instrucciones Thumb-1 de 16 bits para el modo de suspensión: SEV, WFE, WFI.
  • Nota: El recuento de ciclos de latencia de interrupción asume: 1) la pila ubicada en la RAM de estado de espera cero, 2) otra función de interrupción que no se está ejecutando actualmente, 3) La opción de extensión de seguridad no existe porque agrega ciclos adicionales. Los núcleos Cortex-M con una arquitectura de computadora de Harvard tienen una latencia de interrupción más corta que los núcleos de Cortex-M con una arquitectura de computadora de Von Neumann.
  • Nota: Las instrucciones de FPU de precisión simple (SP) son válidas en Cortex-M4 / M7 / M33 / M35P solo cuando la opción SP FPU existe en el silicio.
  • Nota: Las instrucciones FPU de doble precisión (DP) son válidas en el Cortex-M7 solo cuando la opción DP FPU existe en el silicio.

Desuso [ editar ]

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

  • El conjunto de instrucciones ARM de 32 bits no se incluye en los núcleos Cortex-M.
  • Endianness se elige en la implementación de silicio en núcleos Cortex-M. Los núcleos heredados permitían el cambio "sobre la marcha" del modo endian de datos .
  • Los coprocesadores 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.

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

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

El conjunto de instrucciones Thumb-1 de 16 bits ha evolucionado con el tiempo desde que se lanzó por primera vez en los núcleos ARM7T heredados con la arquitectura ARMv4T. Se agregaron nuevas instrucciones Thumb-1 a medida que se lanzaban las arquitecturas ARMv5 / ARMv6 / ARMv6T2 heredadas. Se eliminaron algunas instrucciones Thumb-1 de 16 bits de los núcleos Cortex-M:

  • La instrucción "BLX <immediate>" no existe porque se usó para cambiar del conjunto de instrucciones Thumb-1 al conjunto de instrucciones ARM. La instrucción "BLX <register>" todavía está disponible en el Cortex-M.
  • SETEND no existe porque la conmutación sobre la marcha del modo endian de datos ya no es compatible.
  • 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 se renombró a SVC, aunque la codificación binaria de la instrucción es la misma. Sin embargo, el código del controlador SVC es diferente del código del controlador SWI, debido a cambios en los modelos de excepción.

Cortex-M0 [ editar ]

El núcleo Cortex-M0 está optimizado para un tamaño de troquel de silicio pequeño y se utiliza en chips de menor precio.

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

  • Arquitectura ARMv6-M [9]
  • Tubería de 3 etapas
  • Conjuntos de instrucciones:
    • Thumb-1 (la mayoría), falta CBZ, CBNZ, IT
    • Thumb-2 (algunos), solo BL, DMB, DSB, ISB, MRS, MSR
    • Número entero de hardware de 32 bits multiplicar por resultado de 32 bits
  • 1 a 32 interrupciones , más NMI

Opciones de silicona:

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

Chips [ editar ]

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

  • ABOV AC30M1x64
  • Cypress PSoC 4000, 4100, 4100M, 4200, 4200DS, 4200L, 4200M
  • Infineon XMC1100 , XMC1200, XMC1300, XMC1400, TLE984x
  • Diálogo DA1458x, DA1468x
  • Nórdico nRF51
  • NXP LPC1100 , LPC1200
  • Nuvoton NuMicro
  • Sonix SN32F700
  • ST STM32 F0
  • Toshiba TX00
  • Vorago VA10800 (temperatura extrema), VA10820 (endurecido por radiación)

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

  • NXP LPC4300 (una Cortex-M4F + una Cortex-M0)
  • MCU inalámbricos SimpleLink CC1310 y CC2650 de Texas Instruments (un procesador de red Cortex-M3 programable + un procesador de red Cortex-M0 + un motor controlador de sensor patentado)

Cortex-M0 + [ editar ]

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

El Cortex-M0 + es un superconjunto optimizado del Cortex-M0. El Cortex-M0 + tiene un conjunto completo de instrucciones compatible con el Cortex-M0, lo que permite el uso del mismo compilador y herramientas de depuración. La tubería Cortex-M0 + se redujo de 3 a 2 etapas, lo que reduce el uso de energía. Además de las funciones de depuración en el Cortex-M0 existente, se puede agregar una opción de silicio al Cortex-M0 + llamada Micro Trace Buffer (MTB) que proporciona un búfer de seguimiento de instrucciones simple. El Cortex-M0 + también recibió características de Cortex-M3 y 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. [3]

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

  • Arquitectura ARMv6-M [9]
  • Tubería de 2 etapas (una menos que Cortex-M0)
  • Conjuntos de instrucciones: (igual que Cortex-M0)
    • Thumb-1 (la mayoría), falta CBZ, CBNZ, IT
    • Thumb-2 (algunos), solo BL, DMB, DSB, ISB, MRS, MSR
    • Número entero de hardware de 32 bits multiplicar por resultado de 32 bits
  • 1 a 32 interrupciones , más NMI

Opciones de silicona:

  • Velocidad de multiplicación de enteros de hardware: 1 o 32 ciclos
  • Unidad de protección de memoria de 8 regiones (MPU) (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 Micro Trace (MTB) (disponible en M0 + / M23 / M33 / M35P)

Chips [ editar ]

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

  • ABOV Semiconductor A31G11x, A31G12x, A31G314
  • Cypress PSoC 4000S, 4100S, 4100S +, 4100PS, 4700S, FM0 +
  • Epson S1C31W74, S1C31D01, S1C31D50
  • Holtek HT32F52000
  • Microchip (Atmel) SAM C2, D0, D1, D2, DA, L2, R2, R3
  • NXP LPC800 , LPC11E60, LPC11U60
  • NXP ( escala libre) Kinetis E, EA, L, M, V1, W0
  • Raspberry Pi RP2040 (dos núcleos M0 +)
  • Renesas S124, S128, RE, RE01
  • Silicon Labs ( Energy Micro ) EFM32 Zero, Happy
  • ST STM32 L0 , G0

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

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

Los microcontroladores ARM más pequeños son del tipo Cortex-M0 + (a partir de 2014, el más pequeño de 1,6 mm por 2 mm es Kinetis KL03). [17]

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

Cortex-M1 [ editar ]

El Cortex-M1 es un núcleo optimizado especialmente diseñado para cargarse en chips FPGA .

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

  • Arquitectura ARMv6-M [9]
  • Tubería de 3 etapas .
  • Conjuntos de instrucciones:
    • Thumb-1 (la mayoría), falta CBZ, CBNZ, IT.
    • Thumb-2 (algunos), solo BL, DMB, DSB, ISB, MRS, MSR.
    • El entero de hardware de 32 bits se multiplica por el resultado de 32 bits.
  • 1 a 32 interrupciones , más NMI .

Opciones de silicona:

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

Chips [ editar ]

Los siguientes proveedores admiten el Cortex-M1 como soft-cores en sus chips FPGA:

  • Altera Cyclone-II, Cyclone-III, Stratix-II, Stratix-III
  • GOWIN M1 [18]
  • Microsemi ( Actel ) Fusion, IGLOO / e, ProASIC3L, ProASIC3 / E
  • Xilinx Spartan-3, Virtex-2, Virtex-3, Virtex-4, Artix-7 [19]

Cortex-M3 [ editar ]

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: [5] [20]

  • Arquitectura ARMv7-M [10]
  • Oleoducto de 3 etapas con especulación de sucursales .
  • Conjuntos de instrucciones:
    • Thumb-1 (entero).
    • Thumb-2 (entero).
    • El entero de hardware de 32 bits se multiplica por el resultado de 32 o 64 bits, con o sin signo, suma o resta después de la multiplicación. La multiplicación de 32 bits es de 1 ciclo, pero la multiplicación de 64 bits y las instrucciones MAC requieren ciclos adicionales.
    • División de enteros de hardware de 32 bits (2–12 ciclos).
    • soporte aritmético de saturación .
  • 1 a 240 interrupciones , más NMI .
  • Latencia de interrupción de 12 ciclos.
  • Modos de suspensión integrados.

Opciones de silicona:

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

Chips [ editar ]

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

  • ABOV AC33Mx128, AC33Mx064
  • Actel SmartFusion, SmartFusion 2
  • Dispositivos analógicos ADUCM360, ADUCM361, ADUCM3029
  • Chip de Wi-Fi Broadcom BCM4319XKUBG
  • Cypress PSoC 5000, 5000LP, FM3
  • Holtek HT32F
  • Infineon TLE9860, TLE987x
  • Microchip (Atmel) SAM 3A, 3N, 3S, 3U, 3X
  • NXP LPC1300 , LPC1700 , LPC1800
  • EN Semiconductor Q32M210
  • Realtek RTL8710
  • Silicon Labs Precision32
  • Silicon Labs ( Energy Micro ) EFM32 Diminuto, Gecko, Leopardo, Gigante
  • ST STM32 F1, F2, L1, W
  • TDK-Micronas HVC4223F
  • Texas Instruments F28, LM3, TMS470, OMAP 4 , MCU inalámbricos SimpleLink (CC1310 Sub-GHz y CC2650 BLE + ZigBee + 6LoWPAN )
  • Toshiba TX03

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

  • Apple A9 (Cortex-M3 como coprocesador de movimiento integrado M9 )
  • CSR Quatro 5300 (Cortex-M3 como coprocesador)
  • Samsung Exynos 7420 (Cortex-M3 como microcontrolador DVS ) [21]
  • Texas Instruments F28, LM3, TMS470, OMAP 4470 (una Cortex-A9 + dos Cortex-M3)
  • XMOS XS1-XA (siete xCORE + una Cortex-M3)

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

  • Microsemi SmartFusion2 SoC

Los siguientes proveedores admiten el Cortex-M3 como soft-cores en sus chips FPGA:

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

Cortex-M4 [ editar ]

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

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

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

  • Arquitectura ARMv7E-M [10]
  • Oleoducto de 3 etapas con especulación de sucursales .
  • Conjuntos de instrucciones:
    • Thumb-1 (entero).
    • Thumb-2 (entero).
    • El entero de hardware de 32 bits se multiplica por el resultado de 32 o 64 bits, con o sin signo, suma o resta después de la multiplicación. Multiplicación de 32 bits y MAC son de 1 ciclo.
    • División de enteros de hardware de 32 bits (2–12 ciclos).
    • Soporte aritmético de saturación .
    • Extensión DSP: MAC de ciclo único de 16/32 bits , MAC dual de ciclo único de 16 bits, aritmética SIMD de 8/16 bits .
  • 1 a 240 interrupciones , más NMI .
  • Latencia de interrupción de 12 ciclos.
  • Modos de suspensión integrados.

Opciones de silicona:

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

Chips [ editar ]

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

  • Dispositivos analógicos ADSP-CM40x
  • Microchip (Atmel) SAM 4L, 4N, 4S
  • NXP ( Freescale ) Kinetis K, W2
  • Texas Instruments SimpleLink Wi-Fi CC32xx, CC32xxMOD

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

  • Dispositivos analógicos ADUCM4050
  • Cypress 6200 (una Cortex-M4F + una Cortex-M0 +), FM4
  • Infineon XMC4000
  • Maxim Darwin
  • Microchip (Atmel) SAM4C (doble núcleo: un Cortex-M4F + un Cortex-M4), SAM4E, SAMG5, SAMD5 / E5x
  • Nórdico nRF52
  • Nuvoton NuMicro M480
  • NXP LPC4000 , LPC4300 (una Cortex-M4F + una Cortex-M0)
  • NXP ( Freescale ) Kinetis K, V3, V4
  • Renesas S3, S5, S7, RA4, RA6
  • Laboratorios de silicio ( Energy Micro ) EFM32 Wonder
  • ST STM32 F3, F4, L4, L4 +, WB (una Cortex-M4F + una Cortex-M0 +)
  • Texas Instruments LM4F, TM4C, MSP432 , CC13x2R, CC1352P, CC26x2R
  • Toshiba TX04

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

  • NXP ( Freescale ) Vybrid VF6 (una Cortex-A5 + una Cortex-M4F)
  • NXP ( Freescale ) i.MX 6 SoloX (una Cortex-A9 + una Cortex-M4F)
  • NXP ( Freescale ) i.MX 7 Solo / Dual (uno o dos Cortex-A7 + uno Cortex-M4F)
  • NXP ( Freescale ) i.MX 8 (dos Cortex-A72 + cuatro Cortex-A53 + dos Cortex-M4F)
  • NXP ( Freescale ) i.MX 8M y 8M Mini (cuatro Cortex-A53 + uno Cortex-M4F)
  • NXP ( Freescale ) i.MX 8X (cuatro Cortex-A35 + uno Cortex-M4F)
  • ST STM32MP1 (uno o dos Cortex-A7 + uno Cortex-M4)
  • Texas Instruments OMAP 5 (dos Cortex-A15s + dos Cortex-M4)
  • Texas Instruments Sitara AM5700 (uno o dos Cortex-A15 + dos Cortex-M4 como unidades de procesamiento de imágenes + dos Cortex-M4 como unidades de propósito general)

Cortex-M7 [ editar ]

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

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

  • Arquitectura ARMv7E-M.
  • Oleoducto de 6 etapas con especulación de sucursales . El más largo de todos los núcleos ARM Cortex-M.
  • Conjuntos de instrucciones:
    • Thumb-1 (entero).
    • Thumb-2 (entero).
    • El entero de hardware de 32 bits se multiplica por el resultado de 32 o 64 bits, con o sin signo, suma o resta después de la multiplicación. Multiplicación de 32 bits y MAC son de 1 ciclo.
    • División de enteros de hardware de 32 bits (2–12 ciclos).
    • Soporte aritmético de saturación .
    • Extensión DSP: MAC de ciclo único de 16/32 bits , MAC dual de ciclo único de 16 bits, aritmética SIMD de 8/16 bits .
  • 1 a 240 interrupciones , más NMI .
  • Latencia de interrupción de 12 ciclos.
  • Modos de suspensión integrados.

Opciones de silicona:

  • Unidad de coma flotante (FPU) opcional: (precisión simple) o (precisión simple y doble), ambas compatibles con IEEE-754-2008. Se llama extensión FPv5.
  • Caché de CPU opcional : caché de instrucciones de 0 a 64 KB, caché de datos de 0 a 64 KB, cada uno con ECC opcional .
  • Memoria de acoplamiento compacto (TCM) opcional: TCM de instrucciones de 0 a 16 MB, TCM de datos de 0 a 16 MB, cada uno con ECC opcional.
  • Unidad de protección de memoria (MPU) opcional: 8 o 16 regiones.
  • Macrocélula de seguimiento integrada (ETM) opcional: solo instrucción o instrucción y datos.
  • Modo de retención opcional (con kit de administración de energía del brazo) para modos de suspensión.

Chips [ editar ]

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

  • Microchip (Atmel) SAM E7, S7, V7
  • NXP ( Freescale ) Kinetis KV5x, i.MX RT
  • ST STM32 F7, H7

Cortex-M23 [ editar ]

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

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

  • Arquitectura de línea de base ARMv8-M. [15]
  • Tubería de 2 etapas. (similar a Cortex-M0 +)
  • Instrucciones de seguridad de TrustZone . (disponible solo en M23 / M33 / M35P)
  • División de enteros de hardware de 32 bits (17 o 34 ciclos). (no disponible en M0 / M0 + / M1) (más lento que dividir en todos los demás núcleos)
  • Límites de apilamiento. (disponible solo con la opción SAU) (disponible en M23 / M33 / M35P)

Opciones de silicona:

  • Velocidad de multiplicación de enteros de hardware: 1 o 32 ciclos.
  • Velocidad de división de enteros por hardware: 17 o 34 ciclos como máximo. 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 opcional (SAU): 0, 4, 8 regiones.
  • Puerto de E / S de ciclo único (disponible en M0 + / M23).
  • Tampón Micro Trace (MTB) (disponible en M0 + / M23 / M33 / M35P).

Chips [ editar ]

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

  • GigaDevice GD32E230
  • Microchip SAM L10, L11
  • Nuvoton M2351
  • Renesas S1JA, RA2A1

Cortex-M33 [ editar ]

El núcleo Cortex-M33 se anunció en octubre de 2016 [25] y se basó en la arquitectura ARMv8-M más nueva que se anunció previamente en noviembre de 2015. [26] Conceptualmente, el Cortex-M33 es similar a un cruce de Cortex-M4 y Cortex- M23, y también tiene una canalización de instrucciones de 3 etapas .

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

  • Arquitectura de línea principal ARMv8-M. [15]
  • Tubería de 3 etapas.
  • Instrucciones de seguridad de TrustZone . (disponible solo en M23 / M33 / M35P)
  • División de enteros de hardware de 32 bits (11 ciclos como máximo). (no disponible en M0 / M0 + / M1)
  • Límites de apilamiento. (disponible solo con la opción SAU) (disponible en M23 / M33 / M35P)

Opciones de silicona:

  • Unidad de coma flotante (FPU) opcional: solo precisión simple compatible con IEEE-754 . Se llama extensión FPv5.
  • Unidad de protección de memoria (MPU) opcional: 0, 4, 8, 12, 16 regiones.
  • Unidad de atribución de seguridad opcional (SAU): 0, 4, 8 regiones.
  • Tampón Micro Trace (MTB) (disponible en M0 + / M23 / M33 / M35P).

Chips [ editar ]

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

  • Dispositivos analógicos ADUCM410, ADUCM420
  • Diálogo DA1469x
  • Nórdico nRF91, nRF5340
  • NXP LPC5500, i.MX RT600
  • Renesas RA
  • ST STM32 L5
  • Silicon Labs Wireless Gecko Serie 2

Cortex-M35P [ editar ]

El núcleo Cortex-M35P se anunció en mayo de 2018. 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 características de paridad configurable y ECC. [27]

Actualmente, hay información pública limitada disponible para el Cortex-M35P hasta que se publique su Manual de referencia técnica .

Chips [ editar ]

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

  • A febrero de 2020, no se han anunciado chips.

Cortex-M55 [ editar ]

El núcleo Cortex-M55 se anunció en febrero de 2020 y se basa en la arquitectura Armv8.1-M que se anunció anteriormente en febrero de 2019. También tiene un canal de instrucción de 4 etapas.

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

  • Arquitectura de línea principal / helio ARMv8.1-M. [15]
  • Tubería de 4 etapas.
  • Límites de apilamiento (disponible solo con la opción SAU).

Opciones de silicona:

  • Helio (extensión vectorial de perfil M, MVE)
  • Punto flotante de precisión simple y precisión doble
  • Soporte de extensión de procesamiento de señal digital (DSP)
  • Soporte de extensión de seguridad TrustZone
  • Soporte de seguridad y confiabilidad (RAS)
  • Soporte de coprocesador
  • MPU seguro y no seguro con 0, 4, 8, 12 o 16 regiones
  • SAU con 0, 4 u 8 regiones
  • Caché de instrucciones con un tamaño de 4 KB, 8 KB, 16 KB, 32 KB, 64 KB
  • Caché de datos con tamaño de 4 KB, 8 KB, 16 KB, 32 KB, 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 (disponibles en una versión futura)

Chips [ editar ]

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

  • A marzo de 2021, no se han anunciado chips.

Herramientas de desarrollo [ editar ]

Segger J-Link PRO. Sonda de depuración con interfaz SWD o JTAG para apuntar al chip ARM e interfaces USB o Ethernet a la computadora host.

Documentación [ editar ]

La documentación de los chips ARM es extensa. En el pasado, la documentación de microcontroladores de 8 bits normalmente cabía en un solo documento, pero a medida que los microcontroladores han evolucionado, también lo ha hecho todo lo necesario para admitirlos. Un paquete de documentación para chips ARM generalmente consta de una colección de documentos del fabricante de circuitos integrados, así como del proveedor del núcleo de la CPU ( Arm Holdings ).

Un árbol de documentación de arriba hacia abajo típico es:

Árbol de documentación (de arriba a abajo)
  1. Sitio web del fabricante de IC.
  2. Diapositivas de marketing del fabricante de circuitos integrados.
  3. Hoja de datos del fabricante de IC para el chip físico exacto.
  4. Manual de referencia del fabricante de circuitos integrados que describe los periféricos comunes y los aspectos de una familia de chips físicos.
  5. Sitio web principal de ARM.
  6. Guía de usuario genérica de ARM core.
  7. Manual de referencia técnica básica de ARM.
  8. Manual de referencia de arquitectura ARM.

Los fabricantes de circuitos integrados tienen documentos adicionales, como: manuales de usuario de la placa de evaluación, notas de aplicación, guías de introducción, documentos de la biblioteca de software, erratas y más. Consulte la sección Enlaces externos para obtener enlaces a documentos oficiales de Arm.

Ver también [ editar ]

  • Arquitectura ARM
  • Lista de arquitecturas y núcleos ARM
  • JTAG , SWD
  • Interrupción , manejador de interrupciones
  • Sistema operativo en tiempo real , Comparación de sistemas operativos en tiempo real

Referencias [ editar ]

  1. ^ Sitio web de ARM Cortex-M; arm.com
  2. ^ a b c d Manual de referencia técnica de Cortex-M0 r0p0; Arm Holdings.
  3. ^ a b c d e Manual de referencia técnica de Cortex-M0 + r0p0; Arm Holdings.
  4. ^ a b c d Manual de referencia técnica de Cortex-M1 r1p0; Arm Holdings.
  5. ^ a b c d Manual de referencia técnica de Cortex-M3 r2p1; Arm Holdings.
  6. ^ a b c d Manual de referencia técnica de Cortex-M4 r0p1; Arm Holdings.
  7. ^ a b c d Manual de referencia técnica de Cortex-M7 r0p2; Arm Holdings.
  8. ^ a b c d Manual de referencia técnica de Cortex-M23 r1p0; Arm Holdings.
  9. ^ a b c d e f g h i j k l m n o p q r Manual de referencia de arquitectura ARMv6-M; Arm Holdings.
  10. ^ a b c d e f g h i j k l m n o p q r Manual de referencia de arquitectura ARMv7-M; Arm Holdings.
  11. ^ a b c d Desarrollo de software integrado Cortex-M3; Nota de aplicación 179; Arm Holdings.
  12. ^ a b c Manual de referencia técnica de Cortex-M33 r0p3; Arm Holdings.
  13. ^ a b c Kit de diseño del sistema Cortex-M; Arm Holdings.
  14. ^ a b c d e f g h i j Guía de programación de ARM Cortex-M para instrucciones de barrera de memoria; Sección 3.6 Requisitos de implementación del sistema; AppNote 321; arm.com
  15. ^ a b c d e f g Manual de referencia de arquitectura ARMv8-M; Arm Holdings.
  16. ^ Manual de referencia de arquitectura ARMv8.1-M; Arm Holdings.
  17. ^ 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" . Consultado el 2 de octubre de 2014 .
  18. ^ GOWIN Semiconductor se une a ARM DesignStart ofreciendo procesadores ARM Cortex-M1 gratuitos para sus familias de productos FPGA
  19. ^ Cortex-M1 DesignStart FPGA XilinxEdition
  20. ^ Sadasivan, Shyam. "Introducción al procesador ARM Cortex-M3" (PDF) . Arm Holdings . Archivado desde el original (PDF) el 26 de julio de 2014.
  21. ^ "El Samsung Exynos 7420 Deep Dive - Dentro de un moderno SoC de 14nm" . AnandTech . Consultado el 15 de junio de 2015 .
  22. ^ Cortex-M3 DesignStart FPGA XilinxEdition
  23. ^ "Procesador Cortex-M7" . Arm Holdings . Consultado el 24 de septiembre de 2014 .
  24. ^ "ARM sobrealimenta el mercado de MCU con procesador Cortex-M7 de alto rendimiento" . arm.com (Comunicado de prensa). 24 de septiembre de 2014.
  25. ^ a b c d Los nuevos procesadores ARM Cortex-M ofrecen el próximo estándar de la industria para IoT seguro; Arm Holdings; 25 de octubre de 2016.
  26. ^ a b La arquitectura ARMv8-M simplifica la seguridad de los dispositivos integrados inteligentes; Arm Holdings; 10 de noviembre de 2015.
  27. ^ "Procesador Cortex-M35P" . Arm Holdings . Consultado el 4 de junio de 2018 .

Lectura adicional [ editar ]

  • Sistemas integrados con microcontroladores ARM Cortex-M en lenguaje ensamblador y C ; 3ª Ed; Yifeng Zhu; 738 páginas; 2017; ISBN 978-0982692660 . 
  • Guía del diseñador para la familia de procesadores Cortex-M ; 2nd Ed; Trevor Martin; 490 páginas; 2016; ISBN 978-0081006290 . 
  • Ensamblaje ARM para aplicaciones integradas ; 3ª Ed; Daniel Lewis; 318 páginas; 2017; ISBN 978-1543908046 . 
  • Guía definitiva para los procesadores ARM Cortex-M0 y Cortex-M0 + ; 2nd Ed; Joseph Yiu; 784 páginas; 2015; ISBN 978-0128032770 . 
  • Guía definitiva para los procesadores ARM Cortex-M3 y Cortex-M4 ; 3ª Ed; Joseph Yiu; 600 páginas; 2013; ISBN 978-0124080829 . 
  • Procesamiento de señales digitales y aplicaciones con ARM Cortex-M4 ; 1ª Ed; Donald Reay; 250 páginas; 2014; ISBN 978-1118859049 . 
  • Sistemas integrados: Introducción a los microcontroladores ARM Cortex-M ; 5th Ed; Jonathan Valvano; 506 páginas; 2012; ISBN 978-1477508992 . 
  • Programación en lenguaje ensamblador: ARM Cortex-M3 ; 1ª Ed; Vincent Mahout; 256 páginas; 2012; ISBN 978-1848213296 . 

Enlaces externos [ editar ]

Documentos oficiales 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 del microcontrolador Cortex (CMSIS)  - arm.com
Tarjetas de referencia rápida
  • Instrucciones: Thumb-1 ( 1 ), ARM y Thumb-2 ( 2 ), Vector Floating-Point ( 3 ) - arm.com
  • Códigos de operación: Thumb-1 ( 1 , 2 ), ARM ( 3 , 4 ), Directivas de 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
  • Bandas de bits en microcontroladores STM32 Cortex-M