Controller memory buffer (CMB) as cache
AssigneeSanDisk Technologies LLC
InventorsAmir Segev, Shay Benisty
Life of this patent
Estimating the term…
Loading patent…
AssigneeSanDisk Technologies LLC
InventorsAmir Segev, Shay Benisty
Estimating the term…
A controller memory buffer (CMB) is used by a host device for numerous purposes. One such purpose is to have data placed in CMB in response to a read command. The data is read from the memory device and placed in the CMB. However, for efficiency purposes, the data storage device may pre-fetch data. Pre-fetched data is stored in volatile memory that is distinct from CMB, but oftentimes in dynamic random access memory (DRAM), of which the CMB is a part. Rather than copying the data from DRAM and restoring the data in CMB, the data storage device can simply provide the DRAM address without moving the data to CMB, thus saving the step of copying data from DRAM to CMB.
A data storage device, comprising:
A data storage device, comprising:
A data storage device, comprising:
Dependencies are inferred from the claim text.
Drawings are temporarily unavailable. Open the PDF at USPTO
From the US filing history. Foreign family members aren’t listed.
Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory: in block erasable memory, e.g. flash memory
Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches: with prefetch
Details relating to flash memory management: temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
Computing and data processing
About 17 years 10 months of term left · ends 28 Aug 2044 (estimated)
Embodiments of the present disclosure generally relate to efficient controller memory buffer (CMB) utilization.
Some forms of non-volatile memory (NVM) express (NVMe) solid state drives (SSDs) hold a local dynamic random access memory (DRAM) where a portion of the DRAM is used as a controller memory buffer (CMB). CMB is a feature where the data storage device holds some local memory for host device usage. The CMB is managed by the host device. The CMB can be used for submission queues (SQs), completion queues (CQs), physical region page (PRP)/scatter gather list (SGL) (PRP/SGL) lists, and most commonly used user data.
When the host device issues an input/output (I/O) command, the host device can point to the CMB as the location of the data. For read commands, for example, once the controller sends a completion, the host device knows the data is in the CMB, and the host device can read the data using MemRd rather than an NVMe I/O command.
So that the manner in which the above recited features of the present disclosure can be understood in detail, a more particular description of the disclosure, briefly summarized above, may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of this disclosure and are therefore not to be considered limiting of its scope, for the disclosure may admit to other equally effective embodiments.
FIG. 1 is a schematic block diagram illustrating a storage system in which a data storage device may function as a storage device for a host device, according to certain embodiments.
FIG. 2 is a schematic illustration of a data storage device command flow according to one embodiment.
To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the figures. It is contemplated that elements disclosed in one embodiment may be beneficially utilized on other embodiments without specific recitation.
In the following, reference is made to embodiments of the disclosure. However, it should be understood that the disclosure is not limited to specific described embodiments. Instead, any combination of the following features and elements, whether related to different embodiments or not, is contemplated to implement and practice the disclosure. Furthermore, although embodiments of the disclosure may achieve advantages over other possible solutions and/or over the prior art, whether or not a particular advantage is achieved by a given embodiment is not limiting of the disclosure. Thus, the following aspects, features, embodiments and advantages are merely illustrative and are not considered elements or limitations of the appended claims except where explicitly recited in a claim(s). Likewise, reference to “the disclosure” shall not be construed as a generalization of any inventive subject matter disclosed herein and shall not be considered to be an element or limitation of the appended claims except where explicitly recited in a claim(s).
A controller memory buffer (CMB) is used by a host device for numerous purposes. One such purpose is to have data placed in CMB in response to a read command. The data is read from the memory device and placed in the CMB. However, for efficiency purposes, the data storage device may pre-fetch data. Pre-fetched data is stored in volatile memory that is distinct from CMB, but oftentimes in dynamic random access memory (DRAM), of which the CMB is a part. Rather than copying the data from DRAM and restoring the data in CMB, the data storage device can simply provide the DRAM address without moving the data to CMB, thus saving the step of copying data from DRAM to CMB.