A 256 Kbits L-TAGE branch predictor

The TAGE predictor, TAgged GEometric length predictor, was introduced in [10]. TAGE relies on several predictor tables indexed through independent functions of the global branch/path history and the branch address. The TAGE predictor uses (partially) tagged components as the PPM-like predictor [5]. It relies on (partial) match as the prediction computation function. TAGE also uses GEometric history length as the O-GEHL predictor [6], i.e. , the set of used global history lengths forms a geometric series, i.e., . This allows to efficiently capture correlation on recent branch outcomes as well as on very old branches. For the realistic track of CBP-2, we present a L-TAGE predictor consisting of a 13-component TAGE predictor combined with a 256-entry loop predictor. This predictor achieves 3.314 misp/KI on the set of distributed traces. Presentation outline We first recall the TAGE predictor principles [10] and its main characteristics. Then, we describe the L-TAGE configuration submitted to CBP-2 combining a loop predictor and a TAGE predictor. Section 3 discusses implementation issues on the L-TAGE predictor. Section 4 presents simulation results for the submitted L-TAGE predictor and a few other TAGE predictor configurations. Section 5 briefly reviews the related works that had major influences in the LTAGE predictor proposition and discusses a few tradeoffs that might influence the choice of a TAGE configuration for an effective implementation. 1. The TAGE conditional branch predictor The TAGE predictor is derived from Michaud’s PPMlike tag-based branch predictor [5] and uses geometric history lengths [6]. Figure 1 illustrates a TAGE predictor. The TAGE predictor features a base predictor T0 in charge of providing a basic prediction and a set of (partially) tagged This work was partially supported by an Intel research grant, an Intel research equipment donation and by the European Commission in the context of the SARC integrated project #27648 (FP6). predictor components Ti. These tagged predictor components Ti, are indexed using different history lengths that form a geometric series, i.e, "! # $ &%' )(+*-,/.0 . Throughout this paper, the base predictor will be a simple PC-indexed 2-bit counter bimodal table; in order to save storage space, the hysteresis bit is shared among several counters as in [7]. An entry in a tagged component consists in a signed counter ctr which sign provides the prediction, a (partial) tag and an unsigned useful counter u. Throughout this paper, u is a 2-bit counter and ctr is a 3-bit counter. A few definitions and notations The provider component is the matching component with the longest history. The alternate prediction altpred is the prediction that would have occurred if there had been a miss on the provider component. If there is no hitting component then altpred is the default prediction. 1.1. Prediction computation At prediction time, the base predictor and the tagged components are accessed simultaneously. The base predictor provides a default prediction. The tagged components provide a prediction only on a tag match. In the general case, the overall prediction is provided by the hitting tagged predictor component that uses the longest history, or in case of no matching tagged predictor component, the default prediction is used. However, we found that, on several applications, using the alternate prediction for newly allocated entries is more efficient. Our experiments showed this property is essentially global to the application and can be dynamically monitored through a single 4-bit counter (USE ALT ON NA in the simulator). On the predictor an entry is classified as “newly allocated” if its prediction counter is weak. Therefore the prediction computation algorithm is as follows: 1. Find the matching component with the longest history 2. if (the prediction counter is not weak or USE ALT ON NA is negative) then the predich[0:L(4)] h[0:L(3)] h[0:L(2)] h[0:L(1)]