************************************************************************************************************** Work package 1 : Specification de l'architecture logicielle de COACH et outils communs: TASK-1 LIP6+ALL Specification de COACH au niveau du concepteur de systeme: COACH est une boite noire, les entrées, les sorties, le flot de conception préconisé, Définition de l'architecture du MP-SoC et ses 3 mappings 0+6 LIP6 Livrable-1: un document TASK-2 LIP6+ALL Structure interne de COACH. 0+6 LIP6 Livrable: un document TASK-3 LAB-STIC+ALL Définition du language commun annoté (xfg: xlm flow graph) 0+6 LIP Livrable 1: V0 un document, une dtd 0+12 LIP Livrable 1: V1 un document, une dtd 0+18 Livrable 1: V2 expression du potentiel des boucles 0+12 LAB-STIC Livrable 2: VO gcc2coach, coach2c 0+18 LAB-STIC FI gcc2coach, coach2c 0+18 LIP6 Livrable 3: VO coach2systemc 0+24 LIP6 FI coach2systemc LAB-STIC : Livrable 4: V0 0+18 coach2vhdl V1 : 0+24 FI : 0+32 TASK-4 LAB-STIC+ALL Définition et description des cellules de base et de leur caractéristques. 0+6 LAB-STIC Livrable 1: un document 0+12 LAB-STIC Livrable 2: outil de caractéristion automatique ************************************************************************************************************** Work package 2 : Outils de conception systemes: TASK-1 LIP6 Mutek Operating sytem 0+12 LIP6 Livrable 1: OS pour Embedded System 0+30 LIP6 Livrable 2: OS pour HPC (driver PCI/X) et reconfiguration dynamique TASK-2 TIMA DNA Operating sytem 0+12 TIMA Livrable 1: OS pour Embedded System 0+30 TIMA Livrable 2: OS pour HPC (driver PCI/X) et reconfiguration dynamique TASK-3 LIP6+ALL Definition de l'entrée de CSG (Coach System Generator): la syntaxe d'entrée TCG, architecture, les primitives de communication entre taches (variable globale, canaux, tampon ping-pong). 0+6 LIP6 Livrable 1: document 0+12 LIP6 Livrable 2: Executable sans reconfiguration: gestion des 3 architectures. 0+30 TIMA+LIP6 Livrable 3: CSG avec reconfiguration +++++ Ajouter CDP-2-3 TASK-4 LIP6 Composants matériels de l'architecture SOCLIB + composants génériques 0+18 LIP6 Livrable 1: VHDL synthetisable des composants VCI : MWMR, IRQ. wrapper 0+18 IRISA? Livrable 2: wrapper SystemC VCI/AVALON 0+18 IRISA? Livrable 3: wrapper VHDL synthé VCI/AVALON 0+18 TIMA? Livrable 4: wrapper SystemC VCI/PLB 0+18 TIMA? Livrable 5: wrapper VHDL synthé VCI/PLB 0+18 CITI Livrable 6: VHDL synthetisable d'un composant VCI MWMR++ (DMA intelligent) 0+18 CITI Livrable 7: modèle SystemC d'un composant MWMR++ VCI(DMA intelligent) 0+18 LAB-STICC Livrable 8: VHDL synthetisable d'un composant spatio-temporel sans wrapper 0+18 TIMA Livrable 2: VHDL synthetisable des composants PLB :MWMR, IRQ. 0+18 TIMA Livrable 3: modèle SystemC des composants PLB :MWMR, IRQ. 0+18 IRISA? Livrable 4: VHDL synthetisable des composants AVALON : MWMR, IRQ. 0+18 IRISA? Livrable 5: modèle SystemC des composants AVALON :MWMR, IRQ. 0+18 CITI Livrable 6: VHDL synthetisable d'un composant VCI MWMR++ (DMA intelligent) 0+18 CITI Livrable 6: VHDL synthetisable d'un composant PLB MWMR++ (DMA intelligent) 0+18 CITI Livrable 6: VHDL synthetisable d'un composant AVALON MWMR++ (DMA intelligent) 0+18 CITI Livrable 6: modèle SystemC d'un composant MWMR++ VCI(DMA intelligent) 0+18 CITI Livrable 6: modèle SystemC d'un composant MWMR++ PLB (DMA intelligent) 0+18 CITI Livrable 6: modèle SystemC d'un composant MWMR++ AVALON(DMA intelligent) 0+18 LAB-STICC Livrable 7: VHDL synthetisable d'un composant spatio-temporel TASK-5 TIMA Composants matériels de l'architecture Xilinx 0+18 TIMA Livrable 1: modele systemC des composants MWMR, IRQ. 0+20 TIMA Livrable 2: VHDL synthetisable des composants MWMR, IRQ. TASK-6 IRISA Composants matériels de l'architecture Altera 0+18 IRISA Livrable 1: modele systemC des composants MWMR, IRQ. 0+20 IRISA Livrable 2: VHDL synthetisable des composants MWMR, IRQ. ************************************************************************************************************** Work package 3 : Outils de synthese front-end (polyedrique et ASIP) TASK-1 IRISA Extraction de motifs et regénération au format COACH annoté 0+18 Livrable 1: V0 Intégration manuelle des motifs 0+24 FI Intégration automatique des motifs (architecture-dépendant) TASK-2 IRISA Définition d'un modele simplifie de micro-architecture capable d'éxecuter des motifs issues de la tâche 1 0+12 Livrable 1: Modèle SystemC du MIPS extensible 0+18 Livrable 1: Modèle VHDL du MIPS extensible 0+12 Livrable 2: Modèle SystemC du NIOS extensible 0+18 Livrable 2: Modèle VHDL NIOS extensible 0+12 Livrable 3: Modèle SystemC du µblaze extensible ?? 0+18 Livrable 3: Modèle µBlaze extensible ??? TASK-3 IRISA Définition d'un modele complexe de micro-architecture 0+24 Livrable 1: Modèle SystemC du MIPS extensible 0+24 Livrable 1: Modèle VHDL du MIPS extensible 0+36 Livrable 2: Rapport d'evaluation TASK-4 LIP-ALL Exploitation des boucles Polyedriques 0+12 Outil d'ordonnancement 0+18 Outil d'exploration des transformations 0+24 generation du code xfg etendu V1 0+30 gestion de la memoire et contraction des tableaux 0+34 generation du code xfg etendu V2 ************************************************************************************************************** Work package 4 : Outils de synthese back-end (UGH, GAUT) TASK-1 LIP6/TIMA Adaptation de UGH a COACH 0+18 TIMA Livrable 1: executable(lire du xcoach) 0+18 TIMA Livrable 2: executable(ecrire du xcoach annote) TASK-2 LIP6/TIMA évolution de UGH. 0+18 LIP6 Livrable 1: executable UGH qui tient compte des primitives d'IO definies dans le WP2-T3 0+?? TIMA Livrable 2: executable UGH qui peut generer une architecture sans que les assignations des variables sur les registres soient explicites. TASK-3 LAB-STICC Adaptation de GAUT a COACH 0+18 Livrable 1: executable(lire du xcoach) 0+18 Livrable 2: executable(ecrire du xcoach annote) TASK-4 LAB-STICC évolution de GAUT 0+18 Livrable 1: prise en compte du modèle CDFG 0+?? Livrable 2: génération d'architecture multi-clock. 0+?? Livrable 3: synthése hierachique TTASK-5 LIP6 Calibrage de la fréquence des coprocesseurs 0+6 LIP6 Livrable 1: document 0+12 LIP6 Livrable 2: VHDL synthetisable de la FSM calibrable dynamiquement 0+20 LIP6 Livrable 3: logiciel de calibrage (cote OS et cote PC). ************************************************************************************************************** Work package 5 : Interlogiciel de communication PC/Accélérateur: TASK-1 LIP6+ALL Définition des protocoles de communication entre l'application qui tourne sur le PC et le TCG qui tourne sur l'accélérateur. 0+6 LIP6 Livrable 1: Document. TASK-2 LIP6 Outils d'aide au bi-partitionnement (mesure de l'efficacité) 0+12 LIP6 Livrable 1: Librairie C de communication contenant du code permettant d'estimer l'efficacite. (TASK inutile si bridge) TASK-3 ???? HW pour l'architecture SOCLIB 0+?? ???? Livrable: VHDL synthetisable d'un pont VCI/Avalon 0+?? TIMA Livrable: VHDL synthetisable d'un pont VCI/Bus-xilinx TASK-4 ???? Sofware pour HPC 0+?? ???? Livrable 1: driver PCI/X de IP Altera 0+?? TIMA Livrable 2: driver PCI/X de IP Xilinx 0+20 LIP6 Livrable 3: Implantation du protocole deifini en TASK-1 du cote PC/Linux et SOC. ************************************************************************************************************** --------------------------------------------------------------------------------- Annexe 1 Actions de base determinees lors d'une reunion LIP6/TIMA --------------------------------------------------------------------------------- HLS : UBS+TOUS *1) Définition des cellules et calibrage en fonction des cibles (WP1-T4) LIP6 *2) Calibrage de la fréquence des coprocesseurs TOUS *3) Définition de la représentation intermédiaire commune (WP1-T3) TOUS *4) Définition de la représentation intermédiaire annotée, en vue (WP1-T3) de génération de SystemC et VHDL UBS *5) gcc2xml-coach, xml-coach2c (WP1-3) - pilotage du front-end gcc LIP6 *6) xml-coach2SystemC (WP1-3) TIMA *7) xml-coach2VHDL (WP1-3) UGH: LIP6+TIMA *1) Extension des primitives de communication (WP2-T3) - variables globales, scalaires et tableaux - pipeline lecture/calcul/écriture en utilisant des primitives genre aio_read/aio_write/aio_return TIMA *2) génération automatique du DDP en fonction du comportement relacher un peu les contraintes syntaxiques (WP4-T2) 3) n'apparait pas dans les WP inclus implicite dans (WP4-T2 ou T1). TIMA+LIP6 *3) alléger la dépendance syntaxique entre le C et le DDP - associer un ensemble de variables à un RGF - ajout automatique des registres TIMA *4) Utilisation du xml à la place du front-end gcc actuel (WP4-T1) donc en pratique du xml-coach2vpn LIP6 *5) Génération du xml-coach annoté (WP4-T1) RECONFIGURATION DYNAMIQUE PARTIELLE: LIP6+TIMA *1) Introduction de la notion de conteneur : définition, (WP2-T3) structuration, fusion, ... Bitstream correspondants TIMA *2) Gestion de la reconfiguration dynamique partielle pour optimiser l'utilisation des ressources FPGA TIMA *3) Définition de la gestion des bitstreams avec des copies locales et stockage dans les hiérarchies mémoires LIP6+TIMA *4) Implantation sur DSX : connaissance de la notion de conteneur (WP2-T3-L3) TIMA+LIP6 *5) Impact sur l'OS (chargement dynamique d'applications ou de tâches) (WP2-T1/T2-L2) TOOLING FOR EMBEDDED CSG (Coach System Generator) : TOUS *1) Définition d'un gabarit architectural (WP1-T1) TOUS *2) Définition de 3 mappings possibles : (WP1-T1) soclib vhdl, xilinx et altera (en DSX) LIP6 *3) Introduire la notion de variables partagées dans DSX (WP2-T3) - qui a le droit d'écrire une variable partagée ? LIP6+TIMA *4) Choix et fourniture des OS (WP2-T1/2-L1) et HW (WP2-T4/5/5) qui va avec +TOUS - Etude des RAMLOCKS vs LL/SC - Controleur d'interruption - ... TOOLING FOR HPC LIP6 *1) Définition des protocoles entre l'OS du PC et l'OS du SoC (W5-T1) LIP6 *2) Outil de mesure de l'efficacité d'un bi-partitionnement de (W5-T2) l'application LIP6+TIMA+ *3) Connexion hw entre PC et SoC : pci-express (WP5-T3) IRISA bridge os/pci-express/avalon-plb/vci (nécessite différentes implantations pour les différentes cartes + drivers correspondant) LIP6 *4) Implantation du protocole et du loader : (WP2-T1/2-L2), WP5-T4-L3 lib unix, driver linux, driver os-soc --------------------------------------------------------------------------------- Annexe 2 --------------------------------------------------------------------------------- ____________________________________________________________________________________________________ |ICU Avalon |ICU Xilinx |MWMR Avalon |MWMR Xilinx |NIOS |MICROBLAZE | ________|_______________|_______________|_______________|_______________|_______________|___________| SystemC |IRISA |TIMA |IRISA |TIMA |? |? | ________|_______________|_______________|_______________|_______________|_______________|___________| VHDL |IRISA |TIMA |IRISA |TIMA |Altera |Xilinx | ________|_______________|_______________|_______________|_______________|_______________|___________| François charot (IRISA) : développeur des composants soclib compatibles Avalon ---------------------------------------------------------------------------------