Projet ANR-11-INSE-0008 – DEFIS : Conception de systèmes embarqués utilisant l'arithmétique virgule fixe
Programme : Ingénierie Numérique et Sécurité (INS) 2011
Année de financement : 2011
Coordinateur du projet : Monsieur Olivier SENTIEYS (UNIVERSITE DE RENNES I)
Partenaires : Commissariat à l'énergie atomique et aux énergies alternatives; INPIXAL; THALES; Laboratoire d'Informatique, de Robotique et de Microélectronique de Montpellier; Institut de Recherche en Informatique et Systèmes Aléatoires; Laboratoire d'Informatique de Paris 6
Montant : 966214.0 euros
Date de début : 2011
Durée : 40 mois
Résumé : De très nombreux systèmes embarqués intègrent des traitements mathématiques. Pour satisfaire les contraintes d’implémentation inhérentes aux systèmes embarqués, l’arithmétique virgule fixe est largement utilisée. Les applications sont conçues et simulées en virgule flottante, mais au final, elles sont implantées au sein d’architectures utilisant l’arithmétique virgule fixe. Le nombre limité de bits pour coder les données nécessite cependant une analyse détaillée de la dynamique des données et de la précision des calculs. Le codage en virgule fixe est une tache fastidieuse, longue et source d’erreurs qui ralentit l’implémentation des applications embarquées. Ainsi, la réduction du temps de mise sur le marché couplée à l’augmentation de la complexité des applications nécessitent des outils de développement de haut niveau permettant d’automatiser la conversion en virgule fixe. 
L’objectif principal du projet DEFIS est de proposer de nouvelles approches pour améliorer l’efficacité du processus de conversion en virgule fixe et de fournir un flot de conception complet permettant d’optimiser la spécification virgule fixe d’applications complexes. Les bénéfices obtenus avec ce flot en termes de temps de développement et de qualité de la solution générée seront démontrés à travers un ensemble d’expérimentations. Cette infrastructure permettra de réduire significativement le temps développement en automatisant la conversion en virgule fixe et de maitriser le compromis entre les performances (qualité) de l’application et le coût  de l’implémentation. De plus, ce flot garantira et validera le comportement numérique de l’application.  
Dans le flot DEFIS, l’application est décrite au niveau système à travers un ensemble de blocs pouvant être spécifiés à l’aide d’un code C utilisant des types en virgule flottante ou issus de blocs paramétrables. Afin de traiter une application complète, cette infrastructure composée de quatre modules suit une approche hiérarchique. Le premier module définit pour chaque bloc la contrainte de précision des calculs en fonction des performances globales (qualité) de l’application. Le second module correspond aux transformations au niveau algorithmique dont l’objectif est de trouver la meilleure structure de calcul. Le troisième module évalue la dynamique des données pour déterminer le nombre de bits nécessaire pour coder la partie entière. Deux types de méthode seront utilisés afin de garantir l’absence de débordements ou de limiter leur probabilité d’apparition. Finalement, le quatrième module détermine le nombre de bits pour la partie fractionnaire. L’objectif est d’optimiser la spécification virgule fixe pour minimiser le cout de l’implémentation pour une contrainte de précision donnée. Ce processus d’optimisation nécessite d’évaluer de nombreuses fois la précision des calculs. Les approches existantes proposées par les partenaires du projet vont être étendues et combinées pour obtenir une approche efficace, précise, et  supportant une large gamme d’applications.   
Après la détermination et l’optimisation de la spécification virgule fixe, l’infrastructure génère un nouveau code C intégrant des types virgule fixe. Ce code C est implanté dans les architectures ciblées à l’aide d’outils classiques. Trois plateformes sont considérées : un accélérateur SIMD conçu par Thalès et son outil de parallélisation associé, un FPGA associé à un outil de synthèse de haut niveau et un processeur (ARM) avec son compilateur C. L’infrastructure proposée sera validée sur deux applications fournies par les partenaires industriels. Les résultats, obtenus à l’aide de l’infrastructure développée dans ce projet, seront comparés avec une implémentation de référence fournie par les partenaires industriels. Cette référence a été optimisée manuellement. Pour analyser la qualité de notre approche, le gain en termes de temps de développement sera mesuré et le coût d’implémentation sera comparé à celui de la référence.