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