冯·诺伊曼结构

✍ dations ◷ 2024-07-03 06:25:12 #冯·诺伊曼结构
冯·诺伊曼结构(英语:Von Neumann architecture),也称冯·诺伊曼模型(Von Neumann model)或普林斯顿结构(Princeton architecture),是一种将程序指令存储器和数据存储器合并在一起的电脑设计概念结构。本词描述的是一种实现通用图灵机的计算设备,以及一种相对于并行计算的序列式结构参考模型(referential model)。本结构隐约指导了将存储设备与中央处理器分开的概念,因此依本结构设计出的计算机又称存储程序计算机。存储程序计算机在体系结构上主要特点有:最早的计算机器仅内含固定用途的程序。现代的某些计算机依然维持这样的设计方式,通常是为了简化或教育目的。例如一个计算器仅有固定的数学计算程序,它不能拿来当作文字处理软件,更不能拿来玩游戏。若想要改变此机器的程序,你必须更改线路、更改结构甚至重新设计此机器。当然最早的计算机并没有设计的那么可编程。当时所谓的“重写程序”很可能指的是纸笔设计程序步骤,接着制订工程细节,再施工将机器的电路配线或结构改变。而存储程序型电脑的概念改变了这一切。借由创造一组指令集结构,并将所谓的运算转化成一串程序指令的运行细节,让此机器更有弹性。借着将指令当成一种特别类型的静态数据,一台存储程序型电脑可轻易改变其程序,并在程控下改变其运算内容。 冯·诺伊曼结构与存储程序型电脑是互相通用的名词,其用法将于下述。而哈佛结构则是一种将程序数据与普通数据分开存储的设计概念,但是它并未完全突破冯.诺伊曼架构。存储程序型概念也可让程序运行时自我修改程序的运算内容。本概念的设计动机之一就是可让程序自行增加内容或改变程序指令的存储器位置,因为早期的设计都要用户手动修改。但随着变址寄存器与间接位置访问变成硬件结构的必备机制后,本功能就不如以往重要了。而程序自我修改这项特色也被现代程序设计所弃扬,因为它会造成理解与调试的难度,且现代中央处理器的管线与缓存机制会让此功能效率降低。从整体而言,将指令当成数据的概念使得汇编语言、编译器与其他自动编程工具得以实现;可以用这些“自动编程的程序”,以人类较易理解的方式编写程序;从局部来看,强调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图灵奖得奖致词时第一次出现,根据巴科斯所言:原文如下:Surely there must be a less primitive way of making big changes in the store than by pushing vast numbers of words back and forth through the von Neumann bottleneck. Not only is this tube a literal bottleneck for the data traffic of a problem, but, more importantly, it is an intellectual bottleneck that has kept us tied to word-at-a-time thinking instead of encouraging us to think in terms of the larger conceptual units of the task at hand. Thus programming is basically planning and detailing the enormous traffic of words through the von Neumann bottleneck, and much of that traffic concerns not significant data itself, but where to find it.在CPU与存储器间的缓存存储器抒解了冯·诺伊曼瓶颈的性能问题。另外,分支预测(branch prediction)算法的创建也帮助缓和了此问题。巴科斯在1977年论述的“智能瓶颈”已改变甚多。且巴科斯对于此问题的解决方案并没有造成明显影响。现代的函数式编程以及面向对象编程已较少运行如早期Fortran一般会“将大量数值从存储器搬入搬出的操作”,但平心而论,这些操作的确占用电脑大部分的运行时间。下列的日期数据很难给予一个适当的日期顺序。一些是第一次运行测试程序的日期;一些是电脑第一次公开展示或完成建造的日期;还有一些是第一次散布及安装日期。

相关

  • 卡介苗卡介苗(Bacillus Calmette-Guérin,简称BCG,中文名称来自于其发明者卡氏-介氏)是一种最初被用于预防结核病的疫苗。在结核病常发的国家,常推荐健康的婴儿在出生时候尽快接受一剂
  • 储蓄宿主自然宿主(natural reservoir,亦作reservoir host),又名存储宿主、保虫宿主或储蓄宿主,是一个流行病学或感染性生态学(英语:disease ecology)的专有名词,指病原体天然栖息及繁殖,又或赖
  • 大不列颠坐标:53°49′34″N 2°25′19″W / 53.826°N 2.422°W / 53.826; -2.422大不列颠岛(英语:Great Britain;苏格兰盖尔语:Breatainn Mhòr;威尔士语:Prydain Fawr;Cornish:Breten Veur
  • 戊巴比妥戊巴比妥是一种在1928年被合成出来短效巴比妥类药物。以游离酸或钠盐的形式成药。游离酸形式的戊巴比妥微溶于水和乙醇。 此药的商品名为耐波他(Nembutal)。早期当作安眠药使
  • 轻金属轻金属是原子质量较轻的金属。轻金属的一种定义是密度低于5 g/cm3的金属,也有其他的定义方式。不论使用哪一种分类法,锂、铍、钠、镁、铝几乎都列在轻金属中。一般来说轻金属
  • 枯草杆菌枯草杆菌(学名:Bacillus subtilis),是芽孢杆菌属的一种细菌,为革兰氏阳性的好气性菌,普遍存在于土壤及植物体表,在人体亦可发现在肠道内共生的枯草杆菌。型态上的主要特征是菌体表
  • 德克萨斯游骑兵 (棒球)德克萨斯游骑,是美国职棒大联盟中,隶属于美国联盟的棒球队伍之一。主场为阿灵顿棒球场,位于德克萨斯州的阿灵顿。从1994年开始,在美国联盟的分区中,属于美国联盟西区。1961年当华
  • Usub2/sub(SOsub4/sub)sub3/sub硫酸铀(III)是三价铀的硫酸盐,化学式为U2(SO4)3,具有放射性。它是第一个被发现的水合的三价铀盐。硫酸铀(III)于1967年被R. Barnard等人报道,通过硫酸铀酰的电化学还原法制备,向
  • 阿蒙霍特普阿蒙霍特普,是以下几位古埃及法老的名字。阿蒙霍特普是一个拉名(出生时以太阳神拉的儿子的名义取的名字,可以理解为真名)。它的希腊语形式是阿蒙诺菲斯(Αμένοφις),这个形式
  • 英国治理埃及英治时期,指1882年至1952年间,埃及在英埃战争之后,七月革命之前,由英国管治的时期。19世纪80年代末,随着反对西方影响的风潮越来越盛行,埃及上流人士之间的矛盾也越来越明显。