NEC V20のマイクロコードを5.6ギガピクセルのダイ写真から解読

Decoding the NEC V20 Microcode

NEC V20のマイクロコードを5.6ギガピクセルのダイ写真から解読

MartyPCエミュレータの作者が、NEC V20 CPU(Sharp製セカンドソース)のダイ写真を5.6ギガピクセルで撮影し、その画像からマイクロコードROMとデコードPLAを抽出した。29,928ビットのROMを手動で解読するのは非現実的なため、MaskRomToolでビット位置を定義し、各ビットの画像をCNN(畳み込みニューラルネットワーク)で0/1に分類する手法を採用。PyTorchを使い、約1,000個の手動分類データでトレーニングを行い、99%以上の精度で残りのビットを自動分類した。さらに、デコードPLAの解析により、マイクロコードのエントリポイントとオペコードの対応関係を解明。この成果により、V20のサイクル正確なエミュレーションが可能になると期待される。

このプロジェクトを始める前、私はCNNのトレーニング経験がまったくありませんでしたが、たったひとつの午後で完了しました。現代のPythonフレームワーク、PyTorchはそれをこれほど簡単にしてくれるのです。

この日のほかの記事

2026-09-07