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はそれをこれほど簡単にしてくれるのです。
  1. ataylor284_

    プログラミングの観点からV20に興味がある方のために、NECのユーザーズマニュアルはこちらにあります:https://archive.org/details/bitsavers_necV20V30U_11351331/mo....

    V20の命令セットは興味深く、非常に1980年代的な拡張がなされています。8080エミュレーションモードに加えて、2進化10進演算やビットフィールドの命令があります。

    しかし、NECは独自の命名規則を使用しており、8088との違いを見つけるのが不必要に難しくなっています。ビットは同じですが、ニーモニックが異なります。例えば、すべてのレジスタ名を変更し(AX -> AW、SI -> IXなど)、多くのオペコードも変更しています(JMP -> BR、REP MOVSB -> REP MOVBK)。

  2. klelatti

    もちろん、V20のマイクロコードは、NECがIntelに訴えられた際の興味深い法的紛争の中心でした。

    https://thechipletter.substack.com/p/intel-vs-nec-the-case-o...

  3. jeanmichelselli

    これは素晴らしいプロジェクトで、私はいつもこのようなものに感銘を受けます。ただ、このような成果に市場があるのかどうか、非常に知りたいです。

この日のほかの記事

2026-09-07