A 64-Kbytes ITTAGE indirect branch predictor
∗
Andr´e Seznec
INRIA/IRISA
Abstract
The ITTAGE, Indirect Target TAgged GEometric
length predictor, was introduced in [5] at the same
time as the TAGE conditional branch predictor.
ITTAGE relies on the same principles as
the TAGE predictor several predictor tables in-
dexed through independent functions of the global
branch/path history and the branch address. Like
the TAGE predictor, ITTAGE uses (partially) tagged
components as the PPM-like predictor [2]. It relies
on (partial) match to select the predicted target of an
indirect jump. TAGE also uses GEometric history
length as the O-GEHL predictor [3], i.e. , the set of
used global history lengths forms a geometric series.
This allows to efficiently capture correlation on recent
branch outcomes as well as on very old branches.
Due to the huge storage budget available for the
ChampionShip, we propose an ITTAGE predictor fea-
turing 16 prediction tables. On the distributed set of
traces, using a path history vector recording only in-
formation from indirect jumps and calls was found to
be (slightly) more efficient than using a path/branch
history vector combining information from all kind of
branches.
1 The ITTAGE indirect jump target
predictor
Building on top of the cascaded predictor [1] and
on the TAGE predictor, the ITTAGE predictor was
proposed in [4]. In this section, we recall the gen-
eral principles of the ITTAGE indirect target pre-
dictor.equivalent storage budget. Some implementa-
tion details from the initial ITTAGE proposition are
slightly modified in order to improve the global pre-
diction accuracy.
1.1 ITTAGE predictor principles
ITTAGE relies on the same principles as the TAGE
predictor several predictor tables indexed through in-
dependent functions of the global branch/path his-
tory and the branch address.
∗
This work was partially supported by the European Re-
search Counsil Advanced Grant DAL
The Indirect Target TAgged GEometric length,
ITTAGE, predictor features a tagless base predic-
tor T0 in charge of providing a default prediction
and a set of (partially) tagged predictor components.
The tagged predictor components Ti, 1 ≤ i < M
are indexed using different history lengths. The
set of history lengths form an increasing series, i.e
L(i) = (int)(α
i−1
∗ L(1) + 0.5). This is illustrated
in Figure 1. The counters representing predictions in
TAGE are replaced by the target addresses Target .
A predictor table entry also features a tag, a 2-bit
confidence counter Ctr allowing some hysteresis on
the predictor and a useful bit U for controlling the
update policy ( Figure 2).
!"#
$%&'()*#
+,# +,# +,#
!-./0"123##
!"# !"# $%&'(4*# !"#
$%&'(5*#
54#
54# )#
54# )# 54# )#
54#
54#
6789.::#;7:.##
<-./0"=2-#
Figure 1: The Indirect Target TAgged GEometric
length, ITTAGE, predictor
Figure 2: An entry of an ITTAGE predictor table
A few definitions and notations In the remain-
der of the paper, we define the provider component
as the predictor component that ultimately provides
the prediction. We define the alternate prediction
altpred as the prediction that would have occurred if
there had been a miss on the provider component.
That is, if there are tag hits on T2 and T4 and tag
misses on T1 and T3, T4 is the provider component
1