Представлен процессор 486SX-20 на плате ПЛИС размером с кредитную карту
Разработчик опубликовал проект 486Tang — процессора 486SX-20 на плате ПЛИС, размер которой не больше кредитной карты.
486Tang — проект порта ядра ao486 MiSTer PC на ПЛИС Sipeed Tang Console 138K. По словам автора, это первая попытка портировать ao486 на FPGA, не относящийся к Altera.
Он подробно описывает, как пришлось адаптировать ядро и архитектуру под ограничения платы Tang. В случае с памятью (RAM) на MiSTer используется DDR3, тогда как на Tang — SDRAM как основная память. Tang-плата SDRAM 16-битная, тогда как ao486 нужен 32-битный доступ. Чтобы обойти это ограничение, автор провёл «double-pumping» (логика SDRAM работает вдвое быстрее системного такта), чтобы можно было считывать/записывать 32-битные значения за один такт CPU.
Кроме того, на MiSTer IDE-запросы обрабатываются через ARM HPS, который читает образы дисков. Tang не имеет такого быстрого интерфейса между MCU/ARM-подсистемой и FPGA. Разработчик решил использовать SD-карту для хранения образов и BIOS/IDE данных, а FPGA напрямую обращается к ней.
Также он создал загрузчик (boot loader), который загружает BIOS, VGA BIOS, ID-данные IDE, и CMOS настройки из первых 128 KB SD-карты перед тем, как дать контроль CPU.
Плата Tang имеет менее мощный FPGA (Gowin GW5A), поэтому производительность изначально была невысокой.
В рамках оптимизации пришлось сократить длинные логические пути (critical paths) путём вставки регистров (pipeline) или репликации цепей, особенно reset-сигналов, а также уменьшения fan-out (числа элементов, подключённых к одной точке).
Также потребовалась оптимизация инструкции выборки (instruction fetch), чтобы снизить критические задержки при декодировании и обработке инструкций с переменной длиной.
Наконец, автор изменил структуру TLB (Translation
Читать на habr.com