1985年,英特尔推出80386处理器时,没人想到它的内部微码会在近四十年后重见天日。这是一段94720位的二进制密码——是8086微码的8.8倍。破解它的人,最初觉得"根本不可能"。

故事要从Ken Shirriff说起。这位芯片考古学家寄来一张高分辨率照片时,收件人第一反应是拒绝:数据量太大,没有专利文档指路,完全是个黑箱。8086好歹有专利文件透露大致框架,80386什么都没有。知道它"做了什么"和知道它"怎么做",中间隔着一道看似不可逾越的鸿沟。

打开网易新闻 查看精彩图片

转机出现在Discord上的一次闲聊。GloriousCow和Smartest Blob等人提到,或许可以试试从晶圆照片上提取微码。原照片持有者泼了冷水:图像转二进制难,二进制转可读微码更难。没想到这成了催化剂——图像处理、AI辅助、人机协作,几天后二进制数据就被提取并交叉验证完毕。

真正的硬仗才刚刚开始。团队需要从混沌中找出规律:微操作(μ-ops)的排列方式、读取顺序、字段划分。一个关键线索是芯片末端的未使用微码块,它帮助确定了读取方向。基于8086的经验,他们假设存在源寄存器和目标寄存器字段。另一个突破口来自性能数据:80386能在2个周期内完成ALU运算,这意味着微码必须在第一周期加载两个操作数——必然存在第二个ALU输入字段。

打开网易新闻 查看精彩图片

重复出现的某种模式被怀疑是指令结束标记,后来证实猜对了。Ken Shirriff则在晶圆上追踪线路和逻辑门,揭示硬件连接方式。每解开一个谜题,就为使用相同结构的其他微码块提供线索。与此同时,团队还在解码指令译码器(由多个小型PLA组成)和保护测试PLA。

最终,386指令与微码块的对应关系建立起来,黑箱变得透明。这项工作的价值不止于考古:它展示了现代协作工具如何攻克曾经"不可能"的技术挑战,也证明了逆向工程中"模式识别+假设验证"的经典方法论依然有效。更重要的是,它为理解x86架构的演进提供了底层视角——为什么80386单周期性能远超8086?答案藏在晶体管数量的暴涨与微码设计的精密配合中。