IP Library Granted Patent US 11,847,331
Granted Patent B2
US 11,847,331 · App. 16/711,828 · Granted Dec 19, 2023

Budgeting open blocks of a storage unit based on power loss prevention

Inventors: Andrew R. Bernat (Mountain View, CA); Wei Tang (San Jose, CA); Phillip Hord (Mountain View, CA); Gordon James Coleman (Los Altos, CA)
Assignee: PURE STORAGE, INC.
G06F3/064G06F1/30G06F3/0619G06F3/0631G06F3/0659G06F3/0679G06F9/30047G06F11/3034G06F12/0871
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 11,847,331
App. No.
16/711,828
Granted
Dec 19, 2023
Kind
B2
Abstract

A storage unit has one or more processing devices, a solid-state drive and an open blocks cache memory. The open blocks cache memory holds open blocks of data or metadata and holds closed blocks of data or metadata pending writing to the solid-state drive. Closed blocks of data or metadata are written to the solid-state drive and open blocks of data or metadata are written to the open blocks cache memory. Values for open blocks in the open blocks cache memory are tracked. The values are adjusted in a first direction when an open block is written to the open blocks cache memory, and the values are adjusted in a second direction when an open block in the open blocks cache memory is closed and written from the open blocks cache memory to the solid-state drive.

Claims (55)

1. A storage unit, comprising:

a solid-state drive;

a cache memory, to hold open blocks of data and hold closed blocks of data pending writing to the solid-state drive; and

a processing device, operatively coupled to the solid-state drive and the cache memory, the processing device to:

write the closed blocks of data to the solid-state drive and write the open blocks of data to the cache memory;

track a count for the open blocks of data in the cache memory and allocate blocks for writing of data;

determine a maximum number of the count, based in part on a power requirement of the solid-state drive;

adjust the count in a first direction when an open block is written to the cache memory; and

adjust the count in a second direction when an open block in the cache memory is closed and written from the cache memory to the solid-state drive.

2. The storage unit of claim 1 , wherein the maximum number of the count for the open blocks of data in the cache memory corresponds in part to at least one of a size of the cache memory and an amount of time available from power loss support for flushing the cache memory to the solid-state drive.

3. The storage unit of claim 1 , wherein the processing device is further to:

track, for a plurality of locations in the cache memory, whether a location is occupied by a block that is open, whether a location is occupied by a block that is closed and pending write to the solid-state drive, and whether a location is occupied by a block that is available for writing.

4. The storage unit of claim 1 , wherein the processing device is further to:

write prematurely closed block from the cache memory to the solid-state drive and adjust the count in the second direction to indicate freed up space in the cache memory.

5. The storage unit of claim 1 , where the processing device is further to:

bypass the tracking of the count for the open blocks of data in the cache memory.

6. The storage unit of claim 1 , wherein the processing device is further to:

write each closed block from the cache memory to the solid-state drive, responsive to the count meeting a threshold.

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

pad and close each open block in the cache memory, and flush such closed blocks from the cache memory to the solid-state drive, responsive to power loss.

8. A method, comprising:

writing open blocks of data to a cache memory;

adjusting, by a processing device of a storage unit, a count for the open blocks of data in the cache memory in a first direction, responsive to each open block written to the cache memory;

closing one or more open blocks in the cache memory and writing the closed one or more open blocks from the cache memory to a solid-state drive;

adjusting the count in a second direction, responsive to each open block that is closed and written from the cache memory to the solid-state drive; and

determine a maximum number of the count, based in part on a power requirement of the solid-state drive.

9. The method of claim 8 , further comprising:

tracking the count, wherein the maximum number of the count is established based in part on at least one of a size of the cache memory, and an amount of time available for flushing the cache memory to the solid-state drive with power loss support.

10. The method of claim 8 , further comprising:

tracking in a firmware control table, for a plurality of locations in the cache memory, as to whether a location is occupied by an open block, whether a location is occupied by a closed block that is pending write to the solid-state drive, and whether a location is available for writing an open block, wherein the adjusting the count in the first direction and the second direction is based on the tracking in the firmware control table.

11. The method of claim 8 , further comprising:

writing a prematurely closed block from the cache memory to the solid-state drive and adjusting the count in the second direction to indicate freed up space in the cache memory.

12. The method of claim 8 , further comprising:

bypassing the adjusting of the count in the first or second direction to write closed blocks to the solid-state drive.

13. The method of claim 8 , further comprising:

closing at least one open block in the cache memory to write out each closed block to the solid-state drive and free up space in the cache memory, responsive to the count meeting a threshold.

14. The method of claim 8 , further comprising:

flushing padded blocks from the cache memory to the solid-state drive, responsive to power loss.

15. A tangible, non-transitory, computer-readable media having instructions thereupon which, when executed by a processing device, cause the processing device to:

write open blocks of data to a cache memory;

adjust, by the processing device, a count in a first direction, responsive to each open block written to the cache memory;

close one or more open blocks in the cache memory;

write the closed one or more open blocks from the cache memory to a solid-state drive;

adjust the count in a second direction, responsive to each open block that is closed and written from the cache memory to the solid-state drive; and

determine a maximum number of the count, based in part on a power requirement of the solid-state drive.

16. The tangible, non-transient, computer-readable media of claim 15 , wherein the instructions further cause the processing device to:

track the count, wherein the maximum number of the count is established in part relating to at least one of a size of the cache memory, and an amount of time available for flushing the cache memory to the solid-state drive with power loss support.

17. The tangible, non-transient, computer-readable media of claim 15 , wherein the instructions further cause the processing device to:

track in a firmware control table, for a plurality of locations in the cache memory, as to whether a location is occupied by an open block, whether a location is occupied by a closed block that is pending write to the solid-state drive, and whether a location available for writing an open block, and track the count based on the tracking in the firmware control table.

18. The tangible, non-transient, computer-readable media of claim 15 , wherein the instructions further cause the processing device to:

write a prematurely closed block from the cache memory to the solid-state drive and adjust the count in the second direction to indicate freed up space in the cache memory.

19. The tangible, non-transient, computer-readable media of claim 15 , wherein the instructions further cause the processing device to:

bypass the adjusting the count in the first or second direction, to write one or more closed blocks to the cache memory and from the cache memory to the solid-state drive.

20. The tangible, non-transient, computer-readable media of claim 15 , wherein the instructions further cause the processing device to:

release space in the cache memory, responsive to the count meeting a threshold and resume allocating blocks, responsive to releasing the space in the cache memory.

Assignments (2)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 11, 2025
From: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
To: PURE STORAGE, INC.
Reel/Frame 071558/0523 →
SECURITY INTEREST Recorded Aug 26, 2020
From: PURE STORAGE, INC.
To: BARCLAYS BANK PLC AS ADMINISTRATIVE AGENT
Reel/Frame 053867/0581 →
Continuity (1)
Related Publication 20210181941A1 · Jun 17, 2021