Initiation à L`Architecture des Ordinateurs

Download Report

Transcript Initiation à L`Architecture des Ordinateurs

Plan du cours : 2ème Partie
 Introduction
 1ère Partie : Concepts de base

2ème Partie : Traitement des données
•
•
•
•
•
•
Unité de traitement
Jeu d’Instructions
Modes d’adressage
Modes d’interruptions
Microprogrammation
Amélioration des performances
 3ème Partie : Stockage des informations
 4ème Partie : Transfert des informations : les bus
 Conclusion
Année 2002-2003
Initiation à l'architecture des ordinateurs
1
Schéma simplifié d’une unité centrale
1. Charger la prochaine instruction à exécuter :
Mémoire => Registre d’instruction:
2. Décoder le code opération de l’instruction;
3. Modifier le compteur ordinal pour qu’il pointe
sur l’adresse de l’instruction suivante;
4. Localiser, s’il y a lieu, les opérandes en
mémoire;
5. Charger, dans ce cas, ces opérandes dans
les registres de l’UC;
6. Exécuter l’instruction;
7. Retourner à l ‘étape N° 1 pour traiter
prochaine instruction.
la
D’après « Architecture et Technologie des Ordinateurs »
de Paolo Zanelle et Yves Ligier chez Dunod
Année 2002-2003
Initiation à l'architecture des ordinateurs
2
Eléments de l’Unité de Commande

Registres :






Compteur Ordinal (CO) : contient l’adresse en mémoire de la
prochaine instruction à exécuter.
Registre Instruction (RI) : contient l’instruction en cours à décoder
et à exécuter.
Registre d’état ou Program Status Word (PSW) : contient les
informations sur l’état du système (retenue, dépassement, etc.).
Décodeur : détermine l’opération à effectuer et les opérandes.
Séquenceur : génère les signaux de commandes vers les
différents composants et en particulier l’UAL pour
exécuter l’opération qui vient d’être décodée.
Il peut être cablé ou microprogrammé.
Horloge : génère des impulsions régulières synchronisant les
actions et les éléments de l’unité centrale.
Année 2002-2003
Initiation à l'architecture des ordinateurs
3
Séquencement des opérations
Cycle de recherche
Cycle d’instruction =
+
Cycle d’exécution
Horloge
Cycle de recherche
Cycle d’exécution
Cycle d’instruction
Cycle de recherche
Cycle d’instruction
Cycle
d’exécution
Année 2002-2003
Initiation à l'architecture des ordinateurs
4
Cycle de recherche d’une instruction
Registre d’Adresse
1
Mémoire
Centrale
(1/2)
2
Registre Mot
4
3
Unité de
commande
Registre d'Instruction
4
Compteur Ordinal
Décodeur
4’
Séquenceur
Horloge
Année 2002-2003
Initiation à l'architecture des ordinateurs
5
Cycle de recherche d’une instruction
(2/2)
Transfert de l’adresse de l’instruction du Compteur Ordinal
vers le Registre d’Adresse de la mémoire.
2) Lecture de l’instruction dans la mémoire et transfert dans le
Registre Mot.
3) Transfert de l’instruction dans le registre d’instruction.
4) Décodage du code opération et lancement du séquenceur.
Si nécessaire transfert de l’adresse de l’opérande dans le
Registre d’ Adresse de la Mémoire
5) Incrémentation du Compteur Ordinal pour qu’il pointe vers
l’instruction suivante (s’ il n’est pas mis à jour par une
instruction de branchement).
Le Séquenceur pilote l’Unité de Calcul pour exécuter
l’instruction.
1)
Année 2002-2003
Initiation à l'architecture des ordinateurs
6
Cycle d’exécution d’une instruction
Registre d’Adresse
Mémoire
Centrale
(1/2)
Registre Mot
2
1
Exemple : exécution
d’une opération
arithmétique ou
logique.
3
Registres de travail
Séquenceur
Unité de commande
Année 2002-2003
Accumulateur
Initiation à l'architecture des ordinateurs
Unité de Calcul
7
Cycle d’exécution d’une instruction

(2/2)
Opération arithmétique ou logique
1) Le séquenceur pilote la mémoire pour lire l’opérande et le
transférer dans le registre mot (RM).
2) Transfert de l’opérande du RM vers un registre de travail ou
l’accumulateur.
3) Exécution par l’Unité Arithmétique et Logique de l’opération à
effectuer sous contrôle du séquenceur.

Ecriture d’un résultat en mémoire
1) Transfert du contenu de l’accumulateur vers le RM.
2) Le séquenceur pilote la mémoire pour transférer l’opérande depuis
le RM et l’écrire en mémoire

Instruction de branchement conditionnel
1) Test du
bit de condition (Flag)
2) Transfert si nécessaire du contenu du champ adresse de
l’instruction depuis le RI vers le CO.
Année 2002-2003
Initiation à l'architecture des ordinateurs
8
Registres de l’unité de traitement
1) Compteur Ordinal (CO)
•
•
(1/3)
(Programme Counter (PC))
Contient l’adresse de la prochaine instruction à exécuter
Non accessible au programmeur
2) Registre Instruction (RI)
•
•
(Instruction Register (IR))
Contient l’instruction à décoder et à exécuter
Non accessible au programmeur
3) Registre ACCumulateur (ACC)
•
•
•
Année 2002-2003
Reçoit le résultat de l’opération effectué par l’Unité Arithmétique
et Logique (UAL).
Peut contenir un des opérandes impliqués dans l’opération que
doit effectuer l’UAL.
Un des registres les plus sollicités de la machine.
Initiation à l'architecture des ordinateurs
9
Registres de l’unité de traitement
(2/3)
1) Registres de travail
•
•
Permettent d’accélérer l’exécution des programmes en
évitant de solliciter la mémoire.
Contiennent les résultats de calculs intermédiaires ou les
opérandes fréquemment utilisés.
2) Registre d’index (XR) (Index Register (RX))
•
Utilisé pour l’adressage indexé
3) Registre de Base
•
Année 2002-2003
Utilisé pour l’adressage Base + Déplacement
Initiation à l'architecture des ordinateurs
10
Registres de l’unité de traitement
7) Registre d’état
•
(3/3)
(Program Status Word (PSW))
Contient entre autres les bits de condition (flags) positionnés
à l’issu de chaque exécution d’une instruction.
8) Registres de gestion de pile
•
Registre pointeur de pile (PP) (Stack Pointer (SP))
Contient l’adresse du sommet de la pile
9) Registres spécialisés
•
•
Année 2002-2003
Registres virgule flottante (Floating point registers)
Registres à décalage (Shift registers)
Initiation à l'architecture des ordinateurs
11
Plan du cours : 3ème Partie
 Introduction
 1ère Partie : Concepts de base

2ème Partie : Traitement des données
•
•
•
•
•
•
Unité de traitement
Jeu d’Instructions
Modes d’adressage
Modes d’interruptions
Microprogrammation
Amélioration des performances
 3ème Partie : Stockage des informations
 4ème Partie : Transfert des informations : les bus
 Conclusion
Année 2002-2003
Initiation à l'architecture des ordinateurs
12
Format des instructions
Code Opération
(1/2)
Opérandes
 Code opération : ce qu’il faut faire
Exemples : faire une addition,
tester le résultat d’une opération,
se débrancher vers une certaine adresse, etc.
 Opérandes : avec quoi le faire
Exemples : valeur numérique,
contenu d’un registre,
contenu d’une adresse mémoire
adresse où se débrancher, etc.
Année 2002-2003
Initiation à l'architecture des ordinateurs
13
Format des instructions
(2/2)
Code opération
Exemple x86 : LAHF
Code opération
transfert les bits de conditions (status flags) dans le
registre Ah
Opérande 1
Exemple x86 : NOT DX complémente à 1 le contenu du registre Dx
Code opération
Opérande 1
Opérande 2
Exemple x86 : ADD AX,DX ajoute le contenu du registre Dx à celui de
l’accumulateur
Année 2002-2003
Initiation à l'architecture des ordinateurs
14
Exemples de programme
(1/5)
 Machine à une adresse
 Instructions :
•
Load X : transfère la variable X dans l’accumulateur.
•
STA X : transfère le contenu de l’accumulateur dans la variable X.
•
ADD : additionne la valeur de la variable X au contenu de l’accumulateur.
•
SUB : soustrait la valeur de la variable X au contenu de l’accumulateur.
•
MPY : multiplie le contenu de l’accumulateur par la valeur de la variable X.
•
DIV X : divise le contenu de l’accumulateur par la valeur de la variable X.
Année 2002-2003
Initiation à l'architecture des ordinateurs
15
Exemples de programme
(2/5)
 Fonction à réaliser :
A = B x (C + (D x E) – (F / G))
 Programme:
1.
2.
3.
4.
5.
6.
7.
8.
9.
LOAD F
DIV G
STA T1
LOAD D
MPY E
ADD C
SUB T1
MPY B
STA A
=>
=>
=>
=>
=>
=>
=>
=>
=>
ACC = F
ACC = ACC / G
T1 = ACC
ACC = D
ACC = ACC x E
ACC = ACC + C
ACC = ACC – T1
ACC = ACC x B
A = ACC
=> ACC = F / G
=> ACC = D x E
=> ACC = (D x E) + C
=> ACC = (D x E) + C – ( F / G)
=> ACC = ((D x E) + C – ( F / G)) x B
=> A = ((D x E) + C – ( F / G)) x B
T1 = variable intermédiaire
Année 2002-2003
Initiation à l'architecture des ordinateurs
16
Exemples de programme
(3/5)
 Machine à zéro adresse (Sauf gestion de la pile)
• Nécessite une pile (mémoire LIFO : Last In, First Out)
 Instructions de gestion de la pile (Instructions à 1 adresse) :
•
LOAD X :
•
STORE X : Transfère le contenu du sommet de la pile dans la variable X.
Transfère le contenu de la variable X au sommet de la pile.
 Principe de fonctionnement : Instructions à zéro adresse:
•
Les opérandes sont dans les 2 positions supérieures de la pile.
•
Le résultat remplace les deux opérandes au sommet de la pile.
Année 2002-2003
Initiation à l'architecture des ordinateurs
17
Exemples de programme
(4/5)
 Instructions à zéro adresse:
•
ADD sort les 2 opérandes aux sommets de la pile, fait leur somme et place
le résultat au sommet de la pile.
•
SUB sort les 2 opérandes aux sommets de la pile, soustrait la valeur au
sommet de la seconde position et place le résultat au sommet de la pile.
•
MPY sort les 2 opérandes aux sommets de la pile, fait leur produit et place
le résultat au sommet de la pile.
•
DIV sort les 2 opérandes aux sommets de la pile, divise la valeur en
seconde position (dividende)par la valeur située au sommet de la pile
(diviseur) et place le résultat au sommet de la pile.
Année 2002-2003
Initiation à l'architecture des ordinateurs
18
Exemples de programme
(5/5)
 Même fonction à réaliser :
A = B x (C + (D x E) – (F / G))
 Programme:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
LOAD B
LOAD C
LOAD D
LOAD E
MPY
ADD
LOAD F
LOAD G
DIV
SUB
MPY
STA A
Année 2002-2003
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
Pile = { B }
Pile = { B ; C}
Pile = { B ; C ; D}
Pile = { B ; C ; D ; E }
Pile = { B ; C ; (D x E) }
Pile = { B ; C + (D x E) }
Pile = { B ; C + (D x E) ; F }
Pile = { B ; C + (D x E) ; F ; G }
Pile = { B ; C + (D x E) ; (F / G) }
Pile = { B ; C + (D x E) - (F / G) }
Pile = { B x (C + (D x E) - (F / G)) }
Pile = { }
Initiation à l'architecture des ordinateurs
19
Types d’ instructions
(1/2)
1) Transferts de données :
•
•
•
de registre à registre,
de registre à mémoire, de mémoire à registre,
de mémoire à mémoire.
2) Opérations arithmétiques :
•
Addition, soustraction,multiplication,division.
3) Opérations logiques :
•
Année 2002-2003
NON, ET, OU, Ou exclusif, etc.
Initiation à l'architecture des ordinateurs
20
Types d’ instructions
(2/2)
4) Contrôle de séquence :
•
•
•
branchements ,
branchements conditionnels,
appel de sous-programmes,
5) Entrées/Sorties (I/Os) :
•
lectures/écritures sur les périphériques (écran, imprimantes,
disques durs, etc.)
6) Autres opérations :
•
•
•
Année 2002-2003
décalage, permutation circulaire de bits,
comparaison,
incrémentation d’index, etc.
Initiation à l'architecture des ordinateurs
21
Plan du cours : 3ème Partie
 Introduction
 1ère Partie : Concepts de base

2ème Partie : Traitement des données
•
•
•
•
•
•
Unité de traitement
Jeu d’Instructions
Modes d’adressage
Modes d’interruptions
Microprogrammation
Amélioration des performances
 3ème Partie : Stockage des informations
 4ème Partie : Transfert des informations : les bus
 Conclusion
Année 2002-2003
Initiation à l'architecture des ordinateurs
22
Modes d’adressage
(1/4)
1) Adressage implicite :
Le code opération indique implicitement où se trouve l’opérande.
Exemple X86 : LAHF transfert les bits de condition (status flags) dans
le registre Ah
2) Adressage immédiat :
Le champ adresse de la source contient la valeur de l’opérande.
Exemple X86 : MOV DX,1234 transfert la valeur immédiate 1234
dans le registre Dx
3) Adressage registre :
Le champ adresse contient le numéro du registre contenant
l’opérande.
Exemple x86 : NOT DX complémente à 1 le contenu du registre Dx
(1234) qui devient donc EDBC.
Année 2002-2003
Initiation à l'architecture des ordinateurs
23
Modes d’adressage
(2/4)
4) Adressage direct :
Le champ d’adresse contient l’adresse effective de l’opérande.
Exemple X86 : Mov [0100], DX
transfère le contenu du registre Dx à l’adresse mémoire 0100 qui
contient donc maintenant EDBC.
5) Adressage indirect :
Le champ d’adresse contient l’adresse où se trouve l’adresse
effective de l’opérande.
Exemple PDP-11 : MOV (R1), R4
transfère dans R4 le contenu de l’adresse contenue dans R1
Année 2002-2003
Initiation à l'architecture des ordinateurs
24
Modes d’adressage
(3/4)
6) Adressage indexé :
•
adresse effective = contenu du champ adresse
+ contenu du registre d’index
•
•
Exemple PDP-11 : MOV R4, 100(R3)+
transfère dans R4 le contenu de l’adresse (100 + contenu de R3) et
incrémente R3.
•
Utilisé pour travailler sur des tableaux
6) Adressage basé : Base + Déplacement
•
•
adresse effective = contenu du champ adresse (Déplacement)
+ contenu du registre de base (Base)
Utilisé - en cas d’allocation dynamique de la mémoire,
- lorsque le nombre de bit alloué à l’adresse dans l’instruction
est faible.
Année 2002-2003
Initiation à l'architecture des ordinateurs
25
Modes d’adressage
(4/4)
6) Adressage relatif :
•
•
adresse effective = contenu du champ adresse
+ contenu du Compteur Ordinal (CO)
Utilisé dans des instructions de branchements
Année 2002-2003
Initiation à l'architecture des ordinateurs
26
Plan du cours : 3ème Partie
 Introduction
 1ère Partie : Concepts de base

2ème Partie : Traitement des données
•
•
•
•
•
•
Unité de traitement
Jeu d’Instructions
Modes d’adressage
Modes d’interruptions
Microprogrammation
Amélioration des performances
 3ème Partie : Stockage des informations
 4ème Partie : Transfert des informations : les bus
 Conclusion
Année 2002-2003
Initiation à l'architecture des ordinateurs
27
Plan du cours : 3ème Partie
 Introduction
 1ère Partie : Concepts de base

2ème Partie : Traitement des données
•
•
•
•
•
•
Unité de traitement
Jeu d’Instructions
Modes d’adressage
Modes d’interruptions
Microprogrammation
Amélioration des performances
 3ème Partie : Stockage des informations
 4ème Partie : Transfert des informations : les bus
 Conclusion
Année 2002-2003
Initiation à l'architecture des ordinateurs
28
CISC versus RISC
Année 2002-2003
Initiation à l'architecture des ordinateurs
(1/2)
29
Année 2002-2003
Initiation à l'architecture des ordinateurs
30
Plan du cours : 3ème Partie
 Introduction
 1ère Partie : Concepts de base

2ème Partie : Traitement des données
•
•
•
•
•
•
Unité de traitement
Jeu d’Instructions
Modes d’adressage
Modes d’interruptions
Microprogrammation
Amélioration des performances
 3ème Partie : Stockage des informations
 4ème Partie : Transfert des informations : les bus
 Conclusion
Année 2002-2003
Initiation à l'architecture des ordinateurs
31
Pipelining
Année 2002-2003
Initiation à l'architecture des ordinateurs
32
Plan du cours : 3ème Partie
 Introduction
 1ère Partie : Concepts de base

2ème Partie : Traitement des données
•
•
•
•
•
•
Unité de traitement
Jeu d’Instructions
Modes d’adressage
Modes d’interruptions
Microprogrammation
Amélioration des performances
 3ème Partie : Stockage des informations
 4ème Partie : Transfert des informations : les bus
 Conclusion
Année 2002-2003
Initiation à l'architecture des ordinateurs
33