从水银嘟囔到硅片静默

📄 View Markdown source

Cover

从水银嘟囔到硅片静默:计算机存储的荒诞进化史

1952年11月4日晚上8点,美国CBS电视台的演播厅里气氛异常紧张。主持人沃尔特·克朗凯特面对着全国观众,手里拿着一张刚刚打印出来的纸条,上面写着一个让所有人都难以置信的预测:艾森豪威尔将以压倒性优势击败史蒂文森,赢得总统大选。

这个预测来自费城一台名为UNIVAC I的计算机。在那台巨大的机器内部,560根水银管在40度的高温中嘟囔着"说话",每根管子里1.5米长的水银柱正在以声波的形式存储和处理着全美的选票数据。仅仅统计了5%的选票,UNIVAC就给出了这个"荒谬"的结论。

克朗凯特犹豫了。所有的政治专家都预测这将是一场势均力敌的选举,艾森豪威尔最多只能以微弱优势获胜。他决定不播报这个预测,而是让技术人员"调整"程序,给出一个更"合理"的结果。

最终的选举结果?艾森豪威尔以83%对17%的压倒性优势获胜,UNIVAC的原始预测几乎完全正确。

这就是人类第一次见识到计算机存储和处理能力威力的历史时刻。而支撑这一切的,是那560根在热气腾腾中嘟囔着的水银管——计算机存储技术荒诞而精彩的进化史的第一章。

水银管里的电子魅影

1951年的费城,UNIVAC I机房里热浪滚滚。工程师们穿着白大褂,在40度的恒温环境中小心翼翼地调试着560根水银延迟线管。这些管子看起来就像实验室里的试管,但里面装的不是什么神秘药剂,而是剧毒的水银。

每根管子的两端各有一个压电晶体,工作时电脉冲被转换成声波,以每秒1450米的速度在水银中传播。工程师们给它们起了个绰号叫"mumble-tub"(嘟囔桶),因为这些管子工作时会发出类似人类含糊说话的声音。整个机房里回荡着560个"电子魂魄"的嘟囔声,既神秘又诡异。

约翰·莫克利(John Mauchly)站在这些管子前面,心里清楚这是一个疯狂的方案。用剧毒的水银、在40度高温下、靠声波来存储信息?这听起来就像是科幻小说里才有的情节。但在1950年代初,真空管太昂贵,磁带太慢,这已经是他们能想到的最好办法了。

一根水银管能存储560个比特,560根管子总共能存储313,600比特——大约39KB。今天你拍一张手机照片是3MB,比UNIVAC的全部内存大了77倍。但就是这39KB的存储空间,让UNIVAC在1952年大选夜成为了全世界的焦点。

更荒诞的是,阿兰·图灵曾经建议用杜松子酒代替水银作为延迟介质,因为杜松子酒具有"合适的声学特性"。虽然这显然带有英式幽默色彩,但也反映了那个年代工程师们的探索精神——为了存储几千个比特的信息,他们愿意尝试任何可能的方案。

鼓声中的时间艺术家

如果说水银管的嘟囔声是存储技术的"史前时代",那么磁鼓的旋转声就是"古典时代"的序曲。想象一下一个直径60厘米、长1米的金属圆筒,表面涂着红褐色的磁性氧化物,以每分钟3600转的速度不停旋转。这就是IBM 650的"心脏"——磁鼓存储器。

1954年,纽约IBM总部的一间办公室里,程序员约翰·巴克斯(后来发明FORTRAN的那位)正在为IBM 650编写程序。他面前摆着一个复杂的圆形图表,上面标注着鼓面上每个位置的时序数据。他需要像古代的占星师一样,精确计算每条指令的执行时间,然后将下一条指令放在鼓面上一个经过精心计算的位置。

这种被称为"skip factor"的技术,是计算机历史上最早的性能优化。程序员必须深入理解硬件的物理特性,像制表师一样计算时序。如果计算错误,程序就要等待鼓面再转一圈,那可是整整16.7毫秒——在那个CPU指令只需几十微秒的时代,这简直是漫长的等待。

巴克斯后来回忆说:"我们就像是时间的艺术家,在旋转的鼓面上编织着指令的舞蹈。每个程序员都必须是半个物理学家,理解磁性、转速、电磁感应的复杂关系。"

IBM 650的磁鼓能存储2000个10位字,后来增加到4000个字——总共大约35KB。这个容量今天连一个emoji表情包都装不下,但在1954年已经是"海量存储"了。更重要的是,这种优化思想延续至今:现代的CPU缓存、指令流水线、分支预测,都可以追溯到当年程序员在磁鼓上计算时序的智慧。

月球上的编织奇迹

1969年7月20日,当尼尔·阿姆斯特朗踏上月球表面时,支撑阿波罗11号导航系统的是一台只有72KB内存的计算机。这72KB存储在哪里?在数千个只有几毫米大小的铁环里,而这些铁环是由地球上的一群女工用放大镜和纤细如丝的铜线,一针一线手工编织而成的。

1965年,马萨诸塞州剑桥市的雷神公司工厂里,一群被称为"LOL"(Little Old Ladies,小老太太们)的女工正在进行人类历史上最精细的手工艺。她们坐在工作台前,戴着厚厚的放大镜,手里拿着比头发还细的铜线,正在编织阿波罗导航计算机的核心绳存储器(Core Rope Memory)。

每根铜线的走向都严格按照程序设计:如果要在某个地址存储"1",铜线就必须穿过对应的磁芯;如果要存储"0",铜线就必须绕过磁芯。一个模块包含几千个磁芯,需要几个星期的连续工作才能完成。最关键的是,不能有任何错误——因为这些存储器将要在距离地球38万公里的太空中工作,没有维修的可能。

多萝西·多伊尔(Dorothy Doyle)是这群编织者中的一员。她后来回忆说:"我们知道自己编织的每一根线都可能关系到宇航员的生死。有时候我会想,我的这一针,可能就是让阿姆斯特朗安全返回地球的关键。"

阿波罗导航计算机的存储容量在今天看来微不足道:72KB总内存,不够存储一首MP3音乐的1%。但就是这72KB,指引着人类完成了历史上最伟大的冒险。从某种意义上说,人类的登月成功不仅仅依靠火箭和宇航员,也依靠了地球上那些默默无闻的编织女工的精湛手艺。

更有趣的是,当阿波罗11号着陆时,计算机发出了1202和1201警报——这是内存不足的警告。即使在人类最伟大的时刻,我们还是被存储容量限制困扰着。

显示器里的隐形记忆

1948年6月21日上午11点,英国曼彻斯特大学的一间实验室里,汤姆·基尔本(Tom Kilburn)和弗雷迪·威廉姆斯(Freddie Williams)紧张地盯着一台阴极射线管显示器。这台显示器很特别——它不是用来显示图像的,而是用来存储数据的。

在显示器的荧光屏上,密布着无数个小光点。每个光点代表一个比特的信息:有电荷的位置是"1",没有电荷的位置是"0"。这就是威廉姆斯管(Williams Tube)——世界上第一种随机访问存储器。

基尔本输入了一个17行的程序,让计算机计算2的最高幂。程序开始运行,屏幕上的光点不断闪烁变化。52分钟后,程序停止,屏幕上显示出结果。这是计算机历史上第一个存储程序的成功运行。

威廉姆斯管的工作原理堪称奇迹:当电子束击中荧光粉时,会产生二次电子发射,在荧光粉表面形成一个带正电的小坑和周围带负电的区域。这个电荷分布可以维持一小段时间,正好可以用来表示一个比特。但这也意味着每次读取都会破坏原数据,需要立即重写。

这种"破坏性读取"的特性让程序员们抓狂。UNIVAC 1103的程序员经常开玩笑说:"我们的内存有记忆,但很健忘。每次问它一个问题,它回答完就忘了自己刚才说了什么。"

更要命的是,威廉姆斯管对电磁干扰极其敏感。附近有人开电灯、关门,甚至走动,都可能影响存储的数据。曼彻斯特大学的工程师们开玩笑说,他们的计算机有"情绪",天气不好的时候就容易出错。

纸片上的程序王国

1890年的华盛顿特区,美国人口普查局面临着一个巨大的挑战:如何处理6300万人口的统计数据?手工统计预计需要13年时间,等统计完成,下一次人口普查又该开始了。

赫尔曼·霍勒里斯(Herman Hollerith)提出了一个革命性的解决方案:用打孔卡记录信息,用机械设备读取和统计。每张卡片上有12行80列共960个可能的打孔位置,每个位置的有孔或无孔代表不同的信息。

1950年代到1970年代,整个世界的数据处理都建立在这些纸片之上。程序员的工作场景是这样的:办公室里堆满了成千上万张卡片,分装在不同的盒子里,每个盒子上贴着标签:「工资程序-第1部分」、「库存管理-更新模块」。

IBM大型机时代的程序员回忆起那个年代,总是带着一种混合的情感。一方面,那种实体化的编程体验有着独特的魅力——你可以真正"拿"起一个程序,可以看到代码的"重量",一个大型系统可能需要好几个人才能抬起来。

另一方面,那也是一个充满意外的年代。IBM的一位老程序员约翰·史密斯回忆说:"我永远忘不了1967年的那个春天,我花了三个月编写的会计程序,在最后测试时因为一阵风把卡片吹散了。5000张卡片散落一地,按正确顺序重新排列用了两天时间。从那以后,我再也不在开窗的办公室里工作。"

卡片上印着的那句著名警告「不要折叠、弯曲或毁损此卡」(Do not fold, spindle or mutilate),成为了一整代程序员的集体记忆。这句话后来被反叛的学生用作抗议口号,成为对机械化社会的一种象征性抵抗。

泡泡破灭的未来梦

1970年,贝尔实验室的安德鲁·博贝克(Andrew Bobeck)站在一台显微镜前,兴奋地观察着一种神奇的现象:在某种特殊的磁性材料中,可以形成稳定的微小磁畴——磁泡(magnetic bubbles)。这些直径只有几微米的"泡泡"可以在磁场控制下移动,每个泡泡可以存储一个比特的信息。

博贝克相信这将彻底改变计算机存储技术。磁泡存储器没有机械运动部件,不怕震动;断电后数据不会丢失;而且理论上可以做得极其小巧。英特尔、德州仪器和其他科技巨头都投入了巨额资金,相信磁泡存储器将很快取代磁盘,成为计算机的主要存储设备。

1978年,英特尔发布了7110磁泡存储器芯片,容量1兆比特,在当时算是相当可观的容量。广告词充满了雄心壮志:「磁泡存储器——未来已来!」

然而,历史有时候充满了戏剧性。就在磁泡存储器看似前途无量的时候,另一种技术悄然兴起:闪存(Flash Memory)。1980年,东芝的舛岡富士雄发明了闪存技术。这种基于浮栅晶体管的存储技术不仅具有磁泡存储器的所有优点,而且成本更低,容量更大,访问速度更快。

到了1990年代,磁泡存储器从「未来技术」迅速沦为历史古董。那些投资了数千万美元的公司只能眼睁睁看着自己的「泡泡」破灭。

这个故事提醒我们:技术发展的道路从来不是可以准确预测的。今天看似不可阻挡的技术趋势,可能明天就会被完全不同的方案颠覆。

从嘟囔到静默的革命

2000年,韩国三星电子的一间实验室里,工程师们正在测试一种新的存储设备:固态硬盘(SSD)。与传统硬盘不同,这种设备里没有任何机械运动部件,没有马达的呼呼声,没有磁头的嗒嗒声,静得像深海一样。

从UNIVAC I的水银管嘟囔声,到磁鼓的旋转声,再到机械硬盘的呼呼声,计算机存储设备一直伴随着各种声音。程序员们甚至可以通过声音判断设备的工作状态:磁盘访问密集时的急促声响,系统启动时的有序节奏,甚至可以听出硬盘即将损坏的异常声音。

但SSD的出现改变了一切。它工作时静默如空气,却能够提供比机械硬盘快100倍的访问速度。一个现代的1TB SSD,相当于268万根UNIVAC的水银管,但体积只有手机大小,重量不到100克。

更令人惊叹的对比是:UNIVAC I的560根水银管总共存储39KB数据,需要一间房子的空间和30吨重的设备支持;而今天一张microSD卡可以存储1TB数据,相当于2560万个UNIVAC的全部存储容量,但只有指甲盖大小,重量不到1克。

这就是技术进步的力量:今天我们随手插入手机的存储卡,比1952年预测美国总统大选结果的超级计算机强大2500万倍。

终章:50年后,谁是下一个「水银管」?

2074年的某天,一个工程师可能会对孙子说:

「你能相信吗?2026年的人竟然用极紫外光在硅片上刻电路,就像用大象脚在米粒上写字!他们的内存还要不停刷新才能保住数据,像个患了健忘症的老人!」

也许我们今天引以为傲的DDR5、NVMe SSD,在未来人眼中就是「水银延迟线」的2.0版本。DNA存储、量子存储、光子芯片——可能正是下一轮「荒诞」循环的起点。

但有一样东西永远不会过时:在约束条件下的创造力。莫克利用水银管预测了总统大选;多萝西用双手编织出了月球导航系统;基尔本用闪烁的荧光屏跑出了第一个程序。

他们都是时代的「荒诞」创造者。而此刻,某个实验室里,一定有人正在调试什么看起来同样荒诞的新技术。

今天的不可能,就是明天的理所当然。

---

*本文中「core dump」一词至今仍在程序员日常中使用——它来自60多年前那些手工编织的铁环。下次程序崩溃时,想想那些在显微镜下穿铜线的女工们吧。*