2026 年的内存有多贵,装过机的人都有体会。TrendForce 年初预测,一季度常规 DRAM 合约价要环比上涨九成以上,产能被 AI 数据中心吸走了。
但 Dave Plummer 的烦恼不在 DDR5,而在一台半个世纪前的机器。
老内存难在哪里
Plummer 是微软老兵,开发过 Windows 任务管理器,也参与过经典三维弹球游戏的移植。离开微软后,他迷上了修复 DEC 的 PDP-11 小型机——1970 年问世、UNIX 早年成长的平台。他这次用的 CPU 板是 M8190,22 位地址,最多能插 4MB 内存。
难的是凑满这 4MB。10 月 29 日他在 X 上写道:觉得普通内存贵?试试 PDP-11 的内存,大约每 MB 1000 美元,前提是你找得到。
这个数字是 Plummer 的估计,不是统一行情。从目前的部分二手挂牌看,一块 1MB 的 DEC 原厂 M7551 内存板标价在一百多美元,每 MB 1000 美元并不是所有 PDP-11 内存板的普遍价格。不过,不同容量、兼容性和完好程度的旧板卡不能简单当作等价商品,特定型号或稀缺配置的实际采购成本,还取决于货源和兼容性。
价格之外,限制还有很多。PDP-11 的内存板型号繁多,容量从几十 KB 到几 MB 不等,有些老板子只支持早期的 18 位地址,插进 22 位系统也用不满。Plummer 晒过一块 256KB 的原厂板,说靠它凑满 4MB 要 16 块,背板根本没有那么多槽位。DEC 当年其实也做过单卡 4MB 的 MSV11-QC(M7551-CA),只是今天要靠二手市场的运气。
所以,老式内存板不只有价格和货源问题,容量、兼容性和背板槽位也会卡住扩展。Plummer 想做的,是用现代器件重新造一种单卡 4MB 的兼容方案。
ChatGPT 当搭档,从原理图到成品板
他的思路是:不复刻当年的存储阵列,而是用现代器件“扮演”一块老内存卡。据 Tom's Hardware 拆解,板上是一颗 Lattice MachXO2 FPGA 当内存控制器,四颗 ISSI 1MB 静态 RAM 提供容量。SRAM 负责存,FPGA 负责“说”Q-Bus 总线的方言:什么时候应答、地址怎么译、数据怎么送上总线。
设计过程,用他的原话说是“我们”一起做的:拿着 ChatGPT,在 EasyEDA 里画完原理图、布局布线、列好物料清单,FPGA 代码也写好了。他坦言 PCB 以前做过,但没做过这么复杂的。板子交给 JLCPCB 贴片,一次打了 5 块。
接下来是一串“第一次”。他从没烧写过 FPGA,于是买了个 FT232H 转接板,装上开源的 openFPGALoader,在压缩比特流上栽了几个跟头才烧进去。台架测试过后,他把卡插进装着 M8190 的背板。
开机,4MB 内存被认了出来,留给 ROM 的地址空间也在。几乎一次成功。
一个“只对一半”的 bug
紧随其后出现了一个很奇怪的 Bug:所有奇数地址的访问都失败了。
有网友调侃:所以你造了 4MB,结果只有 2MB?Plummer 回答:没错,而且不是前 2MB——那至少还有点用——而是每隔一个字才能用一个。
PDP-11 按字节编址,相邻两个字节组成一个 16 位的“字”。访问其中某个字节时,控制器还需要正确处理高、低字节的选择。如果处理不当,就可能出现类似的访问错误。
帖子发出不到一小时,就有网友怀疑问题出在这里,建议他检查 FPGA 中负责选择字节的控制逻辑(涉及 Q-Bus 的 BDAL0 信号)。
这个 bug 的微妙之处在于,板子不是坏了,而是几乎对了:内存能被识别,偶数地址也能正常访问。需要说明的是,Plummer 后来只说修复过程“说来话长”,没有公布确切原因;公开记录也没有交代这个错误出自 ChatGPT 还是他本人,不能简单把锅甩给 AI。
不到 6 小时,UNIX 启动起来了
Tom's Hardware 在 10 月 31 日的报道里写道,Plummer 之后没有更新,他们猜测他在 FPGA 里做了简单修复。
其实更新早就有了。10 月 30 日 UTC 零点刚过,距首帖不到 6 小时,Plummer 发帖说:搞定了,FPGA 代码里要修一些东西,“说来话长”;现在所有测试都通过,UNIX 也启动进了多用户模式,他认为这比多数内存测试都更苛刻。他没有说明是哪个 UNIX 版本,也没有公布测试项目。
和简单的内存读写测试相比,真正启动 UNIX 需要加载内核、运行多个进程,并持续访问内存。这能验证内存板在真实负载下的基本可用性,但一次成功启动不等于所有地址和访问模式都被覆盖,仍然不能替代完整的稳定性测试。
作为对照,Ritchie 和 Thompson 1974 年的论文里,那台运行 UNIX 的 PDP-11/45 只有 144KB 磁芯内存,UNIX 本身占 42KB。如今一张卡就给了它近 30 倍的空间。
从“几乎能用”到能用
Plummer 自己说,PCB 以前做过,但没做过这么复杂的;FPGA 更是第一次烧。ChatGPT 帮他跨过了不少陌生的技术门槛,但真正插上 PDP-11,问题才暴露出来。随后,他继续修改 FPGA 代码,还有懂行的网友帮忙指出了可能的故障原因。
当然,目前一切都来自 Plummer 本人的说法。测了什么、能不能复现、设计会不会公开,都还没有答案。
顺便一提,11 月 1 日他已经把一块 4MB 卡挂上了 eBay,500 美元起拍,说是想看看有没有人感兴趣,顺便给下一批板子筹点钱。截至 11 月 3 日,还没人出价。
看到这里,只能感慨一句:有钱、有闲,还对半个世纪前的老机器保持着这样的好奇心,真让人羡慕。