Field Programmable Gate Arrays kõlavad keeruliselt, kuid avavad arendajatele täiesti uue maailma.
Kui olete kunagi lugenud retromängude emuleerimist, olete võib-olla kohanud pooljuhttüüpi, mida nimetatakse väljaprogrammeeritava värava massiiviks (FPGA). Need on spetsiaalsed integraallülitused, mida saab pärast valmistamist ümber konfigureerida tänu konfigureeritavatele loogikaplokkidele (CLB). Teisisõnu saate kiibistiku põhimõtteliselt ümber programmeerida, et see toimiks nagu mis tahes muud tüüpi digitaalsed vooluringid, millel on mitu rakendust AI-s, kiibistiku kujundamises ja muudes valdkondades.
FPGA-del on palju kasutusjuhtumeid ja sellised seadmed nagu Analogue Pocket kasutavad neid erinevate pihuseadmete toetamiseks. Kuid Microsoft kasutab Bingi toiteks ka FPGA-sid, kuna see võimaldab ettevõttel neid kiiresti ümber programmeerida, et toetada uusi algoritme nende väljatöötamisel.
FPGA vs traditsioonilised protsessorid: mis vahe on?
Erinevalt tavalisest kiibistikust - Snapdragon 8 Gen 2
Näiteks FPGA-d ei ole ette nähtud kohapeal ümberprogrammeerimiseks. See on kiibil olev süsteem (SoC), mis koosneb mitmest osast, sealhulgas GPU-st, NPU-st ja CPU-st. Kui see on tarnitud, saavad selle tarbijad ja ettevõtted.FPGA-d on aga ette nähtud tempermalmist, et kasutaja saaks muuta kiibi osi ilma lisakulusid või -riske kaasamata. Kiiresti muutuvates tööstusharudes, nagu isejuhtivad autod, saab seadme mis tahes aspekti jaoks igal ajal kasutusele võtta uusi eeskirju ja standardeid. FPGA kasutamine võib võimaldada OTA värskendust, et programmeerida kiip ümber, et toetada uusi standardeid.
Üks suur erinevus FPGA-de ja traditsiooniliste protsessorite vahel on see, et need on loodud töötlema andmeid paralleelselt palju madalama taktsagedusega. Näiteks FPGA, millel on 10 andmetöötluseks mõeldud konveierit, saab iga konveieri jaoks sooritada kahe arvuga korrutamistoiminguid, korrutades 20 numbrit tsükli kohta. Traditsiooniline protsessor suudab korrutada kaks numbrit tsükli, tuuma kohta ja järjestikuses järjekorras.
Kuidas FPGA-d emuleerimiseks töötavad?
FPGA-sid kasutatakse sageli riistvara emuleerimiseks ja kiibistiku kujundamise protsessi huvitav osa on FPGA-de kasutamine SoC erinevate osade jäljendamiseks testimisel. Kiibistiku kujundajad saavad kasutada rakendusspetsiifilise integraallülituse (ASIC) prototüüpimiseks mitut FPGA-d. Riistvarakujunduse loomiseks kasutatakse riistvara kirjelduskeelt (HDL) ja see keel ütleb FPGA-le, kuidas ennast korraldada. Analoogtasku puhul levitatakse neid kujundusi tavaliselt Verilogis kirjutatud "südamike" kujul ja kasutajad saavad tuuma alla laadida, et valmistada pihuarvuti ette konkreetsete konsoolide jaoks.
Näiteks Analogue Pocket saab lugeda Game Boy mänge otse oma kassetipesas ja mängida neid nii, nagu oleks see algne konsool. Mitte ainult seda, vaid kassetiadapterid lisavad täiendavat tuge ka teistele seadmetele, nagu Game Gear, Atari Lynx ja palju muud. See on võimalik ainult FPGA ümberprogrammeeritava olemuse tõttu, mis kasutab mängude mängitavuse tagamiseks tarkvara emuleerimise asemel riistvara emulatsiooni. MiSTer (mis kasutab alusena DE-10 Nano FPGA plaati ja vajab selle peale lisamooduleid) on sarnane selle poolest, et seda saab kasutada selliste konsoolide nagu SNES, Sega Genesis ja isegi GameCube. Riistvara emuleerimine on üldiselt täpsem kui tarkvara emuleerimine, pakkudes samal ajal jõudlust.
Kuigi riistvara vananeb ja võib aja jooksul muutuda ebausaldusväärseks, saab FPGA-sid lihtsalt ümber programmeerida, et jäljendada sama riistvarakogemust.
Muidugi ei tähenda see, et tuumad oleksid kiibistiku täiuslik HDL-i üks-ühele tõlgendus. Need on üsna lähedal, kuid aja jooksul tehakse tuumadele parandusi ja täiustusi, et lahendada probleeme, mida tavakasutuses võidakse tuvastada. Need tuumad on valmistatud nendesse seadmetesse kuuluvate kiibikomplektide pöördprojekteerimise teel ja need nõuavad iga emaplaadi komponendi kaardistamist. Kohandatud patenteeritud kiibikomplektides muutub see veelgi keerulisemaks, kuna arendajad peavad sageli nägema mikroskoobiga "katteta" kiip, et näha, mis kiibi sees täpselt toimub, ja seda korrata.
Seetõttu on FPGA-d olulised ka riistvara säilitamiseks. Kuigi riistvara vananeb ja võib aja jooksul muutuda ebausaldusväärseks, saab FPGA-sid lihtsalt ümber programmeerida, et jäljendada sama riistvarakogemust. Kiip korraldab enda sees ümber oma füüsilise loogika, et see vastaks sellele antud tuumale. OpenFPGA ökosüsteem on loodud selleks, et aidata seda riistvara säilitada.
Lisaks saate lisakasu, kui mängite neid mänge õiguspärasel viisil, kuid üldiselt parema riistvaraga. Saate osta 220 dollari eest analoogtasku ja mängida Game Boy mänge nagu varem, kuid parema koostekvaliteedi, parema ekraani ja isegi doki toega.
FPGA-de puudused
Siiski on mõned puudused. Alustuseks võtavad need palju rohkem ruumi kui traditsioonilised CPU-d ja nende tootmine on ka oluliselt kallim. Sellised seadmed nagu Analogue Pocket ja MiSTer FPGA maksavad palju raha, kusjuures viimane maksab teile rohkem kui 500 dollarit tagasi, kui valite ka mõne lisandmooduli. Enamik inimesi eelistaks lihtsalt oma nutitelefonis või arvutis mänge emuleerida ega hooli riistvaratasemel emuleerimise pakutavast pikslite täiuslikust täpsusest.
Muidugi on FPGA-d ka mõnevõrra oma tarbijatega seotud lapsekingades, kusjuures nende populaarsus on viimastel aastatel tõusnud. Teadlased, kiibistikuarhitektid, tehisintellekt ja teised sarnased on neid tegelikult nii kaua kasutanud professionaalsel kasutamisel, kuid Alles viimastel aastatel on laiemalt levinud tarbeseadmed ja need on kasutuskõlbulikud igapäevaseks või entusiastlikumaks kasutamiseks.
Enamiku inimeste jaoks, kes soovivad emuleerimisega tegeleda, on spetsiaalse seadme mugavus, mis tagab a originaalne kogemus on köitev, kuid see pole midagi, mida kõik vajavad või isegi hoolivad. Kui ma isiklikult tahan mängida sellist mängu nagu Super Mario Bros, siis mängin seda hea meelega oma telefonis liikvel olles. Ma ei vaja selle jaoks spetsiaalset seadet, kuid ma mõistan selle olemasolu võlu.