Enthusiasten hunn de Mikrocode vun engem Intel 80386 Prozessor erfollegräich extrahéiert an zerleet, deen wéinst engem Manktem u Dokumentatioun als "Black Box" ugesi gouf. E binärt Bild vum Mikrocode gouf mat Hëllef vun KI aus héichopléisende Fotoe vum Chip nei erstallt, an d'Logik gouf mat Hëllef vun On-Die-Verdrahtung entschlësselt. D'Struktur, d'Felder, d'Ausféierungsreihenfolg an d'Enn-vun-Instruktiounsmarkéierunge vun de Mikro-Ops goufen no an no bestëmmt. D'Resultater vum Projet sinn op GitHub als ëffentlech Domain publizéiert.

Et gouf entdeckt, datt an der 80386 CPU all Instruktioun komplett iwwer Mikrocode ausgefouert gëtt, während an den 8086 a moderne Prozessoren e puer Instruktiounen direkt veraarbecht ginn. Ausserdeem, am Géigesaz zu den 8086 Prozessoren, implementéiert de Mikrocode am 80386 keng direkt Algorithmen, mä konfiguréiert haaptsächlech Hardwarebeschleuniger (Multiplikator, Divider, Fast Shifter, PTU (Protection Test Unit)).
D'Studie huet och e potenziellen Sécherheetsproblem beim Ëmgang mam IO-Permissiouns-Bitmap opgedeckt: beim Zougrëff op 4-Byte-Ports goufen nëmmen d'Permissiounsbits fir déi éischt 3 Bytes iwwerpréift, an den Zougang zum 4. Byte gouf net iwwerpréift, wat theoretesch den Zougang zu Hardwareregistere erlaabt huet, déi net zougänglech sollte sinn.
Baséierend op engem publizéierte Mikrocode gouf eng Open-Source z386 CPU entwéckelt, déi a SystemVerilog implementéiert gouf a mat enger FPGA leeft. Amplaz all Instruktioun als separat RTL (Register-Transfer Layer) z'implementéieren, implementéiert den z386 Hardwarestrukturen, déi vum urspréngleche Mikrocode kontrolléiert ginn. D'Performance vun der resultéierender Implementatioun entsprécht där vun engem schnelle 386 PC (~70 MHz). Den z386 huet erfollegräich DOS 6/7, DOS/4GW, DOS/32A a Spiller wéi Doom a Cannon Fodder ausgeführt.
Source: opennet.ru
