Les utilisateurs de FPGA ont désormais de multiples
Transcription
Les utilisateurs de FPGA ont désormais de multiples
Architecture FPGA A P P L I C A T I O N Les utilisateurs de FPGA ont désormais de multiples options de processeurs Les cœurs de processeurs associés aux architectures des circuits programmables (FPGA) font désormais partie de la panoplie à la disposition des concepteurs de systèmes embarqués complexes. Ils offrent une flexibilité de plus en plus affirmée en termes de programmation tant au niveau matériel que logiciel. Revue de détail. AUTEUR Tony Storey, Digi-Key Electronics. E n 2002, Xilinx a été l’un des premiers concepteurs de circuits programmables à rapprocher matrice de FPGA et cœur de processeur avec le lancement de la gamme Virtex-II Pro. Ce circuit contient deux microprocesseurs PowerPC 400 implémentés dans la logique câblée, une initiative visionnaire qui a ouvert une voie efficace pour l’intégration de logiciels directement au cœur d’une structure programmable. Le processeur PowerPC fournit ici la base pour développer des automates complexes ou héberger des systèmes d’exploitation temps réel, autorisant la cohabitation avec un sous-système indépendant au sein d’une conception plus étendue. Aujourd’hui, la densité des FPGA est si forte qu’un seul composant programmable peut constituer le cœur d’un système embarqué complet. Avec, comme tendance forte ces dernières années, l’arrivée des architectures ARM en tant qu’alternatives pour les processeurs câblés embarqués. Microsemi a été le le premier à s’engager dans cette voie avec l’architecture SmartFusion associant un cœur ARM Cortex-M3 à une structure FPGA non volatile basée sur la technologie flash (figure 1). Une approche qui permet aux composants matériels du système d’être actifs dès que l’alimentation est restaurée, plutôt que d’avoir à attendre la configuration FPGA depuis la mémoire ROM externe. De leur côté, Altera et Xilinx ont opté pour le cœur ARM Cortex-A9, aux performances plus élevées, pour leurs principales familles de FPGA. Les systèmes sur puce (SoC) Cyclone d’Altera et les circuits Zynq de Xilinx intègrent des processeurs à double cœur leur permettant d’être utilisés en tant que moteurs de calcul hautes performances (figure 2). En plus d’apporter le Cortex-M3 au marché du FPGA, Microsemi a joué un rôle clé en lançant une version de FPGA dotée d’un microcontrôleur Cortex-M1, conçu de façon à ne pas requérir beaucoup plus d’espace silicium qu’un cœur 8051, bien qu’il soit basé sur un pipeline 32 bits plutôt que 8 bits. Comme le Cortex-M3, le Cortex-M1 exécute ici le jeu d’instructions Thumb2, amputé de certaines instructions et fonctionnalités. La structure d’interruption du Cortex-M1 a été simplifiée pour économiser de l’espace, avec la prise en charge de 32 sources d’interruption seulement contre 256 dans le Cortex-M3. Outils logiciels et licences : deux points clés La disponibilité d’outils de développement, notamment en open source, contribue aussi à apporter d’autres types de cœurs aux FPGA. Altera, Lattice et Xilinx ont par exemple chacun leur propre architecture de processeur de type Risc. Chaque architecture est optimisée pour une utilisation spécifique dans la structure logique programmable. En mettant à disposition leurs outils d’édition de liens et de compilation dans des environnements open source gratuits comme Eclipse, ces fournisseurs de FPGA permettent aux développeurs de faire évoluer facilement leurs propres architectures. Les considérations sur la nature des licences commerciales peuvent aussi avoir une influence dans le choix d’un cœur de processeur pour FPGA. En particulier lorsque l’objectif de la conception est de passer en production vers un circuit Asic à cellules standard. En effet, certains microcontrôleurs disposent d’une licence exclusivement dédiée à une utilisation sur un FPGA. Ce qui de facto limite les capacités de migration d’une conception vers un circuit Asic. A l’inverse, certains cœurs de microcontrôleur présentent l’avantage de bénéficier d’un support complet, du flux de conception jusqu’à l’implémentation, quel que soit le circuit final, ce qui simplifie considérablement la protection et l’insertion de blocs de propriété intellectuelle (IP) ainsi que les développements ultérieurs. Exemple de cette approche, le cœur de processeur 32 bits LatticeMico32 de Lattice, qui offre un ensemble de licences flexibles, encourageant une utilisation de l’architecture auprès des partisans des matériels en open source. Dans ce cas de figure, Lattice permet l’utilisation du processeur dans des conceptions pouvant migrer vers des circuits Asic fournis par des fonderies indépendantes, ou même vers d’autres architectures FPGA. Concrètement on peut notamment utiliser la gamme de cœurs Leon et l’OpenRisc 1200, qui sont des blocs de propriété intellectuelle open source basés sur l’architecture Sparc, initialement développée par Sun Microsystems. Ces cœurs qui occupent typiquement plus d’espace sur le silicium que des cœurs comme Microblaze de Xilinx ou Nios d’Altera (en moyenne 1,5 à 2 fois plus d’éléments logiques dans une architecture dotée de tables LUT à quatre L’EMBARQUÉ / N°12 / 2016 / 37 A P P L I C A T I O N Architecture FPGA 1 ARCHITECTURE DU FPGA SMARTFUSION Microsemi a été le premier, avec l’architecture SmartFusion, à associer un cœur ARM Cortex-M3 à une structure FPGA non volatile basée sur la technologie flash. entrées conventionnelles) offrent cependant une alternative en termes de flexibilité par rapport à des approches plus fermées. Vers du calcul à très haute performance Au-delà, la nature programmable des FPGA offre aussi aux concepteurs l’opportunité de développer des processeurs réellement personnalisés. Les architectures Cyclone SoC d’Altera et Zynq de Xilinx ont par exemple été spécifiquement développées en gardant cette vision à l’esprit, les deux familles présentant des bus d’entrées/sorties programmables pour le transfert massif de données entre la partie programmable et le cœur de processeur embarqué. Au fil des années, les fournisseurs de FPGA ont aussi ajouté une prise en charge pour le calcul haute vitesse, particulièrement pour les applications de traitement des signaux. Mais les structures physiques de multiplication, les « multiplicateurs », consomment beaucoup d’espace silicium sur une architec- 38 / L’EMBARQUÉ / N°12 / 2016 2 ARCHITECTURE DE FPGA À DOUBLE CŒUR CORTEX-A9 Les systèmes sur puce (SoC) Cyclone d’Altera et les circuits Zynq de Xilinx intègrent des processeurs à double cœur ARM Cortex-A9 utilisés en tant que moteurs de calcul haute performance. ture standard. De plus ils sont lents car ils fonctionnent en ajoutant et en décalant un bit à la fois. Un des moyens les plus efficaces d’implémenter la multiplication dans des cellules programmables est d’utiliser un principe de calcul arithmétique en série, bit par bit. Ces multiplicateurs peuvent supporter des débits globaux élevés lorsqu’ils sont utilisés dans des matrices massivement parallèles. Grâce à leur simplicité et à leur nature compacte, il est possible d’utiliser plusieurs multiplicateurs en série dans un seul FPGA ce qui constitue un bon choix, si toutefois la latence n’est pas un critère important de l’application. De nombreuses architectures FPGA, y compris les produits à faible coût, comme les Cyclone d’Altera ou Spartan-6 de Xilinx incluent désormais des blocs de multiplicateurs matériels pour une utilisation dans les applications DSP haute vitesse. Ces blocs peuvent être liés ensemble pour former des multiplicateurs 32 et 64 bits sophistiqués, capables de prendre en charge des fonctionnalités comme Architecture FPGA 3 STRUCTURE DE MULTIPLICATION DANS UN FPGA Ces blocs d’addition/multiplication peuvent être liés ensemble pour former des multiplicateurs 32 et 64 bits sophistiqués, capables de prendre en charge des fonctionnalités comme les calculs en virgule flottante (Source Lattice). A P P L I C A T I O N valeurs temporaires en mémoire cache ou principale. La latence de ces accès signifie que les unités arithmétiques logiques internes sont privées de données. La structure FPGA permet dans ce cas l’insertion de valeurs temporaires dans une structure de pipeline ad hoc, garantissant que les éléments DSP sont alimentés correctement en continu avec les données appropriées. La structure FPGA offre aussi des avantages pour les opérations qui ne s’adaptent pas facilement aux caractéristiques des unités arithmétiques logiques (ALU) standard. C’est le cas par exemple des fonctions cryptographiques et de nombreux algorithmes utilisés dans les communications numériques, comme les décodeurs Viterbi et Turbo. Dans ce cas, un contrôle complet sur les éléments logiques, associé à une unité ALU personnalisée basée sur FGPA, sera presque toujours plus performant qu’une émulation logicielle s’exécutant sur un cœur de processeur standard (figure 4). les calculs en virgule flottante (figure 3). Grâce à la nature programmable de L’OpenCL pour la la structure FPGA, il est aussi posprogrammation des sible de construire des coprocesseurs architectures hétérogènes s’adaptant aux exigences des applications cibles. La technologie de Côté programmation, l’arrivée de lanreconfiguration partielle peut notamgages comme OpenCL va certainement permettre à des blocs de coproment simplifier la gestion des élécesseurs d’être chargés dans la strucments de coprocesseur. Car même si ture, puis remplacés par un autre l’OpenCL a été initialement dévealgorithme selon les besoins. Par loppé pour les programmeurs plus exemple, dans un algorithme de traihabitués à travailler avec des architement audio, la structure FPGA tectures à usage général (ARM ou effectue un traitement spectral en utilisant des transfor 4 ARCHITECTURE GÉNÉRALE D’UN SOC FGPA mations de Fourier rapides La structure d’un SoC FPGA hétérogène avec des cœurs (FFT), puis un filtrage via un de processeur et/ou des unités de traitement optimisées permet filtre à réponse impulsion- de gérer efficacement de nombreuses foncions spécifiques : nelle finie (FIR), un algo- décodeurs vidéo, traitement vidéo, fonctions cryptographiques, bus de communication… rithme qui peut être chargé dans le FPGA une fois l’analyse spectrale terminée. Cette notion de programmation de la structure contribue également à rationaliser le flux de données par le biais d’un coprocesseur. Dans le cas d’une transformation FFT, les implémentations de l’algorithme dans un processeur à usage général sont souvent relativement lentes car le modèle d’accès de données de type « butterfly » requis par l’algorithme implique une écriture répétée des x86) afin de tirer parti de la puissance de calcul des processeurs graphiques (GPU), des sociétés comme Altera ont adopté ce langage comme un moyen de simplifier la construction de moteurs de calcul personnalisés. Les fonctions OpenCL prennent en effet la forme de noyaux de calcul, en fait des boucles utilisées pour traiter de multiples données en parallèle. OpenCL inclut aussi un environnement d’exécution qui charge les noyaux et les données respectives dans les processeurs cibles, lançant l’exécution puis recueillant in fine les résultats. Les outils de compilation prennent soin de convertir l’algorithme exprimé en langage OpenCL en une implémentation adaptée à la configuration dans un FPGA. Un autre moyen de décharger la charge logicielle du processeur dans un FPGA consiste à réduire la fréquence des interruptions. En effet, chaque interruption requiert que le processeur arrête toutes les tâches en cours pour capturer ou envoyer un fragment de données via un port d’entrée/sortie. Chaque interruption implique de pousser et d’enregistrer le contenu sur la pile, occupant ainsi les cycles du processeur. Le moteur ACE (Analog Compute Engine) dans l’architecture SmartFusion de Microsemi est un exemple de petit processeur parallèle indépendant qui contrôle ces ports d’entrées/sorties. Cette technologie combine un moteur SSE (Sample Sequencing Engine) avec un moteur de post-traitement (PPE). Le SSE capture les données depuis les entrées analogiques, les transfère au PPE qui peut exécuter des fonctions telles que le filtrage passe-bas pour supprimer le bruit, et transformer les données dans un format approprié pour le processeur. Le transfert de ces fonctions vers le matériel garantit alors qu’elles peuvent être utilisées pour réduire la charge d’interruption sur le processeur. Des techniques similaires peuvent aussi être implémentées dans des FPGA qui ne disposent pas de ces fonctions, l’idée générale étant qu’avec un FPGA, il existe toujours des moyens pour conjuguer traitement logiciel et vitesse matérielle de manière parallélisée. n L’EMBARQUÉ / N°12 / 2016 / 39 Logiciels & systèmes La force d’un média numérique intégré Site Internet + Newsletter + eMagazine ACCÈS ILLIMITÉ 1an 120 Abonnez-vous ! 6 mois e 60 e HT* HT* *TVA applicable : 20% ! BULLETIN D’ABONNEMENT Bulletin d’abonnement à compléter et à adresser accompagné de votre règlement à SAS Promedianum - 50, rue Arago - 59000 LILLE Je m’abonne pour un an à L’Embarqué au prix de 120 € HT (soit 144 € TTC) Je m’abonne pour 6 mois à L’Embarqué au prix de 60 € HT (soit 72 € TTC) et bénéficie d’un accès illimité à l’eMagazine numérique et à tous les contenus web réservés aux abonnés sur le site www.lembarque.com pendant la durée de mon abonnement Mr Mme Mlle Nom*........................................................ Prénom* ....................................... Société ......................................................................................................... Adresse ........................................................................................................ CP ........................ Ville ................................................................................ Je règle mon abonnement (prix TTC) par chèque ci-joint à l’ordre de Promedianum Je règle mon abonnement (prix TTC) par carte bancaire n° cryptogramme expire le Date et signature obligatoires e-mail* ......................................................................................................... Fonction................................................... Secteur ......................................... * Les champs marqués d’un astérisque sont obligatoires pour la prise en compte de votre abonnement Je souhaite recevoir une facture acquittée Après confirmation de votre règlement, un mot de passe vous sera communiqué afin d’accéder aux contenus réservés aux abonnés sur le site www.lembarque.com Loi Informatique et Libertés du 06/01/78 : les informations demandées sont indispensables au traitement de votre demande. Vous pouvez accéder aux informations vous concernant, les rectifier et vous opposer à leur transmission éventuelle en écrivant à Promedianum. Pour consulter nos CGV : http://www.lembarque.com/cgu/index/lang/fr. Promedianum, SASU au capital de 15 000 € - RCS Lille 790 606 933 00014 - TVA FR 91 790 606 933