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

FamilleUtilisationExemples
Cortex-AApplications haute performance (OS, smartphones)Snapdragon (Qualcomm), Apple M1/M2
Cortex-MMicrocontrôleurs embarqués (IoT, capteurs)STM32 (STMicro), nRF52 (Nordic)
Cortex-RTemps 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 :

InstructionDescription
MOV Rd, OpDéplace une valeur dans un registre
ADD/SUB Rd, Rn, OpAddition/Soustraction
LDR Rd, [Rn]Charge depuis la mémoire
STR Rd, [Rn]Stocke en mémoire
B labelSaut inconditionnel
BL funcAppel 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èreARMx86 (Intel/AMD)
PhilosophieRISC (instructions simples)CISC (instructions complexes)
ConsommationTrès faibleÉlevée (sauf modèles récents)
PerformancesOptimisé pour mobile/embarquéOptimisé pour PC/serveurs
LicenceVendue à d’autres sociétésFabriqué 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.