Masu sha'awar sun yi nasarar cirewa da kuma wargaza lambar microcode ta wani mai sarrafa Intel 80386, wanda aka ɗauke shi a matsayin "akwatin baƙi" saboda rashin takardu. An sake ƙirƙirar hoton microcode ta amfani da AI daga hotunan mashin mai ƙuduri mai girma, kuma an fassara ma'anar ta amfani da wayoyi masu aiki a kan-di. A hankali aka tantance tsarin micro-ops, filayen, tsarin aiwatarwa, da alamun ƙarshen umarni. An buga sakamakon aikin a GitHub a matsayin abin da jama'a ke amfani da shi.

An gano cewa a cikin CPU na 80386, kowane umarni ana aiwatar da shi gaba ɗaya ta hanyar microcode, yayin da a cikin 8086 da na'urori masu sarrafawa na zamani, wasu umarni ana sarrafa su kai tsaye. Bugu da ƙari, ba kamar a cikin na'urori masu sarrafawa na 8086 ba, microcode a cikin 80386 ba ya aiwatar da algorithms kai tsaye, amma galibi yana saita masu hanzarta kayan aiki (mai ninkawa, mai rabawa, mai sauyawa mai sauri, PTU (Rukunin Gwajin Kariya)).
Binciken ya kuma gano wata matsala ta tsaro da ke tattare da sarrafa bitmap na izinin IO: lokacin da ake shiga tashoshin byte 4, an duba bit na izini na byte 3 na farko kawai, kuma ba a duba damar shiga byte na 4 ba, wanda a ka'ida ya ba da damar shiga rajistar kayan aiki waɗanda bai kamata a samu damar shiga ba.
Dangane da microcode da aka buga, an ƙirƙiri wani CPU mai buɗe tushen z386, wanda aka aiwatar a cikin SystemVerilog kuma yana gudana akan FPGA. Maimakon aiwatar da kowane umarni azaman RTL daban (Register-Transfer Layer), z386 yana aiwatar da tsarin kayan aiki wanda microcode na asali ke sarrafawa. Aikin aiwatarwa da aka samu ya yi daidai da na PC mai sauri 386 (~70 MHz). Z386 ya yi nasarar gudanar da DOS 6/7, DOS/4GW, DOS/32A, da wasanni kamar Doom da Cannon Fodder.
source: budenet.ru
