Accueil

Think

Thèmes

Réseaux de portes programmables in situ

Qu’est-ce qu’un FPGA (réseau de portes programmables in situ) ?
Découvrir IBM Storage FlashSystem Inscrivez-vous pour recevoir les mises à jour du cloud
Illustration avec collage de pictogrammes représentant un écran d’ordinateur, un serveur, des nuages et des points

Publication : 8 mai 2024
Contributeurs : Josh Schneider, Ian Smalley

Qu’est-ce qu’un FPGA (réseau de portes programmables in situ) ?

Un FPGA (réseau de portes programmables in situ) est un type de circuit intégré polyvalent qui, contrairement aux dispositifs logiques traditionnels tels que les circuits intégrés spécifiques à une application (ASIC), est conçu pour être programmable (et souvent reprogrammable) à différentes fins, notamment le calcul haute performance (HPC) et le prototypage.

L’expression « programmable in situ » fait référence à la capacité d’un FPGA à être programmé « sur le terrain » ou après que la puce a été libérée par le fabricant. Xilinx, un fabricant de technologie, a introduit pour la première fois les FPGA en 1985. 

Les FPGA peuvent être adaptés à de multiples cas d’utilisation, y compris à des fins émergentes ou expérimentales, sans qu’il soit nécessaire de modifier ou d’altérer physiquement leur matériel. Cette polyvalence reconfigurable est obtenue grâce à un ensemble de blocs logiques programmables fixes (PLB) et d’interconnexions flexibles qui peuvent être configurés pour effectuer des opérations complexes ou pour servir de portes logiques simples. Les FPGA comprennent également des éléments de mémoire, allant des bascules à un seul bit aux matrices de mémoire très denses, pour le stockage des données numériques dans le dispositif.

Les FPGA sont très appréciés pour leur combinaison de hautes performances et d’extrême polyvalence. Ils sont particulièrement utiles dans les applications nécessitant des performances élevées, une faible latence et une flexibilité en temps réel. Pour cette raison, ils sont couramment utilisés dans les secteurs des télécommunications, de l’automobile et de l’aérospatiale.

Aider l’informatique à s’autogérer grâce à l’autonomie opérationnelle

Découvrez comment des responsables informatiques visionnaires s’appuient sur l’IA et l’automatisation pour renforcer la compétitivité grâce à l’autonomie des opérations informatiques.

Contenu connexe Abonnez-vous à la Think Newsletter
Réseaux de portes programmables in situ (FPGA) et circuits intégrés spécifiques à une application (ASIC)

Les FPGA et les ASIC servent des objectifs différents.

Un ASIC est développé et optimisé pour une application spécifique et ne peut pas être reconfiguré. Ses éléments de circuit internes (transistors) sont disposés dans une structure fixe avec une interconnexion fixe et non modifiable (câblage) entre les deux.   

Étant donné qu’un ASIC ne sert qu’à une seule fin, il n’intègre que les éléments logiques nécessaires à cette fin : par exemple, si un multiplicateur à virgule flottante n’est pas nécessaire, il n’est pas intégré dans la conception. 

Inversement, un FPGA peut être configuré et reconfiguré pour toutes les applications potentielles. Comme un ASIC, ses éléments de circuit internes sont organisés dans une structure fixe (blocs logiques programmables ou PLB), mais avec des interconnexions reconfigurables entre les deux. Les éléments logiques d’une FPGA sont sélectionnés pour prendre en charge une grande variété d’applications, mais ils sont affectés par le risque de « l’utiliser ou le perdre » lorsque des éléments logiques spécifiques ne sont pas utilisés. Si un multiplicateur à virgule flottante n’est pas nécessaire pour une application particulière, mais que le FPGA en contient un, cette ressource n’est pas connectée et représente un « espace gaspillé » au sein du FPGA.

Bien que les deux dispositifs puissent contenir des centaines de millions de transistors, un ASIC peut utiliser ces transistors pour offrir une efficacité et des performances élevées au détriment de la flexibilité. Les frais d'ingénierie initiaux pour développer un ASIC peuvent être exorbitants, alors que les coûts unitaires peuvent être relativement faibles. 

Un FPGA utilise ses transistors pour offrir une efficacité et des performances élevées, tout en étant extrêmement flexible. Les frais d'ingénierie initiaux pour développer un FPGA peuvent être extrêmement faibles, alors que les coûts unitaires sont généralement plus élevés. Il est important de noter qu’il ne s’agit pas de règles strictes. Dans le domaine des performances, par exemple, les FPGA récents ont évolué pour atteindre des fréquences d’horloge de plus de 500 MHz et sont généralement fabriqués selon des géométries de pointe en silicium. En résumé, la frontière entre les FPGA et les ASIC est de plus en plus floue à chaque nouvelle génération de FPGA.

Comment fonctionnent les réseaux de portes programmables in situ ?

Un FPGA se transforme en dispositif matériel personnalisé en configurant ses PLB et ses interconnexions à l’aide d’un langage de description de matériel (HDL) standard tel que Verilog ou VHDL.

Les fonctions spécifiques basées sur le FPGA, ainsi que les interconnexions entre ces fonctions, sont « décrites » dans un HDL. La description est compilée pour produire un fichier de configuration FPGA. En utilisant un langage de description de matériel, il est possible d’utiliser des ressources FPGA intégrées (tableaux de mémoire, cœurs PCI, etc.), et de créer des circuits logiques personnalisés (ajouts, multiplexeurs et autres fonctions spécifiques à l’application) à partir d’un FPGA plus primitif.

Dans un processus connu sous le nom de synthèse, le code HDL est traduit sous forme de netlist, une description efficace des portes logiques et des interconnexions nécessaires à l’implémentation du code HDL. La liste de réseaux est ensuite mappée sur les PLB et les interconnexions qui forment physiquement le circuit unique.

Les FPGA modernes produits par des fabricants comme Intel et Altera offrent un large éventail de fonctionnalités numériques et analogiques, notamment des densités logiques impressionnantes, la mémoire flash, les processeurs intégrés et les blocs de traitement des signaux numériques (DSP). Les FPGA peuvent être configurés et reconfigurés en modifiant les entrées et sorties électriques, en choisissant les ressources internes à utiliser et en déterminant comment ces ressources sont connectées via des ressources de routage configurables, le résultat final étant une solution matérielle dédiée pour résoudre un problème particulier.

Comme pour les logiciels, le développement de conceptions FPGA complexes peut être rationalisé par l’utilisation de bibliothèques préconçues de diverses fonctions et circuits numériques, appelées « cœurs de propriété intellectuelle » (PI). Ces bibliothèques peuvent être achetées ou louées auprès de fournisseurs de FPGA et de fournisseurs tiers qui sont souvent spécialisés dans le développement de diverses fonctions.

Modules et composants de réseaux de portes programmables in situ

Outre les composants de circuits traditionnels tels que les microcontrôleurs et les conversions, pour réaliser leurs fonctions reconfigurables, les dispositifs FPGA modernes utilisent une combinaison de divers éléments programmables.

Ces éléments programmables sont principalement des blocs logiques configurables (CLB), des interconnexions programmables, un routage programmable, des blocs d’entrée/sortie programmables (IOB), une mémoire sur puce et des blocs de traitement de signal numérique (DSP). 

Blocs logiques configurables

Les blocs logiques configurables (CLB) sont le composant principal des FPGA. Les CLB contiennent généralement quelques éléments logiques primitifs (portes logiques, petites tables de recherche, bascules, multiplexeurs et bien d’autres). Dans le CLB, une bascule sert généralement d’élément principal de stockage de données, bien que les familles de dispositifs plus récents puissent également intégrer des éléments de mémoire superficielle dans le CLB.

Interconnexions programmables

Les liaisons construites à partir de segments de fils reliés par des commutateurs programmables électriquement fournissent des voies de routage entre le bloc logique du FPGA. Les boîtiers de commutation contenant plusieurs commutateurs à semi-conducteurs de base sont couramment utilisés pour établir l’interconnexion programmable d’un FPGA. Ces interconnexions permettent de relier les sorties d’une unité spécifique ou d’un tablette d’entrée à n’importe quelle autre cellule ou tablette du circuit.

Routage programmable

Les segments de fil pré-intégrés sont reliés (ou laissés non connectés) par les interconnexions programmables pour fournir une infrastructure de routage entièrement programmable au sein d’une FPGA. Les ressources de routage sont de nature hiérarchique, avec une combinaison de fils longs, moyens et courts couvrant différentes « longueurs » au sein du FPGA.  Cette infrastructure de routage programmable, activée par les interconnexions programmables, permet aux utilisateurs de configurer les ressources FPGA pour la mise en œuvre d’une tâche ou d’une application particulière.

Blocs d’entrée/sortie programmables (IOB)

L’interface entre un FPGA et d’autres périphériques externes est activée par des blocs d’entrée/sortie (E/S) (IOB). Les IOB sont des ressources d’entrée et de sortie programmables configurées pour correspondre aux protocoles de tous les appareils externes auxquels le FPGA se connecte. Tous les signaux entrant ou sortant du FPGA le font via les broches du dispositif et les IOB associés.

Mémoire sur puce

Les premiers FPGA utilisaient uniquement des bascules (flip-flops ou FF) pour intégrer de la mémoire dans les blocs logiques des FPGA. Cependant, à mesure que les capacités FPGA augmentaient, les conceptions de plus en plus complexes nécessitaient une mémoire sur puce dédiée à la mise en mémoire tampon et à la réutilisation des données. Les FPGA modernes utilisent de grandes baies de mémoire SRAM, de petites tables de recherche (LUT) et des éléments de bascules traditionnels pour fournir le stockage nécessaire à une application spécifique.

Blocs de traitement de signal numérique (DSP)

Dans les premiers FPGA, les seules ressources arithmétiques disponibles étaient de simples additionneurs ; tout ce qui était plus complexe était construit à partir d’éléments logiques plus rudimentaires. Cependant, à mesure que la technologie du silicium progressait, des ressources arithmétiques plus complexes ont été intégrées dans les FPGA, aboutissant au bloc DSP FPGA moderne. Les blocs DSP fournissent des ressources hautement optimisées (multiplieurs, accumulateurs et bien d’autres) pour l’implémentation de fonctions arithmétiques hautes performances.

Leur utilisation élimine la nécessité d’implémenter ces fonctions dans les CLB à usage général, libérant ainsi les CLB à d’autres fins. Les opérations telles que le filtrage numérique, la convolution, les transformées de Fourier, les opérations trigonométriques et bien d’autres encore peuvent tirer parti de ces ressources pour obtenir des performances en temps réel dans des applications allant du traitement radar, de la formation de faisceaux, de la reconnaissance de formes et bien d’autres encore.

Types de réseaux de portes programmables in situ

Les FPGA sont disponibles en plusieurs variétés différentes qui offrent différents types de configurabilité, de consommation d’énergie, d’éléments programmables et de mémoire sur puce.

  • FPGA basé sur un anti-fusible : FPGA configurable mais non reconfigurable. Ils utilisent un élément programmable unique appelé anti-fusible, qui est configuré en appliquant une haute tension pour créer des connexions entre les fils internes. Un FPGA basé sur un anti-fusible ne peut être configuré qu’une seule fois et ne peut pas être reconfiguré.
  • FPGA basé sur la SRAM : ces types de FPGA sont très polyvalents et peuvent être configurés pendant l’exécution. Les FPGA basés sur la SRAM utilisent une mémoire vive statique (SRAM) pour stocker leurs instructions de configuration et nécessitent une mémoire externe pour contenir le code de configuration.
  • FPGA sur la mémoire flash : contrairement aux FPGA basés sur la SRAM, les FPGA basés sur la mémoire flash stockent leur configuration dans une mémoire flash non volatile, qui présente l’avantage supplémentaire d’être reprogrammable.
  • FPGA basés sur l’EEPROM : ce type de FPGA est similaire aux FPGA basés sur la mémoire flash, mais la mémoire programmable effaçable électroniquement (EEPROM) stocke la configuration de la FPGA. Les deux sont non volatils et reprogrammables.
  • FPGA hybrides : les FPGA hybrides offrent différents niveaux de performance, de fonctionnement à faible puissance et de polyvalence grâce à une combinaison de différents éléments programmables, tels que des blocs logiques SRAM ou flash.
  • FPGA à système sur puce : les FPGA à système sur puce (SoC) intègrent une logique programmable avec des cœurs de processeur durs, combinant les fonctionnalités d’un FPGA et d’un SoC, une seule puce de silicium qui combine plusieurs puces de traitement système telles que les CPU, les GPU et la RAM en une seule unité.
Cas d’utilisation d’un réseau de portes programmable in situ

Polyvalents par nature, les FPGA sont bien adaptés à de nombreuses applications différentes.

Applications de radar

Les FPGA sont privilégiés pour le traitement des signaux et l’acquisition de données en raison de leurs capacités de traitement parallèle à grande vitesse.

Véhicules aériens sans pilote (UAV)

Les algorithmes de traitement des signaux à grande vitesse font des FPGA des systèmes bien adaptés aux commandes de vol, au traitement des capteurs et aux tâches de communication utilisées dans les aéronefs sans pilote tels que les drones.

Systèmes de contrôle industriel (ICS)

Les systèmes de contrôle industriel utilisés pour surveiller les infrastructures telles que les réseaux électriques, les raffineries de pétrole et les stations d’épuration utilisent des FPGA qui peuvent être facilement optimisés pour répondre aux besoins spécifiques des différentes industries. Dans ces secteurs critiques, les FPGA peuvent être utilisés pour mettre en œuvre diverses automatisations et des fonctions de chiffrement basées sur le matériel pour une cybersécurité efficace.

Prototypage ASIC

Si les FPGA sont des solutions utiles pour les tâches exigeant de la flexibilité, les ASIC spécifiques à une tâche sont souvent mieux adaptés à des opérations standardisées. À mesure que de nouveaux systèmes sont développés, les FPGA servent à développer et à prototyper de nouveaux ASIC pour les technologies émergentes.

Centres de données

Les FPGA ajoutent de la valeur aux centres de données en facilitant la mise en réseau et l’infrastructure de stockage à large bande passante et à faible latence.

Solutions connexes
IBM Storage FlashSystem 5300

Stockage professionnel capable d’évoluer à votre rythme. IBM Storage FlashSystem 5300 est une option de stockage NVMe pour les jeunes entreprises qui ont besoin d’un stockage compact et puissant. Il unifie la gestion des données dans le cœur, le cloud et en périphérie, et est conçu dans un format 1U révolutionnaire. 

Découvrir IBM stockage FlashSystem 5300

Coprocesseur cryptographique PCIe d'IBM

Un coprocesseur qui vous permet de décharger les processus cryptographiques à forte intensité de calcul de votre serveur hôte. Les coprocesseurs cryptographiques PCIe d’IBM sont une famille de modules de sécurité matériels (HSM) de haute performance. Ces cartes PCIe programmables fonctionnent avec certains serveurs IBM Z, x64 et IBM Power pour décharger le serveur hôte des processus cryptographiques à forte intensité de calcul, tels que les paiements ou les transactions sécurisés.

Découvrir le coprocesseur cryptographique PCIe d'IBM

Apache Spark sur IBM Power

Un framework open source de calcul optimisé pour un traitement des données extrêmement rapide et à grande échelle. Apache Spark a été développé au sein de l’AMPLab de l’UC Berkeley. Il peut aider à réduire la complexité de l’interaction des données, à accélérer la vitesse de traitement et à améliorer les applications essentielles grâce à une intelligence approfondie.

Découvrir Apache Spark sur IBM Power
Ressources Qu’est-ce que le stockage flash ?

Le stockage flash est une technologie de stockage à semi-conducteurs qui utilise des puces de mémoire flash pour écrire et stocker des données, appelées opérations d’entrée/sortie par seconde (IOPS).

Qu'est-ce que l'infrastructure informatique ?

L’infrastructure des technologies de l’information, ou infrastructure IT, fait référence aux composants combinés nécessaires au fonctionnement et à la gestion des services et des environnements informatiques de l’entreprise.

Qu'est-ce que le stockage de données ?

Le stockage des données fait référence aux supports magnétiques, optiques ou mécaniques qui enregistrent et conservent des informations numériques pour des opérations en cours ou futures.

Qu’est-ce qu’Apache Spark ?

Apache Spark est un moteur de traitement de données open source ultra-rapide pour les applications de machine learning et d’IA, soutenu par la plus grande communauté open source dans le domaine du big data.

Qu’est-ce que l’infrastructure d’IA ?

L’IA est un terme qui désigne le matériel et les logiciels nécessaires pour créer et déployer des applications et des solutions alimentées par l’IA.

Qu’est-ce que le chiffrement ?

Le chiffrement des données est un moyen de convertir des données en texte clair (non chiffré) en texte chiffré.

Passer à l’étape suivante

Simplifiez la gestion des données et de l’infrastructure avec IBM Storage FlashSystem, une solution de stockage 100 % flash hautes performances qui rationalise l’administration et la complexité opérationnelle dans les environnements sur site, cloud hybride, virtualisés et conteneurisés.

    Découvrir le stockage FlashSystem Visite guidée