用 CNN 从 NEC V20 芯片照片解码微码
Decoding the NEC V20 Microcode

为了在 MartyPC 中实现 NEC V20 的周期精确模拟,我委托 InfoSecDJ 拍摄了该芯片的晶圆照片。面对 56 亿像素的超高清图像,传统的阈值法无法识别微码位,于是我训练了一个卷积神经网络(CNN)来自动区分 0 和 1 位。通过 PyTorch 框架,我仅用一下午就完成了模型训练,成功提取了 29928 个微码位,并进一步解码了配套的 PLA 逻辑。这不仅节省了数小时的人工劳作,更揭示了 NEC V20 如何通过巧妙的掩码布尔逻辑,让大量指令共享同一套微码实现。
这个问题简直就是‘是热狗还是非热狗’的变体,我们只需要把图像分进 0 或 1 两个桶里。
- ataylor284_
如果 anyone 对 V20 的编程视角感兴趣,NEC 的用户手册在这里:https://archive.org/details/bitsavers_necV20V30U_11351331/mo....
V20 的指令集很有意思,包含一些非常 80 年代的扩展。除了 8080 模拟模式外,它还有二进制编码十进制算术和位域指令。
不过,NEC 使用了自己的命名方案,这使得找出它与 8088 的区别变得不必要地困难。位是一样的,但助记符不同。例如,他们重命名了所有寄存器(AX -> AW, SI -> IX 等)以及许多操作码(JMP -> BR, REP MOVSB -> REP MOVBK)。
- klelatti
当然,V20 的微码曾是 NEC 被 Intel 起诉时一场有趣法律纠纷的核心。
https://thechipletter.substack.com/p/intel-vs-nec-the-case-o...
- jeanmichelselli
这是一个令人惊叹的项目,我总是对这类东西印象深刻。不过,我很好奇,像这样的成就是否有市场。