JP2947356B2 - 並列処理システム及び並列プロセッサの同期方法 - Google Patents

並列処理システム及び並列プロセッサの同期方法

Info

Publication number
JP2947356B2
JP2947356B2 JP1198085A JP19808589A JP2947356B2 JP 2947356 B2 JP2947356 B2 JP 2947356B2 JP 1198085 A JP1198085 A JP 1198085A JP 19808589 A JP19808589 A JP 19808589A JP 2947356 B2 JP2947356 B2 JP 2947356B2
Authority
JP
Japan
Prior art keywords
processor
processors
instruction
parallel
shaded
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 - Lifetime
Application number
JP1198085A
Other languages
English (en)
Other versions
JPH02110763A (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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of JPH02110763A publication Critical patent/JPH02110763A/ja
Application granted granted Critical
Publication of JP2947356B2 publication Critical patent/JP2947356B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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, look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/458Synchronisation, e.g. post-wait, barriers, locks
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions

Description

【発明の詳細な説明】 〔発明の分野〕 本発明は並列プロセッサを同期させる方法及び装置に
関するものである。特に本発明は斯種の同期化に対する
バリヤ(barrier)の使用に関するものである。
〔発明の背景〕
従来の並列処理システムは並列命令ストリームに変換
されたコンピュータコードを実行する。コンピュータコ
ードを並列命令ストリームに分けることについては、例
えばエム・ウォルフェ(M.Wolfe)外1名による論文“D
ata Dependence and Its Application to Parallel Pro
cessing",“International Journal of Parallel Progr
amming,Vol,16,No.2,1987年4月,第137〜178頁及びエ
ッチ・ストーン(H.stone)著による文献“High Perfor
mance Computer Architecture"(Addison Wesley 1987
年,第321頁及び第336〜338頁に記載されている。命令
ストリームの幾つかは字句的にフォワードな従属性(le
xically forward dependences)及び/又はループ繰上
げ従属性(loop carried dependences)を有している。
字句的にフォワードな従属性の概念については、1986年
IEEE International Conference on Parallel Proces
singの第836〜844頁、特に第838頁におけるアール・シ
トロン(R.Cytron)による論文“Doacross:Beyond Vect
orization for Multiprocessors"に記載されている。字
句的にフォワード及びループ繰上げ従属性のために命令
ストリーム間の同期をとる必要がある。
「バリヤ」を用いることによって斯様な同期をとるこ
とができる。バリヤとは、それぞれの並列命令ストリー
ムにおいて、各並列プロセッサが互いに同期をとるため
に待たなければならない個所のことである。同期をとる
ためにバリヤを用いることについてはProceedings 1986
International Conference Parallel Processing,1986
年8月,第528〜535頁におけるピー・タング(P.Tang)
外1名による論文“Processor Self−Scheduling for M
ultiple−Nested Parallel Loops"に記載されている。
同期のために斯様な停止点を用いる並列処理システム
の詳細については米国特許第4,344,134号、第4,365,292
号及び第4,412,303号に開示されている。
従来の並列処理システムでは、個々のプロセッサを同
期させる間これらのプロセッサを互いに待たせ、時間を
浪費しなければならない。これによりシステムの効率低
下をまねいている。待ち時間は一方のプロセッサがその
割当てコードを他方のプロセッサよりも速く実行し得る
ために生じるのであり、又斯様な待ち時間は同期処理又
は同期用のハードウェアをアクセスしたり、又は他の共
用機構をアクセスするのに種々のプロセッサ間にて競合
があるために生じたりする。
〔発明の概要〕
特に本発明の目的は、個々のプロセッサが互いに待つ
ために浪費しなければならない時間を短縮することによ
り効率を高める並列処理システムを提供することにあ
る。
この目的は、並列プロセッサの内の少なくとも1つ
が、他の少なくとも1つのプロセッサとの同期を待つ間
に少なくとも1つの非アイドリング命令を実行するよう
に前記並列プロセッサを同期させる同期装置によって達
成される。或る特定カテゴリの非アイドリング命令と
は、ユーザ又は応用プログラムにて特徴付けるものであ
り、又他のカテゴリの非アイドリング命令とは、命令−
決定の遅延を生成する以外は当面のプロセッサの内部演
算でソースタスクを実行することに関連する1つの命令
とすることができる。特に、上述した目的はそれぞれの
命令ストリームにおけるコードの所定領域を同定し、且
つ識別して実現することができる。これらの領域のこと
をここでは「アンシェーデッド」(unshaded)に対する
「シェーデッド」(shaded)領域と称する。シェーデッ
ド領域をここでは「ファジィ」バリヤとも称する。プロ
セッサは各シェーデッド領域に達する際に同期化を試み
始める。この同期化は、関連するタスクを実行する全て
のプロセッサがそれらの各対応するシェーデッド領域に
先行しているアンシェーデッド領域における全ての命令
を完全に実行し終わるまでは各シェーデッド領域に続く
命令をプロセッサが実行しなくなる際に達成される。
上記目的は並列プロセッサ間の同期情報を調整し、且
つ同期情報に絶えず注意を払う状態マシンを用いる装置
によっても達成される。
〔実施例〕
以下実施例につき図面を参照して説明するに、第1a図
はシェーデッド領域を作るためにソースコードをコンパ
イルする方法を示す流れ図である。
ボックス101にてコンパイルがソースコードで開始す
る。並列処理するのに好適なソースコードの一例はつぎ
の通りである。
ここでは二次元整数アレイa〔j〕〔i〕の全ての要
素に適当な値を割当てる。
ボックス102では別個のプロセッサで実行させること
のできるコード部分をコンパイラによって識別する。ボ
ックス102では前記H.Stoneによる文献及び前記M.Wolfe
外1名による論文に記載されているような方法を用い
る。上記ソースコードの例では内部ループを別々のプロ
セッサで並列に実行させることができる。この場合の内
部ループに対するコードを後記表Aに示してあり、この
表におけるbrrはバリヤを表わす。
バリヤはループ繰上げ従属性のために挿入してある。
換言するに、本例では、ループの第1繰返しでプロセッ
サP2が計算したa〔1〕〔3〕の値をループの第2繰返
しでプロセッサP1が必要とする。従来3個の各プロセッ
サは、他の各プロセッサがバリヤに達するまで各ループ
にて待たなければならなかった。
ボックス103では標準技法を用いてコンパイラが中間
コードを発生する。この中間コードは、つぎに後続する
コードに応じて「3アドレスコード」と称される標準の
表記法で表わされる。このコード及びそれを発生させる
ための技法についてはエー・アーオ(A.Aho)外1名に
よる文献“Principles of Compiler Desigh"(Addison
Wesley 1979)の第7節に記載されている。
本例では3つのプロセッサに対する中間コードの値
を、プロセッサP1,P2及びP3に対して2,3及び4にそれぞ
れ初期設定される“i"の値以外は同じとする。
ボックス104はシェーデッド及びアンシェーデッド領
域を識別する。シェーデッド領域はファジィバリヤを制
定する。換言するに、慣例のバリヤの場合のように、プ
ロセッサはシェーデッド領域に達すると、このプロセッ
サは同期化を所望する。しかし、このような従来のバリ
ヤの場合に対し、ファジィバリヤ、即ちシェーデッド領
域の場合にはプロセッサは同期するのを待っている間に
命令を実行するのを継続することができる。アンシェー
デッド領域はプロセッサが同期を求めない領域を制定す
る。
ボックス104以後の中間コードは後記表Bに示すよう
にし、開始時における適当なコメントは: コメント:Aをアレイaの基本アドレスとする; とし、又第1中断ライン以降の第2コメントは: コメント:アンシェーデッド領域 とする。
ボックス104はこれらのシェーデッド及びアンシェー
デッド領域をつぎのように確かめる。不履行、即ちアン
シェーデッド領域が識別されない場合には、シェーデッ
ド領域における命令が不履行となる。この不履行が設定
される理由は、シェーデッド領域における命令を実行し
ている間にマイクロプロセッサは決して停止できないか
らである。これがため、シェーデッド領域の方が好まし
い。
アンシェーデッド部分はつぎの2つの主工程にて見つ
ける。先ず字句的にフォワードな従属性及び/又はルー
プ繰上げ従属性LFDを有する最初と最後の命令をアンシ
ェーデッド部分として識別する。この場合におけるこれ
らの最初と最後の命令との間の全ての命令もアンシェー
デッド部分である。本例におけるI1及びI2はループ繰上
げ従属性のみを有する命令である。命令I1の実行中にプ
ロセッサは以前の繰返しで他の或るプロセッサが計算し
た値をアクセスする。命令I2の実行中にはつぎの繰返し
にて他の或るプロセッサにより用いられる値をアレイに
記憶させる。これがため、命令I1,I2及びこれらの間の
全ての命令はアンシェーデッド部分である。
コードを実行するに当り、他の全てのプロセッサがそ
れぞれ対応するシェーデッド領域に先行しているアンシ
ェーデッド領域における命令を全て実行し終るまでプロ
セッサがシェーデッド領域に後続するアンシェーデッド
領域の命令を実行しなければ、並列プロセッサは「同期
化」されることになる。このような要件からして、字句
的にフォワードな従属性及びループ繰上げ従属性となる
それらの命令は、これらの従属性が解消されるまでは実
行させることができない。
ブロック105では中間コードをリオーダして効率をさ
らに高める。この目的には標準のリオーダ技法を用いる
ことができる。プロセッサは、それがシェーデッド領域
における命令を実行している間は決して停止させること
ができないから、アンシェーデッド領域が小さくなるに
つれて効率は高くなる。これがため、リオーダ技法を用
いてアンシェーデッド領域における命令数を減らすよう
にする。従って、リオーダした後には中間コードを上述
したのと同じコメントで後記表Cに示すように変換す
る。
斯かるリオーダ処置では、I1とI2との間の3つの命令
をアンシェーデッド領域外へと動かした。本例では、3
つの命令をI1の上に動かした。場合によっては、字句的
にフォワード又はループ繰上げ従属性を有する最終命令
を過ぎた命令を動かすことによっても同じ効果を達成す
ることができる。換言するに、命令はこれらを上方(I1
の上)又は下方(I2の下)に動かすことによってアンシ
ェーデッド領域から動かすことができる。
上記中間コードを読取るには、読取器によってその中
間コードがループの一部である旨を認める必要がある。
従って、アンシェーデッド領域の後のシェーデッド領域
は、つぎのループ繰返しでアンシェーデッド領域の前の
シェーデッド領域に結合する。例えば、ループの最初の
繰返し終了時に第1プロセッサはループの冒頭に戻っ
て、コードを実行し続けることができる。他の全てのプ
ロセッサが、それらの第1繰返しで各命令I2を実行し終
えた場合には、第1プロセッサはその第2繰返しで命令
I1を実行し始めることができる。殆どの命令はシェーデ
ッド領域にあるから、プロセッサは互いに同期を待つの
に殆ど、或いは全く時間がかからず、特にシェーデッド
領域を特徴付けることによってプロセッサ間の結合を左
程厳格としないで済む。
ボックス106では中間コードをアセンブルする。上記
例に対する各プロセッサ用のVAXアセンブリコードを後
記表Dに示してある。アセンブリは標準コンパイラによ
り行われる標準の処置である。アセンブルする期間中に
は、この目的のために命令中にリザーブした1ビットを
ターン・オンさせることによって命令をシェーデッド領
域の部分としてマークすることができる。このビットを
「I−ビット」と称する。
ボックス105に用いることのできるリオーダ技法の1
つを第1b図の流れ図で説明する。第1b図では字句的にフ
ォワード又はループ繰上げ従属性でない命令にはJ▲
▼なる表記法を用い、字句的フォワード又はループ
繰上げ従属性を有する命令にはJLFDなる表記法を用い
る。タイプJ▲▼の全ての命令は将来アンシェー
デッド領域から動かすものである。一般に、2つの命令
Ji及びJi+1がこの順序で与えられると、つぎの条件が双
方共に真であればJi+1をJiの上に動かすことができる。
条件1:JiはJi+1が書込むメモリ位置からは読出さな
い; 条件2:JiはJi+1が読出すメモリ位置には書込まない。
第1a図の場合にはアンシェーデッド領域が命令J1,J2,
J3−−−JNのシーケンスを有するものとする。
ボックス150ではJiにタイプJ▲▼の第1命令
を割当てる。ボックス151ではJiに先行するアンシェー
デッド領域における第1命令をJjに割当てる。ボックス
152では各命令に対し条件1及び条件2をテストする命
令Jj〜Jiをループする。双方の条件1及び2が所定の命
令に対して真である場合に、ブランチ153へと進む。条
件1及び条件2のいずれか一方、又は双方共に誤りであ
る場合にはブランチ154へと進む。
ブランチ153はボックス155に至り、ここでJjがJiに先
行しいるアンシェーデッド領域における最終命令である
か否かをテストする。ボックス155でのテスト結果が誤
りである場合にはボックス157へのブランチ156へと進
み、このボックス157にて命令Jiに先行しているアンシ
ェーデッド領域におけるつぎの命令をJjに割当てる。ボ
ックス157の後はボックス152に戻す。
ボックス155でのテスト結果が真である場合にはブラ
ンチ158からボックス159へと進めて、ここで命令Jiをア
ンシェーデッド領域の外へ動かす。上述した処置は命令
を如何にして動かすことができるかを示している。ボッ
クス159の後はブランチ154へと進める。
ボックス152でのテスト結果が双方共に誤りである場
合にはボックス160へのブランチ154へと進め、このボッ
クス160ではJiがアンシェーデッド領域におけるタイプ
J▲▼への最終命令であるか、否かをテストす
る。ボックス160でのテスト結果が真である場合には第1
b図の方法を161の個所にて終了させる。ボックス160で
のテスト結果が誤りである場合には、ボックス163に至
るブランチ162へ進める。
ボックス163ではタイプJ▲▼のつぎの命令をJ
iに割当てる。ボックス163の後は第1b図の方法をボック
ス151へと戻す。
上述した例での上記各ステップを実行させることによ
り、アンシェーデッド領域にあるべきとする僅か2つの
命令をI1及びI2としてマークされる命令であるとして決
定する。
第1b図に示した処置に似ている処置を適用して、字句
的フォワード又はループ繰上げ従属性とはならない残り
の命令をアンシェーデッド領域の下方で、しかもその領
域外に動かすことができる。この同様な処置が第1b図に
つき述べた処置と異なる点は、1つの命令をアンシェー
デッド領域における先行している全ての命令と比較する
代りに、コンパイラによって1つの命令を後続する全て
の命令と比較すると云う点だけにある。
第2図はそれぞれ命令メモリ205,206,207及び208を伴
なう4個の並列プロセッサ201,202,203及び204を具えて
いる並列処理システムのブロック図である。プロセッサ
の数nは任意とすることができ、ここにnは2以上の整
数とする。第2図の例では判り易くするためにプロセッ
サの数を4個とした。並列プロセッサ201,202,203及び2
04はデータメモリ209を共用する。各プロセッサはそれ
ぞれバリヤユニット210,211,212及び213Aを有してい
る。各バリヤユニット210,211,212及び213Aは4個の入
力端子と2個の出力端子を有している。他のプロセッサ
からの3つの入力は他の各プロセッサが同期化を所望す
るか、否かを指示する。これらの入力をここではWANT−
INと称する。他のプロセッサへ進む出力は各プロセッサ
が同期化を所望する旨を示す。これらの出力をここでは
WANT−OUTと称する。各バリヤユニット210,211,212及び
213Aは、その各実行ユニット213,214,215及び216からの
各I−入力端子及び各実行ユニットへの各STALL−出力
端子も有している。
第3図はバリヤユニット210,211,212及び213Aの1つ
を含む並列プロセッ201,202,203及び204の1つを詳細に
示したブロック図である。バリヤユニットは同期化情報
を受信し、処理し、且つ送出する。実行ユニット328内
に示す命令レジスタ301の容量は、関連する命令セット
における最長命令とI−ビット302を含めるのに十分な
大きさとする。プロセッサはマシンサイクル当り1つの
命令を実行するRISCプロセッサであるものとする。I−
ビットは命令レジスタ301における命令がシェーデッド
領域におけるものである場合にターン・オンされる。
又、このI−ビットは斯かる命令がアンシェーデッド領
域におけるものである場合にはターン・オフする。
命令レジスタ301の容量を小さくし、命令が数ワード
の形態をとるようにすることもでき、この場合には命令
の第1ワードにおけるI−ビットをロックアウトさせて
除くロジック(図示せず)を設けるようにする。シェー
デッド領域及びアンシェーデッド領域の冒頭部をマーク
するために各命令ストリームに完全命令を授けることも
できるが、この場合には状態マシーンを多少変更する必
要がある。又、この方法では各命令ストリームに命令を
加えることになるが、この方法はI−ビット法に比べて
既存のハードウェア及びマシン命令セットを多少変更す
るだけで済む。
マスクレジスタ303は内部的にアドレスされる特殊な
レジスタであり、これはn−1ビット(ここにnはシス
テムにおけるプロセッサの個数である)とする。本例で
はn=4とする。各プロセッサは第3図の装置を内蔵し
ている。従って、マスクレジスタ303はシステムにおけ
る他のプロセッサに絶えず注意を払うために3ビットと
する必要がある。このマスクレジスタ303は関連するタ
スクを実行しない他のプロセッサを無視するために用い
る。マスクレジスタ303の1ビットは、対応する他のプ
ロセッサが関連するタスクを実行している際にターン・
オフする。マスクレジスタの1ビットは対応する他のプ
ロセッサが関連タスクを実行していない場合にターン・
オンする。マスクレジスタ303は3ビット入力端子320か
らマスクビットを受信する。本例では3個のプロセッサ
だけにコードを実行させる必要がある。これがため、マ
スクレジスタ303の2ビットはループの1つを実行して
いる各プロセッサではターン・オフする。第3ビットが
ターン・オンすると、ループ実行中のプロセッサはルー
プを実行していない1つのプロセッサを無視する。コン
パイラはどのプロセッサがバリヤにて同期しているかを
知って、マスクレジスタ303に適当なビットを書込ませ
る命令を発生させることができる。
マスクレジスタのビットが他の1つのプロセッサにて
オンすることにより無視されるプロセッサは、斯かる他
のレジスタに固有のマスクレジスタをセットすることに
よりそのプロセッサを無視して独立のタスクを実行する
ことができる。このような独立タスクには並列処理を必
要とする独立ジョブで独立した同期化を図ることができ
る。
WANT−INは他のプロセッサからの「WANT」ビットを受
信するためのn−1ビット入力である。WANTビットは対
応するプロセッサが同期化を望む場合にオンする。
整合回路304はマスクレジスタ303におけるビット及び
入力WANT−INにおけるWANTビットを調整するためのロジ
ックを含んでいる。整合回路304の出力を「MATCH」と称
し、これは関連する他のプロセッサ全てが同期化を望む
場合にだけオンする。
状態マシン305はI−ビット302と整合回路304の出力M
ATCHを用いて同期化状態を決定する。状態マシン305は
2ビット、即ちSTALLとWANT−OUTを出力する。STALLは
プロセッサが命令を実行している時はオフする。STALL
がターン・オンするとプロセッサは命令の実行を停止す
る。WANT−OUTは各プロセッサが同期化を望む場合にタ
ーン・オンし、そうでない場合にターン・オフする。
第4図は状態マシン305に対する状態図である。本例
では状態マシンを所謂メアリ(Mealy)マシンとする。
このマシンでは、これが状態を変えなくても出力STALL
及びWANT−OUTは変化することができる。第4図では状
態マシン305への入力を小さな活字で示し、又状態マシ
ン305からの出力を大きな活字で示してある。
各プロセッサ201,202,203及び204は第4図につき説明
するような1つの状態マシンを含んでいる。これらの状
態マシンを作動させるためには状態マシン間で信号を同
期させる共通のクロック又は他の手段を設ける必要があ
る。図面の簡単化のために状態マシン305を同期させる
回路は図示してない。
トランジョン401は状態マシン4を状態0に留めるこ
とに相当し、I−ビットがオフである間は状態マシンは
状態0のままである。換言するに、プロセッサはコード
のアンシェーデッド領域を実行し、コードのシェーデッ
ド領域へは進まない。この場合、STALL及びWANT−OUTは
双方共にオフである。
トランジョン402は状態マシンを状態0から状態1に
する。状態マシンは、その各プロセッサが同期化の用意
が整っているも、少なくとも1つの他のプロセッサが同
期化の準備が成されていない場合、即ちI−ビットがオ
ンで、MATCHがオフである場合にトランジョン402をと
る。第4図では条件I=0及びMATCH=0をI及びMAT
CHにてそれぞれ示してある。トランジション402の期
間中はWANT−OUTがオンし、STALLはオフする。第4図
で、STALL又はWANT−OUTがオフする場合は省いてある。
トランジション404は状態マシンを状態1に保持する。
マシンは、同期化を望んでいるも、まだ同期せず、命令
を実行し続けている限りトランジション404をとる。即
ち、マシンはI−ビットがオンし、MATCHがオフしてい
る間は状態1に留まる。状態1の期間中WANT−OUTはオ
ンし、STALLはオフする。
トランジション403はマシンを状態0から状態2にす
る。マシンはそのプロセッサが同期化の用意が整い、し
かもそれが同期化の用意が整った最後のプロセッサであ
る場合にトランジション403をとる。幾つかのプロセッ
サは同時に状態2に達することができ、従ってそれらの
プロセッサは同時に同期化の用意が整った「最終」プロ
セッサでもある。状態2はプロセッサが同期化される状
態である。状態マシン305がトランジション403をとる
と、このマシンはWANT−OUTをオンさせたままとする。
しかし、マシンはそれが状態2に達すると、WANT−OUT
をターン・オフする。STALLはオフしたままである。
トランジション405はマシンを状態1から状態2にす
る。マシンは各プロセッサが依然シェーデッド領域にあ
り、同期化を希望しており、しかも全ての他のプロセッ
サがそれらの各シェーデッド領域に達している場合、即
ちI−ビット及びMATCHの双方がオンする場合にトラン
ジション405を生ぜしめる。マシンがトランジション405
を生じさせると、これはWANT−OUTビットをオンさせ
る。トランジション405の期間中はSTALLがオフする。WA
NT−OUTビットはマシンが状態2に達するとオフに戻
る。
トランジション406はマシンを状態1から状態3にす
る。マシンは、これがそのシェーデッド領域を離れる用
意が整っているも、マシンを状態2にすることはできな
かった場合にトランジション406を生ぜしめる。即ち、
I−ビットがターン・オフし、MATCHがオフである場合
にトランジション406を生じさせる。この点にて各プロ
セッサは停止しなければならない。これがため、WANT−
OUT及びSTALLの双方はターン・オンする。
トランジション407はマシンを状態1から状態0にす
る。マシンはMATCHがターン・オンし、これと同時に該
当プロセッサがシェーデッド領域を同時に離れる際に斯
かるトランジションを生ぜしめる。マシンはトランジシ
ョン407の期間中はWANT−OUTをオンしたままとし、マシ
ンが状態0に達すると再びそれをオフにする。
トランジション408は状態マシン305を状態2から状態
0にする。トランジション408は同期化後でI−ビット
がターン・オフする際、即ち各プロセッサがシェーデッ
ド領域を離れる際に生ずる。トランジション408の期間
中にはWANT−OUT及びSTALLが共にオフする。
トランジション409はマシンを状態2に保つ。トラン
ジション409は、同期化後にI−ビットが1のままであ
ると、即ち各並列プロセッサが同期化後にシェーデッド
領域に留まると発生する。トランジション409の期間中
はWANT−OUT及びSTALLが共にオフする。
トランジション411はマシンを状態3に保ち、即ちマ
シンを停止させて、同期するのを待つ。マシンはMATCH
がオフしている限りトランジション411を生じさせる。
マシンは状態3にある間はWANT−OUT及びSTALLの双方を
オンし続ける。
トランジション410はマシンを状態3から状態0にす
る。マシンは、それが他のマシンとの同期に成功して、
シェーデッド領域を離れることができるようになると、
即ちMATCHがターン・オンするとトランジション410を生
じさせる。このトランジション410の期間中はWANT−OUT
はオンしたままである。WANT−OUTはマシンが一旦状態
0に達するとターン・オフする。トランジション410の
期間中にはSTALLがオフする。
第5図はボックス(整合回路)304を詳細に示したも
のであり、この第5図にはマスクレジスタ303の3ビッ
ト501,502及び503も示してある。マスクレジスタ303が
3ビットを有するのは、システムに3つの他の並列プロ
セッサがあるからである。WANT−INの3ビットを3つの
別個のラインWANT−IN0,WANT−IN1及びWANT−IN2として
示す。マスタレジスタビット503及びWANT−IN0をORゲー
ト504に供給する。マスクレジスタビット502及びWANT−
IN1をORゲート505に供給する。マスクレジスタビット50
1及びWANT−IN2をORゲート506に供給する。ORゲート50
4,505及び506の出力はANDゲート507に供給する。このAN
Dゲート507の出力がMATCHである。
従って、出力MATCHは無視されていない他の全てのプ
ロセッサが同期化を望む場合にオンする。出力MATCHは
他の全てのプロセッサが無視されている場合にもオンす
る。
【図面の簡単な説明】
第1a図はシェーデッド及びアンシェーデッド領域を識別
するためにソースコードをコンパイルする方法を説明す
るための流れ図; 第1b図はコードをリオーダする工程を説明するための流
れ図; 第2図は本発明による並列処理システムを示すブロック
図; 第3図は並列プロセッサ同期化回路の一例を示すブロッ
ク図; 第4図は第3図の回路の状態図; 第5図は第3図の回路における整合回路の一例を示す詳
細図である。 201,202,203,204……並列プロセッサ 205,206,207,208……命令メモリ 209……データメモリ 210,211,212,213A……バリヤユニット 213,214,215,216……実行ユニット 301……命令レジスタ 303……マクスレジスタ 304……整合回路 305……状態マシン 328……実行ユニット 504,505,506……ORゲート 507……ANDゲート
フロントページの続き (56)参考文献 特開 昭62−35974(JP,A) Proceedings of AS PLOS ▲III▼ Vol.24 S pelssue 1989 p54−63 (58)調査した分野(Int.Cl.6,DB名) G06F 15/177 WPI INSPEC JOIS

Claims (12)

    (57)【特許請求の範囲】
  1. 【請求項1】a.それぞれの各プロセッサが並列命令スト
    リームのうちの各1つを処理する複数個の並列プロセッ
    サ(201,202,203,204);及び b.前記プロセッサを同期させる同期化手段(210,211,21
    2,213A); を具えている並列処理システムにおいて、 c.前記それぞれの各命令ストリームが、プロセッサ間の
    同期をとる必要がある複数命令のアンシェーデッド領域
    間にあって、プロセッサ間の同期をとる必要がない複数
    命令のシェーデッド領域を包含し;且つ d.前記同期化手段が: −前記複数のプロセッサのうちの或る特定のプロセッサ
    が、或るシェーデッド領域に後続するアンシェーデッド
    領域における命令を、他のプロセッサがシェーデッド領
    域に先行しているアンシェーデッド領域における全ての
    命令を実行し終わるまでは、実行しなくすることにより
    同期を確立し;且つ −前記特定のプロセッサが同期を企てている間に該特定
    のプロセッサがシェーデッド領域における命令を実行し
    得るべく; 作動するようにしたことを特徴とする並列処理システ
    ム。
  2. 【請求項2】コンピュータコードを複数の並列命令スト
    リームとして実行し、且つ前記同期化手段が複数の同期
    装置(210,211,212,213A)を具え、前記プロセッサのう
    ちの或る特定のプロセッサを同期させる各特定の同期装
    置が: a.他の少なくとも1個のプロセッサと通信するための通
    信手段(306,307);及び b.他のプロセッサから受信した情報に基づいて前記特定
    のプロセッサを制御するための制御手段(303,304,305,
    328); を具えていることを特徴とする請求項1に記載の並列処
    理システム。
  3. 【請求項3】a.前記通信手段が: i.少なくとも1個の他のプロセッサから、該他のプロセ
    ッサが同期を望む旨の指示を受取る入力手段(306)
    と; ii.前記特定のプロセッサが同期を望む旨の指示を送出
    する出力手段(307)と; を具え、 b.前記制御手段が: i.前記特定のプロセッサ用の命令ストリームにおけるシ
    ェーデッド領域とアンシェーデッド領域とを識別する手
    段(301,302);及び ii.前記シェーデッド及びアンシェーデッド領域の識別
    結果に応答し、且つ前記受信した指示に応答して前記特
    定プロセッサ用の命令ストリームの実行を制御する実行
    制御手段(305,328); を具え、前記制御手段が前記入力手段及び前記出力手段
    に結合されるようにしたことを特徴とする請求項2に記
    載の並列処理システム。
  4. 【請求項4】前記同期装置が、多数の並列命令ストリー
    ムに応じて前記他のプロセッサのうちの少なくとも1個
    の第2プロセッサを無視する無視手段(303,320)を具
    えていることを特徴とする請求項2に記載の並列処理シ
    ステム。
  5. 【請求項5】前記無視手段がマスクレジスタを具えてい
    ることを特徴とする請求項4に記載の並列処理システ
    ム。
  6. 【請求項6】前記同期装置が、多数の並列命令ストリー
    ムに応じて前記並列プロセッサのうちの少なくとも2つ
    のプロセッサを無視して、これら少なくとも2つのプロ
    セッサが独立して同期するようにする手段(303,320)
    を具えていることを特徴とする請求項2に記載の並列処
    理システム。
  7. 【請求項7】前記実行制御手段(305)が状態マシンを
    具えていることを特徴とする請求項3に記載の並列処理
    システム。
  8. 【請求項8】前記状態マシンが: a.前記入力手段に結合され、前記指示を受とるためのWA
    NT入力端子(306)と; b.前記シェーデッド及びアンシェーデッド領域を識別す
    る信号を受信するための第2入力端子と; c.前記出力手段に結合され、送出指示を供給するための
    第1出力端子(307)と; d.各プロセッサの前記実行制御手段(328)に結合さ
    れ、停止状態では各プロセッサの実行を停止し、それ以
    外では各プロセッサを作動させることができる信号を供
    給するSTALL出力端子(308)と;を具えていることを特
    徴とする請求項7に記載の並列処理システム。
  9. 【請求項9】前記状態マシンがつぎの4つの状態: a.プロセッサがアンシェーデッド領域における命令を実
    行する第1状態; b.他のプロセッサがそれぞれ各自のシェーデッド領域に
    達するのを待っている間に当該プロセッサがシェーデッ
    ド領域の命令を実行する第2状態; c.他のプロセッサがそれぞれ各自のシェーデッド領域に
    達しても当該プロセッサがシェーデッド領域の命令を実
    行する第3状態;及び d.当該プロセッサがシェーデッド領域の終りに達したら
    停止して、他のプロセッサがそれぞれ各自のシェーデッ
    ド領域に達するのを待機する第4状態; をとるようにしたことを特徴とする請求項8に記載の並
    列処理システム。
  10. 【請求項10】前記同期装置が多数の並列命令ストリー
    ムに応じて前記他のプロセッサのうちの少なくとも1個
    の第2プロセッサを無視するためのマスクレジスタ(30
    3)も具え、且つ前記命令実行手段(305,328)が: a.前記入力手段に結合され、前記指示を受とるためのWA
    NT入力端子(306)と; b.前記シェーデッド及びアンシェーデッド領域を識別す
    る信号を受信するための第2入力端子と; c.前記出力手段に結合され、送出指示を供給するための
    第1出力端子(307)と; d.各プロセッサの前記実行制御手段(328)に結合さ
    れ、停止状態では各プロセッサの実行を停止し、それ以
    外では各プロセッサを作動させることができる信号を供
    給するSTALL出力端子(308)と;を具えている状態マシ
    ンを含むようにしたことを特徴とする請求項3に記載の
    並列処理システム。
  11. 【請求項11】それぞれの各プロセッサが並列命令スト
    リームのうちの各1つを処理する複数個の並列プロセッ
    サ及びこれらのプロセッサを同期させる同期化手段(21
    0,211,212,213A)を具えている並列処理システム用のコ
    ンピュータコードをコンパイルする方法であって、それ
    ぞれの各命令ストリームが、プロセッサ間の同期をとる
    必要がある複数命令のアンシェーデッド領域間にあっ
    て、プロセッサ間の同期をとる必要がない複数命令のシ
    ェーデッド領域を包含し、前記それぞれのプロセッサを
    並列に実行させることができる前記コンピュータコード
    の複数の各部分を識別する第1識別ステップ(102)を
    具えている、並列処理システム用のコンピュータコード
    をコンパイルする方法において、 −前記同期化手段を作動させる前記コンピュータコード
    のそれぞれの部分のうちの少なくとも1つのコード部分
    内におけるシェーデッド領域及びアンシェーデッド領域
    を識別する第2識別ステップ(104)が: 前記少なくとも1つのコード部分にて、字句的にフォワ
    ードか、又はループ繰上げ従属性を有する命令のうちの
    最初と、最後と、中間の命令を前記アンシェーデッド領
    域のうちの特定の領域に割当てるステップを含むことを
    特徴とするコンピュータコードのコンパイル方法。
  12. 【請求項12】それぞれの各プロセッサが並列命令スト
    リームの各1つを処理する複数個の並列プロセッサを同
    期させる方法において、当該方法が: −それぞれの各命令ストリームに、プロセッサ間の同期
    をとる必要がある複数命令のアンシェーデッド領域間に
    あって、プロセッサ間の同期をとる必要がない複数命令
    のシェーデッド領域を設けるステップと; −前記複数のプロセッサのうちの或る特定のプロセッサ
    が、或るシェーデッド領域に後続するアンシェーデッド
    領域における命令を、他のプロセッサがシェーデッド領
    域に先行しているアンシェーデッド領域における全ての
    命令を実行し終わるまでは、実行しなくすると共に、前
    記特定のプロセッサが同期を企てている間に、この特定
    のプロセッサがシェーデッド領域における命令を実行し
    得るようにするステップと; を具えていることを特徴とする並列プロセッサの同期方
    法。
JP1198085A 1988-08-02 1989-08-01 並列処理システム及び並列プロセッサの同期方法 Expired - Lifetime JP2947356B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US22727688A 1988-08-02 1988-08-02
US227276 1988-08-02

Publications (2)

Publication Number Publication Date
JPH02110763A JPH02110763A (ja) 1990-04-23
JP2947356B2 true JP2947356B2 (ja) 1999-09-13

Family

ID=22852477

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1198085A Expired - Lifetime JP2947356B2 (ja) 1988-08-02 1989-08-01 並列処理システム及び並列プロセッサの同期方法

Country Status (4)

Country Link
US (2) US5802374A (ja)
EP (1) EP0353819B1 (ja)
JP (1) JP2947356B2 (ja)
DE (1) DE68927946T2 (ja)

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4019040A1 (de) * 1990-06-14 1991-12-19 Philips Patentverwaltung Multirechnersystem
JPH04184556A (ja) * 1990-11-20 1992-07-01 Mitsubishi Electric Corp 多重処理システムおよび多重処理システムの同期制御方法
US5434995A (en) * 1993-12-10 1995-07-18 Cray Research, Inc. Barrier synchronization for distributed memory massively parallel processing systems
US5721921A (en) * 1995-05-25 1998-02-24 Cray Research, Inc. Barrier and eureka synchronization architecture for multiprocessors
JP3573546B2 (ja) * 1995-10-27 2004-10-06 富士通株式会社 並列計算機における並列プロセススケジューリング方法および並列計算機用処理装置
US6055618A (en) * 1995-10-31 2000-04-25 Cray Research, Inc. Virtual maintenance network in multiprocessing system having a non-flow controlled virtual maintenance channel
US5864738A (en) * 1996-03-13 1999-01-26 Cray Research, Inc. Massively parallel processing system using two data paths: one connecting router circuit to the interconnect network and the other connecting router circuit to I/O controller
JP2882475B2 (ja) * 1996-07-12 1999-04-12 日本電気株式会社 スレッド実行方法
EP0825506B1 (en) 1996-08-20 2013-03-06 Invensys Systems, Inc. Methods and apparatus for remote process control
JPH10149285A (ja) * 1996-11-18 1998-06-02 Hitachi Ltd 命令実行制御方法および情報処理装置
US6295601B1 (en) * 1997-05-30 2001-09-25 Sun Micro Systems, Inc. System and method using partial trap barrier instruction to provide trap barrier class-based selective stall of instruction processing pipeline
US6044206A (en) * 1997-10-14 2000-03-28 C-Cube Microsystems Out of order instruction processing using dual memory banks
US5970232A (en) * 1997-11-17 1999-10-19 Cray Research, Inc. Router table lookup mechanism
US6101181A (en) * 1997-11-17 2000-08-08 Cray Research Inc. Virtual channel assignment in large torus systems
US6230252B1 (en) 1997-11-17 2001-05-08 Silicon Graphics, Inc. Hybrid hypercube/torus architecture
JPH11259437A (ja) * 1998-03-12 1999-09-24 Hitachi Ltd 不要バリア命令の削減方式
US6216174B1 (en) 1998-09-29 2001-04-10 Silicon Graphics, Inc. System and method for fast barrier synchronization
JP2000132529A (ja) * 1998-10-23 2000-05-12 Sony Corp 並列処理装置、並列処理方法および記録媒体
US7089530B1 (en) 1999-05-17 2006-08-08 Invensys Systems, Inc. Process control configuration system with connection validation and configuration
AU5025600A (en) 1999-05-17 2000-12-05 Foxboro Company, The Process control configuration system with parameterized objects
US7043728B1 (en) 1999-06-08 2006-05-09 Invensys Systems, Inc. Methods and apparatus for fault-detecting and fault-tolerant process control
US6788980B1 (en) 1999-06-11 2004-09-07 Invensys Systems, Inc. Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network
US6507947B1 (en) * 1999-08-20 2003-01-14 Hewlett-Packard Company Programmatic synthesis of processor element arrays
US6374403B1 (en) * 1999-08-20 2002-04-16 Hewlett-Packard Company Programmatic method for reducing cost of control in parallel processes
US6438747B1 (en) * 1999-08-20 2002-08-20 Hewlett-Packard Company Programmatic iteration scheduling for parallel processors
US6751698B1 (en) * 1999-09-29 2004-06-15 Silicon Graphics, Inc. Multiprocessor node controller circuit and method
US6674720B1 (en) 1999-09-29 2004-01-06 Silicon Graphics, Inc. Age-based network arbitration system and method
US6473660B1 (en) 1999-12-03 2002-10-29 The Foxboro Company Process control system and method with automatic fault avoidance
US6766437B1 (en) * 2000-02-28 2004-07-20 International Business Machines Corporation Composite uniprocessor
US6963967B1 (en) * 2000-06-06 2005-11-08 International Business Machines Corporation System and method for enabling weak consistent storage advantage to a firmly consistent storage architecture
US8949468B2 (en) * 2001-09-21 2015-02-03 International Business Machines Corporation Method and system for time synchronization among systems using parallel sysplex links
US7346898B2 (en) * 2002-01-29 2008-03-18 Texas Instruments Incorporated Method for scheduling processors and coprocessors with bit-masking
JP2004088505A (ja) * 2002-08-27 2004-03-18 Matsushita Electric Ind Co Ltd 並列ストリーム暗復号装置及びその方法並びに並列ストリーム暗復号プログラム
US7577816B2 (en) 2003-08-18 2009-08-18 Cray Inc. Remote translation mechanism for a multinode system
US7379424B1 (en) 2003-08-18 2008-05-27 Cray Inc. Systems and methods for routing packets in multiprocessor computer systems
US7743223B2 (en) 2003-08-18 2010-06-22 Cray Inc. Decoupling of write address from its associated write data in a store to a shared memory in a multiprocessor system
US7366873B1 (en) 2003-08-18 2008-04-29 Cray, Inc. Indirectly addressed vector load-operate-store method and apparatus
US7735088B1 (en) 2003-08-18 2010-06-08 Cray Inc. Scheduling synchronization of programs running as streams on multiple processors
US8307194B1 (en) 2003-08-18 2012-11-06 Cray Inc. Relaxed memory consistency model
US7421565B1 (en) 2003-08-18 2008-09-02 Cray Inc. Method and apparatus for indirectly addressed vector load-add -store across multi-processors
US7334110B1 (en) 2003-08-18 2008-02-19 Cray Inc. Decoupled scalar/vector computer architecture system and method
US7437521B1 (en) 2003-08-18 2008-10-14 Cray Inc. Multistream processing memory-and barrier-synchronization method and apparatus
US7761923B2 (en) 2004-03-01 2010-07-20 Invensys Systems, Inc. Process control methods and apparatus for intrusion detection, protection and network hardening
US7324112B1 (en) 2004-04-12 2008-01-29 Nvidia Corporation System and method for processing divergent samples in a programmable graphics processing unit
US7477255B1 (en) * 2004-04-12 2009-01-13 Nvidia Corporation System and method for synchronizing divergent samples in a programmable graphics processing unit
WO2006092807A1 (en) * 2005-03-04 2006-09-08 Hewlett-Packard Development Company, L.P. A method and apparatus for facilitating pipeline throughput
US7478769B1 (en) 2005-03-09 2009-01-20 Cray Inc. Method and apparatus for cooling electronic components
US8392900B1 (en) * 2005-03-17 2013-03-05 Hewlett-Packard Development Company, L.P. Methods and systems for barrier reduction in parallel processing systems
JP4372043B2 (ja) * 2005-05-12 2009-11-25 株式会社ソニー・コンピュータエンタテインメント コマンド実行制御装置、コマンド実行指示装置およびコマンド実行制御方法
US7770170B2 (en) * 2005-07-12 2010-08-03 Microsoft Corporation Blocking local sense synchronization barrier
GB0524720D0 (en) * 2005-12-05 2006-01-11 Imec Inter Uni Micro Electr Ultra low power ASIP architecture II
US7860857B2 (en) 2006-03-30 2010-12-28 Invensys Systems, Inc. Digital data processing apparatus and methods for improving plant performance
US20080005357A1 (en) * 2006-06-30 2008-01-03 Microsoft Corporation Synchronizing dataflow computations, particularly in multi-processor setting
GB0613289D0 (en) * 2006-07-04 2006-08-16 Imagination Tech Ltd Synchronisation of execution threads on a multi-threaded processor
JP2008097498A (ja) * 2006-10-16 2008-04-24 Olympus Corp プロセッシング・エレメント、コントロール・ユニット、及びこれらを備える処理システム、分散処理方法
US8108845B2 (en) * 2007-02-14 2012-01-31 The Mathworks, Inc. Parallel programming computing system to dynamically allocate program portions
US7865778B2 (en) * 2007-02-20 2011-01-04 International Business Machines Corporation Method and system for detecting synchronization errors in programs
EP2304536A4 (en) 2008-06-20 2012-08-15 Invensys Sys Inc SYSTEMS AND METHOD FOR IMMERSIBLE INTERACTION WITH ACTUAL AND / OR SIMULATED DEVICES FOR PROCESS, ENVIRONMENTAL AND INDUSTRIAL CONTROL
JP2010033555A (ja) * 2008-06-30 2010-02-12 Olympus Corp コントロール・ユニット、分散処理システム及び分散処理方法
US20100281469A1 (en) * 2009-04-30 2010-11-04 Nec Laboratories America, Inc. Symbolic predictive analysis for concurrent programs
US8127060B2 (en) 2009-05-29 2012-02-28 Invensys Systems, Inc Methods and apparatus for control configuration with control objects that are fieldbus protocol-aware
US8463964B2 (en) 2009-05-29 2013-06-11 Invensys Systems, Inc. Methods and apparatus for control configuration with enhanced change-tracking
US9959572B2 (en) 2009-12-10 2018-05-01 Royal Bank Of Canada Coordinated processing of data by networked computing resources
US9940670B2 (en) 2009-12-10 2018-04-10 Royal Bank Of Canada Synchronized processing of data by networked computing resources
US10057333B2 (en) 2009-12-10 2018-08-21 Royal Bank Of Canada Coordinated processing of data by networked computing resources
BR112012013891B1 (pt) * 2009-12-10 2020-12-08 Royal Bank Of Canada Sistema para efetuar processamento sincronizado de dados através de múltiplos recursos de computação em rede, método, dispositivo e meio legível por computador
US9979589B2 (en) 2009-12-10 2018-05-22 Royal Bank Of Canada Coordinated processing of data by networked computing resources
US9952620B2 (en) * 2014-04-10 2018-04-24 Intel Corporation Time-synchronizing a group of nodes
DE102017209697A1 (de) * 2016-06-13 2017-12-14 Denso Corporation Parallelisierungsverfahren, Parallelisierungswerkzeug und fahrzeuginterne Vorrichtung

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4295193A (en) * 1979-06-29 1981-10-13 International Business Machines Corporation Machine for multiple instruction execution
US4412303A (en) * 1979-11-26 1983-10-25 Burroughs Corporation Array processor architecture
JPS6043535B2 (ja) * 1979-12-29 1985-09-28 富士通株式会社 情報処理装置
US4435758A (en) * 1980-03-10 1984-03-06 International Business Machines Corporation Method for conditional branch execution in SIMD vector processors
US4468736A (en) * 1982-06-08 1984-08-28 Burroughs Corporation Mechanism for creating dependency free code for multiple processing elements
US4667290A (en) * 1984-09-10 1987-05-19 501 Philon, Inc. Compilers using a universal intermediate language
JPS6224366A (ja) * 1985-07-03 1987-02-02 Hitachi Ltd ベクトル処理装置
US5021945A (en) * 1985-10-31 1991-06-04 Mcc Development, Ltd. Parallel processor system for processing natural concurrencies and method therefor
JPS6337431A (ja) * 1986-08-01 1988-02-18 Hitachi Ltd 並列処理制御方法
JPH0795274B2 (ja) * 1986-09-19 1995-10-11 株式会社日立製作所 配列添字解析方法
JPH0814817B2 (ja) * 1986-10-09 1996-02-14 株式会社日立製作所 自動ベクトル化方法
US4965724A (en) * 1987-03-05 1990-10-23 Oki Electric Industry Co., Ltd. Compiler system using reordering of microoperations to eliminate interlocked instructions for pipelined processing of assembler source program
JPH01108638A (ja) * 1987-10-21 1989-04-25 Hitachi Ltd 並列化コンパイル方式
JP2738692B2 (ja) * 1988-01-29 1998-04-08 株式会社日立製作所 並列化コンパイル方法
US4989131A (en) * 1988-07-26 1991-01-29 International Business Machines Corporation Technique for parallel synchronization
JPH0630094B2 (ja) * 1989-03-13 1994-04-20 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチプロセツサ・システム
US5127092A (en) * 1989-06-15 1992-06-30 North American Philips Corp. Apparatus and method for collective branching in a multiple instruction stream multiprocessor where any of the parallel processors is scheduled to evaluate the branching condition
US5317734A (en) * 1989-08-29 1994-05-31 North American Philips Corporation Method of synchronizing parallel processors employing channels and compiling method minimizing cross-processor data dependencies
JPH03119416A (ja) * 1989-10-03 1991-05-21 Toshiba Corp コンピュータシステム
US5119495A (en) * 1989-12-21 1992-06-02 Bull Hn Information Systems Inc. Minimizing hardware pipeline breaks using software scheduling techniques during compilation
JPH04211830A (ja) * 1990-02-05 1992-08-03 Matsushita Electric Ind Co Ltd 並列化コンパイル方式
US5261067A (en) * 1990-04-17 1993-11-09 North American Philips Corp. Method and apparatus for providing synchronized data cache operation for processors in a parallel processing system
JP3032031B2 (ja) * 1991-04-05 2000-04-10 株式会社東芝 ループ最適化方法及び装置
US5434995A (en) * 1993-12-10 1995-07-18 Cray Research, Inc. Barrier synchronization for distributed memory massively parallel processing systems

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Proceedings of ASPLOS ▲III▼ Vol.24 Spelssue 1989 p54−63

Also Published As

Publication number Publication date
DE68927946T2 (de) 1997-10-16
JPH02110763A (ja) 1990-04-23
US5802374A (en) 1998-09-01
EP0353819A2 (en) 1990-02-07
EP0353819A3 (en) 1991-07-17
DE68927946D1 (de) 1997-05-15
EP0353819B1 (en) 1997-04-09
US5787272A (en) 1998-07-28

Similar Documents

Publication Publication Date Title
JP2947356B2 (ja) 並列処理システム及び並列プロセッサの同期方法
US20030088756A1 (en) Spawn-join instruction set architecture for providing explicit multithreading
EP0400328B1 (en) Program parallelizing apparatus
EP0623875B1 (en) Multi-processor computer system having process-independent communication register addressing
US5303357A (en) Loop optimization system
US6658451B1 (en) Parallel join operation to support space and time dimensional program execution
WO1998043193A9 (en) Spawn-join instruction set architecture for providing explicit multithreading
JPH06266683A (ja) 並列処理装置
EP0523337A2 (en) Self-scheduling parallel computer system and method
JPH02238553A (ja) マルチプロセツサ・システム
US4956800A (en) Arithmetic operation processing apparatus of the parallel processing type and compiler which is used in this apparatus
JP2009151645A (ja) 並列処理装置及びプログラム並列化装置
Eles et al. Synthesis of VHDL concurrent processes
US5907693A (en) Autonomously cycling data processing architecture
Labrousse et al. CREATE-LIFE: a modular design approach for high performance ASICs
US20040030872A1 (en) System and method using differential branch latency processing elements
US6954927B2 (en) Hardware supported software pipelined loop prologue optimization
Gupta et al. High speed synchronization of processors using fuzzy barriers
JP3311381B2 (ja) コンパイラにおける命令スケジューリング処理方法
Su et al. Efficient DOACROSS execution on distributed shared-memory multiprocessors
Midkiff Automatic generation of synchronization instructions for parallel processors
JP3008223B2 (ja) プロセッサ間の同期処理装置
JP2000020482A (ja) ループ並列化方法
Hamel et al. An optimizing C* compiler for a hypercube multicomputer
JPH09237186A (ja) ループ制御装置およびプロセッサ

Legal Events

Date Code Title Description
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070702

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080702

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080702

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080702

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080702

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090702

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100702

Year of fee payment: 11

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100702

Year of fee payment: 11