计算机组成 -- 存储层次结构

SRAM

  1. CPU类比成计算机的大脑;而正在思考的东西,可以类比成CPU中的寄存器(Register)
    • 寄存器更像是CPU本身的一部分,存放极其有限的信息,但速度非常快,和CPU同步
  2. 大脑中的记忆,类比成CPU Cache(高速缓存)
    • CPU Cache使用的芯片是SRAMStatic Random-Access Memory,静态随机存取存储器
  3. 静态:只要处于通电状态,里面的数据就能保持存在,而一旦断电,里面的数据就会丢失
  4. 在SRAM里,1个比特的数据,需要6~8个晶体管
    • 所以SRAM的存储密度不高,同样的物理空间下,能够存储的数据有限
  5. SRAM的电路简单,所以访问速度非常快
  6. 在CPU里,通常会有L1L2L3这三层高速缓存
    • L1 Cache
      • 每个CPU核心都有一块独占的L1 Cache,通常分为指令缓存数据缓存
      • L1 Cache通常嵌在CPU核心的内部
    • L2 Cache
      • L2 Cache同样是每个CPU核心都有,但往往不在CPU核心的内部,因此L2 Cache的访问速度会比L1 Cache稍慢
    • L3 Cache
      • L3 Cache通常是多个CPU核心共用的,尺寸更大访问速度更慢
  7. 简单类比
    • L1 Cache – 短期记忆
    • L2/L3 Cache – 长期记忆
    • 内存 – 书架
Mac OS
1
2
3
4
5
$ sysctl hw.l1icachesize # L1 instruction cache
hw.l1icachesize: 32768

$ sysctl hw.l1dcachesize # L1 data cache
hw.l1dcachesize: 32768

DRAM

  1. 内存使用的芯片是DRAM(Dynamic Random Access Memory,动态随机存取存储器
    • 相对于SRAM,密度更大容量更大更便宜
  2. 动态:DRAM需要不断地刷新,才能保持数据被存储起来
  3. DRAM的1个比特,只需要1个晶体管1个电容就能存储 – 存储密度更大
    • 但因为数据是存储在电容里面,电容会不断漏电,因此需要定时刷新充电,才能保证数据不丢失
  4. DRAM的数据访问电路刷新电路比SRAM更复杂,因此访问延时也更长

存储器的层次结构

  1. CPU并不是直接和每一种存储器设备打交道,而是每一种存储器设备,都只和它相邻的存储器设备打交道
    • CPU Cache从内存加载而来,或者需要写回内存,并不会直接写回数据到硬盘
    • CPU Cache也不会直接从硬盘加载数据,而是先加载到内存,再从内存加载到CPU Cache中
  2. 各个存储器只和相邻的一层存储打交道,并且一层层向下
    • 存储器的容量逐层增大访问速度逐层变慢单位存储成本逐层下降

价格 + 性能

存储器 硬件介质 单位成本(美元/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
0%