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

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

Info

Publication number
JPH06208462A
JPH06208462A JP4075608A JP7560892A JPH06208462A JP H06208462 A JPH06208462 A JP H06208462A JP 4075608 A JP4075608 A JP 4075608A JP 7560892 A JP7560892 A JP 7560892A JP H06208462 A JPH06208462 A JP H06208462A
Authority
JP
Japan
Prior art keywords
instruction
cost
procedure
scheduling
free
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.)
Granted
Application number
JP4075608A
Other languages
English (en)
Other versions
JP2720128B2 (ja
Inventor
Gregory Tarsy
グレゴリー・ターシィ
Michael J Woodard
マイケル・ジェイ・ウッダード
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 JPH06208462A publication Critical patent/JPH06208462A/ja
Application granted granted Critical
Publication of JP2720128B2 publication Critical patent/JP2720128B2/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

Landscapes

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

Abstract

(57)【要約】 【目的】 符号の発生後に時間命令スケジューリングを
コンパイルするために、パイプラインプロセッサ用のコ
ストを基にしたヒューリスティック命令スケジューリン
グのための方法および装置を得ることである。 【構成】 この方法および装置は、現在の適当な全ての
自由命令の間の最低合計コストを基にして、命令ブロッ
クの命令を一度に一つずつスケジュールする。現在保持
の適切な各自由命令の合計コストは、複数のコストヒュ
ーリスティックの重みづけられた和を基にして計算され
る。好適な実施例で用いられるコストヒューリスティッ
クは資源依存性コストと、データ依存性コストと、依存
性待ち行列と、依存性サイクルコストと、浮動小数点比
コストと、記憶比コストと、浮動小数点待ち行列コスト
とを有する。また、好適な実施例においては、いくつか
のコストヒューリスティックがプロセッサモデルにより
モデル化される。その結果、命令ブロックの実行時間の
短縮による全体的な効果が向上させられる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータ装置の分
野に関するものである。とくに、本発明はパイプライン
プロセッサ用のコストを基にしたヒューリスティック
(heuristic)命令スケジューリングに関する
ものである。
【0002】
【従来の技術】命令スケジューリングというのは、基本
命令ブロックのための実行時間パイプラインインターロ
ックの数を大幅に減少させることにより、命令の基本ブ
ロックの実行速度を高くする技術のことである。一般
に、基本命令ブロックの実行におけるパイプラインイン
ターロックの数を減少するためには、エージェントおよ
びタイミングにより区別される下記の三つのやり方があ
る。 a.実行中にハードウェアにより、 b.符号化中にプログラマにより、 c.コンパイル中にソフトウェアにより。
【0003】ハードウェアによるやり方は、かなり効果
的ではあるが、費用がかかりすぎる。ハードウェアによ
るやり方は比較的小さい命令ブロックに限られる。ハー
ドウェアによる命令スケジューリングの詳細については
1964年秋期連合コンピュータ会議議事録(Proc
eeding Fall Joint Compute
r Conference)第2部、6巻、1964、
33〜40ページ所載のソーントン(Thornton
J.E.)の論文「コントロール・データ6600に
おける並列動作(Parall Operatiion
in theControl Data 660
0)」、およびアイビーエム・ジャーナル・オブ・リサ
ーチ・アンド・ディベロップメント第11巻、1号、1
967年1月号、25〜33ページ所載のトマスト(T
omasuto R.M.)の「多数の算術装置を利用
するための効率的なアルゴリズム(An Effici
ent Algorithm for Exploit
ing MultipleArithmetic Un
it)」を参照されたい。
【0004】プログラマによるやり方は時間が非常にか
かり、かつ誤りを起こしやすいから、このやり方は一般
的に非実用的である。アセンブリ・プログラマのための
パイプラインインターロックを避けるための符号化指針
についての詳細は、1982年3月にカリホルニア州パ
ロ・アルト(Palo Alto)において開催された
プログラミング言語およびオペレーティング・システム
のためのアーキテクチャ的サポートについてのシンポジ
ウム議事録(Proceeding of the S
ymposium on Architechtura
l Support for Programming
Language and Operating S
ystem)12〜19ページ所載のライマーチック
(Rymarczyk J.W.)の「パイプラインプ
ロセッサ用の符号化指針(Coding Guidel
ines for Pipelined Proces
sors)」を参照されたい。
【0005】インターロックの検出および除去のため
の、とくにコンパイル時における、ソフトウェアのやり
方は、現在では最も実用的で効果的なやり方である。初
期の技術は、マイクロコードのスケジューリングおよび
短縮と、垂直マイクロ命令の正しい順序を水平マイクロ
命令のより短い順序へパッキングすることに集中する傾
向がある。他の技術は符号の発生中または発生後のスケ
ジューリングに集中した。現在まで、符号の発生後にお
けるヒューリスティック命令スケジューリングが他の技
術よりも効果的であることが経験的に証明されている。
種々の技術の考察に関しては、スタンフォード大学、コ
ンピュータ・システム研究所、技術レポート83−25
5(Technical Report,83−255
Computer Systems Lab.,Sta
nford University)1983年12月
号所載のグロス(Gross,T.R.)の論文「パイ
プライン・コンストレイントの符号最適化(Code
Optimizationof Pipeline C
onstraint)」を参照されたい。
【0006】グロスはその論文において、最悪の場合の
複雑さがnn である、デッドロックを避けるために先読
みを用いる発見的スケジューリング技術について述べて
いる。先読みの代わりに依存性グラフ表現および三つの
ヒューリスティックを用いることにより、ギボンズ(G
ibbons)およびマッチニック(Muchnic
k)は最悪の場合の複雑さがn2 と改善された(実際に
は直線的)ヒューリスティックスケジューリング技術を
開発した。候補命令(依存性のない命令)は対となって
分析される。ある候補命令が他の候補命令に対して区別
可能な違いを有するものとすると、重要さの順序に従っ
て調べられる三つのヒューリスティックの一つで、候補
命令がスケジュールされる。三つのヒューリスティック
というのは次の通りである。 a.命令がそれのすぐ後の命令の任意のものでインター
ロックするか、 b.その命令のすぐ後の命令の数、 c.命令から依存性グラフの葉までの最も長い経路まで
の長さ。 ギボンズおよびマッチニックの技術の詳細については、
1986年7月に開催されたコンパイラ構造についての
SIGPLAN 1986年シンポジウムの議事録(S
ymposium of the SIGPLAN ’
86 symposium on compiler
construction)所載のギボンズ(Gibb
ons P.B.)およびマッチニック(Muchni
ck S.S.)の論文「パイプラインアーキテクチャ
のための効率的な命令スケジューリング(Effici
ent InstructionScheduling
for a Pipelined Architec
ture)」を参照されたい。
【0007】ギボンズおよびマッチニックの技術、およ
びいくつかのヒューリスティックが付加されたそれの後
継技術には下記のような少なくとも二つの欠点があるこ
とが見出されている。 a.第2のタイ・ブレーカーを除き、ヒューリスティッ
クの間に限られた相互作用がある、 b.僅かにより重要なヒューリスティックにおける小さ
な違いが僅かに重要性が低いヒューリスティックにおけ
る大きい違いよりまさることがある。
【0008】
【発明が解決しようとする課題】本発明は従来の技術の
諸欠点を解消し、パイプラインプロセッサ用のコストを
基にしたヒューリスティック命令スケジューリングのた
めの改善した方法および装置を提供するものである。
【0009】
【課題を解決するための手段】符号発生後の時間命令ス
ケジューリングをコンパイルすることに特に応用され
る、パイプラインプロセッサ用のコストを基にしたヒュ
ーリスティック命令スケジューリングのための方法およ
び装置について説明する。パイプラインプロセッサ用の
コストを基にした本発明のヒューリスティック命令スケ
ジューリング法は、スケジュールすべき複数の命令を含
む命令ブロックのための命令依存性グラフを構成する過
程と、前記命令依存性グラフを基にして前記命令のため
の自由命令リストを構築する過程と、前記自由命令の最
低合計コストを基にして前記自由命令の一つをスケジュ
ーリングする過程とを備え、前記合計コストを複数のコ
ストヒューリスティックを基にして前記各自由命令につ
いて計算する。また、ある自由命令がスケジュールされ
た後で自由命令リストはリフレッシュされ、リフレッシ
ュされたリストからの自由命令の別の一つがスケジュー
ルされる。命令ブロックの命令が全てスケジュールされ
るまでリフレッシュとスケジューリングは反復される。
【0010】コストヒューリスティックは資源依存性コ
ストと、データ依存性コストと、依存性待ちコストと、
依存性サイクルコストと、浮動小数点比コストと、蓄積
比コストと、浮動小数点待ち行列コストとを含む。ま
た、コストヒューリスティックをプロセッサモデルによ
りモデル化でき、または重みづけでき、あるいはモデル
化と重みづけを行うことができる。パイプラインプロセ
ッサ用のコストを基にしたヒューリスティック命令スケ
ジューリングを行う本発明の装置は、駆動器手段と、こ
の駆動器手段により呼び出され、命令駆動器グラフを構
築するリスト構築手段と、前記駆動器手段により呼び出
され、自由命令リスト構築およびリフレッシュするリス
ト構築手段と、前記駆動器手段により呼び出され、自由
命令の一つをスケジューリングするスケジューリング手
段とを備える。また、本発明の好適な実施例は、コスト
ヒューリスティックをモデル化するためにスケジューリ
ング手段により呼び出されるプロセッサモデルを更に含
む。
【0011】
【実施例】
表記法および用語 以下に行う詳細な説明は、中央処理装置により実行され
るコンピュータメモリ内の手順で主として行う。それら
の手順についての説明は、データ処理技術の専門家が自
己の業績の内容を他の専門家へ最も効果的に伝えるため
に利用される手段である。ここでは手順を、希望の結果
へ導く自己矛盾のない一連のステップと解されたい。そ
れらのステップは物理量を物理的に処理するものであ
る。通常は、それらの量は、格納、転送、組合わせ、比
較およびその他の処理を行うことができる電気信号また
は磁気信号の形をとるが、必ずしもそうする必要はな
い。主として一般的に使用するという理由から、それら
の信号をビット、値、記号、文字、項、数等と呼ぶ方が
時には便利であることが判明している。しかし、それら
の用語および類似の用語の全ては適切な物理量に関係づ
けるべきであり、かつそれらの用語はそれらの量につけ
られる便利なレッテルであるにすぎないことを記憶して
おくべきである。更に、行われる処理は、加算または比
較のような用語でしばしば呼ばれる。それらの処理は人
により行われる精神活動に関連するものである。本発明
の部分を形成するここで説明する処理のいずれにもおけ
るほとんどの場合に、人のそのような能力は必要でな
く、望ましくない。操作は機械による操作である。本発
明の操作を行うために有用な装置には汎用デジタルコン
ピュータおよびその他の類似の装置が含まれる。。あら
ゆる場合に、コンピュータを動作させる方法と、処理方
法自体の違いを記憶しておくべきである。本発明は、電
気信号その他の(たとえば、機械的、化学的および物理
的)信号を処理して、他の希望の物理的信号を発生させ
るために、コンピュータを動作させる方法の過程に関す
るものである。本発明はそれらの操作を行う装置にも関
するものである。この装置は求められている目的のため
にとくに製作でき、あるいは、コンピュータに格納され
ているコンピュータプログラムにより選択的に起動また
は再構成される汎用コンピュータを含むことができる。
ここで示す手順は特定のコンピュータその他の装置に本
質的に関連するものではない。とくに、この明細書の記
載に従って書かれたプログラムに各種の汎用機を使用で
き、あるいは求められている方法を実施するために一層
実用化された装置を製作することが更に便利であること
が判明している。種々のそれらの機械のために求められ
る構造は以下の説明からわかるであろう。
【0012】以下に、符号発生後に時間命令スケジュー
リングをコンパイルするためにとくに用いられる、パイ
プラインプロセッサ用のコストを基にしたヒューリステ
ィック命令スケジューリングのための方法および装置に
ついて説明する。本発明を完全に理解できるようにする
ために、以下の説明においては、層の厚さ等のような特
定の事項の詳細について数多く述べてある。しかし、そ
のような特定の詳細事項なしに本発明を実施できること
が当業者には明らかであろう。その他の場合には、本発
明を不必要に詳しく説明して本発明をあいまいにしない
ようにするために、周知の処理工程は説明しない。
【0013】まず、パイプラインプロセッサ用のコスト
を基にしたヒューリスティック命令スケジューリングの
ための装置の好適な実施例を示すブロック図が示されて
いる図1を参照する。本発明の装置10のこの好適な実
施例はCPU11と、このCPUにより実行される複数
の手順/モデル12〜18を含む主メモリ19とを有す
る。主メモリ19は、実行手順/モデル12〜18によ
りアクセスされる複数のデータ構造22〜28も有す
る。CPU11は主メモリ19内の手順/モデル12〜
18を実行する。CPU11は実行される手順/モデル
12〜18のための命令ブロック20を入力装置21か
ら読出し、実行される手順/モデル12〜18により発
生された指示された命令ブロック30を出力装置31へ
書込むための入力/出力インターフェイスを有する。主
メモリ19はCPU11により実行される手順/モデル
12〜18と、実行する手順/モデル12〜18により
アクセスされるデータ構造22〜28とを記憶する。C
PU11へ結合されている主メモリ19は駆動器手順1
2と、この駆動器手順12により呼び出される依存性グ
ラフ構築手順13と、駆動器手順12により呼び出され
るリスト構築手順14と、駆動器手順12により呼び出
されるスケジューリング手順16と、このスケジューリ
ング手順16により呼び出されるプロセッサモデル18
とを有する。主メモリ19は依存性グラフ22と、自由
命令リスト24と、重みテーブル26と、コストテーブ
ル28とを更に有する。
【0014】駆動器手順12はコストを基にしたヒュー
リスティック命令スケジューリングプロセスである。駆
動器手順12は命令ブロック20を入力として受けるイ
ンターフェイス(図示せず)を有する。命令ブロック2
0を入力として受けると、命令をスケジュールするため
に、駆動器手順12は依存性グラフ構築手順13と、リ
スト構築手順と、スケジューリング手順16とを順次呼
び出す。依存性グラフ構築手順13は、実行すべき複数
の命令20を含む命令ブロックに対する命令依存性グラ
フを構築する。駆動器手順12により呼び出される依存
性グラフ構築手順13は命令ブロック20を入力として
受ける。命令ブロックの一例を図2に示す。命令ブロッ
ク20を入力として受けると、依存性グラフ構築手順1
3は受けた命令ブロック20を後方へ走査することによ
り命令依存性グラフを構築する。依存性グラフ構築手順
13が後方へ走査するにつれて、その依存性グラフ構築
手順は資源の各定義または使用に注目し、その後でそれ
に先行せねばならない定義または使用に注目する。注目
した定義および使用から、依存性グラフ構築手順13は
命令依存性グラフ22を構築する。命令依存性グラフの
例も図2に示されている。命令依存性グラフ12を構築
した後で、依存性グラフ構築手順13は駆動器手順12
へ戻る。依存性グラフの構築についての詳細について
は、1986年7月に開催されたコンパイラ構造につい
てのシンポジウム議事録(Proceeding of
the SIGPLAN ’86 symposiu
m oncompiler constructio
n)12〜13ページ所載のギボンス(Gibbons
P.B.)およびマッチニック(Muchnick
S.S.)の「パイプラインプロセッサ用の効率的な命
令スケジューリング(Efficient Instr
uctionScheduling for a Pi
pelined Architecture)」を参照
されたい。
【0015】なお図1では、リスト構築手順14は命令
依存性グラフ22を基にして自由命令リストを構築す
る。依存性グラフ構築手順13から戻った後で、リスト
構築手順14は駆動器手順12により呼び出される。駆
動器手順12により最初に呼び出された時に、リスト構
築手順14は命令依存性グラフ14をアクセスし、自由
命令リスト24を構築する。リスト構築手順14は命令
依存性グラフ22を、命令依存性グラフ22の根から始
まって、前方へ走査することにより自由命令リスト24
を構築する。命令依存性グラフにおいてある命令の直前
の命令がスケジュールされたとすると、その命令は自由
である。最初の自由命令リストの例も図2に示されてい
る。自由命令リスト24を構築した後で、リスト構築手
順14は駆動器手順12へ戻る。リスト構築手順14は
自由命令リスト24のリフレッシュも行う。スケジュー
リング手順16から戻った後で、リスト構築手順14は
駆動器手順12により再び呼び出される。駆動器手順1
2により次に呼び出されると、リスト構築手順14は、
スケジュールされた命令を削除し、スケジュールされた
命令のスケジューリングにより自由になりつつある以後
の命令を加えることにより自由命令リスト24をリフレ
ッシュする。リスト構築手順14は、最初の自由命令を
走査するのと同じやり方で以後の命令を走査する。自由
命令リスト24をリフレッシュした後で、リスト構築手
順14は前記のように駆動器手順12へ再び戻る。自由
命令リスト24が空になるまで、すなわち、全ての命令
がスケジュールされるもで自由命令リスト24をリフレ
ッシュするために、リスト構築手順14は、スケジュー
リング手順16から戻るたびに駆動器手順12により繰
り返し呼び出される。自由命令リストの構築およびリフ
レッシュの詳細については、1986年7月に開催され
た、コンパイラ構造についてのSIGPLANシンポジ
ウム議事録(Proceeding of the S
IGPLAN ’86 symposium on c
ompiler construction)所載のギ
ボンス(Gibbons P.B.)およびマッチニッ
ク(Muchnick S.S.)の論文「パイプライ
ンプロセッサ用の効率的な命令スケジューリング(Ef
ficient InstructionSchedu
ling for a Pipelined Arch
itecture)」を参照されたい。
【0016】スケジューリング手順16は自由命令をス
ケジューリングするためのものである。スケジューリン
グ手順16は、リスト構築手順14から戻るたびに、駆
動器手順12により呼び出される。駆動器手順12によ
り呼び出されると、スケジューリング手順16は自由命
令リスト24をアクセスし、自由命令の一つをスケジュ
ールする。自由命令の一つをスケジューリングした後
で、スケジューリング手順16は駆動器手順12へ戻
る。スケジューリング手順16は自由命令リストの最低
合計コストを基にして自由命令の一つをスケジュールす
る。各自由命令の合計コストは複数のコストヒューリス
ティックの重みづけられた和を基にして計算される。重
みテーブル26をアクセスすることにより重みは得られ
る。いくつかのコストヒューリスティックのコストはブ
ロックモデル18を呼び出すことにより決定され、他の
ものは直接計算される。各スケジュールされた自由命令
の合計コストと、命令ブロックの合計コストはコストテ
ーブル28に格納される。コストヒューリスティックと
プロセッサモデル18については後で詳しく説明する。
【0017】次に、スケジューリング手順の動作の流れ
を示すブロック図が示されている図3を参照する。駆動
器手順により呼び出されると、スケジューリング手順は
プロセッサモデルをリセットさせる(ブロック34)。
プロセッサモデルをリセットした後で、スケジューリン
グ手順は自由命令リストにおける最初の自由命令に対し
て合計コストを計算する。スケジューリング手順は最低
合計コストを初期化し(ブロック36)、各コストヒュ
ーリスティックに対するコストを計算し(ブロック3
8)、コストヒューリスティックの重みづけられた和を
基にして合計コストを計算する(ブロック40)。自由
命令40の合計コストを計算した後で、スケジューリン
グ手段は、計算された合計コストが現在の最低合計コス
トより低いかどうかを判定し、スケジューリング手順は
現在の選択された命令としてマークし(ブロック4
4)、現在の最低合計コストを新たに計算される合計コ
ストへセットする(ブロック46)。
【0018】計算された合計コストが現在の最低合計コ
ストより低くないと判定し、かつ現在の命令をマーク
し、現在の最低合計コストをセットした後で、分析すべ
き自由命令が自由命令リストにまだあるかどうかをスケ
ジューリング手順は判定する。分析すべき自由命令があ
るものとすると、スケジューリング手順はコストの計算
とコストの比較を上記のようにして行う。自由命令リス
トにおける全ての自由命令に対してコストの計算とコス
トの比較を行った後で、スケジューリング手順は現在の
選択された命令を順序づけられている命令リストに追加
する(ブロック50)。また、スケジューリング手順は
プロセッサモデルとコストテーブルを更新させ(ブロッ
ク52)、選択された命令をリスト構築手順54へ戻
す。
【0019】次に、本発明の装置の好適な実施例により
用いられるコストヒューリスティックを示すテーブルが
示されている図4を参照する。コストヒューリスティッ
クは資源依存性コスト64と、依存性待ちコスト66
と、依存サイクルコスト(DCC)68と、浮動小数点
比コスト(FPRC)70と、記憶比コスト(SRC)
72と、浮動小数点待ちコスト行列コスト(FPQC)
74とを有する。合計76はそれらのコスト62〜74
の重みづけられた和である。資源依存性コスト62は、
特定の自由命令をスケジューリングすることにより引き
起こされる利用できないプロセッサ資源による保持サイ
クルのコストを測定するためのものである。資源依存性
コスト62は、完全記憶バッファ、またはビジー機能装
置のような利用できないプロセッサ資源による保持サイ
クルの数に等しい。資源依存性コスト62はプロセッサ
モデルを質問することにより計算される。このコストヒ
ューリスティックは、最も少ない数の保持サイクルを行
わせる点において自由命令をスケジュールする傾向があ
ることがわかるであろう。
【0020】データ依存性コスト64は、特定の自由命
令をスケジューリングすることによりひき起こされるデ
ータ依存インターロックによる保持サイクルのコストを
測定するためのものである。データ依存性コスト64
は、負荷使用インターロックのようなデータ依存インタ
ーロックと、マルチサイクル浮動小数点動作の後で値を
レジスタに記憶させることに関連する遅延とによる保持
サイクルの数に等しい。資源依存性コスト62と同様
に、データ依存性コスト64はプロセッサモデルを質問
することにより計算される。このコストヒューリスティ
ックは最少数の保持サイクルをさせる点において自由命
令をスケジュールする傾向もあることがわかるであろ
う。依存性待ちコスト66は、特定の自由命令をスケジ
ューリングすることにより引き起こされる待ち行列にお
ける待ちによる余分のサイクルのコストを測定するため
のものである。依存性待ちコスト66は、浮動小数点待
ち行列のような待ち行列において待つことによる余分の
サイクルの数に等しい。資源依存性コスト62と同様
に、依存性待ちコスト66はプロセッサモデルに質問す
ることにより計算される。このコストヒューリスティッ
クは最少数の余分の保持サイクルをさせる点において自
由命令をスケジュールする傾向があることがわかるであ
ろう。
【0021】依存性サイクルコスト(DCC)68は、
特定の自由命令によりひき起こされる依存性サイクルの
相対的なコストを測定するためのものである。依存サイ
クルコスト(DCC)66は、自由命令の依存サイクル
と命令ブロック内の独立サイクルとの比の否定に等し
い、すなわち、 DCC = −DC/max(1,RC−DC) である。ここに、DCは自由命令における依存サイクル
の数、RCは命令ブロックの残りの命令に対して要求さ
れるサイクルの数である。このコストヒューリスティッ
クは、より少ない数の依存サイクルを有する自由命令に
対して、多い数の依存サイクルを有する命令をスケジュ
ールする傾向があることがわかるであろう。また、この
コストヒューリスティックは、命令ブロックの多くの命
令がスケジュールされるにつれて、より大きい重みを自
由命令の依存サイクルの数に割り当てることもわかるで
あろう。
【0022】浮動小数点比コスト(FPRC)70は、
特定の自由命令をスケジューリングすることによりひき
起こされる浮動小数点サイクルの相対的なコストを測定
するためのものである。浮動小数点比コスト(FPR
C)70は、残りの浮動小数点サイクルと残りの非浮動
小数点サイクルの比と、浮動小数点サイクルと非浮動小
数点サイクルの浮動小数点ターゲット比(FPTR)と
の差に等しい。すなわち、 FPRC = (RFPC/RNFPC) − FPT
R ここに、RFPCは残りの浮動小数点サイクルの数、R
NFPCは残りの非浮動小数点サイクルの数、FPTR
は浮動小数点ターゲット比である。
【0023】浮動小数点ターゲット比(FPTR)は、
自由命令の1つをスケジューリングした後でダイナミッ
クに調整できる。このコストヒューリスティックは自由
浮動小数点命令を残りの命令ブロック全体にわたって一
様に分布させて、浮動小数点待ち行列の妨害を避ける傾
向があることがわかるであろう。記憶比コスト(SR
C)72は特定の自由命令をスケジューリングすること
によりひき起こされる記憶サイクルの相対的なコストを
測定するためのものである。記憶比コスト(SRC)7
2は、残りの記憶命令サイクルと残りの非記憶命令サイ
クルの比と、記憶命令サイクルと非記憶命令サイクルの
ターゲット比との差に等しい。すなわち、 SRC = (RSIC/RNSIC) − SITR ここに、RSICは残りの浮動小数点サイクルの数、R
NSICは残りの非浮動小数点サイクルの数、SITR
は浮動小数点ターゲット比である。
【0024】浮動小数点ターゲット比(FPTR)と同
様に、記憶命令ターゲット比(SITR)は、自由命令
の1つをスケジューリングした後でダイナミックに調整
することもできる。このコストヒューリスティックは記
憶命令を残りの命令ブロック全体にわたって一様に分布
させ、データバッファの記憶を妨害する傾向があること
がわかるであろう。浮動小数点待ち行列コスト(FPQ
C)74は、特定の自由命令をスケジューリングするこ
とによりひき起こされる浮動小数点待ち行列スロットの
コストを測定するためのものである。非浮動小数点自由
命令に対する浮動小数点待ち行列コスト(FPQC)7
4は零に等しい。浮動小数点自由命令に対する浮動小数
点待ち行列コスト(FPQC)74は、使用中の浮動小
数点待ち行列スロットの数と浮動小数点待ち行列スロッ
トの合計数との差に等しい。すなわち、 FPQC = FSIU − AFQS ここに、FSIUは浮動小数点待ち行列に現在保持され
ている浮動小数点オペレーションの数、AFQSは浮動
小数点オペレーションを保持するための浮動小数点待ち
行列におけるスロットの実際の数、である。このコスト
ヒューリスティックは、浮動小数点オペレーションを保
持するための浮動小数点待ち行列に使用されていないス
ロットがある時に、自由浮動小数点命令をスケジュール
する傾向があることがわかるであろう。
【0025】合計コスト76は、上記の全てのコストヒ
ューリスティックにおいて特定の自由命令ファクタリン
グをスケジューリングする合計コストを測定するための
ものである。合計コスト76はコストヒューリスティッ
クの重みづけられた和に等しい。重みはコストヒューリ
スティックの相対的な重要性を反映する任意のやり方で
割当てることができる。
【0026】次に、本発明の装置の好適な実施例のブロ
ック図が示されている図5を参照する。プロセッサモデ
ル18は時間経過シミュレーション手順82と、この時
間経過シミュレーション手順82により呼び出される複
数の部品モデル84〜90と、対応する複数の部品テー
ブル96、98または部品待ち行列98、または部品バ
ッファ100を有する。時間経過シミュレーション手順
82はクロックサイクルおよび命令実行をパイプライン
プロセッサにおいてシミュレートするためのものであ
る。時間経過シミュレーション手順82は自由命令を入
力としてスケジューリング手順から受けるインターロッ
クを有する。スケジューリング手順から自由命令を受け
ると、時間経過シミュレーション手順82は適切な部品
モデル84〜90に、特定の自由命令をスケジューリン
グするコストをシミュレートさせ、シミュレートされた
コストをスケジューリング手順へ戻す。時間経過シミュ
レーション手順82は、種々の部品モデル84〜90を
初期化およびリセットするために、スケジューリング手
段から同じインターフェイスを介して、複数の信号も入
力として受ける。
【0027】この好適な実施例においては、部品モデル
84〜90は資源モデル84と、データ依存性モデル8
6と、浮動小数点装置モデル88と、記憶バッファモデ
ル90とを有する。部品テーブル/シミュレートされた
待ち行列/シミュレートされたバッファ94〜100は
少なくとも一つの資源テーブル94と、少なくとも一つ
のデータ依存性テーブル96と、少なくとも一つの浮動
小数点待ち行列98と、少なくとも一つの記憶バッファ
100とを有する。資源モデル84は利用できないプロ
セッサ資源による保持サイクルをモデル化するためのも
のである。時間経過シミュレーション手順82へ結合さ
れている資源モデル84は自由命令を入力として受け
る。自由命令を受けると、資源モデル84は、特定の自
由命令をスケジューリングすることにより、利用できな
いプロセッサ資源による保持サイクルのコストをシミュ
レートし、スケジューリング手順へ戻すために、そのシ
ミュレートされたコストを時間経過シミュレーション手
順82へ戻す。資源モデル84を初期化およびリセット
するために、スケジューリング手順84は複数の信号も
時間経過シミュレーション手順82から受ける。
【0028】資源テーブル94は種々のプロセッサ資源
情報を保持するためのものである。資源モデル84へ結
合されている資源テーブル94は資源モデル84により
初期化され、更新され、アクセスされる。データ依存性
モデル86は依存インターロックにより保持サイクルを
モデル化するためのものである。時間経過シミュレーシ
ョン手順82へ結合されているデータ依存性モデル86
は自由命令を入力として受ける。自由命令を受けると、
データ依存性モデル86は、特定の自由命令をスケジュ
ーリングすることによりひき起こされるデータ依存イン
ターロックによる保持サイクルのコストをシミュレート
し、スケジューリング手順へ戻すために、そのシミュレ
ートされたコストを時間経過シミュレーション手順82
へ戻す。データ依存性モデル86を初期化およびリセッ
トするために、スケジューリング手順84は複数の信号
も時間経過シミュレーション手順82から受ける。
【0029】データ依存性テーブル96は種々の依存性
情報を保持するためのものである。データ依存性モデル
86へ結合されているデータ依存性テーブル96は依存
性モデル86により初期化され、更新され、アクセスさ
れる。浮動小数点装置モデル88は浮動小数点待ち行列
において費やされる待ちサイクルをモデル化するための
ものである。時間経過シミュレーション手順82へ結合
されている浮動小数点装置モデル88は自由命令を入力
として受ける。自由命令を受けると、浮動小数点装置モ
デル88は、特定の自由命令をスケジューリングするこ
とによりひき起こされる浮動小数点待ち行列において費
やされる待ちサイクルのコストをシミュレートし、スケ
ジューリング手順へ戻すために、そのシミュレートされ
たコストを時間経過シミュレーション手順82へ戻す。
浮動小数点装置モデル88を初期化およびリセットする
ために、浮動小数点装置モデル88は複数の信号も時間
経過シミュレーション手順82から受ける。
【0030】浮動小数点装置モデル98はパイプライン
プロセッサにおいて浮動小数点待ち行列をシミュレート
するためのものである。浮動小数点装置モデル88へ結
合されている浮動小数点待ち行列データ構造98は浮動
小数点装置モデル88により初期化され、更新され、ア
クセスされる。記憶バッファモデル90は全記憶バッフ
ァによる保持サイクルをモデル化するためのものであ
る。時間経過シミュレーション手順82へ結合されてい
る記憶バッファモデル90は自由命令を入力として受け
る。自由命令を受けると、記憶バッファモデル90は、
特定の自由命令をスケジューリングすることによりひき
起こされる全記憶バッファによる保持サイクルのコスト
をシミュレートし、スケジューリング手順へ戻すため
に、そのシミュレートされたコストを時間経過シミュレ
ーション手順82へ戻す。記憶バッファモデル90を初
期化およびリセットするために、記憶バッファモデル9
0は複数の信号も時間経過シミュレーション手順82か
ら受ける。記憶バッファデータ構造100はパイプライ
ンプロセッサにおける記憶バッファをシミュレートする
ためのものである。記憶バッファモデル90へ結合され
ている記憶バッファデータ構造100は記憶バッファモ
デル90により初期化され、更新され、アクセスされ
る。
【図面の簡単な説明】
【図1】駆動器手順と、依存性グラフ構築手順と、自由
命令リスト構築手順と、命令スケジューリング手順と、
プロセッサモデルとを有する、本発明の装置の好適な実
施例を示すブロック図である。
【図2】命令ブロックの例と、本発明の装置の依存性グ
ラフ構築手順により構築された対応する命令依存性グラ
フの例と、本発明の装置のリスト構築手順により構築さ
れた対応する命令リストの例とを示すブロック図を示
す。
【図3】本発明の装置のスケジューリング手順の動作の
流れを示すブロック図を示す。
【図4】資源依存性コストと、データ依存性コストと、
依存性待ちコストと、依存性サイクルコストと、浮動小
数点比コストと、記憶比コストと、浮動小数点待ち行列
コストとを備え、本発明の装置の好適な実施例により用
いられるコストヒューリスティックのテーブルを示す。
【図5】時間経過シミュレーション手順と、複数の部品
モデルと、複数のテーブル/待ち行列/バッファとを有
し、本発明の装置の好適な実施例のプロセッサモデルを
示すブロック図を示す。
【符号の説明】
11 CPU 19 主メモリ 20 入力装置 30 出力装置
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成6年1月28日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】発明の名称
【補正方法】変更
【補正内容】
【発明の名称】 パイプラインプロセッサ用のコストを
基にしてヒューリスティックに命令をスケージューリン
グする方法および装置
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正内容】
【特許請求の範囲】
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0015
【補正方法】変更
【補正内容】
【0015】なお図1では、リスト構築手順14は命令
依存性グラフ22を基にして自由命令リストを構築す
る。依存性グラフ構築手順13から戻った後で、リスト
構築手順14は駆動器手順12により呼び出される。駆
動器手順12により最初に呼び出された時に、リスト構
築手順14は命令依存性グラフ22をアクセスし、自由
命令リスト24を構築する。リスト構築手順14は命令
依存性グラフ22を、命令依存性グラフ22の根から始
まって、前方へ走査することにより自由命令リスト24
を構築する。命令依存性グラフにおいてある命令の直前
の命令がスケジュールされたとすると、その命令は自由
である。最初の自由命令リストの例も図2に示されてい
る。自由命令リスト24を構築した後で、リスト構築手
順14は駆動器手順12へ戻る。リスト構築手順14は
自由命令リスト24のリフレッシュを行う。スケジュー
リング手順16から戻った後で、リスト構築手順14は
駆動器手順12により再び呼び出される。駆動器手順1
2により次に呼び出されると、リスト構築手順14は、
スケジュールされた命令を削除し、スケジュールされた
命令のスケジューリングにより自由になりつつある以後
の命令を加えることにより自由命令リスト24をリフレ
ッシュする。リスト構築手順14は、最初の自由命令を
走査するのと同じやり方で以後の命令を走査する。自由
命令リスト24をリフレッシュした後で、リスト構築手
順14は前記のように駆動器手順12へ再び戻る。自由
命令リスト24が空になるまで、すなわち、全ての命令
がスケジュールされるで自由命令リスト24をリフレ
ッシュするために、リスト構築手順14は、スケジュー
リング手順16から戻るたびに駆動器手順12により繰
り返し呼び出される。自由命令リストの構築およびリフ
レッシュの詳細については、1986年7月に開催され
た、コンパイラ構造についてのSIGPLANシンポジ
ウム議事録(Proceeding of the S
IGPLAN ’86 symposium on c
ompiler construction)所載のギ
ボンス(Gibbons P.B.)およびマッチニッ
ク(Muchnick S.S.)の論文「パイプライ
ンプロセッサ用の効率的な命令スケジューリング(Ef
ficient InstructionSchedu
ling for aPipelined Archi
tecture)」を参照されたい。
【手続補正4】
【補正対象書類名】図面
【補正対象項目名】図4
【補正方法】変更
【補正内容】
【図4】
フロントページの続き (72)発明者 マイケル・ジェイ・ウッダード アメリカ合衆国 94536 カリフォルニア 州・フレモント・パセオ パードレ パー クウェイ・38228

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 スケジュールすべき複数の命令を含む命
    令ブロックのための命令依存性グラフを構成する過程
    と、 前記命令依存性グラフを基にして前記命令のための自由
    命令リストを構築する過程と、 前記自由命令の最低合計コストを基にして前記自由命令
    の一つをスケジューリングする過程と、を備え、前記合
    計コストを複数のコスト発見を基にして前記各自由命令
    について計算することを特徴とするパイプラインプロセ
    ッサ用のコストを基にしたヒューリスティック命令をス
    ケジューリングする方法。
  2. 【請求項2】 スケジュールすべき複数の命令を含む命
    令ブロックを受けるインターフェイスを含み、コストを
    基にしたヒューリスティック命令スケジューリングを、
    前記命令ブロックに対して駆動するための駆動器手段
    と、 この駆動器手段へ結合され、前記命令ブロックのための
    命令依存性グラフを構築する依存性グラフ構築手段と、 前記駆動器手段へ結合され、前記命令依存性グラフを基
    にして、前記命令のための自由命令リストを構築するリ
    スト構築手段と、 前記駆動器手段へ結合され、前記自由命令の最低合計コ
    ストを基にして前記自由命令の一つをスケジューリング
    するスケジューリング手段と、を備え、前記合計コスト
    は複数のコスト発見を基にして前記各自由命令に対して
    計算されることを特徴とするパイプラインプロセッサ用
    のコストを基にしたヒューリスティック命令スケジュー
    リングを行う装置。
JP4075608A 1991-02-27 1992-02-27 パイプラインプロセッサ用のコストを基にしたヒューリスティック命令スケージューリングを行う方法および装置 Expired - Fee Related JP2720128B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US661674 1991-02-27
US07/661,674 US5202993A (en) 1991-02-27 1991-02-27 Method and apparatus for cost-based heuristic instruction scheduling

Publications (2)

Publication Number Publication Date
JPH06208462A true JPH06208462A (ja) 1994-07-26
JP2720128B2 JP2720128B2 (ja) 1998-02-25

Family

ID=24654616

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4075608A Expired - Fee Related JP2720128B2 (ja) 1991-02-27 1992-02-27 パイプラインプロセッサ用のコストを基にしたヒューリスティック命令スケージューリングを行う方法および装置

Country Status (5)

Country Link
US (1) US5202993A (ja)
EP (1) EP0501653B1 (ja)
JP (1) JP2720128B2 (ja)
KR (1) KR970005456B1 (ja)
DE (1) DE69229365T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010113384A (ja) * 2008-11-04 2010-05-20 Fujitsu Ltd 設計支援プログラム、設計支援装置、および設計支援方法
JP2014531680A (ja) * 2011-10-03 2014-11-27 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation デコード時間命令最適化を用いた、強化されたアプリケーション・バイナリ・インターフェース(abi)のためのコードのコンパイル

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5471564A (en) * 1992-07-10 1995-11-28 Microsoft Corporation System and method for dynamic printer timeout
JPH08507889A (ja) * 1993-03-15 1996-08-20 シーメンス アクチエンゲゼルシヤフト スーパースカラマイクロプロセッサ用のプログラムから並行的に処理可能な命令グループを機械的に生成する方法
US5574640A (en) * 1993-03-25 1996-11-12 Carnegie Mellon University Case-based scheduling method for creating a schedule
US5819088A (en) * 1993-03-25 1998-10-06 Intel Corporation Method and apparatus for scheduling instructions for execution on a multi-issue architecture computer
FR2704663B1 (fr) * 1993-04-29 1995-06-23 Sgs Thomson Microelectronics Procédé et dispositif de détermination de la composition d'un circuit intégré.
US5463745A (en) * 1993-12-22 1995-10-31 Intel Corporation Methods and apparatus for determining the next instruction pointer in an out-of-order execution computer system
US5519864A (en) * 1993-12-27 1996-05-21 Intel Corporation Method and apparatus for scheduling the dispatch of instructions from a reservation station
US5619695A (en) * 1994-02-03 1997-04-08 Lockheed Martin Corporation Method and apparatus for scheduling resources
US6205538B1 (en) * 1994-08-24 2001-03-20 Sun Microsystems, Inc. Instruction result labeling in a counterflow pipeline processor
JP3113792B2 (ja) * 1995-04-27 2000-12-04 松下電器産業株式会社 最適化装置
US5671361A (en) * 1995-09-28 1997-09-23 University Of Central Florida Priority rule search technique for resource constrained project scheduling
US5689674A (en) * 1995-10-31 1997-11-18 Intel Corporation Method and apparatus for binding instructions to dispatch ports of a reservation station
US5737227A (en) * 1996-03-19 1998-04-07 Consulex Corporation Software planning program for coatings
US5887174A (en) * 1996-06-18 1999-03-23 International Business Machines Corporation System, method, and program product for instruction scheduling in the presence of hardware lookahead accomplished by the rescheduling of idle slots
US5889996A (en) * 1996-12-16 1999-03-30 Novell Inc. Accelerator for interpretive environments
US5983310A (en) 1997-02-13 1999-11-09 Novell, Inc. Pin management of accelerator for interpretive environments
US6044222A (en) * 1997-06-23 2000-03-28 International Business Machines Corporation System, method, and program product for loop instruction scheduling hardware lookahead
US6141732A (en) * 1998-03-24 2000-10-31 Novell, Inc. Burst-loading of instructions into processor cache by execution of linked jump instructions embedded in cache line size blocks
US6356996B1 (en) 1998-03-24 2002-03-12 Novell, Inc. Cache fencing for interpretive environments
US6578193B1 (en) 1998-03-24 2003-06-10 Novell, Inc. Endian-neutral loader for interpretive environment
US6145120A (en) * 1998-03-24 2000-11-07 Lockheed Martin Corporation Declaration programming language extension for procedural programming languages
US6594824B1 (en) * 1999-02-17 2003-07-15 Elbrus International Limited Profile driven code motion and scheduling
US6718541B2 (en) * 1999-02-17 2004-04-06 Elbrus International Limited Register economy heuristic for a cycle driven multiple issue instruction scheduler
US7069555B1 (en) * 2000-09-29 2006-06-27 Microsoft Corporation Super-region instruction scheduling and code generation for merging identical instruction into the ready-to-schedule instruction
GB0025053D0 (en) * 2000-10-12 2000-11-29 Sgs Thomson Microelectronics Compiling computer programs including branch instructions
US7752419B1 (en) 2001-03-22 2010-07-06 Qst Holdings, Llc Method and system for managing hardware resources to implement system functions using an adaptive computing architecture
US6836839B2 (en) 2001-03-22 2004-12-28 Quicksilver Technology, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US7962716B2 (en) 2001-03-22 2011-06-14 Qst Holdings, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US7489779B2 (en) 2001-03-22 2009-02-10 Qstholdings, Llc Hardware implementation of the secure hash standard
US7653710B2 (en) 2002-06-25 2010-01-26 Qst Holdings, Llc. Hardware task manager
US7400668B2 (en) 2001-03-22 2008-07-15 Qst Holdings, Llc Method and system for implementing a system acquisition function for use with a communication device
US7249242B2 (en) 2002-10-28 2007-07-24 Nvidia Corporation Input pipeline registers for a node in an adaptive computing engine
US6577678B2 (en) 2001-05-08 2003-06-10 Quicksilver Technology Method and system for reconfigurable channel coding
US7046635B2 (en) 2001-11-28 2006-05-16 Quicksilver Technology, Inc. System for authorizing functionality in adaptable hardware devices
US8412915B2 (en) 2001-11-30 2013-04-02 Altera Corporation Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements
US6986021B2 (en) 2001-11-30 2006-01-10 Quick Silver Technology, Inc. Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements
US7602740B2 (en) 2001-12-10 2009-10-13 Qst Holdings, Inc. System for adapting device standards after manufacture
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
US7403981B2 (en) * 2002-01-04 2008-07-22 Quicksilver Technology, Inc. Apparatus and method for adaptive multimedia reception and transmission in communication environments
US7493375B2 (en) 2002-04-29 2009-02-17 Qst Holding, Llc Storage and delivery of device features
US7660984B1 (en) 2003-05-13 2010-02-09 Quicksilver Technology Method and system for achieving individualized protected space in an operating system
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
US7478031B2 (en) 2002-11-07 2009-01-13 Qst Holdings, Llc Method, system and program for developing and scheduling adaptive integrated circuity and corresponding control or configuration information
US7225301B2 (en) 2002-11-22 2007-05-29 Quicksilver Technologies External memory controller node
US20040139142A1 (en) * 2002-12-31 2004-07-15 International Business Machines Corporation Method and apparatus for managing resource contention
US7609297B2 (en) 2003-06-25 2009-10-27 Qst Holdings, Inc. Configurable hardware based digital imaging apparatus
US20050216900A1 (en) * 2004-03-29 2005-09-29 Xiaohua Shi Instruction scheduling
US7444628B2 (en) * 2004-08-30 2008-10-28 International Business Machines Corporation Extension of swing modulo scheduling to evenly distribute uniform strongly connected components
US7493611B2 (en) * 2004-08-30 2009-02-17 International Business Machines Corporation Pinning internal slack nodes to improve instruction scheduling
US20060048123A1 (en) * 2004-08-30 2006-03-02 International Business Machines Corporation Modification of swing modulo scheduling to reduce register usage
US8468152B2 (en) * 2005-08-04 2013-06-18 International Business Machines Corporation Autonomic refresh of a materialized query table in a computer database
WO2007085121A1 (en) * 2006-01-26 2007-08-02 Intel Corporation Scheduling multithreaded programming instructions based on dependency graph
US8037466B2 (en) 2006-12-29 2011-10-11 Intel Corporation Method and apparatus for merging critical sections
JP5990466B2 (ja) 2010-01-21 2016-09-14 スビラル・インコーポレーテッド ストリームに基づく演算を実装するための汎用複数コアシステムのための方法および装置
CN102063288A (zh) * 2011-01-07 2011-05-18 四川九洲电器集团有限责任公司 一种面向dsp芯片的指令调度方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5617439A (en) * 1979-07-20 1981-02-19 Fujitsu Ltd Instruction scheduling processing system
JPS62217325A (ja) * 1986-03-18 1987-09-24 Nec Corp アセンブラコ−ド最適化方式
JPH0391035A (ja) * 1989-09-04 1991-04-16 Hitachi Ltd 命令列スケジューリング処理方法
JPH03135630A (ja) * 1989-10-20 1991-06-10 Nec Corp 命令スケジューリング方式
JPH0476731A (ja) * 1990-07-18 1992-03-11 Nec Corp パイプライン型マイクロプロセッサのアセンブラ処理方式
JPH04247527A (ja) * 1990-10-15 1992-09-03 Internatl Business Mach Corp <Ibm> コンピュータの命令スケジューラ
JPH04252336A (ja) * 1991-01-29 1992-09-08 Fujitsu Ltd プログラム最適化処理装置
JPH05508040A (ja) * 1990-06-11 1993-11-11 クレイ、リサーチ、インコーポレーテッド 命令スケジューリング最適化方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5617439A (en) * 1979-07-20 1981-02-19 Fujitsu Ltd Instruction scheduling processing system
JPS62217325A (ja) * 1986-03-18 1987-09-24 Nec Corp アセンブラコ−ド最適化方式
JPH0391035A (ja) * 1989-09-04 1991-04-16 Hitachi Ltd 命令列スケジューリング処理方法
JPH03135630A (ja) * 1989-10-20 1991-06-10 Nec Corp 命令スケジューリング方式
JPH05508040A (ja) * 1990-06-11 1993-11-11 クレイ、リサーチ、インコーポレーテッド 命令スケジューリング最適化方法
JPH0476731A (ja) * 1990-07-18 1992-03-11 Nec Corp パイプライン型マイクロプロセッサのアセンブラ処理方式
JPH04247527A (ja) * 1990-10-15 1992-09-03 Internatl Business Mach Corp <Ibm> コンピュータの命令スケジューラ
JPH04252336A (ja) * 1991-01-29 1992-09-08 Fujitsu Ltd プログラム最適化処理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010113384A (ja) * 2008-11-04 2010-05-20 Fujitsu Ltd 設計支援プログラム、設計支援装置、および設計支援方法
JP2014531680A (ja) * 2011-10-03 2014-11-27 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation デコード時間命令最適化を用いた、強化されたアプリケーション・バイナリ・インターフェース(abi)のためのコードのコンパイル

Also Published As

Publication number Publication date
JP2720128B2 (ja) 1998-02-25
EP0501653A3 (en) 1993-05-26
KR920016940A (ko) 1992-09-25
DE69229365D1 (de) 1999-07-15
EP0501653B1 (en) 1999-06-09
DE69229365T2 (de) 2000-04-27
US5202993A (en) 1993-04-13
KR970005456B1 (ko) 1997-04-16
EP0501653A2 (en) 1992-09-02

Similar Documents

Publication Publication Date Title
JP2720128B2 (ja) パイプラインプロセッサ用のコストを基にしたヒューリスティック命令スケージューリングを行う方法および装置
Lam et al. Limits of control flow on parallelism
Lim et al. An accurate worst case timing analysis for RISC processors
Rau Iterative modulo scheduling: An algorithm for software pipelining loops
US6487715B1 (en) Dynamic code motion optimization and path tracing
EP0503928B1 (en) Method and apparatus for optimizing cost-based heuristic instruction schedule
JPH01108638A (ja) 並列化コンパイル方式
JP5813165B2 (ja) トランザクションを用いるシーケンシャルフレームワークの並行化
JP3480973B2 (ja) 並列処理システムの動作解析装置
JPH0792752B2 (ja) 命令スケジューラ及び入力命令シーケンスを再スケジュールする方法
Hur et al. Worst case timing analysis of RISC processors: R3000/R3010 case study
JPH07168717A (ja) 最適化機械コード変換方法およびコンピュータ装置
US6363405B1 (en) Computer system and method for parallel computations using table approximation methods
Lorenz et al. Energy aware compilation for DSPs with SIMD instructions
Falk et al. Control flow driven splitting of loop nests at the source code level
Nicolau et al. Using an oracle to measure potential parallelism in single instruction stream programs
Tang et al. Automatically partitioning threads for multithreaded architectures
US6567831B1 (en) Computer system and method for parallel computations using table approximation
KR20150040663A (ko) 소프트웨어 파이프라이닝을 이용한 명령어 스케줄링 방법 및 장치
Patil et al. Compositional static instruction cache simulation
Chiu et al. An Efficient Task-Parallel Pipeline Programming Framework
Zhang et al. Analyzing data cache related preemption delay with multiple preemptions
JPH05508040A (ja) 命令スケジューリング最適化方法
Gupta code Optimization as a side effect of instruction scheduling
Su et al. Array prefetching for irregular array accesses in titanium

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees