IP Library Granted Patent US 8,862,810
Granted Patent B2
US 8,862,810 · App. 13/629,386 · Granted Oct 14, 2014

Solid state device write operation management system

Inventors: Ronald Lee (Pleasanton, CA); Henry C. Lau (Fremont, CA); Rajesh Ananthanarayanan (San Jose, CA)
Assignee: Arkologic Limited
G06F12/0246
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 8,862,810
App. No.
13/629,386
Granted
Oct 14, 2014
Kind
B2
Abstract

A solid state device (SSD) write operation management system including a file system that incorporates SSD status information into its operational logic is disclosed. By incorporating SSD status information, the system achieves various advantages over conventional systems, such as enhanced write performance and extended SSD lifespan. The system processes various criteria to select the optimal virtual device (“vdev”) for data allocation in response to a write request. The first criterion utilizes Program/Erase counts of physical blocks contained in the SSDs. Another criterion is the number of physical free blocks of a drive. If the average of the selected vdev's physical free blocks is higher than the OP threshold, then the system selects for data allocation the vdev with the greatest amount of logical free space. In the instance that the average is lower, the system schedules garbage collection for the vdev.

Claims (135)

1. A method for processing a write operation for a solid-state drive (SSD) having solid-state memory, the method comprising:

determining one or more vdevs that have not exceeded an End of Life threshold, wherein the one or more vdevs that have not exceeded an End of Life threshold comprise a queue of vdevs;

determining a Program/Erase (P/E) count and an average physical free space for each vdev from the queue of vdevs;

identifying among the P/E counts a maximum P/E count and a minimum P/E count;

determining a difference in value between the maximum P/E count and minimum P/E count;

where the determined difference is greater than a P/E count threshold and the vdev with the minimum P/E count possesses sufficient logical free space for the write operation,

performing the write operation on the vdev from the queue of vdevs with the minimum P/E count; and

where the determined difference is less than or equal to the P/E count threshold,

selecting a vdev from the beginning of the queue of vdevs;

where the average physical free space of the selected vdev is below an over-provisioning threshold,

(a) electing the first available vdev from the queue that possesses a garbage collection wait timer whose value is zero,

(b) where the average physical free space of the elected vdev is below the over-provisioning threshold,

initiating a garbage collection procedure on the elected logical device,

(c) where the average physical free space of the elected vdev is above the over-provisioning threshold,

performing the write operation on the elected vdev, and

repeating (a), (b), and (c) until an elected vdev is above the over-provisioning threshold.

2. The method of claim 1 , wherein determining one or more vdevs that have not exceeded an End of Life threshold comprises:

determining a P/E count of each active physical drive associated with a vdev;

determining an average of the P/E counts of each active physical drive associated with the vdev; and

where the average of the P/E counts of the vdev is less than the End of Life threshold,

inserting the vdev into the queue of vdevs.

3. The method of claim 1 , wherein initiating the garbage collection procedure comprises:

toggling a garbage collection flag; and

initiating a garbage collection wait timer set to a predetermined amount of time.

4. The method of claim 1 , wherein the garbage collection procedure is suspended until the write operation is completed.

5. The method of claim 1 , wherein the P/E count threshold is an absolute number of program/erase counts.

6. The method of claim 1 , wherein the P/E count threshold is a percentage.

7. The method of claim 1 , wherein the over-provisioning threshold is an absolute amount of space.

8. The method of claim 1 , wherein the ratio of an absolute amount of space of empty erased superblocks to a sum of an absolute amount of current free space and stale data on a drive must be below a predetermined threshold before the garbage collection procedure is initiated.

9. A method for processing a write operation for a solid-state drive (SSD) having solid-state memory, the method comprising:

determining one or more vdevs that have not exceeded an End of Life threshold, wherein the one or more vdevs that have not exceeded an End of Life threshold comprise a queue of vdevs;

determining a Program/Erase (P/E) count, an average physical free space, and a logical free space value for each vdev from the queue of vdevs;

identifying among the P/E counts a maximum P/E count and a minimum P/E count;

determining a difference in value between the maximum P/E count and minimum P/E count;

where the determined difference is greater than a P/E count threshold and the vdev with the minimum P/E count possesses sufficient logical free space for the write operation,

performing the write operation on the vdev with the minimum P/E count;

where the determined difference is less than or equal to the P/E count threshold,

selecting a vdev from the beginning of the queue of vdevs;

where the average physical free space of the selected vdev is greater than or equal to an over-provisioning threshold,

performing the write operation on the vdev with the greatest logical free space value.

10. The method of claim 9 , wherein determining one or more vdevs that have not exceeded an End of Life threshold comprises:

determining a P/E count of each active physical drive associated with a vdev;

determining an average of the P/E counts of each active physical drive associated with the vdev; and

where the average of the P/E counts of the vdev is less than the End of Life threshold,

inserting the vdev into the queue of vdevs.

11. The method of claim 9 , wherein the P/E count threshold is an absolute number of program/erase counts.

12. The method of claim 9 , wherein the P/E count threshold is a percentage.

13. The method of claim 9 , wherein the over-provisioning threshold is an absolute amount of space.

14. A storage system comprising:

solid-state memory configured to store data persistently;

a controller, coupled to the solid-state memory, that is configured to execute a write operation to physical portions of the solid-state memory;

a management module configured to:

receive a write request generated by a file system;

determine one or more vdevs that have not exceeded an End of Life threshold, wherein the one or more vdevs that have not exceeded an End of Life threshold comprise a queue of vdevs;

determine a Program/Erase (P/E) count and an average physical free space for each vdev from the queue of vdevs;

identify among the P/E counts a maximum P/E count and a minimum P/E count;

determine a difference in value between the maximum P/E count and minimum P/E count;

where the determined difference is greater than a P/E count threshold and the vdev with the minimum P/E count possesses sufficient logical free space for the write operation,

perform the write operation on the vdev from the queue of vdevs with the minimum P/E count; and

where the determined difference is less than or equal to the P/E count threshold,

select a vdev from the beginning of the queue of vdevs;

where the average physical free space of the selected vdev is below an over-provisioning threshold,

(a) elect the first available vdev from the queue that possesses a garbage collection wait timer whose value is zero,

(b) where the average physical free space of the elected vdev is below the over-provisioning threshold,

 initiate a garbage collection procedure on the elected logical device,

(c) where the average physical free space of the elected vdev is above the over-provisioning threshold,

 performing the write operation on the elected vdev, and

repeat (a), (b), and (c) until an elected vdev is above the over-provisioning threshold.

15. The system of claim 14 , wherein the file system is a ZFS file system.

16. The system of claim 14 , wherein the solid-state memory is NAND flash memory.

17. The system of claim 14 , wherein the solid-state memory is selected from the following: flash memory, magnetoresistive random access memory (MRAM), phase-change memory (i.e., PCM, PRAM, PCRAM, Ovonic Unified Memory, Chalcogenide RAM, or C-RAM), ferroelectric random access memory (FeRAM or FRAM), conductive-bridging RAM or programmable metallization cell memory, Silicon-Oxide-Nitride-Oxide-Silicon (SONOS) memory, resistive random access memory (RRAM), Racetrack Memory, Nano-RAM (NRAM), Millipede memory, dynamic random access memory (DRAM), static random access memory (SRAM), thyristor random access memory (T-RAM), zero capacitor random access memory (Z-RAM), and twin transistor random access memory (TTRAM).

18. The system of claim 14 , wherein the management module is further configured to:

determine a P/E count of each active physical drive associated with a vdev;

determine an average of the P/E counts of each active physical drive associated with the vdev; and

where the average of the P/E counts of the vdev is less than the End of Life threshold,

insert the vdev into the queue of vdevs.

19. The system of claim 14 , wherein the management module is further configured to:

where the garbage collection procedure is initiated,

toggle a garbage collection flag; and

initiate a garbage collection wait timer set to a predetermined amount of time.

20. The system of claim 14 , wherein a ratio of an absolute amount of space of empty erased superblocks to a sum of an absolute amount of current free space and stale data on a drive must be below a predetermined threshold before the garbage collection procedure is initiated.

21. A storage system comprising:

solid-state memory configured to store data persistently;

a controller, coupled to the solid-state memory, that is configured to execute a write operation to physical portions of the solid-state memory;

a management module configured to:

receive a write request generated by a file system;

determine one or more vdevs that have not exceeded an End of Life threshold, wherein the one or more vdevs that have not exceeded an End of Life threshold comprise a queue of vdevs;

determine a Program/Erase (NE) count and an average physical free space for each vdev from the queue of vdevs;

identify among the P/E counts a maximum P/E count and a minimum P/E count;

determine a difference in value between the maximum P/E count and minimum P/E count;

where the determined difference is greater than a P/E count threshold and the vdev with the minimum P/E count possesses sufficient logical free space for the write operation,

perform the write operation on the vdev from the queue of vdevs with the minimum P/E count; and

where the determined difference is less than or equal to the P/E count threshold,

select a vdev from the beginning of the queue of vdevs;

where the average physical free space of the selected vdev is greater than or equal to an over-provisioning threshold,

perform the write operation on the vdev with the greatest logical free space value.

22. The system of claim 21 , wherein the file system is a ZFS file system.

23. The system of claim 21 , wherein the solid-state memory is NAND flash memory.

24. The system of claim 21 , wherein the solid-state memory is selected from the following: flash memory, magnetoresistive random access memory (MRAM), phase-change memory (i.e., PCM, PRAM, PCRAM, Ovonic Unified Memory, Chalcogenide RAM, or C-RAM), ferroelectric random access memory (FeRAM or FRAM), conductive-bridging RAM or programmable metallization cell memory, Silicon-Oxide-Nitride-Oxide-Silicon (SONOS) memory, resistive random access memory (RRAM), Racetrack Memory, Nano-RAM (NRAM), Millipede memory, dynamic random access memory (DRAM), static random access memory (SRAM), thyristor random access memory (T-RAM), zero capacitor random access memory (Z-RAM), and twin transistor random access memory (TTRAM).

25. The system of claim 21 , wherein the management module is further configured to:

determine a P/E count of each active physical drive associated with a vdev;

determine an average of the P/E counts of each active physical drive associated with the vdev; and

where the average of the P/E counts of the vdev is less than the End of Life threshold,

insert the vdev into the queue of vdevs.

26. The system of claim 21 , wherein the management module is further configured to:

where the garbage collection procedure is initiated,

toggle a garbage collection flag; and

initiate a garbage collection wait timer set to a predetermined amount of time.

27. A computer readable medium storing computer readable instructions for machine execution of a method for processing a write operation for a solid-state drive (SSD) having solid-state memory, the method comprising:

determining one or more vdevs that have not exceeded an End of Life threshold, wherein the one or more vdevs that have not exceeded an End of Life threshold comprise a queue of vdevs;

determining a Program/Erase (P/E) count and an average physical free space for each vdev from the queue of vdevs;

identifying among the P/E counts a maximum P/E count and a minimum P/E count;

determining a difference in value between the maximum P/E count and minimum P/E count;

where the determined difference is greater than a P/E count threshold and the vdev with the minimum P/E count possesses sufficient logical free space for the write operation,

performing the write operation on the vdev from the queue of vdevs with the minimum P/E count; and

where the determined difference is less than or equal to the P/E count threshold,

selecting a vdev from the beginning of the queue of vdevs;

where the average physical free space of the selected vdev is below an over-provisioning threshold,

(a) electing the first available vdev from the queue that possesses a garbage collection wait timer whose value is zero,

(b) where the average physical free space of the elected vdev is below the over-provisioning threshold,

initiating a garbage collection procedure on the elected logical device,

(c) where the average physical free space of the elected vdev is above the over-provisioning threshold,

performing the write operation on the elected vdev, and

repeating (a), (b), and (c) until an elected vdev is above the over-provisioning threshold.

28. A computer readable medium storing computer readable instructions for machine execution of a method for processing a write operation for a solid-state drive (SSD) having solid-state memory, the method comprising:

determining one or more vdevs that have not exceeded an End of Life threshold, wherein the one or more vdevs that have not exceeded an End of Life threshold comprise a queue of vdevs;

determining a Program/Erase (P/E) count, an average physical free space, and a logical free space value for each vdev from the queue of vdevs;

identifying among the P/E counts a maximum P/E count and a minimum P/E count;

determining a difference in value between the maximum P/E count and minimum P/E count;

where the determined difference is greater than a P/E count threshold and the vdev with the minimum P/E count possesses sufficient logical free space for the write operation,

performing the write operation on the vdev with the minimum P/E count;

where the determined difference is less than or equal to the P/E count threshold,

selecting a vdev from the beginning of the queue of vdevs;

where the average physical free space of the selected vdev is greater than or equal to an over-provisioning threshold,

performing the write operation on the vdev with the greatest logical free space value.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 28, 2014
From: LEE, RONALD; LAU, HENRY C.; ANANTHANARAYANAN, RAJESH
To: ARKOLIGIC LIMITED
Reel/Frame 032772/0679 →
Continuity (1)
Related Publication 20140089565A1 · Mar 27, 2014