Write command overlap detection
AssigneeMicron Technology, Inc.
InventorDavid A. Palmer
Life of this patent
Estimating the term…
Abstract
The present disclosure includes methods and apparatuses that include write command overlap detection. A number of embodiments include receiving an incoming write command and comparing a logical address of the incoming write command to logical addresses of a number of write commands in a queue using a tree data structure, wherein a starting logical address and/or an ending logical address of the incoming write command and a starting logical address and/or an ending logical address of each of the number of write commands are associated with nodes in the tree data structure.
Claims20
A method for write command overlap detection in a memory system, comprising:
- creating an active command queue tree data structure comprising a number of nodes, each of the number of nodes being associated with a starting logical address and/or an ending logical address of a write command in a queue of write commands, wherein the active command queue tree data structure is created in response to two or more write commands being in the queue;
- placing a node associated with a starting logical address and/or an ending logical address of an incoming write command in the active command queue tree data structure;
- determining if a logical address of the incoming write command overlaps with a logical address of a write command in the queue of write commands by comparing the nodes in the active command queue tree data structure, wherein comparing the nodes in the active command queue tree data structure includes:
- comparing the node associated with the starting logical address of the incoming write command to an in-numerical-order predecessor node in the active command queue tree data structure;
- comparing the node associated with the starting logical address of the incoming write command to an in-numerical-order successor node in the active command queue tree data structure;
- and
- comparing the node associated with the ending logical address of the incoming write command to an in-numerical-order successor node in the active command queue tree data structure;
- removing the previously-placed node associated with the starting logical address and/or the ending logical address of the incoming write command from the active command queue tree data structure and placing the incoming write command in a pending command queue in response to the logical address of the incoming write command overlapping with a logical address of a write command in the queue;
- and
- placing a node in the tree data structure, wherein the node is associated with the starting logical address and/or ending logical address of the write command in the pending command queue, after a period of time.
A method for write command overlap detection in a memory system, comprising:
- creating an active command queue tree data structure comprising nodes associated with starting and/or ending logical addresses of each write command of a number of write commands in a queue in response to two or more write commands being in the queue;
- placing a node associated with a starting logical address of an incoming write command and a node associated with an ending logical address of an incoming write command in the active command queue tree data structure;
- determining if the logical address of the incoming write command overlaps with a logical address of a write command in the queue of write commands, including:
- comparing the node associated with the starting logical address of the incoming write command to an in-numerical-order predecessor node in the active command queue tree data structure;
- comparing the node associated with the starting logical address of the incoming write command to an in-numerical-order successor node in the active command queue tree data structure;
- comparing the node associated with the ending logical address of the incoming write command to an in-numerical-order successor node in the active command queue tree data structure;
- and
- removing the previously-placed node associated with the starting logical address of the incoming write command from the active command queue tree data structure and placing the incoming write command in a pending command queue if the in-numerical-order predecessor node of the node associated with the starting logical address of the incoming write command is a start node;
- and
- placing a node in the tree data structure, wherein the node is associated with the starting logical address and/or ending logical address of the write command in the pending command queue, after a period of time.
An apparatus, comprising:
- an array of memory cells;
- and
- a controller operably coupled to the array and configured to:
- create an active command queue tree data structure comprising a first number of nodes associated with a starting logical address and/or an ending logical address of each write command in a queue of write commands, and a second number of nodes associated with a starting logical address and/or an ending logical address of an incoming write command, wherein the active command queue tree data structure is created in response to the number of write commands in the queue reaching a first threshold number;
- compare the second number of nodes to the first number of nodes to determine if a logical address of the incoming write command overlaps with a logical address of a write command in the queue, wherein comparing the second number of nodes to the first number of nodes includes:
- comparing a node of the second number of nodes that is associated with the starting logical address of the incoming write command to a node of the first number of nodes that is associated with an in-numerical-order predecessor node in the active command queue tree data structure;
- comparing the node of the second number of nodes that is associated with the starting logical address of the incoming write command to a node of the first number of nodes that is associated with an in-numerical-order successor node in the active command queue tree data structure;
- comparing a node of the second number of nodes that is associated with the ending logical address of the incoming write command to a node of the first number of nodes that is associated with an in-numerical-order successor node in the active command queue tree data structure;
- remove the second number of nodes from the active command queue tree data structure and place the incoming write command in a pending command queue in response to the logical address of the incoming write command overlapping with the logical address of the write command in the queue;
- and
- place a node in the tree data structure, wherein the node is associated with the starting logical address and/or ending logical address of the write command in the pending command queue, after a period of time.
Dependencies are inferred from the claim text.