1980年,地面上的计算机大多已经用上了半导体内存,可跟着航天飞机上天的欧洲实验室Spacelab,里面的三台小型机存数据靠的还是一圈圈铁氧体环——磁芯存储器,一种1950年代就成熟的老技术。科技博主righto.com把其中一台的内存堆叠板拆开拍了个遍。有意思的不是"这玩意有多古老",而是欧洲工程师明知半导体更快更密,却还是把赌注押在了磁环上。
拆开的这块板子,是什么
Spacelab里装了三台一模一样的Mitra 125 MS小型机,法国CIMSA制造——常被误认成军工巨头MATRA,但MATRA其实只是Spacelab数据系统的承包商,不造这台机器。三台机器分工明确:一台管Spacelab子系统,一台管实验,第三台是备份。
这次拆开的内存堆叠板,是七块电路板叠成的一摞,占了整机三分之一体积,靠导热直接贴在机箱侧板上散热。内存本体是64K×16位字的磁芯阵列,加上一位奇偶校验和一位写保护,凑成18位一个字,总容量128KB。写入周期930纳秒,读出访问470纳秒,双端口设计。放在1980年,这已经是磁芯技术的晚期高密度型号。
一格一环,磁芯怎么存数据
每个比特对应一个铁氧体环,顺时针或逆时针磁化代表0和1。难题是怎么不用天文数字的导线选中某一个环。工程师的解法叫coincident current addressing:每根导线只通一半翻转磁芯所需的电流,单独经过时磁芯纹丝不动;只有X线和Y线在某个交点同时通电,叠加的磁场才够把那一个环翻过来。
这套原理由MIT的Jay Forrester在1953年的Whirlwind计算机上第一次做成实用系统,RCA的Jan Rajchman和哈佛的An Wang也各握着关键专利。后来IBM为此付了MIT一千三百万美元,付给An Wang四十万美元——后者拿着这笔钱创办了王安实验室。一块内存板背后,是一场专利战打出来的产业史。
磁芯保命,靠的不是全部电路
磁芯最大的长处是非易失:断电后磁化方向原地不动,重新加电立刻能跑之前的程序。这个特性在太空里是刚需,但它救不了整台机器。coincident current addressing的驱动电路、读出放大器、控制逻辑,依然是清一色的半导体器件;读一次磁芯还是破坏性读出,读完得立刻写回原值——真正暴露在辐射环境里的故障点,从来不只是那圈铁氧体。
磁芯不怕断电,却挡不住周围半导体电路的老毛病。
航天飞机自己的主计算机AP-101,走的是另一条路。早期的AP-101B同样用磁芯做主存,容量约416KB(104K×32位字)。升级版AP-101S换成CMOS半导体内存,容量翻到1MB(256K×32位字),但代价是必须配电池保持供电、加EDAC纠错编码,还要每隔约1.67秒把整块内存扫一遍,主动纠正被宇宙射线打翻的比特。
半导体内存密度更高、速度更快,换来的却是一整套主动纠错系统去补辐射脆弱性的短板。磁芯用物理特性省掉这套系统,代价是密度和速度的天花板压得很低。这不是谁更先进的问题,是同一个可靠性指标,选择在哪一层解决。
三台机器和五台机器,差的不是数量
Spacelab里的三台Mitra 125 MS,分工朴素——出故障时人工切换,三者之间没有同步表决,也没有互联。航天飞机本体在关键飞行阶段的配置硬得多:四台AP-101同步运行、互相表决,外加第五台跑着完全独立软件的备份飞行系统。哪台机器算出的结果和其他三台不一致,直接被投票踢出去;连软件本身都留了独立实现,防止同一个bug把四台机器一起放倒。
- 结论.磁芯的抗辐射优势只解决了存储器这一层,系统级容错不能靠内存技术偷懒。
Spacelab选手动切换,是因为它管的是实验数据,不直接决定飞船生死;航天飞机的姿态与制导算法容不得那种延迟,配置直接拉满。同一句"要可靠",两套系统给出的成本账完全不一样。
1980年选磁芯,不是技术滞后,是算过账的工程决定:数据在断电、重启、辐射翻转里都不能丢,而当时的半导体给不了这个保证,除非另配一整套纠错电路。今天航天电子设备里随处可见的EDAC纠错、周期性内存扫描,根子就在AP-101S那次换血里——用主动纠错换密度,而不是靠材料本身的物理稳定性赌运气。一块老古董拆开,里面全是权衡,没有一处是将就。
