0% ont trouvé ce document utile (0 vote)
6 vues13 pages

Ao_cours2

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1/ 13

Architecture et technologie des

ordinateurs
Chapitre 2: Architecture du processeur

Chargé de cours:
Dr. ATTA Amanvon Ferdinand
Institut Universitaire d’Abidjan
Année académique 2024-2025

Rentrée de Septembre 2024

Note
Ce document est un ensemble de notes de cours du chapitre 2 du cours intitulé
Architecture et technologie des ordinateurs délivré par Dr. ATTA Amanvon Ferdinand
durant le Licence I MIAGE 2024-2025. S’il vous plaît, envoyez vos commentaires et/ou
corrections à ferdinand.atta@outlook.fr

Fools ignore complexity.


Pragmatists suffer it. Some can
avoid it. Geniuses remove it.

(Alan J. Perlis)

1
TABLE DES MATIÈRES Processeur

Table des matières


1 Introduction 3

2 Composants du Processeur 3
2.1 L’Unité de Contrôle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 L’Unité Arithmétique et Logique (ALU) . . . . . . . . . . . . . . . . . . . 5
2.3 Les bus de communication . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4 Les Registres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3 Structure d’une Instruction 7


3.1 Structure typique d’une instruction . . . . . . . . . . . . . . . . . . . . . . 7
3.2 Exemple d’instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.3 Formats d’instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.4 Exemple détaillé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

4 Traitement d’une Instruction 9

5 Notion d’architecture RISC et CISC 11


5.1 L’architecture CISC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5.1.1 Pourquoi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5.1.2 Comment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5.1.3 Avantages et inconvénients . . . . . . . . . . . . . . . . . . . . . . 11
5.2 L’architecture RISC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.2.1 Pourquoi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.2.2 Comment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.2.3 Avantages et inconvénients . . . . . . . . . . . . . . . . . . . . . . 12
5.3 Comparaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

6 Conclusion 13

©Dr. ATTA - Toute reproduction interdite 2/ 13


2 COMPOSANTS DU PROCESSEUR Processeur

1 Introduction
Un processeur est un circuit intégré complexe caractérisé par une très grande intégration
et doté des facultés d’interprétation et d’exécution des instructions d’un programme. Il est
chargé d’organiser les tâches précisées par le programme et d’assurer leur exécution. Il doit
aussi prendre en compte les informations extérieures au système et assurer leur traitement.
C’est le cerveau du système.
Les objectifs de la leçon sont les suivants :

— Comprendre les composants d’un processeur.


— Appréhender le fonctionnement de l’unité de contrôle et de l’unité arithmétique et
logique (ALU).
— Étudier le déroulement d’une instruction et l’importance des registres.
— Se familiariser avec les cycles d’exécution des instructions.

2 Composants du Processeur
Le processeur exécute les instructions d’un programme. Cette tâche est réalisée par deux
blocs principaux : l’unité de contrôle et l’Unité Arithmétique et Logique (ALU). La figure
1 illustre l’architecture simplifiée d’un processeur.

Figure 1 – Architecture simplifiée d’un processeur

2.1 L’Unité de Contrôle


Cette unité a pour rôle de gérer le bon déroulement du ou des programmes en cours. Elle
doit donc prendre en compte, les unes après les autres, chacune des instructions ; décoder
l’instruction en cours, lancer les ordres (microcommandes) aux composants du système qui
participent à la réalisation de cette instruction ; puis aller chercher une nouvelle instruction

©Dr. ATTA - Toute reproduction interdite 3/ 13


2 COMPOSANTS DU PROCESSEUR Processeur

Figure 2 – Architecture simplifiée de l’unité de commande

et recommencer. Pour cela l’unité de commande ou de contrôle est constituée d’un certain
nombre de composants internes qui assurent chacun une fonction bien déterminée.

— Le registre instruction : L’instruction que l’unité de commande va devoir traiter est


chargée préalablement dans un registre particulier appelé registre instruction.
— Un décodeur : C’est lui qui va interpréter l’instruction contenue dans le registre d’ins-
truction (RI). C’est-à-dire quelle est l’opération à effectuer (Addition, branchement
etc. . .) Et comment aller chercher les opérandes requises pour cette opération (par
exemple, les nombres à additionner).
— Le séquenceur : En fonction de l’instruction à traiter – qui vient d’être chargée dans
le registre instruction – l’unité de commande va devoir émettre un certain nombre
de microcommandes vers les autres composants du système. Ces ordres ne seront
bien évidemment pas émis n’importe quand, ni vers n’importe quel composant, mais
respectent une chronologie bien précise selon le type d’instruction à exécuter. Cette
chronologie (séquencement) est rythmée par une horloge interne au système. On
comprend intuitivement que plus cette fréquence est élevée et plus l’unité centrale
de traitement travaille « vite » – mais ce n’est pas le seul facteur de rapidité. Le com-
posant qui émet ces microcommandes – en fonction du code opération (préalablement
décodé) de l’instruction située dans le registre instruction – est le séquenceur, qui,
comme son nom le laisse entendre envoie une séquence de microcommandes vers les
composants impliqués par l’instruction.
— Le registre d’état : Pour exécuter correctement son travail, le séquenceur doit en
outre connaître l’état d’un certain nombre d’autres composants et disposer d’informa-
tions concernant la ou les opérations qui ont déjà été exécutées (par exemple, doit-on
tenir compte dans l’addition en cours d’une éventuelle retenue préalable générée par
une addition précédente). La connaissance de ces informations se fait à l’aide d’un
autre composant appelé registre indicateur ou, plus couramment registre d’état, et
qui, grâce à des indicateurs (drapeaux ou flags), qui ne sont en fait que des registres
de bascules, va mémoriser certaines informations telles que retenue préalable, impa-
rité, résultat nul, etc.
— Le compteur ordinal : Quand le séquenceur a fini de générer les microcommandes
nécessaires, il faut qu’il déclenche le chargement, dans le registre instruction, d’une
nouvelle instruction. Pour cela il dispose d’un registre « compteur d’instructions »

©Dr. ATTA - Toute reproduction interdite 4/ 13


2 COMPOSANTS DU PROCESSEUR Processeur

(qui en fait serait plutôt un « pointeur » d’instructions). Ce registre porte le nom


de compteur ordinal (Program Counter ou Instruction Pointer). Il s’agit d’un registre
spécialisé, qui est chargé automatiquement par le système lors du lancement d’un pro-
gramme, avec l’adresse mémoire de la première instruction du programme à exécuter.
Par la suite, à chaque fois qu’une instruction a été chargée dans le registre instruction
et qu’elle s’apprête à être exécutée, ce compteur ordinal est incrémenté (augmenté)
de manière à pointer sur l’adresse de la prochaine instruction à exécuter.

2.2 L’Unité Arithmétique et Logique (ALU)


L’ALU effectue les opérations arithmétiques et logiques, telles que l’addition, la soustrac-
tion, la multiplication, la division, ainsi que les opérations logiques (ET, OU, OUX). La
figure 3 montre un exemple d’ALU.

Figure 3 – Exemple d’ALU (UAL)

Les nombres A et B constituent les deux opérandes. Le nombre C constitue le code de la


fonction à réaliser. Le nombre S est le résultat de l’opération. Re et Rs sont les retenues
entrante et sortante. OVR indique qu’il y a un dépassement. La Figure 4 résume le fonction-
nement de cette ALU.

Figure 4 – Résumé fonctionnement ALU

2.3 Les bus de communication


Les composants du processeur communiquent entre eux et avec les composants extérieurs
à l’UC à l’aide de liaisons électriques (fils, circuits imprimés ou liaisons dans le circuit

©Dr. ATTA - Toute reproduction interdite 5/ 13


2 COMPOSANTS DU PROCESSEUR Processeur

intégré), qui permettent le transfert des informations électriques binaires. Ces ensembles de
« fils » constituent les bus :
— Le bus d’adresses permet au processeur de désigner l’adresse d’un octet en mémoire.
Selon le cas, il peut s’agir de l’adresse d’un ou de plusieurs octets à charger dans le
processeur ou à stocker en mémoire.
En d’autres termes, Le bus d’adresses (Address Bus) comme son nom l’indique, est
destiné à véhiculer des adresses, que ce soit l’adresse de l’instruction à charger dans
le registre instruction, ou celle de la donnée à charger dans un registre particulier ou
à envoyer sur une entrée de l’UAL. La largeur du bus d’adresses détermine la taille
de la mémoire qui sera directement adressable (adressage physique) par le micropro-
cesseur. Ainsi, avec un bus d’adresses d’une largeur de 16 bits on peut obtenir 216
combinaisons soit autant de cellules mémoires où loger instructions ou données (avec
un bus d’adresses de 32 bits on peut ainsi adresser 4 Go de mémoire physique). Dans
ce type de bus les adresses ne circulent que dans le sens unité centrale vers mémoire,
ce bus est dit unidirectionnel.
— Le bus de données permet de désigner la valeur à charger dans le processeur ou à
stocker en mémoire.
En d’autres termes, Le bus de données (Data Bus) permet, comme son nom l’indique,
le transfert de données (instructions, ou données à traiter) entre les composants du sys-
tème. Suivant le nombre de « fils » que compte le bus, on pourra véhiculer des mots de
8, 16, 32 ou 64 bits. Ce nombre de bits pouvant circuler en même temps (en parallèle)
détermine ce que l’on appelle la largeur du bus. Les informations pouvant circuler
dans les deux sens sur un tel bus (de la mémoire vers l’unité centrale ou de l’unité
centrale vers la mémoire par exemple), le bus de données est dit bidirectionnel.
— Le bus de commande permet au processeur de désigner l’opération à effectuer, char-
gement dans le processeur ou stockage en mémoire.

2.4 Les Registres


Les registres sont des unités de mémorisation d’un mot machine dont la taille dépend des
processeurs, on trouve des registres de 8 bits, 16 bit et 32 bits. Certains registres servent
à stocker les codes d’instruction, d’autres servent à stocker les donnés constituant les opé-
randes et les résultats des opérations. D’autres servent à stocker les adresses permettant
d’accéder aux opérandes sur la mémoire centrale. Voici quelques registres clés :
— PC : (program counter) ou Compteur Ordinal CO. C’est lui qui contient l’adresse de
la prochaine instruction à exécuter.
— RI : Registre d’instruction
— GPR : Ce sont des registres de travail, (general propose register) ils permettent de
sauvegarder les résultats intermédiaires de calcul.
— ACC : Accumulateur. La majorité des instructions d’un CPU qui possède un ac-
cumulateur s’exécutent soit sur l’accumulateur seul soit entre l’accumulateur et un
deuxième opérande. Le résultat de l’opération est stocké sur l’accumulateur. Certain
CPU possèdent plusieurs accumulateurs.

©Dr. ATTA - Toute reproduction interdite 6/ 13


3 STRUCTURE D’UNE INSTRUCTION Processeur

— XR : Registre d’index. Ce registre peut être utilisé comme un registre GPR. En plus
on dispose d’instructions permettant de l’incrémenter ou de le décrémenter. En plus
il a une fonction spéciale qui d’une grande utilité dans la manipulation des tableaux
de données. Il est en effet utilisé comme paramètre pour calculer les adresse suivant
une forme particulière d’adressage appelée adressage indexé.
— RE : Registre d’état appelé aussi registre de condition. Il est formé de plusieurs bits
appelés drapeaux qui sont positionné par l’ALU après chaque opération. On dispose
d’un jeux d’instruction conditionnées par l’état de différents drapeaux. Par exemple
le bit indicateur Z indique quand il est positionné que le résultat de l’opération est
égal à Zéro. Le bit C indique que l’opération éxécutée à produit une retenue. Lz bit O
indique un dépassement de capacité dans l’ACC est que le résultat est faux. Le bit N
indique que le résultat est négatif . . .
— SP : pointeur de pile (Stack Pointer). Ce registre pointe (contient l’adresse) sur une
zone mémoire qu’on appelle pile (LIFO) dans laquelle le processeur (ou le program-
meur) peut sauvegarder momentanément des données sans être obliger de gérer le
problème d’adressage.

3 Structure d’une Instruction


La structure d’une instruction machine se compose de plusieurs champs qui indiquent l’opé-
ration à effectuer et les données nécessaires pour l’exécuter. Une instruction est une com-
mande que le processeur doit exécuter, et elle se décompose généralement en deux parties
principales : le code opération (opcode) et les opérandes.

3.1 Structure typique d’une instruction


— Code opération (Opcode) :
— C’est la partie de l’instruction qui indique au processeur quelle opération effec-
tuer (addition, soustraction, déplacement de données, etc.).
— L’opcode est généralement un nombre binaire ou hexadécimal correspondant à
une opération spécifique dans le jeu d’instructions du processeur.
— Par exemple, dans une architecture simple, 0010 pourrait représenter une addi-
tion, et 0011 pourrait représenter une soustraction.
— Opérandes :
— Ce sont les éléments sur lesquels l’opération est effectuée. Une instruction peut
avoir un ou plusieurs opérandes.
— Les opérandes peuvent être des registres, des adresses mémoire, ou des valeurs
immédiates (des données directement dans l’instruction).
— Exemples d’opérandes :
— Registre : Indique que l’opérande se trouve dans un registre interne du pro-
cesseur.

©Dr. ATTA - Toute reproduction interdite 7/ 13


3 STRUCTURE D’UNE INSTRUCTION Processeur

— Adresse mémoire : Indique que l’opérande est stocké à une adresse spéci-
fique en mémoire.
— Valeur immédiate : Une donnée directement incluse dans l’instruction.

3.2 Exemple d’instruction


Une instruction simple pourrait ressembler à ceci : ADD R1, R2
— ADD est l’opcode (addition).
— R1 et R2 sont les opérandes, indiquant que le contenu du registre R1 et R2 doit être
additionné.
Un autre exemple pourrait être : MOV R1, 0x05
— MOV est l’opcode (déplacer une valeur).
— R1 est l’opérande destination (le registre).
— 0x05 est une valeur immédiate à déplacer dans R1.

3.3 Formats d’instruction


Les instructions peuvent avoir différents formats selon l’architecture du processeur. Voici
trois formats typiques :

— Format à une adresse :


— Instruction avec un seul opérande, souvent utilisée dans les architectures avec un
accumulateur. L’accumulateur est implicitement utilisé comme deuxième opé-
rande.
— Exemple : ADD 0x34 (ajoute la valeur stockée à l’adresse 0x34 à l’accumula-
teur).
— Format à deux adresses :
— L’instruction a deux opérandes : l’un est souvent une adresse mémoire ou un
registre source, et l’autre un registre destination.
— Exemple : MOV R1, R2 (copie le contenu du registre R2 dans le registre R1).
— Format à trois adresses :
— Cette structure permet d’avoir deux opérandes et un emplacement distinct pour
stocker le résultat.
— Exemple : ADD R1, R2, R3 (ajoute R2 et R3, stocke le résultat dans R1).

3.4 Exemple détaillé


Prenons l’instruction suivante dans une machine 16 bits :

ADD R1, R2

©Dr. ATTA - Toute reproduction interdite 8/ 13


4 TRAITEMENT D’UNE INSTRUCTION Processeur

— Opcode (code opération) : ADD — Cet opcode demande au processeur d’effectuer


une addition.
— Opérandes : R1 et R2 — Ces registres contiennent les données à additionner.
En hexadécimal, cette instruction pourrait être représentée par une séquence comme 0x14AB,
où 0x14 est le code opération (ADD), A et B sont les codes des registres R1 et R2.

4 Traitement d’une Instruction


Le processeur ne comprend qu’un certain nombre d’instructions qui sont codées en binaire.
Le traitement d’une instruction peut être décomposé en trois phases.
— Phase 1 : Recherche de l’instruction à traiter
1. Le PC contient l’adresse de l’instruction suivante du programme. Cette valeur
est placée sur le bus d’adresses par l’unité de commande qui émet un ordre de
lecture.
2. Au bout d’un certain temps (temps d’accès à la mémoire), le contenu de la case
mémoire sélectionnée est disponible sur le bus des données.
3. L’instruction est stockée dans le registre instruction du processeur.

Figure 5 – Exemple phase 1

— Phase 2 : Décodage de l’instruction et recherche de l’opérande


Le registre d’instruction contient maintenant le premier mot de l’instruction qui peut
être codée sur plusieurs mots. Ce premier mot contient le code opératoire qui définit
la nature de l’opération à effectuer (addition, rotation,...) et le nombre de mots de
l’instruction.
1. L’unité de commande transforme l’instruction en une suite de commandes élé-
mentaires nécessaires au traitement de l’instruction.

©Dr. ATTA - Toute reproduction interdite 9/ 13


4 TRAITEMENT D’UNE INSTRUCTION Processeur

2. Si l’instruction nécessite une donnée en provenance de la mémoire, l’unité de


commande récupère sa valeur sur le bus de données.
3. L’opérande est stockée dans un registre.

Figure 6 – Exemple phase 2

— Phase 3 : Exécution de l’instruction


1. Le micro-programme réalisant l’instruction est exécuté.
2. Les drapeaux sont positionnés (registre d’état).
3. L’unité de commande positionne le PC pour l’instruction suivante.

Figure 7 – Exemple phase 3

©Dr. ATTA - Toute reproduction interdite 10/ 13


5 NOTION D’ARCHITECTURE RISC ET CISC Processeur

5 Notion d’architecture RISC et CISC


Actuellement l’architecture des microprocesseurs se composent de deux grandes familles :
— L’ architecture CISC (Complex Instruction Set Computer)
— L’architecture RISC (Reduced Instruction Set Computer)

5.1 L’architecture CISC


5.1.1 Pourquoi
Par le passé la conception de machines CISC était la seule envisageable. En effet, vue que
la mémoire travaillait très lentement par rapport au processeur, on pensait qu’il était plus
intéressant de soumettre au microprocesseur des instructions complexes. Ainsi, plutôt que
de coder une opération complexe par plusieurs instructions plus petites (qui demanderaient
autant d’accès mémoire très lent), il semblait préférable d’ajouter au jeu d’instructions du
microprocesseur une instruction complexe qui se chargerait de réaliser cette opération. De
plus, le développement des langages de haut niveau posa de nombreux problèmes quant à la
conception de compilateurs. On a donc eu tendance à incorporer au niveau processeur des
instructions plus proches de la structure de ces langages.

5.1.2 Comment
C’est donc une architecture avec un grand nombre d’instructions où le microprocesseur doit
exécuter des tâches complexes par instruction unique. Pour une tâche donnée, une machine
CISC exécute ainsi un petit nombre d’instructions mais chacune nécessite un plus grand
nombre de cycles d’horloge. Le code machine de ces instructions varie d’une instruction à
l’autre et nécessite donc un décodeur complexe (micro-code).

5.1.3 Avantages et inconvénients

Avantages
— Peu instructions par programme : Grâce à des instructions complexes, un programme
écrit pour une architecture CISC peut utiliser moins d’instructions.
— Flexibilité : Le nombre d’instructions et de modes d’adressage permet une plus grande
flexibilité dans le développement logiciel.

Inconvénients
— Exécution plus lente par instruction : Chaque instruction complexe peut prendre
plusieurs cycles d’horloge pour s’exécuter, ce qui peut rendre l’exécution plus lente
par rapport aux processeurs RISC.
— Matériel plus complexe : La gestion des instructions complexes et du microcodage
rend le matériel plus compliqué et plus coûteux à produire.

©Dr. ATTA - Toute reproduction interdite 11/ 13


5 NOTION D’ARCHITECTURE RISC ET CISC Processeur

5.2 L’architecture RISC


5.2.1 Pourquoi
Des études statistiques menées au cours des années 70 ont clairement montré que les pro-
grammes générés par les compilateurs se contentaient le plus souvent d’affectations, d’ad-
ditions et de multiplications par des constantes. Ainsi, 80% des traitements des langages
de haut niveau faisaient appel à seulement 20% des instructions du microprocesseur. D’où
l’idée de réduire le jeu d’instructions à celles le plus couramment utilisées et d’en améliorer
la vitesse de traitement.

5.2.2 Comment
C’est donc une architecture dans laquelle les instructions sont en nombre réduit (charge-
ment, branchement, appel sous-programme). Les architectures RISC peuvent donc être réa-
lisées à partir de séquenceur câblé. Leur réalisation libère de la surface permettant d’aug-
menter le nombres de registres ou d’unités de traitement par exemple. Chacune de ces ins-
tructions s’exécutent ainsi en un cycle d’horloge. Bien souvent, ces instructions ne disposent
que d’un seul mode d’adressage. Les accès à la mémoire s’effectue seulement à partir de
deux instructions (Load et Store). Par contre, les instructions complexes doivent être réa-
lisées à partir de séquences basées sur les instructions élémentaires, ce qui nécessite un
compilateur très évolué dans le cas de programmation en langage de haut niveau.

5.2.3 Avantages et inconvénients

Avantages
— Performance élevée : Grâce à l’exécution rapide des instructions en un seul cycle
d’horloge, les processeurs RISC offrent une haute performance par cycle.
— Moins de complexité matérielle : La simplification des instructions permet de conce-
voir des processeurs plus simples et moins coûteux en termes de ressources maté-
rielles.

Inconvénients
— Plus d’instructions pour certaines tâches : Certaines opérations complexes néces-
sitent plusieurs instructions simples, ce qui peut augmenter le nombre total d’instruc-
tions pour des tâches complexes.

5.3 Comparaison
Le choix dépendra des applications visées. En effet, si on diminue le nombre d’instructions,
on crée des instructions complexes (CISC) qui nécessitent plus de cycles pour être déco-
dées et si on diminue le nombre de cycles par instruction, on crée des instructions simples
(RISC) mais on augmente alors le nombre d’instructions nécessaires pour réaliser le même
traitement.

©Dr. ATTA - Toute reproduction interdite 12/ 13


6 CONCLUSION Processeur

Table 1 – Comparaison entre RISC et CISC

RISC (Reduced Instruction CISC (Complex Instruction


Critère
Set Computer) Set Computer)
Ensemble d’instruc-
Simple, réduit Complexe, large
tions
Cycles d’horloge par Généralement un seul cycle Plusieurs cycles pour des ins-
instruction par instruction tructions complexes
Très efficace, facile à implé- Moins efficace, plus difficile à
Pipeline
menter implémenter
Peut accéder à la mémoire
Opérations principalement
Accès mémoire directement dans les instruc-
entre registres
tions
Complexité du maté- Matériel plus complexe et
Simplicité du matériel
riel plus coûteux
Taille des pro- Plus grande car plus d’ins- Plus petite car chaque instruc-
grammes tructions simples tion est plus puissante
Exemples ARM, MIPS, SPARC x86, VAX, IBM System/370

6 Conclusion
Le processeur est l’un des composants principaux constitué de deux grands blocs (UAL&UC)
et qui est chargé de l’exécution des programmes.

©Dr. ATTA - Toute reproduction interdite 13/ 13

Vous aimerez peut-être aussi