WEKO3
アイテム
Java言語に対する投機的なメモリアクセスの最適化手法
https://ipsj.ixsq.nii.ac.jp/records/11299
https://ipsj.ixsq.nii.ac.jp/records/1129948c0c5c7-3675-4c26-8283-265e98fa5791
名前 / ファイル | ライセンス | アクション |
---|---|---|
![]() |
Copyright (c) 2003 by the Information Processing Society of Japan
|
|
オープンアクセス |
Item type | Journal(1) | |||||||
---|---|---|---|---|---|---|---|---|
公開日 | 2003-03-15 | |||||||
タイトル | ||||||||
タイトル | Java言語に対する投機的なメモリアクセスの最適化手法 | |||||||
タイトル | ||||||||
言語 | en | |||||||
タイトル | A Method for Speculative Memory Access Optimizations for Java | |||||||
言語 | ||||||||
言語 | jpn | |||||||
キーワード | ||||||||
主題Scheme | Other | |||||||
主題 | 論文 | |||||||
資源タイプ | ||||||||
資源タイプ識別子 | http://purl.org/coar/resource_type/c_6501 | |||||||
資源タイプ | journal article | |||||||
その他タイトル | ||||||||
その他のタイトル | プログラミング言語の実装技術 | |||||||
著者所属 | ||||||||
日本アイ・ビー・エム株式会社東京基礎研究所 | ||||||||
著者所属 | ||||||||
日本アイ・ビー・エム株式会社東京基礎研究所 | ||||||||
著者所属 | ||||||||
日本アイ・ビー・エム株式会社東京基礎研究所 | ||||||||
著者所属(英) | ||||||||
en | ||||||||
Tokyo Research Laboratory, IBM Japan, Ltd. | ||||||||
著者所属(英) | ||||||||
en | ||||||||
Tokyo Research Laboratory, IBM Japan, Ltd. | ||||||||
著者所属(英) | ||||||||
en | ||||||||
Tokyo Research Laboratory, IBM Japan, Ltd. | ||||||||
著者名 |
川人, 基弘
× 川人, 基弘
|
|||||||
著者名(英) |
Motohiro, Kawahito
× Motohiro, Kawahito
|
|||||||
論文抄録 | ||||||||
内容記述タイプ | Other | |||||||
内容記述 | 本稿では,partial redundancy elimination(PRE)の手法を使い,Java言語に対して投機的に,コントロールフローの制御を超えてメモリアクセスの最適化を行う新しいアルゴリズムを提案する.我々の手法は最初に,メモリ移動を妨げる命令をできるだけ減らすために,エイリアス解析を行う.この解析の結果,各オブジェクト変数がエイリアスされない領域が求まる.次に,この領域を使ってすべてのメモリ移動を妨げる可能性のある命令を見つける.最後に,メモリの移動を次の3つのステップで行う.最初のステップでは,投機的ではないPREのアルゴリズムを用いて,ロード命令と後続する演算命令等を,実行とは逆向きに移動させる.第2のステップでは,投機的なPREのアルゴリズムを用いて,一部のロード命令と後続する演算命令等を,条件分岐の制御を超えて,実行とは逆向きに移動させる.第3のステップでは,ロード命令の最適化結果を利用することにより,ストア命令を実行方向にコントロールフローの合流点を超えて,投機的に移動させる.我々の手法は,投機的ロード命令等の特殊な命令を利用しないため,すべてのアーキテクチャに対して適用可能である.我々はこのアルゴリズムをIBM Java Just-in-Time(JIT)compilerに実装して評価を行った.この結果,以前のアルゴリズムと比べて大きくパフォーマンスが改善した. | |||||||
論文抄録(英) | ||||||||
内容記述タイプ | Other | |||||||
内容記述 | This paper presents a new algorithm for optimizing memory accesses usingcontrol speculation for Java by applying partial redundancy elimination (PRE)techniques.First, for reducing as many barriers as possible for enhancing code motions,we perform alias analysis to identify all the regions in which each objectreference is not aliased.Secondly, using the regions computed by the alias analysis, we find all thepossible barriers including those unidentified by the previous work.Finally, we perform code motions in three steps.For the first step, we apply a non-speculative PRE algorithm to move loadinstructions and their following instructions in the backward direction ofthe control flow graph.For the second step, we apply a speculative PRE algorithm to move some ofthem aggressively before the conditional branches.For the third step, we apply our modified version of a non-speculative PREalgorithm to move store instructions in the forward direction of the controlflow graph and move some of them even after the merge points.Our approach does not require any special instructions, such asspeculative load, and thus it can apply to all architectures.The same approach should work for any type-safety languages.We implemented the algorithm in the IBM Java Just-in-Time (JIT) compiler.Our experimental results show that our approach significantly improvesperformance over previously known algorithms. | |||||||
書誌レコードID | ||||||||
収録物識別子タイプ | NCID | |||||||
収録物識別子 | AN00116647 | |||||||
書誌情報 |
情報処理学会論文誌 巻 44, 号 3, p. 883-896, 発行日 2003-03-15 |
|||||||
ISSN | ||||||||
収録物識別子タイプ | ISSN | |||||||
収録物識別子 | 1882-7764 |