Fine Grained Cache Allocation
First Claim
1. A method, in a data processing system, for fine grained cache allocation of a shared cache, the method comprising:
- receiving, by a cache controller, a tag portion from an application;
setting the tag portion for a group of cache lines in a tag array of the shared cache;
responsive to an attempt to overwrite a given cache line within the group of cache lines, determining whether the given cache line is locked based on the tag portion; and
overwriting, by the cache controller, the given cache line if the cache line is not locked.
1 Assignment
0 Petitions
Accused Products
Abstract
A mechanism is provided in a virtual machine monitor for fine grained cache allocation in a shared cache. The mechanism partitions a cache tag into a most significant bit (MSB) portion and a least significant bit (LSB) portion. The MSB portion of the tags is shared among the cache lines in a set. The LSB portion of the tags is private, one per cache line. The mechanism allows software to set the MSB portion of tags in a cache to allocate sets of cache lines. The cache controller determines whether a cache line is locked based on the MSB portion of the tag.
-
Citations
20 Claims
-
1. A method, in a data processing system, for fine grained cache allocation of a shared cache, the method comprising:
-
receiving, by a cache controller, a tag portion from an application; setting the tag portion for a group of cache lines in a tag array of the shared cache; responsive to an attempt to overwrite a given cache line within the group of cache lines, determining whether the given cache line is locked based on the tag portion; and overwriting, by the cache controller, the given cache line if the cache line is not locked. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. An apparatus, in a data processing system, for fine grained cache allocation of a shared cache, the apparatus comprising:
-
a cache array; and a cache controller coupled to the cache array, wherein the cache controller is configured to; receive a tag portion from an application; set the tag portion for a group of cache lines of the cache array in a tag array; responsive to an attempt to overwrite a given cache line within the group of cache lines, determine whether the given cache line is locked based on the tag portion; and overwrite the given cache line if the cache line is not locked. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer program product comprising a computer recordable medium having a computer readable program recorded thereon, wherein the computer readable program, when executed on a computing device, causes the computing device to:
-
receive a tag portion from an application; set the tag portion for a group of cache lines of the cache array in a tag array; responsive to an attempt to overwrite a given cache line within the group of cache lines, determine whether the given cache line is locked based on the tag portion; and overwrite the given cache line if the cache line is not locked. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification