Utilizing cache information to manage memory access and cache utilization
AssigneeVMware, Inc.
InventorsJohn Zedlewski, Carl Waldspurger
Life of this patent
Estimating the term…
Abstract
In a method of optimizing utilization of a shared cache, a set of locations in the cache is probed. The probing takes place while an observed process is running, descheduled, or interrupted. It is determined which portions of the cache are utilized by the observed process. Utilization of the cache is optimized based on result of the determination of which portions of the cache are utilized by the observed process.
Claims34
A method of optimizing utilization of a shared memory cache, said method comprising:
- probing a set of locations in said shared memory cache, said probing performed while a plurality of observed processes are running, descheduled, or interrupted;
- determining which portions of said shared memory cache are utilized by said plurality of observed processes;
- and
- optimizing cache utilization based on results of said determination, said optimizing comprising:
- comparing accessed portions of said shared memory cache for said plurality of observed processes;
- determining which of said plurality of observed processes have non-conflicting cache access patterns;
- and
- scheduling said non-conflicting processes to run together.
A computer storage device containing a computer program product having computer-readable program code embedded therein for causing a computer system to perform a method of optimizing utilization of a shared memory cache, said method comprising:
- probing a set of locations in said shared memory cache, said probing performed while a plurality of observed processes are running, descheduled, or interrupted;
- determining which portions of said shared memory cache are utilized by said plurality of observed processes;
- and
- optimizing cache utilization based on results of said determining, said optimizing comprising:
- comparing accessed portions of said shared memory cache for said plurality of observed processes;
- determining which of said plurality of observed processes have non-conflicting cache access patterns;
- and
- scheduling said non-conflicting processes to run together.
A system for optimizing utilization of a shared memory cache, said system comprising:
- a shared memory cache;
- a shared cache manager configured to couple to said shared memory cache, said shared cache manager for ascertaining cache information related to said shared memory cache and utilizing said cache information for optimizing utilization of said shared cache;
- a cache prober, said cache prober for probing a set of locations in said shared memory cache, said probing performed while a plurality of observed processes are running, descheduled, or interrupted, and said probing performed to determine cache information related to operation of said shared memory cache with said plurality of observed processes;
- a cache utilization determiner, said cache utilization determiner for determining which portions of said shared memory cache are utilized by the plurality of observed processes;
- and
- a cache optimizer, said cache optimizer for optimizing memory access based on results of analysis of cache information of said shared memory cache.
Dependencies are inferred from the claim text.