Quelle est vraiment la différence entre la série Cortex-M et la série Cortex-R?

25

C'est intéressant! J'ai cherché un article clair, mais je n'ai pas trouvé d'article clair pour cela. J'ai également trouvé ce lien: ARM Cortex-R et ce lien: Cortex-R Series mais ils ne sont pas exactement clairs. dans la page wiki a écrit:

Les cœurs sont destinés à une utilisation robuste en temps réel

et dans la page de Cortex-R a écrit:

Les processeurs en temps réel ARM Cortex®-R offrent des solutions informatiques hautes performances pour les systèmes embarqués nécessitant fiabilité, haute disponibilité, tolérance aux pannes, maintenabilité et réponses en temps réel.

et ceux-ci:

  1. Haute performance: traitement rapide combiné à une fréquence d'horloge élevée
  2. Temps réel: le traitement répond à toutes les occasions en temps réel
  3. Sûr: systèmes fiables et fiables à haute résistance aux erreurs
  4. Rentable: fonctionnalités optimales pour les performances, la puissance et la surface

Pour le numéro un: par exemple pour le Cortex-M, récemment le NXP a fabriqué la série NXP_LPC4XXX qui a une fréquence d'horloge de 200Mhz et pour le Cortex-R, vous pouvez voir ceci: TMS570LS ARM Cortex ™ -R4 Microcontrôleurs , c'est drôle parce qu'il a 180Mhz fréquence d'horloge.

Pour le numéro deux: c'est clair.

Pour le numéro trois: ce n'est pas clair! quel est le sens de cette phrase? signifie que le Cortex-M n'est pas sûr / fiable?

Pour le numéro cinq: Eh bien, je pense que c'est juste une revendication!

Qui a l'expérience pour travailler avec cette série (Cortex-R)? Quelle est votre opinion à ce sujet? Quelle est la différence profonde et exacte entre la série Cortex-M et la série Cortex-R?

Roh
la source
Ces puces, comme les puces sur le dessus de toute fiche technique, doivent toujours être considérées comme un peu plus que du matériel de marketing.
Scott Seidman
3
re: point 1: il est tout à fait possible que le Cortex-R prenne moins de cycles d'horloge pour (certaines) opérations, ainsi les performances peuvent ne pas être simplement dictées par la fréquence d'horloge. Vous auriez besoin d'étudier des données détaillées - ou de comparer les deux systèmes ...
Brian Drummond
@BrianDrummond je ne suis pas d'accord
Roh
5
@Roh Cortex-R peut utiliser le jeu d'instructions ARM "classique" qui comprend des instructions relativement complexes (par exemple, shift et op) et prédicte des instructions individuelles; Cortex-M fournit uniquement un SI basé sur Thumb2 qui utilise une instruction If-Then pour prédicter les instructions. De plus, même lorsqu'elle est limitée à des microarchitectures relativement simples, les performances ne sont pas proportionnelles à la fréquence d'horloge.
Paul A. Clayton

Réponses:

17

Drôle, j'utilise les deux au travail :)

Le Cortex-M3 (nous utilisons des STM32) est un microcontrôleur général qui est suffisamment rapide et volumineux (stockage flash) pour la plupart des applications embarquées complexes.

Cependant, le R4 est une bête complètement différente - au moins la version de Texas Instruments que j'utilise: le RM42, similaire au TMS570. Le RM42 est un Cortex-R4 avec deux cœurs fonctionnant en «étape de verrouillage» pour la redondance, ce qui signifie qu'un cœur a 2 instructions d'avance sur l'autre et est utilisé pour certains contrôles et corrections d'erreurs. De plus, l'un des cœurs est (physiquement) mis en miroir / retourné et tourné à 90 degrés pour améliorer la résistance au rayonnement / au bruit :)

Le RM42 fonctionne à une vitesse d'horloge plus élevée que le STM32 (100 MHz vs 72 MHz) et possède un jeu d'instructions légèrement différent et exécute certaines des instructions plus rapidement que le M3 (par exemple, les instructions de division s'exécutent en un cycle sur le R4, pas sûr qu'elles le fassent sur M3).

Les minuteries HW sont TRÈS précises par rapport au Cortex-M3. Habituellement, nous avons besoin d'un décalage statique pour corriger la dérive sur les M3 - ce n'est pas le cas avec le R4 :)

Là où j'appellerais un Cortex-M3 un MCU à usage général, j'appellerais le Cortex-R4 un MCU complexe temps réel / sécurité. Si je ne me trompe pas, le RM42 est compatible SIL3 ...

IMO le R4 est un grand pas en avant dans la complexité même si vous ne prévoyez pas réellement d'utiliser les fonctionnalités de sécurité / temps réel.

Un très bel exemple de la différence de complexité: le périphérique SPI a 9 registres de contrôle et d'état sur le STM32 alors que le RM42 en a 42. C'est comme ça avec tous les périphériques :)

MODIFIER:

Pour ce que ça vaut, dans mes cas d'utilisation, le Cortex-R4 @ 100MHz est généralement 50-100% plus rapide que le Cortex-M3 @ 72MHz lors de l'exécution des mêmes tâches. Peut-être parce que le R4 a des caches de données et d'instructions?

Autre comparaison, quelques 1000 lignes de code C et ASM sont exécutées lors de la réinitialisation avant d'atteindre l'appel à main()avec le sous-ensemble des fonctionnalités de sécurité que j'utilise actuellement: D et non l'initialisation périphérique ou quoi que ce soit, juste le démarrage et l'autotest (CPU, RAM, Flash ECC, etc.).

Cette page a plus de détails

Morten Jensen
la source
Par exemple, le R4 contrôlerait un système de freinage ABS ou une machine industrielle, tandis que le M3 contrôlerait quelque chose qui n'est pas aussi critique pour la sécurité ou la mission
Morten Jensen
Excellente réponse, mais une seule chose à commenter. Tous les appareils R4 du Texas n'ont pas de cache, l'utilisation de RAM étroitement couplée, qui est essentiellement une RAM qui, en plus d'être rapide, est vraiment proche des cœurs. Je pense qu'ils l'ont fait en raison du fait que les caches ne sont pas bons pour ce type de systèmes (ils ont besoin d'un système très déterministe pour avoir la fonctionnalité en temps réel que vous avez décrite .. ou quelque chose comme ça)
morcillo
@morcillo merci pour votre commentaire. J'ai été amené à croire que tous les R4 avaient des caches de données + instructions par ce diagramme d'ARM: arm.com/assets/images/Cortex-R4-chip-diagram-LG.png - savez-vous quoi en faire? Je supposais D cacheet I cacheétaient des abréviations pour le cache de données et d'instructions.
Morten Jensen
Pour vous dire la vérité, je ne sais pas. La seule chose que je sais, c'est que les appareils cortex R4 FABRIQUÉS PAR TEXAS INSTRUMENTS n'ont pas de cache pour une raison similaire à celle que je vous ai indiquée. Je l'ai lu il y a longtemps. Peut-être qu'ils ont changé cela ou peut-être que je mélange deux monstres différents, mais pour autant que je me souvienne, les appareils R4 n'ont pas de cache (HALcogen ne génère pas d'initialisation du cache). Je me trompe peut-être complètement ... si je suis s'il vous plaît faites le moi savoir .. toujours bon d'apprendre quelque chose de nouveau :)
morcillo
3

Famille ARM Cortex-R (v7-R)

  • Des performances exceptionnelles pour les applications en temps réel.
  • Les processeurs ont été développés pour des applications en temps réel profondément intégrées où la nécessité d'une faible puissance et d'un bon comportement d'interruption sont équilibrées avec des performances exceptionnelles et une forte compatibilité avec les plates-formes existantes.
  • Les processeurs en temps réel ARM Cortex®-R offrent des solutions informatiques hautes performances pour les systèmes embarqués nécessitant fiabilité, haute disponibilité, tolérance aux pannes, maintenabilité et réponses en temps réel.

Famille ARM Cortex-M (v7-M)

  • Solutions économiques pour les applications de microcontrôleurs déterministes.
  • Ont été développés principalement pour le domaine des microcontrôleurs où le besoin d'une gestion rapide et hautement déterministe des interruptions est couplé avec le désir d'un nombre de portes extrêmement bas et d'une consommation d'énergie la plus faible possible.
  • La famille de processeurs ARM Cortex ™ -M est une gamme de processeurs écoénergétiques, faciles à utiliser et compatibles avec les besoins en énergie, conçus pour aider les développeurs à répondre aux besoins des applications intégrées de demain. Ces demandes incluent la fourniture de plus de fonctionnalités à moindre coût, l'augmentation de la connectivité, une meilleure réutilisation du code et une meilleure efficacité énergétique.
Giovani Mendes
la source
Une autre distinction semble être que Cortex-M ne prend en charge qu'un jeu d'instructions basé sur Thumb2 tandis que Cortex-R peut également utiliser le jeu d'instructions de longueur fixe de base / classique (32 bits). Le fait que -R et -A partagent un manuel de référence architecturale (pour la version 7), alors que M a un manuel AR distinct, pourrait avoir une certaine signification.
Paul A. Clayton,
2

Ayez un bon article ici .

Les séries Cortex-R et cortex-M sont ciblées pour différentes exigences et pour différentes applications. Il est important de connaître les paramètres et les caractéristiques qui les séparent, car il pourrait y avoir des applications dans lesquelles les deux peuvent s'intégrer. Ce document est destiné à un tel scénario et aide les concepteurs à sélectionner. L'objectif final est d'aider les concepteurs ou les développeurs à comprendre les architectures d'ARM.

Butzke
la source
Bien qu'il soit bon d'avoir un lien vers cet article intéressant, vous devriez au moins essayer de résumer l'article dans votre réponse.
AndrejaKo