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/
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
CONTENU DE LA MATIÈRE
I. Architectures des Processeurs récents
II. Mémoires
III. Entrées/Sorties et Interruptions
3
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
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
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
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
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
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
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
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
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
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
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
16
EXEMPLE D’INSTRUCTIONS RISC
17
EXEMPLE D’INSTRUCTIONS RISC
Ecrire le programme suivant en utilisant le jeu
d’instructions CISC (par exemple INTEL 8086) et RISC.
18
EXEMPLE D’INSTRUCTIONS RISC
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
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
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
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
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
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
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
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
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
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
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
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
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)
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
52
SUPER-SCALAIRE
Cette approche consiste à ajouter des unités (unités de
calculs, de commandes, ….) ou même un pipeline complet.
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
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
55
MULTITHREADING VS HYPER-THREADING
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
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
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
59
MULTI-CŒUR VS HYPER-THREADING
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
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
62
MULTIPROCESSEURS
63
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
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
Top Related