IP Library Granted Patent US 7,444,462
Granted Patent B2
US 7,444,462 · App. 11/541,035 · Granted Oct 28, 2008

Methods for phased garbage collection using phased garbage collection block or scratch pad block as a buffer

Assignee: SanDisk Corporation
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 7,444,462
App. No.
11/541,035
Granted
Oct 28, 2008
Kind
B2
Abstract

A method for phased garbage collection is provided. In this method, a write command is received to write data. The write command is allocated a timeout period to complete an execution of the write command. Thereafter, a busy signal is asserted and a portion of a garbage collection operation is performed for a garbage collection time period. The data are written to a block and the busy signal is released before the timeout period.

Claims (64)

1. A method for operating a non-volatile memory system having a non-volatile memory, comprising:

receiving a first write command to write a first plurality of data, the first write command being allocated a timeout period to complete an execution of the first write command;

asserting a busy signal;

copying a portion of a first plurality of valid data from one or more first blocks of the non-volatile memory to a second block of the non-volatile memory for a garbage collection time period;

writing the first plurality of data to a first phased garbage collection block that spans a single logical group in the non-volatile memory;

converting the phased garbage collection block to an update block of the non-volatile memory; and

releasing the busy signal before the timeout period.

2. The method of claim 1 , further comprising converting the first phased garbage collection block to an update block.

3. The method of claim 1 , further comprising erasing the one or more first blocks.

4. The method of claim 1 , wherein the copying the plurality of valid data from the one or more first blocks comprises:

tracking a time for the copying the portion of the plurality of valid data from the one or more first blocks to the second block; and

stopping the copying the portion of the plurality of valid data before the time exceeds the garbage collection time period.

5. The method of claim 1 , wherein the first write command is a single sector write command.

6. The method of claim 1 , wherein the garbage collection time period is a difference between the timeout period and a programming time associated with the writing the first plurality of data.

7. The method of claim 1 , further comprising allocating a second phased garbage collection block that spans a second logical group, the second phased garbage collection block configured to store a second plurality of data from a second write command, the second write command being received after the first write command.

8. A method for operating a non-volatile memory system having a non-volatile memory, comprising:

receiving a first write command to write a first plurality of data, the first write command being allocated a first timeout period to complete an execution of the first write command;

asserting a first busy signal;

copying a first portion of a plurality of valid data from one or more first blocks of the non-volatile memory to a second block of the non-volatile memory for a garbage collection time period;

writing the first plurality of data to a phased garbage collection block that spans a single logical group in the non-volatile memory;

releasing the first busy signal before the first timeout period;

receiving a second write command to write a second plurality of data, the second write command being received after the receiving the first write command, the second write command being allocated a second timeout period to complete an execution of the second write command;

asserting a second busy signal;

copying a second portion of the plurality of valid data from the one or more first blocks to the second block for the garbage collection time period;

converting the phased garbage collection block to a first update block of the non-volatile memory;

writing the second plurality of data to the first update block; and

releasing the second busy signal before the second timeout period.

9. The method of claim 8 , further comprising erasing the one or more first blocks.

10. The method of claim 8 , further comprising:

allocating a fourth block; and

writing the second plurality of data to the fourth block.

11. The method of claim 10 , further comprising copying a plurality of valid data from one or more fifth blocks to a sixth block for a remaining garbage collection time period.

12. The method of claim 11 , wherein the plurality of valid data are copied from the one or more fifth blocks to the sixth block within the second timeout period.

13. The method of claim 8 , wherein the first and second write commands are single sector write commands.

14. A method for operating a removable flash memory system having a flash memory in communication with a host via a host interface, comprising:

receiving a write command from the host via the host interface to write a plurality of data, the write command being allocated a timeout period to complete an execution of the write command;

asserting a busy signal to the host;

copying a portion of a plurality of valid data from one or more first blocks of the flash memory to a second block of the flash memory for a garbage collection time period;

writing the plurality of data to a phased garbage collection block that spans a single logical group in the flash memory;

converting the phased garbage collection block to an update block of the flash memory; and

releasing the busy signal before the timeout period.

15. The method of claim 14 , wherein the write command is a single sector write command.

16. The method of claim 14 , wherein the copying the portion of the plurality of valid data comprises:

tracking a time for the copying the portion of the plurality of valid data from the one or more first blocks to the second block; and

stopping the copying the portion of the plurality of valid data before the time exceeds the garbage collection time period.

17. The method of claim 14 , wherein the garbage collection time period is a difference between the timeout period and a programming time associated with the writing the plurality of data.

18. A method for operating a removable flash memory system having a flash memory in communication with a host via a host interface, comprising:

receiving a first write command from the host via the host interface to write a first plurality of data, the first write command being allocated a first timeout period to complete an execution of the first write command;

asserting a first busy signal to the host;

copying a first portion of a plurality of valid data from one or more first blocks of the flash memory to a second block of the flash memory for a garbage collection time period;

writing the first plurality of data to a phased garbage collection block that spans a single logical group in the flash memory;

releasing the first busy signal before a timeout period;

receiving a second write command from the host via the host interface to write a second plurality of data, the second write command being received after the receiving the first write command, the second write command being allocated a second timeout period to complete an execution of the second write command;

asserting a second busy signal to the host;

copying a second portion of the plurality of valid data from the one or more first blocks to the second block for the garbage collection time period; and

releasing the second busy signal before the second timeout period converting the phased garbage collection block to an update block of the flash memory.

19. The method of claim 18 , further comprising writing the second plurality of data to the scratch pad block.

20. The method of claim 18 , further comprising writing the second plurality of data to an update block.

21. The method of claim 18 , further comprising erasing the one or more first blocks after the copying the second portion of the plurality of valid data.

22. The method of claim 21 , wherein the one or more first blocks are erased if the second portion of the plurality of valid data is a last portion of the plurality of valid data.

23. The method of claim 18 , further comprising:

allocating an update block; and

copying the first plurality of data from the scratch pad block to the update block.

24. The method of claim 18 , wherein the first and second write commands are single sector write commands.

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 038809/0472 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2011
From: SANDISK CORPORATION
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 026381/0574 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2006
From: TRAISTER, SHAI; LIN, JASON
To: SANDISK CORPORATION
Reel/Frame 018689/0653 →
Continuity (1)
Related Publication 20080086619A1 · Apr 10, 2008