JP2748359B2 - 並列プロセッサシステムおよび並列プロセッサによる複数の命令列の実行方法 - Google Patents

並列プロセッサシステムおよび並列プロセッサによる複数の命令列の実行方法

Info

Publication number
JP2748359B2
JP2748359B2 JP61182361A JP18236186A JP2748359B2 JP 2748359 B2 JP2748359 B2 JP 2748359B2 JP 61182361 A JP61182361 A JP 61182361A JP 18236186 A JP18236186 A JP 18236186A JP 2748359 B2 JP2748359 B2 JP 2748359B2
Authority
JP
Japan
Prior art keywords
data
identifier
processor
instruction
receiving
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
JP61182361A
Other languages
English (en)
Other versions
JPS6337457A (ja
Inventor
輝雄 田中
直樹 濱中
耕一郎 面田
重夫 長島
晃 村松
郁夫 吉原
和夫 中尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP61182361A priority Critical patent/JP2748359B2/ja
Priority to DE3751229T priority patent/DE3751229T2/de
Priority to EP87111124A priority patent/EP0258650B1/en
Publication of JPS6337457A publication Critical patent/JPS6337457A/ja
Application granted granted Critical
Publication of JP2748359B2 publication Critical patent/JP2748359B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Information Transfer Systems (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、並列プロセッサシステムに関し特に高度な
大規模計算を行うための並列プロセッサにおいて、プロ
セッサ間で効率よくデータを転送することができる並列
プロセッサシステムおよび並列プロセッサによる複数の
命令列の実行方法に関するものである。 〔従来の技術〕 互いに非同期で並列に処理を行う複数台のプロセッ
サ、いわゆる並列プロセッサは、高速計算を行うための
一方式として研究開発が行れている。この並列プロセッ
サにおいて、基本的な処理であるプロセッサ間のデータ
転送方式には2つの方式があり、その1つは転送を行う
2つのプロセッサ間で同期を取り合ってデータを送信す
る方式であり、他の1つはデータ転送を非同期に行い、
演算に必要なデータが全て到着することにより始めて演
算を開始する方式、いわゆるデータフロー型のアプロー
チである。しかし、前者の方式では、各プロセッサが他
のプロセッサとデータ転送を行いながら各々異なった処
理を行う場合、同期オーバヘッドが非常に大になってし
まう。すなわち、他の演算処理中に頻繁に同期処理のた
めの割り込みが入るため、各プロセッサの使用効率が低
下してしまう。また、後者の方式では、前者の問題点を
ある程度解消するものであるが、データが揃わなければ
演算が開始できないため、演算→データ転送→待ち合わ
せ処理が逐次的であり、かつデータ転送および待ち合わ
せ処理のオーバヘッドが残る。さらに、データフロー方
式は、基本的にレジスタあるいはメモリという概念がな
く、現在までに蓄積されたノイマン型計算機のための高
速化手法を利用することができない。 このため、各プロセッサは、ノイマン型の処理を行
い、演算とデータ転送をよりよくオーバラップさせて高
速処理を行うために、演算処理の途中で非同期にデータ
を送信、あるいは受信する方法が提案されている。この
ときの受信の方法に関しては、特開昭60−49464号公報
に開示されている。この開示された方法では、データを
受信側プロセッサが受信すると、直ちに演算処理を中断
してデータを取り込む。このとき、データにはプロセッ
サ内の送り先として、そのデータを必要とする命令のア
ドレスを用いており、プログラム作成時に決定される。 〔発明が解決しようとする問題点〕 上記のような従来技術の第1の問題点として、データ
が到着しているか否かを命令処理ごとにチェックしてい
るので、データが到着した場合には、その時にデータの
取り込み処理を行うために、演算処理を一時中断する必
要があった。また、第2の問題点として、従来技術で
は、データの送り先として、そのデータを必要とする命
令のアドレスを用いるいるため、反復計算等でその命令
を複数回用いる場合には、到着するデータの順序性を保
証する必要があった。しかし、一般にプロセッサの台数
を増加した場合、プロセッサ間のデータ通信路は複雑に
なり、到着するデータの順序性を保証することは困難で
あった。 また、第3の問題点として、プロセッサの台数が多く
なると、並列度の低いジョブでは遊休するプロセッサが
多くなってしまう。そのため、並列プロセッサを有効利
用するには、比較的並列度の低い複数のジョブを同時に
実行することが必要であるが、この点については従来考
慮されていなかった。 本発明の目的は、これら従来の問題点を改善し、プロ
セッサの実行時間中におけるデータ受信処理時間の占め
る割合を少なくする、つまり受信オーバヘッドを低減す
るとともに、到着するデータの順序性を保証する必要が
ない並列プロセッサシステムを提供することにある。 〔問題点を解決するための手段〕 上記目的を達成するため、本発明の並列プロセッサシ
ステムは、通信路を介して接続された複数台のプロセッ
サからなる並列プロセッサシステムにおいて、該複数の
プロセッサの各々は、データを処理する演算処理手段
と、該演算処理手段における処理で生成されたデータを
前記通信路に送出するデータ送出手段と、前記通信路か
らのデータを受信するデータ手段手段とを有し、前記演
算処理手段では、該データ送出手段によるデータ送出処
理または該データ受信手段によるデータ受信処理と並行
して演算処理することが可能であり、かつ、前記複数の
プロセッサのうちの一つが、前記データ送出手段によっ
て、自演算処理手段で生成したデータに、該データを識
別するためのデータ識別子を付与して通信路に送出する
とともに、該複数のプロセッサのうちの他の一つ以上の
プロセッサが、前記データ受信手段によって該データと
該データ識別子を受信して保持し、前記演算処理手段に
よって該データ識別子を参照して前記受信手段から必要
なデータを取り出して処理することを特徴としている。 また、本発明の命令列の実行方法は、複数の命令列を
実行する複数のプロセッサと該複数のプロセッサ間を接
続するデータ転送路からなり、該複数のプロセッサのそ
れぞれは該命令列を実行し、該複数の命令列は、複数の
データを生成し、また演算に使用する複数のデータを処
理し、前記複数のプロセッサのそれぞれは、実行するべ
き命令列、及び、前記命令列によって生成または演算に
使用するデータを保持するためのメモリ(6)と、他の
プロセッサから転送されるデータを保持する受信メモリ
(21)とを有する並列プロセッサによる複数の命令列の
実行方法であって、(a)複数のプロセッサによって並
列に複数の命令列を実行するステップ、(b)データを
生成する命令列によって生成されたデータを、データを
生成したプロセッサから該データを演算に使用するプロ
セッサへ転送することを要求するステップ、(c)該デ
ータを生成する命令列によるデータの転送を要求するス
テップの実行に応答して、該データを生成したプロセッ
サによる命令列の実行および該データを演算に使用する
プロセッサによる命令列の実行と並列に、転送プロセッ
サから受信プロセッサの該受信メモリへデータを該デー
タ転送路を介して転送するステップ、および(d)該デ
ータを演算に使用するプロセッサの命令列が転送された
データを必要としたとき、該データを演算に使用するプ
ロセッサによって実行される命令列によって、転送され
たデータのそれぞれを選択的に処理するステップを有す
ることを特徴としている。 〔作用〕 本発明においては、並列プロセッサを構成する各プロ
セッサ内に、演算処理を行う主プロセッサとデータ送信
を行う送信専用プロセッサとを設け、かつ主プロセッサ
のデータ通信にかかる負荷を抑えることにより、通信オ
ーバヘッドを低減する。先ず、データ送信側プロセッサ
におけるデータ送信処理は、データ送信命令を解読し、
データ送信装置に起動をかけることにより行われる。デ
ータ送信装置は、起動指示に従って転送すべきデータ
(送り先PE番号、データ識別子、データ等)を取り込
み、データ通信路に送信する。このとき、演算処理装置
とデータ送信装置とが非同期で動作できるようにし、演
算処理装置はデータ送信装置に起動をかけるのみで、他
の処理をデータ送信装置にまかせることにより、次の演
算命令の処理とオーバラップして動作させることができ
る。 次に、データ受信側プロセッサでは、転送されてきた
データをデータ識別子とともに連想記憶装置に一時保管
しておき、そのデータが演算に必要な時点で連想記憶ア
クセス装置に起動をかける。連想記憶アクセス装置は、
データ識別子を用いて連想記憶装置から目的のデータを
探し出し、そのデータを演算処理装置に送る。このよう
に、演算処理装置から演算に必要な時点でデータを取り
込みに行くので、演算処理装置で続行されている命令実
行を中断しないですむ。なお、演算処理装置がデータを
取りに行った時に、連想記憶装置上に目的のデータがな
い場合には、そのデータが届くまで演算処理装置は実行
を待機することになるのは勿論である。 また、本発明によるプロセッサのデータ送信装置行が
起動されると、送信装置は転送情報と識別情報と転送デ
ータとをデータ通信路に送出する。このとき、識別情報
には、現在実行中のジョブを識別するジョブ識別子を含
んでいる。一方、データ受信側プロセッサでは、転送さ
れてきたデータを、識別情報とともに連想記憶装置に一
時記憶する。そして、そのデータが演算に必要な時点
で、連想記憶アクセス装置に起動をかける。連想記憶ア
クセス装置は、ジョブ識別子を含む識別情報を用いて、
連想記憶装置から目的のデータを探し出してそのデータ
を演算処理装置に送る。 このように、演算処理装置から演算に必要な時点でデ
ータを取り込みに行くので、演算処理装置で続行されて
いる命令実行を中断しないですむ。なお、演算処理装置
がデータを取りに行った時に、連想記憶装置上の目的の
データがない場合には、そのデータが届くまで演算処理
装置は実行を待機することになるのは勿論である。 また、転送データには、データ識別子とともにジョブ
を識別するジョブ識別子が付随しているので、複数のジ
ョブを同時並行して進行することが可能となる。 〔実施例〕 以下、本発明の実施例を、図面により詳細に説明す
る。第1図は、本発明の第1の実施例を示す並列プロセ
ッサの全体構成図である。なお、以下の説明では、並列
プロセッサを構成するプロセッサエレメント(以下、PE
と略記す)間で転送されるデータと、送り先PE番号,識
別子、および制御情報を合わせたものを、データパケッ
トと呼ぶことにする。 第1図において、1はPE間のデータ転送路、2−1〜
2−2はPE(なお、PEの内部構成は2−1のみを示して
いるが、他も同一構成である)、3は演算処理装置(以
下、PUと略記す)、4はデータパケット生成送信装置
(以下、FOUと略記す)、5は受信データを一時保持し
て、PU3からの要求によりデータをPU3に送出するデータ
受信装置(以下、MUと略記す)、6はメモリ(以下、LS
Uと略記す)、61は命令解読装置、21は連想記憶装置、2
2は連想記憶装置内のデータを識別するデータ識別子(K
EY)、23は転送されてきたデータ(DATA)、24は連想記
憶アクセス装置、34はデータ転送路1上のデータパケッ
トである。第1図では、PEは3台だけ示されるが、勿論
これ以上の場合も含まれる。また、PE間データ転送路1
は、データパケット34中の転送情報を用いて、目的のPE
までデータパケット34を伝送する機能を持っている。な
お、このPE間データ転送路1は、クロスバスイッチ、多
段スイッチネットワーク、あるいはバス等、種々の構成
が考えられる。先ず、PE2−1における送信処理につい
て詳述する。 LSU6から線l40を通して命令解読装置61に送られた送
信命令は、ここで解読された後、線l41を通してFOU4に
起動をかける。FOU4は、メモリ6から線l43を通して転
送するために必要なデータを取り込み、データパケット
を生成した後、データ転送路1に送出する。演算処理装
置3は、線41を通してFOU4に起動をかけると、直ちに次
の命令を実行することができる。 次に、受信処理について詳述する。データ転送路1上
のデータパケット34は、線路l46−3を通して目的のPE2
−3に送られる。このとき、PE2−3は、データパケッ
ト34を受信し、パケット34からデータ識別子およびデー
タを連想記憶装置に取り込む。PE2−3の構成はPE2−1
と同一であるため、以下PE2−3の動作をPE2−1の内部
構成を用いて説明する。 LSU6から線l40を通して命令解読装置61に送られた受
信命令は、そこで解読されて線l50を通して連想記憶ア
クセス装置24に起動をかける。線l50から連想記憶アク
セス装置24に対して、データを識別するための識別子も
送出される。連想記憶アクセス装置24は、この識別子を
用いて連想記憶装置21をアクセスし、目的のデータを探
す。もし、目的のデータが見つかった場合には、そのデ
ータを線l49を通してPU3に送る。同時に、連想記憶アク
セス装置24から線l122を通して、データが見たかったこ
とをPU3に知らせる。また、もし目的のデータが見つか
らない場合、つまり未だ連想記憶装置21上にデータが届
いていない場合には、データが届くまでPU3は待たされ
る。 第6図は、本発明の第2の実施例を示す並列プロセッ
サの全体ブロック構成図である。第6図においては、第
1図の構成と殆んど同じであるが、データパケットが、
PE間で転送されるデータと、送り先PE番号、データ識別
子、制御情報の他に、ジョブ識別子を含んでいる点で第
1図とは異なっている。そのために、新たに、PU3内に
現在実行中のジョブを識別するジョブ識別子を保持する
レジスタ62を設けるとともに、連想記憶装置21内の記憶
エリアとして、データ識別子(KEY)22,データ(DATA)
23の他に、ジョブ識別子(JOB)26を備えている。 送信側プロセッサにおける動作も、第1図の場合と殆
んど同じであるが、次の点のみが異なっている。すなわ
ち、命令解読装置61が線l41を通してFOU4に起動をかけ
ると同時に、現在動作しているジョブの識別子を保持す
るレジスタ62の内容を線l72を通してFOU4に送出する。F
OU4は、必要なデータを線l43を通して取り込み、線l72
を通して受け取ったジョブ識別子とともにデータパケッ
トを生成する。一方、受信側のプロセッサ2−3は、受
信したデータパケット34からジョブ識別子26、データ識
別子22、およびデータ23を連想記憶装置21に取り込む。
LSU6から命令解読装置61に送られた受信命令が解読され
て、線l50を通して連想記憶アクセス装置24に起動をか
けると同時に、ジョブ識別子保持レジスタ62の内容を線
l73を通して連想記憶アクセス装置24に送出する。 第2図ないし第4図は、第1図におけるデータ送信処
理、およびデータ受信処理の動作説明図である。第2図
は、データ転送路1とデータを送信するPE2が示されて
いる。FOU4において、11は出力バッファ、12はデータパ
ケット生成部、13は入力バッファ、50〜53はデータパケ
ット生成部12で構成されたデータパケット、54はFOU4を
制御するマイクロプロセッサ、55は入力バッファ13内の
有効指示ビット、56はFOU4のLSU参照終了指示ビットで
ある。LSU6において、70は命令列格納領域、71−1〜71
−4は転送すべきデータないし情報のLSU6上の位置を保
持するパラメータアドレステーブル、30はPE番号を保持
するレジスタ、31は制御情報を保持するレジスタ、32は
データ識別子を保持するレジスタ、33はデータを保持す
るレジスタである。次にPU3において、60は命令バッフ
ァ(IQ)、61はデコーダ(Decoder)、63は条件コード
を保持するフィールド(CC)、10は入力バッファ13にセ
ットするアドレスを保持するレジスタ、62はデータを取
り込む領域としてのレジスタである。 PU3は、LSU6から送られた命令列を線l100を通して命
令バッファ(IQと略す)60に取り込む。そして、1マシ
ンサイクルごとにIQ60から順次命令を取り出し、デコー
ダ61で解読を行う。ここでは、他のPEにデータを送出す
る処理を行うために、SEND命令がデコードされた場合を
示している。 SEND命令のフォーマットは、例えば、次のような形で
ある。 上記フォーマット中、数字はビット位置を示す。命令
コードは、ここではSEND命令を示している。R2は、汎用
レジスタ(GR)のレジスタ番号を指示し、そのレジスタ
は、転送すべきデータあるいはPE番号等の情報のLSU6上
の位置を保持しているパラメータアドレステーブル71の
先頭アドレスAを保持している。パラメータアドレステ
ーブル71は、SEND命令ごとに生成され、LSU6上の転送デ
ータあるいは転送情報の位置を保持している。パラメー
タアドレステーブル71は、SEND命令を実行する前に作成
しておく必要がある。 SEND命令のオペランドは、レジスタR2指定としたが、
アドレスAの値をLSU6上に置き、そのアドレスを指定す
るようにしてもよい。 PU3がSEND命令を解読すると、PU3はオペランドで示さ
れるR2上のアドレスAを線l41を通してFOU4上の入力バ
ッファ13に送ろうとする。入力バッファ13は、パラメー
タアドレステーブル71の先頭アドレスを保持している。
すなわち、入力バッファ13には、FOU4で処理中(パケッ
ト生成処理)、あるいは処理されていないパラメータア
ドレステーブル71の先頭アドレスが保持される。実際
に、この情報が有効か否かは、有効指示ビット55で示さ
れる。 SEND命令を実行するPU3は、先ず入力バッファ13の状
態、つまり有効ビット55を調べて、空きがあるか否をチ
ェックす。もし、空きがある場合には、その位置にいオ
ペランドR2レジスタ10の情報(アドレスA)をセットす
る。この時、有効指示ビット55および参照終了指示ビッ
ト56を“1"にセットする。もし、入力バッファ13に空き
がない場合、つまり有効指示ビット55が全て“1"である
場合には、オペランドR2レジスタ10の情報(アドレス
A)の入力バッファ13にセットすることができない。セ
ットできたか否かの状態は、条件コード(CCと略す)レ
ジスタ63でチェックする。セットされるCCは、例えば次
のようになる。 CC=0 オペランドR2レジスタ10上のアドレスAが入
力バッファ13にセットされた。 CC=1 入力バッファ13が一杯であるため、アドレス
Aがセットされなかった。 SEND処理におけるPU側の処理(SEND命令の実行)はこ
こまでで終了し、これ以後はFOU4が独自に処理を行う。
また、PU3側は、次の命令を実行して、処理を行うこと
ができる。 次に、FOU4側の処理について、詳述する。 FOU4側の処理は、全て予めプログラミングされている
マイクロプロセッサ54により制御される。マイクロプロ
セッサ54は、常に入力バッファ13の有効指示ビット55の
状態を調べ、アドレスAがセットされているか否かをチ
ェックする。アドレスAがセットされていることが判る
と、マイクロプロセッサ54はそのアドレスAを用いてLS
U6にアクセスし、パラメータアドレステーブル71上の4
つの情報を用いて、転送すべきデータパケットを生成す
るための転送先PE番号(PE♯)等の情報およびデータ
を、FOU4内のデータパケット生成部12に取り込む。ここ
で、LSU6から取り込まれたデータは、送り先PEの番号
(PE♯)、データ転送の制御情報(CONTROL:例えば、全
てのPEに対して同一データを送る放送指示等)、転送デ
ータの識別子(KEY)、および転送データ(DATA)であ
る。これらのデータを用いて、データパケットが生成さ
れる。 これらのデータを全てLSU6から取り込んだとき、つま
りFOU4からLSU6へのアクセスが全て終了すると、マイク
ロプロセッサ54は入力バッファ13上の現在処理を行って
いるアドレスAに対応するLSU参照終了指示ビット56を
“0"にする。 データパケット生成部12の制御は、マイクロプロセッ
サ54から線l93を通して行われる。データパケット生成
部12で生成されたデータパケットは、出力バッファ11に
送られ、さらに線l45を通してデータ転送路1に送り出
される。 データ転送路1上のデータパケットは、自らのもつPE
♯およびCONTROLをもとに、目的の送り先PEに移動され
る。データ転送路1上に一定量以上のデータがたまって
しまった場合には、線l91を通して、データの送り出し
禁止信号が送られる。この送り出し禁止信号が送られて
くると、出力バッファ11からデータ転送路1へのデータ
の送り出しは抑止される。この時、出力バッファ11が一
杯になった場合には、線l92を通してマイクロプロセッ
サ54にデートを送り出し禁止信号が送られて、データパ
ケット生成が抑止される。 このように、SEND処理において、PU3の役割は、SEND
命令をデコードし、そのオペランドて示されたレジスタ
R2上のアドレスAをFOU4にセットするまでであって、そ
れ以外は全てFOU4が行う。 この時、FOU4は、自らデータパケットを生成するため
の情報をLSU6から取り込む。このLSU6に対しては、PU3
からもアクセスを行うので、FOU4からアクセスを行う領
域に対して、FOU4がデータの読み込みを終了するまで、
PU3はアクセスしたはならない。従って、PU3は、FOU4が
LSU6に対するアクセスが全て終了したか否かを知る必要
がある。そのために、TSEND命令を設ける。 第3図は、PU3上のTSEND命令の処理の詳細を示す図で
ある。TSEND命令のフォーマットは、SEND命令と同じで
あり、次のようになっている。 ここで、オペランドR2で示されたレジスタの中にアド
レスAがあり、TSEND命令はこのアドレスAを用いてFOU
4中の入力バッファ13を調べる。入力バッファ13にまだ
アドレスAが保持されており、かつ有効指示ビット55が
“1"の場合には、アドレスAに対するSEND処理がまた終
了していないことを示している。さらに、対応するLSU
参照終了指示ビット56がまだ“1"であれば、アドレスA
に対するFOU4からLSU6に対するアクセスがまだ終了して
いないことを示す。もし、有効指示ビット55が“1"で、
LSU参照終了指示ビット56が“0"の場合には、アドレス
Aに対するデータパケットのデータ転送路1への送り出
しは、済んでいないが、LSU6に対するFOU4からのアクセ
スは終了していることを示している。以上のような状態
は、条件コードCC63にセットされる。CC63のセットは、
例えば次のようになる。 CC=0 (アドレスAに対する)データパケットは既
にデータ転送路1に送り出された。 CC=1 (アドレスAに対する)データパケットはま
だデータ転送路1に送り出されていないが、LSU6に対す
るアクセスは終了している。 CC=2 (アドレスAに対する)データパケットはま
だデータ転送路1に送り出されてなく、LSU6に対するア
クセスもまだ終了していない。 このようにして、TSEND命令により、PU3とFOU4の排他
制御を行うことができる。 次に、第4図により、RECEIVE処理を説明する。第4
図には、データ転送路1とデータを受け取る側のPEが示
されている。 なお、連想記憶装置21における80は有効指示ビット、
PU3における62はデータを取り込む領域としてのレジス
タであり、その他は第1図〜第3図と同じである。 データ転送路1から送られてきたデータパケットは、
目的のPEに到着すると、PE♯およびCONTROL等のデータ
転送に使用された制御情報を除いて、データ識別子(KE
Y)およびデータ(DATA)を線l46を通して入力バッファ
20に送る。さらに、入力バッファ20の識別子とデータ
を、線l47を通して連想記憶装置21の空き領域に送る。
連想記憶装置21の空き領域のチェックは、有効指示ビッ
ト80により行われる。連想記憶装置21の有効指示ビット
80が全て“1"、つまり連想記憶装置21が一杯である場合
には、線l109を通して入力バッファ20に抑止信号を送
り、入力バッファ20からのデータの送り出しを抑止す
る。さらに、線l110を通してデータ転送路1に対し抑止
信号を送り、データパケットがPE2に入力するのを阻止
する。 RECEIVE処理は、PU3でRECEIVE命令をデコードするこ
とにより、処理を開始する。RECEIVE処理のフォーマッ
トは、例えば次のようになっている。 上記フォーマット中で、数字はビット位置を示す。命
令コードは、ここではRECEIVE命令を示す。R1は汎用レ
ジスタ(GR)あるいは浮動小数点レジスタ(FR)のレジ
スタ番号を指示する。GRかFRかは、例えば命令コードで
区別する。R1で示されたレジスタは、RECEIVE処理で取
り込まれたデータを格納する領域である。R2は、汎用レ
ジスタ(GR)のレジスタ番号を指示し、そのレジスタに
は、読み込むべきデータに付随している識別子(KEY)
と同じ値が予め準備されてある。 RECEIVE命令がデコードされると、線l130を通して連
想記憶アクセス装置(RECEIVE CONTROL)24に起動をか
ける。また、命令のオペランドR2レジスタ10に格納され
た識別子(KEY)を、線l120を通して連想記憶アクセス
装置24に送出する。連想記憶アクセス装置24は、線l123
を通して識別子(KEY)を連想記憶装置21に送り、一致
するKEYがあるか否かを調べる。一致したKEYが見付か
り、かつ対応する有効ビット80が“1"(つまり、有効)
であれば、対応するデータを取り込み、有効ビット80を
“0"にする。さらに、データ(DATA)を命令のR1オペラ
ンド指定されたレジスタ62に格納する。また、条件コー
ドCC63にデータが見つかったことを報告する。 もし、一致したKEYが見つからないか、あるいは見つ
かっても対応する有効ビットが“0"(つまり、無効)で
あるときには、目的のデータが連想記憶装置21に到着す
るまで、連想記憶アクセス装置24は連想記憶装置21に対
してアクセス要求を続ける。この間、PU3は連想記憶ア
クセス装置24から結果が得られないので、次の命令は実
行されない。 なお、本実施例においては、識別子(KEY)の検索を
一致としたが、これに限らず、大小関係、正負の符号等
を用いて検索することもできる。 第5図は、本発明の連想記憶アクセス装置の処理フロ
ーチャートである。 先ず、デコーダ61より線l130を通して起動信号を受け
る(201)。次に、レジスタ10より線l120を通して識別
子(KEY)を受け取る(202)。次に、線l123へ識別子
(KEY)を送り、連想記憶装置21をアクセスする(20
3)。一致した識別子(KEY)が見つかり、かつ、対応す
る有効ビット80が“1"である場合には(204,205)、対
応するデータを連想記憶値21から読み取り、線l124を通
して受け取る(206)。そのデータを線l121を通してレ
ジスタ62に送る(207)。そして、線l122を通して条件
コードCC63にデータが見たかったことを知らせる(20
8)。 第7図〜第9図は、第6図の第2実施例におけるデー
タ送信処理(SEND処理)とデータ受信処理(RECEIVE処
理)の動作説明図である。第7図では、SEND処理を示し
ているが、第2図と異なる点は、データパケット内にジ
ョブ識別子(JOB)が付加されていることである。この
ため、データパケット生成部12にジョブ識別子(JOB)
を保持するフィールド84を追加し、PU3に現在実行中の
ジョブのジョブ識別子を保持するレジスタ64を備え、入
力バッファ13に現在実行中のジョブのジョブ識別子を保
持するエリア90を付加し、連想記憶装置21にジョブ識別
子番号(JOB♯)をセットするエリア26を付加してい
る。 PU3がSEND命令を解読すると、PU3は入力バッファ13の
空きを調べ、空きがあれば、オペランドで示されたレジ
スタ(R2)10上のアドレスAを入力バッファ13に送ると
ともに、現在実行中のジョブの識別子をレジスタ64から
入力バッファ13に送る。FOU4は、先ずジョブ識別子90を
データパケット生成部12に取り込み、次にアドレスAを
用いてLSU6にアクセスし、パラメータアドレステーブル
71上の4つの情報と合わせて、データパケット生成する
ための情報を取り込む。このようにして、第1の実施例
と全く同じように、データ転送路1にデータパケットを
送出する。 第8図では、第2の実施例のTSEND命令の実行動作を
示しているが、ジョブ識別子(JOB)が付加されたこと
を除き、第3図における動作と全く同じあるため、説明
を省略する。 第9図では、第2の実施例のRECEIVE処理が示されて
いる。データ転送路1から送られてきたデータパケット
が宛先のPEに到着すると、PEはPE♯およびCONTROL等の
制御情報を除いて、ジョブ識別子(JOB♯)、データ識
別子(KEY)およびデータ(DATA)を入力バッファ20に
格納する。さらに、連想記憶装置21の各フィールドに転
送される。RECEIVE命令がデコードされると、デコーダ6
1から線l75を通して連想記憶アクセス装置24に起動をか
ける。また、レジスタ64から線l73を通してジョブ識別
子(JOB♯)を、さらに命令のオペランド(R2)レジス
タ10から線l74を通してデータ識別子(KEY)を、それぞ
れ連想記憶アクセス装置24に送る。連想記憶アクセス装
置24は、線l34を通してジョブ識別子およびデータ識別
子を連想記憶装置21に送り、一致するJOB♯およびKEYの
組があるか否かを調べる。一致した組が見つかり、かつ
対応する有効ビット25が“1"つまり有効であれば、対応
するデータ(DATA)を取り込み、対応する有効ビット25
を“0"にする。さらに、データ(DATA)をR1オペランド
レジスタ62に送り、格納する。また、条件コードCC63に
対し、データが見つかったことを報告する。 第10図は、本発明の第2の実施例の連想記憶アクセス
装置の動作のフローチャートである。 先ず、デコーダ61から起動信号を受けるとともに(30
1)、レジスタ64からジョブ識別子(JOB♯)を受け取る
(302)。次に、レジスタ10からデータ識別子(KEY)を
受け取る(303)。これらが揃った時点で、ジョブ識別
子とデータ識別子を用いて、連想記憶装置21をアクセス
する(304)。一致したジョブ識別子およびデータ識別
子の組が見つかったか否かを調べ(305)、もし見つか
ったときには、対応する有効ビットが“1"であるか否か
を判別する(306)。有効ビットが“1"であれば、対応
するデータを記憶装置より読み出して(307)、PU3のレ
ジスタ62に送る(308)。最後に、条件コードCCに対し
て、データが見つかったことを報告する(309)。 このように、本実施例においては、並列プロセッサを
構成する各プロセッサ相互間で通信を行う場合、受信側
プロセッサでは、転送されてきたデータをそのデータが
必要な時に識別子を用いて取り込むので、データ到着の
度ごとに割込みが起こるようなことはない。また、同じ
送信あるいは受信命令が分岐処理により、複数回実行さ
れる場合にも、プログラム中で識別子の値を変えること
により、転送データを識別することが可能であって、デ
ータの到着の順序性をプロセッサ間データ通信路で保障
する必要がない。さらに、送信側プロセッサで、演算処
理の中からデータを送信する処理の大部分を独立して処
理することが可能であるため、プロセッサの送信オーバ
ヘッドを低減できる。また、第2の実施例においては、
転送データに、データ識別子とともにジョブを区別する
ジョブ識別子が付随しているため、複数のジョブを同時
に進行させることが可能である。 〔発明の効果〕 以上説明したように、本発明によれば、データを受信
するプロセッサの実行時間中におけるデータ受信処理時
間を低減し、かつデータを送信するプロセッサ内に演算
処理と送信専用のサブプロセッサを設けて、主プロセッ
サのデータを送信にかかる負荷を小さくしているので、
プロセッサの通信オーバヘッドを低減することが可能で
ある。また、ジョブの多重処理を行う場合でも、ジョブ
識別子を用いて処理を行っているので、複数ジョブを同
時に進行させることができる。
【図面の簡単な説明】 第1図は本発明の第1の実施例を示す並列プロセッサの
構成図、第2図は第1図のデータ送信処理の動作説明
図、第3図は第1図のTSEND命令の動作を示す図、第4
図は第1図のデータ受信動作の説明図、第5図は第1図
の連想記憶アクセス装置の処理フローチャート、第6図
は本発明の第2の実施例を示す並列プロセッサの構成
図、第7図は第2図のデータ送信処理の動作説明図、第
8図は第2図のTSEND命令の動作説明図、第9図は第2
図のデータ受信動作の説明図、第10図は第2図の連想記
憶アクセス装置の処理フローチャートである。 1:データ通信路、2−1,2−2,2−3:プロセッサエレメン
ト(PE)、3:演算処理装置(PU)、4:データパケット生
成送信装置(FOU)、5:データ受信装置、6:メモリ(LS
U)、12:データパケット生成部、13:入力バッファ、21:
連想記憶装置、24:連想記憶アクセス装置、61:命令解読
装置、10,62,64:レジスタ、63:条件コード(CC)、70:
命令列格納エリア、71−1〜71−4:パラメータアドレス
テーブル、30〜33:転送制御情報格納用レジスタ、54:マ
イクロプロセッサ。
フロントページの続き (72)発明者 長島 重夫 国分寺市東恋ヶ窪1丁目280番地 株式 会社日立製作所中央研究所内 (72)発明者 村松 晃 川崎市麻生区王禅寺1099番地 株式会社 日立製作所システム開発研究所内 (72)発明者 吉原 郁夫 川崎市麻生区王禅寺1099番地 株式会社 日立製作所システム開発研究所内 (72)発明者 中尾 和夫 川崎市麻生区王禅寺1099番地 株式会社 日立製作所システム開発研究所内 (56)参考文献 特開 昭60−169966(JP,A) 特開 昭58−127249(JP,A) 特開 昭61−59554(JP,A) 特開 昭55−61836(JP,A) 特開 昭54−127653(JP,A)

Claims (1)

  1. (57)【特許請求の範囲】 1.通信路を介して接続された複数台のプロセッサから
    なる並列プロセッサシステムにおいて、 該複数のプロセッサの各々は、データを処理する演算処
    理手段と、該演算処理手段における処理で生成されたデ
    ータを前記通信路の送出するデータ送出手段と、前記通
    信路からのデータを受信するデータ手段手段とを有し、 前記演算処理手段は、該データ送出手段によるデータ送
    出処理または該データ受信手段によるデータ受信処理と
    並行して演算処理することが可能であり、 かつ、前記複数のプロセッサのうちの一つが、前記デー
    タ送出手段によって、自演算処理手段で生成したデータ
    に、該データを識別するためのデータ識別子を付与して
    通信路に送出するとともに、該複数のプロセッサのうち
    の他の一つ以上のプロセッサが、前記データ受信手段に
    よって該データと該データ識別子を受信して保持し、前
    記演算処理手段によって命令解読結果に基づいて該デー
    タ識別子を参照して前記受信手段から必要なデータを取
    り出して処理することを特徴とする並列プロセッサシス
    テム。 2.前記データ受信手段は、前記通信路から受信したデ
    ータおよび該データに対応する識別子を格納する記憶手
    段と、命令解読結果に基づき前記記憶手段から所望のデ
    ータ識別子を有するデータを取り出す記憶アクセス手段
    とを有し、 前記演算処理手段は、データ送信命令および前記記憶手
    段からの命令を解読するとともに、前記データ送信手段
    に起動をかけた後にデータ送信処理と並行して演算処理
    を実行するものであることを特徴とする特許請求の範囲
    第1項記載の並列プロセッサシステム。 3.前記記憶手段は、連想記憶手段から構成され、前記
    処理可能なデータとデータ識別子を格納し、 前記記憶アクセス手段は、読み出すべきデータを識別す
    るデータ識別子を前記演算処理手段から受け取り、該デ
    ータ識別子に基づき前記連想記憶手段をアクセスして該
    当するデータを読み出して前記演算処理手段に渡すこと
    を特徴とする特許請求の範囲第2項記載の並列プロセッ
    サシステム。 4.前記複数のプロセッサのうちの一つが、前記データ
    送出手段によって、自演算処理手段で生成したデータ
    に、該データを一義的に識別することが可能なデータ識
    別子と実行中のジョブを識別するジョブ識別子を付与し
    て前記通信路に送出するとともに、該複数のプロセッサ
    のうちの他の一つ以上のプロセッサが、前記データ受信
    手段によって該データと該データ識別子と該ジョブ識別
    子を受信し、前記演算処理手段によって命令解読結果に
    基づき該データ識別子と該ジョブ識別子を参照して必要
    なデータを取り出して処理することを特徴とする特許請
    求の範囲第1項〜第3項のいずれか1項に記載の並列プ
    ロセッサシステム。 5.前記データ受信手段は、前記通信路から受信したデ
    ータおよび該データ識別子と該ジョブ識別子を格納する
    記憶手段と、命令解読結果に基づき前記記憶手段から所
    望のデータ識別子とジョブ識別子を有するデータを取り
    出す記憶アクセス手段とを有し、 前記演算処理手段は、データ送信命令および前記記憶手
    段からの命令を解読するとともに、前記データ送信手段
    に起動をかけた後にデータ送信処理と並行して演算処理
    実行するものであることを特徴とする特許請求の範囲第
    4項記載の並列プロセッサシステム。 6.前記記憶手段は、連想記憶手段から構成され、前記
    処理可能なデータとデータ識別子とジョブ識別子を格納
    し、 前記記憶アクセス手段は、読み出すべきデータを識別す
    るデータ識別子とジョブ識別子を前記演算処理手段から
    受け取り、該データ識別子とジョブ識別子に基づき前記
    連想記憶手段をアクセスして該当するデータを読み出し
    て前記演算処理手段に施すことを特徴とする特許請求の
    範囲第5項記載の並列プロセッサシステム。 7.データ転送路(1)を介して相互に接続され、並列
    動作が可能な複数のプロセッサ(2)を有する並列プロ
    セッサシステムにおいて、 前記プロセッサ(2)の各々は、他プロセッサから、該
    他プロセッサで生成されたデータを受信する受信手段
    (5)と、 自プロセッサに割り当てられた命令を実行する処理装置
    (3)と、 他プロセッサへデータを送信する送信手段(4)とを有
    し、 前記送信手段(4)は、前記処理手段(3)から送出さ
    れた送信命令に基づいて該処理手段(3)によって選択
    された少なくとも1つの受信プロセッサ(2)にデータ
    および該データを識別するための識別情報を送信する送
    信処理手段(54)を含み、 前記受信側プロセッサ(2)の受信手段(5)は、該受
    信側プロセッサ(2)の処理手段(3)で実行されるデ
    ータ処理と並行して前記データおよび該データを識別す
    るための識別情報を受信することが可能な記憶手段(2
    1)を含み、 前記処理手段(3)は、転送されたデータが必要となっ
    た時点で受信命令を解読して受信に必要なデータを識別
    するための識別情報を前記受信手段に送り、 前記受信手段(5)は、前記識別情報に基づいて受信命
    令ごとに記憶手段(21)内に必要なデータが存在するこ
    とを検出する手段と、必要なデータが存在したときに、
    受信プロセッサ(2)の処理手段(3)によって処理す
    るためにそのデータを読み出す手段を含むことを特徴と
    する並列プロセッサシステム。 8.複数の命令列を実行する複数のプロセッサと該複数
    のプロセッサ間を接続するデータ転送路からなり、 該複数のプロセッサのそれぞれは該命令列を実行し、 該複数の命令列は、複数のデータを生成し、また演算に
    使用する複数のデータを処理し、 前記複数のプロセッサのそれぞれは、実行するべき命令
    列、及び、前記命令列によって生成または演算に使用す
    るデータを保持するためのメモリ(6)と、他のプロセ
    ッサから転送されるデータを保持する受信メモリ(21)
    とを有する並列プロセッサによる複数の命令列の実行方
    法であって、 (a)複数のプロセッサによって並列に複数の命令列を
    実行するステップ、 (b)データを生成する命令列によって生成されたデー
    タおよび該データを識別するためのデータ識別子を、デ
    ータを生成したプロセッサから該データを演算に使用す
    るプロセッサへ転送することを要求するステップ、 (c)該データを生成する命令列によるデータおよび該
    データ識別子の転送を要求するステップの実行に応答し
    て、該データを生成したプロセッサによる命令列の実行
    および該データを演算に使用するプロセッサによる命令
    列の実行と並列に、転送プロセッサから受信プロセッサ
    の該受信メモリへデータおよびデータ識別子を該データ
    転送路を介して転送するステップ、および (d)該データを演算に使用するプロセッサの命令列の
    命令解読結果に基づいて該データ識別子を参照して必要
    なデータを選択的に取り込んで処理するステップ を有することを特徴とする並列プロセッサによる複数の
    命令列の実行方法。
JP61182361A 1986-08-01 1986-08-01 並列プロセッサシステムおよび並列プロセッサによる複数の命令列の実行方法 Expired - Lifetime JP2748359B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP61182361A JP2748359B2 (ja) 1986-08-01 1986-08-01 並列プロセッサシステムおよび並列プロセッサによる複数の命令列の実行方法
DE3751229T DE3751229T2 (de) 1986-08-01 1987-07-31 Parallelrechnersystem, geeignet für asynchrone Datenübertragung.
EP87111124A EP0258650B1 (en) 1986-08-01 1987-07-31 Parallel computer system capable of asynchronous data transmission

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61182361A JP2748359B2 (ja) 1986-08-01 1986-08-01 並列プロセッサシステムおよび並列プロセッサによる複数の命令列の実行方法

Publications (2)

Publication Number Publication Date
JPS6337457A JPS6337457A (ja) 1988-02-18
JP2748359B2 true JP2748359B2 (ja) 1998-05-06

Family

ID=16116970

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61182361A Expired - Lifetime JP2748359B2 (ja) 1986-08-01 1986-08-01 並列プロセッサシステムおよび並列プロセッサによる複数の命令列の実行方法

Country Status (1)

Country Link
JP (1) JP2748359B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6500461B2 (ja) * 2015-02-02 2019-04-17 日本電気株式会社 情報処理装置、情報処理方法、及び、プログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54127653A (en) * 1978-03-28 1979-10-03 Toshiba Corp Data processor
JPS598844B2 (ja) * 1978-10-31 1984-02-28 富士通株式会社 デ−タ転送方式
JPS58127249A (ja) * 1982-01-26 1983-07-29 Nec Corp デ−タ流量制御回路
JPS60169966A (ja) * 1984-02-14 1985-09-03 Mitsubishi Electric Corp デ−タ処理装置
JPH0630075B2 (ja) * 1984-08-31 1994-04-20 株式会社日立製作所 キャッシュメモリを有するデータ処理装置

Also Published As

Publication number Publication date
JPS6337457A (ja) 1988-02-18

Similar Documents

Publication Publication Date Title
EP0297893B1 (en) Apparatus and method for recovering from page faults in vector data processing operations
CA2338008C (en) Method and apparatus for identifying splittable packets in a multithreaded vliw processor
JP3630118B2 (ja) スレッド終了方法及び装置並びに並列プロセッサシステム
EP1050803B1 (en) Guarded computer instruction execution
US6269440B1 (en) Accelerating vector processing using plural sequencers to process multiple loop iterations simultaneously
JP2004038337A (ja) 命令フェッチ制御装置
US7096343B1 (en) Method and apparatus for splitting packets in multithreaded VLIW processor
US6301654B1 (en) System and method for permitting out-of-order execution of load and store instructions
JP2003263331A (ja) マルチプロセッサシステム
JP3721780B2 (ja) 複数のパイプライン処理機構を有するデータ処理装置
JP2748359B2 (ja) 並列プロセッサシステムおよび並列プロセッサによる複数の命令列の実行方法
JPH04321130A (ja) 分岐予測装置
CN202548823U (zh) 非阻塞协处理器接口系统
JP3554211B2 (ja) マイクロプログラムを用いた命令制御装置および方法
CN116841614B (zh) 乱序访存机制下的顺序向量调度方法
IE79236B1 (en) Apparatus and method for recovering from page faults in vector data processing operations
JP2005108086A (ja) データ処理装置
JP2814683B2 (ja) 命令処理装置
JPS62123552A (ja) 中央処理装置割当て方式
JP3547562B2 (ja) マイクロプロセッサ
JP2795312B2 (ja) プロセス間通信スケジューリング方式
JP2906799B2 (ja) 情報処理装置
JP2901573B2 (ja) スーパースカラー方式の情報処理装置
JPS63155360A (ja) 複合情報処理装置
JPS63223857A (ja) 並列プロセツサ