- 著者
-
眞下 達
塩谷 亮太
井上 弘士
- 雑誌
- 研究報告システム・アーキテクチャ(ARC) (ISSN:21888574)
- 巻号頁・発行日
- vol.2020-ARC-240, no.32, pp.1-11, 2020-02-20
動的スクリプト言語は幅広い分野で利用されているものの,その実行時オーバーヘッドが大きな課題となっている.動的スクリプト言語を処理する仮想マシンでは一般に,実行時にさまざまな要素を動的に解決する必要がある.特に,仮想マシン上のオペランドの処理では多くのメモリ・アクセスを必要とし,それが実行性能を下げる大きな要因となっている.このオーバーヘッドを削減するために我々は OFAR (Operand Fetching And Remapping)と呼ぶ手法を提案する.OFARは,(1) オペランド値の浮動小数点物理レジスタ (FPPR: Floating-Point Physical Register) へのマップと,(2)オペランド番号のフロントエンドによるフェッチの,2つから成る.一般に,仮想マシンの大分部は整数命令によって実装されており,FPPR の大部分は使用されていない.これを利用し,通常はメモリ上に置かれる仮想的なオペランドの値を FPPR にマップする.これにより,オペランド・アクセスに伴うメモリ・アクセスの多くを省略することができる.また一般に,仮想命令のオペランド番号は基本的には不変であり,命令コードと同様に演算の結果により書き換わることがない.これを利用し,通常はバックエンドで読み出されるオペランド番号を,命令フェッチと同じようにしてフロントエンドで読み出す.これにより,オペランド番号をロードするための命令が省略されることに加え,早期にオペランド番号が得られることによりレイテンシを削減する.