Els entusiastes van extreure i desmuntar amb èxit el microcodi d'un processador Intel 80386, que es considerava una "caixa negra" per manca de documentació. Es va recrear una imatge binària del microcodi mitjançant IA a partir de fotografies d'alta resolució del die, i la lògica es va desxifrar mitjançant el cablejat del die. L'estructura de les microoperacions, els camps, l'ordre d'execució i els marcadors de final d'instrucció es van determinar gradualment. Les conclusions del projecte es publiquen a GitHub com a domini públic.

Es va descobrir que a la CPU 80386, cada instrucció s'executa completament mitjançant microcodi, mentre que al 8086 i als processadors moderns, algunes instruccions es processen directament. A més, a diferència dels processadors 8086, el microcodi del 80386 no implementa directament algoritmes, sinó que configura principalment acceleradors de maquinari (multiplicador, divisor, canviador ràpid, PTU (Protection Test Unit)).
L'estudi també va descobrir un possible problema de seguretat en la gestió del mapa de bits de permisos d'E/S: en accedir a ports de 4 bytes, només es comprovaven els bits de permís per als primers 3 bytes i no es comprovava l'accés al 4t byte, cosa que teòricament permetia l'accés a registres de maquinari que no haurien de ser accessibles.
Basant-se en un microcodi publicat, es va desenvolupar una CPU z386 de codi obert, implementada en SystemVerilog i executant-se en una FPGA. En lloc d'implementar cada instrucció com una RTL (Register-Transfer Layer) separada, el z386 implementa estructures de maquinari controlades pel microcodi original. El rendiment de la implementació resultant coincideix amb el d'un PC 386 ràpid (~70 MHz). El z386 va executar correctament DOS 6/7, DOS/4GW, DOS/32A i jocs com Doom i Cannon Fodder.
Font: opennet.ru
