IP Library Granted Patent US 9,734,066
Granted Patent B1
US 9,734,066 · App. 14/632,725 · Granted Aug 15, 2017

Workload-based adjustable cache size

Inventors: Suneel Kumar Indupuru (Cupertino, CA); Zheng Wu (San Jose, CA); Arunkumar Subramanian (San Jose, CA); Jason Bellorado (San Jose, CA)
Assignee: SK hynix memory solutions Inc.
G06F12/0833G06F12/128G06F2212/62G06F2212/69
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,734,066
App. No.
14/632,725
Granted
Aug 15, 2017
Kind
B1
Abstract

A workload level associated with an expandable data buffer is determined, where the expandable data buffer and an expandable mapping table cache are stored in internal memory and the expandable mapping table cache is used to store a portion of a mapping table that is stored on external storage. An amount of internal memory allocated to the expandable data buffer and an amount of internal memory allocated to the expandable mapping table cache are adjusted based at least in part on the workload level.

Claims (53)

1. A system, comprising:

an internal memory including an expandable data buffer and an expandable mapping table cache; and

an internal memory controller configured to:

determine a workload level associated with the expandable data buffer, wherein the expandable data buffer and the expandable mapping table cache are stored in internal memory and the expandable mapping table cache is used to store a portion of a mapping table that is stored on external storage, the workload level is set to high if a last write instruction is a long write and the workload level is set to low if the last write instruction is a short write; and

adjust an amount of internal memory allocated to the expandable data buffer and an amount of internal memory allocated to the expandable mapping table cache based at least in part on the workload level.

2. The system of claim 1 , wherein the system includes a semiconductor device, including one or more of the following: an application-specific integrated circuit (ASIC) or a field-programmable gate array (FPGA).

3. The system of claim 1 further comprising the external storage that includes the mapping table.

4. The system of claim 1 , wherein:

the internal memory controller is further configured to track one or more hit counts associated with one or more cache entries that have been evicted from the expandable mapping table cache; and

the internal memory controller is configured to adjust further based at least in part on: a minimum number of cache entries, a maximum number of cache entries, and the hit counts associated with the cache entries that have been evicted.

5. The system of claim 4 , wherein the internal memory controller is configured to track, including by:

determining a type of update, wherein:

in the event a logical block address is received from a host, it is determined to increment; and

in the event a forgetting timer expires, it is determined to decrement;

in the event it is determined to increment, incrementing a hit count corresponding to a cache entry that includes the received logical block address; and

in the event it is determined to decrement, halving all of the hit counts.

6. The system of claim 1 , wherein:

the internal memory controller is further configured to sort a doubly-linked list that includes the expandable mapping table cache such that one or more clean entries in the expandable mapping table cache are in a position to be evicted before one or more dirty entries in the expandable mapping table cache would be evicted; and

the internal memory controller is configured to adjust, including by using the sorted doubly-linked list.

7. The system of claim 6 , wherein the internal memory controller is further configured to sort the dirty entries using a dirty page count.

8. A method, comprising:

using a processor to determine a workload level associated with an expandable data buffer, wherein the expandable data buffer and an expandable mapping table cache are stored in internal memory and the expandable mapping table cache is used to store a portion of a mapping table that is stored on external storage, the workload level is set to high if a last write instruction is a long write and the workload level is set to low if the last write instruction is a short write; and

using the processor to adjust an amount of internal memory allocated to the expandable data buffer and an amount of internal memory allocated to the expandable mapping table cache based at least in part on the workload level.

9. The method of claim 8 , wherein the method is performed by a semiconductor device, including one or more of the following: an application-specific integrated circuit (ASIC) or a field-programmable gate array (FPGA).

10. The method of claim 8 , wherein:

the method further includes tracking one or more hit counts associated with one or more cache entries that have been evicted from the expandable mapping table cache; and

using the processor to adjust the amount of internal memory allocated to the expandable data buffer and the amount of internal memory allocated to the expandable mapping table cache is further based at least in part on: a minimum number of cache entries, a maximum number of cache entries, and the hit counts associated with the cache entries that have been evicted.

11. The method of claim 10 , wherein tracking includes:

determining a type of update, wherein:

in the event a logical block address is received from a host, it is determined to increment; and

in the event a forgetting timer expires, it is determined to decrement;

in the event it is determined to increment, incrementing a hit count corresponding to a cache entry that includes the received logical block address; and

in the event it is determined to decrement, halving all of the hit counts.

12. The method of claim 8 , wherein:

the method further includes sorting a doubly-linked list that includes the expandable mapping table cache such that one or more clean entries in the expandable mapping table cache are in a position to be evicted before one or more dirty entries in the expandable mapping table cache would be evicted; and

using the processor to adjust the amount of internal memory allocated to the expandable data buffer and the amount of internal memory allocated to the expandable mapping table cache further includes using the sorted doubly-linked list.

13. The method of claim 12 further comprising sorting the dirty entries using a dirty page count.

14. A computer program product, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

determining a workload level associated with an expandable data buffer, wherein the expandable data buffer and an expandable mapping table cache are stored in internal memory and the expandable mapping table cache is used to store a portion of a mapping table that is stored on external storage, the workload level is set to high if a last write instruction is a long write and the workload level is set to low if the last write instruction is a short write; and

adjusting an amount of internal memory allocated to the expandable data buffer and an amount of internal memory allocated to the expandable mapping table cache based at least in part on the workload level.

15. The computer program product of claim 14 , wherein:

the computer program product further includes computer instructions for tracking one or more hit counts associated with one or more cache entries that have been evicted from the expandable mapping table cache; and

the computer instructions for adjusting the amount of internal memory allocated to the expandable data buffer and the amount of internal memory allocated to the expandable mapping table cache further include computer instructions for adjusting based at least in part on: a minimum number of cache entries, a maximum number of cache entries, and the hit counts associated with the cache entries that have been evicted.

16. The computer program product of claim 15 , wherein the computer instructions for tracking include computer instructions for:

determining a type of update, wherein:

in the event a logical block address is received from a host, it is determined to increment; and

in the event a forgetting timer expires, it is determined to decrement;

in the event it is determined to increment, incrementing a hit count corresponding to a cache entry that includes the received logical block address; and

in the event it is determined to decrement, halving all of the hit counts.

17. The computer program product of claim 14 , wherein:

the computer program product further includes computer instructions for sorting a doubly-linked list that includes the expandable mapping table cache such that one or more clean entries in the expandable mapping table cache are in a position to be evicted before one or more dirty entries in the expandable mapping table cache would be evicted; and

the computer instructions for adjusting the amount of internal memory allocated to the expandable data buffer and the amount of internal memory allocated to the expandable mapping table cache further include computer instructions for using the sorted doubly-linked list.

18. The computer program product of claim 17 further comprising computer instructions for sorting the dirty entries using a dirty page count.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2017
From: SK HYNIX MEMORY SOLUTIONS INC.
To: SK HYNIX INC.
Reel/Frame 044899/0443 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2015
From: INDUPURU, SUNEEL KUMAR; WU, ZHENG; SUBRAMANIAN, ARUNKUMAR; BELLORADO, JASON
To: SK HYNIX MEMORY SOLUTIONS INC.
Reel/Frame 035484/0944 →
Continuity (1)
Provisional Application 62001781 · May 22, 2014