IP Library Granted Patent US 8,086,804
Granted Patent B2
US 8,086,804 · App. 12/237,088 · Granted Dec 27, 2011

Method and system for optimizing processor performance by regulating issue of pre-fetches to hot cache sets

Assignee: Oracle America, 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 8,086,804
App. No.
12/237,088
Granted
Dec 27, 2011
Kind
B2
Abstract

A method for pre-fetching data. The method includes obtaining a pre-fetch request. The pre-fetch request identifies new data to pre-fetch from memory and store in a cache. The method further includes identifying a set in the cache to store the new data and identifying a value of a hotness indicator for the set. The hotness indicator value defines a number of replacements of at least one line in the set. The method further includes determining whether the value of the hotness indicator exceeds a predefined threshold, and storing the new data in the set when the value of the hotness indicator does not exceed the pre-defined threshold.

Claims (66)

1. A method for pre-fetching data comprising:

obtaining a pre-fetch request, wherein the pre-fetch request identifies new data to pre-fetch from memory and store in a cache;

identifying a set in the cache to store the new data;

identifying a value of a hotness indicator for the set, wherein the value of the hotness indicator defines a number of replacements of at least one line in the set;

determining whether the value of the hotness indicator exceeds a predefined threshold;

storing the new data in the set when the value of the hotness indicator does not exceed the pre-defined threshold; and

resetting the hotness indicator for each set in the cache after a pre-defined duration of time,

wherein the pre-defined threshold is set according to the length of the pre-defined duration of time.

2. The method of claim 1 , further comprising:

ignoring the pre-fetch request when the value of the hotness indicator exceeds the pre-defined threshold.

3. The method of claim 1 , wherein identifying the value of the hotness indicator comprises:

accessing a tag associated with the set; and

obtaining the value of the hotness indicator from the tag.

4. The method of claim 1 , wherein identifying the value of the hotness indicator comprises:

accessing a hotness indicator table in the cache using an identifier of the set; and

obtaining a value corresponding to the identifier of the set.

5. The method of claim 1 , further comprising:

identifying a confidence level of the pre-fetch request,

wherein determining whether the value of the hotness indicator exceeds the predefined threshold comprises:

determining whether the value of the hotness indicator exceeds a low confidence threshold when the confidence level is set as low; and

determining whether the value of the hotness indicator exceeds a high confidence threshold when the confidence level is set as high.

6. The method of claim 5 , wherein the confidence level is stored in a field of the pre-fetch request.

7. A computer system comprising:

a processor;

a cache; and

memory,

wherein the computer system is configured to:

obtain a pre-fetch request, wherein the pre-fetch request identifies new data to pre-fetch from the memory and store in the cache;

identify a set in the cache to store the new data;

identify a value of a hotness indicator for the set, wherein the value of the hotness indicator defines a number of replacements of at least one line in the set;

determine whether the value of the hotness indicator exceeds a predefined threshold;

store the new data in the set when the value of the hotness indicator does not exceed the pre-defined threshold; and

reset the hotness indicator for each set in the cache after a pre-defined duration of time,

wherein the pre-defined threshold is set according to the length of the pre-defined duration of time.

8. The computer system of claim 7 , wherein the computer system is further configured to:

ignore the pre-fetch request when the value of the hotness indicator exceeds the pre-defined threshold.

9. The computer system of claim 7 , wherein identifying the value of the hotness indicator comprises:

accessing a tag associated with the set; and

obtaining the value of the hotness indicator from the tag.

10. The computer system of claim 7 , wherein identifying the value of the hotness indicator comprises:

accessing a hotness indicator table in the cache using an identifier of the set; and

obtaining a value corresponding to the identifier of the set.

11. The computer system of claim 7 , wherein the computer system is further configured to:

identify a confidence level of the pre-fetch request,

wherein determining whether the value of the hotness indicator exceeds the predefined threshold comprises:

determining whether the value of the hotness indicator exceeds a low confidence threshold when the confidence level is set as low; and

determining whether the value of the hotness indicator exceeds a high confidence threshold when the confidence level is set as high.

12. The computer system of claim 11 , wherein the confidence level is stored in a field of the pre-fetch request.

13. A chip comprising:

a plurality of cores; and

a cache,

wherein the chip is configured to:

obtain a pre-fetch request, wherein the pre-fetch request identifies new data to pre-fetch from memory and store in the cache;

identify a confidence level of the pre-fetch request,

identify a set in the cache to store the new data;

identify a value of a hotness indicator for the set, wherein the value of the hotness indicator defines a number of replacements of at least one existing line in the set;

determine whether the value of the hotness indicator exceeds a predefined threshold, wherein determining whether the value of the hotness indicator exceeds the predefined threshold comprises:

determining whether the value of the hotness indicator exceeds a low confidence threshold when the confidence level is set as low; and

determining whether the value of the hotness indicator exceeds a high confidence threshold when the confidence level is set as high; and

store the new data in the cache when the value of the hotness indicator does not exceed the pre-defined threshold.

14. The chip of claim 13 , wherein identifying the value of the hotness indicator comprises:

accessing a tag associated with the set; and

obtaining the value of the hotness indicator from the tag.

15. The chip of claim 13 , wherein identifying the value of the hotness indicator comprises:

accessing a hotness indicator table in the cache using an identifier of the set; and

obtaining a value corresponding to the identifier of the set.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037311/0134 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 22, 2008
From: CHOU, YUAN C.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 021720/0835 →
Continuity (1)
Related Publication 20100077154A1 · Mar 25, 2010