• No results found

NATUR I  NORGE

2.  KARTLEGGING OG AVGRENSING AV SEMI‐NATURLIG ENG

prototypage rapide qui permet de mettre en oeuvre une méthodologie de conception de circuits au niveau système. Cette méthodologie prône la réutilisation intensive d’IPs, ou composants virtuels de niveau algorithmique, synthétisés avec l’outil GAUT. Elle met en œuvre un flot d’outils de CAO électronique d’origines industrielles et académiques qui assistent les concepteurs lors des activités de spécification du système, de raffinement matériel automatique et de validation par exécution d’un prototype.

Plate-forme système

Plate-forme logicielle

Plate-forme

matérielle Calcul: DSP, FPGAComm.: CP, SDB

Outils Nature

des composants Cible

Algorithmes MCSE

GAUT

Modèle système exécutable Synthèse comportementale RTOS, API Interfaces VHDL Compilateur C/C++ Synthèse FPGA Composants logiciel ou matériel aptes à communiquer Câblage des prototypes

Exécution en temps réel d ’un prototype du système modélisé Plate-forme de

prototypage rapide

Figure 5-13 : Architecture de la plate-forme PALMYRE

Cette plate-forme est composée de trois sous plates-formes. Ce sont les plates-formes système, logicielle et matérielle dont le niveau d’abstraction et la finalité diffèrent.

La plate-forme système s’adresse à deux corps de métiers distincts : les concepteurs d’algorithmes et les architectes systèmes. Les premiers se focalisent sur les calcul numériques intensifs dédiés au traitement du signal et de l’image alors que les seconds assemblent les blocs précédemment conçus. La spécification de niveau algorithmique des IPs est automatiquement raffinée en une représentation de niveau HDL par l’outil GAUT. Elle permet aux concepteurs d’IPs de ne pas avoir à se soucier d’une implantation sur une cible FPGA ou ASIC particulière. Les architectes systèmes, grâce à l’environnement MCSE peuvent combiner les IPs en un modèle système, construire une architecture exécutive et placer le modèle sur l’architecture. Les performances qui résultent de ce placement modèle/architecture sont estimables par simulation. Le modèle est ensuite converti en une implantation exécutable sur les plates-formes logicielles et matérielles. Dans le cadre de cette plate-forme, notre contribution est triple.

Tout d’abord nous avons introduit dans l’outil GAUT la théorie des systèmes insensibles à la latence pour préserver les fréquences optimales de chacun des blocs synthétisés. Nous avons proposé une nouvelle architecture de wrapper de synchronisation que nous nommons

processeur de synchronisation. Nous avons prouvé ses meilleures performances en terme de

surface et de vitesse : des gains en surface de 90 % et des gains de l’ordre de 10 à 30 % en vitesse peuvent être atteints. Nous avons de plus adjoint aux circuits synthétisés par GAUT une nouvelle architecture d’unité de mémorisation multi-bancs qui permet de supporter une méthode d’optimisation inédite : le pipelining au niveau d’algorithme. Cette première contribution permet aux circuits synthétisés par GAUT de fonctionner à la fois dans les conditions les plus contraignantes, mais aussi de naturellement s’adapter aux irrégularités de l’environnement.

Deuxièmement, nous avons proposé une plate-forme logicielle qui repose sur une API C++ de communication. Cette API permet aussi bien d’exécuter un modèle système dans l’environnement MCSE que d’exécuter un prototype sur la plate-forme matérielle. Le raffinement du système en un prototype se fait par simple spécialisation des constructeurs C++ des canaux de communication. Ainsi, les algorithmes écrits par les concepteurs d’IPs au dessus de cette API sont-ils (à l’appel des constructeurs près) totalement indépendants de l’architecture exécutive. Cette API propose, en outre, deux modes de communication : le mode bloquant (synchrone) et le mode non bloquant (asynchrone). Nous avons proposé une méthodologie de caractérisation des performances de notre API qui permet de déterminer, pour une application donnée, quelles sont les conditions matérielles et logicielles optimales en terme d’allocation mémoire, de tailles de paquets à transmettre et de style de programmation à adopter (synchrone/asynchrone). Cette deuxième contribution permet d’exploiter au mieux les performances crêtes de la plate-forme matérielle tout en restant au niveau d’abstraction « composant » grâce à l’API de la plate-forme logicielle.

Troisièmement, nous avons étudié les contraintes en terme de puissance de calcul et de communication des applications de type DVB-DSNG, répertorié les méthodologies de prototypage rapides et inventorié les plates-formes de prototypage actuelles avant de proposer une plate-forme matérielle et de justifier ses meilleures performances. Nous avons sélectionné, pour cette dernière, des nœuds de calculs de type DSP C6x de Texas Instruments et des FPGA de Xilinx connectables entre eux à l’aide de liens de communication ayant des bandes passantes qui vont de 160 Mbit/s à 3,2 Gbit/s. Les performances crêtes de cette plate-forme ainsi que sa flexibilité et son extensibilité en font le meilleur candidat actuel pour le câblage « à la demande » de toute architecture exécutive sur laquelle doit s’exécuter un prototype temps réel d’une chaîne de traitement du signal de nouvelle génération. Cette troisième contribution dote notre plate-forme de prototypage rapide des moyens de calcul et de communication commerciaux les plus performants à l’heure actuelle.

Enfin, nous avons appliqué l’outil GAUT à la synthèse d’IPs dans le cadre du projet RNRT ALIPTA. Ce projet concerne la conception, l’intégration et la validation des blocs d’une chaîne de réception DVB-DSNG auxquels ont participé les sociétés Arexsys, Turbo-Concept, SACET et Thales Communications ainsi que l’ENSTB et le LESTER. Ces expériences ont démontré l’intérêt et l’applicabilité de nos travaux dans un cadre préindustriel qui nécessite la coopération de chercheurs, de concepteurs d’IP virtuels et d’intégrateurs systèmes.

Perspectives

Bien que les résultats obtenus conduisent à des résultats de bonne qualité sur les exemples traités, plusieurs améliorations et extensions peuvent être apportées comme nous l’avons mentionné à plusieurs reprises dans ce mémoire.

En ce qui concerne la plate-forme système, l’apport de la spécification de chaînes de traitement du signal grâce à un outil tel que Matlab/Simulink ne peut être ignoré. L’intégration de Matlab en tant qu’outil d’aide à la spécification d’algorithmes peut se présenter de deux façons différentes : tout d’abord en tant qu’interface de spécification graphique supplémentaire, mais aussi en tant qu’outil d’aide à la spécification système par composition d’algorithmes précédemment développés et synthètisés avec GAUT.

En ce qui concerne la plate-forme logicielle, une meilleure prise en compte des possibilités de calcul en temps partagé des RTOS pourrait être intégrée à l’API. En effet, les notions de styles de communications synchrone ou asynchrone peuvent être unifiées en un style unique (modèle synchrone car le plus simple à programmer) dont le comportement synchrone ou asynchrone serait alors géré de façon transparente par les pilotes de périphériques (drivers) de communication.

En ce qui concerne la plate-forme matérielle, l’adjonction de structures de communication de type bus ou de matrice de commutation permettrait de prototyper des systèmes dont la reconfiguration dynamique serait alors envisageable.

De nombreuses optimisations locales des circuits synthétisés peuvent encore être apportées. Il s’agit, par exemple, de l’extension de la notion de processeur de synchronisation au contrôle des unités de mémorisation et de calcul. Le circuit synthétisé par GAUT devient alors un ASIP (Application Specific Integrated Processor), c’est à dire un processeur spécialisé contenant une unité de traitement super-scalaire, pipelinée (au niveau algorithme) et optimisée pour un contexte donné fonction/cadence/entrées-sorties. De même, l’extension du processeur de

synchronisation aux architectures reconfigurables pourrait aisément se faire à l’aide de RAM au

lieu de ROM pour stocker les opérations. Par rechargement de la RAM d’opérations, le scénario de synchronisation serait alors adaptable à tout nouveau comportement de l’IP encapsulé.

Enfin, puisque GAUT nous permet maintenant de synthétiser des processus patients au sens des GALS (suspensibilité et insensibilité à la latence), il serait très certainement bénéfique de mettre en oeuvre de véritables réseaux de communication asynchrone. Ces derniers auraient comme avantage de réduire la surface silicium par élimination de toutes les stations de relais et feraient, par là même, entrer notre outil dans le domaine des SoCs GALS.

Bibliographie personnelle