ARM Cortex-M
ARM Cortex-M est une famille de processeur RISC 32-bits d'architecture ARM servant à la fois de microprocesseur et de microcontrôleur à destination de l'embarqué. Elle implémente d'abord le jeu d'instructions ARMv6-M (Cortex-M0, Cortex-M0+ et Cortex-M1) puis le ARMv7-M (Cortex-M3, Cortex-M4 et Cortex-M7)[1]. Cette famille a été développée par ARM Ltd parallèlement à la famille Cortex-A (ARMv7-A) destinée au marché des smartphones et tablettes tactiles et à la famille Cortex-R (ARMv7-R) destinée au temps réel.

La carte en matériel libre Arduino Due est équipée d'un Cortex-M3[2].
La carte synthétiseur audio en matériel libre Axoloti utilise un Cortex-M4F, le STM32 F4 de STMicroelectronics[3].
ARMv6
modifierLe jeu d'instructions ARMv6 est lancé en 2002[4].
| Architecture | Pipeline | Description | Intégrations | |
|---|---|---|---|---|
| Cortex-M0 | ARMv6-M | 3 étapes | Optimisé pour une petite taille de puce de silicium (multiplie la vitesse à 1 ou 32 cycles). Notamment utilisé dans les puces de bas prix. | Microcontrôleurs : PSoC 4, 4M, 4L, Infineon XMC1000, Nordic nRF51, NXP LCP1100, LCP1200, Famille NuvoTon NuMicro M0, Sonix SN32F700, STMicroelectronics STM32 F0, Toshiba TX00, Vorago VA10800, VA10820, CC1310, CC1312, CC1352 et CC2650 de Texas Instruments, avec un processeur réseau Cortex-M3+ (CC1310) ou Cortex-M4 (CC1312 et CC1352)
Puces : NXP LPC4300(un Cortex-M4F + un Cortex-M0) |
| Cortex-M0+ | ARMv6-M | 2 étapes | ||
| Cortex-M1 | ARMv6-M | 3 étapes |
ARMv7
modifierLe jeu d'instructions ARMv7 est lancé en 2005[4].
Cortex-M3
modifierLe Cortex-M3 est d'architecture ARMv7-M, il possède 3 bus AMBA 3 AHB-Lite et une unité de protection mémoire[5] :
- Architecture ARMv7-M
- Pipeline 3 étapes avec prédiction de branchement
- 3 Bus AMBA 3 AHB−Lte
Il est notamment utilisé dans les STMicroelectronics STM32 F1 et F2, les Rockchip RKnanoC et RKnanoD, Realtek RTL8710.
Cortex-M4
modifierLe Cortex-M4 ajoute un DSP et, dans sa version Cortex-M4F, comporte également une unité de calcul flottant[6] :
- Architecture ARMv7E-M
- Pipeline 3 étapes avec prédiction de branchement
- DSP
Optionnel :
- Le Cortex-M4F comporte un FPU, le FPv4-SP : simple précision conforme à la norme IEEE-754.
Il est notamment utilisé dans les STMicroelectronics STM32 F3 et F4 en version M4F.
Cortex-M7
modifierC'est le plus performant des processeurs de la série Cortex-M[7]
- Architecture ARMv7E-M
- Pipeline 6 étapes avec prédiction de branchement
- Thumb-1
- Thumb-2
- Support de l'Arithmétique saturée.
- DSP, SIMD
Il est notamment utilisé dans les STMicroelectronics STM32 F7 et H7.
ARMv8
modifierLe jeu d'instructions ARMv8 est lancé en 2011. Dans le domaine des microcontrôleurs, l'architecture ARMv8 reste en 32 bits, contrairement aux domaine des Applications (Cortex-A) où l'on trouve à la fois quelques 32 bits et une majorité de 64 bits (AARCH64)[4].
Cortex-M23
modifierLe Cortex-M23 est annoncé en il est basé sur la nouvelle architecture ARMv8-M (un sous-ensemble des instructions ARMv8 ne comportant pas d'instructions 64 bits d'AArch64).
Il a les caractéristiques du Cortex-M0+, mais comporte, en plus des instructions de division d'entier, des fonctionnalités de sécurité TrustZone et un pipeline d'instruction en 2 étapes[8] :
Cortex-M33
modifierARMv9
modifierLe jeu d'instructions ARMv9 est lancé en 2021. Parmi les nouveautés, une capacité de rendu vectoriel accrue (SVE2) et des conteneurs (realms) pour exécuter du code dans des espaces virtuels sécurisés[4].
Notes et références
modifier- ↑ (en) Cortex-M0 Processor Technology sur arm.com
- ↑ (en) Arduino launches Cortex-M3 based platform sur electronicsweekly.com
- ↑ (en) « Axoloti- a very exciting project on the STM32F4 », sur DIY DSP
- 1 2 3 4 (en-US) Maya Posch, « The ARMv9 ISA, And What It Can Do For You », sur Hackaday, (consulté le )
- ↑ (en) « Cortex-M3 », sur ARM
- ↑ (en) « Cortex-M4 », sur ARM
- ↑ (en) « Cortex-M7 », sur developer.ARM.com
- ↑ (en) « Cortex-M23 », sur ARM
- ↑ (en) « Cortex-M33 », sur ARM
Annexes
modifierLiens externes
modifier- (en + ja + zh-CN) Cortex-M sur le site d'ARM.
- (en) ARM Cortex - M3 Processor Software Development for ARM7TDMI Processor Programmers (PDF) sur ARM.com