IP Library Granted Patent US 7,464,216
Granted Patent B2
US 7,464,216 · App. 11/540,778 · Granted Dec 9, 2008

Method for phased garbage collection with state indicators

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,464,216
App. No.
11/540,778
Granted
Dec 9, 2008
Kind
B2
Abstract

A method for phased garbage collection is described, the method including receiving a write command to write a memory write to a metablock, performing a first portion of a garbage collection operation, and storing the memory write in a buffer portion of the metablock.

Claims (47)

1. A method of operating a nonvolatile memory, comprising:

allocating a first memory block of the nonvolatile memory comprising a first logical group and a first buffer portion;

receiving a memory write command and writing data of the memory write command to a second buffer portion of a second memory block of the nonvolatile memory;

performing at least a portion of a garbage collection of a second logical group;

opening an update block for the first logical group;

performing a phased garbage collection of the first logical group;

indicating that the buffer portion is available using a first intact state;

indicating that the memory block is full using a second intact state; and

indicating that a first phase of the phased garbage collection is completed using a half full state.

2. The method of claim 1 , further comprising converting the memory block to an intact block after performing the phased garbage collection.

3. The method of claim 1 , further comprising compacting the memory block if the memory block comprises invalid data.

4. The method of claim 1 , further comprising allocating a reserve buffer portion of the memory block to store another memory write received before the second memory write command.

5. A method of operating a nonvolatile memory, comprising:

allocating a memory block of the nonvolatile memory comprising a logical group and a buffer portion and indicating that the memory block is in a sequential update state;

performing a first phase of garbage collection and indicating that the memory block is in a half full state;

performing a second phase of garbage collection and indicating that the memory block is in a first state; and

writing a memory write of a memory write command to the buffer portion and indicating that the memory blocks is in a second intact state.

6. The method of claim 5 , further comprising:

asserting a first timeout period before the performing the first phase of garbage collection; and

asserting a second timeout period before the performing the second phase of garbage collection.

7. The method of claim 6 ,

wherein the asserting the first timeout period is in response to receiving another memory write command; and

wherein the asserting the second timeout period is in response to receiving the memory write command.

8. The method of claim 5 , wherein the indicating that the memory block is in a first intact state comprises indicating that the buffer portion may be written to.

9. The method of claim 5 , wherein the indicating that the memory block is in a second intact comprises indicating that no more data may be written to the memory block.

10. The method of claim 5 , further comprising:

receiving another memory write updating the memory block when the memory block is in the sequential update state; and

indicating that the memory block is in a chaotic update state.

11. The method of claim 10 , further comprising:

compacting the memory block; and

indicating that the memory block is in the sequential update state.

12. A method of operating a nonvolatile memory comprising:

allocating a memory block of the nonvolatile memory comprising a logical group and a buffer portion;

receiving a first memory write command including a first memory write to update an original block and copying the memory write to the memory block;

asserting a first timeout period in response to the receiving the first memory write and asserting a busy signal to notify a memory host of the first timeout period;

performing a first phase of a garbage collection of the memory block;

receiving a second memory write command including a second memory write to update the memory block;

asserting a second timeout period in response to the receiving the second memory write and asserting the busy signal to notify a memory host of the second timeout period;

performing a second phase of the garbage collection of the memory block; and

writing the second memory write to the buffer portion;

indicating that the memory block is in a sequential update state in response to the receiving the first memory write;

indicating that the memory block is in a half full state in response to the performing the first phase of the garbage collection;

indicating that the memory block is in a first intact state in response to the performing the second phase of the garbage collection; and

indicating that the memory block is in a second intact state in response to the writing the second memory write.

13. The method of claim 12 , wherein the indicating that the memory block is in a first intact state comprises indicating that the buffer portion may be written to.

14. The method of claim 12 , wherein the indicating that the memory block is in a second intact state comprises indicating that no more data may be written to the memory block.

15. The method of claim 12 , further comprising compacting the memory block after receiving the first memory write command if the memory block has invalid data.

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/0835 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2006
From: GOROBETS, SERGEY ANATOLIEVICH
To: SANDISK CORPORATION
Reel/Frame 018660/0449 →
Continuity (1)
Related Publication 20080082596A1 · Apr 3, 2008