Facebook EmaiInACirclel
Développement front-end, back-end

Etude de cas ES : évaluation de la précision des systèmes numériques en arithmétique virgule fixe

PentaGuy
PentaGuy
Blogger

Pour bien mener une activité de R&D, il est nécessaire de bien positionner les problématiques de recherche fixées par rapport au contexte opérationnel du domaine d’activité et son utilité ainsi que par rapport à la littérature scientifique existante. Ceci fait parti des tâches fondamentales lors de la constitution d’un dossier CIR. Dans ce cadre, je vais présenter ci-dessous un sujet de recherche concernant l’évaluation de la précision des systèmes numériques en arithmétique virgule fixe. Je vais tout d’abord présenter le contexte du sujet qui conduira à constituer l’état de l’art. Ensuite, j’expliquerai l’utilité de l’arithmétique en virgule fixe par rapport celle en virgule flottante.

De nos jours, le traitement numérique de signal ne cesse d’évoluer pour répondre aux exigences actuelles de plusieurs domaines tels que les télécommunications, qui ont marqué une avancée impressionnante. De plus, les algorithmes de traitement de signal figurent dans différentes applications telles que le domaine médical, l’aéronautique, le multimédia et l’électronique grand public. L’évolution rapide de la technologie des semi-conducteurs a conduit à d’énormes innovations dans le domaine de la conception des produits électroniques pour implanter des applications de plus en plus complexes. Les équipements électroniques disponibles sur les marchés d’aujourd’hui sont caractérisés par une concurrence entre les grandes entreprises d’électronique pour les rendre plus efficaces et multifonctionnels. Cela s’est manifesté par l’évolution rapide des réseaux radio mobile particulièrement avec la quatrième génération (ou 4G). Par conséquent, les équipements de ces normes intègrent différentes technologies de communication numérique (WIFI, Bluetooth, GPS,…) qui cohabitent ensemble au sein du même équipement avec plusieurs applications fondées sur des algorithmes de traitement numérique de signal. En conséquence, ces grandes firmes d’électronique se trouvent face à un cycle continu de conception et de livraison des produits. A chaque itération de ce cycle, les concepteurs ont besoin de travailler avec une très haute complexité technologique en visant en même temps à fournir davantage de valeur ajoutée au consommateur dans les meilleurs délais.

Les smart-phones actuels avec la 4G sont un bon exemple d’équipement électronique de télécommunication, de traitement de signal et de semi-conducteurs et qui nécessite de très hautes capacités de calcul pour accomplir les diverses applications qui sont embarquées dans ces équipement et assurer les performances demandées pour la voix et le trafic des données. De plus, ils sont équipés de plusieurs outils de multimédia tels que les caméras par exemple pour enregistrer des vidéos et jouer de la musique en temps réel. Tout cela est conçu sous des contraintes d’énergie et de temps. L’exemple des smart-phones peut être généralisé pour la conception des équipements électroniques modernes afin de minimiser le coût du système en termes de surface de silicium, le profit de la consommation de puissance et le temps d’exécution sous contrainte de performances améliorées en termes de précision de calcul et de temps de réponse. Par conséquent, ces objectifs représentent (pour les concepteurs) un compromis entre les performances et le coût. Il est donc très important de faire les choix adéquats à chaque étape de conception afin d’assurer les meilleurs performances possibles du système global.

De plus, le temps de mise sur le marché (Time-to-market) de ces produits doit être réduit. Pour cette raison, la conception et le développement de ces applications nécessitent l’utilisation d’outils de haut-niveau qui interviennent dans toutes les étapes du cycle de développement des applications de traitement numérique de signal et de communication numérique. Le rôle de ces outils est de fournir aux concepteurs des facilités d’implantation pour choisir la meilleure architecture à implémenter en permettant de passer d’un haut niveau d’abstraction à une caractérisation bas niveau.

Également, le choix des opérateurs utilisés pour implémenter ces algorithmes influence très largement le compromis coût/performance. Les opérateurs en arithmétique virgule flottante et en arithmétique virgule fixe sont les deux choix les plus célèbres pour l’implémentation de toutes les opérations arithmétiques. Il convient de préciser que l’implémentation en arithmétique virgule fixe possède l’avantage d’une consommation de puissance inférieure à celle en arithmétique virgule flottante, mais aussi elle est marquée par une latence plus courte et des surfaces significativement plus petites. Par conséquent, l’arithmétique en virgule fixe est un choix populaire pour l’implémentation des algorithmes de traitement numérique de signal (TNS) qui possèdent des paramètres de performances rigoureux à achever et qui demandent des puissances de calcul élevées.

Le processus de conception des algorithmes de traitement numérique de signal s’effectue selon plusieurs étapes. Le concepteur est ainsi amené à faire le choix approprié en considérant plusieurs options disponibles à chaque étape du cycle de conception de l’application. Un choix particulier qui conduit à l’amélioration des performances du système est invariablement associé à l’augmentation indésirable du coût du système. Par conséquent, la prise de décision d’un bon choix est réalisé par l’intermédiaire d’un nombre d’itérations de vérification avant d’arriver au choix optimal. Les différentes étapes de conception d’une application de traitement numérique de signal sont décrites par la figure ci-dessous.

La première étape de ce cycle est la définition du cahier des charges en spécifiant les différentes fonctions à accomplir par les systèmes conçus ainsi que les différentes contraintes architecturales du système par rapport à la consommation d’énergie et au niveau temporel. L’étape suivante correspond à la conception de l’algorithme et la spécification d’une description complète de l’algorithme qui est une tâche donnée dans le contexte de ma thèse.

A cette étape, des simulations sont effectuées pour vérifier les différents critères conçus à travers des outils tels que Matlab (Mathworks), Scilab (Inria). Ces simulations sont effectuées en utilisant l’arithmétique virgule flottante pour s’affranchir des problèmes de précision des calculs. Une fois l’algorithme conçu, celui-ci est décrit sous la forme d’un langage de programmation (C, C embarqué) et implanté dans le système embarqué. L’implantation peut etre logicielle ou matérielle à travers les solutions architecturales telles que ASIC, FPGA ou DSP. Ensuite, l’étape qui suit est la détermination d’une représentation convenable en virgule fixe. Cette tache est le centre d’intérêt de ma thèse.

Les contraintes de coût et de consommation des systèmes embarqués conduisent à l’utilisation de l’arithmétique en virgule fixe puisqu’elles sont moindres par rapport à l’arithmétique virgule flottante car les largeurs des données de cette dernière sont plus importantes qu’en format virgule fixe. Généralement, les données en virgule flottante sont codées sur 32 bits alors qu’en virgule fixe, elles sont codées sur 16 bits. Également, les opérateurs en virgule fixe sont moins complexes qu’en virgule flottante. Par contre, le temps de développement en virgule fixe est plus large car les formats des différentes données en virgule fixe doivent être optimisés et bien définis pour éviter le débordement au sein de l’application.

Par conséquent, une conversion de la logique virgule flottante vers l’arithmétique virgule fixe est effectuée. Cette tâche, longue, peut constituer 30% du temps d’implantation du système. De plus, elle conduit à de nombreuses erreurs et ainsi la représentation en virgule fixe doit garantir l’intégrité de l’application et satisfaire les contraintes de performance. Afin de répondre aux exigences du temps de mise sur le marché, cette conversion est automatisée à travers des outils de conversion automatique qui visent à répondre aux exigences de la précision pour maintenir les performances de l’algorithme tout en optimisant les coûts. Une fois qu’un format convenable de virgule fixe est sélectionné, le système est implémenté et une vérification des performances du système selon les critères de l’utilisateur est effectuée.

Si les résultats sont satisfaisants, la conception est clôturée, sinon, toutes les étapes à partir de l’optimisation en arithmétique virgule fixe doivent être répétées pour compenser les lacunes du format virgule fixe précédent. Le bloc d’implémentation n’est pas détaillé dans la figure 1 afin de mettre l’accent sur l’élément central de cette thèse. Dans la pratique, ce bloc est complexe et peut être séparé en plusieurs sous-blocs. Dans le cas d’une implémentation logicielle, il existe des compilateurs, tels que le compilateur GCC, qui sont spécifiquement optimisés pour des architectures de processeurs spécifiques.

Si le sujet vous intéresse, que votre entreprise entreprend des travaux de recherches liés à ces problématiques, Pentalog Institute peut peut être intervenir en soutien de votre démarche de R&D pour vous aider à concrétiser un projet, un produit, une solution. N’hésitez pas à prendre contact avec nous.

 

 

 


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.