计算机基础(2)——冯诺依曼体系结构

💗计算机基础系列文章💗

  • 👉🍀计算机基础(1)——计算机的发展史🍀
  • 👉🍀计算机基础(2)——冯诺依曼体系结构🍀
  • 👉🍀计算机基础(3)——计算机的系统组成🍀
  • 👉🍀计算机基础(4)——操作系统概述🍀
  • 👉🍀计算机基础(5)——进制与进制转换🍀
  • 👉🍀计算机基础(6)——二进制与文本的转换🍀
  • 👉🍀计算机基础(7)——数字图像技术🍀
  • 👉🍀计算机基础(8)——音频数字化(模电与数电)🍀
  • 👉🍀计算机基础(9)——原码、补码、反码🍀
  • 👉🍀计算机基础(10)——编程语言与跨平台🍀

冯诺依曼体系结构

在1946年世界上的第一台电子数字计算机ENIAC诞生后,其仍然存在很多问题,ENIAC由各种门电路组成,这些门电路通过组装出一个固定的电路板,操作这台庞然大物需要通过旋钮、开关和接插线不同的位置来表示所要执行的程序,一旦需要修改程序功能,就要重新组装电路板,因此在ENIAC上设置一段程序往往需要花费大量的时间,如果频繁的设置不同的程序会导致机器在很大一部分时间内都处于程序设计状态而无法运行,实用性能大打折扣。

在ENIAC的总体设计已经完成并进入硬件实现阶段时,来自匈牙利犹太裔美籍计算机科学家约翰·冯·诺依曼(John von Neumann)加入了由莫奇利和埃克特主导的ENIAC团队,一起讨论对ENIAC进行改进,他们要解决的核心问题就是将硬件化程序变为可编程,放在存储器中,随意使用,这就是冯.诺依曼计算机体系的开端,这台新机器名叫电子离散变量自动计算机(Electronic Discrete Variable Automatic Computer),简称EDVAC,由于冯.诺依曼对现代计算机技术的突出贡献,因此冯·诺依曼又被称为“现代计算机之父”。

在冯.诺依曼结构(也被称为普林斯顿结构,因为冯诺依曼当时在普林斯顿大学任教授)概念被提出之前,程序和数据是俩个截然不同的概念,数据放在存储器中,而程序作为控制器的一部分(程序是作为硬件的存在),这样的计算机计算效率低,灵活性较差(每一次编程都需要重新组装电路等)。冯.诺依曼结构中,将程序和数据一样看待,将程序编码为数据,然后与数据一同存放在存储器中,这样计算机就可以调用存储器中的程序来处理数据了。

这意味着,无论什么程序,最终都是会转换为数据的形式存储在存储器中,要执行相应的程序只需要从存储器中依次取出指令、执行,冯.诺依曼结构减少了硬件的连接,这种设计思想导致了硬件和软件的分离,即硬件设计和程序设计可以分开执行。

概括的来讲,冯.诺依曼结构消除了原始计算机体系中,只能依靠硬件控制程序的状况(当时程序作为控制器的一部分,作为硬件存在),它将程序编码存储在存储器中,实现了可编程的计算机功能。
冯.诺依曼计算机体系的主要特点如下:

  1. 构成程序的指令和存储的数据均采用二进制表示
  2. 指令和数据都存放在主(内)存储器中,计算机在工作时按地址访问并执行
  3. 指令由操作码和地址码组成,每一段指令都有其地址
  4. 计算机硬件由运算器、控制器、存储器、输入设备、输出设备这五大部分组成
  5. 机器以运算器为中心,输入/输出设备与存储器之间的数据传送通过运算器完成

冯·诺依曼结构以运算器为中心,输入/输出设备与存储器之前的数据传输都需要经过运算器,如图所示。

在冯诺依曼结构中,控制器与其他4个部件都通过控制线与反馈线相连接,控制器通过控制线发送信号控制4个部件进行工作,这些部件通过反馈线将信息反馈给控制器。控制器将用户通过输入设备输入的信息交由运算器进行运算,存储器存储输入设备输入的数据和要控制器要执行的指令,在控制的控制下也可以将存储器存储的信息交由输出设备进行输出。这样一次信息的运算(交互)在5个部件的协同配合下完成了。
但是这样以运算器为中心的结构中也存在一定的问题,那就是即使不需要运算器参与的输入/输出操作时运算器也会参与进来运算,浪费了运算器性能。
现代计算机一般以存储器为中心,这样输入/输出设备就可以直接与存储器交换数据,提高整体效率,如图所示。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode-day02-3067. 在带权树网络中统计可连接服务器对数目

LeetCode-day02-3067. 在带权树网络中统计可连接服务器对数目 题目描述示例示例1:示例2: 思路代码 题目描述 给你一棵无根带权树,树中总共有 n 个节点,分别表示 n 个服务器,服务器从 0 到 n - 1 编号。同时给你一个数组 edges &a…

11 - 员工奖金(高频 SQL 50 题基础版)

11- 员工奖金 -- join和left join的区别 -- 如果是join则右侧的数据有的就插,没的就啥也不干,交白卷,也不留null -- 但是left join让右侧数据在没有对应数据时补上了null select e.name,b.bonus from Employee e left join bonus b on e.empI…

【设计模式】结构型-组合模式

前言 在软件开发中,设计模式是一种被广泛应用的解决问题的方法论。其中,结构性设计模式是一类特别重要的模式,它们用于处理类或对象之间的组合关系,其中之一就是组合模式。组合模式允许客户端统一对待单个对象和对象的组合&#…

新手小白怎么学习接口自动化测试?

接口自动化测试是一种重要的测试技术,对于新手小白来说,学习这个技术需要一定的时间和耐心。在本文中,我将从零开始,详细而规范地介绍如何学习接口自动化测试。 1. 接口自动化测试的基础知识 在开始学习接口自动化测试之前&…

【教学类-13-05】20240604《数字色块图-5*7*8-A4横板-横切》中4班

背景需求: 【教学类-13-04】20230404《数字色块图判断密码是否正确-5*7*8-A4横板-横切》(中班主题《我爱我家》)_图案密码色块-CSDN博客文章浏览阅读530次。【教学类-13-04】20230404《数字色块图判断密码是否正确-5*7*8-A4横板-横切》(中班主…

270 基于matlab的模糊自适应PID控制

基于matlab的模糊自适应PID控制,具有10页报告。传统PID在对象变化时,控制器的参数难以自动调整。将模糊控制与PID控制结合,利用模糊推理方法实现对PID参数的在线自整定。使控制器具有较好的自适应性。使用MATLAB对系统进行仿真,结…

Python采集数据处理:利用Pandas进行组排序和筛选

概述 在现代数据处理和分析中,网络爬虫技术变得越来越重要。通过网络爬虫,我们可以自动化地从网页上收集大量的数据。然而,如何高效地处理和筛选这些数据是一个关键问题。本文将介绍如何使用Python的Pandas库对采集到的数据进行组排序和筛选…

安徽某高校数据挖掘作业4-5 (与一些碎碎念)

1. 编写程序求函数、、的极限。 解答: import sympy as sp# 定义符号变量 x x sp.symbols(x)# 定义函数 f1 sp.sin(20 * x) / x f2 (1 4 * x)**(2 / x) f3 (1 4 / x)**(2 * x)# 计算极限 limit1 sp.limit(f1, x, 0) limit2 sp.limit(f2, x, 0) limit3 sp…

测绘GIS和遥感领域比较好的公众号有哪些

测绘GIS和遥感领域,微信公众号作为信息传播和知识分享的重要渠道,为从业者提供了一个快速获取行业动态、技术进展和职业发展机会的平台。分享一些在测绘GIS和遥感领域表现突出的公众号推荐: 1. 慧天地:慧天地是一个知名的测绘公众…

倪师哲学。把智慧和时间都用在学习知识上

大家好,今天我们接着聊倪海厦老师的思想,一共整理出来了6点,之前4点已经讲过,今天我们讲第五点,这个呢也是倪老师的原话,不要浪费时间去做无谓的事情,把智慧和时间都用在学习知识上面。 其实啊现…

每天坚持写java锻炼能力---第一天(6.4)

今天的目标是菜单: B站/马士兵的项目菜单 package java1;import java.util.Scanner;public class Test {public static void main(String[] args) {while(true){ //3.加入死循环,让输入一直有System.out.println();System.out.println("--->项…

冯喜运:6.5黄金原油今日行情趋势分析及操作策略

【黄金消息面分析】:在全球经济的波动中,美元和黄金市场的表现一直是投资者关注的焦点。最近,市场情绪和经济数据的波动对这两个市场产生了显著的影响。周二欧市早盘,现货黄金价格出现短线回调,金价跌破2340美元/盎司&…

Pycharm创建Conda虚拟环境时显示CondaHTTPErOT

原因:conda源出问题了,之前可以用,现在报错。 最好的解决方案:找到conda源,换源即可。 步骤: 1.修改 .condarc 文件(文件的位置在:C:\Users\(你的用户名)\.condarc)&a…

.NET IoC 容器(三)Autofac

目录 .NET IoC 容器(三)AutofacAutofacNuget 安装实现DI定义接口定义实现类依赖注入 注入方式构造函数注入 | 属性注入 | 方法注入注入实现 接口注册重复注册指定参数注册 生命周期默认生命周期单例生命周期每个周期范围一个生命周期 依赖配置Nuget配置文…

AIGIS地图智能体功能预览——最强WebGIS打工人秒上岗

目录 前言1.这地图智能体是用来干什么的?2.智能体介绍3.二维效果4.三维效果5.大模型写不出来正确的代码怎么办?6.所以最终会产生一个什么样的现象?7.现在我们可用的大模型有哪些?8.不会写代码怎么开发自己的专属智能体&#xff1f…

处理无法拉取GitHub库的解决方案

提交和拉取github上的库总是失败,这里记录一下如何使用代理解决。 首先找到端口,记住它的端口 然后使用git命令 # HTTP/HTTPS 协议 git config ––global http.url.proxy http://127.0.0.1:port # 以 Github 为例 git config ––global http.https:/…

解决MyBatis的N+1问题

解决MyBatis的N1问题 N1问题通常出现在一对多关联查询中。当我们查询主表数据(如订单)并希望获取关联的从表数据(如订单的商品)时,如果每获取一条主表记录都要执行一次从表查询,就会产生N1次查询的问题。假…

线性电源运放驱动调整管的方案仿真

群里有人的电路板做出来电压不稳,加负载就掉电压。我对这个运放的工作状态不是很理解,所以仿真了一下。结果却是稳定的。他用12v给运放供电,要求输出10.5. 从仿真看。12运放供电只能输出9v。而且还是到了运放的极限。所以通过仿真后确定怀疑路…

10-Django项目--Ajax请求

目录 Ajax请求 简单示范 html 数据添加 py文件 html文件 demo_list.html Ajax_data.py 图例 Ajax请求 简单示范 html <input type"button" id"button-one" class"btn btn-success" value"点我"> ​ ​ <script>/…

实现秒传与限速!深度解析万亿GB网盘系统架构

1. 系统需求与挑战 1.1 DBox核心功能 在设计一个面向万亿GB的网盘系统时&#xff0c;我们需要首先明确系统的核心功能需求。DBox 作为一个高并发、高可靠的网盘系统&#xff0c;核心功能需求主要包括以下几点&#xff1a; 海量存储&#xff1a;支持存储海量数据&#xff0c;…