为什么有的 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),仅供参考

相关新闻

【AI】手把手WSL源码安装openclaw(Clawdbot、Moltbot)

【AI】手把手WSL源码安装openclaw(Clawdbot、Moltbot)

文章目录WindowsNodejs安装下载安装Nodejs源配置Git安装安装openclaw配置参考自动重启脚本Windows(WSL)安装系统查询可安装列表安装系统配置镜像源安装Nodejs下载软件拷贝软件安装nodejsNodejs源配置安装pnpm安装openclaw配置参考访问获取token访问地址纯粹个人比较喜欢手动安装…

2026/10/7 8:02:06 阅读更多 →
Android 游戏控制器输入处理实战:从按键码到摇杆坐标的完整接入指南

Android 游戏控制器输入处理实战:从按键码到摇杆坐标的完整接入指南

文档教程移动开发 【免费下载链接】android-training-course-in-chinese Android官方培训课程中文版 项目地址: https://gitcode.com/gh_mirrors/an/android-training-course-in-chinese 点击查看 免费下载 本教程选自开源仓库 android-training-course-in-chinese…

2026/10/7 7:57:47 阅读更多 →
ExplorerPatcher 完整指南:5 分钟把 Windows 11 任务栏和开始菜单改回 Win10 布局

ExplorerPatcher 完整指南:5 分钟把 Windows 11 任务栏和开始菜单改回 Win10 布局

ExplorerPatcher 完整指南:5 分钟把 Windows 11 任务栏和开始菜单改回 Win10 布局 【免费下载链接】ExplorerPatcher This project aims to enhance the working environment on Windows 项目地址: https://gitcode.com/GitHub_Trending/ex/ExplorerPatcher …

2026/10/7 7:57:01 阅读更多 →

最新新闻

深入拆解RoCE网络:PFC、ECN与DCQCN机制与调优

深入拆解RoCE网络:PFC、ECN与DCQCN机制与调优

最近半年我接了不少RoCE网络的排障和优化需求,有做存储的、有跑AI训练的,从100G到400G都有。说实话,大部分问题的根源不是网卡也不是交换机硬件性能,而是大家对RoCE这套机制“七分懂三分不懂”:知道要开PFC&#xff0c…

2026/10/7 10:31:09 阅读更多 →
JSP+Servlet+JDBC学生信息管理系统:分页搜索与CRUD实战

JSP+Servlet+JDBC学生信息管理系统:分页搜索与CRUD实战

简介:面向Java Web课程设计与期末作业的学生信息管理系统项目包,涵盖登录验证、学生信息增删改查、课程关联等典型功能,适合正在学习Servlet/JSP、MVC分层架构与数据库编程的初学者。压缩包共209个文件,大小仅4.57MB,包…

2026/10/7 10:31:09 阅读更多 →
Android电子书阅读系统实战:SpringBoot后端与移动端全栈开发解析

Android电子书阅读系统实战:SpringBoot后端与移动端全栈开发解析

1. 项目概述 接手这个基于Android的电子书阅读系统时,我的第一反应是:这又是一个典型的Java全栈毕业设计项目,后端SpringBoot负责业务逻辑,前端Android负责展示交互,再加一套完整的源码文档视频配套。但真正动手做完之…

2026/10/7 10:31:09 阅读更多 →
AI视频补帧后怎么调色

AI视频补帧后怎么调色

AI视频补帧完成后,调色的核心思路是先确认补帧结果是否稳定,再针对补帧带来的色彩变化做校正,最后匹配整体风格。如果补帧已经产生明显的形变或伪影,优先处理源素材而非通过调色掩盖问题。剪映专业版已确认提供基础调色和AI色彩匹…

2026/10/7 10:31:09 阅读更多 →
纯内网开发环境搭建:SSH密钥、跳板机与VSCode Remote-SSH离线部署实战

纯内网开发环境搭建:SSH密钥、跳板机与VSCode Remote-SSH离线部署实战

最近公司把整个研发网完全隔离了,新同事入职后光是把开发环境拉起来就折腾了大半个星期。问得最多的就是一套组合拳:内网里怎么用MobaXterm连跳板机、再跳开发机,以及VSCode到底怎么才能远程写代码。这些实操我基本都趟过一遍,趁热…

2026/10/7 10:31:09 阅读更多 →
x64代码注入实战:从x86迁移到Windows 11的完整复现指南

x64代码注入实战:从x86迁移到Windows 11的完整复现指南

手头这本《逆向工程核心原理》我翻了不止一遍。书里“代码注入”那一章,当年在 Win7 的 32 位虚拟机上跑通时,MessageBox 从目标进程弹出来的瞬间,确实有“看懂黑魔法”的错觉。最近想把这套实验原封不动搬到 64 位 Windows 11 上&#xff0c…

2026/10/7 10:30:08 阅读更多 →

日新闻

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:01:58 阅读更多 →
用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:02:00 阅读更多 →
芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:02:00 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 7:15:40 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 5:29:09 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 9:29:10 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 8:21:32 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 4:21:51 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 1:18:13 阅读更多 →