存储层次结构

CPU就像是计算机的大脑。我们思考的东西,就好比CPU中的寄存器(Register)。寄存器与其说是存储器,其实它更像是CPU本身的一部分,只能存放极其有限的信息,但是速度非常快,和CPU同步。

而我们大脑中的记忆,就好比CPU Cache(CPU高速缓存,我们常常称为”缓存“)。CPU Cache用的是一种叫做SRAM(Static Random-Access Memory,静态随机存取存储器)的芯片。

SRAM

SRAM之所以被称为”静态存储器“,是因为只要处在通电状态,里面的数据就可以保持存在。而一旦断电,里面的数据就会丢失了。在SRAM里面,一个比特的数据,需要6~8个晶体管。所以SRAM的存储密度不高。同样的物理空间下,能够存储的数据有限。不过,因为SRAM的电路简单,所以访问速度非常快。

在CPU中,通常有L1,L2,L3这样三层高速缓存。每个CPU核心都有一块属于自己的L1高速缓存,通常分成指令缓存和数据缓存,分开存放CPU使用的指令和数据。

L2的Cache同样是每个CPU核心都有的,不过它往往不在CPU核心的内部。所以,L2 Cache的访问速度会比L1稍微慢一些。而L3 Cache,则通常是多个CPU核心共用的,尺寸会更大些,访问速度自然也就更慢些。

数据从内存中加载到CPU的寄存器和Cache中,然后通过CPU,进行处理和运算。

DRAM

内存用的芯片和Cache有所不同,它用的是一种叫做DRAM(Dynamic Random Access Memory,动态随机存取存储器)的芯片,比起SRAM来说,它的密度更高,有更大的容量,而且它也比SRAM芯片便宜不少。

DRAM被称为”动态“存储器,是因为DRAM需要靠不断地刷新,才能保持数据被存储起来。DRAM的一个比特,只需要一个晶体管和一个电容就能存储。所以,DRAM在同样的物理空间下,能存储的数据也就更多,也就是存储的”密度“更大。但是,因为数据是存储在电容里的,电容会不断漏电,所以需要定时刷新充电,才能保持数据不丢失。DRAM的数据访问电路和刷新电路都比SRAM更复杂,所以访问延时也就更长。

存储层次结构

价格和性能