{{{ COMPTE RENDU DE LA REUNION DU 16 Juin 2009 ----------------------------------------------------------------- A) Présentation: Interfaçage d'IP. Tanguy Risset a présenté la contribution que le CITI propose à COACH. Cette présentation est disponible sur le site http://yaka.ensiie.fr/coach. Le CITI propose d'intégrer à COACH un système pour interfacer un coprocesseur matériel à l'application tournant sur le SoC. Les problèmes essentiels sont: - comment alimenter efficacement le coprocesseur (profiter du mode busrt et des schémas d'échanges du coprocesseur). - comment interfacer le coprocesseur au logiciel pour ne pas avoir de driver système à écrire. Le CITI envisage de créer un DMA "intelligent" qui connaissant le schéma d'échange du coprocesseur avec l'extérieur optimise ceux-ci. La contrainte est que le coprocesseur doit avoir un schéma d'échange fixe, c'est à dire qui ne dépend pas des données qu'il reçoit. L'intégration de cet interfaçage à COACH a soulevé 2 problèmes: - COACH visant l'implantation d'une application dans un SoC sur FPGA. L'application est un réseau de tâches communiquant par l'intermédiaire de FIFO et le matériel visé est un sous-ensemble des composants SoCLib. De ce fait les communications sont déjà définies dans SoCLib (protocole et bibliothèque srl). Est-ce une bonne idée d'implanter un second schéma de communication? Après discussion, Tanguy n'a soulevé aucune objection pour utiliser le protocole physique srl dans le composant d'interfaçage ce qui fait que son utilisation sera transparente pour l'utilisateur final de COACH. - Autre question soulevée, ce composant est-il un concurrent du MWMR de SoCLib? En fait, la réponse est non. Les MWMR passent leurs temps à ce battre pour prendre les locks sur les FIFOs. Ce composant peut donc être vu comme un MWMR intelligent dans le cas où le schéma d'échange est statique. Ces 2 problèmes étant résolus, cette contribution apporte un plus au projet. ----------------------------------------------------------------- B) Présentation: Structures de GCC Dominique Heller a présenté les structures de données de GCC et comment GCC les chaîne et les optimisations qu'il fait sur chacune d'elle. Cette présentation est disponible sur le site http://yaka.ensiie.fr/coach. Il y a trois structures principales correspondant à: - arbre syntaxique (seulement pour le C). - arbre syntaxique abstrait - Control Data Flow Graph Sur chacune de ces structures GCC fait des transformations (construction des boucles, passage en SSA, élimination du branches morte, transformation polyédrique, ...) plus on avance, plus le modèle mémoire s'éloigne du source initial. GCC est très configurable. Chaque transformation et chaque traitement peut être vu comme un module, que l'on peut activer ou désactiver par un fichier de configuration. On peut également ajouter facilement des modules. Il est donc aisé d'ajouter un module: 1) qui dumpe une des structures après avoir fait les optimisations désirées 2) qui est un outil de HLS et travaille directement sur les structures de GCC. Le problème du 1) est où s'arrête-t-on dans GCC et on revient problème du format (au sens sémantique) commun des outils de COACH. Le 2) a les avantages suivants: a) un outil de HLS de COACH peut s'intercaler où il veut dans la compilation GCC; b) le format d'échange est tout défini, c'est les structures de données de GCC. Mais il soulève aussi de sérieux problèmes: a) Lourdeur les structures de données de GCC sont complexes; b) une fois qu'une version de GCC aura été choisie, il sera difficile d'en changer si ses structures sont modifiées; c) difficulté de repasser d'un CDFG à un AST (sens inverse des phases GCC); d) Si une information n'est pas prévue dans les structures de données de GCC (tel le cycle d'une opération) impossibilité de l'ajouter. ----------------------------------------------------------------- C) Actions pour la réunion du Jeudi 16 Juillet Pour tous, réfléchir au format d'entrée et l'interfaçage avec GCC. Pour cela voir les 2 papiers sur graphite envoyés par Philippe et sur le site HTTP. Paul, Christophe et Ivan doivent envoyer à Dominique un bench pour qu'il dumpe ce que GCC en fait à différents niveaux. L'analyse de ces dumps et de ces benchs seront fait pendant la réunion de Juillet. ----------------------------------------------------------------- }}}