Spécification, vérification et optimisation des systèmes temps réel ...
Spécification, vérification et optimisation des systèmes temps réel ...
Spécification, vérification et optimisation des systèmes temps réel ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Spécification, vérification <strong>et</strong><br />
<strong>optimisation</strong> <strong>des</strong> systèmes<br />
<strong>temps</strong> réel distribués embarqués<br />
Adéquation<br />
Algorithme/Architecture<br />
Yves.Sorel@inria.fr<br />
www-rocq.inria.fr/syndex
Applications<br />
■ Transports : avionique, automobile ...<br />
■ Traitement du signal : radar, sonar ...<br />
■ Télécommunications : GSM, vidéo<br />
audio conférence...<br />
■ Traitement d’images : télésurveillance,<br />
contrôle qualité ...<br />
■ ...
Caractéristiques<br />
■ Réactif : séquence d’événements<br />
stimulus - calculs - réaction<br />
■ Temps réel : contraintes<br />
latence cadence<br />
■ Calculs volumineux réguliers irréguliers<br />
<strong>et</strong>/ou proches <strong>des</strong> capteurs actionneurs<br />
Architectures multicomposants<br />
■ Embarqué : minimisation ressources
Méthode AAA<br />
■ Approche globale<br />
■ Modèle unifié : graphes factorisés<br />
– Algorithme : opérations / dépendances<br />
– Architecture : opérateurs / média comm.<br />
– Implantation : transformations de graphes<br />
■ Adéquation : implantation optimisée<br />
■ Macro-génération :<br />
– Exécutifs pour multicomposant<br />
– VHDL structurel pour synthèse de circuit
Spécification Algorithme<br />
■ Graphe de dépendances<br />
– somm<strong>et</strong> = opération<br />
– hyper-arc orienté = dépendance de données<br />
■ Factorisation de partie régulière/répétitive<br />
■ Factorisation d’une répétition infinie (réactif)<br />
Graphe flot de données conditionné<br />
■ Factorisation de parties irrégulières par<br />
homogénéïsation + paramétrisation
Vérification Algorithme<br />
■ Langages Synchrones<br />
– Esterel, Lustre, Signal, Statecharts ...<br />
– Spécification modulaire<br />
– Hors contraintes matérielles, indépendante<br />
<strong>des</strong> durées : <strong>temps</strong> logique<br />
– Réaction simultanée avec Stimulus<br />
– Vérifications :<br />
✜ cycles de dépendance<br />
✜ cohérence ordre sur événements<br />
✜ vérification de propriétés temporelles logiques
Spécification Architecture<br />
■ Graphe multicomposant : opérateurs<br />
connectés par média bidirectionnels<br />
■ Opérateurs : processeurs, ASICS<br />
■ Média : conducteurs, mémoire, arbitre<br />
– mém FIFO : communications synchrones<br />
– mém accès aléatoire : comm asynchrones<br />
– arbitre : synchronise <strong>et</strong> séquence comm
Implantation multicomposant<br />
■ Transformations <strong>des</strong> graphes<br />
– Calcul de toutes les routes inter-opérateur<br />
– Distribution : allocation spatiale (placement)<br />
✜ <strong>des</strong> opérations sur les opérateurs<br />
✜ <strong>des</strong> transferts de données sur les médias<br />
– Ordonnancement : allocation temporelle<br />
✜ <strong>des</strong> opérations sur chaque processeur<br />
✜ <strong>des</strong> transferts de données sur chaque média
Optimisation<br />
– Caractérisation opérations/opérateurs<br />
✜ mesures : durée, capacité mémoire,<br />
interférences calculs communications<br />
– Choix d’une transformation de graphe<br />
✜ qui respecte les contraintes <strong>temps</strong> réel<br />
✜ qui minimise les ressources<br />
– Heuristique gloutonne list-scheduling<br />
✜ prédiction comportement <strong>temps</strong> réel<br />
✜ calculs chemin/boucle critiques<br />
✜ contraintes de distribution
Logiciel CAO système : SynDEx<br />
– Supporte méthode AAA<br />
– Interface avec Langages Synchrones<br />
– Graphique interactif Unix X11 ou Windows<br />
– Edition graphes algorithme <strong>et</strong> architecture<br />
– Distribution <strong>et</strong> ordonnancement statiques<br />
– Visualisation diagramme <strong>temps</strong> réel prédit<br />
– Mesures performances <strong>temps</strong> réel<br />
– Génération exécutifs <strong>temps</strong> réel distribués
Synchronized Distributed Executives<br />
■ Sans interblocage <strong>et</strong> à faible surcoût<br />
■ Macro-code processeur-indépendant (m4)<br />
– extensible, facilement portable (C ... asm)<br />
■ Noyaux d’exécutif (macros) pour :<br />
– microcontrôleurs : MC68332, i80C196<br />
– DSP : Sharc, TMS320C40<br />
– microprocesseurs : 386, Transputer, C/Unix<br />
– médias : links, CAN, RS232, TCP/IP
Syntèse de circuit optimisée<br />
■ Transformation de graphes<br />
– Défactorisation (data parallélisme)<br />
– Refactorisation (pipe-line, r<strong>et</strong>iming)<br />
– Jusqu’à contraintes <strong>temps</strong> réel satisfaites<br />
■ Implantation de graphe factorisé<br />
– somm<strong>et</strong> factorisé = composant VHDL<br />
exécuté répétitivement sur diff. données<br />
– hyperarc factorisé = signal VHDL<br />
– composant/signaux contrôlés par<br />
compteurs/multiplexeurs/registres
Conclusion<br />
■ Temps de développement très réduit<br />
– sécurité de conception<br />
– prototypage rapide / implantation optimisée<br />
– exécutifs générés sans debug<br />
■ Perspectives :<br />
– multicontraintes <strong>temps</strong> réel : interruptions,<br />
ordonnancement principalement statique,<br />
dynamique uniquement quand nécessaire<br />
– synthèse automatique du contrôle/données<br />
– co-<strong>des</strong>ign : unification processeurs circuits