Aucun titre de diapositive

publicité
Processeurs Hautes
Performances Panorama et
Nouveaux Défis
André Seznec
IRISA/INRIA
http://www.irisa.fr/caps
1
André Seznec
Caps Team
IRISA/INRIA
Microprocesseurs Hautes Performances
Plan







Quelques données en 2000
Quel jeu d'instructions
Le pipeline
Le parallélisme d’instructions
L’exécution spéculative
La hiérarchie mémoire
Le parallélisme de processus
2
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Quelques repères (2000)




Fréquence : 400 Mhz à 1 Ghz
Durée d'une opération ALU: 1 cycle
Durée d'une opération flottante : 3 cycles
Lecture/écriture dans un registre : 1 cycle
 souvent un chemin critique ...
 Lecture/écriture du cache L1: 1-2 cycles
 dilemme taille-associativité-temps
d ’accès
3
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Quelques repères (2000)
 L'intégration : 0.25m, 0.18m, 0.125m (2001)
 10 à 20 millions de transistors de logique
 Le reste en mémoire cache: jusqu'à 100
millions de transistors
 20 à 60 Watts
 > 100 W bientôt
 400 à 600 broches
 > 1000 bientôt
4
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Quelques repères (sept 2000)
 Processeurs x86 pour PC:
 bas de gamme: 500 Mhz, <100 $
 haut de gamme: 1,1 Ghz, 700 $
 La mémoire DRAM : 1$ le Mbyte
 La mémoire SRAM : 50$ le Mbyte
5
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Compatibilité binaire
 Une donnée économique : 300 000 000 de
PCs !
 un nouveau jeu d'instructions: RISQUÉ !!
 Le monde change (peut-être):
 les processeurs enfouis, le multimédia
 l'IA 64 arrive
6
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Architecture 32 ou 64 bits
 Architecture 32 bits: l'adresse virtuelle est de 32 bits
 PowerPC, x86,
 Architecture 64 bits : l'adresse virtuelle est de 64
bits.
 MIPS III, Alpha, Ultrasparc, HP-PA 2.x, IA64
 En 2005: les jeux ? Word ?
 LE MOUVEMENT EST INEXORABLE:
 x86
7
la rupture?
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Quel jeu d'instructions ?
 CISC: x86
 RISC: Sparc, Mips, Alpha, PowerPC, HP-PA
 EPIC: IA-64
 est-ce que c’est important ?
8
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Les jeux d’instructions
processeurs RISC
 Une seule taille d'instruction : 32 bits
 simplifie le décodage
 adresse suivante
 Architecture load/store
 Modes d'adressage simples : basé et indexé
 Instructions simples registre-registre
 Avantage : se pipeline bien
9
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
RISC (2)
 registres généraux + registres flottants
 accès à la mémoire: de l'octet au mot de 64
bits ALIGNE
 support limité à l’exécution spéculative:
CMOV
10
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Le jeu d’instructions CISC x86
 taille d’instruction variable
 opérandes en mémoire ou en registres
 code destructeur: on écrit l’un des
opérandes
 durée de certaines opérations imprévisibles
11
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Le jeu d’instruction EPIC IA64
 EPIC IA64 =
 RISC





+ plus de registres (128 entiers, 128 flottants)
+ 3 instructions codées en 128 bits
+ 64 registres de prédicats
+ dépendances gérées par le matériel
+ (?) Advanced Loads
 Idée: le compilateur gère le parallélisme
d’instructions
12
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
IA 64
 L’angoisse de la page blanche !?





-Support matériel au pipeline logiciel
• Rotating registers
• Gestion de boucle
-Fenêtres de registres: à taille variable!
-Pas d’adressage basé
-adressage post-incrémenté
- (?) Advanced Loads
13
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
ISA: est-ce important ?
 32 ou 64 bits:
 vers l’abandon (ou la mutation !) d’x86
 Les performances:
 et x86 ? :=)
 en flottant !!
 à technologie égale ?
14
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
ISA: est-ce important (2) ?
 x86: traduction en mOpérations
 4 cycles perdus !
 Ou utilisation d’un trace cache
 x86 pas assez de registres flottants
 Alpha 21264: 2 opérandes 1 résultat
 le + performant des RISCs
 Itanium: l ’IA 64 dans l’ordre
 800 Mhz en 0.18 m (pas encore disponible !)
 Alpha
15
21164 700 Mhz 0.35m (1997)
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Et alors ?
 x86: + base installée, +poids d’Intel, « doit» monter à 64 bits
 IA64: + support à l ’exécution spéculative,
+poids d’Intel
 Alpha: + le plus « clean », -stratégie de
Compaq
 Sparc: = jeu d ’instructions, + SUN
 Power(PC): complexe, =IBM et Motorola
16
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
L’angoisse de l’architecte
 400 mm2 de silicium
 3 générations de technologie en avant
 que faire pour obtenir les performances ?
 Pipeline
 Parallélisme d’instruction
 L’exécution spéculative
 La hiérarchie mémoire
 Le
parallélisme de processus
17
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Le pipeline: de plus en plus
profond
 Plus on stresse l'horloge, moins on en fait en un
cycle.
 1 cycle = traversée d’une ALU + rebouclage
 Communications intra-CPU de + en + longues:
 plusieurs cycles pour traverser le composant
 Le contrôle est de + en + complexe:
 plus d’instructions en //
 plus de spéculation
18
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Quelques profondeurs de
pipeline




12-14 cycles sur l’Intel Pentium III
10-12 cycles sur l’AMD Athlon
7-9 cycles sur l’Alpha 21264
9 cycles sur l’UltraSparc
 10 cycles sur l’Itanium
 20 cycles sur Willlamette
 Et ça ne va pas s’améliorer !!
19
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Le //isme d’instructions
 Superscalaire:
 le droit de lancer les instructions en // est
géré par matériel à l’exécution
 Compatibilité binaire d’une génération sur
l ’autre
 TOUS LES PROCESSEURS SONT
SUPERSCALAIRES
20
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Le degré superscalaire
 Difficile à définir:
 « performance qu’on est certain de ne
pas dépasser »
 4 inst / cycles sur presque tous les
processeurs existants
 6 inst / cycles sur Itanium
 8 inst / cycles sur le (futur) Alpha 21464
 16 -32 sur Alpha 21964 ?? En 2012 ? :=)
21
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Superscalaire : les problèmes
 Parallélisme d'instructions limité : 3 à 8
instructions par cycle
 Le fichier de registres :
 le nombre de ports augmentent
 chemin critique
 La fourniture des instructions aux UFs
 La dépendances de données
 Les branchements.
22
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Exécution dans l’ordre ou
dans le désordre
 Respecter l’ordre du programme ou non:
 Ah! Si toutes les latences étaient connues
statiquement,…
 Les « partisans » de l ’ordre:
 UltraSparc 3, Itanium
 Le compilateur doit faire le travail
 Les « partisans » du désordre:
 Alpha 21264, Pentium III, Athlon, Power (PC),
HP-PA 8500
23
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Pourquoi l’exécution dans
l’ordre
 simple à mettre en œuvre
 moins de transistors
 moins de temps de développement
 horloge rapide (discutable)
 pipeline moins profond
 le compilateur « voit » tout:
 la micro-architecture
 le programme
24
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Pourquoi l’exécution dans le
désordre
 l ’ILP statique est limité dans les codes non
réguliers
 le compilateur ne « voit » pas tout:
 latences inconnues à la compilation
 (in)dépendances inconnues à la
compilation
 pas besoin de recompiler
 hum !!
25
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Exécution dans le désordre (1)
 Principe :
 exécuter les instructions dès que :
opérandes disponibles et unités
fonctionnelles disponibles
 Mise en œuvre :
 une grande fenêtre d'instructions où on
choisit les instructions exécutables
26
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Exécution dans le désordre (2)
 Le séquencement consiste à :
 Lire les instructions en //
 Marquer les dépendances
 Renommer les registres
 Dispatcher vers les unités fonctionnelles
 Attendre ..
 La gestion des dépendances prend de la
place et du temps : pipeline profond
27
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Renommage de registres:
ou comment enlever les fausses dépendances
 Aléas WAW et WAR sur les registres peuvent être évitées par
renommage dynamique des registres.
28
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Dépendances mémoires
 pour exécuter une écriture sur la mémoire, on a
besoin de la donnée à écrire
 en dehors de toute information, toute lecture
mémoire est potentiellement dépendante de toute
écriture mémoire précédente
 Solution (provisoire):
 Calcul des adresses dans l'ordre du programme
 Dépassement des écritures par les lectures avec
détection des aléas
29
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Dépendances mémoires (2)
 Solution (actuelle):
 Exécution optimiste dans le désordre
 Réparation si la dépendance existe
 Pb: coût de la réparation
 Prochaine génération: la prédiction de
dépendances sur la mémoire
 Moshovos et Sohi, Micro'30, décembre 1997
 Chrysos et Emer, ISCA ’26, juin 1998
30
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Les dépendances de contrôle
 15 à 30% des instructions sont des
branchements.
 La cible et la direction d'un branchement
sont connues très tard dans le pipeline :
 Cycle 7 sur le DEC 21264
 Cycle 11 sur l'Intel Pentium II
 Cycle 18 sur Willamette
 Pas question de perdre tous ces cycles !
31
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Prédiction de branchement
dynamique
 Garder un historique des derniers passages et
utiliser cet historique pour anticiper le branchement
 Mise en œuvre: une table lue en même temps que
le cache d’instructions
 On prédit:
 la cible et la direction des branchements
 les retours de procédures
 les branchements indirects
32
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Branchements conditionnels
 Plus important de prédire la direction que la
cible
 Schémas de prédiction de plus en plus
complexes
• adresse
• historique des derniers branchements
–global ou local
• schémas hybrides
33
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Prédiction de branchement




1992: DEC 21064, schéma à 1 bit
1993: Pentium, schéma à 2 bits
1995: PentiumPro, historique local
1998: DEC 21264, prédicteur hybride
34
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Prédiction de branchement :
tendance générale
 Schémas de plus en plus complexes
 Découplage de la prédiction de l'adresse et
de la direction
 Pile de retour pour les procédures
 Support dans les jeux d'instructions pour
l’exécution spéculative:
 CMOV
 prédicats de l ’IA64
35
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Exécution dans le désordre:
Savoir « défaire »
 Mauvaise prédiction de branchement
 Mauvaise anticipation d'indépendance
 Interruption, exception
 Valider dans l’ordre du programme
 Ne rien faire de définitif dans le désordre
36
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Savoir « défaire »

Une copie du fichier de registres est mise
à jour dans l'ordre du programme
 ou
 Une <<carte>> registres logiques-registres
physiques est sauvegardée
 Les écritures en mémoire sont faites à la
validation
37
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
De l'importance de la
hiérarchie mémoire

Exemple :
 4 instructions/cycle,
 1 accès mémoire par cycle
 10 cycles de penalité sur le L2
 50 cycles pour la mémoire
 2% de défauts d'instructions L1, 4% de défauts
données L1, 1 référence sur 4 en défaut sur L2
 Pour exécuter 400 instructions : 395 cycles
38
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Sauf que ..




Les caches primaires sont non-bloquants
Le cache secondaire est pipeliné
La mémoire est pipelinée
Préchargement matériel et logiciel
 Latence et débit sont importants
39
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Caches primaires:
tendance générale




1-2 cycles pour lecture ou écriture
multiples accès par cycle
non-bloquant
associatif faible degré
 Restera petit !
 Une exception: HP-PA 8500
40
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Caches secondaires :
tendance générale
 Il n’est plus question de s’en passer !
 Généralisation on-chip ou sur le module
 Accès pipeliné
 latence courte : 7-12 cycles
 bus 128 bits, devrait s’élargir
 temps de cycle: 1-3 cycles processeurs
 La contention sur le cache L2 devient un
goulot d’étranglement
41
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
La mémoire principale
 Loin, trop loin du processeur:
 plusieurs centaines d’instructions
 Vers un abandon du modèle classique ?
 mémoire sur le bus système:
• cohérence par snooping
 bus mémoire + bus système
• cohérence par directory
42
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
la mémoire principale sur le
bus système
43
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Mémoire principale en connexion
directe
44
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Que faire avec un milliard de
transistors ou plus?
 IRAM: le processeur et sa mémoire
 monoprocesseur + exécution spéculative
 Le parallélisme de processus:
 multiprocesseur à mémoire partagée
 processeur SMT
45
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
IRAM
 le processeur et sa mémoire sur un même
composant
 bande passante mémoire énorme à un coût
limité
 Une fausse bonne idée
 Consommation mémoire des applications
augmente
 Extensibilité ?
 La solution pour certaines applications enfouies
46
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Un monoprocesseur +
exécution spéculative
 superscalaire 16 ou 32 voies
 hyperspéculation:
 branchements, dépendances, données ..
 Les défis:
 la qualité de la prédiction
 les temps de communication sur le composant
 la contention sur les structures:
• caches , registres, ...
47
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Le //isme de processus:
à la croisée des chemins
 Le parallélisme « gros grain » arrive sur le
composant
 Un
multiprocesseur on-chip ?
• IBM Power 4 ( fin 2001)
 Simultaneous Multithreading ?
• Compaq Alpha 21464 ( 2003)
48
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Un multiprocesseur on-chip
 Peut-être la solution, mais ..
 Où sont les applications?
 La bande passante sur la mémoire?
 Et la performance sur un processus ?
 Manquons-nous d'imagination à ce
point?
49
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
multiprocesseur on-chip:
IBM Power 4 (2001)
 Marché visé: les serveurs
 2 processeurs superscalaire 4 voies sur un
composant:
 cache secondaire partagé
 4 composants sur un même MCM (multichip
module)
 bande passante énorme sur le MCM
50
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
La vision du programmeur
51
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Simultaneous Multithreading
(SMT)
 Les UFs d’un processeur sont sous-utilisées
 SMT:
 Partager les UFs d’un processeur
superscalaire entre plusieurs processus
 Avantages:
 1 processus a toutes les ressources
 partage dynamique des structures
(caches, prédicteurs, UFs)
52
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
SMT: Alpha 21464 (2003)
 Un processeur superscalaire 8 voies
 Performance ultime sur un processus
 Si multiprocessus, 4 processus se
partagent les unités fonctionnelles:
 Surcoût pour ce partage 5-10 %
53
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
La vision du programmeur
54
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Le SMT: les voies de la
recherche
 Speculative multithreading:
 un coup plus loin que la prédiction de
branchement
 Multipath execution:
 dans le doute, exécutons les 2 branches
 Flot de support:
 Utilisons un flot <<esclave>> pour accélérer le
flot principal:
• préchargement
• anticipation de branchement
55
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Boule de cristal
Le processeur du PC en 2010
 Jeu d'instruction x86+:
 extension pour mode + de 32 bits
 Superscalaire 10 voies SMT
 Exécution dans le désordre
 < 50 mm2
 support multiprocesseur: cache snooping
56
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Boule de cristal
Le processeur du serveur en 2010
 Jeu d'instruction IA64 ou Alpha+
 les registres de prédicats !!
 Multi SMT 10 voies
 Prédiction de dépendances agressif
 Multipath execution
 support multiprocesseur: directory
coherence
57
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
La vision du programmeur !
58
André Seznec
Caps Team
Irisa
Microprocesseurs Hautes Performances
Les grandes questions
 Saura-t-on maitriser la complexité
du design?
 Qui saura programmer ces
monstres ?
59
André Seznec
Caps Team
Irisa
Téléchargement