ENIAC
在美国,政府资助了一个由约翰Mauchly,小普雷斯珀·埃克特宾夕法尼亚大学(University of Pennsylvania)摩尔电气工程学院(Moore School of Electrical Engineering)的同事们;他们的目标是一台全电子计算机。在军队的契约下,在赫尔曼·戈尔茨廷(Herman Goldstine)于1943年初开始研制电子数值积分器和计算机(ENIAC)。第二年,数学家约翰·冯·诺依曼他已经在普林斯顿高级研究院(IAS)全职休假,新泽西,为政府的各种研究项目(包括曼哈顿计划),开始频繁磋商和团队一起。
ENIAC并不是通用计算机的梦想。它是为计算火炮射程表的特定目的而设计的,它缺乏一些使其更通用的功能机.像巨人,但不一样霍华德·艾肯的机器(在本节中描述早期的实验),它使用插线板向机器传递指令;这样做的好处是,一旦指令被“编程”,机器就会以电子速度运行。从读卡器或其他慢速机械设备读取的指令无法跟上全电子ENIAC的速度。缺点是每出现一个新问题都要花几天时间重新布线。这真是责任只有慷慨一点,它才能被称为可编程的。
尽管如此,ENIAC仍然是迄今为止最强大的计算设备。就像查尔斯巴贝奇的分析机和巨像,但不像艾肯的马克一号,康拉德·祖泽的Z4和乔治·斯蒂比茨的电话机器,它确实有条件分支也就是说,它有能力执行不同的指令,或者根据某些数据的值改变指令的执行顺序。(例如,IF X > 5 THEN转到第23行。)这给了ENIAC很大的灵活性,这意味着,虽然它是为特定目的而构建的,但它可以用于更广泛的问题。
ENIAC是巨大的。它占据了摩尔学校50 × 30英尺(15 × 9米)的地下室,40块面板沿三面墙呈u形排列。每个单元大约2英尺宽,2英尺深,8英尺高(0.6 × 0.6 × 2.4米)。大约有18000个真空管,70000个电阻,10000个电容器,6000个开关和1500个继电器在当时,它无疑是最复杂的电子系统。ENIAC连续运行(部分是为了延长管道寿命),产生150千瓦的热量,每秒可以执行高达5000次的附加操作,比它的机电前辈快几个数量级。巨像,ENAIC和后续的计算机使用真空管被称为第一代计算机。(拥有1500个机械继电器的ENIAC仍在向后来的全电子计算机过渡。)
ENIAC于1946年2月完工,耗资40万美元,它旨在帮助打赢战争。它的第一个任务是计算建设的氢弹.这台机器的一部分正在博物馆展出史密森学会在华盛顿特区。
走向经典计算机
更大的大脑
战争期间生产的计算机是在不寻常的条件下生产的约束.英国人的工作主要集中在破译密码,美国人的工作是计算弹丸轨迹和计算原子弹.这些计算机是作为特殊用途的设备制造的,尽管它们通常具有比其规格要求更多的通用计算能力。这些机器中的真空管并不完全可靠,但由于没有活动部件,它们比它们所取代的机电开关更可靠,而且速度也快得多。可靠性是一个问题,因为Colossus使用了大约1500个管,而ENIAC使用了18000个管。但是,由于ENIAC的电子实现,它比哈佛的马克一号快了1000倍。这样的速度意味着,ENIAC可以执行超出人类能力的计算。虽然电子管比艾肯的机电实现或巴贝奇的蒸汽-机械模型有很大的进步,但基本的体系结构这些机器(也就是它们能执行的功能)并不比巴贝奇的先进多少差分机而且分析引擎。事实上,ENIAC最初的名字是电子差分分析仪,它的工作原理很像巴贝奇的差分机。
战后,人们致力于实现通用计算设备的理念。1945年,在ENIAC还没有完成之前,摩尔学院就开始为ENIAC的继任者计划电子离散变量自动计算机或EDVAC。(EDVAC的计划也为随后的专利之争埋下伏笔;看到顺便说一句:计算机专利战争)。ENIAC和以前所有的电子计算机一样,由于需要使用电子计算机而受到阻碍真空管来存储位,或二进制数字。的可行的的数量真空管在计算机中,也对存储容量提出了实际限制——超过一定程度,真空管就会像更换一样快地烧坏。对于EDVAC,埃克特有了一个新的想法存储.
1880年,法国物理学家皮埃尔·居里和雅克·居里发现,应用一种电流对石英晶体会产生特征振动,反之亦然。在20世纪30年代贝尔实验室,威廉·肖克利,后来的共同发明人晶体管他展示了一种装置——一种叫做a的管子延迟线,含有水和乙二醇,以达到可预测的效果延迟在信息传输.埃克特已经在1943年建造并试验了这样一条延迟线(使用水银)结合与雷达在1944年的某个时候,他突然想到了一个新想法,在水银延迟线的两端分别放置一个石英晶体,以维持和修改产生的图案。实际上,他发明了一种新的存储设备。ENIAC每个比特只需要一个真空管,而EDVAC可以使用延迟线和10个真空管来存储1000个比特。之前发明磁性的核心内存还有晶体管,它将完全消除对真空管的需求,水银延迟线在增加计算机存储和可靠性方面发挥了重要作用。
冯·诺依曼的“初步讨论”
但现代或古典电脑的设计并不完全如此结晶直到1946年阿瑟·伯克斯发表了一篇论文,赫尔曼·戈德斯坦,还有约翰·冯·诺依曼题为“电子计算仪器逻辑设计初探”。尽管这篇论文在本质上是对目前“流行”的思想的综合,但它经常被引用为马克思主义的诞生证明计算机科学.
论文中阐明的原则之一是数据和指令应保存在同一个文件中商店这些指令应该被编码以便其他指令可以修改。这是一个极其关键的决定,因为这意味着一个程序可以被另一个程序视为数据。祖斯认为这种可能性太危险,所以拒绝了。但冯·诺伊曼小组的加入使其成为可能高层编程语言的大部分进步软件在接下来的50年里。后来,带有存储程序的计算机被称为冯·诺依曼机。
存储程序解决的一个问题是需要快速访问指令。Colossus和ENIAC使用的是插线板,它的优点是可以通过电子方式读取指令,而不是通过速度慢得多的机械读卡器,但它也有缺点,使这些第一代机器很难编程。但是,如果指令可以存储在存储数据的电子存储器中,那么它们就可以在需要的时候被快速访问。很明显结果EDVAC比ENIAC需要更多的内存。
第一台存储程序机器
政府的保密措施阻碍了英国在战时计算机技术进步基础上的发展,但英国的工程师们仍然比美国人领先一步建筑第一个存储程序数字计算机。在曼彻斯特大学,弗雷德里克·c·威廉姆斯而且汤姆·吉尔伯恩他在1948年制造了一台简单的存储程序计算机,被称为“婴儿”。这是为了测试他们发明的一种存储信息的方法阴极射线管这使得可以直接访问(与水银延迟线的顺序访问相反)存储的信息。尽管它比埃克特的存储方法快,但事实证明它有点不可靠。尽管如此,它还是成为大多数早期计算机的首选存储方法在世界范围内还没有投入到水银延迟线中。
到1949年,Williams和Kilburn已经将Baby扩展到全尺寸计算机曼彻斯特马克一号.它有两个主要的新特性,后来成为计算机标准:两级存储和指令修改寄存器(很快演变成索引寄存器)。增加了磁鼓以提供随机存取的二级存储设备。在机器安装了索引寄存器之前,每条指向地址的指令都随着程序的运行而变化。(数组元素)之前必须加上将其地址更改为当前所需值的指令。婴儿开始工作四个月后,英国政府与电子产品在未来的Mark i的基础上生产了一台计算机弗兰蒂马克一号这是第一台商用电脑,一共卖出了9台。
基尔本、威廉姆斯和曼彻斯特大学的同事们还取得了一项突破,这将彻底改变计算机执行指令的方式:他们使在程序运行时修改指令的地址部分成为可能。在此之前,一条指令指定对一个或多个特定位置的数据执行特定操作(例如加法)。他们的创新允许将位置修改为执行指令操作的一部分。这使得在数组中按顺序寻址元素变得非常容易。
在剑桥大学与此同时,莫里斯·威尔克斯还有一些人制造了被认为是第一台全尺寸、全电子、存储程序的计算机,为用户提供正式的计算服务。的电子延迟存储自动计算器(EDSAC)建立在冯·诺依曼综合的一系列原理之上,与曼彻斯特马克一号一样,于1949年投入使用。威尔克斯制造这台机器主要是为了研究编程问题,他意识到这将变得和计算机一样重要硬件细节。
旋风
尽管如此,新的硬件仍在不断地被发明。在美国,杰弗雷斯特的麻省理工学院(MIT)和Jan Aleksander Rajchman美国无线电公司提出了一种基于磁芯的新型存储器,它的速度足以让麻省理工学院制造出第一个实时电脑,旋风.实时计算机是一种似乎可以立即对基本指令作出反应的计算机,因此操作员可以与“运行中的”计算机进行交互。