zoukankan      html  css  js  c++  java
  • 冯·诺依曼结构--冯·诺依曼报告

    1945 年 6 月 30 日, 约翰 · 冯 · 诺依曼与戈德斯坦等人联名发表著名的 101 页报告:「First Draft of a Report on the EDVAC 」(EDVAC 报告书的第一份草案;EDVAC:Electronic Discrete Variable Automatic Computer, 电子数据计算机)

    1946年7-8月间, 约翰 · 冯 · 诺依曼等人又提出了一个更加完善的设计报告「Preliminary Discussion of the the Logical Design of an Electronic Computing Instrument」(电子计算机逻辑设计初探)。 

    报告指出:

    (1)计算机应采用二进制, 不但数据采用二进制, 程序指令也采用二进制;

    (2)计算机由5部分构成: 运算器、 控制器、 存储器、 输入和输出装置;

    (3)程序由指令组成并和数据一起存放在存储器中, 机器按程序指定的逻辑顺序, 把指令从存储器中读出来并逐条执行, 从而自动完成程序描述的处理工作, 即「存储程序」思想。

    冯·诺伊曼结构

    这里我们不谈论前两点,只谈谈由第三点“存储程序”思想衍生出的结构: 冯 · 诺依曼结构, 即「将程序指令和数据存储在一起」的存储器结构, 也可称之为普林斯顿结构(可能是只以他的名字命名较为不公, 所以也有人以约翰 · 冯· 诺依曼曾任教的大学普林斯顿来命名该结构)。 下面是个人对冯 · 诺依曼结构的理解。

    首先,冯·诺伊曼结构的本质是「存储器结构, 什么是存储器(Memory)? 现代的存储器种类很多, 个人认为冯 · 诺依曼结构当中的存储器指的是我们现在说的 RAM(Random Access Memory,随机读取存储器), 暂时可以理解为是 PC 中的内存(条), 而不是指硬盘等存储器(如有不同看法,欢迎发表), 理解这一点很重要。
    其次, 什么是程序指令和数据? 程序指令本质就是控制计算机进行相关运算的一些二进制「编码」(在冯·诺依曼机中指的是二进制码),但是这些「编码」是人为事先定义、计算机可「理解」的。那么数据呢?数据就是人为输入和程序指令被执行后产生的「编码」, 计算机不可「理解」。冯 · 诺依曼之所以将这两者都存储在 RAM 中,就是因为它们本质上都是「编码」。但是这两者之间还有一个重要的区别: 程序指令在执行时是不可变的, 而数据则是可变的。 所以我们可以认为程序指令的目的实际上就是为了产生数据和改变数据。 这意味着将程序指令和数据放在同一块存储器上可能造成程序指令的不稳定(即程序指令在执行时容易被改写, 这也是为什么 PC 机上程序容易出现崩溃的部分原因)。
    最后, CPU 和存储器之间通过什么进行沟通? 我们知道冯 · 诺依曼机的 CPU 需要从 RAM 中读写数据, 取指令、 翻译指令、 执行指令。 后两者 CPU 可独立完成, 前两者 CPU 则需要通过系统总线与 RAM 进行沟通。 系统总线分为地址总线, 数据总线和控制总线, 分别用于传输地址信号、 数据信号和控制信号(但要注意这几种总线不一定是独立的,比如数据总线可能会承担地址总线的功能), 由于将指令和数据放在一起,冯 · 诺依曼结构是比较节省总线资源的。
    ---------------------
    作者:Kilento
    来源:CSDN
    原文:https://blog.csdn.net/u012867916/article/details/54619131
    版权声明:本文为博主原创文章,转载请附上博文链接!

    根据冯诺依曼体系结构构成的计算机,必须具有如下功能:

      1.把需要的程序和数据送至计算机中。

      2.必须具有长期记忆程序、数据、中间结果及最终运算结果的能力。

      3.能够完成各种算术、逻辑运算和数据传送等数据加工处理的能力。

      4.能够根据需要控制程序走向,并能根据指令控制机器的各部件协调操作。

      5.能够按照要求将处理结果输出给用户。

     

    http://www.voidcn.com/article/p-pspyupix-xd.html

  • 相关阅读:
    no module name cx_oracle 的解决方法
    开通博客
    普通用户启动Hadoop格式化namenode出现无法创建目录的问题
    改写文件权限时出现问题___2
    suse添加普通用户赋予root所有权限时出现问题___1
    suse系统vim未正常退出产生的问题(can't write viminfo file /home/zhaoy/.viminfo)
    intellij idea根据mvn仓库添加或改变scala-sdk
    git拉项目和上传项目时遇到的一些问题
    简单的clone项目fromGitHub
    初始机器学习
  • 原文地址:https://www.cnblogs.com/feng9exe/p/10219763.html
Copyright © 2011-2022 走看看