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

23

¡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: Cortex-R Series pero no están del todo claros. en la página wiki escribí:

  

Los núcleos están diseñados para un uso robusto en tiempo real

y en la página de Cortex-R escribí:

  

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

y estos:

  1. Alto rendimiento: procesamiento rápido combinado con un reloj alto frecuencia
  2. Tiempo real: el procesamiento cumple con las duras restricciones en tiempo real de todos ocasiones
  3. Seguro: sistemas confiables y confiables con alta resistencia a errores
  4. Rentable: características para un óptimo rendimiento, potencia y área

Para el número uno: Por ejemplo, para el Cortex-M, recientemente el NXP realizó la serie NXP_LPC4XXX que tiene una velocidad de reloj de 200Mhz y para el Cortex-R, puede ver esto: TMS570LS ARM Cortex ™ -R4 Microcontrollers , es divertido porque tiene 180 Mhz.

Para el número dos: está claro.

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

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

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

    
pregunta Roh

3 respuestas

17

Divertido, uso ambos en el trabajo :)

El Cortex-M3 (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 uso: la RM42, similar a la TMS570. El RM42 es un Cortex-R4 con dos núcleos que se ejecutan en "paso de bloqueo" para redundancia, lo que significa que un núcleo está 2 instrucciones por delante del otro y se utiliza para realizar algunas comprobaciones y correcciones de errores. Además, uno de los núcleos está (físicamente) reflejado / volteado y girado 90 grados para mejorar la resistencia a la radiación / ruido :)

El RM42 funciona a una velocidad de reloj más alta que el STM32 (100MHz vs 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 lo hacen en M3).

Los temporizadores

HW son MUY precisos en comparación con Cortex-M3. Por lo general, necesitamos un desplazamiento estático para corregir la deriva en los M3, no así con el R4 :)

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

OMI, el R4 es un gran avance en complejidad, incluso si no está planeando utilizar las funciones de seguridad / tiempo real.

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:

Para lo que vale, 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 cuando se realizan las mismas tareas. Tal vez porque el R4 tiene cachés de datos e instrucciones?

En otra comparación, unas 1000 líneas de código C y ASM se ejecutan al reiniciarse antes de llegar a main() con el subconjunto de las funciones de seguridad que utilizo actualmente: D y no inicialización periférica ni nada, solo inicio y auto. prueba (CPU, RAM, Flash ECC, etc.).

Esta página tiene más detalles

    
respondido por el Morten Jensen
3

Familia ARM Cortex-R (v7-R)

  • Rendimiento excepcional para aplicaciones en tiempo real.
  • Los procesadores se han desarrollado para tiempo real profundamente integrado Aplicaciones donde la necesidad de baja potencia y buen comportamiento de interrupción. Están equilibrados con un rendimiento excepcional y una fuerte compatibilidad. con las plataformas existentes.
  • Los procesadores en tiempo real ARM Cortex®-R ofrecen computación de alto rendimiento Soluciones para sistemas embebidos donde la confiabilidad, alta disponibilidad, tolerancia a fallos, mantenibilidad y respuestas en tiempo real son requerido.

Familia ARM Cortex-M (v7-M)

  • Soluciones sensibles al costo para microcontroladores deterministas aplicaciones.
  • Se han desarrollado principalmente para el dominio del microcontrolador donde La necesidad de una gestión de interrupciones rápida y altamente determinista es junto con el deseo de contar con una puerta extremadamente baja y la más baja posible consumo de energía.
  • ARM Cortex ™ -La familia de procesadores es una gama compatible hacia arriba de procesadores eficientes en el consumo de energía y fáciles de usar, diseñados para ayudar a los desarrolladores Satisfacer las necesidades de las aplicaciones integradas del mañana. Esas demandas Incluyen la entrega de más funciones a menor costo, aumentando conectividad, mejor reutilización de código y eficiencia energética mejorada.
respondido por el Giovani Mendes
2

Tenga un buen artículo sobre aquí .

Las series Cortex-R y cortex-M están diseñadas para diferentes requisitos y para diferentes aplicaciones. Es importante conocer los parámetros y las características que los separan, ya que podría haber aplicaciones en las que ambos puedan encajar. Este documento está dirigido a este escenario y ayuda a los diseñadores a seleccionar. El objetivo final es ayudar a los diseñadores o desarrolladores a comprender las arquitecturas de ARM.

    
respondido por el Butzke

Lea otras preguntas en las etiquetas