Garbage collection
First Claim
1. An apparatus, comprising:
- a memory comprising a plurality of mixed mode blocks;
a controller configured to;
responsive to receiving an amount of data to be written to the memory, perform a foreground garbage collection operation that includes;
determining a block of the plurality of mixed mode blocks storing single level cell (SLC) mode data to be converted to multi level cell (MLC) mode data;
folding data stored in a first block of the plurality of mixed mode blocks in SLC mode and data stored in a second block of the plurality of mixed mode blocks in SLC mode, wherein folding the data of the first block and the data of the second block results in the data of the first block and the data of the second block being stored in the first block; and
storing a first portion of sequential host data received from a host in the first block in MLC mode; and
storing a second portion of sequential host data received from the host in a third block of the plurality of mixed mode blocks such that the third block does not include folded data;
wherein performing the foreground garbage collection operation includes adding more blocks to a free block pool than a quantity of blocks that are written to in association with writing the first portion of sequential host data to the plurality of mixed mode blocks.
5 Assignments
0 Petitions
Accused Products
Abstract
An example apparatus for garbage collection can include a memory including a plurality of mixed mode blocks. The example apparatus can include a controller. The controller can be configured to write a first portion of sequential host data to the plurality of mixed mode blocks of the memory in a single level cell (SLC) mode. The controller can be configured to write a second portion of sequential host data to the plurality of mixed mode blocks in an XLC mode. The controller can be configured to write the second portion of sequential host data by performing a garbage collection operation. The garbage collection operation can include adding more blocks to a free block pool than a quantity of blocks that are written to in association with writing the second portion of sequential host data to the plurality of mixed mode blocks.
-
Citations
27 Claims
-
1. An apparatus, comprising:
-
a memory comprising a plurality of mixed mode blocks; a controller configured to; responsive to receiving an amount of data to be written to the memory, perform a foreground garbage collection operation that includes; determining a block of the plurality of mixed mode blocks storing single level cell (SLC) mode data to be converted to multi level cell (MLC) mode data; folding data stored in a first block of the plurality of mixed mode blocks in SLC mode and data stored in a second block of the plurality of mixed mode blocks in SLC mode, wherein folding the data of the first block and the data of the second block results in the data of the first block and the data of the second block being stored in the first block; and storing a first portion of sequential host data received from a host in the first block in MLC mode; and storing a second portion of sequential host data received from the host in a third block of the plurality of mixed mode blocks such that the third block does not include folded data; wherein performing the foreground garbage collection operation includes adding more blocks to a free block pool than a quantity of blocks that are written to in association with writing the first portion of sequential host data to the plurality of mixed mode blocks. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method, comprising:
responsive to receiving an amount of data to be written to a plurality of mixed mode blocks of a memory, performing a foreground garbage collection operation that includes; determining a block of the plurality of mixed mode blocks storing single level cell (SLC) mode data to be converted to multi level cell (MLC) mode data; folding data stored in a first block of the plurality of mixed mode blocks in SLC mode and data stored in a second block of the plurality of mixed mode blocks in SLC mode, wherein folding the data of the first block and the data of the second block results in the data of the first block and the data of the second block being stored in the first block; and storing a first portion of sequential host data received from a host in the first block in MLC mode; and storing a second portion of sequential host data received from the host in a third block of the plurality of mixed mode blocks such that the third block does not include folded data. - View Dependent Claims (12, 13, 14, 15)
-
16. An apparatus, comprising:
-
a memory comprising a plurality of mixed mode blocks; a controller configured to; write sequential host data received from a host to a first block of the plurality of mixed mode blocks of the memory in a single level cell (SLC) mode; and responsive to receiving an amount of data to be written to the memory, perform a foreground garbage collection operation that includes; determining to convert the first block from SLC mode data to MLC mode data; folding the sequential host data stored in the first block in SLC mode and data stored in a second block of the plurality of mixed mode blocks in SLC mode, wherein folding the data of the first block and the data of the second block results in the data of the first block and the data of the second block being stored in the first block; and storing a first portion of sequential host data received from a host in the first block in MLC mode; and storing a second portion of sequential host data received from the host in a third block of the plurality of mixed mode blocks such that the third block does not include folded data. - View Dependent Claims (17, 18, 19, 20, 21, 22)
-
-
23. A method, comprising:
-
writing sequential host data to a plurality of mixed mode blocks of a memory in a single level cell (SLC) mode; performing a foreground garbage collection operation in response to; a quantity of blocks of the plurality of mixed mode blocks that are capable of being written to reaching a threshold quantity; and receiving an amount of data to be written to a plurality of mixed mode blocks of a memory; wherein performing the garbage collection operation on at least one of the plurality of mixed mode blocks includes; determining that the at least one of the plurality of mixed mode blocks storing single level cell (SLC) mode data is to be converted to multi level cell (MLC) mode data; folding data stored in the at least one block of the plurality of mixed mode blocks in SLC mode and data stored in a second block of the plurality of mixed mode blocks in SLC mode, wherein folding the data of the at least one block and the data of the second block results in the data of the at least one block and the data of the second block being stored in the at least one block; and storing a first portion of sequential host data received from a host in the at least one of the plurality of mixed mode blocks in MLC mode; and storing a second portion of sequential host data received from the host in a third block of the plurality of mixed mode blocks such that the third block does not include folded data. - View Dependent Claims (24, 25, 26, 27)
-
Specification