数据存储底层原理详解一、概述1. 引言数据存储本质上是试图以日益复杂的方式捕获电子。计算机依赖内存，CPU 和 GPU 只是数据处理机器，最糟糕的情况就是浪费一个时钟周期等待数据。2. 存储层次结构由于快速存储既昂贵又耗电，我们将存储组织成层次结构：距离处理单元越近，存储速度越快，但容量越小距离处理单元越远，存储容量越大，但速度越慢graph LR CPU[CPU] -->|1ns| L1[L1 缓存 64KB] L1 -->|3ns| L2[L2 缓存] L2 -->|10ns| L3[L3 缓存] L3 -->|100ns| RAM[DRAM 内存] RAM -->|100us| SSD[固态硬盘] SSD -->|10ms| HDD[机械硬盘]二、静态随机存取存储器1. 基本原理SRAM 是最快的内存，因为它最简单。它使用晶体管构建逻辑门来存储单个比特。A. 晶体管晶体管本质上是一个开关，有三个端子：源极漏极栅极当在栅极和源极之间施加小电压时，会在源极和漏极之间诱导大电流流动。B. 反相器从晶体管可以构建逻辑门，存储器需要的是反相器或非门，它反转施加到其上的信号：有电压输入时返回 0V无电压输入时返回电压2. 存储单元A. 交叉耦合反相器存储单元需要两个反相器 A 和 B：将反相器 A 的输出连接到反相器 B 的输入将反相器 B 的输出连接到反相器 A 的输入这称为交叉耦合，创建了一个稳定的反馈回路。只要施加电源，反相器 A 就会持续输出 1。graph LR INV1[反相器 A] -->|1| INV2[反相器 B] INV2 -->|0| INV1 style INV1 fill:#e1f5fe style INV2 fill:#e1f5feB. 6T 单元结构SRAM 存储单元通过两个连接到字线的晶体管与内存其余部分隔离：字线晶体管控制对位线的访问位线在单元两侧各有一条读取时：打开访问晶体管电流沿位线向下流动供 CPU 读取写入时：打开访问晶体管驱动两条位线的电压（一侧高压，一侧低压）覆盖反馈回路中的信号并翻转反相器3. SRAM 阵列A. 网格排列这些单元排列成阵列：列通过垂直位线连接行通过水平字线连接B. 读取过程根据地址计算字线位置升高该字线的电压降低其他字线的电压连接到该字线的每个单元将信号发送到位线列多路复用器过滤出 CPU 查找的列graph TB WL[字线] --> Cell1[单元 1] WL --> Cell2[单元 2] WL --> Cell3[单元 3] Cell1 --> BL1[位线 1] Cell2 --> BL2[位线 2] Cell3 --> BL3[位线 3] BL1 --> MUX[列多路复用器] BL2 --> MUX BL3 --> MUX MUX --> CPU[CPU]C. 性能特点SRAM 非常快，最大的速度瓶颈来自位线和字线的长度这就是 L1 缓存必须保持很小的原因更高级别的缓存可以增加容量三、动态随机存取存储器1. 为什么需要 DRAM如果基于晶体管的内存如 SRAM 这么好，为什么不把它用于所有内存？如果这样做：计算机成本会高出十倍体积会大一倍功耗相当于商用烤箱基于晶体管的内存速度很快，但空间效率非常低且制造成本高昂。2. 基本原理DRAM 需要一种在 SRAM 速度和长期存储容量之间折衷的存储方案。A. 1T1C 单元每个 DRAM 内存单元由一个连接到晶体管的单个电容器组成：电容器存储静电荷晶体管充当开关，允许充电和放电电容器graph LR WL[字线] --> Transistor[晶体管] Transistor --> Capacitor[电容器] BL[位线] --> TransistorB. 动态刷新由于尺度极小，即使晶体管关闭，电荷也会缓慢从电容器泄漏。因此需要不断补充电容器中的电荷，称为动态 RAM。刷新频率：约每 64 毫秒一次3. DRAM 阵列结构A. 网格排列单个 1T1C 单元排列成行字线跨越整行连接所有单元位线沿每列向下连接每个单元B. 地址映射32 位地址包含三个部分：前 5 位：指定内存所在的存储体中间 16 位：指示要激活的行后 10 位：指定感兴趣的列graph TB Address[32 位地址] --> Bank[5 位存储体] Address --> Row[16 位行] Address --> Column[10 位列] Bank --> BankSelect[选择存储体] Row --> WordLine[激活字线] Column --> ColMux[列多路复用器] BankSelect --> Output[输出数据] WordLine --> Output ColMux --> Output4. DRAM 操作A. 读取操作断开所有字线将所有位线预充电至约 0.5V连接正确的行检测放大器检测电压差异并放大B. 写入操作同样的预充电和行激活过程列多路复用器将 8 条位线连接到写入驱动器写入驱动器覆盖检测放大器将电压改为 0V 或 1VC. 刷新操作关闭存储体中的所有行预充电位线至 0.5V打开单行检测放大器读取电压并驱动每条位线对存储体中的每一行重复5. 性能优化A. 并行处理典型有 32 个存储体每个存储体都有自己的列多路复用器、驱动器和检测放大器可以并行使用，任何给定时间有 32 个开放行B. 内存布局将相关数据安排在同一行跨多个存储体安排相关数据graph LR CPU[CPU] --> Bank1[存储体 1] CPU --> Bank2[存储体 2] CPU --> Bank32[存储体 32] Bank1 --> Row1[行 A] Bank2 --> Row2[行 A] Bank32 --> Row32[行 A]四、固态硬盘1. 基本原理SSD 解决了 DRAM 的两个问题：需要持续供电容量成本过高但代价是读写速度降低。A. 电荷陷阱单元SSD 的核心单元是电荷陷阱闪存单元：可以捕获电子的微小单元使用捕获的电子数量存储数据graph TB Gate[控制栅极] --> Barrier1[介电势垒] Barrier1 --> Trap[电荷陷阱] Trap --> Barrier2[介电势垒] Barrier2 --> Channel[沟道]B. 工作机制电荷陷阱单元有三个主要组件：栅极电荷陷阱沟道每个组件之间被介电势垒隔开：防止电子在它们之间流动允许电场通过2. 数据存储原理A. 阈值电压当在栅极施加正电压时：发出电场并在沟道中诱导电流流动电压需要足够强以克服绝缘（阈值电压）如果电荷陷阱中有带负电的电子：排斥这个电场需要更高的电压来克服B. 电子捕获施加到栅极的正电压足够强时：创建吸引带负电电子的正电场迫使它们穿过势垒这就是量子隧穿3. 3D NAND 结构A. 垂直堆叠为了增加存储密度，SSD 将电荷陷阱单元排列在垂直柱中：这个垂直的连接单元列称为字符串整个字符串共享相同的中心沟道沟道在顶部连接到位线graph TB BitLine[位线] BitLine --> String1[字符串 1] BitLine --> String2[字符串 2] String1 --> CG1[控制栅极 1] String1 --> CG2[控制栅极 2] String1 --> CG3[控制栅极 3] String2 --> CG1 String2 --> CG2 String2 --> CG3B. 页和块页：共享相同水平控制栅极的所有单元块：跨越多个位线的行组C. 3D 结构现在结构有三个维度：行：每列是字符串，每行是页列：连接到相同位线的所有字符串的垂直切片层：选择同一级别所有页的水平切片graph TB Block[块] --> Row1[行 1] Block --> Row2[行 2] Block --> RowN[行 N] Row1 --> Layer1[层 1] Row1 --> Layer2[层 2] Row1 --> LayerM[层 M]4. SSD 性能特点A. 页读取页面实际宽度约 16KB单个页面约 50,000 个单元需要 DRAM 作为缓冲内存B. 并行读取将文件分布到多个芯片可以并行读取数据使用超级页概念（跨多个芯片使用相同的物理页）C. 寿命限制薄势垒每次强制电子穿过时都会轻微退化SSD 有读写限制不适合极长期存储五、机械硬盘1. 基本结构A. 磁盘片HDD 的核心是磁盘片：使用磁方向存储数据通常多个磁盘片垂直堆叠围绕中心主轴旋转消费设备通常为 7200 rpmgraph TB Spindle[主轴] --> Platter1[磁盘片 1] Spindle --> Platter2[磁盘片 2] Spindle --> Platter3[磁盘片 3]B. 读写头每个磁盘片两侧各有一个读写头由执行臂移动读写头悬浮在磁盘表面约 15nm 上方2. 数据存储机制A. 磁道和扇区磁盘表面覆盖着薄磁层，分为：磁道：数百个同心圆扇区：每个磁道分段B. 扇区结构每个扇区包含：前导码：确保读写头知道磁盘旋转速度地址：特定磁道和扇区的地址（48 位）数据有效载荷：约 4KBECC 位：错误校正码3. 读写原理A. 写入写入头是铜线线圈：电流通过铜线创建磁场磁场改变磁性颗粒的极性电流向前时北极向下电流反向时北极向上graph LR Current[电流] --> Coil[铜线线圈] Coil --> Field[磁场] Field --> Grain[磁性颗粒]B. 读取读取头检测磁场变化：磁性和非磁性层根据磁场变化电阻极性变化时产生最大尖峰极性变化分配为 1无极性变化分配为 04. 性能特点A. 缓冲内存HDD 有板载 DRAM：将数据读入缓冲加快后续读取B. 碎片整理HDD 的主要瓶颈是移动臂到新位置的时间：理想情况下数据应尽可能并置碎片整理移动数据以减少间隙C. 寿命没有写入耐久性限制受限于执行器和主轴轴承的机械磨损可在磁层中保存数据数十年六、存储技术对比1. 性能对比存储类型访问速度容量成本持久性SRAM~1ns~64KB最高需要供电DRAM~100ns~100GB高需要刷新SSD~100us~TB中断电保持HDD~10ms~TB低断电保持2. 使用场景A. SRAMCPU 缓存需要极低延迟的场景B. DRAM系统内存需要高带宽和中等容量的场景C. SSD系统盘需要快速启动和高性能的场景D. HDD数据备份大容量存储冷数据归档七、总结存储的圣杯是兼具 SRAM 的速度、SSD 的密度和 HDD 寿命的存储器。但由于物理定律的限制，下一最好的方案是数据在层次结构的各级之间移动的精心编排的舞蹈。每种存储技术都在容量和读写速度之间进行不同的折衷，因此它们的底层技术也完全不同。参考资料Making Software: How is data stored?