查看原文
其他

冯· 诺依曼:计算机需要顶层设计

小雪 看雪学院 2019-05-25


今天我们要一起走近一位计算机领域不得不提的人物——冯· 诺依曼(John Von· Neumann)。他设计出了史上第一台通用电子计算机——EDVAC,他提出的“冯·诺依曼的系统结构”直到今天都在计算机领域占据着重要地位,后人难以撼动。


而这位计算机领域的天才式人物,还精通数学和理论物理。他发明了博弈论和现象规划,建立了数理统计的理论基础,完善了测度理论、格理论和集合论,提出了量子逻辑和量子机和冯· 诺依曼代数,还发明了连续几何学,就连诺贝尔奖获得者纳什也是他的学生……

上天总是觊觎天才们的才华,不肯给他们多一些生命的长度。冯· 诺依曼和许多历史上伟大的天才们一样,只在人间做了短暂的停留。他出生于1903年12月28日,1957年2月8日逝世,在这短短54年的人生里,他却促成了人类文明的一次伟大跳跃,对电子计算机领域以及计算机的系统结构做出了重大贡献。


冯·诺依曼和世界第一台电子计算机的故事

1946年2月14日,世界第一台电子计算机在美国宾西法尼亚大学诞生——ENIAC。

ENIAC

不过这台计算机和我们今天的主人公冯· 诺依曼并没有太多的关系,其发明者是莫奇利(Mauchly)和埃克特(Eckert)。

莫奇利和埃克特

虽然冯· 诺依曼不是第一台电子计算机ENIAC的发明者,但他却几乎见证了它的整个诞生过程,并且也“参与”其中。

第二次世界大战期间,美国军方要求宾州大学莫奇利博士和他的学生埃克特设计以真空管取代继电器的"电子化"电脑——ENIAC(ElectronicNumerical Integrator and Calculator),目的是用来计算炮弹弹道。

这个消息被冯· 诺依曼得知后,他便主动找到了莫奇利和埃克特二人,因为那个时候(1944年),冯∙诺依曼正负责美国的氢弹研制工作。氢弹的研制需要解决大量的计算问题,当时并没有好的计算机。冯· 诺依曼希望莫奇利和埃克特二人正在研发的计算机可以帮助他解决计算氢弹研制中的计算问题。不过,在看到设计之后,他发现那台计算机根本不是通用的,解决不了他的问题。


事实上,那个时候如果对ENIAC的设计稍加改进,它就可能成为一台通用计算机,遗憾为时已晚,已经造了一半的ENIAC只能继续造下去。


通用计算机是指能解决各种问题、具有较强的通用性的计算机,通常人们所说的计算机都是通用计算机,可以应用于不同领域的各种应用中。


冯· 诺依曼曾表示,如果将来要让ENIAC计算其他问题,也并非完全不可能,只是要修改电路,特别麻烦。


ENIAC出世后,战争已结束,并不需要再计算炮弹弹道,但是还需要计算其他的问题。


冯· 诺依曼在ENIAC诞生之前做的预测果然成为了困扰科学家们的现实问题。每计算一次,就需要改一次电路,改一次电路少则几天,多则两三个月。更加可怖的是电路的复杂程度,下图是20世界50年代的一台计算机内部连线图,而1946年的ENIAC的电路比它更加复杂。


硅谷计算机博物馆保存的一台20世纪50年代的计算机的内部连线图


另外,ENIAC使用了18800个真空管。真空管的损耗率相当高,几乎每15分钟就可能烧掉一支真空管,操作人员须花15分钟以上的时间才能找出坏掉的管子,使用上极不方便。曾有人调侃道:“只要那部机器可以连续运转五天,而没有一只真空管烧掉,发明人就要额手称庆了。”由于吃电很凶,据传ENIAC每次一开机,整个费城西区的电灯都为之黯然失色。


ENIAC使用的电子管


因此,世界上第一台计算机ENIAC并不实用,甚至它和今天所有的计算机都没有“血亲关系”。


1944年,冯· 诺依曼去拜访过ENIAC的两位发明人后,就建议过美国军方再造一台新的、通用的计算机。他同莫奇利、埃克特一起设计了一个全新的方案——EDVAC(艾蒂瓦克:Electronic Discrete VariableAutomatic Computer,离散变量自动电子计算机)


EDVAC

EDVAC是最早的电子计算机之一。与其前身ENIAC不同,它是二进制而不是十进制,并且是存储程序计算机。EDVAC是真正意义上的世界第一台程序控制的通用电子计算机,也是今天所有计算机的鼻祖。



“冯·诺依曼的系统结构”(Von Nuemann architecture)


关于Von Nuemannarchitecture的得名,正是源于 冯· 诺依曼向美国军方提出EDVAC全新设计方案的报告。诺依曼将报告提交上去后,军方负责人就在上面写上了VonNuemann architecture。


这份报告最重要的意义就在于它提出了一种通用的计算机的系统结构,并且告诉后人,计算机这种东西是需要顶层设计的。


顶层设计是运用系统论的方法,从全局的角度,对某项任务或者某个项目的各方面、各层次、各要素统筹规划,以集中有效资源,高效快捷地实现目标。


(存储程序原理)把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式存储,并确定了存储程序计算机的五大组成部分和基本工作方法。

“冯· 诺依曼体系结构”依然影响着今天的计算机科学家们,他们依然在冯· 诺依曼划定的框架之中行事,这并非是不想突破边界,而是非常难突破。直到今天,系统结构依然是计算机设计中最重要的,也是最难的部分,能提出新的系统结构的人也不多。所以,即使计算机制造已经发生了巨大的变化,但是“冯· 诺依曼体系结构”依然是今天人们所依赖的。体系结构背后是他巨大的智慧。



冯· 诺依曼能在第一次拜访ENIAC就发现其问题,他也能在之后设计出后世难以突破的计算机系统结构,毫无疑问他比人们更能看到事物的本质,而他的成就也得益于他的专注,没有他的专注和执着,就不会有ENIAC后的新突破EDVAC,也就不会有今天的计算机。


对于普通人而言,或许我们始终难以取得这样伟大的成就,但我们依然可以像冯· 诺依曼那样,去让自己的见识更全面,并且能够专注地做好我们认为重要的事情,同样是对人类文明的推动,哪怕推动的力道在整个人类文明里显得不那么起眼。但是于我们自己而言,就是意义所在。


参考来源:

  • 历史上的几天

  • 维基百科

  • 《吴军来信》



- End -



看雪企服上线啦~

让每个人都有属于自己的安全专家


https://qifu.kanxue.com/




往期热门资讯:        


公众号ID:ikanxue

官方微博:看雪安全

商务合作:wsc@kanxue.com

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存