突破冯诺依曼原理的计算机,冯诺依曼计算机的基本原理

冯·诺伊曼结构(英语: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做的进度

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/308146.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【LeetCode】1. 盛最多水的容器:C#三种解法

题目:https://leetcode-cn.com/problems/container-with-most-water/盛最多水的容器难度:中等给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个…

7-1 银行家算法--安全性检查 (20 分)(思路+详解+知识分析)宝 你今天 AC了吗

一:前言 停更一周了,在这一周里,我每时每刻都在 想这我这 29个粉丝,庆幸教师资格证终于结束了,贴心杰又可以天天更新博客了 哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,I am come back; 二:题目&a…

平均成绩计算机控件,计算机技术基础(第十二章 文件 )

功能:包括文件的创建(打开)、复制、移动、删除及获取与文件有关的信息。可以使用FileSystemObject对象和File对象完成文件管理工作。管理文件的部分属性和方法:P229-230表12-5;表12-61.文件的创建与打开FSO对象模型提供了三种创建…

.Net Core中的诊断日志DiagnosticSource讲解

前言近期由于需要进行分布式链路跟踪系统的技术选型,所以一直在研究链路跟踪相关的框架。作为能在.Net Core中使用的APM,SkyWalking自然成为了首选。SkyAPM-dotnet是SkyWalking在.Net Core端的探针实现,其主要的收集日志的手段就是基于Diagno…

7-2 银行家算法--申请资源 (30 分)

7-2 银行家算法–申请资源 (30 分)&#xff08;思路详解&#xff09;Come 乖宝宝们 一&#xff1a;前言 这道题需要用到前面的一道题 安全性检查 算法知识&#xff0c;所以强烈建议先看前面那道题 7-1 银行家算法–安全性检查 (20 分) 二&#xff1a;题目 输入N个进程(N<…

计算机一级文档题,计算机一级模拟题

计算机2008第二次一级笔试试题A卷一、单选题1.计算机的发展大体可(按其组成的器件)分为()阶段。A.六 B.五 C.四 D.三2.计算机中的运算器能进行()。A.加法和减法运算 B.算术运算和逻辑运算C.加、减、乘、除运算 D.字符处理运算3.计算机软件是指所使用的()。A.各种程序的集合B.有…

年薪100万和10万程序员的差距

点击蓝字关注&#xff0c;回复“职场进阶”获取职场进阶精品资料一份我们看武侠大片&#xff0c;经常有那种本来可以练就绝世武功的大虾。阴差阳错练的走火入魔。一开始还可以硬撑&#xff0c;还能打败一些虾兵蟹将。遇见真正的高手&#xff0c;这些大虾们立马就败下阵来。其实…

7-3 银行家算法--综合 (50 分)(思路+详解+分析输入)宝宝们 加油

一&#xff1a;前言 这道题涉及到 银行家算法的申请资源 算法 还有 安全性检查的耍算法 那么强烈建议 把前面的学完再看本题 7-1 银行家算法–安全性检查 (20 分) 7-2 银行家算法–申请资源 (30 分) 二&#xff1a;题目 输入N个进程(N<100)&#xff0c;以及M类资源&#…

如何在龙芯3B4000上部署基于.Net Core 开发的物联网平台IoTSharp

今天很开心的拿到了龙芯的测试服务器账号&#xff0c; 先上图show一下&#xff0c; 双核&#xff0c; 8G内存&#xff0c; 50G硬盘。架构 mips64el 登录后&#xff0c; 显示为 uos 及其网址信息:接下来&#xff0c; 二话不说&#xff0c; 我们开始下载龙芯版的.Net Core &#…

服务器虚拟化怎么使用,服务器使用中的误区及建议 服务器虚拟化安装步骤

服务器是至关重要的核心设备&#xff0c;确保网络服务器能够高性能、稳定持续地工作一直以来都是用户最关心的问题。然而在关注着这个问题的同时&#xff0c;我们发现有很多的用户都没有正确地配置自己的服务器&#xff0c;使得服务器并没有工作在最佳的状态。本文总结了大家在…

46. 全排列015(回溯法求解)

一:题目 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 示例 2&#xff1a;输入&#xff1a;nums [0,1] 输出&#xff1a;[[0,1],[1,0]] 示例 3&#xff1a;输入&#xff1a;nums [1] 输出&#xf…

计算机 ieee access,计算机 | IEEE Access 诚邀专刊稿件 (IF:3.557)

期刊基本信息期刊名称IEEE Access专刊全称Advanced Communications and Networking Techniques for Wireless Connected Intelligent Robot Swarms影响因子3.557专刊难度★★中科院JCR分区:• 大类 : 工程技术 - 2区• 小类 : 计算机&#xff1a;信息系统 - 2区• 小类 : 工程&…

git did not exit cleanly(解决办法)

一&#xff1a;问题描述 我们在push的时候&#xff0c;出现如下问题 这个图是我拿别人的&#xff08;因为我的问题解决后 没保存图&#xff09; 二:解决 1.新建一个仓库在gitee上: 2:将新建的仓库克隆到本地 3&#xff1a;将原来的文件剪切到javanew(新建的仓库) 4&#…

[Hei.Captcha] Asp.Net Core 跨平台验证码实现

&#xfeff;&#xfeff;写在前面说起来比较丢脸。我们有个手机的验证码发送逻辑需要使用验证码&#xff0c;这块本来项目里面就有验证码绘制逻辑&#xff0c;.Net Framework的&#xff0c;使用的包是System.Drawing,我把这验证码绘制逻辑复制到.Net Core的新项目引用对比包Sy…

等待ajax,等待Ajax调用(post)完成

回拨:定义要接受回调的PostForm:function postForm(ind, id, callback){// ...$.post(url, function(){// ...callback();});}然后像下面这样做。您可以使用递归以一种不太硬的编码方式编写它,如果有更多的表单,这可能特别有用。postForm(0, "#Form1", function(){po…

77. 组合016(回溯法)

一:题目 给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;n 4, k 2 输出&#xff1a; [[2,4],[3,4],[2,3],[1,2],[1,3],[1,4], ] 示例 2&#xff1a;输入&#xff1a;n …

.NET5即至,你准备好了吗?

.NET 5.0 Preview7是RC版前倒数第二个预览版&#xff0c;发布至今恰好一个月&#xff0c;算起来&#xff0c;.NET Core开源已经4年了&#xff0c;然而在互联网大型系统开发中很多环节都还是空白的&#xff0c;造轮子诚非一日之功&#xff01;这里为大家推荐一个分布式日志分析解…

216. 组合总和 III017(回溯法求解)

一&#xff1a;题目 二:思路 1.总体来看这是一个解空间为k层的排列树 第一层为1~9 2.递归函数的参数和返回值 1>:返回值&#xff1a;vector<vector > res 每次的求解结果&#xff1a;vector path 2>:参数&#xff1a; backtacking(int k,int n,int index,int sum)…

基于IdentityServer4的OIDC实现单点登录(SSO)原理简析

&#xfeff;&#xfeff;# 写在前面IdentityServer4的学习断断续续&#xff0c;兜兜转转&#xff0c;走了不少弯路&#xff0c;也花了不少时间。可能是因为没有阅读源码&#xff0c;也没有特别系统的学习资料&#xff0c;相关文章很多园子里的大佬都有涉及&#xff0c;有系列文…

fc协议有哪些数据传输服务器,FC协议详解

FC协议简介开发于1988年&#xff0c;最早是用来提高硬盘协议的传输带宽&#xff0c;侧重于数据的快速、高效、可靠传输。到上世纪90年代末&#xff0c;FCSAN开始得到大规模的广泛应用。FC协议其实并不能翻译成光纤协议&#xff0c;只是FC协议普遍采用光纤作为传输线缆而不是铜缆…