JP2550897B2 - マルチプロセッサシステムのバリア同期装置 - Google Patents
マルチプロセッサシステムのバリア同期装置Info
- Publication number
- JP2550897B2 JP2550897B2 JP5297945A JP29794593A JP2550897B2 JP 2550897 B2 JP2550897 B2 JP 2550897B2 JP 5297945 A JP5297945 A JP 5297945A JP 29794593 A JP29794593 A JP 29794593A JP 2550897 B2 JP2550897 B2 JP 2550897B2
- Authority
- JP
- Japan
- Prior art keywords
- value
- barrier
- processor
- processors
- shared area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/522—Barrier synchronisation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Description
【0001】
【産業上の利用分野】本発明は、マルチプロセッサシス
テムにおけるバリア同期装置に関する。
テムにおけるバリア同期装置に関する。
【0002】
【従来の技術】マルチプロセッサによる並列処理におい
て、プログラム中でプロセッサの足並みを揃え最も遅い
プロセッサが到着するのを他のプロセッサが待つため
に、バリアと呼ばれる同期がとられる。このバリア処理
は、従来は、バリアをとりたいプロセッサの数を全てプ
ロセッサからアクセス可能な共有メモリないし共有レジ
スタに初期設定しておき、各プロセッサではロックをと
りながらその共有領域の値に1を減算し、その後、その
共有領域の値が0になるまでループして待つことにより
行っていた。あるいは、最初に初期設定される値を0に
しておき、各プロセッサではロックをとりながら値に1
を加算し、値がプロセッサ数になるまでループして待つ
ことにより行っていた。バリア同期に関する従来の技術
としては、「細粒度並列実行を支援する種々の静的順序
制御方式の定量的評価 高木、有田、曽和、並列処理シ
ンポジウムJSPP’91論文集、pp.269−27
6、1991年5月」に記載されている技術がある。
て、プログラム中でプロセッサの足並みを揃え最も遅い
プロセッサが到着するのを他のプロセッサが待つため
に、バリアと呼ばれる同期がとられる。このバリア処理
は、従来は、バリアをとりたいプロセッサの数を全てプ
ロセッサからアクセス可能な共有メモリないし共有レジ
スタに初期設定しておき、各プロセッサではロックをと
りながらその共有領域の値に1を減算し、その後、その
共有領域の値が0になるまでループして待つことにより
行っていた。あるいは、最初に初期設定される値を0に
しておき、各プロセッサではロックをとりながら値に1
を加算し、値がプロセッサ数になるまでループして待つ
ことにより行っていた。バリア同期に関する従来の技術
としては、「細粒度並列実行を支援する種々の静的順序
制御方式の定量的評価 高木、有田、曽和、並列処理シ
ンポジウムJSPP’91論文集、pp.269−27
6、1991年5月」に記載されている技術がある。
【0003】
【発明が解決しようとする課題】このような従来の技術
では、バリアを複数回連続して行う場合に、毎回バリア
領域を初期設定しなければならないという問題点があ
る。そのために別にロックおよびバリア同期をとらなけ
ればならず性能低下を招いていた。
では、バリアを複数回連続して行う場合に、毎回バリア
領域を初期設定しなければならないという問題点があ
る。そのために別にロックおよびバリア同期をとらなけ
ればならず性能低下を招いていた。
【0004】
【課題を解決するための手段】第1の発明のマルチプロ
セッサシステムのバリア同期装置は、マルチプロセッサ
システムを構成する各プロセッサが、各プロセッサ間の
共有領域に対する排他制御を行うロック手段と、このロ
ック手段による排他制御区間において、この各プロセッ
サ間の共有領域の値を読みだす読みだし手段と、前記ロ
ック手段による排他制御区間において、この読みだし手
段が読みだした値に予め定められた値、例えば1を加算
する加算手段と、前記ロック手段による排他制御区間に
おいて、この加算手段が算出した値を前記プロセッサ間
の共有領域へ書き込む書き込み手段と、前記加算手段が
算出した値をもとに次バリア値を計算する計算手段と、
前記加算手段が算出した値とこの計算手段が計算した次
バリア値を比較する比較手段と、この比較手段の結果、
全プロセッサがバリア同期に到達したと判断された場合
にバリアを抜けて次の処理に分岐し、全プロセッサがバ
リア同期に到達していないと判断された場合に全プロセ
ッサがバリア同期に到達するまで待ち合わせる分岐手段
を備えて構成されている。
セッサシステムのバリア同期装置は、マルチプロセッサ
システムを構成する各プロセッサが、各プロセッサ間の
共有領域に対する排他制御を行うロック手段と、このロ
ック手段による排他制御区間において、この各プロセッ
サ間の共有領域の値を読みだす読みだし手段と、前記ロ
ック手段による排他制御区間において、この読みだし手
段が読みだした値に予め定められた値、例えば1を加算
する加算手段と、前記ロック手段による排他制御区間に
おいて、この加算手段が算出した値を前記プロセッサ間
の共有領域へ書き込む書き込み手段と、前記加算手段が
算出した値をもとに次バリア値を計算する計算手段と、
前記加算手段が算出した値とこの計算手段が計算した次
バリア値を比較する比較手段と、この比較手段の結果、
全プロセッサがバリア同期に到達したと判断された場合
にバリアを抜けて次の処理に分岐し、全プロセッサがバ
リア同期に到達していないと判断された場合に全プロセ
ッサがバリア同期に到達するまで待ち合わせる分岐手段
を備えて構成されている。
【0005】第2の発明のマルチプロセッサシステムの
バリア同期装置は、第1の発明のマルチプロセッサシス
テムのバリア同期装置において、プロセッサ間の共有領
域に対する排他的インクリメントデクリメント手段を備
えている。
バリア同期装置は、第1の発明のマルチプロセッサシス
テムのバリア同期装置において、プロセッサ間の共有領
域に対する排他的インクリメントデクリメント手段を備
えている。
【0006】第3の発明のマルチプロセッサシステムの
バリア同期装置は、第1の発明のマルチプロセッサシス
テムのバリア同期装置において、各プロセッサ毎に保持
している領域の値から次バリア値を計算する計算手段を
備えている。
バリア同期装置は、第1の発明のマルチプロセッサシス
テムのバリア同期装置において、各プロセッサ毎に保持
している領域の値から次バリア値を計算する計算手段を
備えている。
【0007】第4の発明のマルチプロセッサシステムの
バリア同期装置は、第1の発明のマルチプロセッサシス
テムのバリア同期装置において、プロセッサ間の共有領
域に対する排他的インクリメントデクリメント手段と、
各プロセッサ毎に保持している領域の値から次バリア値
を計算する計算手段を備えている。
バリア同期装置は、第1の発明のマルチプロセッサシス
テムのバリア同期装置において、プロセッサ間の共有領
域に対する排他的インクリメントデクリメント手段と、
各プロセッサ毎に保持している領域の値から次バリア値
を計算する計算手段を備えている。
【0008】
【実施例】以下本発明の一実施例について、図を参照し
ながら詳細に説明する。
ながら詳細に説明する。
【0009】図1を参照すると、本発明の第1の実施例
であるマルチプロセッサシステムのバリア同期装置は、
マルチプロセッサシステムを構成する複数のプロセッサ
とプロセッサとプロセッサとの間で共有される共有領域
12とから構成される。プロセッサ11は、他のプロセ
ッサとの間で排他制御を行うロック手段111と、共有
領域12の値を読みだす読みだし手段112と、読みだ
した共有領域12の値に1を加えるための加算手段11
4と、共有領域12に値を書き込む書き込み手段113
と、読みだした共有領域12の値を元に、全プロセッサ
がバリア同期に到達した時の共有領域12の値である次
バリア値を算出する計算手段115と、読みだした共有
領域12の値と算出した次バリア値を比較する比較手段
116と、比較の結果全プロセッサがバリア同期に到達
した場合に次の動作に分岐し、また全プロセッサがバリ
ア同期に到達していない場合に再び共有領域12の値を
読みだし比較する為の分岐を行う分岐手段117とから
構成される。
であるマルチプロセッサシステムのバリア同期装置は、
マルチプロセッサシステムを構成する複数のプロセッサ
とプロセッサとプロセッサとの間で共有される共有領域
12とから構成される。プロセッサ11は、他のプロセ
ッサとの間で排他制御を行うロック手段111と、共有
領域12の値を読みだす読みだし手段112と、読みだ
した共有領域12の値に1を加えるための加算手段11
4と、共有領域12に値を書き込む書き込み手段113
と、読みだした共有領域12の値を元に、全プロセッサ
がバリア同期に到達した時の共有領域12の値である次
バリア値を算出する計算手段115と、読みだした共有
領域12の値と算出した次バリア値を比較する比較手段
116と、比較の結果全プロセッサがバリア同期に到達
した場合に次の動作に分岐し、また全プロセッサがバリ
ア同期に到達していない場合に再び共有領域12の値を
読みだし比較する為の分岐を行う分岐手段117とから
構成される。
【0010】図2はプロセッサ11がバリア同期を行う
為のプログラムを示す。並列処理を行っているプロセッ
サが各々このプログラムを実行すると、最後に到達した
プロセッサがこのプログラムを実行するまで他のプロセ
ッサは待ち合わせを行うことになる。図2中の各処理に
付された数字は、以下の実施例の各ステップに対応す
る。
為のプログラムを示す。並列処理を行っているプロセッ
サが各々このプログラムを実行すると、最後に到達した
プロセッサがこのプログラムを実行するまで他のプロセ
ッサは待ち合わせを行うことになる。図2中の各処理に
付された数字は、以下の実施例の各ステップに対応す
る。
【0011】次に本発明の第1の実施例の動作につい
て、図1と図2を参照して説明する。
て、図1と図2を参照して説明する。
【0012】ステップ21を参照すると、プロセッサ1
1のロック手段111が共有領域12にロックをかけ
る。ロックをかけるのは、共有領域12を排他的に更新
する必要がある為である。
1のロック手段111が共有領域12にロックをかけ
る。ロックをかけるのは、共有領域12を排他的に更新
する必要がある為である。
【0013】ステップ22を参照すると、読みだし手段
112が共有領域12であるcomの値を読みだし、変
数bに格納する。変数bはプロセッサのローカルメモリ
およびレジスタのいずれか1つに割り当てる。また共有
領域comの値は予め0に初期化されている。
112が共有領域12であるcomの値を読みだし、変
数bに格納する。変数bはプロセッサのローカルメモリ
およびレジスタのいずれか1つに割り当てる。また共有
領域comの値は予め0に初期化されている。
【0014】ステップ23を参照すると、加算手段11
4が変数bの値に1を加算する。
4が変数bの値に1を加算する。
【0015】ステップ24を参照すると、書き込み手段
113が変数bの値を共有領域comに書き戻す。
113が変数bの値を共有領域comに書き戻す。
【0016】ステップ25を参照すると、ロック手段1
11がロックを外す。
11がロックを外す。
【0017】ステップ21からステップ25までの処理
により、マルチプロセッサシステムを構成する各プロセ
ッサがこのプログラムを実行するたびに共有領域com
の値が1を加算されることになる。すなわちcomの値
はバリアに到着したプログラム数を示していることにな
る。
により、マルチプロセッサシステムを構成する各プロセ
ッサがこのプログラムを実行するたびに共有領域com
の値が1を加算されることになる。すなわちcomの値
はバリアに到着したプログラム数を示していることにな
る。
【0018】ステップ26を参照すると、計算手段11
5が、各プロセッサが読みだした共有領域comの値に
1を加えた変数bの値をもとに、以下に示す計算式によ
り、最終プロセッサ到着時の共有領域comの値(これ
を次バリア値という)を算出し変数nに代入する。nは
プロセッサのローカルメモリおよびレジスタのいずれか
1つに割り当てる。
5が、各プロセッサが読みだした共有領域comの値に
1を加えた変数bの値をもとに、以下に示す計算式によ
り、最終プロセッサ到着時の共有領域comの値(これ
を次バリア値という)を算出し変数nに代入する。nは
プロセッサのローカルメモリおよびレジスタのいずれか
1つに割り当てる。
【0019】
【0020】計算式において、tは並列処理を行うプロ
セッサの数であり、並列処理開始時に各プロセッサのロ
ーカルメモリおよびレジスタのいずれか1つに保存す
る。計算式により、bより大きい(bも含む)tの倍数
で最も小さいものが求められる。これがこのバリア同期
プログラムに最終プロセッサが到着した時のcomの値
となる。
セッサの数であり、並列処理開始時に各プロセッサのロ
ーカルメモリおよびレジスタのいずれか1つに保存す
る。計算式により、bより大きい(bも含む)tの倍数
で最も小さいものが求められる。これがこのバリア同期
プログラムに最終プロセッサが到着した時のcomの値
となる。
【0021】ステップ27を参照すると、比較手段11
6が変数bと変数nを比較し、変数bが変数nより大き
いか等しい場合には、全てのプロセッサがバリアに到達
したとして、分岐手段117によりラベルL2に分岐し
バリアを抜ける。つまりこのステップ27を最初に実行
して比較条件が成立するのは、最終プロセッサの場合だ
けである。
6が変数bと変数nを比較し、変数bが変数nより大き
いか等しい場合には、全てのプロセッサがバリアに到達
したとして、分岐手段117によりラベルL2に分岐し
バリアを抜ける。つまりこのステップ27を最初に実行
して比較条件が成立するのは、最終プロセッサの場合だ
けである。
【0022】ステップ28を参照すると、変数bが変数
nより小さい場合、すなわちバリアに到達していないプ
ロセッサが存在する時、読みだし手段112が再び共有
領域comの値を変数bに読み込む。
nより小さい場合、すなわちバリアに到達していないプ
ロセッサが存在する時、読みだし手段112が再び共有
領域comの値を変数bに読み込む。
【0023】そして、ステップ29を参照すると、分岐
手段117によりラベルL1に分岐し、再びステップ2
7の実行を繰り返す。
手段117によりラベルL1に分岐し、再びステップ2
7の実行を繰り返す。
【0024】ステップ27からステップ29までの処理
により、全てのプロセッサがバリアに到達するまで待ち
合わせが行われる。
により、全てのプロセッサがバリアに到達するまで待ち
合わせが行われる。
【0025】また、プロセッサが次のバリア動作を引き
続き行いたい場合には、共有領域の初期化を行う必要は
なく、同じプログラムを用いてバリアを行うことができ
る。
続き行いたい場合には、共有領域の初期化を行う必要は
なく、同じプログラムを用いてバリアを行うことができ
る。
【0026】以上により、本発明の第1の実施例の動作
であるマルチプロセッサシステムのバリア同期装置の処
理が完了する。
であるマルチプロセッサシステムのバリア同期装置の処
理が完了する。
【0027】図3を参照すると、本発明の第2の実施例
であるマルチプロセッサシステムのバリア同期装置は、
第1の発明のマルチプロセッサシステムのバリア同期装
置において、ロック手段111、書き込み手段113、
および加算手段114を排他的インクリメントデクリメ
ント手段311で置換して構成されている。すなわち、
マルチプロセッサシステムを構成する複数のプロセッサ
とプロセッサとプロセッサとの間で共有される共有領域
32とから構成され、プロセッサ31は、共有領域32
の値を排他的にインクリメントする排他的インクリメン
トデクリメント手段311と、共有領域32の値を読み
だす読みだし手段312と、読みだした共有領域32の
値を元に、全プロセッサがバリア同期に到達した時の共
有領域32の値である次バリア値を算出する計算手段3
15と、読みだした共有領域32の値と算出した次バリ
ア値を比較する比較手段316と、比較の結果全プロセ
ッサがバリア同期に到達した場合に次の動作に分岐し、
また全プロセッサがバリア同期に到達していない場合に
再び共有領域32の値を読みだし比較する為の分岐を行
う分岐手段317とから構成される。
であるマルチプロセッサシステムのバリア同期装置は、
第1の発明のマルチプロセッサシステムのバリア同期装
置において、ロック手段111、書き込み手段113、
および加算手段114を排他的インクリメントデクリメ
ント手段311で置換して構成されている。すなわち、
マルチプロセッサシステムを構成する複数のプロセッサ
とプロセッサとプロセッサとの間で共有される共有領域
32とから構成され、プロセッサ31は、共有領域32
の値を排他的にインクリメントする排他的インクリメン
トデクリメント手段311と、共有領域32の値を読み
だす読みだし手段312と、読みだした共有領域32の
値を元に、全プロセッサがバリア同期に到達した時の共
有領域32の値である次バリア値を算出する計算手段3
15と、読みだした共有領域32の値と算出した次バリ
ア値を比較する比較手段316と、比較の結果全プロセ
ッサがバリア同期に到達した場合に次の動作に分岐し、
また全プロセッサがバリア同期に到達していない場合に
再び共有領域32の値を読みだし比較する為の分岐を行
う分岐手段317とから構成される。
【0028】図4はプロセッサ31がバリア同期を行う
為のプログラムを示す。並列処理を行っているプロセッ
サが各々このプログラムを実行すると、最後に到達した
プロセッサがこのプログラムを実行するまで他のプロセ
ッサは待ち合わせを行うことになる。図4中の各処理に
付された数字は、以下の実施例の各ステップに対応す
る。
為のプログラムを示す。並列処理を行っているプロセッ
サが各々このプログラムを実行すると、最後に到達した
プロセッサがこのプログラムを実行するまで他のプロセ
ッサは待ち合わせを行うことになる。図4中の各処理に
付された数字は、以下の実施例の各ステップに対応す
る。
【0029】次に本発明の第2の実施例の動作につい
て、図3と図4を参照して説明する。
て、図3と図4を参照して説明する。
【0030】第1の実施例のステップ21、22、2
3、24、25が、本実施例では排他的インクリメント
デクリメント手段を用いたステップ41に置き換えられ
る。
3、24、25が、本実施例では排他的インクリメント
デクリメント手段を用いたステップ41に置き換えられ
る。
【0031】すなわちステップ41を参照すると、排他
的インクリメントデクリメント手段311が、共有領域
31であるcomの値を排他的にインクリメントしその
インクリメント後の値を変数bに代入する。
的インクリメントデクリメント手段311が、共有領域
31であるcomの値を排他的にインクリメントしその
インクリメント後の値を変数bに代入する。
【0032】以下、ステップ42、43、44、45、
46の動作は第1の実施例のステップ26、27、2
8、29、30の動作と同じである。これによりバリア
同期を行うことができる。
46の動作は第1の実施例のステップ26、27、2
8、29、30の動作と同じである。これによりバリア
同期を行うことができる。
【0033】以上により、本発明の第2の実施例の動作
であるマルチプロセッサシステムのバリア同期装置の処
理が完了する。
であるマルチプロセッサシステムのバリア同期装置の処
理が完了する。
【0034】図5を参照すると、本発明の第3の実施例
であるマルチプロセッサシステムのバリア同期装置は、
第1の発明のマルチプロセッサシステムのバリア同期装
置において、各プロセッサがプロセッサ毎に保持してい
る領域53を含んでいる。すなわち、マルチプロセッサ
システムを構成する複数のプロセッサとプロセッサとプ
ロセッサとの間で共有される共有領域52と、各プロセ
ッサがプロセッサ毎に保持している領域53から構成さ
れる。プロセッサ51は、他のプロセッサとの間で排他
制御を行うロック手段511と、共有領域52の値を読
みだす読みだし手段512と、読みだした共有領域52
の値に1加えるための加算手段514と、共有領域52
に値を書き込む書き込み手段513と、プロセッサ毎に
保持している領域53の値を元に、全プロセッサがバリ
ア同期に到達した時の共有領域52の値である次バリア
値を算出する計算手段515と、読みだした共有領域5
2の値と算出した次バリア値を比較する比較手段516
と、比較の結果全プロセッサがバリア同期に到達した場
合に次の動作に分岐し、また全プロセッサがバリア同期
に到達していない場合に再び共有領域52の値を読みだ
し比較する為の分岐を行う分岐手段517とから構成さ
れる。
であるマルチプロセッサシステムのバリア同期装置は、
第1の発明のマルチプロセッサシステムのバリア同期装
置において、各プロセッサがプロセッサ毎に保持してい
る領域53を含んでいる。すなわち、マルチプロセッサ
システムを構成する複数のプロセッサとプロセッサとプ
ロセッサとの間で共有される共有領域52と、各プロセ
ッサがプロセッサ毎に保持している領域53から構成さ
れる。プロセッサ51は、他のプロセッサとの間で排他
制御を行うロック手段511と、共有領域52の値を読
みだす読みだし手段512と、読みだした共有領域52
の値に1加えるための加算手段514と、共有領域52
に値を書き込む書き込み手段513と、プロセッサ毎に
保持している領域53の値を元に、全プロセッサがバリ
ア同期に到達した時の共有領域52の値である次バリア
値を算出する計算手段515と、読みだした共有領域5
2の値と算出した次バリア値を比較する比較手段516
と、比較の結果全プロセッサがバリア同期に到達した場
合に次の動作に分岐し、また全プロセッサがバリア同期
に到達していない場合に再び共有領域52の値を読みだ
し比較する為の分岐を行う分岐手段517とから構成さ
れる。
【0035】図6はプロセッサ51がバリア同期を行う
為のプログラムを示す。並列処理を行っているプロセッ
サが各々このプログラムを実行すると、最後に到達した
プロセッサがこのプログラムを実行するまで他のプロセ
ッサは待ち合わせを行うことになる。図6中の各処理に
付された数字は、以下の実施例の各ステップに対応す
る。
為のプログラムを示す。並列処理を行っているプロセッ
サが各々このプログラムを実行すると、最後に到達した
プロセッサがこのプログラムを実行するまで他のプロセ
ッサは待ち合わせを行うことになる。図6中の各処理に
付された数字は、以下の実施例の各ステップに対応す
る。
【0036】次に本発明の第3の実施例の動作につい
て、図5と図6を参照して説明する。
て、図5と図6を参照して説明する。
【0037】第1の実施例のステップ26が、本実施例
ではステップ66に置き換えられる。
ではステップ66に置き換えられる。
【0038】すなわちステップ66を参照すると、各プ
ログラム毎に保持しているバリア値n(初期値は0にな
っているものとする)にプログラム数tを加えることに
より、次バリア値を求めることができる。
ログラム毎に保持しているバリア値n(初期値は0にな
っているものとする)にプログラム数tを加えることに
より、次バリア値を求めることができる。
【0039】本実施例におけるステップ61、62、6
3、64、65、67、68、69、および70は、第
1の実施例のステップ21、22、23、24、25、
27、28、29、および30と同じである。これによ
りバリア同期を行うことができる。
3、64、65、67、68、69、および70は、第
1の実施例のステップ21、22、23、24、25、
27、28、29、および30と同じである。これによ
りバリア同期を行うことができる。
【0040】以上により、本発明の第3の実施例の動作
であるマルチプロセッサシステムのバリア同期装置の処
理が完了する。
であるマルチプロセッサシステムのバリア同期装置の処
理が完了する。
【0041】図7を参照すると、本発明の第4の実施例
であるマルチプロセッサシステムのバリア同期装置は、
第1の発明のマルチプロセッサシステムのバリア同期装
置において、ロック手段111、書き込み手段113、
および加算手段114を排他的インクリメントデクリメ
ント手段711で置換して構成され、さらに各プロセッ
サがプロセッサ毎に保持している領域73を含んでい
る。すなわち、マルチプロセッサシステムを構成する複
数のプロセッサとプロセッサとプロセッサとの間で共有
される共有領域72と、各プロセッサがプロセッサ毎に
保持している領域73から構成され、プロセッサ71
は、共有領域72の値を排他的にインクリメントする排
他的インクリメントデクリメント手段711と、共有領
域72の値を読みだす読みだし手段712と、プロセッ
サ毎に保持している領域73の値を元に、全プロセッサ
がバリア同期に到達した時の共有領域72の値である次
バリア値を算出する計算手段715と、読みだした共有
領域72の値と算出した次バリア値を比較する比較手段
716と、比較の結果全プロセッサがバリア同期に到達
した場合に次の動作に分岐し、また全プロセッサがバリ
ア同期に到達していない場合に再び共有領域72の値を
読みだし比較する為の分岐を行う分岐手段717とから
構成される。
であるマルチプロセッサシステムのバリア同期装置は、
第1の発明のマルチプロセッサシステムのバリア同期装
置において、ロック手段111、書き込み手段113、
および加算手段114を排他的インクリメントデクリメ
ント手段711で置換して構成され、さらに各プロセッ
サがプロセッサ毎に保持している領域73を含んでい
る。すなわち、マルチプロセッサシステムを構成する複
数のプロセッサとプロセッサとプロセッサとの間で共有
される共有領域72と、各プロセッサがプロセッサ毎に
保持している領域73から構成され、プロセッサ71
は、共有領域72の値を排他的にインクリメントする排
他的インクリメントデクリメント手段711と、共有領
域72の値を読みだす読みだし手段712と、プロセッ
サ毎に保持している領域73の値を元に、全プロセッサ
がバリア同期に到達した時の共有領域72の値である次
バリア値を算出する計算手段715と、読みだした共有
領域72の値と算出した次バリア値を比較する比較手段
716と、比較の結果全プロセッサがバリア同期に到達
した場合に次の動作に分岐し、また全プロセッサがバリ
ア同期に到達していない場合に再び共有領域72の値を
読みだし比較する為の分岐を行う分岐手段717とから
構成される。
【0042】図8はプロセッサ71がバリア同期を行う
為のプログラムを示す。並列処理を行っているプロセッ
サが各々このプログラムを実行すると、最後に到達した
プロセッサがこのプログラムを実行するまで他のプロセ
ッサは待ち合わせを行うことになる。図8中の各処理に
付された数字は、以下の実施例の各ステップに対応す
る。
為のプログラムを示す。並列処理を行っているプロセッ
サが各々このプログラムを実行すると、最後に到達した
プロセッサがこのプログラムを実行するまで他のプロセ
ッサは待ち合わせを行うことになる。図8中の各処理に
付された数字は、以下の実施例の各ステップに対応す
る。
【0043】次に本発明の第4の実施例の動作につい
て、図7と図8を参照して説明する。
て、図7と図8を参照して説明する。
【0044】第1の実施例のステップ21、22、2
3、24、および25が、本実施例では排他的インクリ
メントデクリメント手段711を用いたステップ81に
置き換えられる。
3、24、および25が、本実施例では排他的インクリ
メントデクリメント手段711を用いたステップ81に
置き換えられる。
【0045】すなわちステップ81を参照すると、排他
的インクリメントデクリメント手段711が、共有領域
71であるcomの値を排他的にインクリメントデクリ
メントしそのインクリメント後の値を変数bに代入す
る。
的インクリメントデクリメント手段711が、共有領域
71であるcomの値を排他的にインクリメントデクリ
メントしそのインクリメント後の値を変数bに代入す
る。
【0046】第1の実施例のステップ26が、本実施例
ではステップ82に置き換えられる。
ではステップ82に置き換えられる。
【0047】すなわちステップ82を参照すると、各プ
ロセッサ毎に保持しているバリア値n(初期値は0にな
っているものとする)にプロセッサ数tを加えることに
より、次バリア値を求めることができる。
ロセッサ毎に保持しているバリア値n(初期値は0にな
っているものとする)にプロセッサ数tを加えることに
より、次バリア値を求めることができる。
【0048】本実施例におけるステップ83、84、8
5、および86の処理は、第1の実施例のステップ2
7、28、29、および30の動作と同じである。これ
によりバリア動作を行うことができる。
5、および86の処理は、第1の実施例のステップ2
7、28、29、および30の動作と同じである。これ
によりバリア動作を行うことができる。
【0049】以上により、本発明の第4の実施例の動作
であるマルチプロセッサシステムのバリア同期装置の処
理が完了する。
であるマルチプロセッサシステムのバリア同期装置の処
理が完了する。
【0050】
【発明の効果】以上に示した様に、本発明のバリア同期
装置により、共有領域の初期化を行うことなく繰り返し
てバリアを取ることができるので、並列処理プログラム
の性能を向上させることができる効果を有している。
装置により、共有領域の初期化を行うことなく繰り返し
てバリアを取ることができるので、並列処理プログラム
の性能を向上させることができる効果を有している。
【図1】図1は本発明の第1の実施例を示すブロック図
である。
である。
【図2】図2は本発明の第1の実施例のマルチプロセッ
サシステム間でバリア同期を行う為のプログラムを示す
図である。
サシステム間でバリア同期を行う為のプログラムを示す
図である。
【図3】図3は本発明の第2の実施例を示すブロック図
である。
である。
【図4】図4は本発明の第2の実施例のマルチプロセッ
サシステム間でバリア同期を行う為のプログラムを示す
図である。
サシステム間でバリア同期を行う為のプログラムを示す
図である。
【図5】図5は本発明の第3の実施例を示すブロック図
である。
である。
【図6】図6は本発明の第3の実施例のマルチプロセッ
サシステム間でバリア同期を行う為のプログラムを示す
図である。
サシステム間でバリア同期を行う為のプログラムを示す
図である。
【図7】図7は本発明の第4の実施例を示すブロック図
である。
である。
【図8】図8は本発明の第4の実施例のマルチプロセッ
サシステム間でバリア同期を行う為のプログラムを示す
図である。
サシステム間でバリア同期を行う為のプログラムを示す
図である。
11 プロセッサ 12 共有領域 111 ロック手段 112 読みだし手段 113 書き込み手段 114 加算手段 115 計算手段 116 比較手段 117 分岐手段 31 プロセッサ 32 共有領域 311 排他的インクリメントデクリメント手段 312 読みだし手段 315 計算手段 316 比較手段 317 分岐手段 51 プロセッサ 52 共有領域 53 各プロセッサ毎に保持している領域 511 ロック手段 512 読みだし手段 513 書き込み手段 514 加算手段 515 計算手段 516 比較手段 517 分岐手段 71 プロセッサ 72 共有領域 73 各プロセッサ毎に保持している領域 711 排他的インクリメントデクリメント手段 712 読みだし手段 715 計算手段 716 比較手段 717 分岐手段
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 情報処理学会論文誌Vol.32No. 7P.886−896ELASTIC BAR RIER:一般化されたバリア型同期機 構松本尚 PROC.OF ASPLOS ▲I II▼P.54−63 R.GUPTA「T HE FUZZY BARRIER:A MECHANISM FOR HIG H SPEED SYNCHRONIZ ATION OF PROCESSOR S」
Claims (4)
- 【請求項1】 マルチプロセッサシステムを構成する各
プロセッサが、 各プロセッサ間の共有領域に対する排他制御を行うロッ
ク手段と、 このロック手段による排他制御区間において、この各プ
ロセッサ間の共有領域の値を読みだす読みだし手段と、 前記ロック手段による排他制御区間において、この読み
だし手段が読みだした値に予め定められた値を加算する
加算手段と、 前記ロック手段による排他制御区間において、この加算
手段が算出した値を前記プロセッサ間の共有領域へ書き
込む書き込み手段と、 前記加算手段が算出した値をもとに次バリア値を計算す
る計算手段と、 前記加算手段が算出した値とこの計算手段が計算した次
バリア値を比較する比較手段と、 この比較手段の結果、全プロセッサがバリア同期に到達
したと判断された場合にバリアを抜けて次の処理に分岐
し、全プロセッサがバリア同期に到達していないと判断
された場合に全プロセッサがバリア同期に到達するまで
待ち合わせる分岐手段を備えることを特徴とするマルチ
プロセッサシステムのバリア同期装置。 - 【請求項2】 プロセッサ間の共有領域に対する排他的
インクリメントデクリメント手段を備えることを特徴と
する請求項1のマルチプロセッサシステムのバリア同期
装置。 - 【請求項3】 各プロセッサ毎に保持している領域の値
から次バリア値を計算する計算手段を備えることを特徴
とする請求項1のマルチプロセッサシステムのバリア同
期装置。 - 【請求項4】 プロセッサ間の共有領域に対する排他的
インクリメントデクリメント手段と、 各プロセッサ毎に保持している領域の値から次バリア値
を計算する計算手段を備えることを特徴とする請求項1
のマルチプロセッサシステムのバリア同期装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5297945A JP2550897B2 (ja) | 1993-11-29 | 1993-11-29 | マルチプロセッサシステムのバリア同期装置 |
US08/339,278 US5796946A (en) | 1993-11-29 | 1994-11-10 | Multi-processor system barrier synchronizer not requiring repeated intializations of shared region |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5297945A JP2550897B2 (ja) | 1993-11-29 | 1993-11-29 | マルチプロセッサシステムのバリア同期装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07152694A JPH07152694A (ja) | 1995-06-16 |
JP2550897B2 true JP2550897B2 (ja) | 1996-11-06 |
Family
ID=17853130
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5297945A Expired - Fee Related JP2550897B2 (ja) | 1993-11-29 | 1993-11-29 | マルチプロセッサシステムのバリア同期装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5796946A (ja) |
JP (1) | JP2550897B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5928334A (en) * | 1997-03-28 | 1999-07-27 | International Business Machines Corporation | Hardware verification tool for multiprocessors |
US6757847B1 (en) * | 1998-12-29 | 2004-06-29 | International Business Machines Corporation | Synchronization for system analysis |
US7181539B1 (en) * | 1999-09-01 | 2007-02-20 | Microsoft Corporation | System and method for data synchronization |
US20050120185A1 (en) * | 2003-12-01 | 2005-06-02 | Sony Computer Entertainment Inc. | Methods and apparatus for efficient multi-tasking |
US7428619B2 (en) * | 2005-01-18 | 2008-09-23 | Sony Computer Entertainment Inc. | Methods and apparatus for providing synchronization of shared data |
US8423959B1 (en) | 2006-12-11 | 2013-04-16 | Synopsys, Inc. | Techniques for coordinating and controlling debuggers in a simulation environment |
US9317636B1 (en) * | 2006-12-11 | 2016-04-19 | Synopsys, Inc. | System and method for stopping integrated circuit simulation |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
JPH0640324B2 (ja) * | 1989-10-26 | 1994-05-25 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチプロセッサ・システムおよびそのプロセス同期方法 |
US5363495A (en) * | 1991-08-26 | 1994-11-08 | International Business Machines Corporation | Data processing system with multiple execution units capable of executing instructions out of sequence |
US5452101A (en) * | 1991-10-24 | 1995-09-19 | Intel Corporation | Apparatus and method for decoding fixed and variable length encoded data |
CA2073516A1 (en) * | 1991-11-27 | 1993-05-28 | Peter Michael Kogge | Dynamic multi-mode parallel processor array architecture computer system |
US5434995A (en) * | 1993-12-10 | 1995-07-18 | Cray Research, Inc. | Barrier synchronization for distributed memory massively parallel processing systems |
-
1993
- 1993-11-29 JP JP5297945A patent/JP2550897B2/ja not_active Expired - Fee Related
-
1994
- 1994-11-10 US US08/339,278 patent/US5796946A/en not_active Expired - Fee Related
Non-Patent Citations (2)
Title |
---|
PROC.OFASPLOS▲III▼P.54−63R.GUPTA「THEFUZZYBARRIER:AMECHANISMFORHIGHSPEEDSYNCHRONIZATIONOFPROCESSORS」 |
情報処理学会論文誌Vol.32No.7P.886−896ELASTICBARRIER:一般化されたバリア型同期機構松本尚 |
Also Published As
Publication number | Publication date |
---|---|
US5796946A (en) | 1998-08-18 |
JPH07152694A (ja) | 1995-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Israeli et al. | Disjoint-access-parallel implementations of strong shared memory primitives | |
US6285974B1 (en) | Hardware verification tool for multiprocessors | |
US6681226B2 (en) | Selective pessimistic locking for a concurrently updateable database | |
US7506339B2 (en) | High performance synchronization of accesses by threads to shared resources | |
Moir | Practical implementations of non-blocking synchronization primitives | |
US5450560A (en) | Pointer for use with a buffer and method of operation | |
Bershad | Practical considerations for non-blocking concurrent objects | |
EP0679993B1 (en) | A computer apparatus having special instructions to force ordered load and store operations | |
EP0340453B1 (en) | Instruction handling sequence control system | |
US5499356A (en) | Method and apparatus for a multiprocessor resource lockout instruction | |
US5408658A (en) | Self-scheduling parallel computer system and method | |
JPH06222936A (ja) | 共用変数の値を更新する方法 | |
JPH0324696B2 (ja) | ||
JP2550897B2 (ja) | マルチプロセッサシステムのバリア同期装置 | |
US5758120A (en) | Method and system for increased system memory concurrency in a multi-processor computer system utilizing concurrent access of reference and change bits | |
Ladan-Mozes et al. | An optimistic approach to lock-free FIFO queues | |
Jayanti | A time complexity lower bound for randomized implementations of some shared objects | |
EP0346031B1 (en) | Vector data processing apparatus | |
Cole et al. | Snapshots and software transactional memory | |
Magnusson et al. | Efficient software synchronization on large cache coherent multiprocessors | |
US5586320A (en) | High speed synchronous processing system for executing parallel processing of programs having loops | |
Son et al. | Replication Control for Distributed Real-Time Database Systems. | |
Alur et al. | How to share an object: A fast timing-based solution | |
McNamee et al. | Transformations for optimizing interprocess communication and synchronization mechanisms | |
JPH0769825B2 (ja) | 並列処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 19960625 |
|
LAPS | Cancellation because of no payment of annual fees |