文章目录

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

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

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

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

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

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

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

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

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

存储器:存储器就是内存

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

这就是IO

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

我们不考虑网络

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

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

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

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

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

  1. 【我在异世界学Linux】Shell外壳程序以及权限的理解(粘滞位、umask)

    文章目录 shell外壳程序 用户为什么不是直接使用操作系统 用户如何访问的操作系统 Shell外壳程序是什么 外壳程序存在的意义 查看当前使用的shell外壳程序 权限 Linux下的用户 用户切换 ...

  2. 【我在异世界学Linux】认识操作系统 | 理解管理 | 系统调用(System Call)

    文章目录 什么是操作系统 是什么 为什么要设计操作系统? 操作系统是怎么进行管理的 系统调用和库函数 | 理解操作系统内部 什么是操作系统 是什么 每个计算机系统都包含一个基本的程序集合,称之为操作系 ...

  3. 【Linux】冯诺依曼体系结构、操作系统及进程概念

    文章目录 一.冯诺依曼体系结构 二.操作系统(OS) 三.系统调用和库函数 四.进程 4.1概念 4.2描述进程-PCB 4.3查看进程 4.4与系统相关的系统调用 4.5系统调用获取进程标示符 4. ...

  4. 【看表情包学Linux】冯诺依曼架构 | 理解操作系统 | 基于 Pintos 实现新的用户级程序的系统调用

  5. 【Linux】冯诺依曼体系结构

    目录 一.硬件构成 二.数据流动 一.硬件构成 我们常见的计算机,如笔记本.我们不常见的计算机,如服务器.大部分都遵守冯诺依曼体系. 冯诺依曼体系在硬件结构上分为以下几个部分: 输入设备:包括键盘,鼠 ...

  6. 【Linux】冯诺依曼体系结构和操作系统概念

    文章目录

  7. 【Linux】冯诺依曼体系结构与操作系统概念理解

  8. 【看动漫学编程】程序员在异世界生个娃 第2篇:外挂已准备就绪

    前言 作者文笔比较水,还请见谅. 以下内容还将使用视频动态漫画表现,剪辑完将会贴出链接. 小说剧情为剧情需要,过渡到知识点,部分篇幅可能没有技术知识点还望谅解. 由于没有经费支持,所以画出来的东西是我 ...

  9. 【看动漫学编程】程序员在异世界生个娃 第1篇:太极村

    前言 作者文笔比较水,还请见谅. 以下内容还将使用视频动态漫画表现,剪辑完将会贴出链接. 小说剧情为剧情需要,过渡到知识点,部分篇幅可能没有技术知识点还望谅解. 由于没有经费支持,所以画出来的东西是我 ...

最新文章

  1. HACKER'S DELIGHT[算法心得]笔记
  2. python基础语法 第0关print-徐州鼓楼高校邦数据科学通识课【Python基础语法】答案...
  3. 圣杯布局简单结构代码!
  4. Eboot.bib中0x30000000到0x300020000内存的作用
  5. 双机调试在线下载符号文件
  6. MySQL使用concat实现连接
  7. vfp操作excel排序_中招计算机信息技术考试训练|Excel操作题一|排序和筛选
  8. 霍因科技获首届全国信创产业生态创新奖
  9. 项目组最重要的三个角色
  10. 定额中计算机主机工作内容,计算机核定定额的业务操作指引.doc
  11. lombok slfj 中_Lombok快速入门
  12. MapGIS注记文字无损转入ArcGIS软件
  13. Raid控制器-megacli 命令简易使用介绍
  14. 工业互联网+5G 发展策略研究
  15. 算法创作|随机出10道题并计算正确率问题解决方法
  16. WPS和Word段落文字5种对齐方式的功能、区别和用法详细解析
  17. BZOJ 4399: 魔法少女LJJ
  18. 【Linux】网络管理与相关应用
  19. Unity Networking开发多人联机射击游戏
  20. 20211213电子物证培训学习笔记

热门文章

  1. 基于深度学习的大脑性别差异分析
  2. 论文笔记1 | 使用CTC对湍流工业火焰进行瞬时三维重建
  3. Bootstrap的基本使用方法介绍
  4. stm32CubeMX+Proteus仿真OLED12864I2C
  5. CAD好用的是哪个版本?分享一个在线转换版本的方法
  6. 2020最新整理JAVA面试题附答案
  7. 51nod:1079 中国剩余定理(数学)
  8. TCP协议和TCP连接
  9. 无线网络攻防实战 WEP密钥如何被攻破的 图
  10. 《LRU Cache》