目录
一、冯诺依曼体系结构
冯·诺依曼体系结构,也称为普林斯顿结构,是现代计算机设计的基础框架。这一体系结构由数学家冯·诺依曼在20世纪40年代提出,它定义了计算机的基本组成和工作原理。
二、冯诺依曼体系结构的基本组成
我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系结构
截至目前,我们所认识的计算机,都是有一个个的硬件组件组成
- 输入单元:包括键盘,鼠标,网卡,磁盘,USB等
- 中央处理器(CPU):含有运算器和控制器等
- 输出单元:显示器,打印机,网卡,磁盘等
- 存储器:这里的存储器就是内存
关于冯诺依曼,必须强调几点:
- 这里的存储器指的就是是内存
- 不考虑缓存情况下,在数据层面上,这里的CPU能且只能对内存进行读写,不能与外设进行直接交互(输入或输出设备)
- 外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。一句话,所有设备都只能直接和内存打交道。
值得注意的是计算机中几乎所有的设备,都具有数据存储能力。
CPU这个设备,它的处理数据的速度是非常快的,然后是内存,最后是各种外设。
上面这张照片是关于存储分级的图片,在我看来存储分级也可以叫做速度分级、成本分级,为什么存储分级是金字塔形状的呢?因为离CUP越近的设备,存储效率越高,造价越贵。
那么有人就会问了,为什么不全用存储效率高的呢?这样电脑不就非常快了吗?确实,但是存储效率高对应带来的是造价高。
如果我要求不高,可以全部用便宜的存储设备吗?虽然说这样计算机的早就就变低了,但是这个计算机基本上也用不了了。
三、关于冯诺依曼体系结构的一些问题
问题:上面我们提到了,不考虑缓存的情况下,CPU只与内存进行交互,不与外设进行直接交互,这是为什么呢?
解答:相信大家都听说过木桶原理,一个木桶能装多少水,取决于这个木桶中最短一块木板的长度, 而计算机也同样如此,CPU内部的高速缓存提供了快速的存储访问能力,远大于外设的存储效率,这种速度差异使得CPU无法直接高效地与外设进行同步数据交换,导致整机的效率低下,而内存的存储效率比CPU低,但是比外设的存储效率高,因此CPU与内存之间的交互更加高效。
所以基于冯诺依曼体系结构的计算机都是用较少的钱,做出来效率不错的计算机,性价比高。
问题:在学习C/C++的时候都听说过,程序在运行之前,必须先加载到内存中,为什么呢?
解答:程序 = 代码 + 数据 ,而代码和数据最终都需要CPU进行处理,程序本质上是一个exe文件,只能在磁盘(外设)中,而在数据层面上,CPU不与外设进行直接交互,只与内存进行交互,所以必须将程序加载到内存中,CPU才能对程序进行处理。
对冯诺依曼的理解,不能停留在概念上,要深入到对软件数据流理解上。
问题:请你解释一下,从你登录上QQ开始和某位朋友聊天开始,数据的流动过程。从你打开窗口,开始给他发消息,到他的到消息之后的数据流动过程。如果是在qq上发送文件呢?
解答:在我们登录QQ的时候,本质上就是在电脑上运行起来了了,也就是QQ这个软件被加载到了内存中,那么我们向QQ中输入文字,本质上就是在向内存中输入文字。
那么从头开始解释,当我打开窗口,给我的朋友发消息,我先从键盘(输入设备)输入我想发送的消息到QQ中,本质上是输入到内存(存储器)中,在我们平常发信息的时候可以看到,我们发生信息的时候并不是只有我们发送的信息,还有时间、朋友的备注等信息,那么我们就可以知道,我们要发送的信息一定是被CPU进行处理过的,CPU不会与外设直接交互,那么CPU处理完信息后,会将处理后的信息写入内存(存储器),再通过网卡(输出设备)经过网络传输到朋友的网卡(输入设备),由于前面的文章没有网络相关的文章,这里先不提网络,从网卡中得到的信息需要通过CUP的处理,那么就需要将信息先加载到内存(存储器)中,再由CPU处理得到我想输出的信息,再将CPU处理后的信息写入内存(存储器)中,然后信息通过内存输出到朋友的显示器(输出设备)中,最终完成数据流动。
在QQ上发送文件本质上与上面的发送文字是相同的,不同的是文件是存储在磁盘中的,所以这里的输入设备是磁盘,其他步骤基本相同。
结尾
本篇文章最重要的一句话就是不考虑缓存情况下,在数据层面上,这里的CPU能且只能对内存进行读写,不能与外设进行直接交互(输入或输出设备)。
如果有什么建议和疑问,或是有什么错误,大家可以在评论区中提出。
希望大家以后也能和我一起进步!!🌹🌹
如果这篇文章对你有用的话,希望大家给一个三连支持一下!!🌹🌹