IP Library Granted Patent US 11,977,739
Granted Patent B2
US 11,977,739 · App. 17/901,719 · Granted May 7, 2024

Handling write data burst for improved performance and resource usage

Inventors: Eran Erez (Bothell, WA); Joseph R. Meza (Bernallio, NM); Nicholas J. Thomas (Edinburgh, SC)
Assignee: Western Digital Technologies, Inc.
G06F3/0613G06F3/0659G06F3/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,977,739
App. No.
17/901,719
Granted
May 7, 2024
Kind
B2
Abstract

Disclosed are systems and methods for large write planning for performance consistency and resource usage efficiency. A method is implemented using one or more controllers for one or more storage devices. The method includes receiving, via a host interface, a notification of a write data burst. The method also includes computing available spaces in a plurality of memories and a write ratio, to handle the write data burst to the plurality of memories, based on the notification. The method also includes receiving, via the host interface, the write data burst. The method also includes, in response to receiving the write data burst, toggling writes between the plurality of memories, based on the available spaces and the write ratio.

Claims (63)

1. A data storage device, comprising:

a device memory comprising a plurality of memories, wherein each memory of the plurality of memories is configured to be a memory type based on different capacity, different performance characteristics, or a combination thereof;

a host interface for coupling the data storage device to a host system, wherein the host interface is configured to receive a notification of a write data burst from the host system; and

a controller configured to:

receive, via the host interface, the notification of the write data burst;

compute available spaces in the plurality of memories and a write ratio, to handle the write data burst to the plurality of memories, based on the notification;

receive, via the host interface, the write data burst; and

in response to receiving the write data burst, toggle writes between the plurality of memories, based on the available spaces and the write ratio,

wherein the notification of the write data burst comprises a dataset management command that includes a starting logical block address (LBA), an LBA range, and an indication to cause the data storage device to prepare for the write data burst, and

wherein the controller is further configured to:

predict an access pattern for locations in the device memory a host application is to access next, based on the dataset management command; and

determine an order of memory types for toggling the writes between the plurality of memories based on the access pattern.

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

compute a split between the writes to the plurality of memories based on a total write size of the write data burst and based on the available spaces and cell density of at least one of the plurality of memories,

wherein the notification of the write data burst includes the total write size of the write data burst.

3. The data storage device of claim 1 , wherein the controller is further configured to:

toggle the writes between the plurality of memories in accordance with a determination that the available spaces include a space in a first memory of the plurality of memories that is less than or equal to a total write size of the write data burst.

4. The data storage device of claim 1 , wherein the controller is further configured to:

toggle the writes between the plurality of memories at a page boundary and multiple pages boundary.

5. The data storage device of claim 1 , wherein the controller is further configured to:

continue to write to a block of a first block type until the block is completely full before switching to another block of a different block type.

6. The data storage device of claim 1 , wherein the controller is further configured to:

in accordance with a determination that the available spaces include a space in a first memory of the plurality of memories that is larger than a total write size of the write data burst, route the write data burst to the first memory of the plurality of memories,

wherein the first memory is for having better performance than other memories of the plurality of memories.

7. The data storage device of claim 1 , wherein the plurality of memories are configured to be memory types that include (i) a single level cell (SLC) and (ii) at least one of a tri-level cell (TLC), a quad-level cell (QLC) and a penta-level cell (PLC).

8. The data storage device of claim 1 , wherein the controller is configured to:

toggle the writes between the plurality of memories by interleaving the writes including writing to a first memory of the plurality of memories followed by writing to a second memory of the plurality of memories followed by writing to the first memory, based on the performance characteristics of the first memory and the second memory.

9. The data storage device of claim 1 , wherein the notification of the write data burst comprises information on (i) whether data corresponding to the write data burst is to be written sequentially and (ii) anticipated frequency at which the data is to be accessed, and

wherein the access pattern is based further on the information.

10. A method implemented using one or more controllers for one or more storage devices, the method comprising:

receiving, via a host interface, a notification of a write data burst;

computing available spaces in a plurality of memories and a write ratio, to handle the write data burst to the plurality of memories, based on the notification;

receiving, via the host interface, the write data burst; and

in response to receiving the write data burst, toggling writes between the plurality of memories, based on the available spaces and the write ratio,

wherein the notification of the write data burst comprises a dataset management command that includes a starting logical block address (LBA), an LBA range, and an indication to prepare for the write data burst, and

wherein the method comprises:

predicting an access pattern for locations in a device memory a host application is to access next, based on the dataset management command; and

determining an order of memory types for toggling the writes between the plurality of memories based on the access pattern.

11. The method of claim 10 , further comprising:

computing a split between the writes to the plurality of memories based on a total write size of the write data burst and based on the available spaces and cell density of at least one of the plurality of memories,

wherein the notification of the write data burst includes the total write size of the write data burst.

12. The method of claim 10 , further comprising:

toggling the writes between the plurality of memories in accordance with a determination that the available spaces include a space in a first memory of the plurality of memories that is less than or equal to a total write size of the write data burst.

13. The method of claim 10 , further comprising:

toggling the writes between the plurality of memories at a page boundary and multiple pages boundary.

14. The method of claim 10 , further comprising:

continue writing to a block of a first block type until the block is completely full before switching to another block of a different block type.

15. The method of claim 10 , further comprising:

in accordance with a determination that the available spaces include a space in a first memory of the plurality of memories that is larger than a total write size of the write data burst, routing the write data burst to the first memory of the plurality of memories,

wherein the first memory is for having better performance than other memories of the plurality of memories.

16. The method of claim 10 , wherein the plurality of memories are configured to be memory types that include (i) a single level cell (SLC) and (ii) at least one of a tri-level cell (TLC) and a quad-level cell (QLC).

17. The method of claim 10 , wherein each memory of the plurality of memories is configured to be a memory type based on different capacity, different performance characteristics, or a combination thereof,

the method further comprising:

toggling the writes between the plurality of memories by interleaving the writes including writing to a first memory of the plurality of memories followed by writing to a second memory of the plurality of memories followed by writing to the first memory, based on the performance characteristics of the first memory and the second memory.

18. A system, comprising:

means for receiving, via a host interface, a notification of a write data burst;

means for computing available spaces in a plurality of memories and a write ratio, to handle the write data burst to the plurality of memories, based on the notification;

means for receiving, via the host interface, the write data burst; and

means for, in response to receiving the write data burst, toggling writes between the plurality of memories, based on the available spaces and the write ratio,

wherein the notification of the write data burst comprises a command that includes a starting logical block address (LBA), an LBA range, and an indication to cause preparing for the write data burst, and

wherein the system comprises:

means for predicting an access pattern for locations in a device memory, based on the command; and

means for determining an order of memory types for toggling the writes between the plurality of memories based on the access pattern.

Assignments (8)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 7, 2022
From: EREZ, ERAN; MEZA, JOSEPH R; THOMAS, NICHOLAS J.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 061345/0860 →
Continuity (1)
Related Publication 20240078015A1 · Mar 7, 2024