Field Programmable Gate Arrays звучат сложно, но отварят цял нов свят за разработчиците.
Ако някога сте чели за емулация на ретро игри, може да сте попаднали на тип полупроводник, наречен Field-Programmable Gate Array (FPGA). Това са специални интегрални схеми, които могат да се преконфигурират след като бъдат произведени благодарение на конфигурируеми логически блокове (CLB). С други думи, можете основно да препрограмирате чипсета, за да действа като всеки друг тип цифрова схема, която има множество приложения в AI, дизайн на чипсет и други области.
FPGA имат много случаи на употреба и устройства като Analogue Pocket ги използват за поддръжка на различни ръчни устройства. Въпреки това Microsoft също използва FPGA за захранване на Bing, тъй като позволява на компанията бързо да ги препрограмира, за да поддържа нови алгоритми, докато се разработват.
FPGA срещу традиционни процесори: Каква е разликата?
За разлика от стандартния чипсет — на Snapdragon 8 Gen 2, например — FPGA не е проектиран да бъде препрограмиран на място. Това е система върху чип (SoC), съставена от множество части, включително GPU, NPU и CPU. След като бъде изпратено, това ще получат потребителите и фирмите.
FPGA обаче са предназначени да бъдат ковки, така че потребителят да може да променя части от чипа, без да въвежда допълнителни разходи или рискове. В бързо развиващи се индустрии, като например самоуправляващите се автомобили, нови разпоредби и стандарти могат да бъдат въведени по всяко време за всеки аспект на устройството. Използването на FPGA може да позволи OTA актуализация за препрограмиране на чипа, за да поддържа нови стандарти.
Една голяма разлика между FPGA и традиционните процесори е, че те са проектирани да обработват данни паралелно при компромис от много по-ниска тактова честота. Например FPGA с 10 тръбопровода за обработка на данни може да изпълнява операции по умножение на две числа за всеки тръбопровод, умножавайки 20 числа на цикъл. Традиционният процесор може да умножава две числа на цикъл, на ядро и в последователен ред.
Как работят FPGA за емулация?
FPGA често се използват за хардуерна емулация и интересна част от процеса на проектиране на чипсета е използването на FPGA за емулиране на различни части на SoC при тестване. Дизайнерите на чипсети могат да използват множество FPGA за прототип на специфична за приложението интегрална схема (ASIC). Езикът за описание на хардуера (HDL) се използва за създаване на хардуерен дизайн и този език казва на FPGA как да се подреди. В случая на Analogue Pocket, тези проекти се разпространяват под формата на „ядра“, обикновено написани на Verilog, и потребителите могат да изтеглят ядро, за да подготвят джоба за конкретни конзоли.
Например, Analogue Pocket може да чете игри на Game Boy директно в своя слот за касети и да ги възпроизвежда, сякаш е оригиналната конзола. Не само това, но адаптерите за касети добавят допълнителна поддръжка и за други устройства, като Game Gear, Atari Lynx и други. Това е възможно само поради препрограмируемия характер на FPGA, който използва хардуерна емулация вместо софтуерна, за да гарантира, че игрите могат да се играят. MiSTer (който използва DE-10 Nano FPGA платка като основа и изисква допълнителни модули върху нея) е подобен по това, че може да се използва за емулиране на конзоли като SNES, Sega Genesis и дори GameCube. Хардуерната емулация обикновено е по-точна от софтуерната емулация, като същевременно предлага предимства в производителността.
Докато хардуерът остарява и може да стане ненадежден с течение на времето, FPGA могат просто да бъдат препрограмирани, за да емулират същия хардуерен опит.
Разбира се, това не означава, че ядрата са перфектна едно към едно HDL интерпретация на чипсет. Те са доста близки, но се правят корекции и подобрения на ядрата с течение на времето, за да се коригират проблеми, които могат да бъдат идентифицирани при нормална употреба. Тези ядра са направени чрез обратно инженерство на чипсетите, които влизат в тези устройства, и изискват картографиране на всеки компонент на дънната платка. В персонализираните собствени чипсети става още по-трудно, като разработчиците често трябва да видят "незатворен" чип с микроскоп, за да видите какво точно се случва вътре в чипа и да го копирате.
Ето защо FPGA също са важни за запазването на хардуера. Докато хардуерът остарява и може да стане ненадежден с течение на времето, FPGA могат просто да бъдат препрограмирани, за да емулират същия хардуерен опит. Чипът ще пренареди собствената си физическа логика вътре в себе си, за да съответства на всяко ядро, което му е дадено. Екосистемата openFPGA е проектирана да подпомогне това запазване на хардуера.
На всичкото отгоре получавате допълнителното предимство да играете тези игри по легитимен начин, но на по-добър като цяло хардуер. Можете да вземете Analogue Pocket за $220 и да играете игри на Game Boy точно както сте правили в миналото, но с по-високо качество на изработка, по-добър екран и дори поддръжка на докинг станция.
Недостатъци на FPGA
Има обаче няколко недостатъка. Като начало, те заемат много повече място от традиционните процесори и освен това са значително по-скъпи за производство. Устройства като Analogue Pocket и MiSTer FPGA струват много пари, като последното ви струва повече от $500, ако вземете и няколко добавки. Повечето хора просто биха предпочели да емулират игри на своите смартфони или компютри и не се интересуват от перфектната точност на пикселите, която осигурява емулацията на хардуерно ниво.
Разбира се, FPGA също са в ранна детска възраст, свързани с потребителите, като популярността им нараства едва през последните години. Те всъщност съществуват толкова дълго в случаи на професионална употреба от учени, архитекти на чипсети, AI и други подобни, но едва през последните години потребителските устройства се появиха и са жизнеспособни за използване по по-небрежни начини или начини за ентусиасти.
За повечето хора, които искат да влязат в емулация, удобството на специално устройство, което гарантира a вярното на оригинала изживяване е примамливо, но не е нещо, от което всеки се нуждае или дори го интересува. Лично аз, ако искам да играя игра като Super Mario Bros, ще се радвам просто да я играя на телефона си в движение. Не ми трябва специално устройство за това, но разбирам привлекателността да имаш такова.