JP2644780B2 - 処理依頼機能を持つ並列計算機 - Google Patents

処理依頼機能を持つ並列計算機

Info

Publication number
JP2644780B2
JP2644780B2 JP62289325A JP28932587A JP2644780B2 JP 2644780 B2 JP2644780 B2 JP 2644780B2 JP 62289325 A JP62289325 A JP 62289325A JP 28932587 A JP28932587 A JP 28932587A JP 2644780 B2 JP2644780 B2 JP 2644780B2
Authority
JP
Japan
Prior art keywords
register
data
processing
processor
element 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
JP62289325A
Other languages
English (en)
Other versions
JPH01131949A (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 JP62289325A priority Critical patent/JP2644780B2/ja
Priority to US07/272,550 priority patent/US5129093A/en
Publication of JPH01131949A publication Critical patent/JPH01131949A/ja
Application granted granted Critical
Publication of JP2644780B2 publication Critical patent/JP2644780B2/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/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

Landscapes

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は並列計算機に関し、とくに要素プロセツサ台
数の多い場合に必要とされる物理的に分散した共有メモ
リを持つ超並列計算機に関する。
〔従来の技術〕
並列計算機において、要素プロセツサ台数が増加して
いくと、多数のメモリモジユールの各々が物理的に分散
した多数の要素プロセツサにそれぞれ直接接続され、こ
れらがネツトワークにより結合された形で構成される疎
結合並列計算機が中心となつてくる。これは、一ケ所に
置いたメモリを名数の要素プロセツサがアクセスする密
結合並列計算機では、アクセス競合のため性能が低下す
るからである。ところが、ソフトウエアの面からは、論
理的に一ケ所に置かれたデータ構造を各要素プロセツサ
が共有する方式が望ましい。このため、近年に至つて、
物理的には分散し論理的には共有方式のメモリ(以下で
は分散型共有メモリと呼ぶ)が提案され始めた。特開昭
64−1049号公報の「並列計算機」(出願日62年9月4
日)には、分散配置されたメモリ上に語単位でデータを
分散し、これを全要素プロセツサが共有する広域アドレ
ス方式のメモリシステムが開示されている。セグメント
単位でデータの重複を許して分散させる局所アドレス方
式の分散型メモリシステムが開示されている。
このような分散型共有メモリにおいて、定義または参
照するデータが自要素プロセツサ中のメモリモジユール
に存在していない場合には、相互結合ネツトワークを用
いて他要素プロセツサ中のメモリモジユールをアクセス
しなくてはならないため、性能低下が生じる。他要素プ
ロセツサ中のメモリモジユールにあるデータAをアクセ
スする動作は、次の3つの動作プリミテイブ(分解でき
ない動作)に帰着する。Rを自要素プロセツサのレジス
タとすると、 (1)参照 R←A(Aをレジスタにロード) (2)定義 A←R(レジスタの内容をAに格納) (3)再帰的定義 A←OP(A,R)(Aとレジスタの内容とを演算処理した
結果をAに戻す) または、 A←OP(A)(Aにある処理を施した結果をAに戻す) ここに、OPは演算処理を示す。また、再帰的定義は参
照と定義に分解することができるが、後述するように、
分散処理においては参照と定義の間に他の動作プリミテ
イブが入つて、結果が変わつてしまう可能性があるの
で、ここでは分解不能の単一プリミテイブとして実行す
ることを考える。これら三種類の動作プリミテイブのう
ち、(1)はメツセージ通信機能を持つプロセツサ間で
参照要求メツセージと応答メツセージを往復させること
により、(2)は格納要求メツセージを送信することに
より、単純に効率良く処理することができる。しかしな
がら、(3)に関しては、複雑な排他制御が必要であ
る。すなわち、あるメモリモジユールに直接接続されて
いない要素プロセツサが該メモリモジユール中のデータ
を再帰型演算により更新しようとする場合、従来は、再
帰型演算命令を発行した要素プロセツサがネツトワーク
を経由して該データをいつたん自分のメモリに移し、こ
れを更新してからその結果をネツトワーク経由で送り返
すという手間が必要であつた。例えば、 A(L(I))=A(L(I))+B(I) というプログラムを第i要素プロセツサが実行しようと
する場合、間接指標L(I)により配列Aの要素番地が
定まる表現のため、コンパイル時にA(L(I))を必
ず第i要素プロセツサに割り付けるようにすることはで
きない。従つてこのような場合は、プログラムとデータ
が同じ要素プロセツサに割り付けられているという保証
が無く、一般には他のメモリモジユールを読まなくては
ならない。このとき、更新の途中で他の要素プロセツサ
が該データをアクセスするのを禁止するために、該メモ
リモジユールを排他制御する必要がある。上記プログラ
ム例では、その実行手順は以下のようになる。
第i要素プロセツサがA(L(I))の番地を計算す
る。
ネツトワークを経由して、A(L(I))の存在する
メモリモジユールに接続している要素プロセツサ(第j
要素プロセツサ)にデータを送るよう依頼し、返信を待
つ。
第j要素プロセツサは該メモリモジユールを排他制御
域とする。
第j要素プロセツサはデータを読みだしてネツトワー
ク経由で第i要素プロセツサにデータを送る。
第i要素プロセツサは送られてきたデータを更新処理
する。
第i要素プロセツサはネツトワークを経由して更新し
たA(L(I))を第j要素プロセツサに送り、メモリ
モジユールへの書き込みを依頼する。
第j要素プロセツサはA(L(I))を書き込み、排
他制御を解除する。
〔発明が解決しようとする問題点〕
上記従来例では、 (1)ネツトワークを経由してデータを読み書きするた
め、更新処理に多くの時間がかかる(,,) (2)排他的にメモリモジユールをアクセスするため、
データがネツトワーク上にあつたり第i要素プロセツサ
中で処理中であつたりする場合でも該メモリモジユール
を使用することができず、並列処理が阻害される(か
ら) という問題がある。
〔問題点を解決するための手段〕
上記問題点を解決するためには、他の要素プロセツサ
に接続しているメモリ中のデータを再帰的に定義する処
理を、データが存在するメモリモジユールに接続してい
る要素プロセツサに実行させるための処理依頼メツセー
ジを送出する手段と、該メツセージを受け付け、その内
容に従つて要素プロセツサの動作を一時停止させるとと
もに依頼された処理を遂行する手段と、要素プロセツサ
が該要素プロセツサに割当てられたプログラムの実行時
に使用する汎用レジスタ、浮動小数点レジスタとは別
の、依頼された処理を遂行するために供するレジスタ類
とを設けることにより達成される。
〔作用〕
該処理プログラムを実行している要素プロセツサは、
再帰的定義命令のオペランドで指定している被定義デー
タAが他の要素プロセツサに接続しているメモリ中に存
在している場合には、該データAの存在しているメモリ
モジユールに接続している要素プロセツサに対し、処理
依頼メツセージを送る。このメツセージ中には、該デ
ータA(被処理データと呼ぶ)のアドレスと、該デー
タとともに処理を受けるデータB(処理データと呼ぶ)
の値と、処理の種類を示す処理コードとが含まれてい
る。処理依頼メツセージを受け取つたプロセツサは自身
の処理を中断し、代わりに被処理データAのアドレス
を、依頼された処理を実行するために本発明で用意され
たレジスタ群中のアドレスレジスタに、処理データBの
値と同じく処理データレジスタに格納した後、アドレス
レジスタの内容を用いてメモリをアクセスする。読みだ
した被処理データAはワークレジスタに格納し、処理デ
ータレジスタの内容と共に演算器に入力し、処理依頼メ
ツセージ中の処理コードを用いて必要な演算を実行さ
せ、結果を被処理レジスタに返す。最後に、被処理レジ
スタの内容をアドレスレジスタが指すメモリモジユール
中のアドレスに格納し、プロセツサに制御を返す。この
ように、処理はすべて該データの存在するメモリモジユ
ールに接続されているプロセツサ側で行われ、ネツトワ
ークを経由してデータをやりとりする必要はない。ま
た、処理依頼メツセージを受け取つたプロセツサは該処
理が終了するまで時プロセツサまたは他プロセツサから
のメモリアクセスを受け付けることができないので、自
然に排他制御が実現し、他の要素プロセツサが誤つて更
新中のデータをアクセスする恐れは無い。また、処理依
頼メツセージを送つたプロセツサは、この間、別の処理
を実行できるので、並列処理が阻害される心配は無い。
〔実施例〕
以下、本発明の実施例を図面により詳細に説明する。
まず本発明に係る情報処理装置の概要を第1図を用い
て説明する。第1図は、1台の要素プロセツサの内部を
図示したもので、他に同様の構造を持つ複数台の要素プ
ロセツサが第7図に示すように相互結合ネツトワーク1
に接続されているが、第1図では簡単のため省略してあ
る。相互結合ネツトワーク1は、任意の要素プロセツサ
から発せられるメツセージ送信要求を受け、メツセージ
を指定された要素プロセツサへ転送することができる。
次に、要素プロセツサの構成を説明する。要素プロセ
ツサの基本部分はフオンノイマン型計算機であり、他に
相互結合ネツトワーク1を用いて通信する機能を持つて
いるものとする。通常の演算命令や上記通信のための命
令などの他に、本発明を実施するために若干の命令を新
設してあるが、詳しくは後述する。各要素プロセツサ10
0は、第7図に示すようにプロセツサ10、局所メモリ
3、受信ユニツト110、送信ユニツト120、アドレス変換
ユニツト140とから構成され、局所メモリ3に格納され
たプログラムを実行するようになつている。要素プロセ
ツサが実行するプログラムは、あらかじめホスト計算機
(図示せず)が局所メモリ中に格納しておく。第1図で
は回路の詳細を記述してあるが、簡単のため、フオンノ
イマン型計算機としての基本構成要素である演算器など
のうち、本発明に直接関与しない部分は省略してある。
図中、3は局所メモリ、10はプロセツサであり、フオン
ノイマン型計算機としての主要部分である。12は命令レ
ジスタであり、実行中の命令語を保持する。31は制御記
憶であり、マイクロプログラムで書かれている。命令レ
ジスタ12中の命令コード部OPはセレクタ42を経由して制
御記憶31中のマイクロプログラムのリテラル部とともに
制御記憶アドレスレジスタ32に格納され、機械命令に対
応した制御記憶のアドレスを与える。制御記憶31内のマ
イクロ命令の一語が読みだされると、それは制御記憶デ
ータレジスタ33に格納され、デコーダ34により種々の制
御信号に変換されて要素プロセツサの動作を制御する。
15はネツトワークに送出すべきメツセージを一時的に格
納する出力ポートレジスタで、15−1,15−2,15−3,15−
4のフイールドに分かれている。16はネツトワークから
送信されてきたメツセージを格納する入力ポートレジス
タで、16−1,16−2,16−3のフイールドに分かれてい
る。18は送信メツセージ処理の制御回路、19は処理依頼
メツセージ送信の制御回路である。26はアドレス変換を
行なうためのゼクメントテーブルで、テーブル中の各エ
ントリは26−1,26−2,26−3,26−4のフイールドに分か
れている。26−1の内容は26−3の内容とともにデコー
ダ45に入力され、その後処理依頼メツセージ送信の制御
回路19に送られる。29はアドレス加算器である。38は演
算器で、2本のバス、すなわちLBUS36とRBUS37とから入
力して、ABUS39に結果を出力する。35は汎用および浮動
小数点レジスタ群であり、LBUS36とRBUS37とに接続して
いる。22は処理依頼メツセージ受信をプロセツサに通知
するためのフラグレジスタで、その内容はデコーダ34か
ら出力される一つの機械命令サイクル終了信号43ととも
にセレクタ42に入力される。23は処理依頼メツセージの
処理用レジスタ群で処理コードレジスタ23−1、アドレ
スレジスタ23−2、演算データレジスタ23−3、ワーク
レジスタ23−4から構成されている。ただし、レジスタ
23−1,2,3は入力ポートレジスタ16−1,2,3を当てても良
い。処理コードレジスタ23−1の内容はデコーダ44に入
力された後セレクタ42に送られる。40は制御回路19の状
態レジスタ、41はそのデコーダである。
続いて、第2図により入力ポートレジスタ16のフイー
ルドを説明する。入力ポートレジスタ16の各フイールド
はメツセージの種類に応じて色々な意味を持つが、ここ
では本発明に関係する処理依頼メツセージについて説明
する。入力ポートレジスタ16の第一フイールド16−1に
は、依頼した処理の内容を示す処理コードが格納され
る。第二フイールド16−2には被処理データのアドレ
ス、第三フイールド16−3には処理データの値が格納さ
れる。
次に、第3図により出力ポートレジスタ15のフイール
ドを説明する。入力ポートレジスタと同様、出力ポート
レジスタ15の各フイールドもメツセージの種類に応じて
色々な意味を持つが、ここでは本発明に関係する処理依
頼メツセージについて説明する。出力ポートレジスタ15
の第一のフイールド15−1には、メツセージの送信先要
素プロセツサの識別番号を格納する。残るフイールドに
は、入力ポートレジスタと同じ情報を格納する。すなわ
ち、15−2には処理コードを、15−3には被処理データ
のアドレスを、15−4には処理データの値を格納する。
次に本発明に係る回路の動作を第1図を用いて詳細に
説明する。以下では、要素プロセツサ1がデータAに対
する再帰型演算A=A*Bを行なう命令 ROP R1,R2,R3−ここにR1はAのアドレスが、R2はBの
値が、R3は処理コードが格納されている汎用レジスタの
番号である を発行する場合を考える。また、Aが他の要素プロセツ
サにある場合、その要素プロセツサを要素プロセツサ2
とする。再帰型演算命令にはこの他、 ROP R1,R3 というタイプのものが存在する。例えばAをシフトする
とかAの符号を反転する等であるが、基本的な動作は第
一のタイプのものと同じであるので、以下では第一のタ
イプに絞つて説明する。
要素プロセツサ1の動作 再帰型演算命令がフエツチされ、命令レジスタ12に格
納されると、その命令コード部OPが制御記憶中のマイク
ロプログラムのリテラル部とともに制御記憶アドレスレ
ジスタ32に格納され、その内容が指す制御記憶の領域、
すなわち再帰型演算命令実行マイクロプログラムが一語
ずつ制御記憶データレジスタ33に読みだされ、デコーダ
34により制御信号に変換される。まず初めに、オペラン
ドで指定された汎用レジスタR3にある再帰型演算処理コ
ードが外部バス2経由でレジスタ21に格納され、また、
汎用レジスタR2中のデータBがレジスタ25に格納され
る。次に、外部バスに汎用レジスタR1からアドレスが出
力されてデータAの読みだしが始まる。アドレスはセグ
メント番号フイールドとセグメント内オフセツトフイー
ルドとからなり、レジスタ24にラツチされた後、セグメ
ント番号フイールド24−1はセグメントテーブル26に入
力されて物理アドレスに変換される。セグメントテーブ
ルの各エントリを構成するフイールドのうち、フイール
ド26−1はINVALIDフイールドで、該データAを含むセ
グメントが自要素プロセツサ中に存在していれば0が、
存在していなければ1が書かれている。フイールド26−
2には該セグメントの物理アドレスが格納されていて、
レジスタ27に出力される。フイールド26−3には、該セ
グメントが他要素プロセツサ中に存在している場合には
その要素プロセツサ識別番号が、他要素プロセツサ中に
は存在していない場合には空であることを示すコードが
格納されていて、レジスタ30に出力される。フイールド
26−4には他要素プロセツサ中の該セグメントの仮想ア
ドレスが格納されていて、レジスタ28に出力される。本
発明では、簡単のために、一つのセグメントに対し他要
素プロセツサに存在するセグメントは一つとしている
が、フイールド26−3と26−4を複数個リスト形式で保
持するようにすれば、容易に他要素プロセツサに存在す
るセグメントの数を増やすことができる。フイールド26
−1と26−3の内容は、デコーダ45でデコードされた
後、制御回路19に入力されるが、その組合せにより以下
のように種種の動作が実行される。
(1)INVALID=0かつフイールド26−3=空の場合。
該セグメントが自要素プロセツサ中に存在し、かつ、
他要素プロセツサ中には存在しない場合である。このと
きは、制御回路19は状態レジスタ40に自プロセツサで処
理することを示すEXECUTEコードを格納し、レジスタ24
のセグメント内オフセツトフイールド部24−2とレジス
タ27の内容(セグメント物理アドレス)をアドレス加算
器29に送る。アドレス加算器29からは該データAの物理
アドレスが出力され、自局所メモリ3に送られて読みだ
しが行なわれる。一方、状態レジスタ40の内容はデコー
ダ41でデコードされた後セレクタ42に送られ、これが上
記EXECUTEコードである場合は、制御記憶アドレスレジ
スタ32には‘A'がセツトされる。このアドレスは読みだ
された被定義データAとR2中のBの加算を行なう再帰型
演算処理マイクロプログラムの次のステツプを指してい
る。従つて、この再帰型演算は自要素プロセツサ内で行
なわれる。
(2)INVALID=1かつフイールド26−3=他要素プロ
セツサ識別番号の場合。
該セグメントが自要素プロセツサ中に存在せず、か
つ、他要素プロセツサ中には存在している場合である。
このときは、制御回路19は状態レジスタ40に自プロセツ
サでは処理しないことを示すINVALIDコードを格納し、
レジスタ24のセグメント内オフセツトフイールド部24−
2とレジスタ28の内容(他要素プロセツサ中のセグメン
ト仮想アドレス)をアドレス加算器29に送る。アドレス
加算器29からは該データAの他要素プロセツサ中におけ
る仮想アドレスが出力され、出力ポートレジスタ15のフ
イールド15−3に送られる。また、データレジスタ25、
レジスタ21、レジスタ30の内容が出力ポートレジスタの
フイールド15−4,15−2,15−1に送られる。こうして編
成されたメツセージは相互結合ネツトワーク1により該
データが存在する要素プロセツサに送られる。受信側の
要素プロセツサの動作については後述する。
一方、状態レジスタ40の内容がINVALIDコードである
場合は、デコーダ41から出力される信号によりセレクタ
42は制御記憶アドレスレジスタ32の内容として‘B'をセ
ツトする。これは該機械命令の命令サイクルの最後に実
行するマイクロ命令部(フラグ22のチエツク、次の機械
命令のフエツチ等)のアドレスを指している。従つて、
この再帰型演算は自要素プロセツサ内ではスキツプされ
ることになる。
(3)INVALID=1かつフイールド26−3=空の場合。
該セグメントが自要素プロセツサ中にも他要素プロセ
ツサ中にも存在しない場合である。このときは、制御回
路19は状態レジスタ40にデータが存在しないことを示す
EMPTYコードを格納し、アドレス変換は行なわない。状
態レジスタ40の内容がEMPTYコードである場合は、制御
記憶アドレスレジスタ32にはエラー処理のマイクロ命令
のアドレス‘C'がセツトされる。
(4)INVALID=0かつフイールド26−3=他要素プロ
セツサ識別番号の場合。
該セグメントが自要素プロセツサと他要素プロセツサ
の両者に存在している場合である。このときは、制御回
路19は状態レジスタ40に自プロセツサで処理することを
示すEXECUTEコードを格納し、一方、まず(1)と同様
にレジスタ24のセグメント内オフセツトフイールド部24
−2とレジスタ27の内容(セグメント物理アドレス)を
アドレス加算器29に送る。アドレス加算器29からは該デ
ータAの物理アドレスが出力され、自局所メモリに送ら
れて読みだしが行なわれる。次に、(2)と同様にセグ
メント内オフセツトフイールド部24−2とレジスタ28の
内容(他要素プロセツサ中のセグメント仮想アドレス)
をアドレス加算器29に送る。アドレス加算器29からは他
要素プロセツサ中における仮想アドレスが出力され、出
力ポートレジスタ15のフイールド15−3に送られる。ま
た、データレジスタ25、レジスタ21、レジスタ30の内容
が出力ポートレジスタのフイールド15−4,15−2,15−1
に送られる。こうして編成されたメツセージは相互結合
ネツトワーク1により該データが存在する要素プロセツ
サに送られる。
一方、状態レジスタ40の内容がEXECUTEコードである
場合は、(1)と同様に、読みだされたAとR2中のBの
加算に始まる再帰型演算処理のマイクロプログラムが続
けて実行される。
要素プロセツサ2の動作 受信側の制御回路18は処理依頼メツセージを入力ポー
トレジスタ16に受け取ると、処理コードフイールド16−
1を入力する。その結果が再帰型演算依頼であり、か
つ、フラグレジスタ22の内容が0である場合、処理コー
ドを処理コードレジスタ23−1に、メツセージ中の被演
算データAのアドレスをアドレスレジスタ23−2に、演
算データBの値を演算データレジスタ23−3に格納する
とともに、フラグレジスタ22を1として処理装置10に割
込みをかける。処理装置10のマイクロプログラムは命令
サイクル終了時にEND信号43を出力し、フラグレジスタ2
2の内容とともにセレクタ42に送る。フラグレジスタ22
の内容により上記割込みを検出すると、セレクタ42は制
御記憶アドレスレジスタ32にアドレス‘D'をセツトし、
割込み処理の動作に移る。ただし、この場合の割込み処
理、すなわち再帰型演算の実行はすでに述べたようにマ
イクロプログラムレベルで行なわれ、レジスタ退避等の
動作は行なわない。処理装置10はこのマイクロプログラ
ムを実行するが、実行中に他の要素プロセツサから二重
に割り込まれることのないようにしておく。従つて、処
理依頼メツセージが指示する再帰型演算処理は排他的に
行なわれる。
再帰型演算の割込み処理プログラムはアドレスレジス
タ23−2の内容を番地として局所メモリをアクセスし、
読みだしデータ(被演算データ)Aをワークレジスタ23
−4に格納する。次にワークレジスタ23−4と演算デー
タレジスタ23−3の内容は、それぞれRBUS36,LBUS37に
出力され、引き続いて演算器38に入力され、処理コード
に対応した演算を施してABUS39上に出力された結果をワ
ークレジスタ23−4に入れる。最後にワークレジスタ23
−4の内容(計算結果)はアドレスレジスタ23−2の内
容が指す局所メモリ中の領域に格納され、最後にフラグ
レジスタ22がリセツトされて再帰型演算の割込み処理は
終了する。
次に、本発明に係る回路により、種々の場合において
再帰型演算が正しく実行されることを第4〜6図にて説
明する。
第4図は要素プロセツサ1がデータAに対する再帰型
演算A=A*Bを行なう命令を発行し、Aが他の要素プ
ロセツサJにリンクしたメモリモジユール中に存在して
いる場合である。再帰型演算命令がフエツチされると、
要素プロセツサ1のマイクロプログラムは汎用レジスタ
35のR3レジスタ中の再帰型演算の処理コードとR2レジス
タ中のデータBを本発明で用意したレジスタ21,25に格
納し、外部バス2にR1レジスタ中のAのアドレスを出力
してメモリ読み出し動作に入る。Aのアドレスのゼクメ
ント番号フイールド24−1はセグメントテーブル26によ
りセグメントの物理アドレスに変換されるが、このと
き、該セグメントが自要素プロセツサ中に無い場合は、
セグメントテーブル中のINVALIDビツト=1が本発明の
送信側制御回路19に入力される。また、セグメントテー
ブル26に記載されている該セグメントの存在する他要素
プロセツサ識別番号も制御回路19に入力される。入力さ
れた他要素プロセツサ識別番号が空でないときは、制御
回路19が処理依頼メツセージを出力ポートレジスタ15に
作成し、相互結合ネツトワーク1を経由して他要素プロ
セツサに送る。またメモリ読み出しは中断し、自プロセ
ツサ10に対して制御回路の状態レジスタ40にINVALIDコ
ードを書き込むことによりそれを通知する。通知を受け
た自プロセツサ10のマイクロプログラムは‘B'番地に分
岐して該機械命令の実行を終了し、次の機械命令フエツ
チに進む。一方、処理依頼メツセージを受信した要素プ
ロセツサ2の受信側制御回路18は、入力ポートレジスタ
16の内容を本発明のレジスタフアイル23に転送した後、
フラグレジスタ22によりプロセツサ10に通知する。通知
を受けたプロセツサ10では、実行中の機械命令サイクル
の最後で再帰型演算割込み処理マイクロプログラム
(‘D'番地)に分岐し、レジスタフアイル23中の情報を
用いて処理を実行する。その後、次の機械命令のフエツ
チを行なう。
第5図は要素プロセツサ1がデータAに対する再帰型
演算命令を発行し、Aが要素プロセツサ1自身のメモリ
モジユール中に存在している場合である(INVALIDビツ
ト=0であり、かつ、他要素プロセツサ識別番号が空で
ある場合)。この場合はセグメントテーブル26中のセグ
メント物理アドレスを用いて局所メモリを読み出し、制
御回路の状態レジスタ40には自プロセツサ10で処理する
ことを示すEXECUTEコードが格納される。このコードに
より、マイクロプログラムは上記メモリを読み出しに続
く再帰型演算のステツプ(‘A'番地)に進み、また、処
理依頼メツセージは送信されない。
第6図は、Aが自他両要素プロセツサに存在している
(INVALIDビツト=0、かつ、他要素プロセツサ識別番
号が空でない)場合である。この場合は、制御回路19が
まずセグメントテーブル26中のセグメント物理アドレス
を用いてAの物理アドレスを求め、これを局所メモリに
出力し、状態レジスタ40には自プロセツサで処理するこ
とを示すEXECUTEコードを格納する。このコードによ
り、自プロセツサ10のマイクロプログラムは上記メモリ
アクセスに続く再帰型演算の諸ステツプ(‘A'番地)に
進む。次に、制御回路19はセグメントテーブル26中の他
要素プロセツサ識別番号やセグメントアドレスを用いて
処理依頼メツセージを出力ポートレジスタ15に作成し、
相互結合ネツトワーク1を経由して送信する。この処理
依頼メツセージを受信した要素プロセツサ2の受信側制
御回路18は、第4図と同様に入力ポートレジスタ16の内
容を本発明のレジスタフアイル23に転送した後、フラグ
レジスタ22によりプロセツサ10に通知する。通知を受け
たプロセツサ10では、実行中の機械命令サイクルの最後
で再帰型演算割込み処理マイクロプログラム(‘D'番
地)に分岐し、レジスタフアイル23中の情報を用いて処
理を実行する。その後、次の機械命令のフエツチを行な
う。
〔発明の効果〕
このように、本発明においては再帰型演算はすべて再
帰処理されるデータAの存在するプロセツサ側の演算器
により実行され、従来のように、プログラム実行側のプ
ロセツサからネツトワークを経由して送信を依頼された
再帰処理対象データAを、該データを持つプロセツサが
読みだして再びネツトワークを経由して該プログラムを
実行しているプロセツサ側に送つて演算処理し、さらに
もう一度ネツトワークを経由して結果データを送り返す
という手間を必要としない。このため、両方のプロセツ
サはこの処理を実行中に無駄な待ち時間を持つことが無
く、また、この待ち時間の間に他のプロセツサが再帰処
理中のデータAを読まないように排他制御域を設定する
手間も必要としない。すなわち、プログラム実行側のプ
ロセツサは再帰型演算依頼メツセージをネツトワークに
送りだしたらすぐに次の処理を始めることが出来、ま
た、再帰処理されるデータAを持つプロセツサ側では、
再帰型演算依頼メツセージを受け取つたらプロセツサの
動作を一時停止して依頼内容を割り込ませるだけの処理
で済み、レジスタの内容を退避させたり、排他制御域を
設定したりする手間は必要無く、他のプロセツサを不必
要にデータアクセスを制限されることはない。
【図面の簡単な説明】
第1図は並列計算機の要素プロセツサの本発明にかかわ
る回路部分を中心に示した構成図、第2図は入力ポート
レジスタの構成図、第3図は出力ポートレジスタの構成
図である。また、第4図は他の要素プロセツサ中にある
データを再帰型演算処理する場合の動作説明図、第5図
は自要素プロセツサ中にあるデータを再帰型演算処理す
る場合の動作説明図、第6図は自他両要素プロセツサ中
にあるデータを再帰型演算処理する場合の動作説明図、
第7図はシステムの全体構成図である。 1……相互結合ネツトワーク、2……外部バス、3……
局所メモリ、10……プロセツサ(CPU)、12……命令レ
ジスタ、15……出力ポートレジスタ、16……入力ポート
レジスタ、18……(受信側)制御回路、19……(送信
側)制御回路、22……フラグレジスタ、23−1……処理
コードレジスタ、23−2……番地レジスタ、23−3……
演算データレジスタ、23−4……ワークレジスタ、26…
…セグメントテーブル、31……制御記憶、32……制御記
憶アドレスレジスタ、38……演算器、40……(制御回路
の)状態レジスタ、42……セレクタ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 中尾 和夫 神奈川県川崎市麻生区王禅寺1099番地 株式会社日立製作所システム開発研究所 内 (56)参考文献 特開 昭58−159172(JP,A)

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】並列に動作可能で、交信可能に相互結合さ
    れ、それぞれが同一の構造を有する要素プロセッサから
    なる並列計算機において、それぞれの要素プロセッサ
    は、 1)自要素プロセッサのメモリに保持された少なくとも
    1つの第1のデータと、自又は他の要素プロセッサのメ
    モリ内の第2のデータを指定するアドレスと、上記第1
    のデータ及び第2のデータに対して施すべき処理を指定
    する処理コードとを含む処理要求を構成し、上記アドレ
    スが他の要素プロセッサに属していれば、上記処理要求
    を他の要素プロセッサへ送出する第1の手段と、 2)他の要素プロセッサから受信、あるいは自要素プロ
    セッサに保持した上記処理要求に基づいて、上記処理要
    求の中の上記アドレスで指定された上記第2のデータを
    自要素プロセッサのメモリから読み出し、上記処理要求
    の中の第1のデータと上記第2のデータとに対して、上
    記処理要求の中の処理コードに対応した処理を施し、上
    記処理の結果を自要素プロセッサのメモリに格納する第
    2の手段とを有することを特徴とする処理依頼機能を持
    つ並列計算機。
  2. 【請求項2】上記第2の手段は、上記処理の結果を上記
    第2のデータが格納された記憶位置に格納することを特
    徴とする特許請求の範囲第1項記載の処理依頼機能を持
    つ並列計算機。
JP62289325A 1987-11-18 1987-11-18 処理依頼機能を持つ並列計算機 Expired - Lifetime JP2644780B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP62289325A JP2644780B2 (ja) 1987-11-18 1987-11-18 処理依頼機能を持つ並列計算機
US07/272,550 US5129093A (en) 1987-11-18 1988-11-17 Method and apparatus for executing an operation request signal in a loosely coupled parallel computer having processor elements capable of updating memory contents and minimizing exclusive control of sharable distributed memories

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62289325A JP2644780B2 (ja) 1987-11-18 1987-11-18 処理依頼機能を持つ並列計算機

Publications (2)

Publication Number Publication Date
JPH01131949A JPH01131949A (ja) 1989-05-24
JP2644780B2 true JP2644780B2 (ja) 1997-08-25

Family

ID=17741733

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62289325A Expired - Lifetime JP2644780B2 (ja) 1987-11-18 1987-11-18 処理依頼機能を持つ並列計算機

Country Status (2)

Country Link
US (1) US5129093A (ja)
JP (1) JP2644780B2 (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5361370A (en) * 1991-10-24 1994-11-01 Intel Corporation Single-instruction multiple-data processor having dual-ported local memory architecture for simultaneous data transmission on local memory ports and global port
US6101321A (en) * 1992-04-10 2000-08-08 Eastman Kodak Company Method and apparatus for broadcasting data in a ring connected multiprocessor
JPH06274462A (ja) * 1993-03-18 1994-09-30 Fujitsu Ltd 共有メモリの非同期書込み方式
US5666544A (en) * 1993-05-10 1997-09-09 Mita Industrial Co., Ltd. Method and system for communicating data between independent controllers
JP2938711B2 (ja) * 1993-05-10 1999-08-25 松下電器産業株式会社 並列計算機
US5617537A (en) * 1993-10-05 1997-04-01 Nippon Telegraph And Telephone Corporation Message passing system for distributed shared memory multiprocessor system and message passing method using the same
GB2284494B (en) * 1993-11-26 1998-09-09 Hitachi Ltd Distributed shared memory management system
JP3626784B2 (ja) * 1995-03-17 2005-03-09 富士通株式会社 分散メモリ型並列計算機におけるデータ更新方法およびプログラム変換装置
US5878240A (en) * 1995-05-11 1999-03-02 Lucent Technologies, Inc. System and method for providing high speed memory access in a multiprocessor, multimemory environment
JPH0981532A (ja) * 1995-09-08 1997-03-28 Fujitsu Ltd 分散記憶型並列計算機
US5924122A (en) * 1997-03-14 1999-07-13 Compaq Computer Corp. Method for error recovery spinlock in asymmetrically accessed multiprocessor shared memory
US8621101B1 (en) 2000-09-29 2013-12-31 Alacritech, Inc. Intelligent network storage interface device
US6757746B2 (en) 1997-10-14 2004-06-29 Alacritech, Inc. Obtaining a destination address so that a network interface device can write network data without headers directly into host memory
US6226680B1 (en) 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US6434620B1 (en) * 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US8782199B2 (en) 1997-10-14 2014-07-15 A-Tech Llc Parsing a packet header
US8539112B2 (en) 1997-10-14 2013-09-17 Alacritech, Inc. TCP/IP offload device
JP5220974B2 (ja) 1999-10-14 2013-06-26 ブルアーク ユーケー リミテッド ハードウェア実行又はオペレーティングシステム機能の加速のための装置及び方法
US8019901B2 (en) 2000-09-29 2011-09-13 Alacritech, Inc. Intelligent network storage interface system
US7512635B1 (en) * 2000-12-18 2009-03-31 Bmc Software, Inc. System and method for updating information on a computer system using a limited amount of space
US7543087B2 (en) 2002-04-22 2009-06-02 Alacritech, Inc. Freeing transmit memory on a network interface device prior to receiving an acknowledgement that transmit data has been received by a remote device
US7302548B1 (en) * 2002-06-18 2007-11-27 Cisco Technology, Inc. System and method for communicating in a multi-processor environment
US8041735B1 (en) 2002-11-01 2011-10-18 Bluearc Uk Limited Distributed file system and method
US7457822B1 (en) 2002-11-01 2008-11-25 Bluearc Uk Limited Apparatus and method for hardware-based file system
US20050240806A1 (en) * 2004-03-30 2005-10-27 Hewlett-Packard Development Company, L.P. Diagnostic memory dump method in a redundant processor
US8248939B1 (en) 2004-10-08 2012-08-21 Alacritech, Inc. Transferring control of TCP connections between hierarchy of processing mechanisms
US20060227774A1 (en) * 2005-04-06 2006-10-12 International Business Machines Corporation Collective network routing
US20080263171A1 (en) * 2007-04-19 2008-10-23 Alacritech, Inc. Peripheral device that DMAS the same data to different locations in a computer
US8539513B1 (en) 2008-04-01 2013-09-17 Alacritech, Inc. Accelerating data transfer in a virtual computer system with tightly coupled TCP connections
US8341286B1 (en) 2008-07-31 2012-12-25 Alacritech, Inc. TCP offload send optimization
US9306793B1 (en) 2008-10-22 2016-04-05 Alacritech, Inc. TCP offload device that batches session layer headers to reduce interrupts as well as CPU copies
US10983795B2 (en) * 2019-03-27 2021-04-20 Micron Technology, Inc. Extended memory operations

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4075691A (en) * 1975-11-06 1978-02-21 Bunker Ramo Corporation Communication control unit
JPS58159172A (ja) * 1982-03-17 1983-09-21 Fujitsu Ltd 多重プロセツサ
US4550368A (en) * 1982-07-02 1985-10-29 Sun Microsystems, Inc. High-speed memory and memory management system
US4551799A (en) * 1983-02-28 1985-11-05 Honeywell Information Systems Inc. Verification of real page numbers of stack stored prefetched instructions from instruction cache
US4644461A (en) * 1983-04-29 1987-02-17 The Regents Of The University Of California Dynamic activity-creating data-driven computer architecture
US4701848A (en) * 1984-11-19 1987-10-20 Clyde, Inc. System for effectively paralleling computer terminal devices
US4847755A (en) * 1985-10-31 1989-07-11 Mcc Development, Ltd. Parallel processing method and apparatus for increasing processing throughout by parallel processing low level instructions having natural concurrencies
US4774659A (en) * 1986-04-16 1988-09-27 Astronautics Corporation Of America Computer system employing virtual memory

Also Published As

Publication number Publication date
US5129093A (en) 1992-07-07
JPH01131949A (ja) 1989-05-24

Similar Documents

Publication Publication Date Title
JP2644780B2 (ja) 処理依頼機能を持つ並列計算機
US4316245A (en) Apparatus and method for semaphore initialization in a multiprocessing computer system for process synchronization
US4374409A (en) Method of and system using P and V instructions on semaphores for transferring data among processes in a multiprocessing system
JP2594979B2 (ja) マルチプロセツサシステム
US4394725A (en) Apparatus and method for transferring information units between processes in a multiprocessing system
US4942519A (en) Coprocessor having a slave processor capable of checking address mapping
US5696989A (en) Microcomputer equipped with DMA controller allowed to continue to perform data transfer operations even after completion of a current data transfer operation
EP0087978B1 (en) Information processing unit
US4395757A (en) Process synchronization utilizing semaphores
US5155817A (en) Microprocessor
US7577874B2 (en) Interactive debug system for multiprocessor array
JPH0258649B2 (ja)
JP2825906B2 (ja) 計算機システム
KR900004291B1 (ko) 데이터 프로세서
US20020099922A1 (en) Data processing apparatus including a plurality of pipeline processing mechanisms in which memory access instructions are carried out in a memory access pipeline
JP3431941B2 (ja) データ処理システムにおける命令の実行順序を決定する方法および装置
US6199156B1 (en) System for explicitly referencing a register for its current content when performing processor context switch
JPH0810437B2 (ja) 仮想計算機システムのゲスト実行制御方式
CN100349121C (zh) 嵌入式并行计算系统以及嵌入式并行计算方法
JP3169624B2 (ja) プロセッサ間通信方法およびそのための並列プロセッサ
CA1137641A (en) Single chip microcomputer selectively operable in response to instructions stored on the computer chip or in response to instructions stored external to the chip
US6658525B1 (en) Concurrent access of an unsegmented buffer by writers and readers of the buffer
CA1302580C (en) Apparatus and method for using lockout for synchronization of access to main memory signal groups in a multiprocessor data processing system
JPH0754467B2 (ja) データ処理装置
JPH07109589B2 (ja) 命令処理方式