Cache including a prefetch way for storing prefetch cache lines and configured to move a prefetched cache line to a non-prefetch way upon access to the prefetched cache line
First Claim
1. A cache comprising:
- a storage including at least a first way for storing cache lines and at least one prefetch way for storing prefetch cache lines, said storage comprising a plurality of rows selectable by an index portion of an address input to said cache, wherein said first way includes a first plurality of cache line storage locations, and wherein each of said first plurality of cache line storage locations is included within a respective one of said plurality of rows, and wherein said prefetch way includes a second plurality of cache line storage locations, and wherein each of said second plurality of cache line storage locations is included within said respective one of said plurality of rows; and
a control unit coupled to said storage, wherein said control unit is configured to store a first prefetch cache line into said prefetch way, and wherein said control unit is further configured to move said first prefetch cache line from said prefetch way into said first way if said prefetch cache line is requested from said cache, and wherein said first prefetch cache line includes a referenced indication, and wherein said control unit is configured to place said reference indication into a first state if said first prefetch cache line is requested from said cached, and wherein said first state is indicative of said first prefetch cache line being requested, and wherein said referenced indication is indicative, in second state, that said first prefetch cache line has not been requested from said cache.
4 Assignments
0 Petitions
Accused Products
Abstract
A cache employs one or more prefetch ways for storing prefetch cache lines and one or more ways for storing accessed cache lines. Prefetch cache lines are stored into the prefetch way, while cache lines fetched in response to cache misses for requests initiated by a microprocessor connected to the cache are stored into the non-prefetch ways. Accessed cache lines are thereby maintained within the cache separately from prefetch cache lines. When a prefetch cache line is presented to the cache for storage, the prefetch cache line may displace another prefetch cache line but does not displace an accessed cache line. A cache hit in either the prefetch way or the non-prefetch ways causes the cache line to be delivered to the requesting microprocessor in a cache hit fashion. The cache is further configured to move prefetch cache lines from the prefetch way to the non-prefetch way if the prefetch cache lines are requested (i.e. they become accessed cache lines). Instruction cache lines may be moved immediately upon access, while data cache line accesses may be counted and a number of accesses greater than a predetermined threshold value may occur prior to moving the data cache line from the prefetch way to the non-prefetch way. Additionally, movement of an accessed cache line from the prefetch way to the non-prefetch way may be delayed until the accessed cache line is to be replaced by a prefetch cache line.
-
Citations
20 Claims
-
1. A cache comprising:
-
a storage including at least a first way for storing cache lines and at least one prefetch way for storing prefetch cache lines, said storage comprising a plurality of rows selectable by an index portion of an address input to said cache, wherein said first way includes a first plurality of cache line storage locations, and wherein each of said first plurality of cache line storage locations is included within a respective one of said plurality of rows, and wherein said prefetch way includes a second plurality of cache line storage locations, and wherein each of said second plurality of cache line storage locations is included within said respective one of said plurality of rows; and a control unit coupled to said storage, wherein said control unit is configured to store a first prefetch cache line into said prefetch way, and wherein said control unit is further configured to move said first prefetch cache line from said prefetch way into said first way if said prefetch cache line is requested from said cache, and wherein said first prefetch cache line includes a referenced indication, and wherein said control unit is configured to place said reference indication into a first state if said first prefetch cache line is requested from said cached, and wherein said first state is indicative of said first prefetch cache line being requested, and wherein said referenced indication is indicative, in second state, that said first prefetch cache line has not been requested from said cache. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method for prefetching data in a computer system, comprising:
-
storing a first prefetched cache line into a prefetch way of a cache having at least a first way in addition to said prefetch way, said prefetch way used to store only prefetched cache lines, said cache comprising a plurality of rows selectable by an index portion of an address input to said cache, wherein said first way includes a first plurality of cache line storage locations, and wherein each of said first plurality of cache line storage locations is included within a respective one of said plurality of rows, and wherein said prefetch way includes a second plurality of cache line storage locations, and wherein each of said second plurality of cache line storage locations is included within said respective one of said plurality of rows; and moving said first prefetched cache line from said prefetch way into said first way if a request for said first prefetched cache line is received in said cache, wherein said moving comprises placing a referenced indication corresponding to said first prefetched cache line into a first state indicating that said receiving a request has occurred, and wherein said reference indication is indicative, in a second state, that said first prefetch cache line has not been requested from said cache. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. A computer system comprising:
-
a microprocessor; and a cache coupled to said microprocessor, said cache including a prefetch way and at least a first way, said cache comprising a plurality of rows selectable by an index portion of an address input to said cache, wherein said first way includes a first plurality of cache line storage locations, and wherein each of said first plurality of cache line storage locations is included within a respective one of said plurality of rows, and wherein said prefetch way includes a second plurality of cache line storage locations, and wherein each of said second plurality of cache line storage locations is included within said respective one of said plurality of rows, wherein said cache is configured to store a prefetched cache line into said prefetch way, and wherein said cache is configured to move said prefetched cache line from said prefetch way into said first way if said microprocessor accesses said prefetched cache line within said prefetch way, and wherein said first prefetch cache line includes a referenced indication, and wherein said control unit is configured to place said referenced indication into a first state if said first prefetch cache line is requested from said cache, and wherein said first state is indicative of said first prefetch cache line being requested, and wherein said referenced indication is indicative, in a second state, that said first prefetch cache line has not been requested from said cache. - View Dependent Claims (20)
-
Specification