我的编程空间,编程开发者的网络收藏夹
学习永远不晚

【Linux】冯诺依曼体系结构

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

【Linux】冯诺依曼体系结构

目录

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

它是由如下及部分构成:

在这里插入图片描述

  • 这里的体系结构我们不考虑软件,只研究硬件

其中:

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

  • 计算机的本质是计算数据,要计算数据第一步是想办法把数据交给计算机,需要有对应的设备来采集相应的数据,这就需要使用输入设备

输出设备:显示器、磁盘、网卡、声卡、音箱等

  • 计算机的作用是服务用户,计算完数据后需要将数据输出给用户,这就需要输出设备

存储器:内存

CPU;运算器、控制器

  • 计算机的本质工作是计算,CPU就是用来计算的,这是必不可少的。

    比如我们今天买了一部手机,这个手机没有芯片,那也只能当作移到硬盘来用。

  • 注意:同种设备可能即使输入设备,也是输出设备

    如磁盘、网卡等,

    1. 内存需要从磁盘中读取数据(为什么不是CPU读取下面会讲),这时它是输入设备,CPU处理好的数据需要经由内存放入磁盘,这里它就是输出设备。
    2. 我们在聊天软件如微信、QQ聊天时,别人将信息通过网卡传给我们,这时本地的网卡对于我们就是输入设备,我们将信息通过本地的网卡传给别人,此时本地的网卡就是输出设备。
  • 存储器不是磁盘,是内存,之后会反复用到内存

1.内存和外设的速度

上面讲了冯诺依曼体系中输入设备、输出设备、CPU为什么存在,那为什么要有**存储器(内存)**呢?这是本文的一个重点。我们需要一一讲解。

我们必须先来简绍一个常识

  • 输入设备、输出设备我们通常称之为外围设备,简称:外设(这个说法很多,我们这里称之为外设)

外设和内存特点:

外设的速度非常的慢

内存的速度比外设快的多

举例:

以磁盘为例(磁盘我们经常会接触到),我们在网上分别去买磁盘和存储器,磁盘我们可以买到七八百G的磁盘,而要是去买存储器(内存),只能买到4G或8G的内存条。

我们知道,内存和磁盘都可以保存数据,磁盘这样的设备我们将数据存入后,就不会丢失,而内存却是”掉电易失“存储介质,当我们的电脑突然关机将电源切断(对内存不在供电),内存中的数据也就没了。但内存的价格却是要比磁盘贵的。

内存凭什么贵呢?就凭它”掉电易失“吗?

当然不是这样,原因如下

  1. 内存的优势就是存储数据快
  2. 它本身制造成本高

谁都知道计算机越快越好,那为什么不把磁盘换成内存,提高存储速度,就是因为它的成本高。

如果将磁盘换为大小相同的内存,一台电脑的售价就会暴涨,这不是一般人能够消费的,不利于电脑的销售(不利于资本家挣钱),所以现在的电脑其实是一个性价比产品。

磁盘还是在我们自己电脑上,速度就慢于内存,而其它的外设,如网卡,需要借助网路,数据的传输更是在千里之外,速度就更慢了,所以我们必须明确一点,外设的速度相比于其它设备非常的慢。

2.内存的意义

上面讲了内存的速度要比外设的速度快,很多人会有疑问,计算机中快当然好,我们可以快速的存储数据,但是内存是”掉电易失“的,而且价格高,意味着我们最后存储数据的位置依然是磁盘,是不是可以去掉存储器,将CPU和输入设备输出设备直接连接呢?如下面的简易模型

在这里插入图片描述

首先,这么做一定是可以的,也能创造出一个计算机来,但是,这么做是要付出代价的。

这里在简绍一个概念:

  • 在整个计算机中,内存还不是最快的,CPU以及CPU中的寄存器存储计算数据才是最快的。

    注意: 寄存器最快,也最贵,存储数据最少,计算机中的数据很多,寄存器用来存储当前需要CPU运算的数据,不能被替代。

我们可以这样看代码计算机中各设备的速度:CPU的工作速度是纳秒级,内存的速度是微妙级,外设是毫秒级

1秒 (s) =1000 毫秒 (ms) = 1,000,000 微秒 (μs) = 1,000,000,000 纳秒 (ns)

这时我们已经知道,外设的速度是很慢的,而CPU的速度非常快,这样的计算机我们就能参考木桶原理

一个木桶中可以存放多少水,不是由最长的那片木头决定的,而是由最短的那片木头决定的。

再来看一下计算机,CPU的速度非常的快,而外设的速度非常慢,那该计算机整体的速率就以外设为主。

有了这些知识,下面我们看一下本文的重点,分别来看一下计算机在有无内存的情况下的速率。

2.1无内存

CPU每次处理数据的大小是有限的,在没有内存的情况下,输入设备向CPU直接传入数据,CPU计算后再向输出设备传输数据,接着等待输入设备下一次的数据传入,计算机整体的速率就是外设的速率。

2.2有内存

铺垫: CPU每次处理数据的大小有限,内存具有存储数据的能力CPU的处理数据和内存加载数据可以同时进行

根据统计学原理,当一个数据被访问时,那么下一次有很大可能访问的就是周围的数据,所以当CPU需要处理一段数据时,内存会将该数据和周围的数据一同加载进来,在CPU处理数据的同时,内存仍在工作,那下次CPU就可以在内存中获取数据。

输出数据也是相同的,CPU处理完数据后将数据放入内存中,当输出数据需要时,在从内存中获取。

所以,此时计算机的速率就是内存的速率

相对于无内存的情况,有内存时的情况要快很多。这就是内存的意义。

3.冯诺依曼体系的理解

在这里插入图片描述

结合上面的知识,根据该图我们可以知道:

站在硬件和数据层面上,CPU与存储器相互传输数据,同时控制外设和存储器,告知需要处理的数据,汇总到存储器,在由CPU处理,处理后,返回给存储器,最后控制存储器存入外设。

总结:

  1. 在数据层面上,CPU不和外设直接沟通,而是直接和内存打交道
  2. 在数据层面上,外设只和内存打交道

这就是为什么,我们常听说,我们编写的C程序需要在运行先加载到内存。

因为CPU只和内存打交道,可执行程序就是一个文件,它放在磁盘中,需要先将其从外设中加载到内存,CPU才可以使其运行从而得到结果。在Windows中双击后即加载到内存,Linux中使用./后加载到内存。

这就是用硬件方案解释软件现象。

扩展:

  1. 我们经常说CPU当中有寄存器,实际上寄存器不仅在CPU中,在其它外设中也有寄存器。

    如:当我们敲击键盘时,键盘是先将获取到的内容存储在寄存器当中,然后通过寄存器将数据写入内存中。

  2. 在物理层面,各个硬件单元之间是通过总线连接的,外设与内存之间的总线叫做IO总线,内存与CPU之间的总线叫做系统总线。

  3. 在早些年的计算机中,因为芯片能力不强,有时是之间将外设中的数据传输给CPU,CPU计算完后在交给内存,在合适的时候由内存拿出数据。现在不在使用这个技术,而是在外设中使用DMA芯片,将外设的数据存入内存,不在利用CPU。

  4. 在数据层面上,CPU不和外设交互,但有时候,有些控制信号需要二者交互。

    如:一些外设给CPU发送控制信号,请求帮助处理一些数据。

4.数据流的流向

我们已经有了对冯诺依曼体系的理解,接下来我们就可以看一下,在硬件层面,单机和跨主机之间,数据流是如何流向的!

也就是研究,我们使用./将我们的程序加载到内存,然后执行我们的代码,最后在外设显示器上打印,它的整个数据流在硬件上是如何走的。

该内容难度不高,作为理解软件的工具。

因为软件是无法脱离硬件的,当我们理解了硬件的数据流向,软件上的很多行为我们就可以尝试去理解它了。

4.1单机

在这里插入图片描述

以在音乐播放器(网易云音乐)播放音乐为例:

首先,我们的客户端软件,先加载到内存,然后由CPU执行,接着我们就看到了网易云的界面,

其次,我们点击播放音乐,通过外设的网卡,拿到数据,再将数据传输到内存,经CPU计算(此时的计算可以看作解析),计算后将计算结果返回到内存,由内存传到外设,传到计算机的音箱中播放出来。

4.2 跨主机

以两个人(A和B)在QQ中聊天为例:

当A给B发送”在吗?“,数据是怎样流的的?(不考虑网络)

要使用QQ,首先需要联网,而A和B的电脑都是冯诺依曼体系结构,在A向B发送消息的过程中,A电脑中的键盘充当输入设备、显示器和网卡是输出设备。B电脑中的网卡充当输入设备、显示器充是输出设备。

在这里插入图片描述

A在键盘上输入数据,在硬件上讲,将数据输入到内存,在软件上讲,将数据输入到QQ中。然后数据要经过计算和加密,经由CPU计算,将计算结果传回内存,由内存传到外设,这里是传到了两个地方,一个是A自己的显示器,因为他输入的消息,他自己也要看到,另一个传到了网卡,经由网卡传给B。

B的计算机通过网卡拿到数据,将数据传给内存,经过CPU进行解密操作,在传回内存,由内存传到外设中的显示器,使B看到该消息。

其中,将外设中的数据读入内存,将数据显示在显示器上和发送到网卡,都是由软件(QQ)内部自己来完成。

从外设获得数据这样的操作,我们并不少见,比如C语言中的scanfprintf,都是从外设获得数据。

总结: 数据的流动必须遵守冯诺依曼的结构。

来源地址:https://blog.csdn.net/m0_52094687/article/details/128800314

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

【Linux】冯诺依曼体系结构

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

文章目录 🎪 冯诺依曼体系结构🚀1.体系概述🚀2.CPU和内存的数据交换🚀3.体系结构中数据的流动 🎪 操作系统概念理解🚀1.简述
2023-08-18

【Linux】冯诺依曼体系和操作系统:

1.冯诺依曼体系结构: 1.1体系概述理清: 我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。 🔥我们将冯诺依曼体系结构分为输入设备、输出设备、存储器和CPU 上述部分的常见硬件:
2023-08-18

冯诺伊曼结构是什么

冯诺依曼结构是计算机体系结构的一种基本架构,它是由冯·诺伊曼于20世纪40年代提出的,该结构被广泛应用于现代计算机中,包括个人电脑、服务器、超级计算机等等。它为计算机的设计和实现提供了一个重要的框架。虽然它有一些局限性,但仍然被广泛应用于现
2023-08-16

2021下半年网络工程师高频考点:冯·诺依曼体系结构

  为帮助大家备考2021下半年网络工程师考试,今天编程学习网小编为大家整理了2021下半年网络工程师高频考点:冯·诺依曼体系结构,希望对大家备考会有帮助。  考点3、冯·诺依曼体系结构  【考法分析】  本考点的基本考法是能分辨出CPU的两大核心部件:运算器和控制器中的子部件,以及各子部件所起
2021下半年网络工程师高频考点:冯·诺依曼体系结构
2024-04-19

诺依曼结构计算机的基本构件有哪些

这篇文章主要讲解了“诺依曼结构计算机的基本构件有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“诺依曼结构计算机的基本构件有哪些”吧!诺依曼结构计算机的五大基本构件是运算器、存储器、输入设
2023-06-21

深入Linux PAM体系结构

一、什么是Linux-PAM 为安全起见,计算机系统只有经过授权的合法用户才能访问,在这里如何正确鉴别用户的真实身份是一个关键的问题。所谓用户鉴别,就是用户向系统以一种安全的方式提交自己的身份证明,然后由系统确认用户的身份是否属实的过程。换
2023-06-06

Linux的底层体系结构是怎样的

本文小编为大家详细介绍“Linux的底层体系结构是怎样的”,内容详细,步骤清晰,细节处理妥当,希望这篇“Linux的底层体系结构是怎样的”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。计算机的工作模式对于一个计算机
2023-06-16

美国服务器Linux系统的体系结构是什么

美国服务器Linux系统的体系结构与其他国家的服务器Linux系统并没有太大的区别,主要由硬件层、内核层和用户空间组成。硬件层包括服务器的物理硬件,如处理器、内存、硬盘等。内核层是操作系统的核心部分,负责管理硬件资源、文件系统、进程管理
美国服务器Linux系统的体系结构是什么
2024-04-22

编程热搜

目录