Using a common pool of blocks for user data and a system data structure
US-2020210331-A1 · Jul 2, 2020 · US
US12430243B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12430243-B2 |
| Application number | US-202218070844-A |
| Country | US |
| Kind code | B2 |
| Filing date | Nov 29, 2022 |
| Priority date | Dec 31, 2018 |
| Publication date | Sep 30, 2025 |
| Grant date | Sep 30, 2025 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A method includes identifying, by a processing device, a common pool of blocks comprising a first plurality of blocks allocated to system data and a second plurality of blocks allocated to user data; determining whether user data has been written to the second plurality of blocks within a threshold period of time; and responsive to determining that the user data has not been written to the second plurality of blocks within the threshold period of time, allocating a block from the second plurality of blocks to the first plurality of blocks.
Opening claim text (preview).
What is claimed is: 1. A method, comprising: identifying, by a processing device, a common pool of blocks of a memory device, the common pool of blocks comprising a first plurality of blocks allocated to system data and a second plurality of blocks allocated to user data; responsive to determining that the user data has not been written to the second plurality of blocks within a threshold period of time, allocating a block from the second plurality of blocks to the first plurality of blocks of the memory device, wherein the block is designated for the user data before the allocating and designated for the system data after the allocating; and responsive to identifying, among the first plurality of blocks, an unused block, reallocating the unused block from the first plurality of blocks to the second plurality of blocks, wherein the unused block is designated for the system data before the reallocating and designated for the user data after the reallocating. 2. The method of claim 1 , further comprising: determining whether a size of data of the first plurality of blocks satisfies a garbage collection performance condition. 3. The method of claim 2 , wherein determining whether the size of data of the first plurality of blocks satisfies the garbage collection performance condition comprises: determining a size of valid data stored in a block, wherein the block is included in the first plurality of blocks. 4. The method of claim 2 , further comprising: responsive to determining that the size of data of the first plurality of blocks satisfies the garbage collection performance condition, allocating an unused block from the common pool to the first plurality of blocks. 5. The method of claim 2 , further comprising: responsive to determining that the size of data of the first plurality of blocks satisfies the garbage collection performance condition, performing a garbage collection operation on a first block of the first plurality of blocks allocated to a system data structure; and allocating the first block to the second plurality of blocks. 6. The method of claim 2 , further comprising: responsive to determining that the size of data of the first plurality of blocks does not satisfy the garbage collection performance condition, determining whether a number of the first plurality of blocks satisfies a threshold value. 7. The method of claim 6 , further comprising: responsive to determining that the number of the first plurality of blocks satisfies the threshold value, allocating an unused block from the common pool to the first plurality of blocks without performing a garbage collection operation on the first plurality of blocks. 8. The method of claim 6 , further comprising: responsive to determining that the number of the first plurality of blocks does not satisfy the threshold value, allocating a second block from the second plurality of blocks to the first plurality of blocks. 9. A system comprising: a memory device; a processing device operatively coupled to the memory device, the processing device to perform operations comprising: identifying, a common pool of blocks of the memory device, the common pool of blocks comprising a first plurality of blocks allocated to system data and a second plurality of blocks allocated to user data; responsive to determining that the user data has been written to the second plurality of blocks within a threshold amount of time, allocating the first block to the second plurality of blocks of the memory device, wherein the block is designated for the user data before the allocating and designated for the system data after the allocating; and responsive to identifying, among the first plurality of blocks, an unused block, reallocating the unused block from the first plurality of blocks to the second plurality of blocks, wherein the unused block is designated for the system data before the reallocating and designated for the user data after the reallocating. 10. The method of claim 9 , wherein the processing device is to perform further operations comprising: determining whether a size of data of the first plurality of blocks satisfies a garbage collection performance condition. 11. The method of claim 10 , wherein determining whether the size of data of the first plurality of blocks satisfies the garbage collection performance condition comprises: determining a size of valid data stored in a block, wherein the block is included in the first plurality of blocks. 12. The method of claim 10 , wherein the processing device is to perform further operations comprising: responsive to determining that the size of data of the first plurality of blocks satisfies the garbage collection performance condition, allocating an unused block from the common pool to the first plurality of blocks. 13. The method of claim 10 , wherein the processing device is to perform further operations comprising: responsive to determining that the size of data of the first plurality of blocks satisfies the garbage collection performance condition, performing a garbage collection operation on a second block of the first plurality of blocks allocated to a system data structure; and allocating the second block to the second plurality of blocks. 14. The method of claim 10 , wherein the processing device is to perform further operations comprising: responsive to determining that the size of data of the first plurality of blocks does not satisfy the garbage collection performance condition, determining whether a number of the first plurality of blocks satisfies a threshold value. 15. The method of claim 14 , further comprising: responsive to determining that the number of the first plurality of blocks satisfies the threshold value, allocating an unused block from the common pool to the first plurality of blocks without performing a garbage collection operation on the first plurality of blocks. 16. The method of claim 14 , further comprising: responsive to determining that the number of the first plurality of blocks does not satisfy the threshold value, allocating a second block from the second plurality of blocks to the first plurality of blocks. 17. A non-transitory computer-readable storage medium comprising instructions that, when executed by a processing device, cause the processing device to perform operations comprising: identifying a common pool of blocks of the memory device, the common pool of blocks comprising a first plurality of blocks allocated to system data and a second plurality of blocks allocated to user data; responsive to determining that the user data has not been written to the second plurality of blocks within a threshold period of time, allocating a block from the second plurality of blocks to the first plurality of blocks of the memory device, wherein the block is designated for the user data before the allocating and designated for the system data after the allocating; responsive to identifying, among the first plurality of blocks, an unused block, reallocating the unused block from the first plurality of blocks to the second plurality of blocks, wherein the unused block is designated for the system data before the reallocating and designated for the user data after the reallocating. 18. The non-transitory computer-readable storage medium of claim 17 , wherein the processing device is to perform further operations comprising: determining whether a size of data of the first plurality of blocks satisfies a garbage collection performance condition; and responsive to determining that the siz
Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP] · CPC title
Details relating to dynamic memory management · CPC title
Cleaning, compaction, garbage collection, erase control · CPC title
Allocation control and policies · CPC title
Performance improvement · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.