NEC V20 ist zwar mit dem Intel 8088 kompatibel, verfügt jedoch über eigene Mikrocodierungsmerkmale. [GloriousCow] versucht, durch die Entschlüsselung des Mikrocodes-ROMs im Die-Bild des Prozessors ein nutzbares ROM-Abbild für die Entwicklung eines zyklusgenauen Emulators zu erstellen. Da die manuelle Auswertung der 29.928 Bit im Bild lange dauern würde, wurde auf Automatisierung zurückgegriffen. Das Tool MaskRomTool von [Travis Goodspeed] konnte die Bits aufgrund des geringen Kontrasts nicht zuverlässig bestimmen, ermittelte jedoch ihre Positionen und erzeugte für jedes Bit 42×42 Pixel große PNG-Dateien. Anschließend wurde ein konvolutionales neuronales Netz (CNN) mit 1.000 manuell klassifizierten Bildern trainiert, um 0- und 1-Bits zu unterscheiden. Einige wenige unklare Bits wurden visuell überprüft. Der gewonnene Mikrocode wird mit der internen Architektur des V20 abgeglichen. Die noch nicht abgeschlossene Arbeit wird auf GitHub veröffentlicht. Der Mikrocode stand im Mittelpunkt von Prozessor-Kompatibilitätsklagen zwischen NEC und Intel.
Warum das wichtig ist
Die Arbeit zeigt, dass die Kompatibilität mit dem Intel 8088 möglicherweise nicht ausreicht, um das gesamte Verhalten des NEC V20 zu erklären. Die Offenlegung des spezifischen Mikrocodes des Prozessors zielt darauf ab, bei der Emulation nicht nur den Befehlssatz, sondern auch den Ablauf der Prozesszyklen korrekt abzubilden. Der Einsatz von Bildverarbeitung und CNN bietet ein anwendbares Beispiel für Reverse-Engineering-Methoden, indem die Untersuchung großer Datenmengen aus kontrastarmen Die-Bildern von einem manuell durchgeführten Prozess gelöst wird. Da der Abgleich des ROMs mit der internen Architektur noch nicht abgeschlossen ist, ist jedoch noch offen, in welchem Umfang die gewonnenen Daten im Emulator verwendet werden können. Die Ergebnisse könnten auch zum Verständnis der historischen technischen und rechtlichen Debatten rund um die Intel-Kompatibilität des V20 beitragen.