Stride-based prefetch mechanism using a prediction confidence value
First Claim
Patent Images
1. A prefetch mechanism comprising:
- a prefetch predictor table including a plurality of locations configured to store a first plurality of entries each indicative of a stride between a respective pair of memory requests, wherein each of said first plurality of entries is stored in a respective location of said plurality of locations dependent upon a value of an earlier stride;
wherein said prefetch predictor table further includes a second plurality of entries each corresponding to a respective one of said first plurality of entries, wherein each of said second plurality of entries includes a count value indicative of a number of times said stride between a respective pair of memory requests is equal to said value of said current stride;
a prefetch control coupled to said prefetch predictor table and configured to access a first location of said plurality of locations dependent upon a value of a current stride and to prefetch an address based upon a given one of said first plurality of entries stored within the first location in response to said count value stored within the first location being greater than a first predetermined threshold.
1 Assignment
0 Petitions
Accused Products
Abstract
A prefetch mechanism includes a prefetch predictor table coupled to a prefetch control. The prefetch predictor table may include a plurality of locations configured to store a plurality of entries each indicative of a stride between a respective pair of memory requests. Each of the plurality of entries may be stored in a respective one of the plurality of locations dependent upon a value of an earlier stride. The prefetch control may be configured to prefetch an address based upon a given one of the plurality of entries in the prefetch predictor table.
108 Citations
20 Claims
-
1. A prefetch mechanism comprising:
-
a prefetch predictor table including a plurality of locations configured to store a first plurality of entries each indicative of a stride between a respective pair of memory requests, wherein each of said first plurality of entries is stored in a respective location of said plurality of locations dependent upon a value of an earlier stride; wherein said prefetch predictor table further includes a second plurality of entries each corresponding to a respective one of said first plurality of entries, wherein each of said second plurality of entries includes a count value indicative of a number of times said stride between a respective pair of memory requests is equal to said value of said current stride; a prefetch control coupled to said prefetch predictor table and configured to access a first location of said plurality of locations dependent upon a value of a current stride and to prefetch an address based upon a given one of said first plurality of entries stored within the first location in response to said count value stored within the first location being greater than a first predetermined threshold. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of prefetching addresses comprising:
-
storing a first plurality of entries each indicative of a stride between a respective pair of memory requests within a plurality of locations of a prefetch predictor table, wherein each of said first plurality of entries is stored in a respective location of said plurality of locations dependent upon a value of an earlier stride; storing a second plurality of entries each corresponding to a respective one of said first plurality of entries, wherein each of said second plurality of entries includes a count value indicative of a number of times said stride between a respective pair of memory requests is equal to said value of said current stride; accessing a first location of said plurality of locations dependent upon a value of a current stride; and prefetching an address based upon a given one of said plurality of entries stored within the first location in response to said count value stored within the first location being greater than a first predetermined threshold. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A processor comprising:
-
a memory controller configured to control accesses to a system memory, wherein said memory controller includes a prefetch mechanism comprising; a prefetch predictor table including a plurality of locations configured to store a first plurality of entries each indicative of a stride between a respective pair of memory requests, wherein each of said plurality of entries is stored in a respective location of said plurality of locations dependent upon a value of an earlier stride; wherein said prefetch predictor table further includes a second plurality of entries each corresponding to a respective one of said first plurality of entries, wherein each of said second plurality of entries includes a count value indicative of a number of times said stride between a respective pair of memory requests is equal to said value of said current stride; and a prefetch control coupled to said prefetch predictor table and configured to access a first location of said plurality of locations dependent upon a value of a current stride and to prefetch an address based upon a given one of said first plurality of entries stored within the first location in response to said count value stored within the first location being greater than a first predetermined threshold.
-
-
19. A computer system comprising:
-
a system memory configured to store instructions and data; and a processor coupled to execute said instructions, wherein said processor includes a memory controller configured to control accesses to said system memory, wherein said memory controller includes a prefetch mechanism comprising; a prefetch predictor table including a plurality of locations configured to store a first plurality of entries each indicative of a stride between a respective pair of memory requests, wherein each of said plurality of entries is stored in a respective location of said plurality of locations dependent upon a value of an earlier stride; wherein said prefetch predictor table further includes a second plurality of entries each corresponding to a respective one of said first plurality of entries, wherein each of said second plurality of entries includes a count value indicative of a number of times said stride between a respective pair of memory requests is equal to said value of said current stride; and a prefetch control coupled to said prefetch predictor table and configured to access a first location of said plurality of locations dependent upon a value of a current stride and to prefetch an address based upon a given one of said first plurality of entries stored within the first location in response to said count value stored within the first location being greater than a first predetermined threshold.
-
-
20. A computer system comprising:
-
a system memory configured to store instructions and data; a processor coupled to execute said instructions; and a system controller coupled between said processor and said system memory, wherein said system controller includes a memory controller configured to control accesses to said system memory, wherein said memory controller includes a prefetch mechanism comprising; a prefetch predictor table including a plurality of locations configured to store a first plurality of entries each indicative of a stride between a respective pair of memory requests, wherein each of said plurality of entries is stored in a respective location of said plurality of locations dependent upon a value of an earlier stride; wherein said prefetch predictor table further includes a second plurality of entries each corresponding to a respective one of said first plurality of entries wherein each of said second plurality of entries includes a count value indicative of a number of times said stride between a respective pair of memory requests is equal to said value of said current stride; and a prefetch control coupled to said prefetch predictor table and configured to access a first location of said plurality of locations dependent upon a value of a current stride and to prefetch an address based upon a given one of said first plurality of entries stored within the first location in response to said count value stored within the first location being greater than a first predetermined threshold.
-
Specification