
Nadšenci byli schopni Úspěšně extrahován a disassemblován 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 analyzována pomocí stop na čipu. Postupně byla určena struktura mikrooperací (μ-ops), polí, pořadí provádění a markerů konce instrukcí. Hlavní body projektu zveřejněno 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ý posun, PTU (jednotka pro testování ochrany)).
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 vyvinutý společností otevřený procesor z386, implementovaný v jazyce SystemVerilog a běžící na FPGA. Místo implementace každé instrukce jako samostatné Zprava doleva (wikipedia.org) Procesor z386 implementuje hardwarové struktury (úroveň registr-přenos) řízené původním mikrokódem. Výkon připravené implementace odpovídá rychlému počítači s procesorem 386 (~70 MHz). Procesor z386 úspěšně spouštěl systémy DOS 6/7, DOS/4GW, DOS/32A a hry jako Doom a Cannon Fodder.
Zdroj: linux.org.ru
