IP Library Granted Patent US 7,120,748
Granted Patent B2
US 7,120,748 · App. 10/655,367 · Granted Oct 10, 2006

Software-controlled cache set management

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,120,748
App. No.
10/655,367
Granted
Oct 10, 2006
Kind
B2
Abstract

The present invention provides a system for managing cache replacement eligibility. A first address register is configured to request an address from an L1 cache. An L1 cache is configured to determine whether a requested address is in the L1 cache and, in response to a determination that a requested address is not in the L1 cache, is further configured to transmit the requested address to a range register coupled to the L1 cache. The range register is configured to generate a class identifier in response to a received requested address and to transmit the requested address and class identifier to a replacement management table coupled to the range register. The replacement management table is configured to generate L2 tag replacement control indicia in response to a received requested address and class identifier. An L2 address register is coupled to the first address register and configured to request an address from an L2 cache. An L2 cache is coupled to the L2 address register and the replacement management table and is configured to determine whether a requested address is in the L2 cache and is further configured to assign replacement eligibility of at least one set of cache lines in the L2 cache in response to received L2 tag replacement control indicia. In response to a determination that a requested address is not in the L2 cache, the L2 cache is further configured to overwrite a cache line within a set of the L2 cache as a function of the replacement eligibility.

Claims (49)

1. A system for managing cache replacement eligibility, comprising:

a first address register configured to request an address from an L1 cache;

an L1 cache configured to determine whether a requested address is in the L1 cache and, in response to a determination that a requested address is not in the L1 cache, further configured to transmit the requested address to a range register coupled to the L1 cache;

the range register configured to generate a class identifier in response to a received requested address and to transmit the requested address and class identifier to a replacement management table coupled to the range register;

the replacement management table configured to generate L2 tag replacement control indicia in response to a received requested address and class identifier;

an L2 address register coupled to the first address register and configured to request an address from an L2 cache;

an L2 cache coupled to the L2 address register and the replacement management table and configured to determine whether a requested address is in the L2 cache and further configured to assign replacement eligibility of at least one set of cache lines in the L2 cache in response to received L2 tag replacement control indicia; and

in response to a determination that a requested address is not in the L2 cache, the L2 cache further configured to overwrite a cache line within a set of the L2 cache as a function of the replacement eligibility.

2. The system of claim 1 , wherein a set of the L2 cache is replaced as a function of the replacement eligibility and a least recently used function.

3. The system of claim 1 , wherein the L1 cache is one of the group comprising an L1 data cache and an L1 instruction cache.

4. The system of claim 1 , wherein the range register and the replacement management table are further configured to be written to by software.

5. The system of claim 1 , wherein the range register comprises a range start register and a range mask register.

6. The system of claim 1 , wherein the replacement management table comprises a plurality of entries, each entry indexed by a unique class identifier and comprising a plurality of set enable bits, a valid bit, a bypass bit, and an algorithm bit.

7. The system of claim 6 , wherein the set of the L2 cache is replaced as a function of the replacement eligibility and a replacement algorithm indicated by the algorithm bit.

8. A method for managing cache replacement eligibility, comprising:

requesting an address from an L1 cache;

in response to a determination that the requested address is not in the L1 cache, determining whether the address falls within at least one predetermined range of addresses;

setting a class identifier to a default value if the requested address does not fall within at least one predetermined range of addresses;

setting a class identifier to a predetermined value associated with a predetermined range of addresses if the requested address falls within the predetermined range of addresses;

generating tag replacement control indicia in response to the class identifier;

requesting the address from an L2 cache, the L2 cache comprising one or more sets of cache lines; and

in response to a determination that the requested address is not in the L2 cache, setting replacement eligibility of a set in the L2 cache in response to the tag replacement control indicia and overwriting a cache line within a set of the L2 cache as a function of the replacement eligibility.

9. The method of claim 8 , further comprising discarding the tag replacement control indicia in response to a determination that the requested address is in the L2 cache.

10. The method of claim 8 , further comprising employing an algorithm bit to select an algorithm for replacement of an eligible set and overwriting a cache line within a set of the L2 cache as a function of the replacement eligibility and the selected algorithm.

11. The method of claim 8 , further comprising overwriting a cache line within a set of the L2 cache as a function of the replacement eligibility and a least recently used function.

12. The method of claim 8 , wherein the step of generating tag replacement control indicia further comprises employing a software-managed replacement management table.

13. The method of claim 8 , wherein the steps of setting a class identifier to a default value and setting a class identifier to a predetermined value further comprise employing a range register.

14. The method of claim 13 , wherein the range register comprises a range start register and a range mask register.

15. The method of claim 13 , wherein the range register is configured to be written to by software.

16. The method of claim 8 , wherein the L1 cache is one of the group comprising an L1 data cache and an L1 instruction cache.

17. A computer program product for cache replacement eligibility, the computer program product having a computer-readable medium with a computer program embodied thereon, the computer program comprising:

computer code for requesting an address from an L1 cache;

computer code for, in response to a determination that the requested address is not in the L1 cache, determining whether the address falls within at least one predetermined range of addresses;

computer code for setting a class identifier to a default value if the requested address does not fall within at least one predetermined range of addresses;

computer code for setting a class identifier to a predetermined value associated with a predetermined range of addresses if the requested address falls within the predetermined range of addresses;

computer code for generating tag replacement control indicia in response to the class identifier;

computer code for requesting the address from an L2 cache, the L2 cache comprising one or more sets of cache lines; and

computer code for, in response to a determination that the requested address is not in the L2 cache, setting replacement eligibility of a set in the L2 cache in response to the tag replacement control indicia and overwriting a cache line within a set of the L2 cache as a function of the replacement eligibility.

18. The computer program product of claim 17 , further comprising computer program code for employing an algorithm bit to select an algorithm for replacement of an eligible set and overwriting a cache line within a set of the L2 cache as a function of the replacement eligibility and the selected algorithm.

19. The computer program product of claim 17 , further comprising computer program code for overwriting a cache line within a set of the L2 cache as a function of the replacement eligibility and a least recently used function.

20. A processor for determining information replacement in a cache, the processor including a computer program comprising:

computer code for requesting an address from an L1 cache;

computer code for, in response to a determination that the requested address is not in the L1 cache, determining whether the address falls within at least one predetermined range of addresses;

computer code for setting a class identifier to a default value if the requested address does not fall within at least one predetermined range of addresses;

computer code for setting a class identifier to a predetermined value associated with a predetermined range of addresses if the requested address falls within the predetermined range of addresses;

computer code for generating tag replacement control indicia in response to the class identifier;

computer code for requesting the address from an L2 cache, the L2 cache comprising one or more sets of cache lines; and

computer code for, in response to a determination that the requested address is not in the L2 cache, setting replacement eligibility of a set in the L2 cache in response to the tag replacement control indicia and overwriting a cache line within a set of the L2 cache as a function of the replacement eligibility.

21. The computer program of claim 20 , further comprising computer code for managing a replacement management table, the replacement management table configured to generate tag replacement control indicia in response to the class identifier.

Assignments (3)
CHANGE OF NAME Recorded Oct 13, 2016
From: SONY COMPUTER ENTERTAINMENT INC.
To: SONY INTERACTIVE ENTERTAINMENT INC.
Reel/Frame 040350/0891 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 27, 2011
From: SONY NETWORK ENTERTAINMENT PLATFORM INC.
To: SONY COMPUTER ENTERTAINMENT INC.
Reel/Frame 027449/0640 →
CHANGE OF NAME Recorded Dec 26, 2011
From: SONY COMPUTER ENTERTAINMENT INC.
To: SONY NETWORK ENTERTAINMENT PLATFORM INC.
Reel/Frame 027449/0001 →