JPH052568A - Inter-processor synchronizing processor - Google Patents

Inter-processor synchronizing processor

Info

Publication number
JPH052568A
JPH052568A JP23453591A JP23453591A JPH052568A JP H052568 A JPH052568 A JP H052568A JP 23453591 A JP23453591 A JP 23453591A JP 23453591 A JP23453591 A JP 23453591A JP H052568 A JPH052568 A JP H052568A
Authority
JP
Japan
Prior art keywords
processor
synchronization
processing
task
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.)
Granted
Application number
JP23453591A
Other languages
Japanese (ja)
Other versions
JP3008223B2 (en
Inventor
Masatsugu Kametani
雅嗣 亀谷
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/en
Publication of JPH052568A publication Critical patent/JPH052568A/en
Application granted granted Critical
Publication of JP3008223B2 publication Critical patent/JP3008223B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

PURPOSE:To provide an inter-processor synchronizing processor capable of minimizing synchronizing processing overhead between tasks or processors which is generated due to the parallel processing of a general purpose multi- processor. CONSTITUTION:The inter-processor synchronizing processor consists of a synchronizing processing circuit 101 for executing synchronizing processing between plural processors necessary for parallel processing, plural processing units 1000 to 100n for executing partial charge of processing of respective tasks, and a data sharing circuit CSYS 102 connected to a system bus 120 for offering and storing shared data necessary for transferring necessary data among respective processors 10 to 1n in respective processing units or a local data sharing circuits CSYS 510 to 51n included in respective processing units while holding the coherence of data.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、マルチ・プロセッサ・
システムに係り、特にプロセッサ間の同期をとるのに好
適なプロセッサ間の同期装置に関する。
BACKGROUND OF THE INVENTION The present invention relates to a multi-processor system.
The present invention relates to a system, and more particularly, to a synchronizer between processors suitable for synchronizing processors.

【0002】[0002]

【従来の技術】マルチ・プロセッサにおける従来の同期
処理は、基本的にタスク間での同期(処理順序付け)で
あり、タスク・ドリプンあるいはデータ・ドリプンでタ
スクが起動され処理を進めていく方式をとる。これを汎
用のマルチ・プロセッサ上で実現しようとすると、共有
メモリ上にタスク終了フラグを持ち、各タスクが先行す
る必要なタスク処理がすべて終了したかどうかをチェッ
クしてデータフロー的に処理を進める方式や、トークン
制御方式が採られる。従来の同期処理については「マル
チ・マイクロプロセッサシステム,pp117〜11
9,pp119〜122,哲学出版,1984年11
月」に述べられている。
2. Description of the Related Art The conventional synchronous processing in a multi-processor is basically synchronization (processing ordering) between tasks, and takes a system in which tasks are activated by task drip or data drip to proceed with processing. . If you try to realize this on a general-purpose multi-processor, you will have a task end flag on the shared memory, and check whether all the required task processes preceding each task have been completed and proceed with the data flow. Method and token control method are adopted. For the conventional synchronous processing, see "Multi-microprocessor system, pp117-11.
9, pp119-122, Philosophy Publishing, 1984 11
The Moon ".

【0003】[0003]

【発明が解決しようとする課題】上記汎用マルチ・プロ
セッサ・システムにおける従来技術は、いずれもソフト
ウエアで処理する割合が高くまたチェック項目も多いた
め、タスク間の同期(タスク処理の先行関係の順当化)
あるいはプロセッサ間の同期に要する同期処理オーバー
ヘッドが大きい。したがって、タスクの細分化(細かな
タスク分割)が十分できない。また並列処理のタスク処
理順序が必要以上に制約される等の問題がありジョブの
並列性を十分引き出せないため、高効率な並列処理の実
現が困難である。
In the prior art in the above-mentioned general-purpose multi-processor system, since the rate of processing by software is high and there are many check items, synchronization between tasks (regarding the precedence relationship of task processing is performed). )
Alternatively, the synchronization processing overhead required for synchronization between processors is large. Therefore, the task cannot be subdivided (fine task division). Further, there is a problem that the task processing order of parallel processing is unnecessarily restricted, and the parallelism of jobs cannot be sufficiently drawn out, so that it is difficult to realize highly efficient parallel processing.

【0004】さらに、限られた個数のプロセッサが、多
数のタスクを処理するマルチプロセッサシステムにおい
ては、従来、あるプロセッサがあるタスク処理を終了
し、次のタスク処理に移行する際、他の必要なタスク処
理が終了しており必要な結果がすべて出そろっているか
どうかを確認する同期処理が必要となる。その時、その
プロセッサは、同期チェック処理に占有され、同期処理
が終了するまで実質的、有効的な処理を実行しない空処
理時間を生じてしまうという問題がある。
Further, in a multiprocessor system in which a limited number of processors process a large number of tasks, conventionally, when a certain processor finishes a task process and shifts to the next task process, another need is required. Synchronous processing is required to confirm whether the task processing has been completed and all the required results have been obtained. At that time, the processor is occupied by the synchronization check processing, and there is a problem that there is an idle processing time in which substantially effective processing is not executed until the synchronization processing ends.

【0005】本発明の目的は、汎用のマルチ・プロセッ
サにおける並列処理に伴うタスク間あるいはプロセッサ
間の同期処理オーバーヘッドを極小化することが可能な
プロセッサ間の同期装置を提供することにある。
An object of the present invention is to provide a synchronization device between processors capable of minimizing the synchronization processing overhead between tasks or between processors due to parallel processing in a general-purpose multi-processor.

【0006】[0006]

【課題を解決するための手段】上記目的は、複数のタス
クを分担して並列処理する複数個のプロセッサと、該複
数個のプロセッサ間でやりとりするデータを共有するデ
ータ共有回路と、前記複数個のプロセッサ間の同期をと
る同期処理回路と、複数個の内のそれぞれのプロセッサ
から前記データ共有回路への競合するアクセス要求を制
御する局所同期化回路と、を備えたことにより達成され
る。
The above-described object is to provide a plurality of processors that share a plurality of tasks and perform parallel processing, a data sharing circuit that shares data exchanged between the plurality of processors, and a plurality of the plurality of processors. And a local synchronization circuit for controlling competing access requests to the data sharing circuit from each of the plurality of processors.

【0007】上記目的は、前記同期処理回路がタスクを
終了したプロセッサが出力するタスク終了情報を入力
し、関連するタスクを処理するいくつかのプロセッサが
出力する前記タスク終了情報が全てアクティブに変化し
た後にそのタスク終了情報から同期させるべきプロセッ
サがタスク処理を終了したことを示す同期終了情報を対
応するプロセッサに対してアクティブな値を出力し、局
所同期化回路が、そのタスク終了情報を出力したプロセ
ッサが前記データ共有回路へアクセスする時に対応する
前記同期終了情報が前記同期処理回路からアクティブな
値として出力されていないならば、アクセスを禁止し前
記プロセッサの動作を休止することにより達成される。
The above-mentioned object is to input the task end information output by the processor whose synchronous processing circuit has finished the task, and to change all the task end information output by some processors which process the related tasks to active. A processor that outputs an active value to the corresponding processor as synchronization end information indicating that the processor to be synchronized later has completed the task processing from the task end information, and the local synchronization circuit outputs the task end information. If the corresponding synchronization end information is not output as an active value from the synchronization processing circuit when the data access circuit accesses the data sharing circuit, the access is prohibited and the operation of the processor is suspended.

【0008】上記目的は、前記同期処理回路が並列処理
を実施する際に関連するタスクを処理するプロセッサ同
士でグループを形成し、該グループ内の前記プロセッサ
間、或いは該グループ間で同期をとる同期手段を備えた
ことにより達成される。
The above-mentioned object is to form a group of processors which process tasks related to each other when the synchronous processing circuit executes parallel processing, and synchronize the processors in the group or between the processors. It is achieved by providing means.

【0009】上記目的は、前記同期手段は、前記グルー
プ内の1つのプロセッサが出力するグループを構成する
それぞれのプロセッサ名に相当する情報を記憶する同期
用レジスタと、該同期用レジスタへのアクセスによりト
リガされるフィリップ・フロップと、該フィリップ・フ
ロップの状態を他のプロセッサへ伝送する第1の伝送回
路と、伝送された該フィリップ・フロップの状態と前記
同期用レジスタの記憶内容と照合し前記同期用レジスタ
に記憶された前記グループ内のそれぞれのプロセッサが
アクティブか否か判断する判断回路と、該判断回路が出
力する判断結果を前記フィリップ・フロップを介して前
記グループ内の1つのプロセッサに伝送する第2の伝送
回路と、を備えたことにより達成される。
[0009] The above-mentioned object is that the synchronization means stores a synchronization register for storing information corresponding to each processor name forming a group output by one processor in the group, and an access to the synchronization register. The triggered flip-flop, a first transmission circuit for transmitting the state of the flip-flop to another processor, the transmitted state of the flip-flop and the stored contents of the synchronization register, and the synchronization A decision circuit for deciding whether or not each processor in the group stored in the register for activation is active, and a decision result output by the decision circuit is transmitted to one processor in the group via the flip-flop. And a second transmission circuit.

【0010】上記目的は、前記同期手段はが前記グルー
プ内の1つのプロセッサが出力するグループを構成する
それぞれのプロセッサ名に相当する情報を記憶する同期
用レジスタと、該同期用レジスタへのアクセスによりト
リガされるフィリップ・フロップと、前記フィリップ・
フロップがタスク終了情報を出力するためのトリガ信号
をプロセッサから前記フィリップ・フロップへ出力する
第1の信号伝送手段と、前記同期用レジスタがプロセッ
サのグループを記憶するためのトリガ信号をプロセッサ
から前記同期用レジスタへ出力する第2の信号伝送手段
と、前記同期用レジスタの値が全プロセッサはグループ
に属するとみなすようにセットするアクティブな信号を
プロセッサから前記同期用レジスタへ出力する第3の信
号伝送手段とを備えたことにより達成される。
The above-mentioned object is achieved by the synchronizing means storing information corresponding to the names of the respective processors constituting the group output by one processor in the group, and by accessing the synchronizing register. The triggered Philip Flop and the Philip Flip
First signal transmission means for outputting a trigger signal for the flop to output task end information from the processor to the Philip flop, and a trigger signal for the synchronization register for storing a group of processors from the processor to the synchronization Second signal transmission means for outputting to the register for synchronization, and third signal transmission for outputting an active signal from the processor to the register for synchronization so that the value of the register for synchronization is set so that all processors are regarded as belonging to a group. It is achieved by having means.

【0011】上記目的は、複数のプロセッサ間の同期処
理を行い、並列処理を矛盾なく制御するプロセッサ間の
同期処理装置において、前記各プロセッサに対応してそ
れぞれのプロセッサがタスクを終了した時点でアクティ
ブなタスク終了情報を出力する手段と、同期をとるべき
プロセッサからのタスク終了情報がすべてアクティブに
なったときとその情報を用いて各プロセッサに対応した
前記アクティブなタスク終了情報を非アクティブにする
手段と、前記タスク終了情報をプロセッサがチェックし
同期処理が終了したことを確認する手段とを有すること
により達成される。
The above object is to provide a synchronous processing device for performing synchronous processing between a plurality of processors and controlling parallel processing without contradiction, and active when each processor corresponding to each processor finishes a task. For outputting active task end information, and means for deactivating the active task end information corresponding to each processor when all the task end information from the processors to be synchronized become active And a means for the processor to check the task end information to confirm that the synchronization processing has been completed.

【0012】上記目的は、前記アクティブなタスク終了
情報の出力を指示するEO命令と、前記同期処理が終了
したことを確認するW命令とを各プロセッサが指令する
手段を有することにより達成される。
The above object is achieved by each means having a means for instructing an EO instruction for instructing the output of the active task end information and a W instruction for confirming the completion of the synchronous processing.

【0013】上記目的は、1つのプロセッサのタスクの
終了時に、同レベルで実行を終了する他のプロセッサで
実行されたタスクから、次にプロセッサが実行すべきタ
スクへのリレーションが存在しない場合、前記EO命令
を挿入し、前記プロセッサが、あるタスクを終了して次
のタスクに処理を進める際、同レベルで実行された他の
プロセッサからの情報を必要としなければ前記EO命令
を実行して、次のタスクへ無条件で処理を進める手段を
有することにより達成される。
[0013] The above-mentioned object is that when there is no relation from a task executed by another processor that terminates execution at the same level when the task of one processor ends, to a task to be executed next by the processor, When an EO instruction is inserted and the processor finishes a task and proceeds to the next task, if the information from another processor executed at the same level is not needed, the EO instruction is executed, This is achieved by having a means to proceed unconditionally to the next task.

【0014】上記目的は、1つ前の同期レベルで前記E
O命令を実行して現在実行中のタスク処理に移ったプロ
セッサは、そのタスクの終了時点で次に実行すべきタス
クが同レベルで実行を終了する他のプロセッサで実行さ
れたタスクとのリレーションを有するとき、前レベルで
実行した前記EO命令に対応する同期チェック命令とし
てW命令を実行して、前レベルの同期処理が終了したか
を確認し、その後、現在の同期レベルの同期処理を行
い、次のタスクへ処理を進める手段を有することにより
達成される。
The above-mentioned object is the above-mentioned E at the previous synchronization level.
The processor that has executed the O instruction and moved to the processing of the task currently being executed has a relation with the task executed by another processor in which the next task to be executed finishes at the same level at the end of the task. When it has, the W instruction is executed as a synchronization check instruction corresponding to the EO instruction executed in the previous level to check whether the synchronization processing in the previous level is completed, and then the synchronization processing in the current synchronization level is performed. This is achieved by having a means for advancing processing to the next task.

【0015】[0015]

【作用】本発明の構成によれば、汎用マルチ・プロセッ
サにおいて同時刻に処理されているタスクはプロセッサ
の個数を越えないことに注目して、並列処理に伴う同期
の問題をすべてプロセッサ間の同期をとる問題に帰着さ
せ、有限であるプロセッサ間での同期処理をハードウエ
ア化すると共に、データ共有回路をプロセッサがアクセ
スする時の情報を用いることによってソフトウエア・オ
ーバーヘッドを極小化し、かつ同期処理時に発生する空
処理時間を減少させる。
According to the configuration of the present invention, attention is paid to the fact that the number of tasks being processed at the same time in a general-purpose multi-processor does not exceed the number of processors, so that all synchronization problems caused by parallel processing are synchronized between processors. To minimize the software overhead by using the information when the processor accesses the data sharing circuit, and at the same time, the synchronization processing between the processors is limited. Reduces the idle processing time that occurs.

【0016】並列処理をプロセッサ間で同期をとりなが
ら矛盾なくかつ高効率で実行するため、有限であるプロ
セッサ個数分のビットを用意し、関連するタスクを実行
中のプロセッサに対応するビットをアクティブにセット
したビット列(ワードデータ)を、プロセッサがタスク
処理の終了時にタスク終了情報として同期用レジスタに
セットするとともにタスク終了線をアクティブにするタ
スク終了処理を実行し、それらの情報は判断手段に入力
され、セットされた同期用レジスタの各ビットに対応す
るプロセッサがすべてタスク終了処理を完了したかどう
かを各プロセッサの対応するタスク終了線とつき合わせ
ることによって監視し、すべてが真(タスクを終了し
た)なら同期がとれたものとしてプロセッサに同期終了
情報を発行し、汎用性を損わない範囲で上記同期処理を
ハードウエア化したものが同期処理回路である。
In order to execute parallel processing in a highly efficient manner without any contradiction while synchronizing the processors, a finite number of bits for the number of processors are prepared and the bits corresponding to the processors executing the related tasks are activated. The processor sets the set bit string (word data) in the synchronization register as task end information at the end of the task processing and executes the task end processing that activates the task end line, and the information is input to the determination means. , Check whether all the processors corresponding to each bit of the set synchronization register have completed the task end processing, by checking with the corresponding task end line of each processor, all are true (task has finished) Then, the synchronization completion information is issued to the processor, assuming that synchronization has been achieved, and general-purpose Those hardware the above synchronization processing is not jeopardized a is synchronous processing circuit.

【0017】また、並列処理中の同期処理期間に発生す
るプロセッサの空処理時間(遊び時間)を自動的にかつ
オーバーヘッドを伴わず減少させるため、前述した同期
処理回路に加えて次のデータ共有回路と局所同期化回路
を設ける。
Further, in order to automatically reduce the idle processing time (play time) of the processor that occurs during the synchronous processing period during the parallel processing without overhead, in addition to the synchronous processing circuit described above, the following data sharing circuit is provided. And a local synchronization circuit.

【0018】データ共有回路は、プロセッサでのタスク
処理に必要なプロセッサ間で共有すべき共有データを保
持又は提供する各プロセッサからアクセス可能とする。
The data sharing circuit is accessible from each processor that holds or provides shared data to be shared among the processors necessary for task processing in the processors.

【0019】局所同期化回路は、前述した同期処理回路
にタスク終了情報を送出してタスクを終了したプロセッ
サが、次のタスク処理に無条件で移行し、初めて前記デ
ータ共有回路から必要な共有データを得ようとした時、
前記同期処理回路からの同期終了情報がまだ発行されて
いない(非アクティブのままである)ならデータ共有回
路へのアクセスをペンディングし、プロセッサを待たせ
る。
The local synchronization circuit sends the task end information to the above-mentioned synchronization processing circuit and the processor which has finished the task unconditionally shifts to the next task processing, and the shared data required from the data sharing circuit is not received until the shared data required for the first time. When trying to get
If the synchronization end information from the synchronization processing circuit has not yet been issued (remains inactive), the access to the data sharing circuit is pending and the processor is made to wait.

【0020】それにより、タスク処理が終了していて、
かつ同期処理が終了していない場合、従来の様に無条件
でプロセッサが待たされ、空処理時間が生じてしまうの
とは異なり、プロセッサは次のタスクで共有データが必
要となるまでの間できるだけ次のタスク処理を進めてい
くことができるため、空処理時間を減少させることがで
きる。
As a result, the task processing is completed,
And when the synchronous processing is not completed, unlike the conventional case where the processor is unconditionally made to wait and the empty processing time is generated, the processor can wait until the next task needs the shared data. Since the next task processing can proceed, the idle processing time can be reduced.

【0021】更に、同期用レジスタへの値のセットのみ
を各プロセッサのソフトウエアにより行い、それ以外は
すべてハードウエアによって行うとすれば、プログラマ
ブル(汎用性を有する)で、かつソフトウエア・オーバ
ーヘッドが1マシン命令程度と小さなプロセッサ間の同
期をとることができる。
Further, if only the setting of the value in the synchronization register is performed by the software of each processor and the rest is performed by the hardware, it is programmable (having versatility) and software overhead is reduced. It is possible to synchronize between one machine instruction and a small processor.

【0022】また、同期処理期間中に発生する空処理時
間を少なくする前記手段は、並列処理そのもののクリテ
ィカルパスを短縮する効果があり、より高効率な並列処
理を自動的に実行することができる。
Further, the means for reducing the idle processing time generated during the synchronous processing period has an effect of shortening the critical path of the parallel processing itself and can automatically execute the parallel processing with higher efficiency. .

【0023】ソフトウェア内に同期処理命令を配置する
コントロールフローと、前述したデータ共有回路へのア
クセス条件を利用したハードウェアによるデータフロー
的自動チューニングを組み合わせることにより、プロセ
ッサの遊び時間をより極小化でき、それにより並列処理
時の遊び時間の短縮を実現できる
By combining the control flow for arranging the synchronous processing instruction in the software and the automatic tuning for the data flow by the hardware utilizing the access condition to the data sharing circuit, the idle time of the processor can be further minimized. , Which can reduce the play time during parallel processing.

【0024】[0024]

【実施例】以下図1〜図3により、本発明の全体構成を
説明する。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The overall structure of the present invention will be described below with reference to FIGS.

【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,…)上に次のタスク処理で利用す
る他のプロセッサからの必要な結果データが完全には出
そろっていないとみなす。したがって、次の条件が成立
すれば、従来どおり矛盾なくプロセッサ間で同期をとり
ながら並列処理を進めていくことができる。
According to the present invention, a synchronous processing circuit 101 for performing synchronous processing between processors necessary for parallel processing, and a plurality of processing units 100n for sharing and executing the processing of each task.
(N = 0, 1, 2, ...), Provision and holding of shared data necessary for exchanging necessary data between the processors 1n (n = 0, 1, 2, ...) In each processing unit. Data sharing circuit CS on the system bus 120 for performing
A local data sharing circuit CS that exists while maintaining data coherency in the YS 102 or each processing unit
It is composed of YS51n (n = 0, 1, 2, ...). The synchronous processing circuit 101 receives the synchronous request Sln (n = θ, 1, 2, ...) From the processor 1n in each processing unit to the corresponding input SYNCnREQ, and when all or some of them are activated, It is considered that the processors have been synchronized, and the synchronization check signal TESTn to the processor to be notified is activated.
The active synchronization check signal TESTn is used as synchronization end information from the Test signal line Tln and the signal control circuit 50n and the processor 1 in the processing unit 100n.
n TEST input. The processor 1n is T
The state of the EST input is checked by hardware or software to determine if the processors performing the associated processing are synchronized. The basic function of the synchronous processing circuit is that when the synchronous processing circuit 101 accepts the synchronous request Sln from the processor 1n, the TESTn output is once returned to inactive, and all the synchronous requests Sl from the processor that must be synchronized become active. When TE
The STn output is set to the active state again. A specific embodiment in the synchronization processing circuit 101 will be described later in detail with reference to FIGS. 3 and 4. Each processor 1n (n = θ,
1, 2, ...) are Slns that are active as task end information in the synchronous processing circuit 101 when the task processing is completed.
Is output. In response to this, the data sharing circuits 102 and 51 are activated until the corresponding TESTn output becomes active.
It is considered that necessary result data from other processors used in the next task processing are not completely available on n (n = θ, 1, 2, ...). Therefore, if the following conditions are satisfied, it is possible to proceed with parallel processing while maintaining synchronization between the processors as in the conventional case.

【0026】1)関連するタスク処理を実行しているプ
ロセッサからのタスク終了情報(Slnで同期処理回路
のSYNCnREQに入力される情報)がすべてアクテ
ィブに転じた(そのレベルのすべての必要なタスク処理
が終了した)後のタイミングで、それらのタスク終了情
報を発行した処理ユニット及びプロセッサに対して、ア
クティブな同期終了情報(TESTnから出力されTl
nによって処理ユニットへ伝送される情報)を出力す
る。その同期終了情報がアクティブに転じるまで、その
レベルで実行されているタスク処理による結果情報はす
べてが出そろっている訳ではないと仮定する。
1) All the task end information (information input to SYNCnREQ of the synchronous processing circuit at Sln) from the processor executing the related task processing has turned active (all required task processing at that level). At the timing after the completion of the task), the active synchronization end information (Tl output from TESTn is output to the processing unit and the processor that issued the task end information).
information transmitted to the processing unit by n). It is assumed that all the result information by the task processing executed at that level is not available until the synchronization end information becomes active.

【0027】2)プロセッサが次のレベルのタスク処理
(次のレベルで実行すべきタスク処理)に移行し、他の
プロセッサの実行したタスク処理結果のうちプロセッサ
間で共有すべきデータを保持するデータ共有回路102
又は51nを初めてアクセスする時点で、そのプロセッ
サは同期終了情報がすでにアクティブになっている事の
確認が終了していなければならない。もし、タスク処理
の中で初めてデータ共有回路をアクセスする時点で、同
期終了情報が非アクティブ状態であれば、アクティブに
転じるまでそのデータ共有回路へのアクセスをペンディ
ングしなければならない。
2) Data that holds data to be shared between processors among the result of task processing executed by another processor when the processor shifts to task processing at the next level (task processing to be executed at the next level) Shared circuit 102
Alternatively, when the 51n is accessed for the first time, the processor must finish the confirmation that the synchronization end information is already active. If the synchronization end information is in the inactive state at the time of accessing the data sharing circuit for the first time in the task processing, the access to the data sharing circuit must be pending until it becomes active.

【0028】3)ここで、レベルの境目の定義を、各プ
ロセッサがアクティブなタスク終了情報を発行した時点
と定義する。すなわち、タスクとして定義された各処理
の切れ目をレベルの境目とする。また、アクティブな同
期終了情報が同期処理回路101から発行された時点を
同期レベルの境目と定義する。
3) Here, the definition of the level boundary is defined as the time when each processor issues active task end information. That is, the break of each process defined as a task is set as the level boundary. Further, the time when the active synchronization end information is issued from the synchronization processing circuit 101 is defined as the boundary of the synchronization level.

【0029】以上の条件を満足した上で、最も効率良く
並列処理を実行するためには、同期処理で生じる空処理
時間(同期ポイントに早く到達したプロセッサが同期処
理が終了するまで待たされることによって生じるプロセ
ッサの遊び時間)を極力少なくする必要がある。このた
めには、各プロセッサに次のレベルの託す処理をできる
だけ先行して進めさせる方式を採るのが良い。すなわ
ち、タスク処理中で、初めてデータ共有回路にアクセス
する時点まで同期終了情報を無視してタスク処理を先に
進めて行き、最初のデータ共有回路アクセス時に初めて
同期終了情報がアクティブ状態(他のプロセッサが必要
なタスク処理をすべて終了しており、必要な共有情報が
すべてデータ共有回路上に存在している)である事を確
認する様にする。つまり、各プロセッサが各自の同期ポ
イントをできるだけ後にずらして進められるだけ先に処
理を進める方式である。これによって、一見固定的に分
割されて生成された様にみえる各タスクの処理時間を同
期条件によって動的に変えていく効果があり、並列処理
のクリティカルパス自体を短縮し、より高効率な並列処
理を自動的に実現する情報フロー並列処理的効果があ
る。この方式は、従来の様に同期処理終了情報にだけ依
存する方式と異なり、データ共有回路102又は51n
へのアクセス処理と密接に連動して同期処理が実行され
る。図1の処理ユニット100n及び図2に詳細を示し
た処理ユニット内の信号制御回路50nを例にとってハ
ードウエアの詳細を説明する。
In order to execute the parallel processing most efficiently after satisfying the above conditions, the empty processing time generated in the synchronous processing (by waiting for the processor that reaches the synchronization point earlier until the synchronous processing ends) It is necessary to minimize the processor idle time that occurs. For this purpose, it is advisable to adopt a method in which each processor advances the processing entrusted to the next level as early as possible. In other words, during task processing, the synchronization end information is ignored until the data sharing circuit is accessed for the first time, and the task processing proceeds, and when the first data sharing circuit is accessed, the synchronization end information is in the active state (other processors). Has completed all necessary task processing and all necessary shared information exists on the data sharing circuit). In other words, this is a method in which each processor advances its processing as much as possible by shifting its synchronization point as late as possible. This has the effect of dynamically changing the processing time of each task that seems to have been created by dividing it at a glance, depending on the synchronization conditions, shortening the critical path of parallel processing itself, and increasing the efficiency of parallel processing. There is an information flow parallel processing effect that automatically realizes processing. This method is different from the conventional method that depends only on the synchronization processing end information, unlike the data sharing circuit 102 or 51n.
The synchronization process is executed in close coordination with the access process to access. Details of the hardware will be described by taking the processing unit 100n of FIG. 1 and the signal control circuit 50n in the processing unit shown in detail in FIG. 2 as examples.

【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内で競合制御
を行い、矛盾なくアクセスが可能となる様にする。
The signal control circuit 5 in the processing unit 100n
0n receives a control signal l9n including an address signal from the processor 1n, decodes them to generate an access request signal l3n for accessing the shared system CSYS51n and the data sharing circuit bus l12, and the data sharing circuit and the data sharing. It is sent to the arbitration circuit DC103 which determines to which processor the access right to the circuit bus 120 is given. The arbitration circuit DC103 receives a plurality of access request signals 13n (n = 1, 2, ...) From a plurality of processing units, selects one of them, and selects an access permission signal l.
4n (n = θ, 1, 2, ...) Has a function of activating the access permission signal corresponding to the selected processing unit. The signal control circuit 50n turns on the output buffer 52n when the access permission signal 14n becomes active.
Then, an address signal, a control signal, and an information signal in the case of write processing are output to the data sharing circuit bus 120 via the bus line 15n. Further, in the case of the read processing, the data on the data sharing circuit bus is written to the local data sharing circuit CSYS51n via the bus line 15n and the input buffer 53n, or the bus line 10n.
It is directly read by the processor 1n via n. Information of the local data sharing circuit CSYS51n is processed by the processor 1
When n is read, it is via the bus line 17n. Each local data sharing circuit CSYS51n (n = θ, 1, 2, ...) In each processing unit 100n (n = θ, 1, 2, ...)
Must always have the same content. Therefore, during the read process from the processor 1n, the local data sharing circuit CSYS51 is independent of other processors.
Although n can be accessed like a local memory, at the time of write processing, the local data sharing circuit CSYS51n (n = n) in all processing units (n = 1, 2, 3, ...) Through the data sharing circuit bus 120. θ, 1,
2, ...), the data sharing circuit bus 120 must be occupied and executed under the control of the arbitration circuit 103. At this time, the local data sharing circuit CS that is independently executed in each processing unit
Although access competition with the read processing from the YS 51n occurs, the competition control is also performed in the signal control circuit 50n with respect to this as well, so that access can be performed without contradiction.

【0031】図2は、信号制御回路100nの実施例を
示している。デコーダ200はプロセッサ1nからのア
ドレス線や制御線l9nをデコードして、データ共有回
路CSYS51n及び102をプロセッサ1nがアクセ
スする場合のアクセス要求に対する制御信号、イネーブ
ル信号等を生成する。アービトレーション回路103へ
のデータ共有回路バスアクセス要求信号CSREQ(
oアクティブ)l3nは、デコーダ200からデータ共
有回路イネーブル信号CSEN(Loアクティブ)21
3と同期処理回路からの同期終了情報SYNCOK(L
oアクティブ)TlnとのOR理論をとることにより生
成する。アービトレーション回路103からのアクノリ
ッヂ信号l4nは、前記CSREQ信号l3nに対する
アービトレーション回路103からの直接の返答である
CSACK信号(Loレベルのときアクセス要求が受け
付けられた)209と、共通システムCSYS51n
(n=θ,1,2,…)がいずれかの処理ユニットの書
き込み処理に占有されていることを示すCSBUSY信
号(Loアクティブ)から成る。RDYACK信号(H
iアクティブ)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信号209も非アクテ
ィブのままである。これにより、CSACK209とC
SREQl3nを受けるNORゲート202はLoレベ
ルに固定される。デコーダ200は、NORゲート20
2の出力がHiレベルに転じるまでCSEN213をL
oレベルに固定しつづける。また、同様に、出力バッフ
ァ52nの出力をコントロールするBFON信号l2n
もNORゲート202の出力を受け、非アクティブ(H
レベル)のままであり、データ共有回路バスl20へ
のアクセスはSYNCOKTlnがアクティブになるま
で待たされる。プロセッサ1nを一時停止する機能はR
EADY信号(Loアクティブ)l1nを非アクティブ
に保ち、プロセッサ1nのバスサイクルを終了させない
ことによって実現する。READY信号l1nは、AN
Dゲート211により、CSRDl8nか又はBFON
l2nのいずれかがアクティブになった時、アクティブ
に転じ、プロセッサを次の処理に進める。これを局所同
期機能と呼ぶ。同様に、供給システムCSYS51nを
アクセスするための信号CSRDl8nも、SYNCO
KTlnをインバータ207でHiアクティブに変換し
NANDゲートに入力しており、SYNCOKTln
が非アクティブのうちは、CSRDl8n及びREAD
Yl1nを非アクティブにすることにより、データ共有
回路CSYS51nへのアクセスを一時停止する様にし
ている。
FIG. 2 shows an embodiment of the signal control circuit 100n. The decoder 200 decodes the address line and the control line 19n from the processor 1n to generate a control signal, an enable signal and the like for an access request when the processor 1n accesses the data sharing circuits CSYS51n and 102 . Data sharing circuit bus access arbitration circuit 103 request signal CSREQ (L
o active) L3n, the data sharing circuit enable signal CS EN (Lo active from the decoder 200) 21
3 and the synchronization end information SYNCOK (L
o Active) Created by taking the OR theory with Tln
To achieve. Akunoriddji signal l4n from A over arbitration circuit 103, and the CSR EQ signal l 3n CSACK signal is a direct response from the arbitration circuit 103 for (access request when the Lo level is accepted) 209, a common system CSYS51n
(N = θ, 1, 2 , ...) consists CSBUSY signal indicating that it is occupied by the write processing of the processing unit of purchase Zureka (Lo active). RDYACK signal (H
The i-active) 206 is controlled to become inactive (Lo level) when the CSBUSY signal 210 is active, and when the processor 1n tries to read data from its own data sharing circuit CSYS51n, the data sharing circuit CSYS51n. The access conflict with the write processing from the other processing units does not occur. That, NAND gate 208 if the write process to CSYS51n exists becomes inactive (Hi level), the read enable signal to CSYS51n CSRD the (Lo active) inactive. For example, accessing the data sharing circuit 102
Because, decoders 200 active the CSEN213
Let's say At that time, SYNCOKTln non-A Kute
When a I Bed, CSREQl3n is by OR gate 212, not active Among SYNCO KTln is inactive, therefore, CSACK
Signal 20 9 also non accession Te CSA CK signal 209 also remains inactive. This allows CSACK 209 and C
The NOR gate 202 which receives SREQ13n is fixed at Lo level . De-coder 200, NOR gate 20
Set CSEN213 to L until the output of 2 turns to Hi level.
o level to characterize fixed situ. Similarly, a BFON signal 12n for controlling the output of the output buffer 52n
Receives the output of NOR gate 202 is also inactive (H
i level) remains, access to the data sharing circuit bus l20 is to wait until the SYNCOKT ln becomes active. The function to suspend the processor 1n is R
EADY signal (Lo active) l1n is inactive
To keep, not to terminate the bus cycle of the processor 1n
To realize I'm in particular. REA DY signal 11n is AN
Depending on the D gate 211, CSRD18n or BFON
When any one of l2n becomes active, it becomes active and the processor advances to the next processing. This is called a local synchronization function . Similarly, signals CSRDl8n for accessing the supply system CS YS51n, SYNCO
And enter the NAND gate is converted into Hi active inverter 20 7 KTln, SYNCOKTln
Is inactive, CSRD18n and READ
By making Y11n inactive, access to the data sharing circuit CSYS51n is temporarily stopped.

【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,…)に送る。
FIG. 3 shows an embodiment of the synchronization processing circuit 101. The NAND gates UAθ to UAn ... Receive the corresponding Q outputs of the flip-flops UCθ to UCn ... and the corresponding Q outputs of the flip-flops UBθ to UBn ..., and only when all the outputs become Hi level. , The output of the multi-input NAND gate receiving these outputs becomes Lo level. Philip Flop UC
When Q of θ to UCn ... is at the Hi level, the corresponding NA
The Q outputs of the flip-flops UBθ to UBn, which are input to the ND gates UCθ to UCn, become valid. In this example, the Q outputs of UBθ to UBn ... are valid,
The processor 1θ performs the work of determining invalidity. That is, when ignoring the synchronization request Sln (n = θ, 1, 2, ...) From the corresponding processor 1n (n = θ, 1, 2, ...) In the flip-flops UCθ to UCn ... , Corresponding SlDθ to SlDn ...
By setting the level (θ) and generating a trigger signal in Slθ, the Q outputs of the corresponding UCθ to UCn ... Are set to the Lo level (θ). Each processor 1n
(N = θ, 1, 2, ...) Corresponds to S as a synchronization request.
By generating a trigger signal in lθ ~ Sln ...
The Q output Lo level is set, the Q output is set to Hi level, and the synchronization end information Tlθ to Tln ... Is inactivated once. Corresponding NAND gate UA in which the Q output of UCθ to UCn ... Is set to Hi level (1)
The outputs of θ to UAn ... turn to Hi level for the first time. Q outputs of UCθ to UCn ... are set to Hi level. All Q outputs of corresponding UBθ to UBn ... are L.
Only after being set to the o level, the output of the multi-input NAND gate UDθ transits from the Hi level to the Lo level.
The output of the UDθ at the Lo level presets the flip-flops UBθ to UBn.
Return to i level. On the other hand, the Q output of UBθ to UBn ... returns to Lo level, and the active synchronization end information Tlθ to
Tln ... Corresponding processor 1n (n = θ, 1,
2, ...)

【0033】もし、すべてのプロセッサを同期処理に参
加させたければ、UCθ〜UCn……のQ出力をすべて
Hiレベルにセットすれば良い。これを一斉同期モード
と呼ぶ。一斉同期モードしか用いないならば、フィリッ
プフロップUCθ〜UCn……は必要なく、UBθ〜U
Bn……のQ出力をインバータで論理反転し、多入力N
ANDゲートUDθに直接入力すれば良い。
If all the processors are to participate in the synchronous processing, all the Q outputs of UCθ to UCn ... Can be set to the Hi level. This is called a simultaneous synchronization mode. If only the simultaneous synchronization mode is used, the flip-flops UCθ to UCn are not necessary and UBθ to U
Inverting the Q output of Bn ...
It may be directly input to the AND gate 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を構成していると言える。
Next, another embodiment of the synchronization processing circuit of the present invention will be described with reference to FIG. Multi in the example
The processor system is assumed to be composed of m processors, and representative processors 1n and 1n + 1 are shown in this figure. Each processor is provided with circuits 2n and 2n + 1 for inter-processor synchronization processing. 2n, 2n
+1 is equivalent to the circuit portion indicated by 101A in the synchronization processing circuit shown in FIG. Information communication between the synchronizing circuits 2n and 2n + 1 is performed by the signal line 8. According to the present invention, a processor that executes a related task can arbitrarily configure a group, and the process can proceed while synchronizing with each other in the group. Circuit 2 for interprocessor synchronization described above
n and 2n + 1 correspond to each processor, and are triggered at a timing for setting a value in the synchronizing register 5 for storing information corresponding to a group name and a timing for setting a value in the synchronizing register 5 or thereafter. The state of the flip-flop is broadcasted to each processor and the broadcasted information is collated with the contents of the synchronization register 5, and it is checked whether the states of the processors in the group registered therein are all true. Determination circuit 6 for determining and determination circuit 6
And a signal circuit for notifying the processor of the check result. Reference numeral 4 is an access signal signal line, 8 is a task end signal line, 9 is a status line, and 10 is a trigger signal line. The synchronization register 5 corresponds to the flip-flops UCθ to UCn ... In the circuit 101A shown in FIG. In the present embodiment, since each processor 1n has the synchronization register 5 corresponding thereto, each processor can independently select the processor to be the target of the synchronization processing (in the example of FIG. 3, only the processor 1θ has the selection right). Have). In this embodiment, the synchronous processing circuits are provided in a distributed manner corresponding to each processor, and each of the distributed synchronous processing circuits 2n (n = θ, 1, ... The necessary data is transmitted and received by the line 8. Therefore, the synchronous processing circuit 1 shown in FIG. 1 including all the synchronous processing circuits 2n (n = θ, 1, ... N) and the signal line 8 is included.
It can be said that it constitutes 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が相方とも
タスク処理完了した時点で同期化されることになる。
Next, the synchronous operation sequence within the group of processors will be described. It is assumed that, for example, the processors 1n and 1n + 1 among the processors 1 0 to 1n form a group and execute related tasks. First, the operation of the processor 1n will be mainly described. When the processor 1n completes the task processing, the data line 3 is transferred to the synchronization register 5.
Set (1) to the nth and (n + 1) th bits through (SlDθ to SlDn to SlDm), and set 0 to the other bits.
Write the bit string that sets (which indicates the group of processors). During the write operation, the signal line 4 indicating that the processor n is accessing the synchronization register 5 generates an active pulse, which serves as a write clock signal to the synchronization register 5. At the same time, Philip furo Tsu <br/> flop 7 by a signal line 4 is also triggered, the 0 level of the task termination signal to the terminal Q is outputted, the terminal Q is outputted one level status signals. Task termination signal from the terminal Q is connected to the n of the task termination signal lines 8 are transmitted to the synchronous circuit 2 0 to 2n of each processor. The status signal from the terminal Q is sent to the processor 1n via the status line 9.
Is input to the TEST input of the
The process is suspended until the T input changes to 0 level. The value set in the synchronization register 5 and the value of the signal line 8 are
The decision circuit 6 is loaded while maintaining the correspondence relationship of 0 to m, and the NAND-NAND gate (UAθ of 101A is
~ UAn ... And UDθ), all the values of the task end signal line 8 corresponding to the bit for which 1 is set in the synchronization register 5 become 0 level, that is, the task end signal line 8 in this example. N and n + 1
Becomes 0 level, the trigger signal 10 becomes active 0. In response, Philip flop 7 is yellowtail set, the task termination signal 1 from the terminal Q is turned to 1 level, the n of the task termination signal lines 8 1 level to Do <br/> order, decision circuit 6 The trigger signal 10 of turns to 1 level. At the same time, the status signal at the terminal Q changes to 0 level, and the TEST input of the processor 1n also becomes 0 level, so that the processor 1n restarts processing. Since the same operation is performed in the processor 1n + 1, in this example, as a result, both the processor 1n and the processor 1n + 1 are synchronized when the task processing is completed.

【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を用意し、多重同期処理を行うと、グルー
プの再編成等も容易に実現でき、よりフレキシブルで高
効率な並列処理を実現できる。
The above is the operation sequence of the synchronous processing circuit of the present invention. In the present invention, the synchronization processing by software is only the writing of the value to the synchronization register 5, and is about one machine instruction at the machine language level. Since all others are processed by hardware, the overhead required for synchronous processing is minimized under the condition of being programmable. Further, according to the present invention, it is possible to group the processors by related ones only by using one set of the synchronization processing circuit 101, and perform the synchronization processing between the processors belonging to each grouped group. It can be done easily. Further, by providing a plurality of sets of the synchronization processing circuit 101 of the present invention, it is possible to perform synchronization processing between groups in a multiplexed manner. Due to the grouping of processors and multiple synchronization, flexibility in parallel processing is created, and highly efficient parallel processing close to data flow can be realized on a general-purpose multi-processor system. FIG. 5 shows a flow of control of parallel processing by the synchronous processing circuit 101 of the present invention. In the example of FIG. 5, the local synchronization processing performed in the signal control circuit 50n is not used, and the synchronization processing is executed by the processor 1n checking only the synchronization end information from the synchronization processing circuit 101. . In this figure, it is assumed that four processors, processor a to processor d, are controlled by the synchronous processing circuit 101 of the present invention from the upper part to the lower part in the drawing in parallel with the progress of time. First, related tasks, task 1 and task 2 are processed by the processors a and b, respectively, and similarly, task 3 and task 4 are processed by the processors c and d, respectively. Since the processors that execute the related tasks can form a group, in this case, the processors a and b form the group 11, and the processors c and d form the group 12.
Solid arrows connecting tasks indicate the flow of processing and data between the same processors, and the dashed-dotted arrows indicate the flow of data between tasks executed by other processors in the group, that is, between processors in the group. Shows the communication of. At times t 1 and t 2 , communication needs to occur in two groups, and the synchronization processing circuit 1 of the present invention
After the synchronous processing is performed by 01, the processing data is exchanged between the processors. After that, the groups of the processors a and b move to the processing of tasks 5 and 6, respectively, and the groups of the processors c and d move to the processing of tasks 7 and 8, respectively. As described above, the synchronous processing by the inter-processor synchronous processing circuit 101 shown in FIG. 4 indicates which processor and group have been configured to execute the task processing up to that point. In addition, because data is not exchanged between groups due to grouping, it is possible to independently proceed with the processing of each group, and flexible progress control of parallel processing realizes efficient parallel processing. It is possible. After that, the groups 13 and 14 are changed to the groups 12 and 13
The same processors form a group to perform task processing, and at the same time t 3 and 4 , synchronous processing is performed and communication between processes is performed. At time t 5 , all the tasks 9 to 12 are related and the independence between the groups disappears. Therefore, after performing the synchronization processing once within the group, the synchronization processing is performed again by the interprocessor synchronization processing circuit 101 of another system. , All processors are in sync. That is, the inter-processor synchronization processing circuit 10 of another system
It can be considered that the synchronization processing between the groups is performed by 1, and as a result, the group 15 is a group to which all the processors belong. Then related task 1
The processors ac for processing 3 to 15 are group 16
The processor d that executes the independent task 16 configures each single group 17, rearranges the groups, and executes parallel processing while performing synchronous processing at times t 6 and t 7 and the like in the same manner. . Thus, by preparing a plurality of sets of synchronization processing circuits 101 and performing multiple synchronization processing, group reorganization and the like can be easily realized, and more flexible and highly efficient parallel processing can be realized.

【0037】次に、図4に示した本発明の同期処理回路
を用いて、図1に示したプロセッサ間同期処理装置を構
成した場合の具体的な効果を、タスクを構成する最小単
位であるプロセッサのインストラクションレベルまで分
解して解析した一例を図に示す。第6a図は、局所同期
方式を用いないで同期終了情報Tlnのみに依存してプ
ロセッサ間の同期処理を行った場合であり、いわば従来
型と言える。すなわち、図5に示した並列処理フローの
一部を切り出したものと考えれば良い。図6の動作条件
及び仮定を以下に示す。
Next, the concrete effect when the inter-processor synchronous processing device shown in FIG. 1 is constructed by using the synchronous processing circuit of the present invention shown in FIG. 4 is the minimum unit that constitutes a task. The figure shows an example of analysis by disassembling to the instruction level of the processor. FIG. 6a shows a case where the synchronization processing between processors is performed without relying on the local synchronization method and depending only on the synchronization end information Tln, which is, so to speak, conventional. That is, it may be considered that a part of the parallel processing flow shown in FIG. 5 is cut out. The operating conditions and assumptions of FIG. 6 are shown below.

【0038】1)同期処理回路101へのタスク終了情
報を送出しタスクの終了をプロセッサが宣言するプロセ
ッサ間同期用インストラクションをSと表記する。
1) An instruction for inter-processor synchronization, in which task end information is sent to the synchronous processing circuit 101 and the end of the task is declared by the processor, is denoted by S.

【0039】2)プロセッサPl、Pm、Pnはグルー
プを構成しており、グループ内で同期をとりながら関連
したタスクを実行している。
2) The processors Pl, Pm and Pn form a group and execute related tasks while synchronizing with each other in the group.

【0040】3)各プロセッサPl、Pm、Pnは、イ
ンストラクションSを実行した後同期処理回路101か
らの同期終了情報(TEST出力)がアクティブに転じ
るまで(Pl、Pm、Pnのすべてがそのレベルでのタ
スク処理を終了し、それぞれインストラクションSを実
行するまで)無条件で待たされる。
3) Each of the processors Pl, Pm, and Pn executes the instruction S and then the synchronization end information (TEST output) from the synchronization processing circuit 101 becomes active (all of Pl, Pm, and Pn are at that level). Task processing is completed, and the instruction S is executed, and the task is unconditionally waited.

【0041】4)同期終了情報が非アクティブ状態で
も、各プロセッサは外部のデータを使用しない範囲で、
プロセッサ内部の命令キューや命令キャシュに存在する
命令に限定して可能な限り実行することができる。すな
わち同期化ロジックとして、インストラクションSを実
行する際に同期処理回路101をアクセスするため生成
した外部バスサイクルに対して、同期終了情報がアクテ
ィブに転じるまでReady信号をプロセッサに返送しない
様にし、強制的に外部バスサイクルを一時停止(外部バ
スサイクルを終了させない)する回路構成を採っている
とする。
4) Even if the synchronization end information is inactive, each processor does not use external data,
The instructions can be executed as much as possible by limiting to the instructions existing in the instruction queue or the instruction cache inside the processor. That is, as the synchronization logic, for the external bus cycle generated for accessing the synchronization processing circuit 101 when executing the instruction S, the Ready signal is not returned to the processor until the synchronization end information becomes active, and it is forced. It is assumed that the external bus cycle is temporarily stopped (the external bus cycle is not terminated).

【0042】5)外部データを使用しないインストラク
ション(例えばレジスタ間演算等)をIと表記する。一
方、共有システム上のデータ以外の外部データを使用す
るインストラクションをID、共有システム上の共有デ
ータを使用するインストラクションをICDと表記す
る。
5) An instruction that does not use external data (for example, calculation between registers) is denoted by I. On the other hand, an instruction that uses external data other than the data on the shared system is referred to as an ID, and an instruction that uses shared data on the shared system is referred to as an ICD.

【0043】一方図6は、局所同期方式を用いて、後続
のタスク処理のうち最初の共有システムアクセス(IC
D)まで先行して処理を進めた場合を示している。条件
及び仮定は、前記図6におけるそれの1)、2)、5)
は同様である。条件3)及び4)の代りに以下の条件を
設定する。
On the other hand, FIG. 6 shows the first shared system access (IC
It shows the case where the processing is advanced to D). The conditions and assumptions are 1), 2), 5) of that in FIG.
Is the same. The following conditions are set instead of the conditions 3) and 4).

【0044】6)各プロセッサPl、Pm、Pnは、イ
ンストラクションSを実行して、アクティブなタスク終
了情報を同期処理回路に送出した後、新たな共有システ
ムへのアクセス命令(ICD)が現われるまで先行して
次のレベルのタスク処理を進めていく。
6) Each processor Pl, Pm, Pn executes the instruction S and sends the active task end information to the synchronous processing circuit, and then precedes until an access command (ICD) to a new shared system appears. And proceed to the next level of task processing.

【0045】7)6)の条件で先行して次のレベルのタ
スク処理を進めて行った時、各プロセッサPl、Pm、
Pnは、共有システムへのアクセス処理ICDを最初に
実行しようとした時点で、まだ前のレベルでの同期処理
回路101からの同期終了情報がアクティブになってい
ない場合、ICDによって生成された外部バスサイクル
に対するReady信号l9を同期終了情報がアクティブに
なるまでプロセッサに返送しない。すなわち、ICDに
よって生成した外部バスサイクルを同期終了情報がアク
ティブに転ずるまで強制的に一時停止(バスサイクルを
終了させない)する。なお、命令キューや命令キャッシ
ュ上のインストラクションIは、実行が可能ならば、さ
らに先行して処理を進めることができる。インストラク
ションICDと同期終了情報との組み合わせによる同期
処理を前述した様に局所同期処理と呼ぶ。
7) When the task processing of the next level is advanced under the condition of 6), the processors Pl, Pm,
Pn is the external bus generated by the ICD when the synchronization end information from the synchronization processing circuit 101 at the previous level is not active at the time when the access processing ICD for accessing the shared system is first executed. The Ready signal 19 for the cycle is not sent back to the processor until the sync done information becomes active. That is, the external bus cycle generated by the ICD is forcibly suspended (the bus cycle is not ended) until the synchronization end information turns active. If the instruction I on the instruction queue or the instruction cache can be executed, the processing can be further advanced. The synchronization processing by the combination of the instruction ICD and the synchronization end information is called the local synchronization processing as described above.

【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%程度向上した
計算になり、局所同期方式を用いると処理能力を大幅に
向上できる可能性を示している。
Here, SYNCk indicates the time when the active synchronization processing information is returned from the synchronization processing circuit, that is, the time when the synchronization at the level k is achieved. In FIG. 6, the processors Pl and Pm are provided in the latter half of the level k-1.
In the second half of the level k, idle time is generated in the processors Pl and Pn, and the processor is halted. In FIG. 6, since each processor can advance the processing until the instruction ICD appears, the level k-1 is generated except for a slight idle time in the processor Pm in the latter half of the level k-1. , Level k, no idle time is generated. If the start is M and the end is N, then FIG.
In the lower part of FIG. 6, the processing time is shortened by Pl for tl, Pm for tm, and Pn for tn in the lower part of FIG. Also in the processor executing the critical path of parallel processing, level k-1 is Pn, level k is Pm, and level k + 1 is Pl in the upper part of FIG. 6, whereas level k-1 is in the lower part of FIG. Both k and k + 1 are Pn, and it can be seen that the critical path itself is changing. This is because each processor performed the task processing in advance across the levels, and the actual task processing time itself dynamically changed, so that the critical path also changed. As a result, when the processing start time is M and the processing end time is N, the processing time in the lower part of FIG. 6 is shortened by tc from the upper part of FIG. 6 in the entire parallel processing shown in the figure. This is a calculation in which the processing capacity is improved by about 21%, and shows that the processing capacity can be significantly improved by using the local synchronization method.

【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の位置を示し
ている。
In FIG. 6, points A, B, and C respectively indicate the positions of the synchronization instruction S of Pl, Pm, and Pn at the level k-1. D,
The points E and F are the instruction ICD with shared system access executed for the first time in the tasks executed at the level k, respectively. Similarly, G, H, and I indicate the position of S at level k, and J, K, and L indicate the position of the first ICD appearing in the task executed at level k + 1.

【0048】以上に述べたように本実施例は、固定的な
タスクの境目を排除し、タスク処理中で最初に共有シス
テムにアクセスして共有データのやりとりを行う必要が
生じるまで、先行してできるだけタスク処理を進めて行
くことができるので、同期処理時のプロセッサ間の待ち
合わせ処理に伴う空処理時間(プロセッサの休止時間)
を少なくすることができる。このことは、タスク処理時
間を各プロセッサの同期条件に応じて動的にタスク処理
時間を変更して並列処理のクリティカルパス自体を短縮
し、データドリブンと同様な効果を得て、より効率の良
い並列処理の実行を可能にする。
As described above, this embodiment eliminates the fixed task boundary and precedes until it becomes necessary to access the shared system to exchange shared data first during task processing. Since it is possible to proceed with task processing as much as possible, idle processing time (processor idle time) accompanying waiting processing between processors during synchronous processing
Can be reduced. This makes it possible to dynamically change the task processing time according to the synchronization condition of each processor, shorten the critical path of parallel processing itself, obtain the same effect as data driven, and improve efficiency. Allows execution of parallel processing.

【0049】また、本実施例の同期処理回路によれば、
汎用マルチ・プロセッサにおいて、固定されたジョブを
タスク分割し並列化して並列処理する場合、関連するタ
スクを実行する任意のプロセッサ同志をグリープにまと
め、グループ内のプロセッサ間あるいはグループ間で同
期をとる同期処理方式を用いることによって、プロセス
間の同期処理機構をソフトウエア・プログラマブルな範
囲で可能な限りハードウエア化することができるので、
同期処理に要するソフトウエア・オーバーヘッドを極小
化する効果がある。
Further, according to the synchronous processing circuit of the present embodiment,
In a general-purpose multi-processor, when a fixed job is divided into tasks and parallelized for parallel processing, arbitrary processors that execute related tasks are grouped into a group and synchronized between processors within a group or between groups. By using the processing method, the synchronous processing mechanism between processes can be implemented as hardware in the software programmable range as much as possible.
This has the effect of minimizing the software overhead required for synchronization processing.

【0050】次に、ソフトウェア内に同期処理命令を配
置することによりコントロールフローによって、並列処
理時の遊び時間の短縮を実現できる様にしたプロセッサ
間の同期装置用の命令セットの実施例を説明する。ソフ
トウェア的による基本的なコントロールフローは図4の
プロセッサ同期処理回路を用いれば実現できるが、より
高機能化を実現するため、図4に示した様に信号線4を
それぞれ特定の機能を有する4a、4b、4cの3本に
分離したものを用いている。
Next, a description will be given of an embodiment of an instruction set for a synchronizer between processors in which synchronous processing instructions are arranged in software so as to realize reduction of idle time during parallel processing by control flow. . Although a basic control flow by software can be realized by using the processor synchronous processing circuit of FIG. 4, in order to realize higher performance, each signal line 4 has a specific function 4a as shown in FIG. 4b and 4c are separated and used.

【0051】図7は本発明の他の実施例の同期処理回路
の構成を示すブロック図である。信号線4aは、タスク
終了情報を出力するフリップフロップをトリガするため
の信号、信号線4bは、同期用レジスタ5にグループを
登録するためのトリガ信号である。信号線4cについて
は後述する。
FIG. 7 is a block diagram showing the structure of a synchronization processing circuit according to another embodiment of the present invention. The signal line 4a is a signal for triggering a flip-flop that outputs task end information, and the signal line 4b is a trigger signal for registering a group in the synchronization register 5. The signal line 4c will be described later.

【0052】図8に同期処理命令の内容を示す。FIG. 8 shows the contents of the synchronous processing instruction.

【0053】図7に示した同期処理回路を動作させるた
めに各プロセッサn(n=0,1,……)は、対応する
同期処理エレメントn(n=0,1,……)に対してS
YNCO〜SYNC7の合計8つのインストラクション
を指令する。それぞれのインストラクションにはそれぞ
れの機能を表現するニーモニックを用意している。すな
わち基本機能は以下の通りである。
In order to operate the synchronous processing circuit shown in FIG. 7, each processor n (n = 0, 1, ...) Has a corresponding synchronous processing element n (n = 0, 1, ...). S
Command a total of eight instructions YNCO to SYNC7. Each instruction has a mnemonic that expresses its function. That is, the basic functions are as follows.

【0054】GS……グループセッティング(同期用レ
ジスタ5にグループを登録することにより、どのプロセ
ッサ同志がグループを構成しているかを指示する) E
O……エンドアウト(タスク終了情報をアクティブに
し、タスク処理終了信 号ライン8に出力して
タスクが終了した事を示す) W ……ウェイト(グループ内に属するすべてのプロセ
ッサのタスクが終了し、 同期処理が完了する
まで対応するプロセッサを待ち状態にする。同期
処理が完了したかどうかを最終的に確認する機能で
ある) 以上の基本機能を組み合わせて1マシン命令を実行でき
る様にした複合インストラクションとして以下のものを
有する。
GS ... Group setting (By registering a group in the synchronization register 5, it is indicated which processor composes the group) E
O: End-out (task end information is activated and output to the task processing end signal line 8 to indicate that the task has ended) W ... Wait (tasks of all processors in the group have ended, Puts the corresponding processor into a wait state until the synchronization processing is completed.
This is a function for finally confirming whether or not the processing is completed.) The following is provided as a composite instruction that can execute one machine instruction by combining the above basic functions.

【0055】GSEOW……グループセッティング(G
S)→エンドアウト(EO)→ウェイト(W)の順で各
機能を連続処理し、一連の同期処理を1マシン命令で実
現する。
GSEOW ... Group setting (G
Each function is continuously processed in the order of S) → end out (EO) → wait (W), and a series of synchronous processing is realized by one machine instruction.

【0056】GSEO………グループセッティング(G
S)→エンドアウト(EO)の順で各機能を連続処理す
る。
GSEO ... Group setting (G
S) → End out (EO) in this order, each function is processed continuously.

【0057】EOW…………エンドアウト(EO)→ウ
ェイト(W)の順で各機能を連続処理する。以前にGS
機能によってセットされたグループに対し、 一連の
同期処理を1マシン命令で実現する。
EOW: Each function is continuously processed in the order of end out (EO) → wait (W). Previously GS
A series of synchronous processing is realized by one machine instruction for the group set by the function.

【0058】その他、プロセッサ側の処理をより高速
化、簡略化するためには以下の複合インストラクション
を有する。
In addition, the following complex instructions are provided in order to speed up and simplify the processing on the processor side.

【0059】TSEOW……トータルセッティング(T
S)→エンドアウト(EO)→ウェイト(W)の順で各
機能を連続処理する。
TSEOW ... Total setting (T
Each function is continuously processed in the order of S) → end out (EO) → wait (W).

【0060】TSEO………トータルセッティング(T
S)→エンドアウト(EO)の順で各機能を連続処理す
る。
TSEO ... Total setting (T
S) → End out (EO) in this order, each function is processed continuously.

【0061】ここで、TSはすべてのプロセッサを1つ
のグループとみなして同期処理を行うことを指令する基
本機能であり、トータルセッティングと呼ぶ。図7にお
ける信号線4Cをアクティブにすることにより、同期レ
ジスタの値をすべてのプロセッサがグループに属すると
みなすモードにセットする機能である。
Here, the TS is a basic function for instructing that all the processors are regarded as one group and synchronous processing is performed, and is called total setting. This is a function of activating the signal line 4C in FIG. 7 to set the value of the synchronization register to a mode in which all the processors are considered to belong to the group.

【0062】図9、図10はタスクの処理方法を説明す
る説明図である。
9 and 10 are explanatory views for explaining the task processing method.

【0063】本図を用いて従来のコントロールフローと
比較しながら、その使用法及び効果を説明する。
The use and effect of the control flow will be described with reference to FIG.

【0064】図9は、グループ内同期命令であるGSE
OWか又はEOWのみを使用し、図7に示した同期処理
回路を用いて行った従来の同期処理による並列処理制御
を示している。プロセッサmとプロセッサnとがグルー
プを構成している。既に述べた様に、互いのプロセッサ
がそれぞれタスクが終了した時点でプロセッサmとnと
が共にグループに属することを宣言しあう。そして、そ
の際出力されたグループ内のプロセッサm、nからのタ
スク処理終了信号がすべてアクティブになるまでプロセ
ッサm、nは互いに待ち合わせを行い、その後、次のタ
スクに処理を進めることにより矛盾なく並列処理を進め
ていく。
FIG. 9 shows GSE which is an intra-group synchronization instruction.
8 shows parallel processing control by conventional synchronous processing performed using the synchronous processing circuit shown in FIG. 7 using only OW or EOW. The processor m and the processor n form a group. As described above, the respective processors declare each other that the processors m and n belong to the group when their respective tasks are completed. Then, the processors m and n wait for each other until all the task processing end signals from the processors m and n in the group output at that time become active, and thereafter, the processing is advanced to the next task so that parallel processing is performed without any conflict. Proceed with processing.

【0065】図10は、EO命令(タスク終了情報のみ
の出力)とW命令(グループ内のタスク終了情報がすべ
て出そろったかを確認する)を各々に使用することによ
り、図1に示す実施例で説明した共有システムCSYS
へのアクセス条件によるデータドリブン(データフロー
的)を用いた自動チューニング機能と同じ様な効果を、
コントロールフロー(ソフトウェアによる同期命令の指
令によってトップダウン的に並列処理をコントロールす
る)によって実現した例である。並列化処理を行った段
階で、プログラム中の同期処理を行うポイントにコンパ
イラが図8に示したSYNCO〜7までの適切な同期用
インストラクションを挿入していく。SYNCO〜7の
使い分け条件は以下の通りである。
FIG. 10 shows the embodiment shown in FIG. 1 by using an EO instruction (outputting only task end information) and a W instruction (confirming that all task end information in the group has been output). Explained sharing system CSYS
The same effect as the automatic tuning function using data driven (data flow type) depending on the access condition to
This is an example realized by a control flow (top-down parallel processing is controlled by a command of a synchronization instruction by software). At the stage of performing the parallel processing, the compiler inserts appropriate synchronization instructions up to SYNCO to 7 shown in FIG. 8 at the point where the synchronization processing is performed in the program. The conditions for proper use of SYNCO to 7 are as follows.

【0066】(1)あるプロセッサのタスクの終了時
に、同レベルで実行を終了する他のプロセッサで実行さ
れたタスクから、次にプロセッサが実行すべきタスクへ
のリレーション(図9、図10において矢印で示してい
る)が存在しない場合、タスク終了情報を出力するだけ
の命令であるEOを挿入する。すなわち、図9、図10
の例ではタスク3の終了時及びタスク4の終了時点がこ
の条件にあてはまる。プロセッサの動作レベルで説明す
れば、あるプロセッサが、あるタスクを終了して次のタ
スクに処理を進める際、同レベルで実行された他のプロ
セッサからの情報を必要としなければEO命令を実行し
て、次のタスクへ無条件で処理を進めることができると
いう事を意味する。
(1) When a task of a certain processor ends, the relation between a task executed by another processor that terminates execution at the same level and a task to be executed next by the processor (arrows in FIGS. 9 and 10) ), Which is an instruction for outputting the task end information, is inserted. That is, FIG. 9 and FIG.
In the above example, the end time of task 3 and the end time of task 4 apply to this condition. In terms of the operation level of a processor, when one processor finishes a task and proceeds to the next task, it executes the EO instruction unless it needs information from another processor executed at the same level. It means that the process can proceed unconditionally to the next task.

【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機
能でセッティングされたプロセッサグループ構成がその
ままデフォールト値として使用される。
(2) The processor that has executed the EO instruction at the previous synchronization level and moved to the task processing currently being executed,
When the next task to be executed at the end of the task has a relation with a task executed by another processor that ends execution at the same level, E executed at the previous level
The W instruction is executed as the synchronization check instruction corresponding to the O instruction to check whether the synchronization processing of the previous level is completed. After that, the synchronization process of the current synchronization level (for example, GSEOW
Or EOW) to proceed to the next task. That is, in the example of FIGS. 9 and 10, the end time point of task 5 applies to this condition. On the program, W and EOW may be arranged in this order at the end of task 5. The synchronization level here corresponds to the SYNC levels 1 to 3 in FIGS. 9 and 10, and refers to the point in time when the task processing at that level ends and the synchronization processing needs to be executed. In addition,
The difference between the GSEOW instruction and the EOW instruction is that GSEOW has a function (GS) of designating a processor belonging to a group, whereas EOW does not have that function. Therefore, when EOW is specified, the processor group configuration set by the previous GS function is used as it is as the default value.

【0068】図10の処理順を説明する。The processing order of FIG. 10 will be described.

【0069】(a)タスク0、タスク2、タスク4、タ
スク6はこの順でプロセッサmにより実行するとする。
タスク1、タスク3、タスク5、タスク7はこの順でプ
ロセッサnにより実行するとする。また、本例では、各
タスク間に図中矢印で示したリレーションを有するとす
る。
(A) It is assumed that task 0, task 2, task 4, task 6 are executed by processor m in this order.
It is assumed that task 1, task 3, task 5, and task 7 are executed by processor n in this order. Further, in this example, it is assumed that there is a relation shown by an arrow in the figure between each task.

【0070】(b)タスク0とタスク1の処理結果はお
互いにタスク2とタスク3で使用する。したがってプロ
セッサmとnはSYNCレベル1で同期をとる必要があ
り、グループの設定から同期完了チェックまでの一連の
同期処理をお互いにGSEOW命令を実行し合うことに
よって1命令で実現している。
(B) The processing results of task 0 and task 1 are used by task 2 and task 3 mutually. Therefore, it is necessary for the processors m and n to synchronize at SYNC level 1, and a series of synchronization processes from group setting to synchronization completion check are realized by one instruction by mutually executing GSEOW instructions.

【0071】(c)SYNCレベル2においては、タス
ク4はタスク2とタスク3の処理結果を使用し、タスク
5はタスク3の結果しか使用しない。ただし、グループ
の変更はない。したがって、プロセッサmはEOW命令
によりタスク終了情報の出力から同期完了チェックまで
の一連の同期処理を実行し、プロセッサnはEO命令を
実行して、同期チェック(W)を行わずに連続して次の
処理に進む。
(C) In SYNC level 2, task 4 uses the processing results of task 2 and task 3, and task 5 uses only the result of task 3. However, the group has not changed. Therefore, the processor m executes a series of synchronization processes from the output of the task end information to the synchronization completion check by the EOW instruction, and the processor n executes the EO instruction and continuously executes the next synchronization without performing the synchronization check (W). Go to processing.

【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では殆ど解消し
ているのがわかる。
(D) In SYNC level 3, task 6 needs only the processing result of task 4, and task 7 needs both processing results of task 4 and task 5. Therefore, the processor m executes the EO instruction and continuously advances to the next processor without performing the synchronization check (W).
On the other hand, the processor n executes the W instruction corresponding to the EO in the previous (SYNC level 2) to execute the SYNC level 2
SYNC check is performed, then the EOW instruction is executed and SY
After executing a series of synchronization processing of NC level 3 (that is, after confirming that task 4 is completed), the processing is advanced to the next task (task 7). From the above, it can be seen that the play times ta and tb generated in FIG. 9 are almost eliminated in FIG.

【0073】本実施例におけるコントロールフロー方式
の特徴を以下に挙げる。
The features of the control flow system in this embodiment are listed below.

【0074】(1)タスク間のリレーションと処理時間
が正確にわかっている場合は、事前に行う並列化スケジ
ュール時にプログラム内に適切な同期命令をルールに従
って挿入しておくだけで遊び時間の最適なチューニング
を実現できる。自動チューニングを用いた場合は、タス
ク間のリレーションを厳密に判断できないので、最適性
については本実施例より劣る。
(1) If the relation between the tasks and the processing time are accurately known, it is only necessary to insert an appropriate synchronization instruction in the program according to the rule at the time of the parallelization schedule to be performed in advance, so that the play time is optimized. Tuning can be realized. When the automatic tuning is used, the relation between tasks cannot be strictly determined, and therefore the optimality is inferior to that of the present embodiment.

【0075】(2)図7に示した同期処理回路以外の特
別なハードウェアを必要としないため、単純な構成とな
る。
(2) Since no special hardware other than the synchronous processing circuit shown in FIG. 7 is required, the structure is simple.

【0076】[0076]

【発明の効果】本発明によれば、複数のタスクを分担し
て並列処理する複数のプロセッサと、そのプロセッサ間
でやりとりするデータを共有するデータ共有回路と、複
数のプロセッサ間の同期をとる同期処理回路と、複数の
内のそれぞれのプロセッサからデータ共有回路への競合
するアクセス要求を制御する局所同期化回路とを備えた
ことにより、タスク処理が終了していて、かつ同期処理
が終了していない場合、プロセッサは次のタスクで共有
データが必要となるまでの間できるだけ次のタスク処理
を、先行してタスク処理を進めて行くことができるの
で、空処理時間を減少させる効果が得られる。
According to the present invention, a plurality of processors that share a plurality of tasks and perform parallel processing, a data sharing circuit that shares data exchanged between the processors, and a synchronization that synchronizes the plurality of processors. The task processing is completed and the synchronization processing is completed by including the processing circuit and the local synchronization circuit that controls conflicting access requests from the respective processors in the plurality to the data sharing circuit. If not, the processor can advance the next task processing as much as possible until the next task needs the shared data, so that the empty processing time can be reduced.

【0077】また、ジョブを並列処理する場合、関連す
るプロセッサ同志をグリープにまとめグループ内のプロ
セッサ間あるいはグループ間で同期をとることによっ
て、同期処理機構をハードウエア化することができるの
で、同期処理に要するソフトウエア・オーバーヘッドを
極小化する効果が得られる。
Further, when jobs are processed in parallel, the synchronous processing mechanism can be implemented by hardware by collecting related processors in a group and synchronizing them between processors within a group or between groups. The effect of minimizing the software overhead required for is obtained.

【0078】そして、ソフトウェアによる同期命令よっ
てトップダウン的に並列処理をコントロールするコント
ロールフローと、ハードウェアによるデータフロー的自
動チューニングを組み合わせることにより、プロセッサ
の遊び時間をより極小化でき、最適な並列化効率を実現
することが可能となる。
By combining the control flow for controlling the parallel processing in a top-down manner with the software synchronous instruction and the automatic tuning of the data flow by the hardware, the idle time of the processor can be further minimized and the optimum parallelization can be achieved. It is possible to achieve efficiency.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明の実施例に係る全体構成を示すハードウ
エア・ブロック図である。
FIG. 1 is a hardware block diagram showing an overall configuration according to an embodiment of the present invention.

【図2】図1に示した信号制御回路の構成を示す系統図
である。
FIG. 2 is a system diagram showing a configuration of a signal control circuit shown in FIG.

【図3】図1に示した同期処理回路の実施例を示す系統
図である。
FIG. 3 is a system diagram showing an embodiment of the synchronization processing circuit shown in FIG.

【図4】図1に示した同期処理回路の他の実施例を示す
系統図である。
FIG. 4 is a system diagram showing another embodiment of the synchronization processing circuit shown in FIG.

【図5】本発明のプロセッサ間の同期処理による並列処
理の制御例を示す説明図である。
FIG. 5 is an explanatory diagram showing an example of control of parallel processing by synchronous processing between processors of the present invention.

【図6】本発明の実施例に係る局所同期を併用した場合
の処理時間の短縮効果を示す説明図である。
FIG. 6 is an explanatory diagram showing the effect of shortening the processing time when using local synchronization according to the embodiment of the present invention.

【図7】本発明の他の実施例の同期処理回路の構成を示
すブロック図である。
FIG. 7 is a block diagram showing a configuration of a synchronization processing circuit according to another embodiment of the present invention.

【図8】本発明の他の実施例の同期処理命令の内容を示
す。
FIG. 8 shows the contents of a synchronization processing instruction according to another embodiment of the present invention.

【図9】本発明の他の実施例のタスクと同期処理命令の
関係を説明する説明図である。
FIG. 9 is an explanatory diagram illustrating a relationship between a task and a synchronization processing instruction according to another embodiment of the present invention.

【図10】本発明の他の実施例のタスクと同期処理命令
の関係を説明する説明図である。
FIG. 10 is an explanatory diagram illustrating a relationship between a task and a synchronization processing instruction according to another embodiment of the present invention.

【符号の説明】[Explanation of symbols]

1 マルチ・プロセッサを構成するプロセッサ 2 同期処理エレメント 4 同期処理エレメントへのアクセス信号線 4a 信号線 4b 信号線 4c 信号線 5 同期用レジスタ 6 判断回路 7 フィリップ・フロップ 8 タスク処理終了信号ライン 9 ステータス信号線(タスク終了情報線) l20 共有システムバス l21 アービトレーションライン 50n 信号制御回路 51n 局所共有システム 100n 処理ユニット 101 同期処理回路 102 共有システム 103 アービトレーション回路 1 Processors that make up a multi-processor 2 Synchronous processing element 4 Access signal line to synchronous processing element 4a signal line 4b signal line 4c signal line 5 Synchronization register 6 Judgment circuit 7 Philip Flop 8 task processing end signal line 9 Status signal line (task end information line) 120 shared system bus l21 arbitration line 50n signal control circuit 51n Local sharing system 100n processing unit 101 Synchronous processing circuit 102 sharing system 103 Arbitration circuit

Claims (9)

【特許請求の範囲】[Claims] 【請求項1】 複数のタスクを分担して並列処理する複
数個のプロセッサと、該複数個のプロセッサ間でやりと
りするデータを共有するデータ共有回路と、前記複数個
のプロセッサ間の同期をとる同期処理回路と、複数個の
内のそれぞれのプロセッサから前記データ共有回路への
競合するアクセス要求を制御する局所同期化回路と、を
備えたことを特徴とするプロセッサ間の同期処理装置。
1. A plurality of processors that share a plurality of tasks and perform parallel processing, a data sharing circuit that shares data exchanged between the plurality of processors, and a synchronization that synchronizes the plurality of processors. A synchronization processing device between processors, comprising: a processing circuit; and a local synchronization circuit for controlling competing access requests from the respective processors in the plurality of data sharing circuits.
【請求項2】 前記同期処理回路は、タスクを終了した
プロセッサが出力するタスク終了情報を入力し、関連す
るタスクを処理するいくつかのプロセッサが出力する前
記タスク終了情報が全てアクティブに変化した後にその
タスク終了情報から同期させるべきプロセッサがタスク
処理を終了したことを示す同期終了情報を対応するプロ
セッサに対してアクティブな値を出力し、局所同期化回
路は、そのタスク終了情報を出力したプロセッサが前記
データ共有回路へアクセスする時に対応する前記同期終
了情報が前記同期処理回路からアクティブな値として出
力されていないならば、アクセスを禁止し前記プロセッ
サの動作を休止することを特徴とする請求項1に記載の
プロセッサ間の同期処理装置。
2. The synchronous processing circuit inputs task end information output by a processor that has completed a task, and after all the task end information output by some processors that process related tasks have changed to active. From the task end information, the processor to be synchronized outputs an active value to the corresponding processor as the synchronization end information indicating that the task processing has ended, and the local synchronization circuit outputs the task end information to the processor that outputs the task end information. The access is prohibited and the operation of the processor is suspended if the synchronization end information corresponding to the access to the data sharing circuit is not output as an active value from the synchronization processing circuit. A synchronous processing device between processors according to.
【請求項3】 前記同期処理回路は、並列処理を実施す
る際に関連するタスクを処理するプロセッサ同士でグル
ープを形成し、該グループ内の前記プロセッサ間、或い
は該グループ間で同期をとる同期手段を備えたことを特
徴とする請求項1に記載のプロセッサ間の同期処理装
置。
3. The synchronization processing circuit forms a group of processors that process related tasks when performing parallel processing, and synchronizes between the processors in the group or between the groups. The synchronous processing device between processors according to claim 1, further comprising:
【請求項4】 前記同期手段は、前記グループ内の1つ
のプロセッサが出力するグループを構成するそれぞれの
プロセッサ名に相当する情報を記憶する同期用レジスタ
と、該同期用レジスタへのアクセスによりトリガされる
フィリップ・フロップと、該フィリップ・フロップの状
態を他のプロセッサへ伝送する第1の伝送回路と、伝送
された該フィリップ・フロップの状態と前記同期用レジ
スタの記憶内容と照合し前記同期用レジスタに記憶され
た前記グループ内のそれぞれのプロセッサがアクティブ
か否か判断する判断回路と、該判断回路が出力する判断
結果を前記フィリップ・フロップを介して前記グループ
内の1つのプロセッサに伝送する第2の伝送回路と、を
備えたことを特徴とする請求項3に記載のプロセッサ間
の同期処理装置。
4. The synchronization means is triggered by access to the synchronization register, which stores information corresponding to the names of the respective processors forming the group output by one processor in the group, and access to the synchronization register. Flip-flop, a first transmission circuit for transmitting the state of the flip-flop to another processor, the transmitted state of the flip-flop and the stored contents of the synchronization register, and the synchronization register A decision circuit for deciding whether or not each processor in the group stored in the group is active, and a decision result output by the decision circuit for transmitting to the one processor in the group via the flip-flop. 4. The inter-processor synchronization processing device according to claim 3, further comprising:
【請求項5】 前記同期手段は、前記グループ内の1つ
のプロセッサが出力するグループを構成するそれぞれの
プロセッサ名に相当する情報を記憶する同期用レジスタ
と、該同期用レジスタへのアクセスによりトリガされる
フィリップ・フロップと、前記フィリップ・フロップが
タスク終了情報を出力するためのトリガ信号をプロセッ
サから前記フィリップ・フロップへ出力する第1の信号
伝送手段と、前記同期用レジスタがプロセッサのグルー
プを記憶するためのトリガ信号をプロセッサから前記同
期用レジスタへ出力する第2の信号伝送手段と、前記同
期用レジスタの値が全プロセッサはグループに属すると
みなすようにセットするアクティブな信号をプロセッサ
から前記同期用レジスタへ出力する第3の信号伝送手段
とを備えたことを特徴とする請求項3に記載のプロセッ
サ間の同期処理装置。
5. The synchronization means is triggered by access to the synchronization register, which stores information corresponding to the names of the respective processors forming the group output by one processor in the group, and access to the synchronization register. A flip-flop, a first signal transmission means for outputting a trigger signal for outputting the task end information from the processor to the flip-flop, and the synchronization register storing a group of processors. Second signal transmission means for outputting a trigger signal to the synchronizing register from the processor, and an active signal from the processor for setting the value of the synchronizing register so that all the processors belong to the group. And a third signal transmission means for outputting to the register. The synchronous processing device between processors according to claim 3.
【請求項6】 複数のプロセッサ間の同期処理を行い、
並列処理を矛盾なく制御するプロセッサ間の同期処理装
置において、前記各プロセッサに対応してそれぞれのプ
ロセッサがタスクを終了した時点でアクティブなタスク
終了情報を出力する手段と、同期をとるべきプロセッサ
からのタスク終了情報がすべてアクティブになったとき
とその情報を用いて各プロセッサに対応した前記アクテ
ィブなタスク終了情報を非アクティブにする手段と、前
記タスク終了情報をプロセッサがチェックし同期処理が
終了したことを確認する手段とを有することを特徴とす
るプロセッサ間の同期処理装置。
6. Synchronizing processing between a plurality of processors,
In a synchronous processing device between processors that controls parallel processing without contradiction, means for outputting active task end information at the time when each processor finishes a task corresponding to each processor, and a processor to be synchronized When all the task end information becomes active, and means for deactivating the active task end information corresponding to each processor using the information, and that the processor checks the task end information and finishes the synchronization processing. And a means for confirming that the synchronous processing device between processors.
【請求項7】 前記アクティブなタスク終了情報の出力
を指示するEO命令と、前記同期処理が終了したことを
確認するW命令とを各プロセッサが指令する手段を有す
ることを特徴とする請求項6に記載のプロセッサ間の同
期処理装置。
7. The processor comprises means for instructing each processor to issue an EO instruction for instructing the output of the active task end information and a W instruction for confirming that the synchronization processing has been completed. A synchronous processing device between processors according to.
【請求項8】 1つのプロセッサのタスクの終了時に、
同レベルで実行を終了する他のプロセッサで実行された
タスクから、次にプロセッサが実行すべきタスクへのリ
レーションが存在しない場合、前記EO命令を挿入し、
前記プロセッサが、あるタスクを終了して次のタスクに
処理を進める際、同レベルで実行された他のプロセッサ
からの情報を必要としなければ前記EO命令を実行し
て、次のタスクへ無条件で処理を進める手段を有するこ
とを特徴とする請求項7に記載のプロセッサ間の同期処
理装置。
8. At the end of the task of one processor,
If there is no relation from a task executed by another processor that terminates execution at the same level to a task to be executed next by the processor, insert the EO instruction,
When the processor terminates a task and proceeds to the next task, if the information from another processor executed at the same level is not needed, the EO instruction is executed to unconditionally proceed to the next task. 8. The inter-processor synchronization processing device according to claim 7, further comprising means for advancing the processing by.
【請求項9】 1つ前の同期レベルで前記EO命令を実
行して現在実行中のタスク処理に移ったプロセッサは、
そのタスクの終了時点で次に実行すべきタスクが同レベ
ルで実行を終了する他のプロセッサで実行されたタスク
とのリレーションを有するとき、前レベルで実行した前
記EO命令に対応する同期チェック命令としてW命令を
実行して、前レベルの同期処理が終了したかを確認し、
その後、現在の同期レベルの同期処理を行い、次のタス
クへ処理を進める手段を有することを特徴とする請求項
8に記載のプロセッサ間の同期処理装置。
9. The processor which executes the EO instruction at the previous synchronization level and shifts to the currently executed task processing,
When the next task to be executed at the end of the task has a relation with a task executed by another processor that ends execution at the same level, as a synchronization check instruction corresponding to the EO instruction executed at the previous level. Execute the W command to check whether the previous level synchronization processing has finished,
9. The inter-processor synchronization processing apparatus according to claim 8, further comprising means for performing a synchronization processing of the current synchronization level and advancing the processing to the next task.
JP3234535A 1990-09-14 1991-09-13 Synchronous processor between processors Expired - Fee Related JP3008223B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3234535A JP3008223B2 (en) 1990-09-14 1991-09-13 Synchronous processor between processors

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2-245208 1990-09-14
JP24520890 1990-09-14
JP3234535A JP3008223B2 (en) 1990-09-14 1991-09-13 Synchronous processor between processors

Publications (2)

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

Family

ID=26531616

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3234535A Expired - Fee Related JP3008223B2 (en) 1990-09-14 1991-09-13 Synchronous processor between processors

Country Status (1)

Country Link
JP (1) JP3008223B2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6161168A (en) * 1995-08-28 2000-12-12 Hitachi, Ltd. Shared memory system
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
JP2008176738A (en) * 2007-01-22 2008-07-31 Mitsubishi Electric Corp Parallel solution device for simultaneous linear equations
JP2012048515A (en) * 2010-08-27 2012-03-08 Internatl Business Mach Corp <Ibm> Parallel calculation processing for transmission and reception of data over multiple nodes without barrier synchronization
JP5235870B2 (en) * 2007-04-09 2013-07-10 パナソニック株式会社 Multiprocessor control device, control method thereof, and integrated circuit

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8758174B2 (en) * 2009-10-28 2014-06-24 Newgy Industries, Inc. Table tennis robot and method of operation

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6161168A (en) * 1995-08-28 2000-12-12 Hitachi, Ltd. Shared memory system
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
JP2008176738A (en) * 2007-01-22 2008-07-31 Mitsubishi Electric Corp Parallel solution device for simultaneous linear equations
JP5235870B2 (en) * 2007-04-09 2013-07-10 パナソニック株式会社 Multiprocessor control device, control method thereof, and integrated circuit
JP2012048515A (en) * 2010-08-27 2012-03-08 Internatl Business Mach Corp <Ibm> Parallel calculation processing for transmission and reception of data over multiple nodes without barrier synchronization

Also Published As

Publication number Publication date
JP3008223B2 (en) 2000-02-14

Similar Documents

Publication Publication Date Title
US5481747A (en) Synchronous method and apparatus for processors
US5050065A (en) Reconfigurable multiprocessor machine for signal processing
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
US5960458A (en) Shared memory system
US20090300324A1 (en) Array type processor and data processing system
CA2360712A1 (en) Method and apparatus for the data-driven synchronous parallel processing of digital data
CN105204821B (en) Inter-processor synchronization system
US4956800A (en) Arithmetic operation processing apparatus of the parallel processing type and compiler which is used in this apparatus
JP2001092772A (en) Data bus to use synchronizing fixed latency loop
JPS6345670A (en) Inter-processor synchronizing device
JPH052568A (en) Inter-processor synchronizing processor
US6993639B2 (en) Processing instruction addressed by received remote instruction and generating remote instruction to respective output port for another cell
KR920006617B1 (en) Multiprocessor system
KR102145457B1 (en) Direction indicator
US5623685A (en) Vector register validity indication to handle out-of-order element arrival for a vector computer with variable memory latency
JP2000207389A (en) Vector tailgating for computer provided with vector register
JP2013196245A (en) Simulation method, simulation device and simulation program
JP2810043B2 (en) Data processing device
WO1992010802A1 (en) Method and apparatus for multiprocessor digital communication
JP3006676B2 (en) Multiprocessor
JPH01500065A (en) Apparatus and method for microprogram information processing system with multiple control stores
JP2834298B2 (en) Data processing device and data processing method
WO1991002310A1 (en) Non-busy-waiting resource control
JPS6326907B2 (en)
US20240134718A1 (en) Apparatus and method for synchronizing participants of a simulation

Legal Events

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