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, based on a maintained count of free blocks available in the respective multiple Groups, a particular free Super Block within a selected one of the multiple Groups to receive data associated with the write operation;
assign 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;
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.
29 Citations
20 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, based on a maintained count of free blocks available in the respective multiple Groups, a particular free Super Block within a selected one of the multiple Groups to receive data associated with the write operation; assign 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; 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, 7)
-
8. A memory controller, comprising:
control circuitry coupled to a number of memory devices having multiple Groups of planes associated therewith, each Group including; at least two planes of physical blocks; and a number of Super Blocks with each of the Super Blocks comprising a respective collection of physical blocks including a physical block from each of the at least two planes of the Group;
wherein the control circuitry is configured to;receive a first unassigned LBA in association with a first write operation; determine, based on a on a ratio of free Super Blocks to used Super Blocks for each of the multiple Groups, a selected free Super Block within a selected one of the multiple Groups to receive data associated with the first write operation; assign 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 selected one of the multiple Groups; write data corresponding to the first write operation to the selected free Super Block within the selected one of the multiple Groups track, for each of the multiple Groups, a number of free Super Blocks available in each Group; add erased Super Blocks to the number of free Super Blocks available in each Group at particular times and on a Group by Group basis; and for each of the multiple Groups, prevent the erased Super Blocks from being added to the number of free Super Blocks available in the Group until the Group does not include any free Super Blocks. - View Dependent Claims (9, 10)
-
11. A memory controller, comprising:
-
control circuitry coupled to a number of memory devices having multiple Groups of planes associated therewith, each Group including a plane from at least two memory arrays and having a number of Super Blocks associated therewith, each of the Super Blocks comprising a respective collection of physical blocks including a physical block from each of the at least two memory arrays of a respective one of the Groups; and wherein the control circuitry is configured to; receive a first unassigned logical block address (LBA) in association with a first write operation; determine, based on a maintained count of free blocks available in the respective multiple Groups, a particular free Super Block within a selected one of the multiple Groups to receive data associated with the first write operation; assign a range of LBAs that includes the first unassigned LBA to a selected one of the multiple Groups such that data associated with all subsequent write operations corresponding to the range of LBAs that includes the first unassigned LBA is written to a free Super Block within the respective assigned selected one of the multiple Groups; write data corresponding to the first write operation to a selected Super Block within the selected one of the multiple Groups; receive a second LBA in association with a second write operation; write data corresponding to the second write operation to the same selected Super Block when the second LBA is within the range of LBAs assigned to the selected one of the multiple Groups 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 (12, 13, 14)
-
-
15. A method for block selection in a memory system, the method comprising:
-
receiving a first logical block address (LBA) in association with a first write operation; selecting a free Super Block within a selected Group of multiple Groups of planes to receive data associated with the first write operation, the selected Group determined based on a maintained count of free blocks available for each of the multiple Groups; writing data corresponding to the first write operation to the selected free Super Block within the selected Group of multiple Groups; wherein each of the Groups is a collection of at least two planes with each of the Super Blocks being a respective collection of one physical block from each of the at least two planes; wherein the first LBA is not pre-assigned to a particular Super Block and is not pre-assigned to a particular one of the multiple Groups of planes; responsive to the first write operation, assigning the first LBA to the selected Group such that data associated with all subsequent write operations corresponding to the previously unassigned LBA is written to a free Super Block within the assigned Group; receiving a second LBA associated 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; wherein the second LBA is not pre-assigned to a particular Super Block and is not pre-assigned to a particular 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; and 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. - View Dependent Claims (16, 18, 19, 20)
-
-
17. The method of claim, wherein selecting the selected one of the multiple Groups associated with the subsequent write operation includes selecting a Group different from the selected one of the multiple Groups associated with the first write operation.
Specification