Le Microprocesseur
L’unité arithmétique et logique (UAL) est responsable de l’exécution de toutes les opérations arithmétiques et logiques figurant au répertoire des instructions du processeur. Il s’agit en particulier de l’addition, de la soustraction, de la multiplication, de la division et de la comparaison de deux nombres (appelés opérandes). Ceux-ci se trouvent soit dans la mémoire centrale, ce qui demande alors l’intervention de l’unité de bus, soit temporairement rangés dans un registre de 32 bits (double mot). La saisie d’opérandes dans un registre beaucoup plus rapide (une fraction de cycle d’horloge) qu’à partir de la mémoire, où elle prend au moins deux cycles.
L’unité de contrôle interprète les éléments de microcode reçus de la queue des instructions. Elle contient l’ensemble du microcode du microprocesseur, sorte de jeu de commandes de bas niveau qui détaille les fonctions à exécuter pour chaque instruction. Ainsi, le microcode de l’instruction ADD demande l’intervention de l’unité arithmétique et logique et celle de l’unité de bus pour aller chercher les deux opérandes en mémoire et ranger le résultat en un autre endroit de la mémoire. De nombreuses instructions ne réclament qu’un cycle d’horloge car elles ne nécessitent qu’une ligne de microcode.
L’unité de décodage prend les instructions de la queue de préextraction et, dans un processus à deux étapes, les traduit en une série de signaux de bas niveau et d’éléments de microcode. Les instructions ainsi décodées sont placées dans la queue des instructions d’où elles seront prélevées par l’unité de contrôle. La plupart des instructions du microprocesseur peuvent être décodées en un seul cycle d’horloge.
L’unité de gestion mémoire contient les circuits de segmentation et de pagination destinés à traduire les adresses internes logiques en adresses externes physiques utilisables par l’unité de bus lors de la génération d’un cycle. Les adresses logiques, utilisées par le logiciel et les unités internes pour suivre l’information traitée, sont traduites par les circuits de segmentation en adresses linéaires, sur demande de l’unité de contrôle. Si la pagination est active, les circuits de pagination traduisent ces adresses linéaires en adresses physiques. Dans le cas contraire, adresse linéaire et adresse physique ne font qu’une. Les adresses physiques sont transmises à l’unité de bus pour retransmission aux autres organes du PC.
L’unité de bus est responsable de l’échange d’informations entre le bus externe du microprocesseur et ses unités internes. Elle gère les requêtes internes telles que les transferts de données depuis l’unité de contrôle ou les préextractions d’instructions depuis l’unité de préextraction. En outre, l’unité de bus émet les signaux d’adresses, de données et de contrôle constituant un cycle de bus du microprocesseur, utilisé pour communiquer avec les contrôleurs, la mémoire et les E/S.
Le plein emploi des divers organes du microprocesseur, dans le traitement des instructions et des données, est assuré par l’unité de préextraction. Lorsque l’unité de bus n’est pas occupée par l’exécution d’une instruction, l’unité de préextraction l’utilise pour charger séquentiellement les quelques instructions suivantes du programme destinées aux autres unités. Les instructions ainsi présaisies sont rangées dans une zone du microprocesseur appelée queue de préextraction. La préextraction supprime pratiquement le temps que devraient passer les autres unités à attendre la prochaine instruction.
Chaque instruction est traitée séquentiellement dans le microprocesseur. Pour accroître l’efficacité du traitement, chaque unité interne peut fonctionner en parallèle avec les autres, de façon que plusieurs instructions, chacune à un stade différent de son exécution, puissent être traitées en même temps dans le microprocesseur. On dit alors que les instructions sont traitées en pipeline.