-
-
Save Micrified/e068336396d5f7810e78c64646e67daa to your computer and use it in GitHub Desktop.
Summary
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
The Application Customizable Branch Predictor (ACBP) is a design proposed by Raid Ayoub and Alex Orailoglu that attempts to exploit the relationships between remotely correlated branches in global branch history. Although Ayoub and Oraioglu acknowledge that there are stronger relationships between locally related branches, they maintain that remote correlations are still useful and worth predicting. Their design intends to both save power and improve accuracy by filtering out branching history that is unnecessary to store. This allows the branch predictor to be smaller, and thus more power efficient. By only filtering unnecessary branching history, Ayoub and Oraioglu ensure that no accuracy will be lost. In fact, the performance is improved over that of traditional predictors due to the information gained from remote correlations. | |
The architecture of ACBP preserves important global branch history by storing it in a dedicated section of the predictors global-history-register (GHR). As branch predictions are entered into the global history register, they are placed in a section called short-term-history (STH). As more branches are encountered, and the STH table is filled, entries are shifted to the long-term-history (LTH) section. Once both tables are filled, filtering occurs to determine which entries can enter the LTH section. The filtering mechanism itself is effectively pre-computed based on a profile of the application to be run. The predictor's branch-target-buffer (BTB) provides complete branch resolution, and allows the predictor to determine at runtime whether or not to place the branch in LTH by comparing the branch index to a set partitioning index. This comparison operation itself allegedly adds negligible update latency. To solve priority and contention problems, Ayoub and Orailoglu provide an algorithm for the profiling stage of the application. This algorithm uses a weighing scheme based on several metrics of branch prediction accuracy to resolve conflicts and provide optimal placement. Ayoub and Oraioglu stress that the application customizable branch-target-buffer (ACBTB) they use eliminates the power problems involved with the use of a traditional BTB. They also recommend that the profiling should be applied to the "hotspots" of the target applications execution flow (the part in which it spends most of its time). | |
The evaluation of the ACBP is done primarily against an existing branch-predictor scheme called gshare. Power loss with estimated with WATTCH, and four benchmarks are sourced from the SimpleScalar toolset which are specifically geared towards embedded applications. The results show that the predictor is both more accurate, power efficient, and faster than its competition in virtually every benchmark across a pattern-history-table size range of 64 to 4K. The report points to as much as 40\% improvements in performance over gshare. The main observations were although gshare could close in on the ACBP as its PHT size increased, it could not do so without significant cost in other areas. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment