La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

André Seznec Caps Team IRISA/INRIA 1 Processeurs Hautes Performances Panorama et Nouveaux Défis André Seznec IRISA/INRIA

Présentations similaires


Présentation au sujet: "André Seznec Caps Team IRISA/INRIA 1 Processeurs Hautes Performances Panorama et Nouveaux Défis André Seznec IRISA/INRIA"— Transcription de la présentation:

1 André Seznec Caps Team IRISA/INRIA 1 Processeurs Hautes Performances Panorama et Nouveaux Défis André Seznec IRISA/INRIA http://www.irisa.fr/caps

2 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 2 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

3 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 3 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

4 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 4 Quelques repères (2000)  L'intégration : 0.25  0.18  0.125  (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

5 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 5 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

6 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 6 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

7 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 7 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 la rupture?

8 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 8 Quel jeu d'instructions ?  CISC: x86  RISC: Sparc, Mips, Alpha, PowerPC, HP-PA  EPIC: IA-64  est-ce que c’est important ?

9 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 9 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

10 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 10 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

11 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 11 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

12 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 12 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

13 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 13 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

14 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 14 ISA: est-ce important ?  32 ou 64 bits:  vers l’abandon (ou la mutation !) d’x86  Les performances:  et x86 ? :=)  en flottant !!  à technologie égale ?

15 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 15 ISA: est-ce important (2) ?  x86: traduction en  Opé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  (pas encore disponible !)  Alpha 21164 700 Mhz 0.35  (1997)

16 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 16 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

17 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 17 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

18 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 18 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

19 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 19 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 !!

20 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 20 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

21 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 21 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 ? :=)

22 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 22 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.

23 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 23 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

24 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 24 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

25 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 25 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 !!

26 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 26 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

27 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 27 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

28 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 28 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.

29 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 29 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

30 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 30 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

31 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 31 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 !

32 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 32 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

33 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 33 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

34 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 34 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

35 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 35 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

36 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 36 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

37 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 37 Savoir « défaire »  Une copie du fichier de registres est mise à jour dans l'ordre du programme  ou  Une > registres logiques-registres physiques est sauvegardée  Les écritures en mémoire sont faites à la validation

38 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 38 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

39 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 39 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

40 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 40 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

41 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 41 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

42 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 42 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

43 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 43 la mémoire principale sur le bus système

44 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 44 Mémoire principale en connexion directe

45 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 45 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

46 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 46 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

47 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 47 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,...

48 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 48 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)

49 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 49 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?

50 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 50 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

51 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 51 La vision du programmeur

52 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 52 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)

53 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 53 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 %

54 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 54 La vision du programmeur

55 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 55 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 > pour accélérer le flot principal: préchargement anticipation de branchement

56 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 56 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

57 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 57 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

58 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 58 La vision du programmeur !

59 Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 59 Les grandes questions  Saura-t-on maitriser la complexité du design?  Qui saura programmer ces monstres ?


Télécharger ppt "André Seznec Caps Team IRISA/INRIA 1 Processeurs Hautes Performances Panorama et Nouveaux Défis André Seznec IRISA/INRIA"

Présentations similaires


Annonces Google