Article de reference

ARM Cortex-M

Circuits intégrés de microcontrôleurs ARM Cortex-M0 et Cortex-M3 de NXP et Silicon Labs ( Energy Micro ) Dérivé d'un circuit intégré STM32F100C4T6B. Microcontrôleur ARM Cortex-M...

Circuits intégrés de microcontrôleurs ARM Cortex-M0 et Cortex-M3 de NXP et Silicon Labs ( Energy Micro )
Dérivé d'un circuit intégré STM32F100C4T6B. Microcontrôleur ARM Cortex-M3
24 MHz avec mémoire flash 16 Ko , RAM 4 Ko. Fabriqué par STMicroelectronics .

L' ARM Cortex-M est un groupe de cœurs de processeur ARM RISC 32 bits sous licence d' ARM Limited . Ces cœurs sont optimisés pour les circuits intégrés à faible coût et à faible consommation d'énergie, qui ont été intégrés dans des dizaines de milliards d'appareils grand public. Bien qu'ils soient le plus souvent le composant principal des puces de microcontrôleurs , ils sont parfois également intégrés à d'autres types de puces. La famille Cortex-M se compose de Cortex-M0, Cortex-M0+, Cortex-M1, Cortex-M3, Cortex-M4, [ Cortex-M7, Cortex-M23, Cortex-M33, Cortex-M35P, Cortex-M52, Cortex-M55, Cortex-M85. Une option d' unité à virgule flottante (FPU) est disponible pour les cœurs Cortex-M4 / M7 / M33 / M35P / M52 / M55 / M85, et lorsqu'ils sont inclus dans le silicium, ces cœurs sont parfois appelés « Cortex-MxF », où « x » est la variante du cœur.

Aperçu

La famille ARM Cortex-M regroupe des cœurs de microprocesseurs ARM conçus pour être utilisés dans les microcontrôleurs , les ASIC , les ASSP , les FPGA et les SoC . Les cœurs Cortex-M sont couramment utilisés comme puces de microcontrôleurs dédiées, mais sont également « cachés » à l'intérieur des puces SoC comme contrôleurs de gestion de l'alimentation, contrôleurs d'E/S, contrôleurs système, contrôleurs d'écran tactile, contrôleurs de batterie intelligents et contrôleurs de capteurs.

La principale différence avec les cœurs Cortex-A est que les cœurs Cortex-M n'ont pas d'unité de gestion de mémoire (MMU) pour la mémoire virtuelle , considérée comme essentielle pour les systèmes d'exploitation « à part entière » . Les programmes Cortex-M s'exécutent plutôt sur du matériel nu ou sur l'un des nombreux systèmes d'exploitation en temps réel qui prennent en charge un Cortex-M .

Bien que les microcontrôleurs 8 bits aient été très populaires dans le passé, Cortex-M a lentement grignoté le marché 8 bits à mesure que les prix des puces Cortex-M bas de gamme ont baissé. Les Cortex-M sont devenus un remplacement populaire des puces 8 bits dans les applications qui bénéficient d'opérations mathématiques 32 bits et remplacent les anciens cœurs ARM tels que ARM7 et ARM9 .

Licence

ARM Limited ne fabrique ni ne vend de processeurs basés sur ses propres conceptions, mais concède sous licence l'architecture du processeur aux parties intéressées. Arm propose une variété de conditions de licence, dont le coût et les livrables varient. À tous les titulaires de licence, Arm fournit une description matérielle intégrable du cœur ARM, ainsi qu'un ensemble complet d'outils de développement logiciel et le droit de vendre du silicium fabriqué contenant le processeur ARM.

Personnalisation du silicium

Les fabricants de périphériques intégrés (IDM) reçoivent l' IP du processeur ARM sous forme de RTL synthétisable (écrit en Verilog ). Sous cette forme, ils ont la possibilité d'effectuer des optimisations et des extensions au niveau de l'architecture. Cela permet au fabricant d'atteindre des objectifs de conception personnalisés, tels qu'une vitesse d'horloge plus élevée, une très faible consommation d'énergie, des extensions du jeu d'instructions (y compris la virgule flottante), des optimisations de taille, une prise en charge du débogage, etc. Pour déterminer quels composants ont été inclus dans une puce CPU ARM particulière, consultez la fiche technique du fabricant et la documentation associée.

Certaines des options de silicium pour les cœurs Cortex-M sont :

  • Minuterie SysTick : une minuterie système 24 bits qui étend les fonctionnalités du processeur et du contrôleur d'interruptions vectorielles imbriquées (NVIC). Lorsqu'elle est présente, elle fournit également une interruption SysTick prioritaire configurable supplémentaire. Bien que la minuterie SysTick soit facultative pour les microcontrôleurs M0/M0+/M1/M23, il est extrêmement rare de trouver un microcontrôleur Cortex-M qui n'en est pas doté. Si un microcontrôleur Cortex-M33/M35P/M52/M55/M85 dispose de l'option d'extension de sécurité, il peut alors avoir deux SysTicks (un sécurisé, un non sécurisé).
  • Bande de bits : mappe un mot complet de mémoire sur un seul bit dans la région de bande de bits. Par exemple, l'écriture dans un mot d'alias activera ou effacera le bit correspondant dans la région de bande de bits. Cela permet à chaque bit individuel de la région de bande de bits d'être directement accessible à partir d'une adresse alignée sur un mot. En particulier, des bits individuels peuvent être définis, effacés ou basculés à partir de C/C++ sans effectuer une séquence d'instructions de lecture-modification-écriture. Bien que la bande de bits soit facultative, il est moins courant de trouver un microcontrôleur Cortex-M3 et Cortex-M4 sans elle. Certains microcontrôleurs Cortex-M0 et Cortex-M0+ ont une bande de bits.
  • Unité de protection de la mémoire (MPU) : prend en charge la protection des régions de mémoire en appliquant des règles de privilèges et d'accès. Elle prend en charge jusqu'à seize régions différentes, chacune pouvant être divisée en sous-régions de taille égale.
  • Mémoire à couplage étroit (TCM) : mémoire SRAM à faible latence ( état d'attente nul ) qui peut être utilisée pour contenir la pile d'appels , les structures de contrôle RTOS, les structures de données d'interruption, le code du gestionnaire d'interruption et le code critique de vitesse. Outre le cache du processeur , la TCM est la mémoire la plus rapide d'un microcontrôleur ARM Cortex-M. Étant donné que la TCM n'est pas mise en cache et accessible à la même vitesse que le processeur et le cache, elle pourrait être conceptuellement décrite comme un « cache adressable ». Il existe un ITCM (TCM d'instructions) et un DTCM (TCM de données) pour permettre à un processeur d'architecture Harvard de lire les deux simultanément. Le DTCM ne peut contenir aucune instruction, mais l'ITCM peut contenir des données. Étant donné que la TCM est étroitement connectée au cœur du processeur, les moteurs DMA peuvent ne pas être en mesure d'accéder à la TCM sur certaines implémentations.
  • Remarque : la plupart des puces Cortex-M3 et M4 disposent d'une bande passante binaire et d'un MPU. L'option bande passante binaire peut être ajoutée au M0/M0+ à l'aide du kit de conception de système Cortex-M.
  • Remarque : le logiciel doit valider l’existence de chaque fonctionnalité avant de tenter de l’utiliser.
  • Remarque : des informations publiques limitées sont disponibles pour le Cortex-M35P jusqu'à la publication de son manuel de référence technique .

Options de silicium supplémentaires :

  • Endianness des données : Little-endian ou big-endian. Contrairement aux cœurs ARM traditionnels, le Cortex-M est fixé de manière permanente dans le silicium comme l'un de ces choix.
  • Interruptions : 1 à 32 (M0/M0+/M1), 1 à 240 (M3/M4/M7/M23), 1 à 480 (M33/M35P/M52/M55/M85).
  • Contrôleur d'interruption de réveil : facultatif.
  • Registre de décalage de table vectorielle : facultatif. (non disponible pour M0).
  • Largeur de récupération des instructions : 16 bits uniquement ou principalement 32 bits.
  • Prise en charge utilisateur/privilège : facultative.
  • Réinitialiser tous les registres : facultatif.
  • Port d'E/S à cycle unique : en option. (M0+/M23).
  • Port d'accès de débogage (DAP) : Aucun, SWD , JTAG et SWD. (facultatif pour tous les cœurs Cortex-M)
  • Arrêt du support de débogage : facultatif.
  • Nombre de comparateurs de points d'observation : 0 à 2 (M0/M0+/M1), 0 à 4 (M3/M4/M7/M23/M33/M35P/M52/M55/M85).
  • Nombre de comparateurs de points d'arrêt : 0 à 4 (M0/M0+/M1/M23), 0 à 8 (M3/M4/M7/M33/M35P/M52/M55/M85).

Ensembles d'instructions

Les Cortex-M0 / M0+ / M1 implémentent l' architecture ARMv6-M , le Cortex-M3 implémente l' architecture ARMv7-M , le Cortex-M4 / Cortex-M7 implémente l' architecture ARMv7E-M , le Cortex-M23 / M33 / M35P implémente l' architecture ARMv8-M , et le Cortex-M52 / M55 / M85 implémente l' architecture ARMv8.1-M . Les architectures sont compatibles ascendantes en termes d'instructions binaires d'ARMv6-M à ARMv7-M à ARMv7E-M. Les instructions binaires disponibles pour les Cortex-M0 / Cortex-M0+ / Cortex-M1 peuvent s'exécuter sans modification sur les Cortex-M3 / Cortex-M4 / Cortex-M7. Les instructions binaires disponibles pour le Cortex-M3 peuvent s'exécuter sans modification sur les Cortex-M4 / Cortex-M7 / Cortex-M33 / Cortex-M35P. Seuls les jeux d'instructions Thumb-1 et Thumb-2 sont pris en charge dans les architectures Cortex-M ; le jeu d'instructions ARM 32 bits hérité n'est pas pris en charge.

Tous les cœurs Cortex-M implémentent un sous-ensemble commun d'instructions composé principalement de Thumb-1, de Thumb-2, y compris une multiplication de résultats sur 32 bits. Les Cortex-M0 / Cortex-M0+ / Cortex-M1 / Cortex-M23 ont été conçus pour créer la plus petite puce de silicium, ayant ainsi le moins d'instructions de la famille Cortex-M.

Les Cortex-M0 / M0+ / M1 incluent les instructions Thumb-1, à l'exception des nouvelles instructions (CBZ, CBNZ, IT) qui ont été ajoutées dans l'architecture ARMv7-M. Les Cortex-M0 / M0+ / M1 incluent un sous-ensemble mineur d'instructions Thumb-2 (BL, DMB, DSB, ISB, MRS, MSR). Les Cortex-M3 / M4 / M7 / M33 / M35P ont toutes les instructions Thumb-1 et Thumb-2 de base. Le Cortex-M3 ajoute trois instructions Thumb-1, toutes les instructions Thumb-2, la division d'entiers matériels et les instructions arithmétiques de saturation . Le Cortex-M4 ajoute des instructions DSP et une unité à virgule flottante simple précision optionnelle (VFPv4-SP). Le Cortex-M7 ajoute un FPU double précision optionnel (VFPv5). Les Cortex-M23 / M33 / M35P / M52 / M55 / M85 ajoutent des instructions TrustZone .

  • Remarque : le nombre de cycles de latence d'interruption suppose : 1) une pile située dans la RAM à état d'attente nul, 2) une autre fonction d'interruption qui n'est pas en cours d'exécution, 3) l'option d'extension de sécurité n'existe pas, car elle ajoute des cycles supplémentaires. Les cœurs Cortex-M avec une architecture informatique Harvard ont une latence d'interruption plus courte que les cœurs Cortex-M avec une architecture informatique Von Neumann.
  • Remarque : la série Cortex-M inclut trois nouvelles instructions Thumb-1 16 bits pour le mode veille : SEV, WFE, WFI.
  • Remarque : le Cortex-M0 / M0+ / M1 n'inclut pas ces instructions Thumb-1 16 bits : CBZ, CBNZ, IT.
  • Remarque : les Cortex-M0 / M0+ / M1 n'incluent que ces instructions Thumb-2 32 bits : BL, DMB, DSB, ISB, MRS, MSR.
  • Remarque : Le Cortex-M0 / M0+ / M1 / ​​M23 ne dispose que d'instructions de multiplication 32 bits avec un résultat de 32 bits inférieurs (32 bits × 32 bits = 32 bits inférieurs), alors que le Cortex-M3 / M4 / M7 / M33 / M35P comprend des instructions de multiplication 32 bits supplémentaires avec des résultats de 64 bits (32 bits × 32 bits = 64 bits). Le Cortex-M4 / M7 (en option M33 / M35P) comprend des instructions DSP pour les multiplications (16 bits × 16 bits = 32 bits), (32 bits × 16 bits = 32 bits supérieurs), (32 bits × 32 bits = 32 bits supérieurs).
  • Remarque : le nombre de cycles nécessaires pour exécuter les instructions de multiplication et de division varie selon les conceptions de cœur ARM Cortex-M. Certains cœurs disposent d'une option silicium permettant de choisir entre une vitesse rapide ou une petite taille (vitesse lente), de sorte que les cœurs ont la possibilité d'utiliser moins de silicium avec l'inconvénient d'un nombre de cycles plus élevé. Une interruption se produisant pendant l'exécution d'une instruction de division ou d'une instruction de multiplication itérative lente entraînera l'abandon de l'instruction par le processeur, puis son redémarrage après le retour de l'interruption.
    • Multiplier les instructions « Résultat 32 bits » – Cortex-M0/M0+/M23 est une option silicium à 1 ou 32 cycles, Cortex-M1 est une option silicium à 3 ou 33 cycles, Cortex-M3/M4/M7/M33/M35P est une option silicium à 1 cycle.
    • Multiplier les instructions « Résultat 64 bits » : Cortex-M3 correspond à 3 à 5 cycles (selon les valeurs), Cortex-M4/M7/M33/M35P correspond à 1 cycle.
    • Diviser les instructions : Cortex-M3/M4 est de 2 à 12 cycles (selon les valeurs), Cortex-M7 est de 3 à 20 cycles (selon les valeurs), Cortex-M23 est une option de 17 ou 34 cycles, Cortex-M33 est de 2 à 11 cycles (selon les valeurs), Cortex-M35P est à déterminer.
  • Remarque : certains cœurs Cortex-M disposent d'options de silicium pour différents types d'unités à virgule flottante ( FPU ). Le Cortex-M55/M85 dispose d'une option pour la demi-précision ( HP ), le Cortex-M4/M7/M33/M35P/M52/M55/M85 dispose d'une option pour la simple précision ( SP ), le Cortex-M7/M52/M55/M85 dispose d'une option pour la double précision ( DP ). Lorsqu'un FPU est inclus, le cœur est parfois appelé « Cortex-MxF », où « x » est la variante du cœur, comme le Cortex-M4 F.
  • Remarque : MOVW est un alias qui signifie instruction MOV « large » 32 bits.
  • Remarque : BW est une branche inconditionnelle longue distance (similaire en termes de codage, de fonctionnement et de plage à BL, moins le réglage du registre LR).
  • Remarque : pour Cortex-M1, les instructions WFE / WFI / SEV existent, mais s'exécutent comme une instruction NOP.
  • Remarque : les instructions FPU demi-précision (HP) sont valides dans le Cortex-M52 / M55 / M85 uniquement lorsque l'option FPU HP existe dans le silicium.
  • Remarque : les instructions FPU simple précision (SP) sont valides dans les Cortex-M4 / M7 / M33 / M35P / M52 / M55 / M85 uniquement lorsque l'option SP FPU existe dans le silicium.
  • Remarque : les instructions FPU double précision (DP) sont valides dans le Cortex-M7 / M52 / M55 / M85 uniquement lorsque l'option FPU DP existe dans le silicium.

Obsolescences

L'architecture ARM pour la série ARM Cortex-M a supprimé certaines fonctionnalités des anciens cœurs hérités :

  • Le jeu d’instructions ARM 32 bits n’est pas inclus dans les cœurs Cortex-M.
  • L'endianness est choisi lors de l'implémentation sur silicium dans les cœurs Cortex-M. Les cœurs hérités permettaient de modifier « à la volée » le mode endian des données .
  • Les coprocesseurs n'étaient pas pris en charge sur les cœurs Cortex-M, jusqu'à ce que l'option silicium soit réintroduite dans « ARMv8-M Mainline » pour les cœurs ARM Cortex-M33/M35P.

Les capacités du jeu d'instructions ARM 32 bits sont dupliquées de nombreuses manières par les jeux d'instructions Thumb-1 et Thumb-2, mais certaines fonctionnalités ARM n'ont pas de fonctionnalité similaire :

  • Les instructions ARM SWP et SWPB (swap) n'ont pas de fonctionnalité similaire dans Cortex-M.

Le jeu d'instructions Thumb-1 16 bits a évolué au fil du temps depuis sa première sortie dans les cœurs ARM7T hérités avec l'architecture ARMv4T. De nouvelles instructions Thumb-1 ont été ajoutées à chaque sortie d'architectures ARMv5 / ARMv6 / ARMv6T2 héritées. Certaines instructions Thumb-1 16 bits ont été supprimées des cœurs Cortex-M :

  • L'instruction « BLX <immediate> » n'existe pas car elle a été utilisée pour passer du jeu d'instructions Thumb-1 au jeu d'instructions ARM. L'instruction « BLX <register> » est toujours disponible dans le Cortex-M.
  • SETEND n'existe pas car la commutation à la volée du mode endian des données n'est plus prise en charge.
  • Les instructions du coprocesseur n'étaient pas prises en charge sur les cœurs Cortex-M, jusqu'à ce que l'option silicium soit réintroduite dans « ARMv8-M Mainline » pour les cœurs ARM Cortex-M33/M35P.
  • L'instruction SWI a été renommée SVC, bien que le codage binaire de l'instruction soit le même. Cependant, le code du gestionnaire SVC est différent du code du gestionnaire SWI, en raison des modifications apportées aux modèles d'exception.

Cortex-M0

Le cœur Cortex-M0 est optimisé pour les petites tailles de puces en silicium et pour une utilisation dans les puces les moins chères.

Les principales caractéristiques du noyau Cortex-M0 sont les suivantes :

  • Architecture ARMv6-M
  • Pipeline à 3 étages
  • Ensembles d'instructions :
    • Pouce-1 (la plupart), manquant CBZ, CBNZ, IT
    • Pouce-2 (certains), uniquement BL, DMB, DSB, ISB, MRS, MSR
    • Multiplication d'entiers matériels 32 bits avec un résultat 32 bits
  • 1 à 32 interruptions , plus NMI

Options de silicium :

  • Vitesse de multiplication d'entiers matériels : 1 ou 32 cycles.

Puces

nRF51822

Les microcontrôleurs suivants sont basés sur le cœur Cortex-M0 :

Les puces suivantes ont un Cortex-M0 comme cœur secondaire :

Cortex-M0+

Carte NXP ( Freescale ) FRDM-KL25Z avec KL25Z128VLK (Kinetis L)

Le Cortex-M0+ est un sur-ensemble optimisé du Cortex-M0. Le Cortex-M0+ est entièrement compatible avec le Cortex-M0 en termes de jeu d'instructions, ce qui permet d'utiliser les mêmes outils de compilation et de débogage. Le pipeline du Cortex-M0+ a été réduit de 3 à 2 étapes, ce qui réduit la consommation d'énergie et augmente les performances (IPC moyen plus élevé en raison des branches prenant un cycle de moins). En plus des fonctionnalités de débogage du Cortex-M0 existant, une option de silicium peut être ajoutée au Cortex-M0+ appelée Micro Trace Buffer (MTB) qui fournit un tampon de trace d'instructions simple. Le Cortex-M0+ a également reçu les fonctionnalités Cortex-M3 et Cortex-M4, qui peuvent être ajoutées en tant qu'options de silicium, telles que l' unité de protection de la mémoire (MPU) et la relocalisation de la table vectorielle.

Les principales caractéristiques du noyau Cortex-M0+ sont les suivantes :

  • Architecture ARMv6-M
  • Pipeline à 2 étages (un de moins que Cortex-M0)
  • Ensembles d'instructions : (identiques à ceux du Cortex-M0)
    • Pouce-1 (la plupart), manquant CBZ, CBNZ, IT
    • Pouce-2 (certains), uniquement BL, DMB, DSB, ISB, MRS, MSR
    • Multiplication d'entiers matériels 32 bits avec un résultat 32 bits
  • 1 à 32 interruptions , plus NMI

Options de silicium :

  • Vitesse de multiplication d'entiers matériels : 1 ou 32 cycles
  • Unité de protection de mémoire à 8 régions (MPU) (identique à M3 et M4)
  • Déplacement de la table vectorielle (identique à M3, M4)
  • Port d'E/S à cycle unique (disponible en M0+/M23)
  • Micro Trace Buffer (MTB) (disponible en M0+/M23/M33/M35P)

Puces

Les microcontrôleurs suivants sont basés sur le cœur Cortex-M0+ :

Les puces suivantes ont un Cortex-M0+ comme cœur secondaire :

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

Les plus petits microcontrôleurs ARM sont de type Cortex-M0+ (en 2014, le plus petit, mesurant 1,6 mm sur 2 mm dans un boîtier à l'échelle d'une puce, est le Kinetis KL03).

Le 21 juin 2018, des chercheurs de l'Université du Michigan ont annoncé le « plus petit ordinateur du monde », ou appareil informatique, basé sur l'ARM Cortex-M0+ (et comprenant de la RAM et des émetteurs et récepteurs sans fil basés sur le photovoltaïque ) lors des Symposiums 2018 sur la technologie et les circuits VLSI avec l'article « Un système de capteur sans fil et sans batterie de 0,04 mm 3 16 nW avec processeur Cortex-M0+ intégré et communication optique pour la mesure de la température cellulaire ». L'appareil fait un dixième de la taille de l'ordinateur record du monde d'IBM, qui remonte à mars 2018, ce qui est plus petit qu'un grain de sel.

Cortex-M1

Le Cortex-M1 est un cœur optimisé spécialement conçu pour être chargé dans des puces FPGA .

Les principales caractéristiques du noyau Cortex-M1 sont les suivantes :

  • Architecture ARMv6-M
  • Pipeline à 3 étages .
  • Ensembles d'instructions :
    • Pouce-1 (la plupart), manquant CBZ, CBNZ, IT.
    • Pouce-2 (certains), uniquement BL, DMB, DSB, ISB, MRS, MSR.
    • Multiplication d'un entier matériel 32 bits avec un résultat 32 bits.
  • 1 à 32 interruptions , plus NMI .

Options de silicium :

  • Vitesse de multiplication d'entiers matériels : 3 ou 33 cycles.
  • Mémoire à couplage étroit (TCM) en option : 0 à 1 Mo d'instructions-TCM, 0 à 1 Mo de données-TCM, chacune avec ECC en option.
  • Interruptions externes : 0, 1, 8, 16, 32.
  • Débogage : aucun, réduit, complet.
  • Endianness des données : little-endian ou BE-8 big-endian.
  • Extension du système d'exploitation : présente ou absente.

Puces

Les fournisseurs suivants prennent en charge le Cortex-M1 en tant que cœurs logiciels sur leurs puces FPGA :

  • Altera Cyclone-II, Cyclone-III, Stratix-II, Stratix-III
  • GOWIN M1
  • Actel / Microsemi / Microchip Fusion, IGLOO/e, ProASIC3L, ProASIC3/E
  • Xilinx Spartan-3, Virtex-2, Virtex-3, Virtex-4, Artix-7

Cortex-M3

Carte Arduino Due avec microcontrôleur Atmel ATSAM3X8E (noyau ARM Cortex-M3 )
Carte de développement NXP LPCXpresso avec LPC1343

Les principales caractéristiques du noyau Cortex-M3 sont les suivantes :

  • Architecture ARMv7-M
  • Pipeline à 3 étages avec spéculation sur les branches .
  • Ensembles d'instructions :
    • Pouce-1 (entier).
    • Pouce-2 (entier).
    • Multiplication d'entiers matériels 32 bits avec un résultat 32 bits ou 64 bits, signé ou non signé, addition ou soustraction après la multiplication. La multiplication 32 bits correspond à 1 cycle, mais la multiplication 64 bits et les instructions MAC nécessitent des cycles supplémentaires.
    • Division entière matérielle 32 bits (2 à 12 cycles).
    • support arithmétique de saturation .
  • 1 à 240 interruptions , plus NMI .
  • Latence d'interruption de 12 cycles.
  • Modes de veille intégrés.

Options de silicium :

  • Unité de protection de mémoire (MPU) en option : 0 ou 8 régions.

Puces

Les microcontrôleurs suivants sont basés sur le cœur Cortex-M3 :

Les puces suivantes ont un Cortex-M3 comme cœur secondaire :

Les FPGA suivants incluent un cœur Cortex-M3 :

Les fournisseurs suivants prennent en charge le Cortex-M3 en tant que cœurs logiciels sur leurs puces FPGA :

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

Cortex-M4

Carte Wonder Gecko STK de Silicon Labs ( Energy Micro ) avec EFM32 WG990
Carte de lancement TI Stellaris avec LM4F120

Conceptuellement, le Cortex-M4 est un Cortex-M3 plus des instructions DSP et une unité à virgule flottante (FPU) en option. Un cœur avec une FPU est connu sous le nom de Cortex-M4F.

Les principales caractéristiques du noyau Cortex-M4 sont les suivantes :

  • Architecture ARMv7E-M
  • Pipeline à 3 étages avec spéculation sur les branches .
  • Ensembles d'instructions :
    • Pouce-1 (entier).
    • Pouce-2 (entier).
    • Multiplication d'entiers matériels 32 bits avec un résultat 32 bits ou 64 bits, signé ou non signé, addition ou soustraction après la multiplication. La multiplication 32 bits et le MAC sont de 1 cycle.
    • Division entière matérielle 32 bits (2 à 12 cycles).
    • Prise en charge arithmétique de saturation .
    • Extension DSP : MAC 16/32 bits à cycle unique , MAC 16 bits double à cycle unique, arithmétique SIMD 8/16 bits .
  • 1 à 240 interruptions , plus NMI .
  • Latence d'interruption de 12 cycles.
  • Modes de veille intégrés.

Options de silicium :

  • Unité à virgule flottante optionnelle (FPU) : simple précision uniquement, conforme à la norme IEEE-754 . Elle est appelée extension FPv4-SP.
  • Unité de protection de mémoire optionnelle (MPU) : 0 ou 8 régions.

Puces

nRF52833 sur un micro bit v2
STM32F407IGH6

Les microcontrôleurs suivants sont basés sur le cœur Cortex-M4 :

Les microcontrôleurs suivants sont basés sur le cœur Cortex-M4F (M4 + FPU ) :

Les puces suivantes ont soit un Cortex-M4 soit un M4F comme cœur secondaire :

Cortex-M7

Carte WiFi Arduino GIGA R1 avec microcontrôleur STM32H747XIH6 (ARM Cortex-M7 double cœur + ARM Cortex-M4)

Le Cortex-M7 est un cœur hautes performances avec une efficacité énergétique presque deux fois supérieure à celle du Cortex-M4 plus ancien. Il dispose d'un pipeline superscalaire à 6 étages avec prédiction de branche et d'une unité à virgule flottante optionnelle capable d' opérations en simple précision et éventuellement en double précision . Les bus d'instructions et de données ont été élargis à 64 bits de large par rapport aux bus 32 bits précédents. Si un cœur contient un FPU, il est appelé Cortex-M7F, sinon il s'agit d'un Cortex-M7.

Les principales caractéristiques du noyau Cortex-M7 sont les suivantes :

  • Architecture ARMv7E-M.
  • Pipeline à 6 étapes avec spéculation de branche . Deuxième plus long de tous les cœurs ARM Cortex-M, le premier étant le Cortex-M85.
  • Ensembles d'instructions :
    • Pouce-1 (entier).
    • Pouce-2 (entier).
    • Multiplication d'entiers matériels 32 bits avec un résultat 32 bits ou 64 bits, signé ou non signé, addition ou soustraction après la multiplication. La multiplication 32 bits et le MAC sont de 1 cycle.
    • Division entière matérielle 32 bits (2 à 12 cycles).
    • Prise en charge arithmétique de saturation .
    • Extension DSP : MAC 16/32 bits à cycle unique , MAC 16 bits double à cycle unique, arithmétique SIMD 8/16 bits .
  • 1 à 240 interruptions , plus NMI .
  • Latence d'interruption de 12 cycles.
  • Modes de veille intégrés.

Options de silicium :

  • Unité à virgule flottante optionnelle (FPU) : (simple précision) ou (simple et double précision), toutes deux conformes à la norme IEEE-754-2008. Elle est appelée extension FPv5.
  • Cache CPU optionnel : 0 à 64 Ko de cache d'instructions, 0 à 64 Ko de cache de données, chacun avec ECC optionnel .
  • Mémoire à couplage étroit en option (TCM) : 0 à 16 Mo d'instructions-TCM, 0 à 16 Mo de données-TCM, chacune avec ECC en option.
  • Unité de protection de mémoire (MPU) en option : 8 ou 16 régions.
  • Macrocellule de trace intégrée facultative (ETM) : instruction uniquement ou instruction et données.
  • Mode de rétention optionnel (avec kit de gestion de l'alimentation Arm) pour les modes veille.
  • Fonctionnement en mode verrouillage doublement redondant en option .

Puces

Les microcontrôleurs suivants sont basés sur le cœur Cortex-M7 :

Cortex-M23

Le cœur Cortex-M23 a été annoncé en octobre 2016 et est basé sur l' architecture ARMv8-M qui avait été annoncée précédemment en novembre 2015. pipeline d'instructions en 2 étapes .

Les principales caractéristiques du noyau Cortex-M23 sont les suivantes :

  • Architecture de base ARMv8-M.
  • Pipeline à 2 étages. (similaire à Cortex-M0+)
  • Instructions de sécurité TrustZone .
  • Division entière matérielle 32 bits (17 ou 34 cycles). (plus lente que la division dans tous les autres cœurs)
  • Limites de la pile. (disponible uniquement avec l'option SAU)

Options de silicium :

  • Vitesse de multiplication d'entiers matériels : 1 ou 32 cycles.
  • Vitesse de division matérielle des nombres entiers : 17 ou 34 cycles maximum. Selon le diviseur, l'instruction peut s'exécuter en moins de cycles.
  • Unité de protection de mémoire (MPU) en option : 0, 4, 8, 12, 16 régions.
  • Unité d'attribution de sécurité facultative (SAU) : 0, 4, 8 régions.
  • Port d'E/S à cycle unique (disponible en M0+/M23).
  • Tampon de microtraces (MTB)

Puces

Les microcontrôleurs suivants sont basés sur le cœur Cortex-M23 :

Cortex-M33

Le cœur Cortex-M33 a été annoncé en octobre 2016 et est basé sur l' architecture ARMv8-M qui avait été annoncée précédemment en novembre 2015. pipeline d'instructions en 3 étapes .

Les principales caractéristiques du noyau Cortex-M33 sont :

  • Architecture principale ARMv8-M.
  • Pipeline à 3 étages.
  • Instructions de sécurité TrustZone .
  • Division entière matérielle 32 bits (11 cycles maximum).
  • Limites de la pile. (disponible uniquement avec l'option SAU)

Options de silicium :

  • Unité à virgule flottante optionnelle (FPU) : simple précision uniquement, conforme à la norme IEEE-754 . Elle est appelée extension FPv5.
  • Unité de protection de mémoire (MPU) en option : 0, 4, 8, 12, 16 régions.
  • Unité d'attribution de sécurité facultative (SAU) : 0, 4, 8 régions.
  • Tampon de microtraces (MTB)

Puces

Les microcontrôleurs suivants sont basés sur le cœur Cortex-M33 :

Les puces suivantes ont un Cortex-M33 ou M33F comme cœur secondaire :

Cortex-M35P

Le cœur Cortex-M35P a été annoncé en mai 2018 et repose sur l' architecture Armv8-M . Il s'agit conceptuellement d'un cœur Cortex-M33 doté d'un nouveau cache d'instructions, ainsi que de nouveaux concepts matériels inviolables empruntés à la famille ARM SecurCore et de fonctionnalités de parité et ECC configurables.

Actuellement, les informations sur le Cortex-M35P sont limitées, car son manuel de référence technique et son guide d'utilisation générique n'ont pas encore été publiés.

Puces

Les microcontrôleurs suivants sont basés sur le cœur Cortex-M35P :

Cortex-M52

Le cœur Cortex-M52 a été annoncé en novembre 2023 et est basé sur l' architecture Armv8.1-M . Conceptuellement, il peut être considéré comme un croisement entre le Cortex-M33 et le Cortex-M55. Les principales différences sont que son coprocesseur Helium est à battement unique (le M55 est à double battement) et qu'il dispose d'un bus principal 32 bits similaire au M33 pour faciliter la transition des applications. Il dispose d'un pipeline d'instructions en 4 étapes.

Les principales caractéristiques du cœur Cortex-M52 sont les suivantes :

  • Architecture ARMv8.1-M Mainline/Helium.
  • Pipeline à 4 étages.
  • Limites de pile (disponibles uniquement avec l'option SAU).
  • Bus principal 32 bits (AHB ou AXI)

Options de silicium :

  • Hélium (extension vectorielle du profil M, MVE)
  • Extension de l'authentification du pointeur et de l'identification de la cible de branche
  • Virgule flottante simple précision et double précision
  • Prise en charge de l'extension du traitement du signal numérique (DSP)
  • Prise en charge de l'extension de sécurité TrustZone
  • Assistance en matière de sécurité et de fiabilité (RAS)
  • Prise en charge du coprocesseur
  • MPU sécurisé et non sécurisé avec 0, 4, 8, 12 ou 16 régions
  • SAU avec 0, 4 ou 8 régions
  • Cache d'instructions d'une taille allant jusqu'à 64 Ko
  • Cache de données d'une taille allant jusqu'à 64 Ko
  • ECC sur les caches et les TCM
  • 1 à 480 interruptions
  • 3 à 8 bits de priorité d'exception
  • Options WIC internes et externes, CTI, ITM et DWT en option
  • Instructions personnalisées ARM

Puces

Les microcontrôleurs suivants sont basés sur le cœur Cortex M52

  • Semi-conducteur Geehy G32R5

Cortex-M55

Le cœur Cortex-M55 a été annoncé en février 2020 et repose sur l' architecture Armv8.1-M . Il dispose d'un pipeline d'instructions à 4 ou 5 étapes.

Les principales caractéristiques du cœur Cortex-M55 sont les suivantes :

  • Architecture ARMv8.1-M Mainline/Helium.
  • Pipeline à 4 étages.
  • Limites de pile (disponibles uniquement avec l'option SAU).
  • Bus principal AXI 64 bits

Options de silicium :

  • Hélium (extension vectorielle du profil M, MVE)
  • Virgule flottante simple précision et double précision
  • Prise en charge de l'extension du traitement du signal numérique (DSP)
  • Prise en charge de l'extension de sécurité TrustZone
  • Assistance en matière de sécurité et de fiabilité (RAS)
  • Prise en charge du coprocesseur
  • MPU sécurisé et non sécurisé avec 0, 4, 8, 12 ou 16 régions
  • SAU avec 0, 4 ou 8 régions
  • Cache d'instructions d'une taille de 4 Ko, 8 Ko, 16 Ko, 32 Ko, 64 Ko
  • Cache de données d'une taille de 4 Ko, 8 Ko, 16 Ko, 32 Ko, 64 Ko
  • ECC sur les caches et les TCM
  • 1 à 480 interruptions
  • 3 à 8 bits de priorité d'exception
  • Options WIC internes et externes, CTI, ITM et DWT en option
  • Instructions personnalisées ARM

Puces

  • Les familles de microcontrôleurs Alif Semiconductor Ensemble proposent des cœurs Cortex-M55 simples ou doubles, chacun associé à des NPU Ethos-U55
  • Infineon PSoC Edge

Cortex-M85

Le cœur Cortex-M85 a été annoncé en avril 2022 et est basé sur l' architecture Armv8.1-M . Il dispose d'un pipeline d'instructions en 7 étapes.

Options de silicium :

  • Cache CPU optionnel : 0 à 64 Ko de cache d'instructions, 0 à 64 Ko de cache de données, chacun avec ECC optionnel .
  • Mémoire à couplage étroit en option (TCM) : 0 à 16 Mo d'instructions-TCM, 0 à 16 Mo de données-TCM, chacune avec ECC en option.
  • Unité de protection de mémoire (MPU) en option : 16 régions. Possibilité d'avoir des zones distinctes pour le mode sécurisé et non sécurisé si TrustZone est implémenté.
  • Jusqu'à 480 interruptions et NMI
  • 3 à 8 bits de priorité d'exception
  • Fonctionnement en mode verrouillage doublement redondant en option .

Puces

Outils de développement

Documentation

La documentation des puces ARM est très complète. Par le passé, la documentation des microcontrôleurs 8 bits tenait généralement dans un seul document, mais à mesure que les microcontrôleurs ont évolué, tout ce qui est nécessaire pour les prendre en charge a également évolué. Un package de documentation pour les puces ARM se compose généralement d'un ensemble de documents provenant du fabricant du circuit intégré ainsi que du fournisseur du cœur du processeur ( ARM Limited ).

Une arborescence de documentation descendante typique est :

Arborescence de la documentation (de haut en bas)
  1. Site Web du fabricant de circuits intégrés.
  2. Diapositives marketing du fabricant de circuits intégrés.
  3. Fiche technique du fabricant de circuits intégrés pour la puce physique exacte.
  4. Manuel de référence du fabricant de circuits intégrés qui décrit les périphériques courants et les aspects d'une famille de puces physiques.
  5. Site Web principal d'ARM.
  6. Guide d'utilisation générique du noyau ARM.
  7. Manuel de référence technique du noyau ARM.
  8. Manuel de référence de l'architecture ARM.

Les fabricants de circuits intégrés disposent de documents supplémentaires, tels que : les manuels d'utilisation des cartes d'évaluation, les notes d'application, les guides de démarrage, les documents de la bibliothèque de logiciels, les errata, etc. Consultez la section Liens externes pour accéder aux liens vers les documents officiels d'Arm.

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index