wiki:Reunion-2009-06
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.

-----------------------------------------------------------------

Last modified 15 years ago Last modified on Aug 24, 2009, 6:24:06 PM

Attachments (4)