PCEVA,PC绝对领域,探寻真正的电脑知识
开启左侧

共享缓存香不香?NVMe固态硬盘HMB测试

[复制链接]
Essence 发表于 2020-8-17 12:12 | 显示全部楼层 |阅读模式
点击数:3464|回复数:4
DRAM-Less无外置缓存设计可以降低SSD制造成本,同时还能在M.2 2280规格下轻松地容纳更多的(4个)闪存颗粒。有了HMB主机内存缓冲功能,自身无缓存芯片的NVMe固态硬盘也能通过向电脑主机借内存的方式,获得一定的缓存空间用以存储FTL闪存映射表等SSD工作所需的元数据。

SSD购买推荐-2020Q2更新里有网友提问,为何西数SN550和铠侠RC10(原东芝RC500)被划入了不同的性能分级当中。原因就在于SN550使用了无缓存设计,尽管有HMB的帮助,但依然无法获得和独立DRAM缓存设计相同的性能。或许有玩家对此不以为然,借群联PS5013-E13主控方案测试之机,我们有机会深入分析HMB对性能的影响以及它的局限性所在。

HMB共享缓存容量的限制:
通过AIDA64检测,CP2000 1TB的HMB预设为:最小3272KB,最大1117376KB(大约1091MB)。



不过受到Windows系统自带stornvme驱动的限制,实际可用HMB缓存容量为64MB。下图是利用nvme-hmb检测HMB共享缓存的分配情况。


除nvme-hmb外,也可以利用Windows自带的事件查看器,查找Microsoft-Windows-Storage-Storport/Operational日志,Actually Allocated是实际已分配容量,Device Minimum是设备要求的最低容量(不能满足的话会直接禁用特性),Device Perferred是设备希望得到的容量(一般也是最大容量)。Policy Maximum是Windows自己设立的容量上限。

16进制4000000h=67108864,即64MB。微软设立了一个64MB的封顶限制,所以CP2000只申请到了64MB共享缓存,而不是它期望的1091MB。


关闭HMB后对比看效果:
我们可以利用注册表编辑器临时关闭HMB功能,通过对比来看这64MB主机共享缓存对性能的实际影响。这个开关在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorPort中,新建一个名为HMBAllocationPolicy的DWORD值,设置为0代表禁用HMB。(1=启用,分配设备允许的最小值;2=启用,分配设备期望的最大值,这也是默认设置;3=基于设备使用情况)


通过对比可以看到HMB主机内存缓存对于随机读写性能的影响较为明显。


另辟蹊径获取更高缓存:
为了实现更高的HMB共享内存容量,可以使用Intel RST模式驱动。这个方法适用于Z270、Z370、Z390等主板,理论上支持傲腾内存的主板都可以开启。以下测试是在技嘉Z390主板上进行,不同主板的界面可能有所不同。首先在BIOS中将SATA模式从默认的AHCI更改为Intel RST Premium With Intel Optane System Acceleration。


然后在新出现的菜单中选择PCIe Storage Dev为RST Controlled,将NVMe固态硬盘管理权交给Intel RST功能。


更改以上设置后需要重装系统才能工作。对于较新的Windows 10版本,系统内已经自带了主板RST模式驱动程序,较老的版本需要通过主板制造商官网下载Intel SATA Preinstall driver(For AHCI/RAID Mode),并在系统安装过程中手动加载来识别硬盘。系统安装完毕后,NVMe固态硬盘使用的驱动名称为iaStorAC。


安装英特尔快速存储技术程序,在管理页面可以看到PCIe固态硬盘(*未开启RST管理模式的情况下这里只显示SATA硬盘)。下图可以看到,Cubex CP2000已经启用HMB功能,并且分配到了1091MB的共享缓存。


通过任务管理器的内存占用来看,这部分缓存应该确实分配了:新装的Windows 10开机内存使用量就超过了4GB。



通过CrystalDiskMark测试可以看到,4K QD32性能确实有所提升,但4K QD1性能是下降的。



PCMark 8存储测试成绩相比普通使用模式也下降了。多占用的内存(64MB->1091MB)并没有带来实用性能的提升,Intel RST模式的尝试可以说是失败的。



此外,通过IOMeter对全盘范围的4K随机读取性能测试也发现,超过1GB容量的HMB缓存并没有发挥作用。


也就是说,固件可能并没有为1GB:1MB的超大HMB缓存做好准备,尽管获得了足量的缓存空间,却并不能实现等同于独立DRAM缓存的效果。就目前来看,HMB能帮助DRAM-Less无缓存固态硬盘提振性能,但尚不能起到替代独立DRAM缓存的效果。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1绝对值 +1 收起 理由
jackyi + 1 赞一个!

查看全部评分

nighttob 发表于 2020-8-17 13:30 | 显示全部楼层
因为RST for PCIe增加了额外的仿真转换层(至少是1个),所有必然会带来延迟上的开销,对低延迟IO来说这种开销就很明显了。
从定性来说是得不偿失,但没法直接做定量对比,还要再控制变量。
StormBolt 发表于 2020-8-21 00:54 | 显示全部楼层
本帖最后由 StormBolt 于 2020-8-21 00:57 编辑

装了三星驱动的pm981用nvme-hmb info查到是disabled,改注册表还是一样,是否三星有自己的一套机制?还是说有缓存的盘就没有这个hmb缓存?
Essence  楼主| 发表于 2020-8-21 16:18 | 显示全部楼层
StormBolt 发表于 2020-8-21 00:54
装了三星驱动的pm981用nvme-hmb info查到是disabled,改注册表还是一样,是否三星有自己的一套机制?还是说 ...

已经自带DRAM缓存的盘自然不会再用HMB
haierccc 发表于 2020-8-24 15:11 | 显示全部楼层
好文啊好文!
想来想去还是傲腾好啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部