一、存储器的层次结构
存储器的层次结构可以类比我们在图书馆看书的场景:
此时我们的书本就类比为数据,书桌类比为内存,L3 Cache和L2 Cache类比为长期记忆,L1 Cache类比为短期记忆,寄存器则类比为正在思考的数据,
大脑则类比为CPU。这样就比较好理解了。
数据从磁盘到内存,再到三级缓存,再到寄存器,最后通过CPU进行处理计算。
寄存器
每个寄存器可以存储一定字节的数据
- 32位的CPU大多数可以存储4个字节
- 64位的CPU大多数可以存储8个字节
CPU 缓存
CPU缓存用的是一种静态随机存储芯片(SRAM,Static Random-Access Memory),只要有电,数据就可以保持存在,断电,数据就丢失了。
- L1高速缓存:访问速度在2-4个时钟周期,大小在几十KB-几百KB不等,又分为
- 指令缓存
- 数据缓存
- L2高速缓存:访问速度在10-20个时钟周期,大小在几百KB- 几MB不等。
- L3高速缓存:访问速度在20-60个时钟周期,大小在几MB-几十MB不等。
内存
内存⽤的芯⽚和 CPU Cache 有所不同,它使⽤的是⼀种动态随机存取存储芯片器(DRAM,Dynamic Random Access Memory)。
相⽐ SRAM,DRAM 的密度更⾼、功耗低、容量大、造价低。
DRAM 存储⼀个 bit 数据,只需要⼀个晶体管和⼀个电容就能存储,但是因为数据会被存储在电容⾥,电容会不断漏电,所以需要定时刷新电容,才能保证数据不会被丢失,这就是 DRAM 之所以被称为动态存储器的原因,只有不断刷新,数据才能被存储起来。
DRAM比SRAM更复杂,访问速度更慢,200-300个时钟周期。
SSD/HDD硬盘
- 固态硬盘(Solid-state disk):内存的读写速度⽐ SSD ⼤概快 10~1000 倍。
- 机械硬盘(Hard Disk Drive, HDD):它是通过物理读写的⽅式来访问 数据的,因此它访问速度是⾮常慢的,它的速度⽐内存慢 10W 倍左右。
二、存储器的层次关系
每个存储器只和相邻的一层存储器进行交互。
CPU访问数据流程
三、存储器之间的实际价格和性能差异
机械硬盘很慢
- SSD ⽐机械硬盘快 70 倍左右
- 内存⽐机械硬盘快 100000 倍左右
- CPU L1 Cache ⽐机械硬盘快 10000000 倍左右