Title: Aucun titre de diapositive
1(No Transcript)
2Processeurs Hautes PerformancesPanorama et
Nouveaux Défis
- André SeznecIRISA/INRIAhttp//www.irisa.fr/caps
3 Plan Quelques données 32 ou 64
bitsLe pipelineLe superscalaireLa prédiction
de branchementLes cachesQuel jeu
d'instructionLe Pentium II mais que reste-t-il
au RISCDirections de la rechercheTout ce dont
je n'ai pas parlé Quelques repères (1998)
Fréquence 300 à 700 MhzDurée d'une
addition entière 64 bits 1 cycleDurée d'une
opération flottante 3 cyclesLecture/écriture
d'un mot dans un registre 1 cycleLecture/écrit
ure d'un mot dans un cache primaire 1
cycle Quelques repères (1998)
L'intégration Transition de 0.35 à 0.25 5
à 10 millions de transistors de logiqueLe reste
en mémoire cache jusqu'à 100 millions de
transistors20 à 60 Watts400 à 600 broches
Quelques repères (1998) Processeurs x86 pour
PCHaut de gamme Bas de gamme Haut de
gamme bas de gamme 2 ansLa
mémoireDRAM 2 le Mbyte, divisé par 10 en
2 ansSRAM 50 le Mbyte (133 Mhz)Compatibi
lité binaire Une donnée économique 300 000
000 de PCs !un nouveau jeu d'instructionsRISQ
UÉ !!Le monde change Les processeurs
enfouis, le multimédial'IA 64
!!Architecture 32 ou 64
bitsArchitecture 32 bits l'adresse virtuelle
est de 32 bits.ex IBM Power2, PowerPC 60x,
Intel Pentium et Pentium II 1992Architecture
64 bits l'adresse virtuelle est de 64
bits.MIPS R4000, DEC Alpha, Ultrasparc,
PowerPC620Faux 64 bits 40 bits sur le MIPS
R1000043 bits sur les DEC 21x64Applications
Les bases de donnéesLa grande simulation
numériqueLes machines multiprocesseursEn 2005
les jeux ? Word ?LE MOUVEMENT EST INEXORABLE
x86 la rupture?Le problème 5-10
millions de transistors de logiquede la mémoire
peut-être 100 millions de transistorsQu'en
faire pour obtenir la performance
?Aujourd'huiLe pipelineL'exécution
superscalaireLa prédiction de branchementLes
cachesAvec quel jeu d'instruction ? Le
pipeline1 cycle 1 opération ALUTENDANCE
LOURDE pipeline profondPlus on stresse
l'horloge, moins on peut en faire en un
cycle.Plus on veut exécuter d'instructions en
parallèle, pluscomplexe est le controle9
cycles sur l'UltraSparc5-7 cycles sur le MIPS
R1000012 cycles sur le Pentium II7-9 cycles sur
le DEC 21264 6-8 cycles sur l'IBM Power
604 Les processeurs
superscalairesPrincipes Lancer plusieurs
instructions par cycle,le droit de lancer les
instructions est géré àl'exécutionAvantages
Compacité du codeCompatibilité
binaireTOUS LES PROCESSEURS SONT
SUPERSCALAIRES.superscalaire naturel les
unités fonctionnelles existantes dans les
microprocesseurs ne sont pasdupliquéesALUUnité
flottanteAccès à la mémoireUnité de
séquencementExemples DEC 21064, IBM Power,
Power601, MIPS R5000Certaines unités
fonctionnelles dupliquées TI SuperSparc 2
ALUsMIPS R8000, IBM Power2 2 opérateurs
flottants, 2 accès au cache tous les
processeurs "high-end" annoncés après
1995Superscalaire les problèmesParallél
isme d'instructions limité 3 à 8 instructions
par cycleLe fichier de registres le nombre
de ports augmentent chemin critiqueLa
fourniture des instructions aux UFsLa gestion
des dépendances de donnéesLes
branchements.Un superscalaire synchrone
le DEC 21164 (fin 1994)
figure/arch_dd/seznec/rapportmicro1995/figures/de
c_3pipinst.eps,width15cm
figure/arch_dd/seznec/rapportmicro1995/figure
s/dec_pipinstr.eps,width15cm Un
superscalaire synchrone le DEC 21164700 Mhz
privéligie l'horlogeLecture de 4
instructions alignéesDécodageAffectation des
unités fonctionnellesGestion des dépendances
lancement dans l'ordreNombreuses restrictions
Groupes d'instructions alignésLancement dans
l'ordrePas de refonte de blocsExécution
dans le désordreMIPS R10000, PowerPC604,
HP8xxx, Intel Pentium II, ..Principe
exécuter les instructions dès que possible
opérandes disponiblesunités fonctionnelles
disponiblesLes pbs à résoudre La
fourniture des instructionsLa gestion des
dépendances de données La gestion des
branchementsLes interruptionsExécution
dans le désordre Principe avoir une grande
fenêtre d'instructions exécutables en avance,
pour pouvoirchoisir des instructions
exécutablesLe séquencement consiste à
Lire les instructions en //Marquer les
dépendancesDispatcher vers les unités
fonctionnellesLa gestion des dépendances
prend de la place et du temps pipeline
profondRenommage de registres ou comment
enlever les fausses dépendances Aléas WAW et
WAR sur les registres peuvent être évitées par
renommagedynamique des registres.
figure/arch_dd/seznec/rapportmicro1995/figure
s/power_exrenom.eps,width16cm
Doublement des écritures par les lectures
sur la mémoire (1)pour exécuter une écriture
sur la mémoire, on a besoin de la donnée à
écrireen dehors de toute information, toute
lecture mémoire est potentiellementdépendante
de toute écriture mémoire précédenteSolution
(provisoire)Calcul des adresses dans l'ordre
du programmeDépassement des écritures par les
lectures avec détection desaléasDoublemen
t des écritures par les lectures sur la mémoire
(2)Solution (actuelle)Exécution
optimiste dans le désordreRéparation si
dépendence existePb coût de la
réparationUn domaine de recherche
actifLa prédiction de dépendences sur la
mémoireÉviter le coût de la
réparationCourt-circuiter la mémoiretabular
l c l c .., r1 t1 .., r1 t1st r1, _at_X
t3 ld _at_X, r5 t5 add r5,.. t6
add r1, .. t2 tabularMoshovos et Sohi,
Micro'30, décembre 1997Les
branchements15 à 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 21264Cycle 11 sur
l'Intel Pentium II6Au plus tot
!!prédiction de branchement de ne pas
perdre(toujours) ces cycles.Le jeu en vaut
la chandelle !PREDICTION DE BRANCHEMENT
DYNAMIQUE Principe Garder une historique
des derniers passagesUtiliser cette historique
pour anticiper le branchementImplémentation
Une table lue en même temps que les
instructions Historique (Branch History
Table)Cibles (Branch Target Buffer) Return
StackÀ venir prédiction des branchements
indirectsPREDICTION DE
BRANCHEMENTBranchements conditionnelsPlus
important de prédire la direction que la
cibleSchémas de prédiction de plus en plus
complexesadresse historique des derniers
branchements (global ou local)prédicteurs
hybrides ..Pb des interférences sur les tables
de prédictionsMichaud et al., Sprangle et al,
ISCA 1997, Lee et al, Micro 30,
1997Branchements inconditionnelsprédiction
des branchements indirectsReturn Stackadresse
historique Chang et al. ISCA
1997PREDICTION DE BRANCHEMENT
utilisationSchémas 1992 DEC 21064,
schéma à 1 bit 1993 Pentium, schéma à 2
bits1995 PentiumPro, Two-level adaptative
branch prediction1997 DEC 21264, prédicteur
hybrideTables DEC 21064 recalcul de la
ciblePentium Branch Target BufferDEC 21264,
Pentium II BTB Return StackPrédiction
de branchement tendance générale Schémas de
plus en plus complexesDécouplage de la
prédiction de l'adresse et de la directionPile
de retour dans les processeursCMOV Support dans
les jeux d'instructions pour l'éxécution
spéculativeIL EST NORMAL DE CONSACRER AUTANT
DE SILICIUM A LA PREDICTION DE BRANCHEMENTQU'AUX
CACHES PRIMAIRES. Savoir défaireAvec
exécution dans le désordre, on doit pouvoir
"défaire" Fausse prédiction de branchement
Fausse anticipation d'indépendenceInterruption,
exceptionUne solution Une copie du
fichier de registres est mise a jour dans
l'ordre du programmeLes écritures en mémoire
doivent attendre leur tourDe
l'importance des cachesExemple 4
instructions/cycle, 1 accès mémoire par cycle10
cycles de penalité pour cache de second niveau
50 cycles pour la mémoire2 de défauts
d'instructions L14 de défauts données L11
référence sur 4 en défaut sur L2Pour exécuter
100 instructions cycles 1.08
inst/cycleSauf que ..Les caches primaires
sont non-bloquantsLe cache secondaire est
pipelinéLa mémoire est pipelinéeCac
hes primaires tendance généraleLe temps de
lecture ou d'écriture est 1 cycle le cache
primaire restera petitLe cache primaire
supporte plusieurs accès par cycle le cache
primaire restera petitLe cache primaire est non
bloquant en cas de défaut, seules les
instructions dépendantes sont retardéesL'accès
au cache secondaire est pipeliné.La taille des
blocs dans le cache est petite aujourd'hui 32
bytes, devrait diminuer à 16 bytes Caches
secondaires tendance généraleIls
deviennent obligatoires !Généralisation on-chip
Accès pipeliné transactions imbriquéesLatence
d'accès très courte 5-7 cyclesTemps de cycle
1-2 cyclesBus 128 bitsLa contention sur le
cache secondaire devient un goulot
d'étranglement Quel jeu
d'instructions ?La saga RISC 1980
Patterson et Ditzel formalisent le concept1982
IBM 801, RISC I et RISC II 1987-88 MIPS R2000,
Sparc1990 IBM Power, Intel i8601992-95 DEC
Alpha, TI Supersparc, MIPS R4000, R8000 et
R10000, HP8000,Ultrasparc, ..Intel xxx86 fait
de la résistance !Jeux d'instructions des
processeurs RISCPrincipes communs Une seule
taille d'instruction 32 bits simplifie le
décodage et le calcul de l'anticipation de
l'adresse suivanteArchitecture load/store pas
d'opérations avec opérandes ourésultat en
mémoireModes d'adressage simples basé et
indexéInstructions simples registre-registre
opérandes dans les registreset résultat dans les
registres Avantage se pipeline
bienInstructions d'accès à la
mémoireFormats accédés En général,de
l'octet au mot de 32 ou 64 bits ALIGNESur le
DEC Alpha, mots de 32 ou 64 bits (erreur réparée
sur 21164AA)tabularllladressage reg
Base 2 Read 1 Write Alpha, MIPSIndexe 3
Read 1 Write Sparcpreincremente 3 Read
2 Write PowerPC tabularInstructions
complexesMultiply-add flottant (PowerPC, MIPS
IV)Visual Instruction Set UltraSparcCMOV
Alpha, Sparc 9, MIPS IV, PentiumProBranch and
Count PowerPCSupport à la prédiction de
branchement Sparc 9, Alpha Le
Pentium II La revanche du CISC Les difficultés
liées au jeu d'instructionsTaille
d'instructions variables (1 à 15 bytes)Plusieurs
occupations successives d'une même
ressourceNombre d'itérations inconnu sur
certaines instructionsTemps d'exécution
imprévisible pour certaines instructionsP
entium II Solution adoptéeUne constation les
jeux d'instruction RISC sont plus simples à
pipeliner etexécuter en parallèleLa solution
exécuter du "code " RISC !Comment ? Le
décodage des instructions est remplacée par une
traduction enpseudo-code RISC Pentium II
Exemple MEM REG -- MEM - 4 ops
(RISC-like)La plupart des instructions sont
traduites en 1 à 4 ops.- traduites en un
cycle instructions ne pouvant pas être
traduites en un nombre fixé deop (boucles,
instruction flottantes transcendantales , ..)
traduites en plusieurs cycles3 traducteurs
en parallèles (1 complexe 2 simples)Pentiu
m IILes ops sont exécutées dans le
désordrerenommage de registresstations de
réservations ..Buffer de réordonnancementJusq
u'à 5 ops par cycles. Mais que reste-t-il au
RISC Une moins grande complexité
d'intégration 4.5 million transistors de
logique - 2.3 pour le MIPS R10000Un pipeline
moins long la phase de traduction des
instructionsUn jeu d'instruction mieux adapté
plus de registres entiers et flottants.- plus
facile d'optimiser pour un compilateur.Jeu
x d'instructionsEt maintenant ?CISC obsolète
il l'était déjà en 1985 !!Les jeux
d'instruction RISC actuels ne sont pas adaptés à
l'ILP Détection des dépendances à
l'exécutionAucun support pour l'exécution
spéculativeTrop peu de registres pour le
compilateurRatio information/taille de
l'instruction faibleIA-64 (1)EPIC
Explicitely Parallel Instruction
ComputingHéritier du VLIWParallélisme
expliciteGrand nombre de registres (128)Support
pour l'exécution spéculative3 instructions sur
128 bitsExécution dans l'ordreAvantages
simplicité du controle, horlogeIA-64 (2)Les
questionsExpansion de code 4/3 plus exécution
spéculative !!La qualité de la compilation
?L'utilisation des unités fonctionnelles
?Exécution dans le désordre ?Prédictions de
valeurs, de dépendances, de threads
?Microarchitecture le futur
immédiat4 8 instructions décodées par
cyclesExécution dans le désordrePipeline de
séquencement très longCaches premier niveau
multiport, non-bloquants, accédés en un
cycleCaches second niveau pipeliné (sur le
composant)Prédiction de branchement de plus en
plus sophistiquéeSupport multiprocesseur sur le
composant Microarchitecture les
directions de recherchesQue faire avec un
milliard de transistors ou plus?IRAM le
processeur et sa mémoireUn multiprocesseur à
mémoire partagéeUn monoprocesseur exécution
spéculativeUn processeur multiflot
simultanémultiflot simultané exécution
spéculative speculative multithreadingIRA
Mle processeur et sa mémoire sur un même
composantbande passante mémoire énormecoût
limitéUne fausse bonne idéeConsommation
mémoire des applications augmentent.Extensibilité
Peut être la solution pour certaines
applications enfouiesUn multiprocesseur à
mémoire partagéePeut-être la solution, mais
..Ou sont les applications?La bande
passsante sur la mémoire?Et la performance sur
une application?Manquons-nous d'imagination à
ce point?Un monoprocesseur exécution
spéculative Avant 1996 Parallélisme
d'instructions limité parLe graphe data-flow
des dépendances du programmeLa bande passante de
chargement d'instructionsLa précision de la
prédiction de branchementsL'ILP exploitable
? 5 instructions ?Un monoprocesseur
exécution spéculative En 1996-97, introduction
deLa prédiction de valeurs, Lipasti et al,
ASPLOS Oct. 96La prédiction de dépendences,
Moshovos et al., Micro Dec. 97Estimation de
confiance, Jacobsen et al., Micro Dec.
96Multiple-block ahead branch prediction, Seznec
et al., ASPLOS Oct. 96 et Trace Cache,
Rotenberg et al, Micro Dec. 96 Speculative
Multithreading, 4 articles à HPCA en Feb. 98
!L'ILP exploitable ? 10 ? 20 ?
100?Multiflot simultanéIdéepartage des
ressources d'un processeur superscalaire entre
plusieursprocessus Un processus
Performance d'un monoprocesseur Plusieurs
processus Partage des ressources,moins
d'instructions exécutées spéculativement-
Contention sur les cachesSurcoût limité par
rapport à un processeur superscalaireTullsen
et al ISCA 95, ISCA 96Hily, thèse
97Monoprocesseur Multiflot simultané
speculative multithreading Prédiction de
branchement l'instruction suivanteSpeculative
multithreading prédire (anticiper) la tâche
suivantePlusieurs itérations d'une même
boucleLe retour d'une procédure..Recherches
encore balbutiantes ..Boule de
cristalLe processeur du PC en 2008Jeu
d'instruction x86 extension pour mode de 32
bitsSupport multiflot simultanéExécution dans
le désordreInstruction fetch aggressif (2 à 4
basic blocks par cycle par flot)Prédiction de
dépendences aggressifSupport à la prédiction de
valeurs (limité)Speculative multithreading
limitéLA QUESTION Saura-t-on maitriser la
complexité du design?Ce dont je n'ai pas
parléLa mémoire principaleLes bus
systèmesLes MMUsLes instructions multimédiaLe
support multiprocesseurLes optimisations
logicielles La stratégie des constructeurs..
- ou comment Compaq espère mener la course en tête
4Avertissement
- J ai travaillé pendant 1 an avec le groupe Alpha
- peut-être un peu biaisé )
- j espère avoir gardé l esprit critique )
- N attendez pas de grandes révélations
- j ai signé un NDA )
5Remerciements
- Joel Emer
- Peter Bannon
- Shubu Mukherjee
6Et la concurrence ?
7IBM Power 4
- 2001
- 2 processeurs sur un composant
- superscalaire 4 inst/cycles
- 4 composants sur un MCM
- bande passante ENORME sur le MCM
- Ne cherche pas la performance ultime sur un
processus
8SUN
- UltraSparc 3
- 2000
- 4 voies superscalaire
- Exécution dans l ordre
- 600 Mhz (!!) en 0.25 m
- UltraSparc 5
- rumored SMT out-of-order
9IA 64
- nouveau jeu dínstructions Intel/HP
- 64 bits
- Adopté par HP, SGI, IBM, Compaq, ..
- Processeur Itanium pour 2ieme moitié de 2000
10IA 64 (2)
- De bonnes idées
- 128 registres généraux, 128 registres flottants,
64 registres de prédicats - Des moins bonnes
- fenêtres de registres
- registres glissants
- pas d adressage basé
- Explicitly Parallel Instruction set Computing
11Itanium
- Exécution dans l ordre
- 2 groupes de 3 instructions par cycle
- 800 Mhz (?) en 0.18 m
12x86 aujourdhui
- Amd Athlon et Intel Pentium
- 1 Ghz !!! En mars 2000
- Excellentes performances en entier
- Pauvres sur le flottant
- Pas franchement adapté au multiprocessing
13x86 demain
- Intel Willamette 09/00 ?
- 1.5 Ghz !!!
- ALUs double pumped !!
- Pipeline de 20 cycles ?!
- Amd Sledgehammer
- x86 étendu à 64 bits
- fin 2001 ?
14Conclusion
- Les processeurs Alpha devraient être dans la
course pour le haut de gamme (au moins pour
quelques années) - La concurrence
- IBM Power 4
- les processeurs x86