Bus d'adresses 32 bits : Capacité d'adressage mémoire expliquée
Un microprocesseur avec un bus d'adresses 32 bits peut adresser directement 2³² (4 294 967 296) emplacements mémoire uniques. Comme chaque emplacement stocke généralement un octet (8 bits), cela se traduit par un espace mémoire adressable maximum de 4 gigaoctets (4 Go).
Les mathématiques
Emplacements adressables = 2^(largeur bus adresses) = 2^32 = 4 294 967 296 emplacements Mémoire totale adressable = 4 294 967 296 octets = 4 194 304 Kio = 4 096 Mio = 4 Go
Distinctions critiques
Bus d'adresses vs Bus de données
- Bus d'adresses (32 bits) : Détermine combien d'emplacements peuvent être adressés (4 Go)
- Bus de données (32 bits, 64 bits, etc.) : Détermine combien de données transférées par cycle
Un processeur 32 bits a généralement bus d'adresses et de données 32 bits, mais ce sont des paramètres de design indépendants.
Espace d'adressage physique vs virtuel
- Physique : RAM réelle + I/O mappé mémoire que le matériel peut adresser (4 Go max pour 32 bits)
- Virtuel : Espace d'adressage par processus présenté par l'OS (aussi 4 Go par processus sur OS 32 bits)
Implications réelles
La barrière des 3 Go (OS 32 bits)
Sur OS 32 bits, l'espace 4 Go doit accueillir :
- RAM système
- Mémoire vidéo (frame buffer GPU)
- I/O mappé mémoire (périphériques PCI, BIOS, APIC, etc.)
- Espace d'adressage noyau
Cela laisse généralement seulement 3–3,5 Go utilisables pour les applications, même avec 4 Go+ RAM physique installée.
PAE (Physical Address Extension)
Certains processeurs 32 bits (Pentium Pro+) supportent adressage physique 36 bits via PAE, permettant jusqu'à 64 Go RAM physique — bien que chaque processus reste limité à 4 Go espace virtuel sans OS 64 bits.
Contexte historique
L'espace d'adressage 32 bits (4 Go) semblait immense dans les années 1980-90 (ère 386/486/Pentium). Vers milieu 2000s, ça devenait une contrainte, menant à la transition vers architectures 64 bits (x86-64/AMD64) avec espace d'adressage théorique 2⁶⁴ octets (16 exaoctets).
Tableau récapitulatif
| Largeur bus | Emplacements adressables | Mémoire octet-adressable |
|---|---|---|
| 16 bits | 65 536 | 64 Kio |
| 20 bits (8086) | 1 048 576 | 1 Mio |
| 24 bits | 16 777 216 | 16 Mio |
| 32 bits | 4 294 967 296 | 4 Go |
| 36 bits (PAE) | 68 719 476 736 | 64 Go |
| 64 bits | 18 446 744 073 709 551 616 | 16 Eio |
