
Энтузиасты смогли успешно извлечь и дизассемблировать микрокод процессора Intel 80386, который из-за отсутствия документации считался «чёрным ящиком». Бинарный образ микрокода был воссоздан с привлечением искусственного интеллекта по фотографиям кристалла в высоком разрешении, а логика работы разобрана через трассировку соединений на кристалле. Постепенно были определены структура микрокоманд, поля, порядок исполнения и маркеры конца инструкций. Наработки проекта опубликованы на GitHub как общественное достояние.
Выявлено, что в CPU 80386 каждая инструкция полностью исполняется через микрокод, в то время как в 8086 и современных процессорах часть инструкций обрабатывается напрямую. Кроме того, в отличие от процессоров 8086, в 80386 микрокод не реализует алгоритмы напрямую, а в основном настраивает аппаратные ускорители, включая умножитель, делитель, быстрый сдвиг и блок проверки защиты.
В ходе исследования также была обнаружена возможная проблема с безопасностью при обработке битовой карты прав доступа к вводу-выводу: при четырёхбайтовом обращении к портам проверялись биты прав доступа только для первые трёх байтов, а доступ к четвёртому байту не контролировался, что теоретически допускало обращение к аппаратным регистрам, доступ к которым должен был быть закрыт.
На основе опубликованного микрокода разработан открытый CPU z386, реализованный на языке SystemVerilog и работающий с использованием FPGA. Вместо реализации каждой инструкции в форме отдельного уровня передачи регистров в z386 задействованы аппаратные структуры, которыми управляет оригинальный микрокод. Производительность подготовленной реализации соответствует быстрому ПК на базе 386 с тактовой частотой около 70 МГц. Под управлением z386 удалось успешно запустить операционные системы DOS 6 и 7, защищенные режимы DOS/4GW и DOS/32A, а также культовые игры, такие как Doom и Cannon Fodder.





