28.11.2014 Views

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 ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!