26 votos

¿Cuál es realmente la diferencia entre la serie Cortex-M y la serie Cortex-R?

¡Es interesante! Busqué para encontrar un artículo claro, pero no pude encontrar un artículo claro para esto. También encontré este enlace: ARM Cortex-R y este enlace: Serie Cortex-R pero no son exactamente claros. en la página wiki escribió:

Los núcleos están pensados para un uso robusto en tiempo real

y en la página del Cortex-R escribió:

Los procesadores de tiempo real ARM Cortex®-R ofrecen soluciones informáticas de alto rendimiento para sistemas integrados en los que se requiere fiabilidad, alta disponibilidad, tolerancia a fallos, capacidad de mantenimiento y respuestas en tiempo real.

y estos:

  1. Alto rendimiento: Procesamiento rápido combinado con una alta frecuencia de reloj
  2. En tiempo real: El procesamiento cumple con las restricciones de tiempo real en todas las ocasiones
  3. Seguro: Sistemas fiables con una gran resistencia a los errores
  4. Rentable: Características para un rendimiento, potencia y área

Para el número uno: Por ejemplo para el Cortex-M, recientemente el NXP hizo la serie NXP_LPC4XXX que tiene 200Mhz de velocidad de reloj y para el Cortex-R, puedes ver esto: Microcontroladores TMS570LS ARM Cortex™-R4 Es curioso porque tiene una velocidad de reloj de 180Mhz.

Para el número dos: está claro.

Para el número tres: ¡No está claro! ¿Qué significa esta frase? ¿Significa que el Cortex-M no es seguro/digno de confianza?

Para el número cinco: ¡Bueno, creo que sólo es un reclamo!

¿Quién tiene la experiencia para trabajar con esta serie (Cortex-R)? ¿Cuál es su opinión al respecto? ¿Cuál es la diferencia profunda y exacta entre la serie Cortex-M y la serie Cortex-R?

0 votos

Estas viñetas, al igual que las de la parte superior de cualquier hoja de datos, deben considerarse siempre poco más que material de marketing.

3 votos

Re: punto 1 : es totalmente posible que el Cortex-R necesite menos ciclos de reloj para (algunas) operaciones, por lo que el rendimiento puede no estar dictado simplemente por la velocidad de reloj. Habría que estudiar datos detallados - o hacer un benchmark de ambos sistemas...

0 votos

@BrianDrummond no estoy de acuerdo

18voto

Morten Jensen Puntos 471

Es curioso, yo uso ambos en el trabajo :)

El Cortex-M3 (nosotros usamos STM32s) es un MCU de propósito general que es lo suficientemente rápido y grande (almacenamiento flash) para la mayoría de las aplicaciones integradas complejas.

Sin embargo, el R4 es una bestia completamente diferente, al menos la versión de Texas Instruments que yo utilizo: el RM42, similar al TMS570. El RM42 es un Cortex-R4 con dos núcleos que funcionan en "lock-step" para la redundancia, lo que significa que un núcleo está 2 instrucciones por delante del otro y se utiliza para la comprobación y corrección de errores. Además, uno de los núcleos está (físicamente) reflejado/inclinado y girado 90 grados para mejorar la resistencia a la radiación/ruido :)

El RM42 funciona a una velocidad de reloj superior a la del STM32 (100MHz frente a 72MHz) y tiene un conjunto de instrucciones ligeramente diferente y realiza algunas de las instrucciones más rápido que el M3 (por ejemplo, las instrucciones de división se ejecutan en un ciclo en el R4, no estoy seguro de que lo hagan en el M3).

Los temporizadores HW son MUY precisos en comparación con el Cortex-M3. Normalmente necesitamos un offset estático para corregir la deriva en los M3 - no así con el R4 :)

Donde yo llamaría a un Cortex-M3 una MCU de propósito general, llamaría al Cortex-R4 una MCU compleja de tiempo real/seguridad. Si no me equivoco, la RM42 es compatible con SIL3...

En mi opinión, el R4 es un gran paso adelante en cuanto a complejidad, incluso si no piensas utilizar las funciones de tiempo real/seguridad.

Un buen ejemplo de la diferencia de complejidad: El periférico SPI tiene 9 registros de control y estado en el STM32 mientras que el RM42 tiene 42. Es así con todos los periféricos :)

EDITAR:

Por si sirve de algo, en mis casos de uso el Cortex-R4 a 100MHz suele ser un 50-100% más rápido que el Cortex-M3 a 72MHz al realizar exactamente las mismas tareas. ¿Quizás porque el R4 tiene cachés de datos e instrucciones?

Otra comparación, unas 1000 líneas de código C y ASM se ejecutan en el reinicio antes de llegar a la llamada a main() con el subconjunto de las características de seguridad que utilizo actualmente :D y no la inicialización de periféricos ni nada, sólo el arranque y la autocomprobación (CPU, RAM, Flash ECC, etc.).

Esta página contiene más detalles

0 votos

Por ejemplo, el R4 controlaría un sistema de frenado ABS o una máquina industrial, mientras que el M3 controlaría algo no tan crítico para la seguridad o la misión.

0 votos

Gran respuesta, pero sólo una cosa que comentar. Todos los dispositivos R4 de Texas no tienen caché, el uso estrechamente acoplado RAM, que es básicamente una memoria RAM que, además de ser rápido, es muy cerca de los núcleos. Creo que lo hicieron debido a que las cachés no son buenas para este tipo de sistemas (necesitan un sistema muy determinista para tener la característica de tiempo real que describiste.. o algo así)

0 votos

@morcillo gracias por tu comentario. Me hicieron creer que todos los R4 tenían caché de datos + instrucciones por este diagrama de ARM: arm.com/assets/images/Cortex-R4-chip-diagram-LG.png - ¿sabe qué hacer con esto? Estaba asumiendo D cache y I cache son abreviaturas de caché de datos e instrucciones.

4voto

sealover Puntos 13

Familia ARM Cortex-R (v7-R)

  • Rendimiento excepcional para aplicaciones en tiempo real.
  • Los procesadores se han desarrollado para aplicaciones en tiempo real profundamente integradas aplicaciones de tiempo real profundamente integradas, en las que la necesidad de un bajo consumo y un buen comportamiento ante las interrupciones se combinan con un rendimiento excepcional y una gran compatibilidad. se equilibran con un rendimiento excepcional y una gran compatibilidad con las plataformas existentes.
  • Los procesadores en tiempo real ARM Cortex®-R ofrecen una informática de alto rendimiento para sistemas embebidos en los que la fiabilidad, la alta disponibilidad tolerancia a fallos, capacidad de mantenimiento y respuestas en tiempo real son en tiempo real.

Familia ARM Cortex-M (v7-M)

  • Soluciones de coste para el microcontrolador determinista determinista.
  • Se han desarrollado principalmente para el ámbito de los microcontroladores, donde la necesidad de una gestión rápida y altamente determinista de las interrupciones de interrupciones se combina con el deseo de un número de puertas extremadamente bajo y un consumo de energía posible.
  • La familia de procesadores ARM Cortex™ -M es una gama de procesadores compatibles con versiones superiores, fáciles de usar y de bajo consumo, diseñados para ayudar a los desarrolladores a satisfacer las necesidades de las aplicaciones integradas del futuro. satisfacer las necesidades de las aplicaciones integradas del futuro. Estas exigencias incluyen la entrega de más funciones a menor coste, el aumento de la conectividad, mejor reutilización del código y mayor eficiencia energética.

0 votos

Otra distinción parece ser que Cortex-M sólo admite un conjunto de instrucciones basado en Thumb2, mientras que Cortex-R puede utilizar también el conjunto de instrucciones básico/clásico de longitud fija (32 bits). El hecho de que -R y -A compartan un manual de referencia de arquitectura (para v7), mientras que M tiene un manual AR separado, podría tener algún significado.

1voto

NeoRiddle Puntos 106

Tiene un buen artículo sobre aquí .

Las series Cortex-R y Cortex-M están dirigidas a diferentes requisitos y aplicaciones. Es importante conocer los parámetros y características que los separan, ya que puede haber aplicaciones en las que ambos pueden encajar. Este documento está orientado a este tipo de situaciones y ayuda a los diseñadores a seleccionarlas. El objetivo final es ayudar a los diseñadores o desarrolladores a comprender las arquitecturas de ARM.

0 votos

Aunque es bueno tener un enlace a ese interesante artículo, al menos deberías intentar resumir el artículo en tu respuesta.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X