IP Library Granted Patent US 11,640,264
Granted Patent B2
US 11,640,264 · App. 17/460,531 · Granted May 2, 2023

Parallel commands overlap detection based on queue-depth

Inventors: Shay Benisty (Beer Sheva, IL); Amir Segev (Meiter, IL)
Assignee: Western Digital Technologies, Inc.
G06F3/0659G06F3/0604G06F3/0679
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 11,640,264
App. No.
17/460,531
Granted
May 2, 2023
Kind
B2
Abstract

The present disclosure generally relates to searching an overlap table for data requested to be read in a plurality of read commands received. Rather than searching the table for data corresponding to each command individually, the searching occurs for the plurality of commands in parallel. Furthermore, the overlap table can comprise multiple data entries for each line. The number of read commands can be accumulated prior to searching, with the accumulating being a function of a queue depth permitted by the host device. Parallel searching of the overlap table reduces the average search time.

Claims (41)

1. A data storage device, comprising:

a memory device; and

a controller coupled to the memory device, wherein the controller is configured to:

maintain an overlap table, wherein the overlap table comprises at least one line of data to be written to the memory device, wherein each line of data comprises at least one entry;

accumulate a plurality of read commands; and

search the overlap table line by line for data corresponding to the plurality of read commands, wherein the searching occurs prior to executing the plurality of read commands, wherein the search for data comprises searching for data corresponding to each read command of the plurality of read commands simultaneously; and

return data corresponding to the plurality of read commands to a host.

2. The data storage device of claim 1 , wherein each entry in a line is searched sequentially.

3. The data storage device of claim 1 , wherein the at least one entry comprises a plurality of entries.

4. The data storage device of claim 1 , wherein the controller is configured to accumulate the plurality of read commands in a command pool.

5. The data storage device of claim 4 , wherein the controller is configured to determine whether the command pool is empty.

6. The data storage device of claim 4 , wherein the controller is configured to determine whether any received read commands overlap with a previously received read command.

7. The data storage device of claim 4 , wherein the controller is configured to determine whether a number of pending read commands that have been accumulated is equal to a queue depth threshold.

8. The data storage device of claim 1 , wherein the controller is configured to pause arrival of new read commands upon reaching a queue depth threshold.

9. The data storage device of claim 1 , wherein the controller is configured to release the plurality of read commands to read data from the memory device upon determining the data to be read is not in the overlap table.

10. The data storage device of claim 1 , wherein the controller is configured to mark a command of the plurality of commands as an overlap command upon determining that an entry in the overlap table corresponds to data to be read for the command.

11. The data storage device of claim 1 , wherein the controller is configured to accumulate read commands until a queue depth threshold is reached.

12. The data storage device of claim 11 , wherein the controller is configured to accumulate read commands until a timing threshold is reached.

13. A data storage device, comprising:

a memory device; and

a controller coupled to the memory device, wherein the controller is configured to:

maintain an overlap table, wherein the overlap table comprises a first line of data to be written to the memory device and a second line of data to be written to the memory device, wherein the first line of data comprises a first plurality of entries, and wherein the second line of data comprises a second plurality of entries;

receive a first read command;

search the first line of the overlap table for an entry corresponding to the first read command;

receive a second read command;

search the second line of the overlap table for an entry corresponding to either the first read command or the second read command;

search the first line of the overlap table for an entry corresponding to the second read command, wherein the searching occurs prior to executing the first read command or the second read command, wherein the search for data comprises searching for data corresponding to the first read command and the second read command simultaneously; and

return data corresponding to the first read command and the second read command to a host.

14. The data storage device of claim 13 , wherein the controller is further configured to search a first portion of the first line of the overlap table for an entry corresponding to the first read command, wherein the controller is further configured to search a second portion of the first line of the overlap table for an entry corresponding to either the first read command or the second read command, wherein the search of the second portion comprises searching for an entry corresponding to the first read command or the second read command simultaneously.

15. The data storage device of claim 13 , wherein the second command is received prior to searching the second line and after completion of searching the first line.

16. The data storage device of claim 13 , wherein the second command is received prior to completion of searching the first line.

17. A data storage device, comprising:

memory means; and

a controller coupled to the memory means, wherein the controller is configured to:

maintain an overlap table comprising a plurality of lines, wherein each line comprises a plurality of entries of data;

accumulate a plurality of read commands, wherein the plurality of read commands corresponds to a number of read commands that a host device sends to the data storage device prior to receiving a completion command from the data storage device;

search an individual line of the plurality of lines for data corresponding to each read command of the plurality of read commands, wherein the searching occurs prior to executing the plurality of read commands, wherein the search for data comprises searching for data corresponding to the plurality of read commands simultaneously; and

return data corresponding to the plurality of read commands to a host.

18. The data storage device of claim 17 , wherein the number of read commands accumulated is dynamic.

19. The data storage device of claim 17 , wherein the plurality of read commands is less than the number of read commands that the host device sends prior to receiving a completion command due to reaching an accumulation time threshold.

20. The data storage device of claim 17 , wherein the controller is further configured to pause arrival of new read commands upon reaching a queue depth thresholds, wherein the controller is configured to unpause arrival of new commands upon completion of the search.

Assignments (10)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
RELEASE OF SECURITY INTEREST AT REEL 058426 FRAME 0815 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058965/0679 →
SECURITY INTEREST Recorded Dec 9, 2021
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 058426/0815 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2021
From: BENISTY, SHAY; SEGEV, AMIR
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 057331/0672 →
Continuity (1)
Related Publication 20230067236A1 · Mar 2, 2023
Cited By (1)
US 12,511,078