IP Library Granted Patent US 12,307,100
Granted Patent B1
US 12,307,100 · App. 18/441,095 · Granted May 20, 2025

Data storage device and method for managing memory maintenance operations

Inventors: Savita H Neelannavar (Bangalore, IN); Kishore Kumar Konapala (Bangalore, IN)
Assignee: Sandisk Technologies, Inc.
G06F3/0619G06F3/0659G06F3/0679G06F12/0246G06F13/1694G06F2212/7205
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,307,100
App. No.
18/441,095
Granted
May 20, 2025
Kind
B1
Abstract

A data storage device can perform memory maintenance operations to maintain a healthy state of its memory. It is sometimes required to perform memory maintenance operations as foreground operations, but performing such operations in the foreground may exceed a time constraint established to guarantee a certain performance level. In one embodiment, the data storage device can throttle host commands to allow the memory maintenance operations to be performed in the foreground within the time constraint. Other embodiments are provided.

Claims (41)

1. In a data storage device comprising a memory, a method comprising:

determining whether a set of memory maintenance operations can be performed within a time period; and

in response to determining that the set of memory maintenance operations cannot be performed within the time period:

throttling input-output commands received by the data storage device to allow the set of memory maintenance operations to be performed within the time period;

performing the set of memory maintenance operations within the time period;

operating under a first protocol in which the set of memory maintenance operations is performed as a set of background operations; and

operating under a second protocol in which the set of memory maintenance operations is performed as a set of foreground operations;

wherein the first protocol comprises a Non-Volatile Memory Express (NVMe) protocol and the second protocol comprises a Secure Digital (SD) protocol.

2. The method of claim 1 , wherein the input-output commands are throttled by adding delays in buffering the input-output commands in a buffer in the data storage device.

3. The method of claim 1 , wherein the set of memory maintenance operations are performed by a plurality of threads, and wherein the one or more processors, individually or in combination, are further configured to synchronize performance of the set of memory maintenance operations by the plurality of threads.

4. The method of claim 1 , wherein the set of memory maintenance operations are performed by a plurality of processors of the one or more processors, which are synchronized.

5. The method of claim 4 , wherein the plurality of processors comprises a flash translation layer core and an internal file system core.

6. The method of claim 1 , wherein the set of memory maintenance operations comprises a read scrub operation, an enhanced post-write read (EPWR) operation, a single-level cell (SLC) to multi-level cell (MLC) relocation operation, an internal file system (IFS) block management operation, a wear leveling operation, or a garbage collection operation.

7. The method of claim 1 , wherein the memory comprises a three-dimensional memory.

8. A data storage device comprising:

a memory; and

one or more processors, individually or in combination, configured to:

determine whether a set of memory maintenance operations can be performed within a time constraint; and

in response to determining that the set of memory maintenance operations cannot be performed within the time constraint:

throttle host commands received by the data storage device to allow the set of memory maintenance operations to be performed within the time constraint; and

perform the set of memory maintenance operations within the time constraint;

operate under a first protocol in which the set of memory maintenance operations is performed as a set of background operations; and

operate under a second protocol in which the set of memory maintenance operations is performed as a set of foreground operations;

wherein the first protocol comprises a Non-Volatile Memory Express (NVMe) protocol and the second protocol comprises a Secure Digital (SD) protocol.

9. The data storage device of claim 8 , wherein the host commands are throttled by adding delays in buffering the host commands in a buffer in the data storage device.

10. The data storage device of claim 8 , wherein the set of memory maintenance operations are performed by a plurality of threads, and wherein the one or more processors, individually or in combination, are further configured to synchronize performance of the set of memory maintenance operations by the plurality of threads.

11. The data storage device of claim 10 , wherein the plurality of threads comprises a flash translation layer thread and an internal file system thread.

12. The data storage device of claim 8 , wherein the set of memory maintenance operations are performed by a plurality of processors of the one or more processors, which are synchronized.

13. The data storage device of claim 12 , wherein the plurality of processors comprises a flash translation layer core and an internal file system core.

14. The data storage device of claim 8 , wherein the set of memory maintenance operations comprises a read scrub operation, an enhanced post-write read (EPWR) operation, a single-level cell (SLC) to multi-level cell (MLC) relocation operation, an internal file system (IFS) block management operation, a wear leveling operation, or a garbage collection operation.

15. The data storage device of claim 8 , wherein the memory comprises a three-dimensional memory.

16. A data storage device comprising:

a memory; and

means for:

determining whether a set of memory maintenance operations can be performed within a time period; and

in response to determining that the set of memory maintenance operations cannot be performed within the time period:

throttling input-output commands received by the data storage device to allow the set of memory maintenance operations to be performed within the time period;

performing the set of memory maintenance operations within the time period;

operating under a first protocol in which the set of memory maintenance operations is performed as a set of background operations; and

operating under a second protocol in which the set of memory maintenance operations is performed as a set of foreground operations;

wherein the first protocol comprises a Non-Volatile Memory Express (NVMe) protocol and the second protocol comprises a Secure Digital (SD) protocol.

Assignments (7)
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 (AR) Recorded May 15, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 067417/0329 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2024
From: NEELANNAVAR, SAVITA H; KONAPALA, KISHORE KUMAR
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 066458/0869 →
References Cited (9)
US 7315917B2 · Bennett · 2008 [cited by examiner]
US 7441071B2 · Traister · 2008 [cited by examiner]
US 8341300B1 · Karamcheti · 2012 [cited by examiner]
US 8504784B2 · Traister · 2013 [cited by examiner]
US 8751699B1 · Tsai · 2014 [cited by examiner]
US 20110141788A1 · Balakrishnan · 2011 [cited by examiner]
US 20190243773A1 · Li · 2019 [cited by examiner]
US 20200409562A1 · Navon · 2020 [cited by examiner]
Culler et al. Parallel Computer Architecture. Aug. 1997. Morgan Kaufmann. p. 44. [cited by examiner]