Next fetch prediction return table
First Claim
1. An apparatus comprising:
- a cache comprising a first table, wherein the first table comprises a plurality of entries;
an array comprising a second table, wherein the second table comprises a plurality of entries; and
control logic, wherein in response to determining a received fetch address misses in the first table and the first table has no entries available for allocation, the control logic is configured to;
overwrite a given entry of the first table with the received fetch address, in response to detecting a strength value for the given entry is below a threshold; and
allocate an entry in the second table for the received fetch address, in response to detecting no entries of the first table have a strength value below the threshold.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems, apparatuses, and methods for efficient program flow prediction. After receiving a current fetch address, a first predictor performs a lookup of a first table. When the lookup results in a miss and the first table has no available entries, the first predictor overwrites a given entry of the first table with the received fetch address, in response to detecting a strength value for the given entry is below a threshold. Otherwise, in response to detecting no entries of the first table have a strength value below the threshold, the first predictor allocates an entry in the second table for the received fetch address. When an indication of a target address for the received fetch address is a return address for a function call, a third predictor allocates an entry of a third table with the received fetch address.
8 Citations
20 Claims
-
1. An apparatus comprising:
-
a cache comprising a first table, wherein the first table comprises a plurality of entries; an array comprising a second table, wherein the second table comprises a plurality of entries; and control logic, wherein in response to determining a received fetch address misses in the first table and the first table has no entries available for allocation, the control logic is configured to; overwrite a given entry of the first table with the received fetch address, in response to detecting a strength value for the given entry is below a threshold; and allocate an entry in the second table for the received fetch address, in response to detecting no entries of the first table have a strength value below the threshold. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method comprising:
-
storing indications of target addresses in a plurality of entries of a first table; storing indications of target addresses in a plurality of entries of a second table; wherein in response to determining a received fetch address misses in the first table and the first table has no entries available for allocation; overwriting a given entry of the first table with the received fetch address, in response to detecting a strength value for the given entry is below a threshold; and allocating an entry in the second table for the received fetch address, in response to detecting no entries of the first table have a strength value below the threshold. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A processor comprising:
-
a first predictor comprising a first table; a second predictor comprising a second table; wherein in response to determining a received fetch address misses in the first table and the first table has no entries available for allocation, the first predictor is configured to; overwrite a given entry of the first table with the received fetch address, in response to detecting a strength value for the given entry is below a threshold; and allocate an entry in the second table for the received fetch address, in response to detecting no entries of the first table have a strength value below the threshold. - View Dependent Claims (17, 18, 19, 20)
-
Specification