Gei 431 Digression Control flow et Data flow

  • Slides: 10
Download presentation
Gei 431 Digression: «Control flow » et « Data flow » Jusqu’ici, les processeurs

Gei 431 Digression: «Control flow » et « Data flow » Jusqu’ici, les processeurs que nous avons étudié ont tous été du type « Von Neumann » , c’est-à -dire des machines où un « program counter » indique où aller cher la prochaine instruction. C’est ce qu’on appelle le modèle « control flow » , et c’est le type de machine principal qui existe de nos jours Mais… on peut imaginer un autre paradigme pour l’exécution des instructions! Architecture des ordinateurs II – Frédéric Mailhot

Processeurs “Data flow” Comment faire un processeur autrement qu’en utilisant le « control flow

Processeurs “Data flow” Comment faire un processeur autrement qu’en utilisant le « control flow » de Von Neumann? • Rappelons-nous notre étude du Itanium: nous avons vu que les programmes peuvent être représentés par des graphes: • Ces graphes représentent le fait que les instructions ont des dépendances entre elles à cause des données © 2001 Frédéric Mailhot Université de Sherbrooke

Processeurs “Data flow” L’idée derrière les processeurs « Data flow » • Sachant que

Processeurs “Data flow” L’idée derrière les processeurs « Data flow » • Sachant que ce qui va empêcher une instruction de s’exécuter, ce sont les valeurs inconnues des opérandes, on peut changer le mode d’opération de la machine: § Au lieu d’indiquer où se trouve la prochaine instruction, on indique quelles sont les dépendances entre les instructions § Lorsque toutes les valeurs d’entrées d’une instruction sont connues, on peut alors l’exécuter © 2001 Frédéric Mailhot Université de Sherbrooke

Processeurs “Data flow” Processeur VS matériel dédié • En fait, le mode d’opération «

Processeurs “Data flow” Processeur VS matériel dédié • En fait, le mode d’opération « Data Flow » est la méthode utilisée lors de la génération de circuits matériels, par exemple dans les ASICs (Application Specific Integrated Circuits) • Lorsqu’on fait la synthèse de circuits à partir de langages HDL (VHDL ou Verilog), c’est aussi le modèle « Data Flow » qui est utilisé § On verra cela avec un peu plus de détail plus tard durant la session • De cette façon, l’ordre d’exécution des opérations est décidé de façon dynamique, pendant que le système est à évaluer les données © 2001 Frédéric Mailhot Université de Sherbrooke

Processeurs “Data flow” Processeurs « Data Flow » • Depuis le début des années

Processeurs “Data flow” Processeurs « Data Flow » • Depuis le début des années ’ 70, il y a eu plusieurs processeurs « Data Flow » étudié par diverses équipes de recherche § § § • MIT Static Dataflow Machine (1975) Manchester Dataflow Machine (1979) Hughes Dataflow Multiprocessor (1985) Stateless Data-Flow Architecture (1993) Et beaucoup d’autres… Plusieurs types de machines Dataflow ont été étudiées, mais nous contenterons d’un bref aperçu de la plus simple, la méthode « statique » © 2001 Frédéric Mailhot Université de Sherbrooke

Processeurs “Data flow” Approche simple: Static dataflow • On utilise des jetons (tokens) pour

Processeurs “Data flow” Approche simple: Static dataflow • On utilise des jetons (tokens) pour indiquer la validité des données ni * x y 2 x y 3 3 2 nj * n x i Jeton de données y Jeton de retour Arc de données Arc de retour (acknowlege) SQRT nj sqrt z z © 2001 Frédéric Mailhot nj ni Université de Sherbrooke z

Processeurs “Data flow” Approche simple: Static dataflow • On peut utiliser deux façons différentes

Processeurs “Data flow” Approche simple: Static dataflow • On peut utiliser deux façons différentes d’initier les calculs: § Push ou Pull: • Push: on fait le calcul de la sortie lorsque tous les opérandes sont connus (le contrôle des calculs va des entrées vers les sorties) • Pull: on initie le calcul d’une valeur que lorsqu’elle est nécessaire (le contrôle des calculs va des sorties vers les entrées) © 2001 Frédéric Mailhot Université de Sherbrooke

Processeurs “Data flow” Exemple: la MIT Static Dataflow Machine Vers le Communication Network Send

Processeurs “Data flow” Exemple: la MIT Static Dataflow Machine Vers le Communication Network Send Unit Receive Unit Update Unit Processing Element © 2001 Frédéric Mailhot Université de Sherbrooke Operation Unit(s) Instruction Queue Activity Store Fetch Unit

Processeurs “Data flow” Exemple: la MIT Static Dataflow Machine Vers le Communication Network Send

Processeurs “Data flow” Exemple: la MIT Static Dataflow Machine Vers le Communication Network Send Unit Receive Unit Update Unit Processing Element © 2001 Frédéric Mailhot Université de Sherbrooke PE Operation. Communication … Unit(s) Network PE Instruction Queue Activity Store Fetch Unit

Processeurs “Data flow” Machines Dataflow – Remarques et conclusion • Certaines idées des machines

Processeurs “Data flow” Machines Dataflow – Remarques et conclusion • Certaines idées des machines Dataflow ont été reprises dans les processeurs de type Von Neumann « traditionnels » : § Le « renaming » , avec utilisation du Common Data Bus, est assez proche des idées dataflow: une instruction ne s’exécute que lorsque tous ses opérandes sont prêts § L’exécution des instructions dans le « désordre » respecte toujours la disponibilité des opérandes, comme dans les systèmes Dataflow © 2001 Frédéric Mailhot Université de Sherbrooke