首页 百科知识 冯·诺依曼结构的目的与冯·诺依曼机

冯·诺依曼结构的目的与冯·诺依曼机

时间:2024-01-23 百科知识 版权反馈
【摘要】:冯·诺依曼的目的是提出一个计算机器的可行性模型。冯·诺依曼关于计算机架构的理念是通过他设计的离散变量自动电子计算机的问世为人所知的。所有这些机器的产生,包括ENIAC之后推出的支持存储程序的版本,冯·诺依曼都是当之无愧的直接贡献者。冯·诺依曼机问世之前还出现过几位先导,但它们中没有一个是真正的冯·诺依曼机。该分析机还包含条件分支和循环,所以是货真价实的冯·诺依曼机,它完全基于机械齿轮。

冯·诺依曼结构的目的与冯·诺依曼机

在前文所述基础之上,冯·诺依曼设计了现代计算机的构造,这引出了我的第三个核心思想:被称作·诺依曼机的结构构成了过去约70年里每台计算机实质上的核心结构,从你家洗衣机里的微型控制器到最大型的超级计算机,无一例外。在写于1945630日一篇名为《关于EDVAC的报告草案》(First Draft of a Report on The EDVAC[164]论文中,冯·诺依曼提出了自此以后主导计算领域的理论,即冯·诺依曼模型——包括一个进行计算和逻辑运算的中央处理器,一个存储程序和数据的内存单元,一个大容量存储器,一个程序计数器,以及输出/输入通道。尽管这篇论文的本意是作为内部项目文件,但它实际上已成为计算机设计师的圣经。你永远也想不到一个看似普通的日常内部备忘录也许会在某一天改变整个世界

图灵机并不是为了实用而设计的。图灵的定理并不着重于解决问题,而在于检视理论上能通过计算解决的问题的边界。冯·诺依曼的目的是提出一个计算机器的可行性模型。他的模型用多比特语言代替了图灵的单比特计算(通常是8比特的倍数)。图灵的记忆磁带是连续的,所以图灵机的程序在存储和提取结果时需要花费大量时间来回倒带或进带。相较之下,冯·诺依曼的存储器是随机存取的,所以任何数据都可以立刻被提取出。

·诺依曼的一个核心观点是他多年前引入的存储程序(stored program)概念:将程序像数据一样放在同样类型的随机存取存储器中(通常放在同样的内存区块中),就可以使计算机通过重新编程来应对不同的任务,同时进行代码的自我修改(假如记忆程序可写的话),从而实现一种强大的递归形式。在那之前,所有的电脑,包括Colossus,都是设计来解决一种任务的。存储程序使计算机通用化成为可能,从而实现图灵关于通用计算的设想。

·诺依曼机的另一个关键方面在于,各个指令都包含一个指定要进行的算术或逻辑运算的操作代码和一个指向内存中的操作数地址

·诺依曼关于计算机架构的理念是通过他设计的离散变量自动电子计算机(EDVAC)的问世为人所知的。EDVAC是他和普雷斯波·埃克特(J.Presper Eckert)、约翰·莫奇利(John Mauchly)合作的项目。EDVAC直到1951年才开始真正运行,当时还出现了其他存储程序计算机,比如曼彻斯特小规模实验机、电子数字积分计算机(ENIAC)、电子延时储存自动计算机(EDSAC),二进制自动计算机(BINAC),它们都多多少少受到冯·诺依曼论文的影响,而且埃克特和莫奇利都参与了设计。所有这些机器的产生,包括ENIAC之后推出的支持存储程序的版本,冯·诺依曼都是当之无愧的直接贡献者。

·诺依曼机问世之前还出现过几位先导,但它们中没有一个是真正的冯·诺依曼机。1944年,霍华德·艾肯(Howard Aiken)推出了马克一代,它有可编程的元素但不使用存储程序。它从一个穿孔的纸带上读取指令,然后立刻执行各项命令,但缺乏条件分支指令。(www.xing528.com)

1941年,德国科学家康拉德·楚泽(Konrad Zuse创造Z-3计算机。它也是从一个记忆磁带(用的是胶卷)上读取程序,没有条件分支指令。有趣的是,楚泽得到德国飞行器研究机构的支持,该机构用楚泽的设备来研究机翼的摆动,但楚泽向纳粹政府提出的用真空管更换继电器的资金支持申请却遭到了拒绝,因为纳粹政府认为研究计算对战争来说不那么重要。在我看来,纳粹战败的结果几乎可以用这种错误观点的长期存在来解释。

但冯·诺依曼的理念有一位真正的先驱,并且可以追溯到百年之前!他就是英国数学家和发明家查尔斯·巴贝奇(Charles Babbage)。1837年,巴贝奇首次描述了一种名为分析机(AnalyticalEngine)的机器,该机器就体现了冯·诺依曼的理念,其特点是用穿孔卡片作为存储程序,灵感来自雅卡尔织布机[165]它的随机存储器可以存取包含1 000个字,每个字由50个十进位数组成(等同于约21个千字节)。它的各个指令包含一个操作码和一个操作数,就像现代机器语言。该分析机还包含条件分支和循环,所以是货真价实的冯·诺依曼机,它完全基于机械齿轮。分析机似乎超出了巴贝奇的设计和组织技能,他制造出了各个部件但并没有真正让它运行起来。但我们不清楚包括冯·诺依曼在内的20世纪的计算机鼻祖们是否对巴贝奇的工作有所了解。

巴贝奇的计算机实际上推动了软件编程领域的产生。英国作家艾达·拜伦(Ada Byron——勒芙蕾丝伯爵夫人、诗人罗德·拜伦的唯一合法继承人,可以说是世界上第一个计算机程序设计员。她为分析机编写了程序,即今天软件工程师所熟知的查表法。不过,她只需要在自己的脑子里进行调试(因为计算机从没有真正工作过)。她翻译了意大利数学家路易吉·梅约布雷亚(Luigi Menabrea)关于分析机的文章并加上大量自己的注释。她认为:分析机编织代数的模式如同雅卡尔织布机编织出花朵和叶子的花纹一样。她接着提出了可能是世界上第一个关于人工智能可能性的推断,又总结说分析机不能自命不凡,认为什么问题都能解决

巴贝奇能在他生活和工作的时代提出如此先进的理念不能不令人称奇,但直到20世纪中期他的思想才得到人们的重视。是冯·诺依曼使我们今天所熟知的计算机原则概念化和清晰化,而且冯·诺依曼机作为计算的最重要模型在全世界得到普遍认可。但要记住的是,冯·诺依曼机在各种单元之间和单元内部持续地进行数据通信,因此它的实现多亏了香农提出的对数字化信息进行可靠传输和存储的理论。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈