Méthodologie de conception d’architectures parallèles dédiées

Slides:



Advertisements
Présentations similaires
LES NOMBRES PREMIERS ET COMPOSÉS
Advertisements

[number 1-100].
1. Résumé 2 Présentation du créateur 3 Présentation du projet 4.
Licence pro MPCQ : Cours
Distance inter-locuteur
LIRMM 1 Journée Deuxièmes années Département Microélectronique LIRMM.
Borhen LOUHICHI Merci, Monsieur le président,
RAULET Mickaël 18 mai 2006 Mitsubishi ITE - Equipe Software Radio
Test Intégré pour Convertisseurs Analogique/Numérique
Les numéros
Les identités remarquables
Approche par composant : Un cadre pour l’ingénierie de la commande
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é
Les éléments de mémorisation
1 Efficient Data and Program Integration Using Binding Patterns Ioana Manolescu, Luc Bouganim, Francoise Fabret, Eric Simon INRIA.
Flow de conception (4h)-demo
Programmation graphique du processeur CELL : Faciliter la programmation T. Grandpierre.
Répétitives sur une architecture régulière embarquée
Ordonnancement des mouvements de deux robots
Plus rapide chemin bicritère : un problème d’aménagement du territoire
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
Interagir avec un objet mixte Propriétés physiques et numériques Céline Coutrix, Laurence Nigay Équipe Ingénierie de lInteraction Homme-Machine (IIHM)
Des RRA à la diagnosticabilité
1 Cours numéro 3 Graphes et informatique Définitions Exemple de modélisation Utilisation de ce document strictement réservée aux étudiants de l IFSIC.
Application des algorithmes génétiques
le profil UML en temps réel MARTE
Gestion des Périphériques
Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE
Synchronisation et communication entre processus
Serveurs Partagés Oracle
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
Détection de co-évolution de gènes Master 2 : Informatique à Finalité Professionnelle et Recherche Unifiée (IFPRU) Parcours Ingénierie de lIntelligence.
Titre : Implémentation des éléments finis sous Matlab
III – Convergence Asymptotique
[photo d'un système] Schéma ordonnancement XML Évaluation Code C Modélisation Solution GÉNÉRATEUR AUTOMATIQUE DE CODE pour OUTIL DE MODÉLISATION-IMPLANTATION.
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
CONCEPTION ET SIMULATION DE CIRCUITS ÉLECTRONIQUES
LES NOMBRES PREMIERS ET COMPOSÉS
Optimisation et parallélisation de code pour processeur à instructions SIMD multimedia François Ferrand.
1 INETOP
PLD GHome H4214 Piccolo Thomas Gu Lei Deville Romain Huang Yachen
II- L’algorithme du recuit simulé (pseudo-code)
Introduction Objectifs du cours Évaluation Références
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
Titre : Implémentation des éléments finis en Matlab
Détection du meilleur format de compression pour une matrice creuse dans un environnement parallèle hétérogène Olfa HAMDI-LARBI.
Équipe 2626 Octobre 2011 Jean Lavoie ing. M.Sc.A.
OSTRE Optimisation des Systèmes Temps Réel Embarqués
Lycée ELKHAWARIZMI De SAFI
Elaboré par M. NUTH Sothan 1. 2 Soit x, y et z des coordonnées cartésiennes à 3 dimension. G un ensemble de points dans le plan (u, v). Déf. : On appelle.
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
DESIGN D’UN CODEUR- DÉCODEUR CHAOTIQUE AUTO-SYNCHRONISANT EN TEMPS RÉEL ET EN PRÉSENCE DE BRUIT Laboratoire d’Automatique et d’Informatique Industrielle-POITIERS.
1 Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Rodolphe Loué Projet SOLIDOR.
Advanced Boolean Equation Language
Les Chiffres Prêts?
Supports de formation au SQ Unifié
Projet Implémentation du protocole MMT sous Linux
Méthodologie de conception Outils de conception
Power PC embarqués et accélérateurs matériels pour des cibles de type FPGA Julien Dubois.
Les systèmes mono-puce
Journées d'études Faible Tension Faible Consommation 14, 15, 16 mai Gwenolé CORRE, Nathalie JULIEN, Eric SENN, Eric MARTIN LESTER, Université de.
Implantation de processeurs dans les FPGA et ASIC
Construction d'une hiérarchie mémoire faible consommation
Steven Derrien Équipe R2D2
Optimisation pour la Conception de Systèmes Embarqués
Transcription de la présentation:

Méthodologie de conception d’architectures parallèles dédiées Mohamed Akil, Thierry Grandpierre, Eva Dokadalova, Laurent Perroton Université Paris-Est, Laboratoire d'informatique Gaspard-Monge, équipe A3SI ESIEE Paris, 2 Bld Blaise Pascal, BP 99, Noisy-Le-Grand, 93162, France AMINA 2008

Architecture, parallélisme pour l’Image et la Réalité Virtuelle Parallélisme : l’Image et la RV L. Perroton 5 thèses en cours Architectures dédiées pour l’Image et la RV M. Akil Architectures matérielles existantes Architectures reconfigurables et adaptatives pour la vision temps réel et la RV E. Dokladalova APPLICATIONS Imagerie médicale Imagerie temps réel embarquée RV/RA Multimédia et compression Conception de nouvelles architectures Conception et Extension de nouveaux Logiciels Méthodologie de conception d’applications temps-réel pour l’Image et la RV T. Grandpierre

Plan Introduction : architecture parallèle dédiée (multi-composants) Optimisation, génération automatique de code : pour architecture programmable pour architecture reconfigurable pour architecture mixte : programmables et reconfigurables Conclusion et perspectives

Reduce Instruction Set Computer Digital Signal Processor Traitement des défauts pour l’Imagerie numérique : Étude Algorithmique et Implémentation sur Architecture Mobile Processeur DSP - VLIW Processeur RISC Reduce Instruction Set Computer Digital Signal Processor Digital Signal Processor

Détection de visage sur système TI-Enhanced ARM925 Core 150 MHz Sur Puce (SoC) Processeur DSP OMAP5910 DSP 16 DSP Private OMAP5910 32 TMS320C55xTM Core 150 MHz DSP Shared Traffic Ctrl 75 MHz System Shared 32 EMIFS System DMA 32 EMIFF 32 ARM IMIF ARM Shared 32 TI-Enhanced ARM925 Core 150 MHz 32 32 ARM Private LCD Ctrl SRAM 1.5 Mb Processeur RISC - ARM

Contexte et objectifs Applications : traitement d’images, visions, multimédia et réalité virtuelle  applications temps réel  forte puissance de calcul Architectures parallèles dédiées : Multi-composants processeurs (CISC, RISC, DSP, SIMD, GPU) circuits reconfigurables (FPGA)

Contexte : méthodologie Implantation optimisée d’applications temps réels : Algorithme : parallélisme potentiel : parallélisme de tâches (intrinsèque) parallélisme de données, .. Architecture : parallélisme disponible Implantation = distribution + ordonnancement + optimisation/estimation de performances + génération (code/configuration/communications) Contraintes : temps réel, prototypage rapide, hétérogénéité, différents domaines d’expertise Méthodologie et outil associé : Exploration de ces parallélismes à l'aide d'un outil (nombre de tâches, granularité,…) Adéquation

Mise en œuvre de la Méthodologie Architecture programmable (à base de processeurs) : AAA/SynDEx Architecture à base de circuits dédiés (circuit reconfigurable – FPGA : AAA/SynDEx-IC (Integrated Circuit) Architecture parallèle dédiée : Objectif : explorer l'espace de conception : Définir une architecture de Processeurs Elémentaires (PE) Topologie? Types d'interconnexions? Définir la fonctionnalité de chaque PE Quels calculs peuvent ils effectuer? Quels tailles de données traitent-ils? Etre capable de prédire les performances des architectures avant implantation Moyens utilisés Modélisations de l'algorithme et de l'architecture Outil logiciel SynDEx/SynDEx-IC éventuellement associé à d’autres outils (TRIMARAN : exploration de processeur RISC VLIW,…) Méthodologie itérative

méthodologie AAA et architectures multiprocesseurs (programmables) gensig filtre adap filtre sub adap visu retard coeff 1 Architectures multiprocesseurs (Graphe d’architecture) Adéquation (heuristiques distribution ordonnancement) Génération automatique d’exécutifs distribués Algorithmes (Graphe flot de données) Estimation performances 1 2 3 4 Opr1 Com1b Com1a Com2b Com2a Com3a Opr2 Opr3 processeur1 processeur2 processeur3 RAM D/P SAM D Opr4 processeur4 2 in calc out send receive all.Din/calc all.Pin all.Dlin all.Pcalc all.Dlcalc all.Pout all.Dlout all.Dcalc/out loop endloop in_ini in_end out_ini out_end all.Po1 all.Po2 all.Po4 all.D_o1o2 all.D_o2o3 all.D_o3o4 all.Po3 all.Dlo1 all.Dl2 all.Dlo4 all.Dlo3 alias.D_o3o4 ESPACE MEMOIRE RAM 3 semaphores_(s_empty…) processor_( opr1, .) alloc_(type_in/calc...) thread_(comr1a) loop_ pre0 (s_empty) sucF(s_full) send(in/calc) preE(s_empty) endthread_ endloop_ main_ in_ini( ) spawn_thread(com1ra) sucE(s_empty) in(in/calc) preF(s_full) in_end ( ) endmain_ endprocessor_ MACRO PROCESSEUR BIBLIOTHEQUE GENERIQUE D’EXECUTIF de macros COMPILATEUR Executable1 Executable2 src BIBLIO. De Fonctions 4

méthodologie AAA et architectures multiprocesseurs (programmables) Spécification de l’algorithme Distribution ordonnancement automatique Génération de code Compilation & tests Spécification de l’architecture Prédiction de performances caractérisation Distribution (opérations sur opérateurs + comm. + mém.) Ordonnancement (ordre des opérations sur opérateurs) Génération de code : inclus les communications

Méthodologie AAA et architectures multiprocesseurs (programmables)

Méthodologie AAA et architectures multiprocesseurs (programmables) L’optimisation 2) o1 sur opr1, candidats = o2 et o3 o2/opr1 ou opr2 : o3/opr1 ou opr2 : opr1 R c1 S C2 R Opr2 opr1 R c1 S C2 R Opr2 o1 o1 o2 o2 o2 s r o3 o3 o3 s r o2 opr1 c1 C2 Opr2 R S o1 3) o2/opr1, cand:o3/opr1 ou opr2 o2 opr1 c1 C2 Opr2 R S o1 o3 s r o4 4) o3/opr2, cand: o4/opr1 ou opr2 o3 s r o3

Méthodologie AAA et architectures multiprocesseurs (programmables) BIBLIOTHEQUE GENERIQUE D’EXECUTIF spécifique à l’architecture (Unix.m4x,Tcp.m4x Can.m4x, 555.m4x) BIBLIOTHEQUE GENERIQUE D’EXECUTIF indépendante de l’architecture (syndex.m4x) Génération automatique du code processor_( opr1, .) semaphores_(s_empty…) alloc_(type_in/calc...) thread_(comr1a) pre0 (s_empty) loop_ sucF(s_full) send(in/calc) preE(s_empty) endloop_ endthread_ main_ in_ini( ) spawn_thread(com1ra) sucE(s_empty) in(in/calc) preF(s_full) in_end ( ) endmain_ endprocessor_ Executable1 MACRO PROCESSEUR COMPILATEUR src Executable2 BIBLIOTHEQUE de macros spécifiques à l’application (nomAppli.m4x) BIBLIO. De Fonctions spécifiques à l’application (fonctions.c ou .o)

Architecture reconfigurable ( Cible FPGA) : Modèle algorithme (1/2) retard filtre adap Graphe Factorisé Conditionné de Dépendance de Données (GFCDD) adap gensig sub filtre visu coeff Hierarchie capture écran d’un GFCDD dans SynDEx Hierarchie + Conditionnement

Architecture reconfigurable ( Cible FPGA) : Modèle algorithme (2/2) [3] [3] P [1] Vect Vect [3] [3] diff. [3] [3] [1] [3] P [1] join [3] visu P visu [3] [3] [3][3] Mat [3][3] fork Mat [1] [3] P FF1 [3] [1] [3] x + [1] [3] fork [1] [1] [1] X + [1] [1] [1] FF2 [1] [1] [3] fork [1] [1] [1] iter. [1] init [3] Vect [3] fork fork [1] X + FF2 [3] [1] join visu [3][3] [3] fork Mat fork [1] iter. FF1 init

Optimisation du circuit (1/5) Recherche d’une défactorisation partielle de la spécification algorithmique respectant les contraintes surface/latence ×3 A D graphe d’algorithme : P J R B F 2 types d’implantations : ×3 A D 1) 3 fois P (temporellement) P Ms R A Réduit Surface Augmente Latence B Xs X P P P m R B 2) 3 fois P (spatialement) ×3 P A D A Augmente Surface Réduit Latence P Mp R P R B B Xp P t t2 t1

Optimisation du circuit (2/4) ×20 F C2 C3 C4 J C4 ×2 ×10 F C7 J R A F C1 J ×5 ×4 F F C5 J F C6 J Quelle frontière défactoriser ? FF2 FF1 FF3 FF4 FF5

Optimisation du circuit (3/5) Quelle frontière défactoriser ? FF2 FF1 FF3 FF4 FF5 flexibilité De combien la défactoriser ? Défactorisé par 2 : FF2’ FF2’’ Pb. NP difficile recherche par heuristiques (gloutonnes et de recuit simulé) FF1 FF3 FF4 FF5 Défactorisé par 3 : FF2’ FF2’’ FF1 FF2’’’ FF3 FF4 FF5

Heuristique (4/5) Δsurface(f, dff ,dMAX(f)) Entrée : graph GFCDD, contrainte temporelle latence Ct Sortie : graph optimisé  FF optimisées G’FCDD := GFCDD Tant que Latence(G’FCDD)>C: Pour chaque f Є chemin critique CC de GFCDD: Calculer défactorisation optimisée de f : dff(f,CC) Calculer pression de défactorisation : (f,dff(f)) G’FCDD := graphe où f qui à le  max. est défactorisé de dff(f,CC) Défactorisation optimisée dff(f,CC) : dff := 1 ; G’FCDD:=GFCDD Tant que (L(CC) Ct et dff  dMAX(f) ): dff := dff+1 G’FCDD := G’FCDD défactorisé de dff Retourne dff Pression de défactorisation Δsurface(f, dff ,dMAX(f)) (f,dff)= L(f, dMAX(f)) - max(L(f, dff ) ,Ct)

Optimisation du circuit (5/5) Consommateur côté lent (S) côté rapide (F) Producteur Côté lent (S) SP FC FP SC Heuristiques basées sur graphe de voisinage : Algorithme : [3] Vect [3] fork fork [1] X + [3] FF2 [1] join visu [3][3] [3] fork Mat fork [1] iter. FF1 init FF interface FF1 FF2 Déduction du graphe voisinage : SC FP SC FP SC FP SP FC SP FC SP FC Utilisé aussi pour : Synthèse chemin contrôle Interfaçage des opérations de types IP (opérations non combinatoires)

caracteristiques FPGA Génération de VHDL Architecture caracteristiques FPGA Algorithmes GFCDD Règles de transformations Adéquation heuristique graphe voisinage Estimation performances Génération VHDL chemin données chemin contrôle VHDL outils de Synthèse config. FPGA

caracteristiques FPGA Circuit reconfigurable (Cible FPGA) : Bilan Architecture caracteristiques FPGA Algorithmes GFCDD Optimisation compromis surface/latence des boucles Synthèse du chemin de contrôle et chemin de données Génération de code VHDL Développement du logiciel SynDEx-IC (ESIEE) Adéquation heuristique graphe voisinage Estimation performances CATURE SYNDEXIC Génération VHDL chemin données chemin contrôle VHDL outils de Synthèse config. FPGA

Contexte : nouvelles architectures hétérogènes (SoC/SoPC) Multiprocesseurs on a Chip : OMAP, DaVinci, CELL 1x PowerPC (64bits), 8 x Synergistic Processor Element (128bits SIMD)

Architectures parallèles Objectifs Architectures parallèles Dédiés (dites mixtes) (reconfigurable + programmable) Algorithmes (Graphe flot de données) Architectures multiprocesseurs (Graphe d’architecture) Il faut étendre : modèle algorithmes modèle architecture modèle implantation Développer de nouvelles : heuristiques d’optimisation techniques d’estimation perf. techniques de génération VHDL communications mixtes Implémentation logiciel : SynDEx-IC Adéquation (heuristiques Estimation performances Adéquation (heuristiques pour circuits) Estimation performances Génération automatique d’exécutifs distribués Génération automatique circuit (VHDL) Cible CIRCUITS FPGA Cible ARCHITECTURES MIXTES

Contexte : nouvelles architectures hétérogènes (SoC/SoPC) Multiprocesseurs on a Chip : OMAP, DaVinci, CELL {FPGA + Cœur(s) Processeur(s)} on a Chip bloc « calcul » élémentaire

Contexte : nouvelles architectures hétérogènes (SoC/SoPC) Multiprocesseurs on a Chip : OMAP, DaVinci, CELL {FPGA + Cœur(s) Processeur(s)} on a Chip Calc1 bloc « calcul » élémentaire bloc « calcul » élémentaire bloc « calcul » élémentaire bloc « calcul » élémentaire bloc « calcul » élémentaire bloc « calcul » élémentaire Calc2 bloc « calcul » élémentaire

Contexte : nouvelles architectures hétérogènes (SoC/SoPC) Multiprocesseurs on a Chip : OMAP, DaVinci, CELL {FPGA + Cœur(s) Processeur(s)} on a Chip Calc1 Calc2

Contexte : nouvelles architectures hétérogènes (SoC/SoPC) Multiprocesseurs on a Chip : OMAP, DaVinci, CELL {FPGA + Cœur(s) Processeur(s)} on a Chip Exemples : Cœurs en « dur » Xilinx Virtex II Pro (2 PowerPC_405 300Mhz + FPGA) Excalibur (1xARM922 200MHz + FPGA 1Mportes) Cœurs « logiciel » NIOS (Altera) Microblaze, PicoBlaze (Xilinx) IP libres (opencore) ou commerciales

Circuit reconfigurable (FPGA) : Modèle d’architecture Modéliser FPGA pour : exploiter parallélisme intra-composant du FPGA, définir l’allocation modéliser les communications en mixte, prédire les performances  définir nouvelles heuristiques d’optimisation FPGA : Ensemble de blocs élémentaires configurables, de registres (mémoires), réseaux d’interconnexions configurables Sous-ensemble configuré forme un opérateur dégénéré (opérateur exécute séquentiellement des opérations de calculs) dans AAA, FPGA = un seul opérateur dégénéré (opr capable d’exécuter un seul type d’opération du graphe d’algorithme) pb . : trop restrictif car FPGA = plusieurs opérateurs dégénérés

Circuit reconfigurable (FPGA) : Modèle d’architecture Nouveaux sommets (modèle architecture) : 1 bloc non configuré = 1 opérateur élémentaire configurable (Opreconf) capable d’exécuter une seule opération élémentaire (AND, OR, LUT…) FPGA initialement décrit par le graphe : GFPGA=(SOPReSreg,R) Opre Opre’ (idem registres Sreg) Ensemble de blocs configurés + registres + réseaux = 1 opérateur dégénéré (Oprd : capable d’exécuter un seul type d’opn de Gal) configuration

Circuit reconfigurable(FPGA) : Architecture formalisation Graphe algorithme Gal=(O,D) Graphe architecture Gar = (S,A) avec S=SoprScom  Smem  Sbus Soprd Implantions de Gal sur Gar : (Gal, Gar) (Gal’,Gar’) GFPGA=(SOPReSreg,R)  GFPGA’=(S’OPReS’reg,R’) (configuration) avec R’ R et S’OPReS’reg  SOPReSreg (sous-graphe) FPGAconfiguré = (SOprD ,R’) et Oprd  (GFPGA) ) Nouvelles / modifs applications : Configuration FPGA  : SOprD  SOPRe Contrainte placement : O  (Scal) (avec Scal = SoprScom Soprd ) Distribution  :O  Scal , … Rroutage  Rdistribution  Rcommunication  Rordonnancement  Rconf

Circuit reconfigurable (FPGA) : Modèle d’architecture bloc « calcul » élémentaire logique R Modélisation d’un « bloc logique » : opérateur élémentaire OPRe : OPRe

Circuit reconfigurable (FPGA) : Modèle d’architecture OPRe R OPRd_A Exemple graphe d’implantation combinatoire (sans boucle et répétition) : OPRd_A R R OPRe OPRe R OPRd_D OPRe R OPRe R R OPRd_C R R OPRe R OPRe R R OPRe OPRe R OPRd_B R R R OPRe R OPRe R R OPRe OPRe OPRe R OPRe R R R R R OPRe OPRe

Circuit reconfigurable FPGA : Modèle d’architecture OPRd1 OPRd2 R OPRe Caractérisation : Nombre d’opérateurs élémentaires configurables disponibles dans un FPGA card (Sopre) Nombre d’opérateurs élémentaire pour réaliser un opérateur dégénéré card ( (Ooprd)) Latence d’un opérateur dégénéré (Oi,Ooprd)

caracteristiques FPGA Circuit reconfigurable (FPGA) : Bilan Algorithmes GFCDD Architectures multiprocesseurs (Graphe d’architecture) Architecture caracteristiques FPGA Adéquation heuristique graphe voisinage Estimation performances Adéquation (heuristiques distribution & ordonnancement) Estimation performances Génération VHDL chemin données chemin contrôle Génération automatique d’exécutifs distribués SynDEx-IC ESIEE SynDEx INRIA VHDL outils de Synthèse config. FPGA

Cible architectures parallèles dédiées (mixtes) Algorithmes GFCDD Composants programmables Composants reconfigurables (modèle unique) Adéquation mixte Heuristiques pour programmable Heuristiques pour circuits Génération VHDL synthétisable Génération d’exécutifs distribués synthèse communications

Architectures parallèles dédiées : Modèle d’implantation Un FPGA renferme plusieurs opérateurs dégénérés = parallélisme disponible « intra » Objectif : distribuer les opérations sur les opérateurs (inclus chaque opérateur dégénéré) Ajout de communications entre opérateurs et opérateurs dégénérés… entre opérateurs dégénérés = arcs (pas de SAM)

Architectures parallèles dédiés : Modèle d’implantation Communicateur : exécute séquentiellement les opérations de communication Implantation FPGA des communicateurs nouveau type de sommets (décrire l’allocation) Induit un ordre partiel d’exécution entre opérations distribuées sur le FPGA (mais pas forcément ordonnancées !) Extension modèle d’implantation (prédiction de performances)

Architectures parallèles dédiées : Communications SAM Algorithme : FPGA o1 o2 o3 o4 o5 opr1 R c1 S C Oprd1 Processeur o1 o2 s r Architecture : s r s r opr1 R c1 S C Oprd1 r s o3 r s o4 Graphe d’implantation : (sans extension des modèles, O2,O3, O4 de même type) r s o5

Architectures parallèles dédiées : Communications SAM Algorithme : o1 o2 o3 o4 o5 opr1 R c1 S C Oprd1 Oprd2 Oprd3 Processeur FPGA o1 o2 s r Architecture : s r s r o3 opr1 R c1 S C F o4 r s r s r s Graphe d’implantation : (O2O3O4 devient possible) o5

Architectures parallèles dédiées : Communications RAM SOBEL _IPIF DRAM (512 M) VGA Interface signal vidéo VDEC Application TR de TI sur Xilinx Virtex II Pro DCR Device Control Register Bus PLB Processor Local Bus (100 MHz) RS232 I2C Interrupt controller PLB2OPB Bridge PLB2DCR Bridge PowerPC 405 RISC CPU CORE UART JTAG_PPC OPB On-chip Peripheral Bus (100 MHz) JTAG S C Oprd3 Oprd1 Oprd2 S C R PPC405 Acqui. haut niveau Sobel cpy Affichage cpy

Architectures parallèles dédiées : Conclusion Bilan : Modélisation architecture, implantation, caractérisation Définition d’IP génériques de communication Validation « manuelle » en cours Perspectives : Implantation dans outils SynDEx-IC Étude d’heuristiques pour automatiser le partitionnement logiciel (programmable) / matériel (reconfigurable)

Annexes

I - Cible FPGA : Optimisation circuit (3/4) Tant que T<C: (T calculée, C contrainte Pour chaque f Є chemin critique: Déterminer défactorisation optimale; Déterminer rentabilité; Défactoriser la frontière la plus rentable; Fin Tant que Défactorisation optimale(f): défac(f):=1; Tant que f Є chemin critique & T>C: défac(f) := défac(f)+1; T-max(T’,C) Rentabilité = ΔSurface

I - Cible FPGA : Optimisation circuit : recuit simulé Notion de vecteur d’état : Trouver la solution initiale du système - S0 Trouver la valeur initiale du paramètre de contrôle - t0 Tant que N  60 faire Tant que M  iter faire X(J)=V(X(I)) - X(J) est la solution voisine de X(I); F=F(X(J))-F(X(I)) ; Si F < 0 alors X(I) = X(J); Sinon Si ( -exp(F/tk)) > Random(0,1) then Revenir à X(I): iter(k+1) =1.01*iterk ; t(k+1) = 0.9*tk ; X1 X2 X3 Xn Valeurs des défacteurs des ‘n’ frontières du graphe d’algorithme modélisé …. CHOIX ALEATOIRE X1 = 1 X2 = 1 X3 = 2 X4 = 1 X1 = 1 X2 = 3 X3 = 2 X4 = 1 F(X(I)): coût de X(I) F(X(J)): coût deX(J) S, si Tctr > t F(X) = S + k.(t - Tctr), si Tctr  t t – latence après défactorisation S – surface consommée après défactorisation

2) o1 sur opr2, candidats = o2 et o3 o2/opr1 ou opr2 : o3/opr1 ou opr2 : opr1 R c1 S C2 R Opr2 opr1 R c1 S C2 R Opr2 o1 o1 o2 o2 o2 s r o3 o3 o3 s r o2 opr1 c1 C2 Opr2 R S o1 3) o2/opr1, cand:o3/opr1 ou opr2 o2 opr1 c1 C2 Opr2 R S o1 o3 s r o4 4) o3/opr2, cand: o4/opr1 ou opr2 o3 s r o3