previous up next contents
Précédent : Optimisation automatique dans Remonter : Actions de recherche Suivant : Expériences avec ALF

Architecture flexible de protocole haute performance

Participants : Walid Dabbous, Christophe Diot, Christian Huitema Avec l'apparition des réseaux à haut débit, la bande passante de la couche d'accès au milieu ne représente plus un goulot d'étranglement. Ce sont plutôt les mécanismes de traitement de données au niveau transport et présentation qui nécessitent une charge de calcul importante au niveau des processeurs. D'autre part, des applications multimédia distribuées sont en cours d'introduction. Ces applications ont des besoins variés qui ne correspondent pas nécessairement aux services offerts par les protocoles de communication standards ou du moins pas à la qualité de service fournie par ces protocoles. En même temps, les performances des stations de travail ont augmenté avec l'apparition des architectures à jeu d'instructions réduit (RISC) mais pas à la même cadence que les bandes passantes des réseaux dans les dernières années. L'accès mémoire est devenu coûteux par rapport au cache et aux registres, et cette différence devrait s'accentuer dans les années à venir. Outre les fonctions de contrôle, le traitement d'un protocole renferme aussi des fonctions de manipulation de données où les données sont lues en mémoire, traitées ou ``manipulées'' et sauvegardées de nouveau en mémoire éventuellement (e.g. codage de présentation, calcul du total de contrôle au niveau transport, chiffrement, compression). Nos propres observations, confirmées par des mesures de performances publiées par ailleurs, montrent qu'il est possible d'obtenir des gains de performance en intégrant les opérations de manipulation de données afin de minimiser les accès mémoires. Cette technique appelée ILP (Integrated Layer Processing ou Traitement en Couche Intégrée) devrait être complétée par un mécanisme visant plus de flexibilité : l'application devrait être impliquée dans le contrôle de transmission en effectuant une Mise en Unités de Données ``Application'' (Application Level Framing ou ALF) permettant d'appliquer tous les mécanismes de manipulation sur ces trames de façon intégrée i.e. en une seule fois si possible. La mise en oeuvre de ces concepts pour des applications différentes nécessite qu'on puisse générer pour chaque application une implémentation intégrée des mécanismes de protocoles fournissant le service requis par l'application. Afin d'automatiser ce processus, il est nécessaire d'avoir un langage de spécification qui permettra de décrire les besoins de l'application.

Notre approche s'appuie sur la spécification des besoins des applications en ESTEREL et sur un ``compilateur de protocoles'' appelé ALFred basé sur les concepts ALF/ILP et qui va générer automatiquement le protocole de communication adapté à l'application à partir de sa spécification.

Nous avons suivi le plan suivant :

-
Validation du choix du langage ESTEREL pour la spécification des besoins des applications.
-
Expérimentation de l'applicabilité du principe ALF à certaines applications.
-
Etude et expérimentation de la technique d'implémentation ILP.
-
Conception et développement du compilateur de protocoles ALFred.


previous up next contents
Précédent : Optimisation automatique dans Remonter : Actions de recherche Suivant : Expériences avec ALF