Adaptive host memory buffer (hmb) caching using unassisted hinting
US-2016246726-A1 · Aug 25, 2016 · US
US9563382B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9563382-B2 |
| Application number | US-201514814460-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jul 30, 2015 |
| Priority date | Jun 5, 2014 |
| Publication date | Feb 7, 2017 |
| Grant date | Feb 7, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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
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
by allocating resources to storage systems · CPC title
Hybrid memory, e.g. using both volatile and non-volatile memory · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.