| | 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 | }}} |