太空中的磁芯:1980年Spacelab电脑的核心内存模块
太空中的磁芯:1980年Spacelab电脑的核心内存模块
事件概述
Spacelab是一个可重复使用的实验室,搭载于航天飞机的货舱内,为宇航员和科学实验提供空间。作为欧洲项目,Spacelab没有采用航天飞机主电脑的IBM AP-101系统,而是使用了一台法国制造的迷你电脑——Mitra 125 MS。这台电脑拥有128KB内存,但它不是硅基半导体内存,而是采用磁芯内存(core memory),每个比特存储在一个微小的铁氧体磁环中。
近日,有技术爱好者拆解并详细分析了这台电脑的磁芯内存模块,并撰文介绍其内部结构。本文基于该文章进行整理。
关键技术点
磁芯内存的基本原理
磁芯内存利用微型环形磁芯的磁化方向来存储二进制数据:顺时针或逆时针磁化分别表示0或1。一根导线穿过磁芯,通电后产生的磁场即可改变磁芯的磁化状态。
关键在于“重合电流寻址”(coincident current addressing)。磁芯排列成网格,通过水平和垂直导线交叉选择目标磁芯。每根导线仅施加翻转磁芯所需电流的一半,只有交叉点的两个电流叠加后才能达到翻转阈值。由于磁芯材料的磁滞特性,小的电流不会改变磁芯状态,从而避免干扰其他磁芯。
读操作与破坏性读出
每个磁芯平面中穿有一根“感应线”(sense wire)。读取特定磁芯时,X和Y选择线驱动该磁芯翻转到0状态。若磁芯原来为1,状态翻转会在感应线上诱发微小电流;若为0则无变化。这种读取方式会破坏原有数据,因此必须在读后重写,以恢复原始值。
三维堆叠与写入机制
为了按“字”存取,多个磁芯平面堆叠成三维结构,每个平面存储一个字中的一个比特。各平面共享X/Y驱动信号,从而并行访问一列磁芯。写入时,由于不同比特需要不同值,使用“禁止线”(inhibit line)穿过每个平面,其电流方向与X线相反,抵消X线的电流,使得需要写入0的平面不被修改。
二极管矩阵驱动
磁芯内存的X/Y线需要大电流双向驱动脉冲,若每根独立线都配一个驱动器则成本极高。解决方案是采用二极管矩阵,使每个驱动器可支持多条线,显著降低电路复杂度。许多磁芯内存(例如IBM 360 Model 50)将感应线和禁止线合并为一根共享线,因此每个磁芯仅需穿三根线。
对数据科学或AI Agent落地的意义
虽然磁芯内存早已被半导体内存取代,但它所体现的可靠性设计思想在现代AI和数据系统中依然值得借鉴。例如:
- 抗辐射与高可靠性:磁芯内存不依赖易失性电荷,因此在太空环境中表现出很强的抗辐射能力。对于需要长期运行在极端环境中的AI边缘设备或数据采集系统,存储介质的可靠性和抗干扰能力仍是关键考量。
- 冗余与备份架构:Spacelab使用三台相同的电脑,分别负责管理、实验和备份。这种冗余容错设计在如今的AI系统中同样重要,尤其是在Agent自主运行或关键决策场景下,多实例备份与一致性机制可以显著提升系统稳定性。
- 地址解码与高效驱动:重合电流寻址和二极管矩阵的核心思想,本质上是用极少的驱动电路通过交叉选通实现大规模存储访问。这与现代存储系统中的行列译码器、存内计算中的模拟计算方式在逻辑上一脉相承。
我的技术点评
这篇文章以清晰的照片和示意图展示了1980年Spacelab电脑的磁芯内存堆栈,内容详实且考据严谨。磁芯内存虽然是“古董”技术,但其原理中蕴含的数学思维(二维寻址、破坏性读后重建、禁止线抑制写入)非常优雅,至今仍在一些非易失性存储器或新型存算一体架构中得到类似应用。
有一点值得注意:原文提到“为写不同值到不同比特,把禁止线穿过平面内所有磁芯,方向与X线相反”,这里需要理解“禁止线电流抵消X线电流”的具体物理实现——实际上是对该平面的X驱动磁场进行局部抵消,从而让该比特保持0。这种巧妙设计在工程上显然经过仔细权衡。
另外,原文指出Spacelab的磁芯内存堆栈约占电脑体积的三分之一,并通过传导冷却方式与侧板紧密贴合。这提示我们在设计高可靠计算系统时,热管理与结构集成同样是不可忽视的约束。
总体上,这篇文章既是计算机历史爱好者的珍贵资料,也是对存储技术本质的一次回溯。若想要理解现代内存为什么是现在这个样子,磁芯内存是一个很好的起点。
原文链接
Cores in space: The core memory module from a 1980 Spacelab computer
原文发布于 righto.com,由 Ken Shirriff 撰写,本文为整理与解读,部分表述已进行中文化调整。
