System and method for speculative execution of commands using the controller memory buffer
AssigneeWestern Digital Technologies, Inc.
InventorShay Benisty
Life of this patent
Estimating the term…
Abstract
Systems and methods for speculative execution of commands using the controller memory buffer are disclosed. NVM Express (NVMe) implements a paired submission queue and completion queue mechanism, with host software on the host device placing commands into the submission queue and thereafter notifying the memory device of the commands on the submission queue. The submission queue may be resident in the memory device, such as in controller buffer memory. Prior to notice by the host device, the memory device may determine that the commands are placed in the submission queue and may speculatively execute the commands.
Claims20
A method comprising:
- prior to a host device notifying a memory device that a command is posted to a submission queue, the memory device:
- reading the command from the submission queue;
- and
- processing the command;
- determining whether the host device has notified the memory device that the command is posted to the submission queue;
- and
- in response to determining that the host device has notified the memory device that the command is posted to the submission queue, notifying the host device of completion of the command via a completion queue.
A non-volatile memory device comprising:
- a non-volatile memory;
- a communication interface configured to communicate with a host device in order for the host device to cause one or more commands to be stored in a submission queue;
- and
- a controller in communication with the non-volatile memory and the communication interface, the controller configured to:
- prior to the host device notifying that the one or more commands are stored in the submission queue:
- read the one or more commands;
- determine an operation internal to the memory device to perform in order to process the one or more commands;
- and
- at least partly perform the operation internal to the memory device;
- and
- after the host device notifies that the one or more commands are stored in the submission queue:
- determine an operation external to the memory device to perform in order to process the one or more commands;
- and
- perform the operation external to the memory device.
A non-volatile memory system comprising:
- a non-volatile memory:
- a communication interface configured to communicate with a host device in order for the host device to cause one or more commands to be stored in a submission queue;
- means for determining, prior to the host device notifying that the one or more commands are stored in the submission queue, that the one or more commands are stored in the submission queue;
- means for determining whether to speculatively process the one or more commands stored in the submission queue;
- and
- responsive to determining to speculatively process the one or more commands stored in the submission queue, means for speculatively processing the one or more commands.
Dependencies are inferred from the claim text.