深入理解冯诺依曼体系结构

文章目录

  • 冯诺依曼体系结构概念
  • 冯诺依曼体系结构的优势
  • 冯诺依曼体系结构的现实体现

冯诺依曼体系结构概念

  冯·诺依曼体系结构也称普林斯顿结构,是现代计算机发展的基础。它的主要特点是“程序存储,共享数据,顺序执行”,即程序指令和数据都存储在同一个存储器中,CPU从存储器中取出指令和数据进行相应的计算。

  该体系结构由美籍匈牙利科学家冯·诺依曼在1945年提出,主要包含以下几个基本组成部分:运算器、控制器、存储器、输入设备和输出设备。运算器负责执行各种算术和逻辑运算;控制器则负责解释指令,控制整个计算机系统的操作;存储器用于存储程序和数据;输入设备用于接收外部数据;输出设备则用于显示或输出处理后的结果。

  冯·诺依曼体系结构的主要特点包括:

1. 单处理机结构,机器以运算器为中心。
2. 采用程序存储思想,即程序和数据都存储在同一个存储器中,并且程序指令和数据可以共享相同的内存地址空间。
3. 指令和数据一样可以参与运算,这意味着处理器可以像处理数据一样处理指令。
4. 数据以二进制表示,这是计算机内部处理信息的基础。
5. 将软件和硬件完全分离,使得软件设计更加灵活和高效。
6. 指令由操作码和操作数组成,操作码指示要执行的操作类型,而操作数则提供操作所需的数据。
7. 指令顺序执行,即处理器按照程序中的指令顺序逐条执行。

  啰啰嗦嗦一大堆,我相信没有人会去特意记这种枯燥乏味的概念知识,我是这样的,看的我头都大了,相比于概念理解更重要,接下来我就带着大家去理解冯诺依曼体系结构。


冯诺依曼体系结构的优势

  首先我们要知道冯诺依曼体系的几个基本组成部分
在这里插入图片描述

输入设备:键盘, 鼠标,扫描仪, 写板等
输出设备:显示器,打印机等
中央处理器(CPU):含有运算器和控制器等
存储器:内存

  各部分之间是相互独立存在,最后通过总线实现连接,这样就能够实现数据的流动,对于数据流动这个概念本质上就是把数据从某一部件拷贝到另一部件,拷贝的快慢就决定了计算机的效率。
  我们已经知道了只要数据流动越快,计算机的效率就越高,那么各个部件的速度又是多块呢?
  我们可以明确得知每个部件的效率是不同的,具体如下图所示:
在这里插入图片描述  当我们有了以上知识储备后,我们来假设现在存在一种结构如下图所示:
在这里插入图片描述  在该结构中没有内存,cpu直接与输入输出设备之间进行数据的传递。
  在该结构中输入输出设备与CPU的速度存在着巨大的差距,这就像是三个人分工合作完成某一任务一样,输入设备将数据传递给cpu进行处理,cpu处理结束后立即将结果交给输出设备,再进行下一次工作,但是问题出现了,由于他们之间速度的差距,cpu会一直处于一种闲置阻塞的状态中,CPU会说输入设备你好没好,你赶紧把数据给我呀,等它拿到输入设备交过来的数据后一瞬间就处理结束,它转头一瞧,CPU:兄弟(输入设备)你快点把数据给我呀,等到cpu再次处理完数据后刚要准备把数据给输出设备,cpu发现,CPU:不是吧老哥(输出设备)你怎么还没有把结果输出呀,它又阻塞起来等输出设备输出,CPU一整个血压飙升。

  这就是木桶短板原理,不管你CPU多牛多块,总体结果还是要看输入输出设备。
在这里插入图片描述

  于是冯诺依曼体系结构闪亮登场。
  冯诺依曼体系结构增加了内存这个单元,内存的速度是介于CPU和输入输出设备之间的,使得计算机的整体效率大幅度提升,但是该体系结构不仅仅是起到平衡速度的作用。
  对于我们的程序必须先从外部加载到内存才能运行起来,我们可以把多个程序加载到内存,然后通过各种调度算法运行我们的程序,这使得CPU的利用率得到进一步强化,CPU表示根本停不下来一直在不断工作,由此计算机的效率问题由硬件问题转移到了软件问题,对于同一台计算机更优秀的软件可以使计算机更加高效。
  对于我为什么程序必须先从外部加载到内存才能运行起来这个问题是由冯诺依曼体系结构决定的,他就是那么规定的,也是必须遵守的。
  关于冯诺依曼体系结构必须强调几点:

  1. 这里的存储器指的是内存
  2. 不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)
  3. 外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。
  4. 一句话,所有设备都只能直接和内存打交道。

冯诺依曼体系结构的现实体现

  现在假设一个场景,你与你的好朋友通过社交软件进行聊天。
  首先你从键盘输入信息,加载到内存等待调度,调度成功cpu进行处理后再加载到内存等待资源(输出设备),资源就绪后通过网卡输出,你朋友通过网卡接收数据,然后数据加载到内存等待调度,调度成功后cpu处理,处理成功后再加载到内存等待资源,资源就绪再输出到你朋友的显示器上。


本章到此结束,感谢您的阅读!

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

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

相关文章

芋道微服务功能介绍(限免)

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 系列文章目录 第一章 芋…

Datart 扩装下载功能之PDF和图片下载

Datart 扩装下载功能之PDF和图片下载 首先下载依赖 yum install mesa-libOSMesa-devel gnu-free-sans-fonts wqy-zenhei-fonts -y 然后下载安装chrome yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm 查看chrome版本号 google…

vscode使用EditorConfig进行项目配置

安装 EditorConfig for VS Code 插件,该插件会自动读取项目的 .editorconfig 文件,对项目进行配置。 该文件支持属性: indent_style:缩进风格,可配置项:tab,spaceindent_size:缩进…

前端学习<四>JavaScript——54-原型链

常见概念 构造函数 构造函数-扩展 原型规则和示例 原型链 instanceof 构造函数 任何一个函数都可以被 new,new 了之后,就成了构造方法。 如下: function Foo(name, age) {this.name name;this.age age;//retrun this; //默认有这…

数据聚类:Mean-Shift和EM算法

目录 1. 高斯混合分布2. Mean-Shift算法3. EM算法4. 数据聚类5. 源码地址 1. 高斯混合分布 在高斯混合分布中,我们假设数据是由多个高斯分布组合而成的。每个高斯分布被称为一个“成分”(component),这些成分通过加权和的方式来构…

ElasticSearch教程入门到精通——第二部分(基于ELK技术栈elasticsearch 7.x+8.x新特性)

ElasticSearch教程入门到精通——第二部分(基于ELK技术栈elasticsearch 7.x8.x新特性) 1. JavaAPI-环境准备1.1 新建Maven工程——添加依赖1.2 HelloElasticsearch 2. 索引2.1 索引——创建2.2 索引——查询2.3 索引——删除 3. 文档3.1 文档——重构3.2…

GPU:使用gpu-burn压测GPU

简介:在测试GPU的性能问题时,通常需要考虑电力和散热问题。使用压力测试工具,可以测试GPU满载时的状态参数(如温度等)。gpu_burn是一个有效的压力测试工具。通过以下步骤可以进行测试。 官网: http://www…

Linux——终端

一、终端 1、终端是什么 终端最初是指终端设备(Terminal),它是一种用户与计算机系统进行交互的硬件设备。在早期的计算机系统中,终端通常是一台带有键盘和显示器的电脑,用户通过它输入命令,计算机在执行命…

PMBOK® 第六版 项目是什么

目录 读后感—PMBOK第六版 目录 项目定义 定义:项目是为创造独特的产品、服务或成果而进行的临时性工作。 项目的特征具备以下三点: 独特性:独一无二,无法简单重复过去的做法。 临时性:项目有明确的起点和终点&…

(22408)武汉大学计算机专硕初试备考经验贴

首先谈一下,写这篇文章的初衷。 我相信考武大计算机的同学都是优秀的,应该有自己的备考方法,所以这里并不介绍具体怎么备考某一科目。 计算机考研热度较高,备考不易,这里将自己备考过程中遇到的问题,分享…

人工智能|推荐系统——推荐大模型最新进展

近年来,大语言模型的兴起为推荐系统的发展带来了新的机遇。这些模型以其强大的自然语言处理能力和丰富的知识表示,为理解和生成复杂的用户-物品交互提供了新的视角。本篇文章介绍了当前利用大型语言模型进行推荐系统研究的几个关键方向,包括嵌入空间的解释性、个性化推荐的知…

中国人工智能奠基人张钹院士:走进“无人区” 探索人工智能之路

4月23日,中国人工智能奠基人、清华大学计算机系教授、中国科学院院士张钹在“人文清华”讲坛作专题分享。在2小时的直播中,张钹以《走进“无人区” 探索人工智能之路》为主题,回顾人工智能的发展历程,为大家解读ChatGPT的意义&…

新手Pytorch入门笔记-概念入门

文章目录 1.主干权重和模型权重2.超参数2.1 ReLU(inplaceTrue)2.2 交叉熵损失CrossEntropyLoss 3.反向传播4.优化器4.1 optimizer.zero_grad()5.卷积6.Batch Normalization7.U-Net结构 这章节比较枯燥,都是大段文字 1.主干权重和模型权重 主干权重(Back…

GateWay具体的使用之全链路跟踪TraceId日志

1.创建全局过滤器,在请求头上带入traceId参数,穿透到下游服务. package com.by.filter;import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.jwt.JWTValidator;…

vue做导入导出excel文档

系统中经常会遇到要实现批量导入/导出数据的功能,导入就需要先下载一个模板,然后在模板文件中填写内容,最后导入模板,导出就可能是下载一个excel文件。 1、导出 新建一个export.js文件如下: import {MessageBox,Mes…

【Git】分支管理的基本操作

文章目录 理解分支分支的本质主分支创建分支切换分支合并分支fast-forward模式删除分支合并冲突问题 理解分支 分支管理是git的一个核心功能。在git中,分支是用来独立开发于某个功能或者修复某个bug的一种方式。就像是《火影忍者》中的鸣人使用分身去妙蛙山修炼&am…

ansible-copy用法

目录 概述实践不带目录拷贝带目录拷贝 概述 ansible copy 常用用法举例 不带目录拷贝,拷贝的地址要写全 带目录拷贝,拷贝路径不要写在 dest 路径中 实践 不带目录拷贝 # with_fileglob 是 Ansible 中的一个循环关键字,用于处理文件通配符匹…

【强训笔记】day4

NO.1 思路&#xff1a;利用滚动数组&#xff0c;迭代一个Fibonacci数列&#xff0c;给出三个值进行循环迭代&#xff0c;当n<c时&#xff0c;说明n在b和c之间&#xff0c;这里只需要返回c-n和n-b的最小值就可以了。 代码实现&#xff1a; #include<iostream>using n…

BLIP-2论文精读

概述 由于大规模模型的端到端训练&#xff0c;视觉和语言预训练的成本越来越高&#xff0c;BLIP-2是一种通用且高效的预训练策略&#xff0c;可以从现成的冻结的预训练图像编码器和冻结的大型语言模型引导视觉语言预训练。 模型主体框架 BLIP-2采用了一个轻量级的查询转换器Q…

【Docker】Docker的网络与资源控制

Docker网络实现原理 Docker使用Linux桥接&#xff0c;在宿主机虚拟一个Docker容器网桥(docker0)&#xff0c;Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址&#xff0c;称为Container-IP&#xff0c;同时Docker网桥是每个容器的默认网关。因为在同一宿主机内…