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