IP Library Granted Patent US 12,039,198
Granted Patent B2
US 12,039,198 · App. 17/750,058 · Granted Jul 16, 2024

Dynamic write shaping

Inventors: Amir Segev (Meiter, IL); Shay Benisty (Beer Sheva, IL)
Assignee: Western Digital Technologies, Inc.
G06F3/0659G06F3/0604G06F3/0644G06F3/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 12,039,198
App. No.
17/750,058
Granted
Jul 16, 2024
Kind
B2
Abstract

The present disclosure generally relates to an efficient manner of fetching data for write commands. The data can be fetched prior to classification, which is a fetch before mode. The data can alternatively be fetched after classification, which is a fetch after mode. When the data is fetched after classification, the write commands are aggregated until sufficient data associated with any command is split between memory devices. When in fetch before mode, the data should properly align such that data associated with any command is not split between memory devices. Efficiently toggling between the fetch before and fetch after modes will shape how writes are performed without impacting latency and bandwidth without significantly increasing write buffer memory size.

Claims (44)

1. A data storage device, comprising:

a memory device; and

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

determine whether the controller is in a fetch first mode or a fetch after mode;

determine whether a fetch depth (FD) is less than a flash memory unit (FMU) count (FC); and

switch between the fetch first mode and the fetch after mode based upon the determining whether FD is less than FC.

2. The data storage device of claim 1 , wherein the controller is further configured to perform an initialization process, wherein the initialization process comprises:

setting a mode to fetch first; and

setting FD=0.

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

compute how many FMUs fit within a turn around time (TAT) and wherein the TAT is 1 μSec; and

wait for a write command.

4. The data storage device of claim 1 , wherein the controller is configured to determine whether the controller is already in the fetch first mode or the fetch after mode.

5. The data storage device of claim 4 , wherein when the controller determines that the controller is in the fetch after mode, the controller is further configured to:

hold a write command in a pre-aggregation pool; and

reorder and reclassify the write command.

6. The data storage device of claim 5 , wherein the controller is configured to determine whether FD is less than FC minus a hysteresis (H).

7. The data storage device of claim 6 , wherein upon determining that FD is less than FC minus H, the controller is configured to change the mode to the fetch first mode.

8. The data storage device of claim 6 , wherein upon determining that FD is not less than FC minus H, the controller is configured to wait for a write command.

9. The data storage device of claim 4 , wherein when the controller determines that the controller is in the fetch first mode, the controller is further configured to:

send a write command to a write aggregation module; and

set FD=FD+command size.

10. The data storage device of claim 9 , wherein the controller is further configured to determine whether FD is greater than FC plus a hysteresis (H).

11. The data storage device of claim 10 , wherein upon determining that FD is greater than FC plus H, the controller is configured to change the mode to the fetch after mode.

12. The data storage device of claim 10 , wherein upon determining that FD is not greater than FC plus H, the controller is configured to wait for a write command.

13. A data storage device, comprising:

a memory device; and

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

determine that the controller is in a fetch first mode;

send a write command to a write aggregation module;

set fetch depth (FD) to be equal to FD minus command size;

measure a new average turn-around time (TAT);

calculate a new flash memory unit (FMU) count; and

determine the fetch first mode should be changed to fetch after mode.

14. The data storage device of claim 13 , wherein the controller is configured to track the TAT and measure a time until data is ready to be written.

15. The data storage device of claim 14 , wherein the data is ready to be written when sufficient data has been accumulated to match a FMU size.

16. The data storage device of claim 13 , wherein the controller comprises a pre-aggregation module.

17. The data storage device of claim 16 , wherein the pre-aggregation module is configured to aggregate write commands for which data associated with the write commands individually do not match page size.

18. A data storage device, comprising:

memory means; and

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

toggle between a fetch first mode and a fetch after mode based upon a relationship between fetch depth (FD) and flash management unit (FMU) count (FC), wherein fetch first mode comprises fetching data up to a predetermined performance bandwidth, wherein fetch after mode comprises storing a write command in a pre-aggregation pool until sufficient commands associated with data are stored to meet the predetermined performance bandwidth, and wherein the relationship between FD and FC is based on evaluating whether FD becomes less than FC minus hysteresis.

19. The data storage device of claim 18 , wherein the controller is configured to store the write command in the pre-aggregation pool after fetching the command, parsing the command, and classifying the command.

20. The data storage device of claim 18 , wherein the toggling comprises switching to the fetch after mode when data associated with the write command that is fetched is greater than the predetermined performance bandwidth.

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 May 23, 2022
From: SEGEV, AMIR; BENISTY, SHAY
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059981/0202 →
Continuity (1)
Related Publication 20230376244A1 · Nov 23, 2023