Cov neeg nyiam ua tau zoo rho tawm thiab rhuav tshem cov microcode ntawm Intel 80386 processor, uas suav tias yog "lub thawv dub" vim tsis muaj cov ntaub ntawv sau cia. Ib daim duab binary ntawm cov microcode tau rov tsim dua siv AI los ntawm cov duab siab daws teeb meem ntawm lub die, thiab cov logic tau deciphered siv cov xov hlau ntawm lub die. Cov qauv micro-ops, cov teb, kev txiav txim siab ua tiav, thiab cov cim qhia kawg tau txiav txim siab maj mam. Cov kev tshawb pom ntawm qhov project tau tshaj tawm rau ntawm GitHub ua pej xeem.

Nws tau pom tias hauv 80386 CPU, txhua cov lus qhia raug ua tiav tag nrho los ntawm microcode, thaum nyob rau hauv 8086 thiab cov processors niaj hnub no, qee cov lus qhia raug ua tiav ncaj qha. Ntxiv mus, tsis zoo li hauv 8086 processors, microcode hauv 80386 tsis ncaj qha siv cov algorithms, tab sis feem ntau teeb tsa cov khoom siv kho vajtse accelerators (multiplier, divider, fast shifter, PTU (Protection Test Unit)).
Txoj kev tshawb fawb no kuj tau tshawb pom qhov teeb meem kev ruaj ntseg hauv kev tswj hwm ntawm IO permission bitmap: thaum nkag mus rau 4-byte ports, tsuas yog cov permission bits rau thawj 3 bytes tau raug kuaj xyuas, thiab kev nkag mus rau 4th byte tsis tau raug kuaj xyuas, uas theoretically tso cai nkag mus rau cov kho vajtse registers uas yuav tsum tsis txhob nkag mus tau.
Raws li cov microcode uas tau luam tawm, ib lub z386 CPU qhib tau tsim, siv rau hauv SystemVerilog thiab khiav ntawm FPGA. Hloov chaw siv txhua cov lus qhia ua ib qho RTL (Register-Transfer Layer) sib cais, lub z386 siv cov qauv kho vajtse uas tswj hwm los ntawm cov microcode qub. Kev ua tau zoo ntawm qhov kev siv tau zoo ib yam li 386 PC ceev (~ 70 MHz). Lub z386 tau khiav DOS 6/7, DOS/4GW, DOS/32A, thiab cov kev ua si xws li Doom thiab Cannon Fodder tau zoo.
Tau qhov twg los: opennet.ru
