JPH0520783B2 - - Google Patents

Info

Publication number
JPH0520783B2
JPH0520783B2 JP62219151A JP21915187A JPH0520783B2 JP H0520783 B2 JPH0520783 B2 JP H0520783B2 JP 62219151 A JP62219151 A JP 62219151A JP 21915187 A JP21915187 A JP 21915187A JP H0520783 B2 JPH0520783 B2 JP H0520783B2
Authority
JP
Japan
Prior art keywords
data
processor
processors
block number
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP62219151A
Other languages
Japanese (ja)
Other versions
JPS6462759A (en
Inventor
Akira Maeda
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.)
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
Agency of Industrial Science and Technology
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 Agency of Industrial Science and Technology filed Critical Agency of Industrial Science and Technology
Priority to JP62219151A priority Critical patent/JPS6462759A/en
Publication of JPS6462759A publication Critical patent/JPS6462759A/en
Publication of JPH0520783B2 publication Critical patent/JPH0520783B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Information Transfer Systems (AREA)
  • Small-Scale Networks (AREA)

Description

【発明の詳細な説明】[Detailed description of the invention]

[発明の目的] (産業上の利用分野) 本発明は多数のプロセツサを結合してなる並列
処理システムに係わり、特に複数のプロセツサに
同一のデータを転送するブロードキヤスト転送機
能を備えた並列処理システムに関する。 (従来の技術) 従来より多数のプロセツサから構成される様々
な並列処理システムが提案されている。このシス
テムは、基本的には第6図に示すように、複数の
プロセツサ201〜204を結合手段200を介
して相互に結合したもので、各プロセツサ201
〜204はこの結合手段200を介して相互にデ
ータを転送する。この際、結合手段200を介し
てプロセツサ間に転送される情報は、通常、第7
図に示すように、V部301、A部302、PN
部303及びData部304で構成されている。
V部301とA部302は制御フイールドであ
り、V部301にはデータを転送していることを
示す制御信号が、A部302には転送先のプロセ
ツサからの応答信号が夫々入る。つまりV=1の
ときはデータの転送中であり、データを受入れて
欲しいことを示している。また、A=1であれ
ば、データを受取つたことを示している。また、
PN部303には転送先アドレスが与えられ、
Data部304には転送すべきデータが割当てら
れる。 ところで、このような並列処理システムでは、
1つのプロセツサから他の複数のプロセツサに同
一データを送るブロードキヤスト転送を必要とす
る場合がある。このブロードキヤスト転送機能が
ないと、必要なプロセツサ夫々に対し、同一デー
タを繰返し送ることになり、システムの効率低下
につながつてしまう。そこで、比較的容易に実現
できる方法として、ブロードキヤスト転送を指示
するための制御ビツトを第7図の情報に新たに付
加し、この制御ビツトが“1”の時にブロードキ
ヤスト転送であると全プロセツサが判断し、その
データを同時に取込むようにする方法が考えられ
ている。しかしながら、この方法では、特定の一
部のプロセツサに対して選択的にブロードキヤス
ト転送を行うことができないという欠点があつ
た。 一方、並列処理システムを構成するプロセツサ
数が多くなつた場合、複数個のプログラムを同時
に複数台のプロセツサで実行させて処理を進める
ことがある。例えば第8図に示すように、プロセ
ツサ311〜313が1つのプログラムを、31
4〜317,318,319がそれぞれ他のプロ
グラムを実行するような場合であるが、この場合
でも1つのプログラムを実行するプロセツサ間の
みでのブロードキヤスト転送を効果的に行うこと
は不可能であつた。 また、1つのプログラム内においても、例えば
第9図に示すように、処理が進むにつれてその処
理の一部を複数台のプロセツサで実行させること
がある。図では主プログラム400から4つのプ
ログラムモジユール401,402,403,4
04が起動され、それぞれ別々のプロセツサ上で
動作をし、さらにプログラムモジユール401が
405〜407を、プログラムモジユール403
が408,409を、プログラムモジユール40
4が410〜412を起動する場合を示してい
る。この場合、起動されたプログラム間、例えば
401〜404,405〜407,408〜40
9,410〜412間で、ブロードキヤスト転送
が必要なときには、プロセツサを任意のグループ
に分け、その分けたプロセツサ間で任意にブロー
ドキヤスト転送ができることが必要であるが、こ
の場合でも、先の理由と同様に、効率良くブロー
ドキヤスト転送を行うことは不可能であつた。 (発明が解決しようとする問題点) 上述のように、従来の並列処理システムでは、
任意に選択した複数台のプロセツサ間で、ブロー
ドキヤスト転送をすることができず、結局、デー
タ転送の効率低下を招くという問題があつた。 本発明はかかる問題を解決すべくなされたもの
で、複数のプロセツサが結合された並列処理シス
テムにおいて、ブロードキヤスト転送を任意のプ
ロセツサ間で行うことを可能とし、もつてデータ
転送効率の向上が図れる並列処理システムを提供
することを目的とする。 [発明の構成] (問題点を解決するための手段) 本発明では、各プロセツサに、ブロツク番号記
憶手段が備えられている。このブロツク番号記憶
手段は、ブロードキヤスト転送時において共通の
データを受取るプロセツサ群を特定する番号(ブ
ロツク番号)を記憶しておくものである。また、
プロセツサには、このブロツク番号記憶手段に記
憶されたブロツク番号と送り手のプロセツサから
送出されたブロツク番号とを比較する比較手段
と、この比較手段の比較結果が一致である場合に
前記送り手のプロセツサからのデータを取込む手
段とが備えられている。 (作用) 本発明では、複数のプロセツサを任意のグルー
プに分割するとともに、各グループに当該グルー
プを特定するブロツク番号を付与し、各プロセツ
サのブロツク番号記憶手段に、例えば送り手のプ
ロセツサからの指定に基づき任意のブロツク番号
を記憶させておくことにより、このブロツク番号
によつて、そのプロセツサがどのグループに属す
るのかが特定できる。そして、送り手となるプロ
セツサは、そのブロツク番号を転送先アドレスと
して指定することにより、同一ブロツク番号を記
憶している1群のプロセツサに対し、同一データ
をブロードキヤスト転送することができる。 (実施例) 以下、図面を参照しながら本発明の一実施例に
係る並列処理システムについて説明する。 このシステムは第1図に示すように、並列処理
が可能な複数のプロセツサ11〜14を、結合手
段である複数のバス21〜27を介して接続して
構成されている。 ここでバス21はデータバスを、バス22は転
送先プロセツサ番号又は転送先プロセツサ群を特
定するブロツク番号を転送するアドレスバスであ
る。バス23は、これらのバス21,22上でデ
ータ、プロセツサ番号又はブロツク番号がそれぞ
れ転送されている最中であることを“1”で示す
情報を転送する信号線で、バス24は、同一デー
タを再送している時に“1”となる情報を転送す
る信号線である。バス25はアドレスバス22に
より指定されたプロセツサからの応答を伝える信
号線であり、上記指定されたプロセツサが“1”
にする。バス26はデータは送られてきたが、受
け手のプロセツサが、まだそのデータを受取れる
状況にない時、例えばバツフアレジスタにまだデ
ータが存在している時等に、そのデータが受取れ
ないことを知らせるための情報を送る信号線であ
る。更にバス27は受け手のプロセツサが受取つ
たデータになんらかのエラーが検出された時に
“1”となる情報を転送する信号線である。つま
り、バス21〜24は、送り手のプロセツサから
の各種情報を受け手のプロセツサに転送するため
に用いられ、バス24〜27は、バス22で指定
された転送先プロセツサからの応答情報を転送す
るために用いられる。ブロードキヤスト転送のと
きには、複数のプロセツサに共通のブロツク番号
がアドレスバス22に与えられるので、上記各バ
ス24〜27を介して転送される応答信号はワイ
ヤードオアされる。即ち、1つでも信号線を
“1”とするプロセツサが存在すると、その信号
線は“1”となる。 プロセツサ11〜14は、それぞれ送り手とし
ての機能と受け手としての機能とを備えている。
したがつて、プロセツサ11〜14はいずれも送
り手となれるが、同時に2つ以上のプロセツサが
送り手となることはできない。データの送り手と
なるプロセツサは、周知の決定方法にて決められ
る。 次に、まずデータの送り手となつたいずれか一
つのプロセツサの動作について説明する。このプ
ロセツサは、転送先プロセツサ番号又はブロツク
番号をアドレスバス22に出力するとともに、送
信データをデータバス21に出力する。また、こ
のプロセツサは、データを送出中であることを示
すためバス23を“1”にする。その後、該プロ
セツサは、バス25,26,27を監視し、バス
25,26,27が(1,0,0)となれば正し
くデータが転送できたと判断する。バス25,2
6,27が(1,0,0)となれば、少なくとも
1つのプロセツサがデータを受取れなかつことが
分り、送り手のプロセツサは、同一データを再び
出力する。この時、バス24もデータ再送中であ
ることを示すため“1”にする。そして、プロセ
ツサはバス25,26,27が(1,0,0)と
なるまでデータ再送を繰返す。この結果、バス2
2で指定したプロセツサ番号を持つプロセツサ又
はバス22で指定したブロツク番号を持つ全ての
プロセツサに同一データが送れたことになる。な
お、この処理の途中、バス27が“1”となる
と、いずれかの受け手側プロセツサがデータのエ
ラーを検出したことを意味し、送り手のプロセツ
サは、なんらかの処理、例えばデータ再送、診断
などの処理を行う。さらにデータ転送中にバス2
5が“1”にならない場合、即ちどのプロセツサ
も応答しなかつた場合には、存在しないプロセツ
サ番号又はブロツク番号を指定したことを意味
し、プログラムのエラーと考えられる。この場合
には、ソフトウエアにその旨通知される。 次に、受け手のプロセツサの動作について説明
する。受け手のプロセツサが応答に必要な回路を
第2図に示す。図中51〜54は、各プロセツサ
のプロセツサ番号及びブロツク番号を格納するレ
ジスタであり、信号線40を介してその番号がセ
ツトされる。ここでは4つのレジスタ51〜54
を用いているが、このレジスタの数はいくつでも
良い。各プロセツサ11〜14は、このレジスタ
51〜54の数だけプロセツサ番号及びブロツク
番号を持つことができる。特に複数のプロセツサ
間で同一のブロツク番号を持つものに対してはブ
ロードキヤスト転送ができる。61〜64は、ア
ドレスの比較器であり、アドレスバス22を介し
て送り手のプロセツサから与えられたプメセツサ
番号又はブロツク番号とレジスタ51〜54の記
憶内容とを比較し、いずれか1つが一致すればオ
ア回路80の出力が“1”となる。この時、バス
23が“1”、即ちデータ転送中であると、アン
ド回路81の出力が“1”となり、他のプロセツ
サがこのプロセツサにデータを送ろうとしている
ことが分る。この出力は、応答信号としてゲート
92を介してバス25に出力される。フリツプフ
ロツプ45は、データのバツフアレジスタ42に
データが存在することを示すものである。このフ
リツプフロツプ45が“1”である時、即ち、未
だバツフアレジスタが空でない時、アンド回路8
1の出力が“1”となると、バス26が“1”と
なり、送り手のプロセツサにデータが受取れなか
つたことを知らせる。43は、データのバリテイ
チエツクを行うエラー検出回路であり、エラーを
検出すると、アンド回路85を介してバス27を
“1”にする。フリツプフロツプ44は、データ
を受取つた時に“1”となり、受取れなかつた
時、即ちアンド回路84の出力が“1”になつた
ときに、“0”となるように動作をする。このフ
リツプフロツプ44の出力は、データの再送を示
すバス24上の信号とともに、ナンド回路90に
入力される。このナンド回路90の出力は、フリ
ツプフロツプ44及びバス24の信号が共に
“1”の時、“0”となる。即ち、「データの再送
の際に、既にデータを受取つているとき」に
“0”となり、バツフアレジスタ42のクロツク
信号をアンド回路82,83を介して禁止するよ
うに動作をする。また、アンド回路83は、フリ
ツプフロツプ45の出力が“1”のとき、即ちバ
ツフアレジスタ42内にデータが未だ存在してい
る時に、インバータ91を介してバツフアレジス
タ42のクロツク信号を禁止する働きをもする。
バツフアレジスタ42へのクロツク信号は、アン
ド回路81が“1”、即ちそのプロセツサにデー
タが送られ、かつフリツプフロツプ45が0、即
ち、バツフアレジスタ42にデータが存在せず、
しかもフリツプフロツプ44が0、即ち、そのデ
ータをまだ受取つていないときに“1”となり、
これによりデータバス21の内容が取込まれる。 このように、本実施例に係るシステムによれ
ば、受け手のプロセツサのレジスタ51〜54
に、同一のデータの転送先である複数のプロセツ
サに共通するブロツク番号を格納しておくだけ
で、送り手のプロセツサは、単一のプロセツサに
対してデータを転送するのと同じ方法で、任意の
プロセツサに対するブロードキヤスト転送を行う
ことが可能になる。しかも、この実施例によれ
ば、指定した全プロセツサがデータを受取つたか
否かを調べる手段及び一度受取つたデータを再び
受取るのを禁止する手段を持たせているので、ブ
ロードキヤスト転送において、データを受取らな
かつたプロセツサが出現したり、また同一データ
を2度以上受取るプロセツサが出現したりするこ
とを防ぐことができ、データ転送を確実なものと
することができる。 次に本発明の他の実施例につき説明する。 このシステムは、第3図に示すように、プロセ
ツサ11〜15が結合手段であるバス101〜1
04を介してループ状に結合され、このループ上
でデータが転送されるシステムである。このシス
テムにおける転送データの形式は、例えば第4図
に示す通りである。即ち、DATA部121には
データが配置され、PN部122にはプロセツサ
番号又はブロツク番号が配置され、S0,S1部1
23,124には受け手のプロセツサの応答情報
が配置され、R部125にはデータの再送を示す
情報が配置され、F部126にはDATA部12
1にデータが存在することを示す情報が載せられ
る。送り手のプロセツサは、データを送ろうとす
るとき、F=“1”,R=“0”,S1=“1”,S0=
“0”とし、PN部にプロセツサ番号又はブロツ
ク番号を、DATA部にデータを乗せ、この情報
を隣接むるプロセツサに出力する。その後、S1,
S0の応答情報を監視しており、(S1,S0)が
(0,0)なら、正しくデータが受取られたと判
断し、(0,1)なら受け手のプロセツサの中で、
データを受け取れなかつたものがあつたと判断
し、F=“1”,R=“1”,S1=“1”,S0=“0”
として同一データを再送する。(S1,S0)が
(1,1)で返つてくると、受け手のプロセツサ
のどれかがエラーを検出したと判断し、エラーの
回復の処理をする。このS1,S0の操作は、簡単
な論理回路で実現できる。 受け手のプロセツサが応答するための回路を第
5図に示す。なお、この回路において先の実施例
に示したものと同一部分には同一符号を付し、重
複部分の説明は省略することにする。 この回路では、第2図のバス23がF部126
に、バス24がR部125に、バス22がPN部
部122に、バス21がDATA部121にそれ
ぞれ対応している。そして、第2図におけるバス
25,26,27の役目をS1部124、S0部1
23が受持つており、この点が動作上前記実施例
と若干異なつている。また、図中110は、S1,
S0部に対して操作を行う制御回路であり、エラ
ー検出回路43の出力信号、バツフアレジスタが
空か否かをフリツプフロツプ45の出力、さらに
本プロセツサへのデータ伝送中を示すアンドゲー
ト81の出力により、次表のように動作をする。
[Object of the Invention] (Industrial Application Field) The present invention relates to a parallel processing system formed by combining a large number of processors, and particularly to a parallel processing system equipped with a broadcast transfer function for transferring the same data to a plurality of processors. Regarding. (Prior Art) Various parallel processing systems comprising a large number of processors have been proposed. As shown in FIG. 6, this system basically consists of a plurality of processors 201 to 204 interconnected via a coupling means 200, with each processor 201
204 mutually transfer data via this coupling means 200. At this time, the information transferred between the processors via the coupling means 200 is usually
As shown in the figure, V section 301, A section 302, PN
It consists of a section 303 and a data section 304.
The V section 301 and the A section 302 are control fields, and the V section 301 receives a control signal indicating that data is being transferred, and the A section 302 receives a response signal from the transfer destination processor. In other words, when V=1, data is being transferred and indicates that the data should be accepted. Further, if A=1, it indicates that data has been received. Also,
A forwarding address is given to the PN section 303,
Data to be transferred is assigned to the data section 304. By the way, in such a parallel processing system,
Broadcast transfers may be required to send the same data from one processor to multiple other processors. Without this broadcast transfer function, the same data would be sent repeatedly to each necessary processor, leading to a decrease in system efficiency. Therefore, as a method that can be implemented relatively easily, a control bit for instructing broadcast transfer is newly added to the information shown in Figure 7, and when this control bit is "1", all processors are notified that broadcast transfer is being performed. A method is being considered in which the system makes a decision and the data is imported at the same time. However, this method has the disadvantage that it is not possible to selectively perform broadcast transfer to some specific processors. On the other hand, when the number of processors configuring a parallel processing system increases, a plurality of programs may be simultaneously executed by a plurality of processors to advance processing. For example, as shown in FIG.
4 to 317, 318, and 319 each execute other programs, but even in this case, it is impossible to effectively perform broadcast transfer only between processors that execute one program. Ta. Furthermore, even within one program, as the processing progresses, a portion of the processing may be executed by a plurality of processors, as shown in FIG. 9, for example. In the figure, four program modules 401, 402, 403, 4 are generated from the main program 400.
04 are activated and run on separate processors, and furthermore, program module 401 executes programs 405 to 407, and program module 403 executes operations on separate processors.
408, 409, program module 40
4 starts 410 to 412. In this case, between the activated programs, for example 401-404, 405-407, 408-40
When broadcast transfer is required between 9,410 and 412, it is necessary to divide the processors into arbitrary groups and perform broadcast transfer between the divided processors. Similarly, it was impossible to perform broadcast transfer efficiently. (Problems to be solved by the invention) As mentioned above, in conventional parallel processing systems,
Broadcast transfer cannot be performed between a plurality of arbitrarily selected processors, resulting in a problem that data transfer efficiency is reduced. The present invention was made to solve this problem, and in a parallel processing system in which multiple processors are combined, it is possible to perform broadcast transfer between arbitrary processors, thereby improving data transfer efficiency. The purpose is to provide a parallel processing system. [Structure of the Invention] (Means for Solving Problems) In the present invention, each processor is provided with block number storage means. This block number storage means stores a number (block number) that specifies a group of processors that receive common data during broadcast transfer. Also,
The processor includes a comparison means for comparing the block number stored in the block number storage means with the block number sent from the sender's processor, and a comparison means for comparing the block number stored in the block number storage means with the block number sent from the sender's processor. Means for receiving data from the processor is provided. (Function) In the present invention, a plurality of processors are divided into arbitrary groups, a block number is assigned to each group to identify the group, and the block number storage means of each processor is stored with a block number specified by, for example, the sender's processor. By storing an arbitrary block number based on the block number, it is possible to specify which group the processor belongs to based on this block number. Then, by specifying the block number as a transfer destination address, the sender processor can broadcast-transfer the same data to a group of processors that store the same block number. (Example) Hereinafter, a parallel processing system according to an example of the present invention will be described with reference to the drawings. As shown in FIG. 1, this system is constructed by connecting a plurality of processors 11-14 capable of parallel processing via a plurality of buses 21-27 serving as coupling means. Here, the bus 21 is a data bus, and the bus 22 is an address bus for transferring a transfer destination processor number or a block number specifying a transfer destination processor group. The bus 23 is a signal line that transfers information indicating that the data, processor number, or block number is being transferred on these buses 21 and 22 with a "1". This is a signal line that transfers information that becomes "1" when retransmitting. The bus 25 is a signal line that conveys a response from the processor specified by the address bus 22, and when the specified processor is "1"
Make it. The bus 26 indicates that data has been sent but cannot be received when the receiving processor is not yet in a position to receive the data, such as when there is still data in the buffer register. This is a signal line that sends information. Furthermore, the bus 27 is a signal line that transfers information that becomes "1" when some error is detected in the data received by the receiving processor. That is, the buses 21 to 24 are used to transfer various information from the sender's processor to the receiver's processor, and the buses 24 to 27 are used to transfer response information from the transfer destination processor specified by the bus 22. used for During broadcast transfer, a block number common to a plurality of processors is given to address bus 22, so the response signals transferred via each of the buses 24 to 27 are wired-ORed. That is, if there is even one processor that sets a signal line to "1", that signal line becomes "1". Each of the processors 11 to 14 has a sender function and a receiver function.
Therefore, any of the processors 11 to 14 can act as a sender, but two or more processors cannot act as senders at the same time. The processor that will be the data sender is determined using a well-known determination method. Next, the operation of one of the processors that is a data sender will be explained. This processor outputs the transfer destination processor number or block number to the address bus 22, and also outputs the transmission data to the data bus 21. Additionally, this processor sets the bus 23 to "1" to indicate that data is being sent. Thereafter, the processor monitors the buses 25, 26, and 27, and determines that data has been transferred correctly if the buses 25, 26, and 27 become (1, 0, 0). bus 25,2
If 6, 27 becomes (1, 0, 0), it is known that at least one processor cannot receive the data, and the sender's processor outputs the same data again. At this time, the bus 24 is also set to "1" to indicate that data is being retransmitted. The processor then repeats data retransmission until the buses 25, 26, and 27 become (1, 0, 0). As a result, bus 2
This means that the same data has been sent to the processor having the processor number specified in step 2 or all the processors having the block number specified by bus 22. If the bus 27 becomes "1" during this process, it means that one of the receiving processors has detected a data error, and the sending processor may perform some kind of processing, such as data retransmission or diagnosis. Perform processing. Furthermore, during data transfer, bus 2
If 5 does not become "1", that is, if no processor responds, it means that a non-existent processor number or block number has been specified, and this is considered to be a program error. In this case, the software is notified accordingly. Next, the operation of the receiving processor will be explained. FIG. 2 shows the circuitry required for the receiving processor to respond. In the figure, 51 to 54 are registers for storing the processor number and block number of each processor, and the numbers are set via the signal line 40. Here, four registers 51 to 54
is used, but the number of these registers can be any number. Each processor 11-14 can have processor numbers and block numbers equal to the number of registers 51-54. In particular, broadcast transfer is possible for blocks that have the same block number among multiple processors. Address comparators 61 to 64 compare the programmer number or block number given from the sender's processor via the address bus 22 and the contents stored in the registers 51 to 54, and determine if any one of them matches. In this case, the output of the OR circuit 80 becomes "1". At this time, if the bus 23 is "1", that is, data is being transferred, the output of the AND circuit 81 becomes "1", indicating that another processor is about to send data to this processor. This output is output to the bus 25 via the gate 92 as a response signal. The flip-flop 45 indicates that data exists in the data buffer register 42. When this flip-flop 45 is "1", that is, when the buffer register is not yet empty, the AND circuit 8
When the output of 1 goes to ``1'', bus 26 goes to ``1'', indicating to the sender's processor that the data could not be received. Reference numeral 43 denotes an error detection circuit that performs a data validation check, and when an error is detected, the bus 27 is set to "1" via an AND circuit 85. The flip-flop 44 operates so that it becomes "1" when it receives data, and becomes "0" when it cannot receive data, that is, when the output of the AND circuit 84 becomes "1". The output of flip-flop 44 is input to NAND circuit 90 along with a signal on bus 24 indicating data retransmission. The output of this NAND circuit 90 becomes "0" when both the signals on the flip-flop 44 and the bus 24 are "1". That is, it becomes "0" when data has already been received during data retransmission, and operates to inhibit the clock signal of the buffer register 42 via the AND circuits 82 and 83. Further, the AND circuit 83 serves to inhibit the clock signal of the buffer register 42 via the inverter 91 when the output of the flip-flop 45 is "1", that is, when data still exists in the buffer register 42. also.
The clock signal to the buffer register 42 is such that the AND circuit 81 is "1", that is, data is sent to the processor, and the flip-flop 45 is 0, that is, there is no data in the buffer register 42.
Moreover, when the flip-flop 44 is 0, that is, the data has not been received yet, it becomes "1",
As a result, the contents of the data bus 21 are taken in. As described above, according to the system according to this embodiment, the registers 51 to 54 of the receiving processor
By simply storing a block number common to multiple processors to which the same data is transferred, the sending processor can freely transfer data in the same way it transfers data to a single processor. It becomes possible to perform broadcast transfer to the processor. Moreover, according to this embodiment, there is provided means for checking whether or not all specified processors have received data, and means for prohibiting data once received from being received again. It is possible to prevent the appearance of a processor that does not receive the same data or the appearance of a processor that receives the same data more than once, and data transfer can be ensured. Next, other embodiments of the present invention will be described. In this system, as shown in FIG.
04, and data is transferred on this loop. The format of transfer data in this system is as shown in FIG. 4, for example. That is, data is arranged in the DATA section 121, a processor number or block number is arranged in the PN section 122, and S0 and S1 sections 1
23 and 124 are arranged with the response information of the receiver's processor, the R section 125 is arranged with information indicating data retransmission, and the F section 126 is arranged with the response information of the receiver's processor.
1 contains information indicating that data exists. When the sender's processor attempts to send data, F="1", R="0", S1="1", S0="
It is set to "0", the processor number or block number is placed in the PN section, the data is placed in the DATA section, and this information is output to the adjacent processor. After that, S1,
The response information of S0 is monitored, and if (S1, S0) is (0, 0), it is determined that the data has been received correctly, and if (0, 1), it is determined that the data has been received correctly.
It is determined that some data could not be received, and F="1", R="1", S1="1", S0="0"
The same data is retransmitted as . When (S1, S0) returns as (1, 1), it is determined that one of the receiving processors has detected an error and performs error recovery processing. This operation of S1 and S0 can be realized with a simple logic circuit. A circuit for the receiving processor to respond is shown in FIG. In this circuit, the same parts as those shown in the previous embodiment are given the same reference numerals, and the explanation of the overlapping parts will be omitted. In this circuit, the bus 23 in FIG.
The bus 24 corresponds to the R section 125, the bus 22 corresponds to the PN section 122, and the bus 21 corresponds to the DATA section 121. The roles of buses 25, 26, and 27 in FIG. 2 are S1 section 124 and S0 section 1.
23, and in this point the operation is slightly different from the previous embodiment. In addition, 110 in the figure indicates S1,
This is a control circuit that operates on the S0 section, and outputs the output signal of the error detection circuit 43, the output of the flip-flop 45 that indicates whether the buffer register is empty, and the output of the AND gate 81 that indicates that data is being transmitted to this processor. The operation is as shown in the table below.

【表】 (S1,S0)は、基本的には、 (1,0)……データを転送した。 (0,0)……いずれかのプロセツサがデータ
を受取つた。 (0,1)……データを受取れなかつたプロセ
ツサがあつた。 (1,1)……エラーを検出したプロセツサが
あつた。 ことを意味し、(1,0)の状態には、送り手の
プロセツサがセツトする。この状態のまま(S1,
S0)が送り手のプロセツサに戻つてくれば、ど
のプロセツサにも応答しなかつたことを意味す
る。上記表中〜は、 ……そのプロセツサに対する転送ではなかつ
た。 ……データを正しく受取つた。 ……既に他のプロセツサがエラーを検出してい
た。 ……このプロセツサがエラーを検出した。 ……プロセツサはデータを受取つたが他のプロ
セツサ中にデータを受取れないものがあ
つた。 ……バツフアが空でなくデータが受け取れ
なかつた。 にそれぞれ対応している。第5図における制御回
路110は、上表に示すようにS1,S0信号を生
成する。この制御回路110も単純な組合わせ回
路であり、例えばPLA(Programmable Logic
Array)などにより極めて容易に実現できる。 [発明の効果] 以上述べたように、本発明によれば、並列処理
システムにおける任意のプロセツサをブロツク番
号で特定されるグループに分け、各プロセツサに
は上記ブロツク番号を記憶する手段を設けるとと
もに、送り手のプロセツサから指定されたブロツ
ク番号と上記内部に記憶されたブロツク番号とを
比較手段により比較して、この比較結果が一致し
たときにデータを受入れるようにしたので、任意
のプロセツサ群に対して1対1のデータ転送と同
様の手順でブロードキヤスト転送を実行すること
ができる。 従つて、本発明によれば、規模の大きな並列処
理システムにおいて、複数個のプログラムをそれ
ぞれ複数台のプロセツサに分担させ、それぞれの
プログラム内で自由にブロードキヤスト転送をす
ることもでき、効率良くシステム全体を動作させ
ることができる。 更には、1つのプログラムにおいて、時系列に
プログラムの構造がダイナミツクに変わり、ブロ
ードキヤスト転送すべきプロセツサも変化する場
合でも、これに柔軟に対処でき、並列処理システ
ムを効率的に稼動させることができる。
[Table] (S1, S0) basically transferred (1, 0)...data. (0,0)...Some processor received data. (0,1)...There was a processor that could not receive data. (1,1)...A processor detected an error. This means that the sender's processor sets the state to (1, 0). Remain in this state (S1,
If S0) returns to the sender's processor, it means that it did not respond to any processor. ~ in the above table... was not a transfer to that processor. ...The data was received correctly. ...Another processor had already detected the error. ...This processor detected an error. ...The processor received the data, but some other processors were unable to receive the data. ...The buffer was not empty and no data could be received. corresponds to each. The control circuit 110 in FIG. 5 generates S1 and S0 signals as shown in the above table. This control circuit 110 is also a simple combinational circuit, for example, PLA (Programmable Logic
This can be realized extremely easily using methods such as Array). [Effects of the Invention] As described above, according to the present invention, arbitrary processors in a parallel processing system are divided into groups specified by block numbers, each processor is provided with means for storing the block number, and The block number specified by the sender's processor is compared with the block number stored internally, and the data is accepted when the comparison results match. Broadcast transfer can be performed using the same procedure as one-to-one data transfer. Therefore, according to the present invention, in a large-scale parallel processing system, a plurality of programs can be distributed to a plurality of processors, and broadcast transfer can be freely performed within each program. I can make the whole thing work. Furthermore, even if the structure of a single program changes dynamically over time and the processors to which broadcast data should be transferred also change, this can be dealt with flexibly and the parallel processing system can be operated efficiently. .

【図面の簡単な説明】[Brief explanation of the drawing]

第1図は本発明の一実施例に係る並列処理シス
テムの構成を示すブロツク図、第2図は同システ
ムにおけるプロセツサの更に詳細な回路図、第3
図は本発明の他の実施例に係る並列処理システム
の構成を示すブロツク図、第4図は同システムに
おける転送情報の形態を示す図、第5図は同シス
テムにおけるプロセツサの更に詳細な回路図、第
6図は並列処理システムの一般的構成を示す図、
第7図は同システムにおける転送データの形式を
示す図、第8図は同システムにおけるプロセツサ
の割当て例を示す図、第9図は同システムにおけ
るプログラムの実行状態例を示す図である。 11〜14,201〜204,311〜319
…プロセツサ、21〜27,101〜104…バ
ス、51〜54…レジスタ、61〜64…比較
器。
FIG. 1 is a block diagram showing the configuration of a parallel processing system according to an embodiment of the present invention, FIG. 2 is a more detailed circuit diagram of a processor in the same system, and FIG.
The figure is a block diagram showing the configuration of a parallel processing system according to another embodiment of the present invention, FIG. 4 is a diagram showing the format of transferred information in the same system, and FIG. 5 is a more detailed circuit diagram of the processor in the same system. , FIG. 6 is a diagram showing the general configuration of a parallel processing system,
FIG. 7 is a diagram showing a format of transferred data in the same system, FIG. 8 is a diagram showing an example of processor allocation in the same system, and FIG. 9 is a diagram showing an example of a program execution state in the same system. 11-14, 201-204, 311-319
...Processor, 21-27, 101-104...Bus, 51-54...Register, 61-64...Comparator.

Claims (1)

【特許請求の範囲】 1 複数台のプロセツサと、これらプロセツサの
隣接する2台毎にデータの転送が可能な如くルー
プ状に結合する結合手段とを具備した並列処理シ
ステムにおいて、前記各プロセツサは、ブロード
キヤスト転送時において共通のデータを受取るプ
ロセツサを特定するブロツク番号を記憶するブロ
ツク番号記憶手段と、このブロツク番号記憶手段
に記憶されたブロツク番号と送り手のプロセツサ
から送出されたブロツク番号とを比較する比較手
段と、この比較手段の比較結果が一致である場合
に前記送り手のプロセツサからのデータを取込む
手段と、データを転送した旨を示す第1の状態、
いずれかのプロセツサがデータを受取つた旨を示
す第2の状態、データが受け取れなかつたプロセ
ツサがあつたことを示す第3の状態を2ビツト情
報として送出する手段とを備え、 前記プロセツサのうち送り手となるプロセツサ
は、データ及び送り先のブロツク番号、第1の状
態の2ビツト情報を送出する手段と、送出後に他
プロセツサを介して受信した前記2ビツト情報が
第2の状態の時は、指定したブロツク番号を記憶
した全てのプロセツサが該データを受取つたと判
定する手段と、該受信した前記2ビツト情報が第
3の状態の時は前記指定したブロツク番号を記憶
したプロセツサのうち1つでも受取れなかつたも
のが存在すると判定し、同一データを再送する手
段とを具備し、 前記プロセツサのうち受け手となるプロセツサ
は、前記比較手段の比較結果が一致である場合
に、前記データを受取るか否かを判定し、受取れ
る場合には該データを受取るとともに、受信した
2ビツト情報が第1の状態の時は第2の状態に変
更し、第2、第3の状態の時にはそのままの状態
で送出する手段と、受取れない場合は受信した2
ビツト情報が第1の状態又は第2の状態の時は第
3の状態に変更し、第3の状態の時はそのままで
送出する手段とを具備したことを特徴とする並列
処理システム。
[Scope of Claims] 1. In a parallel processing system comprising a plurality of processors and a coupling means for coupling each two adjacent processors in a loop so that data can be transferred, each of the processors comprises: A block number storage means stores a block number that specifies a processor that receives common data during broadcast transfer, and the block number stored in this block number storage means is compared with the block number sent from the sender's processor. a comparison means for reading the data from the sender's processor when the comparison result of the comparison means matches, and a first state indicating that the data has been transferred;
means for transmitting, as 2-bit information, a second state indicating that one of the processors has received the data, and a third state indicating that there is a processor that has not received the data; The master processor has a means for transmitting the data, the block number of the destination, and 2-bit information in the first state, and a means for transmitting the data, the block number of the destination, and the specified 2-bit information when the 2-bit information received via another processor is in the second state. means for determining that all the processors that have stored the specified block number have received the data; and when the received 2-bit information is in a third state, even one of the processors that has stored the specified block number; means for determining that there is data that could not be received and retransmitting the same data, and the receiving processor among the processors determines whether or not to receive the data if the comparison result of the comparing means is a match. If the data can be received, it receives the data, and if the received 2-bit information is in the first state, it changes to the second state, and if it is in the second or third state, it remains as it is. The means to send it, and if it cannot be received, the information received 2
A parallel processing system characterized by comprising: means for changing bit information to a third state when it is in the first state or the second state, and transmitting the bit information as is when it is in the third state.
JP62219151A 1987-09-03 1987-09-03 Parallel processing system Granted JPS6462759A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62219151A JPS6462759A (en) 1987-09-03 1987-09-03 Parallel processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62219151A JPS6462759A (en) 1987-09-03 1987-09-03 Parallel processing system

Publications (2)

Publication Number Publication Date
JPS6462759A JPS6462759A (en) 1989-03-09
JPH0520783B2 true JPH0520783B2 (en) 1993-03-22

Family

ID=16731005

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62219151A Granted JPS6462759A (en) 1987-09-03 1987-09-03 Parallel processing system

Country Status (1)

Country Link
JP (1) JPS6462759A (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5526490A (en) * 1992-08-17 1996-06-11 Matsushita Electric Industrial Co., Ltd. Data transfer control unit using a control circuit to achieve high speed data transfer
JP2738348B2 (en) * 1995-06-23 1998-04-08 日本電気株式会社 Multiprocessor system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55135925A (en) * 1979-04-09 1980-10-23 Nec Corp Information transfer device
JPS55135924A (en) * 1979-04-09 1980-10-23 Nec Corp Information transfer device
JPS6135645A (en) * 1984-07-27 1986-02-20 Fujitsu Ltd Multiple address communication system by group
JPS6145647A (en) * 1984-08-09 1986-03-05 Fujitsu Ltd Access system of multiprocessor system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55135925A (en) * 1979-04-09 1980-10-23 Nec Corp Information transfer device
JPS55135924A (en) * 1979-04-09 1980-10-23 Nec Corp Information transfer device
JPS6135645A (en) * 1984-07-27 1986-02-20 Fujitsu Ltd Multiple address communication system by group
JPS6145647A (en) * 1984-08-09 1986-03-05 Fujitsu Ltd Access system of multiprocessor system

Also Published As

Publication number Publication date
JPS6462759A (en) 1989-03-09

Similar Documents

Publication Publication Date Title
US4864496A (en) Bus adapter module for interconnecting busses in a multibus computer system
US4979097A (en) Method and apparatus for interconnecting busses in a multibus computer system
EP0473102B1 (en) Data communication system with checksum calculating means
KR0128274B1 (en) Interface system and its operating method
JPH0216636A (en) Parity inspector
JP3285629B2 (en) Synchronous processing method and synchronous processing device
US5758053A (en) Fault handling and recovery for system having plural processors
US6543014B1 (en) Data transmitting/receiving apparatus for executing data retransmission and parallel processor system
US4858234A (en) Method and apparatus for error recovery in a multibus computer system
US4837767A (en) Bus adapter module with improved error recovery in a multibus computer system
JPH06131244A (en) Asynchronous access system for shared memory
JP3057591B2 (en) Multiprocessor system
WO1981002798A1 (en) Computer system and interface therefor
JPH0520783B2 (en)
EP0291907B1 (en) Interprocessor communication system in information processing system enabling communication between execution processor units during communication between other processor units
JPH09231187A (en) Data transfer method of parallel computer
US4697268A (en) Data processing apparatus with message acceptance monitoring
US5175832A (en) Modular memory employing varying number of imput shift register stages
EP0376003A2 (en) Multiprocessing system with interprocessor communications facility
JPH07262142A (en) Parallel processing control system
JP2699873B2 (en) Bus control circuit
JPH0315778B2 (en)
JP2878160B2 (en) Competitive mediation device
JPS6076840A (en) Transmission system of state change information
US20040128472A1 (en) Information processing apparatus and method of controlling memory thereof

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term