Nadšencům se podařilo extrahovat a rozebrat mikrokód procesoru Intel 80386, který byl kvůli nedostatku dokumentace považován za „černou skříňku“. Binární obraz mikrokódu byl znovu vytvořen pomocí umělé inteligence z fotografií čipu ve vysokém rozlišení a logika byla dešifrována pomocí zapojení na čipu. Postupně byla určena struktura mikrooperací, pole, pořadí provádění a značky konce instrukcí. Výsledky projektu jsou publikovány na GitHubu jako veřejná doména.

Bylo zjištěno, že v procesoru 80386 je každá instrukce prováděna výhradně prostřednictvím mikrokódu, zatímco v procesorech 8086 a moderních procesorech jsou některé instrukce zpracovávány přímo. Navíc, na rozdíl od procesorů 8086, mikrokód v 80386 přímo neimplementuje algoritmy, ale primárně konfiguruje hardwarové akcelerátory (násobič, dělič, rychlý posuvník, PTU (Protection Test Unit)).
Studie také odhalila potenciální bezpečnostní problém při zpracování bitmapy oprávnění pro I/O: při přístupu ke 4bajtovým portům se kontrolovaly pouze bity oprávnění pro první 3 bajty a přístup ke 4. bajtu se nekontroloval, což teoreticky umožňovalo přístup k hardwarovým registrům, které by neměly být přístupné.
Na základě publikovaného mikrokódu byl vyvinut open-source procesor z386, implementovaný v SystemVerilogu a běžící na FPGA. Místo implementace každé instrukce jako samostatné RTL (Register-Transfer Layer) implementuje z386 hardwarové struktury řízené původním mikrokódem. Výkon výsledné implementace se shoduje s rychlým počítačem 386 (~70 MHz). Z386 úspěšně spouštěl DOS 6/7, DOS/4GW, DOS/32A a hry jako Doom a Cannon Fodder.
Zdroj: opennet.ru
