Method for phased garbage collection with state indicators
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.
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.