Hvad er FPGA'er?

Field Programmable Gate Arrays lyder kompliceret, men de åbner en helt ny verden for udviklere.

Hvis du nogensinde har læst i retro-gaming-emulering, er du muligvis stødt på en halvledertype kaldet en Field-Programmable Gate Array (FPGA). Disse er specielle integrerede kredsløb, der kan rekonfigurere sig selv efter at være blevet fremstillet takket være konfigurerbare logiske blokke (CLB). Med andre ord kan du dybest set omprogrammere chipsættet til at fungere som enhver anden type digitalt kredsløb, som har flere applikationer inden for AI, chipsetdesign og andre områder.

FPGA'er har mange use cases, og enheder som Analogue Pocket gør brug af dem til at understøtte forskellige håndholdte enheder. Microsoft bruger dog også FPGA'er til at drive Bing, da det giver virksomheden mulighed for hurtigt at omprogrammere dem til at understøtte nye algoritmer, efterhånden som de udvikles.

FPGA vs traditionelle CPU'er: Hvad er forskellen?

I modsætning til et standardchipsæt — den Snapdragon 8 Gen 2, for eksempel — en FPGA er ikke designet til at blive omprogrammeret i marken. Det er et System on Chip (SoC) sammensat af flere dele, inklusive en GPU, NPU og CPU. Når først det er afsendt, er det, hvad forbrugere og virksomheder vil modtage.

FPGA'er er dog beregnet til at være formbare, så brugeren kan ændre dele af chippen uden at indføre yderligere omkostninger eller risici. I hurtige industrier, såsom selvkørende biler, kan nye regler og standarder til enhver tid indføres for ethvert aspekt af enheden. Brugen af ​​en FPGA kan give mulighed for en OTA-opdatering for at omprogrammere chippen til at understøtte nye standarder.

En stor forskel mellem FPGA'er og traditionelle CPU'er er, at de er designet til at behandle data parallelt med en afvejning af en meget lavere clockhastighed. For eksempel kan en FPGA med 10 pipelines til databehandling udføre multiplikationsoperationer på to tal for hver pipeline, der multiplicerer 20 tal pr. cyklus. En traditionel CPU kan gange to tal pr. cyklus, pr. kerne og i sekventiel rækkefølge.

Hvordan fungerer FPGA'er til emulering?

FPGA'er bruges ofte til hardwareemulering, og en interessant del af chipsetdesignprocessen er brugen af ​​FPGA'er til at emulere forskellige dele af SoC'en i test. Chipsetdesignere kan bruge flere FPGA'er til at prototype et Application-Specific Integrated Circuit (ASIC). Et hardwarebeskrivelsessprog (HDL) bruges til at skabe et hardwaredesign, og dette sprog fortæller FPGA'en, hvordan den skal arrangere sig selv. I tilfældet med den analoge lomme distribueres disse designs i form af "kerner", typisk skrevet i Verilog, og brugere kan downloade en kerne for at forberede den håndholdte til specifikke konsoller.

For eksempel kan Analogue Pocket læse Game Boy-spil direkte i sin patronslot og spille dem, som om det var den originale konsol. Ikke kun det, men patronadaptere tilføjer også yderligere understøttelse af andre enheder, såsom Game Gear, Atari Lynx og mere. Dette er kun muligt på grund af den omprogrammerbare karakter af en FPGA, der bruger hardwareemulering i stedet for softwareemulering for at sikre, at spil kan spilles. En MiSTer (som bruger et DE-10 Nano FPGA-kort som base og kræver yderligere moduler ovenpå) ligner, at den kan bruges til at efterligne konsoller som SNES, Sega Genesis og endda GameCube. Hardwareemulering er generelt mere nøjagtig end softwareemulering, mens den også tilbyder ydeevnefordele.

Mens hardware ældes og kan blive upålidelig over tid, kan FPGA'er simpelthen omprogrammeres til at efterligne den samme hardwareoplevelse.

Det betyder selvfølgelig ikke, at kerner er en perfekt en-til-en HDL-fortolkning af et chipset. De kommer ret tæt på, men rettelser og forbedringer er lavet til kerner over tid for at løse problemer, der kan identificeres ved normal brug. Disse kerner er lavet ved omvendt konstruktion af de chipsæt, der indgår i disse enheder, og de kræver kortlægning af hver eneste komponent på bundkortet. I de brugerdefinerede proprietære chipsæt bliver det endnu sværere, hvor udviklere ofte har brug for at se en "ulukket" chip med et mikroskop for at se, hvad der præcist foregår inde i chippen og replikere det.

Derfor er FPGA'er også vigtige for hardwarebevaring. Mens hardware ældes og kan blive upålidelig over tid, kan FPGA'er simpelthen omprogrammeres til at efterligne den samme hardwareoplevelse. Chippen vil omarrangere sin egen fysiske logik inde i sig selv for at matche den kerne, den har fået. OpenFPGA-økosystemet er designet til at hjælpe med denne hardwarebevaring.

Oven i det får du den ekstra fordel ved at spille disse spil på en legitim måde, men på bedre samlet hardware. Du kan hente en analog lomme til $220 og spille Game Boy-spil, ligesom du ville have tidligere, men med en højere byggekvalitet, bedre skærm og endda dock-understøttelse.

Ulemper ved FPGA'er

DE-10 Nano til en MiSTER FPGA build

Der er dog nogle få ulemper. Til at begynde med fylder de meget mere end traditionelle CPU'er, og de er også væsentligt dyrere at producere. Enheder som Analogue Pocket og MiSTER FPGA koster mange penge, hvor sidstnævnte sætter dig tilbage for mere end $500, hvis du også henter et par tilføjelser. De fleste mennesker ville bare foretrække at efterligne spil på deres smartphones eller deres computere og er ligeglade med den pixel-perfekte nøjagtighed, som emulering på hardwareniveau giver.

Selvfølgelig er FPGA'er også lidt i deres forbrugerrelaterede barndom, hvor deres popularitet kun er steget i de senere år. De har faktisk eksisteret lige så længe i professionelle use cases af videnskabsmænd, chipset arkitekter, AI og lignende, men det er først i de senere år, at forbrugerenheder er dukket op og er levedygtige til brug på mere afslappede eller entusiastiske måder.

For de fleste mennesker, der ønsker at komme ind i emulering, er bekvemmeligheden ved en dedikeret enhed, der garanterer en Den originale oplevelse er lokkende, men det er ikke noget, som alle har brug for eller ligefrem bekymrer sig om. Personligt, hvis jeg vil spille et spil som Super Mario Bros, er jeg glad for bare at spille det på min telefon på farten. Jeg har ikke brug for en dedikeret enhed til det, men jeg forstår appellen ved at have en.