Field Programmable Gate Arrays klinken ingewikkeld, maar ze openen een geheel nieuwe wereld voor ontwikkelaars.
Als je ooit hebt gelezen over retro-gaming-emulatie, ben je misschien een halfgeleidertype tegengekomen dat een Field-Programmable Gate Array (FPGA) wordt genoemd. Dit zijn speciale geïntegreerde schakelingen die zichzelf na productie opnieuw kunnen configureren dankzij configureerbare logische blokken (CLB). Met andere woorden, je kunt de chipset in principe herprogrammeren om te fungeren als elk ander type digitaal circuit, dat meerdere toepassingen heeft op het gebied van AI, chipsetontwerp en andere gebieden.
FPGA's hebben veel gebruiksscenario's, en apparaten zoals de Analogue Pocket maken er gebruik van om verschillende draagbare apparaten te ondersteunen. Microsoft gebruikt echter ook FPGA's om Bing van stroom te voorzien, omdat het bedrijf ze hierdoor snel kan herprogrammeren om nieuwe algoritmen te ondersteunen zodra ze worden ontwikkeld.
FPGA versus traditionele CPU's: wat is het verschil?
In tegenstelling tot een standaardchipset — de Leeuwebek 8 Gen 2, bijvoorbeeld: een FPGA is niet ontworpen om in het veld opnieuw te worden geprogrammeerd. Het is een System on Chip (SoC) dat uit meerdere onderdelen bestaat, waaronder een GPU, NPU en CPU. Zodra het is verzonden, zullen consumenten en bedrijven dat ontvangen.
FPGA's zijn echter bedoeld om kneedbaar te zijn, zodat de gebruiker delen van de chip kan veranderen zonder extra kosten of risico's met zich mee te brengen. In snel veranderende industrieën, zoals zelfrijdende auto's, kunnen op elk moment nieuwe regels en normen worden geïntroduceerd voor elk aspect van het apparaat. Het gebruik van een FPGA kan een OTA-update mogelijk maken om de chip te herprogrammeren om nieuwe standaarden te ondersteunen.
Een groot verschil tussen FPGA's en traditionele CPU's is dat ze zijn ontworpen om gegevens parallel te verwerken met een afweging van een veel lagere kloksnelheid. Een FPGA met tien pijplijnen voor gegevensverwerking kan bijvoorbeeld vermenigvuldigingsbewerkingen uitvoeren op twee getallen voor elke pijplijn, waarbij 20 getallen per cyclus worden vermenigvuldigd. Een traditionele CPU kan twee getallen per cyclus, per kern en in opeenvolgende volgorde vermenigvuldigen.
Hoe werken FPGA's voor emulatie?
FPGA's worden vaak gebruikt voor hardware-emulatie, en een interessant onderdeel van het chipsetontwerpproces is het gebruik van FPGA's om verschillende delen van de SoC tijdens het testen te emuleren. Chipsetontwerpers kunnen meerdere FPGA's gebruiken om een prototype van een applicatiespecifiek geïntegreerd circuit (ASIC) te maken. Om een hardwareontwerp te maken, wordt een Hardware Definition Language (HDL) gebruikt, en deze taal vertelt de FPGA hoe deze zichzelf moet inrichten. In het geval van de Analogue Pocket worden deze ontwerpen gedistribueerd in de vorm van "cores", doorgaans geschreven in Verilog, en kunnen gebruikers een core downloaden om de handheld voor te bereiden op specifieke consoles.
De Analogue Pocket kan bijvoorbeeld Game Boy-spellen rechtstreeks in de cartridge-sleuf lezen en afspelen alsof het de originele console is. Niet alleen dat, maar cartridge-adapters voegen ook extra ondersteuning toe voor andere apparaten, zoals de Game Gear, Atari Lynx en meer. Dit is alleen mogelijk vanwege de herprogrammeerbare aard van een FPGA die gebruikmaakt van hardware-emulatie in plaats van software-emulatie om ervoor te zorgen dat games speelbaar zijn. Een MiSTer (die een DE-10 Nano FPGA-bord als basis gebruikt en daarbovenop extra modules nodig heeft) is vergelijkbaar omdat het kan worden gebruikt om consoles zoals de SNES, Sega Genesis en zelfs de GameCube. Hardware-emulatie is over het algemeen nauwkeuriger dan software-emulatie, terwijl het ook prestatievoordelen biedt.
Hoewel hardware veroudert en na verloop van tijd onbetrouwbaar kan worden, kunnen FPGA's eenvoudigweg opnieuw worden geprogrammeerd om diezelfde hardware-ervaring te emuleren.
Dat betekent natuurlijk niet dat cores een perfecte één-op-één HDL-interpretatie van een chipset zijn. Ze komen redelijk dichtbij, maar in de loop van de tijd worden er oplossingen en verbeteringen aan de kernen aangebracht om problemen op te lossen die bij normaal gebruik kunnen worden vastgesteld. Deze kernen worden gemaakt door reverse-engineering van de chipsets die in deze apparaten worden gebruikt, en ze vereisen dat elk onderdeel op het moederbord in kaart wordt gebracht. Bij de op maat gemaakte eigen chipsets wordt het zelfs nog moeilijker, waarbij ontwikkelaars dit vaak moeten zien een "niet-afgedekte" chip met een microscoop om te zien wat er precies in de chip gebeurt en dit te repliceren.
Daarom zijn FPGA's ook belangrijk voor hardwarebehoud. Hoewel hardware veroudert en na verloop van tijd onbetrouwbaar kan worden, kunnen FPGA's eenvoudigweg opnieuw worden geprogrammeerd om diezelfde hardware-ervaring te emuleren. De chip zal zijn eigen fysieke logica in zichzelf herschikken, zodat deze overeenkomt met de kern die hij krijgt. Het openFPGA-ecosysteem is ontworpen om te helpen bij het behoud van die hardware.
Bovendien krijg je het extra voordeel dat je deze games op een legitieme manier speelt, maar op betere algehele hardware. Je kunt voor $ 220 een Analogue Pocket kopen en Game Boy-spellen spelen zoals je dat in het verleden zou doen, maar met een hogere bouwkwaliteit, een beter scherm en zelfs dock-ondersteuning.
Nadelen van FPGA's
Er zijn echter een paar nadelen. Om te beginnen nemen ze veel meer ruimte in beslag dan traditionele CPU's, en zijn ze ook aanzienlijk duurder om te produceren. Apparaten zoals de Analogue Pocket en de MiSTer FPGA kosten veel geld, waarbij de laatste je meer dan $ 500 oplevert als je ook een paar add-ons aanschaft. De meeste mensen geven er de voorkeur aan om games op hun smartphones of computers te emuleren en geven niets om de pixel-perfecte nauwkeurigheid die emulatie op hardwareniveau biedt.
Natuurlijk staan FPGA's ook nog enigszins in de kinderschoenen, waarbij hun populariteit de laatste jaren alleen maar is toegenomen. Ze bestaan eigenlijk al net zo lang in professionele gebruiksscenario's door wetenschappers, chipsetarchitecten, AI en dergelijke, maar Het is pas de laatste jaren dat consumentenapparaten opduiken en geschikt zijn voor gebruik op meer informele of enthousiaste manieren.
Voor de meeste mensen die aan emulatie willen beginnen, is er het gemak van een speciaal apparaat dat een een waarheidsgetrouwe ervaring is aanlokkelijk, maar het is niet iets dat iedereen nodig heeft of waar iedereen om geeft. Persoonlijk, als ik een spel als Super Mario Bros wil spelen, speel ik het graag onderweg op mijn telefoon. Ik heb er geen speciaal apparaat voor nodig, maar ik begrijp de aantrekkingskracht ervan.