SSDs often, but not always, come with DRAM for caching. While it’s possible to embed the DRAM into the controller, more commonly this memory lives in one or more packages external to the controller. These can be standard DDR3 or DDR4, or be a low-power form of DRAM to reduce power consumption. They are often not dissimilar to what you find on your system’s memory sticks. However, for usage on a SSD the advantage of latency is more important than the higher bandwidth and DRAM is orders of magnitude faster than flash memory for quick access look-ups. Controllers also include a small amount of SRAM which is faster but more expensive and can be utilized for caching.
While DRAM can be used as a write cache, most typically it acts as a metadata cache for the SSD. Metadata, or data about data, includes mapping and addressing information to help the SSD translate between physical and logical data locations. This bridges the gap between the filesystem and storage. The metadata is stored in a Lookup Table (LUT) for rapid access. Metadata can also include information used for wear leveling, data age, and more. Usually the most recently used and most often used metadata will appear in DRAM with eviction based on a Least Recently Used (LRU) caching policy. The SSD will also have a complete copy in the system reserved area of the NAND flash for committed data.
The Host Memory Buffer, or HMB (not to be confused with HBM), feature of the NVMe specification allows a DRAM-less drive to utilize some system memory for this caching. This may only be tens of megabytes which is adequate for normal usage. By default, modern SSDs usually allocate 64MB with a normal maximum of 100MB under Windows, but it is possible to allocate far more. Allocation does not mean the memory is actually used and the OS may reclaim the memory if necessary. There are utilities available to test is HMB is enabled and it can also be checked with nvme-cli via Get-Feature with FID 0Dh.
HMB is not quite as effective as dedicated DRAM but modern drives can have high performance without DRAM. DRAM-less drives may have drawbacks like higher write amplification, which reduces endurance, or weaker sustained performance, and background maintenance will have higher overhead. This is especially true for SATA and QLC drives. However, these drives are improving with intelligent controllers, and NVMe drives have the benefit of HMB which works well with cheaper drives as they rarely need a lot of mapping headroom.
Most of our drives come with DRAM for high performance. The amount varies from drive to drive and based on capacity, but is always plentiful for even heavy workloads. Our Rocket 2230 and 2242 lack DRAM but support HMB in order to help keep the form factor small. It’s not unusual for smaller/shorter NVMe drives to be DRAM-less due to space limitations. It is possible to embed DRAM into a single package with the flash and the controller, but this is expensive and has thermal drawbacks. Our goal is always to have the best performance possible, balanced with other factors like affordability to generate our diverse product stack.
Relative access latencies - Source: Intel Patent US 10929285
Latency sources including LUT - Source: Marvell, FMS 2015
For more information on HMB and SSD DRAM, please see Phison's blog on the subject.
See our storage products here.