Systèmes Superscalaires et VLIW

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
Électronique de base du processeur
Architecture de machines Le microprocesseur
Comment réussir la lecture approfondie ?
GEF 435 Principes des systèmes d’exploitation
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Considération de temps.
GEF 435 Principes des systèmes dexploitation Structure des systèmes dexploitation (Tanenbaum 1.7)
GEF 435 Principes des systèmes d’exploitation
RISC versus CISC C'est dans les années 80 que la notion de RISC est apparue. Elle consiste à minimiser le nombre d'instructions et à les simplifier!
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é
Objectifs Identifier l’interface entre le logiciel de plus bas niveau et le matériel Comprendre la problématique de l’architecture du jeu d’instruction.
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.
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.
CSI3525: Concepts des Langages de Programmation Notes # 11: Sous-Programmes ( Lire Chapitre 8 )
Architectures et systèmes à microprocesseurs – ELEC288
Démarche de résolution de problèmes
Concepts de base : la Classe Pour faire une comparaison simple, une classe serait a priori, une structure C avec des variables et des fonctions.
ADR Active and Dynamic Routing. Plan Introduction au routage Les réseaux actifs Les agents Mise à jour des matrices de routage Architecture du routage.
RÉSOLUTION DE PROBLÈMES
Gestion des branchements
Algorithmique et Programmation
Analyse d’algorithmes
Mesurer l’efficacité des algorithmes
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.
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.
IFT Complexité et NP-complétude
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
Les systèmes multiplateformes
Module 2 : Préparation de l'analyse des performances du serveur
Efficacité des algorithmes
Partie II Sémantique.
Chap. 2 - Structure d’un ordinateur
Analyse d’algorithmes
Lycée ELKHAWARIZMI De SAFI
ANALYSE METHODE & OUTILS
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.
8INF856 Programmation sur architectures parallèles
TD0 - Rappels. Acquis du programme 1 ère année Analyser et modéliser : un problème, une situation ; Imaginer et concevoir : une solution algorithmique.
INF8505: processeurs embarqués configurables
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Encodage du jeu d’instructions.
Un outil d’estimation du temps d’exécution au pire-cas par analyse statique de programmes IRISA - Projet Solidor Antoine COLIN.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Performance de circuits.
ARPO: architecture des processeurs superscalaires,VLIW et optimisation André Seznec et François Bodin.
GF-11: Tri Interne Efficace et Tri Externe
INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Conception de processeurs – partie 2 Approches traditionnelles.
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.
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,
Algorithmique : Introduction
1 Université Henri Poincaré, Nancy 1 La préemption appliquée aux FPGAs Soutenance de rapport bibliographique de DEA Faculté des Sciences Vandoeuvre-lès-Nancy.
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.
PROJET CAPS Compilation, Architecture, Processeurs Superscalaires et Spécialisées.
ARPO: architecture des processeurs superscalaires,VLIW et optimisation André Seznec et François Bodin.
Patricia Renault UPMC 2005/2006
Pipeline 1 Amélioration des performances par la technique du pipeline.
8PRO107 Éléments de programmation Les adresses et les pointeurs.
Pipeline 1 Amélioration des performances par la technique du pipeline.
ALLOCATION DU CPU et GESTION DES TRAVAUX.
Algorithmes parallèles
Java Réalisé par: Mouna POKORA. PLAN: Définition : Historique: Caractéristiques: un langage orienté objet: un langage interprété : un langage portable:
ARCHITECTURE MATERIELLE D’UN SYSTEME A MICROPROCESSEUR
Gei 431 Architecture des ordinateurs II – Frédéric Mailhot Introduction Objectifs du cours Évaluation Références Matière du cours: - Techniques modernes.
Transcription de la présentation:

Systèmes Superscalaires et VLIW Parallélisme des instructions: quoi d’autre? Avec le pipeline, nous avons vu une des techniques de parallélisme des instructions (ILP ou Instruction Level Parallelism). Que peut-on faire de plus? VLIW (Very Large Instruction Word) Techniques superscalaires

Limites du pipelining, et comment les dépasser Pour une machine pipeline, on peut espérer au mieux l’exécution d’une instruction par coup d’horloge: il n’y a jamais plus d’une instruction lue par coup d’horloge. Rappel: temps CPU = IC * CPI * période de l’horloge Pour augmenter la performance, on peut donc: Diminuer le nombre d’instructions (IC) Diminuer le CPI Diminuer la période de l’horloge

Limites du pipelining, et comment les dépasser (2) Une question fondamentale se pose: Est-il préférable de tenter de simplifier le circuit pour augmenter la fréquence de l’horloge? Ou bien, doit-on rendre le circuit plus complexe pour tenter de faire plus durant la même période d’horloge? L’architecture RISC, avec le pipeline, procède de la première approche. Les résultats sont probants, mais il semble qu’on ne puisse réduire la période de l’horloge en dessous d’un certain seuil. D’où: il faut aussi considérer la deuxième approche (ce que l’on fait avec le VLIW et le superscalaire).

Comment augmenter le ILP: en considérant plus d’une instruction par coup d’horloge L’idée de base ici est que la fréquence de l’horloge ne peut être réduite indéfiniment, et donc que pour une certaine durée d’horloge, on doit réussir à faire plus de travail utile. Comment faire? Lorsque nous arrivons à traiter tout près d’une instruction par coup d’horloge, la seule chose à faire de plus est de tenter de lire, décoder et exécuter plus d’une instruction par coup d’horloge…

Exécution de multiples instructions par coup d’horloge: difficultés Lorsqu’on tente d’exécuter plus d’une instruction par coup d’horloge, cela implique qu’au même moment plusieurs instructions, qui ont été produites selon une certaine séquence par le compilateur et apparaissent séquentiellement en mémoire, doivent être séparées en des chemins d’exécution parallèles Deux façons de faire cela: Décider au moment de la compilation des instructions qui peuvent s’exécuter en parallèle (approche VLIW, EPIC) Décider au moment de l’exécution des séquences d’instructions qui peuvent se faire en parallèle (approche superscalaire)

VLIW: qu’est-ce que c’est? VLIW: technique pour exécuter plusieurs opérations en parallèle Méthode: on définit des groupes de plusieurs instructions, qui sont lues, décodées et exécutées en parallèle. Chaque groupe devient une « super-instruction » destinée à être lue d’un bloc par le processeur VLIW Avantage: le compilateur décide des instructions à grouper ensemble. Ceci élimine pour le processeur VLIW le fardeau du scheduling des instructions (détermination des instructions qui peuvent être exécutées en parallèle). Le processeur est donc plus simple à concevoir, et par conséquent peut être plus rapide.

Superscalaire: qu’est-ce que c’est? Superscalaire: technique pour exécuter plusieurs opérations en parallèle Méthode: lit en même temps des blocs d’instructions séquentielles (compilées de façon traditionnelle), et le processeur décide dynamiquement quelles instructions du bloc peuvent s’exécuter en parallèle Avantage: On utilise un compilateur traditionnel pour produire le code exécutable Le parallélisme est extrait de façon dynamique par le processeur, donnant une plus grande marge de manœuvre pour le scheduling des instructions

VLIW vs superscalaire: les enjeux Le débat entre VLIW et superscalaire s’apparente au débat CISC/RISC du début des années ’80: simplicité du matériel (et performance améliorée) vs simplicité du compilateur Selon vous, lequel devrait gagner la bataille? VLIW? Superscalaire?

Le vainqueur apparent: le VLIW Comme le RISC a pris le dessus sur le CISC parce que le matériel est plus simple à réaliser et donc plus rapide, le VLIW devrait produire des systèmes plus performants Évidemment, les compilateurs devraient être améliorés, mais le type d’améliorations requises (détection de parallélisme au niveau des instructions) est déjà possible.

VLIW: l’architecture du futur? Mais… il y a un problème important avec le VLIW: c’est le compilateur qui prend en charge toutes les dépendances entre les instructions, et qui les résout lors de la compilation. D’où deux constats importants: Le compilateur est lié intimement à l’implémentation de l’architecture. Si celle-ci change, le compilateur (et donc le code) doit changer. Que fait-on avec nos « vieux » logiciels lorsqu’on change de machine? La résolution de conflits se fait lors de la compilation. Elle doit donc être conservatrice. Dans un autre type d’architecture (i.e. le superscalaire) on fait cette résolution de façon dynamique. D’où plus de flexibilité et potentiellement une amélioration de la performance. Autre limitation du VLIW: puisque le code doit être libre de dépendances, il est presque impossible de l’écrire en langage assembleur

La suite: le superscalaire Nous couvrirons principalement les techniques superscalaires dans ce qui suit. Pourquoi? Le VLIW est une extension relativement simple du pipeline (en théorie, on pourrait imaginer qu’on ne fait que mettre un ensemble de machines pipelines indépendantes en parallèle). Pour ce qui est du superscalaire, la gestion dynamique des dépendances entre instructions est beaucoup plus sophistiquée, et exige qu’on s’y arrête pour comprendre ce qui se passe.