Programowalne macierze bramek wydają się skomplikowane, ale otwierają przed programistami zupełnie nowy świat.
Jeśli kiedykolwiek czytałeś o emulacji gier retro, być może natknąłeś się na typ półprzewodnika zwany tablicą bramek programowalnych przez użytkownika (FPGA). Są to specjalne układy scalone, które po wyprodukowaniu mogą się rekonfigurować dzięki konfigurowalnym blokom logicznym (CLB). Innymi słowy, można w zasadzie przeprogramować chipset, aby działał jak każdy inny typ obwodu cyfrowego, który ma wiele zastosowań w sztucznej inteligencji, projektowaniu chipsetów i innych dziedzinach.
Układy FPGA mają wiele zastosowań, a urządzenia takie jak Analogue Pocket wykorzystują je do obsługi różnych urządzeń przenośnych. Jednak Microsoft wykorzystuje również układy FPGA do zasilania Bing, ponieważ pozwala firmie na szybkie przeprogramowanie ich w celu obsługi nowych algorytmów w miarę ich opracowywania.
FPGA a tradycyjne procesory: jaka jest różnica?
W przeciwieństwie do standardowego chipsetu —
Jednakże układy FPGA mają być plastyczne, aby użytkownik mógł zmieniać części chipa bez powodowania jakichkolwiek dodatkowych kosztów i ryzyka. W szybko rozwijających się branżach, takich jak samochody autonomiczne, w dowolnym momencie można wprowadzić nowe przepisy i standardy dotyczące dowolnego aspektu urządzenia. Zastosowanie układu FPGA może pozwolić na aktualizację OTA w celu przeprogramowania chipa w celu obsługi nowych standardów.
Jedną z dużych różnic między układami FPGA a tradycyjnymi procesorami jest to, że są one zaprojektowane do równoległego przetwarzania danych przy znacznie niższym taktowaniu. Na przykład układ FPGA z 10 potokami do przetwarzania danych może wykonywać operacje mnożenia na dwóch liczbach dla każdego potoku, mnożąc 20 liczb na cykl. Tradycyjny procesor może pomnożyć dwie liczby na cykl, na rdzeń i w kolejności sekwencyjnej.
Jak układy FPGA sprawdzają się w emulacji?
Układy FPGA są często używane do emulacji sprzętu, a interesującą częścią procesu projektowania chipsetu jest wykorzystanie układów FPGA do emulacji różnych części SoC podczas testowania. Projektanci chipsetów mogą używać wielu układów FPGA do prototypowania układu scalonego specyficznego dla aplikacji (ASIC). Do tworzenia projektu sprzętu używany jest język opisu sprzętu (HDL), który mówi układowi FPGA, jak się zorganizować. W przypadku Analogue Pocket projekty te są dystrybuowane w postaci „rdzeni”, zwykle pisanych w Verilog, a użytkownicy mogą pobrać rdzeń, aby przygotować urządzenie pod kątem określonych konsol.
Na przykład Analogue Pocket może czytać gry Game Boy bezpośrednio w gnieździe na kartridż i odtwarzać je tak, jakby była to oryginalna konsola. Co więcej, adaptery kartridży zapewniają także dodatkową obsługę innych urządzeń, takich jak Game Gear, Atari Lynx i innych. Jest to możliwe tylko dzięki reprogramowalności układu FPGA, który wykorzystuje emulację sprzętową zamiast emulacji programowej, aby zapewnić grywalność w grach. MiSTer (który wykorzystuje płytkę DE-10 Nano FPGA jako podstawę i wymaga dodatkowych modułów na niej) jest podobny pod tym względem, że można go używać do emulacji konsol takich jak SNES, Sega Genesis, a nawet GameCube’a. Emulacja sprzętowa jest na ogół dokładniejsza niż emulacja programowa, a jednocześnie oferuje lepszą wydajność.
Chociaż sprzęt starzeje się i z biegiem czasu może stać się zawodny, układy FPGA można po prostu przeprogramować, aby emulowały te same wrażenia sprzętowe.
Oczywiście nie oznacza to, że rdzenie stanowią idealną interpretację chipsetu HDL jeden do jednego. Są całkiem blisko, ale z czasem wprowadzane są poprawki i ulepszenia rdzeni, aby rozwiązać problemy, które można zidentyfikować podczas normalnego użytkowania. Rdzenie te powstają w drodze inżynierii wstecznej chipsetów stosowanych w tych urządzeniach i wymagają mapowania każdego komponentu na płycie głównej. W przypadku niestandardowych, zastrzeżonych chipsetów staje się to jeszcze trudniejsze, a programiści często muszą to zobaczyć „niezamknięty” chip z mikroskopem, aby zobaczyć, co dokładnie dzieje się wewnątrz chipa, i odtworzyć to.
Dlatego układy FPGA są również ważne dla konserwacji sprzętu. Chociaż sprzęt starzeje się i z biegiem czasu może stać się zawodny, układy FPGA można po prostu przeprogramować, aby emulowały te same wrażenia sprzętowe. Chip przeorganizuje w sobie własną logikę fizyczną, aby dopasować się do dowolnego rdzenia, który jest mu dany. Ekosystem openFPGA został zaprojektowany, aby pomóc w ochronie sprzętu.
Co więcej, zyskujesz dodatkową korzyść polegającą na graniu w te gry w sposób zgodny z prawem, ale na ogólnie lepszym sprzęcie. Możesz kupić Analogue Pocket za 220 USD i grać w gry Game Boy tak jak w przeszłości, ale z wyższą jakością wykonania, lepszym ekranem, a nawet obsługą stacji dokującej.
Wady układów FPGA
Istnieje jednak kilka wad. Po pierwsze, zajmują dużo więcej miejsca niż tradycyjne procesory, a ponadto są znacznie droższe w produkcji. Urządzenia takie jak Analogue Pocket i MiSTer FPGA kosztują dużo pieniędzy, przy czym ten ostatni zwraca ponad 500 dolarów, jeśli dobierzesz także kilka dodatków. Większość ludzi woli po prostu emulować gry na swoich smartfonach lub komputerach i nie przejmuje się doskonałą dokładnością w pikselach, jaką zapewnia emulacja na poziomie sprzętowym.
Oczywiście układy FPGA również są w powijakach, a ich popularność wzrosła dopiero w ostatnich latach. Właściwie istnieją już od dawna w zastosowaniach profesjonalnych przez naukowców, architektów chipsetów, sztuczną inteligencję i tym podobnych, ale dopiero w ostatnich latach pojawiły się urządzenia konsumenckie, które nadają się do użytku bardziej swobodnego lub entuzjastycznego.
Dla większości osób, które chcą rozpocząć emulację, wygoda dedykowanego urządzenia gwarantująca Doświadczenie wierne oryginałowi jest kuszące, ale nie jest to coś, czego każdy potrzebuje, a nawet na czym mu zależy. Osobiście, jeśli chcę zagrać w grę taką jak Super Mario Bros, chętnie gram w nią na telefonie, będąc w ruchu. Nie potrzebuję do tego dedykowanego urządzenia, ale rozumiem atrakcyjność posiadania takiego.