Efficient allocation of cache memory space in a computer system
First Claim
1. A method for selecting data to be cached in a computer system having a cache and a main memory, the method comprising the steps of:
- searching for said data in said cache;
detecting a cache miss when said data cannot be found in said cache; and
if said cache miss is detected, then;
fetching said data from said main memory;
determining if said cache miss is an avoidable cache miss; and
if said cache miss is determined to be said avoidable cache miss, then caching said data in said cache.
2 Assignments
0 Petitions
Accused Products
Abstract
An efficient cache allocation scheme is provided for both uniprocessor and multiprocessor computer systems having at least one cache. In one embodiment, upon the detection of a cache miss, a determination of whether the cache miss is "avoidable" is made. In other words, would the present cache miss have occurred if the data had been cached previously and if the data had remained in the cache. One example of an avoidable cache miss in a multiprocessor system having a distributed memory architecture is an excess cache miss. An excess cache miss is either a capacity miss or a conflict miss. A capacity miss is caused by the insufficient size of the cache. A conflict miss is caused by insufficient depth in the associativity of the cache. The determination of the excess cache miss involves tracking read and write requests for data by the various processors and storing some record of the read/write request history in a table or linked list. Data is cached only after an avoidable cache miss has occurred. By caching only after at least one avoidable cache miss instead of upon every (initial) access, cache space can be allocated in a highly efficient manner thereby minimizing the number of data fetches caused by cache misses.
98 Citations
28 Claims
-
1. A method for selecting data to be cached in a computer system having a cache and a main memory, the method comprising the steps of:
-
searching for said data in said cache; detecting a cache miss when said data cannot be found in said cache; and if said cache miss is detected, then; fetching said data from said main memory; determining if said cache miss is an avoidable cache miss; and if said cache miss is determined to be said avoidable cache miss, then caching said data in said cache. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for selecting data to be cached in a computer system including at least a first subsystem and a second subsystem, each said subsystem including a cache, said second subsystem is a home subsystem of the data, the method comprising the steps of:
-
searching for said data in said cache of said first subsystem; detecting a cache miss when said data cannot be found in said cache of said first subsystem; and if said cache miss is detected, then; fetching said data from said second subsystem to said first subsystem; determining if said cache miss is an avoidable cache miss; and if said cache miss is determined to be said avoidable cache miss, then caching said data in said cache of said first subsystem. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A computer system comprising:
-
a cache; a main memory coupled to said cache; and a fetcher coupled between said cache and said main memory, said fetcher configured to fetch data from said main memory to said cache when an avoidable cache miss of said data occurs in said cache. - View Dependent Claims (17, 18, 19, 20)
-
-
21. A caching system for a computer system comprising:
-
a first cache associated with a first subsystem of said computer system; a second cache associated with a second subsystem of said computer system, said second subsystem is a home subsystem of data; a fetcher coupled between said first cache and said second cache, said fetcher configured to fetch said data from said second cache to said first cache when an avoidable cache miss of said data occurs in said first cache. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28)
-
Specification