Introduction aux
Architectures des
Ordinateurs
1. Programme, instruction et donnée
En général, le mot « programme » est utilisé pour désigner un plan ou une séquence
d’opérations à réaliser. Un programme est un ensemble d’instructions rangées dans l’ordre en
mémoire de l’ordinateur. Ceci implique que les instructions qui doivent s’exécuter les unes à la
suite des autres et doivent être rangées à des adresses successives dans la mémoire. Lors de
l’exécution d’une instruction située à l’adresse α, l’ordinateur enchaine automatiquement sur
l’exécution de l’instruction située à l’adresse α+1, sauf dans le cas d’une rupture de séquence.
L’exécution des instructions consiste en général à traiter des données, elles aussi sont
enregistrées en mémoire. Les données sont accessibles grâce à leurs adresses et ne sont pas
nécessairement stockées à des endroits successifs. Une adresse est une valeur entière indiquant
la position de la case mémoire où se trouve une donnée ou une instruction. En général, on
distingue trois types d’instructions :
– Les instructions de traitement portant sur des opérandes en mémoire, comportant
essentiellement les opérations arithmétiques et l’opération de rangement en mémoire.
– Les instructions de rupture de séquence permettant de rompre l’enchainement séquentiel des
instructions et de passer à une autre partie du programme si certaines conditions sont
réalisées.
– Les instructions d’échange permettant le transfert des informations entre l’ordinateur et
l’utilisateur.
2. Architecture de Von Neumann
L’architecture de Von Neumann (cf. figure 1) met en fonctionnement quatre éléments
fondamentaux : l’unité de traitement, l’unité de contrôle, l’unité d’échange (ou unité
1/6
d’entrée/sortie) et la mémoire centrale. Cette dernière stocke deux types d’informations : les
instructions du programme que la machine devra exécuter et les données sur lesquelles la
machine effectuera les traitements dictés par les instructions. A ces deux types d’informations se
chargent deux unités distinctes : l’unité de contrôle (appelée aussi unité de commande) et l’unité
de traitement. L’unité de contrôle permet d’extraire à partir de la mémoire centrale l’instruction
à exécuter ; l’analyser et établir les connexions électriques correspondantes ; extraire à partir de
la mémoire centrale les données sur lesquelles porte l’instruction ; déclencher le traitement de
ces données dans l’unité de traitement ; et ranger éventuellement les résultats de calcul dans la
mémoire centrale. L’unité de traitement effectue sur les données qu’elle reçoit les traitements
commandés par l’unité de contrôle.
L’unité de contrôle et l’unité de traitement forment en général un seul ensemble dans un
ordinateur. On appelle cet ensemble par unité centrale ou CPU (Central Processing Unit).
Quelques fois, on désigne par unité centrale l’ensemble : unité de contrôle, unité de traitement et
la mémoire centrale.
Figure 1 : Architecture de Von Neumann
2.1. CPU
Le CPU constitue le cœur de l’ordinateur. Il se charge de l’exécution des programmes et de la
coordination entre les différents organes de l’ordinateur. Il est composé de deux parties : la
partie opérative qui correspond à l’unité de traitement, et la partie de commande qui correspond
à l’unité de contrôle.
2.1.1. Unité de traitement
L’unité de traitement (cf. figure 2) se charge d’effectuer les traitements dictés par les
instructions. Ces traitements se résument en des opérations arithmétiques (addition, soustraction,
multiplication, etc.) et logiques (comparaison, ET logique, etc.). Elle est essentiellement
composée de : (1) un ensemble de circuits logiques permettant de réaliser les différentes
2/6
opérations arithmétiques et logiques. Ces circuits composent ce qu’on appelle UAL (Unité
Arithmétique et Logique) ; (2) registre accumulateur (ACC) permettant de contenir l’opérande
de l’instruction en cours d’exécution et les résultats intermédiaires ; (3) registre indicateur (IND)
permettant de mémoriser l’état du registre ACC ; et (4) un ensemble de registres généraux
servant généralement à contenir les opérandes.
Figure 2 : Unité de traitement
Pour effectuer les différents calculs, l’unité de traitement dispose de plusieurs registres
permettant de contenir provisoirement les opérandes (données) requis par les calculs. Une fois,
les opérandes sont stockés dans les registres de cette unité, un signal de commande (provenant
du bus de commande) précisant l’opération à effectuer va activer le circuit logique permettant de
réaliser l’opération. Par exemple s’il s’agit d’une addition, c’est le circuit additionneur qui sera
activé. Etant donné que cette unité dispose de plusieurs registres généraux, un dispositif de
sélection (DS) permet de sélectionner celui qui est concerné par l’opération pour soit lui affecter
un opérande en provenance de la mémoire centrale ou y accéder pour récupérer un opérande
pour le stocker en mémoire centrale ou bien l’utiliser dans l’UAL pour obtenir un résultat de
traitement. Le registre ACC est également utilisé par les instructions de branchement pour
réaliser des ruptures de séquences au niveau de l’exécution des programmes. Ceci est réalisé
grâce à des tests sur le contenu de ce registre. C’est le registre IND qui indique l’état du registre
ACC. Ce registre est relié à l’unité de contrôle qui s’en sert pour exécuter les instructions de
branchement. Certaines lignes de commandes proviennent de l’unité de contrôle. Ces lignes sont
utilisées pour préciser le type d’opération à réaliser (addition, opération logique, etc.).
2.1.2. Unité de contrôle
Le rôle de l’unité de contrôle (cf. figure 3) est l’exécution des instructions. Elle est composée
essentiellement du registre RI (Registre Instruction) utilisé pour contenir l’instruction à
3/6
exécuter ; registre CO (Compteur Ordinal) utilisé pour contenir l’adresse de la prochaine
instruction à exécuter ; et un circuit logique appelé séquenceur qui se charge d’analyser le code
opération COP de l’instruction (COP est une partie de l’instruction indiquant le type et la nature
du traitement à effectuer) et générer un ensemble de signaux pour activer le circuit concerné à
l’exécution de l’instruction.
Figure 3 : Unité de contrôle
2.2. Mémoire centrale
La mémoire centrale est un dispositif capable d’acquérir des informations, de les stocker (en
binaire) et de les restituer à la demande. La représentation binaire de l’information fait que cette
dernière soit codée suivant une configuration de bits ou chaque bit représente une information
élémentaire de soit « 1 » ou « 0 ». La figure 4 illustre la composition de la mémoire centrale.
Figure 4 : Mémoire centrale
4/6
La mémoire centrale est composée du Registre Adresse Mémoire (RAM), Registre Information
Mémoire (RIM), un dispositif de sélection (SD) et un ensemble de mots mémoire composant la
mémoire centrale. Chaque mot mémoire est composé à son tour d’un ensemble de cellules
chacune permettant de stocker un bit. Afin de repérer les mots mémoires, ces derniers sont
disposés d’une façon ordonnée de sorte qu’à chacun soit associé une adresse.
Pour effectuer une lecture d’une information se trouvant dans un mot mémoire, il est nécessaire
d’indiquer l’adresse de ce mot. Cette adresse, indiquée dans le registre RAM, doit être décodée
pour sélectionner le mot mémoire qui lui correspond (ceci est réalisé grâce au Dispositif de
Sélection DS). Le signal de sélection doit être positionné pour indiquer que la mémoire centrale
est choisie. Dès que le signal de lecture/écriture indique qu’il s’agit d’une lecture, l’information
se trouvant dans le mot sélectionné est dupliquée dans le registre RIM. Une fois dans le registre
RIM, l’information peut être mise sur le bus de données pour qu’elle soit conduite vers une autre
unité de l’ordinateur.
2.3. Unité d’échange
Lorsque l’unité contrôle rencontre une instruction d’échange d’informations avec l’extérieur
(instruction d’entrée/sortie), elle commande les unités d’échange. Il existe deux types d’unités
d’échange : les mémoires auxiliaires et les unités de communication. Les mémoires auxiliaires
sont aussi appelées mémoires secondaires par opposition à la mémoire centrale, et dont les
capacités de stockage sont de loin plus importantes que celle de la mémoire centrale. Elles sont
utilisées pour stocker d’une manière permanente l’information (disque dur, lecteur DVD, disque
amovible, etc.). Les unités de communication ont pour rôle de communiquer l’information soit
depuis l’ordinateur (mémoire centrale) vers l’utilisateur ou l’inverse (clavier, souris, écran,
imprimante, etc.).
3. Cycle d’exécution d’une instruction
L’exécution d’un programme s’effectue en exécutant instruction par instruction jusqu’à la fin du
programme. L’exécution d’une instruction se fait à travers trois étapes : (1) recherche de
l’instruction, (2) décodage et exécution de l’instruction, et (3) préparation de l’instruction
suivante.
La phase de recherche d’instruction est la même pour tous les différents types d’instructions,
elle suppose que le CO contient l’adresse de l’instruction :
1. Transférer l’adresse se trouvant dans le CO vers le registre RAM.
2. Commander à la mémoire centrale une lecture de l’information se trouvant dans le mot
mémoire indexé par la valeur contenue dans le registre RAM. A l’issue de la commande de
lecture, la mémoire centrale va délivrer dans le registre RIM l’instruction demandée.
5/6
3. L’instruction va être ensuite conduite vers le registre RI.
La phase de décodage et d’exécution dépend de la nature de l’instruction à exécuter (instruction
de calcul, transfert, appel système, etc.). En général, elle se déroule comme suit :
1. Le séquenceur analyse et décode le code opération de l’instruction.
2. Après le décodage, le séquenceur génère en plusieurs étapes dans le temps un ensemble de
signaux de commandes qui vont permettre d’activer les circuits concernés par le traitement.
3. La dernière phase est la préparation de la prochaine instruction à exécuter. Cette phase
consiste à mettre à jour le contenu de CO par l’adresse de la prochaine instruction à exécuter.
Cette adresse soit elle est obtenue par une incrémentation du CO si l’exécution se fait d’une
manière séquentielle, ou soit elle provient de l’actuelle instruction s’il s’agit d’une rupture de
séquence.
4. Modes d’adressage
Il y a généralement, plusieurs types de donnée représentés par les opérandes : donnée immédiate
stockée dans l’instruction machine, donnée dans un registre de l’unité de contrôle, ou donnée
stockée à une adresse en mémoire centrale. L’accès à ces données nécessite l’usage d’un
mécanisme d’adressage. Il en existe principalement quatre modes :
– Adressage immédiat : la valeur de la donnée est stockée dans l’instruction. Cette valeur est
donc copiée de la mémoire centrale vers l’unité de traitement lors de la phase de chargement
de l’instruction.
– Adressage direct : la valeur de la donnée est stockée à une adresse en mémoire centrale.
C’est cette adresse qui est représentée dans l’instruction.
– Adressage indirect : la valeur de la donnée est stockée à une adresse α en mémoire centrale.
Cette adresse est stockée dans un registre R ou à une autre adresse β. C’est R ou β qui est
stocké dans l’instruction (β est appelé pointeur). L’adressage indirect par registre est présent
dans la totalité des unités de contrôle, par contre, l’adressage indirect par mémoire est moins
fréquent.
6/6
– Adressage indexé (ou basé) : il est parfois nécessaire d’accéder à des données situées à des
adresses consécutives en mémoire centrale. En adressage indexé, on charge un registre
d’index avec l’adresse de début de cette zone de données, ensuite on spécifie dans
l’instruction le déplacement à réaliser à partir de cet index. L’adresse réelle de la donnée est
donc égale à l’adresse de l’index ajouté au déplacement. Certaines unités de contrôle
exécutent automatiquement l’incrémentation ou la décrémentation de leurs registres d’index
ce qui permet de réaliser des transferts ou d’autres opérations sur des zones (chaînes de
caractères).
7/6