【我在异世界学Linux】认识冯诺依曼体系结构

news2024/11/17 3:30:38

文章目录

    • 一、冯诺依曼体系结构是什么
    • 二、冯诺依曼为什么要这么设计?
    • 三、内存是怎么提高效率的呢?
    • 解释:程序要运行,必须加载到内存
    • 四、和QQ好友聊天的时候,数据是怎么流向的?

一、冯诺依曼体系结构是什么

image-20230102112828444

冯诺依曼体系结构简单描述了一个计算机内部的主要构成。

主要由5部分构成:输入设备、输出设备、存储器、运算器、控制器

​ 其中运算器和控制器在CPU中

输入设备:键盘、摄像头、话筒、磁盘、网卡…

输出设备:显示器、音响、磁盘、网卡…

运算器:算术运算、逻辑运算

控制器:CPU是可以相应外部事件的,协调外部就绪事件(如拷贝数据到内存,控制输出到哪…)

存储器:存储器就是内存

冯诺依曼体系结构就是 冯诺依曼提出的一个计算机的硬件体系结构,并且该结构一直沿用至今,绝大部分计算机如常见的笔记本、公司的服务器都由这个基本的硬件体系构成。

二、冯诺依曼为什么要这么设计?

早期的计算机主要就是用来帮助人们解决计算问题的。而要解决问题,就要有数据的输入,计算就要涉及到数据的处理,最后把得到的结果显示出来就叫做输出。

那么有人会问,如果照这么说,直接设计成:输入设备 -> 中央处理器 -> 输出设备 不就行了吗?为什么加一个存储器,这不是自己设计复杂了吗?如下图,数据输入之后,直接在中央处理器中进行 算术运算或者逻辑运算,得到的结果直接输出

image-20230102114540459

这里存在一个问题,我们直到CPU的访问速度是非常快的!一般来说

CPU 或 寄存器 >> 内存 >> 磁盘/SSD >> 光盘 >> 磁带

任意两个之间都是数量级的差距!

并且根据木桶原理,一个木桶盛水的多少,并不是取决于最高的那块木板,而是最短的那块木板。

image-20230102115148313

所以这样设计的话,外设显然拖慢了中央处理器的节奏,导致整个计算机的运行效率取决于外设的效率。

内存可是个老好人,他在CPU和外设之间,速度既不得罪这边,也不得罪那边。正好可以帮助CPU和外设牵线搭桥~

另一方面,有了内存,可用的操作空间就大了,可以在内存中设置一些软件,提升硬件的整体效率!(操作系统)

第三点,考虑到经济原因,你总不能把你所有的存储介质都设置成寄存器吧,除非你非常有钱!大部分人其实还是倾向于经济实惠的东西。而内存的造价还算中等,一块4/8G的内存条加入,在操作系统等软件的支持下,整体的效率并不比寄存器慢哪去!

因此冯诺依曼体系结构就这样新鲜出炉了!

  • 数据首先输入到外设中,如果要被CPU读取,计算机会先把外设中的数据一部分加载到内存,然后CPU直接去内存中读取数据;
  • 当处理完数据之后,CPU直接把数据再写回内存,最后内存再把数据更新到外设。

三、内存是怎么提高效率的呢?

经过上面的结论,数据要被CPU读取,首先要从外设加载到内存,然后CPU直接去内存中读取数据。但是数据要先到内存再到CPU这个过程是怎么实现的呢?难道每一次CPU要读取数据都要通知一声内存,让内存去加载一部分数据吗?

外设的数据怎么加载到内存的?

这里其实就涉及到一个神秘的管理者了:操作系统

其实硬件软件是无法分开的,某些硬件的设计是为了兼容软件,软件的设计也是为了提高硬件的效率。因此,操作系统的作用就发挥了,操作系统会把可能用到的数据提前加载到内存中,这样CPU就直接可以去内存中找数据啦

每次CPU读取数据都要通知内存去提前加载外设数据吗?

这里涉及到一个原理:局部性原理,还记得我们说内存是连续的,一般来说,加载某些数据的时候,其周围的数据也会被加载进来。并且CPU访问数据和内存加载数据是可以一起进行的。因此CPU读取数据的时候,大部分情况可能用到的数据都被加载到内存了!

解释:程序要运行,必须加载到内存

1、 CPU读取数据,都是从内存中读取

2、 CPU要处理数据,需要先讲外设中的数据加载到内存

而写好的程序也是数据啊,并且写好的程序(.exe)是存放在磁盘的!如果要运行必须要加载到内存,这是体系结构的特点决定的

其中数据从外设加载到内存,就是I

数据从内存输出到外设,就是O

这就是IO

四、和QQ好友聊天的时候,数据是怎么流向的?

我们不考虑网络

image-20230102124319555

在小明给小红发消息的过程中,输入设备就是键盘,输出设备就是网卡

小红的电脑中,输入设备就是网卡,输出设备就是显示器

当小明给小红在输入框中输入消息之后,就已经被写入了内存,然后当小明点击发送的时候,CPU读取内存中的数据,对消息进行打包(如指定发送到哪里),然后输出到网卡。网卡通过网络发送给小红。

小红的网卡作为输入设备,接收到消息,然后将消息加载到内存,CPU去内存读取数据,把消息解包,得到消息里的内容,重新写回内存。内存再把消息输出到显示器,这样小红就可以看到小明发送的消息了~

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

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

相关文章

教你使用Java开发一款简单的扫雷小游戏 附实例代码

相信很多小伙伴都知道也玩过扫雷游戏,本篇文章将和大家分享一篇关于如何使用Java来实现一款简单的扫雷小游戏,这有助于大家对于Java相关知识的学习有一定的参考价值,下面是详情内容。 简介 学了几周的Java,闲来无事,写个乞丐版的扫雷,加强一下Java基础知识。 编写过程…

树莓派4b串口配置

从树莓派的相关资料我们可以看到,树莓派有两个串口可以使用,一个是硬件串口(/dev/ttyAMA0),另一个是mini串口(/dev/ttyS0)。硬件串口有单独的波特率时钟源,性能好,稳定性强&#xff…

【Java寒假打卡】Java基础-接口

【Java寒假打卡】Java基础-接口接口的介绍接口的定义和特点接口中的成员特点JDK8 接口中的成员特点JDK9 接口中的成员特点类和接口的关系接口的介绍  当一个类中的所有方法都是抽象方法的时候,我们就可以将其定义为接口,接口也是一…

Redis 缓存数据库

目录Redis 高可用方案高可用概念Redis 高可用的实现方案1、主从模式2、哨兵模式3、集群模式Redis 高可用方案 高可用概念 高可用(High Availability,既HA),指的是通过尽量缩短日常维护操作和减少突发系统奔溃锁导致的停机时间来提…

Vagrant 安装 Centos7

首先准备VirtualBox, 当前实验版本为:7.0.4-154605-Win; 再次下载Vagrant windows版本:当前实验版本:vagrant_2.3.4_windows_i686 如果安装VirtualBox过程中提示缺少:Microsoft Visual C 2019 Redistributable &…

MySQL索引概述

索引的英文名叫 index 在数据库是一种帮助MySQL高效获取数据的数据结构 而且是一种有序的数据结构 在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级找…

公钥基础设施 时间戳规范测评

声明 本文是学习信息安全技术 公钥基础设施 标准符合性测评. 下载地址而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 公钥基础设施 时间戳规范测评 时间戳的产生和颁发 申请和颁发方式 测评依据见GB/T 20520—2006中6.1的内容。 开发者应提供文档…

2.0、Linux-基础了解

2.0、开机关机和基本目录介绍 开机登录: 开会机会启动许多程序;他们在Windows叫做 "服务" ,在 Linux 中叫做 "守护进程"(daemon); 开机成功后,他会显示一个文本登录…

Tailoring Self-Supervision for Supervised Learning-读后总结

Tailoring Self-Supervision for Supervised Learning摘要文章思路一些值得读的参考文献和技术:值得一读的高引文献可视化技术摘要 近期,在监督学习中部署一个合适的自监督学习来提高监督学习的性能是一个具有前景的方式。然而,因为之前的前…

MP中定义全局常量用于xml的判断,List<String> list = new ArrayList<>(Arrays.asList(“test“));

,1.普通方式 mybatis-plus.configuration.variables.secretFilterSwitch0 yml的方式 mybatis: mapper-locations: classpath:mapper/*.xml type-aliases-package: com.demo configuration: variables: userId: 456132465 userName: 李四 配置完成后在代…

人文社科类文献去哪些数据库检索下载

查找下载人文社科类文献的数据库大盘点: 1、文献党下载器(wxdown.org) 大型文献馆,几乎整合汇集了所有中外文献数据库资源,可附带权限进入文献数据库查找下载文献,覆盖全科包括查找下载人文社科类文献的众…

【C和数据结构-5+1】习题第一天

文章目录一.选择题1.整型在内存中的存储2.大小端字节序3.指针的大小4.形参一级指针或二级指针的区别5.二维数组传参降维成数组指针二.编程题1.自守数2.质数判断一.选择题 1.整型在内存中的存储 猜一猜打印的结果? int main() {char a 101;int sum 200;a 27; sum a;printf…

2023年,无所谓,我会出手整合SSM

目录 一、简介: 二、Maven构建框架: 三、依赖配置 四、web.xml配置文件 五、创建SpringMVC的配置文件 六、Spring.xml配置环境 七、其他配置 八、Mapper.xml配置文件: 九、mybatis-config.xml配置文件: 十、log4j.xml日志…

Dropout详解:Dropout解决过拟合问题

Dropout 是一种能够有效缓解过拟合的正则化技术,被广泛应用于深度神经网络当中。但是被 dropout 所丢掉的位置都有助于缓解过拟合的吗? 中山大学 和 Meta AI 在 NeurIPS 2022 接收的论文在研究了注意力中的 dropout 后发现:不同注意力位置对过…

C++string类介绍

目录 一、介绍 二、string类对象的构造 string类有如下构造方法: 类对象的容量操作 类对象访问及遍历 string对象的修改操作: std::string::insert std::string::erase std::string::c_str std::string::find std::string::substr 一、介绍…

Linux学习笔记 超详细 0基础学习(上)

定义 linux是一个操作系统,与Windows、macos一样,是常见的操作系统之一,一般服务器会部署在Linux操作系统中,稳定应用广泛,Android系统是基于Linux内核的,所以了解Linux相关知识对于程序员来说是很重要的。…

人脸AI识别实战:用AI生成了这些人一生的样貌变化 | 附源码

这是来自斯坦福和华盛顿大学研究员发表的论文,提出了基于GAN的新方法,仅需要一张照片即可生成一个人从小时候到老了的样子。 论文:https://arxiv.org/abs/2003.09764 项目地址: https://github.com/royorel/Lifespan_Age_Trans…

windows上安装并使用exiftool修改图像exif信息

使用exiftool可以对图像的exif信息进行读取、修改、写入等操作。在linux系统上可以直接通过命令行安装,非常方便。但是在windows上,一开始我看了这篇博客,感觉里面写的还挺详细的,就跟着做了一下。里面是说要先安装perl&#xff0…

特斯拉突飞猛进背后带给自己的深思

引言 2013年开始接触汽车行业,那时候所做的事情也是跟着导师去解析整车CAN信号(Message),也是从那时才知道车身现场总线——CAN总线。在那时候汽车给自己的感觉还是整车成本所占比重是机械高,软件比重低的可怜&#x…

【目标检测】语义分割之FCN算法学习

目录:FCN一、CNN与FCN的比较二、FCN上采样理论讲解2.1 双线性插值上采样2.2 反卷积上采样2.3 反池化上采样三、FCN的过程四、跳级结构一、CNN与FCN的比较 CNN:在传统的CNN网络中,在最后的卷积层之后会连接上若干个全连接层,将卷积…