JP3008223B2 - Synchronous processor between processors - Google Patents

Synchronous processor between processors

Info

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

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

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

【0002】[0002]

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

【0003】[0003]

【発明が解決しようとする課題】上記汎用マルチ・プロ
セッサ・システムにおける従来技術は、いずれもソフト
ウエアで処理する割合が高くまたチェック項目も多いた
め、タスク間の同期(タスク処理の先行関係の順当化)
あるいはプロセッサ間の同期に要する同期処理オーバー
ヘッドが大きい。したがって、タスクの細分化(細かな
タスク分割)が十分できない。また並列処理のタスク処
理順序が必要以上に制約される等の問題がありジョブの
並列性を十分引き出せないため、高効率な並列処理の実
現が困難である。
The prior art in the above-mentioned general-purpose multiprocessor system has a high ratio of processing by software and has many check items, so that synchronization between tasks (appropriate priorities of task processing). Conversion)
Alternatively, synchronization processing overhead required for synchronization between processors is large. Therefore, task segmentation (fine task division) cannot be performed sufficiently. In addition, there is a problem that the task processing order of the parallel processing is unnecessarily restricted, and the parallelism of the job cannot be sufficiently extracted. Therefore, 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 ends one task processing and shifts to the next task processing, other necessary processing is performed. Synchronous processing is required to confirm whether task processing has been completed and all necessary results have been obtained. At that time, there is a problem that the processor is occupied by the synchronization check process, and a blank processing time occurs in which the processor does not execute a substantially effective process until the synchronization process is completed.

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

【0006】[0006]

【課題を解決するための手段】上記目的は、複数のタス
クを分担して並列処理する複数個のプロセッサと、該複
数個のプロセッサ間でやりとりするデータを共有するデ
ータ共有回路と、前記複数個のプロセッサ間の同期をと
る同期処理回路とを備え、該同期処理回路は前記各プロ
セッサからの同期情報を得て、それらの同期情報の組み
合わせが、対応するプロセッサから予め与えられた条件
又は前記同期情報と共に該同期処理回路に与えられる条
件と一致したときに、該対応するプロセッサに関して同
期完了信号を生成する手段と、前記各プロセッサが前記
データ共有回路にアクセスしたときに、当該プロセッサ
に関する同期完了信号が生成されていなければ、同期完
了信号が生成されるまで当該プロセッサの前記データ共
有回路へのアクセスを一時的に禁止して当該プロセッサ
のアクセスを待たせる局所同期回路手段とを有すること
により達成される。
An object of the present invention is to provide a plurality of processors for sharing a plurality of tasks and performing parallel processing, a data sharing circuit for sharing data exchanged between the plurality of processors, and a synchronization processing circuit for taking between processor synchronization, the synchronization processing circuit each Pro
Obtain synchronization information from Sessa and combine those synchronization information.
Matching is a condition given by the corresponding processor in advance.
Or a condition given to the synchronization processing circuit together with the synchronization information.
When a match is found, the same
Means for generating an end-of-completion signal;
When the data sharing circuit is accessed, the processor
If no synchronization complete signal has been generated for
Until the end signal is generated.
Temporarily disable access to the circuit
Local synchronization circuit means for waiting for access
Is achieved by

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

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

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

【0010】上記目的は、前記同期手段はが前記グルー
プ内の1つのプロセッサが出力するグループを構成する
それぞれのプロセッサ名に相当する情報を記憶する同期
用レジスタと、該同期用レジスタへのアクセスによりト
リガされるフィリップ・フロップと、前記フィリップ・
フロップがタスク終了情報を出力するためのトリガ信号
をプロセッサから前記フィリップ・フロップへ出力する
第1の信号伝送手段と、前記同期用レジスタがプロセッ
サのグループを記憶するためのトリガ信号をプロセッサ
から前記同期用レジスタへ出力する第2の信号伝送手段
と、前記同期用レジスタの値が全プロセッサはグループ
に属するとみなすようにセットするアクティブな信号を
プロセッサから前記同期用レジスタへ出力する第3の信
号伝送手段とを備えたことにより達成される。
[0010] The object of the present invention is to provide a synchronization register which stores information corresponding to the name of each processor constituting a group output by one processor in the group, and an access to the synchronization register. A triggered Philip flop and said Philip flop
First signal transmitting means for outputting a trigger signal from the processor to the flip-flop so that the flop outputs task completion information; and the synchronization register transmits a trigger signal for storing a group of processors from the processor to the flip-flop. Signal transmission means for outputting to the synchronization register, and third signal transmission for outputting from the processor to the synchronization register an active signal for setting the value of the synchronization register so that all processors belong to a group. Means are achieved.

【0011】上記目的は、複数のプロセッサ間の同期処
理を行い、並列処理を矛盾なく制御するプロセッサ間の
同期処理装置において、前記各プロセッサに対応してそ
れぞれのプロセッサがタスクを終了した時点でアクティ
ブなタスク終了情報を出力する手段と、同期をとるべき
プロセッサからのタスク終了情報がすべてアクティブに
なったときとその情報を用いて各プロセッサに対応した
前記アクティブなタスク終了情報を非アクティブにする
手段と、前記タスク終了情報をプロセッサがチェックし
同期処理が終了したことを確認する手段とを有してお
り、前記アクティブなタスク終了情報の出力を指示する
EO命令と、前記同期処理が終了したことを確認するW
命令とを各プロセッサが発行し得ることにより達成され
る。
An object of the present invention is to provide a synchronous processing device between processors for performing synchronous processing between a plurality of processors and controlling parallel processing without inconsistency, when each processor ends a task corresponding to each processor. Means for outputting appropriate 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 becomes active and using the information. and, then have the means to make sure that the task termination information the processor to check the synchronization process has been completed
Command to output the active task end information
EO instruction and W for confirming that the synchronization process has been completed.
This is achieved because each processor can issue instructions .

【0012】[0012]

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

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

【0015】[0015]

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

【0016】並列処理をプロセッサ間で同期をとりなが
ら矛盾なくかつ高効率で実行するため、有限であるプロ
セッサ個数分のビットを用意し、関連するタスクを実行
中のプロセッサに対応するビットをアクティブにセット
したビット列(ワードデータ)を、プロセッサがタスク
処理の終了時にタスク終了情報として同期用レジスタに
セットするとともにタスク終了線をアクティブにするタ
スク終了処理を実行し、それらの情報は判断手段に入力
され、セットされた同期用レジスタの各ビットに対応す
るプロセッサがすべてタスク終了処理を完了したかどう
かを各プロセッサの対応するタスク終了線とつき合わせ
ることによって監視し、すべてが真(タスクを終了し
た)なら同期がとれたものとしてプロセッサに同期終了
情報を発行し、汎用性を損わない範囲で上記同期処理を
ハードウエア化したものが同期処理回路である。
In order to execute parallel processing with high efficiency without inconsistency 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. At the end of the task processing, the processor sets the set bit string (word data) as task end information in the synchronization register and executes a task end process for activating the task end line, and the information is input to the determination means. It monitors whether all processors corresponding to each bit of the set synchronization register have completed the task termination processing by checking with the corresponding task termination line of each processor, and all are true (the task has been terminated). If it is, it issues synchronization end information to the processor Those hardware the above synchronization processing is not jeopardized a is synchronous processing circuit.

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

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

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

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

【0021】更に、同期用レジスタへの値のセットのみ
を各プロセッサのソフトウエアにより行い、それ以外は
すべてハードウエアによって行うとすれば、プログラマ
ブル(汎用性を有する)で、かつソフトウエア・オーバ
ーヘッドが1マシン命令程度と小さなプロセッサ間の同
期をとることができる。
Furthermore, assuming that only the value of the synchronization register is set by the software of each processor, and that all other settings are performed by hardware, it is programmable (has versatility) and software overhead is increased. Synchronization between processors as small as about one machine instruction can be achieved.

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

【0023】ソフトウェア内に同期処理命令を配置する
コントロールフローと、前述したデータ共有回路へのア
クセス条件を利用したハードウェアによるデータフロー
的自動チューニングを組み合わせることにより、プロセ
ッサの遊び時間をより極小化でき、それにより並列処理
時の遊び時間の短縮を実現できる
By combining the control flow for arranging synchronous processing instructions in the software and the automatic tuning of the data flow by hardware utilizing the access condition to the data sharing circuit, the idle time of the processor can be further minimized. , Thereby reducing 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,…)上に次のタスク処理で利用す
る他のプロセッサからの必要な結果データが完全には出
そろっていないとみなす。したがって、次の条件が成立
すれば、従来どおり矛盾なくプロセッサ間で同期をとり
ながら並列処理を進めていくことができる。
The present invention provides 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,...), Providing and holding shared data necessary for exchanging necessary data between processors 1 n (n = 0, 1, 2,...) In each processing unit. Data sharing circuit CS on system bus 120 for performing
YS102 or a local data sharing circuit CS existing in each processing unit while maintaining data coherency
YS51n (n = 0, 1, 2,...). The synchronization processing circuit 101 receives a synchronization request Sln (n = θ, 1, 2,...) From the processor 1n in each processing unit at a corresponding input SYNCnREQ, and when all or some of them are activated, , The synchronization check signal TESTn to the processor to be notified is activated.
The active synchronization check signal TESTn is transmitted from the test signal line Tln to the signal control circuit 50n and the processor 1 in the processing unit 100n as synchronization end information.
n TEST inputs. The processor 1n has T
The state of the EST input is checked by hardware or software, and it is determined whether or not synchronization has been achieved between the processors executing the related processing. The basic function of the synchronization processing circuit is that when the synchronization processing circuit 101 receives the synchronization request Sln from the processor 1n, the output of the TESTn is returned to inactive once, and all the synchronization requests Sl from the processors that need to 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. 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 ends.
Is output. In response, data sharing circuits 102 and 51 until the corresponding TESTn output turns active.
It is assumed that necessary result data from another processor used in the next task processing is not completely available on n (n = θ, 1, 2,...). Therefore, if the following condition is satisfied, parallel processing can be performed while maintaining synchronization between processors as in the past, without contradiction.

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

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

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

【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 control signals 19n including address signals from the processor 1n, decodes them, generates an access request signal 13n for accessing the shared system CSYS 51n and the data shared circuit bus 112, and generates a data sharing circuit and data sharing. This is sent to an arbitration circuit DC103 which determines which processor is to be given access to the circuit bus 120. The arbitration circuit DC103 receives a plurality of access request signals 13n (n = 1, 2,...) Sent from a plurality of processing units, selects one of them, and selects an access permission signal l3n.
4n (n = θ, 1, 2,...) Has a function of activating an access permission signal corresponding to a processing unit selected. When the access permission signal 14n becomes active, the signal control circuit 50n turns on the output buffer 52n.
Then, an address signal, a control signal, and an information signal are output to the data sharing circuit bus 120 via the bus line 15n in the case of a write process. In the case of a read process, data on the data sharing circuit bus is written to the local data sharing circuit CSYS 51n via the bus line 15n and the input buffer 53n,
The processor 1n directly reads the data via the n. The information of the local data sharing circuit CSYS51n is transferred to the processor 1
When n is read, the data is read via the bus line 17n. Each local data sharing circuit CSYS 51n (n = θ, 1, 2,...) In each processing unit 100n (n = θ, 1, 2,...)
Must always keep the same content. Therefore, at the time of read processing from processor 1n, local data sharing circuit CSYS 51 is independent of other processors.
n can be accessed like a local memory, but at the time of write processing, the local data sharing circuits CSYS 51n (n = n) in all the processing units (n = 1, 2, 3,...) via 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 independently executed in each processing unit
An access conflict with the read process from the YS 51n occurs. In this case, conflict control is performed in the signal control circuit 50n so that the access can be performed without contradiction.

【0031】図2は、信号制御回路50nの実施例を示
している。デコーダ200はプロセッサ1nからのアド
レス線や制御線l9nをデコードして、データ共有回路
CSYS51n及び102をプロセッサ1nがアクセス
する場合のアクセス要求に対する制御信号、イネーブル
信号等を生成する。アービトレーション回路103への
データ共有回路バスアクセス要求信号CSREQ(Lo
アクティブ)l3nは、デコーダ200からデータ共有
回路イネーブル信号CSEN(Loアクティブ)213
と同期処理回路からの同期終了情報SYNCOK(Lo
アクティブ)TlnとのOR理論をとることにより生成
する。アービトレーション回路103からのアクノリッ
ヂ信号l4nは、前記CSREQ信号l3nに対するア
ービトレーション回路103からの直接の返答であるC
SACK信号(Loレベルのときアクセス要求が受け付
けられた)209と、共通システムCSYS51n(n
=θ,1,2,…)がいずれかの処理ユニットの書き込
み処理に占有されていることを示すCSBUSY信号
(Loアクティブ)から成る。RDYACK信号(Hi
アクティブ)206は、CSBUSY信号210がアク
ティブの場合、非アクティブ(Loレベル)になる様に
コントロールされ、プロセッサ1nが自身のデータ共有
回路CSYS51nからデータを読み出そうとした場
合、データ共有回路CSYS51nへの他の処理ユニッ
トからの書き込み処理とアクセス競合を生じない様にな
っている。すなわち、CSYS51nへの書き込み処理
が存在する場合NANDゲート208が非アクティブ
(Hiレベル)になり、CSYS51nへの読み出しイ
ネーブル信号CSRD(Loアクティブ)を非アクティ
ブにする。例えば、データ共有回路102にアクセスす
るため、デコーダ200はCSEN213をアクティブ
にしたとする。その時、SYNCOKTlnが非アクテ
ィブであるとすると、CSREQl3nは、ORゲート
212により、 SYNCOKTlnが非アクティブ
のうちはアクティブにならず、したがって、CSACK
信号209も非アクティブであり、CSACK信号20
9も非アクティブのままである。これにより、CSAC
K209とCSREQl3nを受けるNORゲート20
2はLoレベルに固定される。デコーダ200は、NO
Rゲート202の出力がHiレベルに転じるまでCSE
N213をLoレベルに固定しつづける。また、同様
に、出力バッファ52nの出力をコントロールするBF
ON信号l2nもNORゲート202の出力を受け、非
アクティブ(Hiレベル)のままであり、データ共有回
路バスl20へのアクセスはSYNCOKTlnがアク
ティブになるまで待たされる。プロセッサ1nを一時停
止する機能はREADY信号(Loアクティブ)l1n
を非アクティブに保ち、プロセッサ1nのバスサイクル
を終了させないことによって実現する。READY信号
l1nは、ANDゲート211により、CSRDl8n
か又はBFONl2nのいずれかがアクティブになった
時、アクティブに転じ、プロセッサを次の処理に進め
る。これを局所同期機能と呼ぶ。同様に、供給システム
CSYS51nをアクセスするための信号CSRDl8
nも、SYNCOKTlnをインバータ207でHiア
クティブに変換してNANDゲートに入力しており、S
YNCOKTlnが非アクティブのうちは、CSRDl
8n及びREADYl1nを非アクティブにすることに
より、データ共有回路CSYS51nへのアクセスを一
時停止する様にしている。
FIG. 2 shows an embodiment of the signal control circuit 50n . The decoder 200 decodes an address line and a control line 19n from the processor 1n, and generates a control signal, an enable signal, and the like for an access request when the processor 1n accesses the data sharing circuits CSYS 51n and 102. Data sharing circuit bus access request signal CSREQ (Lo to arbitration circuit 103)
Active) 13 n is supplied from the decoder 200 to the data sharing circuit enable signal CSEN (Lo active) 213.
And synchronization end information SYNCOK (Lo) from the synchronization processing circuit
Active) It is generated by taking the OR theory with Tln. The acknowledge signal 14n from the arbitration circuit 103 is a direct response from the arbitration circuit 103 to the CSREQ signal 13n.
A SACK signal (an access request has been accepted at the time of Lo level) 209 and a common system CSYS 51n (n
= Θ, 1, 2,...) Is occupied by the write processing of any of the processing units. RDYACK signal (Hi
The active (active) 206 is controlled to become inactive (Lo level) when the CSBUSY signal 210 is active, and to the data sharing circuit CSYS 51n when the processor 1n attempts to read data from its own data sharing circuit CSYS 51n. This prevents access conflicts with write processing from other processing units. That is, when there is a write process to the CSYS 51n, the NAND gate 208 becomes inactive (High level), and makes the read enable signal CSRD (Lo active) to the CSYS 51n inactive. For example, it is assumed that the decoder 200 activates the CSEN 213 to access the data sharing circuit 102. At that time, assuming that SYNCOKTln is inactive, CSREQ13n will not be activated by OR gate 212 while SYNCOKTln is inactive, and therefore CSACK
Signal 209 is also inactive and CSACK signal 20
9 also remains inactive. Thereby, CSAC
NOR gate 20 receiving K209 and CSREQ13n
2 is fixed to the Lo level. The decoder 200
CSE until the output of the R gate 202 changes to Hi level
N213 is kept fixed at Lo level. Similarly, the BF controlling the output of the output buffer 52n
The ON signal 12n also receives the output of the NOR gate 202 and remains inactive (High level), and the access to the data sharing circuit bus 120 waits until SYNCOKTln becomes active. The function of temporarily stopping the processor 1n is a READY signal (Lo active) 11n
Is kept inactive and the bus cycle of the processor 1n is not terminated. The READY signal 11n is supplied to the CSRD 18n by the AND gate 211.
Or BFONl2n becomes active when it becomes active and causes the processor to proceed to the next process. This is called a local synchronization function. Similarly, a signal CSRD18 for accessing the supply system CSYS51n
n also converts SYNCOKTln to Hi active by the inverter 207 and inputs it to the NAND gate.
While YNCOKTln is inactive, CSRDl
By making 8n and READY11n 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. NAND gates UAθ-UAn... Receive the corresponding Q outputs of flip-flops UCθ-UCn... And the corresponding Q outputs of flip-flops UBθ-UBn. , The output of the multi-input NAND gate receiving these outputs becomes Lo level. Philip Flop UC
When Q of θ to UCn is a Hi level, the corresponding NA
The Q outputs of the flip-flops UBθ to UBn input to the ND gates UCθ to UCn become effective. In this example, the validity of the Q output of UBθ to UBn.
The processor 1θ performs the operation of determining invalidity. That is, if the synchronization request Sln (n = θ, 1, 2,...) From the corresponding processor 1 n (n = θ, 1, 2,...) Is ignored for the flip-flops UC θ to UC n. , And corresponding SlDθ to SlDn.
.. UCn... Are set to Lo level (θ) by generating a trigger signal at Slθ. Each processor 1n
(N = θ, 1, 2,...)
By generating a trigger signal at lθ ~ Sln ...
The Lo level of the Q output is set, the Hi level is set for the Q output, and the synchronization end information Tlθ to Tln. The corresponding NAND gates UA whose Q outputs of UCθ to UCn are set to Hi level (1)
The outputs of θ to UAn turn to the Hi level for the first time. All the Q outputs of UBθ to UBn are set to L when the Q outputs of UCθ to UCn are set to the Hi level.
Only after being set to the o level, the output of the multi-input NAND gate UDθ transitions from the Hi level to the Lo level.
By the output of the Lo level of UDθ, the flip-flops UBθ to UBn are preset, and the Q output is H
Return to i-level. On the other hand, the Q outputs of UBθ to UBn return to the Lo level, and the active synchronization end information Tlθ to
Tln... Correspond to a corresponding processor 1n (n = θ, 1,
2, ...).

【0033】もし、すべてのプロセッサを同期処理に参
加させたければ、UCθ〜UCn……のQ出力をすべて
Hiレベルにセットすれば良い。これを一斉同期モード
と呼ぶ。一斉同期モードしか用いないならば、フィリッ
プフロップUCθ〜UCn……は必要なく、UBθ〜U
Bn……のQ出力をインバータで論理反転し、多入力N
ANDゲートUDθに直接入力すれば良い。
If it is desired that all the processors participate in the synchronization processing, all the Q outputs of UCθ to UCn... This is called a simultaneous synchronization mode. If only the synchronous mode is used, the flip-flops UCθ to UCn are not required, and UBθ to U
The Q output of Bn...
What is necessary is just to input directly 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. In the embodiment,
The processor system is assumed to be composed of m processors, and FIG. 1 shows typical processors 1n and 1n + 1. Each processor is provided with inter-processor synchronization processing circuits 2n and 2n + 1. 2n, 2n
+1 is equivalent to the circuit portion 101A in the synchronization processing circuit shown in FIG. Information communication between the synchronization circuits 2n and 2n + 1 is performed by a signal line 8. According to the present invention, a processor that executes a related task can arbitrarily form a group, and can perform processing while synchronizing within the group. Circuit 2 for inter-processor synchronization described above
n and 2n + 1 correspond to the respective processors, and are triggered by a synchronization register 5 for storing information corresponding to a group name and a timing at which a value is set in the synchronization register 5 or a timing thereafter. The state of the flip-flop is compared with the signal line for broadcasting to each processor and the broadcast information is compared with the contents of the synchronization register 5, and it is checked whether or not all the states of the processors in the group registered therein are true. A judgment circuit 6 to perform
And a signal circuit for notifying the processor of the check result. Reference numeral 4 denotes an access signal signal line, 8 denotes a task end signal line, 9 denotes a status line, and 10 denotes a trigger signal line. The synchronization register 5 corresponds to the flip-flops UCθ to UCn... In the circuit shown at 101A in FIG. In this embodiment, since each processor 1n has a synchronization register 5 corresponding to each processor 1n, each processor can independently select a processor to be subjected to synchronization processing (in the example of FIG. 3, only the processor 1θ has the right to select). Having). In the present embodiment, a configuration is adopted in which synchronization processing circuits are provided in a distributed manner corresponding to each processor, and the distributed synchronization processing circuits 2n (n = θ, 1,... The necessary data is transmitted and received via line 8. Therefore, the synchronous processing circuit 1n shown in FIG. 1 includes all of the synchronous processing circuit 2n (n = θ, 1,... N) and the signal line 8.
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, a synchronous operation sequence in a group of processors will be described. It is assumed that, for example, processors 1n and 1n + 1 among the processors 10 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 stored in the synchronization register 5.
(SlDθ to SlDn to SlDm), the nth and (n + 1) th bits are set to “1”, and the other bits are set to “0”.
Is written (this indicates a group of processors). At the time of 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 by the status line 9.
Is input to the TEST input of the
Processing is suspended until the T input changes to the 0 level. The value set in the synchronization register 5 and the value of the signal line 8 are:
The signals are taken into the judgment circuit 6 while maintaining the correspondence of 0 to m, and the NAND-NAND gate (UAθ of 101A)
To UAn... And UDθ), the value of the task end signal line 8 corresponding to the bit in which 1 is set in the synchronization register 5 becomes 0 level, that is, in this example, the task end signal line 8 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 Trigger signal 10 also changes to one level. At the same time, the status signal at the terminal Q changes to the 0 level, and the TEST input of the processor 1n also changes to the 0 level, so that the processor 1n restarts the processing. Since the same operation is performed in the processor 1n + 1, in this example, as a result, the processors 1n and 1n + 1 are synchronized with each other 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 writing a value to the synchronization register 5, and is about one machine instruction at a machine language level. All other processing is performed by hardware, so that the overhead required for the synchronization processing under the condition of being programmable is minimized. Further, according to the present invention, it is possible to group processors by related ones only by using one set of the synchronization processing circuit 101, and the synchronization processing is performed between the processors belonging to each 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 multiplex the synchronization processing between groups and the like. The processor grouping and the multiple synchronization provide flexibility in parallel processing, and high-efficiency 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, 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 from processor a to processor d are controlled by the synchronization processing circuit 101 of the present invention in parallel processing progress from the upper part to the lower part in the figure as time elapses. 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. Processors that execute related tasks can form a group. In this case, the processor a and the processor b form a group 11, and the processor c and the processor d form a group 12.
The solid arrows connecting the tasks indicate the processing flow and data flow between the same processors, and the dashed-dotted arrows indicate the data flow between tasks executed by other processors in the group, that is, between the processors in the group. Is shown. At times t 1 and t 2 , it becomes necessary to communicate within each of the two groups.
After the synchronization processing has been performed by 01, the processing data is exchanged between the processors. Thereafter, the groups of the processors a and b shift to the processing of the tasks 5 and 6, respectively, and the groups of the processors c and d shift to the processing of the tasks 7 and 8, respectively. As described above, the synchronization processing by the inter-processor synchronization processing circuit 101 illustrated in FIG. 4 indicates which processor and group have been configured to execute the task processing up to that time. In addition, since data exchange does not occur between groups due to grouping, it is possible to proceed independently of each group, and flexible parallel processing progress control realizes efficient parallel processing It is possible. Thereafter, the groups 13 and 14 are referred to as the groups 12 and 13
Constitute a group with the same processor comrades are performed task processing, communication between the synchronization process is performed the process in the same time t 3 and t 4 are made with. At time t 5, all tasks 9-12 relevant occurs, since the independence between groups is exhausted, once after the synchronization processing in the group, is performed again synchronization by the processor synchronizing processing circuit 101 of another system And have all processors synchronized. That is, the inter-processor synchronization processing circuit 10 of another system
It can be considered that the synchronization processing between groups has been performed by 1 and, as a result, the group 15 is a group to which all processors belong. Then, related task 1
Processors a through c that process 3 through 15 are group 16
The processor d to perform independent tasks 16 alone group 17 constitute respectively, reorganize the group, and then execute the parallel processing while performing synchronization processing in the following likewise time t 6 and t 7, etc. . When a plurality of sets of the synchronization processing circuits 101 are prepared and multiplex synchronization processing is performed as described above, 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 specific effect obtained when the inter-processor synchronization processing device shown in FIG. 1 is constructed using the synchronization processing circuit of the present invention shown in FIG. 4 is a minimum unit constituting a task. An example is shown in the figure, decomposed and analyzed to the instruction level of the processor. FIG. 6a shows a case where the synchronization process between processors is performed without relying on the local synchronization method and depending only on the synchronization end information Tln, which can be said to be a conventional type. 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 synchronization 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 within the group.

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

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

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

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

【0044】6)各プロセッサPl、Pm、Pnは、イ
ンストラクションSを実行して、アクティブなタスク終
了情報を同期処理回路に送出した後、新たな共有システ
ムへのアクセス命令(ICD)が現われるまで先行して
次のレベルのタスク処理を進めていく。
6) Each of the processors Pl, Pm, and Pn executes the instruction S and sends active task end information to the synchronous processing circuit, and then proceeds until a new access command (ICD) to the 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 next level task processing is advanced in advance under the condition of 6), each processor P1, Pm,
If the synchronization end information from the synchronization processing circuit 101 at the previous level is not yet active at the time when the access processing ICD to the shared system is first executed, the external bus generated by the ICD is generated. The Ready signal 19 for the cycle is not returned to the processor until the synchronization end information becomes active. That is, the external bus cycle generated by the ICD is forcibly suspended (the bus cycle is not terminated) until the synchronization end information changes to active. The instruction I on the instruction queue or the instruction cache can be processed further ahead if it can be executed. The synchronization processing based on the combination of the instruction ICD and the synchronization end information is referred to as 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 a point in time when active synchronization processing information is returned from the synchronization processing circuit, that is, a point in time when synchronization at level k has been achieved. In FIG. 6, the processors Pl and Pm are used in the latter half of the level k-1.
In the latter half of the level k, idle time occurs in the processors Pl and Pn, and the processors are at rest. In FIG. 6, since each processor can proceed with the processing until the instruction ICD appears, the level k-1 except that the processor Pm has a slight idle time in the latter half of the level k-1. , At level k, there is no idle time. Assuming that the start is M and the end is N, FIG.
6, Pl is tl, Pm is tm, and Pn is tn in the lower part of FIG. In the processor that executes the critical path of the parallel processing, the level k-1 is Pn, the level k is Pm, and the level k + 1 is Pl in the upper part of FIG. Both k and k + 1 are Pn, indicating that the critical path itself has changed. This is because each processor pre-processes task processing across levels, and the actual task processing time itself has dynamically changed, so that the critical path has also changed. As a result, assuming that the start time of the process is M and the end time is N, the processing time in the lower part of FIG. 6 is shorter than that in the upper part of FIG. This is a calculation in which the processing capacity is improved by about 21%, and indicates that the processing capacity can be greatly 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 indicate the positions of the instructions S for synchronizing P1, Pm, and Pn at the level k-1, respectively. D,
Points E and F are instruction ICDs with shared system access that are executed for the first time among tasks executed at the level k. Similarly, G, H, and I indicate the position of S at level k, and J, K, and L indicate the position of the first appearing ICD in the task executed at level k + 1.

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

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

【0051】図7は本発明の他の実施例の同期処理回路
の構成を示すブロック図である。信号線4aは、タスク
終了情報を出力するフリップフロップをトリガするため
の信号、信号線4bは、同期用レジスタ5にグループを
登録するためのトリガ信号である。信号線4cについて
は後述する。
FIG. 7 is a block diagram showing a configuration 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,...) Sends a corresponding synchronous processing element n (n = 0, 1,...) S
A total of eight instructions of YNCO to SYNC7 are commanded. 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 (registering a group in the synchronization register 5 indicates which processor constitutes the group) E
O: End out (Activates task end information and outputs it to task processing end signal line 8 to indicate that the task has ended.) W: Wait (tasks of all processors belonging to the group have ended, Put the corresponding processor in the wait state until the synchronization process is completed.
This is a function for finally confirming whether or not the processing has been completed.) The following composite instructions are provided so that one machine instruction can be executed by combining the above basic functions.

【0055】GSEOW……グループセッティング(G
S)→エンドアウト(EO)→ウェイト(W)の順で各
機能を連続処理し、一連の同期処理を1マシン命令で実
現する。
GSEOW: Group setting (G
Each function is sequentially 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
Each function is sequentially processed in the order of S) → end out (EO).

【0057】EOW…………エンドアウト(EO)→ウ
ェイト(W)の順で各機能を連続処理する。以前にGS
機能によってセットされたグループに対し、 一連の
同期処理を1マシン命令で実現する。
EOW: Each function is continuously processed in the order of end out (EO) → weight (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 composite instructions are provided to further speed up and simplify the processing on the processor side.

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

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

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

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

【0063】本図を用いて従来のコントロールフローと
比較しながら、その使用法及び効果を説明する。
The use and effects 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 the GSE which is an intra-group synchronization instruction.
FIG. 9 shows a conventional parallel processing control by the synchronous processing performed using only the OW or the EOW and using the synchronous processing circuit shown in FIG. Processor m and processor n form a group. As described above, each processor declares that the processors m and n belong to the group when the 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 then proceed to the next task so that the parallel processing is performed without contradiction. Proceed with the process.

【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 (output of only the task end information) and a W instruction (confirming that all the task end information in the group have been obtained). The shared system CSYS described
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 synchronization instruction from software). At the stage where the parallel processing is performed, the compiler inserts appropriate synchronization instructions of SYNCO to SYNC 7 shown in FIG. The conditions for properly using SYNCO-7 are as follows.

【0066】(1)あるプロセッサのタスクの終了時
に、同レベルで実行を終了する他のプロセッサで実行さ
れたタスクから、次にプロセッサが実行すべきタスクへ
のリレーション(図9、図10において矢印で示してい
る)が存在しない場合、タスク終了情報を出力するだけ
の命令であるEOを挿入する。すなわち、図9、図10
の例ではタスク3の終了時及びタスク4の終了時点がこ
の条件にあてはまる。プロセッサの動作レベルで説明す
れば、あるプロセッサが、あるタスクを終了して次のタ
スクに処理を進める際、同レベルで実行された他のプロ
セッサからの情報を必要としなければEO命令を実行し
て、次のタスクへ無条件で処理を進めることができると
いう事を意味する。
(1) At the end of a task of a certain processor, a 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 (arrows in FIGS. 9 and 10) Is not present, EO, which is an instruction only to output task end information, is inserted. That is, FIGS.
In this 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 the processor, when a certain processor finishes a certain task and proceeds with processing to the next task, it executes an EO instruction unless information from another processor executed at the same level is required. Means that processing 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 has shifted to the currently executing task process,
At the end of the task, when the next task to be executed has a relationship with a task executed by another processor that terminates execution at the same level, E executed at the previous level
The W instruction is executed as a synchronization check instruction corresponding to the O instruction, and it is confirmed whether the synchronization processing of the previous level has been completed. Then, the synchronization processing of the current synchronization level (for example, GSEOW)
Or EOW), and proceeds to the next task. That is, in the examples of FIGS. 9 and 10, the end point of task 5 satisfies this condition. In the program, W and EOW may be arranged in this order at the end of the task 5. The synchronization level here corresponds to the SYNC levels 1 to 3 in FIGS. 9 and 10, and indicates 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 the GSEOW has a function (GS) for specifying a processor belonging to a group, whereas the EOW does not have the function. Therefore, when EOW is specified, the processor group configuration set by the previous GS function is used as a default value as it is.

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

【0069】(a)タスク0、タスク2、タスク4、タ
スク6はこの順でプロセッサmにより実行するとする。
タスク1、タスク3、タスク5、タスク7はこの順でプ
ロセッサnにより実行するとする。また、本例では、各
タスク間に図中矢印で示したリレーションを有するとす
る。
(A) Task 0, task 2, task 4, and 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. In this example, it is assumed that there is a relation between the tasks indicated by arrows in the figure.

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

【0071】(c)SYNCレベル2においては、タス
ク4はタスク2とタスク3の処理結果を使用し、タスク
5はタスク3の結果しか使用しない。ただし、グループ
の変更はない。したがって、プロセッサmはEOW命令
によりタスク終了情報の出力から同期完了チェックまで
の一連の同期処理を実行し、プロセッサnはEO命令を
実行して、同期チェック(W)を行わずに連続して次の
処理に進む。
(C) At 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, there is no change in the group. Accordingly, 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 performs the next synchronization without performing the synchronization check (W). Proceed 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) At SYNC level 3, task 6 requires only the processing result of task 4 and task 7 requires both the processing results of task 4 and task 5. Therefore, the processor m executes the EO instruction and proceeds to the next processor continuously 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
And then execute an EOW instruction to execute SY
After executing a series of synchronization processes of NC level 3 (that is, after confirming that task 4 is completed), the process proceeds 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 completely eliminated in FIG.

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

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

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

【0076】本発明によれば、複数のタスクを分担して
並列処理する複数のプロセッサと、そのプロセッサ間で
やりとりするデータを共有するデータ共有回路と、複数
のプロセッサ間の同期をとる同期処理回路とを備え、該
同期処理回路は前記各プロセッサからの同期情報を得
て、それらの同期情報の組み合わせが、対応するプロセ
ッサから予め与えられた条件又は前記同期情報と共に該
同期処理回路に与えられた条件と一致したときに、該対
応するプロセッサに関して同期完了信号を生成する手段
と、前記各プロセッサが前記データ共有回路にアクセス
したときに、当該プロセッサに関する同期完了信号が生
成されていなければ、同期完了信号が生成されるまで当
該プロセッサの前記データ共有回路へのアクセスを一時
的に禁止して当該プロセッサのアクセスを待たせる局所
同期回路手段とを有することにより、タスク処理が終了
していて、かつ同期処理が終了していない場合、プロセ
ッサは次のタスクで共有データが必要となるまでの間で
きるだけ次のタスク処理を、先行してタスク処理を進め
て行くことができるので、空処理時間を減少させる効果
が得られる。
According to the present invention, a plurality of processors for sharing a plurality of tasks and performing parallel processing, a data sharing circuit for sharing data exchanged between the processors, and a synchronization processing circuit for synchronizing the plurality of processors equipped with a door, the
The synchronization processing circuit obtains synchronization information from each processor.
The combination of those synchronization information
Together with the condition given in advance from the
When the condition given to the synchronous processing circuit matches, the pair
Means for generating a synchronization completion signal for a corresponding processor
And each processor accesses the data sharing circuit.
A synchronization complete signal for that processor is generated.
If not, wait until the synchronization complete signal is generated.
Temporary access to the data sharing circuit of the processor.
Locally forbidden and wait for access of the processor
When the task processing is completed and the synchronization processing is not completed, the processor performs the next task processing as much as possible until the next task requires shared data by having the synchronization circuit means. As a result, the task processing can be advanced, so that the effect of reducing the idle processing time can be obtained.

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

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

【図面の簡単な説明】[Brief description of the 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. 1;

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

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

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

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

【図8】本発明の他の実施例の同期処理命令の内容を示
す。
FIG. 8 shows the contents of a synchronous 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 synchronous 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 synchronous 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 アービトレーション回路 Reference Signs List 1 Processor constituting multiprocessor 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 121 arbitration line 50n signal control circuit 51n local shared system 100n processing unit 101 synchronization processing circuit 102 shared system 103 arbitration circuit

フロントページの続き (56)参考文献 特開 平2−105961(JP,A) 1.ASPLOS−▲III▼ SI GPLAN Notices 24 Sp ecial Issue May 1989 p54−63 Rajiv Gupta 「The Fuzzy Barrie r:A Mechanism for High Speed Synchro nization of Proces sors」 (58)調査した分野(Int.Cl.7,DB名) G06F 15/177 680 G06F 9/46 360 INSPEC(DIALOG) JICSTファイル(JOIS)Continuation of front page (56) References JP-A-2-105961 (JP, A) ASPLOS- ▲ III ▼ SI GPLAN Notices 24 Sp ecial Issue May 1989 p54-63 Rajiv Gupta , "The Fuzzy Barrie r: A Mechanism for High Speed Synchro nization of Proces sors " (58) investigated the field (Int.Cl. 7, DB Name) G06F 15/177 680 G06F 9/46 360 INSPEC (DIALOG) JICST file (JOIS)

Claims (8)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 複数のタスクを分担して並列処理する複
数個のプロセッサと、該複数個のプロセッサ間でやりと
りするデータを共有するデータ共有回路と、前記複数個
のプロセッサ間の同期をとる同期処理回路とを備え、該
同期処理回路は前記各プロセッサからの同期情報を得
て、それらの同期情報の組み合わせが、対応するプロセ
ッサから予め与えられた条件又は前記同期情報と共に該
同期処理回路に与えられる条件と一致したときに、該対
応するプロセッサに関して同期完了信号を生成する手段
と、前記各プロセッサが前記データ共有回路にアクセス
したときに、当該プロセッサに関する同期完了信号が生
成されていなければ、同期完了信号が生成されるまで当
該プロセッサの前記データ共有回路へのアクセスを一時
的に禁止して当該プロセッサのアクセスを待たせる局所
同期回路手段とを有することを特徴とするプロセッサ間
の同期処理装置。
1. A plurality of processors for sharing a plurality of tasks and performing parallel processing, a data sharing circuit for sharing data exchanged between the plurality of processors, and a synchronization for synchronizing the plurality of processors. and a processing circuit, said
The synchronization processing circuit obtains synchronization information from each processor.
The combination of those synchronization information
Together with the condition given in advance from the
When the condition given to the synchronous processing circuit matches, the pair
Means for generating a synchronization completion signal for a corresponding processor
And each processor accesses the data sharing circuit.
A synchronization complete signal for that processor is generated.
If not, wait until the synchronization complete signal is generated.
Temporary access to the data sharing circuit of the processor.
Locally forbidden and wait for access of the processor
A synchronous processing device between processors , comprising: synchronous circuit means .
【請求項2】 前記同期処理回路は、タスクを終了した
プロセッサが出力するタスク終了情報を入力し、関連す
るタスクを処理するいくつかのプロセッサが出力する前
記タスク終了情報が全てアクティブに変化した後にその
タスク終了情報から同期させるべきプロセッサがタスク
処理を終了したことを示す同期終了情報を対応するプロ
セッサに対してアクティブな値を出力し、局所同期化回
路は、そのタスク終了情報を出力したプロセッサが前記
データ共有回路へアクセスする時に対応する前記同期終
了情報が前記同期処理回路からアクティブな値として出
力されていないならば、アクセスを禁止し前記プロセッ
サの動作を休止することを特徴とする請求項1に記載の
プロセッサ間の同期処理装置。
2. The synchronization processing circuit inputs task end information output by a processor that has completed a task, and after the task end information output by some processors that process related tasks has all changed to active. Based on the task end information, the processor to be synchronized outputs synchronization end information indicating that the task processing has ended to the corresponding processor, and outputs an active value to the corresponding processor. 2. The method according to claim 1, wherein when 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, the access is inhibited and the operation of the processor is suspended. Synchronous processing device between processors according to claim 1.
【請求項3】 前記同期処理回路は、並列処理を実施す
る際に関連するタスクを処理するプロセッサ同士でグル
ープを形成し、該グループ内の前記プロセッサ間、或い
は該グループ間で同期をとる同期手段を備えたことを特
徴とする請求項1に記載のプロセッサ間の同期処理装
置。
3. The synchronization means for forming a group of processors for processing related tasks when performing parallel processing, and for synchronizing 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 synchronizing means is triggered by a synchronizing register for storing information corresponding to the names of respective processors constituting a group output by one processor in the group, and an access to the synchronizing register. A flip-flop, a first transmission circuit for transmitting the state of the flip-flop to another processor, and comparing the transmitted state of the flip-flop with the content stored in the synchronization register to obtain the synchronization register. A determination circuit for determining whether each processor in the group is active or not, and transmitting a determination result output from the determination circuit to one processor in the group via the flip-flop. The synchronous processing device between processors according to claim 3, further comprising: a transmission circuit.
【請求項5】 前記同期手段は、前記グループ内の1つ
のプロセッサが出力するグループを構成するそれぞれの
プロセッサ名に相当する情報を記憶する同期用レジスタ
と、該同期用レジスタへのアクセスによりトリガされる
フィリップ・フロップと、前記フィリップ・フロップが
タスク終了情報を出力するためのトリガ信号をプロセッ
サから前記フィリップ・フロップへ出力する第1の信号
伝送手段と、前記同期用レジスタがプロセッサのグルー
プを記憶するためのトリガ信号をプロセッサから前記同
期用レジスタへ出力する第2の信号伝送手段と、前記同
期用レジスタの値が全プロセッサはグループに属すると
みなすようにセットするアクティブな信号をプロセッサ
から前記同期用レジスタへ出力する第3の信号伝送手段
とを備えたことを特徴とする請求項3に記載のプロセッ
サ間の同期処理装置。
5. The synchronizing means is triggered by a synchronizing register for storing information corresponding to the names of respective processors constituting a group output by one processor in the group, and an access to the synchronizing register. First flop, first signal transmission means for outputting a trigger signal for the flip-flop to output task completion information from the processor to the flip-flop, and the synchronization register stores a group of processors. Signal transmitting means for outputting a trigger signal from the processor to the synchronization register, and an active signal from the processor for setting the value of the synchronization register so that all processors belong to the group. And third signal transmission means for outputting to the register. 4. The synchronous processing device between processors according to claim 3, wherein:
【請求項6】 複数のプロセッサ間の同期処理を行い、
並列処理を矛盾なく制御するプロセッサ間の同期処理装
置において、前記各プロセッサに対応してそれぞれのプ
ロセッサがタスクを終了した時点でアクティブなタスク
終了情報を出力する手段と、同期をとるべきプロセッサ
からのタスク終了情報がすべてアクティブになったとき
とその情報を用いて各プロセッサに対応した前記アクテ
ィブなタスク終了情報を非アクティブにする手段と、前
記タスク終了情報をプロセッサがチェックし同期処理が
終了したことを確認する手段とを有しており、前記アク
ティブなタスク終了情報の出力を指示するEO命令と、
前記同期処理が終了したことを確認するW命令とを各プ
ロセッサが発行し得ることを特徴とするプロセッサ間の
同期処理装置。
6. A synchronous process between a plurality of processors,
In a synchronous processing device between processors for controlling parallel processing without inconsistency, means for outputting active task end information when each processor ends a task corresponding to each processor, and Means for deactivating the active task end information corresponding to each processor when all the task end information becomes active and using the information, and that the processor checks the task end information and ends the synchronization processing. It has a means for confirming the action
An EO instruction instructing the output of active task end information;
A W instruction for confirming that the synchronization process has been completed is issued to each program.
A synchronous processing device between processors, which can be issued by a processor.
【請求項7】 1つのプロセッサのタスクの終了時に、
同レベルで実行を終了する他のプロセッサで実行された
タスクから、次にプロセッサが実行すべきタスクへのリ
レーションが存在しない場合、前記EO命令を挿入し、
前記プロセッサが、あるタスクを終了して次のタスクに
処理を進める際、同レベルで実行された他のプロセッサ
からの情報を必要としなければ前記EO命令を実行し
て、次のタスクへ無条件で処理を進める手段を有するこ
とを特徴とする請求項に記載のプロセッサ間の同期処
理装置。
7. At the end of one processor task,
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, the EO instruction is inserted;
When the processor finishes one task and proceeds to the next task, if the processor does not need information from another processor executed at the same level, the processor executes the EO instruction and unconditionally proceeds to the next task. 7. The synchronous processing device between processors according to claim 6 , further comprising: means for proceeding with the process.
【請求項8】 1つ前の同期レベルで前記EO命令を実
行して現在実行中のタスク処理に移ったプロセッサは、
そのタスクの終了時点で次に実行すべきタスクが同レベ
ルで実行を終了する他のプロセッサで実行されたタスク
とのリレーションを有するとき、前レベルで実行した前
記EO命令に対応する同期チェック命令としてW命令を
実行して、前レベルの同期処理が終了したかを確認し、
その後、現在の同期レベルの同期処理を行い、次のタス
クへ処理を進める手段を有することを特徴とする請求項
に記載のプロセッサ間の同期処理装置。
8. The processor which executes the EO instruction at the immediately preceding synchronization level and shifts to the currently executing task processing,
When a task to be executed next at the end of the task has a relation with a task executed by another processor which terminates execution at the same level, as a synchronization check instruction corresponding to the EO instruction executed at the previous level, Execute the W instruction to check whether the previous level of synchronization has been completed,
Then, means for performing a synchronization process of a current synchronization level and proceeding to a next task is provided.
8. A synchronization processing device between processors according to claim 7 .
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 JPH052568A (en) 1993-01-08
JP3008223B2 true 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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102665832B (en) * 2009-10-28 2015-11-25 纽吉工业股份有限公司 Ping-pong robot and method of operating thereof

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3661235B2 (en) * 1995-08-28 2005-06-15 株式会社日立製作所 Shared memory system, parallel processor and memory LSI
US6516403B1 (en) 1999-04-28 2003-02-04 Nec Corporation System for synchronizing use of critical sections by multiple processors using the corresponding flag bits in the communication registers and access control register
JP4823928B2 (en) * 2007-01-22 2011-11-24 三菱電機株式会社 Parallel solver for simultaneous linear equations
US8214662B2 (en) * 2007-04-09 2012-07-03 Panasonic Corporation Multiprocessor control unit, control method performed by the same, and integrated circuit
JP5623187B2 (en) * 2010-08-27 2014-11-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Parallel computation processing that transmits and receives data across multiple nodes without barrier synchronization

Non-Patent Citations (1)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102665832B (en) * 2009-10-28 2015-11-25 纽吉工业股份有限公司 Ping-pong robot and method of operating thereof

Also Published As

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

Similar Documents

Publication Publication Date Title
US5481747A (en) Synchronous method and apparatus for processors
US4903196A (en) Method and apparatus for guaranteeing the logical integrity of data in the general purpose registers of a complex multi-execution unit uniprocessor
JP2947356B2 (en) Parallel processing system and parallel processor synchronization method
US10095657B2 (en) Processor, accelerator, and direct memory access controller within a core reading/writing local synchronization flag area for parallel
US5367690A (en) Multiprocessing system using indirect addressing to access respective local semaphore registers bits for setting the bit or branching if the bit is set
US5978831A (en) Synchronous multiprocessor using tasks directly proportional in size to the individual processors rates
US5127092A (en) Apparatus and method for collective branching in a multiple instruction stream multiprocessor where any of the parallel processors is scheduled to evaluate the branching condition
US5499350A (en) Vector data processing system with instruction synchronization
EP0623875B1 (en) Multi-processor computer system having process-independent communication register addressing
JPH0630094B2 (en) Multiprocessor system
US8612957B2 (en) Scheduling multithreaded programming instructions based on dependency graph
JPH0962563A (en) Shared memory system, parallel processor, and memory lsi
US5710912A (en) Method and apparatus for enabling a computer system to adjust for latency assumptions
JP3008223B2 (en) Synchronous processor between processors
US4907147A (en) Pipelined data processing system with register indirect addressing
US7155718B1 (en) Method and apparatus to suspend and resume on next instruction for a microcontroller
JP3006676B2 (en) Multiprocessor
JPS6326907B2 (en)
JP2834298B2 (en) Data processing device and data processing method
JP2866421B2 (en) Multi-pass parallel processing method
EP0483250A1 (en) Non-busy-waiting resource control.
SU907551A1 (en) Multi-microprocessor system
KR930003993B1 (en) Method of transmitting data in multi-processor
JPS58146952A (en) Parallel computer system
CN113568665A (en) Data processing device

Legal Events

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