冯诺依曼体系结构
冯诺依曼体系结构合理性简单推导
计算机就是为了解决现实中的实际问题被发明出来的
-
解决问题首先应该把问题或者数据输入到计算机中,所以计算机必须有一个**输入设备 **。
-
解决问题中间,计算机需要对问题进行一定的算术运算或者逻辑运算,所以计算机必须有一个运算器。
-
解决问题后,计算机应该再把结果输出给人,所以计算机必须有一个输出设备。
所以计算机至少需要一个输入设备、一个运算器、一个输出设备。
但是计算机中只有算术运算和逻辑运算是远远不够的,还需要加入一个控制设备,控制何时输入、何时输入和何时运算。
后来我们把具有运算和控制功能的设备称为CPU。
我们都知道CPU的运算速率是远远大于输入和输出的,所以根据木桶效应我们可以知道这样的设备最后速率是很慢的,是不合理的。
于是人们向这其中又加入了内存(这里存储设备只包含内存)。
内存的特点是效率比输入输出设备高很多,又比CPU要慢。这样一个既不是很快,又不是很慢的设备给这个体系间起了一个缓冲的作用。
现在的体系结构是这样运行的:输入设备把数据存到了内存中,等CPU需要的时候再读取,CPU加工过的数据再放回内存,输出设备等待内存向它输出数据,最终由输出设备进行输出。
这就是冯诺依曼结构体系。
内存提高效率的原理
看到这里,我们往往会有一个疑惑:为什么多一个中间商(存储设备)反而会比直接输入给CPU效率更高呢?
这就要引入一个概念了:局部性原理。
它的意思就是,CPU往往更倾向于引用最近被引用数据的附件的数据。简单来说就是我们交朋友,更乐于先和朋友的朋友交友。
而CPU处理数据和内存加载数据是可以同时进行的,这样CPU就可以快速的从内存中读取下一个数据。这也就是内存提高了效率的原因。
相关知识
- 输入输出设备之间可以相互转换,比如说网卡在发送消息的时候是输出设备,但是在接收消息的时候就是输入设备了
- 其实不光是cpu中有寄存器,为了提高效率其他的外设中也有寄存器
- 在物理层面上 所有的设备都是通过一根总线相连的 外设与内存之间的线叫做io线 内存和cpu之间的线叫做系统总线(计组)
常见的输入设备:键盘、鼠标、网卡、硬盘、话筒、摄像头等。
常见的输出设备:硬盘、显示器、网卡、音响等。
根据冯诺依曼体系结构图,我们可以知道,站在硬件角度或是数据层面上,CPU只和内存打交道,外设也只和内存打交道。到这里我们也可以提出一个问题:为什么程序运行之前必须先加载到内存?(答案在下一个博客中)。
感谢您的阅读,欢迎指出错误。