-
-
-
-
-
-
-
HomeSite map
SoC/Jobs offers/Internships/2012-2013/ALSOC/Modélisation et remontée au modèles haut niveau des informations de simulation Print page

Modélisation et remontée au modèles haut niveau des informations de simulation

Contexte

La conception orientée modèles des systèmes embarquées complexes est à présent une pratique courante pour le développement de la partie logicielle de ces systèmes. A contrario, les aspects matériels de ces systèmes sont plus rarement conçus avec ces approches à base de modèle. Ainsi, la pratique courante repose davantage sur l'utilisation de techniques de description du matériel à des niveaux d'abstraction différents : description de niveau TLM-DT (niveau transaction à temps distribué), description de niveau CABA (Cycle Accurate/Bit Accurate), description de niveau RTL (Register Transfer Level), par exemple. Les deux aspects logiciels et matériels sont ainsi décrits et conçus en parallèle avec des techniques différentes, avec une phase intégration commune à la fin du cycle de développement. Cette intégration consiste généralement en la validation du logiciel sur l'architecture cible, ce qui permet à la fois d'identifier d'éventuelles erreurs de codage et de conception au niveau logiciel et matériel.
Bien entendu, il serait préférable de pouvoir évaluer le logiciel aussitôt que possible sur une architecture matérielle réaliste, et ce avant que le code complet ait été réalisé. L'environnement AVATAR développé par Telecom ParisTech est une solution orientée modèles pour l'analyse et la conception de logiciels embarqués. AVATAR repose sur des diagrammes SysML pour décrire les  aspects logiciels du système, ainsi que les propriétés de sureté de fonctionnement et de sécurité devant être respectées par le système. AVATAR est implémenté par l'outil TTool, logiciel libre, qui permet de réaliser de façon graphique des modélisations AVATAR, et de simuler ou de vérifier formellement les modèles avec une approche de type presse-bouton. Notons que ces simulations et ces vérifications sont réalisées sans architecture matérielle cible.

L'environnement AVATAR comporte aussi un générateur de code. Ce dernier repose sur une transformation du modèle de conception vers un code C-POSIX, amené à être linké avec une librairie logicielle AVATAR, avant d'être exécuté. Cette exécution peut se réaliser soit sur une plate-forme locale, soit sur cible, soit enfin sur une plate-forme de prototypage de type SoCLib.
SoCLib est une bibliothèque de modèles de composants faisant partie
d'une architecture à mémoire partagée et basée sur le protocôle VCI (Virtual Component Interconnect) séparant la fonctionnalité des composants de leur communication.
Le département SoC du LIP6 est le principal porteur de ce projet, auquel participent entre autres en tant que partenaires industriels Thales et ST microelectronics et en tant que partenaires academiques une grande partie des laboratoires de micro-électronique francais. SoCLib est issu d'un projet ANR au début des années 2000.
Les composants sont écrits en SystemC; ils sont gratuitement accessibles, sans pourtant fournir de modèles synthétisables de niveau RTL. La simulation se réalise à un niveau de détail très important, notamment lors de l'utilisation des simulateurs d’instructions de processeurs  ou lors de la simulation du comportement des mémoires caches.

Une première contribution de lien modèles logiciels - SoCLib a été faite par Telecom ParisTech. La contribution consiste principalement dans une approche presse-bouton pour utiliser SoCLib depuis TTool : génération du code depuis les modèles, compilation pour SoCLib, lancement de SoCLib.  De plus, les modèles UML sont animés pendant l'exécution du code issue de TTool sous la plate-forme SoCLib.

Contributions dans le Cadre du Projet LIP6

Le stage se déroulera dans le cadre d'un projet financé par le LIP6.
L'intérêt pour le LIP6 d'intégrer une plate-forme de conception logicielle de systèmes embarqués est d'ouvrir SoCLib à une communauté du développement logiciel habituellement peu encline à utiliser les plates-formes de prototypage. Pour arriver à cet objectif, nous proposons de réaliser les points suivants dans le cadre du projet proposé :

  • Plate-forme matérielle. La description actuelle de la plateforme matérielle (la topcell) est écrite à la main en SystemC. Même s'il est souhaitable de proposer une lisibilité et un contrôle détaillée au développeur expert qui participe activement au développement des composants, il serait judicieux, afin d'élargir le public d'utilisateurs, de proposer une géneration de topcell à partir d'une interface graphique. On pourrait ainsi partir d'un modèle de plate-forme générique, basé sur des composants validés et testés faisant partie du coeur de SoCLib puis le paramétrer et élargir par des composants spécifiques.
  • Déploiement. Les informations de déploiement sont limitées au niveau de TTool, obligeant ainsi l'utilisateur de TTool-SoCLib à saisir manuellement la configuration de la plate-forme de prototypage. Nous proposons ainsi d'intégrer à TTool un diagramme de déploiement autorisant la description d'une plate-forme matérielle à partir de bibliothèques de composants SoCLib dont l'assemblage aura été dûment testé. A partir de ces informations de déploiement, il sera possible de décrire graphiquement la plate-forme de prototypage, de mapper les composants logiciels sur les processeurs d'exécution, et les objets logiciels notamment les canaux de communications sur les segments de la mémoire, puis de générer automatiquement la configuration de la plate-forme.
  • Applications de type task farm.Une classe d'applications qui est particulièrement intéressante dans ce contexte est celle des applications de télécommunication à haut débit, fortement parallèles et à des exigences de débit très élevées. Ils utilisent des canaux multi écrivain multi lecteur qui font à ce jour partie intégrante de la manière dont on écrit des applications à déployer sur des plate-formes SoCLib. On souhaite prouver leurs propriétés de manière formelle, tâche ardue pour ce type de communications qui ne sont pas point-à-point et qui ne garantissent pas l'ordre des lectures et écritures. L'approche TTool/AVATAR n'intègre pas actuellement de facilité pour décrire des applications possédant de nombreuses tâches identiques. Nous proposons de simplifier la saisie multiple des tâches, tant au niveau des modèles de conception qu'au niveau des nouveaux modèles de déploiement. Le générateur de code de TTool sera adapté en conséquence.
  • Exploration d'architecture. L'environnement TTool/AVATAR n'a pas été conçu à des fins d'exploration d'architectures. Néanmoins, le fait d'y ajouter un support permettant l'exécution de logiciel sur une plate-forme de prototypage ouvre de nouvelles perspectives, et en particulier celle d'expérimenter plusieurs solutions de mapping des tâches logicielles sur des processeurs. L'environnement SoCLib/DSX (Design Space eXplorer) pourrait être utilisé à cet effet. En fait, la recherche sur l'exploration de l'espace de conception pour un spectre large d'applications, essentiellement de flux vidéo et de télécommunications, fait partie du travail de l'equipe ALSOC.Cette partie du projet sera essentiellement prospective, et n'amènera pas a priori à la réalisation de nouveaux développements.
  • Animation de modèle. Sous TTool, l'animation du modèle lors du prototypage est réduite à la réalisation d'un diagramme de séquences, et non à l'animation complète des machines à étas des entités logiciels. Cela complique bien entendu la recherche des chemins ayant conduits aux problèmes. De plus, l'animation devra être étendue aux diagrammes de description de la plate-forme matérielle : montrer de façon graphique la charge des processeurs en cours de simulation, par exemple. Un nombre de travaux à ce sujet a déjà été réalisé récemment du côté ALSOC, basé sur l'analyse des traces des communications VCI, comme l'obtention des statistiques très précises l'état de remplissage des canaux de communication dans le temps, le comportement du cache, et le traffic sur les interconnects.

Stage Inter-Laboratoire

Le stage de six mois au LIP6 permettra dans un premier temps de travailler sur les aspects modèles cités ci-dessus : modélisation de la plate-forme, modélisation du déploiement, remontée au modèles des informations de simulation bas niveau. La génération de code de la plate-forme se réalisera dans un deuxième temps, et selon l'avancée du stagiaire. Enfin, l'aspect exploration sera traité de façon prospective.

Le stage sera co-encadré par Daniela Genius (LIP6) et Ludovic Apvrille (Telecom ParisTech). Il sera localisé au LIP6 et indemnisé à 436 Euros/mois.

Coordonnées des encadrants :
   

Daniela Genius (daniela.genius@lip6.fr)
LIP6 équipe ALSOC
Université Pierre et Marie Curie, 4 Place Jussieu, 75005 Paris 
Tel.: 01 44 27 71 24

Ludovic Apvrille (ludovic.apvrille@telecom-paristech.fr)
LabSoC, département COMELEC
Campus SophiaTech,
450 Route des Chappes, 06410 Biot
Tel.: 04 93 00 84 06

LIP6 LIP6-SoC LIP6 CNRS UPMC