Est-ce quelque chose à voir avec l'association des golfeurs professionnels français??

Non! L’acronyme signifie «Field Programmable Gate Arrays», c’est-à-dire une classe très intéressante de circuits intégrés numériques (IC) piratables..

Je suis seulement au chapitre trois de mon manuel d'informatique, vous devrez donc me rappeler ce qu'est un tableau de portes…

Pour les besoins de cette conversation, une matrice de portes est un rectangle de silicium contenant de nombreuses copies des mêmes portes logiques élémentaires, toutes alignées en lignes et en colonnes. Dans sa forme la plus simple, une porte logique est une fonction booléenne de base (OU, ET, inverseur…) obtenue en combinant quelques transistors.

Qu'en est-il de la partie 'programmable sur site'?

Une porte logique est toujours la même, quel que soit le circuit intégré dans lequel elle réside. Ce qui fait de votre CPU un processeur et de votre chipset graphique un chipset graphique, et qu’ils sont incapables de faire ce que fait l’autre puce, c’est la manière dont Des millions de portes logiques sont connectées en permanence les unes aux autres dans la fonderie de silicium. Les grilles et les micro-fils qui les relient, appelés filets, sont dessinés sur des masques spéciaux directement imprimés sur le silicium. Chaque masque possible correspond à une et une seule conception de circuit électrique, qui ne peut pas être changée une fois la puce imprimée - sauf si vous utilisez un FPGA.

Vous pouvez donc modifier vous-même la composition d'un circuit…

Précisément. Seuls les réseaux de fils et de blocs de base non connectés sont imprimés sur du silicium dans la fonderie. Toutes les connexions sont effectuées plus tard sur votre table de cuisine, après avoir acheté un FPGA vierge et l'avoir monté sur votre carte de circuit imprimé! Les FPGA vierges de base peuvent être produits en gros volumes à des prix unitaires relativement bas car les masques sont toujours les mêmes, mais les puces peuvent être vendues à l'unité ou en très petites quantités, à qui veut les programmer à leur guise. . Cela a d'énormes conséquences sur de nombreuses personnes, de l'industrie microélectronique aux amateurs et aux éducateurs..

Mais il est certain que les puces peuvent être reprogrammées de toute façon - pourquoi cette nouvelle?

Bien sûr, le même microprocesseur (un x86, par exemple) peut exécuter des programmes aussi différents que Windows, des centaines de distributions Linux, OpenOffice.org, Apache, Photoshop et ainsi de suite. Toutefois, quel que soit le logiciel utilisé, le microprocesseur reste le même: un circuit intégré ne pouvant exécuter qu'un seul jeu d'instructions de base, limité et fixe, dans le même langage machine. Et il a toujours le même bus de données de largeur fixe, ou le même nombre de broches auxiliaires. Un FPGA peut devenir n'importe quel circuit numérique que vous voulez (dans des limites raisonnables). De plus, il peut s'agir d'un circuit totalement différent chaque fois que vous allumez la carte sur laquelle il est monté..

Comment se peut-il?

La programmation, ou «gravure» dans le jargon FPGA, se fait en obligeant le FPGA à lire un fichier dès sa mise sous tension. Son contenu décrit quels blocs de base (BB) doivent être connectés à quels autres et par quels chemins internes, ainsi que la manière dont chaque BB doit être configuré. À chaque mise hors tension de la carte hôte, toutes ces informations de connexion et de configuration sont complètement effacées. Bien que la procédure de gravure doive être répétée à chaque fois, il n'y a pas de limite intégrée qui oblige le fichier à graver à être identique à chaque fois..

Qu'y a-t-il à l'intérieur de ces BB??

De manière générale, un BB FPGA contient à la fois des éléments combinatoires et des éléments de registre. Tous les blocs sont placés dans une grille rectangulaire. Les circuits combinatoires mettent à jour leurs sorties dès que possible chaque fois que l'une de leurs entrées change, tandis que les circuits séquentiels ne recalculent leurs sorties que sur le bord d'une horloge ou d'un signal d'activation, en maintenant constante la dernière valeur calculée. Des choses comme les additionneurs ou les décodeurs élémentaires sont combinatoires, les bascules et les autres éléments de mémoire sont séquentiels.