固态硬盘里的HMB主机内存缓冲区是什么? NAND Flash介绍
科技进步的背后有一条真理:发明者和工程师们首先理解并实现新技术的基础原理,接着才去考虑如何在性能和成本上做进一步优化。这个原则在 SSD 固态存储领域同样适用,也就是人们常说的从实验室到量产阶段。
接下来,我们将介绍一项近年来固态硬盘技术的重要进展——主机内存缓冲区 (Host Memory Buffer,HMB),它利用主机内存来提升存储设备性能,推动了固态硬盘技术的进一步发展。
SSD 缓存设计的权衡因素
在固态硬盘 (SSD) 设计中,增加 NAND Flash 存储单元(闪存颗粒)可以提升容量和性能。然而,正如所有产品设计一样,工程师需要在资源和成本之间找到平衡。
目前,有两种主要方式可以提升存储单元的现有性能:一是提升 NAND Flash 密度,二是增加额外的闪存颗粒,但这会占用更多物理空间。由于硬盘的 PCB 空间都有限,增加闪存颗粒通常意味着就要减少其他元件。
有缓方案(DRAM)
DRAM 代表动态随机存取存储器,该闪存模块安装在固态硬盘的印刷电路板 (PCB) 上,用于存储数据映射表,这些表记录了所有的逻辑块及其物理位置。简单来说,DRAM 让固态硬盘能够更快处理随机数据请求,还用于缓存写入数据,提高写入性能。但 DRAM 会显著提高 SSD 的成本,它的成本可能是普通 NAND Flash 的数倍。
无缓方案(没有 DRAM)
为了降低成本,目前,许多厂商选择移除快速但昂贵的 DRAM,也就是人们常说的「无缓方案」。然而,DRAM 是一种高速的易失性存储器,并不能被轻易取消。没有 DRAM 的设计在数据传输,尤其是处理高容量随机读取时,会面临性能下降和信号完整性的挑战。DRAM 的存在能让数据访问更快,缺少它可能会显著影响硬盘的整体性能。
什么是 HMB 主机内存缓冲区
那么,工程师要如何解决无缓 SSD 的性能问题呢?简单来说,就是使用 HMB(主机内存缓冲区)技术。HMB 允许 SSD 利用主机的内存资源,主动提升性能。
为 SSD 分配主机内存
NVMe 1.2 规范首次引入了 HMB 功能,规定了 HMB 如何将主机内存分配给 SSD 使用:
- NVMe (NVM Express) 是一个开放标准,用于定义如何访问非易失性存储设备,如 NAND Flash。
- NVMe 1.2 规范规定了 HMB 如何将主机内存分配给 SSD 使用。经过适当配置的 SSD 可以与主机通信,申请指定的最小缓冲区 (Buffer) 大小。
- NVMe 1.2 还设置了各种条件和限制,以确保在 SSD 意外断开连接时,数据不会丢失或损坏。
- 要使用 HMB,还需要 SSD 和操作系统都必须同时支持。比如,从 2017 年发布的 Windows 10 1703 版本开始,Windows 系统就已经支持 HMB 技术;Linux 内核从 4.14 版本开始也全面支持HMB。
HMB 通常用于存储 FTL(Flash Translation Layer)映射表,而不是直接存储用户数据。
为什么选择 HMB?从有缓到无缓 SSD
早期的 SSD 设计中,同时使用了非易失性闪存和易失性 RAM 来提高数据处理效率。具体来说,DRAM 设备被用作缓冲区,主要有两个原因:
- DRAM 是易失性的,断电后数据会丢失,因此不适合长期数据存储。
- RAM 设备的读写速度比闪存设备更快。这个特性让 RAM 能够作为「中继站」,在数据传输时提供临时存储,为持续处理任务的 NAND Flash 提供缓解。
缓存中最关键的信息是逻辑地址到物理存储位置的映射,即 L2P(逻辑到物理)表。该表会随着 SSD 的读写频繁更新:
- 关机时,L2P 表会存储在 NAND Flash 中,防止在断电时丢失。
- 开机后,这些表会被加载到 DRAM 中,由控制器继续实时更新。
DRAM 缓存空间越大,通常意味着更灵活的数据管理和更快的响应速度,特别是在处理「随机读取」任务时。
SSD 有 DRAM 缓存运行机制
然而,DRAM 是一种按密度计算的昂贵资源,价格通常是 NAND Flash 的数倍左右,而且短期内也不会改变。因此,尽管 DRAM 具备显著优势,但过去十来年,无 DRAM 的 SSD 也逐渐开始流行。这些 SSD 体积小、成本低,但因缓存空间受限,对 SSD 性能也会有所影响。
无缓 SSD 也将 L2P 表保存在 NAND Flash 中,当控制器需要访问 L2P 表时,会将表加载到控制器的内部 SRAM 中进行更新,然后再次存储在 NAND Flash 中。
无 DRAM 和无 HMB 的 SSD 缓存操作机制
然而,SRAM 的成本更高,容量也较小,典型的 Flash 控制器也只有几兆字节的 SRAM,因此无缓 SSD 的性能通常不如有缓设计。
无 DRAM 和有 HMB 的 SSD 缓存操作机制
这也正是 HMB 技术诞生的根本原因。HMB 允许 SSD 将 L2P 表从 NAND Flash 加载到主机内存中,并通过主机不断刷新缓存,这种「神操作」跟 DRAM 的方法十分相似。
启用了 HMB 的 SSD 在处理随机工作负载时,性能损失并不明显。接下来,我们将展示一些实际测试数据,看看 HMB 对 SSD 性能的影响。
有无 HMB 性能提升对比
在启用 HMB 后,SSD 在「随机读取」操作时的性能会得到显著提升。然而,HMB 的性能提升也会因为工作负载的不同而有所变化。这是因为:主机不总能提供足够的内存空间给 NAND Flash 控制器来使用。
「随机读取」指的是控制器根据主机请求,从 NAND Flash 中不规则的位置提取特定大小的数据。
以下图表展示了在不同工作负载下,使用 HMB 后,数据处理从 1 GB 到 32 GB 时的性能非线性提升:
1GB 数据随机读取
8GB 数据随机读取
32GB 数据随机读取
- 出现这种非线性是由于 HMB 的缓存容量有限,在处理 L2P 表和大量中间数据时,性能提升会逐渐减缓。
- 比如,在处理 32 GB 数据时,IOPS 的增幅相比 8 GB 数据并不太明显,这突显了 HMB 的性能提升存在一定的上限。
- 即便如此,在处理 32 GB 数据时,HMB 仍能带来超过 100000 IOPS 的额外提升,这个提升非常显著。要知道,即使是通过精细的固件优化,也很难实现如此大幅度的性能增长。
IOPS(每秒输入/输出操作)是衡量存储设备性能的关键指标,直接反映了设备处理数据请求的速度。
如何在 Windows 中使用 HMB
如前所述,要使用 HMB 功能,需要你使用的 SSD 和操作系统同时支持。通常情况下:
- 在 SSD 的固件中,通常会预设 HMB 的最小和最大内存占用值。
- 在 Windows 10 1703 及更高版本 Windows 系统中,默认支持 HMB 缓存功能。
如果你安装了 SSD 厂商的官方硬盘驱动或管理程序,通常可以看到是否支持并启用 HMB 功能,这个需要你自己去探索使用;如果你没有安装 SSD 厂商的应用,Windows 会使用系统自带的 StorNVMe 存储控制器驱动程序,该驱动的 HMB 容量上限默认为 64MB。
你可以通过更改注册表,来调整 HMB 容量:
1、使用Windows + R
快捷键打开「运行」对话框,执行regedit
打开注册表编辑器。
2、导航到以下路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorPort
3、新建一个名为HmbAllocationPolicy
的 DWORD (32 位) 值 ,并将其值设置为:
0
:禁用 HMB 功能。1
:启用 HMB,并尝试分配 SSD 固件允许的最小值。2
:启用 HMB,并尝试分配 SSD 固件的首选值。3
:基于设备使用情况,由 SSD 固件控制缓冲区大小。
设置 HmbAllocationPolicy 注册表值
相关文章
2488次重启的惊人实力! 长江存储PC41Q 1TB固态硬盘评测
最近,长江存储推出了PC41Q商用消费级固态硬盘,这款产品引起了广泛关注,其最大亮点在于,使用QLC颗粒的同时,依然能提供媲美TLC颗粒的性能,而且稳定性也得到了极大的保2024-10-17价格相差不到130 2TB版佰维NV7200和佰维NV7400固态硬盘怎么选?
佰维NV7400和佰维NV7200在2TB容量下,价格相差130元,这两款该怎么选择呢?下面我们就来看看全面测评2024-10-16读写超过2000MB/s 可作苹果手机外置存储:影驰PSD01 1TB移动固态硬盘评
影驰宣布推出其首款磁吸移动固态硬盘PSD01,这一产品的亮相,令人眼前一亮,率先发布的1TB版本可谓是个开胃菜,未来还将推出500GB和2TB的不同版本,今天我们就来做详细测评2024-10-16- SSD性能不佳可能有几个原因:驱动器上的存储空间不足,错误的Windows设置干扰,或者可能只需要调整SSD的设置,下面我们就来看看榨取SSD固态硬盘的最后一点性能的技巧2024-10-10
- 如今,我们常见的硬盘主要分为两大类:机械硬盘(HDD)和固态硬盘(SSD),下面我们从几个纬度来分析:工作方式、各自优势、适用场景,详细请看下文介绍2024-10-09
创作与AI应用利器! 西部数据 WD BLUE SN5000 SSD固态硬盘测评
知名的存储厂商西部数据,针对用户的这些需求,扩展了旗下的WD Blue系列,推出全新性能更高且容量更大的产品,WD Blue SN5000就是其中的一个系列,下面我们就来看看详细测2024-10-01新买的固态硬盘首次如何使用? 新SSD到手后一定要先做这几件事!
固态硬盘是电脑中很重要的设备,新入手的固态硬盘ssd到手后该怎么做呢?下面我们就来看看新固态硬盘到手需要做的几件事2024-09-30- 致态木星10上市3年半后,长江存储推出了容量更大、速度更快的移动固态硬盘新品:致态灵·先锋版,突破2100MB/s、能拍超高码率视频、可连各种设备,下面我们就来看看致态灵2024-09-27
开启trim数据还能恢复吗? SSD固态硬盘是否支持trim功能的查看技巧
固态硬盘Trim,是提升SSD性能的关键技术,它并非直接删除操作,而是通过微软与SSD厂商合作的Ata8-Acs2规范中的 Trim 指令,解决SSD使用后可能出现的性能下降问题2024-09-20- 市场上固态硬盘品牌众多,性价比与型号更相关,推荐性价比高的品牌有西部数据、Solidigm、三星等一线品牌,以及铠侠、致钛等二线品牌,西部数据产品性能高,价格合理,售后良好,S2024-09-14
最新评论