PowerPCプロセッサの特性を考慮した高速Javaバイトコードインタプリタの構成法

書誌事項

タイトル別名
  • PowerPC プロセッサ ノ トクセイ オ コウリョ シタ コウソク Java バイトコードインタプリタ ノ コウセイホウ
  • Constructing a Fast Java Bytecode Interpreter for PowerPC Processors

この論文をさがす

説明

インタプリタは多くのコンピュータ言語実行環境において重要な役割を持ち,その実行速度は,Javaなど仮想マシンを用いる言語において非常に重要である.さらに,Just-In-Time(JIT)コンパイラ技術を用いた高性能Java実行時環境においても重要である.なぜなら,コンパイル時間やメモリ使用量の増加を避けるためにメソッドを選択的にコンパイルするので,多くのメソッドがインタプリタで実行されるためである.インタプリタを高速化する技術は数多く提案されているが,スーパスカラプロセッサ上でインタプリタを実行した場合の,冗長なメモリロードと高頻度な間接分岐のオーバヘッドの問題に注目した手法は提案されていない.これらの問題は,ほとんどのバイトコード命令が数バイト長と短く,オペコードを基本的操作ごとに割り当て,その処理ルーチンが短いコード断片となるJavaでは特に顕著である.本稿では,これらの問題点をPowerPCプロセッサ用のJavaバイトコードインタプリタにおいて解決する手法を提案し,それぞれの実行速度に対する効果をIBM POWER3プロセッサ上で主要なJavaベンチマークプログラムを用いて示す.

Interpreters play the important role in many languages, and their performance is critical particularly for a popular language like Java. The performance of the interpreter is important even in the context of high performance Java Virtual Machines (JVMs) that employ Just-In-Time (JIT) compiler technology, because there is more and more pressure to delay the start of compilation and reduce the number of the target methods to compile. Many techniques have been proposed to improve the performance of various interpreters, but none of them has fully addressed the issues of minimizing redundant memory accesses and the overhead of indirect branches caused by the nature of interpreters on superscalar processors. These issues are even more serious for Java particularly because the bytecode is typically one or a few bytes and the execution routine for each bytecode is short due to the low-level, stack semantics of Java bytecode. In this paper, we describe a few novel features of our Java bytecode interpreter developed for the PowerPC processor to solve these problems, and we show how each feature contributes to the overall performance of the interpreter for major Java benchmark programs on an IBM POWER3 processor.

収録刊行物

参考文献 (24)*注記

もっと見る

キーワード

詳細情報 詳細情報について

問題の指摘

ページトップへ