Qu'est-ce qu'un registre dans un microcontrôleur ? Stockage CPU rapide et dédié
Un registre est une minuscule zone de stockage (typiquement 8–64 bits) à l'intérieur du CPU, accessible en un seul cycle d'horloge. Contrairement à la RAM, les registres n'ont pas de latence de bus d'adresse et sont câblés directement à l'ALU.
Classes de registres courantes
| Classe | Exemples (ARM Cortex-M / AVR / 8051) | Usage |
|---|---|---|
| Accumulateur / Général | R0–R15 (ARM), R0–R31 (AVR), A (8051) | Opérandes & résultats arithmétiques/logiques. |
| Pointeur de programme (PC) | R15 (ARM), PC (AVR/8051) | Adresse de la prochaine instruction à charger. |
| Pointeur de pile (SP) | R13 (ARM), SP (AVR/8051) | Sommet de la pile d'appels. |
| État / Drapeaux | xPSR (ARM), SREG (AVR), PSW (8051) | Z, N, C, V, activations interruptions. |
| Index / Pointeur | X/Y/Z (AVR), DPTR (8051) | Modes d'adressage mémoire. |
| Fonction spéciale (SFR) | Contrôle périphériques (GPIO, UART, ADC) | Mappés mémoire, mais cycle unique sur certains cœurs. |
Pourquoi le nombre de registres compte
- Plus de registres → moins de déversement/remplissage pile → ISRs & boucles serrées plus rapides.
- ARM Cortex-M : 16 (R0–R15) ; RISC-V : 32 (x0–x31) ; AVR : 32 (R0–R31).
- L'allocation de registres par le compilateur est une passe d'optimisation clé.
Datasheet → chapitre « Modèle programmeur » liste chaque registre pour votre MCU spécifique.
