Le processeur ne génère pas d'adresses dans le sens de les créer à partir de rien. Au lieu de cela, le processeur *utilise* les adresses générées par d'autres parties du système informatique, principalement :
* Pointeur d'instruction (IP) / Compteur de programme (PC) : Ce registre interne du CPU contient l'adresse de la prochaine instruction à exécuter. Le CPU récupère les instructions de la mémoire en utilisant cette adresse. L'IP/PC est *incrémenté* après chaque récupération d'instruction, générant efficacement l'adresse de l'instruction suivante (séquentiellement).
* Adresses calculées : Le processeur calcule les adresses mémoire en fonction des instructions. Cela implique souvent :
* Adressage direct : L'instruction contient explicitement l'adresse mémoire.
* Adressage indirect : L'instruction contient l'adresse d'un emplacement mémoire *contenant* l'adresse des données.
* Enregistrer l'adressage indirect : L'adresse est conservée dans un registre CPU.
* Adressage de base + décalage : Une adresse de base (peut-être provenant d'un registre) est ajoutée à une valeur de décalage spécifiée dans l'instruction. Ceci est courant pour accéder aux éléments des tableaux.
Ces calculs sont effectués par l'unité arithmétique et logique (ALU) du processeur mais n'impliquent pas la *génération* d'adresses de manière libre. Les adresses sont dérivées de valeurs déjà présentes dans les registres ou la mémoire.
* Contrôleurs DMA (accès direct à la mémoire) : Ces puces spécialisées peuvent générer des adresses mémoire indépendamment du processeur pour transférer des données directement entre la mémoire et les périphériques (par exemple, un disque dur ou une carte réseau). Bien que cela génère des adresses, cela échappe au contrôle direct du processeur.
En bref, le CPU ne *génère pas* d'adresses de manière créative. Il récupère les adresses des instructions, des registres internes ou les reçoit d'autres composants matériels. Son rôle est d'*utiliser* ces adresses pour accéder à la mémoire.
|