冯.诺依曼体系结构

冯.诺依曼体系结构_第1张图片

文章目录

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

1. 冯.诺依曼结构主要组成部分

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

冯.诺依曼体系结构_第2张图片

⌨输入设备 & 输出设备

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

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

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

⌨存储器

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

⌨运算器 & 控制器

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

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

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

2. 为什么这样设计

冯.诺依曼体系结构_第3张图片

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

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

如果没有存储器,cpu直接对接输入输出设备,这种工作方式就是串行,一个环节影响着一个环节

有了存储器之后,数据可以预加载到内存中,要计算的时候就直接去内存拿数据即可,那这样就能加载数据和计算数据并行,从而在一定程度上提高效率。在这个过程中,存储器可以看成一个硬件级别的缓存空间

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

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

这就好比我们现在开的小汽车,基本就是烧油或者电驱动,这些每隔一段时间就要加油或者充电。要是用上核动力,那岂不美哉?那为何不普及呢?

这在技术层面是可以实现的,但是成本巨大,安全性不高,不利于小汽车的普及。

有了这些理论知识,就可以理解为什么程序要运行,必须先加载的内存当中

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

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

3. 现实案例

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

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

冯.诺依曼体系结构_第4张图片

当我们要给对方发信息的时候,这时候的输入设备就是键盘

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

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

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


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

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

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

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


拓展阅读:

  • 冯·诺依曼结构_百度百科

  • 存储器 - 金字塔层次结构

那本期的分享就到这里咯,我们下期再见,要是还有下期的话

你可能感兴趣的:(Linux,原创,服务器,数据库,运维)