计算机组成 -- 存储层次结构
SRAM
- CPU类比成计算机的大脑;而正在思考的东西,可以类比成CPU中的寄存器(Register)
- 寄存器更像是CPU本身的一部分,存放极其有限的信息,但速度非常快,和CPU同步
- 大脑中的记忆,类比成CPU Cache(高速缓存)
- CPU Cache使用的芯片是SRAM(Static Random-Access Memory,静态随机存取存储器)
- 静态:只要处于通电状态,里面的数据就能保持存在,而一旦断电,里面的数据就会丢失
- 在SRAM里,1个比特的数据,需要6~8个晶体管
- 所以SRAM的存储密度不高,同样的物理空间下,能够存储的数据有限
- SRAM的电路简单,所以访问速度非常快
- 在CPU里,通常会有L1、L2、L3这三层高速缓存
- L1 Cache
- 每个CPU核心都有一块独占的L1 Cache,通常分为指令缓存和数据缓存
- L1 Cache通常嵌在CPU核心的内部
- L2 Cache
- L2 Cache同样是每个CPU核心都有,但往往不在CPU核心的内部,因此L2 Cache的访问速度会比L1 Cache稍慢
- L3 Cache
- L3 Cache通常是多个CPU核心共用的,尺寸更大,访问速度更慢
- L1 Cache
- 简单类比
- L1 Cache – 短期记忆
- L2/L3 Cache – 长期记忆
- 内存 – 书架
1 | $ sysctl hw.l1icachesize # L1 instruction cache |
DRAM
- 内存使用的芯片是DRAM(Dynamic Random Access Memory,动态随机存取存储器)
- 相对于SRAM,密度更大,容量更大,更便宜
- 动态:DRAM需要不断地刷新,才能保持数据被存储起来
- DRAM的1个比特,只需要1个晶体管和1个电容就能存储 – 存储密度更大
- 但因为数据是存储在电容里面,电容会不断漏电,因此需要定时刷新充电,才能保证数据不丢失
- DRAM的数据访问电路和刷新电路比SRAM更复杂,因此访问延时也更长
存储器的层次结构
- CPU并不是直接和每一种存储器设备打交道,而是每一种存储器设备,都只和它相邻的存储器设备打交道
- CPU Cache从内存加载而来,或者需要写回内存,并不会直接写回数据到硬盘
- CPU Cache也不会直接从硬盘加载数据,而是先加载到内存,再从内存加载到CPU Cache中
- 各个存储器只和相邻的一层存储打交道,并且一层层向下
- 存储器的容量逐层增大,访问速度逐层变慢,单位存储成本逐层下降
价格 + 性能
存储器 | 硬件介质 | 单位成本(美元/MB) | 随机访问延时 | 说明 |
---|---|---|---|---|
L1 Cache | SRAM | 7 | 1ns | |
L2 Cache | SRAM | 7 | 4ns | 访问延时 15×L1 Cache |
Memory | DRAM | 0.015 | 100ns | 访问延时 15×SRAM,价格 1/40×SRAM |
Disk | SSD(NAND) | 0.0004 | 150μs | 访问延时 1500×DRAM,价格 1/40×DRAM |
Disk | HDD | 0.00004 | 10ms | 访问延时 70×SSD,价格 1/10×SSD |
参考资料
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.