stringtranslate.com

ARM Cortex-M

Circuitos integrados de microcontroladores ARM Cortex-M0 y Cortex-M3 de NXP y Silicon Labs ( Energy Micro )
Muere a partir de un IC STM32F100C4T6B. Microcontrolador ARM Cortex-M3
de 24  MHz con  memoria flash de 16 KB , RAM de 4 KB. Fabricado por STMicroelectronics .

ARM Cortex-M es un grupo de núcleos de procesador RISC ARM de 32 bits con licencia de ARM Limited . Estos núcleos están optimizados para circuitos integrados de bajo costo y energéticamente eficientes, que se han integrado 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 están integrados 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] Una opción de unidad de punto flotante (FPU) está 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 principal.

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 microcontroladores dedicados, pero también están "ocultos" dentro de 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 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 sin sistema operativo o en uno de los muchos sistemas operativos en tiempo real que admiten Cortex-M .

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

Licencia

ARM Limited 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 contenga la CPU ARM.

Personalización de silicio

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 una mayor velocidad de reloj, un consumo de energía muy bajo, 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 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:

Opciones adicionales de silicio: [14] [15]

Conjuntos de instrucciones

El Cortex-M0/M0+/M1 implementa la arquitectura ARMv6-M , [14] el Cortex-M3 implementa la arquitectura ARMv7-M , [15] el Cortex-M4/Cortex-M7 implementa la arquitectura ARMv7E-M , [15] el Cortex-M23/M33/M35P implementa la arquitectura ARMv8-M , [30] y el Cortex-M52/M55/M85 implementa la arquitectura ARMv8.1-M . [30] Las arquitecturas son compatibles con instrucciones binarias desde ARMv6-M a ARMv7-M y 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. [14] [15] 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 los Thumb-1, algunos Thumb-2, incluida una multiplicación de resultados de 32 bits. Cortex-M0 / Cortex-M0+ / Cortex-M1 / Cortex-M23 fueron diseñados para crear el troquel de silicio más pequeño, por lo que tienen la menor cantidad de instrucciones de la familia Cortex-M.

Cortex-M0/M0+/M1 incluye instrucciones Thumb-1, excepto las nuevas instrucciones (CBZ, CBNZ, IT) que se agregaron en la arquitectura ARMv7-M. Cortex-M0/M0+/M1 incluye un subconjunto menor de instrucciones Thumb-2 (BL, DMB, DSB, ISB, MRS, MSR). [14] Cortex-M3 / M4 / M7 / M33 / M35P tienen 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 por 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 de doble precisión opcional (VFPv5). [22] [15] Cortex-M23 / M33 / M35P / M52 / M55 / M85 agregan instrucciones TrustZone .

Depreciaciones

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

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

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:

Corteza-M0

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

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

Opciones de silicio:

Papas fritas

nRF51822

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)

El Cortex-M0+ es un superconjunto optimizado del Cortex-M0. El Cortex-M0+ tiene compatibilidad completa con el conjunto de instrucciones del 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 y aumenta el rendimiento (IPC promedio más alto debido a que las sucursales toman un ciclo menos). 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 vectorial. [18]

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

Opciones de silicio:

Papas fritas

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

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

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

El 21 de junio de 2018, investigadores de la Universidad de Michigan anunciaron la " computadora más pequeña del mundo" , o dispositivo informático, basada en ARM Cortex-M0+ (e incluye RAM y transmisores y receptores inalámbricos basados ​​en energía fotovoltaica ), en el Simposio de 2018 sobre Tecnología y circuitos VLSI con el artículo "Un sistema de sensor inalámbrico y sin batería de 0,04 mm 3 16 nW 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 marzo de 2018, que anteriormente había alcanzado un tamaño récord mundial, que es más pequeña que un grano de sal.

Corteza-M1

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

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

Opciones de silicio:

Papas fritas

Los siguientes proveedores admiten 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: [20] [35]

Opciones de silicio:

Papas fritas

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

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

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

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

Corteza-M4

Silicon Labs ( Energy Micro ) Placa Wonder Gecko STK con EFM32 WG990
Placa de lanzamiento TI Stellaris 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: [21]

Opciones de silicio:

Papas fritas

nRF52833 en un microbit v2
STM32F407IGH6

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

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

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

Corteza-M7

Placa WiFi Arduino GIGA R1 con microcontrolador (doble núcleo ARM Cortex-M7 + ARM Cortex-M4) STM32H747XIH6

El Cortex-M7 es un núcleo de alto rendimiento con casi el doble de eficiencia energética que el antiguo Cortex-M4. [7] Cuenta con una tubería superescalar de 6 etapas con predicción de rama y una unidad de punto flotante opcional capaz de realizar operaciones de precisión simple y, opcionalmente, de doble precisión . [7] [38] Los buses de instrucciones y datos se han ampliado a 64 bits de ancho con respecto a los buses de 32 bits anteriores. 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: [22]

Opciones de silicio:

Papas fritas

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

Corteza-M23

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

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

Opciones de silicio:

Papas fritas

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

Corteza-M33

El núcleo Cortex-M33 se anunció en octubre de 2016 [39] y se basa en la arquitectura ARMv8-M que se anunció previamente en noviembre de 2015. [40] Conceptualmente, Cortex-M33 es similar a un cruce de Cortex-M4 y Cortex-M23. y también tiene un proceso de instrucción de 3 etapas . [9]

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

Opciones de silicio:

Papas fritas

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

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

Corteza-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 un nuevo caché de instrucciones, además de nuevos conceptos de hardware a prueba de manipulaciones tomados de la familia ARM SecurCore y funciones de paridad configurables y ECC. [10]

Actualmente, la información sobre Cortex-M35P es limitada porque 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 . Tiene un canal de instrucción de 4 etapas. [11]

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

Opciones de silicio:

Papas fritas

Corteza-M55

El núcleo Cortex-M55 se anunció en febrero de 2020 y se basa en la arquitectura Armv8.1-M . Tiene un canal de instrucción de 4 o 5 etapas. [12]

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

Opciones de silicio:

Papas fritas

Corteza-M85

El núcleo Cortex-M85 se anunció en abril de 2022 y se basa en la arquitectura Armv8.1-M . Tiene un canal de instrucción de 7 etapas. [13]

Opciones de silicio:

Papas fritas

Herramientas de desarrollo

Documentación

La documentación de los chips ARM es extensa. En el pasado, la documentación de los microcontroladores de 8 bits normalmente cabía en un solo documento, pero a medida que los microcontroladores evolucionaron, también lo hizo todo lo necesario para respaldarlos. Un paquete de documentación para chips ARM normalmente consta de una colección de documentos del fabricante del circuito integrado y del proveedor del núcleo de la CPU ( ARM Limited ).

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 circuitos integrados.
  2. Diapositivas de marketing del fabricante de circuitos integrados.
  3. Hoja de datos del fabricante de circuitos integrados para el chip físico exacto.
  4. Manual de referencia del fabricante de circuitos integrados que describe periféricos comunes y aspectos de una familia de chips físicos.
  5. Sitio web principal de ARM.
  6. Guía de usuario genérica del núcleo ARM.
  7. Manual de referencia técnica central 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 biblioteca de software, erratas y más. Consulte la sección de enlaces externos para obtener enlaces a documentos oficiales de Arm.

Ver también

Referencias

  1. ^ Sitio web de ARM Cortex-M; BRAZO limitado.
  2. ^ ab "Inicio Cortex-M0". BRAZO limitado .
  3. ^ "Inicio Cortex-M0+". BRAZO limitado .
  4. ^ ab "Inicio Cortex-M1". BRAZO limitado .
  5. ^ "Inicio Cortex-M3". BRAZO limitado .
  6. ^ "Inicio Cortex-M4". BRAZO limitado .
  7. ^ a b "Inicio Cortex-M7". BRAZO limitado .
  8. ^ ab "Inicio Cortex-M23". BRAZO limitado .
  9. ^ ab "Inicio Cortex-M33". BRAZO limitado .
  10. ^ a b "Inicio Cortex-M35P". BRAZO limitado .
  11. ^ ab "Inicio Cortex-M52". BRAZO limitado .
  12. ^ ab "Inicio Cortex-M55". BRAZO limitado .
  13. ^ ab "Inicio Cortex-M85". BRAZO limitado .
  14. ^ abcdefghijklmnopqr "Manual de referencia de arquitectura ARMv6-M". BRAZO limitado .
  15. ^ abcdefghijklmnopqr "Manual de referencia de arquitectura ARMv7-M". BRAZO limitado .
  16. ^ Desarrollo de software integrado abcd Cortex-M3; Nota de aplicación 179; BRAZO limitado.
  17. ^ abc "Manual de referencia técnica de Cortex-M0". BRAZO limitado .
  18. ^ abcd "Manual de referencia técnica de Cortex-M0 +". BRAZO limitado .
  19. ^ abc "Manual de referencia técnica de Cortex-M1". BRAZO limitado .
  20. ^ abc "Manual de referencia técnica de Cortex-M3". BRAZO limitado .
  21. ^ abc "Manual de referencia técnica de Cortex-M4". BRAZO limitado .
  22. ^ abcd "Manual de referencia técnica de Cortex-M7". BRAZO limitado .
  23. ^ abc "Manual de referencia técnica de Cortex-M23". BRAZO limitado .
  24. ^ abc "Manual de referencia técnica de Cortex-M33". BRAZO limitado .
  25. ^ ab "Manual de referencia técnica de Cortex-M52". BRAZO limitado .
  26. ^ ab "Manual de referencia técnica de Cortex-M55". BRAZO limitado .
  27. ^ ab "Manual de referencia técnica de Cortex-M85". BRAZO limitado .
  28. ^ abc "Kit de diseño del sistema Cortex-M (CMSDK)". Portabrazos . Archivado desde el original el 4 de marzo de 2016.
  29. ^ abcdefghij 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; BRAZO limitado.
  30. ^ abcdefghijkl "Manual de referencia de arquitectura ARMv8-M". BRAZO limitado .
  31. ^ Microcontroladores PIC y SAM de 32 bits; Pastilla.
  32. ^ 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 .
  33. ^ GOWIN Semiconductor se une a ARM DesignStart y ofrece procesadores ARM Cortex-M1 gratuitos para sus familias de productos FPGA
  34. ^ Cortex-M1 DesignStart FPGA XilinxEdición; BRAZO limitado.
  35. ^ Sadasivan, Shyam. "Introducción al procesador ARM Cortex-M3" (PDF) . BRAZO limitado. Archivado desde el original (PDF) el 26 de julio de 2014.
  36. ^ "Análisis profundo del Samsung Exynos 7420: dentro de un SoC moderno de 14 nm". AnandTech . Consultado el 15 de junio de 2015 .
  37. ^ Cortex-M3 DesignStart FPGA XilinxEdición
  38. ^ "ARM potencia el mercado de MCU con un procesador Cortex-M7 de alto rendimiento". ARM Limited (Presione soltar). 24 de septiembre de 2014.
  39. ^ abcd Los nuevos procesadores ARM Cortex-M ofrecen el próximo estándar de la industria para IoT seguro; BRAZO limitado; 25 de octubre de 2016.
  40. ^ ab La arquitectura ARMv8-M simplifica la seguridad para dispositivos integrados inteligentes; BRAZO limitado; 10 de noviembre de 2015.

Otras lecturas

enlaces externos

Documentos oficiales de ARM Cortex-M
Tarjetas de referencia rápida
Migrar
Otro