Introduction à ARM
ARM est une architecture de processeurs basée sur le concept RISC (Reduced Instruction Set Computer), ce qui signifie qu’elle utilise un ensemble d’instructions simplifiées pour une exécution plus rapide et une consommation d’énergie réduite.
Caractéristiques principales :
- Faible consommation d’énergie → Idéal pour les appareils mobiles (smartphones, tablettes, IoT).
- Architecture modulaire → Plusieurs versions (Cortex-A, Cortex-M, Cortex-R) adaptées à différents besoins.
- Licence flexible → ARM ne fabrique pas ses propres puces, mais vend des licences à des fabricants (Qualcomm, Apple, Samsung, etc.).
Familles de processeurs ARM
| Famille | Utilisation | Exemples |
|---|---|---|
| Cortex-A | Applications haute performance (OS, smartphones) | Snapdragon (Qualcomm), Apple M1/M2 |
| Cortex-M | Microcontrôleurs embarqués (IoT, capteurs) | STM32 (STMicro), nRF52 (Nordic) |
| Cortex-R | Temps réel (automobile, disques durs) | Contrôleurs de stockage, ABS voiture |
Mode d’exécution et registres
ARM fonctionne principalement en mode 32 bits (ARMv7) ou 64 bits (ARMv8-A).
Registres principaux (ARM 32 bits) :
- R0 à R12 → Registres généraux.
- R13 (SP) → Stack Pointer (pointeur de pile).
- R14 (LR) → Link Register (adresse de retour des fonctions).
- R15 (PC) → Program Counter (pointeur d’instruction).
- CPSR → Registre d’état (flags Z, N, C, V).
En 64 bits (ARMv8), les registres sont étendus à X0-X30.
Jeu d’instructions ARM (ASM)
Syntaxe de base :
code assembleur
MOV R0, #42 ; R0 = 42
ADD R1, R2, R3 ; R1 = R2 + R3
CMP R0, R1 ; Compare R0 et R1 (met à jour les flags)
BGT label ; Saute si "Greater Than"
Quelques instructions courantes :
| Instruction | Description |
|---|---|
MOV Rd, Op | Déplace une valeur dans un registre |
ADD/SUB Rd, Rn, Op | Addition/Soustraction |
LDR Rd, [Rn] | Charge depuis la mémoire |
STR Rd, [Rn] | Stocke en mémoire |
B label | Saut inconditionnel |
BL func | Appel de fonction (stocke l’adresse de retour dans LR) |
Pipeline et performances
ARM utilise un pipeline pour exécuter plusieurs instructions en parallèle (3 à 15 étapes selon les modèles).
- Avantage : Augmente le débit d’exécution.
- Inconvénient : Risque de « hazards » (dépendances entre instructions).
ARM vs x86
| Critère | ARM | x86 (Intel/AMD) |
|---|---|---|
| Philosophie | RISC (instructions simples) | CISC (instructions complexes) |
| Consommation | Très faible | Élevée (sauf modèles récents) |
| Performances | Optimisé pour mobile/embarqué | Optimisé pour PC/serveurs |
| Licence | Vendue à d’autres sociétés | Fabriqué par Intel/AMD |
Applications d’ARM
- Smartphones (95% du marché : Apple A16, Snapdragon 8 Gen 2).
- Objets connectés (IoT) : Capteurs, montres, domotique.
- Serveurs : Graviton (Amazon), Ampere (ARM pour data centers).
- Ordinateurs : Apple Silicon (M1/M2), Raspberry Pi.
