Entusiaster har disassemblerat i386-mikrokod och skapat en öppen CPU z386

Entusiaster kunde framgångsrikt extrahera och disassemblera mikrokoden för Intel 80386, som på grund av brist på dokumentation ansågs vara en "svart låda". Den binära bilden av mikrokoden återskapades med hjälp av AI baserat på högupplösta fotografier av kristallen, och logiken analyserades genom spårning av kopplingar på kristallen. Gradvis identifierades strukturen av mikrokoder (μ-ops), fält, ordning för utförande och slutmarkörer för instruktioner. Projektets framsteg som offentlig domän ( finns på GitHub som allmän egendom.


Det upptäcktes att i CPU 80386 utförs varje instruktion helt via mikrokoden, medan i 8086 och moderna processorer behandlas vissa instruktioner direkt. Dessutom, till skillnad från 8086-processorerna, implementerar 80386-mikrokoden inte algoritmer direkt, utan konfigurerar främst hårdvaruacceleratorer (multiplikator, dividerare, snabb skiftning, PTU (Protection Test Unit)).

Under studien upptäcktes även ett potentiellt säkerhetsproblem vid hantering av åtkomstkontroll via IO (input/output) behörighetskarta: vid 4-byte-åtkomst till portar kontrollerades åtkomstbitarna endast för de första 3 byte, medan åtkomst till den 4:e byt inte kontrollerades, vilket teoretiskt möjliggjorde åtkomst till hårdvaruregister som borde ha varit förbjudet.

Baserat på den offentliggjorda mikrokoden har en öppen CPU z386, som är implementerad i SystemVerilog och fungerar med FPGA. Istället för att implementera varje instruktion som en separat RTL (wikipedia.org) (Register-transfer level) har z386 implementerat hårdvarustrukturer som styrs av den ursprungliga mikrokoden. Prestandan hos den förberedda implementationen motsvarar en snabb 386 PC (~70MHz). Under z386 lyckades man framgångsrikt köra DOS 6/7, DOS/4GW, DOS/32A och spel som Doom och Cannon Fodder.

Källa: linux.org.ru

Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster