Nadšencom sa úspešne podarilo extrahovať a rozobrať mikrokód procesora Intel 80386, ktorý bol kvôli nedostatku dokumentácie považovaný za „čiernu skrinku“. Binárny obraz mikrokódu bol znovu vytvorený pomocou umelej inteligencie z fotografií čipu s vysokým rozlíšením a logika bola dešifrovaná pomocou zapojenia na čipe. Postupne sa určovala štruktúra mikrooperácií, polia, poradie vykonávania a značky konca inštrukcií. Zistenia projektu sú publikované na GitHub ako verejná doména.

Zistilo sa, že v procesore 80386 sa každá inštrukcia vykonáva výlučne prostredníctvom mikrokódu, zatiaľ čo v procesoroch 8086 a moderných procesoroch sa niektoré inštrukcie spracovávajú priamo. Okrem toho, na rozdiel od procesorov 8086, mikrokód v 80386 priamo neimplementuje algoritmy, ale primárne konfiguruje hardvérové akcelerátory (násobič, delič, rýchly radenie, PTU (Protection Test Unit)).
Štúdia tiež odhalila potenciálny bezpečnostný problém pri spracovaní bitmapy povolení IO: pri prístupe k 4-bajtovým portom sa kontrolovali iba bity povolení pre prvé 3 bajty a prístup k 4. bajtu sa nekontroloval, čo teoreticky umožňovalo prístup k hardvérovým registrom, ktoré by nemali byť prístupné.
Na základe publikovaného mikrokódu bol vyvinutý open-source procesor z386, implementovaný v SystemVerilog a bežiaci na FPGA. Namiesto implementácie každej inštrukcie ako samostatnej RTL (Register-Transfer Layer) implementuje z386 hardvérové štruktúry riadené pôvodným mikrokódom. Výkon výslednej implementácie sa zhoduje s rýchlym PC 386 (~70 MHz). Z386 úspešne spúšťal DOS 6/7, DOS/4GW, DOS/32A a hry ako Doom a Cannon Fodder.
Zdroj: opennet.ru
