US2023022758A1PendingUtilityA1

Garbage collection for heterogenous flash memory storage devices

Assignee: PURE STORAGE INCPriority: Feb 22, 2018Filed: Sep 28, 2022Published: Jan 26, 2023
Est. expiryFeb 22, 2038(~11.6 yrs left)· nominal 20-yr term from priority
G06F 3/0608G06F 12/0253G06F 3/0652G06F 3/067G06F 3/0685G06F 3/0658G06F 2212/7208G06F 12/0246G06F 2212/7205G06F 2212/1016G06F 3/0688G06F 3/061G06F 3/064
59
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A system includes a solid-state storage array having a plurality of solid-state storage devices and a storage controller coupled to the solid-state storage array, the storage controller including a processing device, the processing device to determine that a first allocation unit has a first portion occupying a first plurality of erase blocks and a second portion sharing a second erase block with a portion of a second allocation unit. The processing device is further to relocate data of the portion of the second allocation unit sharing the second erase block with the second portion of the first allocation unit to another erase block and in response to relocating the data of the portion of the second allocation unit, reclaim the first plurality of erase blocks and the second erase block.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A system comprising:
 a plurality of heterogeneous solid-state storage devices; and   a storage controller operatively coupled to the solid-state storage plurality of heterogeneous solid-state storage devices, the storage controller comprising a processing device, the processing device to:
 determine that a first set of data blocks has a first portion occupying a first plurality of erase blocks and a second portion sharing a second erase block with a portion of a second set of data blocks; and 
 in response to the request to perform garbage collection, relocate data of the portion of the second set of data blocks sharing the second erase block with the second portion of the first set of data blocks to another erase block. 
   
     
     
         2 . The system of  claim 1 , wherein the plurality of heterogeneous solid-state storage devices uses different erase block sizes. 
     
     
         3 . The system of  claim 1 , wherein the first set of data blocks comprises a first allocation of blocks and the second set of data blocks comprises a second allocation of blocks. 
     
     
         4 . The system of  claim 1 , wherein the processing devices is further to:
 in response to relocating the data of the portion of the second set of data blocks, perform garbage collection of the first plurality of erase blocks and the second erase block.   
     
     
         5 . The system of  claim 1 , wherein the processing device is further to:
 relocate data of a portion of a third set of data blocks sharing a third erase block with a third portion of the first set of data blocks to the other erase block.   
     
     
         6 . The system of  claim 1 , wherein the processing device is further to:
 identify the first plurality of erase blocks and the second erase block associated with the first set of data blocks, wherein the processing device determines that the first set of data blocks has a first portion occupying the first plurality of erase blocks and the second portion sharing a second erase block with the portion of the second set of data blocks is in response to identifying the first plurality of erase blocks and the second erase block associated with the first set of data blocks.   
     
     
         7 . The system of  claim 4 , wherein to perform garbage collection of the first plurality of erase blocks and the second erase block, the processing device is further to:
 program metadata to obsolete the data stored at the first plurality of erase blocks and the second erase block.   
     
     
         8 . The system of  claim 1 , wherein the first set of data blocks is assigned to one of a plurality of available sets of data blocks. 
     
     
         9 . The system of  claim 8 , wherein the processing device is further to:
 in response to receiving a request for sets of data blocks, identify one or more sets of data blocks of the plurality of available sets of data blocks, wherein the one or more sets of data blocks correspond to physical locations on a solid-state storage device of the plurality of solid-state storage devices that allow for performance of parallel programming operations.   
     
     
         10 . A method, comprising:
 determining that a first set of data blocks has a first portion occupying a first plurality of erase blocks and a second portion sharing a second erase block with a portion of a second set of data blocks, wherein the first plurality of erase blocks and the second erase block are located on a plurality of heterogenous solid-state storage devices; and   in response to the request to perform garbage collection, relocating data of the portion of the second set of data blocks sharing the second erase block with the second portion of the first set of data blocks to another erase block.   
     
     
         11 . The method of  claim 10 , wherein the plurality of heterogeneous solid-state storage devices uses different erase block sizes. 
     
     
         12 . The method of  claim 10 , wherein the first set of data blocks comprises a first allocation of blocks and the second set of data blocks comprises a second allocation of blocks. 
     
     
         13 . The method of  claim 10 , further comprising:
 in response to relocating the data of the portion of the second set of data blocks, performing garbage collection of the first plurality of erase blocks and the second erase block.   
     
     
         14 . The method of  claim 10 , further comprising:
 relocating data of a portion of a third set of data blocks sharing a third erase block with a third portion of the first set of data blocks to the other erase block.   
     
     
         15 . The method of  claim 10 , further comprising:
 identifying the first plurality of erase blocks and the second erase block associated with the first set of data blocks, wherein the processing device determines that the first set of data blocks has a first portion occupying the first plurality of erase blocks and the second portion sharing a second erase block with the portion of the second set of data blocks is in response to identifying the first plurality of erase blocks and the second erase block associated with the first set of data blocks.   
     
     
         16 . The method of  claim 13 , wherein performing garbage collection of the first plurality of erase blocks and the second erase block comprises:
 programing metadata to obsolete the data stored at the first plurality of erase blocks and the second erase block.   
     
     
         17 . The method of  claim 10 , wherein the first set of data blocks is assigned to one of a plurality of available sets of data blocks. 
     
     
         18 . The method of  claim 17 , further comprising:
 in response to receiving a request for sets of data blocks, identifying one or more sets of data blocks of the plurality of available sets of data blocks, wherein the one or more sets of data blocks correspond to physical locations on a solid-state storage device of the plurality of solid-state storage devices that allow for performance of parallel programming operations.   
     
     
         19 . A non-transitory computer readable storage medium storing instructions, which when executed, cause a processing device to:
 determine that a first set of data blocks has a first portion occupying a first plurality of erase blocks and a second portion sharing a second erase block with a portion of a second set of data blocks, wherein the first plurality of erase blocks and the second erase block are located on a plurality of heterogenous solid-state storage devices; and   in response to the request to perform garbage collection, relocate data of the portion of the second set of data blocks sharing the second erase block with the second portion of the first set of data blocks to another erase block.   
     
     
         20 . The non-transitory computer readable storage medium, wherein the processing device is further to:
 in response to relocating the data of the portion of the second set of data blocks, perform garbage collection of the first plurality of erase blocks and the second erase block.

Join the waitlist — get patent alerts

Track US2023022758A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.