
Entusiaster har formået at udtrække og disassemble mikrokoden fra Intel 80386-processoren, som på grund af manglende dokumentation blev betragtet som en 'black box'. Binarbilledet af mikrokoden blev genskabt med hjælp fra AI ved hjælp af højopløselige billeder af chippen, og logikken blev analyseret gennem sporingen af forbindelserne på chippen. Strukturen af mikrokommandoer (μ-ops), felter, udførelsesrækkefølge og slutmarkører for instruktioner blev gradvist identificeret. Projektets resultater er offentliggjort er tilgængelige på GitHub som offentlig ejendom.
Det blev fastslået, at i CPU 80386 udføres hver instruktion fuldt ud gennem mikrokoden, mens i 8086 og moderne processorer behandles en del instruktioner direkte. Derudover implementerer mikrokoden ikke i 80386 algoritmer direkte, men konfigurerer hovedsageligt hardwareacceleratorer (multiplikator, divider, hurtig skift, PTU (Protection Test Unit)).
I løbet af undersøgelsen blev der også identificeret et muligt sikkerhedsproblem ved behandling af adgangstilladelses-bitmap til input/output (IO permission bitmap): ved 4-byte adgang til porte blev adgangstilladelsesbitene kun kontrolleret for de første 3 bytes, mens adgangen til den 4. byte ikke blev kontrolleret, hvilket teoretisk kunne tillade adgang til hardwareregistre, som burde være forbudt.
Baseret på den offentliggjorte mikrokode blev der udviklet en åben CPU z386, som er implementeret i SystemVerilog og kører på FPGA. I stedet for at implementere hver instruktion som en separat RTL (wikipedia.org) (Register-transfer level) er z386 udstyret med hardwarestrukturer, der styres af den originale mikrokode. Ydeevnen af den forberedte implementering svarer til en hurtig 386 PC (~70MHz). Under styring af z386 er det lykkedes at køre DOS 6/7, DOS/4GW, DOS/32A samt spil som Doom og Cannon Fodder.
Kilde: linux.org.ru
