Synth Daily

运河底部的神秘计算机

在 1980 年代,一家苏格兰音响公司制造了一台名为“Rekursiv”的计算机,它在硬件中实现了内存安全检查、垃圾回收和统一持久化存储等功能,这些理念在当时看来极为超前。然而,由于遇上了通用处理器性能飞速提升的“杀手级微处理器”时代,该项目最终以商业失败告终。尽管如此,Rekursiv 的核心设计理念,例如为特定工作负载定制芯片,在近四十年后,随着摩尔定律的终结,正重新成为行业的主流方向。这表明,Rekursiv 在技术方向上的判断几乎完全正确,只是不幸地选错了推出的年代。

一家音响公司造了台电脑

Linn Products 是一家以其高端黑胶唱机 Sondek LP12 而闻名的格拉斯哥公司。在 80 年代初,公司创始人 Ivor Tiefenbrun 对他们工厂使用的软件系统感到极度不满。他希望创建一个系统,能将工厂里从零件到成品的每一个实体物品,都映射为一个软件对象,以追踪其完整生命周期。

为了实现这个目标,Linn 组建了一个团队,开发了一种名为 LINGO 的面向对象语言。然而,这种语言在当时的主流硬件(VAX 计算机)上运行得太慢了。Tiefenbrun 的结论是:问题不在于软件,而在于硬件。 于是,Linn 决定自行制造能够高效运行 LINGO 的计算机。

  • 该项目由计算机科学家 David Harland 领导,他们设计了一套名为 “Rekursiv” 的定制芯片。
  • 这个名字源于其一个核心特性:微码指令可以递归调用自身,这在传统 CPU 中是无法实现的。
  • 1984 年,Linn Smart Computing 公司成立,并获得了政府约 1000 万英镑的投资,开始将设计变为现实。

彻底的“对象化”设计

Rekursiv 的奇特之处在于,它从硬件层面彻底贯彻了面向对象的思想。程序员甚至编译器都无法直接看到内存地址。

  • 硬件内存安全:每个对象都有一个 40 位的唯一编号。名为 OBJEKT 的核心芯片负责将这个编号转换为物理地址,并在每次访问时在硬件层面检查类型和边界。这意味着你无法意外地溢出一个数组或伪造一个引用。
  • 芯片级垃圾回收:由于只有 OBJEKT 芯片知道对象的物理位置,因此可以自由地移动对象。Rekursiv 将垃圾回收机制也集成到了芯片中,可以在程序运行时,在后台自动整理内存,而上层应用毫无察觉。
  • 统一持久化存储:内存和磁盘被视为一个单一的对象存储空间。如果程序需要的对象不在内存中,处理器会暂停,等待外部磁盘控制器将其调入内存,然后再继续执行,整个过程对程序是透明的。
  • 可加载的指令集:Rekursiv 没有固定的指令集。你可以根据所使用的编程语言,为其加载最合适的微码指令集。Linn 为 C、Prolog、Scheme 等多种语言提供了支持。

Linn 声称其性能惊人,例如创建 Lisp 的 CONS 单元速度是 Symbolics 工作站的二十倍。但这些数据均来自 Linn 自己的模拟,从未得到独立验证。

“杀手级微处理器”的攻击

尽管 Rekursiv 的设计理念在学术上很有传承,但它出现的时机却非常糟糕。

在 Rekursiv 投入研发的同时,RISC(精简指令集计算机)的理念正迅速崛起。1980 年,Patterson 和 Ditzel 的论文指出,简单的指令集、配合优秀的编译器和缓存,可以比复杂的指令集运行得更快。

Rekursiv 的核心前提在其产品问世前四年,就已在理论上被颠覆。当 Rekursiv 在 1988 年推出时,市场已被 SPARCstation 和 386 等高速发展的商用处理器所主导。这些通用芯片的性能以每年约 52% 的速度野蛮增长,这一时期被称为“杀手级微处理器”的攻击。

最终,Rekursiv 在性能上无法与当时的新工作站抗衡。整个项目只生产了大约二三十块板卡,大多流向了大学,而其最初的目标——自动化 Linn 自己的生产线——从未实现。项目的结局也颇具戏剧性:在一系列财务和人事纠纷后,项目负责人 David Harland 辞职,并将他手中的硬件和备份资料扔进了运河。

四十年后,理念全面回归

这个故事之所以值得重温,是因为 Rekursiv 的每一个核心设计决策,在今天看来都极具前瞻性,甚至已成为行业前沿。

  • 硬件内存安全:Rekursiv 的理念与今天 Arm 的 CHERI 架构(Morello 项目)如出一辙,即通过硬件强制实现指针的边界和权限。微软安全团队认为,这种技术可以从根本上消除超过三分之二的内存安全漏洞。
  • 硬件辅助垃圾回收:Azul Systems 等公司曾尝试通过定制硬件来解决 Java 的垃圾回收停顿问题,这证明了将 GC 视为架构层面的问题是有价值的。
  • 统一持久化存储:从 IBM 的 System/38 到英特尔失败的 Optane,再到如今的 CXL 内存技术,业界一直在尝试实现内存与存储的融合。
  • 为工作负载定制芯片:这是最重要的一点。随着摩尔定律放缓,通用处理器的性能增长停滞。谷歌的 TPU、Cerebras 的晶圆级引擎等 领域特定架构(DSA) 正是 Rekursiv 理念的现代体现:为特定计算(如今是线性代gebra而非 Smalltalk)打造最高效的硬件。

核心教训:抽象高于实现

为什么拥有同样理念的 IBM System/38 取得了成功,而 Rekursiv 却失败了?关键在于 抽象层

把理念置于芯片之上,它们就能比任何特定的芯片活得更久。把理念焊死在芯片里,它们的寿命就和那块芯片的制程节点一样长。

IBM 将其设计理念实现在一个名为 TIMI 的“技术独立机器接口”的虚拟指令集中,底层可以适配任何处理器。而 Linn 则将理念直接固化在了四块特定的芯片上。另一个例子是 ARM,它成功的不是某款具体的芯片,而是其授权的指令集架构这一 抽象

Rekursiv 的故事是一个经典的案例:一个团队在技术上看得非常准,但在周期上判断得非常离谱。他们因过早地坚持一个正确的理念而失败。如今,曾经扼杀它的经济规律已经逆转,为特定工作负载设计芯片的成本大幅降低,时机再次成熟。Rekursiv 的理念用了近四十年才重新浮出水面,这一次,我们的任务是确保这些优秀的芯片不会再被扔进水里。