IP Library Granted Patent US 7,111,124
Granted Patent B2
US 7,111,124 · App. 10/097,055 · Granted Sep 19, 2006

Set partitioning for cache memories

Assignee: Intel Corporation
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,111,124
App. No.
10/097,055
Granted
Sep 19, 2006
Kind
B2
Abstract

A method, apparatus, and signal-bearing medium for improving the performance of a cache when request streams with different spatial and/or temporal properties access the cache. A set in the cache is partitioned into subsets with different request streams using different subsets within the cache. In this way, interference between the different request streams is reduced.

Claims (42)

1. A method comprising:

dividing requests to a cache into a plurality of logical streams;

assigning each of the requests a stream identifier; and

dividing a set in the cache into a plurality of subsets corresponding to the plurality of logical streams;

wherein dividing the set further comprises:

dividing the set into first and second subsets, each corresponding to a respective stream in the plurality of logical streams, wherein the first subset comprises X ways and the second subset comprises S−X ways, wherein X comprises a positive integer greater than zero, and S comprises a number of ways in the set and S is a positive integer greater than X, and wherein X is a configurable parameter.

2. The method of claim 1 , further comprising:

determining whether an address associated with a request has data in the set.

3. The method of claim 2 , further comprising:

when the address does not have data in the set, allocating a block into one of the plurality of subsets corresponding to the stream associated with the block.

4. The method of claim 2 , further comprising:

when the address does have data in the set, returning the data to a requester.

5. A method comprising:

dividing requests to a cache into a plurality of logical streams;

assigning each of the requests a stream identifier; and

dividing a set in the cache into a plurality of subsets corresponding to the plurality of logical streams;

wherein dividing the set further comprises:

dividing the set into a plurality of subsets, each corresponding to a respective stream in the plurality of logical streams, wherein each subset comprises S/M ways, wherein S comprises a number of ways in the set and M comprises a number of the plurality of logical streams, and wherein S is an integer multiple of M and M is a positive integer greater than zero, and wherein M is a configurable parameter.

6. The method of claim 5 , further comprising:

determining whether an address associated with a request has data in the set.

7. The method of claim 6 , further comprising:

when the address does not have data in the set, allocating a block into one of the plurality of subsets corresponding to the stream associated with the block.

8. The method of claim 6 , further comprising:

when the address does have data in the set, returning the data to a requester.

9. A signal-bearing medium comprising instructions, which when read and executed by a processor comprise:

partitioning a set in a cache into a plurality of subsets corresponding to a plurality of streams; and

allocating a block in a first subset of the plurality of subsets, wherein the first subset is associated with a first stream of the plurality of streams, which is associated with a request, which is associated with the block;

wherein the partitioning further comprises:

dividing the set into the first subset and a second subset, wherein the first subset comprises X ways and the second subset comprises S−X ways, wherein X comprises a positive integer greater than zero, and S comprises a number of ways in the set and S is a positive integer greater than X, and wherein X is a configurable parameter.

10. The signal-bearing medium of claim 9 , wherein the allocating further comprises:

assigning the request a stream identifier.

11. The method of claim 9 , wherein X is found in a configuration file.

12. The method of claim 9 , wherein X is changed by an application.

13. the method of claim 9 , wherein X is changed by a user of an application.

14. The method of claim 9 , wherein X is changed by a compiler.

15. A signal-bearing medium comprising instructions, which when read and executed by a processor comprise:

partitioning a set in a cache into a plurality of subsets corresponding to a plurality of streams; and

allocating a block in a first subset of the plurality of subsets, wherein the first subset is associated with a first stream of the plurality of streams, which is associated with a request, which is associated with the block;

wherein the partitioning further comprises:

dividing the set into the plurality of subsets, wherein the each subset comprises S/M ways, wherein S comprises a number of ways in the set and M comprises a number of the plurality of streams, and wherein S is an integer multiple of M and M is a positive integer greater than zero, and wherein M is a configurable parameter.

16. The signal-bearing medium of claim 15 , wherein the allocating further comprises:

assigning the request a stream identifier.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 14, 2014
From: INTEL CORPORATION
To: SONY CORPORATION OF AMERICA
Reel/Frame 032893/0199 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2002
From: IYER, RAVISHANKAR R.; VOGT, PETE D.
To: INTEL CORPORATION
Reel/Frame 012700/0426 →
Continuity (1)
Related Publication 20030177313A1 · Sep 18, 2003