Projet : EP-ATR

previous up next contents
Précédent : Mises en oeuvre distribuées Remonter : Résultats nouveaux Suivant : Techniques d'algèbre MaxPlus pour l'évaluation


Sous-sections


   
Synthèse de circuits et conception de systèmes matériels/logiciels

 



Participants : Apostolos Kountouris, Paul Le Guernic, Jean-Christophe Le Lann, Christophe Wolinski.

Mots clés : Signal, programmation synchrone, conception conjointe matériel/logiciel composant matériel, synthèse de circuits, consommation des circuits .

Résumé :

L'an passé, nous avons mis en oeuvre une méthodologie de génération de circuits au niveau RTL. Ce niveau d'abstraction correspond bien à la nature flot de données de Signal. Cette étude, ainsi que diverses expérimentations sur des prototypes, se sont révélées extrêmement profitables [[32]]. Nous avons poursuivi l'exploration de cette méthodologie en y incorporant le critère de consommation des circuits.

Cependant, le format de compilation des programmes Signal sous forme de graphes ( GHDC) nous a paru encore plus riche de promesses. Il possède en effet des avantages indéniables que nous avons cherché à exhiber au cours de cette année. Il répond également à la nécessité de comparer l'approche synchrone avec les paradigmes de synthèse comportementale (dite aussi «synthèse de haut niveau») : à partir d'une description fonctionnelle de l'application, on cherche à générer une netlist de niveau RTL et son automate de contrôle. L'incorporation de contraintes réalistes se fait alors de façon naturelle.

Représentation interne pour la synthèse comportementale


La synthèse comportementale est menée à bien en différentes étapes : élaboration d'une représentation de la spécification, analyse flot de données, ordonnancement (généralement sous contraintes de ressources), allocation. Empruntant ses techniques à différentes disciplines, elle bénéficie d'avancées certaines, reconnues au niveau industriel. Toutefois, la qualité des circuits est souvent discutable. L'explication généralement avancée tient à la fois à la sensibilité de l'ensemble de la chaîne de développement à la description d'entrée, généralement sous forme impérative, ainsi qu'à la représentation conjointe du contrôle et des données. À l'instar des techniques d' ADD (assignment decision diagrams, U.C Irvine), nous avons montré que le principe d'assignation unique de Signal permet d'éviter le premier phénomène. Le «graphe hiérarchisé aux dépendances conditionnées» ( GHDC) est quant à lui une représentation idéale pour la résolution du second problème [[12]]. Le GHDC est constitué d'un ensemble de noeuds et d'arcs, étiquetés par des conditions d'existence, disponibles à l'issue du calcul d'horloges. Ces conditions (horloges) booléennes sont des gardes à l'exécution des opérations ainsi qu'à l'assignation de valeurs aux variables. L'ensemble de ces conditions est rassemblé sous forme d'une hiérarchie, représentant (partiellement) les relations d'inclusion d'événements. La génération du GHDC est naturelle à partir de Signal, mais peut être envisagée pour d'autres langages de type impératifs classiques. Ceci nous a permis d'effectuer des expérimentations sur divers benchmarks internationaux.

Optimisations fondées sur le résultat du calcul d'horloges : exclusion mutuelle, partage de ressources et réduction de l'espace de décision


Les expérimentations que nous avons menées autour de l'exploitation des résultats du calcul d'horloges se sont révélées très positives [[28],[30]]. Le calcul booléen effectué sur les événements spécifiés permet d'exhiber des propriétés d'exclusion mutuelle d'opérations. Une extension de ce calcul aux relations entre nombres entiers (inégalités) a été présentée. L'étape d'ordonnancement de ces opérations sous contraintes de ressources profite alors de l'efficacité de ce calcul : une même unité fonctionnelle est partagée entre plusieurs opérations. Nous avons ainsi pu réduire le nombre de pas de contrôle d'une application d'environ 50% [[29]]. Nonobstant son utilisation actuelle au seul partage d'unités fonctionnelles, ce même raisonnement sur l'exclusion mutuelle peut s'appliquer au partage d'autres objets : variables dans un programme, segments de code, etc.

Le classement hiérarchique des informations a également permis d'apporter une contribution à l'analyse des faux chemins [[27]]. Cette préoccupation intervient dans de nombreux domaines (test de logiciel, estimation du temps d'exécution au pire cas...). Cette analyse consiste à étudier statiquement l'accessibilité de noeuds destination du graphe à partir d'un noeud source. Dans notre représentation, chaque noeud et arc possédant une horloge, on peut établir l'équation booléenne correspondant à un chemin dans ce graphe et ainsi établir la validité de certains chemins. Convaincus par l'applicabilité de la compilation et la représentation intrinsèques du calcul d'horloges à diverses disciplines centrées sur la conception conjointe matériel/logiciel, nous poursuivons actuellement cette exploration.

Prise en compte du critère de consommation des circuits aux niveaux RTL et comportemental


La consommation des circuits est devenue en quelques années un paramètre fondamental de la conception. Elle trouve son origine essentiellement dans les charges/décharges des capacités parasites des portes logiques, provoquées par les basculements logiques des signaux d'un cycle à un autre (consommation dynamique). Cette activité est particulièrement importante au sein des unités fonctionnelles.

Il est parfois possible d'empêcher un tel phénomène, soit par insertion de bascules tranparentes (tranparent latches) à l'entrée des unités fonctionnelles, soit par désactivation de l'horloge maîtresse du circuit à l'entrée de certains registres. Le calcul d'horloges offre certains avantages dans son analyse : chaque signal porte une horloge qui indique son activité. Ceci signifie qu'il est possible de connaître statiquement les signaux utiles à un instant logique donné et d'appliquer leurs horloges comme gardes des dispositifs adéquats. Nous avons donc cherché à montrer que nous possédions dans le calcul d'horloges un outil idéal susceptible d'aider à automatiser cette tâche du concepteur [[33]].

L'insertion de bascules tranparentes, si elle est effectivement appliquée, requiert une grande attention quant au respect de différentes contraintes de conception : le chemin critique du circuit peut ainsi être modifié. La surface augmente également, ce qui limite parfois les effets escomptés en terme de consommation. Une technique prometteuse, qui s'affranchit d'une telle insertion, consiste à étudier et modifier les équations de contrôle du réseau de multiplexeurs. En effet, ces équations spécifient certes l'origine des signaux utiles sur lesquels les unités fonctionnelles vont opérer dans certains états de l'automate, mais induisent également un choix quant à l'origine des signaux inutiles transportés vers les unités fonctionnelles dont l'activité n'est pas nécessaire. Il est donc possible, en revisitant ce choix, de minimiser les basculements inutiles.

Cette interaction contrôle/chemin de données tend à reporter l'optimisation de consommation à des niveaux d'abstraction plus élévés (high level synthesis). Par une représentation adéquate de la spécification fonctionnelle, nous avons donc cherché à incorporer de telles préoccupations dans les transformations représentatives à ce niveau : ordonnancement sous contraintes, allocation des registres et bancs de registres, des communications... Ce travail se poursuit actuellement.



previous up next contents
Précédent : Mises en oeuvre distribuées Remonter : Résultats nouveaux Suivant : Techniques d'algèbre MaxPlus pour l'évaluation