1 背景与起源
1.1 二战后的计算需求
第二次世界大战期间,计算技术因军事需要而急速发展。弹道计算、密码破译、原子弹设计等任务对高性能数值计算提出了前所未有的要求。战后,这些军事需求虽有所缓和,但科学界和工业界对通用、可编程计算机的呼声日益高涨。
1.1.1 ENIAC的局限与启示
ENIAC(电子数字积分计算机)于1946年竣工,是世界上第一台通用电子数字计算机。其计算速度远超当时任何机电设备,但存在致命缺陷:程序需通过插拔接插件和设置开关来“布线”,更换任务往往耗时数小时甚至数天。ENIAC缺乏存储程序能力,且存储容量极小、功耗极大(约150千瓦)。这些局限让设计者们意识到:必须实现程序与数据的统一存储,才能构建真正灵活通用的机器。
1.1.2 普林斯顿高等研究院的数学项目
普林斯顿高等研究院(IAS)本以理论物理和纯数学研究闻名,但在二战期间也涉足应用数学。1945年后,研究院的数学家们希望拥有一台能处理复杂数学问题、验证新算法的计算工具。时任院长奥本海默(J. Robert Oppenheimer)大力支持计算机研制,认为它既能服务基础研究,也能展示研究院的前沿地位。于是,IAS计算机项目应运而生。
1.2 冯·诺依曼的角色
约翰·冯·诺依曼(John von Neumann)是当时最杰出的数学家之一,在量子力学、博弈论、流体力学等领域均有建树。他对计算机的兴趣源自参与曼哈顿计划时频繁的数值计算需求。
1.2.1 第一份草案的撰写(《关于EDVAC的报告草案》)
1945年6月,冯·诺依曼以顾问身份访问宾夕法尼亚大学莫尔电机工程学院(ENIAC研制单位),并起草了著名的《关于EDVAC的报告草案》(First Draft of a Report on the EDVAC)。这份长达101页的文献首次系统阐述了存储程序概念:指令与数据均以二进制形式存放于同一内存,由中央处理器按序执行。该草案虽署名冯·诺依曼,但实际吸收了ENIAC团队多位工程师(如埃克特、莫奇利)的思想。由于草案的广泛传阅,存储程序架构后来被命名为“冯·诺依曼架构”。
1.2.2 与莫尔小组的合作
冯·诺依曼在普林斯顿启动IAS计算机项目后,邀请了多位莫尔小组的成员加入,包括阿瑟·伯克斯(Arthur Burks)、赫曼·戈德斯坦(Herman Goldstine)等。他们带来了ENIAC的实战经验,也参与了EDVAC的设计讨论。IAS计算机虽独立设计,但理念与EDVAC高度一致,可以视为EDVAC草案的一次完整实现。
2 技术架构
2.1 存储程序概念
存储程序是IAS计算机的核心创新:指令和数据存储在同一个可读写的随机访问存储器中,计算机通过程序计数器依次读取指令并执行。这意味着程序自身可以像数据一样被修改(例如改变跳转地址),实现了真正的“可编程通用性”。
2.2 中央处理器与算术逻辑单元
IAS计算机的中央处理器(当时称为“中央运算单元”)包含了算术逻辑单元(ALU),能够执行加、减、乘、除四种基本算术运算,以及逻辑与、或、非等操作。ALU以并行二进制方式工作,字长为40位(包含一个符号位和39个数值位)。控制单元从内存读取指令,并协调运算和输入输出。
2.3 存储器设计
2.3.1 威廉姆斯管(静电存储管)
IAS计算机使用威廉姆斯管(Williams tube)作为主存储器。这是一种基于阴极射线管的静电存储设备,利用荧光屏上的电荷斑来代表二进制0和1。每根管可存储约1024比特(即256个40位字)。系统共安装了40根威廉姆斯管,形成总容量为1024个40位字(约5KB)的内存。
2.3.2 内存容量与访问速度
虽然1024个字的容量在今天看来微不足道,但在当时已足够运行中等规模的科学计算。威廉姆斯管的访问速度约为几十微秒,远快于当时使用的机电继电器或磁鼓存储器。不过,电荷会随时间衰减,需要定期刷新,这点后来被磁芯存储器完美解决。
2.4 指令集与编程
2.4.1 单地址指令格式
IAS计算机采用单地址指令格式:每条指令长度为20位(恰好半字)。指令分为操作码(8位)和地址码(12位)。由于字长为40位,两条指令可合并存入一个内存字。处理器按顺序取指令,通过程序计数器进行控制。
2.4.2 典型操作码集
操作码约30条,包括:加法、减法、乘法、除法、取数、存数、转移(无条件/条件)、移位、输入、输出等。指令集简洁但完备,支持子程序调用(通过跳转指令)。程序员直接使用机器语言编程,后来也出现了简单的汇编器。
3 建造与运行
3.1 建造团队与资金
3.1.1 关键工程师:朱利安·毕格罗、赫曼·戈德斯坦等
项目建设由冯·诺依曼总体指导,具体硬件设计由朱利安·毕格罗(Julian Bigelow)负责,他是一位才华横溢的电子工程师,曾设计过模拟计算机。赫曼·戈德斯坦担任项目协调和数学支持,负责与军方联络。此外还有多位技术员和研究生参与焊接、调试。
3.1.2 美国陆军军械部的资助
项目经费主要来自美国陆军军械部,他们希望计算机能用于火炮弹道计算和核武器模拟。军械部提供了约10万美元(相当于今天的100余万美元)用于采购零部件和支付人员薪水。作为回报,军方拥有优先使用权。
3.2 硬件实现过程
3.2.1 部件采购与调试
具体硬件采购自商业公司(如电阻、电容、电子管),但威廉姆斯管必须自行制作。整个机器使用了约2300个真空管,远少于ENIAC的18000个,体现了设计的简洁性。调试过程极为繁琐:电子管经常烧毁,焊点易松动,工程师们常需通宵寻找故障。
3.2.2 初期故障与改进
1949年部分功能测试时,机器每分钟都会崩溃。团队通过改进电源滤波、增加屏蔽、优化威廉姆斯管的聚焦电路,逐步将稳定运行时间延长至数小时。到1951年正式启用时,日平均可用时间已接近20小时。
3.3 首次应用与成果
3.3.1 气象学、核物理计算
IAS计算机投入运行后,立即被用于气象学数值预报实验——冯·诺依曼本人对天气预报兴趣浓厚。团队使用了简化的线性化天气模型进行24小时预报,结果虽不完美,但证明了计算机模拟大气运动的可行性。在核物理方面,计算机被用于计算中子扩散方程,支持氢弹设计。
3.3.2 人工气候模拟与蒙特卡洛方法
在使用中,斯塔尼斯拉夫·乌拉姆(Stanislaw Ulam)和冯·诺依曼创造了蒙特卡洛方法:通过大量随机采样来求解复杂积分方程。这个方法后来在金融、物理等领域大放异彩。IAS计算机还运行了最早的人工气候模型,尽管只有几十行方程,但已开出气候模拟的先河。
4 影响与遗产
4.1 对后续计算机设计的直接影响
4.1.1 IBM 701、701系列的继承
IAS计算机的设计思路直接影响了IBM 701(1952年推出)。IBM的工程师曾参观普林斯顿并学习了存储程序架构,701采用了类似的40位字长和威廉姆斯管。701系列成为IBM早期商用科学计算的主力机型。
4.1.2 其他大学复制机(如伊利诺伊的ILLIAC)
IAS项目的一大特色是鼓励“复制”:冯·诺依曼和其他成员向多所大学免费提供设计图纸。伊利诺伊大学据此建造了ILLIAC I(1952年);其他如阿贡国家实验室的AVIDAC、洛斯阿拉莫斯的MANIAC、兰德公司的JOHNNIAC等,总数超过15台。这些复制机推动了北美高校的计算基础设施发展。
4.2 冯·诺依曼架构的标准化
IAS计算机的成功使得“存储程序+顺序执行”成为计算机设计的事实标准。尽管后来出现了哈佛架构(分离指令/数据总线)、流水线等改进,但冯·诺依曼架构仍然是绝大多数通用计算机的理论基础。
4.3 博物馆中的IAS计算机
4.3.1 现存部件与复制品
IAS计算机在1958年被拆除,仅少量部件留存。一台全尺寸复制品目前在史密森尼美国国家历史博物馆展出。此外,普林斯顿高等研究院保留了部分威廉姆斯管和机箱碎片,作为数字时代的“圣物”。
4.3.2 学术争议:谁是“第一台存储程序计算机”
ENIAC团队曾强调EDVAC才是第一台专为存储程序设计的机器(但EDVAC直到1951年才交付),而英国的曼彻斯特小规模实验机(1948年运行)和剑桥EDSAC(1949年运行)均早于IAS计算机。然而,IAS计算机是首台完全实现冯·诺依曼架构的“大型”计算机,其影响最为广泛。争议至今未歇,但IAS计算机的历史地位无可动摇。
5 技术细节与性能
5.1 时钟速度与运算指标
IAS计算机的主时钟频率约为1 MHz(1微秒脉冲周期)。加法运算耗时约25微秒(包括取指令和数据),乘法约300微秒,除法约400微秒。峰值性能约为每秒2000次加法运算,远低于现代处理器,但在当时已是顶尖。
5.2 输入/输出方式
输入设备采用IBM打孔纸带阅读器(速度每秒150行)和手动开关面板。输出使用电传打字机(打印速度每秒约10字符)以及打孔纸带穿孔机。没有显示器或磁带机。
5.3 能耗与散热
整机功耗约20千瓦,远小于ENIAC的150千瓦。但仍需强制风冷(多台大型风扇)。真空管散发的热量使机房温度长期维持在35℃以上,工程师们不得不在酷热中工作。
6 文化轶事
6.1 冯·诺依曼的幽默绰号
冯·诺依曼以其惊人的心算能力闻名,同行戏称他为“人形计算机”。据传,他在普林斯顿走廊上一边散步一边口述代码,助手们需要紧随其后记录。他还曾开玩笑说:“如果你不知道某样东西为什么存在,就把它叫‘计算机中的内存单元’。”
6.2 流行文化中的IAS计算机形象
IAS计算机很少直接出现在主流电影或小说中,但它的“后代”冯·诺依曼架构却是科幻作品的常客。在一些技术史纪录片(如BBC的《电子大脑》)中,IAS计算机的复制品被用作早期计算机的典型代表。此外,在《文明》系列游戏中,“冯·诺依曼架构”被列为科技树中的一项。