Question Host Buffer Memory - HBM -

So...anyone know what it takes to turn off HBM for one of the new DRAM-less NVME drives...or turn it on if it should be defaulting to off.

These seem to be a pretty common feature for the new budget PCIe Gen4 NVME's that are popping up. I've read where it's a good idea to not use it, though, to protect against data loss with unexpected shutdowns as with a power loss.

As I understand it, HBM uses a bit of main memory DRAM to help mitigate the absence of the on-device DRAM cache. It probably wouldn't be a problem in a laptop...which is a good application since these also tend to be much lower power use than drives with DRAM cache. But my plan is to put it in a desktop for a games drive since NVME will be needed for DirectStorage and I'd like to have the option of disabling it if it proves a problem.
 
Last edited:
So...anyone know what it takes to turn off HBM for one of the new DRAM-less NVME drives...or turn it on if it should be defaulting to off.

These seem to be a pretty common feature for the new budget PCIe Gen4 NVME's that are popping up. I've read where it's a good idea to not use it, though, to protect against data loss with unexpected shutdowns as with a power loss.

As I understand it, HBM uses a bit of main memory DRAM to help mitigate the absence of the on-device DRAM cache. It probably wouldn't be a problem in a laptop...which is a good application since these also tend to be much lower power use than drives with DRAM cache. But my plan is to put it in a desktop for a games drive since NVME will be needed for DirectStorage and I'd like to have the option of disabling it if it proves a problem.
Device manager/disk drives.
Properties/policy for the disk.
 
Device manager/disk drives.
Properties/policy for the disk.
Enable Write Cache...and disable write-cache buffer flushing.

Yup...I've seen those selections on every drive property box since...oh...NT 4.0 I think, almost certainly Windows 7. That means even on "spinners" as I see with the SATA HDD and SSD's I have in my system now.

Are you saying that also controls the host buffer memory cache used by those NVME's that support it?
 
Enable Write Cache...and disable write-cache buffer flushing.

Yup...I've seen those selections on every drive property box since...oh...NT 4.0 I think, almost certainly Windows 7. That means even on "spinners" as I see with the SATA HDD and SSD's I have in my system now.

Are you saying that also controls the host buffer memory cache used by those NVME's that support it?
Don't know.

If the ssd has a toolbox perhaps look through that.
 
its not same, drive and windows driver (nvme 1.2 with hmb - win10 1607) both have to support it
basicly its moving L2P table from drive to system ram, but its not full drive map, only small portion worth few megabytes
this cant be turned off in device manager
thats the drive table with placement of files where they are stored on drive
theres also hmb fast write buffer to utilise some extra ram as write cache, this can be turned off in device manager as it acts as normal drive dram

HMB on/off can be done in windows registry on this key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorPort
DWORD - HMBAllocationPolicy (values: 0 = off,1 = 8MB buffer,2= 64MB buffer, 3 = firmware controled buffer size)

you can google some HMB results to know how much it will impact performance
here some random test result
post.cgi
 
Last edited:
  • Like
Reactions: chrysalis
...
HMB on/off can be done in windows registry on this key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorPort
DWORD - HMBAllocationPolicy (values: 0 = off,1 = 8MB buffer,2= 64MB buffer, 3 = firmware controled buffer size)
...
I'd seen reference to a registry entry controlling it but didn't really want that. At least I hoped to find it would have some sort of control panel, perhaps in one of Windows' settings, or a new driver that Windows Update will provide. Perhaps even something in the Group Policy Editor, I have Win11 Pro.

Do you know if this is provided for with Windows' "Standard NVM Express Controller" driver seen under Storage controllers in Device Manager?

At any rate, I will check this out once I've installed the drive. I'm also planning to install Crucial's Storage Executive app to see if it offers anything.

HMB is about read IOPS/bandwith
HMB's not really a data cache as I understand it and indeed is quite small, less than 100MB. I've read that it's only holding look-up tables, that must be the L2P table you mention. That enables rapid access to data locations on the drive. I can see how that might help with IOPS and overall throughput as the search time for a data cell is reduced...by half at least. Not sure how that helps with bandwidth. I can also assume that, as with most caches, the predictive algorithm which decides what to hold in the cache rules since a cache miss means delays.

The drive I'm looking at also uses QLC NAND which can be quite a bit slower than TLC, but it's the SLC cache the controller creates out of a block of QLC that speeds that up to very near typical NVME write bandwidth. Read bandwidth of the gen 4 drive I'm getting is already far greater than the gen 3 socket it will be installed in. Also, the drive carves out rather a large chunk of QLC to use as the SLC cache: it can write at full speed for up to 550GB, over 1/4 of the drives capacity. After cloning the partition to load up the drive when new it's not likely to put that to test ever again.

I am aware all this has definite limitations. HMB cache is not the same as local DRAM caching with TLC NAND and isn't as performant, but then this is a budget drive so compromises are to be expected in order to be affordable at high capacities (2TB in my case). It wouldn't be a suitable drive for applications that write and read large sequential data blocks frequently. But this will be used to hold games mostly and aside from the initial install most games' data access is not at all like that. The one thing I do have to watch for is the drive getting over-full as that will impact how large an SLC cache it can carve out of the QLC NAND as well as the over-provisioning considerations all SSD's are subject to.
 
Last edited:
I'd seen reference to a registry entry controlling it but didn't really want that. At least I hoped to find it would have some sort of control panel, perhaps in one of Windows' settings, or a new driver that Windows Update will provide. Perhaps even something in the Group Policy Editor, I have Win11 Pro.

Do you know if this is provided for with Windows' "Standard NVM Express Controller" driver seen under Storage controllers in Device Manager?

At any rate, I will check this out once I've installed the drive. I'm also planning to install Crucial's Storage Executive app to see if it offers anything.
at default drive firmware sets that up through nvme driver in background, it should be visible in eventviewer during drive configuration
no manual config anywhere, only through registry

microsoft allows 3rd party apps to change it with api calls (storport.h), no clue if crucial uses those api calls in theirs app to let you control it
 
HMB's not really a data cache as I understand it and indeed is quite small, less than 100MB. I've read that it's only holding look-up tables, that must be the L2P table you mention.
pretty much, l2p table converts logical adress into physical adress, logical adress is where operating system thinks that data get stored and physical adress is where it is actualy stored...simple terms OS to nand translator
here some reading if interested https://patents.google.com/patent/WO2017112357A1/en
 
at default drive firmware sets that up through nvme driver in background, it should be visible in eventviewer during drive configuration
no manual config anywhere, only through registry

microsoft allows 3rd party apps to change it with api calls (storport.h), no clue if crucial uses those api calls in theirs app to let you control it
I have to say this is a bit annoying, and not just because I do like to twiddle the knobs of my machine :) But because I have read it's suggested disabling it if your machine is at risk of sudden power outage with some even saying only enable it if it's on an UPS. Burying it in a registry entry makes that difficult, especially for novices. I might should make me a couple .reg files to do it quickly but I'm increasingly aware how diddling in the registry as I used to is much more dangerous with modern Windows installations.

Also, based on what I read in the NVM Express 1.3 spec, the HMB buffer is set up at the request of drive firmware during it's initialization. That suggests to me that simply changing it in the registry will require a reboot. Perhaps the api call operates dynamically but I will need a utility to do that.
 
Last edited:
at default drive firmware sets that up through nvme driver in background, it should be visible in eventviewer during drive configuration
no manual config anywhere, only through registry

microsoft allows 3rd party apps to change it with api calls (storport.h), no clue if crucial uses those api calls in theirs app to let you control it
OK...kind of an FYI...

I got my Crucial P3 Plus today and have set it up in the system. I installed Crucial's Storage Executive software to "manage" the drive, it had a Drive Details screen that indicated the drive is HMB capable but was not running it at the time. As initially installed the drive was using the default Windows storage controller driver, StorNVMe. I then installed a Micron NVME driver I retrieved from from the Crucial support website and THAT enabled HMB for the drive, at least as it's reported with Crucial's Storage Executive software. There is no way I can see in the Storage Executive software to toggle HMB off or on.

There is also no registry entry at the key mentioned above to make any changes.

So I can surmise from this that HMB is not universally enabled by the default Windows storage controller drivers. I emphasize universally because while it's the case with Crucial it may not be with others. I wonder how many people install their new NVME's but never go looking for the drivers for it since it appears to work just fine. I also needed that driver to set up an over provisioning policy.

And separately, Crucial's SE package includes a "Momentum Cache" feature to improve sustained performance that is completely separate from HMB. It comes with a disclaimer that it should only be used with a battery backup, I wonder if this was the "host memory cache" feature the review I read was referring too.
 
Last edited:
OK...kind of an FYI...

I got my Crucial P3 Plus today and have set it up in the system. I installed Crucial's Storage Executive software to "manage" the drive, it had a Drive Details screen that indicated the drive is HMB capable but was not running it at the time. As initially installed the drive was using the default Windows storage controller driver, StorNVMe. I then installed a Micron NVME driver I retrieved from from the Crucial support website and THAT enabled HMB for the drive, at least as it's reported with Crucial's Storage Executive software. There is no way I can see in the Storage Executive software to toggle HMB off or on.

There is also no registry entry at the key mentioned above to make any changes.

So I can surmise from this that HMB is not universally enabled by the default Windows storage controller drivers. I emphasize universally because while it's the case with Crucial it may not be with others. I wonder how many people install their new NVME's but never go looking for the drivers for it since it appears to work just fine. I also needed that driver to set up an over provisioning policy.

And separately, Crucial's SE package includes a "Momentum Cache" feature to improve sustained performance that is completely separate from HMB. It comes with a disclaimer that it should only be used with a battery backup, I wonder if this was the "host memory cache" feature the review I read was referring too.
its possible, HMB on microsoft driver is limited to 64MB, micron drive could need more than that