33
Année 2002-2003 Initiation à l'architecture des ordi nateurs 1 Plan du cours : 2 ème Partie Introduction 1ère Partie : Concepts de base 2 2 ème ème Partie : Traitement des Partie : Traitement des données 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

Plan du cours : 2 ème Partie

  • Upload
    maina

  • View
    59

  • Download
    0

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Page 1: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 1

Plan du cours : 2ème Partie

Introduction 1ère Partie : Concepts de base

22èmeème Partie : Traitement des données 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

Page 2: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 2

Schéma simplifié d’une unité centrale

D’après « Architecture et Technologie des Ordinateurs »

de Paolo Zanelle et Yves Ligier chez Dunod

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 la prochaine instruction.

Page 3: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 3

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.

Page 4: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 4

Séquencement des opérations

Cycle d’instruction =

Cycle de recherche

+

Cycle d’exécution

Cycle d’exécution

Cycle d’instructionCycle d’instruction

Cycle de rechercheCycle d’exécutionCycle de recherche

Horloge

Page 5: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 5

Cycle de recherche d’une instruction (1/2)

Registre d’Adresse

Mémoire Centrale

Registre d'Instruction

Compteur Ordinal

Registre Mot

Décodeur

Séquenceur

Horloge

1

2

3

4

4’

4

Unité de commande

Page 6: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 6

Cycle de recherche d’une instruction (2/2)

1) 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.

Page 7: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 7

Cycle d’exécution d’une instruction (1/2)

Registre d’Adresse

Mémoire Centrale Registre Mot

Séquenceur

1

2

3

Accumulateur

Unité de commande

Registres de travail

Unité de Calcul

Exemple : exécution d’une opération arithmétique ou

logique.

Page 8: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 8

Cycle d’exécution d’une instruction (2/2)

Opération arithmétique ou logique1) 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émoire1) 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 conditionnel1) 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.

Page 9: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 9

Registres de l’unité de traitement (1/3)

1) Compteur Ordinal (CO) (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)• 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.

Page 10: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 10

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

• Utilisé pour l’adressage Base + Déplacement

Page 11: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 11

Registres de l’unité de traitement (3/3)

7) Registre d’état (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

• Registres virgule flottante (Floating point registers)

• Registres à décalage (Shift registers)

Page 12: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 12

Plan du cours : 3ème Partie

Introduction 1ère Partie : Concepts de base

22èmeème Partie : Traitement des données 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

Page 13: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 13

Format des instructions (1/2)

OpérandesCode Opération

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.

Page 14: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 14

Format des instructions (2/2)

Code opération

Code opération Opérande 1 Opérande 2

Code opération Opérande 1

Exemple x86 : LAHF transfert les bits de conditions (status flags) dans le registre Ah

Exemple x86 : NOT DX complémente à 1 le contenu du registre Dx

Exemple x86 : ADD AX,DX ajoute le contenu du registre Dx à celui de l’accumulateur

Page 15: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 15

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.

Page 16: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 16

Exemples de programme (2/5)

Fonction à réaliser :

A = B x (C + (D x E) – (F / G)) Programme:

1. LOAD F => ACC = F

2. DIV G => ACC = ACC / G => ACC = F / G

3. STA T1 => T1 = ACC

4. LOAD D => ACC = D

5. MPY E => ACC = ACC x E => ACC = D x E

6. ADD C => ACC = ACC + C => ACC = (D x E) + C

7. SUB T1 => ACC = ACC – T1 => ACC = (D x E) + C – ( F / G)

8. MPY B => ACC = ACC x B => ACC = ((D x E) + C – ( F / G)) x B

9. STA A => A = ACC => A = ((D x E) + C – ( F / G)) x B

T1 = variable intermédiaire

Page 17: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 17

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 : Transfère le contenu de la variable X au sommet de la pile.

• STORE X : Transfère le contenu du sommet de la pile dans la variable X.

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.

Page 18: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 18

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.

Page 19: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 19

Exemples de programme (5/5)

Même fonction à réaliser : A = B x (C + (D x E) – (F / G))

Programme:

1. LOAD B => Pile = { B }

2. LOAD C => Pile = { B ; C}

3. LOAD D => Pile = { B ; C ; D}

4. LOAD E => Pile = { B ; C ; D ; E }

5. MPY => Pile = { B ; C ; (D x E) }

6. ADD => Pile = { B ; C + (D x E) }

7. LOAD F => Pile = { B ; C + (D x E) ; F }

8. LOAD G => Pile = { B ; C + (D x E) ; F ; G }

9. DIV => Pile = { B ; C + (D x E) ; (F / G) }

10. SUB => Pile = { B ; C + (D x E) - (F / G) }

11. MPY => Pile = { B x (C + (D x E) - (F / G)) }

12. STA A => Pile = { }

Page 20: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 20

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 :• NON, ET, OU, Ou exclusif, etc.

Page 21: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 21

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 :• décalage, permutation circulaire de bits,

• comparaison,

• incrémentation d’index, etc.

Page 22: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 22

Plan du cours : 3ème Partie

Introduction 1ère Partie : Concepts de base

22èmeème Partie : Traitement des données 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

Page 23: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 23

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.

Page 24: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 24

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

Page 25: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 25

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.

Page 26: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 26

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

Page 27: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 27

Plan du cours : 3ème Partie

Introduction 1ère Partie : Concepts de base

22èmeème Partie : Traitement des données 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

Page 28: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 28

Plan du cours : 3ème Partie

Introduction 1ère Partie : Concepts de base

22èmeème Partie : Traitement des données 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

Page 29: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 29

CISC versus RISC (1/2)

Page 30: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 30

Page 31: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 31

Plan du cours : 3ème Partie

Introduction 1ère Partie : Concepts de base

22èmeème Partie : Traitement des données 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

Page 32: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 32

Pipelining

Page 33: Plan du cours :  2 ème  Partie

Année 2002-2003 Initiation à l'architecture des ordinateurs 33

Plan du cours : 3ème Partie

Introduction 1ère Partie : Concepts de base

22èmeème Partie : Traitement des données 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