Програмовані вентильні матриці звучать складно, але вони відкривають цілий новий світ для розробників.
Якщо ви коли-небудь читали про емуляцію ретро-ігор, можливо, ви стикалися з типом напівпровідника під назвою Field-Programmable Gate Array (FPGA). Це спеціальні інтегральні схеми, які можуть змінювати конфігурацію після виготовлення завдяки конфігурованим логічним блокам (CLB). Іншими словами, ви можете в основному перепрограмувати чіпсет, щоб діяти як будь-який інший тип цифрової схеми, яка має багато застосувань у штучному інтелекті, розробці чіпсетів та інших сферах.
FPGA мають багато варіантів використання, і такі пристрої, як Analogue Pocket, використовують їх для підтримки різних кишенькових пристроїв. Однак Microsoft також використовує FPGA для живлення Bing, оскільки це дозволяє компанії швидко перепрограмувати їх для підтримки нових алгоритмів у міру їх розробки.
FPGA проти традиційних процесорів: у чому різниця?
На відміну від стандартного чіпсета — Snapdragon 8 Gen 2, наприклад — FPGA не призначена для перепрограмування в польових умовах. Це система на кристалі (SoC), що складається з кількох частин, включаючи GPU, NPU та CPU. Щойно його буде відправлено, це отримають споживачі та підприємства.
Однак ПЛІС мають бути пластичними, щоб користувач міг змінювати частини мікросхеми без будь-яких додаткових витрат чи ризиків. У швидкозмінних галузях, таких як безпілотні автомобілі, нові правила та стандарти можуть бути введені в будь-який час для будь-якого аспекту пристрою. Використання FPGA може дозволити оновлення OTA для перепрограмування чіпа для підтримки нових стандартів.
Одна велика відмінність між ПЛІС і традиційними процесорами полягає в тому, що вони розроблені для паралельної обробки даних із значно нижчою тактовою частотою. Наприклад, FPGA з 10 конвеєрами для обробки даних може виконувати операції множення двох чисел для кожного конвеєра, множачи 20 чисел за цикл. Традиційний процесор може множити два числа за цикл, на ядро та в послідовному порядку.
Як FPGA працюють для емуляції?
ПЛІС часто використовуються для апаратної емуляції, і цікавою частиною процесу розробки чіпсета є використання ПЛІС для емуляції різних частин SoC під час тестування. Розробники чіпсетів можуть використовувати кілька ПЛІС для створення прототипу спеціальної інтегральної схеми (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 так само, як і раніше, але з вищою якістю збірки, кращим екраном і навіть підтримкою док-станції.
Недоліки ПЛІС
Однак є кілька недоліків. По-перше, вони займають набагато більше місця, ніж традиційні процесори, а також значно дорожчі у виробництві. Такі пристрої, як Analogue Pocket і MiSTer FPGA, коштують чимало грошей, причому останній коштує вам понад 500 доларів, якщо ви також підберете кілька доповнень. Більшість людей віддають перевагу емуляції ігор на своїх смартфонах чи комп’ютерах і не піклуються про ідеальну точність пікселів, яку забезпечує емуляція на апаратному рівні.
Звичайно, FPGA також дещо в зародковому стані, пов’язаному з споживачами, і їхня популярність лише зросла в останні роки. Насправді вони вже давно існують у випадках професійного використання вченими, розробниками чіпсетів, ШІ тощо, але Лише останніми роками з’явилися споживчі пристрої, які стали придатними для використання в повсякденних цілях або для ентузіастів.
Для більшості людей, які хочуть потрапити в емуляцію, зручність спеціального пристрою, який гарантує a справжній оригінальний досвід привабливий, але це не те, що потрібно всім або навіть не всім це цікаво. Особисто я, якщо хочу пограти в таку гру, як Super Mario Bros, я із задоволенням просто пограю в неї на своєму телефоні в дорозі. Мені не потрібен спеціальний пристрій для цього, але я розумію привабливість його наявності.