
Entuzijasti su uspjeli uspješno izvući i disassemblirati mikrokod procesora Intel 80386, koji je zbog nedostatka dokumentacije smatran 'crnom kutijom'. Binarna slika mikrokoda ponovno je kreirana uz pomoć AI na temelju fotografija kristala visokog razlučivosti, a logika rada razrađena je putem praćenja veza na kristalu. Postepeno su određene struktura mikrokomandi (μ-ops), polja, redoslijed izvršavanja i oznake kraja instrukcija. Radovi projekta objavljeni su na GitHubu kao javno dobro.
Utvrđeno je da u CPU 80386 svaka instrukcija potpuno se izvršava putem mikrokoda, dok se u 8086 i modernim procesorima dio instrukcija obrađuje izravno. Osim toga, za razliku od procesora 8086, mikrokod u 80386 ne implementira algoritme izravno, već uglavnom prilagođava hardverske akceleratore (množitelj, dijelitelj, brzi pomak, PTU (Protection Test Unit)).
Tijekom istraživanja također je otkrivena potencijalna sigurnosna problema prilikom obrade bitmapa prava pristupa ulazu/izlazu (IO permission bitmap): prilikom 4-bajtnih pristupa portovima provjeravani su bitovi prava pristupa samo za prva 3 bajta, dok pristup 4. bajtu nije bio provjeren, što teoretski omogućava pristup hardverskim registrima kojima je pristup trebao biti zabranjen.
Na temelju objavljenog mikrokoda razvijen je otvoreni CPU z386, implementiran na jeziku SystemVerilog i koji radi koristeći FPGA. Umjesto implementacije svake instrukcije u obliku odvojenog RTL (wikipedia.org) (Register-transfer level) u z386 implementirane su hardverske strukture kojima upravlja originalni mikrokod. Performanse pripremljene implementacije odgovaraju brzom 386 PC (~70MHz). Pod upravom z386 uspjelo je uspješno pokrenuti DOS 6/7, DOS/4GW, DOS/32A i igre kao što su Doom i Cannon Fodder.
Izvor: linux.org.ru
