Out of Order Memory Command Fetching
First Claim
Patent Images
1. A memory system comprising:
- a memory device coupled to a non-volatile memory command submission queue in a host computer system via a data communication bus, the non-volatile memory command submission queue including a plurality of non-volatile memory commands issued to the non-volatile memory command submission queue in a first order, the memory device including a plurality of memory dies, the plurality of memory dies including a corresponding plurality of non-volatile memory cells and a command fetching engine including;
an out of order selection module including;
logic operable to examine the plurality of non-volatile memory commands in the non-volatile memory command submission queue;
logic operable to identify an available memory resource in the memory device;
logic operable to identify a non-volatile memory command in the non-volatile memory command submission queue corresponding to the identified available memory resource in the memory device; and
logic operable to fetch the identified non-volatile memory command in a second order independent of the first order of the identified non-volatile memory command in the non-volatile memory command submission queue; and
the memory device including a memory controller including logic operable to process the fetched non-volatile memory commands in the second order.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method that allows out of order fetching of host non-volatile memory commands can improve and maximize the memory device performance. The memory device can examine the non-volatile memory command headers available in the non-volatile memory command queue to select one or more, non-volatile memory commands to be fetched, in an optimum order and executed according to currently available resources in the memory device. The memory device can optimize performance of the non-volatile memory commands by re-ordering the host commands fetched from the host memory.
-
Citations
20 Claims
-
1. A memory system comprising:
-
a memory device coupled to a non-volatile memory command submission queue in a host computer system via a data communication bus, the non-volatile memory command submission queue including a plurality of non-volatile memory commands issued to the non-volatile memory command submission queue in a first order, the memory device including a plurality of memory dies, the plurality of memory dies including a corresponding plurality of non-volatile memory cells and a command fetching engine including; an out of order selection module including; logic operable to examine the plurality of non-volatile memory commands in the non-volatile memory command submission queue; logic operable to identify an available memory resource in the memory device; logic operable to identify a non-volatile memory command in the non-volatile memory command submission queue corresponding to the identified available memory resource in the memory device; and logic operable to fetch the identified non-volatile memory command in a second order independent of the first order of the identified non-volatile memory command in the non-volatile memory command submission queue; and the memory device including a memory controller including logic operable to process the fetched non-volatile memory commands in the second order. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A method of fetching memory commands from a plurality of memory command submission queues in a host computer system comprising:
-
receiving a notification in a memory device that a plurality of submission memory commands have been issued to the plurality of memory command submission queues in a first order; examining the plurality of memory commands in the plurality of memory command submission queues; identifying an available memory resource in the memory device; identifying at least one memory command in the plurality of memory command submission queues corresponding to the identified available memory resource in the memory device; fetching the at least one identified memory command in a second order independent of the first order of the identified at least one memory command in the plurality of memory command submission queues; and processing the at least one fetched memory command in the second order. - View Dependent Claims (19, 20)
-
Specification