Die Disassemblierung des i386-Mikrocodes wurde abgeschlossen und eine offene CPU z386 erstellt.

Enthusiasten konnten erfolgreich den Mikrokod des Intel 80386-Prozessors extrahieren und disassemblieren, der aufgrund fehlender Dokumentation als "Black Box" angesehen wurde. Das binäre Bild des Mikrokodes wurde mithilfe von KI basierend auf hochauflösenden Fotos des Chips rekonstruiert, und die Logik wurde durch das Nachverfolgen der Verbindungen auf dem Chip zerlegt. Nach und nach wurden die Struktur der Mikrobefehle (μ-ops), die Felder, die Ausführungsreihenfolge und die Endmarkierungen der Befehle identifiziert. Die Ergebnisse des Projekts wurden auf GitHub als gemeinfreies Gut veröffentlicht.

Die Disassemblierung des i386-Mikrocodes wurde abgeschlossen und eine offene CPU z386 erstellt.

Es wurde festgestellt, dass im CPU 80386 jeder Befehl vollständig über den Mikrokod ausgeführt wird, während bei 8086 und modernen Prozessoren ein Teil der Befehle direkt verarbeitet wird. Darüber hinaus implementiert der 80386 im Gegensatz zu den 8086-Prozessoren keine Algorithmen direkt, sondern konfiguriert hauptsächlich Hardwarebeschleuniger (Multiplikator, Divisor, schneller Shift, PTU (Protection Test Unit)).

Im Verlauf der Untersuchung wurde auch ein mögliches Sicherheitsproblem bei der Verarbeitung der IO-Berechtigungsbitmap festgestellt: Bei einem 4-Byte-Zugriff auf Ports wurden die Berechtigungsbits nur für die ersten 3 Bytes überprüft, während der Zugriff auf das 4. Byte nicht geprüft wurde, was theoretisch einen Zugriff auf Hardwareregister erlaubte, zu dem der Zugang untersagt sein sollte.

Basierend auf dem veröffentlichten Mikrokod wurde die offene CPU z386 entwickelt, die in SystemVerilog implementiert ist und mit FPGA arbeitet. Anstelle der Implementierung jeder Anweisung in Form von separatem RTL (Register-Transfer-Level) wurden im z386 Hardwarestrukturen realisiert, die vom ursprünglichen Mikrokod gesteuert werden. Die Leistung der erstellten Implementierung entspricht einem schnellen 386-PC (~70 MHz). Unter der Steuerung von z386 konnten erfolgreich DOS 6/7, DOS/4GW, DOS/32A und Spiele wie Doom und Cannon Fodder gestartet werden.

Quelle: opennet.ru

60GB SSD 8Gb DDR4