Systems, devices and methods using a solid state device as a caching medium with a cache replacement algorithm

US10176103B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-10176103-B1
Application numberUS-201615145883-A
CountryUS
Kind codeB1
Filing dateMay 4, 2016
Priority dateMay 7, 2015
Publication dateJan 8, 2019
Grant dateJan 8, 2019

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

An example method for performing cache replacement in a caching medium for a data storage system can include providing an SSD cache, providing an LRU data structure including buckets for managing the SSD cache, and providing cache headers for managing the cache lines. The method can include assigning two or more cache headers to a same bucket of the LRU data structure, and arranging the cache headers in a linked list based on access time. A cache header for an LRU cache line is a tail node of the linked list. The method can further include providing an LFU data structure including frequency buckets, assigning the tail node of the linked list of the same bucket of the LRU data structure to a frequency bucket based on access frequency, and selecting an LFU cache line for cache replacement using the LFU data structure.

First claim

Opening claim text (preview).

What is claimed: 1. A computer-implemented method for performing cache replacement in a caching medium for a data storage system, comprising: providing an SSD cache including a plurality of cache lines; providing a least-recently used (LRU) data structure including a plurality of buckets for managing the SSD cache; providing a plurality of cache headers for managing the cache lines, each cache header associating a cache line and a corresponding data block stored in the data storage system; assigning two or more cache headers to a same bucket of the LRU data structure; arranging the two or more cache headers assigned to the same bucket of the LRU data structure in a linked list based on a time of access, wherein a cache header for an LRU cache line is a tail node of the linked list of the same bucket of the LRU data structure; providing a least-frequently used (LFU) data structure including a plurality of frequency buckets, each frequency bucket corresponding to a fixed frequency range; assigning the tail node of the linked list of the same bucket of the LRU data structure to one of the frequency buckets of the LFU data structure based on a frequency of access; and selecting an LFU cache line for cache replacement using the LFU data structure. 2. The computer-implemented method of claim 1 , wherein the frequency buckets of the LFU data structure are arranged from an LFU frequency bucket to a most-recently used (MFU) frequency bucket. 3. The computer-implemented method of claim 2 , wherein selecting an LFU cache line for cache replacement using the LFU data structure further comprises searching the frequency buckets of the LFU data structure beginning with the LFU frequency bucket to identify a frequency bucket containing the LFU cache line. 4. The computer-implemented method of claim 1 , further comprising: assigning two or more tail nodes corresponding to different buckets of the LRU data structure to a same frequency bucket of the LFU data structure; and arranging the two or more tail nodes assigned to the same frequency bucket of the LFU data structure in a linked list based on the frequency of access. 5. The computer-implemented method of claim 1 , further comprising: removing a cache header for the LFU cache line from the linked list of the same frequency bucket of the LFU data structure; and assigning a next LRU cache header to the linked list of the same frequency bucket of the LFU data structure. 6. The computer-implemented method of claim 4 , wherein the linked list of the same bucket of the LRU data structure and the linked list of the same frequency bucket of the LFU data structure are doubly-linked lists. 7. The computer-implemented method of claim 6 , wherein each of the two or more tail nodes participate in the doubly-linked list of the same frequency bucket of the LFU data structure. 8. The computer-implemented method of claim 7 , wherein each of the two or more tail nodes is a respective cache header comprising a previous pointer and a subsequent pointer, the previous pointer being reserved to point to a next LFU cache header in the doubly-linked list of the same frequency bucket of the LFU data structure, and the subsequent pointer being reserved to point to a next MFU cache header in the doubly-linked list of the same frequency bucket of the LFU data structure. 9. The computer-implemented method of claim 8 , wherein each of the two or more tail nodes is a respective cache header further comprising a frequency counter, and each of the two or more tail nodes is arranged in the doubly-linked list of the same frequency bucket of the LFU data structure based on a value of the frequency counter. 10. A non-transitory computer-readable recording medium having computer-executable instructions stored thereon for performing cache replacement in a caching medium for a data storage system that, when executed by a data storage system computer, cause the data storage system computer to: provide an SSD cache including a plurality of cache lines; provide a least-recently used (LRU) data structure including a plurality of buckets for managing the SSD cache; provide a plurality of cache headers for managing the cache lines, each cache header associating a cache line and a corresponding data block stored in the data storage system; assign two or more cache headers to a same bucket of the LRU data structure; arrange the two or more cache headers assigned to the same bucket of the LRU data structure in a linked list based on a time of access, wherein a cache header for an LRU cache line is a tail node of the linked list of the same bucket of the LRU data structure; provide a least-frequently used (LFU) data structure including a plurality of frequency buckets, each frequency bucket corresponding to a fixed frequency range; assign the tail node of the linked list of the same bucket of the LRU data structure to one of the frequency buckets of the LFU data structure based on a frequency of access; and select an LFU cache line for cache replacement using the LFU data structure. 11. The non-transitory computer-readable recording medium of claim 10 , wherein the frequency buckets of the LFU data structure are arranged from an LFU frequency bucket to a most-recently used (MFU) frequency bucket. 12. The non-transitory computer-readable recording medium of claim 11 , wherein selecting an LFU cache line for cache replacement using the LFU data structure further comprises searching the frequency buckets of the LFU data structure beginning with the LFU frequency bucket to identify a frequency bucket containing the LFU cache line. 13. The non-transitory computer-readable recording medium of claim 10 , having further computer-executable instructions stored thereon that, when executed by the data storage system computer, cause the data storage system computer to: assign two or more tail nodes corresponding to different buckets of the LRU data structure to a same frequency bucket of the LFU data structure; and arrange the two or more tail nodes assigned to the same frequency bucket of the LFU data structure in a linked list based on the frequency of access. 14. The non-transitory computer-readable recording medium of claim 10 , having further computer-executable instructions stored thereon that, when executed by the data storage system computer, cause the data storage system computer to: remove a cache header for the LFU cache line from the linked list of the same frequency bucket of the LFU data structure; and assign a next LRU cache header to the linked list of the same frequency bucket of the LFU data structure. 15. The non-transitory computer-readable recording medium of claim 13 , wherein the linked list of the same bucket of the LRU data structure and the linked list of the same frequency bucket of the LFU data structure are doubly-linked lists. 16. The non-transitory computer-readable recording medium of claim 15 , wherein each of the two or more tail nodes participate in the doubly-linked list of the same frequency bucket of the LFU data structure. 17. The non-transitory computer-readable recording medium of claim 16 , wherein each of the two or more tail nodes is a respective cache header comprising a previous pointer and a subsequent pointer, the previous pointer being reserved to point to a next LFU cache header in the doubly-linked list of the same frequency bucket of the LFU data structure, and the subsequent pointer being reserved to point to a next MFU cache header in the doubly-linked list of the same frequency bucket of the LFU data structure.

Assignees

Inventors

Classifications

  • Data transfer between cache memory and other subsystems, e.g. storage devices or host systems · CPC title

  • Non-volatile memory · CPC title

  • using additional replacement algorithms · CPC title

  • Disk storage · CPC title

  • of the least frequently used [LFU] type, e.g. with individual count value · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10176103B1 cover?
An example method for performing cache replacement in a caching medium for a data storage system can include providing an SSD cache, providing an LRU data structure including buckets for managing the SSD cache, and providing cache headers for managing the cache lines. The method can include assigning two or more cache headers to a same bucket of the LRU data structure, and arranging the cache h…
Who is the assignee on this patent?
American Megatrends Inc
What technology area does this patent fall under?
Primary CPC classification G06F12/0866. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 08 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).