IP Library › Granted Patent US 12,580,024
Granted Patent B2
US 12,580,024 · App. 18/745,660 · Granted Mar 17, 2026

Optimizing allocation unit sizes for heterogeneous storage systems

Inventors: Zoltan Dewitt (Daly City, CA); Benjamin Scholbrock (San Jose, CA); Andrew Bernat (Mountain View, CA); Ronald Karr (Palo Alto, CA); Robert Lee (Pebble Beach, CA)
Assignee: PURE STORAGE, INC.
G11C16/16G06F3/064G06F3/065G06F3/067G06F3/0689G06F11/1076G06F12/0246G06F12/0253G06F16/1752
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,580,024
App. No.
18/745,660
Granted
Mar 17, 2026
Kind
B2
Abstract

Allocation units having equal allocation unit sizes are formed for writing into erase blocks of a storage system. One or more of the allocation units are formed of at least a portion of two erase blocks. Data is written to the erase blocks forming the allocation units such that one of the erase blocks is open at a time during the writing of the data.

Claims (36)

1 . A storage system, comprising:

a plurality of solid-state storage devices comprising a plurality of erase blocks;

a storage controller comprising a processing device operatively coupled to the plurality of solid-state storage devices, configured to:

form a plurality of allocation units having equal allocation unit sizes for writing into the plurality of erase blocks, wherein one or more of the plurality of allocation units are formed of at least a portion of two erase blocks of the plurality of erase blocks; and

write data to the plurality of erase blocks forming the plurality of allocation units such that one of the plurality of erase blocks is open at a time during the writing of the data.

2 . The storage system of claim 1 , wherein the plurality of erase blocks comprises at least two erase blocks of differing sizes.

3 . The storage system of claim 2 , wherein the equal allocation unit sizes are equal to one of the at least two differing erase block sizes.

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

define the equal allocation unit sizes as greater than a minimum erase block size of the at least two differing erase block sizes.

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

define the equal allocation unit sizes as equal to a maximum size of the at least two differing erase block sizes.

6 . The storage system of claim 1 , wherein the plurality of erase blocks is directly mapped.

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

perform a head scan at zero offset into an allocation unit of the plurality of allocation units, wherein the allocation unit comprises a head section beginning at the zero offset into the allocation unit, and subsequent head sections of the plurality of allocation units begin at differing offsets in the plurality of erase blocks.

8 . A method, comprising:

forming, by a processing device of a storage controller, a plurality of allocation units having equal allocation unit sizes for writing into a plurality of erase blocks, wherein one or more of the plurality of allocation units are formed of at least a portion of two erase blocks of the plurality of erase blocks; and

writing data to the plurality of erase blocks forming the plurality of allocation units such that one of the plurality of erase blocks is open at a time during the writing of the data.

9 . The method of claim 8 , wherein the plurality of erase blocks comprises at least two erase blocks of differing sizes.

10 . The method of claim 9 , wherein the equal allocation unit sizes are equal to one of the at least two differing erase block sizes.

11 . The method of claim 9 , further comprising:

defining, by the processing device, the equal allocation unit sizes as greater than a minimum erase block size of the at least two differing erase block sizes.

12 . The method of claim 9 , further comprising:

defining, by the processing device, the equal allocation unit sizes as equal to a maximum size of the at least two differing erase block sizes.

13 . The method of claim 8 , wherein the plurality of erase blocks are directly mapped.

14 . The method of claim 8 , further comprising:

performing, by the processing device, a head scan at zero offset into an allocation unit of the plurality of allocation units, wherein the allocation unit comprises a head section beginning at the zero offset into the allocation unit, and subsequent head sections of the plurality of allocation units begin at differing offsets in the plurality of erase blocks.

15 . A non-transitory computer readable storage medium storing instructions which, when executed, cause a processing device to:

form a plurality of allocation units having equal allocation unit sizes for writing into a plurality of erase blocks, wherein one or more of the plurality of allocation units are formed of at least a portion of two erase blocks of the plurality of erase blocks; and

write data to the plurality of erase blocks forming the plurality of allocation units such that one of the plurality of erase blocks is open at a time during the writing of the data.

16 . The non-transitory computer readable storage medium of claim 15 , wherein the plurality of erase blocks comprises at least two erase blocks of differing sizes.

17 . The non-transitory computer readable storage medium of claim 16 , wherein the equal allocation unit sizes are equal to one of the at least two differing erase block sizes.

18 . The non-transitory computer readable storage medium of claim 15 , wherein the processing device is further configured to:

define the equal allocation unit sizes as greater than a minimum erase block size of the at least two differing erase block sizes.

19 . The non-transitory computer readable storage medium of claim 15 , wherein the plurality of erase blocks is directly mapped.

20 . The non-transitory computer readable storage medium of claim 15 , wherein the processing device is further configured to:

perform a head scan at zero offset into an allocation unit of the plurality of allocation units, wherein the allocation unit comprises a head section beginning at the zero offset into the allocation unit, and subsequent head sections of the plurality of allocation units begin at differing offsets in the plurality of erase blocks.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 18, 2024
From: DEWITT, ZOLTAN; SCHOLBROCK, BENJAMIN; BERNAT, ANDREW; KARR, RONALD; LEE, ROBERT
To: PURE STORAGE, INC.
Reel/Frame 067762/0685 →
Continuity (10)
Continuation In Part 17948064 · Sep 19, 2022
Continuation In Part 17380191 · Jul 20, 2021
Continuation In Part 17352459 · Jun 21, 2021
Continuation In Part 17318534 · May 12, 2021
Continuation In Part 16389675 · Apr 19, 2019
Continuation 15799938 · Oct 31, 2017
Continuation 15799979 · Oct 31, 2017
Provisional Application 62729597 · Sep 11, 2018
Provisional Application 62727792 · Sep 6, 2018
Related Publication 20240339159A1 · Oct 10, 2024
References Cited (32)
US 5634050A · Krueger et al. · 1997 [cited by applicant]
US 6144607A · Sassa · 2000 [cited by applicant]
US 6839823B1 · See et al. · 2005 [cited by applicant]
US 9665295B2 · Fitzpatrick et al. · 2017 [cited by applicant]
US 9910742B1 · Faibish et al. · 2018 [cited by applicant]
US 10545687B1 · Bernat et al. · 2020 [cited by applicant]
US 10740294B2 · Karr et al. · 2020 [cited by applicant]
US 11024390B1 · Aster et al. · 2021 [cited by applicant]
US 11494109B1 · Sears et al. · 2022 [cited by applicant]
US 20100023672A1 · Gorobets et al. · 2010 [cited by applicant]
US 20120198186A1 · Koshiyama et al. · 2012 [cited by applicant]
US 20130054873A1 · Belluomini et al. · 2013 [cited by applicant]
US 20140173179A1 · Ali et al. · 2014 [cited by applicant]
US 20160092110A1 · Khmelnitsky et al. · 2016 [cited by applicant]
US 20160142485A1 · Mitkar et al. · 2016 [cited by applicant]
US 20170155713A1 · Powell et al. · 2017 [cited by applicant]
US 20180074748A1 · Makin et al. · 2018 [cited by applicant]
US 20180081562A1 · Vasudevan · 2018 [cited by applicant]
US 20200104077A1 · Seppanen et al. · 2020 [cited by applicant]
US 20210311667A1 · Seppanen et al. · 2021 [cited by applicant]
US 20210326048A1 · Karr · 2021 [cited by examiner]
US 20210334201A1 · Bennett et al. · 2021 [cited by applicant]
US 20220156114A1 · Nagpal et al. · 2022 [cited by applicant]
US 20220404997A1 · DeWitt et al. · 2022 [cited by applicant]
US 20230280910A1 · Bernat et al. · 2023 [cited by applicant]
US 20240004568A1 · Gupta et al. · 2024 [cited by applicant]
US 20240078027A1 · Mun et al. · 2024 [cited by applicant]
US 20250123768A1 · Bernat et al. · 2025 [cited by applicant]
EP 2549385A1 · 2013 [cited by applicant]
WO WO2016086899A1 · 2016 [cited by applicant]
Frakes Dan, “Up close with Mountain Lion: Power Nap (Frakes, Dan, Working Mac—Up close with Mountain Lion: Power Nap, Macworld.com,” Aug. 1, 2012, pp. 1-6. [cited by applicant]
International Search Report and Written Opinion for International Application No. PCT/US2018/058567, mailed Mar. 28, 2019, 15 Pages. [cited by applicant]