JP3213765B2 - パイプラインプロセッサ用のコストを基にするヒューリスティック命令スケジューリングを最適にする方法および装置 - Google Patents

パイプラインプロセッサ用のコストを基にするヒューリスティック命令スケジューリングを最適にする方法および装置

Info

Publication number
JP3213765B2
JP3213765B2 JP08661492A JP8661492A JP3213765B2 JP 3213765 B2 JP3213765 B2 JP 3213765B2 JP 08661492 A JP08661492 A JP 08661492A JP 8661492 A JP8661492 A JP 8661492A JP 3213765 B2 JP3213765 B2 JP 3213765B2
Authority
JP
Japan
Prior art keywords
weights
cost
trial
lowest
additional
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP08661492A
Other languages
English (en)
Other versions
JPH06180648A (ja
Inventor
グレゴリィ・ターシイ
マイケル・ジェイ・ウッダード
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH06180648A publication Critical patent/JPH06180648A/ja
Application granted granted Critical
Publication of JP3213765B2 publication Critical patent/JP3213765B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/445Exploiting fine grain parallelism, i.e. parallelism at instruction level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3428Benchmarking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Devices For Executing Special Programs (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はコンピュータシステムの
分野に関するものである。とくに、本発明はパイプライ
ンプロセッサ用のコストをベースにするヒューリスティ
ック命令スケジューリングを最適にすることに関するも
のである。
【0002】
【従来の技術】1991年27日に出願された未決
の米国特許出願第07/661674(米国特許第
5,202,993号)「コストを基にするヒューリス
ティック命令スケジューリングのための方法(Meth
od and Apparatus for Cost
−based Heuristic Instruct
ion Scheduling)」に開示されている方
法は、スケジュールすべき命令のブロックのための命令
依存性グラフを描く過程と、命令依存性グラフを基にし
てそれらの命令に対する自由な命令リストを構成する過
程と、自由な命令の最低総コストを基にして自由な命令
リストの一つをスケジューリングする過程とを有する。
各自由な命令に対する総コストは複数のコストヒューリ
スティックの重みづけられた和を基にして計算される。
また、自由な命令がスケジュールされた後で自由な命令
リストがリフレッシュされ、リフレッシュされたリスト
からの別の一つの自由な命令がスケジュールされる。命
令ブロックの命令が全てスケジュールされるまで、リフ
レッシュとスケジューリングが繰り返される。前記未決
の米国特許出願に開示されているパイプラインプロセッ
サ用のコストをベースとするヒューリスティック命令ス
ケジューリングのための装置は、スケジュールすべき命
令のブロックのための命令依存性グラフを描く手順と、
命令依存性グラフを基にしてそれらの命令に対する自由
な命令リストを構成する手順と、自由な命令の最低総コ
ストを基にして自由な命令リストの一つをスケジューリ
ングする手順とを有する。また、その未決の米国特許出
願の装置の好適な実施例はコストヒューリスティックの
いくつかをモデル化するためのプロセッサモデルを更に
有する。前記未決の米国特許出願の方法および装置のコ
ストヒューリスティックは資源依存性コストと、データ
依存性コストと、依存性待ちコストと、依存サイクルコ
ストと、浮動小数点比コストと、記憶比コストと、浮動
小数点待ち行列コストとを含む。コストヒューリスティ
ックの重みは、特定のパイプラインプロセッサのための
コストヒューリスティックの相対的な重要性を表す。
【0003】パイプラインプロセッサの著しい特徴は異
なるプロセッサの間で大きく異なり、たとえば、単一サ
イクル整数ロード/使用ペナルティおよび浮動小数点ロ
ード/使用ペナルティである。特定のパイプラインプロ
セッサのために用意された重みは、前記未決の米国特許
出願に開示されているパイプラインプロセッサ用のコス
トをベースとするヒューリスティック命令スケジューリ
ングのための方法および装置の効果を大幅に向上させる
ものであることが経験により明らかにされている。
【0004】
【発明が解決しようとする課題】本発明は前記未決の米
国特許出願に開示されている方法および装置の効果を更
に向上し、パイプラインプロセッサ用のコストをベース
とするヒューリスティック命令スケジューリングを最適
にする相補的な方法および装置を提供する。
【0005】
【課題を解決するための手段】コード発生後の時間命令
スケジューリングを編集するためにとくに用いられる、
パイプラインプロセッサ用のコストをベースとするヒュ
ーリスティック命令スケジューリングを最適にする方法
および装置について説明する。本発明の方法は、順序づ
けられているn個組の重みをおのおの含む相互に関連づ
けられている重みセットの集まりを、コストを基にする
ヒューリスティック命令スケジューリングを行う装置へ
供給する過程と、各重みセットに対する同一のベンチマ
ークを供給する過程と、そのベンチマークの命令ブロッ
クに対してかかるコストを累算する過程と、そのベンチ
マークに対してかかる累算コストを評価して、最低の累
算コストおよび集まりの最適重みセットを決定する過程
とを備える。
【0006】本発明の方法は、上記過程を繰り返して、
順序づけられている重みに相互に関連づけられている重
みの異なる集まりに対する新しい最低の累算されたコス
トおよび新しい最適重みセットを決定する過程と、最低
の累算されたコストの最低および集まりの最適重みセッ
トを決定するために最低の累算されたコストを評価する
過程とを更に備える。異なる集まりを繰り返す過程と、
最低の累算されたコストを評価する過程とは、最低の累
算されたコストの最低がいくつかの集まりにわたってほ
ぼ不変に保たれているまで繰り返される。
【0007】本発明の装置は、順序づけられている重み
に相互に関連づけられている重みセットの種々の集まり
を発生する重み発生手段と、対応する同一のベンチマー
クを発生するベンチマーク発生手段と、そのベンチマー
クに対してかかるコストを累算するコスト累算手段と、
そのベンチマークに対してかかる累算コストを評価し
て、最低の累算コストおよび集まりの最適重みセットを
決定するコスト評価手段とを備える。コスト評価手段は
最低の累算されたコストを評価して、最低の累算された
コストの最低および全ての集まりに対する最適重みセッ
トを決定する。
【0008】各集まりの重みセットは一度に一つずつ順
次供給される。各集まりの以後の重みセットは、二つの
条件の一つが起きるまで第1のやり方で系統的に発生さ
れる。それ以後の付加的な重みセットは第2のやり方で
系統的に発生され、そのときには第1のやり方の発生は
二つの条件のちの第1の条件の下に終わらせられる。第
1のやり方は、以後の重みセットの内の中間の先行する
重みセットの重みを系統的に変えることにより、以後の
重みセットを発生する。重みも系統的な変化は重みの手
順で行われる。一つの重みを変えることは、変化するオ
フセットの順列を、変えられている重みへ系統的に加え
ることを含む。変化するオフセットの各順列は、符号変
数、サイズ変数、および大きさ変数を一緒に掛け合わせ
ることにより計算される。符号変数は−1から1まで変
化する。サイズ変数は1から、所定の有限量にわたって
所定の算術増分で変化する。大きさ変数は、1から所定
の有限量にわたって所定の幾何学的増分で変化する。第
1の重みセット発生のやり方に対する二つの終了条件
は、現在の重みセットの下における最低の累算されたコ
ストが、以前の重みセットの最低の累算されたコストよ
り低いという第1の条件と、変化するオフセットの全て
の順列が用いられているという第2の条件とを有する。
第2のやり方は、第1のやり方の変化するオフセットの
終了順列を、第1のやり方の終了する重み位置におい
て、その以後の重みセットの中間重みセットの重みへ系
統的に加え合うことにより以後の重みセットを発生する
ことを含む。
【0009】
【実施例】
表記法および用語 以下に行う詳細な説明は、中央処理装置(CPU)によ
り実行されるコンピュータメモリ内の手順に関して主と
して説明する。この手順の説明および表現は、データ処
理の分野における専門家が自己の業績を同じ分野の他の
専門家へ最も効果的に伝えるために用いられるものであ
る。この明細書においては、および一般的には、手順を
希望の結果へ導く自己矛盾の無い一貫している一連の過
程であるものとする。それらの過程は物理量の物理的取
り扱いを要する過程である。通常は、必然的なものでは
ないが、それらに量は、蓄積、転送、組み合わせ、比較
およびその他の処理ができる電気信号または磁気信号の
形をとる。時には、主として一般的に用いられるという
理由から、それらの信号をビット、値、素子、記号、オ
ブジェクト、文字、項、数、などと呼ぶと便利であるこ
とが判明している。しかし、それら全ての用語および類
似の項は適切な物理量に関連すべきであること、および
それらの量に適用される単なるラベルであることを記憶
しておくべきである。行われる取扱いは、人間により行
われる精神的な活動に一般的に関連づけられる、加算ま
たは比較のような用語でしばしば呼ばれる。本発明の一
部を構成するここで説明するどのようなオペレーション
においても、人間のそのような能力はほとんどの場合に
不必要であり、あるいは望ましくない。オペレーション
は機械オペレーションである。本発明のオペレーション
を行うために有用な機械には汎用デジタルコンピュータ
その他の類似の装置が含まれる。あらゆる場合に、コン
ピュータを動作させる場合における方法オペレーション
と、計算自体の方法とは異なることを記憶しておくべき
である。本発明は、他の希望の物理的信号を発生するた
めに、電気信号またはその他の物理的信号の処理におい
てコンピュータを動作させる方法に関するものである。
本発明はそれらのオペレーションを行う装置にも関する
ものである。この装置は求められている目的のためにと
くに構成でき、コンピュータに内蔵されているコンピュ
ータプログラムにより選択的に起動され、または再構成
される汎用コンピュータを含むことができる。この明細
書において示す手順は特定の任意のコンピュータまたは
その他の装置に必ずしも全面的に関連するものではな
い。とくに、この明細書の教示に従って書かれた手順に
各種の汎用機を使用でき、または求められている方法手
順を実行するためにより特殊化された装置を構成するこ
とが便利であることを示すことができる。
【0010】この明細書においては、コード発生後に時
間命令スケジューリングをコンパイルするための特定の
用途を有する、パイプラインプロセッサ用のコストをベ
ースとするヒューリスティック命令スケジューリングを
最適にする方法および装置について説明する。以下の説
明においては、本発明を完全に理解できるようにするた
めに、特定の数、特定の材料、および特定の構成につい
て述べる。しかし、それらの特定の詳細なしに本発明を
実施できることが当業者には明らかであろう。他の場合
には、本発明を不必要にあいまいにしないようにするた
めに、周知の装置は線図的に、またはブロック図で示
す。
【0011】まず、パイプラインプロセッサ用のコスト
をベースとするヒューリスティック命令スケジューリン
グを最適にする装置の好適な実施例を示すブロック図が
示されている図1を参照する。本発明の装置の好適な実
施例10は中央処理装置(CPU)12と、このCPU
12により実行される複数の手順16〜22を含むメモ
リ14と、手順18の一つによりアクセスされるデータ
ベース26を含む大容量記憶装置24とを備える。CP
U12はメモリ14内の手順16〜18を実行する。C
PU12は、前記未決の米国特許出願に開示されている
コストをベースとするヒューリスティック命令スケジュ
ーリングを最適にする装置へ入力を供給するためのイン
ターフェイスを有する。また、そのインターフェイスは
前記未決の米国特許出願に開示されているコストをベー
スとするヒューリスティック命令スケジューリングを最
適にする装置により維持されているテーブル/ファイル
をアクセスするためのものである。メモリ14は、CP
U12により実行される手順16〜18を記憶するため
のものである。CPU12へ結合されているメモリ14
は重み発生手順16と、この重み発生手順16により呼
出されるベンチマーク発生手順18と、このベンチマー
ク発生手順18により呼出されるコスト累算手順20
と、このコスト累算手順20により呼出されるコスト評
価手順22とを有する。大容量記憶装置24は実行手順
16〜22の関連するデータベース26を記憶するため
のものである。大容量記憶装置24はベンチマーク発生
手順18によりアクセスされるベンチマークデータベー
ス26を有する。
【0012】なお、重み発生手順16は相互に関連づけ
られた重みセットの集まりを発生するためのものであ
る。各集まりの相互に関連づけられた重みセットは、一
度に一つずつ順次発生される。順次発生される相互に関
連づけられた重みセットの各集まりは、第1のやり方で
発生された最初の重みセットと、次の相互に関連づけら
れた重みセットとを有する。また、順次発生される相互
に関連づけられた重みセットの集まりは、第2のやり方
で発生された以後の相互に関連づけられた重みセットを
更に含む。その時には、第1のやり方による発生は二つ
の条件のうちの第1の条件の下に終わらせられる。各重
みセットは順序づけられたn個組の重みを有する。
【0013】次に、重み発生手順の動作の流れの概観を
示すブロック図が示されている図2を参照する。最初
に、最初の重みセット32が発生される(ブロック3
2)。それから、以後の相互に関連づけられた重みセッ
トが第1のやり方で発生される(ブロック34)。第1
のやり方による発生が終わった後で、発生の条件が決定
される(ブロック36)。第1の条件の下に第1のやり
方による発生が終わらされると、追加の以後の相互に関
連づけられた重みセットが第2のやり方で発生される
(ブロック38)。第1のやり方による発生が第1の条
件の下に終わらせられないとすると、または第2のやり
方による発生が終わらされた後で、順序づけられた重み
に相互に関連づけられた重みセットの別の集まりを発生
すべきかどうかが決定される(ブロック40)。この決
定の結果が、否定であると、重みの発生手順は終わらせ
られ、肯定であると、重み発生手順が前記のように別の
集まり32〜38を発生する。
【0014】次に、重み発生手順によるある集まりの最
初の重みセットの発生を示すブロック図が示されている
図3を参照する。ある集まりの最初の重みセットの順序
づけられたn個組の重みがランダムに発生される(ブロ
ック42)。最初の重みセットの発生の後で、集まりカ
ウント(CL_COUNT)が1だけ増大させられ、そ
の集まりに対する重みセットカウント(WS_COUN
T)が1へ初期化される(ブロック44)。それから、
未決の前記米国特許出願に記載されているコストを基に
するヒューリスティック命令スケジューリング(CBH
IS)のための装置の重みテーブルが、発生された重み
セットで初期化される(ブロック46)。最初の重みセ
ットでCBHIS装置を初期化した後で、CBHIS装
置へベンチマーク(すなわち機能コードIB)を供給す
るために、ベンチマーク発生手順が呼出される(ブロッ
ク48)。現在の重みセットカウント(WS_COUN
T)も呼出しとともに供給される。ベンチマーク発生手
順から戻ると、重み発生手順は第1のやり方で以後の相
互に関連づけられた重みセットの発生へ進む。呼出しを
サービスした時にベンチマーク発生手順により、見出さ
れた新しい最低の累算されたコスト標識(NLAC_F
ND)が戻される。以下に説明するように、ある集まり
の最初の重みセットに対して戻された新しい最低の累算
されたコストファウント標識(NLAC_FND)が、
「YES」の設定を常に含む。見出された新しい最低の
累算されたコスト標識(NLAC_FND)の使用につ
いては後で詳しく説明する。
【0015】次に、重み発生手順により第1のやり方で
ある集まりの以後の相互に関連づけられた重みセットの
発生を示すブロック図が示されている図4を参照する。
重み変数(i)と、大きさ変数(MAG)と、サイズ変
数(SIZE)とが値1へ全て初期化される(ブロック
50)。符号変数(SIGN)が値−1へ初期化される
(ブロック50)。それらの変数を初期化した後で、変
数(SIGN,SIZEおよびMAG)を一緒に掛け合
わせることにより変化するオフセットが計算される。そ
の集まりのために新しい重みセットを発生するために、
中間の先行する重みセットのi番目の重みへ変化するオ
フセットが加えられる。
【0016】新しい重みセットの発生後に、その集まり
に対する重みセットカウント(WS_COUNT)が増
加させられ(ブロック56)、CBHIS装置の重みテ
ーブルが新たに発生された重みセットにより初期化され
(ブロック58)、CBHIS装置へベンチマークを供
給するためにベンチマーク発生手順が呼出される(ブロ
ック60)。この動作は最初の重みセットについて先に
述べたのと同様である。同様に、呼出しをサービスした
後で、見出された新しい最低の累算されたコスト標識
(NLAC_FUND)がベンチマーク発生手順により
戻される。この見出された新しい最低の累算されたコス
ト標識(NLAC_FND)を検査して、その集まりに
対するその新しい最低の累算されたコストが見出される
かどうかを判定する。その標識(NLAC_FND)が
「YES」であると、終わり条件標識(TERM_CN
O)が1にセットされ(ブロック64)、第1のやり方
による重みセット発生が終わらされる。その見出された
コスト標識(NLAC_FND)が「NO」であると、
符号変数(SIGN)へ負の1が乗ぜられる(ブロック
66)。その符号変数(SIGN)を検査してそれが値
1に等しいかどうかを判定する(ブロック68)。
【0017】符号変数(SIGN)が1に等しいと、変
化するオフセットが再計算され(ブロック52)、新し
い重みセットが発生され(ブロック54)、その集まり
に対する重みセットカウントが増加され(ブロック5
6)、CBHIS装置の重みテーブルが初期化され(ブ
ロック58)、ベンチマーク発生手順が呼出され(ブロ
ック60)、戻る新しい最低の累算されたコストファン
ド標識(NLAC_FND)が検査され(ブロック6
2)、符号変数(SIGN)が再計算され(ブロック6
6)、かつ再検査される(ブロック68)。変数(SI
GN)が値1に等しくない(すなわち、負の1に等し
い)とすると、サイズ変数増分インデックス(j)が1
だけ増加させられる(ブロック69)。jの値をサイズ
変数(SIZE)へ加えることにより、サイズ変数(S
IZE)は再計算される。それから、変数(SIZE)
が最大サイズ(MAX_SIZE)をこえたかどうかを
判定するために変数(SIZE)を検査する。
【0018】再計算されたサイズ変数(SIZE)が最
大サイズ(MAX_SIZE)をこえないとすると、変
化するオフセットが再計算され(ブロック52)、新た
な重みセットが発生され(ブロック54)、集まりに対
する重みセットカウントが増加させられ(ブロック5
6)、CBHIS装置の重みテーブルが初期化され(ブ
ロック58)、ベンチマーク発生手順が呼出され(ブロ
ック60)、見出された戻る新しい最低の累算されたコ
スト標識が検査され(ブロック62)、変数(SIG
N)が再計算され(ブロック66)、かつ再計算され
(ブロック68)、変数(SIZE)が再計算され(ブ
ロック70)、かつ再検査される(ブロック72)。サ
イズ変数(SIZE)が最大サイズ(MAX_SIZ
E)をこえたとすると、大きさ変数(MAG)へそれの
幾何学的乗算(GEDM_MULT)を乗ずることによ
り大きさ変数(MAG)が再計算される。それから、大
きさ変数(MAG)が最大大きさ(MAX_MAG)を
こえるかどうかを判定するためにその変数(MAG)を
検査する(ブロック76)。
【0019】再計算された大きさの変数(MAG)が最
大大きさ(MAX_MAG)をこえないとすると、変化
するオフセットが再計算され(ブロック52)、新しい
重みセットが発生され(ブロック54)、その集まりに
対する重みセットカウントが増加させられ(ブロック5
6)、CBHIS装置の重みテーブルが初期化され(ブ
ロック58)、ベンチマーク発生手順が呼出され(ブロ
ック60)、見出された戻る新しい最低の累算されたコ
スト標識(NLAC_FND)が検査され(ブロック6
2)、符号変数(SIGN)が再計算され(ブロック6
6)、かつ再検査され(ブロック68)、サイズ変数
(SIZE)が再計算され(ブロック70)、かつ再検
査され(ブロック72)、大きさ変数(MAG)が再計
算され(ブロック74)、かつ再検査される(ブロック
76)。大きさ変数(MAG)が最大大きさ(MAX_
MAG)より大きいと、重みインデックス(i)が1だ
け増加させられる(ブロック78)。それから重みイン
デックス(i)を検査して、そのインデックスが最大イ
ンデックス(n)をこえるかどうかを判定する(ブロッ
ク80)。
【0020】増加させられた重みインデックス(i)が
最大インデックス(n)をこえないとすると、変化する
オフセットが再検査され(ブロック52)、新しい重み
セットが発生され(ブロック54)、集まりに対する重
みセットカウントが増加させられ(ブロック56)、C
BHIS装置の重みテーブルが初期化され(ブロック5
8)、ベンチマーク発生手順が呼出され(ブロック6
0)、見出された戻る新しい最低の累積されたコスト標
識(NLAC_FND)が検査され(ブロック62)、
符号変数(SIGN)が再計算され(ブロック66)、
かつ再検査され(ブロック68)、サイズ変数(SIZ
E)が再計算され(ブロック70)、かつ再検査され
(ブロック72)、大きさ変数(MAG)が再計算され
(ブロック74)、かつ再検査され(ブロック76)、
重みインデックス(i)が再び増加させられ(ブロック
78)、かつ再検査される(ブロック80)。重みイン
デックス(i)が最大インデックス(n)より大きいと
すると、終了条件標識(TERM_CND)が2へセッ
トされ(ブロック82)、第1のやり方による重みセッ
ト発生が終わらされる。
【0021】本発明の装置の好適な実施例においては、
最大サイズ(MAX_SIZE)は6である。すなわ
ち、サイズ変数(SIZE)は値1,3および6の間で
変化する。大きさ変数(MAG)に対する幾何学的乗数
は10であり、最大の大きさ(MAX_MAG)は10
00である。すなわち、大きさ変数(MAG)は値1,
10,100および1000の間で変化する。
【0022】次に、重み発生手順により第2のやり方の
下である集まりの以後の相互に関連づけられた重みセッ
トの発生を示すブロック図が示されている図5aを参照
する。終わり重みインデックスに設けられている中間の
先行する重みセットの重みへ、第1のやり方の終わりオ
フセットを加えることにより、新しい重みセットが発生
される。この新しい重みセットの発生後に、集まりに対
する重みセットカウント(WS_COUNT)が増加さ
せられ(ブロック86)、CBHIS装置の重みテーブ
ルが新たに発生された重みセットにより初期化され(ブ
ロック88)、ベンチマーク90をCBHIS装置へ供
給するためにベンチマーク発生手順が呼出される(ブロ
ック90)。これらの動作は、第1のやり方で発生され
る最初の重みセットおよび以後の重みセットについて先
に述べたのと同様である。
【0023】同様に、呼出しのサービス後に、ベンチマ
ーク発生手順により見出された新しい累算されたコスト
標識(NLAC_FND)が戻される。その標識(NL
AC_FND)を検査して、その集まりに対する新しい
累算されたコストが見つかったかどうかを判定する(ブ
ロック92)。その標識(NLAC_FND)が「YE
S」であると、新しい重みセットが発生され(ブロック
84)、その集まりに対する重みセットカウント(WS
_COUNT)が増加させられ(ブロック86)、CB
HISの重みテーブルが初期化され(ブロック88)、
ベンチマーク発生手順が呼出され(ブロック90)る。
この動作は、第1のやり方で発生された最初の重みセッ
トと以後の重みセットについて先に説明したのと同じで
ある。さもないと、第2のやり方の下における重みセッ
トの発生が終わらされる。
【0024】次に、順序づけられている重みに相互に関
連づけられている重みセットの別の集まりを発生するか
どうかについての、重み発生手順による決定を示すブロ
ック図が示されている図5bを参照する。その決定は、
最低の累算させられたコストの最低がいくつかの集まり
にわたってほぼ不変のままで維持されているかどうかを
判定することにより行われる。(ブロック91〜9
3)。判定を行うため(すなわち、機能コードLLA
C)にベンチマーク発生手順が呼出される(ブロック9
1)。現在の集まりカウント(CL_COUNT)も呼
出しとともにベンチマーク発生手順91へ供給される。
見出された最低の累算されたコストの最低の標識(LL
AC_FND)が検査され(ブロック93)、その時に
ベンチマーク発生手順から戻る。見出された最低の累算
されたコストの最低の標識(LLAC_FND)が「Y
ES」の設定を有するものとすると、重み発生手順が終
わらされる。その他の場合には、重み発生手順は前記の
ように別の集まりを発生する。
【0025】図1を再び参照して、ベンチマーク発生手
順18は各重みセットに対する同一のベンチマークを発
生するためのものである。同一のベンチマークは複数の
核を有する。各核は少なくとも一つの命令ブロックを含
む。特定のパイプラインプロセッサにより実行される広
いプログラム範囲を表わすためにベンチマークは良く丸
めることが好ましい。また、ベンチマークはコンパクト
であって、迅速に組立てる。たとえば、ベンチマークの
一例は、複数の比較的小さい性能感知核と、24個のリ
バーモアフォートラン核とを有する。24個の比較的小
さい性能感知核の例が付録Aに含まれている。リバーモ
アフォートラン核の詳細については、マクマホン(Ma
chMahon,F.H.)著「リバーモア・フォート
ラン核:数値性能範囲のコンピュータテスト(The
Livermore FORTRAN Kernel
s:A Computer Test of the
Numerical Performance Ran
ge)」、UCRL−53745、ローレンス・リバー
モア国立研究所(Lawrence Livermor
e National Laboratory),19
86年12月を参照されたい。
【0026】次に、ベンチマーク発生手順の動作の流れ
を示すブロック図が示されている図6を参照する。前記
のように、ベンチマーク発生手順は重み発生手順より呼
出される。ベンチマーク発生手順は2種類の呼出しを受
ける。第1の種類の呼出しは、CBHIS装置の重みテ
ーブルが新しい重みセットにより初期化された後で、ベ
ンチマーク発生手順が呼出された時に受けられる。第2
の種類の呼出しは、ある集まりのための重みセット発生
が終わらされた後で、ベンチマーク発生手順が呼出され
る。呼出しを受けると、呼出しの種類が決定される(ブ
ロック94)。呼出しが第1の種類(すなわち、関数コ
ードIB)であると、第1の核の第1の命令ブロックを
検索し、CBHIS装置へ入力として送るためにベンチ
マークデータベースがアクセスされる(ブロック9
8)。命令ブロックが処理されたことの確認がCBHI
S装置から受けられると、CBHIS装置により計算さ
れたコストを累算するためにコスト累算手順が呼出され
る(すなわち、関数コードACC)(ブロック10
0)。それから、まだ命令ブロックがあるかどうかを判
定するためにベンチマークデータベースがアクセスされ
る(ブロック104)。
【0027】まだ命令ブロックがあるとすると、次の命
令ブロックが送られ(ブロック98)、前記したように
累算手順が再び呼出される(ブロック100)。核の命
令ブロックが全て送られるとすると、まだ核108があ
るかどうかを判定するためにベンチマークデータベース
がアクセスされる。まだ核があるとすると、核が取り扱
われるまで、命令ブロックの送り(ブロック98)とコ
スト累算手順の呼出し(ブロック100と)、付加命令
ブロックの検査(ブロック104)とが反復される。全
ての核が取り扱われた後で、集まりに対する新しい最低
の累算されたコストが見出されるかどうかを判定するた
めに、コスト累算手順が呼出される(ブロック11
0)。集まりに対する現在の重みセットカウント(WS
_COUNT)も供給される(ブロック110)。呼出
しの後で、新しい最低の累算されたコストファンド標識
(NLAC_FND)がコスト累算手順により戻され
る。コスト累算手順から戻ると、ベンチマーク発生手順
が見出された新しい最低の累算されたコスト標識(NL
AC_FND)をそれの呼出し側である重み発生手順へ
戻す(ブロック112)。
【0028】呼出しが第2の種類である(すなわち、関
数コードLLAC)とすると、見出された最低の累算さ
れたコストの最低のコスト標識(LLAC_FND)
が、呼出しのサービス後にコスト累算手順により戻され
る。(ブロック114)。コスト累算手順から戻ると、
ベンチマーク発生手順は見出された最低の累算されたコ
ストの最低のコスト標識(LLAC_FND)をそれの
呼出し側すなわち重み発生手順へ戻す(ブロック11
6)。
【0029】図1を再び参照して、コスト累算手順20
は、ベンチマークの核の各命令ブロックに対してかかる
コストを累算する。かかるコストは、重み発生手順16
により初期化された重みセットを用いてCBHISによ
り計算される。コストは複数のコストヒューリスティッ
クの重みづけられた和である。コストヒューリスティッ
クは資源依存コスト,データ依存コスト,依存待ちコス
ト,依存サイクルコスト,浮動小数点率コスト,記憶率
コスト,及び浮動小数点列コストを含む。さらに、コス
トヒューリスティックはプロセッサモデルによりモデル
化される。コストヒューリスティックの詳細は同時出願
の明細書を参照されたい。
【0030】コスト累算手順の動作流れを示す図7を参
照すると、コスト累算手順は前述のようにベンチマーク
発生手順によって呼び出される。コスト累算手順は3種
類の呼出しを受ける。第1の種類の呼出しは、CBHI
S装置が命令ブロックを処理した後で越すと累算手順が
呼出される時に、受けられる。第2の種類の呼出しは、
ベンチマークに対する全ての命令ブロックが処理された
後で、コスト累算手順が呼出された時に、受けられる。
第3の種類の呼出しは、集まりに対する重みセット発生
が終わった後で、コスト累算手順が呼出された時に、受
けられる。
【0031】呼出しを受けると、その呼出しの種類が判
定される(ブロック118,126)。呼出しが第1の
種類(すなわち、関数コードACC)であると、命令ブ
ロックについてかかるコストを検索するためにCBHI
S装置のコストテーブルがアクセスされ(ブロック12
0)、検索されたコストが累算される(ブロック12
2)。それから、コスト累算手順がそれの呼出し側であ
るベンチマークの発生手順へ戻る(ブロック124)。
CBHISのコストテーブルについての詳細は前記未決
の米国特許出願を参照されたい。
【0032】呼出しが第2の種類(すなわち、関数コー
ドLAC)であると、集まりに対する新しい最低の累算
されたコストが見出されるかどうかを判定するために、
コスト評価手順が呼出される(ブロック128)。その
集まりに対する現在の重みセットカウント(WS_CO
UNT)も呼出しとともに供給される(ブロック12
8)。呼出しをサービスした後で、コスト評価手順は見
出された新しい最低の評価されたコスト標識(NLAC
_FND)を戻す。コスト評価手順から戻ると、コスト
評価手順は見出された新しい最低の累算されたコスト標
識(NLAC_FND)をそれの呼出し側であるベンチ
マーク発生手順へ戻す。
【0033】呼出しが第3の種類(すなわち、関数コー
ドLLAC)であるとすると、最低の累算されたコスト
の最低のコストが見出されるかどうかを判定するために
コスト評価手順が呼出される(ブロック132)。現在
の集まりカウント(CL_COUNT)も呼出し132
とともに供給される。呼出しをサービスした後で、コス
ト評価手順は見出された最低の累算されたコストの最低
の標識(LLAC_FND)を戻す。コスト評価手順か
ら戻ると、コスト累算手順が見出された最低の累算され
たコストの最低の標識(LLAC_FND)をそれの呼
出し側であるベンチマーク発生手順へ戻す(ブロック1
34)。
【0034】図1を再び参照すると、コスト評価手順2
2は、最低の累算されたコストと、集まりの最適な重み
セットとを決定するために、累算されたコストを評価す
るためのものである。コスト評価手順22は、最低の累
算されたコストの最低のものが、いくつかの集まりにわ
たってほぼ不変のまま維持されるかどうかを判定するた
めに、集まりの最低の累算されたものを評価するための
ものである。最低の累算されたコストの最低のものがほ
ぼ不変のまま維持されるかどうかを判定するまで、変更
マージン(CHG_MGN)が用いられる。希望の確度
と、利用できるコンピュータ資源とに従って変更マージ
ン(CHG_MGN)を変えることができる。同様に、
最低の累算されたコストの最低のものが十分な数の集ま
りにわたってほぼ不変のまま維持されるかどうかを判定
するために、最大不変更カウント(MAX_UNCH
G)が用いられる。この最大不変更カウント(MAX_
UNCHG)を希望の確度と利用できるコンピュータ資
源に従って変えることができる。
【0035】次に、コスト評価手順の動作の流れを示す
ブロック図が示されている図8を参照する。コスト累算
手順によりコスト評価手順が呼出される。コスト評価手
順は2種類の呼出しを受ける。第1の種類の呼出しは、
集まりの一つの重みセットに対するベンチマークがCB
HIS装置により処理された後で、コスト評価手順が呼
出された時に受けられる。第2の種類の呼出しは、集ま
りに対する全てのベンチマークがCBHISにより処理
された後で、コスト評価手順が呼出された時に、受けら
れる。
【0036】呼出しが第1の種類(すなわち、関数コー
ドLAC)であると、その呼出しが、ある集まりに対す
るその種類の呼出しの最初の呼出しであるかどうかにつ
いて判定される(ブロック138)。この判定は、受け
た現在の重みセットカウントを調べることにより行われ
る。呼出しが集まりに対するその種類の呼出しの最初の
呼出しであれば、最低の累算されたコスト(LW_AC
C_COST)は受けた累算されたコスト(ACC_C
OST)へセットされる(ブロック140)。見出され
た新しい最低の累算されたコスト標識(NLAC_FN
D)は「YES」へセットされ(ブロック142)、コ
スト評価手順の呼出し側であるコスト累算手順へ戻され
る(ブロック144)。呼出しが集まりに対するその種
類の呼出しの最初の呼出しでないと、新しい最低の累算
されたコストが見出されたかどうかが判定される(ブロ
ック146)。
【0037】新しい最低の累算されたコストが見出され
たとすると、最低の累算されたコスト(LW_ACC_
COST)が、受けられた累算されたコスト(ACC_
COST)へセットされる。見出された新しい累算され
たコスト標識(NLAC_FND)が前記のように「Y
ES」へセットされる。新しい最低の累算されたコスト
が見出されないとすると、見出された新しい最低の累算
されたコスト標識(NLAC_FND)が「NO」へセ
ットされる(ブロック148)。いずれの場合にも、見
出された新しい最低の累算されたコスト標識(NLAC
_FND)がコスト評価手順の呼出し側であるコスト評
価手順へ戻される。
【0038】呼出しが第2の種類の呼出し(すなわち、
関数コードLLAC)であれば、その呼出しがその種類
の呼出しの最初の呼出しかどうかが判定される(ブロッ
ク150)。この判定は、受けられた現在の集まりカウ
ント(CL_COUNT)を調べることにより行われる
(ブロック150)。その呼出しが最初の呼出しであれ
ば、最低の累算されたコストの最低のもの(LW_LW
_ACC_COST)が受けた最低の累算されたコスト
(LW_ACC_COST)へセットされる。見出され
た最低の累算されたコストの最低のものの標識(LLA
C_FND)が「NO」へセットされ(ブロック15
4)、コスト評価手順の呼出し側であるコスト累算手順
へ戻される。(ブロック156)。呼出しがその種類の
呼出しの最初の呼出しでなければ、最低の累算されたコ
ストの新しい最低が見出されたかどうかが判定される
(ブロック158)。
【0039】最低の累算されたコストの新しい最低が見
出されたかどうかの判定は、受けられた最低の累積され
たコスト(LW_ACC_COST)が、最低の累算さ
れたコスト(LW_LW_ACC_COST)の現在の
最低より十分に低い、すなわち、少なくとも所定の変化
マージン(CHG_MGN)だけ低いかどうかを評価す
ることにより行われる。最低の累算されたコストの新し
い最低が見出されたとすると、変化させられていないカ
ウント(UC_COUNT)は零リセットされる(ブロ
ック160)。最低の累算されたコストの最低(LW_
LW_ACC_COST)が更新され(ブロック15
2)、見出された最低の累算されたコスト標識(LLA
C_FND)がセットされ(ブロック154)、戻され
る(ブロック156)。最低の累算されたコストの新し
い最低が見出されないとすると、受けられた、最低の累
算されたコスト(LW_ACC_COST)が、最低の
累算されたコストの現在の最低(LW_LW_ACC_
COST)より少なくとも低いかどうかが判定される
(ブロック162)。
【0040】受けられた最低の累算されたコスト(LW
_ACC_COST)が、最低の累算されたコストの現
在の最低(LW_LW_ACC_COST)より少なく
とも低いとすると、最低の累算されたコストの最低(L
W_LW_ACC_COST)が前記のように更新され
る(ブロック164)。受けられた最低の累算されたコ
スト(LW_ACC_COST)が最低の累算されたコ
ストの現在の最低(LW_LW_ACC_COST)よ
り少なくとも低いか、低くないとしても、変更されてい
ないカウント(UC _COUNT)は増大させられ
(ブロック166)、最低の累算させられたコストの最
低が十分な数の集まりに対して不変のまま維持されるか
どうかを判定するために検査される(ブロック17
0)。
【0041】十分な数の集まりに対して、最低の累算さ
れたコストの最低のものが不変に維持されるかどうかの
判定は、最大不変カウント(MAX_UNCHG)に対
して不変カウント(UC COUNT)を評価すること
により行われる。十分な数の集まりに対して、最低の累
算されたコストの最低のものが不変に維持させられると
すると、見出された最低の累算されたコストの最低のも
のの標識は「YES」へセットされ、(ブロック17
2)、そうでなければ「NO」へセットされる(ブロッ
ク154)。いずれの場合でも、見出された最低の累算
されたコストの最低のものの標識(LLAC_FND)
はコスト評価手順の呼出し側であるコスト累算手順へ戻
される(ブロック158)。
【図面の簡単な説明】
【図1】本発明の装置の好適な実施例のブロック図を示
す。
【図2】本発明の装置の重み発生手順の動作の流れの概
観を示すブロック図である。
【図3】本発明の装置の重み発生手順の動作の流れの詳
細を示すブロック図である。
【図4】本発明の装置の重み発生手順の動作の流れの詳
細を示すブロック図である。
【図5】本発明の装置の重み発生手順の動作の流れの詳
細を示すブロック図である。
【図6】本発明の装置のベンチマーク発生手順の動作の
流れを示すブロック図である。
【図7】本発明の装置のコスト累算手順の動作の流れを
示すブロック図である。
【図8】本発明の装置のコスト評価手順の動作の流れを
示すブロック図である。
【符号の説明】
12 CPU 14 メモリ 24 大容量記憶装置
フロントページの続き (73)特許権者 591064003 901 SAN ANTONIO ROA D PALO ALTO,CA 94303, U.S.A. (72)発明者 マイケル・ジェイ・ウッダード アメリカ合衆国 94536 カリフォルニ ア州・フレモント・パセオ パードレ パークウェイ ナンバー25・38228 (56)参考文献 特開 平2−176938(JP,A) 特開 平6−208462(JP,A) 情報処理学会第40回(平成2年前期) 全国大会講演論文集,p.655−656 T.GROSS,”Postpass Code Optimization of Pipeline Const rains”,ACM Transac tions on Programmi ng Languages and S ystems,1983年7月,Vol5, No.3,p.422−448 (58)調査した分野(Int.Cl.7,DB名) G06F 9/45 G06F 9/38

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 プログラムの命令を並行かつ重複的に実
    行するパイプラインプロセッサと、前記命令をコンパイ
    ルして発生するコンパイラとを含むコンピュータ・シス
    テムにあって、前記コンパイラには、前記命令を前記パ
    イプラインプロセッサでの実行のためにスケジューリン
    グをするスケジューラがあり、このスケジューラが、n
    個の重みづけられたコストを基にするヒューリスティッ
    クを用いて前記命令のスケジューリングを行うようにさ
    れている、コンピュータ・システムにおいて、前記n個
    の重みづけられたコストを基にするヒューリスティック
    に重みを前記スケジューラで付けるためのn個の重みの
    セットを選択する方法であってa) 最初のn個の重みのトライアル用セットを任意に
    発生させ、任意に発生された前記最初のn個の重みのト
    ライアル用セットで前記スケジューラを初期化し、複数
    のベンチマーク・プログラムを発生させ、前記ベンチマ
    ーク・プログラムを前記コンパイラを用いてコンパイル
    し、前記ベンチマーク・プログラムについて前記スケジ
    ューラによって決定されたスケジューリング・コストを
    累算し、前記ベンチマーク・プログラムの最低の累算ス
    ケジューリング・コストを前記累算されたスケジューリ
    ング・コストに初期化し、前記最初のn個の重みのトラ
    イアル用セットを前記スケジューラのためのn個の重み
    の選択されたセットとして選択しb) 追加のn個の重みの第1の複数のトライアル用セ
    ットを第1のやり方で順次に一度に1セットづつ発生さ
    せ、前記追加のn個の重みの第1の複数のトライアル用
    セットのそれぞれは、直前のn個の重みのトライアル用
    セットを系統的に変更することによって、一度に一つの
    重みずつ発生され、そのように一つ発生された後でその
    発生された追加のn個の重みのトライアル用セットでも
    って前記スケジューラを再初期化させ、その再初期化の
    後毎に前記複数のベンチマーク・プログラムを再発生さ
    せ、その再発生の後毎に再発生させた前記ベンチマーク
    ・プログラムを前記コンパイラを用いて再コンパイル
    し、再発生させた前記ベンチマーク・プログラムについ
    て前記スケジューラによって決定されたスケジューリン
    グ・コストを再累算し、その再累算の後毎に、再累算さ
    れたスケジューリング ・コストを前記最低の累算スケジ
    ューリング・コストと比較して新たな最低の累算スケジ
    ューリング・コストが見い出せるか否かを決定し、新た
    な最低の累算スケジューリング・コストが見い出せた
    ら、直ちに前記追加のn個の重みのトライアル用セット
    の発生を終了させ、前記最低の累算スケジューリング・
    コストを当該新たな最低の累算スケジューリング・コス
    トに等しくなるよう更新させ、当該新たな最低の累算ス
    ケジューリング・コストを生じさせたn個の重みのトラ
    イアル用セットをそれまで選択されていたn個の重みの
    選択されたセットに代えて前記スケジューラのためのn
    個の重みの選択されたセットとして選択しc) 追加のn個の重みの第2の複数のトライアル用セ
    ットを第2のやり方で順次に一度に1セットづつ発生さ
    せ、前記第2のやり方で発生される前記追加のn個の重
    みのトライアル用セットのそれぞれは、第1のやり方で
    の系統的な変更により発生された最後のセットから初め
    て直前のn個の重みのトライアル用セットを系統的に変
    更することによって、一度に一つずつ発生され、そのよ
    うに一つ発生された後でその発生された追加のn個の重
    みのトライアル用セットでもって前記スケジューラを再
    初期化させ、その再初期化の後毎に前記複数のベンチマ
    ーク・プログラムを再発生させ、その再発生の後毎に再
    発生させた前記ベンチマーク・プログラムを前記コンパ
    イラを用いて再コンパイルし、再発生させた前記ベンチ
    マーク・プログラムについて前記スケジューラによって
    決定されたスケジューリング・コストを再累算し、その
    再累算の後毎に、再累算されたスケジューリング・コス
    トを前記最低の累算スケジューリング・コストと比較し
    て新たな最低の累算スケジューリング・コストが見い出
    せるか否かを決定し、新たな最低の累算スケジューリン
    グ・コストが見い出せなければ、直ちに前記追加のn個
    の重みのトライアル用セットの第2のやり方による発生
    を終了させ、少なくとも1つの新たな最低の累算スケジ
    ューリング・コストが見い出せたら、前記最低の累算ス
    ケジューリング・コストを最後の新たな最低の累算スケ
    ジューリング・コストに等しくなるよう更新させ、前記
    最後の新たな最低の累算スケジューリング・コストを生
    じさせたn個の重みのトライアル用セットをそれまで選
    択されていたn個の重みの選択されたセットに代えて前
    記スケジューラのためのn個の重みの選択されたセット
    として選択する ことを特徴とする 方法。
  2. 【請求項2】 プログラムの命令を並行かつ重複的に実
    行するパイプラインプロセッサと、前記命令をコンパイ
    ルして発生するコンパイラとを含むコンピュータ・シス
    テムにあって、前記コンパイラには、前記命令を前記パ
    イプラインプロセッサでの実行のためにスケジューリン
    グをするスケジューラがあり、このスケジューラが、n
    個の重みづけられたコストを基にするヒューリスティッ
    クを用いて前記命令のスケジューリングを行うようにさ
    れており、前記n個の重みづけられたコストを基にする
    ヒューリスティックに重みを前記スケジューラで付ける
    ためのn個の重みのセットを選択する装置であってa) 最初のn個の重みのトライアル用セットを任意に
    発生させる第1のトライアル用重み発生手段を備えb) 前記第1のトライアル用重み発生手段に結合され
    ていて、追加のn個の重みの第1の複数のトライアル用
    セットを第1のやり方で順次に一度に1セットづつ発生
    させる第2のトライアル用セット発生手段を備え、前記
    追加のn個の重みの第1の複数のトライアル用セットの
    それぞれは、直前のn個の重みのトライアル用セットを
    系統的に変更することによって、一度に一つの重みずつ
    発生されc) 前記第2のトライアル用重み発生手段に結合され
    ていて、追加のn個の重みの第2の複数のトライアル用
    セットを第2のやり方で順次に一度に1セットづつ発生
    させる第3のトライアル用重み発生手段を備え、前記第
    2のやり方で発生される前記追加のn個の重みのトライ
    アル用セットのそれぞれは、第1のやり方での系統的な
    変更により発生された最後のセットから初めて直前のn
    個の重みのトライアル用セットを系統的に変更すること
    によって発生され、 d) 前記第1,第2および第3のトライアル用重み発
    生手段、並びに、前記スケジューラに結合されていて、
    前記スケジューラを前記任意に発生された前記最初のn
    個の重みのトライアル用セットを初期化し、前記スケジ
    ューラを、前記第1及び第2のやり方で発生された追加
    のn個の重みの第1及び第2の複数のトライアル用セッ
    トそれぞれの発生後に当該トライアル用セットでもって
    前記スケジューラの再初期化をそれぞれ行う初期化手段
    を備えe) 前記初期化手段および前記コンパイラに結合され
    ていて、前記初期化の後および前記スケジューラのそれ
    ぞれの再初期化の後で、前記コンパイラによりコンパイ
    ルされる複数のベンチマーク・プログラムの同じセット
    を発生するベンチマーク発生手段を備えf) 前記コンパイラに結合され、前記ベンチマーク・
    プログラムについてそれぞれのコンパイルの間に前記ス
    ケジューラによって決定されたスケジューリング・コス
    トを累算するコスト累算手段を備えg) 前記第1,第2および第3のトライアル用重み発
    生手段、並びに、前記コスト累算手段に結合されている
    更新手段であって、前記最初のn個の重みのトライアル
    用セットに応じたコンパイルの後で、前記ベンチマーク
    ・プログラムの最低の累算スケジューリング・コストを
    前記累算されたスケジューリング・コストに最初に初期
    化し、前記追加のn個の重みの第1の複数のトライアル
    用セットに応じたコンパイルを通して新たな最低の累算
    スケジューリング・コストが見い出せたら、前記最低の
    累算スケジューリング・コストを当該新たな最低の累算
    スケジューリング・コストに等しくなるよう更新させ、
    前記追加のn個の重みの第2の複数のトライアル用セッ
    トに応じたコンパイルを通して少なくとも1つの新たな
    最低の累算スケジューリング・コストが見い出せたら、
    前記最低の累算スケジューリング・コストを最後に見つ
    けた新たな最低の累算スケジューリング・コストに等し
    く更新させるよう構成された更新手段を備えh) 前記コスト累算手段および前記更新手段に結合さ
    れている比較手段であって、前記追加のn個の重みの第
    1の複数のトライアル用セットに応じたコンパイルそれ
    ぞれの後で、前記ベンチマーク・プログラムの累算され
    たスケジューリング・コストを前記最低の累算スケジュ
    ーリング・コストと比較して新たな最低の累算スケジュ
    ーリング・コストが見い出せるかを決定し、そして、前
    記追加のn個の重みの第2の複数のトライアル用セット
    に応じたコンパイルそれぞれの後で、前記ベンチマーク
    ・プログラムの累算されたスケジューリング・コストを
    前記最低の累算スケジューリング・コストと比較して新
    たな最低の累算スケジューリング・コストがないことが
    見いだせるかを決定するよう構成された比較手段を備
    i) 前記第2および第3のトライアル用重み発生手
    段、並びに、前記比較手段に結合されている終了手段で
    あって、第1のやり方での前記追加のn個の重みのトラ
    イアル用セットの発生を、新たな最低の累算スケジュー
    リング・コストが見い出せたら直ちに終了させ、そし
    て、前記追加のn個の重みのトライアル用セットの第2
    のやり方での発生を、新たな最低の累算スケジューリン
    グ・コストが見い出せなければ直ちに終了させるよう構
    成された終了手段を備えj) 前記第1,第2および第3のトライアル用重み発
    生手段、並びに、前記比較手段に結合されている選択手
    段であって、第1のやり方での追加のn個の重みの第1
    の複数のトライアル用セットに関して、新たな最低の累
    算スケジューリング・コストを生じさせたn個の重みの
    トライアル用セットをそれまで選択されていたn個の重
    みの選択されたセットに代えて前記スケジューラのため
    のn個の重みの選択されたセットとして選択し、そし
    て、第2のやり方での追加のn個の重みの第2の複数の
    トライアル用セットに関して、新たな最低の累算スケジ
    ューリング・コストを生じさせたn個の重みのトライア
    ル用セットをそれまで選択されていたn個の重みの選択
    されたセットに代えて前記スケジューラのためのn個の
    重みの選択されたセットとして選択するよう構成された
    選択手段を備えていることを特徴とする 装置。
JP08661492A 1991-03-11 1992-03-11 パイプラインプロセッサ用のコストを基にするヒューリスティック命令スケジューリングを最適にする方法および装置 Expired - Fee Related JP3213765B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US66754891A 1991-03-11 1991-03-11
US667548 1991-03-11

Publications (2)

Publication Number Publication Date
JPH06180648A JPH06180648A (ja) 1994-06-28
JP3213765B2 true JP3213765B2 (ja) 2001-10-02

Family

ID=24678657

Family Applications (1)

Application Number Title Priority Date Filing Date
JP08661492A Expired - Fee Related JP3213765B2 (ja) 1991-03-11 1992-03-11 パイプラインプロセッサ用のコストを基にするヒューリスティック命令スケジューリングを最適にする方法および装置

Country Status (5)

Country Link
US (1) US5367687A (ja)
EP (1) EP0503928B1 (ja)
JP (1) JP3213765B2 (ja)
KR (1) KR0176263B1 (ja)
DE (1) DE69229517T2 (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619695A (en) * 1994-02-03 1997-04-08 Lockheed Martin Corporation Method and apparatus for scheduling resources
US5687382A (en) * 1995-06-07 1997-11-11 Hitachi America, Ltd. High speed, reduced power memory system implemented according to access frequency
EP0755003A2 (en) * 1995-07-19 1997-01-22 Sun Microsystems, Inc. Method and apparatus for reordering components of computer programs
US5664193A (en) * 1995-11-17 1997-09-02 Sun Microsystems, Inc. Method and apparatus for automatic selection of the load latency to be used in modulo scheduling in an optimizing compiler
US5809308A (en) * 1995-11-17 1998-09-15 Sun Microsystems, Inc. Method and apparatus for efficient determination of an RMII vector for modulo scheduled loops in an optimizing compiler
US5913064A (en) * 1997-06-24 1999-06-15 Sun Microsystems, Inc. Method for generating instructions for an object-oriented processor
US6594824B1 (en) * 1999-02-17 2003-07-15 Elbrus International Limited Profile driven code motion and scheduling
US6463521B1 (en) * 1999-06-23 2002-10-08 Sun Microsystems, Inc. Opcode numbering for meta-data encoding
US6691307B2 (en) 1999-08-03 2004-02-10 Sun Microsystems, Inc. Interpreter optimization for native endianness
US7010788B1 (en) 2000-05-19 2006-03-07 Hewlett-Packard Development Company, L.P. System for computing the optimal static schedule using the stored task execution costs with recent schedule execution costs
JP2002116915A (ja) * 2000-10-10 2002-04-19 Fujitsu Ltd コンパイラ並列化スケジュール方法
US7653710B2 (en) 2002-06-25 2010-01-26 Qst Holdings, Llc. Hardware task manager
US6577678B2 (en) 2001-05-08 2003-06-10 Quicksilver Technology Method and system for reconfigurable channel coding
US7215701B2 (en) 2001-12-12 2007-05-08 Sharad Sambhwani Low I/O bandwidth method and system for implementing detection and identification of scrambling codes
US20030108012A1 (en) * 2001-12-12 2003-06-12 Quicksilver Technology, Inc. Method and system for detecting and identifying scrambling codes
US7028167B2 (en) * 2002-03-04 2006-04-11 Hewlett-Packard Development Company, L.P. Core parallel execution with different optimization characteristics to decrease dynamic execution path
US7328414B1 (en) 2003-05-13 2008-02-05 Qst Holdings, Llc Method and system for creating and programming an adaptive computing engine
US7093255B1 (en) * 2002-05-31 2006-08-15 Quicksilver Technology, Inc. Method for estimating cost when placing operations within a modulo scheduler when scheduling for processors with a large number of function units or reconfigurable data paths
US8108656B2 (en) 2002-08-29 2012-01-31 Qst Holdings, Llc Task definition for specifying resource requirements
US7937591B1 (en) 2002-10-25 2011-05-03 Qst Holdings, Llc Method and system for providing a device which can be adapted on an ongoing basis
US8276135B2 (en) * 2002-11-07 2012-09-25 Qst Holdings Llc Profiling of software and circuit designs utilizing data operation analyses
US7546598B2 (en) * 2003-09-03 2009-06-09 Sap Aktiengesellschaft Measuring software system performance using benchmarks
US7353499B2 (en) 2003-09-25 2008-04-01 Sun Microsystems, Inc. Multiple instruction dispatch tables for application program obfuscation
US8220058B2 (en) 2003-09-25 2012-07-10 Oracle America, Inc. Rendering and encryption engine for application program obfuscation
US7363620B2 (en) * 2003-09-25 2008-04-22 Sun Microsystems, Inc. Non-linear execution of application program instructions for application program obfuscation
US7415618B2 (en) * 2003-09-25 2008-08-19 Sun Microsystems, Inc. Permutation of opcode values for application program obfuscation
US7424620B2 (en) * 2003-09-25 2008-09-09 Sun Microsystems, Inc. Interleaved data and instruction streams for application program obfuscation
US20050069138A1 (en) * 2003-09-25 2005-03-31 Sun Microsystems, Inc., A Delaware Corporation Application program obfuscation
US7493611B2 (en) * 2004-08-30 2009-02-17 International Business Machines Corporation Pinning internal slack nodes to improve instruction scheduling
US20080182021A1 (en) * 2007-01-31 2008-07-31 Simka Harsono S Continuous ultra-thin copper film formed using a low thermal budget
US8042100B2 (en) * 2007-08-27 2011-10-18 International Business Machines Corporation Methods, systems, and computer products for evaluating robustness of a list scheduling framework
JP5990466B2 (ja) 2010-01-21 2016-09-14 スビラル・インコーポレーテッド ストリームに基づく演算を実装するための汎用複数コアシステムのための方法および装置
GB2575482B (en) * 2018-07-12 2023-04-12 Johnson Electric Int Ag Actuator system with reprogrammable memory
CN116069513B (zh) * 2023-04-04 2023-06-23 上海钐昆网络科技有限公司 成本确定方法、装置、电子设备及存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3611306A (en) * 1969-02-05 1971-10-05 Burroughs Corp Mechanism to control the sequencing of partially ordered instructions in a parallel data processing system
US4231106A (en) * 1978-07-13 1980-10-28 Sperry Rand Corporation Performance monitor apparatus and method
US4511961A (en) * 1982-04-16 1985-04-16 Ncr Corporation Apparatus for measuring program execution
US4466061A (en) * 1982-06-08 1984-08-14 Burroughs Corporation Concurrent processing elements for using dependency free code
JPS593651A (ja) * 1982-06-30 1984-01-10 Fujitsu Ltd フア−ムウエアによる性能測定システム
JPS6024647A (ja) * 1983-07-20 1985-02-07 Hitachi Ltd システムの自律化資源管理方式
US4845615A (en) * 1984-04-30 1989-07-04 Hewlett-Packard Company Software performance analyzer
US5103394A (en) * 1984-04-30 1992-04-07 Hewlett-Packard Company Software performance analyzer
US4847755A (en) * 1985-10-31 1989-07-11 Mcc Development, Ltd. Parallel processing method and apparatus for increasing processing throughout by parallel processing low level instructions having natural concurrencies
US5127104A (en) * 1986-12-29 1992-06-30 Dataflow Computer Corporation Method and product involving translation and execution of programs by automatic partitioning and data structure allocation

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
T.GROSS,"Postpass Code Optimization of Pipeline Constrains",ACM Transactions on Programming Languages and Systems,1983年7月,Vol5,No.3,p.422−448
情報処理学会第40回(平成2年前期)全国大会講演論文集,p.655−656

Also Published As

Publication number Publication date
EP0503928A2 (en) 1992-09-16
US5367687A (en) 1994-11-22
KR920018576A (ko) 1992-10-22
EP0503928A3 (en) 1993-08-25
DE69229517T2 (de) 2000-05-04
KR0176263B1 (ko) 1999-05-15
DE69229517D1 (de) 1999-08-12
EP0503928B1 (en) 1999-07-07
JPH06180648A (ja) 1994-06-28

Similar Documents

Publication Publication Date Title
JP3213765B2 (ja) パイプラインプロセッサ用のコストを基にするヒューリスティック命令スケジューリングを最適にする方法および装置
RH Jr Parallel symbolic computing
Leupers Instruction scheduling for clustered VLIW DSPs
Chang et al. Inline function expansion for compiling C programs
Cooper et al. Procedure cloning
US6487715B1 (en) Dynamic code motion optimization and path tracing
Tardieu et al. X10 and APGAS at petascale
US20050044538A1 (en) Interprocedural computing code optimization method and system
White et al. Timing analysis for data and wrap-around fill caches
EP1570349A2 (en) A virtual machine for network processors
Konstantinides et al. Task allocation and scheduling models for multiprocessor digital signal processing
WO2006020001A2 (en) Fast multi-pass partitioning via priority based scheduling
Srinivasa Prasanna et al. Generalised multiprocessor scheduling using optimal control
Narlikar et al. Space-efficient implementation of nested parallelism
Unger Programming languages for computer system simulation
Franklin et al. A general matrix iterative model for dynamic load balancing
Bündgen et al. A fine-grained parallel completion procedure
Roh et al. Generation and quantitative evaluation of dataflow clusters
DeSouza-Batista et al. A sub-optimal assignment of application tasks onto heterogeneous systems
US7689958B1 (en) Partitioning for a massively parallel simulation system
Boyd et al. Modeling computation and communication performance of parallel scientific applications: A case study of the IBM SP2
Liao et al. Tree-based parallel load-balancing methods for solution-adaptive finite element graphs on distributed memory multicomputers
Chaube et al. Effectiveness of a dynamic load balancing library for scientific applications
Jung et al. Two-phase barrier: A synchronization primitive for improving the processor utilization
Suttner Static partitioning with slackness

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees