IP Library Granted Patent US 11,726,715
Granted Patent B2
US 11,726,715 · App. 17/450,533 · Granted Aug 15, 2023

Efficient data path in compare command execution

Inventor: Shay Benisty (Beer Sheva, IL)
Assignee: Western Digital Technologies, Inc.
G06F3/0659G06F3/0604G06F3/0619G06F3/0631G06F3/0689
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,726,715
App. No.
17/450,533
Granted
Aug 15, 2023
Kind
B2
Abstract

The present disclosure generally relates to efficient execution of compare commands. Reads from the memory device for the compare commands are scheduled. Available chunks of data is received from the memory device, and the corresponding data is received from the host device. The data is compared. If the data does not match, the remaining reads are cancelled, and a compare completion is placed in the completion queue indicating a failed compare command. If all of the data matches, then a compare completion is placed in the completion queue indicating a successful compare command. Read transfers from the host device are scheduled based on availability of read data from the memory device side. By doing so, less buffers are needed to hold the data internally until both chunks of data are available. In so doing, synchronization between read data availability and retrieving data from the host device is synchronized.

Claims (37)

1. A data storage device, comprising:

a memory device; and

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

fetch a compare command from a host device;

retrieve a chunk of data from the memory device, wherein the chunk of data is less than all data associated with the compare command;

retrieve relevant chunk of data from the host device, wherein the relevant chunk of data is retrieved from a different location than the chunk of data retrieved from the memory device, wherein the relevant chunk of data is retrieved out of order from which the relevant chunk of data appears in the host device;

compare the chunk of data and the relevant chunk of data, wherein the comparing comprises:

determining that the chunk of data is equivalent to the relevant chunk of data and then comparing a remainder of data associated with the compare command; or

determining that the chunk of data is not equal to the relevant chunk of data; and

enter a completion entry to a completion queue of the host device.

2. The data storage device of claim 1 , wherein the controller is further configured to decode the chunk of data.

3. The data storage device of claim 2 , wherein the decoding occurs in parallel with the retrieving the relevant chunk of data from the host device.

4. The data storage device of claim 1 , wherein the comparing occurs with a redundant array of inexpensive/independent disks (RAID).

5. The data storage device of claim 1 , wherein the controller is further configured to allocate an XOR bin for executing the compare command.

6. The data storage device of claim 1 , wherein the controller is further configured to schedule read requests for retrieving all the data associated with the compare command.

7. The data storage device of claim 1 , wherein the completion entry indicate the compare command failed upon finding a mismatch between the chunk of data and the relevant chunk of data.

8. The data storage device of claim 1 , wherein the relevant chunk of data is retrieved out of order.

9. The data storage device of claim 1 , wherein the controller is further configured to ignore or cancel all other retrieving associated with the compare command upon finding a mismatch between the chunk of data and the relevant chunk of data.

10. The data storage device of claim 1 , wherein the relevant chunk of data has a same offset as the chunk of data.

11. A data storage device, comprising:

a memory device; and

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

compare less than all data for a compare command, wherein the data is data retrieved from the memory device and from a host device, wherein the comparing is performed using a redundant array of inexpensive/independent disks (RAID), wherein the less than all data for the compare command is a chunk of data from the memory device and a relevant chunk of data from the host device, wherein the relevant chunk of data is retrieved out of order from which the relevant chunk of data appears in the host device, wherein the relevant chunk of data is retrieved from a different location than the chunk of data retrieved from the memory device.

12. The data storage device of claim 11 , wherein the controller is further configured to deliver a compare command failure indication to a completion queue in the host device after comparing less than all data for the compare command.

13. The data storage device of claim 11 , wherein the controller is configured to retrieve the data from the host device in an order that matches data retrieved from the memory device.

14. The data storage device of claim 13 , wherein the order retrieved from the host device is out of order that the data is stored in the host device.

15. The data storage device of claim 11 , wherein the controller is further configured to decode data retrieved from the memory device in parallel with retrieving data from the host device.

16. A data storage device, comprising:

memory means; and

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

fetch less than all data to be compared from a host device, wherein the less than all data to be compared from the host device is a relevant chunk of data retrieved from the host device, wherein the relevant chunk of data compared to a chunk of data from the memory device, wherein the relevant chunk of data is retrieved out of order from which the relevant chunk of data appears in the host device, and wherein the relevant chunk of data is retrieved from a different location than the chunk of data retrieved from the memory means;

decode a chunk of data retrieved from the memory means, wherein the decoding and the fetching occur in parallel; and

compare the fetched data and decoded chunk of data.

17. The data storage device of claim 12 , wherein the controller comprises a compare command scheduler.

18. The data storage device of claim 17 , wherein the compare command scheduler is firmware.

19. The data storage device of claim 17 , wherein the compare command scheduler is coupled to a redundant array of inexpensive/independent disks (RAID).

20. The data storage device of claim 17 , wherein the compare command scheduler is coupled to a flash interface module and a host interface module.

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 - 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 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 Oct 11, 2021
From: BENISTY, SHAY
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 057755/0933 →
Continuity (1)
Related Publication 20230113376A1 · Apr 13, 2023