Partitioned cache and management method for selectively caching data by type
First Claim
1. A method for managing a cache memory in a computer system having at least one processor, said cache memory having a plurality of congruence classes each having a plurality of sets, comprising the steps of:
- assigning a first partition comprising at least one congruence class with a particular application type of value to be accessed;
allocating memory for a first block of values having said particular application type of value at real address regions associated with said first partition;
mapping physical pages in memory such that physical memory is present for only a given number of a plurality of real address regions associated with said first partition;
receiving a request to access a plurality of values;
determining that said plurality of values matches said particular application type of value; and
responsive to said determining step, accessing said set of values from a set within said first partition.
2 Assignments
0 Petitions
Accused Products
Abstract
A partitioned cache and management method for selectively caching data by type improves the efficiency of a cache memory by partitioning congruence class sets for storage of particular data types such as operating system routines and data used by those routines. By placing values for associated applications into different partitions in the cache, values can be kept simultaneously available in cache with no interference that would cause deallocation of some values in favor of newly loaded values. Additionally, placing data from unrelated applications in the same partition can be performed to allow the cache to rollover values that are not needed simultaneously.
49 Citations
18 Claims
-
1. A method for managing a cache memory in a computer system having at least one processor, said cache memory having a plurality of congruence classes each having a plurality of sets, comprising the steps of:
-
assigning a first partition comprising at least one congruence class with a particular application type of value to be accessed;
allocating memory for a first block of values having said particular application type of value at real address regions associated with said first partition;
mapping physical pages in memory such that physical memory is present for only a given number of a plurality of real address regions associated with said first partition;
receiving a request to access a plurality of values;
determining that said plurality of values matches said particular application type of value; and
responsive to said determining step, accessing said set of values from a set within said first partition. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
second assigning a second partition comprising at least one congruence class with a second particular application type of value to be accessed; - and
second allocating memory for a second block of values having a second particular application type of value at a real address region corresponding to said at least one congruence class.
-
-
4. The method of claim 3, wherein said first block of values and said second block of values are requested by associated applications and said first and second allocating steps are performed so as to prevent said second block of values from causing said first block of values to be rolled out of said cache memory.
-
5. The method of claim 1, further comprising the step of allocating a virtual address in memory such that physical memory is present for only a given number of a plurality of real address regions associated with said first partition.
-
6. The method of claim 5, further comprising the steps of
second assigning a second partition comprising at least one congruence class with a second particular application type of value to be accessed; - and
second allocating a second virtual address in memory for a second block of values having a second particular application type of value at an address corresponding to said second partition.
- and
-
7. The method of claim 6, wherein said first block of values and said second block of values are requested by associated applications and said first and second allocating steps are performed so as to prevent said second block of values from causing said first block of values to be rolled out of said cache memory when said second block of values is loaded into said cache memory.
-
8. The method of claim 5, further comprising the steps of
second assigning a second partition comprising at least one congruence class with a second particular application type of value to be accessed; - and
second allocating a second virtual address in memory for a second block of values having said particular application type of value at an address corresponding to said first partition.
- and
-
9. The method of claim 8, wherein said first block of values and said second block of values are requested by unrelated applications and said first and second allocating steps are performed to allow said first block of values to be rolled out of said cache memory when said second block of values is loaded into said cache memory.
-
10. A computer system having at least one cache memory and processing means for executing program instructions comprising:
-
data storage means comprising a plurality of congruence classes containing a plurality of sets, wherein at least one congruence class is assigned to a first partition associated with a particular application type of value, allocated memory for blocks of values having said particular application type of value at real address regions associated with said first partition; and
further mapped physical pages in memory such that physical memory is present for only a given number of a plurality of real address regions associated with said first partition; and
cache controller means for controlling access to values stored within said data storage means, wherein said cache controller means accesses said values in said first partition only when said values match said particular application type of value. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
Specification