冯诺依曼体系结构

文章目录

  • 一.冯诺依曼体系结构的主要组成部分
    • 1.输入设备 & 输出设备
    • 2.存储器
    • 3.运算器 & 控制器
  • 二.为什么这么设计
  • 三.现实案例

一.冯诺依曼体系结构的主要组成部分

当代的计算机,本质上都是一堆硬件的集合(CPU、内存、磁盘、显卡等),这些硬件并不是毫无章法的堆放在一起,而是以冯.诺依曼体系结构来构成计算机的基本单元。

在这里插入图片描述

1.输入设备 & 输出设备

在计算机中,都是以二进制形式进行交互,我们是无法直接与内存或者CPU交互的,所以需要有输入设备,而计算机将数据处理之后,也是二进制形式,所以也有了输出设备。

  • 输入设备:键盘、鼠标、摄像头、磁盘、网卡等
  • 输出设备:显示屏、音响、磁盘、网卡等

这两个都是属于计算机的外设。

2.存储器

一般来说,存储器指的是内存和外存,但是对于CPU而言,类似于磁盘、U盘这样的外存,是属于输入输出设备的,所以这里的存储器指的是内存

3.运算器 & 控制器

在计算机,我们从外设将输入导入到内存中,然后再由运算器对我们的数据进行计算(算数运算、逻辑计算)

而什么时候将数据写入存储器,再又什么时候将数据导入中央处理器,或者又什么时候将处理完毕的数据传给存储器,再由存储器交给输出设备,这些过程都需要有硬件来进行控制,而控制器就是做这些工作。

这五大单元都各种有着各种的功能,都是独立的个体,然后用系统总线或I/O总线连接起来让其能交互,这就是冯.诺依曼结构的主要组成部分

二.为什么这么设计

在这里插入图片描述
通过存储器金字塔可以看出,离cpu越远,存储的容量越来大,效率越来越低,我们的输入输出设备,就处于金字塔的底层,他们的效率和cpu的效率完全不在一个级别,如果让他们直接和cpu交互,那势必会拖慢cpu的效率,从而我们计算机的整体效率就会以输入输出设备为主了,导致计算机的效率就会十分低下。

在此情况下,引入了一个比输入输出设备快,比cpu稍慢的内存,让输入设备先把数据读取到内存当中,然后cpu再从存储器拿数据,运算器将数据处理完毕之后,在交给存储器,最后再由存储器交给输出设备。那这样就能适配硬件层面上cpu和外设的速度差。

如果没有存储器,cpu直接对接输入输出设备,这种工作方式就是串行,一个环节影响着一个环节
有了存储器之后,数据可以预加载到内存中,要计算的时候就直接去内存拿数据即可,那这样就能加载数据和计算数据并行,从而在一定程度上提高效率。在这个过程中,存储器可以看成一个硬件级别的缓存空间。

那为何不将所有的存储设备造成寄存器级别的呢?

这在理论上可行,但势必会将计算机的造价变得十分高,过高的价格,那就不会被普及,不便于计算机的整体发展。有了内存的存在,就能以较小的成本,造出满足我们日常需求的计算机。

这就好比我们现在开的小汽车,基本就是烧油或者电驱动,这些每隔一段时间就要加油或者充电。要是用上核动力,那岂不美哉?那为何不普及呢?
这在技术层面是可以实现的,但是成本巨大,安全性不高,不利于小汽车的普及。

有了上述理论知识,就可以理解为什么程序要运行,必须先从磁盘加载到内存上当中

我们的代码在输入设备里面,要运行需要cpu的计算,这个过程就必须经过内存,这是冯诺依曼体系结构规定

所有的软件都必须遵守硬件结构,硬件属于计算机下限和边界,软件是上限,不管软件多牛,都得遵守规定!

三.现实案例

假设我们使用微信和别人聊天,这整个数据是如何流动的呢(不考虑网络和软件)?

这两台计算机,都是冯诺依曼体系结构,所有可以看作两个冯诺依曼体系结构交互。

在这里插入图片描述
当我们要给对方发信息的时候,这时候的输入设备就是键盘

输入的内容加载到内存,发送的消息里面不仅仅有消息,还有是谁发送的消息、发送消息的时间等,这些数据经过cpu打包计算之后再写回内存,最后发送在输出设备里面。

这里的输出设备不仅仅是显示器,本质上是发送到了网卡当中,显示器只是顺便的

这样我们的消息就发送出去了,那这时候,对方的输入设备就是网卡,输入设备将数据加载到内存,经过cpu的处理(解包、解压)再返回内存,最后由内存发送给输出设备,这时候对方就能看到我们所发送的消息


再假设,我们平时可能要发送一些文件给对方,这个文件是存储在磁盘当中,当我们拖拽这个文件发送的时候,这时候的输入设备就是磁盘

再经过这个体系发送给对方,当对方收到之后,这个文件并不是打开的,只是有一个图标,需要对方接收下载才能查看

如果对方当时并没有接收,第二天才接收,这时候这个文件还是存在的,这说明这个文件并不是在内存或者cpu,因为内存或者cpu属于掉电易失性存储。所以这个文件其实是在我们的磁盘上,这时候磁盘就属于输出设备

这整个过程,就是冯诺依曼体系结构


本文到此结束,码文不易,还请多多支持!!!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】命名空间 ( namespace )

目录搁这 什么是命名空间命名空间的作用如何定义命名空间命名空间的种类如何使用命名空间内的成员作用域限定符命名空间展开命名空间全部展开命名空间部分展开 总结 什么是命名空间 命名空间是一种用来避免命名冲突的机制,它可以将一段代码的名称隔离开&#xff0c…

纯CSS实现的卡片切换效果

纯CSS实现的卡片切换效果 无需JS就可以实现限于纯静态页面产品展示不需要轮播,自动切换 示例代码 <template><div class"example-css-tab"><div class"container dwo"><div class"card"><input type"radio"…

【实战总结】SpringMVC架构升级SpringCloudAlibaba

升级目标 SpringMVCDubboZookeeper分布式架构改为Spring Cloud Alibaba微服务 技术框架:Spring Boot 2.7.2、Spring Cloud 2021.0.3 & Alibaba 2021.0.1.0 容器:Tomcat 9.0.65 JDK:1.8 配置中心:Nacos 2.0.4 消息队列:RocetMQ 4.9.3 配置中心:Apollo 11.0 缓存: Redis 4.0…

【C语言】杨氏矩阵中寻找元素

题目名称&#xff1a; 杨氏矩阵 题目内容&#xff1a; 有一个数字矩阵&#xff0c;矩阵的每行从左到右是递增的&#xff0c;矩阵从下到上递增的&#xff08;杨氏矩阵的定义&#xff09;&#xff0c;请编写程序在这样的矩阵中查找某个数字是否存在。 形如这样的矩阵就是杨氏…

chatglm微调

chatGML 看到 【【官方教程】ChatGLM-6B 微调&#xff1a;P-Tuning&#xff0c;LoRA&#xff0c;Full parameter】 【精准空降到 15:27】 https://www.bilibili.com/video/BV1fd4y1Z7Y5/?share_sourcecopy_web&vd_sourceaa8c13cff97f0454ee41e1f609a655f1&t927 记得看…

一文了解Docker之网络模型

目录 1.Docker网络 1.1 Docker网络模型概述 1.2 Docker网络驱动程序 1.2.1 host模式 1.2.2 bridge模式 1.2.3 container模式 1.2.4 none模式 1.3 Docker网络命令示例 1.3.1 创建一个自定义网络 1.3.2 列出所有网络 1.3.3 连接容器到网络 1.3.4 断开容器与网络的连接…

SpringCloud(三)LoadBalancer负载均衡

一、负载均衡 实际上&#xff0c;在添加LoadBalanced注解之后&#xff0c;会启用拦截器对我们发起的服务调用请求进行拦截&#xff08;注意这里是针对我们发起的请求进行拦截&#xff09;&#xff0c;叫做LoadBalancerInterceptor&#xff0c;它实现ClientHttpRequestIntercep…

Android 系统的分区介绍

由于Android系统采用Linux架构&#xff0c;所以Android的系统分区可以类比同样采用Linux架构的操作系统&#xff08;如Windows&#xff09;。 Android系统分区分类 现在一般常见的Android分区方式共有三种&#xff0c;在不同的Android系统版本上会采用不同的分区方式。 1、传…

Postman接口自动化之postman脚本编写

这是之前搞的接口自动化方案&#xff0c;已经在业务测试中实现了使用postman编写接口脚本&#xff0c;通过GitHubJenkinsemail html report实现了接口自动化&#xff0c;现在分块整理一下。 postman脚本编写 1、创建集合 和 目录&#xff1a; 一条业务线下的接口可以放到一个…

sonarqube安装并配置CI/CD

sonarqube安装使用 目录 简介效果(配置在下面查看)官方文档环境准备配置compose-sonarqube.yml启动登录集成Gitlab 获取私钥sonarqube配置gitlab查看项目 配置 手动方式Gitlab CI/CD 自动检测 简介 SonarQube是一个开源的代码质量管理平台&#xff0c;用于对代码进行静态代…

【数学建模】——相关系数

第一部分&#xff1a;皮尔逊相关系数的计算以及数据的描述性统计 本讲我们将介绍两种最为常见的相关系数&#xff1a;皮尔逊person相关系数和斯皮尔曼spearman等级相关系数。它们可以用来衡量两个变量之间的相关性的大小&#xff0c;根据数组满足的不同条件&#xff0c;我们要选…

Monocular 3D Object Detection with Depth from Motion 论文学习

论文链接&#xff1a;Monocular 3D Object Detection with Depth from Motion 1. 解决了什么问题&#xff1f; 从单目输入感知 3D 目标对于自动驾驶非常重要&#xff0c;因为单目 3D 的成本要比多传感器的方案低许多。但单目方法很难取得令人满意的效果&#xff0c;因为单张图…

QT之智能指针

如果没有智能指针&#xff0c;程序员必须保证new对象能在正确的时机delete&#xff0c;四处编写异常捕获代码以释放资源&#xff0c;而智能指针则可以在退出作用域时(不管是正常流程离开或是因异常离开)总调用delete来析构在堆上动态分配的对象。 来看看一个野指针例子 程序将会…

java学习路程之篇三、知识点、类、模块、项目、操作、下载、安装、IDEA

文章目录 1、IDEA开发工具2、IDEA的下载和安装3、IDEA中的第一个代码4、IDEAZ中的类、模块、项目的操作 1、IDEA开发工具 2、IDEA的下载和安装 3、IDEA中的第一个代码 4、IDEAZ中的类、模块、项目的操作

【计算机视觉 | 图像分类】arxiv 计算机视觉关于图像分类的学术速递(7 月 17 日论文合集)

文章目录 一、分类|识别相关(11篇)1.1 Multimodal Distillation for Egocentric Action Recognition1.2 Dual-Query Multiple Instance Learning for Dynamic Meta-Embedding based Tumor Classification1.3 Interactive Spatiotemporal Token Attention Network for Skeleton-…

基于ClickHouse解决活动海量数据问题 | 京东云技术团队

1、背景 魔笛活动平台要记录每个活动的用户行为数据&#xff0c;帮助客服、运营、产品、研发等快速处理客诉、解决线上问题并进行相关数据分析和报警。可以预见到需要存储和分析海量数据&#xff0c;预估至少几十亿甚至上百亿的数据量&#xff0c;所以需要选择一款能存储海量数…

会议音响系统麦克风阵列波束形成算法C语言实现

一 应用麦克风阵列波束成形算法做的项目产品 二 麦克风波束形成技术应用领域? 麦克风波束形成技术是一种利用多个麦克风阵列来实现声音定向捕捉和增强的技术。通过对多个麦克风信号进行处理和合成,可以使麦克风系统在特定方向上具有更高的灵敏度和抑制非期望方向上的噪…

机器学习(13)--支持向量机

目录 一、支持向量机概述 二、Sklearn中的SVM概述 三、线性SVM损失函数 四、sklearn中进行可视化 1、导入模块 2、实例化数据集&#xff0c;可视化 3、网格点制作 4、建立模型并绘制决策边 目录 一、支持向量机概述 二、Sklearn中的SVM概述 三、线性SVM损失函数 四…

机器学习技术(三)——机器学习实践案例总体流程

机器学习实践案例总体流程 文章目录 机器学习实践案例总体流程一、引言二、案例1、决策树对鸢尾花分类1.数据来源2.数据导入及描述3.数据划分与特征处理4.建模预测 2、各类回归波士顿房价预测1.案例数据2.导入所需的包和数据集3.载入数据集&#xff0c;查看数据属性&#xff0c…

四个按键控制led的四种变化(按键控制led)(附源码)

文章目录 一、实验任务二、系统框图三、代码实现四、引脚分配五、总结 一、实验任务 使用开发板上的四个按键控制四个LED灯。按下不同的按键时&#xff0c;四个LED灯显示不同效果。本实验是在EP4CE6F17C8开发板上实现&#xff0c;仿真请用modelsim Altera 二、系统框图 三、代…