Methods, systems, and computer readable media for providing flexible host memory buffer

US9563382B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9563382-B2
Application numberUS-201514814460-A
CountryUS
Kind codeB2
Filing dateJul 30, 2015
Priority dateJun 5, 2014
Publication dateFeb 7, 2017
Grant dateFeb 7, 2017

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.

Methods, systems, and computer readable media for providing a flexible host memory buffer are disclosed. One method includes allocating an amount of host memory as a host memory buffer accessible by a solid state drive (SSD) as a cache for SSD data. The method further includes caching data from the solid state drive in the host memory buffer. The method further includes monitoring utilization of the host memory buffer. The method further includes dynamically increasing or decreasing the amount of host memory allocated for the host memory buffer based on the utilization.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for providing a flexible host memory buffer, the method comprising: allocating an amount of host memory as a host memory buffer accessible by a solid state drive (SSD) as a cache for SSD data; caching data from the solid state drive in the host memory buffer; monitoring utilization of the host memory buffer, wherein monitoring utilization of the host memory buffer includes determining a ratio of swaps between the host memory buffer and the SSD to host reads of data stored on the SSD; and dynamically increasing or decreasing the amount of host memory allocated for the host memory buffer based on the utilization, wherein dynamically increasing or decreasing the amount of host memory allocated for the host memory buffer includes increasing the amount of host memory allocated for the host memory buffer if the ratio indicates that accesses to the host memory buffer are a performance bottleneck. 2. The method of claim 1 wherein allocating the amount of host memory for use as the host memory buffer includes performing an initial allocation of host memory space at startup of a host computing system. 3. The method of claim 1 wherein caching data from the SSD in the host memory buffer includes caching flash translation layer (FTL) tables in the host memory buffer. 4. The method of claim 3 wherein monitoring utilization of the host memory buffer includes determining whether a current workload on the host memory buffer includes swaps of the FTL tables. 5. The method of claim 4 comprising, in response to determining that the workload includes swaps of the FTL tables, determining whether a current size of the host memory buffer is sufficient. 6. The method of claim 5 wherein determining whether a current size of the host memory buffer is sufficient includes determining whether a ratio of swaps between SSD memory and the host memory buffer and host reads has a predetermined relationship with respect to a threshold. 7. The method of claim 5 comprising, in response to determining that the current size of the host memory buffer is not sufficient, dynamically increasing the size of the host memory buffer. 8. The method of claim 4 comprising, in response to determining that the workload does not include swaps of the FTL tables, determining whether the current workload relating to accesses to the host memory buffer is CPU intensive. 9. The method of claim 8 wherein determining whether the current workload is CPU intensive includes determining whether a ratio of CPU cycles to CPU cycles relating to accesses to the host memory buffer has a predetermined relationship with respect to a threshold. 10. The method of claim 8 comprising, in response to determining that the workload is CPU intensive, dynamically reducing the amount of host memory allocated for the host memory buffer. 11. A system for providing a flexible host memory buffer, the system comprising: a solid state drive (SSD); a host memory including a host memory buffer accessible by the solid state drive as a cache for SSD data, wherein the solid state drive is configured to cache data from the solid state drive in the host memory buffer; a workload analyzer for monitoring utilization of the host memory buffer, wherein monitoring utilization of the host memory buffer includes determining a ratio of swaps between the host memory buffer and the SSD to host reads of data stored on the SSD; and a host memory buffer manager for dynamically increasing or decreasing the amount of host memory allocated for the host memory buffer based on the utilization, wherein dynamically increasing or decreasing the amount of host memory allocated for the host memory buffer includes increasing the amount of host memory allocated for the host memory buffer if the ratio indicates that accesses to the host memory buffer are a performance bottleneck. 12. The system of claim 11 wherein the SSD is configured to cache flash translation layer (FTL) tables in the host memory buffer. 13. The system of claim 12 wherein the workload analyzer is configured to determine whether a current workload on the host memory buffer includes swaps of the FTL tables. 14. The system of claim 13 wherein, in response to determining that the workload includes swaps of the FTL tables, the workload analyzer is configured to determine whether a current size of the host memory buffer is sufficient. 15. The system of claim 14 wherein the workload analyzer is configured to determine whether the current workload is random I/O intensive based on whether a ratio of swaps between SSD memory and the host memory buffer and host reads has a predetermined relationship with respect to a threshold. 16. The system of claim 14 wherein, in response to determining that the current size of the host memory buffer is not sufficient, the host memory buffer manager is configured to dynamically increase the size of the host memory buffer. 17. The system of claim 13 wherein, in response to determining that the workload does not include swaps of the FTL tables, the workload analyzer is configured to determine whether the current workload relating to accesses to the host memory buffer is CPU intensive. 18. The system of claim 17 wherein the workload analyzer is configured to determine whether the current workload is CPU intensive based on whether a ratio of CPU cycles to CPU cycles relating to accesses to the host memory buffer has a predetermined relationship with respect to a threshold. 19. The system of claim 17 wherein, in response to a determination that the workload is CPU intensive, the host memory buffer manager is configured to reduce the amount of host memory allocated for the host memory buffer. 20. A non-transitory computer readable medium having stored thereon executable instructions that when accessed by the processor a computer control the computer to perform steps comprising: allocating an amount of host memory as a host memory buffer accessible by a solid state drive (SSD) as a cache for SSD data; caching data from the solid state drive in the host memory buffer; monitoring utilization of the host memory buffer, wherein monitoring utilization of the host memory buffer includes determining a ratio of swaps between the host memory buffer and the SSD to host reads of data stored on the SSD; and dynamically increasing or decreasing the amount of host memory allocated for the host memory buffer based on the utilization, wherein dynamically increasing or decreasing the amount of host memory allocated for the host memory buffer includes increasing the amount of host memory allocated for the host memory buffer if the ratio indicates that accesses to the host memory buffer are a performance bottleneck. 21. A method for allocating and reclaiming space for a host cache, the method comprising: allocating an initial amount of host memory space for use as a host cache accessible by a solid state drive (SSD); determining whether the host needs some or all of the space allocated for the host cache; in response to determining that the host needs some or all of the memory space allocated for the host cache, reclaiming, by the host system, at least some of the memory space allocated for the host cache; monitoring, by the host system, utilization of the host cache, wherein monitoring utilization of the host cache includes determining a ratio of swaps between the host memory buffer and the SSD to host reads of data stored on the SSD; and dynamically increasing or decreasing the amount of ho

Assignees

Inventors

Classifications

  • in block erasable memory, e.g. flash memory · CPC title

  • In host system · CPC title

  • Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays · CPC title

  • G06F3/0631Primary

    by allocating resources to storage systems · CPC title

  • Hybrid memory, e.g. using both volatile and non-volatile memory · 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 US9563382B2 cover?
Methods, systems, and computer readable media for providing a flexible host memory buffer are disclosed. One method includes allocating an amount of host memory as a host memory buffer accessible by a solid state drive (SSD) as a cache for SSD data. The method further includes caching data from the solid state drive in the host memory buffer. The method further includes monitoring utilization o…
Who is the assignee on this patent?
Sandisk Technologies Inc, Sandisk Technologies Llc
What technology area does this patent fall under?
Primary CPC classification G06F12/0246. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 07 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).