特許
J-GLOBAL ID:200903074333395761

プログラム変換装置及び方法並びに記録媒体

発明者:
出願人/特許権者:
代理人 (1件): 加藤 朝道
公報種別:公開公報
出願番号(国際出願番号):特願2000-093508
公開番号(公開出願番号):特開2001-282549
出願日: 2000年03月30日
公開日(公表日): 2001年10月12日
要約:
【要約】【課題】中間プログラムレベルでマルチスレッドマイクロプロセッサ向けの並列化を行うプログラム変換装置の提供。【解決手段】並列化装置11は、FORK箇所決定部21とレジスタ割り当て部22と命令並べ換え部23を備え、入力した中間プログラムに対し、FORK箇所決定部21はレジスタ割り当て部22でレジスタ割り当てを試行した結果とメモリデータ依存箇所の数とプロファイル情報ファイル5から得た分岐確率及びデータ依存発生頻度をもとに、FORK箇所と、FORK方式を決定し、命令並べ換え部23は、その決定に沿ってFORK命令前後の命令を並べ換える。
請求項(抜粋):
複数のプログラムカウンタと、複数のスレッド実行装置と、を備え、前記複数のスレッド実行装置は、前記複数のプログラムカウンタに従って、複数のスレッドの命令を、同時に、フェッチ、解釈、実行し、スレッド生成時以降に、レジスタセットに及ぼした変更を、後に取り消し可能な制御投機的モードでスレッドを実行すること、及び、自スレッドがメモリ領域から値をロードした後に、自スレッドを生成した親スレッドが同一メモリ領域に値をストアした場合に、自スレッドの少なくとも当該ロード以降の処理結果を破棄し、それらの処理を再実行するデータ依存投機的モードでスレッドを実行すること、が可能とされ、命令セットとして、前記スレッド実行装置で実行中のスレッドが制御投機的モードの新たなスレッドを生成すること、指定された条件が成立していれば自スレッドを終了させると共に、自スレッドが生成した制御投機的モードのスレッドの制御投機的モードを解除すること、生成した制御投機的モードのスレッドを破棄すること、自スレッドが生成するスレッドが指定されたアドレスのメモリ領域からのロードを行う際に、その動作を一時停止させることをあらかじめ指示すること、指定されたメモリアドレスに対する前記ロード一時停止指示を解除すること、前記スレッド実行装置で実行中のスレッドがデータ依存投機的モードの新たなスレッドを生成すること、及び、自スレッドが生成したデータ依存投機的モードのスレッドのデータ依存投機的モードを解除すること、が、単一又は高々数個の機械語命令の組合せで実行できる命令セットを有するマルチスレッドプロセッサに対して、与えられた原始プログラムを前記マルチスレッドプロセッサ向けに変換するプログラム変換装置であって、並列化に先立ってレジスタ割り当てを試み、中間プログラム上の各変数、及び中間項のレジスタ割り当て状況を予測するレジスタ割り当て試行部と、前記レジスタ割り当て試行部でのレジスタ割り当て試行結果に基づいて、前記中間プログラムにおける条件分岐部分をスレッド生成命令を用いた並列コードに変換するか否か決定し、及び、並列コードでの並列実行方式の決定を行うフォーク(FORK)箇所決定部と、前記フォーク(FORK)箇所決定部での決定結果に基づいて、前記中間プログラム中の条件分岐部分を、スレッド生成命令を用いた並列コードに変換し、前記レジスタ割り当て試行結果を参照して、スレッド間のメモリを介したデータ依存関係を保証する命令を、前記スレッド生成命令の前後に挿入すると共に、スレッド生成が早い段階で行われるように、前記スレッド生成命令の前後の命令を並べ換える命令並べ換え部と、並列化され並べ換えられた命令列に対して、物理レジスタが割り当てられるか否かに関して、前記レジスタ割り当ての試行時と同じ割り当て結果となるように確定的なレジスタ割り当てを行うレジスタ割り当て部と、を備える、ことを特徴とするプログラム変換装置。
IPC (4件):
G06F 9/45 ,  G06F 9/34 330 ,  G06F 9/38 330 ,  G06F 9/46 360
FI (4件):
G06F 9/34 330 ,  G06F 9/38 330 K ,  G06F 9/46 360 B ,  G06F 9/44 322 F
Fターム (9件):
5B013BB18 ,  5B033AA14 ,  5B033BE00 ,  5B081CC23 ,  5B081CC25 ,  5B081CC32 ,  5B098AA10 ,  5B098GA05 ,  5B098GC14
引用特許:
出願人引用 (5件)
全件表示

前のページに戻る