Ce sunt FPGA-urile?

Field Programmable Gate Arrays sună complicat, dar deschid o lume cu totul nouă pentru dezvoltatori.

Dacă ați citit vreodată în emularea retro-gaming, este posibil să fi întâlnit un tip de semiconductor numit Field-Programmable Gate Array (FPGA). Acestea sunt circuite integrate speciale care se pot reconfigura după ce au fost fabricate datorită blocurilor logice configurabile (CLB). Cu alte cuvinte, puteți reprograma chipset-ul pentru a acționa ca orice alt tip de circuit digital, care are mai multe aplicații în AI, design chipset și alte domenii.

FPGA-urile au multe cazuri de utilizare, iar dispozitivele precum Analogue Pocket le folosesc pentru a suporta diferite dispozitive portabile. Cu toate acestea, Microsoft folosește și FPGA-uri pentru a alimenta Bing, deoarece îi permite companiei să le reprogrameze rapid pentru a accepta noi algoritmi pe măsură ce sunt dezvoltați.

FPGA vs procesoare tradiționale: care este diferența?

Spre deosebire de un chipset standard - Snapdragon 8 Gen 2, de exemplu — un FPGA nu este proiectat pentru a fi reprogramat pe teren. Este un System on Chip (SoC) compus din mai multe părți, inclusiv un GPU, NPU și CPU. Odată ce este expediat, asta vor primi consumatorii și companiile.

Cu toate acestea, FPGA-urile sunt menite să fie maleabile, astfel încât utilizatorul să poată schimba porțiuni ale cipului fără a introduce costuri sau riscuri suplimentare. În industriile aflate în mișcare rapidă, cum ar fi automobilele autonome, pot fi introduse în orice moment noi reglementări și standarde pentru orice aspect al dispozitivului. Utilizarea unui FPGA poate permite o actualizare OTA pentru a reprograma cipul pentru a suporta noi standarde.

O mare diferență între FPGA-uri și procesoarele tradiționale este că acestea sunt concepute pentru a procesa date în paralel la un compromis de o viteză de ceas mult mai mică. De exemplu, un FPGA cu 10 conducte pentru prelucrarea datelor poate executa operații de multiplicare pe două numere pentru fiecare conductă, înmulțind 20 de numere pe ciclu. Un procesor tradițional poate înmulți două numere pe ciclu, pe nucleu și în ordine secvențială.

Cum funcționează FPGA-urile pentru emulare?

FPGA-urile sunt adesea folosite pentru emularea hardware, iar o parte interesantă a procesului de proiectare a chipset-urilor este utilizarea FPGA-urilor pentru a emula diferite părți ale SoC în testare. Proiectanții de chipset-uri pot folosi mai multe FPGA-uri pentru a prototipa un circuit integrat specific aplicației (ASIC). Un limbaj de descriere hardware (HDL) este folosit pentru a crea un design hardware, iar acest limbaj spune FPGA cum să se aranjeze. În cazul Analogue Pocket, aceste modele sunt distribuite sub formă de „nuclee” scrise de obicei în Verilog, iar utilizatorii pot descărca un nucleu pentru a pregăti handheld-ul pentru anumite console.

De exemplu, Analogue Pocket poate citi jocuri Game Boy direct în slotul său pentru cartuș și le poate juca ca și cum ar fi consola originală. Nu numai asta, dar adaptoarele pentru cartuș adaugă suport suplimentar și pentru alte dispozitive, cum ar fi Game Gear, Atari Lynx și multe altele. Acest lucru este posibil numai datorită naturii reprogramabile a unui FPGA care utilizează emularea hardware în loc de emularea software pentru a se asigura că jocurile sunt jucabile. Un MiSTer (care folosește o placă DE-10 Nano FPGA ca bază și necesită module suplimentare pe deasupra) este similar prin faptul că poate fi folosit pentru a emula console precum SNES, Sega Genesis și chiar și GameCube. Emularea hardware este, în general, mai precisă decât emularea software, oferind, de asemenea, beneficii de performanță.

În timp ce hardware-ul îmbătrânește și poate deveni nefiabil în timp, FPGA-urile pot fi pur și simplu reprogramate pentru a emula aceeași experiență hardware.

Desigur, asta nu înseamnă că nucleele sunt o interpretare HDL perfectă one-to-one a unui chipset. Se apropie destul de mult, dar corecțiile și îmbunătățirile sunt aduse în timp pentru a rezolva problemele care pot fi identificate în utilizarea normală. Aceste nuclee sunt realizate prin inginerie inversă a chipset-urilor care intră în aceste dispozitive și necesită cartografierea fiecărei componente de pe placa de bază. În chipset-urile proprietare personalizate, devine și mai dificil, dezvoltatorii fiind adesea nevoiți să vadă un cip „necapsulat” cu un microscop pentru a vedea exact ce se întâmplă în interiorul cipului și a-l reproduce.

De aceea, FPGA-urile sunt importante și pentru conservarea hardware-ului. În timp ce hardware-ul îmbătrânește și poate deveni nefiabil în timp, FPGA-urile pot fi pur și simplu reprogramate pentru a emula aceeași experiență hardware. Cipul își va rearanja propria logică fizică în interiorul său pentru a se potrivi cu orice nucleu care i-a fost dat. Ecosistemul openFPGA este conceput pentru a ajuta la conservarea hardware-ului.

În plus, beneficiați de avantajul suplimentar de a juca acele jocuri într-un mod legitim, dar cu un hardware general mai bun. Puteți ridica un Analogue Pocket pentru 220 USD și puteți juca jocuri Game Boy la fel ca în trecut, dar cu o calitate mai bună a construcției, un ecran mai bun și chiar suport pentru andocare.

Dezavantajele FPGA-urilor

DE-10 Nano pentru o construcție MiSTer FPGA

Cu toate acestea, există câteva dezavantaje. Pentru început, ocupă mult mai mult spațiu decât procesoarele tradiționale și sunt, de asemenea, semnificativ mai scumpe de produs. Dispozitive precum Analogue Pocket și MiSTer FPGA costă o mulțime de bani, acesta din urmă plătind înapoi mai mult de 500 USD dacă iei și câteva suplimente. Majoritatea oamenilor ar prefera doar să emuleze jocurile de pe smartphone-urile sau computerele lor și nu le pasă de acuratețea perfectă a pixelilor pe care o oferă emularea la nivel de hardware.

Desigur, FPGA-urile sunt, de asemenea, oarecum la începuturile lor legate de consumatori, popularitatea lor crescând abia în ultimii ani. De fapt, există de atâta timp în cazuri de utilizare profesională de către oameni de știință, arhitecți de chipset, AI și altele asemenea, dar abia în ultimii ani au apărut dispozitivele de consum și sunt viabile pentru utilizare în moduri mai ocazionale sau mai entuziaste.

Pentru majoritatea oamenilor care doresc să intre în emulare, comoditatea unui dispozitiv dedicat care garantează a experiența fidelă la originală este atrăgătoare, dar nu este ceva de care toată lumea are nevoie sau chiar să le pasă. Personal, dacă vreau să joc un joc ca Super Mario Bros, sunt bucuros să-l joc pe telefon din mers. Nu am nevoie de un dispozitiv dedicat pentru el, dar înțeleg atractivitatea de a avea unul.