族谱网 头条 人物百科

冯·诺伊曼结构

2020-10-16
出处:族谱网
作者:阿族小谱
浏览:646
转发:0
评论:0
理论存储程序计算机在体系结构上主要特点有:以运算单元为中心采用存储程序原理存储器是按地址访问、线性编址的空间控制流由指令流产生指令由操作码和地址码组成数据以二进制编码历史最早的计算机器仅内涵固定用途的程序。现代的某些计算机依然维持这样的设计方式,通常是为了简化或教育目的。例如一个计算器仅有固定的数学计算程序,它不能拿来当作文字处理软件,更不能拿来玩游戏。若想要改变此机器的程序,你必须更改线路、更改结构甚至重新设计此机器。当然最早的计算机并没有设计的那么可编程化。当时所谓的“重写程序”很可能指的是纸笔设计程序步骤,接着制订工程细节,再施工将机器的电路配线或结构改变。而存储程序型电脑的概念改变了这一切。借由创造一组指令集结构,并将所谓的运算转化成一串程序指令的运行细节,让此机器更有弹性。借着将指令当成一种特别类型的静态数据,一台存储程序型电脑可轻易改变其程序,并在程控下改变其运算内容。冯·诺伊...

理论

存储程序计算机在体系结构上主要特点有:

以运算单元为中心

采用存储程序原理

存储器是按地址访问、线性编址的空间

控制流由指令流产生

指令由操作码和地址码组成

数据以二进制编码

历史

最早的计算机器仅内涵固定用途的程序。现代的某些计算机依然维持这样的设计方式,通常是为了简化或教育目的。例如一个计算器仅有固定的数学计算程序,它不能拿来当作文字处理软件,更不能拿来玩游戏。若想要改变此机器的程序,你必须更改线路、更改结构甚至重新设计此机器。当然最早的计算机并没有设计的那么可编程化。当时所谓的“重写程序”很可能指的是纸笔设计程序步骤,接着制订工程细节,再施工将机器的电路配线或结构改变。

而存储程序型电脑的概念改变了这一切。借由创造一组指令集结构,并将所谓的运算转化成一串程序指令的运行细节,让此机器更有弹性。借着将指令当成一种特别类型的静态数据,一台存储程序型电脑可轻易改变其程序,并在程控下改变其运算内容。 冯·诺伊曼结构 与 存储程序型电脑 是互相通用的名词,其用法将于下述。而哈佛结构则是一种将程序数据与普通数据分开存储的设计概念,但是它并未完全突破冯.诺伊曼架构。

存储程序型概念也可让程序运行时自我修改程序的运算内容。本概念的设计动机之一就是可让程序自行增加内容或改变程序指令的内存位置,因为早期的设计都要用户手动修改。但随着变址寄存器与间接位置访问变成硬件结构的必备机制后,本功能就不如以往重要了。而程序自我修改这项特色也被现代程序设计所弃扬,因为它会造成理解与除错的难度,且现代中央处理器的管线与缓存机制会让此功能效率降低。

从整体而言,将指令当成数据的概念使得汇编语言、编译器与其他自动编程工具得以实现;可以用这些“自动编程的程序”,以人类较易理解的方式编写程序 ;从局部来看,强调I/O的机器,例如Bitblt,想要修改画面上的图样,以往是认为若没有客制化硬件就办不到。但之后显示这些功能可以借由“运行中编译”技术而有效达到。

此结构当然有所缺陷,除了下列将述的冯·诺伊曼瓶颈之外,修改程序很可能是非常具伤害性的,无论无意或设计错误。在一个简单的存储程序型电脑上,一个设计不良的程序可能会伤害自己、其他程序甚或是操作系统,导致死机。缓存溢出就是一个典型例子。而创造或更改其他程序的能力也导致了恶意软件的出现。利用缓存溢出,一个恶意程序可以覆盖调用堆栈(Call stack)并改写代码,并且修改其他程序文件以造成连锁破坏。内存保护机制及其他形式的访问控制可以保护意外或恶意的代码更动。

第一次提出及实现

冯·诺伊曼结构 这个词出自约翰·冯·诺伊曼的论文: First Draft of a Report on the EDVAC , 于1945年6月30日。冯·诺依曼由于在曼哈顿工程中需要大量的运算,从而使用了当时最先进的两台计算机Mark I和ENIAC,在使用Mark I和ENIAC的过程中,他意识到了存储程序的重要性,从而提出了存储程序逻辑架构。虽然冯·诺伊曼的概念非常新颖,但冯·诺伊曼结构这个词,对冯·诺伊曼的合作伙伴、时人甚至先辈都不公平。

一份康拉德·楚泽提出的专利应用就已在1936年点出这类概念。而存储程序型电脑的概念早在冯·诺伊曼知晓ENIAC的存在前就已在宾州大学的摩尔电机学院流传了。此构想的确实创立者永远是个谜。

赫曼·鲁寇夫( Herman Lukoff ( 英语 : Herman Lukoff ) )相信是艾克特创建此概念(见参考资料)。

毛奇利( Mauchly ( 英语 : John William Mauchly ) )与艾克特( Eckert ( 英语 : J. Presper Eckert ) )在1943年于他们建造ENIAC时写下关于存储程序的概念,另外,ENIAC项目管理员布莱德(Grist Brainerd)在1943年12月为ENIAC做的进度回报,就已隐约提及存储程序的概念(虽然也同时否决了在ENIAC实现的项目),他说“为了拥有最简单的实现项目以及不复杂的事务,ENIAC建造时后将不需要任何自动整备”。

当设计ENIAC时,它很清楚说明从读卡器或纸带读取指令是不够快的,因为ENIAC设计用于高速运行运算。因此ENIAC直接以电路管线设计程序,并在需要新程序时重新配接线路。设计师也很清楚他们需要更好的系统结构,因此在ENIAC建造期间第一份EDVAC的报告就已撰写完毕,并包含了存储程序的概念,此概念叙述程序指令存储在高速内存(水银延迟内存)中,因此可以在运行时快速访问。

艾伦·图灵在1946年2月19日讲演了一份包含程序存储型电脑(Pilot ACE)完整设计的论文。

冯·诺伊曼瓶颈

将CPU与内存分开并非十全十美,反而会导致所谓的冯·诺伊曼瓶颈(von Neumann bottleneck):在CPU与内存之间的流量(数据传输率)与内存的容量相比起来相当小,在现代电脑中,流量与CPU的工作效率相比之下非常小,在某些情况下(当CPU需要在巨大的数据上运行一些简单指令时),数据流量就成了整体效率非常严重的限制。CPU将会在数据输入或输出内存时闲置。由于CPU速度远大于内存读写速率,因此瓶颈问题越来越严重。

而冯·诺伊曼瓶颈是约翰·巴科斯在1977年ACM图灵奖得奖致词时第一次出现,根据巴科斯所言:

在CPU与内存间的缓存内存抒解了冯·诺伊曼瓶颈的性能问题。另外,分支预测(branch prediction)算法的创建也帮助缓和了此问题。巴科斯在1977年论述的“智能瓶颈”已改变甚多。且巴科斯对于此问题的解决方案并没有造成明显影响。现代的函数式编程以及面向对象编程已较少运行如早期Fortran一般会“将大量数值从内存搬入搬出的操作”,但平心而论,这些操作的确占用电脑大部分的运行时间。

早期的存储程序型电脑

下列的日期数据很难给予一个适当的日期顺序。一些是第一次运行测试程序的日期;一些是电脑第一次公开展示或完成建造的日期;还有一些是第一次散布及安装日期。

参考文献

书籍

The First Computers: History and Architectures :由Raúl Rojas与Ulf Hashagen编辑,MIT Press,2000. ISBN 0-262-18197-5。

From Dits to Bits... : A Personal History of the Electronic Computer ,Herman Lukoff,1979. Robotics Press, ISBN 0-89661-002-0

Martin Davis(2000),第八章,"Making the first Universal computers", Engines of Logic: Mathematicians and the origin of the Computer ,W. W. Norton & Company,Inc. New York. ISBN 0-393-32229-7 pbk。

Can Programming be Liberated from the von Neumann Style? ,John Backus,1977 ACM Turing Award Lecture. Communications of the ACM,August 1978,Volume 21,Number 8.在线PDF

C. Gordon Bell与Allen Newell(1971), Computer Structures: Readings and Examples ,McGraw-Hill Book Company,New York. Massive(668页)。

参见

哈佛结构

图灵机

随机存取机 (random access machine)


免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。

——— 没有了 ———
编辑:阿族小谱

相关资料

展开
发表评论
写好了,提交
{{item.label}}
{{commentTotal}}条评论
{{item.userName}}
发布时间:{{item.time}}
{{item.content}}
回复
举报
点击加载更多
打赏作者
“感谢您的打赏,我会更努力的创作”
— 请选择您要打赏的金额 —
{{item.label}}
{{item.label}}
打赏成功!
“感谢您的打赏,我会更努力的创作”
返回

更多文章

更多精彩文章
打赏
私信

推荐阅读

· 约翰·冯·诺伊曼
生平冯·诺伊曼出生在布达佩斯富裕的犹太家庭,是诺依曼·米克萨(NeumannMiksa)和坎恩·玛吉特(KannMargit)的三个孩子中最大的一个。他小时候外号"Jancsi"("János"的昵称),当时已经显出惊人的记忆力。他6岁时已能用古希腊语同父亲闲谈,还可以心算8位数除法。年少的他不但对数学很有兴趣,亦喜欢阅读历史和社会方面的书籍,读过的书籍和论文能很快一句不漏地将内容复述出来,而且多年以后仍是如此。1913年,他的父亲马克斯·诺伊曼被授予世袭贵族头衔,这样在德国他的后代可以以“冯·诺伊曼”为姓,冯·诺伊曼晋身贵族。约翰加上头衔后的全名成为"MargittaiNeumannJános"。后来约翰把名字改成德语名"JohannvonNeumann"。其名"John"(约翰)意为“主是仁慈的”,姓氏中的"von"是德语介词,而"Neumann"意为"neu"(new)+"Mann"...
· 菲尔·诺伊曼
参考资料
· 冯
冯一、来源有二1、出自姬姓,为周文王昌之后。据《元和姓纂》、《后汉书》等所载,周文王第15子毕公高后裔毕万,西周时,在晋为大夫,当时晋献公陆续功灭了许多小国,其中包括毕万的一支孙被封于冯城,其后子孙以邑为姓氏,称冯姓。史称冯氏正宗。是为河南冯氏。2、出自归姓,为冯简子之后。据《世本》所载,春秋时郑国有大夫冯简子,因封邑在冯而得氏。后冯邑被晋国所夺,成为魏氏子弟长卿的封邑,长卿的后裔也称冯氏。是为河南冯氏。二、迁徙分布战国时有冯亭,入赵,拒秦战死,其宗族分散,有的留上党潞县,有的在赵,子孙有许多为将相。至西汉文帝时、车骑都尉冯唐徙居安陵,其弟冯骞自上党徙居京兆杜陵。此外,先秦时代,冯氏已有徙居今山东者。三国以前,冯氏还有迁至今四川的射洪、中江、渠县等地及湖北公安者,东晋末,冯氏又有徙居和龙者。唐玄宗时著名宦官高力士,本为冯盎之曾孙,后为宦官高延福收养,改姓高,此为冯姓改为高姓者。唐末黄巢起义...
· 能带结构
为何有能带单个自由原子的电子占据了原子轨道,形成一个分立的能级结构。如果几个原子集合成分子,他们的原子轨道发生类似于耦合振荡的分离。这会产生与原子数量成比例的分子轨道。当大量(数量级为1020{\displaystyle10^{20}}或更多)的原子集合成固体时,轨道数量急剧增多,轨道相互间的能量的差别变的非常小。但是,无论多少原子聚集在一起,轨道的能量都不是连续的。这些能级如此之多甚至无法区分。首先,固体中能级的分离与电子和声原子振动持续的交换能相比拟。其次,由于相当长的时间间隔,它接近于由于不确定性原理引起的能量的不确定度。物理学中流行的方法是从不带电的电子和原子核出发,因为它们是自由的平面波,可以具有任意能量,并在带电后衰减。这导致了布拉格反射和带结构。基本概念晶体结构的对称性与波矢Si,Ge,GaAs和InAs的能带结构,该结果由紧束缚模型得到。Si和Ge是间接带隙半导体,GaAs...
· 结构色
释义结构色,顾名思义,与结构有关的色,即色彩随着物体内部结构的变化而变化,具体来讲,它是由光的散射、干涉或衍射作用引起的,和色素与染料的光泽有差异。仿生学自然界中有很多结构色的例子。其中,蝶类、昆虫的翅膀,贝壳等所形成的彩虹色,是由于生物体内薄膜间的干涉作用导致的结构色。还有一种是由于光的衍射作用导致的结构色,例如蛋白石等宝石的色泽。值得注意的是,大部分的蛋白石具有蛋白色,是装饰性石材,如果它的色彩光泽随观测角度变化(变彩),则是贵重的宝石。研究方法目前,研究者利用结构色原理,使用硅粒沉淀法等方法,已经成功合成人造蛋白石。另外,根据硅粒的大小和排列,可以合成不同颜色的蛋白石。参考资料构造色研究会昆虫的结构色相关条目结构色彩蛋白石

关于我们

关注族谱网 微信公众号,每日及时查看相关推荐,订阅互动等。

APP下载

下载族谱APP 微信公众号,每日及时查看
扫一扫添加客服微信