冯·诺依曼计算机

一、定义

冯·诺依曼机 (von Neumann machine),又称冯·诺依曼计算机,根据冯·诺依曼提出的存储程序概念设计的计算机。主要特征是:指令与数据都以二进制形式储存在存储器里;指令根据其储存的顺序执行。
冯·诺伊曼结构(von Neumann architecture),也称冯·诺伊曼模型(Von Neumann model)或普林斯顿结构(Princeton architecture),是一种将程序指令存储器和数据存储器合并在一起的计算机设计概念结构。依据冯·诺伊曼结构设计出的计算机称做冯.诺依曼计算机,又称存储程序计算机。

二、五大组成部分

由运算器、存储器、控制器、输入设备和输出设备五大部件组成

三、五个功能

  • 必须具有长期记忆程序、数据、中间结果及最终运算结果的能力;
  • 能够完成各种算术、逻辑运算和数据传送等数据加工处理的能力;
  • 能够根据需要控制程序走向
  • 能够根据指令控制机器的各部件协调操作;
  • 能够按照要求将处理结果输出给用户。

四、特点

  1. 计算机由运算器、存储器、控制器、输入设备和输出设备五大部件组成;
  2. 指令和数据以同等地位存放于存储器内。并可按地址访问;
  3. 指令和数据均可用二进制表示;
  4. 指令由操作码和地址码组成。操作码表示操作的性质、地址码表示操作数在存储器中的位置;
  5. 指令在存储器中按顺序存放。通常,指令是顺序执行的。在特殊情况下,可根据运算结果或指定的条件来改变运算顺序;
  6. 机器以运算器为中心。输入输出设备和存储器之间的数据传送通过运算器完成。

五、冯·诺依曼结构

冯·诺依曼体系结构的计算机基本设计思想 就是存储程序程序控制
采用二进制形式表示数据和指令 :在存储程序的计算机中,数据和指令都是以二进制形式存储在存储器中的。从存储器存储的内容来看两者并无区别.都是由0和1组成的代码序列,只是各自约定的含义不同而已。计算机在读取指令时,把从计算机读到的信息看作是指令;而在读取数据时,把从计算机读到的信息看作是操作数。数据和指令在软件编制中就已加以区分,所以正常情况下两者不会产生混乱。有时我们也把存储在存储器中的数据和指令统称为数据,因为程序信息本身也可以作为被处理的对象,进行加工处理,例如对照程序进行编译,就是将源程序当作被加工处理的对象。
采用存储程序方式 :**这是冯·诺依曼思想的核心内容。**如前所述,它意味着事先编制程序,事先将程序(包含指令和数据)存入主存储器中,计算机在运行程序时就能自动地、连续地从存储器中依次取出指令且执行。这是计算机能高速自动运行的基础。计算机的工作体现为执行程序,计算机功能的扩展在很大程度上也体现为所存储程序的扩展。计算机的许多具体工作方式也是由此派生的。冯·诺依曼机的这种工作方式,可称为控制流(指令流)驱动方式。即按照指令的执行序列,依次读取指令,然后根据指令所含的控制信息,调用数据进行处理。因此在执行程序的过程中,始终以控制信息流为驱动工作的因素,而数据信息流则是被动地被调用处理。为了控制指令序列的执行顺序,设置一个程序(指令)计数器PC(Program Counter),让它存放当前指令所在的存储单元的地址。如果程序现在是顺序执行的,每取出一条指令后PC内容加l,指示下一条指令该从何处取得。如果程序将转移到某处,就将转移的目标地址送入PC,以便按新地址读取后继指令。所以,PC就像一个指针,一直指示着程序的执行进程,也就是指示控制流的形成。虽然程序与数据都采用二进制代码,仍可按照PC的内容作为地址读取指令,再按照指令给出的操作数地址去读取数据。由于多数情况下程序是顺序执行的,所以大多数指令需要依次地紧挨着存放,除了个别即将使用的数据可以紧挨着指令存放外、一般将指令和数据分别存放在该程序区的不同区域内。

六、局限性

  1. 目前CPU的处理速度和内存容量的成长速率要远大于两者之间的流量,将大量数值从内存搬入搬出的操作占用了CPU大部分的执行时间,也造成了总线的瓶颈。
  2. 程序指令的执行是串行的,由程序计数器控制,这样使得即使有关数据已经准备好,也必须遵循逐条执行指令序列,影响了系统运行的速度;
  3. 存储器是线性编址,按顺序排列的地址访问,这是有利于存储和执行机器语言,适用于数值计算。但高级语言的存储采用的是一组有名字的变量,是按名字调用变量而非按地址访问,且高级语言中的每个操作对于任何数据类型都是通用的,不管采用何种数据结构,多维数组、二叉树还是图,最终在存储器上都必须转换成一维的线性存储模型进行存储。这些因素都导致了机器语言和高级语言之间存在很大的语义差距,这些语义差距之间的映射大部分都要由编译程序来完成,在很大程度上增加了编译程序的工作量。
  4. 冯·诺依曼体系结构计算机是为逻辑和数值运算而诞生的,它以CPU为中心,I/O设备与存储器间的数据传送都要经过运算器,在数值处理方面已经达到很高的速度和精度,但对非数值数据的处理效率比较低,需要在体系结构方面有革命性突破。
相关推荐
明洞日记1 天前
【图解软考八股034】深入解析 UML:识别标准建模图示
c++·软件工程·软考·uml·面向对象·架构设计
剪一朵云爱着2 天前
计算机组成原理 (四)计算机性能
408·计算机组成原理·计算机基础
ba_pi2 天前
每天写点什么2026-02-04(2.2)新一代技术
大数据·软考
明洞日记3 天前
【软考每日一练030】软件维护:逆向工程与再工程的区别与联系
c++·软件工程·软考·逆向工程
数据与后端架构提升之路3 天前
论边云协同架构在自动驾驶系统中的应用
架构·自动驾驶·软考
明洞日记3 天前
【软考每日一练026】软件工程深度解析:软件开发方法学的分类与应用实战
c++·ai·系统架构·软件工程·软考
明洞日记3 天前
【软考每日一练028】软件工程考点:螺旋模型与构件组装模型深度解析
c++·ai·系统架构·软件工程·软考·开发模型
不凉帅6 天前
NO.6 数据库设计基础知识
数据库·分布式数据库·软考·数据库设计
剪一朵云爱着6 天前
计算机组成原理(一)计算机概述
408·计算机组成原理·计算机基础·四大件
ba_pi8 天前
每天写点什么2026-01-28-(1.1)信息与信息化
软考·高项·信息系统项目管理师