IP Library Granted Patent US 8,626,986
Granted Patent B2
US 8,626,986 · App. 12/828,241 · Granted Jan 7, 2014

Pre-emptive garbage collection of memory blocks

Inventors: William Wu (Cupertino, CA); Shai Traister (Sunnyvale, CA); Jianmin Huang (Sunnyvale, CA); Neil David Hutchison (Campbell, CA); Steven Sprouse (San Jose, CA)
Assignee: SanDisk Technologies Inc.
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 8,626,986
App. No.
12/828,241
Granted
Jan 7, 2014
Kind
B2
Abstract

A method and system pre-emptively perform garbage collection operations of a forced amount on update blocks in a memory device. The amount of garbage collection needed by a certain data write is monitored and adjusted to match the forced amount if necessary. Update blocks may be selected on the basis of their recent usage or the amount of garbage collection required. Another method and system may store control information about update blocks in a temporary storage area so that a greater number of update blocks are utilized. The sequential write performance measured by the Speed Class test may be optimized by using this method and system.

Claims (81)

1. A method of garbage collection in a memory device, the method comprising:

with a controller in the memory device:

receiving incoming data to write to a logical addressable unit;

determining an amount of garbage collection to be performed for a garbage collection operation;

if the determined amount of garbage collection is less than a predetermined threshold, initiating the garbage collection operation to carry out the predetermined threshold;

selecting a least recently used update block for the garbage collection operation;

if the determined amount of garbage collection for the least recently used update block is more than the predetermined threshold:

selecting an alternate update block for the garbage collection operation instead of the selected least recently used update block;

(A) if the determined amount of garbage collection for the alternate update block is more than the predetermined threshold:

 (1) writing the incoming data to a temporary storage space; and

 (2) copying a first quantity of data from an intact block to the alternate update block, where the first quantity of data is equal to the predetermined threshold; and

(B) if the determined amount of garbage collection for the alternate update block is less than the predetermined threshold, copying a second quantity of data from the alternate update block to an open update block, where the second quantity of data is less than the predetermined threshold; and

writing the incoming data to at least one physical metablock corresponding to the logical addressable unit.

2. The method of claim 1 , where initiating the garbage collection operation comprises:

selecting a least recently used update block for the garbage collection operation; and

copying a quantity of data equal to the predetermined threshold from an intact block to the least recently used update block, where the predetermined threshold comprises the determined amount of garbage collection.

3. The method of claim 1 , where:

a size of the logical addressable unit is four megabytes;

a size of the physical metablock is three megabytes; and

the predetermined threshold comprises two megabytes.

4. The method of claim 1 , where initiating the garbage collection operation comprises:

selecting a first least recently used update block for the garbage collection operation;

copying a first quantity of data from the first least recently used update block to a first open update block, where the first quantity of data is less than the predetermined threshold;

selecting a second least recently used update block for the garbage collection operation; and

copying a second quantity of data from another intact block to the second least recently used update block, where the second quantity of data is equal to the first quantity of data subtracted from the predetermined threshold;

where the predetermined threshold comprises the determined amount of garbage collection.

5. The method of claim 4 , where:

a size of the logical addressable unit is four megabytes;

a size of the physical metablock is three megabytes;

the first quantity of data comprises one megabyte; and

the predetermined threshold comprises two megabytes.

6. The method of claim 1 , where:

a size of the logical addressable unit is four megabytes;

a size of the physical metablock is three megabytes; and

the predetermined threshold comprises two megabytes.

7. The method of claim 1 , where the temporary storage space comprises a binary cache.

8. The method of claim 1 , further comprising:

with the controller in the memory device:

copying the incoming data from the temporary storage space to an open update block.

9. The method of claim 1 , where initiating the garbage collection operation is performed each time there is a write of the incoming data.

10. The method of claim 1 , where the predetermined threshold comprises a first threshold;

further comprising determining whether the amount of the garbage collection is greater than a second threshold; and

where the garbage collection operation is initiated if the amount of the garbage collection is less than the first threshold and greater than the second threshold.

11. A memory device comprising:

a memory; and

a controller in communication with the memory, the controller configured to:

receive incoming data to write to a logical addressable unit; determine an amount of garbage collection to be performed for a garbage collection operation;

if the determined amount of garbage collection is less than a predetermined threshold, initiate the garbage collection operation to carry out the predetermined threshold;

select a least recently used update block for the garbage collection operation;

if the determined amount of garbage collection for the least recently used update block is more than the predetermined threshold:

select an alternate update block for the garbage collection operation instead of the selected least recently used update block;

(A) if the determined amount of garbage collection for the alternate update block is more than the predetermined threshold:

 (1) write the incoming data to a temporary storage space; and

 (2) copy a first quantity of data from an intact block to the alternate update block, where the first quantity of data is equal to the predetermined threshold; and

(B) if the determined amount of garbage collection for the alternate update block is less than the predetermined threshold, copy a second quantity of data from the alternate update block to an open update block, where the second quantity of data is less than the predetermined threshold; and

write the incoming data to at least one physical metablock corresponding to the logical addressable unit.

12. The memory device of claim 11 , where the controller is configured to initiate the garbage collection operation by:

selecting a least recently used update block for the garbage collection operation; and

copying a quantity of data equal to the predetermined threshold from an intact block to the least recently used update block, where the predetermined threshold comprises the determined amount of garbage collection.

13. The memory device of claim 11 , where the controller is configured to initiate the garbage collection operation by:

selecting a first least recently used update block for the garbage collection operation;

copying a first quantity of data from the first least recently used update block to a first open update block, where the first quantity of data is less than the predetermined threshold;

selecting a second least recently used update block for the garbage collection operation; and

copying a second quantity of data from another intact block to the second least recently used update block, where the second quantity of data is equal to the first quantity of data subtracted from the predetermined threshold, and

where the predetermined threshold comprises the determined amount of garbage collection.

14. The memory device of claim 13 , where:

a size of the logical addressable unit is four megabytes;

a size of the physical metablock is three megabytes;

the first quantity of data comprises one megabyte; and

the predetermined threshold comprises two megabytes.

15. The memory device of claim 11 , where:

a size of the logical addressable unit is four megabytes;

a size of the physical metablock is three megabytes; and

the predetermined threshold comprises two megabytes.

16. The memory device of claim 11 , where:

a size of the logical addressable unit is four megabytes;

a size of the physical metablock is three megabytes; and

the predetermined threshold comprises two megabytes.

17. The memory device of claim 11 , where the temporary storage space comprises a binary cache.

18. The memory device of claim 11 , where the controller is further configured to:

copy the incoming data from the temporary storage space to an open update block.

Assignments (6)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
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 →
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/0850 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2011
From: SANDISK CORPORATION
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 026285/0095 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 20, 2010
From: WU, WILLIAM; TRAISTER, SHAI; HUANG, JIANMIN; HUTCHISON, NEIL DAVID; SPROUSE, STEVEN
To: SANDISK CORPORATION
Reel/Frame 025168/0626 →
Continuity (1)
Related Publication 20120005405A1 · Jan 5, 2012