Memory super block allocation
First Claim
Patent Images
1. A memory controller, comprising:
- control circuitry coupled to one or more memory devices having multiple groups of planes associated therewith, each group including at least two planes of physical blocks organized into super blocks, with each super block including a physical block from each of the at least two planes, and wherein the control circuitry is configured to;
receive a first unassigned logical block address (LBA) associated with a write operation;
determine a particular free super block within a selected one of the multiple groups to receive data associated with the write operation;
receive a different unassigned LBA associated with a subsequent write operation;
determine a particular free super block within a selected one of the multiple groups to receive data associated with the subsequent write operation;
track, for each of the multiple groups, a number of free super blocks available in each group;
determine which of the super blocks have stale data;
determine when the super blocks having stale data are to be erased; and
for each of the multiple groups, prevent the super blocks having stale data from being erased until the group does not include any free super blocks.
8 Assignments
0 Petitions
Accused Products
Abstract
The present disclosure includes methods and devices for memory block selection. In one or more embodiments, a memory controller includes control circuitry coupled to one or more memory devices having multiple Groups of planes associated therewith, each Group including at least two planes of physical blocks organized into Super Blocks, with each Super Block including a physical block from each of the at least two planes. The control circuitry is configured to receive a first unassigned logical block address (LBA) associated with a write operation and determine a particular free Super Block within a selected one of the multiple Groups to receive data associated with the write operation.
28 Citations
17 Claims
-
1. A memory controller, comprising:
control circuitry coupled to one or more memory devices having multiple groups of planes associated therewith, each group including at least two planes of physical blocks organized into super blocks, with each super block including a physical block from each of the at least two planes, and wherein the control circuitry is configured to; receive a first unassigned logical block address (LBA) associated with a write operation; determine a particular free super block within a selected one of the multiple groups to receive data associated with the write operation; receive a different unassigned LBA associated with a subsequent write operation; determine a particular free super block within a selected one of the multiple groups to receive data associated with the subsequent write operation; track, for each of the multiple groups, a number of free super blocks available in each group; determine which of the super blocks have stale data; determine when the super blocks having stale data are to be erased; and for each of the multiple groups, prevent the super blocks having stale data from being erased until the group does not include any free super blocks. - View Dependent Claims (2, 3, 4, 5)
-
6. A system, comprising
a controller; - and
a number of memory devices coupled to the controller, the number of memory devices having multiple groups of planes associated therewith, each group including at least two planes of physical blocks organized into super blocks, with each super block including a physical block from each of the at least two planes;
wherein the controller is configured to control;receiving a first unassigned logical block address (LBA) associated with a write operation; determining a particular free super block within a selected one of the multiple groups to receive data associated with the write operation; assigning the first unassigned LBA to the selected one of the multiple groups such that data associated with all subsequent write operations corresponding to the previously unassigned first LBA is written to a free super block within the respective assigned group; tracking, for each of the multiple groups, a number of free super blocks available in each group; determining which of the super blocks have stale data; determining when the super blocks having stale data are to be erased; and for each of the multiple groups, preventing the super blocks having stale data from being erased until the respective group does not include any free super blocks. - View Dependent Claims (7, 8, 9, 10, 11)
- and
-
12. A method for block selection, the method comprising:
-
receiving a first unassigned logical block address (LBA) in association with a first write operation; writing data corresponding to the first write operation to a selected free super block within a selected group of multiple groups of planes; assigning the first unassigned LBA to the selected group such that data associated with a number of subsequent write operations corresponding to the first unassigned LBA is written to a free super block within the assigned selected group; receiving a second unassigned LBA in association with a subsequent write operation; and writing data corresponding to the subsequent write operation to a selected free super block within a selected one of the multiple groups; removing the free super block written to in association with the first write operation from a list of available free super blocks associated with the respective selected group after the first write operation; removing the super block written to in association with the second write operation from a list of available free super blocks associated with the respective selected group after the subsequent write operation; preventing a respective one of the removed super blocks from being returned to a respective one of the lists until each of the super blocks of the respective one of the groups has been written to at least once; and for each of the multiple groups of planes, preventing super blocks having stale data from being erased until the respective group does not include any free super blocks. - View Dependent Claims (13, 14, 15, 16, 17)
-
Specification