Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture...

31
Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique du Nord 41 Boulevard Vauban - 59046 Lille Cedex - France

Transcript of Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture...

Page 1: Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique.

Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 20021

Architecture Fondamentaledes Microprocesseurs

Institut Supérieur d’Electronique du Nord41 Boulevard Vauban - 59046 Lille Cedex - France

Page 2: Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique.

Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 20022

Architecture d’un ordinateur

Unitécentrale

Mémoirecentrale

Contrôleurs d’entrée/sortieou interface

Canaux de communication (bus)

Page 3: Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique.

Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 20023

Les types d’architecture : SISD

Une instruction manipule une seule donnée(Single Instruction Single Data)

instruction

Page 4: Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique.

Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 20024

Une instruction manipule un ensemble de données (Single Instruction Multiple Data) :machine tableau

Les types d’architecture : SIMD

instruction

Page 5: Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique.

Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 20025

Les types d’architecture : MISD

Un ensemble d’instructions manipule une seule donnée (Multiple Instruction Single Data) :machine vectorielle ou pipeline

Instruction 1

Instruction 2

Instruction 3

Instruction 4

Instruction 2

Instruction 3

Instruction 4

Instruction 5

Page 6: Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique.

Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 20026

Les types d’architecture : MIMD

Un ensemble d’instructions manipule un ensemble de données (Multiple Instruction Multiple Data) : machine multi-processeurs

MISDSISD

SISD

SIMD

Page 7: Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique.

Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 20027

Architecture de Von Neuman

Machine de Von Neuman (1945) programme : suite d’instructions codées en binaire

et mémorisées en mémoire centrale données : codées en binaire et mémorisées en

mémoire centrale les instructions sont exécutées séquentiellement par

l’unité centrale une instruction manipule une seule donnée (SISD)

Page 8: Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique.

Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 20028

Mémoire centrale : rôle et fonctions

Rôle : mémorisation des instructions et des données code binaire (algèbre de Boole)

0 : absence de courant 1 : présence de courant

Fonctions d’accès : écriture : mémorisation d’une information lecture : récupération d’une information

préalablement enregistrée

Page 9: Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique.

Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 20029

Mémoire centrale : constituants

Cellule mémoire : circuit électronique chargé de mémoriser un seul bit d’information

Mémoire centrale : construire un mot à partir d’un ensemble de cellules construire un ensemble de mots créer un mécanisme d’accès à un mot dans

l’ensemble des mots : adressage

Page 10: Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique.

Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200210

Mémoire centrale : vision logique

Vision logique : tableau de mots plus ou moins grand mécanisme d’adressage : chaque mot est repéré par

son emplacement (adresse) dans le tableau (indice)

Flottant IEEE sur 32 bits(valeur -1,2345.10-4)92

77

B9

0E

Entier signé sur 16 bits(valeur -2)FE

FF2006

2004

2005

2003

2002

2001

2000

Page 11: Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique.

Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200211

Unité centrale : composition

L’unité centrale (CPU - Central Processing Unit) regroupe 5 blocs fonctionnels :

l’unité de contrôle

l’unité arithmétique et logique

les registres généraux

les registres spécialisés

l’interfaçage avec l’extérieur

Page 12: Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique.

Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200212

Unité de contrôle

Bus de contrôle Bus d’adresse Bus de donnéeHorloge Interruptions

intel 8085Bus de communication interne

Registre D

Registre H

Registre C

Registre E

Registre L

Registre B

Compteur ordinal PC

Pointeur de pile SP

Accumulateur

Indicateurs

Registre d’instruction

Décodeur d’instructions et séquenceur

Unité de contrôleRegistre d’adresse Registre de donnée

UAL

Page 13: Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique.

Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200213

Unité de contrôle

Elle contrôle la totalité du fonctionnement de l’unité centrale lecture, décodage, et exécution des instructions

lecture et écriture des données en mémoire centrale

lecture et écriture des registres

contrôle de l’unité arithmétique et logique

contrôle de l’interface avec l’extérieur : bus d’adresse et de donnée fonctions d’accès à la mémoire centrale interruptions, ...

Page 14: Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique.

Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200214

Programme

Un programme écrit en langage évolué (C) n’est pas compréhensible directement par la machine (i.e. par l’unité de contrôle)

...if (i == 0) { i = 1 ;}j = 2 ;...

... cmp i,#0 bne label move #1,ilabel: move #2,j ...

compilateur

... 1000 3E332000 1004 2A100B 1007 3F332001 100B 3F332102 ...

assembleur

Page 15: Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique.

Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200215

Instructions

étiquette adresse

mnémonique code opération (opcode)

opérande(s) opérande(s)

... cmp i,#0 bne label move #1,ilabel: move #2,j ...

... 1000 3E 332000 1004 2A 100B 1007 3F 332001 100B 3F 332102 ...

Page 16: Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique.

Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200216

Exécution d’un programme

Bus de contrôle Bus d’adresse Bus de donnéeHorloge Interruptions

intel 8085Bus de communication interne

Registre D

Registre H

Registre C

Registre E

Registre L

Registre B

Compteur ordinal PC

Pointeur de pile SP

Accumulateur

Indicateurs

Registre d’instruction

Décodeur d’instructions et séquenceur

Unité de contrôleRegistre d’adresse Registre de donnée

UAL

Page 17: Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique.

Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200217

Exécution d’un programme

Le compteur ordinal (PC ou Program Counter) registre spécialisé contient à tout moment l’adresse de l’instruction qui

va être exécutée

3E

33

00

20

10

2A

0B

PC 1004

1006

1004

1005

1003

1002

1001

1000

Page 18: Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique.

Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200218

Unité arithmétique et logique (ALU)

Bus de contrôle Bus d’adresse Bus de donnéeHorloge Interruptions

intel 8085Bus de communication interne

Registre D

Registre H

Registre C

Registre E

Registre L

Registre B

Compteur ordinal PC

Pointeur de pile SP

Accumulateur

Indicateurs

Registre d’instruction

Décodeur d’instructions et séquenceur

Unité de contrôleRegistre d’adresse Registre de donnée

UAL

Page 19: Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique.

Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200219

Unité arithmétique et logique (ALU)

Rôle : calcul d’opérations élémentaires opérations arithmétiques

addition, soustraction, multiplication, division changement de signe

opérations logiques et, ou, ou exclusif, inversion décalage, rotation

Traite des mots de taille fixe (1, 2, 4 octets)

Génère les indicateurs caractérisation du dernier résultat produit par l’ALU

Page 20: Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique.

Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200220

Registres

Bus de contrôle Bus d’adresse Bus de donnéeHorloge Interruptions

intel 8085Bus de communication interne

Registre D

Registre H

Registre C

Registre E

Registre L

Registre B

Compteur ordinal PC

Pointeur de pile SP

Accumulateur

Indicateurs

Registre d’instruction

Décodeur d’instructions et séquenceur

Unité de contrôleRegistre d’adresse Registre de donnée

UAL

Page 21: Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique.

Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200221

Registres

Registres généraux opérandes pour l’unité arithmétique et logique résultats des calculs (accumulateur) en nombre variable (2 à plusieurs dizaines) taille = taille des mots traités par l’ALU

Registres spécialisés compteur ordinal (Program Counter - PC) registre d’état (Status Register - SR) pointeur de pile (Stack Pointer - SP)

Page 22: Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique.

Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200222

3322

3321

3320

3319

(variable i)

(variable j)

Exemple d’exécution

SR (indicateur Z)

PC

0

100F

02

04

0

????

02

04

?

10000410 0

100704

10 0

100404

10

... cmp i,#0 bne label move #1,ilabel: move #2,j ...

... 1000 3E332100 1004 2A100B 1007 3F332101 100B 3F332002 100F ...

...if (i == 0) { i = 1 ;}j = 2 ;...

Page 23: Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique.

Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200223

Modes d’adressage des opérandes

Permettent de localiser précisément les opérandes d’une instruction immédiat (constante) registre (donnée « anonyme ») direct (donnée « variable ») en mémoire centrale indirect (pointeur sur ...) en mémoire centrale via un

registre autres suivant la puissance du CPU :

indirect avec déplacement (8086, 68000) pré/post indexé (68000) facteur d’échelle (80386)

Page 24: Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique.

Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200224

Modes d’adressage (1)

3E

33

immédiat (constante) 0

registre R2

direct / absolu [3044]

4444

2222

3333

1111 R1

R3

R2

R4

0000

4444

2222

6666 3046

3042

3044

3040

Page 25: Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique.

Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200225

Modes d’adressage (2)

indirect via registre [R2]

indirect via registreavec déplacement

[R2-2]

4444

3044

3333

1111R1

R3

R2

R4

0000

4444

2222

6666 3046

3042

3044

3040

4444

3044

3333

1111R1

R3

R2

R4

0000

4444

2222

6666 3046

3042

3044

3040

Page 26: Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique.

Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200226

Jeu d’instructions (1)

déplacement MOV destination,source

MOV R3,R2

MOV [2000],-4

R1

R3

R2

R44444

3333

1111

2222

2002

1FFE

2000

1FFC4444

3333

1111

2222

2222

FFFC

Page 27: Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique.

Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200227

Jeu d’instructions (2)

opérations

ADD R3,R2

NOT [R2]

R1

R3

R2

R44444

3333

1111

2222

ADD destination,source

NOT destination

4444

3044

3333

1111R1

R3

R2

R4

0000

4444

2222

6666 3046

3042

3044

3040

5555

BBBB

Page 28: Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique.

Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200228

Jeu d’instructions (3)

Saut inconditionnel - JMP adresse le compteur ordinal (PC) est remplacé par l’adresse spécifiée

par l’instruction l’exécution du programme reprend à partir de la nouvelle

valeur du compteur ordinal Saut conditionnel - JNZ adresse

la condition porte sur la valeur d’un ou de plusieurs indicateurs de l’UAL (registre d’état)

le compteur ordinal (PC) est remplacé par l’adresse spécifiée par l’instruction si et seulement si la condition est vérifiée

Page 29: Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique.

Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200229

Sous-programme

Vision logique : 2 composants une pile mémorisée en mémoire centrale le pointeur de sommet de pile (Stack Pointer - SP)

Appel d’un sous-programme : CALL adresse SP SP - k // création d’un nouveau sommet [SP] PC // sauvegarde de l’adresse de retour PC adresse // saut au sous-programme

Retour d’un sous-programme : RETURN PC [SP] // restauration de l’adresse de retour SP SP + k // destruction du sommet

Page 30: Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique.

Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200230

pile (k = 2)

1004

1002

1000

PC

SP

Exemple d’exécution

3

1002

3

101

101

3

1000

101

201

3

1000

101

102

3

1002

101

4

3

1004

2

1004

100

1002

3

101

200

3

1000

101

3

3

1004

1 ... 2 CALL 100 3 ...

99 ...100 CALL 200101 RETURN102 ...

199 ...200 RETURN201 ...

101

101

3

1002

Page 31: Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002 1 Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique.

Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 200231

Interruptions

Définition : arrivée d’un événement extérieur à l’unité centrale

Action : appel forcé d’un sous-programme d’interruption,

indépendant du programme en cours d ’exécution

Unitécentrale

Programme en cours

Appel du 18

CapteurProgramme en coursProgramme en cours