• 中国精品科技期刊
  • CCF推荐A类中文期刊
  • 计算领域高质量科技期刊T1类
高级检索

一种面向解释器的间接转移预测技术

黄明凯, 刘先华, 谭明星, 谢子超, 程旭

黄明凯, 刘先华, 谭明星, 谢子超, 程旭. 一种面向解释器的间接转移预测技术[J]. 计算机研究与发展, 2015, 52(1): 66-82. DOI: 10.7544/issn1000-1239.2015.20130970
引用本文: 黄明凯, 刘先华, 谭明星, 谢子超, 程旭. 一种面向解释器的间接转移预测技术[J]. 计算机研究与发展, 2015, 52(1): 66-82. DOI: 10.7544/issn1000-1239.2015.20130970
Huang Mingkai, Liu Xianhua, Tan Mingxing, Xie Zichao, Cheng Xu. An Indirect Branch Prediction for Interpreters[J]. Journal of Computer Research and Development, 2015, 52(1): 66-82. DOI: 10.7544/issn1000-1239.2015.20130970
Citation: Huang Mingkai, Liu Xianhua, Tan Mingxing, Xie Zichao, Cheng Xu. An Indirect Branch Prediction for Interpreters[J]. Journal of Computer Research and Development, 2015, 52(1): 66-82. DOI: 10.7544/issn1000-1239.2015.20130970
黄明凯, 刘先华, 谭明星, 谢子超, 程旭. 一种面向解释器的间接转移预测技术[J]. 计算机研究与发展, 2015, 52(1): 66-82. CSTR: 32373.14.issn1000-1239.2015.20130970
引用本文: 黄明凯, 刘先华, 谭明星, 谢子超, 程旭. 一种面向解释器的间接转移预测技术[J]. 计算机研究与发展, 2015, 52(1): 66-82. CSTR: 32373.14.issn1000-1239.2015.20130970
Huang Mingkai, Liu Xianhua, Tan Mingxing, Xie Zichao, Cheng Xu. An Indirect Branch Prediction for Interpreters[J]. Journal of Computer Research and Development, 2015, 52(1): 66-82. CSTR: 32373.14.issn1000-1239.2015.20130970
Citation: Huang Mingkai, Liu Xianhua, Tan Mingxing, Xie Zichao, Cheng Xu. An Indirect Branch Prediction for Interpreters[J]. Journal of Computer Research and Development, 2015, 52(1): 66-82. CSTR: 32373.14.issn1000-1239.2015.20130970

一种面向解释器的间接转移预测技术

基金项目: “核高基”国家科技重大专项基金项目(2009ZX01029-001-002)|国家自然科学基金项目(61300004)|北京市自然科学基金项目(4123098)
详细信息
  • 中图分类号: TP332| TP314

An Indirect Branch Prediction for Interpreters

  • 摘要: 解释器广泛应用于Java虚拟机、JavaScript执行引擎等托管运行环境中.解释器通常使用间接转移指令实现字节码分派.在现代多发射多级流水的微处理器中,间接转移预测失效严重制约解释器的性能.针对解释器提出了一种字节码指针引导的间接转移预测技术,其核心思想是使用解释器特有的字节码指针值区分不同的间接转移场景.该技术使用软硬件协同的方式,解释器中插入专门的引导指令以标记字节码指针,预测器在运行时刻使用字节码指针值预测转移目标地址.实验结果表明,该技术与常用的转移目标缓冲预测器相比,能提升Java解释器的性能达34.7%,能提升JavaScript解释器的性能达8.3%,与专用的硬件间接转移预测器TTC(tagged target cache)相比,也能提升Java解释器的性能达21.9%.
    Abstract: Interpreters are widely used in Java virtual machines, JavaScript execution engines and other managed runtime environments. Interpreters usually use indirect branches to dispatch bytecodes. Indirect branch mispredictions are becoming a critical limit of interpreters’ performance in modern multi-issue multi-stage pipeline microprocessors. This paper proposes a bytecode pointer guided indirect (BGI) branch prediction for interpreters. The key idea is to use interpreter-specific bytecode pointer value to distinguish different indirect branch occurrences. It can improve the prediction accuracy of indirect branches in interpreters, so as to improve the performance of interpreters. Microprocessors usually use BTB to predict branch target addresses. BTB can’t accurately predict the rapidly changing branch target addresses of indirect branches in interpreters because it stores only one target address for one indirect branch. Our technique requires software-hardware cooperation, where interpreter software is augmented with specialized hint instructions to indicate bytecode pointers, and then the branch predictor makes use of the bytecode pointer value to store different target addresses of one indirect branch in different entries of BTB at runtime, so as to improve the prediction accuracy. Experimental results show that it improves the performance by 347% for Java interpreter and by 8.3% for JavaScript interpreter over the most commonly used BTB prediction, and it improves the performance by 21.9% for Java interpreter over the specialized indirect branch predictor TTC.
计量
  • 文章访问数:  1261
  • HTML全文浏览量:  0
  • PDF下载量:  695
  • 被引次数: 0
出版历程
  • 发布日期:  2014-12-31

目录

    /

    返回文章
    返回