冯·诺依曼结构,让每一位学习计算机系统基础的学生印象深刻,因为它是现代计算机的基础,是计算机系统知识架构中所绕不开的重要组成部分。计算机系统基础的学习,也从冯诺依曼结构开始。

世界上第一台通用电子计算机ENIAC

故事要从1946年开始,那时,为解决复杂的弹道计算问题,宾夕法尼亚大学研制出了世界上第一台通用电子计算机ENIAC(Electronic Numerical Integrator And Computer),它有如下特点:

  1. 占地170平方米,重达30吨 由18000多个电子真空管组成,耗电160千瓦
  2. 每秒可完成5000次加法
  3. 可用于进行平方,立方,sin,cos等运算
  4. 用十进制表示信息并运算 采用手动编程,通过设置开关和插拔电缆来实现

    这台机器正式运行到1955年10月2日,十年间共运行了80223个小时

冯·诺依曼的故事

冯·诺依曼(1903年12月28日-1957年2月8日)匈牙利裔美籍数学家,计算机科学家,物理学家。

  • 1944年冯·诺依曼参加原子弹的研制工作,其中涉及到了极为复杂的问题
  • 1944年夏,冯·诺依曼巧遇美国弹道实验室的军方负责人戈尔斯坦,他正在参与ENIAC的研制工作
  • 冯·诺依曼被戈尔斯坦介绍进入ENIAC研制组,由于ENIAC存在相应的问题(如没有存储器),1945年,冯·诺依曼以“关于EDVAC的报告草案”为题,起草了长达101页的总结报告,发表了全新的“存储程序通用计算机方案”——即EDVAC
  • 冯·诺依曼所在的普林斯顿高等研究院(IAS)批准其依照该方案建造计算机

现代计算机的原型

1946年起,IAS开始设计“存储程序”计算机,1951年完成,其被称为IAS计算机(ps:它不是第一台存储程序计算机,第一台存储程序计算机是由1949年英国剑桥大学所完成的EDSAC)

在冯·诺依曼提出的“存储程序通用电子计算机方案”的总结报告中,其提出的结构被称为冯诺依曼结构,而冯诺依曼结构最重要的思想就是“存储结构(Stored-program)”

存储结构的工作方式为:任何计算机完成的工作都要先被编写成程序,然后将程序和原始数据送入主存并启动执行。一旦程序被启动,计算机应在不需操作人员干预下,自动完成逐条取出指令和执行指令任务。

冯·诺依曼结构计算机也成冯·诺依曼机器,几乎现代所有通用计算机都采用冯·诺依曼结构,因此IAS计算机是所有计算机的原型机。

冯·诺依曼结构:

  • 主存—存放程序和数据
  • 有一个自动逐条取指令的部件
  • 有一个具体执行指令的部件
  • 程序由指令构成
  • 指令描述如何对数据进行处理
  • 有将程序和原始数据输入计算机的部件
  • 有将运算结果输出计算机的部件

IAS计算机结构如下:

分解结构如下:
一、控制器

二、主存储器:

三、运算器:

四、输入设备/五、输出设备:

IAS结构抽象示意图

数据输入输出的流程大致为:程序和数据通过输入设备输入到存储器存储器内一条一条指令送入控制器进行译码,输出相应的控制信号控制所有其他设备动作,同时存储器里面的数据送到运算器,在控制信号的控制下进行运算,运算的结果还是送到存储器,最终把存储器的信息,即运算的结果送到输出设备,通过输出设备输出到计算机的外部。

早期,部件之间采用分散方式相连
现在,部件之间采用主线方式相连

总结

冯·诺依曼结构的主要思想:

1、计算机应由运算器、控制器、存储器、输入输出设备五个基本部件组成

2、各基本部件的功能为:

  • 存储器不仅存放数据,而且还可以存放指令,形式上两者没有区别(都是01序列),但计算机应能区分数据还是指令
  • 控制器应能自动取出指令来执行
  • 运算器应能进行加/减/乘/除四种基本运算,并且能进行一些逻辑运算和附加运算
  • 操作人员可通过输入输出设备和主机进行通信

3、内部以二进制表示指令和数据(ENIAC是十进制表示指令和数据,而IAS计算机采用的是二进制),每条指令由操作码和地址码两部分组成。操作码指出指令的操作类型(例如加法、减法、传送、跳转等),地址码指出操作数的地址。一个指令实际上是由一串01序列组成,每串01序列串起来,就组成了一个程序,最终会发现整个程序就是一个01序列。

4、采用“存储程序”的工作方式

冯·诺依曼结构及其主要思想【计算机系统基础01】相关推荐

  1. 计算机系统基础:计算机系统概述

    这是一个 CSAPP-like 的系列博客 通用电子计算机历史 第一台通用电子计算机是宾夕法尼亚大学于1946年研制的ENIAC,它采用十进制,是可编程.图灵完备的电子计算机. 随后,Von Neum ...

  2. 袁春风老师:计算机系统基础(一) 第一章

    南京大学 计算机系统基础(一)主讲:袁春风老师 基础好的读目录回顾一下即可 本课程是以csapp为教材进行讲解的 程序执行结果,不仅取决于算法.程序编写.编程语言的语法语义 ,而且取决于语言处理系统. ...

  3. 计算机系统基础(第一章习题)

    习题 1.若一台计算机的字长为2个字节,则表明该机器( ). A.能处理的数值最大为2位十进制数. B.能处理的数值最多由2位二进制数组成. C.在CPU中能够作为一个整体加以处理的二进制代码为16位 ...

  4. 计算机系统基础 - 为什么要学习计算机基础

    这里写目录标题 用系统思维分析问题 例子1 例子2 例子3 例子4 例子5 冯 · 诺依曼结构计算机采用存储程序工作方式 冯 · 诺依曼结构是怎样的 冯 · 诺依曼结构的主要思想 现代计算机结构模型 ...

  5. 为什么说冯诺依曼结构是现代计算机的基础,为什么现代计算机被称为冯·诺依曼结构计算机?...

    冯·诺依曼最先提出程序存储的思想,并成功将其运用在计算机的设计之中,根据这一原理制造的计算机被称为冯·诺依曼结构计算机.由于他对现代计算机技术的突出贡献,因此冯·诺依曼又被称为"现代计算机之 ...

  6. (一)计算机系统基础之冯诺依曼结构主要思想

    冯·诺依曼结构: 最重要的思想是"存储程序" 工作方式: 任何要计算机完成的工作都要先被编写成程序,然后将程序和原始数据送入贮存并启动执行.一旦程序被启动,计算机应能在不需要操作人 ...

  7. 01——计算机系统基础

    计算机系统基础知识 计算机系统基础 一.计算机系统的基本组成 1 计算机硬件系统 二.计算机的类型 三.计算机的组成和工作原理 1 计算机的组成 2 总线的基本概念 2.1 总线的定义与分类 3 系统 ...

  8. 计算机系统基础实验01运算器算术运算

    计算机系统基础 运算器算术运算 实验目的 掌握ALU的算术运算原理,熟悉ALU数据传送通路和数据传送方式. 实验环境 微机,配置Windows操作系统.LC-3仿真机软件. 实验内容 ALU数据传送通 ...

  9. 【计算机专业漫谈】【计算机系统基础学习笔记】W1-计算机系统概述

    利用空档期时间学习一下计算机系统基础,以前对这些知识只停留在应试层面,今天终于能详细理解一下了.参考课程为南京大学袁春风老师的计算机系统基础MOOC,参考书籍也是袁老师的教材,这是我的听课+自查资料整 ...

最新文章

  1. 学用 TStringGrid [7] - ColWidths[0]、RowHeights[0]、GridLineWidth
  2. java 关于分页的实现
  3. Zookeeper和 Google Chubby对比分析
  4. VTK:Shaders之MarbleShaderDemo
  5. linux shell 等待输入_shell中获得用户的输入
  6. 7-4 jmu-Java-06异常-04-自定义异常(综合) (15 分)
  7. java类与对象明星,明星档案的
  8. 快手通过标签添加的我_快手怎么上热门?快手短视频推荐指标有哪些?
  9. Dubbo的负载均衡、集群容错、服务降级等机制详解
  10. Python学习-将list列表写入文件并读取方法汇总
  11. 《教孩子编程(Python语言版)》课程介绍
  12. 计算机教育工作,计算机教育教学工作总结
  13. Javascript特效:长图滚动
  14. matlab cos sinx,matlab求y=sinxcos(2x)及其包络线急!!!
  15. 字符串初始化_触发类初始化的几个面试坑
  16. 复杂网络理论及其应用-基本概念
  17. 台达AS228Tplc加台达触摸屏一套程序,一共100个io 左右,一个伺服程序。plc程序有FB块,ST语言,C语言,触摸屏有配方和数据储存功能
  18. 用musescore做吉他弹唱谱
  19. northwind数据库mysql下载_SQLEXPRESS 2012 安装NorthWind和Pub数据库
  20. gitbook build 生成的HTML无法跳转问题

热门文章

  1. Android P+通过反射调用系统API实现高级功能
  2. 修改webbrower中浏览器版本
  3. c语言中函数名可不可以由用户命名,C语言中变量名及函数名的命名规则与驼峰命名法...
  4. C# 重载 Equals() 方法、重载运算符、声明显隐式转换的简要整理
  5. 第十章:如何制定项目目标?
  6. HTTP Error 503错误
  7. 将US7ASCII 字符集的数据转到ZHS16GBK 字符集数据库
  8. 柠檬班python自动化百度云_柠檬班python
  9. js:ajax的get方法实现简单的搜索框提示
  10. feign.RetryableException: connect timed out executing xxxxxx