Title: Et maintenant, o
1Et maintenant, où allons-nous?
- Après toutes les techniques vues jusquici
- Que peut-on faire de plus?
- Question plus fondamentale (et importante)
Lorsque toutes les techniques vues jusquici sont
en place, doù viennent les limites de
performance?
2Quelles sont les limites de performance qui nont
pas été abordées jusquici?
- Dans les années 50, lorsquon sest aperçu que
les ordinateurs passaient le plus clair de leur
temps à faire des entrées/sorties, on a découplé
les E/S (I/O) du processeur central. - Plus tard, on a même introduit les systèmes
batch , pour augmenter le niveau dutilisation
du CPU central. - En quoi ces deux problèmes des années 50
sont-ils semblables à ce qui limite maintenant la
performance?
3Le temps daccès à la mémoire est grand!
- Maintenant, dans les années 2000, quest-ce qui
limite la performance des processeurs? - Le temps daccès à la mémoire est de plus en plus
grand par rapport au temps dexécution du
processeur. - Lorsquun accès à la mémoire est fait, on observe
les temps daccès suivants (valeurs provenant
dun processeur Alpha 21164 à 300 MHz) - Pas de délai pour le cache L1
- 7 cycles pour un accès manqué dans L1, réussi
dans L2 - 21 cycles pour un accès manqué dans L2, réussi
dans L3 - 80 cycles pour un accès à la mémoire
4Les implications des grands temps daccès
- Les délais impliqués lorsque les données ne sont
pas dans les mémoires caches sont très grands. - Donc, lorsquil y a un cache miss , le
processeur va sarrêter pendant un long moment
(en supposant quon ne peut exécuter dautres
instructions qui sont déjà dans le processeur) - Ceci va se passer assez souvent lorsquon vient
de faire un saut dans une nouvelle partie de code - Si le délai daccès à la mémoire est trop grand,
éventuellement linstruction en attente va
arrêter toutes les autres à causes de dépendances
de données - Dune certain façon, on revient au problème vécu
dans les années 50 le processeur passe trop de
temps à faire des entrées/sorties, et le CPU (les
unités dexécution dans notre cas) sont trop
souvent inactives en attendant que les données
soient disponibles)
5Une solution possible aux grands temps daccès à
la mémoire
- Dans les années 50, on a tout fait pour garder
le CPU occupé autant que possible - Dans les années 2000, on doit aussi tenter de
garder (toutes) les unités dexécution occupées,
même pendant un accès à la mémoire - Au niveau du système dexploitation, on sait
quil y a souvent beaucoup de threads qui
existent au niveau du répartiteur. - Et si on faisait le context switch entre les
threads au niveau du processeur?
6Les processeurs multithreaded lavenir?
- Puisque le processeur est souvent inactif (en
tout ou en partie, i.e. toutes/certaines unités
dexécution sont inutilisées), une idée
intéressante est de faire exécuter plusieurs
threads parallèles par le processeur - En ayant plus dinstructions parmi lesquelles
choisir, le taux doccupation des unités
dexécution devrait augmenter
7Les processeurs multithreaded Quest-ce que
cest?
- On définit une machine multithreaded ainsi
- Processeur dans lequel les instructions à
exécuter proviennent potentiellement de
différents threads - Quel est lavantage de ces machines?
- Lorsquun thread est immobilisé (par une
instruction en attente de quelque donnée ou unité
dexécution), dautres instructions provenant de
dautres threads peuvent sexécuter - Les threads partagent la même mémoire, donc
laccès à la mémoire (le tableau des pages) na
pas besoin dêtre modifié
8Types de machines multithread
- Machine single-thread scalaire
9Types de machines multithread
- Machine multi-thread scalaire par bloc
Changement de contexte (Context Switch)
10Types de machines multithread
- Machine multi-thread scalaire cycle-par-cycle
11Types de machines multithread
- Machine single-thread superscalaire
12Types de machines multithread
- Machine single-thread VLIW
13Types de machines multithread
- Machine multi-thread superscalaire
cycle-par-cycle
14Types de machines multithread
- Machine multi-thread VLIW cycle-par-cycle
15Types de machines multithread
- Machine multi-thread superscalaire par émission
(Simultaneous multithreading, SMT) - Université de Washington (1995), Karlsruhe (1996)
16Types de machines multithread
- Machine multi-thread scalaire par émission (chip
multiprocessor, CMP)
17Le futur quoi dautre?
- On a remarqué que dans de nombreux programmes,
les mêmes variables sont lues de façon répétitive
avec les mêmes valeurs. - Idée on va commencer lexécution dune
instruction avant de connaître la valeur de ses
opérandes, en utilisant des valeurs prédites
à partir des valeurs précédentes - On appelle cette technique la superspéculation
18La superspéculation
- Les processeurs utilisant cette technique
utilisent deux sous-systèmes - Un système front end qui spécule de façon
agressive, allant jusquà prédire les valeurs
manquantes - Un système back end qui valide les
prédictions de valeurs et qui peut corriger le
tir lorsque nécessaire