Accessing non-volatile memory express controller memory manager
Embodiments of the present disclosure generally relate to an NVMe storage device having a controller memory manager and a method of accessing an NVMe storage device having a controller memory manager. In one embodiment, a storage device comprises a non-volatile memory, a volatile memory, and a controller memory manager. The controller memory manager is operable to store one or more NVMe data structures within the non-volatile memory and the volatile memory.
1. A method of accessing a storage device, comprising:
receiving a host write transaction to a controller memory space containing one or more non-volatile memory express (NVMe) queues;
determining whether an address of the host write transaction falls into the NVMe queues;
in response to a determination that the address of the host write transaction falls into the NVMe queues, classifying the host write transaction as a NVMe queue access;
determining whether the host write transaction is associated with a long burst;
in response to a determination that the host write transaction is a long burst host write transaction, classifying the host write transaction as a NVMe data buffer access; and
in response to a determination that the host write transaction is associated with a short data burst, classifying the host write transaction as a pointer access.
2. The method of claim 1 , wherein the controller memory space comprises a SRAM, a DRAM, and a non-volatile memory.
3. The method of claim 2 , further comprising storing the host write transaction into the SRAM, the DRAM, the non-volatile memory or combinations thereof based upon a classification as a NVMe queue access host write transaction, or a NVMe data buffer access transaction.
4. The method of claim 2 , further comprising:
determining whether there is space available in the SRAM for storing the host write transaction classified as pointer access;
in response to a determination that there is space available in the SRAM, storing the host write transaction classified as pointer access to SRAM, and
in response to a determination that there is not space available in the SRAM, storing the host write transaction classified as pointer access to the DRAM.
5. The method of claim 1 , wherein the host write transaction is directed to a controller memory buffer (CMB) of the controller memory space.
6. The method of claim 1 , wherein the host write transaction is directed to a persistent memory region (PMR) of the controller memory space.