JP3008223B2 - プロセッサ間の同期処理装置 - Google Patents

プロセッサ間の同期処理装置

Info

Publication number
JP3008223B2
JP3008223B2 JP3234535A JP23453591A JP3008223B2 JP 3008223 B2 JP3008223 B2 JP 3008223B2 JP 3234535 A JP3234535 A JP 3234535A JP 23453591 A JP23453591 A JP 23453591A JP 3008223 B2 JP3008223 B2 JP 3008223B2
Authority
JP
Japan
Prior art keywords
processor
synchronization
task
processing
processors
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP3234535A
Other languages
English (en)
Other versions
JPH052568A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP3234535A priority Critical patent/JP3008223B2/ja
Publication of JPH052568A publication Critical patent/JPH052568A/ja
Application granted granted Critical
Publication of JP3008223B2 publication Critical patent/JP3008223B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、マルチ・プロセッサ・
システムに係り、特にプロセッサ間の同期をとるのに好
適なプロセッサ間の同期装置に関する。
【0002】
【従来の技術】マルチ・プロセッサにおける従来の同期
処理は、基本的にタスク間での同期(処理順序付け)で
あり、タスク・ドリプンあるいはデータ・ドリプンでタ
スクが起動され処理を進めていく方式をとる。これを汎
用のマルチ・プロセッサ上で実現しようとすると、共有
メモリ上にタスク終了フラグを持ち、各タスクが先行す
る必要なタスク処理がすべて終了したかどうかをチェッ
クしてデータフロー的に処理を進める方式や、トークン
制御方式が採られる。従来の同期処理については「マル
チ・マイクロプロセッサシステム,pp117〜11
9,pp119〜122,哲学出版,1984年11
月」に述べられている。
【0003】
【発明が解決しようとする課題】上記汎用マルチ・プロ
セッサ・システムにおける従来技術は、いずれもソフト
ウエアで処理する割合が高くまたチェック項目も多いた
め、タスク間の同期(タスク処理の先行関係の順当化)
あるいはプロセッサ間の同期に要する同期処理オーバー
ヘッドが大きい。したがって、タスクの細分化(細かな
タスク分割)が十分できない。また並列処理のタスク処
理順序が必要以上に制約される等の問題がありジョブの
並列性を十分引き出せないため、高効率な並列処理の実
現が困難である。
【0004】さらに、限られた個数のプロセッサが、多
数のタスクを処理するマルチプロセッサシステムにおい
ては、従来、あるプロセッサがあるタスク処理を終了
し、次のタスク処理に移行する際、他の必要なタスク処
理が終了しており必要な結果がすべて出そろっているか
どうかを確認する同期処理が必要となる。その時、その
プロセッサは、同期チェック処理に占有され、同期処理
が終了するまで実質的、有効的な処理を実行しない空処
理時間を生じてしまうという問題がある。
【0005】本発明の目的は、汎用のマルチ・プロセッ
サにおける並列処理に伴うタスク間あるいはプロセッサ
間の同期処理オーバーヘッドを極小化することが可能な
プロセッサ間の同期装置を提供することにある。
【0006】
【課題を解決するための手段】上記目的は、複数のタス
クを分担して並列処理する複数個のプロセッサと、該複
数個のプロセッサ間でやりとりするデータを共有するデ
ータ共有回路と、前記複数個のプロセッサ間の同期をと
る同期処理回路とを備え、該同期処理回路は前記各プロ
セッサからの同期情報を得て、それらの同期情報の組み
合わせが、対応するプロセッサから予め与えられた条件
又は前記同期情報と共に該同期処理回路に与えられる条
件と一致したときに、該対応するプロセッサに関して同
期完了信号を生成する手段と、前記各プロセッサが前記
データ共有回路にアクセスしたときに、当該プロセッサ
に関する同期完了信号が生成されていなければ、同期完
了信号が生成されるまで当該プロセッサの前記データ共
有回路へのアクセスを一時的に禁止して当該プロセッサ
のアクセスを待たせる局所同期回路手段とを有すること
により達成される。
【0007】上記目的は、前記同期処理回路がタスクを
終了したプロセッサが出力するタスク終了情報を入力
し、関連するタスクを処理するいくつかのプロセッサが
出力する前記タスク終了情報が全てアクティブに変化し
た後にそのタスク終了情報から同期させるべきプロセッ
サがタスク処理を終了したことを示す同期終了情報を対
応するプロセッサに対してアクティブな値を出力し、局
所同期化回路が、そのタスク終了情報を出力したプロセ
ッサが前記データ共有回路へアクセスする時に対応する
前記同期終了情報が前記同期処理回路からアクティブな
値として出力されていないならば、アクセスを禁止し前
記プロセッサの動作を休止することにより達成される。
【0008】上記目的は、前記同期処理回路が並列処理
を実施する際に関連するタスクを処理するプロセッサ同
士でグループを形成し、該グループ内の前記プロセッサ
間、或いは該グループ間で同期をとる同期手段を備えた
ことにより達成される。
【0009】上記目的は、前記同期手段は、前記グルー
プ内の1つのプロセッサが出力するグループを構成する
それぞれのプロセッサ名に相当する情報を記憶する同期
用レジスタと、該同期用レジスタへのアクセスによりト
リガされるフィリップ・フロップと、該フィリップ・フ
ロップの状態を他のプロセッサへ伝送する第1の伝送回
路と、伝送された該フィリップ・フロップの状態と前記
同期用レジスタの記憶内容と照合し前記同期用レジスタ
に記憶された前記グループ内のそれぞれのプロセッサが
アクティブか否か判断する判断回路と、該判断回路が出
力する判断結果を前記フィリップ・フロップを介して前
記グループ内の1つのプロセッサに伝送する第2の伝送
回路と、を備えたことにより達成される。
【0010】上記目的は、前記同期手段はが前記グルー
プ内の1つのプロセッサが出力するグループを構成する
それぞれのプロセッサ名に相当する情報を記憶する同期
用レジスタと、該同期用レジスタへのアクセスによりト
リガされるフィリップ・フロップと、前記フィリップ・
フロップがタスク終了情報を出力するためのトリガ信号
をプロセッサから前記フィリップ・フロップへ出力する
第1の信号伝送手段と、前記同期用レジスタがプロセッ
サのグループを記憶するためのトリガ信号をプロセッサ
から前記同期用レジスタへ出力する第2の信号伝送手段
と、前記同期用レジスタの値が全プロセッサはグループ
に属するとみなすようにセットするアクティブな信号を
プロセッサから前記同期用レジスタへ出力する第3の信
号伝送手段とを備えたことにより達成される。
【0011】上記目的は、複数のプロセッサ間の同期処
理を行い、並列処理を矛盾なく制御するプロセッサ間の
同期処理装置において、前記各プロセッサに対応してそ
れぞれのプロセッサがタスクを終了した時点でアクティ
ブなタスク終了情報を出力する手段と、同期をとるべき
プロセッサからのタスク終了情報がすべてアクティブに
なったときとその情報を用いて各プロセッサに対応した
前記アクティブなタスク終了情報を非アクティブにする
手段と、前記タスク終了情報をプロセッサがチェックし
同期処理が終了したことを確認する手段とを有してお
り、前記アクティブなタスク終了情報の出力を指示する
EO命令と、前記同期処理が終了したことを確認するW
命令とを各プロセッサが発行し得ることにより達成され
る。
【0012】
【0013】上記目的は、1つのプロセッサのタスクの
終了時に、同レベルで実行を終了する他のプロセッサで
実行されたタスクから、次にプロセッサが実行すべきタ
スクへのリレーションが存在しない場合、前記EO命令
を挿入し、前記プロセッサが、あるタスクを終了して次
のタスクに処理を進める際、同レベルで実行された他の
プロセッサからの情報を必要としなければ前記EO命令
を実行して、次のタスクへ無条件で処理を進める手段を
有することにより達成される。
【0014】上記目的は、1つ前の同期レベルで前記E
O命令を実行して現在実行中のタスク処理に移ったプロ
セッサは、そのタスクの終了時点で次に実行すべきタス
クが同レベルで実行を終了する他のプロセッサで実行さ
れたタスクとのリレーションを有するとき、前レベルで
実行した前記EO命令に対応する同期チェック命令とし
てW命令を実行して、前レベルの同期処理が終了したか
を確認し、その後、現在の同期レベルの同期処理を行
い、次のタスクへ処理を進める手段を有することにより
達成される。
【0015】
【作用】本発明の構成によれば、汎用マルチ・プロセッ
サにおいて同時刻に処理されているタスクはプロセッサ
の個数を越えないことに注目して、並列処理に伴う同期
の問題をすべてプロセッサ間の同期をとる問題に帰着さ
せ、有限であるプロセッサ間での同期処理をハードウエ
ア化すると共に、データ共有回路をプロセッサがアクセ
スする時の情報を用いることによってソフトウエア・オ
ーバーヘッドを極小化し、かつ同期処理時に発生する空
処理時間を減少させる。
【0016】並列処理をプロセッサ間で同期をとりなが
ら矛盾なくかつ高効率で実行するため、有限であるプロ
セッサ個数分のビットを用意し、関連するタスクを実行
中のプロセッサに対応するビットをアクティブにセット
したビット列(ワードデータ)を、プロセッサがタスク
処理の終了時にタスク終了情報として同期用レジスタに
セットするとともにタスク終了線をアクティブにするタ
スク終了処理を実行し、それらの情報は判断手段に入力
され、セットされた同期用レジスタの各ビットに対応す
るプロセッサがすべてタスク終了処理を完了したかどう
かを各プロセッサの対応するタスク終了線とつき合わせ
ることによって監視し、すべてが真(タスクを終了し
た)なら同期がとれたものとしてプロセッサに同期終了
情報を発行し、汎用性を損わない範囲で上記同期処理を
ハードウエア化したものが同期処理回路である。
【0017】また、並列処理中の同期処理期間に発生す
るプロセッサの空処理時間(遊び時間)を自動的にかつ
オーバーヘッドを伴わず減少させるため、前述した同期
処理回路に加えて次のデータ共有回路と局所同期化回路
を設ける。
【0018】データ共有回路は、プロセッサでのタスク
処理に必要なプロセッサ間で共有すべき共有データを保
持又は提供する各プロセッサからアクセス可能とする。
【0019】局所同期化回路は、前述した同期処理回路
にタスク終了情報を送出してタスクを終了したプロセッ
サが、次のタスク処理に無条件で移行し、初めて前記デ
ータ共有回路から必要な共有データを得ようとした時、
前記同期処理回路からの同期終了情報がまだ発行されて
いない(非アクティブのままである)ならデータ共有回
路へのアクセスをペンディングし、プロセッサを待たせ
る。
【0020】それにより、タスク処理が終了していて、
かつ同期処理が終了していない場合、従来の様に無条件
でプロセッサが待たされ、空処理時間が生じてしまうの
とは異なり、プロセッサは次のタスクで共有データが必
要となるまでの間できるだけ次のタスク処理を進めてい
くことができるため、空処理時間を減少させることがで
きる。
【0021】更に、同期用レジスタへの値のセットのみ
を各プロセッサのソフトウエアにより行い、それ以外は
すべてハードウエアによって行うとすれば、プログラマ
ブル(汎用性を有する)で、かつソフトウエア・オーバ
ーヘッドが1マシン命令程度と小さなプロセッサ間の同
期をとることができる。
【0022】また、同期処理期間中に発生する空処理時
間を少なくする前記手段は、並列処理そのもののクリテ
ィカルパスを短縮する効果があり、より高効率な並列処
理を自動的に実行することができる。
【0023】ソフトウェア内に同期処理命令を配置する
コントロールフローと、前述したデータ共有回路へのア
クセス条件を利用したハードウェアによるデータフロー
的自動チューニングを組み合わせることにより、プロセ
ッサの遊び時間をより極小化でき、それにより並列処理
時の遊び時間の短縮を実現できる
【0024】
【実施例】以下図1〜図3により、本発明の全体構成を
説明する。
【0025】本発明は、並列処理のために必要なプロセ
ッサ間の同期処理を行う同期処理回路101、各タスク
の処理を分担して実行する複数の処理ユニット100n
(n=0,1,2,…)、各処理ユニット内のプロセッ
サ1n(n=0,1,2,…)の間での必要なデータの
やりとりを行うため必要な共有データの提供及び保持を
行うためのシステムバスl20上のデータ共有回路CS
YS102又は各処理ユニット内にデータのコヒーレン
シを保ちながら存在するローカルなデータ共有回路CS
YS51n(n=0,1,2,…)とから成る。同期処
理回路101は各処理ユニット内のプロセッサ1nから
それぞれ同期要求Sln(n=θ,1,2,…)を対応
する入力SYNCnREQに受け付け、その中のすべて
又はいくつかがアクティブになったときそれらのプロセ
ッサ間の同期がとれたとみなし、通知すべきプロセッサ
への同期チェック信号TESTnをアクティブにする。
上記アクティブな同期チェック信号TESTnは、同期
終了情報としてTest信号ラインTlnより処理ユニ
ット100n内の信号制御回路50n及びプロセッサ1
nのTEST入力に入力される。プロセッサ1nは、T
EST入力の状態をハードウエア又はソフトウエアでチ
ェックし、関連する処理を実行するプロセッサ間で同期
がとれたかどうかを判断する。同期処理回路の基本機能
は、プロセッサ1nからの同期要求Slnを同期処理回
路101が受け付けた時に一度TESTn出力を非アク
ティブに戻し、同期しなければならないプロセッサから
の同期要求Slがすべてアクティブになったとき、TE
STn出力を再びアクティブ状態にセットする。同期処
理回路101内の具体的な実施例は、図3及び図4によ
り後で詳細に説明する。各プロセッサ1n(n=θ,
1,2,…)は、タスク処理が終了した時点で同期処理
回路101にタスク終了情報としてアクティブなSln
を出力する。それを受けて、対応するTESTn出力が
アクティブに転じるまでデータ共有回路102及び51
n(n=θ,1,2,…)上に次のタスク処理で利用す
る他のプロセッサからの必要な結果データが完全には出
そろっていないとみなす。したがって、次の条件が成立
すれば、従来どおり矛盾なくプロセッサ間で同期をとり
ながら並列処理を進めていくことができる。
【0026】1)関連するタスク処理を実行しているプ
ロセッサからのタスク終了情報(Slnで同期処理回路
のSYNCnREQに入力される情報)がすべてアクテ
ィブに転じた(そのレベルのすべての必要なタスク処理
が終了した)後のタイミングで、それらのタスク終了情
報を発行した処理ユニット及びプロセッサに対して、ア
クティブな同期終了情報(TESTnから出力されTl
nによって処理ユニットへ伝送される情報)を出力す
る。その同期終了情報がアクティブに転じるまで、その
レベルで実行されているタスク処理による結果情報はす
べてが出そろっている訳ではないと仮定する。
【0027】2)プロセッサが次のレベルのタスク処理
(次のレベルで実行すべきタスク処理)に移行し、他の
プロセッサの実行したタスク処理結果のうちプロセッサ
間で共有すべきデータを保持するデータ共有回路102
又は51nを初めてアクセスする時点で、そのプロセッ
サは同期終了情報がすでにアクティブになっている事の
確認が終了していなければならない。もし、タスク処理
の中で初めてデータ共有回路をアクセスする時点で、同
期終了情報が非アクティブ状態であれば、アクティブに
転じるまでそのデータ共有回路へのアクセスをペンディ
ングしなければならない。
【0028】3)ここで、レベルの境目の定義を、各プ
ロセッサがアクティブなタスク終了情報を発行した時点
と定義する。すなわち、タスクとして定義された各処理
の切れ目をレベルの境目とする。また、アクティブな同
期終了情報が同期処理回路101から発行された時点を
同期レベルの境目と定義する。
【0029】以上の条件を満足した上で、最も効率良く
並列処理を実行するためには、同期処理で生じる空処理
時間(同期ポイントに早く到達したプロセッサが同期処
理が終了するまで待たされることによって生じるプロセ
ッサの遊び時間)を極力少なくする必要がある。このた
めには、各プロセッサに次のレベルの託す処理をできる
だけ先行して進めさせる方式を採るのが良い。すなわ
ち、タスク処理中で、初めてデータ共有回路にアクセス
する時点まで同期終了情報を無視してタスク処理を先に
進めて行き、最初のデータ共有回路アクセス時に初めて
同期終了情報がアクティブ状態(他のプロセッサが必要
なタスク処理をすべて終了しており、必要な共有情報が
すべてデータ共有回路上に存在している)である事を確
認する様にする。つまり、各プロセッサが各自の同期ポ
イントをできるだけ後にずらして進められるだけ先に処
理を進める方式である。これによって、一見固定的に分
割されて生成された様にみえる各タスクの処理時間を同
期条件によって動的に変えていく効果があり、並列処理
のクリティカルパス自体を短縮し、より高効率な並列処
理を自動的に実現する情報フロー並列処理的効果があ
る。この方式は、従来の様に同期処理終了情報にだけ依
存する方式と異なり、データ共有回路102又は51n
へのアクセス処理と密接に連動して同期処理が実行され
る。図1の処理ユニット100n及び図2に詳細を示し
た処理ユニット内の信号制御回路50nを例にとってハ
ードウエアの詳細を説明する。
【0030】処理ユニット100n内の信号制御回路5
0nは、プロセッサ1nからのアドレス信号を含む制御
信号l9nを受け、それらをデコードして共有システム
CSYS51nやデータ共有回路バスl12をアクセス
するためのアクセス要求信号l3nを生成し、データ共
有回路及びデータ共有回路バスl20へのアクセス権を
いずれのプロセッサに与えるかを決定するアービトレー
ション回路DC103に送る。アービトレーション回路
DC103は、複数の処理ユニットから送られてきた複
数のアクセス要求信号l3n(n=1,2,…)を受け
付けて、その中から1つを選択し、アクセス許可信号l
4n(n=θ,1,2,…)のうち選択された処理ユニ
ットに対応するアクセス許可信号をアクティブにする機
能を有する。信号制御回路50nは、アクセス許可信号
l4nがアクティブになると出力バッファ52nをON
にして、データ共有回路バスl20へアドレス信号やコ
ントロール信号及び書き込み処理の場合は情報信号をバ
スラインl5nによって出力する。また、読み込み処理
の場合は、データ共有回路バス上のデータをバスライン
l5n及び入力バッファ53nを介して局所データ共有
回路CSYS51nに書き込んだり、バスラインl10
nを介してプロセッサ1nが直接読み込んだりする。局
所データ共有回路CSYS51nの情報をプロセッサ1
nが読み出す場合は、バスラインl7nを介する。各処
理ユニット100n(n=θ,1,2,…)内の各局所
データ共有回路CSYS51n(n=θ,1,2,…)
は、常に同一の内容を保持していなければならない。し
たがって、プロセッサ1nからの読み出し処理時には他
のプロセッサと独立に局所データ共有回路CSYS51
nをローカルメモリのごとくアクセスすることができる
が、書き込み処理時には、データ共有回路バスl20を
介してすべての処理ユニット(n=1,2,3,…)内
の局所データ共有回路CSYS51n(n=θ,1,
2,…)に書き込む必要があるため、アービトレーショ
ン回路103の管理下でデータ共有回路バスl20を占
有して実行しなければならない。この時、各処理ユニッ
ト内で独立的に実行されている局所データ共有回路CS
YS51nからの読み出し処理とのアクセス競合が生ず
るが、これに関しても信号制御回路50n内で競合制御
を行い、矛盾なくアクセスが可能となる様にする。
【0031】図2は、信号制御回路50nの実施例を示
している。デコーダ200はプロセッサ1nからのアド
レス線や制御線l9nをデコードして、データ共有回路
CSYS51n及び102をプロセッサ1nがアクセス
する場合のアクセス要求に対する制御信号、イネーブル
信号等を生成する。アービトレーション回路103への
データ共有回路バスアクセス要求信号CSREQ(Lo
アクティブ)l3nは、デコーダ200からデータ共有
回路イネーブル信号CSEN(Loアクティブ)213
と同期処理回路からの同期終了情報SYNCOK(Lo
アクティブ)TlnとのOR理論をとることにより生成
する。アービトレーション回路103からのアクノリッ
ヂ信号l4nは、前記CSREQ信号l3nに対するア
ービトレーション回路103からの直接の返答であるC
SACK信号(Loレベルのときアクセス要求が受け付
けられた)209と、共通システムCSYS51n(n
=θ,1,2,…)がいずれかの処理ユニットの書き込
み処理に占有されていることを示すCSBUSY信号
(Loアクティブ)から成る。RDYACK信号(Hi
アクティブ)206は、CSBUSY信号210がアク
ティブの場合、非アクティブ(Loレベル)になる様に
コントロールされ、プロセッサ1nが自身のデータ共有
回路CSYS51nからデータを読み出そうとした場
合、データ共有回路CSYS51nへの他の処理ユニッ
トからの書き込み処理とアクセス競合を生じない様にな
っている。すなわち、CSYS51nへの書き込み処理
が存在する場合NANDゲート208が非アクティブ
(Hiレベル)になり、CSYS51nへの読み出しイ
ネーブル信号CSRD(Loアクティブ)を非アクティ
ブにする。例えば、データ共有回路102にアクセスす
るため、デコーダ200はCSEN213をアクティブ
にしたとする。その時、SYNCOKTlnが非アクテ
ィブであるとすると、CSREQl3nは、ORゲート
212により、 SYNCOKTlnが非アクティブ
のうちはアクティブにならず、したがって、CSACK
信号209も非アクティブであり、CSACK信号20
9も非アクティブのままである。これにより、CSAC
K209とCSREQl3nを受けるNORゲート20
2はLoレベルに固定される。デコーダ200は、NO
Rゲート202の出力がHiレベルに転じるまでCSE
N213をLoレベルに固定しつづける。また、同様
に、出力バッファ52nの出力をコントロールするBF
ON信号l2nもNORゲート202の出力を受け、非
アクティブ(Hiレベル)のままであり、データ共有回
路バスl20へのアクセスはSYNCOKTlnがアク
ティブになるまで待たされる。プロセッサ1nを一時停
止する機能はREADY信号(Loアクティブ)l1n
を非アクティブに保ち、プロセッサ1nのバスサイクル
を終了させないことによって実現する。READY信号
l1nは、ANDゲート211により、CSRDl8n
か又はBFONl2nのいずれかがアクティブになった
時、アクティブに転じ、プロセッサを次の処理に進め
る。これを局所同期機能と呼ぶ。同様に、供給システム
CSYS51nをアクセスするための信号CSRDl8
nも、SYNCOKTlnをインバータ207でHiア
クティブに変換してNANDゲートに入力しており、S
YNCOKTlnが非アクティブのうちは、CSRDl
8n及びREADYl1nを非アクティブにすることに
より、データ共有回路CSYS51nへのアクセスを一
時停止する様にしている。
【0032】図3は、同期処理回路101の実施例を示
している。NANDゲートUAθ〜UAn……は、フィ
リップフロップUCθ〜UCn……の対応するQ出力
と、フィリップフロップUBθ〜UBn……の対応する
Q出力とを受け、その出力がすべてHiレベルになった
時のみ、それらの出力を受けている多入力NANDゲー
トの出力はLoレベルになる。フィリップフロップUC
θ〜UCn……のQがHiレベルのとき、対応するNA
NDゲートUCθ〜UCn……に入力されているフィリ
ップフロップUBθ〜UBn……のQ出力が有効にな
る。この例では、UBθ〜UBn……のQ出力の有効、
無効を決定する作業をプロセッサ1θが行う。すなわ
ち、フィリップフロップUCθ〜UCn……に、対応す
るプロセッサ1n(n=θ,1,2,…)からの同期要
求Sln(n=θ,1,2,…)を無視する場合、プロ
セッサ1θは、対応するSlDθ〜SlDn……をLo
レベル(θ)にセットして、Slθにトリガ信号を発生
することにより、対応するUCθ〜UCn……のQ出力
をLoレベル(θ)にセットする。各プロセッサ1n
(n=θ,1,2,…)は、同期要求として対応するS
lθ〜Sln……にトリガ信号を発生ずることにより、
Q出力Loレベルをセットし、Q出力にHiレベルをセ
ットして、同期終了情報Tlθ〜Tln……を一度非ア
クティブにする。UCθ〜UCn……のQ出力がHiレ
ベル(1)にセットされた対応するNANDゲートUA
θ〜UAn……の出力はその時初めてHiレベルに転ず
る。UCθ〜UCn……のQ出力がHiレベルにセット
された対応するUBθ〜UBn……のQ出力がすべてL
oレベルにセットされて初めて、多入力NANDゲート
UDθの出力がHiレベルからLoレベルに遷移する。
UDθのLoレベルの出力により、フィリップフロップ
UBθ〜UBn……はプリセットされ、そのQ出力はH
iレベルに戻る。一方、UBθ〜UBn……のQ出力は
Loレベルに戻り、アクティブな同期終了情報Tlθ〜
Tln……を対応するプロセッサ1n(n=θ,1,
2,…)に送る。
【0033】もし、すべてのプロセッサを同期処理に参
加させたければ、UCθ〜UCn……のQ出力をすべて
Hiレベルにセットすれば良い。これを一斉同期モード
と呼ぶ。一斉同期モードしか用いないならば、フィリッ
プフロップUCθ〜UCn……は必要なく、UBθ〜U
Bn……のQ出力をインバータで論理反転し、多入力N
ANDゲートUDθに直接入力すれば良い。
【0034】次に、本発明の同期処理回路のもう一つの
実施例を図4により説明する。実施例におけるマルチ・
プロセッサ・システムは、m台のプロセッサから構成さ
れるとし、本図では代表的なプロセッサ1n及び1n+1を
示している。各プロセッサにはそれぞれプロセッサ間同
期処理用の回路2n,2n+1が設けられている。2n,2n
+1は、図3に示す同期処理回路中の101Aに示す回路
部分と等価である。同期用回路2n,2n+1間の情報交信
は信号ライン8によって行われる。本発明によれば、関
連のあるタスクを実行するプロセッサが任意にグループ
を構成し、グループ内で同期をとりながら処理を進める
ことができる。前述したプロセッサ間同期用の回路2
n,2n+1はそれぞれ各プロセッサに対応して、グループ
名に相当する情報を格納する同期用レジスタ5と、同期
用レジスタ5に値がセットされるタイミングかあるいは
それ以後のタイミングでトリガされるフィリップ・フロ
ップの状態を各プロセッサに放送する信号ラインと、放
送された情報を同期レジスタ5の内容と照合し、そこに
登録されたグループ内のプロセッサの状態がすべて真に
なったか否かをチェックする判断回路6と、判断回路6
のチェック結果をプロセッサに知らせる信号回路とを備
えている。4はアクセス信号の信号線、8はタスク終了
信号ライン、9はステータス線、10はトリガ信号線を
示す。同期用レジスタ5は、図3の101Aに示す回路
中のフィリップフロップUCθ〜UCn……に相当す
る。本実施例においては、各プロセッサ1nに対応して
それぞれ同期用レジスタ5を有するため、各プロセッサ
が独自に、同期処理の対象と成るプロセッサを選択でき
る(図3の例ではプロセッサ1θのみが選択権を有す
る)。本実施例では、各プロセッサに対応して分散して
同期処理用回路を設けた構成を採っており、分散された
各同期処理用回路2n(n=θ,1,……m)は、信号
ライン8によって必要なデータを送受する。したがっ
て、同期処理用回路2n(n=θ,1,……n)と信号
ライン8をすべて含めて、図1に示した同期処理回路1
01を構成していると言える。
【0035】次に、プロセッサのグループ内での同期動
作シーケンスを説明する。プロセッサ10〜1nのうち例
えばプロセッサ1n及び1n+1がグループを構成し、関連
するタスクを実行しているものとする。まずプロセッサ
1nの動作を中心に説明する。プロセッサ1nはタスク処
理を完了すると、同期用レジスタ5にデータ・ライン3
(SlDθ〜SlDn〜SlDm)を通してそのn番目
とn+1番目のビットに1をセットし、他のビットは0
をセットしたビット列(これによりプロセッサのグルー
プを示す)を書き込む。その書き込み動作の際、プロセ
ッサnが同期用レジスタ5をアクセスしていることを示
す信号線4がアクティブなパルスを発生し、それが同期
用レジスタ5への書き込みクロック信号の役割を果た
す。また同時に、信号線4によってフィリップ・フロ
プ7もトリガされ、その端子Qに0レベルのタスク終了
信号が出力され、端子Qには1レベルのステータス信号
が出力される。端子Qからのタスク終了信号はタスク終
了信号ライン8のnに続されており、各プロセッサの
同期用回路20〜2nへ伝送される。また、端子Qからの
ステータス信号はステータス線9によりプロセッサ1n
のTEST入力に入力されており、プロセッサはTES
T入力が0レベルに転じるまで処理を中断する。同期用
レジスタ5にセットされた値と信号ライン8との値は、
互いに0からmの対応関係を保ちつつ判断回路6に取り
込まれ、NAND−NANDゲート(101AのUAθ
〜UAn……とUDθに相当する)によって同期用レジ
スタ5に1がセットされたビットに対応するタスク終了
信号ライン8の値がすべて0レベルになった場合、すな
わちこの例ではタスク終了信号ライン8のn及びn+1
が0レベルとなった場合、トリガ信号10がアクティブ
0となる。これを受けて、フィリップ・フロップ7はブ
リセットされ、端子Qからのタスク終了信号1が1レベ
ルに転じ、タスク終了信号ライン8のnは1レベル
るため、判断回路6のトリガ信号10も1レベルに転じ
る。また同時に端子Qにステータス信号は0レベルに転
じ、したがってプロセッサ1nのTEST入力も0レベ
ルになるため、プロセッサ1nは処理を再開する。プロ
セッサ1n+1でも同様の操作が行われるため、この例で
は結果的にプロセッサ1nとプロセッサ1n+1が相方とも
タスク処理完了した時点で同期化されることになる。
【0036】以上が本発明の同期処理回路の動作シーケ
ンスである。本発明において、ソフトウエアによる同期
処理は、同期用レジスタ5への値の書き込みだけであ
り、機械語レベルで1マシン命令程度である。その他は
すべてハードウエアで処理されるため、プログラマブル
であるという条件下で同期処理に要するオーバーヘッド
は極小化されている。さらに本発明によれば、1組の同
期処理回路101を利用するだけでプロセッサを関連す
るもの同志でグループ分けすることが可能であり、グル
ープ分けされた各グループ内に属するプロセッサ間で同
期処理を容易に行うことができる。また、本発明の同期
処理回路101を複数組備えることによって、グループ
間の同期処理等を多重に行うことが可能である。プロセ
ッサのグループ分けと多重同期とにより、並列処理に柔
軟性が生まれ、データーフローに近い高効率の並列処理
を汎用マルチ・プロセッサ・システム上で実現すること
ができる。 第5図は本発明の同期処理回路101によ
る並列処理の制御の流れを示す。第5図の例では信号制
御回路50nの中で行われる局所同期処理を用いておら
ず、同期処理回路101からの同期終了情報だけをプロ
セッサ1nがチェックすることによって同期処理を実行
するものとする。この図において、プロセッサaからプ
ロセッサdの4台のプロセッサが、本発明の同期処理回
路101によって図中上部から下部へと時刻の経過とと
もに並列処理の進行制御がなされているものとする。ま
ず関連するタスクであるタスク1とタスク2とがそれぞ
れプロセッサa及びプロセッサbで処理され、同様にタ
スク3とタスク4とがそれぞれプロセッサc及びプロセ
ッサdで処理されている。関連するタスクを実行するプ
ロセッサはグループを構成できるため、この場合プロセ
ッサaとプロセッサbがグループ11を構成し、プロセ
ッサcとプロセッサdがグループ12を構成している。
タスク間を結ぶ実線矢印は同一プロセッサ間での処理の
流れとデータの流れを示し、一点鎖線矢印はグループ内
の他のプロセッサによって実行されるタスク間でのデー
タの流れ、すなわちグループ内プロセッサ間での通信を
示している。時刻t1及びt2においてそれぞれ2つのグ
ループ内で通信の必要が生じ、本発明の同期処理回路1
01によって同期処理がなされた後、処理データがプロ
セッサ間で交換されている。その後、プロセッサaとプ
ロセッサbのグループはそれぞれタスク5とタスク6の
処理に移り、プロセッサcとプロセッサdのグループは
それぞれタスク7とタスク8の処理へ移る。このよう
に、図4に示すプロセッサ間同期処理回路101による
同期処理は、それまでのタスク処理をどのプロセッサと
グループを構成して実行してきたかを示している。また
グループ分けによってグループ間にはデータのやりとり
が生じないため、それぞれのグループの処理を独立して
進めることが可能であり、並列処理の進行制御がフレキ
シブルであるため、効率の良い並列処理を実現可能であ
る。以後、グループ13、14は、グループ12、13
と同じプロセッサ同志でグループを構成してタスク処理
を行っており、同様の時刻t3及び 4 で同期処理がなさ
れプロセス間の通信が行われている。時刻t5では、す
べてのタスク9〜12関連が生じ、グループ間の独立性
がなくなったため、一度グループ内で同期処理を行った
後、別系統のプロセッサ間同期処理回路101により再
び同期処理を行い、すべてのプロセッサを同期させてい
る。すなわち、別系統のプロセッサ間同期処理回路10
1によりグループ間の同期処理を行ったと考えることが
でき、結果的にグループ15はすべてのプロセッサが属
するグループとなっている。その後、関連するタスク1
3〜15を処理するプロセッサa〜cがグループ16
を、独立したタスク16を実行するプロセッサdは単独
グループ17をそれぞれ構成し、グループを再編成し
て、以下同様に時刻t6及びt7等で同期処理を行いなが
ら並列処理を実行していく。この様に、複数組の同期処
理回路101を用意し、多重同期処理を行うと、グルー
プの再編成等も容易に実現でき、よりフレキシブルで高
効率な並列処理を実現できる。
【0037】次に、図4に示した本発明の同期処理回路
を用いて、図1に示したプロセッサ間同期処理装置を構
成した場合の具体的な効果を、タスクを構成する最小単
位であるプロセッサのインストラクションレベルまで分
解して解析した一例を図に示す。第6a図は、局所同期
方式を用いないで同期終了情報Tlnのみに依存してプ
ロセッサ間の同期処理を行った場合であり、いわば従来
型と言える。すなわち、図5に示した並列処理フローの
一部を切り出したものと考えれば良い。図6の動作条件
及び仮定を以下に示す。
【0038】1)同期処理回路101へのタスク終了情
報を送出しタスクの終了をプロセッサが宣言するプロセ
ッサ間同期用インストラクションをSと表記する。
【0039】2)プロセッサPl、Pm、Pnはグルー
プを構成しており、グループ内で同期をとりながら関連
したタスクを実行している。
【0040】3)各プロセッサPl、Pm、Pnは、イ
ンストラクションSを実行した後同期処理回路101か
らの同期終了情報(TEST出力)がアクティブに転じ
るまで(Pl、Pm、Pnのすべてがそのレベルでのタ
スク処理を終了し、それぞれインストラクションSを実
行するまで)無条件で待たされる。
【0041】4)同期終了情報が非アクティブ状態で
も、各プロセッサは外部のデータを使用しない範囲で、
プロセッサ内部の命令キューや命令キャシュに存在する
命令に限定して可能な限り実行することができる。すな
わち同期化ロジックとして、インストラクションSを実
行する際に同期処理回路101をアクセスするため生成
した外部バスサイクルに対して、同期終了情報がアクテ
ィブに転じるまでReady信号をプロセッサに返送しない
様にし、強制的に外部バスサイクルを一時停止(外部バ
スサイクルを終了させない)する回路構成を採っている
とする。
【0042】5)外部データを使用しないインストラク
ション(例えばレジスタ間演算等)をIと表記する。一
方、共有システム上のデータ以外の外部データを使用す
るインストラクションをID、共有システム上の共有デ
ータを使用するインストラクションをICDと表記す
る。
【0043】一方図6は、局所同期方式を用いて、後続
のタスク処理のうち最初の共有システムアクセス(IC
D)まで先行して処理を進めた場合を示している。条件
及び仮定は、前記図6におけるそれの1)、2)、5)
は同様である。条件3)及び4)の代りに以下の条件を
設定する。
【0044】6)各プロセッサPl、Pm、Pnは、イ
ンストラクションSを実行して、アクティブなタスク終
了情報を同期処理回路に送出した後、新たな共有システ
ムへのアクセス命令(ICD)が現われるまで先行して
次のレベルのタスク処理を進めていく。
【0045】7)6)の条件で先行して次のレベルのタ
スク処理を進めて行った時、各プロセッサPl、Pm、
Pnは、共有システムへのアクセス処理ICDを最初に
実行しようとした時点で、まだ前のレベルでの同期処理
回路101からの同期終了情報がアクティブになってい
ない場合、ICDによって生成された外部バスサイクル
に対するReady信号l9を同期終了情報がアクティブに
なるまでプロセッサに返送しない。すなわち、ICDに
よって生成した外部バスサイクルを同期終了情報がアク
ティブに転ずるまで強制的に一時停止(バスサイクルを
終了させない)する。なお、命令キューや命令キャッシ
ュ上のインストラクションIは、実行が可能ならば、さ
らに先行して処理を進めることができる。インストラク
ションICDと同期終了情報との組み合わせによる同期
処理を前述した様に局所同期処理と呼ぶ。
【0046】ここで、SYNCkは、同期処理回路から
アクティブな同期処理情報が返送された時点、すなわち
レベルkでの同期がとれた時点を示している。図6にお
いては、レベルk−1の後半部でプロセッサPl、Pm
にレベルをkの後半部でプロセッサPl、Pnに空時間
が生じており、プロセッサは休止している。図6におい
ては、インストラクションICDが現われるまで各プロ
セッサは先に処理を進めていくことができるため、レベ
ルk−1の後半部でプロセッサPmにわずかな空時間を
生じている以外はレベルk−1、レベルk共、空時間を
生じていない。スタートをM、終了をNとすると、図6
の上部に対して図6の下部ではPlがtlだけ、Pmが
tmだけ、Pnがtnだけ、それぞれ処理時間を短縮し
た事になる。並列処理のクリティカルパスを実行するプ
ロセッサも、図6の上部ではレベルk−1がPn、レベ
ルkがPm、レベルk+1がPlとなっているのに対し
て図6の下部ではレベルk−1、k、k+1共Pnとな
っており、クリティカルパス自体が変化しているのがわ
かる。これは、各プロセッサがタスク処理をレベルにま
たがって先行処理したために、実質的なタスク処理時間
そのものが動的に変化したために、クリティカルパスに
も変化が生じたのである。その結果、処理の開始時点を
M、終了時点をNとすると、図に示した並列処理全体で
図6の下部は図6の上部よりtcだけ処理時間を短縮し
た事になる。これは、処理能力が約21%程度向上した
計算になり、局所同期方式を用いると処理能力を大幅に
向上できる可能性を示している。
【0047】なお、図6において、A、B、Cのポイン
トは、それぞれレベルk−1でのPl、Pm、Pnの同
期用インストラクションSの位置を示している。D、
E、Fのポイントは、それぞれレベルkで実行するタス
クの中で初めて実行する共有システムアクセスを伴うイ
ンストラクションICDである。同様に、G、H、Iは
レベルkでのSの位置、J、K、Lはレベルk+1で実
行するタスク中での最初に現われるICDの位置を示し
ている。
【0048】以上に述べたように本実施例は、固定的な
タスクの境目を排除し、タスク処理中で最初に共有シス
テムにアクセスして共有データのやりとりを行う必要が
生じるまで、先行してできるだけタスク処理を進めて行
くことができるので、同期処理時のプロセッサ間の待ち
合わせ処理に伴う空処理時間(プロセッサの休止時間)
を少なくすることができる。このことは、タスク処理時
間を各プロセッサの同期条件に応じて動的にタスク処理
時間を変更して並列処理のクリティカルパス自体を短縮
し、データドリブンと同様な効果を得て、より効率の良
い並列処理の実行を可能にする。
【0049】また、本実施例の同期処理回路によれば、
汎用マルチ・プロセッサにおいて、固定されたジョブを
タスク分割し並列化して並列処理する場合、関連するタ
スクを実行する任意のプロセッサ同志をグリープにまと
め、グループ内のプロセッサ間あるいはグループ間で同
期をとる同期処理方式を用いることによって、プロセス
間の同期処理機構をソフトウエア・プログラマブルな範
囲で可能な限りハードウエア化することができるので、
同期処理に要するソフトウエア・オーバーヘッドを極小
化する効果がある。
【0050】次に、ソフトウェア内に同期処理命令を配
置することによりコントロールフローによって、並列処
理時の遊び時間の短縮を実現できる様にしたプロセッサ
間の同期装置用の命令セットの実施例を説明する。ソフ
トウェア的による基本的なコントロールフローは図4の
プロセッサ同期処理回路を用いれば実現できるが、より
高機能化を実現するため、図4に示した様に信号線4を
それぞれ特定の機能を有する4a、4b、4cの3本に
分離したものを用いている。
【0051】図7は本発明の他の実施例の同期処理回路
の構成を示すブロック図である。信号線4aは、タスク
終了情報を出力するフリップフロップをトリガするため
の信号、信号線4bは、同期用レジスタ5にグループを
登録するためのトリガ信号である。信号線4cについて
は後述する。
【0052】図8に同期処理命令の内容を示す。
【0053】図7に示した同期処理回路を動作させるた
めに各プロセッサn(n=0,1,……)は、対応する
同期処理エレメントn(n=0,1,……)に対してS
YNCO〜SYNC7の合計8つのインストラクション
を指令する。それぞれのインストラクションにはそれぞ
れの機能を表現するニーモニックを用意している。すな
わち基本機能は以下の通りである。
【0054】GS……グループセッティング(同期用レ
ジスタ5にグループを登録することにより、どのプロセ
ッサ同志がグループを構成しているかを指示する) E
O……エンドアウト(タスク終了情報をアクティブに
し、タスク処理終了信 号ライン8に出力して
タスクが終了した事を示す) W ……ウェイト(グループ内に属するすべてのプロセ
ッサのタスクが終了し、 同期処理が完了する
まで対応するプロセッサを待ち状態にする。同期
処理が完了したかどうかを最終的に確認する機能で
ある) 以上の基本機能を組み合わせて1マシン命令を実行でき
る様にした複合インストラクションとして以下のものを
有する。
【0055】GSEOW……グループセッティング(G
S)→エンドアウト(EO)→ウェイト(W)の順で各
機能を連続処理し、一連の同期処理を1マシン命令で実
現する。
【0056】GSEO………グループセッティング(G
S)→エンドアウト(EO)の順で各機能を連続処理す
る。
【0057】EOW…………エンドアウト(EO)→ウ
ェイト(W)の順で各機能を連続処理する。以前にGS
機能によってセットされたグループに対し、 一連の
同期処理を1マシン命令で実現する。
【0058】その他、プロセッサ側の処理をより高速
化、簡略化するためには以下の複合インストラクション
を有する。
【0059】TSEOW……トータルセッティング(T
S)→エンドアウト(EO)→ウェイト(W)の順で各
機能を連続処理する。
【0060】TSEO………トータルセッティング(T
S)→エンドアウト(EO)の順で各機能を連続処理す
る。
【0061】ここで、TSはすべてのプロセッサを1つ
のグループとみなして同期処理を行うことを指令する基
本機能であり、トータルセッティングと呼ぶ。図7にお
ける信号線4Cをアクティブにすることにより、同期レ
ジスタの値をすべてのプロセッサがグループに属すると
みなすモードにセットする機能である。
【0062】図9、図10はタスクの処理方法を説明す
る説明図である。
【0063】本図を用いて従来のコントロールフローと
比較しながら、その使用法及び効果を説明する。
【0064】図9は、グループ内同期命令であるGSE
OWか又はEOWのみを使用し、図7に示した同期処理
回路を用いて行った従来の同期処理による並列処理制御
を示している。プロセッサmとプロセッサnとがグルー
プを構成している。既に述べた様に、互いのプロセッサ
がそれぞれタスクが終了した時点でプロセッサmとnと
が共にグループに属することを宣言しあう。そして、そ
の際出力されたグループ内のプロセッサm、nからのタ
スク処理終了信号がすべてアクティブになるまでプロセ
ッサm、nは互いに待ち合わせを行い、その後、次のタ
スクに処理を進めることにより矛盾なく並列処理を進め
ていく。
【0065】図10は、EO命令(タスク終了情報のみ
の出力)とW命令(グループ内のタスク終了情報がすべ
て出そろったかを確認する)を各々に使用することによ
り、図1に示す実施例で説明した共有システムCSYS
へのアクセス条件によるデータドリブン(データフロー
的)を用いた自動チューニング機能と同じ様な効果を、
コントロールフロー(ソフトウェアによる同期命令の指
令によってトップダウン的に並列処理をコントロールす
る)によって実現した例である。並列化処理を行った段
階で、プログラム中の同期処理を行うポイントにコンパ
イラが図8に示したSYNCO〜7までの適切な同期用
インストラクションを挿入していく。SYNCO〜7の
使い分け条件は以下の通りである。
【0066】(1)あるプロセッサのタスクの終了時
に、同レベルで実行を終了する他のプロセッサで実行さ
れたタスクから、次にプロセッサが実行すべきタスクへ
のリレーション(図9、図10において矢印で示してい
る)が存在しない場合、タスク終了情報を出力するだけ
の命令であるEOを挿入する。すなわち、図9、図10
の例ではタスク3の終了時及びタスク4の終了時点がこ
の条件にあてはまる。プロセッサの動作レベルで説明す
れば、あるプロセッサが、あるタスクを終了して次のタ
スクに処理を進める際、同レベルで実行された他のプロ
セッサからの情報を必要としなければEO命令を実行し
て、次のタスクへ無条件で処理を進めることができると
いう事を意味する。
【0067】(2)1つ前の同期レベルでEO命令を実
行して現在実行中のタスク処理に移ったプロセッサは、
そのタスクの終了時点で次に実行すべきタスクが同レベ
ルで実行を終了する他のプロセッサで実行されたタスク
とのリレーションを有するとき、前レベルで実行したE
O命令に対応する同期チェック命令としてW命令を実行
して、前レベルの同期処理が終了したかを確認する。そ
の後、現在の同期レベルの同期処理(例えばGSEOW
又はEOW)を行い、次のタスクへ処理を進める。すな
わち、図9、図10の例ではタスク5の終了時点がこの
条件に当てはまる。プログラム上では、タスク5の終了
時点にWとEOWをこの順で配置すれば良い。 ここで
の同期レベルとは、図9、図10におけるSYNCレベ
ル1〜3に相当し、そのレベルでのタスク処理が終了し
て同期処理を実行する必要が生じた時点を差す。なお、
GSEOW命令とEOW命令との違いは、GSEOWが
グループに属するプロセッサを指定する機能(GS)を
伴うのに対して、EOWはその機能を伴わないことであ
る。したがって、EOWを指定した場合は、前のGS機
能でセッティングされたプロセッサグループ構成がその
ままデフォールト値として使用される。
【0068】図10の処理順を説明する。
【0069】(a)タスク0、タスク2、タスク4、タ
スク6はこの順でプロセッサmにより実行するとする。
タスク1、タスク3、タスク5、タスク7はこの順でプ
ロセッサnにより実行するとする。また、本例では、各
タスク間に図中矢印で示したリレーションを有するとす
る。
【0070】(b)タスク0とタスク1の処理結果はお
互いにタスク2とタスク3で使用する。したがってプロ
セッサmとnはSYNCレベル1で同期をとる必要があ
り、グループの設定から同期完了チェックまでの一連の
同期処理をお互いにGSEOW命令を実行し合うことに
よって1命令で実現している。
【0071】(c)SYNCレベル2においては、タス
ク4はタスク2とタスク3の処理結果を使用し、タスク
5はタスク3の結果しか使用しない。ただし、グループ
の変更はない。したがって、プロセッサmはEOW命令
によりタスク終了情報の出力から同期完了チェックまで
の一連の同期処理を実行し、プロセッサnはEO命令を
実行して、同期チェック(W)を行わずに連続して次の
処理に進む。
【0072】(d)SYNCレベル3においては、タス
ク6がタスク4の処理結果しか必要とせずタスク7はタ
スク4とタスク5のいずれの処理結果も必要とする。し
たがって、プロセッサmはEO命令を実行し、同期チェ
ック(W)を行わずに連続して次のプロセッサに進む。
一方、プロセッサnは、以前(SYNCレベル2)にお
けるEOに対応したW命令を実行してSYNCレベル2
の同期チェックを行い、次にEOW命令を実行してSY
NCレベル3の一連の同期処理を実行した後(すなわち
タスク4が完了したことを確認した後)、次のタスク
(タスク7)へ処理を進める。以上により、図9で生じ
ていた遊び時間ta及びtbが、図10では殆ど解消し
ているのがわかる。
【0073】本実施例におけるコントロールフロー方式
の特徴を以下に挙げる。
【0074】(1)タスク間のリレーションと処理時間
が正確にわかっている場合は、事前に行う並列化スケジ
ュール時にプログラム内に適切な同期命令をルールに従
って挿入しておくだけで遊び時間の最適なチューニング
を実現できる。自動チューニングを用いた場合は、タス
ク間のリレーションを厳密に判断できないので、最適性
については本実施例より劣る。
【0075】(2)図7に示した同期処理回路以外の特
別なハードウェアを必要としないため、単純な構成とな
る。
【0076】本発明によれば、複数のタスクを分担して
並列処理する複数のプロセッサと、そのプロセッサ間で
やりとりするデータを共有するデータ共有回路と、複数
のプロセッサ間の同期をとる同期処理回路とを備え、該
同期処理回路は前記各プロセッサからの同期情報を得
て、それらの同期情報の組み合わせが、対応するプロセ
ッサから予め与えられた条件又は前記同期情報と共に該
同期処理回路に与えられた条件と一致したときに、該対
応するプロセッサに関して同期完了信号を生成する手段
と、前記各プロセッサが前記データ共有回路にアクセス
したときに、当該プロセッサに関する同期完了信号が生
成されていなければ、同期完了信号が生成されるまで当
該プロセッサの前記データ共有回路へのアクセスを一時
的に禁止して当該プロセッサのアクセスを待たせる局所
同期回路手段とを有することにより、タスク処理が終了
していて、かつ同期処理が終了していない場合、プロセ
ッサは次のタスクで共有データが必要となるまでの間で
きるだけ次のタスク処理を、先行してタスク処理を進め
て行くことができるので、空処理時間を減少させる効果
が得られる。
【0077】また、ジョブを並列処理する場合、関連す
るプロセッサ同志をグリープにまとめグループ内のプロ
セッサ間あるいはグループ間で同期をとることによっ
て、同期処理機構をハードウエア化することができるの
で、同期処理に要するソフトウエア・オーバーヘッドを
極小化する効果が得られる。
【0078】そして、ソフトウェアによる同期命令よっ
てトップダウン的に並列処理をコントロールするコント
ロールフローと、ハードウェアによるデータフロー的自
動チューニングを組み合わせることにより、プロセッサ
の遊び時間をより極小化でき、最適な並列化効率を実現
することが可能となる。
【図面の簡単な説明】
【図1】本発明の実施例に係る全体構成を示すハードウ
エア・ブロック図である。
【図2】図1に示した信号制御回路の構成を示す系統図
である。
【図3】図1に示した同期処理回路の実施例を示す系統
図である。
【図4】図1に示した同期処理回路の他の実施例を示す
系統図である。
【図5】本発明のプロセッサ間の同期処理による並列処
理の制御例を示す説明図である。
【図6】本発明の実施例に係る局所同期を併用した場合
の処理時間の短縮効果を示す説明図である。
【図7】本発明の他の実施例の同期処理回路の構成を示
すブロック図である。
【図8】本発明の他の実施例の同期処理命令の内容を示
す。
【図9】本発明の他の実施例のタスクと同期処理命令の
関係を説明する説明図である。
【図10】本発明の他の実施例のタスクと同期処理命令
の関係を説明する説明図である。
【符号の説明】
1 マルチ・プロセッサを構成するプロセッサ 2 同期処理エレメント 4 同期処理エレメントへのアクセス信号線 4a 信号線 4b 信号線 4c 信号線 5 同期用レジスタ 6 判断回路 7 フィリップ・フロップ 8 タスク処理終了信号ライン 9 ステータス信号線(タスク終了情報線) l20 共有システムバス l21 アービトレーションライン 50n 信号制御回路 51n 局所共有システム 100n 処理ユニット 101 同期処理回路 102 共有システム 103 アービトレーション回路
フロントページの続き (56)参考文献 特開 平2−105961(JP,A) 1.ASPLOS−▲III▼ SI GPLAN Notices 24 Sp ecial Issue May 1989 p54−63 Rajiv Gupta 「The Fuzzy Barrie r:A Mechanism for High Speed Synchro nization of Proces sors」 (58)調査した分野(Int.Cl.7,DB名) G06F 15/177 680 G06F 9/46 360 INSPEC(DIALOG) JICSTファイル(JOIS)

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数のタスクを分担して並列処理する複
    数個のプロセッサと、該複数個のプロセッサ間でやりと
    りするデータを共有するデータ共有回路と、前記複数個
    のプロセッサ間の同期をとる同期処理回路とを備え、該
    同期処理回路は前記各プロセッサからの同期情報を得
    て、それらの同期情報の組み合わせが、対応するプロセ
    ッサから予め与えられた条件又は前記同期情報と共に該
    同期処理回路に与えられる条件と一致したときに、該対
    応するプロセッサに関して同期完了信号を生成する手段
    と、前記各プロセッサが前記データ共有回路にアクセス
    したときに、当該プロセッサに関する同期完了信号が生
    成されていなければ、同期完了信号が生成されるまで当
    該プロセッサの前記データ共有回路へのアクセスを一時
    的に禁止して当該プロセッサのアクセスを待たせる局所
    同期回路手段とを有することを特徴とするプロセッサ間
    の同期処理装置。
  2. 【請求項2】 前記同期処理回路は、タスクを終了した
    プロセッサが出力するタスク終了情報を入力し、関連す
    るタスクを処理するいくつかのプロセッサが出力する前
    記タスク終了情報が全てアクティブに変化した後にその
    タスク終了情報から同期させるべきプロセッサがタスク
    処理を終了したことを示す同期終了情報を対応するプロ
    セッサに対してアクティブな値を出力し、局所同期化回
    路は、そのタスク終了情報を出力したプロセッサが前記
    データ共有回路へアクセスする時に対応する前記同期終
    了情報が前記同期処理回路からアクティブな値として出
    力されていないならば、アクセスを禁止し前記プロセッ
    サの動作を休止することを特徴とする請求項1に記載の
    プロセッサ間の同期処理装置。
  3. 【請求項3】 前記同期処理回路は、並列処理を実施す
    る際に関連するタスクを処理するプロセッサ同士でグル
    ープを形成し、該グループ内の前記プロセッサ間、或い
    は該グループ間で同期をとる同期手段を備えたことを特
    徴とする請求項1に記載のプロセッサ間の同期処理装
    置。
  4. 【請求項4】 前記同期手段は、前記グループ内の1つ
    のプロセッサが出力するグループを構成するそれぞれの
    プロセッサ名に相当する情報を記憶する同期用レジスタ
    と、該同期用レジスタへのアクセスによりトリガされる
    フィリップ・フロップと、該フィリップ・フロップの状
    態を他のプロセッサへ伝送する第1の伝送回路と、伝送
    された該フィリップ・フロップの状態と前記同期用レジ
    スタの記憶内容と照合し前記同期用レジスタに記憶され
    た前記グループ内のそれぞれのプロセッサがアクティブ
    か否か判断する判断回路と、該判断回路が出力する判断
    結果を前記フィリップ・フロップを介して前記グループ
    内の1つのプロセッサに伝送する第2の伝送回路と、を
    備えたことを特徴とする請求項3に記載のプロセッサ間
    の同期処理装置。
  5. 【請求項5】 前記同期手段は、前記グループ内の1つ
    のプロセッサが出力するグループを構成するそれぞれの
    プロセッサ名に相当する情報を記憶する同期用レジスタ
    と、該同期用レジスタへのアクセスによりトリガされる
    フィリップ・フロップと、前記フィリップ・フロップが
    タスク終了情報を出力するためのトリガ信号をプロセッ
    サから前記フィリップ・フロップへ出力する第1の信号
    伝送手段と、前記同期用レジスタがプロセッサのグルー
    プを記憶するためのトリガ信号をプロセッサから前記同
    期用レジスタへ出力する第2の信号伝送手段と、前記同
    期用レジスタの値が全プロセッサはグループに属すると
    みなすようにセットするアクティブな信号をプロセッサ
    から前記同期用レジスタへ出力する第3の信号伝送手段
    とを備えたことを特徴とする請求項3に記載のプロセッ
    サ間の同期処理装置。
  6. 【請求項6】 複数のプロセッサ間の同期処理を行い、
    並列処理を矛盾なく制御するプロセッサ間の同期処理装
    置において、前記各プロセッサに対応してそれぞれのプ
    ロセッサがタスクを終了した時点でアクティブなタスク
    終了情報を出力する手段と、同期をとるべきプロセッサ
    からのタスク終了情報がすべてアクティブになったとき
    とその情報を用いて各プロセッサに対応した前記アクテ
    ィブなタスク終了情報を非アクティブにする手段と、前
    記タスク終了情報をプロセッサがチェックし同期処理が
    終了したことを確認する手段とを有しており、前記アク
    ティブなタスク終了情報の出力を指示するEO命令と、
    前記同期処理が終了したことを確認するW命令とを各プ
    ロセッサが発行し得ることを特徴とするプロセッサ間の
    同期処理装置。
  7. 【請求項7】 1つのプロセッサのタスクの終了時に、
    同レベルで実行を終了する他のプロセッサで実行された
    タスクから、次にプロセッサが実行すべきタスクへのリ
    レーションが存在しない場合、前記EO命令を挿入し、
    前記プロセッサが、あるタスクを終了して次のタスクに
    処理を進める際、同レベルで実行された他のプロセッサ
    からの情報を必要としなければ前記EO命令を実行し
    て、次のタスクへ無条件で処理を進める手段を有するこ
    とを特徴とする請求項に記載のプロセッサ間の同期処
    理装置。
  8. 【請求項8】 1つ前の同期レベルで前記EO命令を実
    行して現在実行中のタスク処理に移ったプロセッサは、
    そのタスクの終了時点で次に実行すべきタスクが同レベ
    ルで実行を終了する他のプロセッサで実行されたタスク
    とのリレーションを有するとき、前レベルで実行した前
    記EO命令に対応する同期チェック命令としてW命令を
    実行して、前レベルの同期処理が終了したかを確認し、
    その後、現在の同期レベルの同期処理を行い、次のタス
    クへ処理を進める手段を有することを特徴とする請求項
    に記載のプロセッサ間の同期処理装置。
JP3234535A 1990-09-14 1991-09-13 プロセッサ間の同期処理装置 Expired - Fee Related JP3008223B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3234535A JP3008223B2 (ja) 1990-09-14 1991-09-13 プロセッサ間の同期処理装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP24520890 1990-09-14
JP2-245208 1990-09-14
JP3234535A JP3008223B2 (ja) 1990-09-14 1991-09-13 プロセッサ間の同期処理装置

Publications (2)

Publication Number Publication Date
JPH052568A JPH052568A (ja) 1993-01-08
JP3008223B2 true JP3008223B2 (ja) 2000-02-14

Family

ID=26531616

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3234535A Expired - Fee Related JP3008223B2 (ja) 1990-09-14 1991-09-13 プロセッサ間の同期処理装置

Country Status (1)

Country Link
JP (1) JP3008223B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102665832B (zh) * 2009-10-28 2015-11-25 纽吉工业股份有限公司 乒乓球机器人及其操作方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3661235B2 (ja) * 1995-08-28 2005-06-15 株式会社日立製作所 共有メモリシステム、並列型処理装置並びにメモリlsi
US6516403B1 (en) 1999-04-28 2003-02-04 Nec Corporation System for synchronizing use of critical sections by multiple processors using the corresponding flag bits in the communication registers and access control register
JP4823928B2 (ja) * 2007-01-22 2011-11-24 三菱電機株式会社 連立一次方程式の並列求解装置
EP2073119A1 (en) * 2007-04-09 2009-06-24 Panasonic Corporation Multiprocessor control unit, its control method, and integrated circuit
JP5623187B2 (ja) * 2010-08-27 2014-11-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation マルチノードにわたるデータの送受信をバリア同期無しで行う並列計算処理

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
1.ASPLOS−▲III▼ SIGPLAN Notices 24 Special Issue May 1989 p54−63 Rajiv Gupta 「The Fuzzy Barrier:A Mechanism for High Speed Synchronization of Processors」

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102665832B (zh) * 2009-10-28 2015-11-25 纽吉工业股份有限公司 乒乓球机器人及其操作方法

Also Published As

Publication number Publication date
JPH052568A (ja) 1993-01-08

Similar Documents

Publication Publication Date Title
US5481747A (en) Synchronous method and apparatus for processors
US4903196A (en) Method and apparatus for guaranteeing the logical integrity of data in the general purpose registers of a complex multi-execution unit uniprocessor
EP0101596B1 (en) A data processor with parallel-operating operation units
US10095657B2 (en) Processor, accelerator, and direct memory access controller within a core reading/writing local synchronization flag area for parallel
EP0502680B1 (en) Synchronous multiprocessor efficiently utilizing processors having different performance characteristics
US5127092A (en) 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
US5499350A (en) Vector data processing system with instruction synchronization
US5434970A (en) System for distributed multiprocessor communication
US4939638A (en) Time sliced vector processing
EP0353819A2 (en) Method and apparatus for synchronizing parallel processors using a fuzzy barrier
JPH0630094B2 (ja) マルチプロセツサ・システム
JPH0962563A (ja) 共有メモリシステム、並列型処理装置並びにメモリlsi
US20090043991A1 (en) Scheduling Multithreaded Programming Instructions Based on Dependency Graph
JP3008223B2 (ja) プロセッサ間の同期処理装置
US4907147A (en) Pipelined data processing system with register indirect addressing
US7155718B1 (en) Method and apparatus to suspend and resume on next instruction for a microcontroller
JP3006676B2 (ja) マルチプロセッサ
JPS6326907B2 (ja)
JP2866421B2 (ja) 複数パス並列処理方法
WO1991002310A1 (en) Non-busy-waiting resource control
JPH04120652A (ja) 並列処理装置
SU907551A1 (ru) Мультимикропроцессорна система
KR930003993B1 (ko) 다중처리기 시스템에서의 데이타 전송방법
JPS58146952A (ja) 並列計算機方式
CN113568665A (zh) 一种数据处理装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees