历史
在冯诺依曼体系提出之前,程序在计算机中是以硬件的形式存在的。我们的电子数字计算机ENIAC由门电路组成(实现逻辑运算的单元电路称为门电路,是一种具体的元件)组成一个物理意义上很庞大的计算机。
操作这台庞然大物需要通过旋钮、开关和接插线不同的位置来表示所要执行的程序,一旦需要修改程序功能,就要重新组装电路板,因此在ENIAC上设置一段程序往往需要花费大量的时间(从硬件改变)如果频繁的设置不同的程序会导致机器在很大一部分时间内都处于程序设计状态而无法运行,实用性能大打折扣。
在冯诺依曼体系提出前,我们的程序和数据没有关系,数据存储在存储器内,程序存储在控制器内,灵活性低,每次都要重装电路。
在硬件逐渐完善的过程中,伟大的约翰·冯·诺依曼加入设计ENIAC的团队,他们要解决的核心问题就是将硬件化程序变为可编程,放在存储器中,随意使用(让程序以数据的形式存储在计算机存储器中)将程序和数据一样看待,将程序编码为数据,然后与数据一同存放在存储器中,这样计算机就可以调用存储器中的程序来处理数据了。
以前我们执行程序要从硬件执行,在这之后,我们的程序被存在存储器中,执行程序只要从存储器取出执行就好了,省去了硬件的连接,完成了硬件和软件的分开执行。
冯诺依曼体系下,计算机的设备由运算器、控制器、存储器、输入设备、输出设备这五大部分组成
解释一下他们的每一次运行都经历了什么:控制器就像心脏,发出对于其他四个部件的控制和得到他们的反馈,用户通过输入设备输入信息,控制器把获得的信息交给运算器运算,存储器存储输入的信息、要输出的信息和控制器会对它下达的指令,控制器一发出输出的指令就可以从存储器交由输出设备输出。这时候运算器是整个体系的中心(信息都会先传给运算器)
但是这样的体系也有缺点,不是所有的信息都需要交给运算器运算的,这样就会降低计算机的性能。
所以现代计算机的体系是将储存器置于中心,这样就省下了通过运算器的不必要的部分了。
CPU中的存储器
CPU由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。所以整个体系就是这样。
从中我们可以看出计算机的整体效率取决于数据在设备间拷贝(数据从一个设备到另一个设备的过程也叫拷贝)的效率
所以CPU的执行速度其实是很快的,影响整体速度的其实是CPU的数据读取速度,各个部分读取数据的速度也不同,所以CPU的存储器采用了一种分层的结构。
我们的存储器分为四个层次,从上到下分别是寄存器(Register),高速缓存(Cache),主存/内存,磁盘,速度依次从快到慢,造价依次从高到低,容量越来越大(感觉这里还可以多讲讲但是下次再说()
区别大概是这样
只要你足够有钱,也是可以做一个储存器全是寄存器组成的硬件,运行效率特别快
各个体系架构存在是必要的,创新带来范围影响,技术上突破,传播上普及(历史意义)
数据在硬件层面的流动是:
1.CPU只和内存打交道(冯诺伊曼体系规定的)所以数据传进来先给内存
2.CPU不直接和每一种存储器设备打交道,而是每种存储器设备,都只和它相邻的存储设备打交道。比如,CPU Cache是从内存里加载来的,或者需要写回内存,并不会直接写回数据到硬盘,也不会直接从硬盘加载数据到CPU Cache,而是先加载到内存,然后从内存中加载到Cache。