IP Library › Granted Patent US 12,248,706
Granted Patent B2
US 12,248,706 · App. 18/220,933 · Granted Mar 11, 2025

Data storage device and method for reducing flush latency

Inventors: Rotem Sela (Haifa, IL); Meytal Soffer (Maale' Hagalil, IL); Asher Druck (Balfor, IL)
Assignee: Sandisk 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 12,248,706
App. No.
18/220,933
Filed
Jul 12, 2023
Granted
Mar 11, 2025
Kind
B2
Art Unit
2138
USPC
711/154
Abstract

A data storage device has a cache and a non-volatile memory. Instead of flushing the entire cache to the non-volatile memory in response to a command from a host, the data storage device flushes only the cached data that is associated with an identifier provided by the host. This allows the cached data associated with the identifier to be flushed more quickly. The data storage device can also prioritize queued commands that are associated with the identifier.

Claims (44)

1. A data storage device comprising:

a non-volatile memory; and

a processor coupled with the non-volatile memory and configured to:

store, in a cache, data from a plurality of applications in a host to be written in the non-volatile memory, wherein each data is associated with a respective identifier;

receive, from the host, a flush command comprising a first identifier; and

in response to receiving the flush command comprising the first identifier:

select, from a command queue, only write command(s) that are associated with the first identifier;

store data associated with the selected write command(s) in the cache; and

flush, from the cache to the non-volatile memory, only data that is associated with the first identifier, wherein the data that is flushed to the non-volatile memory comprises data stored in the cache both before and after the flush command was received.

2. The data storage device of claim 1 , wherein the first identifier comprises a context identifier, a stream identifier, a zone identifier, a group number identifier, and/or an application identifier.

3. The data storage device of claim 1 , wherein the processor is further configured to store identifiers in a table, in a linked list, and/or with the data in the cache.

4. The data storage device of claim 1 , wherein the processor is further configured to store data associated with different identifiers in different address ranges in a volatile memory.

5. The data storage device of claim 1 , wherein the processor is further configured to store data associated with different identifiers in different single level cell (SLC) blocks in the non-volatile memory.

6. The data storage device of claim 1 , wherein a cache size is larger than a page size of the non-volatile memory and flushing the cache comprises performing a plurality of write operations.

7. The data storage device of claim 1 , wherein the cache is part of a volatile memory of the data storage device.

8. The data storage device of claim 1 , wherein the processor is further configured to arrange the data in the cache according to temperature of the data, zone, stream, or identifier.

9. The data storage device of claim 1 , wherein the non-volatile memory comprises a three-dimensional memory.

10. In a data storage device comprising non-volatile memory, a method comprising:

caching, in a cache, data received from a plurality of applications in a host, wherein each data is associated with a respective identifier that identifies the application from which the data originated;

receiving, from the host, a synch cache command comprising an identifier of one of the plurality of applications, wherein the host sends the synch cache command to the data storage device to confirm that data from the one of the plurality of applications has been stored in the non-volatile memory; and

in response to receiving the synch cache command:

using the identifier to identifying which of the data stored in the cache is associated with the one of the plurality of applications;

copying only the data associated with the one of the plurality of applications from the cache to the non-volatile memory, wherein the data that is copied to the non-volatile memory comprises any data associated with the one of the plurality of applications that was stored in the cache both before and after the synch cache command was received; and

informing the host that the data associated with the one of the plurality of applications has been stored in the non-volatile memory, wherein copying only the data associated with the one of the plurality of applications from the cache to the non-volatile memory reduces latency in informing the host that the data associated with the one of the plurality of applications has been stored in the non-volatile memory.

11. The method of claim 10 , further comprising:

prioritizing a command in a command queue of the data storage device that is associated with the identifier.

12. The method of claim 10 , wherein the identifier comprises a context identifier, a stream identifier, a zone identifier, a group number identifier, and/or an application identifier.

13. The method of claim 10 , wherein data cached in the cache is associated with different identifiers, and wherein the different identifiers are stored in a table, in a linked list, and/or with the data in a cache.

14. The method of claim 10 , wherein data cached in the cache is associated with different identifiers, and wherein the different identifiers are stored in different address ranges in a volatile memory.

15. The method of claim 10 , wherein data cached in the cache is associated with different identifiers, and wherein the different identifiers are stored in different single level cell (SLC) blocks in the non-volatile memory.

16. The method of claim 10 , wherein a cache size is larger than a page size of the non-volatile memory and copying comprises performing a plurality of write operations.

17. The method of claim 10 , wherein the cache is in a volatile memory of the data storage device and/or in the non-volatile memory.

18. The method of claim 10 , further comprising arranging the data in the cache according to temperature of the data, zone, stream, or identifier.

19. A data storage device comprising:

a cache;

a non-volatile memory; and

means for:

storing, in the cache, data from a plurality of applications in a host to be written in the non-volatile memory, wherein each data is associated with a respective identifier;

receiving, from the host, a flush command comprising a first identifier; and

in response to receiving the flush command comprising the first identifier:

selecting, from a command queue, only write command(s) that are associated with the first identifier;

storing data associated with the selected write command(s) in the cache; and

flushing, from the cache to the non-volatile memory, only data that is associated with the first identifier, wherein the data that is flushed to the non-volatile memory comprises data stored in the cache both before and after the flush command was received.

20. The data storage device of claim 1 , wherein the cache is part of the non-volatile memory of the data storage device.

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 Recorded Nov 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 065657/0158 →
PATENT COLLATERAL AGREEMENT- A&R Recorded Nov 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 065656/0649 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 12, 2023
From: SELA, ROTEM; SOFFER, MEYTAL; DRUCK, ASHER
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 064227/0213 →
Continuity (2)
Provisional Application 63419418 · Oct 26, 2022
Related Publication 20240143227A1 · May 2, 2024
References Cited (20)
US 9632711B1 · Obr · 2017 [cited by examiner]
US 10810123B1 · Xu · 2020 [cited by examiner]
US 20150106410A1 · Zaltsman et al. · 2015 [cited by applicant]
US 20150178013A1 · Rostoker · 2015 [cited by examiner]
US 20150317095A1 · Voigt · 2015 [cited by applicant]
US 20150356012A1 · Voigt · 2015 [cited by applicant]
US 20160077968A1 · Sela et al. · 2016 [cited by applicant]
US 20160292075A1 · Mohan · 2016 [cited by applicant]
US 20170017424A1 · Matthews · 2017 [cited by examiner]
US 20170344470A1 · Yang · 2017 [cited by examiner]
US 20180059966A1 · Lee · 2018 [cited by examiner]
US 20180329651A1 · Chang · 2018 [cited by examiner]
US 20190354478A1 · Kashyap · 2019 [cited by examiner]
US 20200348864A1 · Tylik · 2020 [cited by examiner]
US 20220350531A1 · Wang · 2022 [cited by examiner]
US 20230205691A1 · Pan · 2023 [cited by examiner]
US 20230266898A1 · Bert · 2023 [cited by examiner]
US 20230289079A1 · Hs · 2023 [cited by examiner]
US 20230342028A1 · Lee · 2023 [cited by examiner]
CN 110515861A · 2018 [cited by examiner]