1 / 59

Processeurs Hautes Performances Panorama et Nouveaux Défis

Processeurs Hautes Performances Panorama et Nouveaux Défis. André Seznec IRISA/INRIA http://www.irisa.fr/caps. 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

juliet
Download Presentation

Processeurs Hautes Performances Panorama et Nouveaux Défis

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  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. 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. 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

  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. 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. 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. Quel jeu d'instructions ? • CISC: x86 • RISC: Sparc, Mips, Alpha, PowerPC, HP-PA • EPIC: IA-64 • est-ce que c’est important ?

  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. 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. 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. 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. 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. 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. 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 21164 700 Mhz 0.35m (1997)

  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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

  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. 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. 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. 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. 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. la mémoire principale sur le bus système

  44. Mémoire principale en connexion directe

  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. 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. 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. 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. 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. 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

More Related