Entuziastët disasembleruan mikrokodin i386 dhe krijuan një CPU të hapur z386

EntuziastĂ«t arritĂ«n tĂ« nxjerrin dhe tĂ« çmontojnĂ« me sukses mikrokodin e procesorit Intel 80386, i cili pĂ«r shkak tĂ« mungesĂ«s sĂ« dokumentacionit konsiderohej njĂ« «kuti e zezë». Imazhi binar i mikrokodit u rikrijua me ndihmĂ«n e AI nga fotografi tĂ« kristalit me rezolucion tĂ« lartĂ«, ndĂ«rsa logjika e funksionimit u analizua pĂ«rmes gjurmimit tĂ« lidhjeve nĂ« kristal. Gradualisht u pĂ«rcaktuan struktura e mikrokomandave (ÎŒ-ops), fushat, rendi i ekzekutimit dhe shĂ«nuesit e fundit tĂ« instruksioneve. Zhvillimet e projektit janĂ« publikuar janĂ« publikuar nĂ« GitHub si pronĂ« publike.


U zbulua se në CPU 80386 çdo instruksion ekzekutohet plotësisht përmes mikrokodit, ndërsa te 8086 dhe procesorët modernë një pjesë e instruksioneve përpunohet drejtpërdrejt. Për më tepër, ndryshe nga procesorët 8086, te 80386 mikrokodi nuk i zbaton algoritmet drejtpërdrejt, por kryesisht konfiguron përshpejtuesit harduerikë (shumëzuesin, pjesëtuesin, shiftimin e shpejtë, PTU (Protection Test Unit)).

Gjatë hulumtimit u zbulua gjithashtu një problem i mundshëm sigurie në përpunimin e hartës bit të lejeve të aksesit në hyrje/dalje (IO permission bitmap): gjatë aksesit 4-bajtësh te portat, kontrolloheshin bitët e lejeve të aksesit vetëm për 3 bajtet e para, ndërsa aksesi te bajti i 4-t nuk kontrollohej, gjë që teorikisht mundësonte qasje në regjistra harduerikë, qasja te të cilët duhej të ishte e ndaluar.

Në bazë të mikrokodit të publikuar është zhvilluar një CPU i hapur z386, i implementuar në gjuhën SystemVerilog dhe që funksionon duke përdorur FPGA. Në vend të implementimit të çdo instruksioni në formën e një RTL (wikipedia.org) (Register-transfer level), në z386 janë implementuar struktura harduerike që kontrollohen nga mikrokodi origjinal. Performanca e implementimit të përgatitur i korrespondon një PC 386 të shpejtë (~70MHz). Nën kontrollin e z386 u arrit të nisen me sukses DOS 6/7, DOS/4GW, DOS/32A dhe lojëra si Doom dhe Cannon Fodder.

Burimi: linux.org.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster