旋风计算机(Whirlwind),一款由麻省理工大学研制的早期电子计算机。引入了当时先进的实时处理理念,并最先采用显示器作为输出设备,与以往机械系统的电子置换不同,拥有世界首款成熟的操作系统。其设计理念直接被美国空军的SAGE防空系统继承,并对20世纪60年代的商用计算机产生巨大影响。
第二次世界大战中,为训练轰炸机飞行员,美国海军曾向麻省理工大学探询,是否能够开发出一款可以控制飞行模拟器的计算机。军方当初的设想只是希望通过该计算机将飞行员模拟操作产生的数据实时反映到仪表盘上。和以前的训练系统林克训练机不同,军方计划系统能尽可能真实地根据空气动力学模型进行模拟,以使其能适用于各种不同类型的飞机。这在当时是一个非常重要的计划,因为在这个计划中产生了很多计算机科学上的全新设计。
麻大方面对军方给予了肯定答复。于是海军以旋风计划为名,开始向该工程提供资金,Jay Wright Forrester被选任为项目负责人。研发人员起初开发的是大型模拟计算机,准确度和灵活度均不符合标准。更加大型的操作系统成为研发的必然,然而难度不堪设想。
1945年,项目组成员杰里・克劳福德在观看过埃尼阿克的试运行后提出,可以以数码式计算机作为项目的解决方案。其优点在于,由追加程序取代追加零件,将有可能提高模拟的准确度。当时的主流观点认为,计算机拥有极其高速的运算速度,无论如何复杂的模拟,理论上均可实现。
当时的计算机只能够进行每次一项任务的批处理作业。运算数据提前输入,计算机应用已输入数据进行运算,最后生成运算结果。但这不足以满足旋风系统的要求。设想中的旋风系统需要对实时变化的输入数据进行连续运算,这其中,速度成为最关键的问题。以往的计算机都是将运算结果印刷输出,极其耗时,而旋风系统的速度无法提升,则意味着飞行模拟的复杂程度将受到极大限制。
1947年,Forrester等人完成了高速程序内置式计算机的设计。当时的计算机多采用“bit串联”的方式运行,即对每段代码的字符进行逐一运算,而代码的长度通常为48bit或60bit。由于该模式性能恶劣,旋风改用“bit并联”,并安装了能够并行处理16bit的计算通路。忽略存储速度不计,其计算速度相当于主流机型的16倍。时下的所有电脑几乎都采用了这一模式,但并行规模已扩大到32bit至64bit。
旋风机先为每条指令指定存储地址再进行运算。其原理与采用逆波兰表示法的计算器类似,即所有操作符均位于操作数之后,区别仅在于旋风机不存在堆栈。为尽可能的利用有限的存储空间,旋风机的地址宽度被设定为11bit,附加识别16到32种命令所需的5bit,合计16bit。据说,冯诺依曼在获悉旋风机的字长只有16bit之后,当即对旋风机失去兴趣(冯的兴趣在于科学技术运算,为提高精度必须延长字长)。
翌年,实体机开始生产,共175人参与,其中70人为技术人员,耗时三年,于1951年4月20日问世。旋风机的开发最早是应海军的要求,最终却被美国空军的SAGE系统应用。海军方面每年要为该项目提供数百万美元的经费,业已失去兴趣。1949年,苏联第一颗原子弹试爆成功,美国空军为加以应对,最终将旋风机揽入怀中。
旋风机起初的运算速度只有20kips,投入实用还有相当距离。问题主要集中在主存储器——威廉姆斯管的使用上。为解决难题,Forrester曾尝试过使用螺旋状磁带代替,效果不佳,最终选择了磁芯内存。由此,旋风机的运算速度得以提升至原来的2倍(40kips)。
由于磁芯内存的应用,旋风机的运算速度成为当时的世界第一。加法速度8微秒,乘法25.5微秒,除法57微秒(除去存储器读取时间)。使用磁鼓存储器时8500微秒的读取时间在改用磁芯内存之后仅为8微秒。
旋风机的高速化使得SAGE系统的开发成为可能,并开始量产AN/FSQ-7。生产商为IBM,并非当时实力雄厚的RCA。此后,IBM又将旋风机的实时技术应用到了SABRE系统当中(机票预约系统)。AN/FSQ-7的量产始自1957年,建筑物,输电设施,通信网络等配套设施也于同期开始建设。
1959年6月30日为止,旋风机II 一直在为SAGE系统提供技术支持。70年代后期,原项目组成员Bill Wolf以每年1美元的价格将其借出。后被Kenneth Harry Olsen购得,并最终将旋风机赠予史密森尼学会。
旋风机由大约5000根电子管构成。Kenneth Harry Olsen曾尝试过保持旋风机的原有设计,并将其晶体管化,这便是世人熟知的TX-0。在TX-0获得成功之后,Olsen又计划开发规模更大的TX-1。由于期望过高困难重重,最终只完成了小型化的 TX-2。而TX-2本身也存在诸多问题,不久,Olsen从项目中退出,另组DEC公司。该公司生产的PDP-1集TX-0,TX-2的先进理念于一身,成为小型机的典范。