IP Library Granted Patent US 9,292,431
Granted Patent B2
US 9,292,431 · App. 14/072,697 · Granted Mar 22, 2016

Allocating storage using calculated physical storage capacity

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 9,292,431
App. No.
14/072,697
Granted
Mar 22, 2016
Kind
B2
Abstract

An apparatus, system, and method are disclosed for allocating non-volatile storage. The storage device may present a logical address, which may exceed a physical storage capacity of the device. The storage device may allocate logical capacity in the logical address space. An allocation request may be allowed when there is sufficient unassigned and/or unallocated logical capacity to satisfy the request. Data may be stored on the non-volatile storage device by requesting physical storage capacity. A physical storage request, such as a storage request or physical storage reservation, when there is sufficient available physical storage capacity to satisfy the request. The device may maintain an index to associate logical identifiers (LIDs) in the logical address space with storage locations on the storage device. This index may be used to make logical capacity allocations and/or to manage physical storage space.

Claims (30)

1. A method, comprising:

calculating an available physical storage capacity of a non-volatile storage device associated with a logical address space by use of an index, the index comprising mappings between logical identifiers of the logical address space and physical storage addresses of the non-volatile storage device that are in use to store data pertaining to the logical identifiers, wherein calculating the available physical storage capacity comprises determining a sum of physical storage capacities corresponding to each physical storage address of the non-volatile storage device that is mapped to a logical identifier in the index; and

determining whether a request for storage capacity can be satisfied based on the calculated available physical storage capacity of the non-volatile storage device.

2. The method of claim 1 , further comprising presenting the logical address space through a storage interface, wherein the logical address space corresponds to a storage capacity that exceeds a storage capacity of the non-volatile storage device.

3. The method of claim 1 , further comprising returning an indication of whether the request for storage capacity can be satisfied.

4. The method of claim 3 , wherein returning the indication comprises acknowledging successful completion of a request to store data on the non-volatile storage device.

5. The method of claim 1 , further comprising:

maintaining an index comprising entries configured to associate logical identifiers of the logical address space with storage addresses of the non-volatile storage device; and

determining whether a logical identifier corresponds to valid data stored on the non-volatile storage device by use of the index.

6. The method of claim 1 , further comprising removing an association between a particular logical identifier and a storage address in response to a request to deallocate the particular logical identifier.

7. The method of claim 6 , further comprising calculating the available physical storage capacity of the non-volatile storage device without including the particular logical identifier while data corresponding to the particular logical identifier remains on the non-volatile storage device.

8. The method of claim 1 , further comprising reserving a portion of the available physical storage capacity for use by a particular storage client.

9. The method of claim 1 , wherein the calculation of the available physical storage capacity of the non-volatile storage device is based on the associations between logical identifiers and storage addresses of the non-volatile storage device and a storage capacity reservation, wherein the storage capacity reservation does not correspond to data stored on the non-volatile storage device.

10. The method of claim 1 , further comprising calculating the available physical storage capacity of the non-volatile storage device in response to one or more of: a request to store data on the non-volatile storage device, a request to reserve storage capacity of the non-volatile storage device, cancellation of a storage reservation, and a request to deallocate a logical identifier associated with a storage address of the non-volatile storage device.

11. An apparatus, comprising:

an assignment module configured to maintain entries in an index that assign logical identifiers of a logical address space to data storage locations on a non-volatile storage medium;

a physical capacity allocation module configured to determine an assigned physical storage capacity of the non-volatile storage medium by summing physical storage capacities corresponding to each physical storage location on the non-volatile storage medium that is assigned to a logical identifier in the index; and

a physical capacity reply module configured to determine whether a request corresponding to a physical storage capacity can be granted based on the determined assigned physical storage capacity of the non-volatile storage medium.

12. The apparatus of claim 11 , wherein the assignment module is configured to maintain the entries in a forward map.

13. The apparatus of claim 12 , wherein the assignment module is configured to determine whether a particular logical identifier is bound to data stored on the non-volatile storage medium based on whether an entry corresponding to the particular logical identifier exists in the forward map.

14. The apparatus of claim 11 , wherein the request comprises one or more of a request to store data on the non-volatile storage medium, a request to reserve physical storage capacity of the non-volatile storage medium, and a physical capacity query.

15. The apparatus of claim 11 , further comprising a physical capacity reservation module configured to reserve a portion of a free physical storage capacity of the non-volatile storage medium for use by a particular storage client.

16. The apparatus of claim 11 , further comprising a logical allocation module configured to allocate logical identifiers to storage clients independent of the assigned physical storage capacity of the non-volatile storage medium.

17. An apparatus, comprising:

a physical capacity request module configured to determine a remaining available physical storage capacity of a solid-state storage medium by identifying physical storage locations of the solid-state storage medium that are unassigned to logical identifiers of a logical address space in a forward map that maintains assignments between logical identifiers of the logical address space and storage locations in use to store data pertaining to the logical identifiers on the solid-state storage medium;

a physical capacity reservation module configured to grant a reservation for a portion of the determined remaining physical storage capacity of the solid-state storage medium for use by a first storage client; and

a physical capacity allocation module configured to determine whether a request for physical storage capacity pertaining to a second storage client can be satisfied based on the determined remaining available physical storage capacity and the reservation granted to the first storage client.

18. The apparatus of claim 17 , further comprising a cancellation module configure to cancel the reservation in response to one or more of completing a storage operation pertaining to the reservation, a request to cancel the reservation, and expiration of the reservation.

19. The apparatus of claim 17 , wherein the physical capacity allocation module is configured to update the determined remaining available storage capacity of the solid-state storage medium in response to one or more of assigning a logical identifier to a storage location of the solid-state storage medium, removing an assignment between a logical identifier and a storage location of the solid-state storage medium, granting a storage capacity reservation, modifying a granted storage capacity reservation, and canceling a granted storage capacity reservation.

20. The apparatus of claim 17 , further comprising a logical space management module configured to allocate logical identifiers to storage clients, wherein the allocated logical identifiers correspond to a larger storage capacity than a total available storage capacity of the solid-state storage medium.

Assignments (14)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2024
From: SANDISK TECHNOLOGIES LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069796/0423 →
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038807/0948 →
RELEASE OF SECURITY INTEREST Recorded May 4, 2016
From: FUSION-IO, INC.
To: SANDISK CORPORATION
Reel/Frame 038748/0880 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2016
From: INTELLIGENT INTELLECTUAL PROPERTY HOLDINGS 2 LLC
To: PS12 LUXCO S.A.R.L.
Reel/Frame 038362/0575 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2016
From: PS12 LUXCO S.A.R.L.
To: LONGITUDE ENTERPRISE FLASH S.A.R.L.
Reel/Frame 038362/0604 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2016
From: LONGITUDE ENTERPRISE FLASH SARL
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 038324/0628 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2016
From: PS12 LUXCO S.A.R.L.
To: LONGITUDE ENTERPRISE FLASH S.A.R.L.
Reel/Frame 037845/0389 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2016
From: INTELLIGENT INTELLECTUAL PROPERTY HOLDINGS 2 LLC
To: PS12 LUXCO S.A.R.L.
Reel/Frame 037845/0361 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2016
From: THATCHER, JONATHAN; FLYNN, DAVID
To: FUSION-IO, INC.
Reel/Frame 037756/0559 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2014
From: FUSION-IO, INC.
To: INTELLIGENT INTELLECTUAL PROPERTY HOLDINGS 2 LLC
Reel/Frame 033419/0748 →
SECURITY INTEREST Recorded Jul 24, 2014
From: INTELLIGENT INTELLECTUAL PROPERTY HOLDINGS 2 LLC
To: FUSION-IO, INC.
Reel/Frame 033410/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2014
From: FUSION-IO, INC.
To: INTELLECTUAL PROPERTY HOLDINGS 2 LLC
Reel/Frame 033389/0511 →