INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Conception de processeurs – partie 2 Approches traditionnelles.

Slides:



Advertisements
Présentations similaires
GEF 435 Principes des systèmes d’exploitation
Advertisements

GEF 435 Principes des systèmes d’exploitation
Électronique de base du processeur
Le Concept du programme enregistré
Architecture de machines Le microprocesseur
Concepts d’architectures avancées
Module Systèmes dexploitation Chapitre 6 Communication Interprocessus Partie III École Normale Supérieure Tétouan Département Informatique
Plan du cours : 2ème Partie
Objectif de l’exposé.
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.
Objectifs Nous allons concevoir une mise en œuvre contenant un noyau de jeu d’instructions. Nous verrons comment l’architecture de jeu d’instructions.
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.
Le Concept du programme enregistré
Le jeu d ’instructions Introduction Un jeu d ’instruction classique
Architecture Systèmes
Auto Apprentissage Le DSP
2.Les différentes architectures (Louis)
Chapitre 8 : L’architecture de base des ordinateurs
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
Cours #9 Conception et réalisation de processeurs à usage général
Architecture des Ordinateurs
Algorithmique et Programmation
Optimisation et parallélisation de code pour processeur à instructions SIMD multimedia François Ferrand.
LES SYSTEMES AUTOMATISES
FICHIERS : Définition : Algorithme général:
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.
Systèmes Superscalaires et VLIW
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.
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
Parallélisme des instructions
Parallélisme des instructions
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Chap. 2 - Structure d’un ordinateur
Lycée ELKHAWARIZMI De SAFI
Module 8 : Surveillance des performances de SQL Server
INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Processeurs sous-RISC et application aux réseaux Quand.
André Seznec Caps Team IRISA/INRIA 1 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 Langages de description architecturale.
Le processeur Xtensa de Tensilica: paramétrage et extensibilité
Conception de processeurs – partie 1
INF8505: processeurs embarqués configurables
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Encodage du jeu d’instructions.
Un survol du language C.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Performance de circuits.
L’architecture du processeur Xtensa de Tensilica
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Modélisation VHDL de.
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.
GF-11: Tri Interne Efficace et Tri Externe
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.
INFOR 101 Chapitre 5 Marianne Morris.
Architecture et technologie des ordinateurs II
Optimisation pour la Conception de Systèmes Embarqués
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 ASIP Design and Synthesis for Non Linear Filtering in.
Architecture et technologie des ordinateurs II
Patricia Renault UPMC 2005/2006
Pipeline 1 Amélioration des performances par la technique du pipeline.
Architecture et technologie des ordinateurs II
Architecture des ordinateurs
Algorithmes parallèles
Architecture d’un ordinateur
Les bascules et registres
Introduction à l’Informatique chap 3 Licence SPI Mme Delmotte.
L'exécution d'un programme nécessite l'utilisation des ressources de l'ordinateur : temps de calcul pour exécuter les opérations, et l'occupation de la.
Formations Système Embarqué & Informatique Industrielle
ARCHITECTURE MATERIELLE D’UN SYSTEME A MICROPROCESSEUR
Transcription de la présentation:

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Conception de processeurs – partie 2 Approches traditionnelles pour améliorer la performance d’un processeur à usage général

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Survol de la présentation  Introduction  Pipeline d’instructions  Superpipeline  Processeurs superscalaires  Processeurs VLIW  Processeurs multifil

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Pourquoi parler d’amélioration de performance des processeurs à usage général en INF8505?  Pour pouvoir configurer un processeur (paramètres, extensions, outils), il est utile de bien connaître les différentes approches de réalisation d’un jeu d’instruction (la microarchitecture).  Les différentes techniques d’amélioration de performance de processeurs à usage général peuvent nous inspirer dans notre tâche. 3

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Amélioration des performances des processeurs Intel W. Stallings, « Computer Organization and Architecture, 7th Ed. », © Pearson, 2006 Microarchitecture Réalisation Techniques vues aujourd’hui

Jeu d’instructions vs microarchitecture vs réalisation … ?  Architecture du jeu d’instructions (Instruction Set Architecture – ISA)  Le contrat avec le programmeur et le compilateur.  Définit l’apparence fonctionnelle du processeur  Opérations, types de données, modes d’adressage, registres visibles, etc.  Implémentation ou microarchitecture  Point de vue du concepteur du processeur  Circuits logiques qui implémentent l’architecture  Pipelines, unités fonctionnelles, registres physiques  Réalisation  Point de vue du concepteur de circuit ou de la puce  Réalisation physique des circuits logiques  Portes, cellules, transistors, fils, etc. INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Une ISA peut avoir plusieurs implémentations, et chaque implémentation peut avoir plusieurs réalisations. 5

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Survol de la présentation  Introduction  Pipeline d’instructions  Superpipeline  Processeurs superscalaires  Processeurs VLIW  Processeurs multifil

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Pipeline: quoi et pourquoi  Un pipeline permet d’augmenter (significativement) le débit en exploitant le parallélisme inhérent dans un processus.

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Pipeline idéal  On peut définir la performance par BW = délai -1.  Dans un monde idéal:  la tâche se décompose en sous-tâches de même latence;  on peut décomposer la tâche indéfiniment;  les éléments à mémoire sont gratuits;  les éléments à mémoire n’introduisent pas de délai additionnel. J.P. Shen & M.H. Lipasti, « Modern Processor Design. », © McGraw-Hill, 2005

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Pipeline en pratique  k: nombre d’étages  G: coût du système sans pipeline  C: coût du système avec pipeline  P: performance du système avec pipeline = (T/k + S) -1  L: coût d’un loquet  T: période d’horloge du système sans pipeline  S: délai ajouté par un loquet  on peut démontrer que k opt = (GT/LS) 0.5 J.P. Shen & M.H. Lipasti, « Modern Processor Design. », © McGraw-Hill, 2005

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Exemple: multiplicateur à virgule flottante (sans pipeline)  Algorithme:  calculer le signe du produit  additionner les exposants  multiplier les mantisses  normaliser le produit des mantisses et incrémenter l’exposant résultant si nécessaire  arrondir le produit et normaliser de nouveau si nécessaire J.P. Shen & M.H. Lipasti, « Modern Processor Design. », © McGraw-Hill, 2005

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Exemple: multiplicateur à virgule flottante (avec pipeline) J.P. Shen & M.H. Lipasti, « Modern Processor Design. », © McGraw-Hill, 2005

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Pipeline (idéal) d’un processeur (1)  Le ‘calcul’ à pipeliner est le cycle des instructions du processeur. W. Stallings, « Computer Organization and Architecture, 7th Ed. », © Pearson, 2006

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Pipeline (idéal) d’un processeur (2)  Le cas présenté ici correspond grosso modo à une architecture CISC (accès mémoire pour les opérandes).  Chaque instruction passe à travers le pipeline au complet même si certaines étapes ne sont pas nécessaires (e.g. load ne fait rien à l’étape WO).  On suppose qu’il n’y a pas de conflit d’accès à la mémoire entre FI, FO et WO (facilité pour une architecture Harvard).  Et les branchements?  Et les dépendances de données? W. Stallings, « Computer Organization and Architecture, 7th Ed. », © Pearson, 2006  FI: lire la prochaine instruction à exécuter  DI: décoder l’opération à exécuter  CO: calculer l’adresse des opérandes (selon le mode d’adressage)  FO: lire les opérandes de la mémoire  EI: effectuer le calcul  WO: écrire le résultat en mémoire

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Pipeline d’un processeur (3): les branchements W. Stallings, « Computer Organization and Architecture, 7th Ed. », © Pearson, 2006  FI: lire la prochaine instruction à exécuter  DI: décoder l’opération à exécuter  CO: calculer l’adresse des opérandes (selon le mode d’adressage)  FO: lire les opérandes de la mémoire  EI: effectuer le calcul  WO: écrire le résultat en mémoire  L’instruction 3 est un branchement conditionnel vers l’instruction 15.  À t = 8, l’instruction 15 entre dans le pipeline.  Il n’y a pas d’instruction complétée pour les temps 9, 10, 11 et 12: c’est la pénalité de branchement.

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Pipeline d’un processeur (4) unification du jeu d’instructions, le cas RISC  Comment répartir les différents types d’instructions dans un pipeline?  Quels sont les avantages et désavantages de l’arrangement présenté ici? J.P. Shen & M.H. Lipasti, « Modern Processor Design. », © McGraw-Hill, 2005  pipeline ‘implémenté’  IF: lire la prochaine instruction à exécuter  ID: décoder l’opération à exécuter  RD: lire un registre interne  ALU: opération arithmétique ou logique  MEM: lecture ou écrite de la mémoire  WB: écrire un résultat dans un registre interne  pipeline ‘conceptuel’  IF: instruction fetch  ID: instruction decode  OF: operand fetch  EX: execute  OS: operand store

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Pipeline: les problèmes (1)  Conflits structurels (deux opérations ne peuvent être faites en même temps):  dus à manque de ressources (e.g. une seule mémoire pour les données et les instructions, ou bien utilisation de l’ALU pour les opérations arithmétiques et pour le calcul d’une adresse)  Conflits de données  si deux instructions successives produisent des résultats interdépendants  Conflits de contrôle  causés par les branchements

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Pipeline: les problèmes (2) Conflits de données J.P. Shen & M.H. Lipasti, « Modern Processor Design. », © McGraw-Hill, 2005  RAW est le plus commun. Deux solutions:  insérer une bulle  ‘forwarding’ du résultat  WAR possible seulement si le pipeline permet l’écriture dans deux étages différents.  WAW possible seulement si les lectures se font à la fin du pipeline et les écritures au début.  WAR et WAW sont plus fréquents pour les processeurs superscalaires (à venir).

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Pipeline: les problèmes (3) Conflits de contrôle  Le problème vient surtout des branchements conditionnels; l’instruction doit être complétée avant de savoir si le branchement aura lieu ou non.  Option 1: Bloquer le pipeline quand un branchement conditionnel est détecté.  Option 2: Supposer que le branchement ne sera pas fait et continuer à charger le pipeline. Il faut renverser les instructions si le branchement est fait.  Option 3: Supposer que le branchement sera fait et charger cette instruction dans le pipeline. Il faut renverser les instructions si le branchement est fait.  Option 4: Doubler le pipeline et exécuter les deux instructions, puis choisir quand on a déterminé si le branchement se fait ou non.  Option 5: Prédire dynamiquement si le branchement sera fait ou non, selon le code d’opération (e.g. BEQ: prédire oui; BPL: prédire non).  Option 6: Prédire dynamiquement si le branchement sera fait ou non, selon les caractéristiques du programme exécuté à ce moment.  Option 7: Utiliser un tampon de boucle qui contient toutes les instructions d’une boucle. Réduit les pénalités de branchement parce que les instructions sont disponibles.

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Pipeline: les problèmes (4) Prédiction de branchement W. Stallings, « Computer Organization and Architecture, 7th Ed. », © Pearson, 2006

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Survol de la présentation  Introduction  Pipeline d’instructions  Superpipeline  Processeurs superscalaires  Processeurs VLIW  Processeurs multifil

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Processeur super-pipeliné (1) J.P. Shen & M.H. Lipasti, « Modern Processor Design. », © McGraw-Hill, 2005  Un processeur superpipeliné contient un nombre élevé d’étages de pipeline. Certaines des étapes ‘traditionnelles’ du pipeline sont décomposées en plusieurs étapes.  C’est une façon de mieux répartir la latence des différentes étapes du cycle des instructions sur plusieurs étages. Pipeline Superpipeline

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Processeur super-pipeliné (2) J.P. Shen & M.H. Lipasti, « Modern Processor Design. », © McGraw-Hill, 2005  Exemple: MIPS R4000 (1991)

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Survol de la présentation  Introduction  Pipeline d’instructions  Superpipeline  Processeurs superscalaires  Processeurs VLIW  Processeurs multifil

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Processeurs superscalaires  Un processeur scalaire peut lancer une seule instruction à la fois (mais plusieurs peuvent être en cours d’exécution grâce à un pipeline).  Un processeur superscalaire peut:  lancer plusieurs instructions simultanément;  exécuter plusieurs instructions de façon concurrente et indépendante dans plusieurs pipelines;  exécuter des instructions dans un ordre différent de l’ordre prescrit par le programme;  L’approche superscalaire s’adapte aux modèles CISC et RISC.

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Processeurs superscalaires: comment (1) J.P. Shen & M.H. Lipasti, « Modern Processor Design. », © McGraw-Hill, 2005 a.Processeur scalaire sans pipeline b.Processeur scalaire avec pipeline c.??? d.Processeur superscalaire Résultat:

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Processeurs superscalaires: comment (2) J.P. Shen & M.H. Lipasti, « Modern Processor Design. », © McGraw-Hill, 2005 Exemple de réalisation pratique

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Potentiel d’accélération grâce à l’approche superscalaire  YMMV (Your Mileage May Vary)! W. Stallings, « Computer Organization and Architecture, 7th Ed. », © Pearson, 2006

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Exemple d’organisation d’un processeur superscalaire  Deux unités fonctionnelles (ALU+) à virgule flottante  Deux unités (ALU+) à virgule fixe  Un accès mémoire (load ou store)  Le tout est pipeliné. W. Stallings, « Computer Organization and Architecture, 7th Ed. », © Pearson, 2006

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Pipeline, super-pipeline, superscalaire W. Stallings, « Computer Organization and Architecture, 7th Ed. », © Pearson, 2006

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Conditions pour (et entraves à) un fonctionnement superscalaire (1)  L’approche superscalaire dépend de la possibilité d’exécuter plusieurs instructions en parallèle (instruction-level parallelism – ILP).  L’ILP peut être amélioré par des techniques matérielles ainsi que lors de la compilation.  Il y a une différence entre l’ILP et le parallélisme matériel. J.P. Shen & M.H. Lipasti, « Modern Processor Design. », © McGraw-Hill, 2005

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Conditions pour (et entraves à) un fonctionnement superscalaire (2)  Quel code exhibe un bon ILP? Code #1 Load R1, R2 Add R3, R3, 1 Add R4, R4, R2 Code #2 Add R3, R3, 1 Add R4, R3, R2 Store [R4], R0

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Conditions pour (et entraves à) un fonctionnement superscalaire (3)  Quelques facteurs qui affectent l’ILP:  fréquence des dépendances (de données et de contrôle) dans le code  ‘latence’ des opérations: combien de temps est nécessaire avant qu’une instruction soit complétée

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Conditions pour (et entraves à) un fonctionnement superscalaire (3)  Le parallélisme matériel est une mesure de l’habileté du processeur à exécuter des instructions indépendantes.  Le parallélisme matériel dépend:  du nombre d’instructions qui peuvent être chargées simultanément;  du nombre de pipelines parallèles;  des mécanismes présents pour détecter le parallélisme dans les opérations.  Exemple: instructions de taille variable? mauvais: complique la décomposition des instructions

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Conditions pour (et entraves à) un fonctionnement superscalaire (4)  Cinq entraves fondamentales à l’ILP:  ‘vraies’ dépendances de données (RAW);  dépendances procédurales;  conflits de ressources;  dépendances de sortie (WAW);  anti-dépendances (WAR). J.P. Shen & M.H. Lipasti, « Modern Processor Design. », © McGraw-Hill, 2005

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Effet des dépendances W. Stallings, « Computer Organization and Architecture, 7th Ed. », © Pearson, 2006 ix: une instruction

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Politiques pour l’émission des instructions  L’émission des instruction (instruction issue) est le processus d’initiation de l’exécution d’une instruction juste après son décodage.  Le processeur doit déterminer dans quel ordre exécuter les instructions à sa disposition.  Le processeur doit produire des résultats corrects!  Il y a trois choix:  émission dans l’ordre et complétion dans l’ordre;  émission dans l’ordre mais complétion hors d’ordre;  émission hors d’ordre et complétion hors d’ordre.

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Émission des instructions: comment? (1) J.P. Shen & M.H. Lipasti, « Modern Processor Design. », © McGraw-Hill, 2005 Flexibilité totale!

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Émission des instructions: comment? (2) J.P. Shen & M.H. Lipasti, « Modern Processor Design. », © McGraw-Hill, 2005 Un premier tampon reçoit les opérandes et les instructions à effectuer. Les opérations sont émises aux unités fonctionnelles. Un deuxième tampon reçoit les résultats et les retransmet dans l’ordre. (Ce n’est qu’une possibilité parmi plusieurs!)

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Émission des instructions: comment? (3) J.P. Shen & M.H. Lipasti, « Modern Processor Design. », © McGraw-Hill, 2005 Approche plus sophistiquée, avec émission distribuée

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Émission des instructions: comment? (4) Ce qui se passe à l’intérieur des unités fonctionnelles … Les pointillés indiquent un étage de pipeline. a.Opération combinée à 5 opérandes et trois résultats, sur deux cycles, plusieurs opérations possibles en activant ou non les différents blocs. b.Opération à 3 opérandes et 1 résultat, avec mémoire d’une instruction à l’autre (registre spécial). Plusieurs variations possibles. Excellents exemples d’instructions spécialisées pouvant être ajoutées à un processeur! J.P. Shen & M.H. Lipasti, « Modern Processor Design. », © McGraw-Hill, 2005

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel émission et complétion dans l’ordre W. Stallings, « Computer Organization and Architecture, 7th Ed. », © Pearson, 2006  Suppositions:  ordre du programme: I1, I2, …, I6  trois unités fonctionnelles  décodage de deux instructions à la fois  I1 nécessite 2 cycles (CISC)  I3 et I4 utilisent la même unité fonctionnelle  I5 et I6 utilisent la même unité fonctionnelle  I5 dépend du résultat produit par I4

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel émission dans l’ordre et complétion dans le désordre W. Stallings, « Computer Organization and Architecture, 7th Ed. », © Pearson, 2006  Suppositions supplémentaires:  I1: R3 ← R3 op R5  I2: R4 ← R8 + 1  I3: R3 ← R5 + 1  I4: R7 ← R3 + R4 attention: WAW  Suppositions:  ordre du programme: I1, I2, …, I6  trois unités fonctionnelles  décodage de deux instructions à la fois  I1 nécessite 2 cycles (CISC)  I3 et I4 utilisent la même unité fonctionnelle  I5 et I6 utilisent la même unité fonctionnelle  I5 dépend du résultat produit par I4

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel émission et complétion dans le désordre W. Stallings, « Computer Organization and Architecture, 7th Ed. », © Pearson, 2006  Suppositions supplémentaires:  I1: R3 ← R3 op R5  I2: R4 ← R8 + 1  I3: R3 ← R5 + 1  I4: R7 ← R3 + R4 attention: WAR  fenêtre d’instructions:  liste d’instructions décodées, prêtes à être exécutées si une unité fonctionnelle se libère et qu’aucune dépendance de données ne l’interdit  Suppositions:  ordre du programme: I1, I2, …, I6  trois unités fonctionnelles  décodage de deux instructions à la fois  I1 nécessite 2 cycles (CISC)  I3 et I4 utilisent la même unité fonctionnelle  I5 et I6 utilisent la même unité fonctionnelle  I5 dépend du résultat produit par I4

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel duplication de registres (register renaming)  Cette technique permet d’éviter les dépendances de sortie (WAW) et les anti-dépendances (WAR).  Des registres supplémentaires sont alloués dynamiquement pendant l’exécution.  Modification de l’exemple précédent:  WAW entre I1 et I3; WAR entre I2 et I3 Code modifié: I1: R3b ← R3a - R5a I2: R4a ← R3b + 1 I3: R3c ← R5a + 1 I4: R7a ← R3c + R4a Code original: I1: R3 ← R3 - R5 I2: R4 ← R3 + 1 I3: R3 ← R5 + 1 I4: R7 ← R3 + R4

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel un sommaire d’accélération W. Stallings, « Computer Organization and Architecture, 7th Ed. », © Pearson, 2006  Suppositions:  1 = processeur scalaire  machine de base superscalaire avec émission hors d’ordre  + ld/st: 2 e unité load/store  + alu: 2 e alu  + both: 2 e unité load/store et 2 e alu  fenêtre d’instructions:

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel un sommaire d’exécution W. Stallings, « Computer Organization and Architecture, 7th Ed. », © Pearson, 2006

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Quelques caractéristiques de jeux d’instructions W. Stallings, « Computer Organization and Architecture, 7th Ed. », © Pearson, 2006

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Survol de la présentation  Introduction  Pipeline d’instructions  Superpipeline  Processeurs superscalaires  Processeurs VLIW  Processeurs multifil

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel VLIW: Very Long Instruction Word Pourquoi?  Désavantages de l’approche superscalaire:  beaucoup d’efforts à ordonner les instructions  beaucoup d’efforts pour assigner une instruction à une unité fonctionnelle  Une solution: laisser le compilateur régler ces problèmes en combinant plusieurs instructions dans un seul (très loooooooonnng) mot (48, bits).  On ne fait que déplacer le problème, mais le compilateur a beaucoup plus de temps pour effectuer une organisation du programme ‘optimale’.

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel VLIW vs SIMD add r1,r2,r3 FU add r1,r2,r3 FU load r4,r5+4mov r6,r2mul r7,r8,r9 J.C. Hoe, Carnegie Mellon U., notes de cours , © 2001 SIMD: une seule instruction effectuée simultanément par plusieurs unités fonctionnelles, sur des données différentes VLIW: plusieurs unités fonctionnelles parallèles exécutant des instructions différentes. Le processeur ne s’inquiète pas de dépendances de données ni de contrôle. Opération peut être NOP.

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel VLIW: un chemin de données possible J.C. Hoe, Carnegie Mellon U., notes de cours , © 2001 Bloc de registres à plusieurs ports lecture et écriture Unités fonctionnelles variées.

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel VLIW: exemple de programme J.C. Hoe, Carnegie Mellon U., notes de cours , © 2001 Bloc de registres à plusieurs ports lecture et écriture programme original code à 3 addresses graphe de dépendances instructions VLIW e = (a + b) * (c + d) b++; A: r1 = a + b B: r2 = c + d C: r3 = r1 * r2 D: r4 = r4 + 1 B C A D 00:add a,b,r1add c,d,r2add r4,1,r4 01:mul r1,r2,r3nop

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel VLIW: avantages  Peut exploiter le parallélisme d’instructions, même pour instructions vectorielles.  Chemin des données est simple; son contrôle l’est encore plus.  L’architecture donne intrinsèquement beaucoup de flexibilité au compilateur.  Il est facile de prévoir le déroulement du programme dans le temps (vs superscalaire).

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel VLIW: désavantages  Le code compilé est restreint à la machine.  Le code prend beaucoup de mémoire (les ‘bulles’ du pipeline [NOP] sont insérées dans les instructions).  Le compilateur est très complexe.  L’accès (parallèle) à la mémoire est très complexe.  Toutes les applications ne bénéficient pas également des avantages VLIW.

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel VLIW vs superscalaire quoisuperscalaireVLIW plusieurs instructions par cycleoui plusieurs opérations par instructionnonoui analyse dynamique des dépendances de données ouinon ordonnancement dynamique des instructions ouinon allocation dynamique de registresoui (register renaming) possible

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel VLIW vs superscalaire: une photo vaut 1000 mots … J.C. Hoe, Carnegie Mellon U., notes de cours , © 2001 point de vue intéressant pour processeurs configurables

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel VLIW et la complexité du jeu d’instructions  DEL: Directly Executable Language machine (théorique)  DSI: Dynamic-Static Interface J.P. Shen & M.H. Lipasti, « Modern Processor Design. », © McGraw-Hill, 2005

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Survol de la présentation  Introduction  Pipeline d’instructions  Superpipeline  Processeurs superscalaires  Processeurs VLIW  Processeurs multifil

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Traitement multifil (multithreading)  Un processeur à traitement multifil :  a au minimum un compteur de programme séparé pour chaque fil;  peut avoir des blocs de registres et des registres d’états différents;  peut partager ses unités fonctionnelles entre chaque fil d’exécution.  Quatre approches:  1. multifil intercalé: le processeur passe d’un fil à l’autre à après un nombre fixe de coups d’horloge  2. multifil par blocs: le fil est exécuté tant qu’il ne bloque pas (par exemple à cause d’un échec de la cache)  3. multifil simultané: instructions de divers fils émises à différentes unités fonctionnelles d’un processeur superscalaire  4. multiprocesseur: évidemment!

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Multifil simultané (SMT) FMult (4 cyc) FAdd (2 cyc) ALU1 ALU2 Load/Store (variable) Fdiv, unpipe (16 cyc) Reorder Buffer A Reorder Buffer Z Fetch Unit A OOO Dispatch A Fetch Unit Z OOO Dispatch Z Context A Context Z J.C. Hoe, Carnegie Mellon U., notes de cours , © 2001

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel En résumé … W. Stallings, « Computer Organization and Architecture, 7th Ed. », © Pearson, 2006 identificateurs de processus