System for using a data history table to select among multiple data prefetch algorithms
First Claim
1. A prefetch unit comprising:
- a data history table coupled to receive a fetch address, wherein said data history table is configured to store a plurality of data address predictions, and wherein each of said plurality of data address predictions includes a prefetch control field identifying one of a plurality of prefetch algorithms, and wherein said data history table is configured to select one of said plurality of data address predictions in response to said fetch address; and
a control unit coupled to said data history table, wherein said control unit is configured to initiate said one of said plurality of prefetch algorithms indicated by said prefetch control field within said one of said plurality of data address predictions.
1 Assignment
0 Petitions
Accused Products
Abstract
A prefetch unit stores a plurality of prefetch control fields in a data history table. Each prefetch control field selects one of multiple prefetch algorithms for use in prefetching data. As an instruction stream is fetched, the fetch address is provided to the data history table for selecting a prefetch control field. Since multiple prefetch algorithms are supported, many different data reference patterns may be prefetched. The prefetch unit is configured to gauge the effectiveness of the selected prefetch algorithm, and to select a different prefetch algorithm if the selected prefetch algorithm is found to be ineffective. The prefetch unit monitors the load/store memory operations performed in response to the instruction stream (i.e. the non-prefetch memory operations) to determine the effectiveness. Alternatively, the prefetch unit may evaluate each of the prefetch algorithms with respect to the observed set of memory references and select the algorithm which is most accurate.
90 Citations
20 Claims
-
1. A prefetch unit comprising:
-
a data history table coupled to receive a fetch address, wherein said data history table is configured to store a plurality of data address predictions, and wherein each of said plurality of data address predictions includes a prefetch control field identifying one of a plurality of prefetch algorithms, and wherein said data history table is configured to select one of said plurality of data address predictions in response to said fetch address; and a control unit coupled to said data history table, wherein said control unit is configured to initiate said one of said plurality of prefetch algorithms indicated by said prefetch control field within said one of said plurality of data address predictions. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A microprocessor comprising:
-
an instruction cache configured to provide a plurality of instructions for execution in response to a fetch address; and a prefetch unit coupled to receive said fetch address concurrent with said instruction cache, wherein said prefetch unit includes a data history table configured to provide a data address prediction in response to said fetch address, and wherein said data address prediction includes a prefetch control field, and wherein said prefetch unit is configured to select one of a plurality of prefetch algorithms in response to said prefetch control field and to initiate prefetching using said one of said plurality of prefetch algorithms. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. A method for prefetching comprising:
-
fetching a plurality of instructions from an instruction cache; accessing a data history table to select a selected prefetch algorithm from a plurality of prefetch algorithms using a prefetch control field corresponding to said plurality of instructions; and prefetching data for use by said plurality of instructions using said selected prefetch algorithm.
-
Specification