Do DRAMless SSD's lose HMB when used in USB Enclosures?

Just wondering if its better to buy ones with DRAM when using external usb enclosure as hmb drive may no longer be recognized?

As far as I am aware, you are correct in that HMB doesn’t work with external drives. However, DRAM cache in general is only beneficial if you’re transferring smaller files, as once you saturate the cache speeds will be identical, if not slower using a drive with something like SLC cache.

Dram isn’t really used for a cache, actually. It’s used to hold a lookup table of where everything is, essentially workram for the processor that handles reading and writing the flash and presenting that data over the PCIE bus.
For caching, drives typically use lower bit-per-cell modes, something that afaik almost any NVME controller can do, but that isn’t exposed in a configurable way to the user.(sadly)

Wendel did a great video on that with someone from PureStorage or some such, it was super interesting. I recommend watching it, as it did a much better job than most other publications addressing the topic have done, in my opinion.

5 Likes

This is a common misconception. While onboard DRAM can be used to cache data blocks, its more relevant use-case is to hold the Flash Translation Layer (FTL). This the table that maps ranges of “sectors” as they are presented to the host to the actual NAND packages and blocks they correspond to. If an NVMe SSD doesn’t have onboard DRAM, it can use a small allocation (i.e. tens of MBs) of the host’s system memory to hold the FTL, called a Host Memory Buffer (HMB).

If neither DRAM nor HMB are available (say on a cheap SATA SSD or a USB-attached SSD), the FTL has to be read from the NAND flash itself, and directly updated with no write ordering, coalescing, etc. This is order(s) of magnitude higher latency for the controller than an adjacent DRAM package or the HMB—and on cheaper drives without DRAM this tends to be QLC, which is even worse. Updating the FTL the way has a higher WAF which can lead to a shorter lifespan of the drive if there are small and frequent updates. That’s one reason why DRAM-less drives tend to have a lower endurance rating.

So generally speaking you should seek a SATA SSD with DRAM or a PCIe-attached NVMe SSD for your operating system (and any other storage use-case with small and frequent updates where responsiveness is important). And if the drive is going into a USB enclosure—and you plan to use it for more than slowly-changing and infrequently-accessed bulk storage—it should have DRAM.

3 Likes

My understanding is that SLC cache is used for writes (when available) and DRAM cache is used for reads (when available), but that’s probably an overly-simplistic view. I’m sure it varies quite a bit between one implementation and another.

This topic was automatically closed 273 days after the last reply. New replies are no longer allowed.