IP Library Granted Patent US 11,556,268
Granted Patent B2
US 11,556,268 · App. 17/237,949 · Granted Jan 17, 2023

Cache based flow for a simple copy command

Inventors: Shay Benisty (Beer Sheva, IL); Judah Gamliel Hahn (Ofra, IL); Ariel Navon (Revava, IL)
Assignee: Western Digital Technologies, Inc.
G06F3/065G06F3/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,556,268
App. No.
17/237,949
Granted
Jan 17, 2023
Kind
B2
Abstract

A method and system for cache-based flow of a simple copy command is disclosed. The present disclosure generally relates to methods and systems for executing a simple copy command in a manner that mitigates additional latency in the device. According to certain embodiments, a copy command manager that includes one or more copy command slots is provided. When a simple copy command is received from a host, a copy command slot is allocated to the command, and the simple copy command is copied into the copy command slot. Upon copying the simple copy command to the copy command slot, an overlap table of the data storage device controller is updated to indicate the copy has been completed, and the completion is posted to the host. After posting, the simple copy command is carried out in the background through completion.

Claims (97)

1. A data storage device, comprising:

a controller comprising an overlap table and a copy command manager comprising a copy command slot, the controller configured to execute a method for a simple copy, the method comprising:

receiving a copy command from a host;

receiving copy data from a NAND;

allocating the copy command slot to the copy command;

updating the overlap table; and

posting a completion of the copy command to the host, wherein the copy command manager further comprises a command queue and wherein the allocating the copy command slot to the copy command further comprises:

determining if the copy command slot is available; and

responsive to the copy command slot not being available, storing the copy command in the copy command queue.

2. The data storage device of claim 1 , wherein the posting of the completion of the copy command occurs prior to completing execution of the copy command.

3. The data storage device of claim 2 , wherein the copy command comprises copying data from a first LBA to a second LBA, the method further comprising:

copying the first LBA and second LBA to the copy command slot;

receiving a read command from the host to read from the second LBA; and

modifying the read command to read from the first LBA.

4. The data storage device of claim 2 , wherein the copy command comprises copying data from a first LBA to a second LBA, the method further comprising:

copying the first LBA and second LBA to the copy command slot;

receiving a copy command from the host to copy data from the first LBA to a third LBA;

flushing the copy command slot; and

pausing a read command until the first LBA is copied to the second LBA.

5. The data storage device of claim 2 , wherein the copy command comprises copying data from a first LBA to a second LBA, the method further comprising:

copying the first LBA and second LBA to the copy command slot;

receiving a write command from the host to write to the first LBA; and

pausing the write command.

6. A data storage device, comprising:

a controller comprising an overlap table and a copy command manager comprising a copy command slot, the controller configured to execute a method for a simple copy, the method comprising:

receiving a copy command from a host;

receiving copy data from a NAND;

allocating the copy command slot to the copy command;

updating the overlap table; and

posting a completion of the copy command to the host, wherein the posting of the completion of the copy command occurs prior to completing execution of the copy command, wherein the copy command comprises copying data from a first LBA to a second LBA, the method further comprising:

copying the first LBA and second LBA to the copy command slot;

receiving a command from the host to copy data from the second LBA to a third LBA; and

copying the first LBA and the third LBA to a second copy command slot.

7. A controller for a data storage device, comprising:

a simple copy command manager comprising a plurality of simple copy command slots;

one or more memory devices comprising computer-readable instructions; and

a processor coupled to the one or more memory devices and configured to execute the computer-readable instructions and cause the controller to perform a method for a simple copy, the method comprising:

receive a simple copy command from a host comprising copying data from a first LBA to a second LBA;

determine if a simple copy command slot is available; and

copy the data, the first LBA, and second LBA to the simple copy command slot, further comprising an overlap table, the computer-readable instructions further cause the processor to:

update the overlap table; and

post a completion of the simple copy command to the host, prior to completing execution of the simple copy command, wherein the computer-readable instructions further cause the processor to:

receive a write command from the host to write a third LBA to the second LBA; and

cancel the simple copy command.

8. The controller of claim 7 , further comprising an overlap table, the computer-readable instructions further cause the processor to:

update the overlap table; and

post a completion of the simple copy command to the host, prior to completing execution of the simple copy command.

9. The controller of claim 8 , wherein the computer-readable instructions further cause the processor to:

receive a write command from the host comprising writing a third LBA to the first LBA; and

pausing the write command.

10. A controller for a data storage device, comprising:

a simple copy command manager comprising a plurality of simple copy command slots;

one or more memory devices comprising computer-readable instructions; and

a processor coupled to the one or more memory devices and configured to execute the computer-readable instructions and cause the controller to perform a method for a simple copy, the method comprising:

receive a simple copy command from a host comprising copying data from a first LBA to a second LBA;

determine if a simple copy command slot is available; and

copy the data, the first LBA, and second LBA to the simple copy command slot, further comprising an overlap table, the computer-readable instructions further cause the processor to:

update the overlap table; and

post a completion of the simple copy command to the host, prior to completing execution of the simple copy command, wherein the computer-readable instructions further cause the processor to:

receive a second simple copy command from the host comprising copying a second data from the second LBA to a third LBA;

determine if a second simple copy command slot is available; and

copy the first data, the first LBA, and third LBA to the second simple copy command slot.

11. The controller of claim 8 , wherein the computer-readable instructions further cause the processor to:

receive a read command from the host comprising reading the second LBA; and

read from the first LBA.

12. A controller for a data storage device, comprising:

a simple copy command manager comprising a plurality of simple copy command slots;

one or more memory devices comprising computer-readable instructions; and

a processor coupled to the one or more memory devices and configured to execute the computer-readable instructions and cause the controller to perform a method for a simple copy, the method comprising:

receive a simple copy command from a host comprising copying data from a first LBA to a second LBA;

determine if a simple copy command slot is available; and

copy the data, the first LBA, and second LBA to the simple copy command slot, wherein the computer-readable instructions to determine if a simple copy command slot is available further comprises:

determining if the copy command slot is available; and

responsive to a command slot not being available, storing the simple copy command in the copy command queue.

13. A system for storing data, comprising:

one or more memory means; and

a controller means configured to perform a method for a simple copy, the method comprising:

receiving a simple copy command from a host;

receiving copy data from a NAND;

allocating, from a simple copy command manager comprising a simple copy command slot, the simple copy command slot to the simple copy command;

updating an overlap table of the controller means; and

posting a completion of the simple copy command to the host, wherein the simple copy command manager further comprises a simple copy command queue and wherein the allocating the simple copy command slot to the simple copy command further comprises:

determining if the simple copy command slot is available; and

responsive to a simple copy command slot not being available, storing the simple copy command in the simple copy command queue.

14. The system of claim 13 , wherein the posting of the completion of the simple copy command to the host comprises posting the completion before completing execution of the simple copy command.

15. The system of claim 14 , wherein the simple copy command comprises copying data from a first LBA to a second LBA, the method further comprising:

copying the first LBA and second LBA to the simple copy command slot;

receiving a write command from the host to write to the first LBA; and

pausing the write command.

16. The system of claim 14 , wherein the simple copy command comprises copying data from a first LBA to a second LBA, the method further comprising:

copying the first LBA and second LBA to the simple copy command slot;

receiving a command from the host to copy data from the second LBA to a third LBA; and

copying the first LBA and the third LBA to a second simple copy command slot.

17. The system of claim 14 , wherein the simple copy command comprises copying data from a first LBA to a second LBA, the method further comprising:

copying the first LBA and second LBA to the simple copy command slot;

receiving a read command from the host to read from the second LBA; and

modifying the read command to read from the first LBA.

Assignments (10)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
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 →
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 - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
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 →
RELEASE OF SECURITY INTEREST AT REEL 056285 FRAME 0292 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058982/0001 →
SECURITY INTEREST Recorded May 19, 2021
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 056285/0292 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2021
From: BENISTY, SHAY; HAHN, JUDAH GAMLIEL; NAVON, ARIEL
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 056026/0709 →