Dynamic host memory allocation to a memory controller
AssigneeWestern Digital Technologies, Inc.
InventorsJudah Gamliel Hahn, Alon Marcu, Ariel Navon, Alexander Bazarsky, Shay Benisty
Life of this patent
Estimating the term…
Abstract
Technology is described herein for operating non-volatile storage. One aspect is an apparatus that dynamically changes an allocation of host memory that is for the exclusive use of a non-volatile memory controller. The non-volatile memory controller may make a runtime request for additional host memory that is for the exclusive use of the non-volatile memory controller. The non-volatile memory controller might use the additional host memory for a task such as garbage collection, and then release the host memory back to the host.
Claims25
An apparatus, comprising:
- a memory controller comprising:
- a host interface configured to provide communication with a host system that has host memory;
- and
- a non-volatile memory interface configured to access non-volatile memory;
- wherein the memory controller is configured to:
- control access of the host system to the non-volatile memory;
- make a runtime request to the host system for a specified amount of the host memory for exclusive use of the memory controller;
- and
- directly access the host memory over the host interface in response to the host granting the runtime request.
An apparatus comprising:
- host memory;
- and
- a host controller having a memory system interface configured communicate with a memory system having a non-volatile memory controller, the host controller configured to:
- during initialization of the non-volatile memory controller, provide the non-volatile memory controller with an amount of the host memory for exclusive use of the non-volatile memory controller;
- access non-volatile memory in the memory system via the memory system interface;
- receive a request from the non-volatile memory controller after the non-volatile memory controller is initialized for a dynamic change in the amount of the host memory that is allocated for exclusive use of the non-volatile memory controller;
- and
- dynamically change the amount of the host memory that is allocated for exclusive use of the non-volatile memory controller in response to the request.
A method of allocating a Non-volatile Memory Express (NVMe) Host Memory Buffer (HMB) in a host system to a Non-volatile Memory Express (NVMe) memory controller, the method comprising:
- receiving a request from the NVMe memory controller for an amount of host memory in the host system as an HMB during an initialization of the NVMe memory controller;
- in response to the request during initialization, providing the NVMe memory controller with an HMB descriptor list having entries that point to regions of the host memory;
- during runtime after the initialization, receiving a request from the NVMe memory controller for additional host memory for the HMB;
- modifying the HMB descriptor list to include one or more entries to the additional host memory for the HMB;
- and
- providing the NVMe memory controller with an indication that the HMB descriptor list has been updated.
A memory system comprising:
- host memory;
- means for initializing a non-volatile memory controller that has direct memory access of the host memory;
- means for providing the non-volatile memory controller with a descriptor list when initializing the non-volatile memory controller, the descriptor list having entries that point to regions of the host memory that are for exclusive use of the non-volatile memory controller;
- means for dynamically updating the descriptor list in response to a runtime request from the non-volatile memory controller for additional host memory, the updated descriptor list having entries that point to regions of the host memory that are for the exclusive use of the non-volatile memory controller;
- and
- means for providing the non-volatile memory controller with an indication that the descriptor list has been updated in response to the runtime request.
A memory system, comprising:
- host memory;
- a communication interface;
- a host controller in communication with the host memory and the communication interface;
- non-volatile memory;
- and
- a memory controller in communication with the non-volatile memory and the communication interface, the memory controller configured to:
- control access over the communication interface of the host controller to the non-volatile memory;
- during an initialization of the memory controller, request the host controller for an amount of the host memory for exclusive use of the memory controller;
- receive descriptors that point to regions of the host memory that are allocated during the initialization for the exclusive use of the memory controller;
- during runtime of the memory controller, request the host controller for a change in the amount of the host memory that is allocated for the exclusive use of the memory controller;
- receive a change to the descriptors that point to regions of the host memory that are allocated for the exclusive use of the memory controller;
- and
- based on the descriptors, directly access a portion of the host memory that is allocated for the exclusive use of the memory controller.
Dependencies are inferred from the claim text.