| 1 | |
| 2 | {{{ |
| 3 | COMPTE RENDU DE LA REUNION DU 16 Juin 2009 |
| 4 | |
| 5 | ----------------------------------------------------------------- |
| 6 | A) Présentation: Interfaçage d'IP. |
| 7 | |
| 8 | Tanguy Risset a présenté la contribution que le CITI propose |
| 9 | à COACH. Cette présentation est disponible sur le site |
| 10 | http://yaka.ensiie.fr/coach. |
| 11 | Le CITI propose d'intégrer à COACH un système pour interfacer |
| 12 | un coprocesseur matériel à l'application tournant sur le SoC. |
| 13 | Les problèmes essentiels sont: |
| 14 | - comment alimenter efficacement le coprocesseur (profiter |
| 15 | du mode busrt et des schémas d'échanges du coprocesseur). |
| 16 | - comment interfacer le coprocesseur au logiciel pour ne |
| 17 | pas avoir de driver système à écrire. |
| 18 | Le CITI envisage de créer un DMA "intelligent" qui connaissant |
| 19 | le schéma d'échange du coprocesseur avec l'extérieur optimise |
| 20 | ceux-ci. |
| 21 | La contrainte est que le coprocesseur doit avoir un schéma |
| 22 | d'échange fixe, c'est à dire qui ne dépend pas des données |
| 23 | qu'il reçoit. |
| 24 | |
| 25 | L'intégration de cet interfaçage à COACH a soulevé 2 problèmes: |
| 26 | - COACH visant l'implantation d'une application dans un SoC sur |
| 27 | FPGA. L'application est un réseau de tâches communiquant |
| 28 | par l'intermédiaire de FIFO et le matériel visé est un |
| 29 | sous-ensemble des composants SoCLib. De ce fait les |
| 30 | communications sont déjà définies dans SoCLib (protocole et |
| 31 | bibliothèque srl). |
| 32 | Est-ce une bonne idée d'implanter un second schéma de communication? |
| 33 | Après discussion, Tanguy n'a soulevé aucune objection pour |
| 34 | utiliser le protocole physique srl dans le composant |
| 35 | d'interfaçage ce qui fait que son utilisation sera transparente |
| 36 | pour l'utilisateur final de COACH. |
| 37 | - Autre question soulevée, ce composant est-il un concurrent |
| 38 | du MWMR de SoCLib? En fait, la réponse est non. Les MWMR passent |
| 39 | leurs temps à ce battre pour prendre les locks sur les FIFOs. |
| 40 | Ce composant peut donc être vu comme un MWMR intelligent dans |
| 41 | le cas où le schéma d'échange est statique. |
| 42 | |
| 43 | Ces 2 problèmes étant résolus, cette contribution apporte un plus |
| 44 | au projet. |
| 45 | |
| 46 | ----------------------------------------------------------------- |
| 47 | B) Présentation: Structures de GCC |
| 48 | |
| 49 | Dominique Heller a présenté les structures de données de |
| 50 | GCC et comment GCC les chaîne et les optimisations qu'il |
| 51 | fait sur chacune d'elle. Cette présentation est disponible sur |
| 52 | le site http://yaka.ensiie.fr/coach. |
| 53 | |
| 54 | Il y a trois structures principales correspondant à: |
| 55 | - arbre syntaxique (seulement pour le C). |
| 56 | - arbre syntaxique abstrait |
| 57 | - Control Data Flow Graph |
| 58 | |
| 59 | Sur chacune de ces structures GCC fait des transformations |
| 60 | (construction des boucles, passage en SSA, élimination du |
| 61 | branches morte, transformation polyédrique, ...) |
| 62 | plus on avance, plus le modèle mémoire s'éloigne du source |
| 63 | initial. |
| 64 | |
| 65 | GCC est très configurable. Chaque transformation et chaque |
| 66 | traitement peut être vu comme un module, que l'on peut activer |
| 67 | ou désactiver par un fichier de configuration. |
| 68 | On peut également ajouter facilement des modules. |
| 69 | |
| 70 | Il est donc aisé d'ajouter un module: |
| 71 | 1) qui dumpe une des structures après avoir fait les |
| 72 | optimisations désirées |
| 73 | 2) qui est un outil de HLS et travaille directement sur les |
| 74 | structures de GCC. |
| 75 | Le problème du 1) est où s'arrête-t-on dans GCC et on revient |
| 76 | problème du format (au sens sémantique) commun des outils de COACH. |
| 77 | Le 2) a les avantages suivants: a) un outil de HLS de COACH peut |
| 78 | s'intercaler où il veut dans la compilation GCC; b) le format |
| 79 | d'échange est tout défini, c'est les structures de données de GCC. |
| 80 | Mais il soulève aussi de sérieux problèmes: a) Lourdeur les structures |
| 81 | de données de GCC sont complexes; b) une fois qu'une version de GCC |
| 82 | aura été choisie, il sera difficile d'en changer si ses structures sont |
| 83 | modifiées; c) difficulté de repasser d'un CDFG à un AST (sens inverse |
| 84 | des phases GCC); d) Si une information n'est pas prévue dans les |
| 85 | structures de données de GCC (tel le cycle d'une opération) |
| 86 | impossibilité de l'ajouter. |
| 87 | |
| 88 | ----------------------------------------------------------------- |
| 89 | C) Actions pour la réunion du Jeudi 16 Juillet |
| 90 | |
| 91 | Pour tous, réfléchir au format d'entrée et l'interfaçage avec |
| 92 | GCC. Pour cela voir les 2 papiers sur graphite envoyés par Philippe |
| 93 | et sur le site HTTP. |
| 94 | |
| 95 | Paul, Christophe et Ivan doivent envoyer à Dominique un bench pour |
| 96 | qu'il dumpe ce que GCC en fait à différents niveaux. |
| 97 | L'analyse de ces dumps et de ces benchs seront fait pendant la réunion |
| 98 | de Juillet. |
| 99 | |
| 100 | ----------------------------------------------------------------- |
| 101 | |
| 102 | }}} |