Наконец-то разломали i386. Без ИИ не обошлось

Новость с opennet.ru. Перепечатывать новости это как-то тупо, но уж больно хорошая милота. Одобряем!

386 выпускают до сих пор. В самолетики ставят

Энтузиасты смогли успешно извлечь и дизассемблировать микрокод процессора Intel 80386, который из-за отсутствия документации считался “чёрным ящиком”. Бинарный образ микрокода был воссоздан с привлечением AI по фотографиям кристалла в высоком разрешении, а логика работы разобрана через трассировку соединений на кристалле. Постепенно были определены структура микрокоманд (μ-ops), поля, порядок исполнения и маркеры конца инструкций. Наработки проекта опубликованы на GitHub как общественное достояние.

Выявлено, что в CPU 80386 каждая инструкция полностью исполняется через микрокод, в то время как в 8086 и современных процессорах часть инструкций обрабатывается напрямую. Кроме того, в отличие от процессоров 8086, в 80386 микрокод не реализует алгоритмы напрямую, а в основном настраивает аппаратные ускорители (умножитель, делитель, быстрый сдвиг, PTU (Protection Test Unit)).

В ходе исследования также была обнаружена возможная проблема с безопасностью при обработке битовой карты прав доступа к вводу/выводу (IO permission bitmap): при 4-байтовом обращении к портам проверялись биты прав доступа только для первых 3 байтов, а доступ к 4-му байту не проверялся, что теоретически допускало обращение к аппаратным регистрам, доступ к которым должен был быть запрещён.

На основе опубликованного микрокода разработан открытый CPU z386, реализованный на языке SystemVerilog и работающий с использованием FPGA. Вместо реализации каждой инструкции в форме отдельного RTL (Register-transfer level) в z386 реализованы аппаратные структуры, которыми управляет оригинальный микрокод. Производительность подготовленной реализации соответствует быстрому 386 ПК (~70MHz). Под управлением z386 удалось успешно запустить DOS 6/7, DOS/4GW, DOS/32A и игры, такие как Doom и Cannon Fodder.

“Неуловимый Джо” или реально полезно?

Ну, запилили теперь открытый проц аппаратно совместимый с 386. Можно выпускать процы без отчислений интелу. Я считаю - вин-вин

Оно то да, только что оно даёт программисту? Ведь он к микрокоду, всё равно никаким боком… Или нет?
P.S.

А , что, раньше на какой-нибудь ПЛИС не могли сделать?

Да вроде на тройке эта игруха и так хорошо крутилась тогда.

Сравните цены на плис Verilog и 386 - нах оно такое надо кому !!!

Я не спорить, а спросить (я в этой теме совсем зелёный) - а что Altera Cyclon4 , к примеру, не справится? Вроде не дорого…

в коммутаторе сотовом они тоже были, штук 100 вроде, но это не точно, может уже на другие процы перевели

А это интересный вопрос.
@vvb333007 , Вы не в курсе, сколько ячеек (или что там ) требуется для запуска эмуляции 386ого?

Добавка - отвечаю сам себе, нужен FPGA c 20k+ LUTs.
@Дим-мычъ , дешёвые девборды с Altera Cyclon4 не потянут, у них всего 6к

i386 по соотношению производительности и помехоустойчивости к энергопотреблению уже не просто проигрывает, а даже не заявляется не соревнования с ARM, причем довольно старыми. Поэтому востребован только для ремонта старой пром-электроники или изготовления старых изделий, у которых стоимость редизайна просто космическая, с учетом сертификационных испытаний - я про авионику.
Следовательно “вскрыты” не имеет вообще никакой ценности в рамках второго моего пункта. Сертификация распространена только на “родной” процессор. Замена - уже редизайн, и в этом случае будут переходить на что-то нормальное. В ремонте тоже. Так что возможность производства без лицензии просто любопытна для нас - гиков и нердов. В промышленности совершенно бесполезна.

На плисине выпиливать 386 процессор.. во-опервых не хватит плисины - больно дофига вентилей. Надо несколько плисин.

Иранцы и Северокорецы еще интересуются :).

Я давным-давно спрашивал у нашего инженера в конторе, который как раз FPGAшник (мы с ним стыковались - я с части софта а он со стороны железа) - типа, а можно ли на FPGA запилить проц. Он тогда говорил, что таких FPGAшек не бывает (был 2007 год на дворе) и называл цифру в 100 тыщ ячеек. Мы не говорили про конкретный процессор - я спрашивал про “процессор ПК”

А мы все делали на Xilinx Spartan самый модный на то время. Не помню номер.

А вдруг там закладки от АНБ? :). Знаем мы, как у них сертификация проходит.

Вон, официально на ESP32S3 49 пинов. Но весь код ROM проверяет номер пина на значение от 0 до 57. Зочем? Подозруха! :face_with_raised_eyebrow:

Труд титанический был проделан. Нам рассказывали , студентам, в МИЭТ, про такой реверс инжиниринг. Про стравливание кислотами и прочие микроскопы. Так было утащено несколько микросхем у бусурман заграничных - нам даже называли их маркировку но я позабыл. :). По-моему, аналог проца, на котором PDP-11 запускалась. Забыл. У нас это было в комптютерах УК-НЦ и ДВК

По нынешним временам и 100К это не так уж и много. А ваша ссылка выше говорит, что для 386 достаточно порядка 18К
Давно уже собирают аналоги разных коммерческих процессоров на ФПГА.

Зачем? - не знаю, интересно наверное :slight_smile:

По-гуглил, сейчас есть и поболе, но, как сказал @Komandir , цена у них :

P.S. Пока писал, не заметил ответа выше от @MMM