Ентузијасти су успешно извукли и раставили микрокод процесора Intel 80386, који је сматран „црном кутијом“ због недостатка документације. Бинарна слика микрокода је рекреирана коришћењем вештачке интелигенције са фотографија чипа високе резолуције, а логика је дешифрована коришћењем ожичења на самом чипу. Структура микрооперација, поља, редослед извршавања и маркери краја инструкција су постепено одређени. Резултати пројекта су објављени на GitHub-у као јавно власништво.

Откривено је да се у процесору 80386 свака инструкција извршава у потпуности кроз микрокод, док се у 8086 и модерним процесорима неке инструкције обрађују директно. Штавише, за разлику од процесора 8086, микрокод у 80386 не имплементира директно алгоритме, већ првенствено конфигурише хардверске акцелераторе (множилац, делилац, брзи мењач, PTU (јединица за тестирање заштите)).
Студија је такође открила потенцијални безбедносни проблем у руковању битмапом дозвола за унос/износ: приликом приступа портовима од 4 бајта, проверавани су само битови дозвола за прва 3 бајта, а приступ 4. бајту није провераван, што је теоретски омогућавало приступ хардверским регистрима којима не би требало да буде доступан.
На основу објављеног микрокода, развијен је процесор отвореног кода z386, имплементиран у SystemVerilog-у и који ради на FPGA. Уместо имплементације сваке инструкције као засебног RTL-а (слоја за пренос регистара), z386 имплементира хардверске структуре контролисане оригиналним микрокодом. Перформансе резултујуће имплементације одговарају брзим 386 рачунарима (~70 MHz). z386 је успешно покретао DOS 6/7, DOS/4GW, DOS/32A и игре као што су Doom и Cannon Fodder.
Извор: опеннет.ру
