Intel a dévoilé hier ce qui s’impose comme le plus grand FPGA au monde : le Stratix 10 GX 10M. Gravé en 14 nm, ce circuit programmable embarque la bagatelle de 43,3 milliards de transistors et 10,2 millions de cellules logiques. De quoi distancer le Virtex UltraScale+ VU19P et ses 35 milliards de transistors. Annoncé en août par l’américain Xilinx, ce dernier se limitait à 9 millions de cellules logiques et se basait sur une gravure en 16 nm.
il m’a fallu relire 3 fois pour trouver la signification de cet acronyme incompréhensible, un moment je pensais que c’était juste pour faire hype. enfin si quelqu’un pouvait m’expliquer en quoi c’est différend d’un bête « processeur » vu qu’il est également programmable, et j’ai la prétention de penser qu’il comporte également des portes logiques.
En simplifiant:Un cpu classique possède un jeu d’instructions fixé à l’avance (additions/ soustractions etc)
Pour réaliser des opérations complexes, il lui faut exécuter (au sein d’un même cœur) une opération après l’autre selon des instructions qui constituent son programme.
Un FPGA ne possède pas a proprement parler de « jeu d’instructions » prédéfini.
Il possède un très grand nombre de portes logiques de base (NON / ET / OU / etc) qui sont disposée « en grille »
Ensuite, c’est cette « grille » qui est « programmée » pour connecter (électriquement) ces portes logiques dans un ordre prédéfini.
Ceci fait, ce sont alors de nouvelles instructions qui sont disponibles et qui permettent de réaliser de fonctions spécifiques extrêmement rapidement (potentiellement en un seul cycle d’horloge)
Bon je me lance.
De ma compréhension, c’est un processeur programmable. Les processeurs utilisés dans nos PC ne peuvent réaliser que des instructions déterminées. Ces FPGA permettent d’adapter le jeu d’instructions au besoin, permettant d’accélérer les calculs.
Par exemple, pour le calcul d’une racine carrée. Sur un CPU il faut découper l’opération en autant de sous-opérations mathématiques « simples » connues du CPU pour réaliser le calcul. Avec le FPGA, il est possible de créer une instruction dédiée. De cette manière le calcul est fait directement côté hardware et non côté software.
C’est ce qui est fait pour la blockchain Bitcoin avec les ASIC, mais ici la puce n’est pas réutilisable pour un autre besoin une fois sortie d’usine.
Mince, je me suis fait coiffer au poteau
le processeur exécute un programme (contenu dans une mémoire), son architecture est figée, par conter un FPGA sorti d’usine ne sais rien faire il faut le programmer pour en sortir quelque chose, on peut par exemple programmer l’architecture d’un processeur dans un FPGA
Les petits FPGA (et les CPLD et PAL) sont souvent utilisé dans l’industrie pour des petites ou moyennes séries ou la fabrication d’un ASIC serait trop couteuse… (ou par choix sécuritaire…)
Les FPGA de grandes tailles ont un véritable intérêt pour des appli blockchain et IA. Ils servent aussi au prototypage et à la conception et validation de circuit électronique complexe.
Intel n’a pas racheté Altera innocemment…
Merci pour vos commentaires,
J’ai appris quelques chose lá.
Un FPGA peut se voir comme un circuit intégré vierge qu’on peut programmer en mettant dessus des portes logiques interconnectées qui vont former un vrai circuit fonctionnel. Et ensuite l’effacer pour y mettre quelque chose d’autre.
C’est utilisé pour faire du prototypage de puces. Une fois la puce mise au point, on peut ensuite fabriquer des puces finales qui ne seront pas modifiables (Asic).
C’est aussi très utilisé dans le retrogaming, où au lieu de faire de l’émulation softwares d’une ancienne machine, on utilise un fpga qui va être programmé pour se comporter matériellement comme la machine d’origine. Avec des fpga moderne, on peut programmer toutes les puces qui composent un amiga500 ou un c64 dans un seul fpga. Programmer n’est pas vraiment le bon mot car il n’y a pas de logiciel, c’est plutôt de la configuration ou un assemblage de portes logiques qui va aboutir à un processeur 6502 ou un 68000, plus toutes les autres puces spécialisées pour la partie vidéo ou sonore.
Jetez un coup d’œil aux projets MiST ou MiSTer ou Super NT analogue.
Quelques infos ici :
Perso, je trouve que la différence entre FPGA vs CPU est très subtile.
De ce que je comprends, le FPGA utilise de la logique câblée alors que le CPU est un séquenceur qui exécute des ordres mémorisés constituant un programme. (J’avoue, c’est pas hyper clair comme explication).
Par contre le FPGA pourra exécuter des actions beaucoup plus rapidement qu’un CPU mais il sera limité dans ce qu’il saura faire. Alors que le CPU aura une plus grande adaptabilité. Cela étant dit, plus un FPGA à de transistors, plus il pourra s’adapter et faire un plus grand nombre de chose, je présume…
J’ai pu constater récemment quenHDS utilise encore les FPGA dans sa gamme HNAS VSP-G200, VSP-G400…
« on peut ensuite fabriquer des puces finales qui ne seront pas modifiables (Asic) » comme des CPU Intel par exemple.
Est-ce que ce qu’on voit sur cette vidéo serait un processeur de type FPGA ???
C’est du 14nm, c’est de la vieille technologie dépassée…
Quand tu utilises un FPGA, tu reprogrammes le FPGA pour qu’une opération se passe le plus vite possible.
Quand tu utilises un CPU, tu décomposes ton opération selon le jeu d’instruction que le fabricant te fourni (comme par exemple: SSE/SSE2/AVX/AMD64/…).
La différence en terme de temps de traitement est absolument folle. Les FPGAs sont des brutes en terme de performance dédiée. Mais les CPUs savent un peu tout faire.
Un FPGA peut à un moment donné se comporter comme un Intel 486, car on vient de le programmer en lui injectant une configuration qui définit l’ensemble des portes logiques qui forment l’architecture du 486. Et 10 minutes plus tard, ce même FPGA peut être reconfiguré en 68000. Alors qu’un CPU 68000 est un 68000 et ne peut pas devenir autre chose, c’est un ASIC. On peut pousser l’analogie en comparant un FPGA à une eprom et un ASIC à une rom.
En fait, il y a plusieurs autres avantages liés à l’utilisation des FPGA versus les ASIC.
- c’est un produit standard, donc très faiblement impacté par le coût des masques puisque amortis sur un gros volume, soit la somme des quantités de tous les codes utilisant le même FPGA, alors que l’ASIC ne s’amortira que sur sa seule application,
- le FPGA permet de pratiquer ce qui s’appelle la reconfiguration dynamique, c’est à dire de configurer, dans une même zone du FPGA, séquentiellement des blocs de fonctionnalité qui ne sont pas sollicités simultanément, ce qui contribue à limiter la taille de la puce, et donc la consommation, la vitesse, l’encombrement sur la carte,…
- avec les dernières technologies de mémoire remarquable telle les MRAM (voir CROCUS, par exemple), on peut envisager du multi contexte qui permet de basculer d’une fonctionnalité à une autre par un seul coup d’horloge sans passer par une reconfiguration provenant d’une mémoire externe qui prend infiniment plus de temps,
- en partie redondant avec le point 1, le fait que les volumes produits des FPGA sont d’un ordre de grandeur 3 à 4 fois, voire plus, supérieurs à ceux de chacun des ASICS, cela permet d’envisager de cibler les technologies les plus avancées sans réelles pénalités financières, mais au contraire de bénéficier de tous les avantages liés à l’extrême finesse comme la vitesse, la consommation, l’encombrement,… faisant que les FPGA ont vite fait de se mettre au même niveau de performances que celles des ASICS.
- enfin, le dernier avantage est celui du "time to market ": pour les FPGA, c’est celui du développement du code, alors que pour les ASICS, il faut encore rajouter le temps de production…
Donc, de mon point de vue, à terme, les FPGA deviendront la solution, et INTEL l’a très bien compris vues ses acquisitions successives sur le marché des FPGA, ACHRONIX et ALTERA, pour rendre ses processeurs configurables.