CHAPITRE 3 L`UNITE DE TRAITEMENT ( CPU)

publicité
CHAPITRE 3
L’UNITE DE TRAITEMENT ( CPU)
Introduction :
L’unité centrale de traitement (UCT) appelée aussi processeur central (Central Processing
Unit = CPU) est l’élément moteur de l’ordinateur qui interprète et exécute les instructions
du programme. Il est intimement associé à la mémoire centrale ou sont stockées ces
instructions avec leurs données à traiter elle est composée de deux unités fonctionnelles.
 L’unité arithmétique et logique (UAL) qui effectue les opérations arithmétiques et
logiques.
 L’unité de contrôle et de commande (UCC) qui commande l’exécution de toutes les
opérations à tous les niveaux (UAL, MC, E/S) ainsi que le contrôle de leur
déroulement.
Comment fonctionne l’ensemble UCC et UAL ?
On suppose un programme en cours d’exécution, les instructions et les données sont stockées
en mémoire centrale à des adresses bien définies, comment se déroule l’exécution d’une
instruction ?





L’unité de contrôle et commande cherche en mémoire centrale l’instruction en lui
envoyant une adresse et une commande.
L’instruction est transférée vers l’UCC pour décodage, qui va déterminer l’opération à
exécuter.
Des signaux sont envoyés à l’UAL pour déclencher l’opération.
Les données nécessaires sont acheminées de la mémoire centrale MC vers l’unité
arithmétique et logique (UAL).
Une fois l’exécution terminée, les résultats sont envoyés à la mémoire centrale.
Exemple :
On considère le programme PASCAL suivant :
Begin
Read(a) ;
Read(b) ;
S :=a+b ;
Write(S)
End.
1
Une fois le programme lancé, l’unité de traitement commande d’introduire les données en
mémoire qui seront introduites par clavier et occupent des emplacements en mémoire
centrale.
l’exécution de l’instruction S :=a+b engendre les opérations suivantes :
 Transfert de l’instruction vers l’UCC ou elle est décodée.
 Transfert des deux opérandes vers l’UAL .
 Exécution de l’opération d’addition.
 Transfert du résultat vers la mémoire
L’instruction Write(S) engendre :


Une commande de lecture du contenu de la variable S en mémoire centrale
Une commande d’entrée/sortie adressée au périphérique concerné (écran)
Transfert du contenu de la variable S pour son affichage sur écran.
Begin et End annoncent le début et la fin du programme.
1-L’unité arithmétique et logique UAL
Elle effectue des opérations arithmétiques et logiques, elle est dotée de circuits logiques
capables de réaliser les fonctions logiques ET, OU, NON, etc, et des opérations
arithmétiques addition, soustraction, division, décalage, test d’infériorité, supériorité…etc.
Réalisation d’une UAL 1 bit
Pour concevoir une UAL à 1 bit qui traite 4 opérations a ET b, a OU b, NON b, a+b
On doit disposer d’un circuit capable de sélectionner l’opération à exécuter, ce circuit doit
avoir deux entrées F0 et F1, à partir desquelles, on peut effectuer 4 choix (00, 01, 10, 11)
ce circuit ne peut être qu’un décodeur à deux bits.
Pour réaliser l’opération arithmétique A+B, on utilise un circuit appelé additionneur, il doit
prendre en considération une éventuelle retenue.
F0
F1
Décodeur
2
Cette UAL est capable de calculer le ET, le OU de 2 bits, le NON du second bit, et la somme
des 2 bits avec une retenue d’entrée. Le choix parmi ces quatre opérations se fait via les deux
lignes de commandes F0 et F1. Suivant la valeur de ces 2 bits, le décodeur active une des
quatre lignes de sortie, sélectionnant soit une des trois fonctions logiques (a et b,a ou b,
non b) soit la retenue et la sortie de l’additionneur. Ainsi en reliant chacune des trois
premières sorties du décodeur à la porte logique appropriée par une porte AND on active
une des 3 opérations logiques et en reliant la quatrième sortie à l’additionneur par une porte
AND on active l’additionneur et notre schéma complet de l’UAL 1 bit sera le suivant :
retenue
Remarque : pour réaliser une UAL à n bits on a qu’à relier n circuits d’UAL à 1 bits.
Une UAL peut être caractérisée par sa taille et ses possibilités Sa taille, ou largeur, correspond
a la taille maximale des nombres que l’UAL peut traiter Les possibilités de l’UAL
correspondent simplement aux différentes commandes qu’elle reconnaît.
Le constructeur d’un processeur a toujours la possibilité d’étendre les capacités de l’UAL (en
autorisant des opérations plus complexes) ou d’augmenter sa taille (pour permettre la
manipulation de nombres plus grands). Mais cela implique d’utiliser plus de portes logiques et
donc d’occuper plus de place sur la puce, au détriment des autres circuits.
3
2-L’unité de commande et de contrôle UCC :
L’UCC accomplit deux fonctions : commander et contrôler en utilisant des circuits pour
décoder les instructions du programme et les transformer en signaux de commande vers toutes
ces unîtes.
2-1- structure d’une UCC
Les principaux éléments d’une UCC qui lui permettent d’accomplir ces taches sont.
a-Le compteur ordinal (CO)
Le registre CO (Program Counter = PC) contient toujours l’adresse en mémoire de la
prochaine instruction à exécuter. Le CO est automatiquement incrémenté après exécution de
chaque instruction, ainsi le programme est exécuté en séquence à moins qu’il contienne une
instruction modifiant la séquence (par exemple, une instruction de saut ou un branchement).
Dans ce cas, la nouvelle adresse remplacera le contenu du CO.
b- Le registre instruction (RI)
Lorsque le processeur va chercher une instruction en cours d’exécution en mémoire, il la
place dans le RI. La taille du RI correspond à la taille du mot mémoire . Le programmeur n’a
pas accès au RI. Les bits correspondants à la zone « code opération », sont envoyés au
décodeur pour qu’il détermine l’opération à exécuter.
c- Le décodeur :
C’est un circuit combinatoire qui détermine quelle opération doit être effectuée
(étudié en chapitre 2).
d-Le séquenceur :
Le séquenceur est un automate qui génère les signaux de commande nécessaires pour
actionner et contrôler les unités qui participent à l’exécution d’une instruction donnée il peut
être réalisé de 2 façons.
Câblé : circuit séquentiel complexe qui fait correspondre à chaque instruction exécutable un
sous-circuit capable de commander son déroulement. Le sous-circuit approprié est activé par
un signal provenant du décodeur
Microprogrammé : suite de micro-instructions stockées dans une mémoire rapide.
.Ce microprogramme génère une suite de signaux de commandes équivalents à celle produites
par un séquenceur câblé.
e- L’horloge :
Le rôle de l’horloge dans l’UCC est de générer des signaux périodiques qui définissent le
cycle machine qui correspond à la durée élémentaire régissant le fonctionnement de la
machine, il synchronise toutes les actions du processeur.
2-2 Fonctionnement d’une UCC :
Essayons de suivre les étapes d’exécution d’une instruction machine cette instruction
comporte 2 champs.
 Code opération (obligatoire).
 un ou plusieurs champs adresse.
Instruction = code opération + adresse opérande
L’instruction passe par 2 cycles.
- Cycle de recherche : cherche l’instruction et décode.
- Cycle d’exécution : exécution par l’UAL de l’instruction.
4
On résume le cycle de recherche par :
1. Transfert de l’adresse de la nouvelle instruction à exécuter du CO vers le registre
adresse mémoire RA (en MC)
2. Une commande est généré par l’UCC pour lire l’instruction et l’envoyer vers le
registre RM.
3. L’instruction est transférée dans RI (code op + adresse op).
4. Pendant que l’adresse de l’opérande est envoyée vers RA le code opération est
transmis au décodeur qui détermine le type de l’opération et le transmet au
séquenceur.
5. Le CO est incrémenté pour le suivant le cycle de recherche s’il ne s’agit pas d’une
instruction de branchement.
Le cycle d’exécution comprend les étapes suivantes :
1- Le séquencer lance des signaux de commande vers le mémoire pour lire l’opérande à
l’adresse déjà stockée dans le RA et le transférer dans RM.
2- Transfert du contenu de RM vers l’UAL, et plus précisément vers l’accumulateur ou
tout autre registre affecté à l’opération spécifiée.
3- L’opération est effectuée sous contrôle du séquenceur.
4- L’opération est effectuée sous cont
Cycle d’exécution d’une instruction
Cycle de recherche d’une instruction
5
On récapitule le fonctionnement d’un processeur à accumulateur dans le schéma suivant
Schéma général du fonctionnement d’un CPU
3 - Structure d’une instruction machine :
La suite d’instruction écrites dans un langage évolué est traduite en langage machine pour
qu’elles puissent être traitées par la machine, l’instruction machine comporte
 Un champ code opération (obligatoire)
 Un ou plusieurs champs d’adresse.
Le format d’une instruction diffère d’une machine à une autre on emploie souvent
l’expression Machine à n (=0, 1, 2, 3, 4) adresses pour indiquer ce format.
a- Machine à 4 adresses
Ce format a été utilisé dans les premiers ordinateurs
Cod-op
A1
Code-opération @1er opérande
A2
A3
@ 2eme opérande @ résultat
6
A4
@ instr suivante
b- Machine à 3 adresses
Le champ instruction suivante a été supprimé ; c’est le compteur ordinal qui
sauvegarde cette adresse.
c- Machine à 2 adresses
Le champ adresse du résultat a été supprimé et sera placé à la place de celle du 2eme
opérande.
d- Machine à 1 adresse
Dans ce cas le format de l’instruction ne contient qu’une seule adresse c’est l’adresse
de premier opérande, le deuxième opérande se trouve dans l’accumulateur.
e- Machine à 0 adresse (à pile)
Ce type de machine utilise une pile, elle est gérée en utilisant deux instructions a une
adresse.
PUSH X : permet de placer X au sommet de la pile (empiler)
POP X : permet de stocker en mémoire à l’adresse y, la valeur qui se trouve au
sommet de la pile (dépiler)
Remarque : pour exemples et schémas voir TD.
4. Jeu d’instruction et modèles de programmation
Le terme jeu d’instruction (Instuction Set) représente l’ensemble des instructions qu’un
processeur est capable d’exécuter.
4-1 Architecture du jeu d’instructions
Selon que le nombre d’instructions dans le jeu est grand ou réduit, on distingue deux familles
de microprocesseurs :
• les CPU à architecture CISC (Complex Instruction Set Computer) qui signifie
processeurs à jeu d’instructions complexe.
• les CPU à architecture RISC (Reduced Instruction Set Computer ). qui signifie
processeurs à nombre d’instructions réduirts.
Ces deux architectures représentent deux visions différentes ayant chacune avantages et
inconvénients ; dans le tableau suivant on dresse les caractéristiques de chacune.
RISC
CISC
instructions simples ne prenant qu'un seul cycle
instructions complexes prenant plusieurs
cycles
Compilateur complexe
Compilateur simple
Décodeur simple
Décodeur complexe
seules les instructions chargement rangement ont toutes les instructions sont susceptibles
accès à la mémoire
d'accéder à la mémoire
instructions au format fixe
instructions au format variable
beaucoup de registres
peu de registres
peu de modes d'adressage
beaucoup de modes d'adressage
7
Les instructions que l’on retrouve dans chaque microprocesseur peuvent être classées en 4
Catégorie :
1- Transfert de données pour charger ou sauver en mémoire, effectuer des
transferts de registre à registre, etc…
2- Opérations arithmétiques : addition, soustraction, division, multiplication
3- Opérations logiques : ET, OU, NON, NAND, comparaison, test, etc…
4- Contrôle de séquence : branchement, test, appel de procédure etc…
4-2 Modèles de programmation
Sur la plupart des machines, on retrouve deux modèles de programmations
a- Les architectures à registres généraux : les instructions lisent leurs opérandes dans des
registres et y écrivent leurs résultats. Cet ensemble de registres est appelé fichier de
registre généraux.
b- Les architectures à pile : les instructions lisent leurs opérandes et écrivent leurs
résultats dans une pile.
Remarque : voir TD pour exemples.
5-Modes d’adressage
Un mode d'adressage définit la manière dont le microprocesseur va accéder à l’opérande. Les
différents modes d'adressage dépendent des microprocesseurs mais on retrouve en général :
Adressage immédiat
La valeur de l'opérande est contenue dans le champ adresse
Adressage-registre.
Le champ adresse contient le numéro du registre opérande.
Adressage direct
Le champ adresse de l'instruction contient l'adresse effective de l'opérande.
MOV R2, 100 Après cette instruction le registre R2 contiendra le mot qui se situe à l'adresse
100 en mémoire.
Adressage indirect
Le champ adresse contient l'adresse d'un pointeur : mot en mémoire qui contient l'adresse
effective de l'opérande.
MOVE r3, (r2) Après cette instruction r3 contiendra la valeur du mot dont l'adresse est
contenue dans r2
8
Adressage indexé
Ce mode d'adressage est très utile lorsqu'on travaille, par exemple, sur des tableaux.
Adressage relatif
L'adresse effective est obtenue en additionnant le contenu du compteur ordinal au contenu du
champ adresse de l'instruction. Ce type d'adressage est utilisé par exemple dans des
instructions de branchement.
6-Les registres du processeur
En plus des registres cités avec l’UCC et la mémoire centrale on peut citer :
Registre Accumulateur (ACC) :
L’accumulateur est un registre très important de l’UAL. Dans la plupart des opérations
arithmétiques et logiques, l’ACC contient un des opérandes avant l’exécution et le résultat
après. Il peut aussi servir de registre tampon dans les opérations d’E/S. Il est accessible par
programmation.
Registre d’état (RE, PSW = Program Status World)
Appelé aussi registre des indicateurs, le registre d’état contient différents bits appelés
drapeaux (flags) indiquant l’état d’une condition particulière dans la CPU.
• Le bit indicateur ZF indique si le résultat de l’opération effectuée est égal à zéro ;
• le bit indicateur CF indique génération de retenue dans l’ACC,
• le bit indicateur OF indique un débordement … etc.
Ces bits peuvent être testés par programme et ainsi déterminer la séquence d’instructions à
suivre.
Registres généraux ou banalisés
Ils permettent de limiter les accès à la mémoire, ce qui accélère l'exécution d'un programme.
Ils peuvent conserver des informations utilisées fréquemment, des résultats intermédiaires,
etc. Ils sont accessibles au programmeur
9
7-Les bus
Un bus est un ensemble de fils qui assure la transmission du même type d’information. On
retrouve trois types de bus véhiculant des informations en parallèle dans un système de
traitement programmé de l’information :
- un bus de données : bidirectionnel qui assure le transfert des informations entre le
microprocesseur et son environnement, et inversement. Son nombre de lignes
est égal à la capacité de traitement du microprocesseur (véhicule les données).
- un bus d'adresses: unidirectionnel qui permet la sélection des informations à traiter dans un
espace mémoire ou espace adressable (véhicule les adresses) .
- un bus de commande: constitué par quelques conducteurs qui assurent la synchronisation
des flux d'informations sur les bus des données et des adresses (véhicule les commandes).
10
Téléchargement