Nadšenci úspěšně extrahovali a disassemblovali mikrokód procesoru Intel 80386, který byl považován za "černou skříňku" kvůli nedostatku dokumentace. Binární obraz mikrokódu byl vytvořen za pomoci umělé inteligence ze snímků krystalu s vysokým rozlišením a logika práce byla analysována pomocí sledování spojení na krystalu. Postupně byla určena struktura mikrokonfigurací (μ-ops), pole, pořadí provádění a značky konce instrukcí. Výsledky projektu byly publikovány na GitHubu jako veřejné vlastnictví.

Bylo zjištěno, že v CPU 80386 je každá instrukce plně prováděna prostřednictvím mikrokódu, zatímco v 8086 a moderních procesorech je část instrukcí zpracovávána přímo. Navíc v kontrastu s procesory 8086, v 80386 mikrokód neimplementuje algoritmy přímo, ale především nastavuje hardwarové akcelerátory (násobič, dělitel, rychlé posuny, PTU (Protection Test Unit)).
Během výzkumu byla také objevena potenciální bezpečnostní chyba při zpracování bitmapy oprávnění pro vstup/výstup (IO permission bitmap): při 4-bajtovém přístupu k portům byly kontrolovány bity oprávnění pouze pro první 3 bajty, a přístup k 4. bajtu nebyl kontrolován, což teoreticky umožnilo přístup k hardwarovým registrům, ke kterým by měl být přístup zakázán.
Na základě publikovaného mikrokódu byl vyvinut otevřený CPU z386, realizovaný v jazyce SystemVerilog a fungující na základě FPGA. Místo implementace každé instrukce jako samostatné RTL (Register-transfer level) byly v z386 implementovány hardwarové struktury řízené původním mikrokódem. Výkon připravené realizace odpovídá rychlému 386 PC (~70 MHz). Pod řízením z386 se podařilo úspěšně spustit DOS 6/7, DOS/4GW, DOS/32A a hry jako Doom a Cannon Fodder.
Zdroj: opennet.ru
