冯·诺伊曼结构(英语:Von Neumann architecture),也称冯·诺伊曼模型(Von Neumann model)或普林斯顿结构(Princeton architecture),是一种将程序指令存储器和数据存储器合并在一起的电脑设计概念结构。本词描述的是一种实现通用图灵机的计算设备,以及一种相对于并行计算的序列式结构参考模型(referential model)。

本结构隐约指导了将存储设备与中央处理器分开的概念,因此依本结构设计出的计算机又称存储程序计算机。

历史

最早的计算机器仅内含固定用途的程序。现代的某些计算机依然维持这样的设计方式,通常是为了简化或教育目的。例如一个计算器仅有固定的数学计算程序,它不能拿来当作文字处理软件,更不能拿来玩游戏。若想要改变此机器的程序,你必须更改线路、更改结构甚至重新设计此机器。当然最早的计算机并没有设计的那么可编程。当时所谓的“重写程序”很可能指的是纸笔设计程序步骤,接着制订工程细节,再施工将机器的电路配线或结构改变。而存储程序型电脑的概念改变了这一切。借由创造一组指令集结构,并将所谓的运算转化成一串程序指令的运行细节,让此机器更有弹性。借着将指令当成一种特别类型的静态数据,一台存储程序型电脑可轻易改变其程序,并在程控下改变其运算内容。冯·诺伊曼结构与存储程序型电脑是互相通用的名词,其用法将于下述。而哈佛结构则是一种将程序数据与普通数据分开存储的设计概念,但是它并未完全突破冯.诺伊曼架构。

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

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

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

第一次提出及实现

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

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

赫曼·鲁寇夫(Herman Lukoff)相信是艾克特创建此概念。

毛奇利(Mauchly)与艾克特(Eckert)在1943年于他们建造ENIAC时写下关于存储程序的概念,另外,ENIAC项目管理员布莱德(Grist Brainerd)在1943年12月为ENIAC做的进度

突破冯诺依曼原理的计算机,冯诺依曼计算机的基本原理相关推荐

  1. c语言冯诺依曼原理,详解冯诺依曼结构运行原理

    计算机硬件发展 介绍冯诺依曼结构之前,我们先来介绍一下计算机硬件的发展过程,第一代的计算机主要以电子管作为逻辑原件,汞延迟线,磁鼓作为内存,穿孔纸片,纸带作为外存. 第二代计算机步入晶体管时代,以晶体 ...

  2. 诺依曼原理中计算机由运算器,冯诺依曼原理与计算机的基本组成

    冯诺依曼原理 提出了"存储程序.程序控制"的设计思想,同时指出计算机的构成包括以下几个方面: (1)由运算器.存储器.控制器.输入设备.输出设备五大组件组成计算机系统. 5 (2) ...

  3. c语言冯诺依曼原理,冯诺依曼型计算机的基本原理是什么

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:冯诺依曼型计算机的基本原理是什么 问题详情:冯诺依曼型计算机的基本原理是什么回答:由五部分组成:运算器,控制器,存储器,输入设备,输 ...

  4. 冯诺依曼原理计算机具备,冯·诺依曼计算机工作原理是()。

    冯诺依曼提出的计算机的基本工作原理知是 : 1.数字计算机数制采用二进制. 2.计算机应该按照程序顺序执行 . 冯诺依曼提出的计算机的基本工作原理主要内容: 1.计算机由控制器.运算器.存储器.输入设 ...

  5. 简述冯诺依曼工作原理_深入浅出讲解计算机原理

    当前最先进的计算机都采用的是冯诺依曼体系结构,所以冯诺依曼是当之无愧的数字计算机之父. 冯诺依曼体系结构特点: (1)计算机处理的数据和指令一律用二进制数表示 (2)顺序执行程序 计算机运行过程中,把 ...

  6. 计算机动画制作过程原理,计算机制作动画的基本原理及运动规律.ppt

    计算机制作动画的基本原理及运动规律 动画的基本原理以及规律 第一节视觉原理 第二节制作原理 第三节动画运动的时间和节奏 第四节卡通角色的运动及规律 1.人物角色运动 2.动物角色运动 3.鱼类.爬行类 ...

  7. 计算机工作原理与系统组成?,计算机工作原理及系统组成

    计算机工作原理及系统组成 (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 计算机工作原理及系统组成计算机的工作原理半个世纪以来,计算机已 ...

  8. 计算机原理的教学论文,计算机原理课程教学浅谈

    文/李继华 摘 要:计算机原理主要是以计算机本身的运行原理为研究对象的一门课程,学生在学习计算机原理这门课程时,主要是了解计算机系统,对计算机系统的组成形成一个清晰的认识,提高计算机系统的分析能力.然 ...

  9. 晶体管与计算机原理,从晶体管到计算机,与逻辑门的奥妙

    从小就对计算机的组成十分好奇:人是如何造出一台能思考的机器的?复杂哪怕如手表,也可以在科普读物的介绍中大致想象得到原理:但对于计算机,或者"电脑",理解它的原理可就费劲得多了. 后 ...

  10. 天津大学计算机组成原理,天津大学计算机学院计算机组成原理复习材料.docx

    天津大学计算机学院计算机组成原理复习材料 机器语言--计算机的原始指令组成的一种可供人和计算机进行交流的语言.(1)翻译:在执行用L1写得程序之前生成一个等价的L0指令序列来替换它,生成的程序全部由L ...

最新文章

  1. 卷积神经网络(CNN)_相关知识
  2. Window10下Ubuntu20.04子系统下安装cuda
  3. 【深度学习】深入浅出nnUnet的数据处理方法
  4. 从茶叶蛋到互联网思维
  5. Exchange Server 2016管理系列课件53.DAG管理之设置滞后数据库副本
  6. python加入中小学课程_通知:中小学将新增一门课!对2008-2013年出生的孩子影响最大!...
  7. jdk下载安装并配置环境
  8. [Flex]打造属于自己的Apollo(二)
  9. 信息安全系统设计基础_exp3
  10. 模拟实现死亡之Ping(Ping of death)
  11. U8v10.1 出纳票据打印在 Nantian PR2E上打印不正确问题的解决方法
  12. IDEA 提示Unmapped Spring configuration files found的解决办法
  13. 头条小程序Component构造器
  14. Arduino环境使用TM1638扩展版
  15. python中random.sample()函数
  16. 开放银行赋能供应链金融,连接企业生态场景
  17. app被Rejected 的各种原因翻译
  18. 写一些生活的琐事(纯属发泄)
  19. 在与SQL Server建立连接时出现于网络相关的或特定于实例的错误。
  20. 中国省级GDP增长目标(2000-2018年)

热门文章

  1. oracle listagg方法,Oracle实现字符串拼接和分离功能的方法(LISTAGG函数),oraclelistagg...
  2. 连接局域网的SQL Server数据库配置
  3. C语言试题五十九之请编写一个函数fun,它的功能时:求fibonacci数列中大于t的最小的一个数,结果由函数返回。
  4. linux网络编程之用socket实现简单客户端和服务端的通信(基于UDP)
  5. Android之如何使用junit
  6. 【C语言简单说】十二:逻辑运算符
  7. 神奇的折纸艺术!无限翻转完全停不下来
  8. 热血致敬!曾影响几代科学巨匠的传奇经典,至今仍无人能超越!
  9. 生病了女朋友说要「陪床」,结果真的是陪床不是陪我......
  10. 为什么睡觉时身体突然抖一下?答案吓到我了!