IP Library Granted Patent US 11,842,069
Granted Patent B2
US 11,842,069 · App. 17/592,814 · Granted Dec 12, 2023

Storage system and method for delaying flushing of a write buffer based on a host-provided threshold

Inventors: Einav Zilberstein (Had Hasharon, IL); Hadas Oshinsky (Kfar Saba, IL); Maayan Suliman (Had Hasharon, IL)
Assignee: Western Digital Technologies, Inc.
G06F3/0656G06F3/064G06F3/0604G06F3/0631G06F3/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,842,069
App. No.
17/592,814
Granted
Dec 12, 2023
Kind
B2
Abstract

A storage system allocates single-level cell (SLC) blocks in its memory to act as a write buffer. A host sends the storage system a threshold indicating an amount of data that should be stored in the write buffer before the storage system flushes the write buffer to multi-level cell (MLC) blocks in the memory. Using this threshold can extend the amount of time that data is maintained in the write buffer, which can reduce the write-amplification factor and power consumption, as well as increase read performance of the data.

Claims (37)

1. A storage system comprising:

a memory; and

a controller configured to:

create a write buffer allocated from single-level cell (SLC) blocks in the memory;

inform a host, that the storage system supports a dedicated delayed flush command;

receive, from the host, the dedicated delayed flush command, which specifies a threshold indicating how much data can be stored in the write buffer before flushing at least some data stored in the write buffer to multi-level cell (MLC) blocks in the memory;

determine whether an amount of data stored in the write buffer exceeds the threshold; and

in response to determining that the amount of data stored in the write buffer exceeds the threshold, flush enough data from the write buffer to the MLC blocks in the memory so that the amount of data stored in the write buffer does not exceed the threshold.

2. The storage system of claim 1 , wherein the data flushed from the write buffer is least-recently-written data.

3. The storage system of claim 1 , wherein the controller is further configured to inform the host of a maximum allowable size of the threshold.

4. The storage system of claim 1 , wherein the controller is further configured to inform the host of a recommended threshold.

5. The storage system of claim 4 , wherein the recommended threshold is based on storage system lifetime.

6. The storage system of claim 4 , wherein the recommended threshold is based on memory health.

7. The storage system of claim 4 , wherein the recommended threshold is based on a counter value.

8. The storage system of claim 4 , wherein the recommended threshold is based on a memory fullness statistic.

9. The storage system of claim 4 , wherein the recommended threshold is based on a memory pattern statistic.

10. The storage system of claim 1 , wherein the controller is further configured to receive an updated threshold from the host.

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

12. In a host in communication with a storage system comprising a memory, wherein the memory comprises a first set of blocks allocated as a write buffer and a second set of blocks, wherein the first set of blocks has a lower latency than the second set of blocks, a method comprising:

receiving an indication from the storage system of a maximum allowable threshold size;

determining a threshold amount of data that should be maintained in the write buffer before the storage system flushes the write buffer to the second set of blocks in the memory; and

informing the storage system of the threshold amount.

13. The method of claim 12 , further comprising informing the storage system to flush least-recently-written data from the write buffer in response to an actual amount of data stored in the write buffer exceeding the threshold.

14. The method of claim 12 , wherein the host informs the storage system of the threshold amount via a dedicated delayed flush command.

15. The method of claim 14 , further comprising receiving an indication from the storage system that the storage system supports the dedicated delayed flush command.

16. The method of claim 12 , further comprising receiving an indication from the host of a recommended threshold.

17. The method of claim 12 , wherein the threshold amount is determined based on information received from the storage system.

18. The method of claim 17 , wherein the information received from the storage system comprises one or more of the following: storage system lifetime, memory health, a counter value, a memory fullness statistic, and a memory pattern statistic.

19. The method of claim 12 , further comprising dynamically changing the threshold amount of data.

20. The method of claim 12 , wherein the first set of blocks comprises single-level cell (SLC) blocks and the second set of blocks comprises multi-level cell (MLC) blocks.

21. A storage system comprising:

a memory;

means for creating a write buffer allocated from single-level cell (SLC) blocks in the memory;

means for informing a host of a recommended threshold;

means for receiving, from the host, a threshold indicating how much data can be stored in the write buffer before flushing at least some data stored in the write buffer to multi-level cell (MLC) blocks in the memory;

means for determining whether an amount of data stored in the write buffer exceeds the threshold; and

means for flushing enough data from the write buffer to the MLC blocks in the memory so that the amount of data stored in the write buffer does not exceed the threshold in response to determining that the amount of data stored in the write buffer exceeds the threshold.

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 Feb 4, 2022
From: ZILBERSTEIN, EINAV; OSHINSKY, HADAS; SULIMAN, MAAYAN
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058890/0309 →
Continuity (2)
Provisional Application 63299595 · Jan 14, 2022
Related Publication 20230229347A1 · Jul 20, 2023
Cited By (1)
US 12,423,257