在PCIe NVMe SSD的时代,速度已经不再是瓶颈,但成本与效率的平衡依旧是厂商们较量的战场。 当DRAMless SSD出现后,一个问题随之而来:没有本地DRAM缓存,SSD的映射表要放在哪里? 于是,HMB(Host Memory Buffer)应运而生。它让SSD能“借道”主机内存,实现接近有DRAM方案的性能表现。今天,我们就来深入聊聊这项让DRAMless SSD焕发新生的技术。 1 HMB(Host Memory Buffer)介绍 HMB(主机内存缓冲)是NVMe协议中的一项技术,是一种标准规范,只要主机支持均可使用,它允许SSD直接借用主机系统的部分内存(如电脑的DRAM)作为自身的缓存,以弥补自身缓存不足的劣势,从而提升性能并降低成本。随着消费级SSD日益突出的成本压力,HMB技术在消费级市场得到了广泛应用。下面通过几个方面详细介绍HMB技术。 2 HMB的核心作用 a. 替代SSD内置DRAM 传统SSD需要内置DRAM芯片存储FTL(Flash Translation Layer)映射表等元数据,而HMB技术通过共享主机内存,省去了SSD的独立DRAM同时可以节省主控内部的SRAM占用,降低硬件成本。 b. 优化性能 通过高速PCIe接口直接访问主机内存,减少SSD主控与NAND闪存之间的延迟,改善随机读写性能(尤其是4K随机性能)。 3 应用场景 a. 消费级入门SSD 常见于低成本的NVMe SSD(如PCIe 3.0/4.0接口的入门型号),在性价比与性能间取得平衡,适合笔记本、台式机等场景。 b. 移动设备与小尺寸SSD 减少SSD的物理尺寸和功耗,适合M.2 2230等紧凑型设计(如Steam Deck、超薄笔记本)。 c. 缓解DRAM-less SSD的瓶颈 无DRAM的SSD通常性能较弱,HMB通过共享主机内存弥补这一缺陷,使其接近有DRAM SSD的表现。 4 工作原理 a. 内存分配 系统启动时,SSD通过NVMe协议向主机申请一小块内存(通常为数十MB到数百MB),用于存储FTL映射表、读写缓存等关键数据,host配置的内存可以是连续的一段空间,也可以是不连续的多段空间。 内存分配流程如下: 1)首先会通过Identify命令获取SSD是否支持HMB以及最大和最小支持的host memory大小