内存命名以及本质和记忆方法
第一层:物理原理层(造内存的“细胞”)
本质:按“存储数据的物理方式”分类。这里只有两兄弟,绝对互斥。
- SRAM (Static RAM,静态随机存取存储器)
- 本质:用6个晶体管组成一个触发器来锁存数据。只要通电,状态就死锁在那里,不需要刷新。
- 特点:极速、极贵、面积极大(占芯片面积)、功耗低。
- DRAM (Dynamic RAM,动态随机存取存储器)
- 本质:用1个晶体管 + 1个电容存储数据。电容会漏电,所以必须每隔几毫秒“刷新(Refresh)”一次充电,否则数据就丢了(这就是Dynamic的由来)。
- 特点:较慢、极便宜、密度极高(能做到几十GB)、功耗大(因为要不断刷新)。
💡记忆法:Static =Super fast &Small(快且小);Dynamic =Dense &Dirty(密度大但需要不断刷新擦屁股)。
第二层:商业产品层(DRAM的“魔改变种”)
本质:因为 DRAM 便宜且容量大,所以现代电脑的“主存”和“显存”全是 DRAM。但不同设备对速度、功耗、散热的要求不同,于是 JEDEC(固态技术协会)把 DRAM 的接口和封装魔改出了几个分支。
它们是平行的兄弟:
- DDR (Double Data Rate SDRAM):标准电脑内存条。兼顾容量、速度和成本。
- LPDDR (Low Power DDR):手机/轻薄本内存。直接焊接在主板上,砍掉了部分性能,极致省电。
- GDDR (Graphics DDR):显卡显存。为了喂饱 GPU 的庞大计算量,牺牲了容量(通常只有十几GB),换取了极高的频率和带宽,发热巨大。
- HBM (High Bandwidth Memory):AI 算力卡(如英伟达 H100)的专属。
- 前沿本质:传统内存是平铺在主板上的,距离 GPU 太远,数据搬运慢。HBM 直接把多层 DRAM 芯片像盖楼一样 3D 堆叠起来,并用 TSV(硅通孔)技术打通,然后直接紧挨着 GPU 封装在一起。
- 特点:带宽极其恐怖(H100的HBM3带宽达 3.35 TB/s),但极贵,容量受限(目前单卡最高 192GB)。
💡记忆法:看它们“伺候谁”。DDR伺候通用 CPU;LPDDR伺候电池;GDDR伺候游戏显卡;HBM伺候 AI 大模型。
第三层:体系结构层(CPU 视角的“内存金字塔”)
本质:在 CPU 眼里,没有“内存条”这个概念,只有“距离我多远的存储”。距离决定速度。
从 CPU 核心往外看,是一个金字塔:
- 寄存器 (Registers):在 CPU 核心内部,1 个时钟周期。
- L1 / L2 / L3 Cache (高速缓存):全是 SRAM。L1 最快最小(每核独有),L3 稍慢稍大(多核共享)。
- 主存 (Main Memory / RAM):插在主板上的内存条(DRAM),几百个时钟周期。
- NUMA (非一致性内存访问):架构师必考概念。
- 本质:你的 16核 CPU,如果是双路 8核(两个物理 CPU),每个 CPU 底下插着自己的内存。CPU0 访问自己的内存很快(Local),访问 CPU1 的内存就要跨越总线,很慢(Remote)。这就是 NUMA。
- 调优意义:在写高并发/多进程程序时,要把进程和它用的内存“绑定”在同一个 NUMA 节点上,否则性能暴跌。
第四层:软件系统层(OS 视角的“内存骗局”)
本质:操作系统为了让每个进程觉得自己独占了整个计算机,而虚构出来的概念。
- 虚拟内存 (Virtual Memory) vs 物理内存:
- 进程看到的都是虚拟内存(连续、巨大)。OS 通过页表 (Page Table)将其映射到支离破碎的物理内存上。
- 堆 (Heap) vs 栈 (Stack):
- 栈:OS 自动管理,存局部变量。像手枪弹夹,先进后出,速度极快,但空间小。
- 堆:程序员手动管理(
malloc/free)。像一个大仓库,灵活但容易产生碎片,分配慢。
- Page Cache (页缓存):
- 本质:OS 把空闲的物理内存拿来缓存磁盘文件。你之前用
mmap或者sort处理千万行文件时,OS 其实是在悄悄把磁盘数据预读到 Page Cache 里,让你感觉“内存读取像飞一样”。
- 本质:OS 把空闲的物理内存拿来缓存磁盘文件。你之前用
🚀 第五层:前沿技术(为了推翻“内存墙”)
背景:CPU 速度每年涨 50%,内存速度每年只涨 7%。CPU 大部分时间都在等内存送数据,这叫“内存墙 (Memory Wall)”。前沿技术全是为了拆墙:
- CXL (Compute Express Link):打破内存孤岛。
- 以前每个服务器内存是独立的,A 服务器内存爆了,B 服务器内存闲着,没法共享。CXL 基于 PCIe 物理层,允许 CPU、GPU、内存池之间以缓存一致性(Cache Coherence)直接共享内存。这是未来数据中心的核心。
- PIM (Processing In Memory,存内计算):数据不动,计算过去。
- 既然把数据从内存搬到 CPU 太慢,那就直接把计算单元(ALU)塞到 DRAM 芯片里面去!在内存里直接做矩阵乘法。这是 AI 芯片的终极形态之一。
- NVM (Non-Volatile Memory,非易失性内存):
- 比如曾经的 Intel 傲腾 (Optane)。目标是:拥有 DRAM 的速度,但断电不丢数据(像 SSD 一样)。如果成了,以后电脑就不需要“开机加载”了,直接就是关机前的状态。
独家记忆框架
“快递物流系统”
- SRAM / DRAM:这是仓库的建筑材料。SRAM 是全自动立体冷库(贵、快),DRAM 是普通平房仓库(便宜、大)。
- DDR / LPDDR / HBM:这是不同规格的货车。DDR 是标准重卡,LPDDR 是省油的小货车,HBM 是直接修在工厂流水线旁边的传送带(AI 专属)。
- Cache / 主存 / NUMA:这是物流网络拓扑。Cache 是车间门口的暂存区,主存是郊区大仓,NUMA 是不同城市之间的调拨(跨城调拨很慢)。
- 虚拟内存 / 堆栈:这是给客户的承诺。客户(进程)以为自己有个无限大的私人仓库(虚拟内存),其实物流公司在后台帮他拼箱、调度(页表映射)。
- CXL / PIM:这是未来的物流革命。CXL 是打通所有城市的超级共享云仓;PIM 是直接在仓库里就把货物加工了,不用运到工厂再加工。用这个“物流系统”的视角去套你遇到的所有内存名词,是不是瞬间就不相交了?你可以结合你之前处理千万行数据时遇到的 OOM、Page Cache 现象,再体会一下“虚拟内存”和“页缓存”这一层,会非常有感觉!
