IP Library Granted Patent US 7,478,218
Granted Patent B2
US 7,478,218 · App. 11/356,599 · Granted Jan 13, 2009

Adaptive cache sizing based on monitoring of regenerated and replaced cache entries

Assignee: VMware, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,478,218
App. No.
11/356,599
Granted
Jan 13, 2009
Kind
B2
Abstract

A runtime code manipulation system is provided that supports code transformations on a program while it executes. The runtime code manipulation system uses code caching technology to provide efficient and comprehensive manipulation of an application running on an operating system and hardware. The code cache includes a system for automatically keeping the code cache at an appropriate size for the current working set of an application running.

Claims (32)

1. A method for automatically changing the size of a cache, comprising:

removing old entries in said cache using an eviction policy;

inserting new entries in said cache;

maintaining information about regenerated entries and replaced entries; and

resizing said cache based on a function of said information about regenerated entries and replaced entries; and

wherein:

said cache is a software code cache;

said method further includes recording old entries removed from said cache;

said recording old entries includes setting a flag in a data structure which contains information on entries;

said old entries and said new entries are code fragments;

said eviction policy is a first-in, first out policy;

said removing old entries is performed after said cache is full;

said maintaining information includes determining a ratio of regenerated entries to replaced entries; and

said resizing said cache includes resizing said cache if said ratio satisfies a certain threshold.

2. An apparatus capable of automatically changing the size of a cache, comprising:

one or more storage devices;

one or more communication interfaces; and

one or more processors in communication with said one or more storage devices and said one or more communication interfaces, said one or more processors programmed to perform a method comprising:

receiving a new entry to add to a software cache,

adding said new entry without evicting entries if said software cache is not full,

removing an old entry and adding said new entry if said software cache is full,

maintaining a count of removed entries,

determining whether said new entry has previously been in said software cache,

incrementing a count of regenerated entries if said new entry has previously been in said software cache,

determining a ratio of regenerated entries to replaced entries, and

resizing said cache if said ratio is beyond a certain threshold.

3. An apparatus according to claim 2 , wherein:

said software cache is a software code cache.

4. An apparatus according to claim 3 , wherein:

said new entry and said old entry are code fragments.

5. An apparatus according to claim 2 , wherein:

said determining a ratio and resizing is performed after a predetermined number of entries have been replaced.

Assignments (4)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0242 →
CONFIRMATORY LICENSE Recorded Sep 20, 2010
From: MASSACHUSETTS INSTITUTE OF TECHNOLOGY, PRIME CONTRACTORS CONTRACT NO. F29601-2-0166
To: UNITED STATES AIR FORCE
Reel/Frame 025016/0646 →
MERGER Recorded Feb 19, 2008
From: DETERMINA INC.
To: VMWARE, INC.
Reel/Frame 020529/0720 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 12, 2006
From: BRUENING, DEREK L.; AMARASINGHE, SAMAN P.
To: MASSACHUSETTS INSTITUTE OF TECHNOLOGY
Reel/Frame 018237/0641 →
Continuity (2)
Provisional Application 6065455700 · Feb 18, 2005
Related Publication 20060190924A1 · Aug 24, 2006