Hotdry.

Article

从PCB实物逆向还原Spacelab计算机ALU架构:数据总线与存储器映射分析

通过分析1980年Spacelab计算机的ALU/寄存器板实物,还原其32位ALU在16位架构中的设计逻辑,总结电路级逆向工程的方法论与可落地参数。

2026-05-23systems

背景:航天级计算机的离散逻辑时代

1980 年代的 Spacelab(空间实验室)是欧洲航天局与 NASA 合作的可重复利用实验舱,可搭载于航天飞机货舱内为宇航员提供实验空间。其核心控制系统采用法国 CIMSA 公司制造的 Mitra 125 MS 小型计算机 —— 这是一台典型的 "前微处理器时代" 机器,未使用任何单片微处理器,而是由 36 块布满 TTL 集成电路的电路板构建而成。

Mitra 125 MS 源自 1971 年 CII 公司推出的 Mitra 15 系列,"Mitra" 是法语 "Mini-machine for Real-Time and Automatic Computing" 的缩写。作为军用加固版本,125 MS 被用于 Spacelab 的子系统控制与实验数据处理,每台 Spacelab 任务配备三台计算机(子系统计算机、实验计算机与备份机),通过磁芯存储器提供 128KB 内存容量。

32 位 ALU 的架构谜题

令人意外的是,这台 16 位计算机的算术逻辑单元(ALU)采用了 32 位设计。ALU 由 8 颗 54S181 芯片级联构成,配合 2 颗 54S182 超前进位芯片加速进位传递。54S181 是德州仪器 74181 的军事级版本("54" 表示军用温度范围,"S" 表示肖特基高速逻辑),每颗芯片实现 4 位运算功能,内含约 170 个晶体管。

32 位 ALU 在 16 位架构中的存在具有明确的工程逻辑:16 位乘法产生 32 位结果,32 位 ALU 可一次性完成运算而非分步处理;同时,该系统支持 32 位浮点数运算,宽位 ALU 显著提升了浮点操作性能。

ALU / 寄存器板的电路逆向分析

ALU 与寄存器功能分布在三块电路板上。以其中一块为例,其实现了 32 位 ALU 中的 12 位(位 11-0),芯片布局如下:

核心组件清单:

  • 3 颗 54S181 ALU 芯片(每颗处理 4 位)
  • 12 颗多路复用器芯片(为 A、B 两个操作数各提供 4 选 1 选择,每 4 位需 2 颗芯片)
  • 9 颗 4 位寄存器芯片(构成三个 32 位寄存器 A/B/C,每寄存器每 4 位需 1 颗芯片)
  • 3 颗六反相器芯片与 1 颗四输入 NAND 门芯片用于控制逻辑

数据通路架构: ALU 接收两个 32 位操作数 A 和 B,每个操作数通过多路复用器从四个来源中选择:总线输入、寄存器 1/2/3 输出、移位后的寄存器值、全 1 常量(用于补码递减)以及一个标记为 "mix" 的未明信号。ALU 输出可写入三个 32 位寄存器之一,其中寄存器 1 和 2 支持移位功能(左移 / 右移),寄存器 3 为纯锁存器。

电路板采用 96 针边缘连接器与主板互联,连接器上设有三颗定向键控柱,防止插错槽位。PCB 采用网格化过孔设计(类似 IBM System/360 风格),走线密度允许双股细线穿过一对过孔之间。板底设有金属散热条为集成电路导热,部分板卡背面可见黄色飞线(bodge wires),用于修正设计错误。

存储器映射与总线架构的逆向方法论

从 PCB 实物逆向还原计算机架构,需遵循以下步骤:

第一步:连接器引脚功能识别 通过追踪 PCB 走线,将 96 针连接器划分为电源、地线、数据总线、控制信号等分组。该板的数据总线宽度、ALU 控制信号(S0-S3 选择运算功能、M 选择逻辑 / 算术模式)以及寄存器写入使能信号均可通过芯片引脚反向追踪确定。

第二步:多路复用器输入溯源 每个 ALU 操作数的多路复用器有 4 个输入源。通过分析多路复用器芯片(通常为 74153 或类似型号)的选择线(通常连接到微码控制单元)与输入线走线,可绘制出数据选择矩阵:

选择码 A 操作数来源 B 操作数来源
00 总线 总线
01 寄存器 1 寄存器 1
10 寄存器 2(移位后) 寄存器 2(移位后)
11 寄存器 3 / 常量 /mix 寄存器 3 / 常量 /mix

第三步:寄存器文件映射 通过追踪寄存器芯片(通常为 74174 或 74175 等 D 触发器阵列)的数据输入、输出与时钟使能引脚,可确定三个寄存器的位宽、读写端口数量以及与 ALU、总线的连接关系。移位功能通过寄存器芯片的级联方式与移位方向控制线实现。

第四步:控制信号时序重建 ALU 功能选择(S0-S3、M)、进位输入、寄存器写入使能、多路复用器选择线等信号均来自计算机的微码控制单元。通过识别这些信号在连接器上的引脚位置,并结合芯片数据手册的时序参数(54S181 的典型传播延迟为 11ns),可重建单条微指令的执行时序。

工程启示与可落地参数

从 Spacelab 计算机的逆向分析中,可提取以下对现代硬件设计仍有参考价值的参数与原则:

离散逻辑时代的密度基准:

  • 单面 PCB:约 30 颗 DIP 封装芯片(对比 IBM 4Pi 航空计算机双面板的 156 颗扁平封装芯片)
  • 芯片引脚间距:2.54mm 标准 DIP 间距
  • 走线规则:双股线可穿过一对过孔(约 0.4mm 线宽 / 间距)

ALU 设计权衡:

  • 超前进位 vs 行波进位:54S182 可将 4 颗 54S181(16 位)的进位延迟从级联传播优化为并行计算
  • 位宽扩展策略:16 位架构配 32 位 ALU,以硬件冗余换取乘除与浮点性能

可维护性设计:

  • 连接器键控:三颗定向柱防止误插
  • 现场可修复:飞线修正 PCB 错误,无需重新制板
  • 散热:金属导热条而非风扇,适应太空无对流环境

逆向工程检查清单:

  1. 拍摄高分辨率 PCB 正反面照片,确保走线可见
  2. 识别所有芯片型号,查阅数据手册确认引脚功能
  3. 用彩色笔在照片上追踪关键信号(电源、地线、数据总线、控制线)
  4. 绘制芯片级原理图,标注每个引脚的连接目标
  5. 从连接器向外推导系统级架构
  6. 标记未明信号(如本例中的 "mix" 输入),留待进一步分析

结语

Spacelab 计算机代表了微处理器诞生前小型计算机的巅峰设计 —— 用数百颗中规模集成电路构建完整的计算系统。通过对其 ALU / 寄存器板的逆向分析,我们不仅能理解 1980 年代航天级计算机的工程权衡,更能掌握从物理 PCB 还原数字架构的通用方法论。这种从实物到原理的逆向能力,在分析现代封闭硬件、芯片去封装或 vintage computing 领域依然具有不可替代的价值。


资料来源

  • Ken Shirriff, "Reverse engineering circuitry in a Spacelab computer from 1980", 2026 年 5 月
  • NASA Technical Reports Server, Spacelab Command and Data Management Subsystem (CDMS) documentation

systems

内容声明:本文无广告投放、无付费植入。

如有事实性问题,欢迎发送勘误至 i@hotdrydog.com