65
ARCHITECTURE DES ORDINATEURS 2 Université Saad Dahlab de Blida Faculté des Sciences Département d’Informatique Licence Génie des Systèmes Informatiques (GSI) Semestre 4 (2 ème année) S. AROUSSI Disponible sur https://sites.google.com/a/esi.dz/s-aroussi/

Chapitre i architectures des processeurs récents

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Chapitre i architectures des processeurs récents

ARCHITECTURE DES ORDINATEURS 2

Université Saad Dahlab de Blida

Faculté des Sciences

Département d’Informatique

Licence Génie des Systèmes Informatiques (GSI)

Semestre 4 (2ème année)

S. AROUSSI

Disponible sur https://sites.google.com/a/esi.dz/s-aroussi/

Page 2: Chapitre i architectures des processeurs récents

PRÉAMBULE

Pré-requis: Cours (Archi1, S3).

UEF: ARchitecture et VLSI (ARVL)

Volume horaire hebdomadaire: 3H Cours + 1H30 TD

Évaluation: Continu + Examen.

Coefficient 1, Crédit 5

2

Page 3: Chapitre i architectures des processeurs récents

CONTENU DE LA MATIÈRE

I. Architectures des Processeurs récents

II. Mémoires

III. Entrées/Sorties et Interruptions

3

Page 4: Chapitre i architectures des processeurs récents

CHAPITRE I:

ARCHITECTURES DES

PROCESSEURS RÉCENTS

Page 5: Chapitre i architectures des processeurs récents

PLAN DU CHAPITRE I

Introduction

Fréquence

CISC versus RISC

Pipeline

Super Scalaire

Hyper Threading

Multi Cœurs

Multi Processeurs 5

Page 6: Chapitre i architectures des processeurs récents

6

Recherche permanente de l'augmentation des

performances des processeurs: Évolution des architectures

Points principaux de cette évolution

Fréquence de fonctionnement

Jeu d'instructions

Mémoire cache

Parallélisation et optimisation des séquences d'instructions

(Pipeline, Superscalaires)

Chaque point influence en bien ou en mal un autre:

Recherche du meilleur compromis

INTRODUCTION

Page 7: Chapitre i architectures des processeurs récents

7

Exprimé en Herts (Hz), la fréquence du processeur désigne le

nombre d’opérations effectuées en une seconde par le

processeur. Une horloge lui définit sa cadence.

Idée: Augmenter la fréquence du fonctionnement (plus

d'instructions exécutées en moins de temps)

Problèmes technologiques et physiques:

Temps de propagation des signaux électriques

Dégagement de chaleur

FRÉQUENCE

Page 8: Chapitre i architectures des processeurs récents

8

Solutions aux problèmes technologiques et

physiques:

Diminuer la finesse de gravure

Conducteurs plus courts, propagation plus rapide

Diminue le dégagement de chaleur

Chercher d'autres technologies de réalisation de transistors et des

conducteurs

Les processeurs actuels ont une fréquence d’horloge autour

de 3 GHz (3 milliards d’opérations à la seconde) avec une

finesse de gravure de l’ordre de 20 nanomètres.

FRÉQUENCE

Page 9: Chapitre i architectures des processeurs récents

9

Les processeurs se répartissent en deux grandes

catégories:

Processeurs à jeu d'instruction étendu ou CISC (Complex

Instruction Set Computing)

Processeurs à jeu d'instructions réduit ou RISC (Reduced

Instruction Set Computing)

CISC VERSUS RISC

Page 10: Chapitre i architectures des processeurs récents

10

Le processeur CISC possède un jeu étendu d’instructions

complexes et puissantes.

Le processeur CISC réduit le nombre d'instructions écrites dans

un programme et facile ainsi sa compilation.

Une instruction CISC peut effectuer plusieurs opérations

élémentaires (Chargement, Rangement, Arithmétique, ….).

Exemple (Assembleur 8086): ADD [200h], 125

Charger la valeur du mot mémoire 200h

Faire l’addition ([200h]+125)

Ranger le résultat dans le mot mémoire 200h

ARCHITECTURE CISC

Page 11: Chapitre i architectures des processeurs récents

11

Plusieurs étapes d’exécution (1 à plus de 100 cycles) sont

nécessaires pur exécuter une instruction CISC.

Exemple (Processeur 8088): l’instruction MUL nécessite

133 cycles pour multiplier deux entiers de 16 bits alors que

l’instruction MOV nécessite 2 cycles.

La longueur des instructions CISC sont variables (1 à 10

octets), ce qui ralentit le processus de décodage.

Plus de modes d’adressage mémoire, dont certains

complexes.

ARCHITECTURE CISC

Page 12: Chapitre i architectures des processeurs récents

12

Lorsque le jeu d’instructions est complexe, la plupart des

programmeurs ou compilateurs n’utilisent pas tout le jeu

d’instructions. Ils se contentent souvent d’un nombre réduit

d’instructions:

80 % des programmes n’utilisent que 20 % du jeu d’instructions.

Les instructions les plus utilisées sont les instructions de chargement et de

rangement

L’apparition de l’architecture RISC vint de la volonté de favoriser au

maximum les instructions simples qui constituent la grande partie

des programmes. L’idée est de supprimer les instructions complexes et

les modes d’adressage élaborés afin d’augmenter la fréquence

d’horloge et d’augmenter ainsi la vitesse d’exécution de toutes les

instructions.

ARCHITECTURE RISC

Page 13: Chapitre i architectures des processeurs récents

13

La philosophie essentielle des processeurs RISC est d’avoir

un nombre important de registres. Des instructions de

chargement et de rangement avec quelques modes

d’adressage sont les seules à faire les échanges avec la

mémoire. Toutes les autres instructions travaillent

uniquement avec les registres.

ARCHITECTURE RISC

Page 14: Chapitre i architectures des processeurs récents

14

Les principales caractéristiques des processeurs RISC sont les

suivantes:

Codage uniforme des instructions. Toutes les instructions

sont codées avec un même nombre de bits. Le code d’opération

se trouve à la même position pour toutes les instructions. Ceci

facilite le décodage des instructions.

Registres indifférenciés et nombreux. Tous les registres

peuvent être utilisés dans tous les contextes. Il n’y a par

exemple pas de registre spécifique pour la pile. Les processeurs

séparent cependant les registres pour les valeurs flottantes des

autres registres.

ARCHITECTURE RISC

Page 15: Chapitre i architectures des processeurs récents

15

Les principales caractéristiques des processeurs RISC sont les suivantes.

Limitation des accès mémoire. Les seules instructions ayant accès à la

mémoire sont les instructions de chargement et de rangement. Toutes les

autres instructions opèrent sur les registres. Il en résulte une utilisation

intensive des registres.

Nombre réduit de modes d’adressage. Il n’y pas de mode d’adressage

complexe. Les modes d’adressages possibles sont généralement immédiat,

direct, indirect et relatifs.

Nombre réduit de types de données. Les seuls types de données

supportés sont les entiers de différentes tailles (8, 16, 32 et 64 bits) et des

nombres flottants en simple et double précision. Certains processeurs

CISC comportent des instructions pour le traitement des chaînes de

caractères, des polynômes ou des complexes

ARCHITECTURE RISC

Page 16: Chapitre i architectures des processeurs récents

16

EXEMPLE D’INSTRUCTIONS RISC

Page 17: Chapitre i architectures des processeurs récents

17

EXEMPLE D’INSTRUCTIONS RISC

Ecrire le programme suivant en utilisant le jeu

d’instructions CISC (par exemple INTEL 8086) et RISC.

Page 18: Chapitre i architectures des processeurs récents

18

EXEMPLE D’INSTRUCTIONS RISC

Page 19: Chapitre i architectures des processeurs récents

19

CISC VERSUS RISC

CISC Complex Instruction Set Computing

RISC Reduced Instruction Set Computing

Instructions complexes prenant

plusieurs cycles

Instructions simples ne prenant

qu’un seul cycle

Format variable Format fixe

Décodage complexe et lent Décodage simple et rapide

Peu de registres Beaucoup de registres

Toutes les instructions sont

susceptibles d’accèder à la

Mémoire

Seules les instructions de chargement

et de rangement ont accès à la

mémoire

Beaucoup de mode d’adressage

Peu de mode d’adressage

Plus d'instructions disponibles :

programmation plus simple et

souple

Peu d’instructions disponibles:

programmation difficile

Compilateur simple Compilateur complexe

Page 20: Chapitre i architectures des processeurs récents

20

CISC VERSUS RISC

L'architecture RISC a montré qu'elle était plus

performante

Tous les processeurs fonctionnent en RISC de nos jours

Pour un processeur avec un jeu d'instruction CISC:

Traduction interne des instructions CISC en micro-

opérations de type RISC

Page 21: Chapitre i architectures des processeurs récents

21

Machine sans pipeline

Processeur conventionnel: exécute les instructions une à la

fois.

En générale, l‘exécution d’une instruction est décomposée

en phases:

Recherche: Lire l'instruction en mémoire.

Décodage: Déterminer l'opération à réaliser;

Exécution: Effectuer l'opération.

L’enchaînement des phases est cadencé par les tops

d'horloge.

PIPELINE

Page 22: Chapitre i architectures des processeurs récents

22

Inst. 1

Etape 1

Inst. 1

Etape 2

Inst. 1

Etape 3

Machine sans pipeline

Inst. 2 Inst. 2 Inst. 2

Nombre de cycles: 1 2 3 4 5 6 7 8 9 10

1 Nombre d’instructions terminées: 0 0 0 1 1 2

Inst. 3 Inst. 3 Inst. 3

11

2

12

2

13 14 15

3

16

Inst. 4 Inst. 4 Inst. 4

3 3

Inst. 5 Inst. 5 Inst. 5

4 4 4 5

PIPELINE

Page 23: Chapitre i architectures des processeurs récents

23

Inst. 1

Etage 1

Inst. 1

Etage 2

Inst. 1

Etage 3

Inst. 2 Inst. 2 Inst. 2 Inst. 3 Inst. 3 Inst. 3 Inst. 4 Inst. 4 Inst. 4 Inst. 5 Inst. 5 Inst. 5

Machine avec pipeline

Nombre de cycles: 1 2 3 4 5 6 7 8

Nombre d’instructions terminées: 0 3 4 5 0 0 1 2

PIPELINE

Page 24: Chapitre i architectures des processeurs récents

24

Inspiration du Pipeline:

Inspiré des chaînes industrielles d’assemblage (ex: chaîne

d’assemblage d’automobiles);

Dans une chaîne d'assemblage d'automobiles, il y a

beaucoup d'étapes;

Chaque étape contribue à une partie de la construction de

l'automobile;

Chaque étape opère en parallèle avec les autres étapes,

mais sur une autre voiture.

PIPELINE

Page 25: Chapitre i architectures des processeurs récents

25

Historique du Pipeline:

Terme introduit au début des années 80;

Mise en œuvre pour l’amélioration des performances.

Premier processeur avec la technique pipeline: INTEL

8086.

Basé sur le fait qu'un processeur peut exécuter plus d'une

seule instruction à la fois si les instructions sont divisés

en étapes;

Premiers processeurs divisaient les instructions en

respectant les 3 étapes d’exécution;

PIPELINE

Page 26: Chapitre i architectures des processeurs récents

26

Principe du Pipeline:

Le pipeline est divisé en étages (soit n: le nombre de ces

étages);

Chaque étage correspond à une étape d’exécution;

Les instructions rentrent à une extrémité, progressent à

travers les étages et sortent à l'autre extrémité. Ainsi,

plusieurs instructions peuvent se recouvrir durant

l'exécution.

Une instruction est terminée à chaque cycle, au lieu d'une

instruction tous les n cycles.

PIPELINE

Page 27: Chapitre i architectures des processeurs récents

27

Pipeline RISC (basique):

Etapes d’exécution d’une instruction RISC sont:

1. Recherche de l'instruction;

2. Décodage de l'instruction;

3. Recherche des opérandes;

4. Exécution de l’instruction;

5. Sauvegarde des résultats.

PIPELINE

Page 28: Chapitre i architectures des processeurs récents

28

Pipeline RISC (basique):

Exécution à 5 phases 5 étages dans le pipeline :

PIPELINE

programme Cycles d’Horloge

1 2 3 4 5 6 7 8 9

Inst n° 1 I1 D1 O1 E1 S1

Inst n° 2 I2 D2 O2 E2 S2

Inst n° 3 I3 D3 O3 E3 S3

Inst n° 4 I4 D4 O4 E4 S4

Inst n° 5 I5 D5 O5 E5 S5

Page 29: Chapitre i architectures des processeurs récents

29

Pipeline RISC (basique):

Pour 5 instructions, réduit le temps d'exécution de 25

unités de temps à 9 unités de temps.

Supposition : chaque instruction traverse les 5 étages;

Ce n’est pas toujours le cas; par exemple: chargement en

mode immédiat ne nécessite pas d'étage de recherche de

l'opérande en mémoire (Ox).

Pour simplifier le hardware du pipeline, le temps est

calculé en supposant que chaque instruction nécessite les

cinq étages.

PIPELINE

Page 30: Chapitre i architectures des processeurs récents

30

Exécution dans le pipeline: passe par trois phases

1. Amorçage du pipeline;

2. Exécution normale;

3. Vidage du pipeline.

Pendant les deux dernières phases, une instruction se

termine à chaque cycle d’horloge

PIPELINE

programme Cycles d’Horloge

1 2 3 4 5 6 7 8 9

Inst n° 1 I1 D1 O1 E1 S1

Inst n° 2 I2 D2 O2 E2 S2

Inst n° 3 I3 D3 O3 E3 S3

Inst n° 4 I4 D4 O4 E4 S4

Inst n° 5 I5 D5 O5 E5 S5

Page 31: Chapitre i architectures des processeurs récents

31

Déséquilibre entre les étages:

Les étages n’ont pas les mêmes temps de traitement; Il est

nécessaire donc d’utiliser des buffers (files d’attentes)

entre les étages.

Exemple: Si Temps d'exécution > Temps de recherche

L'étage de recherche devra attendre avant de vider son

buffer;

PIPELINE

UA

L

DI

RO

SR

RI

(1) (2)

(4) (5)

Bu

ffe

r

Bu

ffer

Bu

ffe

r

Bu

ffe

r

(3)

Page 32: Chapitre i architectures des processeurs récents

32

Déséquilibre entre les étages:

Temps de passage d’un étage à l’autre pour une

instruction est appelé cycle machine.

Cycle machine inclut le temps de traitement de l’étage +

temps de traversée des buffers

L’étage le plus lent détermine la longueur d'un cycle

machine

PIPELINE

UA

L

DI

RO

SR

RI

(1) (2)

(4) (5)

Bu

ffe

r

Bu

ffer

Bu

ffe

r

Bu

ffe

r

(3)

Page 33: Chapitre i architectures des processeurs récents

33

Aléas du pipeline:

Le bon fonctionnement du pipeline peut être perturbé par

plusieurs événements appelés aléas (pipeline hazard en

anglais). Ces événements sont classés en trois catégories.

1. aléas structurels qui surviennent lorsque deux instructions

dans des étages différents du pipeline nécessitent la même ressource.

2. aléas de données qui surviennent lorsqu’une instruction

nécessite une donnée qui n’a pas encore été calculée par une

instruction précédente. Ceci provient du fait que les instructions

lisent leurs arguments dans les premiers étages du pipeline alors

qu’elles produisent leur résultat dans les derniers étages.

PIPELINE

Page 34: Chapitre i architectures des processeurs récents

34

Aléas du pipeline:

Le bon fonctionnement du pipeline peut être perturbé par

plusieurs événements appelés aléas (pipeline hazard en

anglais). Ces événements sont classés en trois catégories.

1. aléas structurels

2. aléas de données

3. aléas de contrôle qui surviennent dès qu’une instruction de

branchement est exécutée. Si le branchement est effectué, les

instructions qui suivent dans le pipeline ne doivent pas être

exécutée. Ceci provient du fait que la nouvelle adresse est calculée

alors que les instructions qui suivent ont déjà été chargées.

PIPELINE

Page 35: Chapitre i architectures des processeurs récents

35

Aléas Structurels: interviennent lors de conflits de

ressources:

Exemple : la machine a une seule mémoire pour les

données et les instructions, alors que deux étages du

pipeline veulent faire des opération simultanées (I3 et O1

par exemple).

PIPELINE

programme Cycles d’Horloge

1 2 3 4 5 6 7

Inst n° 1 I1 D1 O1 E1 S1

Inst n° 2 I2 D2 O2 E2 S2

Inst n° 3 I3 D3 O3 E3 S3

Page 36: Chapitre i architectures des processeurs récents

36

Aléas Structurels: interviennent lors de conflits de

ressources:

Solutions:

1. Suspendre (ou bloquer) une des instructions jusqu'à ce

que l'unité demandée soit disponible. On voit alors

apparaître des bulles dans le pipeline.

2. Multiplier les ressources; par exemple, séparer entre

mémoire d’instruction et mémoire de programme.

PIPELINE

Page 37: Chapitre i architectures des processeurs récents

37

Aléas Structurels: interviennent lors de conflits de

ressources:

Solution 1: Suspendre (bloquer) une des instructions

jusqu'à ce que l'unité demandée soit disponible.

Problème: l'introduction de suspensions dégrade les

performances.

PIPELINE

programme Cycles d’Horloge

1 2 3 4 5 6 7 8

Inst n° 1 I1 D1 O1 E1 S1

Inst n° 2 I2 D2 O2 E2 S2

Inst n° 3 BULLE I3 D3 O3 E3 S3

Page 38: Chapitre i architectures des processeurs récents

38

Aléas de Données:

Interviennent lorsque deux instructions sont liées par des

dépendances de données: Une instruction a besoin du

résultat d'une instruction précédente;

Considérons ce code: c = b + a

e = c + d

En langage d’assembleur:

Dépendance: Inst 2 a besoin du résultat dans le registre

R4

PIPELINE

Inst1: add , R3, R2

Inst2: add R6, , R5

R4

R4

Page 39: Chapitre i architectures des processeurs récents

39

Aléas de Données: interviennent lorsque deux

instructions sont liées par des dépendances de données.

Exemple:

PIPELINE

Inst1: add , R3, R2

Inst2: add R6, , R5

R4

R4

programme Cycles d’Horloge

1 2 3 4 5 6 7

Inst n° 1 I1 D1 O1 E1 S1

Inst n° 2 I2 D2 O2 E2 S2

R4 est écrit

R4 doit être lu

mais n'est pas

encore écrit

Page 40: Chapitre i architectures des processeurs récents

40

Aléas de Données: interviennent lorsque deux

instructions sont liées par des dépendances de données.

Solutions:

1. Suspendre une des instructions jusqu'à ce que la

donné soit disponible (calculé).

2. Envoyer au plus tôt la donnée (lorsqu’elle soit

disponible) au pipeline.

3. Réordonnancer (changer l'ordre de) l'exécution des

instructions pour éviter ou réduire le problème

PIPELINE

Page 41: Chapitre i architectures des processeurs récents

41

Aléas de Données: interviennent lorsque deux

instructions sont liées par des dépendances de données.

Solution 1: Suspendre une des instructions jusqu'à ce que

la donné soit disponible (calculé).

PIPELINE

Inst1: add , R3, R2

Inst2: add R6, , R5

R4

R4

programme Cycles d’Horloge

1 2 3 4 5 6 7 8

Inst n° 1 I1 D1 O1 E1 S1

Inst n° 2 I2 D2 Bulle O2 E2 S2

Page 42: Chapitre i architectures des processeurs récents

42

Aléas de Données: interviennent lorsque deux

instructions sont liées par des dépendances de données.

Solution 2: Envoyer au plus tôt la donnée (lorsqu’elle soit

calculé) au pipeline.

PIPELINE

Inst1: add , R3, R2

Inst2: add R6, , R5

R4

R4

programme Cycles d’Horloge

1 2 3 4 5 6 7

Inst n° 1 I1 D1 O1 E1 S1

Inst n° 2 I2 D2 Bulle O2 E2 S2

Page 43: Chapitre i architectures des processeurs récents

43

Aléas de Données: interviennent lorsque deux

instructions sont liées par des dépendances de données.

Solution 3: Réordonnancer l'exécution des instructions.

PIPELINE

Inst1: add R4, R3, R2

Inst2: add R6, R4, R5

Inst3: mul R7, R8, R9

Inst4: div R1, R8, R3

Inst1: add R4, R3, R2

Inst3: mul R7, R8, R9

Inst4: div R1, R8, R3

Inst2: add R6, R4, R5

Page 44: Chapitre i architectures des processeurs récents

44

Aléas de Contrôle: interviennent lorsque qu’une

instruction de branchement est exécutée.

Exemple: Si (R1 > 30) alors R3 10 + R1

Sinon R3 20 + R1

Fonctionnement du saut conditionnel

En fonction du résultat du test, le contenu de CO est modifié avec

l'adresse de la prochaine instruction

Phase Ex : exécution de la comparaison par l'UAL

Phase Sx : écriture de CO en fonction du résultat du test

Problème: On doit connaître la valeur du test de valeur de

R1 pour savoir quelle est l'instruction suivante à exécuter

PIPELINE

Page 45: Chapitre i architectures des processeurs récents

45

Aléas de Contrôle: Interviennent lorsque qu’une

instruction de branchement est exécutée.

Exemple: Si (R1 > 30) alors R3 10 + R1

Sinon R3 20 + R1

Solutions:

1. Attendre que le bon CO soit connu : peu efficace

2. Réordonnancer le code : pas toujours suffisant et

possible

3. Prédire quelle sera la valeur de R1 et commencer le

calcul suivant selon cette prédiction

PIPELINE

Page 46: Chapitre i architectures des processeurs récents

46

Aléas de Contrôle: Interviennent lorsque qu’une

instruction de branchement est exécutée.

Exemple: Si (R1 > 30) alors R3 10 + R1

Sinon R3 20 + R1

Solution avec attente:

Attendre le Sx précédent avant de faire le Ix : on passe en

exécution purement séquentielle !

PIPELINE

programme Cycles d’Horloge

1 2 3 4 5 6 7

Inst n° 1 I1 D1 O1 E1 S1

Inst n° 2 Bulles I2 D2 O2 E2 S2

CO est écrit

Lecture du CO

Page 47: Chapitre i architectures des processeurs récents

47

Aléas de Contrôle: interviennent lorsque qu’une

instruction de branchement est exécutée.

Solution avec prédictions:

A l'aide de tables statistiques dynamiques, le résultat

d'un test est prédit. On commence ensuite l'instruction

suivante prédite.

Problème si prédiction erronée

On a commencé des calculs inutiles

Vidage du pipeline pour reprendre dans un état correct

Très couteux en temps

Très pénalisant pour des pipelines profonds

PIPELINE

Page 48: Chapitre i architectures des processeurs récents

48

Aléas de Contrôle: Interviennent lorsque qu’une

instruction de branchement est exécutée.

Solution avec prédiction:

PIPELINE

1 2 3 4 5 6 7 8 9 10 11 12

Inst 1 I1 D1 O1 E1 S1

Inst 2 I2 D2 O2 E2 S2

Inst 3 I3 D3 O3 E3 S3

Inst 4 I4 D4 O4 E4 S4

Inst 5 I5 D5 O5 E5 S5

Inst 6 I6 D6 O6 E6 S6

Inst 7 I7 D7 O7 E7 S7

Inst 8 I8 D8 O8 E8 S8

Branchement à

l’instruction 15

Page 49: Chapitre i architectures des processeurs récents

49

Aléas de Contrôle: Interviennent lorsque qu’une

instruction de branchement est exécutée.

Solution avec prédiction:

PIPELINE

1 2 3 4 5 6 7 8 9 10 11 12

Inst 1 I1 D1 O1 E1 S1

Inst 2 I2 D2 O2 E2 S2

Inst 3 I3 D3 O3 E3 S3

Inst 4 I4 D4 O4 E4

Nettoyage du

pipeline

Inst 5 I5 D5 O5

Inst 6 I6 D6

Inst 7 I7

Inst 15 I15 D15 O15 E15 S15

Page 50: Chapitre i architectures des processeurs récents

50

Aléas de Contrôle: Solution avec prédiction:

PIPELINE

I D O E S

1 Inst1

2 Inst2 Inst1

3 Inst3 Inst2 Inst1

4 Inst4 Inst3 Inst2 Inst1

5 Inst5 Inst4 Inst3 Inst2 Inst1

6 Inst6 Inst5 Inst4 Inst3 Inst2

7 Inst7 Inst6 Inst5 Inst4 Inst3

8 Inst8 Inst7 Inst6 Inst5 Inst4

9 Inst9 Inst8 Inst7 Inst6 Inst5

10 Inst9 Inst8 Inst7 Inst6

11 Inst9 Inst8 Inst7

12 Inst9 Inst8

13 Inst9

Branchement non pris Branchement pris

I D O E S

1 Inst1

2 Inst2 Inst1

3 Inst3 Inst2 Inst1

4 Inst4 Inst3 Inst2 Inst1

5 Inst5 Inst4 Inst3 Inst2 Inst1

6 Inst6 Inst5 Inst4 Inst3 Inst2

7 Inst7 Inst6 Inst5 Inst4 Inst3

8 Inst15

9 Inst16 IInst15

10 IInst16 IInst15

11 IInst16 IInst15

12 IInst16 IInst15

13 IInst16

Nettoyage du pipeline

Page 51: Chapitre i architectures des processeurs récents

51

Cette approche consiste à ajouter des unités (unités de

calculs, de commandes, ….) ou même un pipeline complet.

SUPER-SCALAIRE

FPU (Floating Point Unit): Unité de calcul en virgule flottante

ALU (Arithmetic Logic Unit): Unité Arithmétique et Logique

Page 52: Chapitre i architectures des processeurs récents

52

SUPER-SCALAIRE

Cette approche consiste à ajouter des unités (unités de

calculs, de commandes, ….) ou même un pipeline complet.

Page 53: Chapitre i architectures des processeurs récents

53

SUPER-SCALAIRE

Intérêt: Cette approche permet l'exécution complète ou

partielle de plusieurs instructions en parallèle.

Problèmes:

Nécessite plus de synchronisation entre les unités et

les pipelines

Les unités dupliquées ne sont pas toujours en pleine

utilisation

Coût important en terme de transistors et de place

Page 54: Chapitre i architectures des processeurs récents

54

Un programme peut être découpé en plusieurs sous-

programmes indépendants, appelé threads, qu'on peut

faire exécuter en parallèle.

Hyper-Threading, ou HT, est l’implémentation par

l'entreprise Intel de la technique SMT (Simultaneous

Multi Threading) à deux voies qui permet le partage des

ressources entre deux threads.

HYPER-THREADING

Page 55: Chapitre i architectures des processeurs récents

55

MULTITHREADING VS HYPER-THREADING

Page 56: Chapitre i architectures des processeurs récents

56

Schématiquement, l’Hyper-Threading consiste à créer

deux processeurs logiques au sein d'un processeur

physique.

Un processeur logique est doté de ses propres registres de

données, de contrôle et d’état, et d’un contrôleur

d’interruptions particulier.

Les deux processeurs logiques partagent les éléments du

cœur de processeur (unités de traitement),

le cache (mémoire) et le bus système. Ainsi, ces deux sous-

processus peuvent être traités simultanément par le

même processeur.

HYPER-THREADING

Page 57: Chapitre i architectures des processeurs récents

57

Néanmoins, seul un processeur super scalaire, doté d’une

grande puissance de calcul, peut réellement effectuer un

multi-threading.

Le premier processeur super scalaire capable d’exécuter

plusieurs instructions simultanément a été le Pentium 4

cadencé à 3,6 GHz.

HYPER-THREADING

Page 58: Chapitre i architectures des processeurs récents

58

Un processeur est appelé multi-core ou multi-cœur quand

il est doté d’un microprocesseur qui intègre au moins deux

CPU (Central Processing Unit) ou cores indépendants

dans une seule puce.

Le CPU constitue en effet le seul élément capable

d’exécuter un programme ou processus. Il comporte des

unités de calcul, des mémoires caches, des registres, des

ordonnanceurs ainsi que tous les autres circuits

électroniques qui lui permettent d’effectuer des opérations

arithmétiques et logiques.

MULTI-CŒUR

Page 59: Chapitre i architectures des processeurs récents

59

MULTI-CŒUR VS HYPER-THREADING

Page 60: Chapitre i architectures des processeurs récents

60

La technologie multi-cœur est assez similaire à la

technologie hyper-threading qui consiste en l’exécution en

parallèle des instructions élémentaires de deux threads

différents.

La nouveauté réside dans le fait qu’il existe plusieurs

cores qui fonctionnent chacun en hyper-threading.

Le but du processeur multi-cœur est donc d’augmenter le

nombre d’opérations élémentaires exécutées

simultanément en un cycle d’horloge. Cette technique a

aussi l’avantage de réduire les réchauffements du CPU.

MULTI-CŒUR VS HYPER-THREADING

Page 61: Chapitre i architectures des processeurs récents

61

Un ordinateur multiprocesseur est doté de

plusieurs processeurs, permettant un parallélisme de

tâches, où un processus peut être exécuté sur chaque

processeur.

La différence entre le multiprocesseur et le multi-cœur

tient au fait qu'il ne s'agit plus d'une division du nombre

d'unités de calcul mais d'une multiplication de celles

existantes. Ainsi, cette technologie permet une plus

grande puissance (vitesse) de calcul.

MULTIPROCESSEURS

Page 62: Chapitre i architectures des processeurs récents

62

MULTIPROCESSEURS

Page 63: Chapitre i architectures des processeurs récents

63

Page 64: Chapitre i architectures des processeurs récents

64

Grace à sa haute performance, l’architecture

multiprocesseur, est utilisée pour construire ou fabriquer

des supercalculateurs ou superordinateurs.

Les supercalculateurs sont déployés pour toutes les tâches qui

nécessitent une très forte puissance de calcul comme les prévisions

météorologiques, la modélisation moléculaire (calcul des structures et

propriétés de composés chimiques…), les simulations physiques

(simulations aérodynamiques, calculs de résistance des matériaux,

simulation d’explosion d’arme nucléaire, étude de la fusion

nucléaire…), la cryptanalyse, les simulations en finance et assurance

(Calcul stochastique), etc.

MULTIPROCESSEURS

Page 65: Chapitre i architectures des processeurs récents

SOURCES DE CE COURS

M. Koudil, Cours Approches de conception des systèmes, Partie 2: Accélération des calculs,

Ecole nationale Supérieure d’Informatique (ESI), 2004.

E. Cariou, Fonctionnement et performance des processeurs, Université de Pau et des Pays de

l'Adour, Disponible sur web.univ-pau.fr/~ecariou/cours/archi/cours-7-cpu.pdf‎

Theoris, Architecture Matérielle des Ordinateurs, Quatrième Partie : Architectures évoluée,

2004, disponible sur repo.mynooblife.org/Materiel/archi%20materielle%20-%20part4.pdf‎ .

P. Michaud, Architecture des processeurs généralistes haute performance, disponible sur

www.lirmm.fr/archi07/archi07-michaud.pdf‎

Ivan Boule, Rappels Architecture des Ordinateurs, 2008, disponible sur

deptinfo.cnam.fr/new/spip.php?pdoc7559

G. Grave, Multicoeurs, Hyperthreading, GPGPU : les Architectures modernes, 2012. 65