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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/458—Synchronisation, e.g. post-wait, barriers, locks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation 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つの命令
とすることができる。特に、上述した目的はそれぞれの
命令ストリームにおけるコードの所定領域を同定し、且
つ識別して実現することができる。これらの領域のこと
をここでは「アンシェーデッド」(unshaded)に対する
「シェーデッド」(shaded)領域と称する。シェーデッ
ド領域をここでは「ファジィ」バリヤとも称する。プロ
セッサは各シェーデッド領域に達する際に同期化を試み
始める。この同期化は、関連するタスクを実行する全て
のプロセッサがそれらの各対応するシェーデッド領域に
先行しているアンシェーデッド領域における全ての命令
を完全に実行し終わるまでは各シェーデッド領域に続く
命令をプロセッサが実行しなくなる際に達成される。
つ同期情報に絶えず注意を払う状態マシンを用いる装置
によっても達成される。
はシェーデッド領域を作るためにソースコードをコンパ
イルする方法を示す流れ図である。
る。並列処理するのに好適なソースコードの一例はつぎ
の通りである。
素に適当な値を割当てる。
のできるコード部分をコンパイラによって識別する。ボ
ックス102では前記H.Stoneによる文献及び前記M.Wolfe
外1名による論文に記載されているような方法を用い
る。上記ソースコードの例では内部ループを別々のプロ
セッサで並列に実行させることができる。この場合の内
部ループに対するコードを後記表Aに示してあり、この
表におけるbrrはバリヤを表わす。
換言するに、本例では、ループの第1繰返しでプロセッ
サP2が計算したa〔1〕〔3〕の値をループの第2繰返
しでプロセッサP1が必要とする。従来3個の各プロセッ
サは、他の各プロセッサがバリヤに達するまで各ループ
にて待たなければならなかった。
コードを発生する。この中間コードは、つぎに後続する
コードに応じて「3アドレスコード」と称される標準の
表記法で表わされる。このコード及びそれを発生させる
ための技法についてはエー・アーオ(A.Aho)外1名に
よる文献“Principles of Compiler Desigh"(Addison
Wesley 1979)の第7節に記載されている。
を、プロセッサP1,P2及びP3に対して2,3及び4にそれぞ
れ初期設定される“i"の値以外は同じとする。
域を識別する。シェーデッド領域はファジィバリヤを制
定する。換言するに、慣例のバリヤの場合のように、プ
ロセッサはシェーデッド領域に達すると、このプロセッ
サは同期化を所望する。しかし、このような従来のバリ
ヤの場合に対し、ファジィバリヤ、即ちシェーデッド領
域の場合にはプロセッサは同期するのを待っている間に
命令を実行するのを継続することができる。アンシェー
デッド領域はプロセッサが同期を求めない領域を制定す
る。
にし、開始時における適当なコメントは: コメント:Aをアレイaの基本アドレスとする; とし、又第1中断ライン以降の第2コメントは: コメント:アンシェーデッド領域 とする。
デッド領域をつぎのように確かめる。不履行、即ちアン
シェーデッド領域が識別されない場合には、シェーデッ
ド領域における命令が不履行となる。この不履行が設定
される理由は、シェーデッド領域における命令を実行し
ている間にマイクロプロセッサは決して停止できないか
らである。これがため、シェーデッド領域の方が好まし
い。
ける。先ず字句的にフォワードな従属性及び/又はルー
プ繰上げ従属性LFDを有する最初と最後の命令をアンシ
ェーデッド部分として識別する。この場合におけるこれ
らの最初と最後の命令との間の全ての命令もアンシェー
デッド部分である。本例におけるI1及びI2はループ繰上
げ従属性のみを有する命令である。命令I1の実行中にプ
ロセッサは以前の繰返しで他の或るプロセッサが計算し
た値をアクセスする。命令I2の実行中にはつぎの繰返し
にて他の或るプロセッサにより用いられる値をアレイに
記憶させる。これがため、命令I1,I2及びこれらの間の
全ての命令はアンシェーデッド部分である。
れぞれ対応するシェーデッド領域に先行しているアンシ
ェーデッド領域における命令を全て実行し終るまでプロ
セッサがシェーデッド領域に後続するアンシェーデッド
領域の命令を実行しなければ、並列プロセッサは「同期
化」されることになる。このような要件からして、字句
的にフォワードな従属性及びループ繰上げ従属性となる
それらの命令は、これらの従属性が解消されるまでは実
行させることができない。
らに高める。この目的には標準のリオーダ技法を用いる
ことができる。プロセッサは、それがシェーデッド領域
における命令を実行している間は決して停止させること
ができないから、アンシェーデッド領域が小さくなるに
つれて効率は高くなる。これがため、リオーダ技法を用
いてアンシェーデッド領域における命令数を減らすよう
にする。従って、リオーダした後には中間コードを上述
したのと同じコメントで後記表Cに示すように変換す
る。
をアンシェーデッド領域外へと動かした。本例では、3
つの命令をI1の上に動かした。場合によっては、字句的
にフォワード又はループ繰上げ従属性を有する最終命令
を過ぎた命令を動かすことによっても同じ効果を達成す
ることができる。換言するに、命令はこれらを上方(I1
の上)又は下方(I2の下)に動かすことによってアンシ
ェーデッド領域から動かすことができる。
間コードがループの一部である旨を認める必要がある。
従って、アンシェーデッド領域の後のシェーデッド領域
は、つぎのループ繰返しでアンシェーデッド領域の前の
シェーデッド領域に結合する。例えば、ループの最初の
繰返し終了時に第1プロセッサはループの冒頭に戻っ
て、コードを実行し続けることができる。他の全てのプ
ロセッサが、それらの第1繰返しで各命令I2を実行し終
えた場合には、第1プロセッサはその第2繰返しで命令
I1を実行し始めることができる。殆どの命令はシェーデ
ッド領域にあるから、プロセッサは互いに同期を待つの
に殆ど、或いは全く時間がかからず、特にシェーデッド
領域を特徴付けることによってプロセッサ間の結合を左
程厳格としないで済む。
例に対する各プロセッサ用のVAXアセンブリコードを後
記表Dに示してある。アセンブリは標準コンパイラによ
り行われる標準の処置である。アセンブルする期間中に
は、この目的のために命令中にリザーブした1ビットを
ターン・オンさせることによって命令をシェーデッド領
域の部分としてマークすることができる。このビットを
「I−ビット」と称する。
つを第1b図の流れ図で説明する。第1b図では字句的にフ
ォワード又はループ繰上げ従属性でない命令にはJ▲
▼なる表記法を用い、字句的フォワード又はループ
繰上げ従属性を有する命令にはJLFDなる表記法を用い
る。タイプJ▲▼の全ての命令は将来アンシェー
デッド領域から動かすものである。一般に、2つの命令
Ji及びJi+1がこの順序で与えられると、つぎの条件が双
方共に真であればJi+1をJiの上に動かすことができる。
い; 条件2:JiはJi+1が読出すメモリ位置には書込まない。
J3−−−JNのシーケンスを有するものとする。
を割当てる。ボックス151ではJiに先行するアンシェー
デッド領域における第1命令をJjに割当てる。ボックス
152では各命令に対し条件1及び条件2をテストする命
令Jj〜Jiをループする。双方の条件1及び2が所定の命
令に対して真である場合に、ブランチ153へと進む。条
件1及び条件2のいずれか一方、又は双方共に誤りであ
る場合にはブランチ154へと進む。
行しいるアンシェーデッド領域における最終命令である
か否かをテストする。ボックス155でのテスト結果が誤
りである場合にはボックス157へのブランチ156へと進
み、このボックス157にて命令Jiに先行しているアンシ
ェーデッド領域におけるつぎの命令をJjに割当てる。ボ
ックス157の後はボックス152に戻す。
ンチ158からボックス159へと進めて、ここで命令Jiをア
ンシェーデッド領域の外へ動かす。上述した処置は命令
を如何にして動かすことができるかを示している。ボッ
クス159の後はブランチ154へと進める。
合にはボックス160へのブランチ154へと進め、このボッ
クス160ではJiがアンシェーデッド領域におけるタイプ
J▲▼への最終命令であるか、否かをテストす
る。ボックス160でのテスト結果が真である場合には第1
b図の方法を161の個所にて終了させる。ボックス160で
のテスト結果が誤りである場合には、ボックス163に至
るブランチ162へ進める。
iに割当てる。ボックス163の後は第1b図の方法をボック
ス151へと戻す。
り、アンシェーデッド領域にあるべきとする僅か2つの
命令をI1及びI2としてマークされる命令であるとして決
定する。
的フォワード又はループ繰上げ従属性とはならない残り
の命令をアンシェーデッド領域の下方で、しかもその領
域外に動かすことができる。この同様な処置が第1b図に
つき述べた処置と異なる点は、1つの命令をアンシェー
デッド領域における先行している全ての命令と比較する
代りに、コンパイラによって1つの命令を後続する全て
の命令と比較すると云う点だけにある。
なう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−出力
端子も有している。
を含む並列プロセッ201,202,203及び204の1つを詳細に
示したブロック図である。バリヤユニットは同期化情報
を受信し、処理し、且つ送出する。実行ユニット328内
に示す命令レジスタ301の容量は、関連する命令セット
における最長命令とI−ビット302を含めるのに十分な
大きさとする。プロセッサはマシンサイクル当り1つの
命令を実行するRISCプロセッサであるものとする。I−
ビットは命令レジスタ301における命令がシェーデッド
領域におけるものである場合にターン・オンされる。
又、このI−ビットは斯かる命令がアンシェーデッド領
域におけるものである場合にはターン・オフする。
の形態をとるようにすることもでき、この場合には命令
の第1ワードにおけるI−ビットをロックアウトさせて
除くロジック(図示せず)を設けるようにする。シェー
デッド領域及びアンシェーデッド領域の冒頭部をマーク
するために各命令ストリームに完全命令を授けることも
できるが、この場合には状態マシーンを多少変更する必
要がある。又、この方法では各命令ストリームに命令を
加えることになるが、この方法はI−ビット法に比べて
既存のハードウェア及びマシン命令セットを多少変更す
るだけで済む。
レジスタであり、これはn−1ビット(ここにnはシス
テムにおけるプロセッサの個数である)とする。本例で
はn=4とする。各プロセッサは第3図の装置を内蔵し
ている。従って、マスクレジスタ303はシステムにおけ
る他のプロセッサに絶えず注意を払うために3ビットと
する必要がある。このマスクレジスタ303は関連するタ
スクを実行しない他のプロセッサを無視するために用い
る。マスクレジスタ303の1ビットは、対応する他のプ
ロセッサが関連するタスクを実行している際にターン・
オフする。マスクレジスタの1ビットは対応する他のプ
ロセッサが関連タスクを実行していない場合にターン・
オンする。マスクレジスタ303は3ビット入力端子320か
らマスクビットを受信する。本例では3個のプロセッサ
だけにコードを実行させる必要がある。これがため、マ
スクレジスタ303の2ビットはループの1つを実行して
いる各プロセッサではターン・オフする。第3ビットが
ターン・オンすると、ループ実行中のプロセッサはルー
プを実行していない1つのプロセッサを無視する。コン
パイラはどのプロセッサがバリヤにて同期しているかを
知って、マスクレジスタ303に適当なビットを書込ませ
る命令を発生させることができる。
オンすることにより無視されるプロセッサは、斯かる他
のレジスタに固有のマスクレジスタをセットすることに
よりそのプロセッサを無視して独立のタスクを実行する
ことができる。このような独立タスクには並列処理を必
要とする独立ジョブで独立した同期化を図ることができ
る。
信するためのn−1ビット入力である。WANTビットは対
応するプロセッサが同期化を望む場合にオンする。
入力WANT−INにおけるWANTビットを調整するためのロジ
ックを含んでいる。整合回路304の出力を「MATCH」と称
し、これは関連する他のプロセッサ全てが同期化を望む
場合にだけオンする。
ATCHを用いて同期化状態を決定する。状態マシン305は
2ビット、即ちSTALLとWANT−OUTを出力する。STALLは
プロセッサが命令を実行している時はオフする。STALL
がターン・オンするとプロセッサは命令の実行を停止す
る。WANT−OUTは各プロセッサが同期化を望む場合にタ
ーン・オンし、そうでない場合にターン・オフする。
では状態マシンを所謂メアリ(Mealy)マシンとする。
このマシンでは、これが状態を変えなくても出力STALL
及びWANT−OUTは変化することができる。第4図では状
態マシン305への入力を小さな活字で示し、又状態マシ
ン305からの出力を大きな活字で示してある。
するような1つの状態マシンを含んでいる。これらの状
態マシンを作動させるためには状態マシン間で信号を同
期させる共通のクロック又は他の手段を設ける必要があ
る。図面の簡単化のために状態マシン305を同期させる
回路は図示してない。
とに相当し、I−ビットがオフである間は状態マシンは
状態0のままである。換言するに、プロセッサはコード
のアンシェーデッド領域を実行し、コードのシェーデッ
ド領域へは進まない。この場合、STALL及びWANT−OUTは
双方共にオフである。
する。状態マシンは、その各プロセッサが同期化の用意
が整っているも、少なくとも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をとる。幾つかのプロセッ
サは同時に状態2に達することができ、従ってそれらの
プロセッサは同時に同期化の用意が整った「最終」プロ
セッサでもある。状態2はプロセッサが同期化される状
態である。状態マシン305がトランジション403をとる
と、このマシンはWANT−OUTをオンさせたままとする。
しかし、マシンはそれが状態2に達すると、WANT−OUT
をターン・オフする。STALLはオフしたままである。
る。マシンは各プロセッサが依然シェーデッド領域にあ
り、同期化を希望しており、しかも全ての他のプロセッ
サがそれらの各シェーデッド領域に達している場合、即
ちI−ビット及びMATCHの双方がオンする場合にトラン
ジション405を生ぜしめる。マシンがトランジション405
を生じさせると、これはWANT−OUTビットをオンさせ
る。トランジション405の期間中はSTALLがオフする。WA
NT−OUTビットはマシンが状態2に達するとオフに戻
る。
る。マシンは、これがそのシェーデッド領域を離れる用
意が整っているも、マシンを状態2にすることはできな
かった場合にトランジション406を生ぜしめる。即ち、
I−ビットがターン・オフし、MATCHがオフである場合
にトランジション406を生じさせる。この点にて各プロ
セッサは停止しなければならない。これがため、WANT−
OUT及びSTALLの双方はターン・オンする。
る。マシンはMATCHがターン・オンし、これと同時に該
当プロセッサがシェーデッド領域を同時に離れる際に斯
かるトランジションを生ぜしめる。マシンはトランジシ
ョン407の期間中はWANT−OUTをオンしたままとし、マシ
ンが状態0に達すると再びそれをオフにする。
0にする。トランジション408は同期化後でI−ビット
がターン・オフする際、即ち各プロセッサがシェーデッ
ド領域を離れる際に生ずる。トランジション408の期間
中にはWANT−OUT及びSTALLが共にオフする。
ジション409は、同期化後にI−ビットが1のままであ
ると、即ち各並列プロセッサが同期化後にシェーデッド
領域に留まると発生する。トランジション409の期間中
はWANT−OUT及びSTALLが共にオフする。
シンを停止させて、同期するのを待つ。マシンはMATCH
がオフしている限りトランジション411を生じさせる。
マシンは状態3にある間はWANT−OUT及びSTALLの双方を
オンし続ける。
る。マシンは、それが他のマシンとの同期に成功して、
シェーデッド領域を離れることができるようになると、
即ちMATCHがターン・オンするとトランジション410を生
じさせる。このトランジション410の期間中はWANT−OUT
はオンしたままである。WANT−OUTはマシンが一旦状態
0に達するとターン・オフする。トランジション410の
期間中にはSTALLがオフする。
のであり、この第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は
他の全てのプロセッサが無視されている場合にもオンす
る。
するためにソースコードをコンパイルする方法を説明す
るための流れ図; 第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ゲート
Claims (12)
- 【請求項1】a.それぞれの各プロセッサが並列命令スト
リームのうちの各1つを処理する複数個の並列プロセッ
サ(201,202,203,204);及び b.前記プロセッサを同期させる同期化手段(210,211,21
2,213A); を具えている並列処理システムにおいて、 c.前記それぞれの各命令ストリームが、プロセッサ間の
同期をとる必要がある複数命令のアンシェーデッド領域
間にあって、プロセッサ間の同期をとる必要がない複数
命令のシェーデッド領域を包含し;且つ d.前記同期化手段が: −前記複数のプロセッサのうちの或る特定のプロセッサ
が、或るシェーデッド領域に後続するアンシェーデッド
領域における命令を、他のプロセッサがシェーデッド領
域に先行しているアンシェーデッド領域における全ての
命令を実行し終わるまでは、実行しなくすることにより
同期を確立し;且つ −前記特定のプロセッサが同期を企てている間に該特定
のプロセッサがシェーデッド領域における命令を実行し
得るべく; 作動するようにしたことを特徴とする並列処理システ
ム。 - 【請求項2】コンピュータコードを複数の並列命令スト
リームとして実行し、且つ前記同期化手段が複数の同期
装置(210,211,212,213A)を具え、前記プロセッサのう
ちの或る特定のプロセッサを同期させる各特定の同期装
置が: a.他の少なくとも1個のプロセッサと通信するための通
信手段(306,307);及び b.他のプロセッサから受信した情報に基づいて前記特定
のプロセッサを制御するための制御手段(303,304,305,
328); を具えていることを特徴とする請求項1に記載の並列処
理システム。 - 【請求項3】a.前記通信手段が: i.少なくとも1個の他のプロセッサから、該他のプロセ
ッサが同期を望む旨の指示を受取る入力手段(306)
と; ii.前記特定のプロセッサが同期を望む旨の指示を送出
する出力手段(307)と; を具え、 b.前記制御手段が: i.前記特定のプロセッサ用の命令ストリームにおけるシ
ェーデッド領域とアンシェーデッド領域とを識別する手
段(301,302);及び ii.前記シェーデッド及びアンシェーデッド領域の識別
結果に応答し、且つ前記受信した指示に応答して前記特
定プロセッサ用の命令ストリームの実行を制御する実行
制御手段(305,328); を具え、前記制御手段が前記入力手段及び前記出力手段
に結合されるようにしたことを特徴とする請求項2に記
載の並列処理システム。 - 【請求項4】前記同期装置が、多数の並列命令ストリー
ムに応じて前記他のプロセッサのうちの少なくとも1個
の第2プロセッサを無視する無視手段(303,320)を具
えていることを特徴とする請求項2に記載の並列処理シ
ステム。 - 【請求項5】前記無視手段がマスクレジスタを具えてい
ることを特徴とする請求項4に記載の並列処理システ
ム。 - 【請求項6】前記同期装置が、多数の並列命令ストリー
ムに応じて前記並列プロセッサのうちの少なくとも2つ
のプロセッサを無視して、これら少なくとも2つのプロ
セッサが独立して同期するようにする手段(303,320)
を具えていることを特徴とする請求項2に記載の並列処
理システム。 - 【請求項7】前記実行制御手段(305)が状態マシンを
具えていることを特徴とする請求項3に記載の並列処理
システム。 - 【請求項8】前記状態マシンが: a.前記入力手段に結合され、前記指示を受とるためのWA
NT入力端子(306)と; b.前記シェーデッド及びアンシェーデッド領域を識別す
る信号を受信するための第2入力端子と; c.前記出力手段に結合され、送出指示を供給するための
第1出力端子(307)と; d.各プロセッサの前記実行制御手段(328)に結合さ
れ、停止状態では各プロセッサの実行を停止し、それ以
外では各プロセッサを作動させることができる信号を供
給するSTALL出力端子(308)と;を具えていることを特
徴とする請求項7に記載の並列処理システム。 - 【請求項9】前記状態マシンがつぎの4つの状態: a.プロセッサがアンシェーデッド領域における命令を実
行する第1状態; b.他のプロセッサがそれぞれ各自のシェーデッド領域に
達するのを待っている間に当該プロセッサがシェーデッ
ド領域の命令を実行する第2状態; c.他のプロセッサがそれぞれ各自のシェーデッド領域に
達しても当該プロセッサがシェーデッド領域の命令を実
行する第3状態;及び d.当該プロセッサがシェーデッド領域の終りに達したら
停止して、他のプロセッサがそれぞれ各自のシェーデッ
ド領域に達するのを待機する第4状態; をとるようにしたことを特徴とする請求項8に記載の並
列処理システム。 - 【請求項10】前記同期装置が多数の並列命令ストリー
ムに応じて前記他のプロセッサのうちの少なくとも1個
の第2プロセッサを無視するためのマスクレジスタ(30
3)も具え、且つ前記命令実行手段(305,328)が: a.前記入力手段に結合され、前記指示を受とるためのWA
NT入力端子(306)と; b.前記シェーデッド及びアンシェーデッド領域を識別す
る信号を受信するための第2入力端子と; c.前記出力手段に結合され、送出指示を供給するための
第1出力端子(307)と; d.各プロセッサの前記実行制御手段(328)に結合さ
れ、停止状態では各プロセッサの実行を停止し、それ以
外では各プロセッサを作動させることができる信号を供
給するSTALL出力端子(308)と;を具えている状態マシ
ンを含むようにしたことを特徴とする請求項3に記載の
並列処理システム。 - 【請求項11】それぞれの各プロセッサが並列命令スト
リームのうちの各1つを処理する複数個の並列プロセッ
サ及びこれらのプロセッサを同期させる同期化手段(21
0,211,212,213A)を具えている並列処理システム用のコ
ンピュータコードをコンパイルする方法であって、それ
ぞれの各命令ストリームが、プロセッサ間の同期をとる
必要がある複数命令のアンシェーデッド領域間にあっ
て、プロセッサ間の同期をとる必要がない複数命令のシ
ェーデッド領域を包含し、前記それぞれのプロセッサを
並列に実行させることができる前記コンピュータコード
の複数の各部分を識別する第1識別ステップ(102)を
具えている、並列処理システム用のコンピュータコード
をコンパイルする方法において、 −前記同期化手段を作動させる前記コンピュータコード
のそれぞれの部分のうちの少なくとも1つのコード部分
内におけるシェーデッド領域及びアンシェーデッド領域
を識別する第2識別ステップ(104)が: 前記少なくとも1つのコード部分にて、字句的にフォワ
ードか、又はループ繰上げ従属性を有する命令のうちの
最初と、最後と、中間の命令を前記アンシェーデッド領
域のうちの特定の領域に割当てるステップを含むことを
特徴とするコンピュータコードのコンパイル方法。 - 【請求項12】それぞれの各プロセッサが並列命令スト
リームの各1つを処理する複数個の並列プロセッサを同
期させる方法において、当該方法が: −それぞれの各命令ストリームに、プロセッサ間の同期
をとる必要がある複数命令のアンシェーデッド領域間に
あって、プロセッサ間の同期をとる必要がない複数命令
のシェーデッド領域を設けるステップと; −前記複数のプロセッサのうちの或る特定のプロセッサ
が、或るシェーデッド領域に後続するアンシェーデッド
領域における命令を、他のプロセッサがシェーデッド領
域に先行しているアンシェーデッド領域における全ての
命令を実行し終わるまでは、実行しなくすると共に、前
記特定のプロセッサが同期を企てている間に、この特定
のプロセッサがシェーデッド領域における命令を実行し
得るようにするステップと; を具えていることを特徴とする並列プロセッサの同期方
法。
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)
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)
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 |
-
1989
- 1989-07-27 DE DE68927946T patent/DE68927946T2/de not_active Expired - Lifetime
- 1989-07-27 EP EP89201976A patent/EP0353819B1/en not_active Expired - Lifetime
- 1989-08-01 JP JP1198085A patent/JP2947356B2/ja not_active Expired - Lifetime
-
1997
- 1997-04-15 US US08/839,731 patent/US5802374A/en not_active Expired - Fee Related
- 1997-06-10 US US08/871,562 patent/US5787272A/en not_active Expired - Fee Related
Non-Patent Citations (1)
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 |