记录与计算机存储相关的过往(连载十):看得见的存储
专栏

雷德里克·克兰·威廉姆斯和他的助手汤玛斯·基尔伯恩,发明了历史上第一种随机访问存储器,计算机存储也从此走进图像时代。而在上世纪50年代计算机萌芽时期,威廉姆斯的另一发明成为了许多计算机不可或缺的内存。
第一台能存储程序的“Baby计算机”
以ENIAC的发明为标志,人类正式进入电子计算机时代。但是ENIAC依然不能存储程序。第一台真正应用了可存储程序思路的电子计算机,是英国在1948年开发的“小规模实验机”,它的昵称更广为人知:Baby计算机。
Baby计算机的开发者是雷德里克·克兰·威廉姆斯和他的助手汤玛斯·基尔伯恩,他们也是历史上第一种随机访问存储器的发明者;这种存储装置,用的是人们早已熟悉的显示装置:阴极射线管(CRT)。
1896年,德国物理学家卡尔·斐迪南·布劳恩发明了阴极射线管。它用电子撞击涂了荧光粉的显示屏内表面,以电磁场控制电子偏转的幅度,能够显示出图像。人们很快意识到了这种设备的用途,并且很早就应用在雷达中。但是使用阴极射线管做为存储装置,却是在二战之后才成为现实。
威廉姆斯在28岁那年获得了博士学位,并且开始投身于电信研究的工作。随着二战爆发,他的研究方向开始转向军用通讯领域。1945年,威廉姆斯受邀访问了麻省理工学院和宾夕法尼亚大学的莫尔学院,就是在美国,他萌生了使用CRT来存储数据的设想。和水银延迟线一样,这种存储器最初的设想,也是为了让雷达能够更好地分辨移动和非移动物体。
回到英国之后,他马上开始投入到CRT存储的研究。他尝试用阴极射线管存储模拟数据和数字数据;前者用于雷达,后者则可能会用于电子计算机——实际上,不久后,这两种方式都被开发出来了。
从原理上看,阴极射线管存储也算不上十分复杂。电子撞击在荧光屏上,导致撞击部位的电荷改变;感知这些电荷的数量,就可以读出当前位置存储的是1还是0。但是如何感知这些电荷,是个工程难题。
这时候,一个26岁的小伙子解决了这个问题;他叫汤玛斯·基尔伯恩,后来成为了英国最著名的计算机科学家之一。
威廉姆斯管的二维存储
汤玛斯·基尔伯恩比威廉姆斯小十岁,在威廉姆斯获得博士学位那一年,汤玛斯刚刚被剑桥大学的西德尼学院录取。他的父亲是一位白手起家的典范。在剑桥的时候,他参加了一个飞行员培训班,但是因为视力不达标而未能入伍,被转送到另一个学习电磁和电子学的培训班,继而被分配到英国电信研究院,在威廉姆斯的手下工作。
两人配合得很好。战后,威廉姆斯在曼彻斯特大学担任电子技术实验室主任,汤马斯依然和他一起工作。他很快设计出了CRT存储器,在一个CRT上,能够存储2048位。在这种存储器工作的时候,屏幕上会出现方方正正的绿色点阵,其中有一些更亮,它们意味着“1”;而另外那些暗淡的,则表示“0”。
这种装置被命名为“威廉姆斯·基尔伯恩管”,往往简称成威廉姆斯管。和后来的所有内存一样,威廉姆斯管需要不间断的电源供应,不过它有两个特征让它超越了同时代的其他存储设备:这种存储器的速度是当时最快的;它也是世界上第一种随机访问存储器。
说起来,之前的种种存储装置,都只能算是顺序访问存储器。人们无法直接跳到磁带上的某个存储点,磁鼓旋转一周的速度也决定了访问数据需要的时间。而威廉姆斯管则不然;当读取或者写入时,所花时间与这段信息所在的位置无关。
以威廉姆斯管为主题,汤玛斯完成了他的博士论文,并且开始尝试将威廉姆斯管应用在计算机上。1951年,马克一型研制成功,它的原型机就是为了测试威廉姆斯管的可用性。同年,美国普林斯顿高等研究院的计算机也完成,同样使用了威廉姆斯管。第二年,在IBM首台全电子商用计算机701上,也使用威廉姆斯管来作为内存。在20世纪50年代那个计算机萌芽时期,威廉姆斯管成为了许多计算机不可或缺的元件。
但不久之后,在美国,一个留学生设计出一种宛如精细手工的存储装置,并且很快风靡一时,甚至促进了计算机病毒的诞生。磁芯来了。