Résumé
La solution des systèmes électroniques embarqués
étant aujourdÆhui une composition judicieuse de matériel
et de logiciel, la méthodologie de développement utilisée
doit intégrer une démarche de co-design. Nous présentons
donc une démarche de co-design intégrée à la
méthodologie de conception MCSE. Cette démarche est caractérisée
par une approche système, une architecture cible hétérogène
et une méthode de partitionnement interactif basée sur une
évaluation des performances dynamiques par co-simulation. La technique
de co-simulation utilisée consiste à transcrire un modèle
de performance en VHDL. Le modèle de performance repose sur la composition
du modèle structurel de MCSE et dÆun modèle comportemental
qui décrit le comportement des fonctions du système sous la
forme dÆune composition dÆactivités dynamiques. Il est
macroscopique, non-interprété et évolutif. Pour effectuer
la transcription texte à texte du modèle de performance en
VHDL, nous avons implanté en Java un principe générique
de génération de code dans un générateur de générateurs
de code ou méta-générateur. Ce principe est basé
sur les concepts dÆanalyseur syntaxique, de méta-structure,
de template et dÆun langage dédié à la manipulation
de structures de données nommé Script. Les concepts du modèle
de performance, les règles de transcription en VHDL et le générateur
de code VHDL ont été validés à lÆaide de
deux exemples principaux: un serveur pour séquences audio-visuelles
proposé par le CCETT de Rennes et un système de communication
distribué.
Mots Clés: méthodologie - Co-Design
- partitionnement matériel/logiciel - co-simulation - modélisation
des performances - génération de code - méta-générateur
Soutenance de thèse
Diapositives
PowerPoint et commentaires
Manuscrit de thèse
Table des matières
- Introduction (12 pages)
- L'ACTIVITE DE CO-DESIGN
- Définition du terme co-design
- Les classes de systèmes concernées par le co-design
- La nécessité d'un nouveau cycle de développement
- Méthodologie pour le co-design
- MOTIVATIONS DE L'EQUIPE
- CONTEXTE DE CETTE THESE
- CONTRIBUTIONS
- PLAN DE LA THESE
- Méthodologie de co-design
et estimation des performances (38 pages)
- PRESENTATION DE LA METHODOLOGIE DE CO-DESIGN
- Rappel de la méthodologie MCSE
- Démarche pour la définition de la réalisation
- Démarche pour le co-design
- Bilan
- METHODES DE PARTITIONNEMENT
- Le partitionnement matériel/logiciel
- Le partitionnement automatique
- Le partitionnement interactif
- L'analyse des propriétés d'un partitionnement
- La méthode de partitionnement proposée
- TECHNIQUES DE CO-SIMULATION
- La co-simulation
- Les techniques multi-langages
- Les techniques mono-langage ou mono-modèle
- La technique de co-simulation utilisée
- GENERATION DE CODE
- Les langages dédiés à la manipulation de texte
- Technique des compilateurs
- Technique retenue pour la génération de code
- MODELISATION DES PERFORMANCES DES SYSTEMES
- Catégories de modèles de performance
- Modélisation par réseau de files d'attente
- Réseau de Petri stochastique
- Modélisation d'architectures
- PANORAMA DES MODELES ET OUTILS DE PERFORMANCES
- SES/Workbench
- Le modèle UVa/ADEPT
- RDD 100
- COSMOS
- Bilan
- CONCLUSION
- Le modèle de performance
de MCSE (34 pages)
- LES PERFORMANCES
- Définition
- Classification des performances
- CRITERES DE QUALITE D'UN MODELE DE PERFORMANCE
- LES CONCEPTS DU MODELE DE PERFORMANCE DE MCSE
- Analyse du modèle structurel
- Analyse du modèle comportemental
- Les concepts complémentaires pour les performances
- PRESENTATION GENERALE DU MODELE
- LA COMPOSANTE STRUCTURELLE DU MODELE DE PERFORMANCE
- Généricité et instanciations multiples
- Comportement macroscopique de la structure
- Utilisation de modèles
- LA COMPOSANTE COMPORTEMENTALE DU MODELE DE PERFORMANCE
- Un exemple de modèle comportemental
- Opération, activité élémentaire
- Composition d'opérations et d'activités
- Conditions d'évolution et actions
- Raffinement d'une activité et modèle réutilisable
- Attributs et paramètres du modèle de comportement
- EXEMPLE DE MODELISATION
- Modèle de performance pour le serveur
- Description textuelle du serveur vidéo
- CONCLUSION
- Transcription du modèle de
performance en VHDL (48 pages)
- TECHNIQUE POUR L'EVALUATION DE PERFORMANCE
- CHOIX DU LANGAGE VHDL
- MODELE DE SIMULATION RETENU POUR L'EMPLOI DE VHDL
- IMPLANTATION DE LA FONCTION D'ORDONNANCEMENT
- TRANSCRIPTION DU MODELE STRUCTUREL
- Transcription d'une fonction
- Transcription d'un port
- Transcription d'un événement
- Transcription d'une variable partagée
- Bilan sur la transcription du modèle structurel
- TRANSCRIPTION DU MODELE COMPORTEMENTAL
- Transcription d'un modèle de comportement séquentiel
- Transcription pour un parallélisme
- Transcription d'une activité raffinée
- Transcription pour l'activation conditionnelle
- Achèvement forcé d'activités
- Transcription des conditions d'activation
- Transcription des actions
- Bilan sur la transcription du modèle comportemental
- CONNEXION ENTRE ELEMENTS DE RELATION ET COMPOSANTS ACTIFS
- Utilisation d'un lien de connexion uni-dimensionnel
- Utilisation d'un lien de connexion bi-dimensionnel
- Problème des accès de niveaux hiérarchiques
différents.
- EXTRACTION DES RESULTATS D'UN MODELE DE PERFORMANCE
- EXEMPLE DE VALIDATION
- Résultats de simulation du modèle fonctionnel
- Simulation avec un modèle réaliste des disques
- CONCLUSION
- Le Méta-Générateur
MetaGen (40 pages)
- LA TECHNOLOGIE META-CASE
- NOUVELLE STRATEGIE DE DEVELOPPEMENT DES OUTILS
- ANALYSE D'UNE GRAMMAIRE
- Définition d'une grammaire
- Structure de données pour une grammaire
- Structure de données pour une solution
- SPECIFICATION D'UNE META-STRUCTURE
- GENERATION DU LOADER
- STRUCTURE INTERNE GENERIQUE DE CHAQUE OUTIL
- PRINCIPE DE GENERATION DE CODE
- Analyse des textes source et résultat
- Le concept de fichier Template
- Analyse des structures de données
- STRUCTURE ET FONCTIONNEMENT D'UN GENERATEUR
- Structure du générateur
- Fonctionnement du générateur
- DEFINITION DU SCRIPT
- Opérations sur les structures
- Instructions d'enchaînement
- Définition des variables
- Manipulations des variables
- Manipulations de liste
- Configuration d'un script
- SPECIFICATION DE LA GRAMMAIRE DU SCRIPT
- Syntaxe BNF de la grammaire du script
- Exemple de Script
- AUTOMATE D'EXECUTION
- Analyse de ScriptDs
- Principe d'exécution
- Implantation de l'automate
- Traduction d'un script en Java
- LA TECHNOLOGIE JAVA
- REALISATION DE L'OUTIL META-GEN
- Les classes d'objets
- L'interface utilisateur de l'outil MetaGen
- CONCLUSION
- Le Générateur VHDL
(36 pages)
- SPECIFICATION DE LA GRAMMAIRE VHDL
- Principe de fonctionnement de l'analyseur syntaxique utilisé
- Les conflits
- L'analyseur syntaxique obtenu
- LES TEMPLATES UTILISES
- CONCEPTION D'UN SCRIPT
- Structure de la fonction Génération
- PARCOURS ET ANALYSE DU MODELE MCSE
- Parcours du modèle structurel de MCSE
- Parcours du modèle comportemental
- Test de la partie analyse du script
- PARTIE GENERATION DU SCRIPT
- Règles de génération
- Difficultés rencontrées
- TEST DU GENERATEUR OBTENU
- INTERFACE UTILISATEUR DE L'OUTIL OBTENU
- AMELIORATIONS
- La réduction du temps de génération du code
VHDL
- Couplage avec l'outil d'analyse de trace
- Transcription VHDL en C et C en VHDL
- CONCLUSIONS
- Validation de la méthode
par des études de cas (30 pages)
- SERVEUR VIDEO TEMPS REEL
- Présentation de l'exemple
- Objectif de l'évaluation des performances pour cet exemple
- Modèle de performance du système
- Simulation du serveur en lecture
- Modélisation plus réaliste des disques
- Modélisation des performances du serveur avec des processeurs
- Bilan sur l'évaluation des performances du serveur vidéo
- SYSTEME DE COMMUNICATION
- Présentation de l'exemple
- Objectif de l'évaluation des performances pour cet exemple
- Le modèle fonctionnel
- Le modèle de comportement
- Co-simulation et résultats
- Bilan sur l'évaluation des performances du système
de communication
- CONCLUSION
- Conclusions et Perspectives (6 pages)
- BILAN DE LA THESE
- PERSPECTIVES
- Bibliographie
- Articles et publications co-signés
lors de la thèse
Last Modified: 04:10pm , May 18, 1998