Architectures Nouvelles des Machines
Transcription
Architectures Nouvelles des Machines
Plan du cours Architectures Nouvelles des Machines De Von Neumann au parallélisme Mécanismes de communication Performances Fonction mémoire hiérarchique Fonction processeur Jean--Luc DEKEYSER Jean 13/09/2010 1 13/09/2010 Introduction au parallélisme Supports de cours Support de cours Séquentiel et parallélisme Les types de parallélisme 13/09/2010 Organisation et architecture de l’ordinateur William Stallings - Sixième Edition Pearson Education ISBN : 22-7440 7440--7007 7007--6 Programme de licence et Master 3 13/09/2010 Internet Resources - Web site for book 4 Internet Resources - Usenet News Groups http://WilliamStallings.com/COA6e.html 2 comp.arch comp.arch.arithmetic comp.arch.storage comp.parallel links to sites of interest links to sites for courses that use the book errata list for book information on other books by W. Stallings http://WilliamStallings.com/StudentSupport .html 13/09/2010 5 13/09/2010 6 1 Supports de cours Bibliographie Computer Architecture - "Computer Architecture Design and Pipelined and Parallel Processor Design Michael J. Flynn Jones and Barlett Parallel Computer Architecture D Culler and J Pal Singh Computer Science Division UC. Berkeley Performance" Barry Wilkinson Performance" (Prentice Hall) -"Algorithmes et Architectures Parallèles" M Cosnard, D Trystram (InterEdition) -"Computer Architecture" Mario de Blasi (Addison Wesley) http://www.... 13/09/2010 7 13/09/2010 8 Bibliographie (suite) - "Structured Computer Organization" (3ième édition) A.S. Tannenbaum (Prentice Hall) - "Advance Computer Architecture" K Hwang (Mc GrawGraw-Hill) - «Initiation au parallélisme»Gengler Ubeda Desprez (Masson) 13/09/2010 Parallélisme intrinsèque Extension du modèle Von Neumann 9 13/09/2010 10 Structure - Top Level Modèle de Von Neumann John Von Neumann 1945 Lignes essentielles pour construire une machine électronique. (Projet ENIAC) Appliqués jusqu'à nos jours Peripherals Central Processing Unit Trois blocs fonctionnels: Le processeur (ALU + Control Unit) La mémoire Le bus CPU Computer Computer Main Memory Systems Interconnection Input Output MEM Communication lines 13/09/2010 BUS 11 13/09/2010 12 2 Computer Components: Top Level View Type de fonctionnement Le processeur exécute (interprète) des instructions élémentaires Une séquence d'opérations peut décrire tous les problèmes notion de Programme 13/09/2010 13 13/09/2010 14 Structure - The CPU Déroulement du programme Le déroulement du programme est contrôlé par le Compteur Ordinal qui pointe vers la prochaine instruction à exécuter. Les instructions sont exécutées en séquence sauf en cas de saut. (Jump) CPU Computer Arithmetic and Login Unit Registers I/O System Bus CPU Memory Internal CPU Interconnection Control Unit 13/09/2010 15 13/09/2010 16 Structure - The Control Unit Les données La mémoire conserve les données et les instructions, on parle de mémoire banalisée. Les instructions sont amenées une à une vers le processeur Les échanges entre mémoire / processeur se font via le bus Control Unit CPU ALU Control Internal Unit Bus Registers Sequencing Login Control Unit Registers and Decoders Control Memory 13/09/2010 17 13/09/2010 18 3 Séquencement des instructions L'exécution d'une instruction passe par plusieurs étapes successives, chacune étant considérée comme une micromicroopération. Certaines de ces actions correspondent à une activité mémoire, d'autres à une activité processeur. Pour effectuer une instruction, il faut toujours effectuer les actions suivantes 13/09/2010 19 Activités Processeur incrémenter le compteur ordinal 3 - Décoder le code de l'opération 4 - Calculer les adresses des opérandes si nécessaire 5 - Extraire les opérandes éventuelles de la mémoire 6 - Exécuter l'instruction 7 - Calculer l'adresse du résultat 8 - Ranger le résultat en mémoire 13/09/2010 (1) Fetch instr 20 Cycle du processeur L'exécution d'une instruction peut Phase de chargement (3) Decode instr Opérandes multiples (5) Fetch operand Cycle instruction Phase d' exécution (6) Execution (7) Calcul adr res 1 - Aller chercher l'instruction en mémoire; 2 - Calculer l'adresse de la prochaine instruction, Activités Mémoire (2) Incrément (4) Calcul adr Op Séquencement des instructions Résultats multiples être découpée en plusieurs phases successives. Deux phases sont définies: la phase de chargement 'Fetch' et la phase d'exécution 'Execute'' (8) Store résultat Phase de Chargement Phase d' exécution Instruction sur des chaînes 13/09/2010 Instruction terminée 21 Parallèle ou séquentiel 13/09/2010 Von Neumann estest-il parallèle? Le Modèle de Von Neumann présente Parallélisme est inhibé par le modèle un haut degré de déterminisme possibilité à tout instant de prédire la prochaine instruction et données exécutées. d'exécution séquentiel Forcer une représentation séquentielle de problèmes présentant un certain degré de parallélisme entraîne nécessairement une perte d'efficacité dans l'amélioration des performances 13/09/2010 Vers une explicitation parallèle des algorithmes donc des programmes 22 L' L'anticipation anticipation du chargement d'instructions ou de données suivantes depuis la mémoire La mémorisation d'instructions ou de 23 13/09/2010 données qui seront réutilisées par le processeur L'exécution anticipée de plusieurs instructions ou données 24 4 Comment prédire? Prédiction Ces prédictions dépendent de un ou Une heuristique évaluée lors de l'exécution du programme, par exemple la fréquence plusieurs des facteurs suivants: Une connaissance à priori de l'exécution du programme, par exemple dans VN la d'exécution d'une instruction. Une connaissance explicitée par le programmeur (ou le compilateur), par exemple une donnée placée en prochaine instruction est la suivante dans la mémoire (sauf pour un JUMP) 13/09/2010 25 13/09/2010 26 Les types de dépendances V.N impose impose--t-il la séquentialité? Respect du caractère déterministe de VN, il faut pouvoir prendre en compte également son aspect indétermisniste, par exemple quelle sera l'instruction suivante après un IF. Les interactions entre les instructions pilotent directement le déroulement parallèle des instructions. 13/09/2010 registre en C. 27 Elles sont de deux types: Les dépendances de contrôle: contrôle: L'exécution ou non d'une instruction dépend de l'exécution d'une autre instruction. Les dépendances de données: données: Une instruction utilise le résultat d'une instruction précédente pour son exécution. 13/09/2010 28 La non séquentialité Dans ces deux cas la séquentialité des instructions doit être conservée. Sinon la séquentialité d'exécution n'est qu'une conséquence du modèle VN. Types de parallélisme Les instructions peuvent être exécutées en parallèle, ou dans n'importe quel ordre, sans altérer le résultat du programme. 13/09/2010 29 13/09/2010 30 5 Différents niveaux du parallélisme Modèles de programmation vs Modèles de fonctionnement Niveaux du parallélisme Modèle de fonctionnement Modèle de programmation est lié à la (d'exécution) est lié à l'architecture de la machine Il caractérise la façon dont sont exécutées les instructions élémentaires. Diverses classifications différencient ces modes de fonctionnement. 13/09/2010 traduction de l'algorithme Il caractérise la méthode de parallélisation d'algorithmes utilisée 31 Le parallélisme de tâches: tâches: Solutions architecturales pour la mise en oeuvre du parallélisme intrinsèque du modèle séquentiel Mise en oeuvre du parallélisme à différents niveaux d'exécution Le parallélisme est traduit par un ensemble de tâches qui collaborent à l'exécution d'un même problème (plusieurs flots de contrôle) Le parallélisme de données: données: 13/09/2010 33 13/09/2010 34 Mise en oeuvre du parallélisme(suite) Mise en oeuvre du parallélisme 2) 2)La La hiérarchie du système mémoire 1) 1)Le Le fonctionnement du processeur Des mémoires rapides intermédiaires qui mémorisent dynamiquement des données et instructions qui seront réutilisées par le programme Le déroulement du cycle de l'instruction prend en compte l'anticipation des instructions suivantes: principe du pipeline 13/09/2010 32 Développements architecturaux Deux modèles de programmation Le parallélisme s'exprime au niveau des données sur lesquelles sont exécutées séquentiellement des instructions élémentaires parallèles (un seul flot de contrôle) 13/09/2010 35 13/09/2010 36 6 Mise en oeuvre du parallélisme(suite) Mise en oeuvre du parallélisme(suite) 3) 3)L'interface L'interface Processeurs / Mémoires 4) 4)Les Les systèmes MultiMulti-Processeurs Elle doit permettre d'assurer un transfert des données efficace entre un ou plusieurs processeurs et une ou plusieurs mémoires. 13/09/2010 Par l'association de plusieurs unités de calcul indépendantes, on augmente le potentiel en terme de puissance de calcul. 37 13/09/2010 Classifications Les caractéristiques de Flynn Flynn 72 S Single Flux data et Instruction Flux d'instruction : séquence d'instruction exécutée par la machine. Flux de données : séquence des données appelées par le flux d'instructions 13/09/2010 M Multiple 39 SISD SISD:: La plupart des ordinateurs SISD MISD actuels (Von Neumann) SIMD SIMD:: Array processeur - même instruction sur des données différentes (Data parallélisme) SIMD MIMD données Plusieurs 13/09/2010 40 Plusieurs Flux Un D Data Les classes de Flynn Flux d'instructions Un I Instruction 13/09/2010 Classification de Flynn de 38 41 13/09/2010 42 7 SISD Les classes de Flynn 13/09/2010 MISD: n PU recevant des instructions différentes mais avec le même Flux de données (ou un Flux dérivé) . Notion de macro-pipe-line, Machine systolique. Pas de machine commerciale de ce type ! MIMD: n PU se partagent l'accès à une mémoire unique ou multiple. SPMD: Même programme sur des données différentes. 43 – SIMD < SPMD < MIMD IS IS CU DS PU MU 13/09/2010 44 Connection Machine SIMD DS PU MU IS IS CU DS PU MU (Tucker, IEEE Computer, Aug. 1988) 13/09/2010 45 MIMD IS CU 13/09/2010 46 MIMD (2) IS DS PU IS MU CU IS DS PU MU IS IS CU IS DS PU CU DS PU MU IS 13/09/2010 47 13/09/2010 48 8 Construction Mémoire partagée / mémoire distribuée La mémoire peut être physiquement construite par un ensemble de bancs mémoires visibles par l'ensemble des processeurs. 13/09/2010 49 Dans ce cas un réseau d'alignement permet d'associer au même instant un certain nombre de bancs et de processeurs. La mémoire physiquement partagée est nécessairement logiquement partagée. 13/09/2010 50 Espace d’adressage partagé Mémoire partagée Virtual address spaces for a collection of processes communicating via shared addresses MEMOIRE PARTAGEE Load Machine physical address space Pn pr i v at e Pn P2 Common physical addresses P1 P0 St or e RESEAU D'INTERCONNEXION Shared portion of address space Private portion of address space CPU CPU CPU Cache Cache Cache 13/09/2010 Code système parallèle add hoc Nombreuses applications parallèles 13/09/2010 Intel Pentium Pro Quad Interrupt controller P-Pr o module 256-KB L2 $ P-Pr o module P1 pr i v at e P0 pr i v at e 51 CPU P2 pr i v at e 52 SUN Enterprise P-Pr o module Bus interf ace P $ P $2 $2 CPU/mem cards $ Mem ctrl Bus interface/switch Memory controller Gigaplane bus (256 data, 41 addr ess, 83 MHz) MIU SBUS 2 FiberChannel SBUS Faible latence & bandwidth 13/09/2010 I/O cards Bus interface 1-, 2-, or 4-w ay interleaved DRAM SBUS PCI bridge 100bT, SCSI PCI bridge PCI bus PCI I/O cards PCI bus P-Pr o bus (64-bit data, 36-bit address, 66 MHz) Proc + mem carte - I/O carte 53 13/09/2010 16 cartes de différent type Toute la mémoire est accédée depuis le bus : SMP 54 Bandwidth et latence du bus + élevée 9 Mémoire partagée / Construction mémoire distribuée Les données externes au processeur Elle peut être construite par association de l'ensemble des mémoires de chaque processeur. Dans ce cas un réseau d'interconnexion relie l'ensemble des processeurs. 13/09/2010 55 Mémoire distribuée sont véhiculées par ce réseau. La mémoire physiquement distribuée peut être logiquement distribuée ou logiquement partagée. 13/09/2010 56 Classification / machines parallèles SIMD: mémoire partagée ? RESEAU D'INTERCONNEXION CPU CPU CPU Mem Mem Mem Mem 13/09/2010 mémoire distribuée DAP Connection machine MasPar (USTL) 57 13/09/2010 Classification des machines MIMD 58 Cray T3E Exter nal I/O MIMD P Mem $ Multi-processeurs à mémoire partagée espace d'adressage unique Mem ctrl and NI Multi-ordinateurs à mémoire répartie espaces d'adressage multiples XY Mémoire centrale accès croisé ou multi-niveaux Cray IBM NEC Bus multiples DEC SGI 13/09/2010 Sun Mémoire distribuée lien statique programme BBN° cache : Alliant ° anneau : IEEE SCI Réseau intégré : MPP Réseau externe: cluster rapides : DEC maillage : INTEL Tandem arborescence : TMC° IBM SPx hypercube : NCUBE Tore 3D : Cray T3E lents : PC stations de travail lien dynamique des adresses aux processeurs KSR 59 Switch Z Jusque 1024 processeurs, 480MB/s links Contrôleur mémoire génère un request message pour des références non locales Pas de hardware pour la cohérence 13/09/2010 60 ° disparus 10 UMA Multiprocesseur à mémoire partagée Partage uniforme de l'accès mémoire Trois modèles existent par tous les processeurs Temps d'accès égal pour chaque mot de la mémoire On parle de système fortement couplé: haut degré de partage de ressources UMA : UniformUniform-Memory Memory--Access NUMA : NonNon-Uniform Uniform--Memory Memory-Access COMA : CacheCache-Only Only--Memory Memory-Architecture 13/09/2010 61 13/09/2010 62 UMA(suite) UMA Utilisation d'un bus commun, d'un I/O devices cross-bar, d'un réseau multicrossmulti-étage Communication et synchronisation se font via des variables partagées en mémoire Mem Mem Mem Interconnect Mem 63 Processor Sequent Symmetry S-81 13/09/2010 NUMA 64 NUMA:exemple 1 Le temps d'accès dépend de la location de l'information en mémoire. 2 exemples 13/09/2010 I/O ctrl Interconnect Pr ocessor 13/09/2010 I/O ctrl 65 13/09/2010 Une mémoire partagée peut être physiquement distribuée. L'adressage de la mémoire est global mais chaque processeur possède sa mémoire locale. Les accès à des adresses en mémoire locale sont plus rapides que ceux aux mémoires d'autres processeurs. 66 11 Mémoire locale partagée NUMA Exemple 2 On peut utiliser un système LM P1 LM P2 . . . LM hiérarchisé de mémoires. Chaque processeur possède sa mémoire locale Les processeurs sont regroupés en cluster. Une mémoire est globalement partagée entre tous les clusters. Réseau d'inter connexion Pn BBN Butterfly 13/09/2010 67 13/09/2010 68 NUMA 2 NUMA (2) L'accès le plus rapide est local, Puis l'accès à la mémoire globale Enfin l'accès à une mémoire locale d'un autre processeur. GSM P . . . P 13/09/2010 C I N CSM ... . . . P . . . CSM CSM: Cluster Shared Memory GSM: Global Shared Memory CIN: Cluster Inteconnect Network P CSM C I N CSM . . . CSM Cluster N Cedar System Univ Illinois 70 COMA (suite) COMA Le modèle COMA est un cas L'accès aux caches externes est assuré particulier du modèle NUMA. Les mémoires locales sont remplacées par des mémoires caches. L'ensemble des caches forment l'espace d'adressage. 13/09/2010 P CSM Cluster 1 69 GSM Global Interconnect Network P 13/09/2010 ... GSM par un catalogue (directory) distribué sur l'ensemble des processeurs. ( Voir le cours sur les mémoires caches ) Les données vont migrer lors du calcul en fonction du processeur qui les utilise. 71 13/09/2010 72 12 COMA Autres modèles Interconnection Network D'autres modèles ont été définis pour telle ou telle machine Directory Directory Cache Cache Proc Proc CC CC--NUMA : Cache Coherent Non Directory ... Uniform Memory Access utilise une mémoire distribuée et des caches sur chaque processeur. (Ex Dash Stanford Whang Chap 9) Cache Proc KSR 1 13/09/2010 73 Multicomputer à mémoire distribuée Un multicomputer est composé d'un certain nombre de noeuds interconnectés par un réseau à passage de messages. messages. Il permet d'établir des liaisons point à point entre les noeuds de la machine. Les communications et synchronisations se font par l'envoi de messages entre les noeuds. 13/09/2010 75 Mémoire des multicomputers 13/09/2010 74 Message--Passing Abstraction Message Match Receive Y, P, t AddressY Send X, Q, t AddressX Local process address space Local process address space Process P Process Q Send spécifie un buffer à envoyer Recv spécifie une zone de rangement pour réception Mémoire à mémoire, identifier les processus Send/recv demande une synchronisation Beaucoup d’overhead: copie, buffer, protection 13/09/2010 76 Multicomputer message passing Il n'y a pas d'accès à une mémoire M P autre que celle du noeud. M P Les mémoires locales sont dites De nouvelles machines proposent actuellement des architectures équivalentes mais qui propose des mémoires partagées distribuées. ( Cray T3D ) 13/09/2010 P M M P mémoire privée. On parle alors de modèle NORMA NORMA:: No Remote Memory Access. M P Message passing interconnection network P M 77 13/09/2010 P M P M 78 13 Intel Paragon IBM SPSP-2 i860 L1 $ L1 $ Construction à Intel Paragon node partir de WS RS6000 Network interface intégrée au I/O bus (bw limité par le I/O bus) Memory bus (64-bit, 50 MHz) Mem ctrl DMA Driver Sandia’ s Intel Paragon XP/S-based Super com puter 2D grid network with processing node attached to every switch 13/09/2010 NI 4-way interleaved DRAM 8 bits, 175 MHz, bidir ectional 79 13/09/2010 Pow er 2 CPU IBM SP-2 node L2 $ Memory bus General interconnection netw ork f ormed fom r 8-port sw itches 4-w ay interleaved DRAM Memory controller MicroChannel bus NIC I/O DMA i860 NI DRAM i860 80 14