JPH011049A - 並列計算機 - Google Patents

並列計算機

Info

Publication number
JPH011049A
JPH011049A JP62-220130A JP22013087A JPH011049A JP H011049 A JPH011049 A JP H011049A JP 22013087 A JP22013087 A JP 22013087A JP H011049 A JPH011049 A JP H011049A
Authority
JP
Japan
Prior art keywords
address
data
memory
element processor
instruction
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.)
Granted
Application number
JP62-220130A
Other languages
English (en)
Other versions
JPS641049A (en
JP2602241B2 (ja
Inventor
晃 村松
郁夫 吉原
中尾 和夫
迫田 行介
濱中 直樹
長島 重夫
輝雄 田中
能見 誠
Original Assignee
株式会社日立製作所
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 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to JP62220130A priority Critical patent/JP2602241B2/ja
Priority claimed from JP62220130A external-priority patent/JP2602241B2/ja
Publication of JPS641049A publication Critical patent/JPS641049A/ja
Publication of JPH011049A publication Critical patent/JPH011049A/ja
Application granted granted Critical
Publication of JP2602241B2 publication Critical patent/JP2602241B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 〔従来の技術〕 並列計算機では、一般にプログラムは、複数処理単位プ
ログラム(タスクとも呼ばれる)に分割され、各要素プ
ロセッサにその一部を割付け、各要素プロセッサで、他
の要素プロセッサと並行して割り付けられた単位処理プ
ログラムを実行するようになっている。
並列計算機構築上の基本問題の一つは、データの分散と
共有の仕方である。ここにデータの分散とは、物理的に
分散したメモリモジュールにデータを分散配置させるこ
とであり、データの共有とは、物理的に分散した論理的
に同一のデータを複数の処理単位プログラムがアクセス
することである。
近年の半導体技術の発展に伴い、これまで考えられなか
ったような大規模な(要素プロセッサ数が数百ないし数
千台以上の)並列計算機が技術的に可能なものとして取
り上げられるようになってきている。これに伴い、要素
プロセッサが物理的にメモリを共有して、バスまたはス
イッチを経由してこれを読み書きする密結合の集中メモ
リ方式並列計算機では、大規模なバスやスイッチを経由
す′ることによるメモリアクセス速度の低下や、バンク
コンフリクトによるアクセス競合が大きな障害になるた
め、分散型のメモリ構成を持つ並列計算機が望まれるよ
うになってきた。このような型の並列計算機の各要素プ
ロセッサにどのようにデータやプログラムを割り付けた
ら良いか、というのが第一の問題である。文献1  (
G、F、Pfister。
et、al、:  The  I  B M  Re5
earch  ParallelProcessor 
 Prot+otype  (RP  3 )   I
 nt、roducjionand  Archit、
ect、ure、  Proc、  of  the 
 1 9 8 5ICPP (1985))に記載の従
来例(以下筒1の従来例と呼ぶ)では、各要素プロセッ
サが局所メモリを持ち、処理すべきデータやプログラム
はここに分散格納している。一般に、分散メモリの番地
付けには局所番地方式と広域番地方式とがある。前者は
、各要素プロセッサが自分の局所メモリしか読めない番
地付は方式であり、後者は任意の要素プロセッサの局所
メモリを読むことの出来る番地付は方式である。第一の
従来例では両番地方式を併用出来、共有データすなわち
、複数の要素プロセッサによりアクセスされるべきデー
タはこのうち広域番地方式でアクセスする空間(広域空
間)に置く。広域空間上のデータをアクセスするために
は、広域番地を局所メモリ中の番地に変換する必要があ
るが、第一の従来例ではこのためにインタリーブ変換を
用いている。インタリーブ変換では、広域番地空間上で
連続したデータ語は1番地コードの下位ビットを要素プ
ロセッサ番号とすることにより、各要素プロセッサの空
間に順番に散布的・循環的に変換される。
広域番地空間方式では、一つの番地に対応して一つの物
理的ロケーションが定まり、データの共有は文字通り物
理的実体の共有となる。分散メモリでは一つの物理的ロ
ケーションに対する各要素プロセッサからの距離(アク
セス時間)が異なるので、データの割り付けられている
要素プロセッサとそのデータをアクセスするプログラム
が割り付けられている要素プロセッサとが異なると、処
理性能が大きく低下する。これは、処理装置の近くに一
時的にデータを格納しておくためのキャッシュメモリを
持たせることにより解決できる場合があるが、一般に並
列キャッシュは、共有データの並列読み書きの制御が難
しいという、いわゆるキャッシュコヒーレンシイの問題
があるため、採用するのは困難である。これはある要素
プロセッサがデータを書き換えたとき、別の要素プロセ
ッサがそのデータをキャッシュに保持している場合には
、そのままでは両者の値が異なってしまい、矛盾が生じ
るという問題である。これを避けるためには、ある要素
プロセッサでのデータの書き換えのたびに全ての要素プ
ロセッサに放送して、それぞれに付随するキャッシュ内
のそのデータと同じデータを無効にするように通知しな
くてはならず、大規模な並列計算機ではこの通知および
無効処理は膨大な時間が必要となる。したがって第一の
従来例でも原則として共有データをキャッシュを禁止し
ている。ある要素プロセッサがアクセスするデータを常
にその要素プロセッサの手もとに置いておく方式として
、文献2(階層構造のMIMD型スーパス−パーコンピ
ュータ処理Vo1.25 、 No、 5 、第480
頁から第490頁。
1984)に記載の方法がある。この従来例(以下、第
2の従来例と呼ぶ)では、全要素プロセッサからアクセ
スできる集中型共有メモリと各要素プロセッサごとに設
けた局所メモリの両者を備え、要素プロセッサで、ある
処理単位となるプログラムの実行を始める前にそのプロ
グラムの実行結果を再び共有メモリに返すという方法を
採っている。
処理単位プログラムとしては、一つのDOループ程度の
命令列からなるものを想定している。
〔発明が解決しようとする問題点〕
第一の従来例には次の問題点がある。
(1)データの分割と写像(すなわち1分割されたデー
タの各部分をいずれかの要素プロセッサに割付けること
)が機械的に行おれ、並列処理の論理を必ずしも反映し
ていない。このためある要素プロセッサに割り付けられ
た処理単位プログラムが必要とするデータが、他の要素
プロセッサに割り付けられていることがしばしば生じる
このため、上記のような場合にはネットワークを経由し
て他の要素プロセッサのメモリを読まなくてはならず、
無視できない遅れが生ずる。
(2)番地空間が不問する。全要素プロセッサが一つの
番地空間を共有するとすれば、要素プロセッサの総数が
増加すると実空間が仮想空間を超えてしまうこともあり
うる1例えば、−台当り4MBの実メモリを持つ要素プ
ロセッサ512台からなるシステムではこれだけで2G
Bの容量となり、現在の代表的な汎用大型機で採用され
ている31ビット番地方式で指定できる空間そのものと
なる。従って、番地方式を変えないかぎりこれ以上の台
数増加は見込めない。このため第一の従 。
来例でも局所空間と併用することを考えているが。
できるだけ局所空間を多く取りながら、なお且つデータ
を共用できる方式は開示されていない。
第二の従来例には次の4つの問題点がある。
(1)共有メモリと各局所メモリ間のデータ転送に時間
がかかる。
(2)異なる要素プロセッサで互いに並行に実行されて
いる複数の処理単位プログラム間で共有するデータは、
共有メモリに配置せざるをえない。
もしくは、特別の同期機構が必要である。
(3)第一の従来例と同じく1番地空間が不足する。
(4)各要素プロセッサにおける処理単位プログラムの
実行順序を一台の制御プロセッサで制御しているので、
その制御のための負荷がその制御プロセッサに集中して
性能が低下する恐れがある。
本発明の第1の目的は、各要素プロセッサに割りつけら
れた処理東位プログラムが必要とするデータを出来るだ
け多く各要素プロセッサに設けられた局部メモリに保持
することができ、しかもそのデータを他の要素プロセッ
サが利用するにあたり、生じるデータ転送時間を軽減し
た並列計n機を提供することにある。
本発明の第2の目的は、各要素プロセッサにおける次に
実行すべきタスクの選択、起動のための制御を一つの制
御プロセッサに集中させないで実行させうる並列計算機
を提供することにある。
〔問題点を解決するための手段〕
第1の目的達成のために、本発明では、メモリアクセス
時には各要素プロセッサごとに定めた局所番地空間に居
する番地を指定するように構成されたプログラムを実行
する処理装置と、この処理装置でメモリ書込み命令が実
行されたときに、この命令が指定するメモリ番地があら
かじめ定めた番地と一致するか否かを検出し、一致が検
出されたときに、その定めた番地に対応してあらかじめ
定めた、他の要素プロセッサの局所番地空間に属する番
地と上記書込み命令により書込まれたデータをその、他
要素プロセッサに送出し、そのデータをコピーデータと
して書込むことを指示する手段とを設けた。
また、第2の目的達成のために、各要素プロセッサに、
その要素プロセッサで次に実行すべきタスクを判別する
タスク起動制御手段を設けた。
〔作用〕
各要素プロセッサで実行されるプログラムが必要とする
データの内、他要素プロセッサでの、他のプログラムの
実行により生成されるデータ以外のデータは、その要素
プロセッサ内で生成され、かつ利用されうるので、各要
素プロセッサでは、他要素プロセッサに対してデータを
送ったり、そこからデータを読み出したりする回数は少
なくてすむ。また、他要素プロセッサで生成されたデー
タも、そのデータを必要とする要素プロセッサにデータ
生成時に送出され、コピーデータとして保持されるので
、その要素プロセッサがそのデータを使用する命令を実
行する段階では、そのデータはその要素プロセッサ内の
メモリから読出しうるので、結局、この種データを含め
て、その要素プロセッサが必要とするデータを自己のメ
モリから読み出しうろことになる。
また、各要素プロセッサごとに設けたタスク起動制御手
段を設けたので、並列計算機が実行するタスクプログラ
ムのの起動制御を分散的に実施できる。
〔実施例〕
以下、本発明の一実施例を図面により詳細に説明する。
第1図は本発明によるデータ分散管理装置の一実施例を
示す。
一台の要素プロセッサ100はプログラムを実行する処
理装置1、データを格納しておく局所メモリ2、命令で
指定された仮想アドレスを実アドレスに変換するための
セグメント実番地モメリ11、加算機15、他の要素プ
ロセッサの番号オよびその中の局所メモリ2のアドレス
を保持するファンアウトメモリ20.加算器21、ファ
ンアウト制御回路25.他の要素プロセッサとの通信を
担当する送信装置5と受信装置6、受信パケット処理制
御回路30、入力ボートレジスタ28、出力ポートレジ
スタ26、返信パケット用出力ボートレジスト31、制
御パス81番地バス9.データバス10等からなり、こ
の要素プロセッサ多数が相互結合ネッ1へワーク7に接
続されている。
処理装置1は第2図に示すごとく、状態レジスタ50、
番地レジスタ51、データレジスタ52、プログラムカ
ウンタ57を含む制御部53、汎用レジスタ群、制御レ
ジスタ、浮動小数点レジスタ群からなるレジスタ群54
、内部バス55、算術論理演算および浮動小数点演算を
行う演算器56から構成される制御部53は、局所メモ
リ2(第1図)中の命令を順次フェッチし、フェッチし
た命令の実行制御機能を有するもので、公知の汎用の計
算機の処理装置と本質的には同じである。また、第1図
において、ファンアウト制御回路25と受信パケット処
理制御回路30は、マイクロプログラムを内蔵し、種々
の入力に応答して、後に述べる所定の制御信号を所定の
シーケンスで出力するように構成されている。
本実施例では、処理装置1で実行される。局所メモリ2
をアクセスする命令は局所メモリ2に対する物理番地に
かえて仮想番地を指定する。番地の指定自体は公知の方
法による。例えば局所メモリ2からデータをよみ出し、
いずれかのレジスタたとえば汎用レジスタの一つにロー
ドする命令又はそのレジスタの内容を局所メモリ2に、
ストアする命令は、その汎用レジスタ以外にペースレジ
スタ、インデックスレジスタとして用いる二つの汎用レ
ジスタの番号および偏位を指定するようになっている。
このとき1局部メモリ2をアクセスするための仮想番地
はペースレジスタとインデックスレジスタのそれぞれの
内容および上記偏位の和から求められる。このような番
地加算は制御部53で実行され1番地レジスタ51にセ
ットされる。また、他の形式の命令、例えば汎用レジス
タの一つの内容をそのまま仮想番地として指定する命令
も使用できる。本実施例では、要素プロセッサごとに、
一定サイズの仮想番地空間を対応させ。
各要素プロセッサで実行されるメモリアクセス命令は、
この空間に属する仮想番地を指定するようになっている
各要素プロセッサ100で発生された仮想番地は局所メ
モリ2に設けられたセグメントテーブル+10の内容を
用いて物理番地に変換される。
セグメントテーブル110は、第3図に示すように、そ
の要素プロセッサの仮想番地空間の各セグメントに対し
て、そのセグメントの番号SNを保持するフィールド1
10−1、無効ビットフィールド110−2.そのセグ
メントに対する局所メモリ2中のセグメント物理番地を
保持するフィールド110−3とファンアウトメモリ番
地又は0を保持するフィールド110−4を有する。
また、ファンアウトメモリ20には、局所メモリリ2に
書き込まれたデータを転送すべき他の要素プロセッサの
番号およびその要素プロセッサにおける、そのデータに
割り付けられたセグメントの先頭仮想番地(以下、セグ
メント仮想番地と呼ぶ)が保持され、このファンアウト
メモリ20の内容を用いて他の要素プロセッサへそのデ
ータの書込みを指示するようになっている。
各要素プロセッサへのデータおよびプログラムの割り付
けおよび、そのデータに対する仮想番地。
物理番地およびセグメントテーブル110、ファンアウ
トメモリ20の内容はあらかじめ以下のように決定され
ている。
(1)配列データ、例えばA (I、J)。
(工=1〜N、J=1〜M)は一部のインデックスが同
一である要素からなる部分配列、たとえばA (1,*
) 、 A (2,*)・・・・・・(但し*はJ =
 1−Mを示す)をそれぞれあらかじめ決められた順に
異なる要素プロセッサに割り付ける。この際、同一の部
分配列の異なる要素は同一のセグメントに割り付ける。
配列データ以外のデータは分散する必要はないので、あ
らかじめ定めた要素プロセッサに割り付ける。一方、(
2)プログラムは並列処理の効果が充分出るような数の
単位処理プログラム(以下、タスクと呼ぶ)に分割して
おき、(3)上記(1)のようにして要素プロセッサに
割り付けられた部分配列データ又は配列データ以外のデ
ータを定義する(つまりそのデータの値を決定する)タ
スクをそのデータと同一の要素プロセッサの仮想アドレ
ス空間(以下単に局所空間と呼ぶ)に割り付ける。ただ
し、間接指標でアドレスされた配列データ、例えばK 
(L(I)J)については、あるタスクが、その要素の
一つを参照するが、どの要素をアクセスするかがそのタ
スクの実行時に判明する場合、その配列データのすべて
の要素を、そのタスクが割り付けられている要素プロセ
ッサの仮想番地空間に割りつける。
(4)次に、他の要素プロセッサAに割り付けられたデ
ータを、ある要素プロセッサのタスクが参照する(つま
り、その値を使用する)ことがプログラムから明確な場
合、そのデータと同一値となるべきデータ(以下、コピ
ーデータと呼ぶ)をその要素プロセッサの局所空間に割
り付ける。
(5)  (1)〜(4)のようにして、要素プロセッ
サに割り付けられたデータの内、各配列データに対する
セグメントの先頭仮想番地(以下、単にセグメント仮想
番地と呼ぶ)を、各要素プロセッサの局所メモリ2中に
ある配列記述子群120の一つに格納する。(6)各要
素プロセッサの仮想空間の各番地の内、データ又はプロ
グラム命令が割り付けられた番地に対する局所メモリ2
内の物理番地決定する。この際、仮想空間上の同一セグ
メント内の連続する仮想番地には連続する物理番地を対
応させる。また前述のように、間接指標でアクセスされ
る配列データの場合、そのすべてのデータをその配列(
の一部)をアクセスするタスクが ゛割り付けられてい
る要素プロセッサの物理番地に割り付ける必要はない。
たとえば、異なる要素プロセッサの物理番地にその配列
の部分配列データを一つずつ割りあてておく方法を採る
。この場合、その一つの部分配列が割り付けられた要泰
プロセッサでは、その部分配列だけでなく、すべての他
の部分配列をも、それぞれセグメントとして自己の仮想
番地空間に割り付けておく必要がある。
(7)次にセグメントテーブル110とファンアウトメ
モリ20のデーを作成する。(6)で述べた方法で物理
番地の割り付けをきめると、仮想番地空間の各セグメン
トの先頭番地にどの物理番地が対応するかが確定する。
この物理番地を、そのセグメントの物理番地と呼び、セ
グメンI−テーブルのフィールド110−3に格納して
おく。このとき、そのセグメントに対する無効ビットフ
ィールド110−2にはOをセットしておく。
一方、先に間接指標でアドレスされる配列データについ
て説明したごとく、ある要素プロセッサにおいて、その
全要素が仮想番地空間に割り付けられているが、物理番
地がその一部の部分配列にしか割り付けられていないと
きには、物理番地が割り付けられている。一つの部分配
列が割り付けられたセグメントについては上に述べたの
と同じようにセグメントテーブルの一つのエントリを作
成しておくが、物理番地が割り付けられていない要素が
割り付けられたセグメントについては、対応する物理番
地がないことを示すため、そのセグメントに対する、セ
グメントテーブル110内の無効ビットフィールド11
0−2に1をセットしておく。さらに、それにつづくフ
ィールド11−4にはファンアウトメモリ20の一つの
エントリの番地を格納しておく。このファンアウトメモ
リ20のこのエントリにはその要素に対して物理番地が
割り付けられている要素プロセッサの番号PEN0と、
その要素プロセッサにおけるその部分配列に対するセグ
メントの仮想番地S■を格納しておく。
さらに、ある要素プロセッサ(たとえばA)に割り付け
られたデータ(オリジナルデータ)のコピーデータが他
の要素プロセッサ(たとえばB)割り付けられている場
合、その他の要素プロセッサ(B)の番号PEN○とそ
のコピーデータに割り付けられたセグメントの仮想番地
Svを、その要素プロセッサ(A)のファンアウトメモ
リ20の一つのエントリに格納しておき、そのエントリ
の番地FOMAを、そのオリジナルデータが割り付けら
れたセグメントに対するセグメントテーブルエントリの
ファンアウトメモリ番地フィールド11−4に格納して
おく。
もし、そのコピーデータが複数の要素プロセッサに割り
付けられているとき、ファンアウトメモリ20の別のエ
ントリに残りの要素プロセッサについて同様の情報を保
持しておき、先のエントリのポインタフィールドに、こ
の後者のエントリの番地9を格納しておく。こうして、
同一データのコピー先情報がファンアウトメモリ20内
にリスト形式で格納しておく。
第4図に仮想空間上に割り付けられたセグメントの物理
空間への写像例を示す。この例では、二つの配列A (
I、J)とB (I、J、K)が、第一インデクス■に
関して部分配列に分割され、各要素プロセッサの仮想空
間上に割り付けられるものと仮定している。図では、2
00Aと2008は要素プロセッサ1と2仮想番地空間
を例示している。また30OA、300Bはそれぞれの
要素プロセッサの物理番地空間を示す。ここに、A(1
,*)(*はJ=1〜Nを示す)は要素プロセッサ1で
定義され、要素プロセッサ2でも参照されるという共有
関係が存在しているものとして1両仮想空間上に重複し
て割り付けられている。
ここではA (1,*)は、要素プロセッサ1において
物理番地空間のa番地から始まる領域に写像され、その
個々の要素データは第2インデクスJから定まるオフセ
ットをa番地に加算して得られる番地に格納される。一
方、要素プロセッサ1の仮想番地空間上の別のセグメン
トB (1,*、 *)は、物理番地空間上のb番地か
ら始まる領域に写像されるが、b番地はa番地から始ま
るA(1゜*)の格納領域に連続した領域の先頭番地で
ある。
このように、仮想番地空間上ではとびとびに存在するデ
ータ領域も、物理番地空間上では隙間なく連続して配置
される。
また、要素プロセッサ1の仮想番地空間200Aには配
列データK (I、J)の全部分配列K (1,*) 
、 K (2,*)・・・・・・が割り付けられている
が、対応する物理散地空間300Aには、一つの部分配
列K (1,*)のみ割り付けられている。同様に、要
素プロセッサ2の物理空間300Bには、部分配列K 
(2,*)が割り付けられ、仮想番地空間には全ての部
分配列が割り付けられている。これは、間接指標で配列
データK (L(I)J)をアクセスするタスクが各要
素プロセッサに割り付けられている場合である。
第1図において、セグメント物理番地メモリ11は、局
所メモリ2中のセグメントテーブル110のエントリの
内、その要素プロセッサが常時参照するセグメントに関
するエントリを保持するためのものである。このメモリ
11は、いわゆる連想メモリ (Content Ad
dressable Memory)で構成する。この
メモリ11はセグメントテーブル110と同じく4つの
フィールド11−1゜11−2.11−3.11−4か
ら構成される。
セグメントテーブル110を用いた番地変換は。
実際にはこのメモリ11を用いることにより高速で実行
される。
次に、第1図の装置の動作の概略を示す。
(1)要素プロセッサの処理装置1と、そこに割り付け
られた部分配列、例えばA(I、*)の−要素A (I
、J)をアクセスするとき、その物理装置1は配列記述
子120から、その部分配列データが凡するセグメント
の仮想番地を読出す命令を実行する。さらに、そのセグ
メントの仮想番地と読出すべき要素A(I、J)の添字
Jから定まるオフセットを加算して、その要素の仮想ア
ドレスVAに求め、これでもってメモリアクセスすべき
ことを指示する命令を実行する。この仮想番地VAの上
位ビット部分は、セグメント番号SNとしてセグメント
物理番地メモリ11に送られ、そこによりセグメント物
理番地SPに変換される。
加算器15によりこの物理番地SPと、仮想番地VAの
下位ビット部分(オフセットと呼ぶ)Wを加算して、物
理番地RAを生成し、局所メモリ2をアクセスする6な
お、前述したように、各要素プロセッサの局所メモリ2
には、その要素プロセッサに割り付けられたタスクが定
義するデータのみではなく、他の要素プロセッサが定義
したデータのコピーデータが割り付けられていることが
ある。このデータについても全く同じようにアクセスで
きる。このようにして、各要素プロセッサに割り付けら
れたタスクが必要とする任意の配列要素をその要素プロ
セッサのメモリ2に書いたり、そこから読んだりするこ
とができる。ただし、間接指標で表現された配列のよう
に実行時にアクセスすべき要素番号が確定するデータを
アクセスする場合には、後述する方法により場合によっ
ては他の要素プロセッサに対してアクセスする。
(2)上記メモリアクセス命令が局所メモリ2へのデー
タ書込み命令のときは、セグメント物理番地メモリ11
の対応するエントリをチエツクして、書込むべきデータ
を他の要素プロセッサへコピーすべきか否かを判別し、
コピーすべきときはメモリ11中のそのエントリのファ
ンアウトメモリ番地FOMAをもちいてファンアウトメ
モリ20から、そこに書かれている要素プロセッサ番号
PEN○とセグメント仮想番地を読み出し、このセグメ
ント仮想番地Svと、命令で指定された仮想番地VAの
オフセット部分Wの和を加算器21で求め、これを、コ
ピーデータに対する仮想番地として、上記要素プロセッ
サ番号PEN○の要素プロセッサへ書込まれたデータと
ともに送る。コピー先の要素プロセッサ番号が複数個、
ファンアウトメモリ20に格納されているときには、そ
れぞれの番号の要素プロセッサに対して同じコピー動作
をする。すなわち、本方式によりストアスルーでデータ
のコピーを持つ分散メモリを更新することができる。
(3)上記メモリアクセス命令がデータをフェッチ命令
の場合は、番地変換を行ない局所メモリ2をアクセスす
る点は同じであるが、上述のコピー動作はしない。
(4)上記メモリアクセス命令で指定された仮想番地に
対応する物理番地がその要素プロセッサに割り付けられ
ていないとき、すなわち間接指標でアドレスされる場合
、またはメモリ量を節約するために他要素プロセッサが
定義するデータをコピーしない場合のように、仮想空間
上には、そのデータが割り付けられていても自メモリに
そのデータが割り付けられていないにもかかわらず、そ
のデータをアクセスする命令が実行されたとき、そのデ
ータに対するセグメント実番地メモリ11中のエントリ
の第2フィールド11−2の無効ビットINVは1であ
り、そのデータが局所メモリ2に割り付けされていない
ことが分かる。このとき。
このフィールドにつづくフィールド11−3内のファン
アウトメモリ番地を用いてこのメモリ20をアクセスし
、そのデータが割り付けられている他の要素プロセッサ
のプロセッサ番号PEN0とそのデータに対するセグメ
ントの仮想番地Svを読み出し、上記命令で指定された
仮想番地Svのオフセット部分Wと、このセグメント仮
想番地Svの和を加算器21で求め、その加算結果を、
アクセスすべきデータの仮想番地VAとして、上記番号
PEN0の要素プロセッサへ送り、その要素プロセッサ
に対しデータ書込み、またはフェッチを要求する。
以上における仮想番地から物理番地への番地変換あるい
は他要素プロセッサ内仮想番地の生成処理は、第5図に
模式的に示されている。
次に第1図の装置の動作をより詳細に述べる。
(1)まず、処理装置i!1がデータ書込み命令を実行
した場合について説明する。いま、第1図において、あ
る要素プロセッサのタスクが配列の1要素A (L J
)の値を局所メモリ2へ書込む場合を考える。
■ 処理装置は、データ書込み命令の実行の前に局所メ
モリ2中の記述子100から、その要素を含む部分配列
データA (I、 *)  (*はJ=1〜N)に対す
るセグメン1〜の仮想番地を求め命令を実行する。さら
にデータ書込み命令を実行してこれにインデクスJで示
されるオフセットを加えて、その要素仮想番地VAを番
地バス9上に出力する。
また、書込むべきデータA (I、J)をデータバス1
0に出力し、書込み指示信号を制御バス8に出力する。
■ 仮想番地VAの上位ビット部分は、その番地が属す
るセグメントの番号SNを表し、下位ビット部分はその
セグメント内オフセットWを表すと考えることができる
。番地バス9上に出力された仮想番地VAのセグメント
番号SNは、セグメント物理番地メモリ11に、オフセ
ットWは番地レジスタ17と番地加算器15に入力され
る。
■ 入力されたセグメント番号SNは、メモリ11中で
、複数のセグメント番号と比較され、番号が一致し、か
つ対応する無効ビットINVがOであるセグメント番号
を検出する。そのようなセグメント番号が検出されない
と、メモリ11から不一致信号が制御バス8経由で処理
装置lに入力され、これが割込みとして受は付けられ、
割込み処理プログラムにより、局所メモリ2中のセグメ
ントテーブルllO内の、入力されたセグメント番号S
Nに対する情報が読み出され、書き込み制御回路14を
経由してセグメント物理番地メモリ11の一つのエント
リに格納され、その後このメモリ11で前述の比較処理
が再開される。前述の比較の結果、無効ビットが0でか
つ一致したセグメント番号が検出されたとき、その番号
に対するエントリの第3フイールド内のセグメント物理
番地SPは番地加算器15に入力され、第4フイールド
内の番地はファンアウトメモリ番地レジスタ16、およ
び比較器23に入力される。
また、第2フイールドの内容がエンコーダ24に入力さ
れる。求められたセグメント物理番地SPに1番地加算
器15によりセグメント内オフセットWを加えて書込む
べきデータの物理番地PAを求める。この物理番地PA
により局所メモリ2に要素A (I、J)の値を格納す
る。
■ 同時にセグメント物理番地メモリ11から出力され
た第4フイールドの内容が0か否かを比較器23により
チエツクする。0であればメモリ20の番地がその第4
フイールドには書かれていないことを示すものとする。
番地が書かれている場合には、比較器23は1を出力す
る。このときは、以下のようにしてコピー動作がなされ
る。
■ 比較器23からの出力と処理装置1が制御バス8に
出している制御信号およびセグメント物理番地メモリ1
1の第2フイールドの無効ビットINVが入力され、エ
ンコーダ24は、比較器出力が1で、制御信号が書込み
指示信号であり、かつ無効ビットがOであればファンア
ウト制御回路25とOR回路13に信号It I 11
を与える。ファンアウト制御回路25はビジー状態とな
り、エンコーダ24からの信号を受付なくなるとともに
、OR回路13に1′ を出力する。OR回路13の出
力′1′ は処理装置tに制御バス8経由で動作停止用
信号として入力される。処理装置1の動作は実行中のデ
ータ書込み命令の実行が終了すると一時停止され、エン
コーダ24の出力はO′となる。ファンアウトメモリ2
0の各エントリには、書き込まれたデータをコピーすべ
き他要素プロセッサの番号PEN0を格納する領域20
−1とその要素プロセッサの局所メモリ中の、コピーデ
ータに対して割り付けられたセグメントの仮想番地S■
を格納する領域20−2、およびコピー先が複数ある場
合に次のコピー先を格納しであるファンアウトメモリ入
口番地を指すポインタPを格納する領域20−3とが用
意されている。ファンアウト制御回路25は、ファンア
ウトメモリ番地レジスタ16内の番地FOMAにて指定
されるエントリ内の情報を読み出す。コピーデータが割
り付けられたセグメントの仮想番地Svは、番地レジス
タ17中のセグメント内オフセットWとともに番地加算
器21に入力される。この加算器の出力は、コピーデー
タの仮想番地VAを表し、これをレジスタ18内の書込
みデータとファンアウトメモリ20から読出されたコピ
ー先の要素プロセッサ番号PEN0とともに出力ボート
レジスタ26に送る。また、ファンアウト制御回路25
は制御バス8上の書き込み指示信号に基づき書き込みコ
ード゛’WRITE”を生成して出力ボートレジスタ2
6に書き込む。こうして、第6A図に示す書き込みパケ
ットを出力ボートレジスタ26に形成する。制御回路2
5は、送信装置5を起動してパケットの送出を依頼する
。この書込みパケットは相互を結合ネットワークにより
、パケット中の要素プロセッサ番号PEN0で指定され
る要素プロセッサに送出される。
■ 一方、ファンアウト制御回路25はファンアウトメ
モリ20から読み出されたポインタPがあらかじめ定め
た番地、例えば000・・・0でなければ、再びそのポ
インタPを番地とする、ファンアウトメモリ20の別の
エントリの内容を読み出して、この内容に基づき、上述
の書込みパケットの送出と同じ動作を行なう。この動作
は、新たに読まれたエントリのポインタPが00・・・
0になるまで繰り返す。この後、ファンアウト制御回路
25は計算終了信号としてO′ をOR回路13に出力
する。この信号はエンコーダ24からの出力、すなわち
O′ とORを取られて処理装置1の動作停止用信号を
解除するので、処理装置1は再び動き出す。この間、処
理装置1は凍結状態にあり、ただ時間が伸びるだけで何
事も無かったように動作は続行される。ファンアウト制
御回路25もビジー状態が解除される。
■ コピー先の要素プロセッサの受信装置6が相互結合
ネットワーク7からパケットを入力ボートレジスタ28
上に受は取ると、受信パケット処理制御回路30はパケ
ット中の処理コードの内容をデコードする。処理コード
がWRITEの場合、制御バス8上にバス要求信号を出
力し、処理装置1がバス認可信号を出力したらバス使用
中を示す信号を出力してから、パケット中の仮想番地V
Aを番地バス9を経由してセグメント物理番地メモリ1
1に送り、また、データをデータバスIO上に出力する
。セグメント物理番地メモリ11は、処理装置1から送
られてきた仮想番地と全く同様にしてこの受信された仮
想番地を物理番地に変換し、この物理番地が指す局所メ
モリ2中の領域に受信したデータを格納する6その後、
バス使用中を示す信号の出力を停止し、処理袋Htにバ
ス使用権を渡す。こうしてデータコピーが終了する。
(2)次に、各要素プロセッサの処理装置がデータ読出
し命令を実行した場合について説明する。
D所メモリ2に割り付けられた、部分配列データの一要
素あるいはその他のデータを読出すときには、その命令
で指定された仮想番地VΔに対して、すでに説明したの
と同じ方法で仮想番地から物理番地への変換がなされる
。この場合、勿論、r67 述のコピー動作はしない。
次に、間接指標表現の配列データA (L (■) 、
 J)を読出す場合を考える。
■ 要素プロセッサの処理装置1で実行されているイン
デクスI=iを担当するタスクの実行の結果、間接指標
L (i)となった場合、この指標kを用いて引いた配
列記述子120の内容、すなわち部分配列A(k、*)
(*は全でのJに渡ることを示す)に対応するセグメン
トの先頭番地Svを読出し、インデクスJにより定まる
先頭番地からのオフセット番地を処理装置1内の汎用レ
ジスタの一つに入れて上記先頭番地Svとこのオフセッ
ト番地により該部分配列をフェッチしようとするデータ
の仮想番地VΔを出力する。ここまではデータを局所メ
モリ2に書込む命令の場合゛と同じである。
■ 読出すべきデータA (k、J)が自要素プロセッ
サの局所メモリ2中にあれば、データを格納する場合と
同様、この仮想番地VAを物理番地にし、この物理番地
で読み出された局所メモリ2の内容がデータバス10上
に出力される。該データが自要素プロセッサ中にあるこ
とは、セグメント物理番地メモリ11中の無効ビットI
NVがOであることにより知られる。このとき、制御バ
ス8上の読み出し信号とセグメント物理番地メモリ11
から出力された無効ビットINV(=O,)とがエンコ
ーダ24に入力され、この場合には、ファンアウト制御
回路25にはコピーデータのアクセスを依頼する信号′
1′は出力されない。
■ A (k、J)が自要素プロセッサの局所メモリ中
に無い場合はセグメント物理番地メモリ11中の処理装
置1からの仮想アドレスVAが屈するセグメントに対す
るエントリに無効ビットINVが立っている(=1)。
この無効ビットINVはセグメント物理番地メモリ11
から制御バス8上に割込み信号として出力され、処理装
置1がフェッチ命令実行中であるならば割込みがかかり
、割込み処理プログラムが起動される。一方、このとき
はセグメント物理番地メモリ11中の上記エントリの第
4フィールド11−4の、ファンアウトメモリ番地で指
定されるファンアウトメモリ20のエントリからA (
k、 *)が割り付けられている要素プロセッサのプロ
セッサ番号と当該データが割り付けられているセグメン
トの仮想番地Svとが読み出される。エンコーダ24は
制御バス8上の読み出し信号と、セグメント物理番地メ
モリ11からの無効ビットINV (=1)、およびメ
モリ11の第4フィールド11−4のファンアウトメモ
リ番地が0(空)でないことを示す比較器23の出力′
1′ を入力した結果、 1′をファンアウト制御回路
25とOR回路13に出力する。OR回路13の出力 
1′はフェッチ割込を受けている処理装置1には影響を
与えない。
エンコーダ24から起動信号″l′ を入力したファン
アウト制御回路25は、 A (k、 *)が割り付け
られている要素プロセッサに対し第6B図のようなRE
ADパケットを作成して送るよう送信装置5に依頼する
。すなわち、ファンアウト制御回路25は、セグメント
物理番地メモリ11からファンアウトメモリ番地レジス
タ16に出力されたファンアウトメモリ番地を用いてフ
ァンアウトメモリ20を読み、その内容のうち要素プロ
セッサ番号PEN0を出力ポートレジスタ26に、セグ
メント仮想番地Svを番地加算器21に入力する。一方
、番地レジスタ17中のセグメント内オフセットWが番
地加算器21に入力され、セグメント仮想番地と加算さ
れて結果が出力ポートレジスタ26に出力される。ファ
ンアウト制御回路25はまた。制御バス8上のフェッチ
俳号に基づき、処理コード”READ”と自身の要素プ
ロセッサ番号とを生成し、これも出力ポート2G上に出
力する。出力ポート26上に編成されたREADパケッ
トは、送信装置5により相互結合ネットワーク7に送出
される。
READパケットを受信した要素プロセッサでは、受信
装置6がパケットを入力ポートレジスタ28上に受は取
ると、直ちに受信パケット処理制御回路30が処理コー
ドをデコードし、READコードの場合、処理装置1か
らバス使用権をもらってパケット中の(仮想)番地をセ
グメント物理番地メモリ11に入力して局所メモリ2の
物理番地に変換し、これを用いて局所メモリ2の該当領
域の内容、すなわちΔ(k、*)を読み出し、その値を
返信パケット用出力ポートレジスタ31に格納する。受
信パケット処理制御回路30はまた、入力ボートレジタ
28中の返信光要素プロセッサ番号を返信パケット用出
力ポートレジスタ31に格納し、さらにコード”RET
URN”を生成してこれも返信パケット用出力ポートレ
ジスタ31に格納する。こうして返信パケット用出力ボ
ートレジスタ31上に第6C図に示すRETURNパケ
ットを形成する。このパケットは、受信装置6が送信装
置5に依頼して相互結合ネットワーク7に出力してもら
い、要求元に送り返される。要求元の要素プロセッサで
は、RETURNパケットが届くと、受信パケット処理
制御回路31によりWRITEパケットと同様の処理が
行われるが、受信パケット処理制御回路30で処理コー
ドがデコードされた結果RE T U RNであること
が分かると、受信パケット処理制御回路30は局所メモ
リ2内のあらかじめ定めた特定の固定番地(返信データ
用バッファ領域番地)を番地バス9上に出力してここに
受信したデータを格納し、また、制御バス8により処理
装置1にデータの到着を通知する動作が追加されている
点が異なる。この通知により、処理装置lのフェッチ割
込み処理プログラムは中断していたデータ読み出し命令
のオペランド番地を上記特定番地に変更してから、その
命令を再実行する。従って、この命令は必ず」二記の特
定番地を読む。このようにして各要素プロセッサは自メ
モリ中にない1間接指標で指定されるデータを参照する
ことが出来る。
(3)(1)において自局所メモリ中2に無いデータを
更新する場合には、セグメント物理番地メモリ11中の
、そのデータの仮想番地vAに対するエントリでは無効
ビットINVが1であり、かつファンアウトメモリ番地
FOMAはO・・・・・0でない。このため比較器23
の出力はlである。
INVビットは制御信号として局所メモリ2に与えら、
局所メモリ2でのデータ格納動作を禁止する。一方、書
込み命令を実行した要素プロセッサではAND回路12
にはこの無効ビットINVと比較器23からの出力(=
1)が入力され、その出力が1となり、他プロセツサへ
の書き込みが行なわれたことが処理袋[i!11に伝え
られる。
一方、エンコーダ24は、この無効ビットと比較器23
の出力と制御バス8上の書込み指示信号に応答してファ
ンアウト制御回路25とOR回路13に′1′  を与
え起動する。この制御回路25は、制御バス8上の書込
み指示信号に応答して、コピー動作時と同様に書込みパ
ケットを生成して、書込み指示されたデータを他要素プ
ロセッサに送出して、書込みを指示する。
以下1本発明の第二実施例を図面により詳細に説明する
第7図において、100は要素プロセッサ、7は複数の
要素プロセッサ100を相互に接続してそれらの間の通
信を可能とする相互結合ネットワーク、10はホスト計
算機である。要素プロセッサ100はプログラム命令を
実行する処理装置1、プログラムおよびデータを保持す
る局所メモリ2、アドレス変換装置60、およびこれら
を接続するバス74、比較器79.ファンアウトメモリ
20゜パケット生成制御回路25A、出力ポートレジス
タ26、およびこれを接続するバス77、入力ボートレ
ジスタ28.受信パケット処理制御回路30A、待合せ
情報記憶装置32、減算器33゜およびこれらの要素3
OA、32.33を接続するバス71.およびバス71
と74を接続するバススイッチ80B、バス74とバス
77を接続するバススイッチ80C,バススイッチ8C
IBと80Gを制御するバスアービタ80A等からなる
処理装置1は第2図に示されたのと同じ構造を有し、フ
ァンアウトメモリ20は、第1図のファンアウトメモリ
と同じく他要素プロセッサ内の番地を保持するためのも
ので、そのエントリの各々は第1図のと同じく、3つの
フィールドを有する。
但し、第1図のファンアウトメモリでは、他要素プロセ
ッサの仮想空間に割り付けられた、あるデータのセグメ
ント番地を保持していたが、本実施例では、他要素プロ
セッサの、局所メモリ2の番地と待合せ情報記憶装置の
番地を保持する点で第1図と異なる。前者は第1図と同
じくデータの転送に用いられ、後者は制御トークンの転
送に用いらる。アドレス変換装置60は処理装置1から
出力さた物理番地を他要素プロセッサの局所メモリ2を
アクセスする物理番地に変換するもので第1図のセグメ
ント物理番地メモリ11およびその関連回路と類似の機
能を果す。
アドレス変換装置60は、第8図に示すように、制御判
定回路62.ポインタメモリ65、ポインタレジスタ6
3、データレジスタ64とからなっている。
このポインタメモリ65は、第1図のセグメント物理番
地メモリ11と類似の機能を果すものであるが、後に述
べる理由により、その各エン1−りに変換結果として出
力すべき物理番地およびファンアウトメモリ20の一つ
の番地FOMAを対にして保持することはせず、第9A
図に示すように。
FOMAのみを保持する。
アドレス変換回路60とファンアウトメモリ20の作用
により、本実施例においても、第1図と同じく分散した
局所メモリ内のデータのコピー動作とその他の動作が可
能になる。待合せ情報記憶装置32は各要素プロセッサ
ごとにタスクの起動制御を行うことを可能にするための
ものである。
すなわち、この記憶装置はその要素プロセッサに割り付
けられたタスクごとに、一つのエントリを有し、その内
容が第9B図に示す。
本実施例は第1の実施例に比較すると、第1の実施例で
採用さた分散した局所メモリとデータコピー技術は本実
施例でも採用されているが、本実施例で各要素プロセッ
サに割り付けられた仮想番地空間は、第1の実施例と異
なる。すなわち、本実施例では仮想番地空間の一部が物
理番地空間に一致する。したがって、その一部に属する
番地が処理装置から出力されたとき、第1の実施例で述
べたような番地変換は本実施例では不要である。
このため、ポインタメモリ65にはFOMAのみが保持
されている。さらに本実施例では、タスク起動制御のた
めの回路が各要素プロセッサに設けられている。
まず、本実施例の概略説明をする。
ホスト計算filoは以下のことを実行するようにプロ
グラムされている。まず、この並列討算機で実行すべき
ソースプログラムから生成された複数のタスクと呼ぶそ
の実行途中でお互いに交信する必要のないプログラムと
、各タスクを実行するために必要なデータ (その詳細
は後に説明する)とがあらかじめこのホスト計算fil
oにロードされており、ホスト計算機10は各要素プロ
セッサに、そこで実行すべき複数のタスクと1.それぞ
れのタスクの実行に必要なデータをロードする。その後
、全ての要素プロセッサ100を起動し、全要素プロセ
ッサ100の実行結果を外部の装置(図示せず)に出力
する。各要素プロセッサはそこに割当てられた複数のタ
スクを、他の要素プロセッサにおける他のタスクの実行
と並行して実行するように構成されている。
各要素プロセッサの動作の概略は以下の通りである。
各タスクの末尾(またはその途中)に、制御トークン送
信命令がホスト計算機によりあらかじめ組み込まれてい
て、各要素プロセッサ100で実行中のタスクにあるそ
の命令に従い、制御トークンをそのタスクのその制御ト
ークン送信命令が発行されるまでの部分の実行終了を待
って実行が許される他のタスクに、パケット生成制御回
路25Aが送信する。そのような他のタスクは、各要素
プロセッサ100で実行されるタスクごとにあらかじめ
定めらでいる。その決定結果をファンアウトメモリ20
が保持する。各要素プロセッサ100は、実行中のタス
クの実行終了後、その要素プロセッサに割当てらだタス
ク内のいずのタスクを実行するかを受信パケット処理制
御回路30八が決定することができるようになっている
。各タスクが実行可能となるためには、そのタスクに先
行して実行されるべきタスクが全て実行終了し、その実
行終了を示す制御トークンがその要素プロセッサに通知
される必要がある。このため、各要素プロセッサでは、
各タスクごとに、その実行許可のために必要な制御トー
クン数を待合せ情報記憶装置32に保持するようになっ
ている。各要素プロセッサでの一つのタスクの実行が終
了したとき、受(iパケット処理制御回路30で実行可
能とすでに判断されたタスクの一つを処理装置1が実行
する。すなわち、プログラムの最終でタスク終了命令が
発行されると1次のタスクへは分岐命令により移行する
。分岐先番地は、バケツ1〜受信制御回路30が作成し
た実行可能になったタスクを起動するための情報を命令
により取り出して求める。このように、本発明では、タ
スク切替にオペレーティングシステムを介在させないの
で極めて高速である。
各タスクは、その実行途中において、他のタスクと交信
する必要が無いように構成された+114位処理プログ
ラムである。従って、各要素プロセッサ100は、一つ
のタスクの実行開始後は、他の要素プロセッサにおける
他のタスクの実行と独立に、すなわち、並列にそのタス
クを実行することができる。ただし、そのタスクの実行
開始前には、先行するあらかじめ定めた一つまたは複数
のタスクの実行が終了している必要がある。たとえば第
13図に示すソースプログラムを分割して得られた複数
のタスクの実行順序を示したのが、第14図のタスクフ
ローグラフである。このため、本実施例では、それらの
タスクの実行終了を示す制御トークンがその要素プロセ
ッサ100にて受信されたか否かを判別してから、その
タスクを起動するようになっている。こうして、各要素
プロセッサ100ごとにタスクの実行可否を判断可能に
なっている。
さらに、本実施例では、データの送信、すなわち、要素
プロセッサ間の通信に関しては、データを局所メモリ2
に格納し、もしくはそこから読み出すという通常のメモ
リアクセス動作を処理装置Iが行ない、そのとき必要な
データ通信は番地変換装置60を中心とする回路が自動
的に実行する。
本実施例では各要素プロセッサごとに固有の局所、番地
空間が定められており、各要素プロセッサ100のタス
クはデータをアクセスする際、その空間に属する。その
データに対応する局所番地を指定するようになっている
。局所メモリ2の物理番地の空間はこの局所空間の一部
のみに対応し、局所空間の残りの番地に対する局所メモ
リ2内領域はない。したがって、この居所番地も第1の
実施例と同様仮想の番地と考えることができる。−方、
ポインタメモリ65(第8回)の番地空間は局所メモリ
2の番地領域を含みそれより広い範囲とする。例えば、
r:J所番地空間がNビットの番地で番地付けられると
すると、局所メモリ2の物理番地空間はN−1ビツトで
番地付けできる範囲、すなわち局所番地空間の半分の範
囲とし、ポインタメモリ65の物理番地空間Nビットで
番地付けできる範囲、すなわち局所番地空間全域とする
このような多重の番地空間を各要素プロセッサごとに設
定する。本実施例ではこの多重番地空間上にデータを分
散配置し、任意の要素プロセッサが必要とするデータを
確実にしかも高速にアクセスできるようにする。
以下、実施例についてさらに詳細に説明する。
まず、各要素プロセッサのデータとタスクの割り付けに
ついて説明する。
(a)データとそのデータを定義するタスクを同一要素
プロセッサ(例えば要素プロセッサA)に割り付ける。
データは各要素プロセッサの局所メモリ2の物理番地範
囲内に割り付ける。例えば、第11図に例示するように
、局所メモリ2の物理番地がO−Mで局所番地空間がO
−M’のとき、タスクで定義されるデータをM番地より
小さいa番地に割り付ける。
(b)該データを参照することがプログラム実行前から
判明している他のタスクが他のプロセッサ(例えば要素
プロセッサB)に割り付けられる場合、該データのコピ
ーデータを要素プロセッサBの5局所メモリ2の番地範
囲内の番地、例えばb番地を割り付ける。
(c)要素プロセッサAのポインタメモリ65のa番地
のエントリが指すファンアウトメモリ20の一つのエン
トリにコピーデータが割り付けられた要素プロセッサの
と番地プロセッサB、番地b)を格納する。もし、コピ
ーデータが複数の要素プロセッサに割り付ける場合は、
それらのコピーデータの番地を要素プロセッサAのファ
ンアラ1−メモリ20内でポインタPで結んだリストの
形で記憶させる。これも第1図のファンアウトメモリ2
0と同じ(117成である。
(cl)プログラム実行i1fには定造・参照関係が不
定なデータは、何らかの手段で(例えば順番)にプロセ
ッサに割り付け、自分に割り付けられていないが定義・
参照を行なう可能性のあるデータは、局所番地空間内の
自局所メモリ2の番地範囲外(たとえば第11図のM+
1〜M′番地範囲)の番地(例えばプロセッサAのC番
地)に割り付ける。
(e)上記(d)でM番地以降に仮想的に割り付けらだ
データの真の所在番地(プロセッサB、(1番地)を、
プロセッサAのポインタメモリ15のC番地のエントリ
が指す、ファンアウトメモリ20内のエントリに格納す
る。
上記(d)、(e)の例として、次のプログラムを考え
る。
Do  to  I=1,3 Do  to  J=1,3 A(I、 J)=A(I−]、 J)+B(L(I)、
 J)10  C0NTINUE これを■について分割し、3台の要素プロセッサで並列
処理する場合として、各要素プロセッサで次のようなタ
スクを実行するものとする。
K=L(I) (Bの変位番地=T3D (K) ) Do  10  J=L3 A(I、J)=A(I−1,J)+B(J)10   
C0NTINUE ここに()内の文は新たに生成された実行文であり、B
D(K)はBの部分配列B (k、 *)の先頭番地(
変位番地)を格納してへるテーブルである。このプログ
ラムはAの定義参照関係は明確であるが、Bは不定であ
り、事前にコピ一番地を決めることが出来ない。このよ
うな場合は、第12図に示すように、B (k、 *)
を機械的に各要素プロセッサ100に割り付け、割り付
けられなかったデータは局所メモリ2の範囲外(ポイン
タメモリ65の範囲内)に割り付ける。実行時にL (
I)= (3,2,1)と分かったとすると、点線で示
す関係をたどって任、σのプロセッサは必要とするデー
タをアクセスすることができる。例えば、プロセッサ3
は 1=L(3) (Bの基底番地=BD (1)) Do to  J=1.3 A(3,J)=A(2,J)+B(I、J)10  C
0NTINUE を処理するが、A (3,J)、A (2,J)は自局
所メモリ中に直接見出すことが出来、B (I。
J)はポインタメモリ65にのみ存在しているので、こ
れをたどってプロセッサ1の局所メモリ2をアクセスす
る。他のプロセッサ100の局所メモリ2を読む場合、
アドレス変換装置60の指示によりREADパケットが
発行され、これを受信したプロセッサは折り返しRET
URNパケッ1へを返信する。処理装置lはこの間、返
信待ち状態にあり、とくに通信命令を実行する必要はな
い。
以上のようなメモリシステムでは、物理的には異なる場
所に存在していても同一のデータはポインタで結合され
ているので、これをたどっていけばそれら全てにアクセ
スできる。また、自プロセッサの局所メモリ2に存在し
ないデータも、ポインタメモリ65上に割り付けられて
いればアクセスすることができる。ただし、データを読
み出す場合は、どれかひとつをアクセスすればよいが、
データを更新する場合はポインタをたどってすべてのデ
ータを書き直さなければならない。
このようなメモリシステムを用いることにより、■任意
のプロセッサからアクセスできるようにデータを分散配
置出来るので、全プロセッサから直接アクセス可能な集
中型メモリ構成とした場合よりアクセスのぶつかりあい
が少なく、アクセス速度も速い。■アクセスするデータ
をそのタスクと同じプロセッサの局所メモリ2上に配置
することができる。(プログラム実行前にアクセスパタ
ンが分かっているかぎり)。■事前に分かる範囲で、デ
ータ格納領域をそのデータを必要とするプロセッサの局
所メモリ2に割り付け、データ作成時点でこれらの領域
に送っておけるので、起動されたタスクが命令を解読す
る時点で他のプロセッサの局所メモリを読む場合より、
命令実行時間を短縮できる。
という効果が得られる。
また、同一の論理的データが物理的に複数個存在する場
合、これらの定義が物理的に同時に行なわれないと、一
般にはそのアクセスの論理的正しさが保証されない。例
えば、書き直す前のデータを誤って読んでしまうrea
d before writeの問題とか、その逆のw
rit、e before readの問題がある。本
実施例ではデータをアクセスしたタスクが、次に同じデ
ータをアクセスするタスクを制御トークンにより起動す
るという機構を基本にしているため0、このような問題
は全て回避できる。
次にデータの局所メモリ2への書込みについて第1,8
図を用いて説明する。
a)自要素プロセッサの局所メモリ2へのデータの書込
みと他要素プロセッサの局所メモリ2へのデータコピー
。タスクを実行中の処理装置1がデータを局所メモリ2
に格納する命令を解読すると、■バス74中のアドレス
バス74−2、データバス74−3にそれぞれ番地とデ
ータを乗せ、制御バス74−1に書き込み指示信号を乗
せる。局所メモリ2は普通のメモリのようにこれらのバ
スに接続されるが、ポインタメモリ65のREAD端子
Rには、制御バス74−1の書き込み指示信号と読み出
し指示信号が共に入力され、データ端子りはポインタメ
モリ65の内容が空か否かを判定する制御判定回路62
を経由してポインタレジスタ63に接続される。また、
データバス74−3はデータレジスタ64に接続され、
格納命令の実行の都度データがセットされる。■このと
き1局所メモリ2にはアドレスバス74−2上に出力さ
ている番地が指す領域にこのデータが格納さるが。
■同時にこの番地を持つポインタメモリ65の内容が請
み出されて制御判定回路62に送られ、空でなければポ
インタレジスタ63に格納される。
■制御判定回路62は、このとき(空でないとき)処理
装置1に停止信号を送って動作を停止させ。
■パケット生成制御回路25Aに起動をかけるべくバス
アービタ80Aにバス77の解放を要求する。■パケッ
ト生成制御回路25Aがビジーでなくなり、バス77が
解放されたらこれを用いてまずポインタレジスタ63の
内容をレジスタ41に、続いてデータレジスタ64の内
容をジスタ42に書き込み、パケット生成制御回路25
Aに書き込みを通知する。その後、■処理装置!1の動
作を再開させるための信号を送る。
パケット生成制御回路25Aは■書き込み通知信号を受
けて、レジスタ42の内容が制御1−一クンコードでな
いことを確認してから、■レジスタ41の内容を番地と
してファンアウトメモリ20をアクセスして送信先番地
をレジスタ44Aと出力ポートレジスタ26に1次の送
信先番地が格納されている、ファンアウトメモリ20の
エントリを示すポインタをレジスタ44Bに格納する。
■パケット生成制御回路25Aはまた、レジスタ42内
のデータをパケット生成制御回路25Aはまた、レジス
タ42内のデータをパケット生成制御回路25Aが生成
した処理コード(WRITE)とともに出力ポートレジ
スタ26に移し、第6A図に示したのと同じ形式の書込
みパケット・を形成する。■相互結合ネットワーク7に
こうして編成したパケットを送出する。その後、■次の
送信先があればその処理を行う。すなわち、レジスタ4
4Bに置かれたポインタの内容が空(あらかじめ定めた
ビット列1例えばOOO・・・0)でなければ、その番
地のファンアウトメモリ20のエントリをアクセスして
次の送信先を取り出し、再び、送信先以外は全て今のパ
ケットと同じパケットを編成する。
(b)他要素プロセッサの局所メモリ2への−y’ −
タの書込み。
データ格納命令で指定された番地が局所メモリ2の番地
範囲を超える場合は制御判定回路62で判定され、局所
メモリ2への書き込みは実行されないが、他要素プロセ
ッサへ書込みパケットを送信する動作は上記コピー動作
と同様にして実行される。その書込み対象データを他要
素プロセッサに書込む。すなわち、まず、アドレス変換
装置60が■処理装置1に停止信号を送り停止させた後
、■パケット生成制御回路25Aの空きをアービタ80
Aを通して確認し、■アービタ80Aが接続したバス7
7を用いてレジスタ41に(コピーデータ領域の番地が
格納されている)ファンアウトメモリ20の番地を送出
し、レジスタ42にバス74上の送信すべきデータを書
き込み、(■パケット生成制御回路25Aに書き込みを
通知した後、■処理装置lの停止を解除する。
パケット生成制御回路25Aは(a)で述べたのと同様
にしてWRITEパケットを生成し、送出する。
(c)他要素プロセッサから送られたデータの書込み 書込みパケットを受信した要素プロセッサの受信パケッ
ト処理制御回路3OAは■パケット中の居所メモリ番地
を番地レジスタ34Aにセットし、パケット中のデータ
をデータレジスタ34Bに格納し、同時に■バスアービ
タ80Aは■バス74が空くのを待って受信パケット処
理制御回路30Aをバスマスタにし、■バススイッチ8
0Bを接続してバス74を受信パケット処理制御回路3
0Aに放解する。受信パケット処理制御回路3OAはこ
れを用いて■番地レジスタ34Aの内容が指す局所メモ
リ内の領域にデータレジスタ34B(7)内容を格納し
、■バス使用権を処理装置lに返す6(d)自要素プロ
セッサの局所メモリからのデータの読出し 処理装置lがデータを局所メモリ2から読み出す命令を
解読すると、■制御判定回路62がその番地が自身の局
所メモリ2の番地範囲を超えていないかどうか検査し、
■超えていなければその番地で局所メモリ2をアクセス
する。
(e)他要素プロセッサの局所メモリからのデータの読
出し ■処理装置1からデータを局所メモリから読出す命令を
解読し出力するアドレスバス74−2上の番地が局所メ
モリ2の番地範囲を超える場合は。
■制御判定回路62が制御バス74−1を用いて処理装
置1に割込みをかけ、割込み処理プログラムを起動させ
る。このプログラムは、読み出し命令のオペランドアド
レスを特定の番地(受信バッファ番地)に変更して、返
信パケットの到着通知を待つ。■次に、制御判定回路6
2はバスアービタに依頼してバススイッチ80Gを接続
し、ポインタレジスタ63の内容をレジスタ41に、ま
た、みだし指示信号に対応してREADコードを生成し
てレジスタ42に書き込む。すでに述べたように、パケ
ット生成制御回路25Aはレジスタ41の内容でファン
アウトメモリ20を引いて、第6B図に示したのと同じ
フォーマットのREADパケットをそのデータの所在す
る要素プロセッサに送出する。
(2)他要素プロセッサから送られてきたデータ読出し
要求の処理 受信したパケットの処理コード28AがREADのとき
受信したパケットはデータ読み出し要求パケット(RE
ADパケット)である。受信パケット処理制御回路3O
Aは■パケット中の局所メモリ番地を番地ジスタ34A
に格納し、同時に■バスアービタ80Aに対しバスリク
エストを送る。バスアービタ80Aは■バス74が空く
のを待って受信パケット処理制御回路3OAをバスマス
タにし、■バススイッチ80Bを4’l’lてバス74
を制御回路30に解放する。制御回路30はこれを用い
て■番地レジスタ34Aの内容が指す局所メモリ領域を
読み出してこれをデータレジスタ34Bに格納し、■バ
ス使用権を処理装置1に返す。制御回路3OAは、さら
に、■パケット生成制御回路25Aに依頼して出力ポー
トレジスタ26が空くのを待ち、■パケット処理制御回
路30がREADパケット中の返信先番地とデータレジ
スタ34Bの内容と、READパケット受信に対応して
生成したRETURNコードをバイパス29を経由して
出力ポー1ヘレジスタ26に格納し、送信する。
(3)RETURNパケットの受信と処理処理コード3
1A=RETURNのときは受信したパケットは返信デ
ータ格納要求パケット(RETURNパケット)である
。WRITEパケットと同様の処理であるが、あらかじ
め定めである局所メモリ2の特定の固定番地に格納し、
また、バス74を用いて処理装置1にデータの到着を通
知する動作が追加されれる点が異なる。この通知により
、処理装置1では中断していたデータ読み出し命令を途
中から再実行するが、このときは割込み処理プログラム
がオペランド番地を変更しているので、必ず上記の特定
番地を読む。
以下、タスクの起動制御について説明する。
(a)処理装置1で実行中のタスクは、データの定義・
格納命令の実行が終了したならば、(一般にはタスクの
最後で)該データに関連する制御トークンを後読のタス
ク、又はタスク群に送る。このため制御トークン送信命
令を実行する。
制御トークン送信命令を解読した処理装置Iは、■バス
アービタ80Aに依頼してパケット生成制御回路25A
が指示受付可能状態にあることを確認した後、■アービ
タ80Aの指示でバススイッチ80Cによりバス74と
接続されたバス77を用いて、命令が指示している局所
メモリ2の特定番地からファンアウトメモリ2oのエン
トリの番地を読み出し、レジスタ41にセットし、制御
トークンであることを示すコードをレジスタ42に書き
込む・ファンアウトメモリ20のそのエントリには、実
行終了したタスクに続いて実行されるべき後続のタスク
が割りあてられている要素プロセッサの番号と、その中
の待合せ情報記憶装置32中の、その後続のタスクに対
応するエントリの番地を保持するものである。また、上
記特定番地は、待合せ情報記憶装置ξ32中の、実行終
了したタスクに対するエントリの第4フイールド40に
保持されているので、処理装置1はこの第4フイールド
の内容を読むことにより、その特定番地を知ることがで
きる。■同時に、パケット生成制御回路25Aに書き込
みを通知する。■ファンアウトメモリ20には、その要
素プロセッサに割り付けられたタスクに対応して少くと
も一つのエントリが設けられている。各エントリには対
応するタスクの実行終了後に実行すべきタスクが割り付
けられている要素プロセッサの番号と、その要素プロセ
ッサ内の待合せ情報記憶装置の、そのタスクに関する情
報を記憶したエントリの番地が格納されている。このよ
うな後続のタスクが複数ある場合、それぞれについての
上記情報を格納するエントリがファンアウトメモリ2o
にあり、かつそれらのエントリには、他のエントリの番
地を示すポインタが格納されている。これらのポインタ
を利用して上記エントリを続けてアクセス可能にしてい
る。さて、パケット生成制御回路25Aは前述の書き込
み通知信号を受けて、レジスタ41が指すファンアウト
メモリ20のエントリをアクセスし、その制御トークン
の送信先番地(要素プロセッサ番号と待合せ情報記憶装
置の番地)を読み出してレジスタ44Aと出力ポートレ
ジスタ26にセットし、そのエントリにある別のエント
リを示すポインタをレジスタ44Bに格納する。また、
■書き込み通知信号に応答して、制御トークンであるこ
とを示す処理コード(CTL)を送出し。
第1O図に示す制御トークンパケットを出力ボートレジ
スタ26上に生成する。■パケット生成制御回路25A
はこの送信先番地の一部である要素プロセッサ番号を自
プロセッサ番号と比較器79により比較して送信先が自
分がどうが判定し、■自分の場合は、入力ポー1−レジ
スタ28が空き状態にあることを受信パケソ1へ処理制
御回路3OAに問い合せて確認した後、出力ポー1〜レ
ジスタ26内のパケットをバイパス29を経由して自分
の入力ポートレジスタ28に送る。■他プロセッサの場
合はパケット生成制御回路25Δが相互結合ネットワー
ク7に出力ボートレジスタ2G中の制御トークンパケッ
トを送出する。この後、■レジスタ44Bに置かれたポ
インタの内容が空(あらかじめ定めたビット列、例えば
000・・・O)でなければ、そのポインタで示される
ファンアウトメモリ20のエントリをアクセスして次の
送信先を取り出し、再び制御トークンパケットを送信す
る。
(b)制御トークンパケットの受信と処理パケット処理
制御回路30は■制御トークンパケットを受は取るとパ
ケット中の処理コード28Aをデコードし、■パケット
中の待合せ情報記憶装置32の番地を用いて待合せ情報
記憶装置32の一つのエントリをアクセスする。待合せ
情報記し・ス装置32のエントリは第9B図に示すごと
く、5つのフィールドからなる。第1フイールド37に
はそのエントリが示すタスクが起動されるのに必要な制
御トークンの総数が、第2フイールド38には未到着の
制御トークン数が格納されている。制御トークンパケッ
トが到着するたびに、■受信パケット処理制御回路30
は、該制御1−−クンパケツトで指定されたエントリ内
の第2フイールド38の内容を減算器33により1だけ
減する。
■その結果が0になったならばこのタスクは起動可能と
なる。テールポインタレジスタ36の内容はこれまでに
起動可能となったタスクの最終のものに対する、待合せ
情報記憶装置32のエン1−りの番地を示すようになっ
ている。
このエントリの第5フイールド41にはENDと書かれ
ている。
上記エントリの第5フイールドの内容を今起動可能とな
ったタスクに対応する待合せ情報記憶装置32中のエン
トリの番地に書き換える。ここに第5フイールド41の
内容は起動可能タスクのエントリの行列を構成するポイ
ンタ・フィールドであり、これによりこの起動可能とな
ったタスクは待ち行列につながれたことになる。■また
。今起動可能となり新しく待ち行列につながれたタスク
に対応する待合せ情報記憶装置32のエントリの番地を
テールポインタレジスタ36に格納し、■該エントリの
第5フイールド41の内容をENDにする。尚、第3フ
イールド39はそのタスクの実行プログラムの番地を、
第4フイールド40はそのタスクに引き渡す種々のパラ
メータ(基底番地、ファンアウトメモリ20の一つのエ
ントリの番地等)が格納されている。局所メモリ2の領
域の番地である。なお、ヘッドポインタレジスタ35は
起動可能タスクの待ち行列の先頭番地を格納している。
(c)タスク切り替え処理 処理装置1は制御トークン送出命令の実行後にタスク切
り替え処理を実行する。
タスク切り替え処理は、タスクプログラムがバスアービ
タ80Aに依頼して、バス71を解放させ、これを用い
てヘッドポインタレジスタ35を読むことから始まる。
処理装置1はヘッドポインタレジスタ35が指す待合せ
情報記憶装置32のエントリ(起動可能タスク列の先頭
のタスクに対するもの)の第1フイールド41にあう制
御トークン総数を第2フイールド38に移す。
これにより、待合せ情報記憶装置32中の、そのタスク
に対するエントリを初期状態にリセットしたことになる
。処理装置1は、さらに第3フイールド39内のタスク
番地と第4フイールド40内のパラメータ番地をレジス
タ群54 (第2図)、内の通常な汎用レジスタに格納
し、第5フイールド41内の待ち行列ポインタを1次に
起動可能なタスクに対応するエントリの番地としてヘッ
ドポインタレジスタ35に格納し、その後、上記タスク
番地がセラ1〜された汎用レジスタを用いて、上記8動
可能なタスクの実行プログラムの番地に分岐し、分岐命
令を実行する。こうして、そのタスク内の命令の実行を
開始する。
次に第3の実施例について説明する。
本実施例では第15図に示すアドレス変換装置60Aを
用いる。これは、第8図と比較してワード内番地レジス
タ65が付は加わっている点が異なる。また、第16図
に示すように、レジスタ44Aと出力ポートレジスタ2
6の間に番地加存器54を設ける。この実施例ではポイ
ンタメモリ65にはデータワードの群、たとえば2n(
n:整数)個のデータワード群対応に、ファンアウトメ
モリ20のあるエン1〜りの番地が格納されている。そ
のエントリには、上記データワード群のコピーデータ群
を有する要素プロセッサ番地とそのコピーデータ群の先
頭のコピーデータに割り付けられた番地(先頭コピ一番
地)が格納されている。
すなわち、ワード(11位に番地付けされ、2nのデー
タ群をひとかたまりのセグメントとしてコピーを持たせ
る。この場合、処理装置1で発生された番地の下nビッ
トを除いた残りのビット列をポインタメモリ65を読む
ための番地として用いる点でのみポインタメモリ65の
読み出し方法が第2実施例で異なる。本実施例は、その
他では第2の実施例と同じである。読み出されたポイン
タメモリ65の内容は制御判定回路62に送られ、空で
なければポインタレジスタ63に送られる。また処理装
置で発生された番地の下nピッ1−(すなわちワード内
番地)はワード内番地レジスタ65に。
データはデータレジスタ64に格納される。パケット生
成制御回路25A(第7図)に起動ががけられる。その
後、アドレス変換装置1ff60Aは、まずポインタレ
ジスタ63の内容をレジスタ41(第7図)に続いてデ
ータレジスタ64の内容をレジスタ42(第7図)に書
き込み、さらにワード内番地レジスタ65の内容をレジ
スタ44Aに書き込んだ後、パケット生成制御回路25
Δ(第7図)に書き込みを通知する。すでに第2の実施
例で述べたようにして1回路25Aがファンアウトメモ
リ20の一つのエントリからコピ一番地を読む。この番
地はコピーデータ群からなるセグメン1〜の先頭番地で
あるため、番地加算器54によりレジスタ44Aの内容
と加算されて送信先番地に変換され、出力ポートレジス
タ26に送られる点が異なる。READパケットについ
ても同様である。
このように、第2,3実施例においては、複数台の要素
プロセッサに割り付けられた多くのタスクプログラムが
、お互いの間で制御トークンを渡しあって起動をかける
ことによりプログラムが実行されていくので、完全な分
散処理が可能であり。
要素プロセッサ台数増に伴う負荷集中が原因で制御オー
バヘッドが増大することはない。また、第1から第3の
実施例ではメモリ既念を踏襲しているので、データフロ
ーマシンと異なりプログラムが配列のようなデータ構造
を自由に扱うことができる。さらに、データの格納命令
を実行するとき。
アドレス変換装置を中心とするメモリシステム側が他プ
ロセツサへの通信をタスクの処理と並行して裏側で行う
ので、通信処理のための命令実行は不要であり、送信装
置が頻繁にビジーとなる程短いピッチで続けて格納命令
を実行するような場合を除けば、通信に伴うオーバヘッ
ドは表面に現れない。このため従来のプログラムを修正
無しで走らせることが原理的には可能となる。また、第
2゜第3の実施例ではタスクの起動管理が制御I・−ク
ンの待合せにより行われるが、制御トークンをデータの
定義・参照関係に基づき流せば、データの揃ったタスク
から処理されるデータ駆動方式となる。起動されたタス
クは必要とするデータを全て待たずに、同じ要素プロセ
ッサ中の局所メモリ中に見出すことができるので、通信
処理のための命令実行が不要であることとあいまって極
限の性能を引き出すことができるという利点がある。
また、第3実施例ではセグメン1−単位にコピーの番地
を管理するので、第2実施例に比べてポインタメモリ6
5の容量はより少なくて済むという利点がある。
〔発明の効果〕
以上述べたように、本願発明によれば、要素プロセッサ
間のデータ転送に起因する不要な時間の削減を図ること
ができる。また、本願発明によればタスク起動制御の集
中を排除できる。
【図面の簡単な説明】
第1図は、本発明による並列計算機の第1の実施例を示
す図、 第2図は、第1図の装置の処理装置(1)の概略ブロッ
ク図を示す図、 第3図は、第1図の装置で用いるセグメントテーブル(
110)の構造を示す図、 第4図は、第1図の装置の2つの要素プロセッサにおけ
る仮想空間と物理空間へのデータの割り付は例を示す図
、 第5図は、第1図の装置における番地変換および他要素
プロセッサ内仮想番地の生成処理フローの模式図。 第6A図は、第1図の′!A置に用いらる占込みパケッ
トのフォーマツ1−を示す図、 第6B図は、第1図の装置に用いられる読出しパケット
のフォーマットを示す図、 第6C図は、iI図の装置に用いられる返送パケットの
フォーマットを示す図、 第7図は、本発明による並列計算機の第2の実施例を示
す図、 第8図は、第7図の装置におけるアドレス変換装置(5
)の概略ブロック図を示す図、第9A図は、第7図の装
置におけるファンアウトメモリ(20)の内容を示す図
、 第9B図は、第7図の装置に用いる待合せ情報記憶装置
(32)の記憶内容を示す図。 第10図は、第7図の装置に用いられる制御1・−クン
パケットのフォーマットを示す図。 第11図は、第7図の装置における。異なる要素プロセ
ッサへのデータの割付けの例を示す図、第12図は、装
置における、異なるプロセッサに対するデータの割り付
は例を示す図。 第13図はFort、ranプログラムの例を示す図、
第14図は第11図のプログラムに対するタスクフロー
グラフを示す図、 第15図は、本発明による並列計算機の第3の実施例に
用いるアドレス変換装置(5)を示す図。 第16図は、上記第3の実施例に用いるパケット生成に
関する回路を示す図である。 ナZ図 升3目 才9A口 千’lB図    、32 寸IO図 +l+図 ゛・、−一一一一一・パ 才13区 DO101コ13 DO10J −1,3 A(1,J)式E(1,J)tc(J)DO20J冨1
.3 ノ<(LJ)−A(1,J)す(l) 20 (:ONTlmE Dθ3θI=1.3 DO30J−1,3 )〆(IJ)−Y(1−1,J)fX(1,J)JOC
ONT/NL/Iニ オllt口 p鉗 η 牙76図

Claims (1)

  1. 【特許請求の範囲】 1、相互に通信可能に接続された複数の要素プロセッサ
    からなる並列計算機において、各要素プロセッサは、 (a)データおよびその要素プロセッサに割付けられた
    タスクプログラムの命令列を保持するためのメモリと、 (b)該メモリに保持された命令列を実行する命令実行
    手段であって、メモリ読出し命令又はメモリ書込み命令
    に応答して、該メモリの、該命令で指定される記憶位置
    をアクセスする手段を有するものと、 (c)該命令実行手段によるメモリ書込み命令の実行に
    応答して、該命令が指定するメモリアドレスがあらかじ
    め定めたアドレスに一致するか否かを判定し、一致が検
    出されたときに、該命令により該メモリに書き込まれた
    データと同じデータと、そのデータを利用する命令を実
    行するようにあらかじめ定められている要素プロセッサ
    に送出する手段と、 を有することを特徴とする並列計算機。 2、相互に通信可能に接続された複数の要素プロセッサ
    からなる並列計算機において、各要素プロセッサは、 (a)データおよびその要素プロセッサに割付けられた
    タスクプログラムの命令列を保持するための第1のメモ
    リと、 (b)実行中のタスクプログラム内の命令列を順次実行
    するように、該第1のメモリに保持された命令列を実行
    する手段であって、実行中のタスクプログラムに含まれ
    る所定の命令に応答して、該タスクプログラムの実行後
    に実行が許される他のタスクプログラムが割付けられて
    いる要素プロセッサに向けて、制御トークン信号と該他
    のタスクプログラムを指定する信号を送出する手段を有
    するものと、 (c)その要素プロセッサに割付けられたタスクプログ
    ラムの各々に対して、それぞれが実行される前に受信さ
    れるべき制御トークンの複数を保持する第2のメモリと
    、 (d)他要素プロセッサから送出された制御トークン信
    号に応答して、その要素プロセッサに割付けられたタス
    クプログラムの内のいずれが実行可能かを、各タスクプ
    ログラムについて該第2のメモリに保持された制御トー
    クン総数と各タスクプログラムについてすでに受信され
    た制御トークンの総数から判断し、実行可能と判断され
    たタスクプログラムを該実行手段に通知する制御手段と
    、 を有することを特徴とする並列計算機。
JP62220130A 1986-09-05 1987-09-04 並列計算機 Expired - Lifetime JP2602241B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62220130A JP2602241B2 (ja) 1986-09-05 1987-09-04 並列計算機

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP20925386 1986-09-05
JP61-209253 1987-03-18
JP62-61018 1987-03-18
JP6101887 1987-03-18
JP62220130A JP2602241B2 (ja) 1986-09-05 1987-09-04 並列計算機

Publications (3)

Publication Number Publication Date
JPS641049A JPS641049A (en) 1989-01-05
JPH011049A true JPH011049A (ja) 1989-01-05
JP2602241B2 JP2602241B2 (ja) 1997-04-23

Family

ID=27297366

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62220130A Expired - Lifetime JP2602241B2 (ja) 1986-09-05 1987-09-04 並列計算機

Country Status (1)

Country Link
JP (1) JP2602241B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008296674A (ja) * 2007-05-30 2008-12-11 Honda Motor Co Ltd 車両のシートベルト装置
JP5488609B2 (ja) * 2009-03-30 2014-05-14 日本電気株式会社 リングバスによって相互接続された複数の処理要素を有する単一命令多重データ(simd)プロセッサ
JP2018195162A (ja) * 2017-05-19 2018-12-06 富士通株式会社 演算処理装置及び演算処理装置の制御方法
CN115586972B (zh) * 2022-11-25 2023-02-28 成都登临科技有限公司 命令生成方法、装置、ai芯片、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US5043873A (en) Method of parallel processing for avoiding competition control problems and data up dating problems common in shared memory systems
US5274789A (en) Multiprocessor system having distributed shared resources and dynamic and selective global data replication
Swan et al. Cm* a modular, multi-microprocessor
US5386566A (en) Inter-processor communication method for transmitting data and processor dependent information predetermined for a receiving process of another processor
US6816947B1 (en) System and method for memory arbitration
US5524212A (en) Multiprocessor system with write generate method for updating cache
US5251308A (en) Shared memory multiprocessor with data hiding and post-store
US4881163A (en) Computer system architecture employing cache data line move-out queue buffer
CN110750356B (zh) 适用于非易失性内存的多核交互方法、系统及存储介质
JPH10240707A (ja) 主記憶共有型マルチプロセッサ
JPH11282820A (ja) スイッチをベースとするマルチプロセッサシステムに使用するための順序サポート機構
JPH07210520A (ja) メモリアクセス機構
JPH0576060B2 (ja)
US6996693B2 (en) High speed memory cloning facility via a source/destination switching mechanism
US6892283B2 (en) High speed memory cloner with extended cache coherency protocols and responses
US5361342A (en) Tag control system in a hierarchical memory control system
EP0404560B1 (en) multiprocessor system and method
US6898677B2 (en) Dynamic software accessibility to a microprocessor system with a high speed memory cloner
JPH011049A (ja) 並列計算機
JP3836836B2 (ja) メモリ複製オペレーション時の不正確なキャッシュ・ライン保護機構
JP2602241B2 (ja) 並列計算機
US7406554B1 (en) Queue circuit and method for memory arbitration employing same
JPH07152640A (ja) 分散共有メモリ方式
US6928524B2 (en) Data processing system with naked cache line write operations
JPH07319839A (ja) 分散共有メモリ管理方法及びネットワーク計算機システム