IP Library › Granted Patent US 9,916,089
Granted Patent B2
US 9,916,089 · App. 14/819,652 · Granted Mar 13, 2018

Write command overlap detection

Inventor: David A. Palmer (Boise, ID)
Assignee: Micron Technology, Inc.
G06F3/0604G06F3/0619G06F3/0659G06F3/0673G06F3/0688
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,916,089
App. No.
14/819,652
Granted
Mar 13, 2018
Kind
B2
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.

Claims (39)

1. A method for write command overlap detection in a memory system, comprising:

creating a 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 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 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 tree data structure;

removing the placed node associated with the starting logical address and/or the ending logical address of the incoming write command from the tree data structure in response to the logical address of the incoming write command overlapping with a logical address of a write command in the queue;

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 another node in the tree data structure, wherein the another node is associated with the starting logical address and/or the ending logical address of the write command in the pending command queue.

2. The method of claim 1 , including placing the incoming write command in the queue if a logical address of the incoming write command does not overlap with a logical address of a write command in the queue.

3. The method of claim 1 , including aborting the incoming write command if a logical address of the incoming write command overlaps with a logical address of a write command in the queue.

4. The method of claim 1 , including delaying processing of the incoming write command if a logical address of the incoming write command overlaps with a logical address of a write command in the queue.

5. A method for write command overlap detection in a memory system, comprising:

creating a 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 tree data structure;

comparing the node associated with the starting logical address of the incoming write command to an in-numerical-order predecessor node in the 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 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 tree data structure;

removing the placed node associated with the starting logical address of the incoming write command from the tree data structure 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;

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 another node in the tree data structure, wherein the another node is associated with the starting logical address and/or the ending logical address of the write command in the pending command queue.

6. The method of claim 5 , including placing the incoming write command in the queue if the in-numerical-order predecessor node of the node associated with the starting logical address of the incoming write command is an end node or a start/end node, the in-numerical-order successor node of the node associated with the starting logical address of the incoming write command is the node associated with the ending logical address of the incoming write command, and the in-numerical-order successor node of the node associated with the ending logical address of the incoming write command is a start node or a start/end node.

7. The method of claim 5 , including aborting the incoming write command 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, the in-numerical-order successor node of the node associated with the starting logical address of the incoming write command is not the node associated with the ending logical address of the incoming write command, and/or the in-numerical-order successor node of the node associated with the ending logical address of the incoming write command is an end node.

8. The method of claim 5 , including delaying processing of the incoming write command 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, the in-numerical-order successor node of the node associated with the starting logical address of the incoming write command is not the node associated with the ending logical address of the incoming write command, and/or the in-numerical-order successor node of the node associated with the ending logical address of the incoming write command is an end node.

9. The method of claim 8 , including removing the node associated with the starting logical address of the incoming write command and the node associated with the ending logical address of the incoming write command from the tree data structure if processing of the incoming write command is delayed.

10. The method of claim 5 , wherein a number of the nodes associated with starting and/or ending logical addresses comprise a node that is associated with a logical address of a write command in the queue having a single logical address.

11. The method of claim 5 , including executing write commands in the queue in an order in which they were placed in the queue removing the executed commands from the queue.

12. An apparatus, comprising:

an array of memory cells; and

a controller operably coupled to the array and configured to:

create a 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 tree data structure is created in response to two or more write commands being in the queue;

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;

remove the second number of nodes from the tree data structure 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 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 the ending logical address of the write command in the pending command queue.

13. The apparatus of claim 12 , wherein the controller is configured to abort the incoming write command if the logical address of the incoming write command overlaps with the logical address of the write command in the queue and wherein the controller is configured to resend the aborted incoming write command at a later time.

14. The apparatus of claim 12 , wherein the array of memory cells comprises a number of memory devices.

15. The apparatus of claim 12 , wherein the controller is configured to delay processing of the incoming write command if the logical address of the incoming write command overlaps with the logical address of the write command in the queue, and wherein the controller is configured to place the incoming write command in the queue responsive to executing a number of the write commands in the queue.

16. The apparatus of claim 15 , wherein the controller is configured to place the incoming write command in the queue if a logical address of the incoming write command no longer overlaps with a logical address of a write command in the queue.

17. The apparatus of claim 12 , wherein the controller is configured to:

execute a number of the write commands in the queue in an order in which they were placed in the queue; and

place the incoming write command in the queue responsive to executing the number of write commands.

Assignments (8)
RELEASE OF SECURITY INTEREST Recorded Nov 12, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
Reel/Frame 051028/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 9, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050937/0001 →
RELEASE OF SECURITY INTEREST Recorded Aug 23, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 047243/0001 →
SECURITY INTEREST Recorded Jul 13, 2018
From: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 047540/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Jun 8, 2017
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 043079/0001 →
PATENT SECURITY AGREEMENT Recorded Jun 2, 2016
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 038954/0001 →
SECURITY INTEREST Recorded May 12, 2016
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038669/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 6, 2015
From: PALMER, DAVID A.
To: MICRON TECHNOLOGY, INC.
Reel/Frame 036266/0887 →
Continuity (2)
Continuation 13469429 · May 11, 2012
Related Publication 20150355843A1 · Dec 10, 2015