Past Issues

Studies in Informatics and Control
Vol. 13, No. 1, 2004

Understanding and Predicting Indirect Branch Behavior

Adrian Florea, Lucian N. Vinfan, loan Z. Mihu
Abstract

Understanding program behavior is at the foundation of computer architecture and program optimization. Machine code usually has much less semantic information than source code, which makes it much more difficult to discover control flow or data flow information. The main aim of this paper consists in extracting some corpus program and features from procedural and object-oriented applications or xecution characteristics of desktop applications that generate indirect function call (unavoidable breaks in control) at machine level. We also made a comparative analysis of C and C++ languages behavior from the execution point of view on instiuction level parallelism architectures. The simulation part of the paper mainly refers to measuring the locality degree of target addresses on series of architectural resources but specially to adapting some knowing prediction schemes (Two Context Predictors named Target Cache and, respectively, the complete PPM Predictor) to predict indirect jump instructions. PPM predictor seems to be an almost ultimate limit of target prediction, and, thus, a good frame for deriving practical prediction schemes.

Keywords

Procedural and object-oriented programs, indirect branches / function calls, virtual functions, dynamic branch prediction, instmction level parallel architectures, SPEC benchmarks, dynamic link libraries (DLL).

View full article