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

並列プロセッサ

Info

Publication number
JP2753240B2
JP2753240B2 JP63008315A JP831588A JP2753240B2 JP 2753240 B2 JP2753240 B2 JP 2753240B2 JP 63008315 A JP63008315 A JP 63008315A JP 831588 A JP831588 A JP 831588A JP 2753240 B2 JP2753240 B2 JP 2753240B2
Authority
JP
Japan
Prior art keywords
data
identifier
instruction
vector
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.)
Expired - Lifetime
Application number
JP63008315A
Other languages
English (en)
Other versions
JPS63303460A (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
Publication of JPS63303460A publication Critical patent/JPS63303460A/ja
Application granted granted Critical
Publication of JP2753240B2 publication Critical patent/JP2753240B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8092Array of vector units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は並列プロセッサシステムにおけるプロセッサ
間のデータ通信による性能低下を抑える方式に関するも
のである。
〔従来の技術〕
従来の並列プロセッサにおけるプロセッサ間データ通
信方式の1つに、他プロセッサから送られてきたデータ
を受信バッファに一時おき、受信プロセッサが必要な時
にデータを取り込む方式がある。この種の装置として
は、たとえば特開昭60−49464などがある。受信バッフ
ァがFiFOで構成され、送信プロセッサが一台の場合は問
題ないが、一般に受信バッファにデータを送り込む送信
プロセッサは複数台あるため、受信バッファに転送され
てきたデータを識別子+データという組で一時保持し、
受信プロセッサは識別子をチェックすることにより必要
なデータを取り込む。したがって受信バッファは連想記
憶装置で構成されることがある。
〔発明が解決しようとする課題〕
上記従来技術では、受信プロセッサは受信バッファ
(連想記憶装置)上の識別子を検索してデータを取り込
むため、複数のデータが必要な場合1つ1つのデータを
順番に取り込む必要がある。この時一般に複数のデータ
は複数の送信プロセッサから送られてくるため、どのよ
うな順番で受信バッファ(連想記憶装置)に到着してい
るかわからない。そのため受信プロセッサが必要以上に
データの到着を待たされることがあった。
たとえば、他のプロセッサで計算された結果A,B,C,D
の4つのデータを受信し、そのうちの最大値を示すデー
タを検索する処理を受信プロセッサが行う場合、受信プ
ロセッサ上の処理手順(プログラム)が受信バッファ
(連想記憶装置)からA,B,C,Dの順にデータを取り込む
ようになっていたと仮定すると、B,C,Dのデータが受信
バッファに届いていてもAのデータが届くまでは受信プ
ロセッサは動作を進めることができない。A,B,C,Dのデ
ータの識別子を同じにすれば受信バッファ(連想記憶装
置)に到着したデータから順に取り込むことができる
が、この場合データの区別をつけることができなくな
る。
さらに、上記従来技術では、ひとつの受信認識命令で
1台のプロセッサから送られてくるデータの認識を行な
うようになっているため、前述したような複数のプロセ
ッサから送られてくる複数のデータの全ての到着を確認
する必要がある処理においては、データを送信してくる
プロセッサ台数と同数の受信確認命令を実行しなければ
ならないことがある。例えば、第10図のような8行8列
の配列データを4台のプロセッサに第11図のように列方
向に分割して2列ずつ持たせて列方向に並列に計算を行
なった後、行方向に並列に計算を行なう必要がある場
合、第12図のように4台のプロセッサにデータを配置す
ることになる。このとき、上記の従来技術が1回の送信
命令の実行で1個のデータの送信を行なう仕様であると
すると、各プロセッサは3台の他のプロセッサに対して
12回の送信命令を実行し、少なくとも12回の受信確認命
令を実行することになる。受信確認命令を用いてデータ
の到着を確認するプログラムを作るときに、例えば前述
したような受信を確認する順序を固定し、最初の確認す
るデータの到着の確認を待ってから次のデータの確認を
行なう、というプログラムの作り方があるが、送信側の
各プロセッサの処理の進み具合に差がある場合、確認す
る順序と到着する順序は一致するとは限らず、最悪の場
合には最初に確認するデータの到着が最後になることも
ありえる。このような場合、すでに到着しているデータ
の確認は最後に到着したデータの確認の後に行なわれる
ので、全データの到着確認に関する時間が待ち時間によ
って延長されるのみならず、受信データの一時格納域で
ある受信バッファは確認すべき全データを保持する必要
があるのでハードウエア規模が増大する。これを避ける
ために、やはり上記の受信確認命令を用いてデータの到
着順にデータの到着確認を行なうようなプログラムの作
り方を用いると、到着する複数のデータのうちどのデー
タの確認が済んだか、まだ確認の済んでいないデータは
どれかの管理をプログラムで行なわなければならず、デ
ータの到着の確認をする順序は望ましい順序で行なえる
ものの、確認をするための命令処理が複雑になり、結局
は高速な受信確認処理は難しい。
上記の2つのプログラム法により生ずる問題点は、並
列計算機の持つプロセッサ台数が増加した時、プロセッ
サ間データ転送の高速化をはかり、並列計算機の性能向
上をはかろうとしたときに次第に顕著になり、並列計算
機の利点を生かせなくなるという欠点がある。
本発明の目的は、プロセッサ間のデータ通信におい
て、データを受信する受信プロセッサは、 (1)受信バッファ(連想記憶装置)に届いているデー
タから順に受信プロセッサにデータを区別をつけて取り
込むことを可能にすること、 (2)他のプロセッサから送られてくるデータのメモリ
への取り込み演算と並列に行ない、他プロセッサから送
られてくるデータがすでに到着したか否かを効率よく確
認すること であり、それらによって、逐次実行用のプログラムを並
列計算機用に書き直すときに必然的に生じるプロセッサ
間データ通信に関する処理のオーバヘッドを軽減し、並
列計算機を効率よく動作させることにある。
〔課題を解決するための手段〕
上記目的(1)は、プロセッサ間データ転送における
受信側のプロセッサで受信バッファ(連想記憶装置)内
に一時保持される識別子とデータのうち識別子をメイン
識別子MK,サブ識別子SKに分け、メイン識別子MKを受信
バッファからのデータの検索のために使い、サブ識別子
SKとデータを受信プロセッサに取り込み、サブ識別子SK
を受信プロセッサ内でデータの識別子として使うことに
より達成される。
また、受信プロセッサ内でデータを区別するサブ識別
子SKの必要な長さはデータの数で決定されるので、任意
の検索長で検索可能な連想記憶装置を実現することによ
り、メイン識別子MKおよびサブ識別子SKの長さを自由に
変えることができる。
さらに、目的(2)は、プロセッサ間データ転送にお
ける受信側のプロセッサでのプログラム実行の観点から
見て相互に関連するデータ群、例えば2次元配列の1行
のデータなどの受信を個々のデータの発信元プロセッサ
が同一であるか否かにかかわらず到着順にプロセッサの
命令実行と独立にメモリへ転送できるようにすることに
して達成される。たとえば、相互に関連するデータ群の
全てが到着したか否かの確認を上記のメモリへの転送の
回数で行なうことにより達成される。
〔作用〕
解決手段(1)により、受信プロセッサでたとえば交
換則が成立つような処理を行う場合、その処理に必要な
データをメイン識別子MKを用いて受信バッファ(連想記
憶装置)に到着しているデータから順サブ識別子SKと共
に取り出すことにより、受信プロセッサが遊休する時間
を最小にすることができる。
また、連想記憶装置の中から所望のデータを検索する
長さ、つまりメイン識別子MKの長さを自由に指定し、か
つ任意長の検索を可能にすることにより識別子を有効に
使用することができる。
さらに解決手段(2)より、プロセッサに到着したデ
ータのメモリへの書き込みを、プロセッサの命令実行を
独立に行なうことにより、データの転送のための命令実
行数を削減できる。また、複数のデータの受信完了の確
認を受信したデータ数で行なうことにより、データの受
信確認をデータごとに行なう命令を用いる場合と比べて
受信確認に必要な命令実行数を削減できる。
〔実施例〕
以下、本発明の第1の実施例を、図面により詳細に説
明する。第1図は、本発明の第1の実施例を示す並列プ
ロセッサの全体構成図である。
第1図において、1はプロセッサエレメント間のデー
タ転送路、2−1〜2−3はプロセッサエレメント(以
下PEと略記す)である。各PEの内部構成は互いに同一構
成である。3はPE内のメモリ、6は送信先PE番号、送信
すべきデータおよびそれに割り当てられた識別子からメ
ッセージを構成し、メッセージをデータ転送路1に送り
出すメッセージ生成送信装置、5は処理装置、4は受信
データを一時保持して、処理装置5からの要求によりデ
ータを処理装置5に送り出すデータ受信装置、8は受信
データを一時保持する連想記憶装置、13は命令レジス
タ、14は命令実行制御部、15は汎用レジスタ群、18はベ
クトル処理ユニット、20はスカラ演算器である。命令実
行制御部14は、メモリ3から順次命令を命令レジスタ13
に読出し、読出された命令の実行を制御するものであ
る。読出された命令が汎用レジスタ群15内のいずれかを
指定する場合、その指定されたレジスタ番号をそこに供
給し、あるいは読出された命令が指定する演算を実行す
るように演算部18,20を制御する。ベクトル処理ユニッ
ト18は第2図にその詳細を示すようにベクトル演算器71
とベクトルレジスタ群70とからなる。第1図ではPEは3
台だけ示されているが、もちろんこれ以外の場合も含ま
れる。PE間データ転送路1は、PEから送出されたメッセ
ージ中の送信先PE番号を有するPEまでそのメッセージを
伝送する。なお、このPE間データ転送路1は、クロスバ
イスイッチ,多段スイッチネットワーク、あるいはバス
等、種々の構成が考えられる。
PE間のデータ転送処理について説明する。
まず、送信処理を説明する。メッセージの送信を要求
する命令を送信命令と呼ぶ。この命令の形式は以下の通
りである。
SEND GR1,GR2,GR3,GR4 ここでSENDはオペコード、GR1〜GR4は送信すべきデー
タ、送信すべきデータに対する識別子MKおよび、識別子
SKおよび、送信先のPE番号をそれぞれ保持する汎用レジ
スタの番号である。
この命令が命令レジスタ13にセットされると、命令制
御部14はこれら4つの汎用レジスタの内容を読出し、メ
ッセージ生成送信装置内のメッセージ生成部34に線l31
を介して送出する。
メッセージ生成部34は供給されたデータ,データ識別
子(MK,SK)および送信先PE番号を組合せてメッセージ
を生成し、そのメッセージをレジスタ33にセットし、さ
らに出力バッファ32を経て、データ転送路1に送出す
る。データ転送路はこのメッセージの送信先PE番号を有
するPEにデータおよびデータ識別子を送出する。
以上の動作は先の出願特願昭61−182361号に記載のも
のと本質的に同じである。本発明で特徴的なのは、送信
するデータに対する識別子を、そのデータが属するデー
タ群を表わすメイン識別子MKとそのデータ群内でそのデ
ータを他のデータから識別するためのサブ識別子SKとか
ら構成しておく所に特徴がある。
たとえば、大量のデータ群の中から最大値を見つける
場合、まず、前記データ群を各プロセッサに分配し、各
プロセッサがそれぞれ担当したデータ群の中から最大値
を検出し、そのプロセッサごとに1つずつ求まったプロ
セッサ内の最大値データをデータ群すべての中の最大値
を検索するために、ある1つのプロセッサに転送するこ
とを考える。
この時、送信すべきデータとともに、メイン識別子MK
は、転送データが最大値検索のためのデータであること
を示し、サブ識別子SKは前記データ群中のデータの番号
を示すようにする。
これらのメイン識別子MKおよびサブで識別子SKは、転
送データととに、線l31を通してメッセージ生成部34に
送られる。
別の例として、送信すべきデータがあるベクトルデー
タ内の1つの要素の場合、メイン識別子MKとして、その
ベクトルデータに割り当てられた識別子を用い、サブ識
別子SKとして、ベクトルデータ内のその要素番号を用い
る。
この時の送命令の形式は以下のようになる。
SEND VR1,GR2,GR3,GR4 ここで、VR1は送信すべきベクトルデータを保持する
ベクトルレジスタ番号、GR2はデータに対する識別子M
K、GR3はベクトルデータ内転送すべき要素番号およびGR
4は送信先のPE番号をそれぞれ保持する汎用レジスタの
番号である。
VR1とGR3をもとにベクトル処理ユニット18内のベクト
ルレジスタ(図示せず)からデータを取り出し、l35を
介して、メッセージ生成部34に転送データが送られる。
メイン識別子MK,サブ識別子SKおよび送り先PE番号は、
それぞれGR2,GR3およびGR4で指定された汎用レジスタの
内容として、線l31を介して、メッセージ生成部34に送
られる。この送信命令をGR3で指定される汎用レジスタ
の内容、つまり要素番号、を変更しつつ繰り返すことに
より、ベクトルレジスタ中のベクトルデータをすべて転
送することが可能となる。
データ転送路1上のメッセージ内の送信先PE番号がPE
2−1の場合、そのメッセージ内の識別子のおよびデー
タがPE2−1に送られ、入力バッファ7を通して連想記
憶装置8に取り込まれる。
連想記憶装置8の各エントリは、メイン識別子MK,サ
ブ識別子のSK、データおよびそのエントリが有効である
ことを示す有効ビットV11を保持する4つのフィールド
からなり、連想記憶装置8は、その中の一つのエントリ
に新たに受信した識別子MK,SKおよびデータを書き込ん
だときにそのエントリの有効ビットV11を1にする。
こうして、PEから他のPEへの一つのメッセージの送信
が完了する。
次に、各PEにおける、連想記憶装置8からのデータの
読出しについて説明する。
この読出しを要求する命令を受信命令と呼ぶ。また、
以下では、この命令の実行により読出されたデータを受
信データと呼ぶ本実施例では幾つかの受信命令がある。
その一つの命令の形式は次の通りである。
RECEIVE GR1,GR2,GR3 ここで、RECEIVEは、この命令のオペコード、GR1,GR
2,GR3はそれぞれ、受信したデータを格納すべき汎用レ
ジスタの番号,検索に用いる識別子を保持している汎用
レジスタの番号およびその識別子の内、現に検索に用い
るべき部分の長さ(検索用識別子長)を保持している汎
用レジスタの番号を示す。本実施例では、メイン識別子
MKを検索に用いるので、検索用識別子長としてこのメイ
ン識別子の長さを用いる。なお、受信したデータに付加
されているサブ識別子SKは番号GR1+1の汎用レジスタ
に格納する。
メモリ3から命令レジスタ13に受信命令がセットされ
た場合、命令制御部14より連想記憶装置8に起動をかけ
る。同時に受信命令で指定された2つの汎用レジスタGR
2,GR3内の検索用識別子長および検索用識別子をそれぞ
れ線l41および線l42を通して連想記憶装置8に送る。連
想記憶装置8は、入力された検索用識別子の内、検索用
識別子長の部分、つまり本実施例ではメイン識別子の部
分に一致するメイン識別子を有するエントリを探す。も
し、一致するメイン識別子MKが見つかった場合は、対応
するサブ識別子SKおよびデータをそれぞれ線l43および
線l44を介して、処理装置5に送る。同時に線l45を介し
て、目的のデータが見つかったことを示す信号(“1")
スカラ演算部21内の条件コードレジスタ(CC)21にセッ
トする。さらに、そのデータに付随している有効ビット
Vを0とする。また、もし目的のデータが見つからない
場合、つまり未だ連想記憶装置8上にデータが届いてい
ない場合には、線l45を通して、データが見つからなか
ったことを示す信号(“0")を同じレジスタ21にセット
する。
処理装置5では読出されたサブ識別子SKとデータを受
信命令14に従い、番号(GR1+1)およびGR1の汎用レジ
スタにそれぞれ書込む。
こうして、一つの受信命令の実行を終了する。この受
信命令の実行後、命令制御14は、次の命令として用意さ
れているデータ受信に成功したか否かを判別するため
の、それ自体周知の条件分岐命令(Branch on Conditio
n命令)をメモリ3から読出し実行する。この命令で条
件コードレジスタ21の内容が0であれば前述の受信命令
に分岐する。もし、条件コードレジスタ21内の内容が1
であれば、この条件付分岐命令につづく命令列をメモリ
3から読出し実行する。この命令列は、受信したデータ
に演算を施すための命令列である。たとえば、検索用識
別子で指定される同一のメイン識別子を有するデータ、
すなわち同一群内のデータの内、最大値を有するデータ
を検索する場合である。受信命令の実行時に、データと
ともにサブ識別子を受信したのは、最大値を有するデー
タを識別する番号としてサブ識別子SKを用いるためであ
る。以下簡単にこの最大値検索用のスカラ命令列を説明
する。汎用レジスタ群15の一つの汎用レジスタ(この番
号をGR4とする)を最大値格納用に定めておき、他の一
つの汎用レジスタ(この番号をGR5とする)をその最大
値を有するデータのサブ識別子格納用に定めておき、そ
れらの汎用レジスタ初期値をいずれも0としておく。受
信命令および条件付分岐命令の次の命令列として、番号
GR1の汎用レジスタ内にある受信したデータと番号GR4の
汎用レジスタ内のデータの比較をスカラ演算器20で実行
し、大きい方のデータを番号GR4の汎用レジスタに格納
する処理および番号(GR1+1)の汎用レジスタ内にあ
る受信したデータに対するサブ識別子SKと番号GR5の汎
用レジスタにあるサブ識別子SKの内の一方を上記比較結
果に応じて選択して番号GR5の汎用レジスタに格納する
処理を実行する命令列を用いる。
この命令列の実行後、受信したデータの総数をカウン
トし、その数があらかじめ定めた要素数に達していない
かにより分岐を行うために、計数分岐命令(Branch on
Count Register)を実行する。すなわち、ある番号GR6
の汎用レジスタにあらかじめ必要受信要素数を記憶して
おき、この命令の実行時にその要素数を1だけカウント
ダウンし、その値が0でなければ、この命令が指定す
る、ある汎用レジスタに記憶してあったアドレスの命令
へジャンプする。このアドレスを上記受信命令のアドレ
スとすることにより、受信要素数があらかじめ定めた必
要受信要素数に達していない場合に、再度、受信命令が
実行されることになる。
このように、前述の受信命令では、連想記憶装置8か
ら、検索用識別子で指定されたメイン識別子を有する複
数のデータを、サブ識別子の値に関係なく、読出すこと
ができ、データ転送路から後続のデータが連続記憶装置
8に送出されている間に、受信命令で読出したデータに
対する演算を処理装置8で実行できる。このように、本
実施例では同一内のデータをそれらにサブ識別子違いに
関係なく連想記憶装置から読出し、処理することができ
る。
本実施例で用いる他の受信命令は、 RECEIVE VR1,GR2,GR3 の形式を有する。ここで、GR2,GR3は先に述べた命令と
同じく、検索用識別子およびその検索用識別子の内、検
索に用いる部分の長さを示す検索用識別子長である。ま
た、VR1はこの受信命令で受信されたデータを格納する
ベクトルレジスタの番号を示す。すなわち、この命令
は、検索用識別子と一致するメイン識別子MKが付されて
いるデータを連想記憶装置8から読出し、この命令で指
定する番号VR1のベクトルレジスタに格納することを要
求する命令である。この際、連想記憶装置8から読出さ
れたデータに付されたサブ識別子SKは、そのベクトルレ
ジスタ内のデータ格納位置を指定するのに用いられる。
以下、この命令の実行時の装置動作を述べる。
この命令が命令レジスタ13に格納されたとき、命令制
御部14は、その命令が指定するベクトルレジスタ番号VR
1をベクトル処理ユニット18へ線l80を介して送出すると
ともに、最初の受信命令のときと同じく、検索用識別子
と検索用識別子長を汎用レジスタ群15から連想記憶装置
8に送出する。そこから一致するメイン識別子MKを有す
るデータが読出された場合、そのデータおよびそれに付
されたサブ識別子SKがそれぞれ線l44,l43を介してベク
トル処理ユニット18へ送出される。第2図を参照するに
は、ベクトル処理ユニット18はベクトルレジスタ群70と
ベクトル演算器71、メモリ3(第1図)あるいはベクト
ル演算器71あるいは連想記憶装置8から供給されるベク
トルデータを書込むべきベクトルレジスタを選択するセ
レクタ77、また、ベクトル演算器71へベクトルデータを
供給すべきベクトルレジスタを選択するセレクタ78、各
ベクトルレジスタごとに設けた書込み回路71W、読出し
回路71Rからなる。第2図では、書込み回路71W、読出し
回路71Rはベクトルレジスタ70−1に対するもののみ示
してある。書込み回路71Wは、書込みアドレスを保持す
るWAレジスタ72、+1カウントアップ回路74、線l43か
らの入力と回路74の出力をセレクトしてWAPレジスタ72
に供給するセレクタ76からなる。読出し回路71Rは、読
出しアドレスを保持するRAレジスタ73、この値を+1ア
ップする+1カウントアップ回路75とからなる。
上記受信命令が実行されると、線l80を介して命令実
行制御部13(第1図)からこの命令が指定するベクトル
レジスタ番号VR1がセレクタ77に入力され、連想記憶装
置8(第1図)から線l44上に読出されたデータがその
番号VR1のベクトルレジスタに送出される。今、ベクト
ルレジスタ70−1が上記受信命令で指定された番号VR1
のベクトルレジスタとする。このとき、このベクトルレ
ジスタ70−1に付随する書込み回路71Wが命令制御部14
により起動され、かつセレクタ76は線l43からの入力を
セレクトする。その結果、連想記憶装置8から線l43上
に出力されたサブ識別子SKがWAレジスタ72にセットさ
れ、線l44から供給されたデータがベクトルレジスタ70
−1の、サブ識別子SKに対応する記憶装置に書き込まれ
る。以上から明らかなごとく、メイン識別子としてベク
トルデータに割り当てられた番号を用い、サブ識別子と
して、そのベクトルデータ内のそれぞれの要素に割り当
てられた番号を用いることにより、受信したデータ(ベ
クトル要素)を一つのベクトルレジスタ内に書込むこと
ができる。
以上の受信命令の実行時に、メイン識別子が一致する
データがあったかを条件コードレジスタ21(第1図)
に、反映させるのは最初い述べた受信命令の場合と同じ
であり、そのレジスタ内の値を判別するために、条件分
岐(Branch on Condition)命令を上記受信命令の次に
実行し、データ受信不成功時には再度上記受信命令を実
行するのも、最初に述べた受信命令の場合と同じであ
る。さらに、上記受信命令の実行後、必要数のベクトル
要素が受信されたかを判別するために、前述したのと同
じ、計数分岐命令(Branch on Count instwction)を用
い、必要回数だけ、上記受信命令を実行する。
こうして、一つのベクトルレジスタに必要数のベクト
ル要素を格納できる。その後、ベクトル演算命令あるい
はベクトルデータをメモリ3(第1図)にストアする命
令あるいは逆にメモリからベクトルデータをロードする
命令を実行することにより、受信したベクトルデータに
対する処理を実行できる。
なお、以上述べた二つの受信命令の他に、他の受信命
令を実行させるように変形することもできる。たとえ
ば、汎用レジスタあるいはベクトルレジスタ以外のレジ
スタ(たとえば浮動小数点レジスタ(図示せず))に受
信したデータを格納するようにすることもできる。
第3図は連想記憶装置8の詳細構成図である。図中、
50−1−1ないし50−1−lおよび50−m−1ないし50
−m−lはデータ識別子(本実施例では識別子がlビッ
トの場合を示す)を保持するレジスタ、54−1ないし54
−mはデータを保持するレジスタ、55−1ないし55−m
はデータの有効性を示す有効ビットVを保持するレジス
タ、56および57はセレクタである。
連想記憶装置8上では、識別子,データおよび有効ビ
ットVを組として保持している。
データ転送路1(第1図)から送られてきたメッセー
ジから識別子とデータを取り出し、線l36および線l37を
通してレジスタ50−i−1から50−i−lおよび対応す
るレジスタ54−iに送り込まれる。ここで、iは1から
mまでの間の数字で、対応する有効ビットVが0を示し
ている中から選択される。処理装置5(第1図)で解読
された受信命令で示された検索用識別子は、線l42を通
して51−1−1ないし51−1−lおよび51−m−1ない
し51−m−lの入力とする。さらに、同じ受信命令で示
された検索用識別子長を、線l41を通して、識別子長デ
コード回路54に送り込む。識別子長デコード回路54では
検索用識別子長をデコードし、たとえば、検索用識別子
長がSビットの場合は、左からSビットを0、残り(l
−s)ビットを1として、OR回路52−1−1ないし52−
1−lおよびOR回討52−m−1ないし52−m−lの入力
とする。
したがって、検索は検索用識別子長に対応する識別子
部分で行われることになる。もちろんデータの有効性を
示す有効ビットレジスタV55−1および55−mもチェッ
クされ、線l62−1および線l620−mを介してそれぞれA
ND回路53−1およびAND回路53−mの入力となる。
検索した結果は軸l63−1および線l63−mを通してプ
ライオリティエンコーダ55に送られる。プライオリティ
エンコーダ55は一致を検出したものの中から1′を選
び、その結果をもとに、線l64を介してセレクタ56およ
びセレクタ57を切り換える。また、一致したメイン識別
子を有するデータに対する有効ビットを線l64上の信号
によりリセットする。プライオリティエンコーダ55から
は指定された長さの識別子部分が一致したデータが見つ
かったか否かを線l45を通して条件コードレジスタ22
(第1図)に送る。さらに、セレクタ56からの出力と線
l61とのビット毎の論理和を取り、線l43を介して選択さ
れたサブ識別子SKを、セレクタ57からはデータがそれぞ
れ処理装置5(第1図)に送られる。
以上から明らかなとおり、本実施例では、データ群ご
とに付された識別子(メイン識別子MK)を用いて、それ
に属する複数のデータを連想記憶装置から取り出しうる
ようにした所に特徴がある。したがって、この目的のた
めには、サブ識別子がデータに付されていない場合でも
本発明は適用しうる。さらに、メイン識別子長MKが一定
であるならば、検索用識別子長を処理装置5から連想記
憶装置8に供給する必要がない。しかし、本実施例のご
とく、識別子長を指定する場合には、いろいろのメイン
識別子長の場合も同一の連想記憶装置を用いることがで
きる。さらに、検索用識別子長をメイン識別子長とサブ
識別子長の和にした場合、二つの識別子がともに一致す
る識別子を有するデータも同一装置上で検索可能となる
という利点もある。
以下、本発明の第2の一実施例を図面を参照して説明
する。
本実施例は、第1の実施例と同様に、送信すべきデー
タに付加する識別子として、そのデータが属する特定の
データ群を表わすメイン識別子MKと、そのデータ群内の
他のデータとそのデータを区別するためのサブ識別子SK
を用い、連想記憶装置からのデータ読出しにあたって
は、メイン識別子が同じデータを検索する。
しかし、第1の実施例では、一つの送信命令で一つの
データを他のプロセッサエレメントに送信し、一つの受
信命令で一つのデータを、連想記憶装置から読み出した
のに対し、本実施例では、一つの送信命令で一群のデー
タを他のプロセッサエレメント群に送信し、一つの受信
命令で複数のデータを連想記憶装置から読出す。以下、
その詳細を述べる。
第4図において、No.2はネットワーク、103はプロセ
ッサエレメントであり、複数のプロセッサエレメント10
3はネットワーク102で相互にメッセージを交換しあうよ
うに接続されている。
第5図は送信されるメッセージ200の内容を説明する
ものであり、DSTは転送先のプロセッサエレメント番
号、MKおよびSKはこのメッセージ内のデータを識別する
ための識別子で、MKはメッセージ内のデータが属するデ
ータ群を識別するためのメイン識別子、SKはそのデータ
が該データ群内のどの要素であるかを識別するためのサ
ブ識別子である。たとえば、メイン識別子は各ベクトル
データごとに割当てられる番号を表し、サブ識別子はそ
のベクトルデータ内の各要素の番号0,1,……又はn表わ
す。第2の実施例では、簡単のためMK,SKはそれぞれ固
定長としたが、第1の実施例で示したように可変長にす
ることも可能である。第4図において、111はネットワ
ーク102から線102を経由して送られてくるメッセージ
を一時的に格納する連想メモリで、その一つのエントリ
には受信した一つのメッセージ200(第5図)の識別子M
K,SKおよびDATAおよびそのエントリの有効性を示す有効
ビットを保持する。以下、簡単のために、連想メモリ11
1の一つのエントリの内容をメッセージ又は受信メッセ
ージと呼ぶことにする。連想メモリ111は入力されるメ
イン識別子MKで連想検索を行い、一致するメッセージの
サブ識別子SKおよびデータを出力するように構成されて
いる。112はローカルメモリであり、バイト単位にアド
レス付けされている。115はプロセッシングユニットで
あり、ローカルメモリ112に置かれている命令列を逐次
実行する。このユニットには第1図に示したのと同じよ
うに、命令実行制御部(図示せず)の他に、汎用レジス
タ群120、条件コードレジスタ130、ベクトルレジスタ群
117、ベクトル演算又はスカラ演算を行う演算器140を有
する。114は転送コントローラで、プロセッシングユニ
ット115より検索用のメイン識別子MK、ベクトル長ロー
カルメモリアドレスuを線116より受けて、連想メモ
リ111からベクトル長VLに等しい数のベクトル要素が読
み出されるまで、連想メモリ111に連想検索させ、検索
結果として得られるベクトル要素を線115によりロー
カルメモリ112へ書込む。116はリクエストキューであ
り、プロセッサエレメントNo.3から与えられる。他のプ
ロセッサエレメント103へのメッセージ送信要求を一時
格納するバッファで、先入れ先出しの原理で動作する。
113はセンドコントローラで、リクエストキュー116から
先入れ先出し式に出力されるメッセージ送信要求を線
120より受けて、線118からローカルメモリ112上にあ
らかじめ置かれているメッセージを読み出し、送信先プ
ロセッサエレメント番号を付して線103を介してネッ
トワーク102へ送信する。
続いてプロセッサエレメント間の通信の動作およびセ
ンドコントローラ113の動作の説明をする。本発明に係
るプロセッシングユニット115は演算命令,データ転送
命令,分岐命令のような通常命令と、特有の命令を実行
する。特有の命令は、プロセッサエレメント間の通信に
関係し、メッセージの送信を要求する送信要求命令(以
下SEND命令と記す)、メッセージの受信処理の終了確認
を指示する命令(以下TEST RECEIVE命令と記す)であ
る。
SEND命令は次の仕様になっている。
ここにSENDはSEND命令のオペコードを示す。ローカル
メモリ112上には、あらかじめ送出すべきベクトルデー
タ203(第4図)(以下、メッセージデータベクトルと
呼ぶ)と、このベクトルデータ203の送信に関連する信
号からなるメッセージ制御ベクトル202(第4図)を格
納しておく。SEND命令の第1オペランドCは、メッセー
ジ制御ベクトル202の先頭アドレスであり、メッセージ
制御ベクトルデータ202は第6図に示すようにVLフィー
ルド202A、FLGフィールド202Bからなるヘッダ202Aと、
これに続く複数のパケット制御フィールド202Bからな
る。VLフィールド202Aはパケット制御フィールド202Bの
数、すなわちベクトル長VLを保持し、FLGフィールド202
Bはデータの送信処理の終了を示すフラグFLGを保持す
る。SEND命令の実行に先立って、FLGを0以外の値の初
期化しておく。パケット制御フィールド202Bの各要素
は、信号DSTj,MKj,SKjから成り、それぞれ受信先のプ
ロセッサエレメントの番号、およびメッセージデータベ
クトル203の各ベクトル要素に割り当てられたメイン識
別子,サブ識別子を表す。また、SEND命令のもうひとつ
のオペランド は、メッセージデータベクトル203の先頭アドレスであ
り、メッセージデータベクトル203の各要素は、第7図
に示すように一定長の複数のデータから成る。プロセッ
シングユニット115がSEND命令を実行すると、プロセッ
シングユニット115はこの命令のオペランドである を第4図の線119を介してリクエストキュー116に渡
し、次の命令を実行する。
次に、第8図はセンドコントローラ113の構成を示
す。センドコントローラ113の動作は制御回路161の制御
のもとに次のように行なわれる。
(1)リクエストキュー116から線120を介してSEND命
令のオペランド をとり出し、オペランド を線156を介してPCVBレジスタ157へ、線160,セレク
タ162,線161を介してPCVAレジスタ158へ与え、オペラ
ンド を線120,セレクタ163,線165を介してPDVAレジスタ1
59へ与える。もしも、リクエストキュー116が空であれ
ば、空でなくなるまで待ち、上の動作を行なう。
(2)PCVAレジスタ158内オペランド をアドレスとして線118を介してローカルメモリ112を
アクセスしてメッセージ制御ベクトル202のベクトル長V
Lを読み出し、線166,セレクタ164,線170を介してVL
レジスタ160に与える。
(3)VLレジスタ160内ベクトル長VLを線167を介して
0判定回路156に入力する。値が0であるときはステッ
プ(7)へ進む。
(a)線158,8加算回路153,159,セレクタ162,線1
61を介してPCVAレジスタ158の内容を8だけ増す。
(b)次にPCVAレジスタ158内の内容をアドレスとして
線118を介してメモリ112をアクセスしてメッセージ制
御ベクトル202(第7図)の次の要素(今の場合はDSTO,
MKO,SKO)を読み出し、線151を介してメッセージレジ
スタ151の上位8バイトに与える。
その後、上記処理(a)を行う。
(4)PDVAレジスタ159内のオペランド をアドレスとして、ステップ(4)と同様にローカルメ
モリ112からメッセージデータベクトル203(第8図)の
第0要素を読み出し、メッセージレジスタ151の下位8
バイトに与える。また、8加算回路154により、PDVAレ
ジスタ159の内容を8だけ増す。
(5)ステップ(3),(4)によりメッセージレジス
タ151に第5図の型式のメッセージが形成されるので、
これを線103を介してネットワーク102へ与える。さら
に、VLレジスタ160の内容を1減算回路155により減算す
る。
(6)以上の処理の後に0判定回路156がVLレジスタ160
の内容が0であると判定すると、次のステップ(7)へ
行く。そうでなければステップ(3)へ行く。すなわ
ち、SEND命令が指定したベクトル長分だけベクトル要素
を送出後、次のステップ(7)へ行く。
(7)PCVBレジスタ157の内容を4加算回路152によって
4だけ増した値をアドレスとして、ローカルメモリ112
に線118を介してアクセスし、メッセージ制御ベクト
ル202のFLGフィールドに常に値0を格納しているZEROレ
ジスタ150の内容を書込みこのフィールドを0クリアす
る。
以上のごとくにして、あるプロセッサエレメントから
ベクトルデータの送信が行なわれる。
次にRECEIVE命令の説明をする。
RECEIVE命令は次の仕様になっている。
ここに、RECEIVEはRECEIVE命令のオペコード、MKは受
信すべきベクトルデータ割り当てられたメイン識別子
を、LENGTHは受信するベクトル要素の数を、 は受信したベクトルデータを格納すべきローカルメモリ
112のエリア204(第4図)の先頭アドレスを表わす。プ
ロセッシングユニット115がRECEIVE命令を実行すると、
プロセッシングユニット115はこの命令のオペランドMK,
LENGTH, を線116を介して転送コントローラ114に渡し転送コン
トローラ114を起動して次の命令をの実行を開始する。
次に、転送コントローラ114の構成と動作を説明す
る。第10図は転送コントローラ114の構成と連想メモリ1
11を示している。転送コントローラ114の動作は制御回
路175の制御のもとに次のように行なわれる。
(1)プロセッシングユニット115から線116Aを介し
て与えられる、RECEIVE命令のオペランドMK,LENGTH, をそれぞれMKレジスタ171,VLレジスタ173,PDVAレジスタ
172にセットする。
(2)制御回路175は、線111Aにより連想メモリ111を
起動する。連想メモリ111は線112を介して与えられた
MKレジスタ171の内容MKと一致するメイン識別子MKをも
つ一つのメッセージをそこに一時格納されているメッセ
ージ群の中から探し、あればそのメッセージのサブ識別
子SKとデータをそれぞれ線113,線114に出力し、線
111Bの値を1にすることにより制御回路175に一致メ
ッセージの検出を通知し、かつそのメッセージを連想メ
モリ111から消去する。この消去はそのメッセージの有
効ビットVをOとするごとによりなされる。一致メッセ
ージが検出されなかったときには、新たなメッセージが
ネットワーク2から連想メモリ111に到着するごとに、
それが一致メッセージか否かを判定し、一致メッセージ
が検出されれば、上に述べたのと同じ動作をする。
(3)転送コントローラ114では、線113に出力されて
いるサブ識別子SKを左3ビットシフタ170により左3ビ
ットシフトし、加算器177でこの値とPDVAレジスタ172内
の先頭アドレスuを加算することにより、RECEIVE命令
のオペランド で示されるローカルメモリ112内のメッセージデータベ
クトルエリア204内の、前記サブ識別子SKを要素番号と
する要素を格納するエントリのアドレスを計算する。
この加算器177の出力および線114に出力されたデー
タはそれぞれアドレス線115−1,データ線115−2を
介して り112に送られる。制御回路175は、線111B上
に信号が1になったことに応答して線187,制御線11
5−3を介してデータ書込み指定をメモリ112に送出し、
上記アドレスに上記データを格納する。
また、1減算回路176により、VLレジスタ173の内容を
1だけ減ずる。
(3)この減算の結果が0でない場合、0判定回路174
の出力は0であり、制御回路175はステップ(2)の処
理に移る。こうして次々とベクトル要素が連想メモリ11
1から検索され、ローカルメモリ112に書き込まれる。も
し、上記減算の結果が0であると、以上の動作は終了す
る。
このように転送コントローラ114は一度、RECEIVE命令
により起動されると、その命令が指定されたベクトル長
VLに等しい一致メッセージが連想メモリ111から読出せ
るまで、このメモリ111をアクセスし、かつ一致メッセ
ージのデータをローカルメモリ112に書込む。
次にTEST RECEIVE命令の説明をする。この命令は受信
動作が完了したか否かを判別する命令で、次の仕様にな
っている。
TRCV Rj ここに、TRCVはこの命令のオペレーションコードを表
し、Rjはプロセッシングユニット115内にある汎用レジ
スタ群120(第4図)内の一つのレジスタの番号であ
る。プロセッシングユニット115がTEST RECEIVE命令を
実行すると、プロセッシングユニット115は線116Bを
介して転送コントローラ114の中にあるVLレジスタ173の
内容を読み出してこの命令で指定された番号Rjの汎用レ
ジスタにその値を格納する。このとき、この汎用レジス
タに格納した値が0か否かを判別し、0であったなら0
を、0でなかったならば1を条件コードレジスタ130
(第4図)にセットする。次に、この条件コードを判別
して、分岐する条件分岐命令を実行する。
続いて、本実施例の並列プロセッサの具体的な使用例
を説明する。ここでは第10図に示す8行8列の配列デー
タから4台のプロセッサエレメントPE1〜PE4を用いてそ
れの転置行列を示すデータを得る場合を説明する。第11
図は第10図の配列の異なる2列のデータを各プロセッサ
エレメントに割当ててあるところを示している。第12図
はこれから説明する転置行列を求める操作後に、各プロ
セッサエレメントが保持すべきデータを示す。第13図は
各プロセッサエレメントがそれぞれのローカルメモリ15
上に転置行列を求める処理の前に保持しているベクトル
の一部を示す。第14図は各プロセッサエレメントが、転
置行列を示すデータを求める処理をした後に、それぞれ
のローカルメモリ112上に格納すべきベクトルの一部を
示し、第15図はプロセッサエレメントPE1〜PE4のうちプ
ロセッサエレメントPE1,PE2がSEND命令を実行するとき
にオペランドとして指定するメッセージ制御ベクトル を示す。第16図はプロセッサエレメントPE1が実行する
プログラムの例である。プロセッサエレメントPE3,PE4
にも同様のメッセージ制御ベクトルを置き、同様のプロ
グラムを実行させる。
プロセッサエレメントPE1は第16図のプログラムのREC
EIVE命令を実行してメイン識別子の値が1のメッセージ
が到着したら、データベクトル の中のそれぞれのメッセージの持つサブ識別子に対応す
る位置に格納し、SEND命令を実行することによりメッセ
ージ制御ベクトル メッセージデータベクトル より、これらを送るメッセージを形成してネットワーク
102へ送信する。プロセッサエレメントPE1ではセンドコ
ントローラ113が上記メッセージの送信を行い、転送コ
ントローラ114が上記ベクトル領域 への書き込みを行う。この間、プロセッサエレメントPE
1内のプロセッシングユニット115は他の命令を実行する
ことができる。その後、TEST RECEIVE命令を実行して転
置された配列のデータの全ての到着確認を行ない、その
後、条件分岐命令BNZを実行してTEST RECEIVE命令の実
行後の条件コードにより、全て到着しているかを判断し
て、必要ならばTEST RECEIVE命令を繰り返す。
以上が配列の転置を行なう例である。ここではプロセ
ッサエレメントPE1の処理のみ記したが他のプロセッサ
エレメントPE2〜PE4も同様の処理を行なって配列の転置
を終了する。
以上の実施例では、他プロセッサへ送信するデータ,
他プロセッサから送られたデータの各格場所をローカル
メモリ内としたが、これをプロセッサ内のベクトルレジ
スタにすることも容易である。ベクトルレジタを用いる
場合には、ローカルメモリ上のベクトルの先頭アドレス
を指定するかわりに、ベクトルレジスタの番号を指定す
ればよい。
〔発明の効果〕
本発明によれば、交換則が成立つような処理に必要な
データを受信バッファ(連想記憶装置)に到着した順に
受信プロセッサに取り込むことが可能であり、受信プロ
セッサが遊休する時間を小さくすることができる。
また、本発明によれば、識別子を2つの部分に分ける
境界を自由に決められるので、有限長の識別子を有効に
利用することができる。
さらに、複数プロセッサエレメントからのデータ受信
の確認をひとつの命令で一括してできる。また、受信起
動命令にて一括してデータの受信処理を起動でき、送信
命令にて一括してデータの送信の起動ができる。これに
より、多数のプロセッサエレメントと多数のデータを送
受する場合でも数令令の処理で済むので、データの通信
に関連する多数の命令処理によって並列処理の効率が低
下することを防ぐ効果がある。
【図面の簡単な説明】
第1図は本発明の第1の実施例を示す並列プロセッサの
構成図、第2図は第1図のベクトル演算部の詳細構成
図、第3図は第1図の連想記憶装置の詳細構成図、第4
図は本発明の第2の実施例を示す並列プロセッサの全体
構成図、第5図はメッセージの型式を示す図、第6図は
メッセージ制御ベクトル(202)内のデータを示す図、
第7図は、メッセージデータベクトル(203)内のデー
タを示す図、第8図は第4図のセンドコントローラ(11
3)の構成図、第9図は第4図の転送コントローラ(11
4)の構成図、第10図は転置処理を受けるべき二次元配
列データの一例を示す図、第11図は転置処理の前に、第
10図のデータのどの列が4台のプロセッサエレメント
(PE1〜PE4)に割当てられるかを示す図、第12図は、第
10図のデータに対して転置処理を施した後、4台のプロ
セッサエレメントに保持されるべきデータ部分を示す
図、第13図は、第10図のデータの内、転置処理の前に4
台のプロセッサエレメントで保持されるベキベクトルデ
ータの部を示す図、第14図は、第10図のデータに転置処
理を施した結果として4台のプロセッサエレメントが保
持すべきベクトルデータの一部を示す図、第15図は、第
1,第2のプロセッサエレメント(PE1)により用いられ
るメッセージ制御ベクトル を示す図、第16図は、第1のプロセッサエレメントで実
行されるプログラムの例を示す図である。 1……データ転送路、2−1,2−2,2−3……プロセッサ
エレメント、3……メモリ、4……データ受信装置、5
……処理装置、6……メッセージ生成送信装置、8……
連想記憶装置、18……ベクトル演算部、102……ネット
ワーク、103……プロセッサエレメント、111……連想メ
モリ、112……ローカルメモリ、113……センドコントロ
ーラ、114……連送コントローラ、115……プロセッシン
グユニット、116……リクエストキュー、117……ベクト
ルレジスタ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 中越 順二 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 長島 重夫 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (56)参考文献 特開 昭63−37457(JP,A) 特開 昭63−100560(JP,A) 特開 昭63−223857(JP,A)

Claims (14)

    (57)【特許請求の範囲】
  1. 【請求項1】(a)複数のプロセッサと、 (b)該複数のプロセッサ間のデータ転送を行うための
    ネットワークとを有し、 (c)各プロセッサが、 (c1)他のプロセッサに送信すべきデータならびに該デ
    ータが属するデータ群を識別するためのメイン識別子お
    よび該データ群中の他のデータから該データを識別する
    ためのサブ識別子とからなるデータ識別子を含むメッセ
    ージを該ネットワークに送信する第1の手段と、 (c2)該ネットワークからそのプロセッサに供給された
    複数のメッセージを保持し、検索用のメイン識別子に応
    答して、該保持されたメッセージ中の、該検索用メイン
    識別子に一致するメイン識別子を有するメッセージに含
    まれるデータおよびサブ識別子を出力する第2の手段
    と、 (c3)複数の命令を実行する第3の手段であって、該第
    2の手段からのデータの読出しを要求する命令に応答し
    て、該命令が指定する検索用のメイン識別子を該第2の
    手段に供給するものと、 を有することを特徴とする並列プロセッサ。
  2. 【請求項2】該第3の手段は、該検索用のメイン識別子
    を、該第2の手段から所定数のデータが出力されるまで
    繰り返し該第2の手段に供給する手段を有することを特
    徴とする請求項1記載の並列プロセッサ。
  3. 【請求項3】該繰り返し供給手段は、該命令に応答して
    該繰り返し供給を実行する手段、または該命令を繰り返
    し実行することにより該繰り返しを実行する手段である
    ことを特徴とする請求項2記載の並列プロセッサ。
  4. 【請求項4】該第3の手段は、 該繰り返し供給手段による繰り返し供給実行中に、該命
    令の後続の命令を実行する手段を有することを特徴とす
    る請求項3記載の並列プロセッサ。
  5. 【請求項5】該第3の手段は、複数のベクトルデータを
    保持する手段と、 該第2の手段から該繰り返し供給に対して出力された複
    数のデータを、該ベクトルデータ保持手段内の、該命令
    が指定する領域内の、それぞれのデータに付随するサブ
    識別子が指定する記憶位置に格納する手段を有すること
    を特徴とする請求項3記載の並列プロセッサ。
  6. 【請求項6】該第3の手段は、 ベクトルデータ保持手段と、 該第2の手段から供給されたデータを、該データに付随
    するサブ識別子により定まる、該ベクトルデータ保持手
    段内の位置に書込む手段を有することを特徴とする請求
    項2記載の並列プロセッサ。
  7. 【請求項7】該ベクトルデータ保持手段は、それぞれの
    プロセッサで実行される命令およびデータを保持するメ
    モリ、またはベクトルレジスタであることを特徴とする
    請求項6記載の並列プロセッサ。
  8. 【請求項8】該第3の手段は、該ベクトルデータ保持手
    段に保持されたベクトルデータにベクトル演算を施す演
    算器を有することを特徴とする請求項7記載の並列プロ
    セッサ。
  9. 【請求項9】該第1の手段は、該第3の手段によるデー
    タ送信命令の実行に応答して、該命令で指定される複数
    のデータおよびそれぞれに対するメイン識別子およびサ
    ブ識別子から、複数のメッセージを形成してそれぞれを
    順次出力する手段を有することを特徴とする請求項1又
    は3記載の並列プロセッサ。
  10. 【請求項10】(a)複数のプロセッサと、 (b)該複数のプロセッサ間のデータ転送を行うための
    ネットワークとを有し、 (c)各プロセッサが、 (c1)他のプロセッサに送信すべきデータならびに該デ
    ータが属するデータ群を識別するためのメイン識別子を
    含むメッセージを該ネットワークに送信する第1の手段
    と、 (c2)該ネットワークから自己のプロセッサに供給され
    た複数のメッセージを保持し、検索用のメイン識別子に
    応答して、該保持されたメッセージ中の、該検索用メイ
    ン識別子に一致するメイン識別子を有するメッセージに
    含まれるデータおよびサブ識別子を出力する第2の手段
    と、 (c3)複数の命令を実行する第3の手段であって、該第
    2の手段からのデータの読出しを要求する命令に応答し
    て、該命令が指定する検索用のメイン識別子を該第1の
    手段に、該第2の手段から所定数のデータが出力される
    まで繰り返し該第2の手段に供給するものと、 を有することを特徴とする並列プロセッサ。
  11. 【請求項11】該繰り返し供給手段は、該命令に応答し
    て該繰り返し供給を実行する手段、または該命令を繰り
    返し実行することにより該繰り返しを実行する手段であ
    ることを特徴とする請求項10記載の並列プロセッサ。
  12. 【請求項12】該第1の手段は、該第3の手段によるデ
    ータ送信命令の実行に応答して、該命令で指定される複
    数のデータおよびそれぞれに対するメイン識別子から、
    複数のメッセージを形成してそれぞれを順次出力する手
    段を有することを特徴とする請求項11記載の並列プロセ
    ッサ。
  13. 【請求項13】(a)複数のプロセッサと、 (b)該複数のプロセッサ間のデータ転送を行うための
    ネットワークとを有し、 (c)各プロセッサが、 (c1)他のプロセッサに送信すべきデータならびに該デ
    ータを識別するための識別子を含むメッセージを該ネッ
    トワークに送信する第1の手段と、 (c2)該ネットワークから自己のプロセッサに供給され
    た複数のメッセージを保持し、検索用の識別子および該
    検索用識別子の内、検索に用いられるべき部分の長さを
    示す検索用識別子長に応答して、該保持されメッセージ
    中の、該検索用識別子の内、該検索用識別子長にて指定
    された部分に一致する部分を有する識別子を有するメッ
    セージに含まれるデータを出力する第2の手段と、 (c3)複数の命令を実行する第3の手段であって、該第
    2の手段からのデータの読出しを要求する命令に応答し
    て、該命令が指定する検索用の識別子および検索用識別
    子長を該第1の手段に供給するものと、 を有することを特徴とする並列プロセッサ。
  14. 【請求項14】該第2の手段は、該一致した部分を有す
    る識別子の内、該一致する部分以外の部分を該データと
    ともに出力する手段を有することを特徴とする請求項13
    記載の並列プロセッサ。
JP63008315A 1987-01-23 1988-01-20 並列プロセッサ Expired - Lifetime JP2753240B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP1235887 1987-01-23
JP62-12359 1987-01-23
JP62-12358 1987-01-23
JP1235987 1987-01-23

Publications (2)

Publication Number Publication Date
JPS63303460A JPS63303460A (ja) 1988-12-12
JP2753240B2 true JP2753240B2 (ja) 1998-05-18

Family

ID=26347965

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63008315A Expired - Lifetime JP2753240B2 (ja) 1987-01-23 1988-01-20 並列プロセッサ

Country Status (2)

Country Link
US (1) US5086498A (ja)
JP (1) JP2753240B2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5689647A (en) * 1989-03-14 1997-11-18 Sanyo Electric Co., Ltd. Parallel computing system with processing element number setting mode and shortest route determination with matrix size information
EP0408810B1 (en) * 1989-07-20 1996-03-20 Kabushiki Kaisha Toshiba Multi processor computer system
AU630299B2 (en) * 1990-07-10 1992-10-22 Fujitsu Limited A data gathering/scattering system in a parallel computer
JP2770603B2 (ja) * 1991-03-14 1998-07-02 三菱電機株式会社 並列計算機
US5257384A (en) * 1991-09-09 1993-10-26 Compaq Computer Corporation Asynchronous protocol for computer system manager
FR2686175B1 (fr) * 1992-01-14 1996-12-20 Andre Thepaut Systeme de traitement de donnees multiprocesseur.
US5506992A (en) * 1992-01-30 1996-04-09 Saxenmeyer; George Distributed processing system with asynchronous communication between processing modules
US5434975A (en) * 1992-09-24 1995-07-18 At&T Corp. System for interconnecting a synchronous path having semaphores and an asynchronous path having message queuing for interprocess communications
US5464435A (en) * 1994-02-03 1995-11-07 Medtronic, Inc. Parallel processors in implantable medical device
JP2587586B2 (ja) * 1994-05-25 1997-03-05 甲府日本電気株式会社 データ転送方法
FI20012173A (fi) * 2001-11-09 2003-05-10 Nokia Corp Synkronisoiva paikallisverkko
US7082425B2 (en) * 2003-06-10 2006-07-25 Logicube Real-time searching of data in a data stream
US7676647B2 (en) * 2006-08-18 2010-03-09 Qualcomm Incorporated System and method of processing data using scalar/vector instructions
US8612505B1 (en) 2008-07-14 2013-12-17 The Mathworks, Inc. Minimum resource fast fourier transform
GB2470780B (en) * 2009-06-05 2014-03-26 Advanced Risc Mach Ltd A data processing apparatus and method for performing a predetermined rearrangement operation

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5522821B2 (ja) * 1974-11-15 1980-06-19
CA1059639A (en) * 1975-03-26 1979-07-31 Garvin W. Patterson Instruction look ahead having prefetch concurrency and pipe line features
US4128880A (en) * 1976-06-30 1978-12-05 Cray Research, Inc. Computer vector register processing
US4128882A (en) * 1976-08-19 1978-12-05 Massachusetts Institute Of Technology Packet memory system with hierarchical structure
US4408273A (en) * 1980-05-27 1983-10-04 International Business Machines Corporation Method and means for cataloging data sets using dual keyed data sets and direct pointers
US4481571A (en) * 1981-09-11 1984-11-06 Data General Corp. Digital data processing system with accumulation instructions
US4604709A (en) * 1983-02-14 1986-08-05 International Business Machines Corp. Channel communicator
JPS6049464A (ja) * 1983-08-30 1985-03-18 Oki Electric Ind Co Ltd マルチプロセッサ計算機におけるプロセッサ間通信方式
US4601586A (en) * 1984-02-10 1986-07-22 Prime Computer, Inc. Solicited message packet transfer system
JPS61210477A (ja) * 1984-05-25 1986-09-18 Hitachi Ltd ベクトル型連想メモリシステム
US4713758A (en) * 1985-04-29 1987-12-15 American Telephone And Telegraph Company, At&T Bell Laboratories Computer testing arrangement
US4649473A (en) * 1985-06-17 1987-03-10 International Business Machines Corporation Flexible data transmission for message based protocols

Also Published As

Publication number Publication date
US5086498A (en) 1992-02-04
JPS63303460A (ja) 1988-12-12

Similar Documents

Publication Publication Date Title
JP2753240B2 (ja) 並列プロセッサ
EP0240032B1 (en) Vector processor with vector data compression/expansion capability
EP0460599B1 (en) Massively parallel processor including queue-based message delivery system
US4128880A (en) Computer vector register processing
US5010477A (en) Method and apparatus for transferring vector data between parallel processing system with registers & logic for inter-processor data communication independents of processing operations
US4827403A (en) Virtual processor techniques in a SIMD multiprocessor array
US4873626A (en) Parallel processing system with processor array having memory system included in system memory
US4891787A (en) Parallel processing system with processor array having SIMD/MIMD instruction processing
US4295193A (en) Machine for multiple instruction execution
US5418970A (en) Parallel processing system with processor array with processing elements addressing associated memories using host supplied address value and base register content
EP0138451B1 (en) Vector data processing system for indirect address instructions
US5680631A (en) Data processor with on-chip cache memory and purge controller responsive to external signal for controlling access to the cache memory
EP0268264B1 (en) Control system for vector processor
JPS6363945B2 (ja)
JPS6131502B2 (ja)
US5297255A (en) Parallel computer comprised of processor elements having a local memory and an enhanced data transfer mechanism
US5710932A (en) Parallel computer comprised of processor elements having a local memory and an enhanced data transfer mechanism
US5940625A (en) Density dependent vector mask operation control apparatus and method
US20030172248A1 (en) Synergetic computing system
EP0326164B1 (en) Parallel computer comprised of processor elements having a local memory and an enhanced data transfer mechanism
EP0105125B1 (en) Data processing system
CN112463218A (zh) 指令发射控制方法及电路、数据处理方法及电路
JP2828972B2 (ja) 並列プロセツサ
EP0107447B1 (en) Computer data distributor
JP2001167084A (ja) ベクトル演算処理装置及びベクトルデータ移送方法