Systems and methods for managing data input/output operations

US9658957B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9658957-B2
Application numberUS-201414497158-A
CountryUS
Kind codeB2
Filing dateSep 25, 2014
Priority dateFeb 15, 2011
Publication dateMay 23, 2017
Grant dateMay 23, 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.

Systems and methods for managing data input/output operations are described. In one aspect, a device driver identifies a data read operation generated by a virtual machine in a virtual environment. The device driver is located in the virtual machine and the data read operation identifies a physical cache address associated with the data requested in the data read operation. A determination is made regarding whether data associated with the data read operation is available in a cache associated with the virtual machine.

First claim

Opening claim text (preview).

The invention claimed is: 1. A computer-implemented method comprising: allocating a plurality of cache pages to a virtual machine, the cache pages corresponding to cache tags of a set of cache tags stored within memory of the virtual machine, the set of cache tags available for writing data of the virtual machine to a cache; determining a cache hit rate for the virtual machine based on the set of cache tags stored within the memory of the virtual machine; allocating additional cache tags for the virtual machine without increasing the cache pages allocated to the virtual machine, the additional cache tags expanding the set of cache tags available for writing data of the virtual machine to the cache; and identifying changes to the cache hit rate for the virtual machine based on the set of cache tags stored in the virtual machine as expanded by the additional cache tags. 2. The computer-implemented method of claim 1 , further comprising increasing the allocation of cache pages to the virtual machine in response to identifying an increase to the cache hit rate. 3. The computer-implemented method of claim 1 , further comprising determining one or more of a minimum number of additional cache tags that improve the cache hit rate for the virtual machine and an optimum number of additional cache tags that improve the cache hit rate for the virtual machine. 4. The computer-implemented method of claim 3 , further comprising allocating additional cache pages to the virtual machine based on one or more of the determined minimum number of additional cache tags and the optimum number of additional cache tags. 5. A non-transitory storage medium comprising instructions which, when executed by a processor, cause the processor to perform operations, the operations comprising: allocating a number of cache tags to a virtual machine, wherein the cache tags correspond to storage capacity within a cache storage and are available for writing data to the cache storage responsive to input/output (I/O) requests of the virtual machine; determining a cache hit rate for the virtual machine based on the number of cache tags allocated to the virtual machine; allocating additional cache tags to the virtual machine, wherein the additional cache tags do not correspond to storage capacity with the cache storage, and are available for writing data to the cache storage responsive to I/O requests of the virtual machine; and identifying changes to the cache hit rate for the virtual machine based on the increased number of cache tags allocated to the virtual machine. 6. The non-transitory storage medium of claim 5 , the operations further comprising allocating storage capacity of the cache storage for one or more of the additional cache tags in response to identifying an increased cache hit rate for the virtual machine. 7. The non-transitory storage medium of claim 5 , the operations further comprising determining a number of additional cache tags that result in an improved cache hit rate for the virtual machine. 8. The non-transitory storage medium of claim 7 , the operations further comprising allocating storage capacity of the cache storage to the virtual machine based on the determined number of additional cache tags. 9. A computing system comprising: a plurality of virtual machines, wherein each virtual machine includes an input/output driver for intercepting input/output operations associated with the virtual machine; a shared data cache; and a cache provisioner coupled to the plurality of virtual machines and the shared data cache, the cache provisioner configured to: allocate a plurality of cache pages to a virtual machine, wherein each cache page has an associated cache tag in a set of cache tags stored in the virtual machine; determine a cache hit rate for the virtual machine based on the set of cache tags stored in the virtual machine; allocate additional cache tags for inclusion in the set of cache tags stored in the virtual machine without increasing the cache pages allocated to the virtual machine, the additional cache tags being available for writing data of the virtual machine to the shared data cache; and identify changes to the cache hit rate for the virtual machine based on the set of cache tags stored in the virtual machine, including the additional cache tags. 10. The computing system of claim 9 , wherein the cache provisioner is further configured to increase the allocation of cache pages to the virtual machine in response to identifying an increase to the cache hit rate. 11. The computing system of claim 9 , wherein the cache provisioner is further configured to determine one or more of a minimum number of additional cache tags and an optimum number of additional cache tags that provide an improved cache hit rate for the virtual machine. 12. The computing system of claim 11 , wherein the cache provisioner is further configured to allocate cache pages to the virtual machine based on one or more of the determined minimum number of additional cache tags and the determined optimum number of additional cache tags.

Assignees

Inventors

Classifications

  • Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines · CPC title

  • I/O management, e.g. providing access to device drivers or storage · CPC title

  • Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches · CPC title

  • with a shared cache · CPC title

  • with dedicated cache, e.g. instruction or stack · 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 US9658957B2 cover?
Systems and methods for managing data input/output operations are described. In one aspect, a device driver identifies a data read operation generated by a virtual machine in a virtual environment. The device driver is located in the virtual machine and the data read operation identifies a physical cache address associated with the data requested in the data read operation. A determination is m…
Who is the assignee on this patent?
Intelligent Ip Holdings 2 Llc, Sandisk Technologies Llc
What technology area does this patent fall under?
Primary CPC classification G06F9/45558. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 23 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).