Entusiastid disassembliasid i386 mikrokoodi ja lõid avatud CPU z386

Entusiastid suutsid edasiviivad mikrokoodi Intel 80386 protsessorist, mida puuduvad dokumentatsiooni tõttu peeti "mustaks karbiks". Mikrokoodi binaarne pilt taastati AI abil kõrgresolutsiooniliste kristalli fotode järgi ning tööloogika uuriti kristalli ühenduste jälgimise kaudu. Aja jooksul määrati kindlaks mikrokäskude (μ-ops) struktuur, väljad, täitmise järjekord ja instruktsioonide lõppemarkerid. Projekti teadusuuringud avaldatud on GitHub avaliku omandina.


Selgus, et CPU 80386 puhul täidetakse iga käsk täielikult mikrokoodi kaudu, samas kui 8086 ja kaasaegsed protsessorid töötlevad osa käskudest otse. Lisaks sellele, erinevalt 8086 protsessoritest, ei rakenda 80386 mikrokood algoritme otseselt, vaid konfigureerib enamasti riistvarakiirendusi (korrutaja, jagaja, kiire nihke, PTU (Protection Test Unit)).

Uuringu käigus avastati ka võimalik turbeprobleem, kui töödeldakse juurdepääsuluba IO (sisendi / väljundi luba) bitmap: 4-baidise porti juurdepääsu puhul kontrolitakse õigusi ainult esimesed 3 baiti, samas kui 4. baidi juurdepääsu ei kontrollita, mis teoreetiliselt võimaldas juurdepääsu riistvara registritele, millele ei tohi olla juurdepääs.

Avaldatud mikrokoodi alusel on loodud avatud CPU z386, mis on rakendatud SystemVerilogi keeles ja töötab FPGA-de abil. Iga käsu rakendamise asemel eraldiseisva RTL (wikipedia.org) (Register-transfer level) on z386-s rakendatud riistvarastruktuurid, mida juhib originaalne mikrokood. Valmistatud rakenduse jõudlus vastab kiirele 386 PC-le (~70MHz). z386 all suudeti edukalt käivitada DOS 6/7, DOS/4GW, DOS/32A ja mänge, nagu Doom ja Cannon Fodder.

Allikas: linux.org.ru

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster