JPH01194056A - 並列プロセッサ - Google Patents

並列プロセッサ

Info

Publication number
JPH01194056A
JPH01194056A JP63017073A JP1707388A JPH01194056A JP H01194056 A JPH01194056 A JP H01194056A JP 63017073 A JP63017073 A JP 63017073A JP 1707388 A JP1707388 A JP 1707388A JP H01194056 A JPH01194056 A JP H01194056A
Authority
JP
Japan
Prior art keywords
data
identifier
local memory
address
processor
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.)
Pending
Application number
JP63017073A
Other languages
English (en)
Inventor
Teruo Tanaka
輝雄 田中
Naoki Hamanaka
濱中 直樹
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 JP63017073A priority Critical patent/JPH01194056A/ja
Priority to EP19890101462 priority patent/EP0326164B1/en
Priority to US07/303,626 priority patent/US5297255A/en
Priority to DE1989628173 priority patent/DE68928173T2/de
Publication of JPH01194056A publication Critical patent/JPH01194056A/ja
Priority to US08/215,262 priority patent/US5710932A/en
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [産業上の利用分野コ 本発明は並列プロセッサシステムにおけるプロセッサ間
のデータ通信による性能低下を抑える方式に関するもの
である。
[従来の技術] 従来、ローカルメモリを持ち、複数のプロセッサエレメ
ントから構成され、他のプロセッサエレメントのローカ
ルメモリにアクセス可能な並列計算機においては、ある
プロセッサエレメントが他のプロセッサエレメントのロ
ーカルメモリを介してデータを受は渡すときに、データ
の参照順序を保証するためには渡す側のプロセッサエレ
メントがデータをローカルメモリに書き込んだ後に、こ
のデータを読み出すプロセッサエレメントに対して割り
込みかけるようになっていた。この種の装置として関連
するものは、例えば、アイ・イー・イー・イー、198
5インターナシヨナル・コンファレンス・オン・パラレ
ル・プロセッシング予稿集第782頁から788頁(I
EEE、PR○CEEDINGS  OF  THE 
 1985INTERNATIONAL  C0NFE
RENCE  ON  PARALEL  PROCE
SSING、pp782−788)において論じられて
いる装置があげられる。
一方、共有メモリで結合され、複数のプロセッサエレメ
ントからなる並列計算機においては、あるプロセッサエ
レメントが他のプロセッサエレメントに共有メモリを介
してデータを受は渡すときに、共有メモリの客語にタグ
を設けておき、このタグでその語の内容が書き込み済み
(データが有効)か、未書き込み(データが無効)かを
表わすようにした装置がある。例えば、リアルタイム・
シグナルプロセッシングI V、 Vol、298(1
981年8月)第241頁から第248頁(REAL−
TIME  5IGNAL  PROCE S S I
 NG  I V、 Vol、298 (Aug198
1)、Pp241−248)において論じられている装
置がこれに相当する。
[発明が解決しようとする課題] 上記従来技術を合わせて、各プロセッサがタグを設けた
ローカルメモリをつけ、このタグでその語の排他制御を
行う並列プロセッサが考えられる。
このような並列プロセラにおいては、受信プロセッサは
上のタグを検索してデータを取り込むため、複数のデー
タが必要な場合1つ1つのデータを順番に取り込む必要
がある。この時一般に複数のデータは複数の送信プロセ
ッサから送ってくれるため、どのような順番でローカル
メモリに到着しているかわからない。そのため受信プロ
セッサが必要以上にデータの到着を待たされることがわ
かった。
たとえば、他のプロセッサで計算された結果A。
B、C,Dの4つのデータを受信し、そのうちの最大値
を示すデータを検索する処理を受信プロセッサが行う場
合、受信プロセッサ上の処理手順(プログラム)がロー
カルメモリからA、B、C。
Dの順にデータを取り込むようになっていたと仮定する
と、B、C,Dのデータが受信バッファに届くまでは受
信プロセッサは動作を進めることができない。
さらに、上記従来技術では、ひとつの受信確認命令で1
つのデータの確認を行なうようになっているため、前述
したような複数のプロセッサから送られてくる複数のデ
ータの全ての到着を確認する必要がある処理においては
、転送データと同数の受信確認命令を実行しなければな
らない。本発明の目的は、プロセッサ間のデータ通信に
おいてデータを受信する受信プロセッサは、 (1)ローカルメモリに届いているデータから順に受信
プロセッサにデータを区別をつけて取り込むことを可能
にすること、 (2)他のプロセッサから送られてくるデータのメモリ
へのとりこみ演算と並列に行ない、他プロセツサから送
られてくるデータがすでに到着したか否かを効率よく確
認すること であり、それらによって、逐次実行用のプログラムを並
列計算機用に書き直すときに必然的に生じるプロセッサ
間データ通信に関する処理のオーバヘッドを軽減し、並
列計算機を効率よく動作させることにある。
[課題を解決するための手段] 上記目的は、各々が語単位にタグのついたローカルメモ
リを持つ複数のプロセッサから構成される並列プロセッ
サにおいて、他のプロセッサに送信すべきデータを、そ
のデータが属するデータ群を識別するためのメイン識別
子とそのデータ群中の他のデータから送信データを識別
するためのサブ識別子とから生成した転送先プロセッサ
内ローカルメモリのアドレスに対して送信し、受信プロ
セッサでは指定されたローカルメモリ上のアドレスにデ
ータを格納すると同時に対応するタグを有効とし、さら
に、ローカルメモリから受信データを読み出す場合は、
検索用のメイン識別子をもとに、受信データ群のアドレ
スを生成し、そのアドレスをもとに、ローカルメモリか
ら所望の受信データを読み出し、さらに読み出したアド
レスからその受信データに対応するサブ識別子を生成し
、受信データとサブ識別子を取り込むことにより、達成
された。
さらに目的(2)は、プロセッサ間データ転送における
受信側のプロセッサでのプログラム実行の観点から見て
、相互に関連するデータ群を、その中のデータの到着順
にプロセッサの命令実行と独立に受信できるようにする
ことにして達成される。さらに、たとえば、相互に関連
するデータ群の全てが到着したか否かの確認を受信の回
数で行なうことにより達成される。
〔作用] 解決手段(1)により、受信プロセッサでたとえば交換
側が成立つような処理を行う場合、その処理に必要なデ
ータをメイド識別子MKを用いてアドレス生成し、ロー
カルメモリに到着しているデータから順にサブ識別子S
Kと共に取り出すことにより、受信プロセッサが遊体す
る時間を最小にすることができる。
さらに解決手段(2)より、プロセッサに到着したデー
タの受信を、プロセッサの命令実行と独立行なうことに
より、データの受信のための命令実行数を削減できる。
また、複数のデータの受信完了の確認を受信したデータ
数で行なうことにより、データの受信確認をデータごと
に行なう命令を用いる場合と比べて受信確認に必要な命
令実行数を削減できる。
[実施例コ 以下、本発明の第1の実施例を、図面により詳細に説明
する。第1図は、本発明の第1の実施例を示す並列プロ
セッサの全体構成図である。
第1図において、1はプロセッサエレメント間のデータ
転送路、2−1〜2−3はプロセッサエレメント(以下
、PEと略す)である。各PEの内部構成は互いに同一
構成である。3はPE内のローカルメモリ、4は受信バ
ッファ、5は送信バッファ、6は命令処理ユニット、7
はメモリ制御、13は命令制御、14は受信制御、15
は汎用レジスタ、16はスカラ演算器、17はベクトル
処理ユニット、30は命令レジスタ、31は命令レジス
タ、3ではプログラムカウンタPCである。
ローカルメモリ3は、プログラムあるいはデータを保持
し、各語単位(本実施例では1語は4バイトとする)に
1ビツトずつのタグを格納するタグ部3−1がある。タ
グ部は、本発明を実施するために新たに設けられた部分
である。
命令フェッチ31は、ローカルメモリ3のプログラムカ
ウンタPC32に示された命令アドレスから順次命令を
命令レジスタ30に読出し、読出された命令は命令解読
部13にて解読される。読出された命令が汎用レジスタ
群15内のいずれかを指定する場合、その指定されたレ
ジスタ番号をそこに供給し、あるいは読出された命令が
指定する演算を実行するように演算部16.17を制御
する。ベクトル処理ユニット17は、第4図にその詳細
を示すように、ベクトル演算器71とベクトルレジスタ
群70からなる。
第1図ではPEは3台だけ示されているが、もちろんこ
れ以外の場合も含まれる。PE間データ転送路1はメツ
セージを、そのメツセージ中の送信先PE番号を有する
PEまで伝送する。なお、このPE間データ転送路1は
、クロスバスイッチ、多段スイッチネットワーク、ある
いはバス等、種々の構成が考えられる。
PE2−1を用いて、PE間のデータ転送処理について
説明する。
まず、送信処理を説明する。メツセージの送信を要求す
る命令を送信命令と呼ぶ。この命令の形式はたとえば以
下の通りである。
5END  GRI、GR2,GR3,GR4、ここで
、5ENDはオペコード、GRI〜GR4は、送信すべ
きデータ、送信すべきデータに対するメイン識別子MK
およびサブ識別子SK、および転送先PE番号をそれぞ
れ保持する汎用レジスタの番号である。さらに、(GR
2)+1の番号の汎用レジスタには、メイン識別子MK
の長さがあらかじめ保持されている。
この送信命令が命令フェッチ回路31で読み出され、命
令レジスタ30にセットされると、命令解読部13は、
命令を解読し、上記汎用レジスタの内容である転送先P
E番号と転送データを線Q20を介して送信バッファ、
5に送出する。さらに、汎用レジスタの内容であるメイ
ン識別子MKに、サブ識別子SKおよびメイン識別子長
りをアドレス生成部18に送出する。アドレス生成部1
8は、3つの入力情報をもとに送信先PE内ローカルメ
モリのアドレスを生成し、線Q21を介して送信バッフ
ァ5に送出する。
このアドレス生成部18の一実施例を第2図に示す。入
力されたメイン識別子長りは減算回路40を介して、左
シフタ41のシフトカウント情報となり、メイン識別子
MKを(32−L)ビット左にシフトする(以下、本実
施例では、ローカルメモリのアドレス空間は32ビツト
と仮定する)。さらに、この結果にサブ識別子SKをシ
フタ42にて2ビツト左シフトした結果との論理和をO
R図絡路42とり、転送先のPEのローカルメモリのア
ドレスとして線Q21を介して送信バッファ5にセット
する。
第1図にもどり、送信バッファ5で生成されたメツセー
ジは、データ転送路1に送出され、メツセージ内の送信
先PE番号を有するPEに転送される。
本発明で特徴的なのは、送信するデータに対する識別子
を、そのデータが属するデータ群を表わすメイン識別子
MKとそのデータ局内でそのデータを他のデータから識
別するためのサブ識別子SKとから構成し、そのメイン
識別子MKとサブ識別子SKにより転送先PE内の格納
先ローカルメモリのアドレスを生成することにある。た
とえば、大量のデータ群の中から最大値を見つける場合
、まず、前記データ群を各プロセッサに分離し、各プロ
セッサがそれぞれ担当したデータ群の中から最大値を検
出し、そのプロセッサごとに1つずつ求まったプロセッ
サ内の最大値データをデータ群すべての中の最大値を検
索するためにある1つのプロセッサに、転送することを
考える。
この時、送信すべきデータとともに、メイン識別子MK
は、転送データが最大値検索のためのデータであること
を示し、サブ識別子SKは前記データ群中のデータの番
号を示すようにすることができる。
別の例として、送信すべきデータがあるベクトルデータ
内の1つの要素の場合、メイン識別MKは転送すべきデ
ータが属するベクトルデータを示し、サブ識別子SKは
ベクトルデータ内のその要素番号を示す。
この時の送信命令の形式は以下のようになる。
5END  VRI、GR2,GR3,GR4゜ここで
、VRIは送信すべきベクトルデータを保持するベクト
ルレジスタ番号、GR2はデータに対する識別子MK、
GR3はベクトルデータ内の転送すべき要素番号および
GR4は転送先のPE番号をそれぞれ保持する汎用レジ
スタの番号である。さらに、GR2+1の番号の汎用レ
ジスタには識別子MKの長さがあらかじめ保持されてい
る。
VRIとGR3をもとにベクトル処理ユニット17内の
ベクトルレジスタ70(第4図)からデータを取り出し
、g22を介して、送信バッファ5に転送データが送ら
れる。これ以外の転送情報も汎用レジスタから転送バッ
ファ5に送られる。
この送信命令をGR3で指定される汎用レジスタの内容
、つまり要素番号を変更しつつくり返すことにより、ベ
クトルレジスタ中のベクトルデータをすべて転送するこ
とが可能となる。
データ転送路1とのメツセージ内の送信先PE番号がP
E2−1の場合、そのメツセージ内のメイン識別子MK
およびサブ識別子SKから構成されたアドレス、および
データが、それぞれ受信バッファ4−1および受信バッ
ファ4−2に保持され、さらに、書き込み制御34を起
動する。この書き込み制御34により、レジスタ4の内
容はメモリ制御7に送られ、レジスタ4−1を示したロ
ーカルメモリ上のアドレスにレジスタ4−2のデータを
格納し、さらに書き込み制御34は1発生回路8を起動
し、格納内アドレスに対応するタグを1にセットする。
この時、メモリ制御7はローカルメモリ3に対する書き
込み制御31と命令制御6により制御されるメモリアク
セス制御33によるアクセス要求との排他制御を行う。
メモリ制御7は通常の計算機システムのメモリ制御と類
似のものである。通常の計算機システムにおいても、C
PUからの読み出し/書きみみアクセスとIloからの
読み出し/書き込みアクセスの排他制御が行われている
。異なる迄は、(1)書き込み制御34からは書き込み
要求しかないこと、(2)語単位にタグがあるためにタ
グの設定/解除処理があることの2点である。
こうして、一つのPEから他のPEへの一つのメツセー
ジの送信が完了する。
次に各PEにおける。ローカルメモリからの受信データ
の読出しにつづいて説明する。
この受信データの読出しを要求する命令を受信命令と呼
ぶ。また以下では、この命令の実行により読出されたデ
ータを受信データと呼ぶ。本実施例では幾つかの受信命
令である。その一つの命令の形式は次の通りである。
RECEIVE  GRI、GR2,GR3ここで、R
ECE IVEは、この命令のオペコード、GRI、G
R2,GR3はそれぞれ、受信したデータを格納すべき
汎用レジスタの番号、検索に用いるメイン識別子MKを
保持している汎用レジスタの番号およびそのメイン識別
子長りを保持している汎用レジスタの番号を示す。なお
、受信したデータに付加されているサブ識別子SKは番
号GR1+1の汎用レジスタに格納する。
この受信命令が命令フェッチ回路31で読み出され、命
令レジスタ30にセットされ、さらに命令解読13にお
いて読解すると、受信命令で指定した2つの汎用レジス
タGR2,GR3のメイン識別子MKおよびメイン識別
子長りを、それぞれ線Q26および線Q27を介して受
信制御14に送り、受信制御14を起動する。さらに、
受信データをローカルメモリ3から読み出すための読み
出し要求をメモリアクセス制御33で発生させる。
受信制御14は受は取った2つの情報をもとに、受信デ
ータを発生するまで、受信データ群が到着する領域内の
アドレスを順に生成し、ローカルメモリ上のそのアドレ
スに対応するタグが有効であるか否かを検索する。
受信データが到着している場合(対応するタグが有効と
なっている場合)はそのデータに対応するサブ識別子を
生成し、線f128を介して送られてくるデータととも
に、1jAQ29を介して、受信命令で指定された汎用
レジスタに保持する。つぎに、ローカルメモリの検索さ
れたデータに対するタグを無効にし、さらに、線Q39
を介して、目的のデータが見つかったことを示す信号″
1″′をスカラ演算器16内の条件コードレジスタcc
19にセットする。
ローカルメモリ上の受信データが到着する領域内に受信
データが1つもなかった場合(受信データ群が到着する
領域内の対応するタグがすべて無効を示している場合)
は、線Q39を介して、目的のデータが見つからなかっ
たことを示す信号″0′を条件コードレジスタ19にセ
ットする。
受信制御14の1実施例を第3図に示す。
線Q27から送られてきたメイン識別子長りは減算器5
0を介して、シフタ51のシフト数となる。数f126
に送られてきたメイン識別子MKは、シフタ51で(3
2−L)ビット左シフトされ、レジスタ52にセットさ
れる。このレジスタ52の内容は、線f166を介して
、ローカルメモリ上との受信データ群の格納される領域
の先頭アドレスとして、ローカルメモリに送られ、さら
に、線63を介して、メモリアクセス制御33(第1図
)を起動する。メモリアクセス制御33はローカルメモ
リに対して読み出し要求を行う。レジスタ52の内容は
+4加算器53により+4ずつ加算され、受信データが
見つかるか、あるいはローカルメモリ上の受信データ群
の格納される領域をすべて検索しつくすまで、線Q60
を介してローカルメモリに供給されるとともに、メモリ
アクセス制御33から読み出し要求が出る。
受信データが見つかった場合は、対応するタグ情報it
 I I+が、ローカルメモリ3(第1図)から、線Q
、61を介してレジスタ58に送り込まれる。
レジスタ58に“′1″がセットされると、無効化回路
59が起動され、+261を介して、ローカルメモリ3
(第1図)の受信データを読み出したアドレスに対する
タグを無効It OIFにするタグ無効化信号を送る。
さらに、論理和回路54、線Q63を介して、メモリア
クセス制御33(第1図)に対して、読み出し要求の終
了を報告し、線Q39を介して、条件コードレジスタc
c19 (第1図)をセットする。そして、レジスタ5
5に保持されているタグを無効にする信号55を233
を介してローカルメモリに送る。さらに、受信データを
線Q28(第1図)を介して、受信命令で指定されてた
汎用レジスタに送り、その時の検索したアドレスの下(
32−L)ビットを切り出し、さらにシフト57で右に
2ビツトシフトし、それをサブ識別子SKとして、線Q
29を介して、指定された汎用レジスタに送る。
受信データ群が格納される領域をすべて検索しつくした
場合(つまり、送信データが見つからなかった場合)は
、+4加算回路の(32−L)桁目の桁上がりで判別し
、論理和回路54、Q31を介してメモリアクセス制御
33(第1図)に対して、読み出しの要求の終了を報告
し、線Ω39を介して、条件コードレジスタcc19に
受信データが見つからなかったことII OIIをセッ
トする。
こうして、一つの受信命令の実行を終了する。
この受信命令の実行後、命令フェッチ31は、次の命令
として読意されているデータ受信に成功したか否かを判
別するための、それ自体周知の条件分収命令(Bran
ch on Condition命令)をメモリ3から
読出し、実行するがこの命令で条件コードレジスタ19
の内容がOであれば前述の受信命令に分岐する。もし、
条件コードレジスタ19内の内容が1であれば、この条
件付分岐命令につづく命令列をメモリ3から読出し実行
する。この命令列は、受信したデータに演算を施すため
の、命令列がある。たとえば、同一のメイン識別子を有
するデータ、すなわち同一群内のデータの内、最大値を
有するデータを検索する場合である。受信命令の実行時
に、データとともにサブ識別子を受信したのは、最大値
を有するデータを識別する番号としてサブ識別子SKを
用いるためである。
以下簡単にこの最大値検索用のスカラ命令列を説明する
。汎用レジスタ群15の一つの汎用レジスタこの番号を
GR4とするを最大値格納用に定めておき、他の一つの
汎用レジスタ(この番号をGR5とする)をその最大値
を有するデータのサブ識別子格納用に定めておきそれら
の汎用レジスタの初期値をいずれもOとしおく。受信命
令および条件付分岐命令の次の命令として、番号GRI
の汎用レジスタ内にある受信したデータと番号GR4の
汎用レジスタ内のデータの比較をスカラ演算器16で実
行し、大きい方のデータを番号GR4の汎用レジスタに
格納する処理および番号(GR1+1)の汎用レジスタ
内にある受信したデータに対するサブ識別子SKと番号
GR5の汎用レジスタにあるサブ識別子SKの内の一方
を上記比較結果に応じて選択して番号GR5の汎用レジ
スタに格納する処理を実行する命令列を用いる。
この命令列の実行後、受信したデータの総数をカウント
し、その数があらかじめ定めた要素数に達していないか
により分岐を行うために計数分岐命令(Branch 
on Count Register)を実行する。す
なわち、ある番号GR6の汎用レジスタにあらかじめ必
要受信要素数を記憶しておき、この命令の実行時にその
要素数を1だけカウントダウンし、その値が0でなけれ
ば、この命令で指定するある汎用レジスタに記憶してあ
ったアドレスの命令ヘジャンプする。このアドレスを上
記受信命令のアドレスとすることにより、受信要素数が
あらかじめ定めた必要受信要素数に達っしていない場合
に、再度、受信命令が実行されることになる。
このように、前述の受信命令では、ローカルメモリ3か
らメイン識別子MKで指定された複数のデータを、サブ
識別子SKの値に関係なし、読出すことができ、データ
転送路から後続のデータがローカルメモリ3に送出され
ている間に、受信命令で読出したデータに対する演算を
実行できる。
このように、本実施例では同一庫内のデータをそれらに
サブ識別子SKの違いに関係なくローカルメモリから読
出し、処理することができる。
本実施例で用いる他の受信命令は、 RECEIVE  VRI、GRI、GR3の形式を有
する。ここでGR2,GR3は先に通入た命令と同じく
、メイン識別子MKおよびその長さを示すメイン識別子
長1である。また、VRlはこの受信命令で受信された
データを格納するベクトルレジスタの番号を示す。すな
わち、この命令は、メイン識別子MKが一致するデータ
を受信制御14を用いてローカルメモリ3から読出し、
この命令で指定する番号VRIのベクトルレジスタに格
納することを要求する命令である。この際、ローカルメ
モリ3から読出されたデータに付されたサブ識別子SK
は、先程と同様受信制御14で生成し、そのベクトルレ
ジスタ内のデータ格納位置を指定するのに用いられる。
以下、この命令の実行時の装置部作゛を通入る。
この命令が命令レジスタ3oに格納されたとき、命令制
御13はその命令が指定するベクトルレジスタ番号VR
Iをベクトル処理について17へ線935を介して送出
するとともに、最初の受信命令のときと同じく、メイン
識別子MKとメイン識別子長りを3日用レジスタ群15
から受信制御14に送出し、ローカルメモリを検索する
。識別子MKに対応するデータが読出された場合、その
データおよびそれに付されたサブ識別子SKがそれぞれ
線225. Q27を介してベクトル処理ユニット17
へ送出される。第4図を参照するに、ベクトル処理ユニ
ット17はベクトルレジスタ群70とベクトル演算器7
1、ローカルメモリ3(第1図あるいベクトル演算器7
1あるいは受信制御14から供給されるベクトルデータ
を書込むべきベクトルレジスタを選択するセレクタ77
、またベクトル演算器71へベクトルデータを供給すべ
きベクトルレジスタを選択するセレクタ8、各ベクトル
レジスタごとに設けた書込み回路71W、読出し回路7
1Rからなる。第4図では、書込み回路71W、読出し
回路71Rはベクトルレジスタ70−1に対するものの
み示しである。書込み回路71Wは、書込みアドレスを
保持するWAレジスタ72.+1力ンウドアツプ回路7
4、線Q43からの入力と回路74の出力をセレクトし
てWAPレジスタ2に供給するセレクタ6からなる。読
出し回路71Rは、読出しアドレスを保持するRAレジ
スタ73、この値を+1アツプする+1力ウントアツプ
回路75とからなる。
上記受信命令が実行されると、線I280を介して命令
実行制御部13(第1図)からこの命令が指定するベク
トルレジスタ番号VRIがセレクタ77に入力され、受
信制御14(第1図)から線Q2B上に読出されたデー
タがその番号VRIのベクトルレジスタに送出される。
今、ベクルレジスタ70−1が上記受信命令で指定され
た番号■R1のベクトルレジスタとする。このとき、こ
のベクトルレジスタ70−1に付随する書込み回路71
Wが命令解読部13により起動され、かつセレクタ76
は線Q43からの入力をセレクトする。
その結果、受信制御14から線u43上に出力されたサ
ブ識別子SKがWAレジスタ72にセットされ、線Q4
4から供給されたデータがベクトルレジスタ70−1の
、サブ識別子SKに対応する記憶装置に書き込まれる。
以上から明らかなごとく、メイン試料子MKとしてベク
トルデータに割りあてられた番号を用い、サブ識別子S
Kとして、そのベクトルデータ内のそれぞれの要素に割
りあてられた番号を用いることにより、受信したデータ
(ベクトル要素)を一つのベクトルレジスタ内に書込む
ことができる。
以上の受信命令の実行時に、メイン識別子MKが一改す
るデータがあったかを条件コードレジスタ21(第1図
)に反映させるのは最初に述べた受信命令の場合と同じ
であり、そのレジスタ内の値を判別するために、条件分
岐(Brach onCondition )命令を上
記受信命令の改に実行し、データ受信不成功時には再度
上記受信命令を実行するのも、最初に述べた受信命令の
場合と同じである。さらに、 上記受信命令の実行後、必要数のベクトル要素が受信さ
れたかを判別するために、前述したのと同じ計数分岐命
令(Brach on Countinstructi
on )を用い、必要回数だけ、上記受信命令を実行す
る。
こうして、一つのベクトルレジスタに必要数のベクトル
要素を格納できる。その後、ベクトル演算命令あるいは
ベクトルデータをメモリ3(第1図)にストアする命令
あるいは逆にメモリ3からベクトルデータをロードする
命令を実行することにより、受信したベクトルデータに
対する処理を実行できる。
なお、以上述べた二つの受信命令の他に、他の受信命令
を実行させるように変形することもできる。たとえば、
汎用レジスタあるいはベクトルレジスタ以外のレジスタ
(たとえば浮動小数点レジスタ(図示せず))に受信し
たデータを格納するようにすることもできる。
以上から明らかなとおり、本実施例では、データ群ごと
に付された識別子(メイン識別子MK)を用いて、それ
に属する複数のデータをローカルメモリから取り出しう
るようにした所に特徴がある。したがって、この目的の
ためには、サブ識別子がデータに付されていない場合で
も本発明は適用しうる。さらに、メイン識別子長りが一
定であるならば検索用識別子長りを処理装置5から受信
制御14に供給する必要がない。しかし、本実施例のご
とく、識別子長を指定する場合には、いろいろのメイン
識別子長の場合も同一の受信制御14を用いることがで
きる。
以下、本発明の第2の実施例を第5図を用いて説明する
。図中、第1の実施例(第1図)と同一の番号は同一構
成要素を示す。
第2の実施例の第1の実施例との違いは、アドレス生成
部18を送信側PEでなく受信側PEに用いた点にある
第2の実施例においては、送信処理において、メツセー
ジ63は、相手先PE番号、メイン識別子長しL、メイ
ン識別子MK、サブ識別子SKおよびデータから構成さ
れる。
このメツセージは、データ転送路1を介して、受信PE
内の受信バッファ64に格納される。受信バッファ64
に格納されたメツセージのうち、メイン識別子長L、メ
イン識別子MKおよびサブ識別子SKはアドレス生成部
18に送られ、そのアドレス生成部18において、ロー
カルメモリ上の受信データの書き込みアドレスを生成す
る。
以下、本発明の第3の実施例を第6図を用いて説明する
図中、第1の実施例(第1図)と同一の番号は同一の構
成要素を示す。
第3の実施例の第1の実施例との違いは、受信メモリの
設置である。第3の実施例では受信用のタグ付メモリを
専用に設けた。ローカルメモリ9にはタグはない。
受信メモリに対しては、受信バッファ4からの書き込み
処理、および受信制御14からの読み出し処理がある。
受信バッファ4に格納されたメツセージのうち、アドレ
ス4−1は受信メモリ10のアドレスを示し、書き込み
制御31の書き込み要求により、受信メモリ10のアド
レス4−1に受信データ4−2を書き込む。
一方、受信処理においては、起動された受信制御14お
よび読み出し制御35により、第1の実施例において、
受信データをローカルメモリから読み出したように、受
信データを受信メモリ10から読み出す処理を行う。
第3の実施例には、次のような効果がある。
(1)第1の実施例のようにタグをローカルメモリ全域
につける必要がない。
(2)受信メモリ10とローカルメモリ9を分離するこ
とにより、受信メモリ10に対する受信バッファ4から
の書き込み要求と、ローカルメモリ9に対する命令処理
ユニット6から通常命令によるアクセス要求との競合を
さけることができる。
(3)プログラム作成上、PE内での処理に対しては、
ローカルメモリのアドレスを用い、PE間間通上おいて
は、メイン識別子MK、サブ識別子SKおよびメイン識
別子長りを用いて生成した受信アドレスを用いることに
より、PE演算処理アドレス、PE間処理アドレスの分
離が可能となり、プログラム作成が容易となる。
第3の実施例では、ローカルメモリ9のアドレス空間と
受信メモリのアドレス空間を完全に独立したものとした
が、ハードウェアとしては、受信メモリのアドレス空間
をローカルメモリ9のアドレス空間の一部として実現す
ることもできる。たとえば、ローカルメモリ9上のあら
かじめ指定されたアドレスから先の一定領域を受信メモ
リ領域とし、この受信メモリ領域内のみに語単位にタグ
を設ける。
これらは、アドレス生成部18において、送信アドレス
を生成する時、および受信制御14において受信アドレ
スを生成する時、それらの送信アドレス、受信アドレス
に前記受信メモリの先頭アドレスを加えることにより実
現される。
第7図にアドレス生成部18の実施例を示す。
図中、第2図と同一の番号は同一構成要素を示す。
第7図では、新しく、受信メモリの先頭アドレスを示す
レジスタ44および加算器45を設けた。
第8図に受信制御14の一実施例を示す。図中、第3図
と同一の番号は同一構成要素を示す。第8図では、新し
く、受信メモリの先頭アドレスを示すレジスタ68およ
び加算器69を設けた。
これら、アドレス生成部および受信制御の変更により、
プログラムから、ローカルメモリ9上の受信メモリの実
現領域を意識する必要がなくなる。
以下、本発明の第4の一実施例を第9図を参照して説明
する。本実施例は、第1の実施例と同様に、送信すべき
データに付加する識別子として、そのデータが属する特
定のデータ群を表わすメイン識別子MKと、そのデータ
群内の他のデータとそのデータを区別するためのサブ識
別子SKを用い、ローカルメモリからのデータ読出しに
あたっては、メイン識別子が同じデータを検索する。
しかし、第1の実施例では、一つの送信命令で一つのデ
ータを他のプロセッサエレメントに送信し、一つの受信
命令が一つのデータを、連想記憶装置から読み出したの
に対し、本実施例では、一つの送信命令で一群のデータ
を他のプロセッサエレメント群に送信し、一つの受信命
令で複数のデータをローカルメモリから読出す。以下、
その詳細を述べる。
第9図において、第1図と同一の番号は同一の構成要素
を示す。第1図と異なる構成要素として90は受信ユニ
ット、91は送信ユニット、93は受信制御、94.9
6はカウンタ回路、95゜97は制御回路92はメモリ
制御がある。
受信ユニット90.送信ユニット91はそれぞれ制御回
路95.97の制御のもと、命令処理ユニット6と独立
に動作する。制御回路95.97はたとえばマイクロプ
ロセッサを用いることができる。メモリ制御92は第1
図のメモリ制御7の変形で、アクセスもとが受信バッフ
ァ4による書き込み、受信ユニット90による読み出し
、命令処理ユニットによる書込み/読み出しと3つにな
っている。受信制御93は第1図の受信制御14の変形
である。
まず、送信処理を説明する。本実施例での送信命令はた
とえば以下の通りである。
5END  VRI、GR2,GR3,GR4ここで、
5ENDはオペコード、VRIは送信すべきベクトルレ
ジスタの番号、GR2〜GR4は汎用レジスタの番号で
それぞれ送信すべきデータに対するメイン識別子MK、
ベクトル長VL、および転送先PE番号をそれぞれ保持
する汎用レジスタの番号である。さらに、(GR2)+
1の番号の汎用レジスタには、メイン識別子長りがあら
かじめ保持されている。
この送信命令が命令レジスタにセットされると、命令解
読部13は命令を解読し、上記汎用レジスタの内容であ
る転送先PE番号と送信バッファ5に送出し、同じく汎
用レジスタの内容であるメイン識別子MK、メイン識別
子長りをアドレス生成部に送り、ベクトル長VLを線Q
101を介してカウンタ回路96に送り、送信するベク
トルデータを保持するベクトルレジスタの番号をベクト
ル処理ユニット17に送り、さらに、命令制御13は、
制御回路97およびベクトル処理ユニット17に起動を
かける。その後、命令制御13は次の命令の解読実行を
開始する。
制御回路97はli!Q102を介してカウンタ回路9
6をリセットする。ベクトル処理ユニットからは指定さ
れたベクトルレジスタからベクトルデータが順に一要素
ずつ出力され、線Q22を介して、送信バッファにセッ
トされる。さらに、データとともに、ベクトル処理ユニ
ットからは、線Q100を介して、要素番号がサブ識別
子SKとして、アドレス生成部18に送られる。アドレ
ス生成部18では、3つの入力情報をもとに転送先PE
内のローカルメモリ上のアドレスを生成し、送信バッフ
ァ5に送出する。送信バッファからは、ベクトルデータ
の各要素ごとにメツセージを生成し、データ転送路に送
出する。
カウンタ回路はデータを送出するたびに、計数を行い、
ベクトル長VL回くりかえされた時、制御回路97に対
して、線Q103を介して送信終了を報告する。カウン
タ回路96は、たとえば第10図のように、2つのレジ
スタ、+1加算器、比較回路で構成される。
命令制御13への送信命令実行終了報告には次の2通り
の方法がある。第1は制御回路97が命令制御13に対
して割込み処理を行う方法である。
第2は命令処理装置6において、定期的に送信装置の状
態を調べる命令を発行する方法である。このような命令
として、たとえば次のようなTEST  5END命令
が考えられる。
5END TSENDは、TEST  5END命令のオペランド
コードである。送信処理がまだ終っていない場合は1を
、送信処理が終っている場合はOを条件コードレジスタ
cc19にセットする。命令制御13はこの条件コード
レジスタcCの内容を調べ、送信袋N19の状態を知る
ことができる。
本発明の特徴は、次々とデータとともに、サブ識別子S
Kを生成し、さらに、命令で指定されたメイン識別子M
Kを用いて、転送先PE内ローカルメモリのアドレスを
生成することにより、1つの命令で、ある1つのまとま
ったデータ群を転送することである。
データ転送路12のメツセージのデータが、転送先PE
内のローカルメモリ3上に格納される手段は、第1の実
施例と同様である。
次に、受信処理を説明する。本実施例での受信命令はた
とえば以下の通りである。
RECEIVF  VRl、GR2,GR3ここで、R
ECEIVEは、この命令のオペコード、VRIは受信
すべきベクトルレジスタの番号、GR2,GR3は汎用
レジスタの番号でそれぞれ受信すべきデータに対するメ
イン識別子MK、およびベクトル長VLをそれぞれ保持
する汎用レジスタの番号である。さらに、(GR2)+
1の番号の汎用レジスタには、メイン識別子長しがあら
かじめ保持されている。
この受信命令が命令レジスタ30にセットされると、命
令制御13は、上記汎用レジスタの内容であるメイン識
別子MK、メイン識別子長りを受信制御93に送り、ベ
クトル長VLをカウンタ回路94に送り、受信するベク
トルデータを格納するベクトルレジスタの番号をベクト
ル処理ユニット17に送り、さらに、命令制御13は、
制御回路95およびベクトル処理ユニット17に起動を
かける。その後、命令制御13は次の命令の解読実行を
開始する。
制御回路95はカウンタ回路94をリセットする。次に
受信制御93に起動をかける。受信制御93は、第1の
実施例の受信制御(第3図と類似の構成をしているが、
本実施例では1回の受信命令の処理で必要とするデータ
群すべてを受信することが異なる。そのため、+4加算
器53(第3図)はレジスタ52(第3図に保持しであ
るアドレスに対するデータを受信するまでカウントアツ
プを行わない。つまり、レジスタ52(第3図)に保持
しであるアドレスに対するデータを受信すると、+4加
算器53(第3図)53を起動し、レジスタ52(第3
図)内のアドレスを更新し、次のデータ受信を行う。ま
た、これと同時、カウンタ回路94を起動し、カウンタ
を1進める。カウンタ回路94はカウンタ回路96と同
一の構成である。
受信制御93に読み出されたデータはサブ識別子SKと
ともに、ベクトル処理ユニット17に送られ、受信命令
で指定されたベクトルレジスタに格納される。サブ識別
子SKはこの時の要素番号として用いられる。
カウンタ回路94はデータを受信するたびに、計数を行
い、ベクトル長VL回くりかえされた時、制御回路95
に対して、受信終了を報告する。
命令制御13への受信命令実行終了報告には、送信装置
の場合と同様、次の2通りの方法がある。
第1は制御回路95が命令制御13に対して割込み処理
を行う方法である。第2は命令処理装置6において、定
期的に受信装置の状態を調べる命令を発行する方法であ
る。このような命令として、たとえば次のようなTES
T  RECEIVE命令が考えられる。
TRCV TRCVは、TEST  RECEIVE命令のオペコ
ードである。受信処理がまだ終わっていない場合は1を
、受信処理が終わっている場合は0を条件コードレジス
タcc19にセットする。命令制御13は、この条件コ
ードレジスタCCの内容を見て、受信装置の状態を知る
ことができる。
[発明の効果] 本発明によれば、交換側が成立つような処理に必要なデ
ータをローカルメモリに到着した順に受信プロセッサに
取り込むことが可能であり、受信プロセッサが遊休する
時間を小さくすることができる。
また、本発明によれば、識別子を2つの部分に分ける境
界を自由に決められるので、有限長の識別子を有効に利
用することができる。
さらに、複数プロセッサエレメントからのデータ受信の
確認をひとつの命令で一括してできる。
また、受信起動命令にて一括してデータの受信処理を起
動でき、送信命令にて一括してデータの送信の起動がで
きる。これにより、多数のプロセッサエレメントと多数
のデータを送受する場合でも数命令の処理で済むので、
データの通信に関連する多数の命令処理によって並列処
理の効率が低下することを防ぐ効果がある。
【図面の簡単な説明】
第1図は本発明の第1の実施例を示す並列プロセッサの
構成図、第2図は第1図のアドレス生成部の詳細構成図
、第3図は第1図の受信制御の詳細構成図、第4図は第
1図のベクトル処理ユニットの詳細構成図、第5図は本
発明の第2の実施例を示す並列プロセッサの構成図、第
6図は第3の実施例を示す並列プロセッサの構成図、第
7図は第6図のアドレス生成部の詳細構成図、第8図は
第6図の受信制御の詳細構成図、第9図は本発明の第4
図の実施例を示す並列プロセッサの構成図、第10図は
第9図のカウンタ回路の詳細構成図である。 1・・・データ転送路、2・・・プロセッサエレメント
、3・・・ローカルメモリ、4・・・受信バッファ、5
・・・送信バッファ、6・・・命令処理ユニット、7・
・・メモリ制御、13・・・命令解読部、14・・・受
信制御、15・・・汎用レジスタ、16・・・スカラ演
算器、17・・・ベクトル処理ユニット、18・・・ア
ドレス生成部、30・・・命令レジスタ、31・・・命
令フェッチ回路、32・・・プログラムカウンタ、33
・・・メモリアクセス制御、34・・・書き込み制御

Claims (1)

  1. 【特許請求の範囲】 1、(a)複数のプロセッサと、 (b)該複数のプロセッサ間のデータ転送を行うための
    ネットワークとを有し、 (c)各プロセッサが、 (c1)語単位にタグのついたプログラムやデータを保
    持する、ローカルメモリと、 (c2)他のプロセッサに送信すべきデータ、ならびに
    該データが属するデータ群を識別するためのメイン識別
    子および該データ群中の他のデータから該データを識別
    するためのサブ識別子とから生成した転送先プロセッサ
    内ローカルメモリのアドレスを含むメッセージを該ネッ
    トワークに送信する第1の手段と、 (c3)該ネットワークから、そのプロセッサに供給さ
    れた複数のメッセージを、メッセージ内に含まれたアド
    レスにもとづき、ローカルメモリに書き込み、同時に対
    応するタグを有効とする第2の手段と、 (c4)該ローカルメモリからの受信データの読み出し
    を要求する命令に応答して、該命令が指定する検索用の
    メイン識別子をもとに、受信データ群のアドレスを生成
    し、そのアドレスをもとに、該ローカルメモリから所望
    の受信データを読み出し、さらに、その受信データに対
    応するサブ識別子を生成する第3の手段を有する並列プ
    ロセッサ。 2、(a)複数のプロセッサと、 (b)該複数のプロセッサ間のデータ転送を行うための
    ネットワークとを有し、 (c)各プロセッサが、 (c1)語単位にタグのついた、プログラムやデータを
    保持するローカルメモリと、 (c2)他のプロセッサに送信すべきデータ、該データ
    が属するデータ群を識別するためのメイン識別子および
    該データ群中の他のデータから該データを識別するため
    のサブ識別子を含むメッセージを該ネットワークに送信
    する第1の手段と、 (c3)該ネットワークから、そのプロセッサに供給さ
    れた複数のメッセージを、メッセージ内に含まれている
    該メイン識別子とサブ識別からローカルメモリのアドレ
    スを生成し、そのアドレスに受信データを取り込み、同
    時にそのアドレスに対応するタグを有効とする第2の手
    段と、 (c4)該ローカルメモリからの受信データの読み出し
    を要求する命令に応答して、該命令が指定する検索用の
    メイン識別子をもとに、受信データ群のアドレスを生成
    し、そのアドレスをもとに、該ローカルメモリから所望
    の受信データを読み出し、さらに、その受信データに対
    応するサブ識別子を生成する第3の手段を有する並列プ
    ロセッサ。 3、該メイン識別子と該サブ識別子とともに、該メイン
    識別子の有効長を示す情報を用いて、該ローカルメモリ
    上のアドレスを生成する手段を有する特許請求の範囲第
    1項又は第2項の並列プロセッサ。 4、該ローカルメモリは、プログラムやデータなどを保
    持するタグを有しない領域と、受信データ群を保持し、
    語単位にタグを有する特許請求の範囲第1項又は第2項
    の並列プロセッサ。 5、(a)複数のプロセッサと、 (b)該複数台のプロセッサ間データ転送を行うための
    ネットワークを有し、 (c)各プロセッサが、 (c1)語単位にタグのついた、プログラムやデータを
    保持するローカルメモリと、 (c2)該ローカルメモリから順次命令を読み出し、実
    行する第2の手段と、 (c3)第2の手段が独立に動作し、第2の手段から指
    定されたデータ群、該データ群を閉すメイン識別子およ
    び送信データ数をもとに、送信処理を行う第3の手段と
    、 (c4)第2の手段と独立に動作し、第2の手段から指
    定されたデータ群、該データ群を示すメイン識別子およ
    び受信データ数をもとに、受信処理を行う第4の手段を
    有する並列プロセッサ。
JP63017073A 1987-07-28 1988-01-29 並列プロセッサ Pending JPH01194056A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP63017073A JPH01194056A (ja) 1988-01-29 1988-01-29 並列プロセッサ
EP19890101462 EP0326164B1 (en) 1988-01-29 1989-01-27 Parallel computer comprised of processor elements having a local memory and an enhanced data transfer mechanism
US07/303,626 US5297255A (en) 1987-07-28 1989-01-27 Parallel computer comprised of processor elements having a local memory and an enhanced data transfer mechanism
DE1989628173 DE68928173T2 (de) 1988-01-29 1989-01-27 Parallelrechner bestehend aus Prozessorelementen mit einem lokalen Speicher und einem verbesserten Datentransfermechanismus
US08/215,262 US5710932A (en) 1987-07-28 1994-03-21 Parallel computer comprised of processor elements having a local memory and an enhanced data transfer mechanism

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63017073A JPH01194056A (ja) 1988-01-29 1988-01-29 並列プロセッサ

Publications (1)

Publication Number Publication Date
JPH01194056A true JPH01194056A (ja) 1989-08-04

Family

ID=11933808

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63017073A Pending JPH01194056A (ja) 1987-07-28 1988-01-29 並列プロセッサ

Country Status (1)

Country Link
JP (1) JPH01194056A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5659777A (en) * 1992-09-25 1997-08-19 Hitachi, Ltd. Method for intraprocessor communication

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5659777A (en) * 1992-09-25 1997-08-19 Hitachi, Ltd. Method for intraprocessor communication
US5867656A (en) * 1992-09-25 1999-02-02 Hitachi, Ltd. Method for interprocessor communication

Similar Documents

Publication Publication Date Title
US6732276B1 (en) Guarded computer instruction execution
JP3451103B2 (ja) データ通信装置及び方法
EP0021399B1 (en) A method and a machine for multiple instruction execution
US4951193A (en) Parallel computer with distributed shared memories and distributed task activating circuits
CA1204516A (en) Data flow type information processing stystem
US6209020B1 (en) Distributed pipeline memory architecture for a computer system with even and odd pids
US5251306A (en) Apparatus for controlling execution of a program in a computing device
US11372646B2 (en) Exit history based branch prediction
US6269440B1 (en) Accelerating vector processing using plural sequencers to process multiple loop iterations simultaneously
US7519975B2 (en) Method and apparatus for exception handling in a multi-processing environment
US3654621A (en) Information processing system having means for dynamic memory address preparation
EP0184828A2 (en) Vector processing apparatus
JPH07113903B2 (ja) キャッシュ記憶制御方式
JPS5948472B2 (ja) 可変長オペランドの取出制御機構
WO1993014457A1 (en) Active instruction decoding processor-memory interface
US5438680A (en) Method and apparatus for enhancing concurrency in a parallel digital computer
US5297255A (en) Parallel computer comprised of processor elements having a local memory and an enhanced data transfer mechanism
JP2753240B2 (ja) 並列プロセッサ
US6725365B1 (en) Branching in a computer system
US5710932A (en) Parallel computer comprised of processor elements having a local memory and an enhanced data transfer mechanism
JPH01194056A (ja) 並列プロセッサ
US20050015552A1 (en) System for supporting unlimited consecutive data stores into a cache memory
EP0326164B1 (en) Parallel computer comprised of processor elements having a local memory and an enhanced data transfer mechanism
EP0465847B1 (en) Memory access control having commonly shared pipeline structure
US5644761A (en) Basic operations synchronization and local mode controller in a VLSI central processor