Les Gate Arrays programmables sur site semblent compliqués, mais ils ouvrent un tout nouveau monde aux développeurs.
Si vous avez déjà lu l'émulation de jeux rétro, vous avez peut-être rencontré un type de semi-conducteur appelé FPGA (Field-Programmable Gate Array). Ce sont des circuits intégrés spéciaux qui peuvent se reconfigurer après avoir été fabriqués grâce à des blocs logiques configurables (CLB). En d’autres termes, vous pouvez essentiellement reprogrammer le chipset pour qu’il agisse comme n’importe quel autre type de circuit numérique, qui a de multiples applications dans l’IA, la conception de chipsets et d’autres domaines.
Les FPGA ont de nombreux cas d'utilisation, et des appareils tels que l'Analogue Pocket les utilisent pour prendre en charge différents appareils portables. Cependant, Microsoft utilise également les FPGA pour alimenter Bing, car cela permet à l'entreprise de les reprogrammer rapidement pour prendre en charge de nouveaux algorithmes au fur et à mesure de leur développement.
FPGA vs CPU traditionnels: quelle est la différence?
Contrairement à un chipset standard, le Muflier 8 génération 2, par exemple, un FPGA n'est pas conçu pour être reprogrammé sur le terrain. Il s'agit d'un système sur puce (SoC) composé de plusieurs parties, dont un GPU, un NPU et un CPU. Une fois expédié, c'est ce que les consommateurs et les entreprises recevront.
Les FPGA, cependant, sont destinés à être malléables afin que l'utilisateur puisse modifier des parties de la puce sans introduire de coûts ni de risques supplémentaires. Dans les secteurs en évolution rapide, tels que les automobiles autonomes, de nouvelles réglementations et normes peuvent être introduites à tout moment pour n’importe quel aspect de l’appareil. L'utilisation d'un FPGA peut permettre une mise à jour OTA pour reprogrammer la puce afin de prendre en charge les nouvelles normes.
Une grande différence entre les FPGA et les CPU traditionnels est qu'ils sont conçus pour traiter les données en parallèle avec une vitesse d'horloge bien inférieure. Par exemple, un FPGA doté de 10 pipelines pour le traitement des données peut exécuter des opérations de multiplication sur deux nombres pour chaque pipeline, multipliant 20 nombres par cycle. Un processeur traditionnel peut multiplier deux nombres par cycle, par cœur et dans un ordre séquentiel.
Comment fonctionnent les FPGA pour l’émulation?
Les FPGA sont souvent utilisés pour l'émulation matérielle, et une partie intéressante du processus de conception du chipset est l'utilisation de FPGA pour émuler différentes parties du SoC lors des tests. Les concepteurs de chipsets peuvent utiliser plusieurs FPGA pour prototyper un circuit intégré spécifique à une application (ASIC). Un langage de description du matériel (HDL) est utilisé pour créer une conception matérielle, et ce langage indique au FPGA comment s'organiser. Dans le cas de l'Analogue Pocket, ces conceptions sont distribuées sous la forme de "cœurs" généralement écrits en Verilog, et les utilisateurs peuvent télécharger un noyau pour préparer l'ordinateur de poche pour des consoles spécifiques.
Par exemple, l'Analogue Pocket peut lire les jeux Game Boy directement dans son emplacement pour cartouche et y jouer comme s'il s'agissait de la console d'origine. De plus, les adaptateurs de cartouche ajoutent également une prise en charge supplémentaire pour d'autres appareils, tels que le Game Gear, l'Atari Lynx, etc. Cela n'est possible que grâce à la nature reprogrammable d'un FPGA qui utilise l'émulation matérielle au lieu de l'émulation logicielle pour garantir la jouabilité des jeux. Un MiSTer (qui utilise une carte DE-10 Nano FPGA comme base et nécessite des modules supplémentaires par-dessus) est similaire dans le sens où il peut être utilisé pour émuler des consoles comme la SNES, la Sega Genesis et même la GameCube. L'émulation matérielle est généralement plus précise que l'émulation logicielle tout en offrant également des avantages en termes de performances.
Alors que le matériel vieillit et peut devenir peu fiable avec le temps, les FPGA peuvent simplement être reprogrammés pour imiter la même expérience matérielle.
Bien sûr, cela ne signifie pas que les cœurs sont une parfaite interprétation HDL d’un chipset. Ils s'en rapprochent assez, mais des correctifs et des améliorations sont apportés aux cœurs au fil du temps pour résoudre les problèmes qui peuvent être identifiés lors d'une utilisation normale. Ces cœurs sont créés par ingénierie inverse des chipsets qui entrent dans ces appareils, et ils nécessitent de cartographier chaque composant de la carte mère. Dans les chipsets propriétaires personnalisés, cela devient encore plus difficile, les développeurs ayant souvent besoin de voir une puce "non coiffée" avec un microscope pour voir exactement ce qui se passe à l'intérieur de la puce et le reproduire.
C'est pourquoi les FPGA sont également importants pour la préservation du matériel. Alors que le matériel vieillit et peut devenir peu fiable avec le temps, les FPGA peuvent simplement être reprogrammés pour imiter la même expérience matérielle. La puce réorganisera sa propre logique physique en elle-même pour correspondre au cœur qui lui est fourni. L'écosystème openFPGA est conçu pour faciliter cette préservation du matériel.
En plus de cela, vous bénéficiez de l’avantage supplémentaire de jouer à ces jeux de manière légitime, mais sur un meilleur matériel global. Vous pouvez acheter un Analog Pocket pour 220 $ et jouer à des jeux Game Boy comme vous l'auriez fait dans le passé, mais avec une qualité de construction supérieure, un meilleur écran et même une prise en charge du dock.
Inconvénients des FPGA
Il existe cependant quelques inconvénients. Pour commencer, ils prennent beaucoup plus de place que les processeurs traditionnels et sont également beaucoup plus chers à produire. Des appareils comme l'Analogue Pocket et le MiSTer FPGA coûtent très cher, ce dernier vous coûtant plus de 500 $ si vous achetez également quelques modules complémentaires. La plupart des gens préféreraient simplement émuler des jeux sur leurs smartphones ou leurs ordinateurs et ne se soucient pas de la précision parfaite au pixel près qu'offre l'émulation au niveau matériel.
Bien entendu, les FPGA en sont également à leurs balbutiements en matière de consommation, leur popularité n’ayant augmenté que ces dernières années. En fait, ils existent depuis aussi longtemps dans des cas d'utilisation professionnelle par des scientifiques, des architectes de chipsets, des IA, etc., mais ce n'est que ces dernières années que les appareils grand public sont apparus et sont viables pour une utilisation plus occasionnelle ou plus enthousiaste.
Pour la plupart des personnes souhaitant se lancer dans l'émulation, la commodité d'un appareil dédié qui garantit une une expérience fidèle à l'original est séduisante, mais ce n'est pas quelque chose dont tout le monde a besoin ou même ne s'en soucie pas. Personnellement, si je veux jouer à un jeu comme Super Mario Bros, je me contente d'y jouer sur mon téléphone en déplacement. Je n'ai pas besoin d'un appareil dédié pour cela, mais je comprends l'intérêt d'en avoir un.