IP Library › Granted Patent US 8,645,619
Granted Patent B2
US 8,645,619 · App. 13/553,194 · Granted Feb 4, 2014

Optimized flash based cache memory

Inventors: Wendy A. Belluomini (San Jose, CA); Binny S. Gill (Shrewsbury, MA); James L. Hafner (San Jose, CA); Steven R. Hetzler (Los Altos, CA); Eyal Lotern (Pardes Hana, IL); Venu G. Nayar (San Jose, CA); Assaf Nitzan (Haifa, IL); Edi Shmueli (Haifa, IL); Daniel F. Smith (Felton, CA)
Assignee: International Business Machines Corporation
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,645,619
App. No.
13/553,194
Granted
Feb 4, 2014
Kind
B2
Abstract

Embodiments of the invention relate to throttling accesses to a flash memory device. The flash memory device is part of a storage system that includes the flash memory device and a second memory device. The throttling is performed by logic that is external to the flash memory device and includes calculating a throttling factor responsive to an estimated remaining lifespan of the flash memory device. It is determined whether the throttling factor exceeds a threshold. Data is written to the flash memory device in response to determining that the throttling factor does not exceed the threshold. Data is written to the second memory device in response to determining that the throttling factor exceeds the threshold.

Claims (25)

1. A method comprising:

throttling accesses to a flash memory device that is part of a storage system that comprises the flash memory device and a second memory device, the throttling performed by logic external to the flash memory device, the throttling comprising:

calculating a lifespan throttling factor responsive to an estimated remaining lifespan of the flash memory device;

calculating a throughput throttling factor responsive to an estimated maximum throughput of the flash memory device;

calculating a maximum throttling factor responsive to the lifespan throttling factor and the throughput throttling factor;

determining whether the maximum throttling factor exceeds a threshold; and

in response to determining that the maximum throttling factor exceeds the threshold, performing at least one of data size throttling, prefetch window size throttling, and usage throttling; and

writing data to at least one of the flash memory device and the second memory device in response to the at least one of data size throttling, prefetch window size throttling, and usage throttling.

2. The method of claim 1 , wherein the flash memory device comprises a cache memory and the second memory device comprises a hard disk drive.

3. The method of claim 1 , wherein the performing the data size throttling is responsive to the maximum throttling factor and a size of the data, the performing the data size throttling directing the writing data to the second memory device when the size of the data exceeds a selected size, wherein the performing the data size throttling comprises calculating the selected size responsive to the maximum throttling factor.

4. The method of claim 1 , wherein the performing the prefetch window size throttling is responsive to the maximum throttling factor and comprises setting a size of a prefetch window when writing the data to the flash memory device.

5. The method of claim 1 , wherein the performing the usage throttling comprises performing a random selection of a fraction of received data to be written to the flash memory device, the fraction responsive to the maximum throttling factor.

6. A computer program product comprising:

a computer readable storage medium having computer readable program code embodied therewith, the computer readable program code comprising computer readable program code configured for:

throttling accesses to a flash memory device that is part of a storage system that comprises the flash memory device and a second memory device, the throttling performed by logic external to the flash memory device, the throttling comprising:

calculating a lifespan throttling factor responsive to an estimated remaining lifespan of the flash memory device;

calculating a throughput throttling factor responsive to an estimated maximum throughput of the flash memory device;

calculating a maximum throttling factor responsive to the lifespan throttling factor and the throughput throttling factor;

determining whether the maximum throttling factor exceeds a threshold; and

in response to determining that the maximum throttling factor exceeds the threshold, performing at least one of data size throttling, prefetch window size throttling, and usage throttling; and

writing data to at least one of the flash memory device and the second memory device in response to the at least one of data size throttling, prefetch window size throttling, and usage throttling.

7. The computer program product of claim 6 , wherein:

the performing the data size throttling is responsive to the maximum throttling factor and a size of the data, the performing the data size throttling directing the writing data to the second memory device when the size of the data exceeds a selected size, wherein the performing the data size throttling comprises calculating the selected size responsive to the maximum throttling factor;

the performing the prefetch window size throttling is responsive to the maximum throttling factor and comprises setting a size of a prefetch window when writing the data to the flash memory device; and

the performing the usage throttling comprises performing a random selection of a fraction of received data to be written to the flash memory device, the fraction responsive to the maximum throttling factor.

Continuity (2)
Continuation 13112894 · May 20, 2011
Related Publication 20120297127A1 · Nov 22, 2012