Разработчик nand2mario, известный своими FPGA-проектами для плат Sipeed Tang и ретро-ядер для MiSTer, представил проект z386 – открытую FPGA-реализацию процессора Intel 80386, построенную на основе восстановленного оригинального микрокода Intel.
В отличие от классических FPGA-ядер x86, где инструкции обычно реализуются вручную через RTL-логику, z386 пытается воспроизвести внутреннюю архитектуру настоящего 80386. Проект включает реализацию декодера инструкций, микрокодного секвенсора, protected mode, страничной адресации памяти, кэша и других блоков процессора.
Основой разработки стала опубликованная ранее декомпиляция микрокода Intel 80386, которую изучали энтузиасты reverse engineering-сообщества. Автор подробно описывает процесс исследования архитектуры процессора и особенности работы отдельных внутренних компонентов CPU.
По словам разработчика, ядро уже умеет загружать DOS 6 и DOS 7, запускать DOS/4GW и DOS/32A-приложения в защищённом режиме, а также воспроизводить некоторые игры, включая Doom и Cannon Fodder.
Одновременно nand2mario выпустил и новое ядро для платформы MiSTer. По производительности оно уступает популярному ao486, но при этом использует заметно меньше FPGA-ресурсов. В тестах Doom новое ядро показывает около 16,5 FPS против примерно 21 FPS у ao486.
При этом сам проект оказался значительно компактнее: объём кода z386 составляет около 8 тысяч строк против примерно 17,6 тысячи у ao486. Благодаря этому в FPGA может остаться больше свободного места для дополнительной периферии и новых возможностей. В сообществе уже обсуждают потенциальное появление полноценной поддержки FPU.
Для большинства игроков появление нового ядра вряд ли станет серьёзным событием – ao486 уже давно покрывает основные сценарии запуска DOS-игр и старого программного обеспечения. Однако для FPGA-разработчиков и энтузиастов архитектуры x86 проект стал одним из самых необычных low-level-экспериментов последних лет.