当前位置: 首页 > news >正文

冯.诺伊曼体系

目录

冯.诺伊曼体系结构

为什么要有存储器(内存)

运算器和控制器

实例解剖


冯.诺伊曼体系结构

我们常见的计算机,如笔记本。以及我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系结构。

冯诺依曼把计算机分为如下几个部分:

  • 输入设备:键盘、话筒、摄像头、磁盘、网卡......
  • 输出设备:显示器、音响、磁盘、网卡、显卡.....
  • 存储器:指的就是内存
  • 运算器+控制器(CPU、中央处理器)

为什么要有存储器(内存)

按照常规思路,计算机只要把数据通过输入设备交给CPU进行处理,处理完后再通过输出设备显示结果,整个过程中似乎并不牵涉内存,那为什么计算机中还要存在内存呢??

下面我们将要从两个角度分析这个问题:

一、技术角度

  • 在我们的CPU中存在寄存器,寄存器就是一些存储单元,并且其运算速度是非常快的,在我们计算机中:CPU运算速度>寄存器速度>L1~L3cache>内存>外设(磁盘)>光盘磁带。因此我们知道输入输出设备的速度相较于CPU来说是非常慢的,如果我们将数据通过输入设备交给CPU处理,并且处理后通过输出设备显示结果,那么就产生了木桶效应,大大降低了计算机的性能。

  • 由此我们得知决定计算机性能效率的并非是CPU,而是由输入输出这两个外设决定的,这就导致了计算机的性能效率非常的差,所以我们不能只把外设和CPU进行对接起来,为了提高计算机性能效率,我们就在输入输出设备和CPU之间添加存储器来改变这一现状:

  • 从数据角度看,外设不和CPU进行直接交互,而是和内存进行交互,CPU也是如此。添加完存储器这个媒介后解决效率低下的原因如下:1、从硬件角度,存储器的存在更好的适配了外设和CPU速度不均衡的弊端。2、因为存储器的存在,让软件的存在有了更好的生存空间和价值。

⭐:内存在我们看来,就是体系结构的一个大的缓存,用于适配外设和CPU速度不均衡的问题。

二、成本角度

  • CPU中含有寄存器,寄存器和内存一样具有存储数据的能力,并且寄存器的运算速度还快,那我们为什么不用CPU的寄存器来充当内存呢??这样我们就不需要存储器了。从技术层面来讲这样确实可以,但是我们并没有考虑成本,成本大小:寄存器>>内存>>磁盘(外设)。如果我们用寄存器充当内存作用,那么一台电脑的成本可能就是几十个W。而计算机要想成为大众产品,就必须满足便宜有效的特点。因此我们使用内存是最优选,既适配了速度不均的问题,又达到了经济实惠。

⭐:使用内存可以达到用较低的成本来获取较高的性能的特点。

如何理解软件程序在运行时必须加载到内存

我们知道代码编译好后要运行,运行就必须要先加载到内存,但是为什么要先加载到内存呢?

  • CPU和存储器进行交互的过程中需要不断读取数据,而这些数据必须是在内存里面,因为CPU只和内存进行打交道,对于我们编译好的.exe程序文件,文件编译好后是在磁盘这个外设上面,所以CPU会要求你把程序加载到内存,从而实现交互。而这个操作是操作系统帮你完成的,会自动加载到内存上面。

⭐:体系结构稳定,cpu只和存储器(内存)打交道,要先把数据加载到内存。

运算器和控制器

运算器:

  • 计算机的计算方式有两种:算术运算(+、-、*/....)+逻辑运算(&&逻辑与、||逻辑或.....) 

控制器:

  • 控制器也是一个硬件,虽然外设和中央处理器在数据上并没有交互,但在其他方面还是有交互的。我们在前面得知输入设备会将数据预装到内存里面,从而和cpu进行交互,但是我们怎么知道所有数据都被预装载了呢?针对没有预装载的数据,中央处理器就会和外界进行交互协商,而这个操作就是由控制器来进行完成,从而将数据尽可能加载到内存或者把数据从内存加载到外设。

⭐:几乎所有的硬件,只有被动的完成某种功能,不能主动的完成某种功能,一般都需要配合软件进行完成。(OS+CPU)

实例解剖

当我们用QQ和我们的朋友聊天时,聊天数据是怎么流动的呢??

我们的电脑用的都是冯诺依曼体系,所以通信的本质就是从一个体系结构到另外一个体系结构,你从键盘上输入数据,随后数据预装载到内存中,CPU从内存中获取到消息后对其进行封装打包, 然后再将其写回内存,在内存中把数据刷新到外设(显示器),同样也刷新到网卡上,网卡在经过网络,此时数据就传到了你朋友的网卡上,对于你朋友来说网卡就充当输入设备,再把数据加载到内存,此时CPU进行数据的解包并交给存储器,此时再把存储器中的数据刷新到你朋友的外设即显示器上。

相关文章:

  • wordpress远程ftp/seo培训公司
  • 在百度里面做个网站怎么做的/视频广告
  • 做网站建设的网站/苏州网站建设费用
  • 做铝板的网站/百度首页优化排名
  • 个人网站需要备案/没广告的视频播放器app
  • 杭州企业网站开发/站内推广的方法
  • 从最基础的角度认识 kotlin协程
  • 二十七、《大数据项目实战之用户行为分析》Hive分析搜索引擎用户行为数据
  • 【网站】比较知名的大型公司官网清单可以收藏关注一下,欢迎您来补充
  • pytorch 神经网络特征可视化
  • 计算机毕设选题推荐基于SSM校园博客交流网
  • 牛客竞赛每日俩题 - Day2
  • 安卓SQLite常见错误
  • 【Redis之Hash类型的详解Hash类型中常用命令的实践】
  • C++实现简易Docker容器——第一讲基础入门
  • 【MATLAB教程案例24】基于matlab的有参图像质量评价仿真与分析,包括MSE,PSNR,NK,AD,SC,MD,NAE
  • 开发板移植RTOS操作系统,RTOS操作系统适配开发板整理大全
  • LALR(1)分析方法