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.

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitations
GEF 435 Principes des systèmes dexploitation Communication Interprocessus (CIP) II (Tanenbaum 2.3)
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
PLAN du COURS Introduction Structure des Systèmes Informatiques
Objectif de l’exposé.
Performances 1 Évolution : Performance. Performances 2 Évolution : Mémoire.
Exercice Notre programme s'exécute en 10 secondes sur A, qui dispose d'une horloge à 100Mhz. Nous tentons d'aider un concepteur à construire une machine.
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.
Plan Présentation de la Solution. Le Protocole MESI
Mémoire & Processus Cours SE - SRC
Architecture Systèmes
Exécution en ordre partiel Une fois les instructions renommées, les seules dépendances qui subsistent entre instructions registre-registre sont les dépendances.
Les attributions de valeur (le signe =). Dans cette présentation, nous allons tenter de représenter ce qui se passe dans la mémoire de lordinateur quand.
8. Les tableaux P. Costamagna – ISEN N1.
CSI3525: Concepts des Langages de Programmation Notes # 11: Sous-Programmes ( Lire Chapitre 8 )
Points importants de la semaine Les fonctions. La portée. La passage par copie. Les tableaux.
Mémoire cache ou antémémoire
Points importants de la semaine Le paramétrage. La portée. Le passage par copie. Le passage par référence.
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
LES VIRUS INFORMATIQUES.
Gestion des branchements
Algorithmique et Programmation
Quest-ce quune classe dallocation? Une classe dallocation détermine la portée et la durée de vie dun objet ou dune fonction.
Séance 12 Partenaire stratégique (modèle de Dave Ulrich, 1997)
Optimisation et parallélisation de code pour processeur à instructions SIMD multimedia François Ferrand.
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.
Hiérarchie de la mémoire
Gei 431 Architecture des ordinateurs II – Frédéric Mailhot Systèmes Pipeline Les systèmes modernes utilisent tous des architectures pipelines – Pourquoi?
Les multiprocesseurs Jusqu’à maintenant, nous avons parlé longuement des microprocesseurs. Nous allons maintenant étudier les multiprocesseurs, comment.
Systèmes Superscalaires et VLIW
Programmation concurrente
Gestion de Fichiers Indexes basés sur les structures d’arbres binaires et indexes à niveaux multiples.
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
PROGRAMMATION MULTI-TÂCHES (MULTITHREADING)
Module 3 : Analyse des performances du serveur
Gestion de Fichiers Hachage (suite). 2 Plan du cours daujourdhui Prédiction de la distribution des enregistrements Réduction des collisions en augmentant.
Chap. 2 - Structure d’un ordinateur
Répéter dans un programme avec une Instruction itérative
Plan cours La notion de pointeur et d’adresse mémoire.
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.
L ’Ordonnancement Ordonnancement.
Gei 431 Architecture des ordinateurs II – Frédéric Mailhot Synthèse logique: Quelques algorithmes et techniques La synthèse logique consiste en un très.
André Seznec Caps Team IRISA/INRIA 1 Processeurs Hautes Performances Panorama et Nouveaux Défis André Seznec IRISA/INRIA
Cours de Systèmes d’exploitations
ARPO: architecture des processeurs superscalaires,VLIW et optimisation André Seznec et François Bodin.
La programmation système
Programmation Système et Réseau
PROJET CAPS Compilation, Architecture, Parallélisme et Système.
Gei 431 Architecture des ordinateurs II – Frédéric Mailhot Étude de cas Maintenant qu’on a vu les pipelines, le superscalaire, le VLIW, la gestion des.
CSI 3525, Implémentation des sous-programmes, page 1 Implémentation des sous-programmes L’environnement dans les langages structurés en bloc La structure.
Gei 431 Architecture des ordinateurs II – Frédéric Mailhot Systèmes Superscalaires Comment peut-on déterminer de façon dynamique, au niveau du processeur,
PROJET CAPS Compilation, Architecture, Processeurs Superscalaires et Spécialisées.
1. Spoon Christophe Delagarde, septembre 1998 I.U.T., Université de la Méditerrainée 2.
Architecture et technologie des ordinateurs II
Patricia Renault UPMC 2005/2006
Architecture et technologie des ordinateurs II
ALLOCATION DU CPU et GESTION DES TRAVAUX.
Philippe Gandy – 10 novembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Algorithmes parallèles
La soutenance Mme C.BENKHEROUROU. MA. Université KASDI Merbah. Ouargla.
Algorithmique Boucles et Itérations
L E C ORPS D ’ UN A LGORITHME / P ROGRAMME – L A PARTIE I NSTRUCTION Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie.
Visual Information Solutions Multithreading. Visual Information Solutions Qu’est-ce que le multithreading ? Un thread est une partie des instructions.
Transcription de la présentation:

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 de plus? Question plus fondamentale (et importante): Lorsque toutes les techniques vues jusquici sont en place, doù viennent les limites de performance?

© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? Quelles sont les limites de performance qui nont pas été abordées jusquici? Dans les années 50, lorsquon sest aperçu que les ordinateurs passaient le plus clair de leur temps à faire des entrées/sorties, on a découplé les E/S (I/O) du processeur central. Plus tard, on a même introduit les systèmes « batch », pour augmenter le niveau dutilisation du CPU central. En quoi ces deux problèmes des années 50 sont- ils semblables à ce qui limite maintenant la performance?

© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? Le temps daccès à la mémoire est grand! Maintenant, dans les années 2000, quest-ce qui limite la performance des processeurs? Le temps daccès à la mémoire est de plus en plus grand par rapport au temps dexécution du processeur. Lorsquun accès à la mémoire est fait, on observe les temps daccès suivants (valeurs provenant dun processeur Alpha à 300 MHz): Pas de délai pour le cache L1 7 cycles pour un accès manqué dans L1, réussi dans L2 21 cycles pour un accès manqué dans L2, réussi dans L3 80 cycles pour un accès à la mémoire

© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? Les implications des grands temps daccès Les délais impliqués lorsque les données ne sont pas dans les mémoires caches sont très grands. Donc, lorsquil y a un « cache miss », le processeur va sarrêter pendant un long moment (en supposant quon ne peut exécuter dautres instructions qui sont déjà dans le processeur): Ceci va se passer assez souvent lorsquon vient de faire un saut dans une nouvelle partie de code Si le délai daccès à la mémoire est trop grand, éventuellement linstruction en attente va arrêter toutes les autres à causes de dépendances de données Dune certain façon, on revient au problème vécu dans les années 50: le processeur passe trop de temps à faire des entrées/sorties, et le CPU (les unités dexécution dans notre cas) sont trop souvent inactives en attendant que les données soient disponibles)

© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? Une solution possible aux grands temps daccès à la mémoire Dans les années 50, on a tout fait pour garder le CPU occupé autant que possible Dans les années 2000, on doit aussi tenter de garder (toutes) les unités dexécution occupées, même pendant un accès à la mémoire… Au niveau du système dexploitation, on sait quil y a souvent beaucoup de threads qui existent au niveau du répartiteur. Et si on faisait le context switch entre les threads au niveau du processeur?…

© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? Les processeurs multithreaded: lavenir? Puisque le processeur est souvent inactif (en tout ou en partie, i.e. toutes/certaines unités dexécution sont inutilisées), une idée intéressante est de faire exécuter plusieurs threads parallèles par le processeur En ayant plus dinstructions parmi lesquelles choisir, le taux doccupation des unités dexécution devrait augmenter

© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? Les processeurs multithreaded: Quest-ce que cest? On définit une machine « multithreaded » ainsi: Processeur dans lequel les instructions à exécuter proviennent potentiellement de différents threads Quel est lavantage de ces machines? Lorsquun thread est immobilisé (par une instruction en attente de quelque donnée ou unité dexécution), dautres instructions provenant de dautres threads peuvent sexécuter Les threads partagent la même mémoire, donc laccès à la mémoire (le tableau des pages) na pas besoin dêtre modifié

© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? Types de machines « multithread » Machine single-thread scalaire: 1111 Temps

© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? Types de machines « multithread » Machine multi-thread scalaire par bloc: 1234 Temps 121 Changement de contexte (Context Switch) 12

© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? Types de machines « multithread » Machine multi-thread scalaire cycle-par-cycle: 1234 Temps Changement de contexte (Context Switch)

© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? Types de machines « multithread » Machine single-thread superscalaire: 1 Temps

© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? Types de machines « multithread » Machine single-thread VLIW: 1 Temps NNNNNN

© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? Types de machines « multithread » Machine multi-thread superscalaire cycle-par- cycle: Temps Changement de contexte (Context Switch)

© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? Types de machines « multithread » Machine multi-thread VLIW cycle-par-cycle: Temps Changement de contexte (Context Switch) NNNNNNNNNNN

© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? Types de machines « multithread » Machine multi-thread superscalaire par émission (Simultaneous multithreading, SMT): Université de Washington (1995), Karlsruhe (1996) 1234 Temps

© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? Types de machines « multithread » Machine multi-thread scalaire par émission (chip multiprocessor, CMP): 1234 Temps

© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? Le futur: quoi dautre? On a remarqué que dans de nombreux programmes, les mêmes variables sont lues de façon répétitive avec les mêmes valeurs. Idée: on va commencer lexécution dune instruction avant de connaître la valeur de ses opérandes, en utilisant des valeurs « prédites » à partir des valeurs précédentes On appelle cette technique la « superspéculation »

© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? La superspéculation Les processeurs utilisant cette technique utilisent deux sous-systèmes: Un système « front end » qui spécule de façon agressive, allant jusquà prédire les valeurs manquantes Un système « back end » qui valide les prédictions de valeurs et qui peut corriger le tir lorsque nécessaire