IP Library Granted Patent US 11,775,210
Granted Patent B2
US 11,775,210 · App. 17/177,505 · Granted Oct 3, 2023

Storage system and method for device-determined, application-specific dynamic command clustering

Inventors: Ramanathan Muthiah (Bangalore, IN); Narendhiran Chinnaanangur Ravimohan (Bangalore, IN); Balaji Thraksha Venkataramanan (Bangalore, IN); Ramkumar Ramamurthy (Bangalore, IN)
Assignee: Western Digital Technologies, Inc.
G06F3/0659G06F3/0604G06F3/0673
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,775,210
App. No.
17/177,505
Granted
Oct 3, 2023
Kind
B2
Abstract

A storage system and method for device-determined, application-specific dynamic command clustering are provided. In one embodiment, the storage system comprises a memory and a controller. The controller is configured to analyze commands received from a host to detect a pattern of a plurality of commands; inform the host of the pattern; receive, from the host, a single command comprising an identifier associated with the plurality of commands; and in response to receiving the single command from the host, executing the plurality of commands. Other embodiments are provided.

Claims (54)

1. A storage system comprising:

a memory; and

a controller configured to:

analyze commands received from a host to detect a pattern of a plurality of commands, wherein the plurality of commands comprises a plurality of logical addresses across a plurality of logical regions of the memory;

based on the detected pattern:

create a wrapper logical-to-physical translation address for a possible new cluster comprising certain ones of the plurality of commands, wherein the wrapper logical-to-physical translation address is in addition to existing logical addresses of the certain ones of the plurality of commands; and

provide feedback to the host on the possible new cluster;

receive, from the host, a cluster definition that associates a single cluster command with the certain ones of the plurality of commands;

receive the single cluster command from the host;

store the single cluster command in a command queue, wherein storing the single cluster command instead of the certain ones of the plurality of commands increases a capacity of the command queue to store other commands;

parse the single cluster command to identify the certain ones of the plurality of commands per the cluster definition;

perform a single logical-to-physical translation page fetch from the memory to determine a plurality of physical addresses associated with the wrapper logical-to-physical translation address instead of performing multiple logical-to-physical translation page fetches from the memory for logical addresses of the certain ones of the plurality of commands; and

execute the certain ones of the plurality of commands to program adjacent physical addresses in the memory in parallel utilizing memory dies parallelism during write.

2. The storage system of claim 1 , wherein the controller is further configured to provide the feedback to the host in response to the detected pattern repeating a threshold number of times.

3. The storage system of claim 1 , wherein the controller is further configured to dynamically change the cluster definition.

4. The storage system of claim 1 , wherein the controller is further configured to receive, from the host, a change to the cluster definition.

5. The storage system of claim 1 , wherein the cluster definition is received via a vendor-specific command.

6. The storage system of claim 1 , wherein the controller is further configured to inform the host of a second pattern of a different plurality of commands.

7. The storage system of claim 1 , wherein the plurality of commands comprises random write commands.

8. The storage system of claim 1 , wherein the memory comprises a three-dimensional memory.

9. The storage system of claim 1 , wherein the plurality of commands comprises random read commands.

10. The storage system of claim 1 , wherein the cluster definition depends on an application issuing the plurality of commands.

11. A method comprising:

performing the following in a storage system comprising a memory and in communication with a host:

analyzing commands received from the host to detect a pattern of a plurality of commands, wherein the plurality of commands comprises a plurality of logical addresses across a plurality of logical regions of the memory;

based on the detected pattern:

creating a wrapper logical-to-physical translation address for a possible new cluster comprising certain ones of the plurality of commands, wherein the wrapper logical-to-physical translation address is in addition to existing logical addresses of the certain ones of the plurality of commands; and

providing feedback to the host on the possible new cluster;

receiving, from the host, a cluster definition that associates a single cluster command with the certain ones of the plurality of commands;

receiving the single cluster command from the host;

storing the single cluster command in a command queue, wherein storing the single cluster command instead of the certain ones of the plurality of commands increases a capacity of the command queue to store other commands;

parsing the single cluster command to identify the certain ones of the plurality of commands per the cluster definition;

performing a single logical-to-physical translation page fetch from the memory to determine a plurality of physical addresses associated with the wrapper logical-to-physical translation address instead of performing multiple logical-to-physical translation page fetches from the memory for logical addresses of the certain ones of the plurality of commands; and

executing the certain ones of the plurality of commands to program adjacent physical addresses in the memory in parallel utilizing memory dies parallelism during write.

12. The method of claim 11 , wherein the cluster definition is received via a vendor-specific command.

13. The method of claim 11 , wherein the plurality of commands comprises random write commands.

14. The method of claim 11 , wherein the cluster definition depends on an application issuing the plurality of commands.

15. The method of claim 11 , further comprising providing the feedback to the host in response to the detected pattern repeating a threshold number of times.

16. The method of claim 11 , further comprising dynamically changing the cluster definition.

17. The method of claim 11 , further comprising receiving, from the host, a change to the cluster definition.

18. The method of claim 11 , wherein the plurality of commands comprises random read commands.

19. The method of claim 11 , further comprising informing the host of a second pattern of a different plurality of commands.

20. A storage system comprising:

a memory;

means for analyzing commands received from a host to detect a pattern of a plurality of commands, wherein the plurality of commands comprises a plurality of logical addresses across a plurality of logical regions of the memory;

means for performing the following based on the detected pattern:

creating a wrapper logical-to-physical translation address for a possible new cluster comprising certain ones of the plurality of commands, wherein the wrapper logical-to-physical translation address is in addition to existing logical addresses of the certain ones of the plurality of commands; and

providing feedback to the host on the possible new cluster;

means for receiving, from the host, a cluster definition that associates a single cluster command with the certain ones of the plurality of commands;

means for receiving the single cluster command from the host;

means for storing the single cluster command in a command queue, wherein storing the single cluster command instead of the certain ones of the plurality of commands increases a capacity of the command queue to store other commands;

means for parsing the single cluster command to identify the certain ones of the plurality of commands per the cluster definition;

means for performing a single logical-to-physical translation page fetch from the memory to determine a plurality of physical addresses associated with the wrapper logical-to-physical translation address instead of performing multiple logical-to-physical translation page fetches from the memory for logical addresses of the certain ones of the plurality of commands; and

means for executing the certain ones of the plurality of commands to program adjacent physical addresses in the memory in parallel utilizing memory dies parallelism during write.

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 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 Feb 17, 2021
From: MUTHIAH, RAMANATHAN; RAVIMOHAN, NARENDHIRAN CHINNAANANGUR; VENKATARAMANAN, BALAJI THRAKSHA; RAMAMURTHY, RAMKUMAR
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 055299/0186 →
Continuity (2)
Provisional Application 63091512 · Oct 14, 2020
Related Publication 20220113904A1 · Apr 14, 2022