IP Library › Granted Patent US 9,569,352
Granted Patent B2
US 9,569,352 · App. 13/829,010 · Granted Feb 14, 2017

Storage module and method for regulating garbage collection operations based on write activity of a host

Inventors: Alon Marcu (Tel Mond, IL); Amir Shaharabany (Kochav Yair, IL); Hadas Oshinsky (Kfar Saba, IL); Adir Moshen HaCohen (Sunnyvale, CA); Einav Pnina Zilberstein (Hod Hasharon, IL)
Assignee: SanDisk Technologies LLC
G06F12/0246G06F12/0238G06F2212/1024G06F2212/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 9,569,352
App. No.
13/829,010
Filed
Mar 14, 2013
Granted
Feb 14, 2017
Kind
B2
Art Unit
2136
USPC
711/103
Abstract

A storage module and method for regulating garbage collection operations based on write activity of a host are disclosed. In one embodiment, a storage module determines whether the host is operating in a burst mode by determining whether write activity of the host over a time period exceeds a threshold. The write activity can comprise one or both of (i) an amount of data received from the host to be written in the storage module and (ii) a number of write commands received from the host. If the host is operating in the burst mode, the storage module limits an amount of garbage collection operations during the burst mode. When the host is no longer operating in the burst mode, the storage module increases an amount of garbage collection operations.

Claims (60)

1. A method for regulating garbage collection operations based on write activity of a host, the method comprising:

performing the following in a storage module:

providing a time period of a duration that is large enough to eliminate noise in determining whether a host is operating in a burst mode and that is small enough to avoid unnecessary garbage collection;

determining that the host is operating in the burst mode by determining that write activity of the host over the time period exceeds a threshold, wherein the write activity comprises one or both of the following: (i) an amount of data received from the host to be written in the storage module and (ii) a number of write commands received from the host;

in response to determining that the host is operating in the burst mode, limiting an amount of garbage collection operations below a baseline amount during the burst mode;

determining that the host is no longer operating in the burst mode; and

in response to determining that the host is no longer operating in the burst mode, increasing an amount of garbage collection operations above the baseline amount to prepare for a next burst mode by performing one or both of the following: using more generous triggering thresholds than used for baseline garbage collection operations and performing garbage collection operations until a target number of free blocks has been achieved.

2. The method of claim 1 , wherein the storage module determines that the host is operating in the burst mode only from write activity and not from a message from the host indicating burst mode.

3. The method of claim 1 , wherein the write activity from the host comprises (i) but not (ii).

4. The method of claim 1 , wherein the write activity from the host comprises (ii) but not (i).

5. The method of claim 1 , wherein the write activity from the host comprises both (i) and (ii).

6. The method of claim 1 , wherein the threshold is static.

7. The method of claim 1 , wherein the threshold is dynamic.

8. The method of claim 7 , wherein the dynamic threshold is based on previous write activity of the host.

9. The method of claim 1 , wherein the storage module determines that the host is no longer operating in the burst mode by determining whether the write activity of the host falls below a second threshold.

10. The method of claim 9 , wherein the threshold for determining that the host is operating in the burst mode is the same as the second threshold.

11. The method of claim 9 , wherein the threshold for determining that the host is operating in the burst mode is different from the second threshold.

12. The method of claim 1 , wherein the storage module increases an amount of garbage collection over a baseline amount to prepare for a next burst period.

13. The method of claim 1 further comprising increasing an amount of garbage collection operations if the storage module does not have enough free memory to satisfy a write command from the host.

14. The method of claim 1 further comprising increasing an amount of garbage collection operations if the write activity is at a sustained rate for a predetermined period of time.

15. The method of claim 1 , wherein the storage module has memory blocks reserved for use only when the host is operating in the burst mode.

16. The method of claim 1 , wherein the storage module is embedded in the host.

17. The method of claim 1 , wherein the storage module and host are separate devices that are configured to removably connect to one another.

18. A storage module comprising:

a memory; and

a processor in communication with the memory, wherein the processor is configured to:

provide a time period of a duration that is large enough to eliminate noise in determining whether a host is operating in a burst mode and that is small enough to avoid unnecessary garbage collection;

determine that the host is operating in the burst mode by determining that write activity of the host over the time period exceeds a threshold, wherein the write activity comprises one or both of the following: (i) an amount of data received from the host to be written in the storage module and (ii) a number of write commands received from the host;

in response to determining that the host is operating in the burst mode, limit an amount of garbage collection operations below a baseline amount during the burst mode;

determine that the host is no longer operating in the burst mode; and

in response to determining that the host is no longer operating in the burst mode, increase an amount of garbage collection operations above the baseline amount to prepare for a next burst mode by performing one or both of the following: using more generous triggering thresholds than used for baseline garbage collection operations and performing garbage collection operations until a target number of free blocks has been achieved.

19. The storage module of claim 18 , wherein the storage module determines that the host is operating in the burst mode only from write activity and not from a message from the host indicating burst mode.

20. The storage module of claim 18 , wherein the write activity from the host comprises (i) but not (ii).

21. The storage module of claim 18 , wherein the write activity from the host comprises (ii) but not (i).

22. The storage module of claim 18 , wherein the write activity from the host comprises both (i) and (ii).

23. The storage module of claim 18 , wherein the threshold is static.

24. The storage module of claim 18 , wherein the threshold is dynamic.

25. The storage module of claim 24 , wherein the dynamic threshold is based on previous write activity of the host.

26. The storage module of claim 18 , wherein the storage module determines that the host is no longer operating in the burst mode by determining whether the write activity of the host falls below a second threshold.

27. The storage module of claim 26 , wherein the threshold for determining that the host is operating in the burst mode is the same as the second threshold.

28. The storage module of claim 26 , wherein the threshold for determining that the host is operating in the burst mode is different from the second threshold.

29. The storage module of claim 18 , wherein the storage module increases an amount of garbage collection over a baseline amount to prepare for a next burst period.

30. The storage module of claim 18 , wherein the processor is further configured to increase an amount of garbage collection operations if the storage module does not have enough free memory to satisfy a write command from the host.

31. The storage module of claim 18 , wherein the processor is further configured to increase an amount of garbage collection operations if the write activity is at a sustained rate for a predetermined period of time.

32. The storage module of claim 18 , wherein the storage module has memory blocks reserved for use only when the host is operating in the burst mode.

33. The storage module of claim 18 , wherein the storage module is embedded in the host.

34. The storage module of claim 18 , wherein the storage module and host are separate devices that are configured to removably connect to one another.

35. A method for regulating garbage collection operations based on write activity of a host, the method comprising:

performing the following in a storage module:

providing a time period of a duration that is large enough to eliminate noise in determining whether a host is operating in a burst mode and that is small enough to avoid unnecessary garbage collection;

determining that the host is operating in the burst mode by determining that write activity of the host over the time period exceeds a threshold;

in response to determining that the host is operating in the burst mode, limiting an amount of garbage collection operations below a baseline amount during the burst mode;

determining that the host is no longer operating in the burst mode; and

in response to determining that the host is no longer operating in the burst mode, increasing an amount of garbage collection operations above the baseline amount to prepare for a next burst mode by performing one or both of the following: using more generous triggering thresholds than used for baseline garbage collection operations and performing garbage collection operations until a target number of free blocks has been achieved.

36. A storage module comprising:

a memory;

means for determining that a host is operating in a burst mode by determining that write activity of the host over a time period exceeds a threshold, wherein the time period is of a duration that is large enough to eliminate noise in the determining and that is small enough to avoid unnecessary garbage collection;

means for in response to determining that the host is operating in the burst mode, limiting an amount of garbage collection operations below a baseline amount during the burst mode;

means for determining that the host is no longer operating in the burst mode; and

means for in response to determining that the host is no longer operating in the burst mode, increasing an amount of garbage collection operations above the baseline amount to prepare for a next burst mode by performing one or both of the following: using more generous triggering thresholds than used for baseline garbage collection operations and performing garbage collection operations until a target number of free blocks has been achieved.

Assignments (5)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2024
From: SANDISK TECHNOLOGIES LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069796/0423 →
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038807/0807 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 4, 2013
From: MARCU, ALON; SHAHARABANY, AMIR; OSHINSKY, HADAS; HACOHEN, ADIR MOSHE; ZILBERSTEIN, EINAV PNINA
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 030543/0628 →
Continuity (1)
Related Publication 20140281127A1 · Sep 18, 2014