ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

为什么有的 NVMe SSD 有 DRAM,有的没有?——NVMe SSD 的 DRAM 缓存机制详解

为什么有的 NVMe SSD 有 DRAM,有的没有?——NVMe SSD 的 DRAM 缓存机制详解 文档教程技术博客大模型人工智能【免费下载链接】one-small-step这是一个简单的技术科普教程项目主要聚焦于解释一些有趣的前沿的技术概念和原理。每篇文章都力求在 5 分钟内阅读完成。项目地址https://gitcode.com/gh_mirrors/on/one-small-step点击查看免费下载本文基于 one-small-step 技术科普仓库中的《为什么有的 NVMe SSD 有 DRAM有的没有》一文展开围绕三星 PM9A3带 DRAM与 PM9C1a无 DRAM两款实物系统讲解 NVMe SSD 上 DRAM 的作用、有 DRAM 的利弊以及无 DRAM 方案HMB 主机内存缓冲区的工作原理。读完本文你将能够从一块 SSD 的 PCB 上一眼分辨其是否搭载 DRAM理解 DRAM 对读写性能、耐久性与可靠性的影响并在选购 SSD 时做出更合理的判断。一块 SSD 上为什么会有 DRAMSSD 明明是存储器件为什么有的 NVMe SSD 的 PCB 上却能看到 DRAM 芯片这不是设计冗余而是 SSD 固件Firmware正常工作的重要支撑。以三星的企业级 NVMe SSD PM9A3 为例从 实物图图片来自 Samsung Newsroom可以看到这块 U.2 形态的 SSD 单面就集成了 3 颗标注为 SAMSUNG DRAM 的缓存芯片此外还有 1 颗主控Controller芯片和若干 V-NAND 闪存颗粒DRAM 之所以出现在存储设备上根本原因在于NAND Flash 本身的特性块擦除、延迟擦写、寿命有限决定了它无法直接高效地服务于随机小粒度读写必须依赖一层翻译与缓冲机制而 DRAM 正是承载这套机制的理想介质。NVMe SSD 上的 DRAM 是做什么的围绕上文那张 PM9A3 实物图我们可以把 DRAM 在 SSD 中的职责归纳为三大类1. 数据映射缓存Flash Transition Layer 的驻留空间SSD 对外呈现的是固定大小的逻辑扇区而数据实际存放在 NAND Flash 的物理页与物理块中。由于 NAND 存在坏块、磨损均衡Wear Leveling和垃圾回收Garbage Collection带来的物理地址迁移逻辑地址与物理地址之间必须通过一张**数据映射表FTLFlash Transition Layer**来记录。DRAM 的主要职责之一就是缓存这张映射表。控制器通过查表即可快速定位某个逻辑地址对应的物理位置从而大幅提高读写速度——尤其是在随机读写场景下每一次 I/O 都需要查映射表映射表能否常驻高速缓存直接决定了性能上限。2. 读/写缓存与缓冲写缓冲区Write BufferDRAM 作为写缓冲区由 DMA 操作驱动临时存放即将写入 NAND Flash 的数据。SSD 固件可以把多个分散的小写入合并成一次较大的写入减少零散写入对 NAND 的擦写次数从而减少写放大效应Write Amplification同时提升顺序写入吞吐。热数据缓存Read CacheDRAM 也用于缓存经常被访问的常用数据热数据命中时可以直接从 DRAM 返回显著降低读延迟。3. 算法运行支撑垃圾回收GC与磨损均衡WL是 SSD 维持寿命的两大核心后台任务它们需要频繁扫描、搬运和统计块级状态。DRAM 为这些算法提供了存放元数据的空间例如错误校正码ECC信息、坏块信息、块擦写计数等。没有足够的内存驻留这些元数据固件的调度效率将大打折扣。有 DRAM 的 SSD 的好处结合上文三大职责带 DRAM 的 SSD 在四个方面具备明确优势性能提升由于 DRAM 的高速缓存功能SSD 的读写速度更快尤其在随机读写场景下优势最为明显——映射表常驻 DRAM控制器无需频繁访问慢速 NAND 来重建或查询映射关系。降低延迟控制器可以快速访问数据映射表减少数据访问路径上的等待从而降低整体 I/O 延迟。更好的耐久性通过写合并减少写放大、配合更有效的磨损均衡调度NAND 的擦写次数被更均匀、更节俭地使用SSD 的寿命表现更好。更高的可靠性更好的错误校正机制与更稳健的缓存管理使 DRAM SSD 在高负载、长时间写入等严苛场景下表现更可靠。有 DRAM 的 SSD 的劣势凡事皆有两面DRAM 的加入同样带来三个代价成本较高DRAM 芯片本身成本不低且需要额外的 PCB 面积与封装复杂度因此带 DRAM 的 SSD 通常比同容量无 DRAM 的型号更贵。功耗增加DRAM 需要持续供电保持数据虽然单颗 DRAM 的功耗差异不大但在笔记本等移动设备上仍会对电池续航产生可感知的影响。发热量增加DRAM 是 SSD 上主要的发热源之一。虽然性能提升值得付出这部分热量代价但会导致 SSD 整体温度上升对散热设计提出更高要求。那么有没有没有 DRAM 的 SSD有的。一些入门级 SSD 就没有 DRAM例如三星的消费级 PM9C1a。从 实物图图片来自 Samsung Newsroom可以看到这块 M.2 形态的 SSD 上只有主控Controller、PMIC 电源管理芯片和 V-NAND 颗粒PCB 上找不到任何标注为 DRAM 的芯片为了降低成本和功耗厂商把 DRAM 从 SSD 上移除转而借用主机Host的系统内存来承担一部分原本由板载 DRAM 完成的工作。无 DRAM 方案的核心HMB主机内存缓冲区这类 SSD 通常使用系统 RAM 进行缓存即 HMBHost Memory Buffer主机内存缓冲区。需要说明的是原文档中此处写作 HBM但业界标准术语是HMBHBM 通常指高带宽内存 High Bandwidth Memory是 GPU 领域的概念两者不应混淆。HMB 是 NVMe 规范提供的机制在 NVMe 协议栈中设备可以通过 PCIe 与主机协商在主机内存中划出一块区域典型配置为几十 MB 量级作为设备的缓冲区。SSD 控制器把**数据映射表FTL 的一部分**放到这块主机内存中需要查表时通过 PCIe 总线访问主机内存从而省去了板载 DRAM。然而借用终究不如自持性能受影响与驱动器自己的板载 DRAM 相比每次映射查询都要穿越 PCIe 链路访问主机内存访问路径更长、延迟更高随机读写性能会受到影响。依赖主机配合HMB 的启用需要主机操作系统与 BIOS 层面的支持且可分配的主机内存区域大小有限无法像板载 DRAM 那样独立、稳定地驻留完整的映射表与元数据。写放大控制较弱缺少了宽裕的板载写缓冲写入合并能力下降通常需要依赖 NAND 侧的 SLC 模拟缓存将部分 TLC/QLC 区域临时当作 SLC 使用来吸收突发写入缓存耗尽后写入性能会明显回落。因此无 DRAM 方案通常用于入门级、对成本敏感的消费场景如轻薄本、性价比台式机在常规负载下可用而企业级、高负载场景则普遍采用带 DRAM 的设计以换取稳定可预测的随机性能与更优的寿命表现。总结与选购参考维度有 DRAM 的 SSD无 DRAMHMB的 SSD映射表驻留位置板载 DRAM主机内存HMB随机读写性能更优访问路径短受 PCIe 链路与主机内存限制偏弱写放大控制强宽裕写缓冲较弱依赖 SLC 模拟缓存等成本 / 功耗 / 发热较高较低典型定位企业级、高性能消费级入门级、成本敏感场景回到最初的问题SSD 是存储器件为什么有的有 DRAM、有的没有答案是——DRAM 是 SSD 固件运行翻译层FTL与缓冲机制的物质基础它能显著提升性能、耐久性与可靠性但也带来成本、功耗与发热代价无 DRAM 方案HMB则通过借用主机内存降低成本换来的是随机性能与高负载表现的妥协。选购时如果你追求稳定、高负载下的随机性能与长寿命优先选择带 DRAM 的型号如果预算有限且负载较轻无 DRAM 的入门级产品也可以接受。延伸阅读本仓库的硬件相关文章可以帮你把这条知识链路补得更完整什么是 PCIe RetimerNVMe SSD 通过 PCIe 高速传输数据信号质量问题的底层原理。CXL 会是大语言模型的内存解决方案吗内存与存储互连技术的前沿讨论。什么是 L1 缓存从 CPU 视角理解缓存这一概念的基本原理。赞分享文档教程技术博客大模型人工智能【免费下载链接】one-small-step这是一个简单的技术科普教程项目主要聚焦于解释一些有趣的前沿的技术概念和原理。每篇文章都力求在 5 分钟内阅读完成。项目地址https://gitcode.com/gh_mirrors/on/one-small-step点击查看免费下载相关推荐多模态模型批量推理优化TensorRT加速实战指南多模态模型批量推理优化TensorRT加速实战指南 引言突破多模态推理的性能瓶颈 你是否还在为多模态模型推理效率低下而困扰视觉 文本模型在CPU上推理单样编程语言编译器语言运行时B站公开课字幕缺失全解析为什么有些课程没有字幕B站公开课作为优质的学习资源平台汇集了众多高校和机构的精品课程但很多用户在学习过程中发现一个普遍问题 为什么有些B站公开课没有字幕 这个问题困扰着众多学教程Mooncake Store SSD 存储部署指南本地 SSD Offload、NVMe KV 后端与 NVMe-oF 共享存储池Mooncake Store SSD 存储部署指南本地 SSD Offload、NVMe KV 后端与 NVMe oF 共享存储池 本文以 Mooncake人工智能大模型模型推理服务后端上一篇pandoc BibLaTeX 解析实战从 InCollection 到 CSL YAML 引用的字段映射与源码解读下一篇4个系统性步骤数据库密码找回工具解决企业级密码管理难题创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进