IP Library Granted Patent US 11,157,179
Granted Patent B2
US 11,157,179 · App. 16/701,991 · Granted Oct 26, 2021

Dynamic allocation of blocks of a storage device based on power loss protection

Inventors: Andrew Bernat (Mountain View, CA); Wei Tang (San Jose, CA)
Assignee: PURE STORAGE, INC.
G06F3/0619G06F3/0631G06F3/0679G06F12/06G06F12/0804
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,157,179
App. No.
16/701,991
Granted
Oct 26, 2021
Kind
B2
Abstract

A power requirement associated with a storage device of the plurality of storage devices is determined. A set of blocks of the storage device is allocated for storage of data, wherein the set of blocks of the storage device is less than the power requirement of the storage device. User data to be stored at the storage system is received. The user data is assigned to the set of blocks for storage at the storage device.

Claims (45)

1. A storage system, comprising:

a plurality of storage devices, each of the plurality of storage devices comprising a cache and a solid-state memory; and

a storage controller, operatively coupled to the plurality of storage devices, the storage controller comprising a processing device to:

determine a power requirement associated with a storage device of the plurality of storage devices;

allocate a set of blocks of the storage device for storage of data, wherein the set of blocks of the storage device is less than the power requirement of the storage device and is based on a number of partially programmed blocks stored in the cache;

receive user data to be stored at the storage system; and

assign the user data to the set of blocks for storage at the storage device.

2. The storage system of claim 1 , wherein the power requirement corresponds to a number of blocks that can be written from the cache of the storage device to the solid-state memory of the storage device in response to a loss of power.

3. The storage system of claim 1 , wherein the power requirement is based on an amount of energy stored in a stored energy device operatively coupled to the storage device.

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

adjust the set of blocks of the storage device for storage of data to correspond to a number of blocks available in the cache upon receiving the number of blocks available in the cache to store data from the storage device.

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

transmit, at a determined frequency, one or more queries to the storage device for the number of blocks available in the cache to store data.

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

increase the determined frequency for transmitting the one or more queries upon determining that a capacity of a stored energy device operatively coupled to the storage device has diminished.

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

remove a subset from the set of blocks allocated for the storage of data upon receiving an indication of the subset of blocks that have been programmed to store data from the storage device.

8. A method, comprising:

determining a power requirement associated with a storage device of a plurality of storage devices of a storage system, the storage device comprising a cache and a solid-state memory;

allocating, by a processing device, a set of blocks of the storage device for storage of data, wherein the set of blocks of the storage device is less than the power requirement of the storage device and is based on a number of partially programmed blocks stored in the cache;

receiving user data to be stored at the storage system; and

assigning the user data to the set of blocks for storage at the storage device.

9. The method of claim 8 , wherein the power requirement corresponds to a number of blocks that can be written from the cache of the storage device to the solid-state memory of the storage device in response to a loss of power.

10. The method of claim 8 , wherein the power requirement is based on an amount of energy stored in a stored energy device operatively coupled to the storage device.

11. The method of claim 8 , further comprising:

adjusting the set of blocks of the storage device for storage of data to correspond to a number of blocks available in the cache upon receiving the number of blocks available in the cache to store data from the storage device.

12. The method of claim 11 , further comprising:

transmitting, at a determined frequency, one or more queries to the storage device for the number of blocks available in the cache to store data.

13. The method of claim 12 , further comprising:

increasing the determined frequency for transmitting the one or more queries upon determining that a capacity of a stored energy device operatively coupled to the storage device has diminished.

14. The method of claim 8 , further comprising:

removing a subset from the set of blocks allocated for the storage of data upon receiving an indication of the subset of the set of blocks that have been programmed to store data from the storage device.

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

determine a power requirement associated with a storage device of a plurality of storage devices of a storage system, the storage device comprising a cache and a solid-state memory;

allocate, by the processing device, a set of blocks of the storage device for storage of data, wherein the set of blocks of the storage device is less than the power requirement of the storage device and is based on a number of partially programmed blocks stored in the cache;

receive user data to be stored at the storage system; and

assign the user data to the set of blocks for storage at the storage device.

16. The non-transitory computer readable storage medium of claim 15 , wherein the power requirement corresponds to a number of blocks that can be written from the cache of the storage device to the solid-state memory of the storage device in response to a loss of power.

17. The non-transitory computer readable storage medium of claim 15 , wherein the power requirement is based on an amount of energy stored in a stored energy device operatively coupled to the storage device.

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

adjust the set of blocks of the storage device for storage of data to correspond to a number of blocks available in the cache upon receiving the number of blocks available in the cache to store data from the storage device.

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

transmit, at a determined frequency, one or more queries to the storage device for the number of blocks available in the cache to store data.

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

increase the determined frequency for transmitting the one or more queries upon determining that a capacity of a stored energy device operatively coupled to the storage device has diminished.

Assignments (3)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2019
From: BERNAT, ANDREW R.; TANG, WEI
To: PURE STORAGE, INC.
Reel/Frame 051165/0037 →