IP Library Granted Patent US 7,020,748
Granted Patent B2
US 7,020,748 · App. 10/348,796 · Granted Mar 28, 2006

Cache replacement policy to mitigate pollution in multicore processors

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,020,748
App. No.
10/348,796
Granted
Mar 28, 2006
Kind
B2
Abstract

A method for identifying a least recently used cache entry in a cache. The method includes receiving a cache access request, determining whether the contents of the main memory address are present in the cache, associating, when the contents of the main memory address are not present in the cache, updating more significant bits of a pseudo least recently used pointer when the contents of the main memory address are not present in the cache, and updating more significant bits and less significant bits of the pseudo least recently used pointer when the contents of the main memory address are present in the cache. The cache access request is associated with a main memory address. The memory address has a set within the cache and the set includes a plurality of ways.

Claims (55)

1. A method for identifying a least recently used cache entry in a cache, the cache being shared by at least two processor cores, the method comprising

receiving a cache access request, the cache access request being associated with a main memory address;

determining whether the contents of the main memory address are present in the cache;

associating, when the contents of the main memory address are not present in the cache, the memory address with a set within the cache, the set including a plurality of ways;

updating bits of a pseudo least recently used pointer having lesser granularity when the contents of the main memory address are not present in the cache; and

updating bits of the pseudo least recently used pointer having lesser granularity and the finest granularity when the contents of the main memory address are present in the cache.

2. The method for identifying a least recently used cache entry of claim 1 wherein

the cache includes eight ways; and

the pseudo least recently used pointer includes seven bits.

3. The method for identifying a least recently used cache entry of claim 1 wherein

the cache includes sixteen ways; and

the pseudo least recently used pointer includes fifteen bits.

4. An apparatus for identifying a least recently used cache entry in a cache, the cache being shared by at least two processor cores, the apparatus comprising

means for receiving a cache access request, the cache access request being associated with a main memory address;

means for determining whether the contents of the main memory address are present in the cache;

means for associating, when the contents of the main memory address are not present in the cache, the memory address with a set within the cache, the set including a plurality of ways;

means for updating bits of a pseudo least recently used pointer having lesser granularity when the contents of the main memory address are not present in the cache; and

means for updating bits of the pseudo least recently used pointer having lesser granularity and the finest granularity when the contents of the main memory address are present in the cache.

5. The apparatus for identifying a least recently used cache entry of claim 4 wherein

the cache includes eight ways; and

the pseudo least recently used pointer includes seven bits.

6. The apparatus for identifying a least recently used cache entry of claim 4 wherein

the cache includes sixteen ways; and

the pseudo least recently used pointer includes fifteen bits.

7. A cache controller for identifying a least recently used cache entry in a cache, the cache being shared by at least two processing cores, the cache controller comprising

a pseudo least recently used pointer;

a pointer update mechanism, the pointer update mechanism

receiving a cache access request, the cache access request being associated with a main memory address,

determining whether the contents of the main memory address are present in the cache;

associating, when the contents of the main memory address are not present in the cache, the memory address with a set within the cache, the set including a plurality of ways;

updating bits of a pseudo least recently used pointer having lesser granularity when the contents of the main memory address are not present in the cache; and

updating bits of the pseudo least recently used pointer having lesser granularity and the finest granularity when the contents of the main memory address are present in the cache.

8. The cache controller 7 wherein

the cache includes eight ways; and

the pseudo least recently used pointer includes seven bits.

9. The cache controller of claim 7 wherein

the cache includes sixteen ways; and

the pseudo least recently used pointer includes fifteen bits.

10. A multi-core processor comprising:

a first processor core;

a second processor core;

a cache coupled to the first processor core and the second processor core, the cache including a cache controller for identifying a least recently used cache entry in the cache, the cache controller including

a pseudo least recently used pointer; and

a pointer update mechanism, the pointer update mechanism

receiving a cache access request from one of the first processor core and the second processor core, the cache access request being associated with a main memory address,

determining whether the contents of the main memory address are present in the cache,

associating, when the contents of the main memory address are not present in the cache, the memory address with a set within the cache, the set including a plurality of ways;

updating bits of a pseudo least recently used pointer having lesser granularity when the contents of the main memory address are not present in the cache; and

updating bits of the pseudo least recently used pointer having lesser granularity and the finest granularity when the contents of the main memory address are present in the cache.

11. The multi-core processor of claim 10 wherein

the cache includes eight ways; and

the pseudo least recently used pointer includes seven bits.

12. The multi-core processor of claim 10 wherein

the cache includes sixteen ways; and

the pseudo least recently used pointer includes fifteen bits.

Assignments (1)
MERGER AND CHANGE OF NAME Recorded Dec 14, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037280/0199 →