不奢望岁月静好 只希望点滴积累

0%

存储器层次结构

存储器系统是一个通过各种不同的方法和设备、一层层组合起来的系统.

SRAM

1
2
静态存储器, 只要通电、保存的数据就一直存在、断电则丢失, 1bit 数据、大概需要6~8个晶体管, 
密度不高、同样物理空间下、存储的数据有限、不过, 由于电路简单、访问速度特别快

6个晶体管组成SRAM的一个bit.png

1
2
3
4
CPU中、通常有L1、L2、L3三层高速缓存
每个CPU有一块属于自己的L1缓存(`指令缓存``数据缓存` )
L2缓存也是每个CPU有一块、但不在CPU内部、访问速度比L1稍慢
L3 Cache通常是多个CPU核心共用的、尺寸更大、访问更慢一些

DRAM

1
2
3
4
5
6
SRAM来说、DRAM的密度更高、容量更大、价格也便宜、CPU一般使用的是SRAM、内存一般使用的是DRAM

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

存储器的层次结构

1
整个存储器的层次结构、都类似于SRAM和DRAM在性能和价格上的差异、SRAM更贵、速度更快

存储器的层次关系图.png

1
2
Cache、内存、到SSD和HDD硬盘、计算机用到了所有存储设备、其中, 容量越小的设备速度越快、且: CPU不是直接合每一种存储设备打交道、而是只与相邻设备打交道.
eg. CPU Cache是从内存加载而来、数据需要写回内存、并不会直接写回数据到硬盘、也不会直接从硬盘加载数据到CPU Cache、而是先加载到内存、再从内存加载到Cache

这样、每个存储器只喝相邻的一层存储器打交道、且随着一层层向下、存储器的容量逐渐增大、访问速度逐层变慢、且单位存储成本也在逐层下降、就构成了存储器的层次结构

如何权衡价格和性能

1
2
存储器在不同层级之间的性能和价格差异、都至少在一个数量级以上、
eg. L1 Cache的访问延时是1ns、内存是100ns、在价格上也差出了400

存储器性能和价格对比图.png

一台惠普战66的笔记本配置如下:

  1. Intel i5-8265U 的CPU (4核)

    • 每个核有有32K、共128KB的L1指令Cache 和 128KB 的数据Cache、采用8路组相连的放置策略
    • 每个核有256KB、共1M的L2 Cache、采用的是4路组相连的放置策略
    • 多个核心共用的12MB 的L3 Cache、采用的是12路组相连的放置策略
  2. 8G的内存

  3. 128GB 的SSD硬盘

  4. 1T的HDD硬盘

    可以看到,在一台实际的计算机里面,越是速度快的设备,容量就越小。这里一共十多兆的 Cache,成本只是几十美元。而 8GB 的内存、128G 的 SSD 以及 1T 的 HDD,大概零售价格加在一起,也就和我们的高速缓存的价格差不多