ターゲットマシンの動的挙動に関する知識を持った言語処理系の構成法に関する研究を行った。研究の対象となるターゲットマシンの動的挙動としては、分散共有メモリサーバの動的挙動(主としてキャッシュの挙動)を選択した。以下に、本研究の概要を示す。 研究の初期の段階では、分散共有メモリサーバの挙動をコンパイラが予想することにより、効率的なコード生成を行う予定であった。しかし、実際にこの方式を試みてみると、一つのアプリケーションに関する完璧な知識(メモリのアクセスパタンなどに関する知識)があったとしても、複数のアプリケーションで共用される分散共有メモリサーバの挙動を完全に予測することは難しいことが明らかとなった。これは、計算機システムをマルチタスクあるいはマルチユーザで利用する場合には、避けられない問題である。 そこで、この問題に対応するために、言語処理系のランタイムシステムと分散共有メモリのサーバの間で情報のやり取りを行うプロトコールの設計と実験を行った。このプロトコールを用いると、以下のような情報のやりとりが可能となる。 ・アプリケーションのメモリアクセスパタンを分散共有メモリサーバに伝える ・分散共有メモリサーバの状態を言語処理系のランタイムシステムに伝える このプロトコールを利用することにより、共有メモリサーバの状態にあわせてアプリケーションの挙動を変更することができるようになるとともに、アプリケーションのメモリアクセスパタンに関する情報に基づき共有メモリサーバの挙動を変更することも可能となる。 結論として、本研究では、処理系のランタイムシステムと分散共有メモリサーバが、お互いに相手の実行時状態のモデルを持つという方式を提案することになった。これは、分散共有メモリサーバのモデルをコンパイラが持つという当初予定していた方式とは異なるが、より柔軟性のある方式である。
|