Хотя NEC V20 совместим с Intel 8088, он обладает собственными особенностями микрокода. [GloriousCow] пытается декодировать микрокод ROM на изображении кристалла процессора и создать пригодный для использования образ ROM, чтобы разработать эмулятор с точностью до тактов. Поскольку ручной разбор 29 928 бит на изображении занял бы много времени, была применена автоматизация. Инструмент MaskRomTool, созданный [Travis Goodspeed], не смог надежно определить биты из-за низкой контрастности, однако выявил их расположение и создал для каждого бита PNG-файлы размером 42×42 пикселя. Затем для разделения битов 0 и 1 была обучена сверточная нейронная сеть (CNN) на 1 000 изображений, классифицированных вручную. Несколько оставшихся неопределенными битов были изучены визуально. Полученный микрокод сопоставляется с внутренней архитектурой V20. Незавершенная работа публикуется на GitHub. Микрокод ранее находился в центре судебных разбирательств между NEC и Intel по поводу совместимости процессоров.
Почему это важно
Эта работа показывает, что совместимость с Intel 8088 может быть недостаточной для объяснения всех особенностей поведения NEC V20; выявление собственного микрокода процессора направлено на то, чтобы при эмуляции корректно отражать не только набор инструкций, но и работу процессорных циклов. Использование обработки изображений и CNN предлагает применимый к методам обратной инженерии пример, превращая исследование больших объемов данных на изображениях кристалла с низкой контрастностью из выполняемого вручную процесса в автоматизированный. Вместе с тем, поскольку сопоставление ROM с внутренней архитектурой еще не завершено, пока неясно, в какой степени полученные данные можно будет использовать в эмуляторе. Результаты также могут способствовать пониманию исторических технических и юридических споров вокруг совместимости V20 с Intel.