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

Slides:



Advertisements
Présentations similaires
Structure de base d’un ordinateur
Advertisements

Électronique de base du processeur
Architecture de machines Le microprocesseur
Les systèmes embarqués
Architecture de machines Les entrées sorties Cours
TECHNOLOGIE DES ORDINATEURS
ARCHITECTURE INTERNE d’un MICROPROCESSEUR
Architecture des processeurs généralistes haute performance
Architecture des ordinateurs
Objectif de l’exposé.
Performances 1 Évolution : Performance. Performances 2 Évolution : Mémoire.
A abstraction b assembleur c nombre binaire d bit e cache f UC g puce h compilateur i famille dordinateurs j contrôle k chemin de données l défaut m dé
People want to do X, but computers can only do Y. This leads to a problem. My job is to explain how this problem can be solved.
Introduction Par définition, dans un modèle à cycle unique, le cycle d’horloge doit avoir la même durée pour toutes les instructions. Le cycle d’horloge.
Architecture Systèmes
2.Les différentes architectures (Louis)
Analyse et Optimisation de code
Modèle polyédrique: fondements et application à la parallélisation de programmes réguliers Tanguy Risset DIF 2001/2002.
Architecture de machines La mémoire
Architecture de machines La mémoire
ARCHITECTURE DES ORDINATEURS
Mémoire cache ou antémémoire
Architectures et systèmes à microprocesseurs – ELEC288
Architecture de base d’un ordinateur
Architecture des Ordinateurs
INTRODUCTION AU Février 2008
Architecture Fondamentale des Microprocesseurs
Architecture d ’un système à MICROPROCESSEUR
LES SYSTEMES AUTOMATISES
Introduction Objectifs du cours Évaluation Références
Gei 431 Architecture des ordinateurs II – Frédéric Mailhot Systèmes Pipeline – opérations multicycles Nous avons vu jusquà maintenant comment faire un.
Gei 431 Architecture des ordinateurs II – Frédéric Mailhot Et maintenant, où allons-nous? Après toutes les techniques vues jusquici: Que peut-on faire.
Parallélisme des instructions
Parallélisme des instructions
Chap. 2 - Structure d’un ordinateur
L'Unité centrale (CPU) Le CPU doit être rapide (mesuré en temps de CPU) UNITE DE CONTROLE Générer les signaux de control/temps Contrôler le décodage/exécution.
Architecture des ordinateurs, Environnement Numérique de Travail
Informatique 1. Les applications de l’informatique
Lycée ELKHAWARIZMI De SAFI
PROJET CAPS Compilation, Architecture, Processeurs Superscalaires et Spécialisées.
INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Processeurs sous-RISC et application aux réseaux Quand.
PROJET CAPS Compilation, Architecture, Processeurs Superscalaires et Spécialisées.
8INF856 Programmation sur architectures parallèles
Le processeur Xtensa de Tensilica: paramétrage et extensibilité
La pub du marchand de pc ?  INTEL Core2Duo E8500 2X3,16Ghz  Samsung 750Gb SATA2 7200Trs  4 Gb Kingston DDR2 800Mhz  Nvidia GTX Mb PROCESSEUR.
Fonctionnement d’un ordinateur
Test de l’unité d’exécution d’une instruction par application d’instructions de test Projet du cours ELE6306 : Tests des systèmes électroniques. Nicolas.
Cours de Structure et Technologie des composants d’ordinateurs
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Encodage du jeu d’instructions.
ARPO: architecture des processeurs superscalaires,VLIW et optimisation André Seznec et François Bodin.
PROJET CAPS Compilation, Architecture, Parallélisme et Système.
IRISA/INRIA. Processeurs Hautes Performances Panorama et Nouveaux Défis André Seznec IRISA/INRIA
INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Conception de processeurs – partie 2 Approches traditionnelles.
Construction d'une hiérarchie mémoire faible consommation
PICAXE LE MICRO-CONTROLEUR.
Architecture et technologie des ordinateurs II
Gestion des Périphériques
Exécution d ’un programme en 6809: Présentation du programme
PROJET CAPS Compilation, Architecture, Processeurs Superscalaires et Spécialisées.
PROJET CAPS Compilation, Architecture, Processeurs Superscalaires et Spécialisées.
ARPO: architecture des processeurs superscalaires,VLIW et optimisation André Seznec et François Bodin.
Micro contrôleurs M. Boutemeur
IRISA/INRIA Les processeurs Alpha et ou comment Compaq espère mener la course en tête.
PROJET CAPS Compilation, Architecture, Parallélisme et Système.
Pipeline 1 Amélioration des performances par la technique du pipeline.
1 Microprocesseurs Hautes Performances André Seznec IRISA/INRIA
Pipeline 1 Amélioration des performances par la technique du pipeline.
Processeur RISK R3000. PLAN - Processeur RISK R3000 Structure du processeur Structure du processeur Logique de contrôle Logique de contrôle Détection.
ARCHITECTURE MATERIELLE D’UN SYSTEME A MICROPROCESSEUR
Systèmes à microprocesseur Les mémoires
Transcription de la présentation:

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

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

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

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

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

Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 6 Compatibilité binaire  Une donnée économique : de PCs !  un nouveau jeu d'instructions: RISQUÉ !!  Le monde change (peut-être):  les processeurs enfouis, le multimédia  l'IA 64 arrive

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?

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 ?

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

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

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

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

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

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 ?

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 Mhz 0.35  (1997)

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

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

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

Microprocesseurs Haute s Performances André Seznec Caps Team Irisa 19 Quelques profondeurs de pipeline  cycles sur l’Intel Pentium III  cycles sur l’AMD Athlon  7-9 cycles sur l’Alpha  9 cycles sur l’UltraSparc  10 cycles sur l’Itanium  20 cycles sur Willlamette  Et ça ne va pas s’améliorer !!

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

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  sur Alpha ?? En 2012 ? :=)

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.

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

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

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

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

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

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.

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

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

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  Cycle 11 sur l'Intel Pentium II  Cycle 18 sur Willamette  Pas question de perdre tous ces cycles !

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 ( 2003)

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?

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

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

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)

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

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

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

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

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

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

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 ?