Новость с 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.
i386 по соотношению производительности и помехоустойчивости к энергопотреблению уже не просто проигрывает, а даже не заявляется не соревнования с ARM, причем довольно старыми. Поэтому востребован только для ремонта старой пром-электроники или изготовления старых изделий, у которых стоимость редизайна просто космическая, с учетом сертификационных испытаний - я про авионику.
Следовательно “вскрыты” не имеет вообще никакой ценности в рамках второго моего пункта. Сертификация распространена только на “родной” процессор. Замена - уже редизайн, и в этом случае будут переходить на что-то нормальное. В ремонте тоже. Так что возможность производства без лицензии просто любопытна для нас - гиков и нердов. В промышленности совершенно бесполезна.
Я давным-давно спрашивал у нашего инженера в конторе, который как раз FPGAшник (мы с ним стыковались - я с части софта а он со стороны железа) - типа, а можно ли на FPGA запилить проц. Он тогда говорил, что таких FPGAшек не бывает (был 2007 год на дворе) и называл цифру в 100 тыщ ячеек. Мы не говорили про конкретный процессор - я спрашивал про “процессор ПК”
А мы все делали на Xilinx Spartan самый модный на то время. Не помню номер.
А вдруг там закладки от АНБ? :). Знаем мы, как у них сертификация проходит.
Вон, официально на ESP32S3 49 пинов. Но весь код ROM проверяет номер пина на значение от 0 до 57. Зочем? Подозруха!
Труд титанический был проделан. Нам рассказывали , студентам, в МИЭТ, про такой реверс инжиниринг. Про стравливание кислотами и прочие микроскопы. Так было утащено несколько микросхем у бусурман заграничных - нам даже называли их маркировку но я позабыл. :). По-моему, аналог проца, на котором PDP-11 запускалась. Забыл. У нас это было в комптютерах УК-НЦ и ДВК
По нынешним временам и 100К это не так уж и много. А ваша ссылка выше говорит, что для 386 достаточно порядка 18К
Давно уже собирают аналоги разных коммерческих процессоров на ФПГА.