Entusiaster lykkedes med at udtrække og adskille mikrokoden fra en Intel 80386-processor, som blev betragtet som en "sort boks" på grund af manglende dokumentation. Et binært billede af mikrokoden blev genskabt ved hjælp af AI fra fotografier i høj opløsning af chipset, og logikken blev dechifreret ved hjælp af on-die-ledninger. Mikrooperationsstrukturen, felterne, udførelsesrækkefølgen og instruktionsafslutningsmarkørerne blev gradvist bestemt. Projektets resultater er offentliggjort på GitHub som public domain.

Det blev opdaget, at i 80386 CPU'en udføres hver instruktion udelukkende via mikrokode, mens i 8086 og moderne processorer behandles nogle instruktioner direkte. Desuden implementerer mikrokoden i 80386, i modsætning til i 8086 processorer, ikke direkte algoritmer, men konfigurerer primært hardwareacceleratorer (multiplikator, divider, fast shifter, PTU (Protection Test Unit)).
Undersøgelsen afdækkede også et potentielt sikkerhedsproblem i håndteringen af IO-tilladelsesbitmap'en: ved adgang til 4-byte-porte blev kun tilladelsesbittene for de første 3 bytes kontrolleret, og adgangen til den 4. byte blev ikke kontrolleret, hvilket teoretisk set tillod adgang til hardwareregistre, der ikke burde være tilgængelige.
Baseret på publiceret mikrokode blev en open source z386 CPU udviklet, implementeret i SystemVerilog og kørt på en FPGA. I stedet for at implementere hver instruktion som en separat RTL (Register-Transfer Layer), implementerer z386 hardwarestrukturer styret af den originale mikrokode. Ydeevnen af den resulterende implementering matcher den af en hurtig 386 PC (~70 MHz). z386 kørte med succes DOS 6/7, DOS/4GW, DOS/32A og spil som Doom og Cannon Fodder.
Kilde: opennet.ru
