-
-
-
-
-
-
-
HomeSite map
SoC/Offres d'emplois/Stages/2012-2013/ALSOC/ALMOS: Integration d'une pile de communication TCP/IP Print page

Proposition de stage LIP6

Année 2013

ALMOS : Intégration d’une pile de communication TCP/IP

 

CONTEXTE

Ce stage s’inscrit dans le cadre du projet Européen SHARP piloté par BULL, dont les partenaires français sont THALES, le LIP6 et le CEA/LETI. Ce projet vise la définition et l’implémentation d’une architecture de processeur many-cores utilisable dans des ordinateurs de type serveur, c'est-à-dire une architecture matérielle supportant la mémoire virtuelle, et fournissant un mécanisme de cohérence des caches garantie par le matériel.

 ALMOS (Advanced Locality Management Operating System) [1] est un système d'exploitation ouvert (open source) et dédié aux architectures many-cores de type cc-NUMA. Le développement d’ALMOS a démarré au LIP6 lors d’un premier projet Européen conjointement avec TSAR [2]. Il a été retenu pour piloter l'accélérateur de calcul TSAR dans le cadre du projet Européen SHARP. Le noyau distribué en mémoire partagée d’ALMOS dispose d’un certain nombre de mécanismes permettant de renforcer la localité des accès mémoire des tâches et de fournir une gestion scalable des ressources matérielles (cores et mémoires).

 Une première version de l’architecture TSAR, comportant 1024 cÅ“urs a été modélisée en langage SystemC, en utilisant la plate-forme de prototypage virtuel SoCLib [3] et un style de modélisation « au cycle près ». ALMOS a été déployé sur cette architecture et différentes applications logicielles fortement parallèles ont été exécutées en utilisant le simulateur de TSAR. Dans le processus de développement d’ALMOS, nous envisageons son déploiement sur trois autres cibles. La première : un prototype FPGA de TSAR ayant une dizaine de cores en cours de développement au LIP6. La deuxième : un prototype FPGA de TSAR ayant une centaine de cores en cours de développement chez BULL. La troisième : une machine AMD Interlagos ayant 64 cores disponible au LIP6. Dans cette optique, l’intégration d’une pile TCP/IP dans le noyau d’ALMOS est primordiale.

 

OBJECTIF

L’objectif de ce stage est d’intégrer dans le noyau d’ALMOS une pile de communication TCP/IP existante appelée LwIP [4]. Cette pile de communication est ouverte (open source) et largement utilisée dans le développement de systèmes embarqués comme dans le développement de prototypes de système d’exploitation pour la recherche. Parmi les protocoles pris en charge par LwIP : ARP, IP, ICMP, UDP, TCP, DHCP (client), PPP, DNS (client) et bien d’autres. LwIP est écrit pour être portable. Il s’agit d’un module autonome avec principalement trois interfaces. La première offre les services de haut niveau (Socket API [5]). La deuxième spécifie les services de bas niveau que le driver d’un contrôleur réseau doit fournir. La troisième interface spécifie les services à fournir par le noyau du système d’exploitation telles que la création de tâches, les primitives de synchroniserons inter-tâches et l’allocation mémoire. Le processus de portage et intégration de LwIP est très bien documenté [6].

 

TRAVAIL PROPOSÉ

L’intégration du LwIP dans le noyau d’ALMOS sera réalisée et validée en utilisant comme cible matérielle, le prototype virtuel de TSAR. Actuellement, deux modèles de contrôleurs réseau sont disponibles dans SoCLib. Le premier est un contrôleur Ethernet et il peut être connecté au réseau Ethernet de la machine hôte en utilisant la technique TAP [7]. Le deuxième est un contrôle capable de piloter des interfaces de type Gigabit Ethernet. Le travail à réaliser s'appuiera d’abord sur le premier (Eth). Une fois l’intégration est validée, le support du deuxième contrôleur (GbE) sera introduit. La validation de l’intégration de la pile LwIP dans le noyau d’ALMOS sera effectuée en utilisant des applications déjà disponibles pour cette pile [8].

 

Le stage se déroulera selon les étapes suivantes :

1. Étudier les trois interfaces de la pile LwIP et les étapes de portage/intégration.

2. Étudier l’abstraction et la gestion des périphériques dans le noyau d’ALMOS.

3. Étudier le fonctionnement et l’interface de chacun des deux contrôleurs réseau (Eth et GbE).

4. Spécifier le fonctionnement du pilote à développer pour le contrôleur (Eth).

5. Spécifier le fonctionnement du pilote à développer pour le contrôleur (GbE).

6. Développer et valider le pilote du contrôleur (Eth).

7. Réaliser et valider l’intégration de la pile LwIP dans le noyau d’ALMOS.

8. Développer et valider le pilote du contrôleur (GbE).

9. Valider le fonctionnement de la pile LwIP en utilisant le contrôleur (GbE).

 

ENCADREMENT

Ce stage sera encadré par Ghassan Almaless : ghassan.almaless(at)lip6(.)fr

 

RÉFÉRENCES

[1] Advanced Locality Management Operating System, https://www.almos.fr/trac/almos

[2] Tera-Scale ARchitecture, https://tmp-soc.lip6.fr/trac/tsar

[3] Bibliothèque de prototypage virtuel SoCLib, http://www.soclib.fr/trac/dev

[4] lightweight TCP/IP, http://lwip.wikia.com/wiki/LwIP_Wiki

[5] Interface socket, http://pubs.opengroup.org/onlinepubs/007908799/xnsix.html

[6] Intégration du LwIP, http://lwip.wikia.com/wiki/LwIP_Platform_Developers_Manual

[7] Universal TUN/TAP driver, www.kernel.org/doc/Documentation/networking/tuntap.txt

[8] Applications disponibles pour LwIP, http://savannah.nongnu.org/projects/lwip/

LIP6 LIP6-SoC LIP6 CNRS UPMC