IP Library › Granted Patent US 12,032,848
Granted Patent B2
US 12,032,848 · App. 17/352,459 · Granted Jul 9, 2024

Intelligent block allocation in a heterogeneous storage system

Inventors: Zoltan DeWitt (San Francisco, CA); Benjamin Scholbrock (San Jose, CA)
Assignee: PURE STORAGE, INC.
G06F3/0652G06F3/0604G06F3/0631G06F3/0644G06F3/067G06F3/0679
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,032,848
App. No.
17/352,459
Granted
Jul 9, 2024
Kind
B2
Abstract

A storage system forms an allocation unit for writing into solid-state storage memory. The allocation unit is formed from at least a portion of a first erase block and a first sub block of a partitioned second erase block. The system forms multiple subsequent allocation units. Each subsequent allocation unit is formed from a remaining second sub block of a partitioned erase block and at least a portion of a next erase block. Forming the subsequent allocation units consumes each of multiple erase blocks in a cascading sequence. The system allocates the allocation unit and the subsequent allocation units for writing in the storage system.

Claims (41)

1. A method, comprising:

forming, by a processing device of a storage controller, a first allocation unit having a first allocation unit size for writing into solid-state storage memory of a storage system, from at least a portion of a first erase block and a first sub block of a second erase block, wherein first and second erase blocks have differing sizes;

forming, by the processing device, one or more subsequent allocation units having corresponding allocation unit sizes equal to the first allocation unit size from a second sub block of the second erase block and at least a portion of a third erase block; and

allocating, by the processing device, the first allocation unit and the one or more subsequent allocation units for the writing of data in the solid-state storage memory, wherein the writing of the data is to be performed sequentially such that only one of the first erase block, the second erase block, or the third erase block is open during the writing of the data.

2. The method of claim 1 , further comprising:

iteratively, by the processing device, forming the allocation unit and the one or more subsequent allocation units, wherein data and metadata is to be written in the storage system using the one or more subsequent allocation units.

3. The method of claim 1 , further comprising:

performing, by the processing device, a head scan at zero offset into each such allocation unit, wherein each such allocation unit comprises a head section beginning at the zero offset into the allocation unit, and such head sections begin at differing offsets in the first erase block, the second erase block, and the third erase block.

4. The method of claim 1 , further comprising:

defining, by the processing device, an allocation unit size greater than a minimum size of erase blocks of the solid-state storage memory, which are heterogeneous in size, in the storage system.

5. The method of claim 1 , further comprising:

defining, by the processing device, an allocation unit size equal to a maximum size of erase blocks of the solid-state storage memory, which are heterogeneous in size, in the storage system.

6. The method of claim 1 , wherein the first allocation unit size is based on different erase block sizes of a plurality of storage devices of the storage system.

7. A non-transitory computer-readable media having instructions thereupon which, when executed by a processing device of a storage controller, cause the processing device to:

form a first allocation unit having a first allocation size for writing into solid-state storage memory, from at least a portion of a first erase block and a first sub block of a second erase block, wherein first and second erase blocks have differing sizes;

form one or more of subsequent allocation units having corresponding allocation unit sizes equal to the first allocation unit size from a second sub block of the second erase block and at least a portion of a third erase block; and

allocate the first allocation unit and the one or more subsequent allocation units for the writing of data into the solid-state storage memory, wherein the writing of the data is to be performed sequentially such that only one of the first erase block, the second erase block, or the third erase block is open during the writing of the data.

8. The non-transitory computer-readable media of claim 7 , wherein the processing device is further configured to:

iteratively form the allocation unit and each of the one or more subsequent allocation units on an ongoing basis, wherein data and metadata is to be written in a storage system using the one or more subsequent-allocation units.

9. The non-transitory computer-readable media of claim 1 , wherein the processing device is further configured to:

perform a head scan at zero offset into each such allocation unit, wherein each such allocation unit comprises a head section beginning at the zero offset into the allocation unit, and such head sections begin at differing offsets in the first erase block, the second erase block, and the third erase block.

10. The non-transitory computer-readable media of claim 8 , wherein the processing device is further configured to:

define an allocation unit size greater than a minimum size of erase blocks of solid-state storage memory, which are heterogeneous in size, in the solid-state storage memory.

11. The non-transitory computer-readable media of claim 7 , wherein the processing device is further configured to:

determine an allocation unit size equal to a maximum size of erase blocks of solid-state storage memory, which are heterogeneous in size, in the solid-state storage memory.

12. The non-transitory computer-readable storage medium of claim 7 , wherein the first allocation unit size is based on different erase block sizes of a plurality of storage devices of the storage system.

13. A storage system, comprising:

solid-state storage memory; and

a processing device, operatively coupled to the solid-state storage memory, configured to:

form a first allocation unit having a first allocation unit size for writing into the solid-state storage memory, from at least a portion of a first erase block and a first sub block of a second erase block, wherein first and second erase blocks have differing sizes;

form one or more subsequent allocation units having corresponding allocation unit sizes equal to the first allocation unit size from a second sub block of the second erase block and at least a portion of a third erase block; and

allocate the allocation unit and the one or more subsequent allocation units for the writing of data into the solid-state storage memory, wherein the writing of the data is to be performed sequentially such that only one of the first erase block, the second erase block, or the third erase block is open during the writing of the data.

14. The storage system of claim 13 , wherein the processing device is further configured to:

iteratively form the allocation unit and the one or more subsequent allocation units on an ongoing basis, wherein data and metadata is to be written in the storage system using the one or more subsequent allocation units.

15. The storage system of claim 13 , the processing device is further configured to:

perform a head scan at zero offset into each such allocation unit, wherein each such allocation unit comprises a head section beginning at the zero offset into the allocation unit, and such head sections begin at differing offsets in the first erase block, the second erase block, and the third erase block.

16. The storage system of claim 13 , the processing device is further configured to:

determine an allocation unit size greater than a minimum size of erase blocks of solid-state storage memory, which are heterogeneous in size, in the solid-state storage memory.

17. The storage system of claim 13 , wherein the processing device is further configured to:

determine an allocation unit size equal to a maximum size of erase blocks of solid-state storage memory, which are heterogeneous in size, in the solid-state storage memory.

18. The storage system of claim 13 , wherein the first allocation unit size is based on different erase block sizes of a plurality of storage devices of the storage system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2021
From: DEWITT, ZOLTAN; SCHOLBROCK, BENJAMIN
To: PURE STORAGE, INC.
Reel/Frame 056597/0799 →
Continuity (1)
Related Publication 20220404997A1 · Dec 22, 2022