• DocumentCode
    1050532
  • Title

    Virtual Program Counter (VPC) Prediction: Very Low Cost Indirect Branch Prediction Using Conditional Branch Prediction Hardware

  • Author

    Kim, Hyesoon ; Joao, José A. ; Mutlu, Onur ; Lee, Chang Joo ; Patt, Yale N. ; Cohn, Robert

  • Author_Institution
    Coll. of Comput., Georgia Inst. of Technol., Atlanta, GA, USA
  • Volume
    58
  • Issue
    9
  • fYear
    2009
  • Firstpage
    1153
  • Lastpage
    1170
  • Abstract
    Indirect branches have become increasingly common in modular programs written in modern object-oriented languages and virtual-machine-based runtime systems. Unfortunately, the prediction accuracy of indirect branches has not improved as much as that of conditional branches. Furthermore, previously proposed indirect branch predictors usually require a significant amount of extra hardware storage and complexity, which makes them less attractive to implement. This paper proposes a new technique for handling indirect branches, called Virtual Program Counter (VPC) prediction. The key idea of VPC prediction is to use the existing conditional branch prediction hardware to predict indirect branch targets, avoiding the need for a separate storage structure. Our comprehensive evaluation shows that VPC prediction improves average performance by 26.7 percent and reduces average energy consumption by 19 percent compared to a commonly used branch target buffer based predictor on 12 indirect branch intensive C/C++ applications. Moreover, VPC prediction improves the average performance of the full set of object-oriented Java DaCapo applications by 21.9 percent, while reducing their average energy consumption by 22 percent. We show that VPC prediction can be used with any existing conditional branch prediction mechanism and that the accuracy of VPC prediction improves when a more accurate conditional branch predictor is used.
  • Keywords
    C++ language; buffer storage; object-oriented languages; program compilers; virtual machines; C/C++ application; branch target buffer; conditional branch prediction hardware; indirect branch prediction; object-oriented language; runtime system; storage structure; virtual machine; virtual program counter prediction; Accuracy; Energy consumption; Hardware; History; Indexes; Java; Radiation detectors; Indirect branch prediction; Java.; devirtualization; object-oriented languages; virtual functions;
  • fLanguage
    English
  • Journal_Title
    Computers, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0018-9340
  • Type

    jour

  • DOI
    10.1109/TC.2008.227
  • Filename
    4731245