Title
Bungee jumps: accelerating indirect branches through HW/SW co-design
Abstract
Indirect branches have historically been a challenge for microarchitectures and code generators alike. The recent steady increase in indirect branch predictability has translated into continual performance improvements especially for Out-of-Order processors which benefit more readily from improvements in branch prediction. In contrast, in-order processors which rely on code generators for performance are still challenged by indirect branches; they are a frequent source of issue stalls and the large number of indirect branch targets and unbiased nature of indirect branches complicate the use of traditional branch handling techniques like assert conversion and predication. To address these limitations, we propose an ISA enhancement with associated code transformation and hardware support that collectively enable the current trend of improved indirect branch predictability to be directly leveraged by code-generators for in-orders. By separating the prediction point of an indirect branch from its resolution point, we enable code generators to emit schedules which more readily match those found by the Out-of-Order. Our technique is particularly beneficial to those processors which leverage dynamic binary translation and optimization such as Transmeta's Efficeon and more recently Nvidia's Project Denver. On a set of indirect branch intensive benchmarks from SPEC 2006, 2000 and 95, we achieve a Geomean speedup on a 4-wide of 11%. We further demonstrate speedups of 23% and 14% speedup on PHP and Python benchmarks.
Year
DOI
Venue
2015
10.1145/2830772.2830781
MICRO
Keywords
Field
DocType
optimization,dynamic binary translation,code generators,improved indirect branch predictability,Out-of-Order processors,HW-SW co-design,bungee jumps
Indirect branch,Computer science,Parallel computing,Real-time computing,Binary translation,Schedule,Out-of-order execution,Python (programming language),Benchmark (computing),Branch predictor,Speedup
Conference
ISBN
Citations 
PageRank 
978-1-5090-6601-8
2
0.37
References 
Authors
28
2
Name
Order
Citations
PageRank
Daniel S. McFarlin1582.73
Craig B. Zilles293294.74