CPU缓存是CPU的一部分,是CPU的制作工艺,是做在CPU里面的,是没有办法改变的,包括静态缓存和动态缓存
CPU的一级、二级甚至三级缓存当然是集成在CPU内部的,但不是集成在CPU内核内部而是和内核一起封装在处理器内部的
CPU存取数据的速度非常的快,一秒钟能够存取、处理十亿条指令和数据(术语:CPU主频1G),而内存就慢很多,快的内存能够达到几十兆就不错了,可见两者的速度差异是多么的大
缓存是为了解决CPU速度和内存速度的速度差异问题
内存中被CPU访问最频繁的数据和指令被复制入CPU中的缓存,这样CPU就可以不经常到象“蜗牛”一样慢的内存中去取数据了,CPU只要到缓存中去取就行了,而缓存的速度要比内存快很多
SRAM是通过双稳态锁存电路来存储信息,只要有电里边的数据就一直会在,当然断电了数据也没了(这一点是RAM的共性),它不需要动态刷新来保持电荷,因此称为静态随机存取存储器,SRAM的特点就是快,缺点就是集成度低(一个典型的SRAM单元需要六个MOSFET),占的面积大,成本高,所以CPU里的缓存(尤其是L1/L2缓存)做不了那么大,原因就是这两个。
再说DRAM,它是用MOS电容上的电荷来存储信息的,可能你也知道,电容就算放着不用也因为缓慢放电而漏电,这样就需要不时刷新来补充电荷,所以把DRAM叫作动态随机存取存储器,因为它只需要一个晶体管+一个电容器,所以集成度非常高,很容易做出大容量来。
=====
寄存器就是CPU直接拿他里面寄存的东西直接来进行计算操作的,它就是CPU的一部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。
缓存就是为了避免数据的多次从一个地方拿到另一个地方,从而在中间通过其中的一个划分一块区域作为临时存放数据地址,以便下次取用方便的说法。比如:寄存器拿出临时寄存的地方,它是位于寄存器和内存之间,相当于一个中间枢纽。但是他的位置就是在寄存器之中,只是把寄存器划分出来一个文件交换区,用来存在最常使用的一些数据。在比如内存从硬盘拿出一些东西放到内存的某块区域,把内存这块区域也叫做缓存,大家一定一定记得不要理解成缓存就是某一个啥东西,它只是说明了数据中转的一种方式而已。而一部分人说的缓存说的是高速缓存,那个是两个不同的概念,这个高速缓存其实是CPU里面的一部分,它集成于CPU中,大家理解就是运行速度更快的一种内存,CPU每次直接拿来操作,不会经过内存和寄存器的过程,现在说的都是L1 cache一级缓存,之前早起的L2 cache焊接在主板上。
内存是存放我们需要处理的一些数据,全部都会先都放到这块,然后等使用的时候,寄存器会去从缓存或者内存中获取数据。主要有只读存储器和随即存储器,还有高速缓冲存储器,现在主流使用的是随机存储器。其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。比如现在大型的3D游戏的加在都是在一定大的内存中进行画面加载的,因此一般3D游戏对于电脑的配置都有一定的要求,内存和cpu都有严格的说明。
总结:
大家可以按最简单的数据的存储和操作距离来理解它们的区别:
CPU(数据的操作)<====>缓存(数据的存储)<=====>寄存器(指令等存储)<====>内存(需要等待的所有数据的存储)<====>外部存储器(硬盘、光盘等)