Hacker News 发现了一台反潮流而行的 1980 年 Spacelab 计算机
- Ethan Carter

- 1小时前
- 讀畢需時 14 分鐘
尽管其磁性存储技术在当时的大多数商用系统中已被淘汰,Hacker News 仍让一台 1980 年的 Spacelab 计算机重新进入公众视野。这台机器配备了 128 KB 核心存储器,由超过 100 万个逐一布线的铁氧体磁环构成。它的设计凝聚着一个至今仍塑造太空计算的矛盾:最新的组件未必就是最安全的组件。
这次重新受到关注,源于计算机历史学家兼工程师 Ken Shirriff 对硬件进行的一项细致研究。他的 Spacelab 内存拆解 分析了法国制造的 Mitra 125 MS 小型计算机中一块幸存的模块。这台计算机为安置在航天飞机货舱内、可重复使用的欧洲实验室提供支持。
到 1980 年,半导体存储器已在整个计算机行业逐步取代磁芯存储器。Intel 的早期 DRAM 产品已经改变了存储的经济性。然而,Spacelab 仍保留了一套庞大而沉重的存储系统,由铁氧体磁环、驱动电路、二极管矩阵和精细的布线组成。
这种看似滞后并不只是官僚惯性的结果。核心存储器断电后仍能保留数据,其抗辐射能力也优于当时的半导体替代方案。对于需要在严酷环境条件下保持可预测行为的航天器而言,这些特性至关重要。
因此,这套硬件带来的意义不止于怀旧。它展示了工程师为何会选择一种较旧的架构:它的失效行为更契合任务需求。现代系统也会做出类似取舍,以密度或速度换取可靠性、纠错能力、隔离性和可恢复性。
为什么 Spacelab 核心存储器登上了 Hacker News
这一发现之所以重要,是因为它将抽象的工程权衡化为读者可以逐根导线检视的实物。
Hacker News 的投稿链接到了 Shirriff 对一套完整存储器堆栈的分析。截至简报所述时点,这场讨论获得了 57 分和 9 条评论。这些数字只是一个快照,但表明受众的兴趣并不止于一张复古计算机照片。
该模块来自 Mitra 125 MS,这是法国 Mitra 架构的军用化版本。三台相同的计算机支持 Spacelab 的配置:一台管理实验室系统,一台负责处理实验,第三台提供备份能力。
幸存的模块让研究人员得以接触到常规文档可能掩盖的设计决策。组件布局揭示了工程师如何控制电流、散热、限制噪声并减少驱动电路数量。导线走向则以异常清晰的方式呈现了存储器的逻辑组织。
完整的存储器堆栈约占整台计算机的三分之一。它包含七块电路板:四块核心平面板、两块驱动板和一块接口板。大型连接器通过安装在两侧的子卡将这些电路板连接起来。
每个核心平面存储 16,384 个字。每个字包含 18 个物理位,其中包括 16 个数据位、1 个奇偶校验位和 1 个存储保护位。四个平面共提供 65,536 个字,等同于 128 KB 的 16 位数据。
与现代计算机相比,这样的容量看起来微不足道。然而,仅比较容量会产生误导。这台机器并不运行图形桌面、浏览器或通用应用程序集合,而是执行经过严格约束的控制和实验工作负载;这些工作负载的内存需求在飞行前就已知晓。
额外的存储保护位可以阻止对单个字的写入。这项功能有助于防止软件意外覆盖受保护的指令或数据。由于磁芯存储器是非易失性的,已加载的程序即使在完全断电后也能保留。
NASA 文档将 Spacelab 计算机系统描述为三台 Mitra 125/MS 机器,每台配备 64K 个 16 位主存字。同一份 Spacelab 系统指南 表示,实验计算机负责控制有效载荷运行,并收集低速率实验数据。
这并不是航天飞机的主飞行控制计算机。航天飞机使用 IBM AP-101 系统进行制导、导航和飞行器控制。Spacelab 的 Mitra 机器则为实验室及其实验构成了独立的计算环境。
这一差异解释了为何这件实物同时融合了法国计算机架构、欧洲项目管理和 NASA 飞行运营。它来自一座国际实验室,而非航天飞机的核心航电系统。
第一次 Spacelab 任务于 1983 年 11 月 28 日搭乘 Columbia 发射。NASA 的 Spacelab 历史 将该任务描述为欧洲航天局加压舱的首次飞行。任务携带了 70 多项实验,研究人员来自多个国家。
这套计算机硬件制造于 1980 年前后,早于首次正式飞行。这一时间点处在一个颇具启发性的分界线上:商用计算已转向集成式半导体存储器,而航空航天团队仍然看重旧介质的环境适应性。
Hacker News 的兴趣正反映了这一分界。该模块并不只是一种超越其时代而保存下来的早期存储设备。它证明了:当失效带来的后果不同,技术进步会遵循不同的时间表。
在市场选择硅之后,Spacelab 选择了可靠性
Spacelab 的工程师接受了较低的密度和更高的物理复杂性,因为核心存储器能够提供可预测的持久性和抗辐射能力。
从 20 世纪 50 年代到 70 年代,磁芯存储器长期主导计算机主存。每一位数据存储在一个小型铁氧体磁环中,磁环可以沿两个方向之一被磁化。穿过磁环的导线会产生、检测并改变这种磁状态。
这种技术提供随机访问、实用的速度,以及优于多种早期存储方法的可靠性。即使工程师切断电源,它也能保留内容。Computer History Museum 将其实际崛起追溯至 MIT 的 Whirlwind 计算机,该机于 1953 年展示了一块 32×32 的磁芯平面。
半导体存储器最终改变了所有经济层面的比较。集成电路能在更小的空间中存储更多位,消耗更少电力,并支持日益自动化的生产。一个存储阵列不再需要为每一位配备实体磁环和数根精心穿设的导线。
早在 Spacelab 的存储器制造之前,这一转变就已显现。IBM 于 1970 年推出首台全半导体存储器大型机。次年推出的 Intel 1103 DRAM,则帮助确立了商品化半导体存储器作为磁芯存储器继任者的地位。
因此,Spacelab 模块代表了一次有意为之的晚期部署。它的设计者并非按照消费产品的节奏,在性能相当的技术之间做选择。他们建造的是一套预期能够承受发射、温度变化、电力中断和辐射暴露的设备。
核心存储器的磁状态不会在计算机断电时消失。这让重启行为变得更简单。程序和受保护的数据无需依靠电池或独立加载设备来维持易失性存储器,便可继续保留。
辐射带来了另一项差异。高能粒子可能扰乱半导体器件中存储的电荷,从而产生单粒子翻转。铁氧体磁环通过磁化方向存储信息,使底层存储介质不易受到同一机制的影响。
抗性并不意味着对所有太空风险都免疫。驱动电子设备、感应放大器、连接器和供电系统仍可能失效。不过,这种介质消除了存储阵列本身瞬态数据损坏的一个重要来源。
代价体现在整个物理设计中。四个平面总共容纳 1,179,648 个磁芯。每个平面含有 294,912 个磁环,排列在极细的导线之下。该组件需要空间、重量、连接器、支持电子设备以及精心设计的热接触。
传导冷却塑造了封装形式。存储模块紧贴一块可拆卸的侧板滑入,使热量能够传递至计算机结构中。在航天器内,工程师无法依赖普通室内空气流过电路板来散热。
因此,这个故事中最强大的对手并非某家公司对抗另一家公司,而是组件密度与任务可靠性之间的较量。半导体存储器赢得了更广泛的市场,因为其密度、功耗、生产规模和成本的改善速度更快。
在持久性和环境耐受性更为重要的场景中,核心存储器仍有其合理性。这种合理性只是暂时的,但持续的时间足以让这项与 20 世纪 50 年代计算机相关的技术登上 20 世纪 80 年代的航天飞机任务。
这种模式至今仍见于航空航天设计。飞行系统常采用成熟组件、冗余通道、保守的运行限制和广泛验证。实验室基准测试无法揭示发射振动或轨道辐射可能暴露的所有失效模式。
将这类硬件称为过时,忽略了真正的工程问题。关键问题在于:与新组件的不确定行为相比,某个组件已知的局限性是否更容易管理。
核心存储器如何在没有硅存储单元的情况下工作
该模块将每一位存储为一种磁化方向,随后利用精确平衡的电流脉冲选中单个磁环,同时不干扰相邻磁环。
磁芯是一个微小的环形体,也就是环状铁氧体部件。顺时针磁化代表一种二进制状态,逆时针磁化代表另一种状态。
让电流通过磁环内部的导线会产生磁场。反转电流会反转磁场。足够强的磁场会改变磁环的磁化方向,而较弱的磁场则不会。
寻址系统利用了这一阈值特性。水平导线和垂直导线穿过磁芯网格。每根导线只承载翻转磁环所需电流的一部分。
一条水平脉冲与一条垂直脉冲会在交叉点叠加。被选中的磁环获得足以改变状态的磁力。两条活动导线上的其他磁环只接收到部分电流,因此保持不变。
这一技术称为重合电流寻址。它避免为每一位分配专用电气连接。没有这项技术,即使是规模不大的阵列,也需要数量不切实际的单独导线和驱动器。
读取则带来一个复杂因素。计算机会尝试将选中的磁芯强制置于已知状态。如果磁芯改变磁化方向,这一转换会在穿过该平面的感应线中产生微小脉冲。
检测到的脉冲告诉计算机,该磁芯此前保存的是相反的值。如果磁芯没有变化,感应线便保持安静。系统因此能够判断所存储的位。
这一过程会破坏原始值。因此,读取周期必须包含重写步骤,以便在必要时恢复该位。破坏性读取听起来令人担忧,但它是传统核心存储器的一项标准且可控的特性。
测得的感应信号只有几毫伏。与此同时,附近的选择线承载着强得多的电流脉冲。这一组合使噪声控制成为设计的核心。
Spacelab 的工程师采用交叉走线方式布置感应线,使相邻驱动线带来的干扰能够在平面的不同区域相互抵消。他们还在磁芯阵列与感应放大器之间使用双绞线连接。绞合可让两根导线接收到相近的干扰,而差分放大器能够将其抑制。
每个 Spacelab 平面使用 1,024 根垂直导线和 288 根水平导线。这 288 条水平线被划分为 18 组,对应内存的 18 位物理字。
该设计采用了 2.5D 磁芯架构。不同于带有共享禁止线的传统三线布局,这种方法为每个比特位提供了独立的水平驱动控制。工程师只会在相应驱动器收到脉冲的位置写入 1。
取消禁止线简化了穿过每个磁芯的路径,并提升了性能。代价是每个比特位都需要额外的驱动电路。到 1980 年,集成式驱动芯片使这种取舍变得更现实。
该平面还采用相位反转来降低对垂直驱动器的需求。垂直导线穿过成对的列,形成 U 形回路。反转电流方向即可选择回路的一侧,而非另一侧。
流经一个磁芯的电流会发生建设性叠加,产生所需的磁场;而在其成对的相邻磁芯中,磁场则会相互抵消。因此,同一个回路无需将驱动器数量翻倍,就能寻址两倍的位置。
二极管矩阵进一步减少了硬件。系统并未为每根选择线配备完整的独立驱动器,而是通过共享驱动器的组合来选择特定路径。二极管会阻断不需要的路线,否则电流可能会经由错误的导线流动。
这个结果看起来很复杂,因为它经过了高度优化。设计人员用成本较低的二极管和结构化布线,换取更少的高电流驱动电路。每一层都减轻了另一部分负担,无论那部分负担涉及连接器、芯片、热量还是电噪声。
这解释了磁芯存储器在功能层面如何工作,但物理模块还带来了一条重要教训:内存架构与封装密不可分。逻辑网格、散热路径、连接器布局和放大器位置共同构成了一个系统。
现代开发者常常把内存视为由软件分配的抽象资源。Spacelab 磁芯存储器让更底层的结构变得可见。一个存储比特依赖于磁性材料、电流方向、时序、几何结构、噪声抵消,以及读取后的恢复。
真正的取舍在于故障行为
磁芯存储器并未在密度上胜过硅,但它的故障方式是航空航天工程师已经理解并能够围绕其进行设计的。
将 Spacelab 模块与同时代半导体存储器进行比较,不能只看物理尺寸的差异。每种技术都会改变系统的恢复方案。
磁芯存储器在断电后仍能保留已加载的程序。只要周边电子设备仍可正常工作,工程师就能恢复供电,并立即恢复原有内容。半导体 RAM 通常会丢失内容,需要另一种持久化机制。
磁芯还降低了存储介质对辐射引发比特变化的敏感性。半导体系统则需要纠错码、持续内存巡检、屏蔽、冗余或经过辐射认证的制造工艺等保护措施。
这些保护措施最终比维护沉重的磁芯系统更可取。1991 年,升级后的 Shuttle 计算机开始使用配备半导体存储器的 IBM AP-101S。Spacelab 也转向采用相关的 AP-101SL。
新设计需要明确解决磁芯原本天然处理的问题。根据 Shirriff 的支持性研究,电池备份可在断电时保存内存内容;带纠错功能的存储位则有助于检测和修复与辐射有关的损坏。
这一转变并未否定早先的决定。它表明半导体系统已经成熟到足以让工程师管理其新的故障模式。更高密度和更低功耗随后超过了磁芯的内在优势。
不过,从一个留存下来的堆叠模块中能够得出的结论也有限。Shirriff 已对电路板进行了实物检查并重建其拓扑结构,但尚未对这个具体模块给出完整的运行测试。一些电路解读仍属初步结论。
所检查单元的确切飞行历史也是另一项不确定因素。该硬件属于 Spacelab 计算机家族,并体现了面向飞行环境的构造。公开可得的证据并未确立这个单独堆叠模块所关联的每一次任务、配置或运行时长。
这一差异很重要,因为一件实物可以代表经过认证的设计,但并不能证明这一确切单元曾经飞行。严谨的报道应区分家族级文档与实物级来源记录。
该模块表面上的可靠性也不能仅归因于磁芯存储器。Spacelab 依赖三台计算机,其中包括一台备用机。冗余设计覆盖了任何单一组件选择都无法消除的故障。
软件约束同样重要。系统运行的是有界、任务专用的工作负载,而不是任意的用户应用。工程师能够比开发者测试开放式个人计算机更全面地测试预期状态、接口和时序。
Hacker News 的叙述方式可能会引出一个过于简单的结论:旧硬件更好。事实并非如此。磁芯存储器需要极其巨大的制造投入,却只能以其体积提供极少的容量。
其细导线带来了机械和生产风险。更多的连接器与离散支持组件也意味着更多潜在故障点。修复受损的磁芯平面,与更换一条标准化内存模块完全不同。
半导体存储器最终胜出,是因为系统工程师学会了补偿其易失性与辐射敏感性。纠错、冗余架构、改进的工艺技术和认证计划,使其更高密度能够用于要求严苛的环境。
教训并非要拒绝新组件,而是在把容量、速度或能耗的提升视为自动的系统改进之前,先评估完整的故障模型。
这一原则并不局限于航天器。数据中心会跨多台机器复制存储,因为单个硬盘会故障。安全系统会隔离控制路径,因为软件故障可能传播。嵌入式设备会保存恢复镜像,因为更新可能导致主安装系统无法使用。
知识保存也遵循类似模式。技术团队既需要高效检索,也需要持久的来源上下文,尤其是在重建旧系统时。一个可搜索的知识库有助于连接原理图、手册、笔记和后续观察,同时不取代原始证据。
Spacelab 的拆解之所以成功,是因为它结合了这些不同类型的证据。硬件照片揭示构造方式;技术文档识别系统角色;组件标记将电路与当时的数据手册联系起来;历史记录则解释了该实验室为何存在。
没有任何单一来源能提供完整解释。工程故事源自实物、其文档以及其服务环境之间的关系。
Spacelab 计算机仍然无法告诉我们的事
下一步有价值的发现,必须确立来源记录、完成电路重建,并测试推断出的架构是否如预期运行。
首先值得关注的信号,是为所检查计算机建立更完整的保管链。序列号、资产记录、维护日志或配置文档,或许能将该单元与特定的 Spacelab 装置联系起来。
这些证据将加强关于这一特定模块如何及在何处运行的说法。缺少这些证据时,最稳妥的结论是:该硬件代表了 Spacelab 所使用的 Mitra 125 MS 设计。
第二个信号是完成对驱动器和接口板的分析。Shirriff 已深入记录磁芯平面,但将他对其余电路板的工作描述为初步研究。
这些电路应能揭示确切的时序关系、总线行为、选择逻辑和故障控制。它们也将检验关于两块驱动板如何在四个存储平面之间进行选择的解释。
第三个信号是对重建系统进行电气或模拟验证。为不可替代的硬件通电显然存在风险,因此完整的物理恢复未必合适。
不过,局部台架测试、捕获的波形或电路级仿真,仍可验证感应阈值和选择路径。它可以显示推断出的相位反转和矩阵布局是否符合模块的实际行为。
这些信号之所以重要,是因为逆向工程总是在可见结构与已验证运行之间存在缺口。一个令人信服的拓扑结构,仍可能隐藏未被记录的时序条件、配置跳线或组件行为。
后续工作还应将该模块与地面使用的 Mitra 125 S 系统进行比较。NASA 记录表明,地面机器在功能上相似,尽管其构造可能不同。经过文档化的比较将区分整个家族共享的架构,与为严苛环境所做的适配。
更广泛的历史比较同样重要。存储器时间线显示,半导体存储器在 20 世纪 70 年代超过了磁芯存储器。Spacelab 表明,市场转型和航空航天领域的转型不必同时发生。
NASA 记录为该系统的重要性提供了另一种尺度。Spacelab 支持天文学、大气科学、生物学和材料科学等领域的研究。它还帮助建立了后来与国际轨道实验室相关的运行实践。
该内存堆叠只是该计划中的一个子系统,但它保存了实验室管理和实验控制背后的软件状态。其容量虽小,却承载着现代存储容量数字无法传达的责任。
对开发者而言,有价值的比较并不是 128 千字节与如今的千兆字节之间的比较,而是围绕可恢复状态设计的系统,与假定支持基础设施始终可用的系统之间的比较。
对硬件团队而言,该模块说明了为什么物理布线值得得到架构层面的关注。噪声抵消、热传导、连接器位置和驱动器共享,并不是在内存设计之后添加的实现细节;它们就是内存设计本身。
对技术采购者而言,它警示我们不要只看规格表。某一列中更高的数字,可能会在其他地方带来隐藏义务。更高密度可能需要更多纠错;更快更新可能需要更强的回滚系统;更多自动化可能需要更好的可观测性。
对历史学家而言,这项研究展现了保存完整组件的重要性。从堆叠结构中移除一个磁芯平面,虽然会保留铁氧体阵列,却会丢失关于驱动器共享、电路板顺序、冷却和接口的证据。
因此,最有价值的下一步并不是再次泛泛赞颂复古计算,而是开展严谨的重建。研究人员应识别实物能够证明什么、文档能够确立什么,以及哪些内容仍然只是推断。
这种做法也让 Hacker News 上的讨论保持在务实的轨道上。真正值得关注的冲突,并非出于偏好而让旧技术与新技术相互对立,而是可见的可靠性与隐藏的系统义务之间的矛盾。
在评估现代平台时,不妨提出 Spacelab 的硬件所迫使人们直面的问题:当电力、连接性或既有假设不复存在时,它的状态会发生什么?然后,在故障替你给出答案之前,先把答案记录下来。


