{"title":"Understanding control flow transfer and its predictability in java processing","authors":"Tao Li, L. John","doi":"10.1109/ISPASS.2001.990678","DOIUrl":null,"url":null,"abstract":"An in-depth look and understanding of control flow transfer arid its predictability can guide architects to adapt control flow prediction hardware in Java processing or finely tune the performance of JVM sojhare.on general purpose machines. To our knowledge, this paper provides the first insight of branch behavior on a standard Java Virtual Machine with real workloads. Employing a complete system simulation environment, we profile brunch execution characteristics and quantify the performance of a wide range of prediction schemes on both user and kernel code. The impact of different JVM styles (JIT compiler and interpreter) on branch behavior is also studied. We firid that: (I) Kernel branches constitute a significant portion of total branch execution in Java processing; (2) Kernel and user code favor different prediction mechanisms; (3) Java processing exercises fairly large number of branch sites and large control flow footprint compared with the execution of benchmarks such us SPEClnt95; (4) A major part of the dynamic indirect branches are multiple target (polymorphic) brunches. Target addresses of indirect branches, especially those in interpreting mode are highly interleaved and cause high BTB tiiisprediction.","PeriodicalId":104148,"journal":{"name":"2001 IEEE International Symposium on Performance Analysis of Systems and Software. ISPASS.","volume":"58 S2","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2001-11-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"13","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2001 IEEE International Symposium on Performance Analysis of Systems and Software. ISPASS.","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ISPASS.2001.990678","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 13
Abstract
An in-depth look and understanding of control flow transfer arid its predictability can guide architects to adapt control flow prediction hardware in Java processing or finely tune the performance of JVM sojhare.on general purpose machines. To our knowledge, this paper provides the first insight of branch behavior on a standard Java Virtual Machine with real workloads. Employing a complete system simulation environment, we profile brunch execution characteristics and quantify the performance of a wide range of prediction schemes on both user and kernel code. The impact of different JVM styles (JIT compiler and interpreter) on branch behavior is also studied. We firid that: (I) Kernel branches constitute a significant portion of total branch execution in Java processing; (2) Kernel and user code favor different prediction mechanisms; (3) Java processing exercises fairly large number of branch sites and large control flow footprint compared with the execution of benchmarks such us SPEClnt95; (4) A major part of the dynamic indirect branches are multiple target (polymorphic) brunches. Target addresses of indirect branches, especially those in interpreting mode are highly interleaved and cause high BTB tiiisprediction.