JP2602241B2 - 並列計算機 - Google Patents
並列計算機Info
- Publication number
- JP2602241B2 JP2602241B2 JP62220130A JP22013087A JP2602241B2 JP 2602241 B2 JP2602241 B2 JP 2602241B2 JP 62220130 A JP62220130 A JP 62220130A JP 22013087 A JP22013087 A JP 22013087A JP 2602241 B2 JP2602241 B2 JP 2602241B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- address
- 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.)
- Expired - Lifetime
Links
Landscapes
- Multi Processors (AREA)
Description
【発明の詳細な説明】 〔従来の技術〕 並列計算機では、一般にプログラムは、複数処理単位
プログラム(タスクとも呼ばれる)に分割され、各要素
プロセッサにその一部を割付け、各要素プロセッサで、
他の要素プロセッサと並行して割り付けられた単位処理
プログラムを実行するようになっている。
プログラム(タスクとも呼ばれる)に分割され、各要素
プロセッサにその一部を割付け、各要素プロセッサで、
他の要素プロセッサと並行して割り付けられた単位処理
プログラムを実行するようになっている。
並列計算機構築上の基本問題の一つは、データの分散
と共用の仕方である。ここにデータの分散とは、物理的
に分散したメモリモジュールにデータを分散配置させる
ことであり、データの共有とは、物理的に分散した論理
的に同一のデータを複数の処理単位プログラムがアクセ
スすることである。
と共用の仕方である。ここにデータの分散とは、物理的
に分散したメモリモジュールにデータを分散配置させる
ことであり、データの共有とは、物理的に分散した論理
的に同一のデータを複数の処理単位プログラムがアクセ
スすることである。
近年の半導体技術の発展に伴い、これまで考えられな
かったような大規模な(要素プロセッサ数が数百ないし
数千台以上の)並列計算機が技術的に可能なものとして
取り上げられるようになってきている。これに伴い、要
素プロセッサが物理的にメモリを共有して、バスまたは
スイッチを経由してこれを読み書きする密結合の集中メ
モリ方式並列計算機では、大規模なバスやスイッチを経
由することによるメモリアクセス速度の低下や、バンク
コンフリクトによるアクセス競合が大きな障害になるた
め、分散型のメモリ構成を持つ並列計算機が望まれるよ
うになってきた。このような型の並列計算機の各要素プ
ロセッサにどのようにデータやプログラムを割り付けた
ら良いか、というのが第一の問題である。文献1(G.F.
Pfister,et.al.:The IBM Research Parallel Processor
Prototype(RP3)Introduction and Architecture,Pro
c.of the 1985(ICPP(1985))に記載の従来例(以下
第1の従来例と呼ぶ)では、各要素プロセッサが局所メ
モリを持ち、処理すべきデータやプログラムはここに分
散格納している。一般に、分散メモリの番地付けには局
所番地方式と広域番地方式とがある。前者は、各要素プ
ロセッサが自分の局所メモリしか読めない番地付け方式
であり、後者は任意の要素プロセッサの局所メモリを読
むことの出来る番地付け方式である。第一の従来例では
両番地方式を併用出来、共有データすなわち、複数の要
素プロセッサによりアクセスされるべきデータはこのう
ち広域番地方式でアクセスする空間(広域空間)に置
く。広域空間上のデータをアクセスするためには、広域
番地を局所メモリ中の番地に変換する必要があるが、第
一の従来例ではこのためにインタリーブ変換を用いてい
る。インタリーブ変換では、広域番地空間上で連続した
データ語は、番地コードの下位ビットの要素プロセッサ
番号とすることにより、各要素プロセッサの空間に順番
に散布的・循環的に変換される。
かったような大規模な(要素プロセッサ数が数百ないし
数千台以上の)並列計算機が技術的に可能なものとして
取り上げられるようになってきている。これに伴い、要
素プロセッサが物理的にメモリを共有して、バスまたは
スイッチを経由してこれを読み書きする密結合の集中メ
モリ方式並列計算機では、大規模なバスやスイッチを経
由することによるメモリアクセス速度の低下や、バンク
コンフリクトによるアクセス競合が大きな障害になるた
め、分散型のメモリ構成を持つ並列計算機が望まれるよ
うになってきた。このような型の並列計算機の各要素プ
ロセッサにどのようにデータやプログラムを割り付けた
ら良いか、というのが第一の問題である。文献1(G.F.
Pfister,et.al.:The IBM Research Parallel Processor
Prototype(RP3)Introduction and Architecture,Pro
c.of the 1985(ICPP(1985))に記載の従来例(以下
第1の従来例と呼ぶ)では、各要素プロセッサが局所メ
モリを持ち、処理すべきデータやプログラムはここに分
散格納している。一般に、分散メモリの番地付けには局
所番地方式と広域番地方式とがある。前者は、各要素プ
ロセッサが自分の局所メモリしか読めない番地付け方式
であり、後者は任意の要素プロセッサの局所メモリを読
むことの出来る番地付け方式である。第一の従来例では
両番地方式を併用出来、共有データすなわち、複数の要
素プロセッサによりアクセスされるべきデータはこのう
ち広域番地方式でアクセスする空間(広域空間)に置
く。広域空間上のデータをアクセスするためには、広域
番地を局所メモリ中の番地に変換する必要があるが、第
一の従来例ではこのためにインタリーブ変換を用いてい
る。インタリーブ変換では、広域番地空間上で連続した
データ語は、番地コードの下位ビットの要素プロセッサ
番号とすることにより、各要素プロセッサの空間に順番
に散布的・循環的に変換される。
広域番地空間方式では、一つの番地に対応して一つの
物理的ロケーションが定まり、データの共有は文字通り
物理的実体の共有となる。分散メモリでは一つの物理的
ロケーションに対する各要素プロセッサからの距離(ア
クセス時間)が異なるので、データの割り付けられてい
る要素プロセッサとそのデータをアクセスするプログラ
ムが割り付けられている要素プロセッサとが異なると、
処理性能が大きく低下する。これは、処理装置の近くに
一時的にデータを格納しておくためのキャッシュメモリ
を持たせることにより解説できる場合があるが、一般に
並列キャッシュは、共有データの並列読み書きの制御が
難しいという、いわゆるキャッシュコヒーレンシィの問
題があるため、採用するのは困難である。これはある要
素プロセッサがデータを書き換えたとき、別の要素プロ
セッサがそのデータをキャッシュに保持している場合に
は、そのままでは両者の値が異なってしまい、矛盾が生
じるという問題である。これを避けるためには、ある要
素プロセッサでのデータの書き換えのたびに全ての要素
プロセッサに放送して、それぞれに付随するキャッシュ
内のそのデータと同じデータを無効にするように通知し
なくてもならず、大規模な並列計算機ではこの通知およ
び無効処理は膨大な時間が必要となる。したがって第一
の従来例でも原則として共有データをキャッシュを禁止
している。ある要素プロセッサがアクセスするデータを
常にその要素プロセッサの手もとに置いていく方式とし
て、文献2(階層構造のMIMD型スーパーコンピュータ、
情報処理Vol.25,No.5,第480頁から第490頁,1984)に記
載の方法がある。この従来例(以下、第2の従来例と呼
ぶ)では、全要素プロセッサからアクセスできる集中型
共有メモリと各要素プロセッサごとに設けた局所メモリ
の両者を備え、要素プロセッサで、ある処理単位となる
プログラムの実行を始める前にそのプグラムの実行結果
を再び共有メモリに返すという方法を採っている。処理
単位プログラムとしては、一つのDoループ程度の命令列
からなるものを想定している。
物理的ロケーションが定まり、データの共有は文字通り
物理的実体の共有となる。分散メモリでは一つの物理的
ロケーションに対する各要素プロセッサからの距離(ア
クセス時間)が異なるので、データの割り付けられてい
る要素プロセッサとそのデータをアクセスするプログラ
ムが割り付けられている要素プロセッサとが異なると、
処理性能が大きく低下する。これは、処理装置の近くに
一時的にデータを格納しておくためのキャッシュメモリ
を持たせることにより解説できる場合があるが、一般に
並列キャッシュは、共有データの並列読み書きの制御が
難しいという、いわゆるキャッシュコヒーレンシィの問
題があるため、採用するのは困難である。これはある要
素プロセッサがデータを書き換えたとき、別の要素プロ
セッサがそのデータをキャッシュに保持している場合に
は、そのままでは両者の値が異なってしまい、矛盾が生
じるという問題である。これを避けるためには、ある要
素プロセッサでのデータの書き換えのたびに全ての要素
プロセッサに放送して、それぞれに付随するキャッシュ
内のそのデータと同じデータを無効にするように通知し
なくてもならず、大規模な並列計算機ではこの通知およ
び無効処理は膨大な時間が必要となる。したがって第一
の従来例でも原則として共有データをキャッシュを禁止
している。ある要素プロセッサがアクセスするデータを
常にその要素プロセッサの手もとに置いていく方式とし
て、文献2(階層構造のMIMD型スーパーコンピュータ、
情報処理Vol.25,No.5,第480頁から第490頁,1984)に記
載の方法がある。この従来例(以下、第2の従来例と呼
ぶ)では、全要素プロセッサからアクセスできる集中型
共有メモリと各要素プロセッサごとに設けた局所メモリ
の両者を備え、要素プロセッサで、ある処理単位となる
プログラムの実行を始める前にそのプグラムの実行結果
を再び共有メモリに返すという方法を採っている。処理
単位プログラムとしては、一つのDoループ程度の命令列
からなるものを想定している。
第一の従来例には次の問題点がある。
(1)データの分割と写像(すなわち、分割されたデー
タの各部分をいずれかの要素プロセッサに割付けるこ
と)が機械的に行われ、並列処理の論理を必ずしも反映
していない。このためある要素プロセッサに割り付けら
れた処理単位プログラムが必要とするデータが、他の要
素プロセッサに割り付けられていることがしばしば生じ
る。
タの各部分をいずれかの要素プロセッサに割付けるこ
と)が機械的に行われ、並列処理の論理を必ずしも反映
していない。このためある要素プロセッサに割り付けら
れた処理単位プログラムが必要とするデータが、他の要
素プロセッサに割り付けられていることがしばしば生じ
る。
このため、上記のような場合にはネットワークを経由
して他の要素プロセッサのメモリを読まなくてはなら
ず、無視できない遅れが生ずる。
して他の要素プロセッサのメモリを読まなくてはなら
ず、無視できない遅れが生ずる。
(2)番地空間が不間する。全要素プロセッサが一つの
番地空間を共有するとすれば、要素プロセッサの総数が
増加すると実空間が仮想空間を超えてしまうこともあり
うる。例えば、一台当り4MBの実メモリを持つ要素プロ
セッサ512台からなるシステムではこれだけで2GBの容量
となり、現在の代表的な汎用大型機で採用されている31
ビット番地方式で指定できる空間そのものとなる。した
がって、番地方式を変えないかぎりこれ以上の台数増加
は見込めない。このため第一の従来例でも局所空間と併
用することを考えているが、できるだけ局所空間を多く
採りながら、なお且つデータを共用できる方式は開示さ
れていない。
番地空間を共有するとすれば、要素プロセッサの総数が
増加すると実空間が仮想空間を超えてしまうこともあり
うる。例えば、一台当り4MBの実メモリを持つ要素プロ
セッサ512台からなるシステムではこれだけで2GBの容量
となり、現在の代表的な汎用大型機で採用されている31
ビット番地方式で指定できる空間そのものとなる。した
がって、番地方式を変えないかぎりこれ以上の台数増加
は見込めない。このため第一の従来例でも局所空間と併
用することを考えているが、できるだけ局所空間を多く
採りながら、なお且つデータを共用できる方式は開示さ
れていない。
第二の従来例には次の4つの問題点がある。
(1)共有メモリと各局所メモリ間のデータ転送に時間
がかかる。
がかかる。
(2)異なる要素プロセッサで互いに平行に実行されて
いる複数の処理単位プログラム間で共有するデータは、
共有メモリに配置せざるをえない。もしくは、特別の同
期機構が必要である。
いる複数の処理単位プログラム間で共有するデータは、
共有メモリに配置せざるをえない。もしくは、特別の同
期機構が必要である。
(3)第一の従来例と同じく、番地空間が不足する。
(4)各要素プロセッサにおける処理単位プログラムの
実行順序を一台の制御プロセッサで制御しているので、
その制御のための負荷がその制御プロセッサに集中して
性能が低下する恐れがある。
実行順序を一台の制御プロセッサで制御しているので、
その制御のための負荷がその制御プロセッサに集中して
性能が低下する恐れがある。
本発明の第1の目的は、各要素プロセッサに割りつけ
られた処理単位プログラムが必要とするデータを出来る
だけ多く各要素プロセッサに設けられた局部メモリに保
持することができ、しかもそのデータを他の要素プロセ
ッサが利用するにあたり、生じるデータ転送時間を軽減
した並列計算機を提供することにある。
られた処理単位プログラムが必要とするデータを出来る
だけ多く各要素プロセッサに設けられた局部メモリに保
持することができ、しかもそのデータを他の要素プロセ
ッサが利用するにあたり、生じるデータ転送時間を軽減
した並列計算機を提供することにある。
本発明の第2の目的は、各要素プロセッサにおける次
に実行すべきタスクの選択,起動のための制御を一つの
制御プロセッサに集中させないで実行させうる並列計算
機を提供することにある。
に実行すべきタスクの選択,起動のための制御を一つの
制御プロセッサに集中させないで実行させうる並列計算
機を提供することにある。
第1の目的達成のために、本発明では、メモリアクセ
ス時には各要素プロセッサごとに定めた局所番地空間に
属する番地を指定するように構成されたプログラムを実
行する処理装置と、この処理装置でメモリ書込み命令が
実行されたときに、この命令が指定するメモリ番地があ
らかじめ定めた番地と一致するか否かを検出し、一致が
検出されたときに、その定めた番地に対応してあらかじ
め定めた、他の要素プロセッサの局所番地空間に属する
番地と上記書込み命令により書込まれたデータをその、
他要素プロセッサに送出し、そのデータをコピーデータ
として書込むことを指示する手段とを設けた。
ス時には各要素プロセッサごとに定めた局所番地空間に
属する番地を指定するように構成されたプログラムを実
行する処理装置と、この処理装置でメモリ書込み命令が
実行されたときに、この命令が指定するメモリ番地があ
らかじめ定めた番地と一致するか否かを検出し、一致が
検出されたときに、その定めた番地に対応してあらかじ
め定めた、他の要素プロセッサの局所番地空間に属する
番地と上記書込み命令により書込まれたデータをその、
他要素プロセッサに送出し、そのデータをコピーデータ
として書込むことを指示する手段とを設けた。
また、第2の目的達成のために、各要素プロセッサ
に、その要素プロセッサで次に実行すべきタスクを判別
するタスク起動制御手段を設けた。
に、その要素プロセッサで次に実行すべきタスクを判別
するタスク起動制御手段を設けた。
各要素プロセッサで実行されるプログラムが必要とす
るデータの内、他要素プロセッサでの、他のプログラム
の実行により生成されるデータ以外のデータは、その要
素プロセッサ内で生成され、かつ利用されうるので、各
要素プロセッサでは、他要素プロセッサに対してデータ
を送ったり、そこからデータを読み出したりする回数は
少なくてすむ。また、他要素プロセッサで生成されたデ
ータも、そのデータを必要とする要素プロセッサにデー
タ生成時に送出され、コピーデータとして保持されるの
で、その要素プロセッサがそのデータを使用する命令を
実行する段階では、そのデータはその要素プロセッサ内
のメモリから読出しうるので、結局、この種データを含
めて、その要素プロセッサが必要とするデータを自己の
メモリから読み出しうることになる。
るデータの内、他要素プロセッサでの、他のプログラム
の実行により生成されるデータ以外のデータは、その要
素プロセッサ内で生成され、かつ利用されうるので、各
要素プロセッサでは、他要素プロセッサに対してデータ
を送ったり、そこからデータを読み出したりする回数は
少なくてすむ。また、他要素プロセッサで生成されたデ
ータも、そのデータを必要とする要素プロセッサにデー
タ生成時に送出され、コピーデータとして保持されるの
で、その要素プロセッサがそのデータを使用する命令を
実行する段階では、そのデータはその要素プロセッサ内
のメモリから読出しうるので、結局、この種データを含
めて、その要素プロセッサが必要とするデータを自己の
メモリから読み出しうることになる。
また、各要素プロセッサごとに設けたタスク起動制御
手段を設けたので、並列計算機が実行するタスクプログ
ラムのの起動制御を分散的に実施できる。
手段を設けたので、並列計算機が実行するタスクプログ
ラムのの起動制御を分散的に実施できる。
以下、本発明の一実施例を図面により詳細に説明す
る。
る。
第1図は本発明によるデータ分散管理装置の一実施例
を示す。
を示す。
一台の要素プロセッサ100はプログラムを実行する処
理装置1、データを格納しておく局所メモリ2、命令で
指定された仮想アドレスを実アドレスに変換するための
セグメント実番地モメリ11、加算機15、他の要素プロセ
ッサの番地およびその中の局所メモリ2のアドレスを保
持するファンアウトメモリ20、加算器21、ファンアウト
制御回路25、他の要素プロセッサとの通信を担当する送
信装置5と受信装置6、受信パケット処理制御回路30、
入力ポートレジスタ28、出力ポートレジスタ26、返信パ
ケット用出力ポートレジスト31、制御バス8、番地バス
9、データバス10等からなり、この要素プロセッサ多数
が相互結合ネットワーク7に接続されている。処理装置
1は第2図に示すごとく、状態レジスタ50、番地レジス
タ51、データレジスタ52、プログラムカウンタ57を含む
制御部53、汎用レジスタ群、制御レジスタ、浮動小数点
レジスタ群からなるレジスタ群54、内部バス55、算術論
理演算および浮動小数点演算を行う演算器56から構成さ
れる制御部53は、局所メモリ2(第1図)中の命令を順
次フェッチし、フェッチした命令の実行制御動作を有す
るもので、公知の汎用の計算機の処理装置と本質的には
同じである。また、第1図において、ファンアウト制御
回路25と受信パケット処理制御回路30は、マイクロプロ
グラムを内蔵し、種々の入力に応答して、後に述べる所
定の制御信号を所定のシーケンスで出力するように構成
されている。
理装置1、データを格納しておく局所メモリ2、命令で
指定された仮想アドレスを実アドレスに変換するための
セグメント実番地モメリ11、加算機15、他の要素プロセ
ッサの番地およびその中の局所メモリ2のアドレスを保
持するファンアウトメモリ20、加算器21、ファンアウト
制御回路25、他の要素プロセッサとの通信を担当する送
信装置5と受信装置6、受信パケット処理制御回路30、
入力ポートレジスタ28、出力ポートレジスタ26、返信パ
ケット用出力ポートレジスト31、制御バス8、番地バス
9、データバス10等からなり、この要素プロセッサ多数
が相互結合ネットワーク7に接続されている。処理装置
1は第2図に示すごとく、状態レジスタ50、番地レジス
タ51、データレジスタ52、プログラムカウンタ57を含む
制御部53、汎用レジスタ群、制御レジスタ、浮動小数点
レジスタ群からなるレジスタ群54、内部バス55、算術論
理演算および浮動小数点演算を行う演算器56から構成さ
れる制御部53は、局所メモリ2(第1図)中の命令を順
次フェッチし、フェッチした命令の実行制御動作を有す
るもので、公知の汎用の計算機の処理装置と本質的には
同じである。また、第1図において、ファンアウト制御
回路25と受信パケット処理制御回路30は、マイクロプロ
グラムを内蔵し、種々の入力に応答して、後に述べる所
定の制御信号を所定のシーケンスで出力するように構成
されている。
本実施例では、処理装置1で実行される。局所メモリ
2をアクセスする命令は局所メモリ2に対する物理番地
にかえて仮想番地を指定する。番地の指定自体は公知の
方法による。例えば局所メモリ2からデータをよみ出
し、いずれかのレジスタたとえば汎用レジスタの一つに
ロードする命令又はそのレジスタの内容を局所メモリ2
に、ストアする命令は、その汎用レジスタ以外にベース
レジスタ,インデックスレジスタとして用いる二つの汎
用レジスタの番号および偏位を指定するようになってい
る。このとき、局部メモリ2をアクセスするための仮想
番地はベースレジスタとインデックスレジスタのそれぞ
れの内容および上記偏位の和から求められる。このよう
な番地加算は制御部53で実行され、番地レジスタ51にセ
ットされる。また、他の形式の命令、例えば汎用レジス
タの一つの内容をそのまま仮想番地として指定する命令
も使用できる。本実施例では、要素プロセッサごとに、
一定サイズの仮想番地空間を対応させ、各要素プロセッ
サで実行されるメモリアクセス命令は、この空間に属す
る仮想番地を指定するようになっている。
2をアクセスする命令は局所メモリ2に対する物理番地
にかえて仮想番地を指定する。番地の指定自体は公知の
方法による。例えば局所メモリ2からデータをよみ出
し、いずれかのレジスタたとえば汎用レジスタの一つに
ロードする命令又はそのレジスタの内容を局所メモリ2
に、ストアする命令は、その汎用レジスタ以外にベース
レジスタ,インデックスレジスタとして用いる二つの汎
用レジスタの番号および偏位を指定するようになってい
る。このとき、局部メモリ2をアクセスするための仮想
番地はベースレジスタとインデックスレジスタのそれぞ
れの内容および上記偏位の和から求められる。このよう
な番地加算は制御部53で実行され、番地レジスタ51にセ
ットされる。また、他の形式の命令、例えば汎用レジス
タの一つの内容をそのまま仮想番地として指定する命令
も使用できる。本実施例では、要素プロセッサごとに、
一定サイズの仮想番地空間を対応させ、各要素プロセッ
サで実行されるメモリアクセス命令は、この空間に属す
る仮想番地を指定するようになっている。
各要素プロセッサ100で発生された仮想番地は局所メ
モリ2に設けられたセグメントテーブル110の内容を用
いて物理番地に変換される。
モリ2に設けられたセグメントテーブル110の内容を用
いて物理番地に変換される。
セグメントテーブル110は、第3図に示すように、そ
の要素プロセッサの仮想番地空間の各セグメントに対し
て、そのセグメントの番号SNを保持するフィールド110
−1、無効ビットフィールド11−02、そのセグメントに
対する局所メモリ2中のセグメント物理番地を保持する
フィールド110−3とファンアウトメモリ番地又は0を
保持するフィールド110−4を有する。
の要素プロセッサの仮想番地空間の各セグメントに対し
て、そのセグメントの番号SNを保持するフィールド110
−1、無効ビットフィールド11−02、そのセグメントに
対する局所メモリ2中のセグメント物理番地を保持する
フィールド110−3とファンアウトメモリ番地又は0を
保持するフィールド110−4を有する。
また、ファンアウトメモリ20には、局素メモリリ2に
書き込まれたデータを転送すべき他の要素プロセッサの
番号およびその要素プロセッサにおける、そのデータに
割り付けられたセグメントの先頭仮想番地(以下、セグ
メント仮想番地と呼ぶ)が保持され、このファンアウト
メモリ20の内容を用いて他の要素プロセッサへそのデー
タの書込みを指示するようになっている。
書き込まれたデータを転送すべき他の要素プロセッサの
番号およびその要素プロセッサにおける、そのデータに
割り付けられたセグメントの先頭仮想番地(以下、セグ
メント仮想番地と呼ぶ)が保持され、このファンアウト
メモリ20の内容を用いて他の要素プロセッサへそのデー
タの書込みを指示するようになっている。
各要素プロセッサへのデータおよびプログラムの割り
付けおよび、そのデータに対する仮想番地,物理番地お
よびセグメントテーブル110、ファンアウトメモリ20の
内容はあらかじめ以下のように決定されている。
付けおよび、そのデータに対する仮想番地,物理番地お
よびセグメントテーブル110、ファンアウトメモリ20の
内容はあらかじめ以下のように決定されている。
(1)配列データ、例えばA(I,J),(I=1〜N=,
J=1〜M)は一部のインデックスが同一である要素か
らなる部分配列、たとえばA(I,*),A(2,*)……
(但し*はJ=1〜Mを示す)をそれぞれあらかじめ決
められた順に異なる要素プロセッサに割り付ける。この
際、同一の部分配列の異なる要素は同一のセグメントに
割り付ける。配列データ以外のデータは分散する必要は
ないので、あらかじめ定めた要素プロセッサに割り付け
る。一方、(2)プログラムは並列処理の効果が充分出
るような数の単位処理プログラム(以下、タスクと呼
ぶ)に分割しておき、(3)上記(1)のようにして要
素プロセッサに割り付けられた部分配列データ又は配列
データ以外のデータを定義する(つまりそのデータの地
を決定する)タスクをそのデータと同一の要素プロセッ
サの仮想アドレス空間(以下単に局所空間と呼ぶ)に割
り付ける。ただし、間接指標でアドレスされた配列デー
タ、例えばK(L(I)J)については、あるタスク
が、その要素の一つを参照するが、どの要素をアクセス
するかがそのタスクの実行時に判明する場合、その配列
データのすべての要素を、そのタスクが割り付けられて
いる要素プロセッサの仮想番地空間に割りつける。
J=1〜M)は一部のインデックスが同一である要素か
らなる部分配列、たとえばA(I,*),A(2,*)……
(但し*はJ=1〜Mを示す)をそれぞれあらかじめ決
められた順に異なる要素プロセッサに割り付ける。この
際、同一の部分配列の異なる要素は同一のセグメントに
割り付ける。配列データ以外のデータは分散する必要は
ないので、あらかじめ定めた要素プロセッサに割り付け
る。一方、(2)プログラムは並列処理の効果が充分出
るような数の単位処理プログラム(以下、タスクと呼
ぶ)に分割しておき、(3)上記(1)のようにして要
素プロセッサに割り付けられた部分配列データ又は配列
データ以外のデータを定義する(つまりそのデータの地
を決定する)タスクをそのデータと同一の要素プロセッ
サの仮想アドレス空間(以下単に局所空間と呼ぶ)に割
り付ける。ただし、間接指標でアドレスされた配列デー
タ、例えばK(L(I)J)については、あるタスク
が、その要素の一つを参照するが、どの要素をアクセス
するかがそのタスクの実行時に判明する場合、その配列
データのすべての要素を、そのタスクが割り付けられて
いる要素プロセッサの仮想番地空間に割りつける。
(4)次に、他の要素プロセッサAに割り付けられたデ
ータを、ある要素プロセッサのタスクが参照する(つま
り、その値を使用する)ことがプログラムから明確な場
合、そのデータと同一値となるべきデータ(以下、コピ
ーデータと呼ぶ)をその要素プロセッサの局所空間に割
り付ける。
ータを、ある要素プロセッサのタスクが参照する(つま
り、その値を使用する)ことがプログラムから明確な場
合、そのデータと同一値となるべきデータ(以下、コピ
ーデータと呼ぶ)をその要素プロセッサの局所空間に割
り付ける。
(5)(1)〜(4)のようにして、要素プロセッサに
割り付けられたデータの内、各配列データに対するセグ
メントの先頭仮想番地(以下、単にセグメント仮想番地
と呼ぶ)を、各要素プロセッサの局所メモリ2中にある
配列記述子群120の一つに格納する。(6)は各要素プ
ロセッサの仮想空間の各番地の内、データ又はプログラ
ム命令が割り付けられた番地に対する局所メモリ2内の
物理番地決定する。この際、仮想空間上の同一セグメン
ト内の連続する仮想番地には連続する物理番地を対応さ
せる。また前述のように、間接指標でアクセスされる配
列データの場合、そのすべてのデータをその配列(の一
部)をアクセスするタスクが割り付けられている要素プ
ロセッサの物理番地に割り付ける必要はない。たとえ
ば、異なる要素プロセッサの物理番地にその配列の部分
配列データを一つずつ割りあてておく方法を採る。この
場合、その一つの部分配列が割り付けられた要素プロセ
ッサでは、その部分配列だけでなく、すべての他の部分
配列をも、それぞれセグメントとして自己の仮想番地空
間に割り付けておく必要がある。
割り付けられたデータの内、各配列データに対するセグ
メントの先頭仮想番地(以下、単にセグメント仮想番地
と呼ぶ)を、各要素プロセッサの局所メモリ2中にある
配列記述子群120の一つに格納する。(6)は各要素プ
ロセッサの仮想空間の各番地の内、データ又はプログラ
ム命令が割り付けられた番地に対する局所メモリ2内の
物理番地決定する。この際、仮想空間上の同一セグメン
ト内の連続する仮想番地には連続する物理番地を対応さ
せる。また前述のように、間接指標でアクセスされる配
列データの場合、そのすべてのデータをその配列(の一
部)をアクセスするタスクが割り付けられている要素プ
ロセッサの物理番地に割り付ける必要はない。たとえ
ば、異なる要素プロセッサの物理番地にその配列の部分
配列データを一つずつ割りあてておく方法を採る。この
場合、その一つの部分配列が割り付けられた要素プロセ
ッサでは、その部分配列だけでなく、すべての他の部分
配列をも、それぞれセグメントとして自己の仮想番地空
間に割り付けておく必要がある。
(7)次にセグメントテーブル110とファンアウトメモ
リ20のデーを作成する。(6)で述べた方法で物理番地
の割り付けをきめると、仮想番地空間の各セグメントの
先頭番地にどの物理番地が対応するかが確定する。この
物理番地を、そのゼクメントの物理番地と呼び、セグメ
ントテーブルのフィールド110−3に格納しておく。こ
のとき、このセグメントに対する無効ビットフィールド
110−2には0をセットしておく。
リ20のデーを作成する。(6)で述べた方法で物理番地
の割り付けをきめると、仮想番地空間の各セグメントの
先頭番地にどの物理番地が対応するかが確定する。この
物理番地を、そのゼクメントの物理番地と呼び、セグメ
ントテーブルのフィールド110−3に格納しておく。こ
のとき、このセグメントに対する無効ビットフィールド
110−2には0をセットしておく。
一方、先に間接指標でアドレスされる配列データにつ
いて説明したごとく、ある要素プロセッサにおいて、そ
の全要素が仮想番地空間に割り付けられているが、物理
番地がその一部の部分配列にしか割り付けられていない
ときには、物理番地が割り付けられている。一つの部分
配列が割り付けられたセグメントについては上に述べた
のと同じようにセグメントテーブルの一つのエントリを
作成しておくが、物理番地が割り付けられていない要素
が割り付けられたセグメントについては、対応する物理
番地がないことを示すため、そのセグメントに対する、
セグメントテーブル110内の無効ビットフィールド110−
2に1をセットしておく。さらに、それにつづくフィー
ルド11−4にはファンアウトメモリ20の一つのエントリ
の番地を格納しておく。このファンアウトメモリ20のこ
のエントリにはその要素に対して物理番地が割り付けら
れている要素プロセッサの番号PENOと、その要素プロセ
ッサにおけるその部分配列に対するセグメントの仮想番
地SVを格納しておく。
いて説明したごとく、ある要素プロセッサにおいて、そ
の全要素が仮想番地空間に割り付けられているが、物理
番地がその一部の部分配列にしか割り付けられていない
ときには、物理番地が割り付けられている。一つの部分
配列が割り付けられたセグメントについては上に述べた
のと同じようにセグメントテーブルの一つのエントリを
作成しておくが、物理番地が割り付けられていない要素
が割り付けられたセグメントについては、対応する物理
番地がないことを示すため、そのセグメントに対する、
セグメントテーブル110内の無効ビットフィールド110−
2に1をセットしておく。さらに、それにつづくフィー
ルド11−4にはファンアウトメモリ20の一つのエントリ
の番地を格納しておく。このファンアウトメモリ20のこ
のエントリにはその要素に対して物理番地が割り付けら
れている要素プロセッサの番号PENOと、その要素プロセ
ッサにおけるその部分配列に対するセグメントの仮想番
地SVを格納しておく。
さらに、ある要素プロセッサ(たとえばA)に割り付
けられたデータ(オリジナルデータ)のコピーデータが
他の要素プロセッサ(たとえばB)割り付けられている
場合、その他の要素プロセッサ(B)の番号PENOとその
コピーデータに割り付けられたセグメントの仮想番地SV
を、その要素プロセッサ(A)のファンアウトメモリ20
の一つのエントリに格納しておき、そのエントリの番地
FOMAを、そのオリジナルデータが割り付けられたセグメ
ントに対するセグメントテーブルエントリのファンアウ
トメモリ番地フィールド11−4に格納しておく。
けられたデータ(オリジナルデータ)のコピーデータが
他の要素プロセッサ(たとえばB)割り付けられている
場合、その他の要素プロセッサ(B)の番号PENOとその
コピーデータに割り付けられたセグメントの仮想番地SV
を、その要素プロセッサ(A)のファンアウトメモリ20
の一つのエントリに格納しておき、そのエントリの番地
FOMAを、そのオリジナルデータが割り付けられたセグメ
ントに対するセグメントテーブルエントリのファンアウ
トメモリ番地フィールド11−4に格納しておく。
もし、そのコピーデータが複数の要素プロセッサに割
り付けられているとき、ファンアウトメモリ20の別のエ
ントリに残りの要素プロセッサについて同様の情報を保
持しておき、先のエントリのポインタフィールドに、こ
の後者のエントリの番地9を格納しておく。こうして、
同一データのコピー先情報がファンアウトメモリ20内に
リスト形式で格納しておく。
り付けられているとき、ファンアウトメモリ20の別のエ
ントリに残りの要素プロセッサについて同様の情報を保
持しておき、先のエントリのポインタフィールドに、こ
の後者のエントリの番地9を格納しておく。こうして、
同一データのコピー先情報がファンアウトメモリ20内に
リスト形式で格納しておく。
第4図に仮想空間上に割り付けられたセグメントの物
理空間への写像例を示す。この例では、二つの配列A
(I,J)とB(I,J,K)が、第一インデクスIに関して部
分配列に分割され、各要素プロセッサの仮想空間上に割
り付けられるものと仮定している。図では、200Aと200B
は要素プロセッサ1と2仮想番地空間を例示している。
また300A,300Bはそれぞれの要素プロセッサの物理番地
空間を示す。ここに、A(1,*)(*はJ=1〜Nを示
す)は要素プロセッサ1で定義され、要素プロセッサ2
でも参照されるという共有関係が存在しているものとし
て、両仮想空間上に重複して割り付けられている。ここ
ではA(1,*)は、要素プロセッサ1において分離番地
空間のa番地から始まる領域に写像され、その個々の要
素データは第2インデクスJから定まるオフセットをa
番地に加算して得られる番地に格納される。一方、要素
プロセッサ1の仮想番地空間上の別のセグメントB(1,
*,*)は、物理番地空間上のb番地から始まる領域に
写像されるが、b番地はa番地から始まるA(1,*)の
格納領域に連続した領域の先頭番地である。このよう
に、仮想番地空間上ではとびとびに存在するデータ領域
も、物理番地空間上では隙間なく連続して配置される。
理空間への写像例を示す。この例では、二つの配列A
(I,J)とB(I,J,K)が、第一インデクスIに関して部
分配列に分割され、各要素プロセッサの仮想空間上に割
り付けられるものと仮定している。図では、200Aと200B
は要素プロセッサ1と2仮想番地空間を例示している。
また300A,300Bはそれぞれの要素プロセッサの物理番地
空間を示す。ここに、A(1,*)(*はJ=1〜Nを示
す)は要素プロセッサ1で定義され、要素プロセッサ2
でも参照されるという共有関係が存在しているものとし
て、両仮想空間上に重複して割り付けられている。ここ
では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)をアクセスするタスクが
各要素プロセッサに割り付けられている場合である。
データK(I,J)の全部分配列K(1,*),K(2,*)…
…が割り付けられているが、対応する物理番地空間300A
には、一つの部分配列K(1,*)のみ割り付けられてい
る。同様に、要素プロセッサ2の物理空間300Bには、部
分配列K(2,*)が割り付けられ、仮想番地空間には全
ての部分配列が割り付けられている。これは、間接指標
で配列データK(L(I)J)をアクセスするタスクが
各要素プロセッサに割り付けられている場合である。
第1図において、セグメント物理番地メモリ11は、局
所メモリ2中のセグメントテーブル110のエントリの
内、その要素プロセッサが常時参照するセグメントに関
するエントリを保持するためのものである。このメモリ
11は、いわゆる連想メモリ(Content Addressable Memo
ry)で構成する。このメモリ11はセグメントテーブル11
0と同じく4つのフィールド11−1,11−2,11−3,11−4
から構成される。セグメントテーブル110を用いた番地
変換は、実際にはこのメモリ11を用いることにより高速
で実行される。
所メモリ2中のセグメントテーブル110のエントリの
内、その要素プロセッサが常時参照するセグメントに関
するエントリを保持するためのものである。このメモリ
11は、いわゆる連想メモリ(Content Addressable Memo
ry)で構成する。このメモリ11はセグメントテーブル11
0と同じく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をアクセスする。な
お、前述したように、各要素プロセッサの局所メモリ2
には、その要素プロセッサに割り付けられたタスクが定
義するデータのみではなく、他の要素プロセッサが定義
したデータのコピーデータが割り付けられていることが
ある。このデータについても全く同じようにアクセスで
きる。このようにして、各要素プロセッサに割り付けら
れたタスクが必要とする任意の配列要素をその要素プロ
セッサのメモリ2に書いたり、そこから読んだりするこ
とができる。ただし、間接指標で表現された配列のよう
に実行時にアクセスすべき要素番号が確定するデータを
アクセスする場合には、後述する方法により場合によっ
ては他の要素プロセッサに対してアクセスする。
られた部分配列、例えばA(I,*)の一要素A(I,J)
をアクセスするとき、その物理装置1は配列記述子120
から、その部分配列データが属するセグメントの仮想番
地を読出す命令を実行する。さらに、そのセグメントの
仮想番地と読出すべき要素A(I,J)の添字Jから定ま
るオフセットを加算して、その要素の仮想アドレスVAに
求め、これでもってメモリアクセスすべきことを指示す
る命令を実行する。この仮想番地VAの上位ビット部分
は、セグメント番号SNとしてセグメント物理番地メモリ
11に送られ、そこによりセグメント物理番地SPに変換さ
れる。加算器15によりこの物理番地SPと、仮想番地VAの
下位ビット部分(オフセットと呼ぶ)Wを加算して、物
理番地RAを生成し、局所メモリ2をアクセスする。な
お、前述したように、各要素プロセッサの局所メモリ2
には、その要素プロセッサに割り付けられたタスクが定
義するデータのみではなく、他の要素プロセッサが定義
したデータのコピーデータが割り付けられていることが
ある。このデータについても全く同じようにアクセスで
きる。このようにして、各要素プロセッサに割り付けら
れたタスクが必要とする任意の配列要素をその要素プロ
セッサのメモリ2に書いたり、そこから読んだりするこ
とができる。ただし、間接指標で表現された配列のよう
に実行時にアクセスすべき要素番号が確定するデータを
アクセスする場合には、後述する方法により場合によっ
ては他の要素プロセッサに対してアクセスする。
(2)上記メモリアクセス命令が局所メモリ2へのデー
タ書込み命令のときは、セグメント物理番地メモリ11の
対応するエントリをチェックして、書込むべきデータを
他の要素プロセッサへコピーすべきか否かを判定し、コ
ピーすべきときはメモリ11中のそのエントリのファンア
ウトメモリ番地FOMAをもちいてファンアウトメモリ20か
ら、そこに書かれている要素プロセッサ番号PENOとセグ
メント仮想番地を読み出し、このセグメント仮想番地SV
と、命令で指定された仮想番地VAのオフセット部分Wの
和を加算器21で求め、これを、コピーデータに対する仮
想番地として、上記要素プロセッサ番号PENOの要素プロ
セッサへ書込まれたデータとともに送る。コピー先の要
素プロセッサ番号が複数個、ファンアウトメモリ20に格
納されているときには、それぞれの番号の要素プロセッ
サに対して同じコピー動作をする。すなわち、本方式に
よりストアスルーでデータのコピーを持つ分散メモリを
更新することができる。
タ書込み命令のときは、セグメント物理番地メモリ11の
対応するエントリをチェックして、書込むべきデータを
他の要素プロセッサへコピーすべきか否かを判定し、コ
ピーすべきときはメモリ11中のそのエントリのファンア
ウトメモリ番地FOMAをもちいてファンアウトメモリ20か
ら、そこに書かれている要素プロセッサ番号PENOとセグ
メント仮想番地を読み出し、このセグメント仮想番地SV
と、命令で指定された仮想番地VAのオフセット部分Wの
和を加算器21で求め、これを、コピーデータに対する仮
想番地として、上記要素プロセッサ番号PENOの要素プロ
セッサへ書込まれたデータとともに送る。コピー先の要
素プロセッサ番号が複数個、ファンアウトメモリ20に格
納されているときには、それぞれの番号の要素プロセッ
サに対して同じコピー動作をする。すなわち、本方式に
よりストアスルーでデータのコピーを持つ分散メモリを
更新することができる。
(3)上記メモリアクセス命令がデータをフェッチ命令
の場合は、番地変換を行ない局所メモリ2をアクセスす
る点は同じであるが、上述のコピー動作はしない。
の場合は、番地変換を行ない局所メモリ2をアクセスす
る点は同じであるが、上述のコピー動作はしない。
(4)上記メモリアクセス命令で指定された仮想番地に
対応する物理番地がその要素プロセッサに割り付けられ
ていないとき、すなわち間接指標でアドレスされる場
合、またはメモリ量を節約するために他要素プロセッサ
が定義するデータをコピーしない場合のように、仮想空
間上には、そのデータが割り付けられていても自メモリ
にそのデータが割り付けられていないにもかかわらず、
そのデータをアクセスする命令が実行されたとき、その
データに対するセグメント実番地メモリ11中のエントリ
の第2フィールド11−2の無効ビットINVは1であり、
そのデータが局所メモリ2に割り付けられていないこと
が分かる。このとき、このフィールドにつづくフィール
ド11−3内のファンアウトメモリ番地を用いてこのメモ
リ20をアクセスし、そのデータが割り付けられている他
の要素プロセッサのプロセッサ番号PENOとそのデータに
対するセグメントの仮想番地SVを読み出し、上記命令で
指定された仮想番地SVのオフセット部分Wと、このセグ
メント仮想番地SVの和を加算器21で求め、その加算結果
を、アクセスすべきデータの仮想番地VAとして、上記番
号PENOの要素プロセッサへ送り、その要素プロセッサに
対しデータを書込み、またはフェッチを要求する。
対応する物理番地がその要素プロセッサに割り付けられ
ていないとき、すなわち間接指標でアドレスされる場
合、またはメモリ量を節約するために他要素プロセッサ
が定義するデータをコピーしない場合のように、仮想空
間上には、そのデータが割り付けられていても自メモリ
にそのデータが割り付けられていないにもかかわらず、
そのデータをアクセスする命令が実行されたとき、その
データに対するセグメント実番地メモリ11中のエントリ
の第2フィールド11−2の無効ビットINVは1であり、
そのデータが局所メモリ2に割り付けられていないこと
が分かる。このとき、このフィールドにつづくフィール
ド11−3内のファンアウトメモリ番地を用いてこのメモ
リ20をアクセスし、そのデータが割り付けられている他
の要素プロセッサのプロセッサ番号PENOとそのデータに
対するセグメントの仮想番地SVを読み出し、上記命令で
指定された仮想番地SVのオフセット部分Wと、このセグ
メント仮想番地SVの和を加算器21で求め、その加算結果
を、アクセスすべきデータの仮想番地VAとして、上記番
号PENOの要素プロセッサへ送り、その要素プロセッサに
対しデータを書込み、またはフェッチを要求する。
以上における仮想番地から物理番地への番地変換ある
いは他要素プロセッサ内仮想番地の生成処理は、第5図
に模式的に示されている。
いは他要素プロセッサ内仮想番地の生成処理は、第5図
に模式的に示されている。
次に第1図の装置の動作をより詳細に述べる。
(1)まず、処理装置1がデータ書込み命令を実行した
場合について説明する。いま、第1図において、ある要
素プロセッサのタスクが配列の1要素A(I,J)の値を
局所メモリ2へ書込む場合を考える。
場合について説明する。いま、第1図において、ある要
素プロセッサのタスクが配列の1要素A(I,J)の値を
局所メモリ2へ書込む場合を考える。
処理装置は、データ書込み命令の実行の前に局所メ
モリ2中の記述子100から、その要素を含む部分配列デ
ータA(I,*)(*はJ=1〜N)に対するセグメント
の仮想番地を求め命令を実行する。さらにデータ書込み
命令を実行してこれにインデクスJで示されるオフセッ
トを加えて、その要素仮想番地VAを番地バス9上に出力
する。
モリ2中の記述子100から、その要素を含む部分配列デ
ータA(I,*)(*はJ=1〜N)に対するセグメント
の仮想番地を求め命令を実行する。さらにデータ書込み
命令を実行してこれにインデクスJで示されるオフセッ
トを加えて、その要素仮想番地VAを番地バス9上に出力
する。
また、書込むべきテータA(I,J)をデータバス10に
出力し、書込み指示信号を制御バス8に出力する。
出力し、書込み指示信号を制御バス8に出力する。
仮想番地VAの上位ビット部分は、その番地が属する
セグメントの番号SNを表し、下位ビット部分はそのセグ
メント内オフセットwを表すと考えることができる。番
地バス9上に出力された仮想番地VAのセグメント番号SN
は、セグメント物理番地メモリ11に、オフセットwは番
地レジスタ17と番地加算器15に入力される。
セグメントの番号SNを表し、下位ビット部分はそのセグ
メント内オフセットwを表すと考えることができる。番
地バス9上に出力された仮想番地VAのセグメント番号SN
は、セグメント物理番地メモリ11に、オフセットwは番
地レジスタ17と番地加算器15に入力される。
入力されたセグメント番号SNは、メモリ11中で、複
数のゼクメント番号と比較され、番号が一致し、かつ対
応する無効ビットINVが0であるセグメント番号を検出
する。そのようなセグメント番号が検出されないと、メ
モリ11から不一致信号が制御バス8経由で処理装置1に
入力され、これが割込みとして受け付けられ、割込み処
理プログラムにより、局所メモリ2中のセグメントテー
ブル110内の、入力されたセグメント番号SNに対する情
報が読み出され、書き込み制御回路14を経由してセグメ
ント物理番地メモリ11の一つのエントリに格納され、そ
の後このメモリ11で前述の比較処理が再開される。前述
の比較の結果、無効ビットが0でかつ一致したセグメン
ト号が検出されたとき、その番号に対するエントリの第
3フィールド内のセグメント物理番号SPは番地加算器15
に入力され、第4フィールド内の番地はファンアウトメ
モリ番地レジスタ16、および比較器23に入力される。
数のゼクメント番号と比較され、番号が一致し、かつ対
応する無効ビットINVが0であるセグメント番号を検出
する。そのようなセグメント番号が検出されないと、メ
モリ11から不一致信号が制御バス8経由で処理装置1に
入力され、これが割込みとして受け付けられ、割込み処
理プログラムにより、局所メモリ2中のセグメントテー
ブル110内の、入力されたセグメント番号SNに対する情
報が読み出され、書き込み制御回路14を経由してセグメ
ント物理番地メモリ11の一つのエントリに格納され、そ
の後このメモリ11で前述の比較処理が再開される。前述
の比較の結果、無効ビットが0でかつ一致したセグメン
ト号が検出されたとき、その番号に対するエントリの第
3フィールド内のセグメント物理番号SPは番地加算器15
に入力され、第4フィールド内の番地はファンアウトメ
モリ番地レジスタ16、および比較器23に入力される。
また、第2フィールドの内容がエンコーダ24に入力さ
れる。求められたセグメント物理番地SPに、番地加算器
15によりセグメント内オフセットwを加えて書込むべき
データの物理番地PAを求める。この物理番地PAにより局
所メモリ2に要素A(I,J)の値を格納する。
れる。求められたセグメント物理番地SPに、番地加算器
15によりセグメント内オフセットwを加えて書込むべき
データの物理番地PAを求める。この物理番地PAにより局
所メモリ2に要素A(I,J)の値を格納する。
同時にセグメント物理番地メモリ11から出力された
第4フィールドの内容が0か否かを比較器23によりチェ
ックする。0であればメモリ20の番地がその第4フィー
ルドには書かれていないことを示すものとする。番地が
書かれている場合には、比較器23は1を出力する。この
ときは、以下のようにしてコピー動作がなされる。
第4フィールドの内容が0か否かを比較器23によりチェ
ックする。0であればメモリ20の番地がその第4フィー
ルドには書かれていないことを示すものとする。番地が
書かれている場合には、比較器23は1を出力する。この
ときは、以下のようにしてコピー動作がなされる。
比較器23からの出力と処理装置1が制御バス8に出
している制御信号およびセグメント物理番地メモリ11の
第2フィールドの無効ビットINVが入力され、エンコー
ダ24は、比較器出力が1で、制御信号が書込み指示信号
であり、かつ無効ビットが0であればファンアウト制御
回路25とOR回路13に信号“1"を与える。ファンアウト制
御回路25はビジー状態となり、エンコーダ24からの信号
を受付なくなるとともに、OR回路13に‘1'を出力する。
OR回路13の出力‘1'は処理装置1に制御バス8経由で動
作停止用信号として入力される。処理装置1の動作は実
行中のデータ書込み命令の実行が終了すると一時停止さ
れ、エンコーダ24の出力は‘0'となる。ファンアウトメ
モリ20の各エントリには、書き込まれたデータをコピー
すべき他要素プロセッサの番号PENOを格納する領域20−
1とその要素プロセッサの局所メモリ中の、コピーデー
タに対して割り付けられたセグメントの仮想番地SVを格
納する領域20−2、およびコピー先が複数ある場合に次
のコピー先を格納してあるファンアウトメモリ入口番地
を指すポインタpを格納する領域20−3とが用意されて
いる。ファンアウト制御回路25は、ファンアウトメモリ
番地レジスタ16の番地FOMAにて指定されるエントリ内の
情報を読み出す。コピーデータが割り付けられたセグメ
ントの仮想番地SVは、番地レジスタ17中のセグメント内
オフセットwとともに番地加算器21に入力される。この
加算器の出力は、コピーデータの仮想番地VAを表し、こ
れをレジスタ18内の書込みデータとファンアウトメモリ
20から読出されたコピー先の要素プロセッサ番号PENOと
ともに出力ポートレジスタ26に送る。また、ファンアウ
ト制御回路25は制御バス8上の書き込み指示信号に基づ
き書き込みコード“WRITE"を生成して出力ポートレジス
タ26に書き込む。こうして、第6A図に示す書き込みパケ
ットを出力ポートレジスタ26に形成する。制御回路25
は、送信装置5を起動してパケットの送出を依頼する。
この書込みパケットは相互を結合ネットワークにより、
パケット中の要素プロセッサ番号PENOで指定される要素
プロセッサに送出される。
している制御信号およびセグメント物理番地メモリ11の
第2フィールドの無効ビットINVが入力され、エンコー
ダ24は、比較器出力が1で、制御信号が書込み指示信号
であり、かつ無効ビットが0であればファンアウト制御
回路25とOR回路13に信号“1"を与える。ファンアウト制
御回路25はビジー状態となり、エンコーダ24からの信号
を受付なくなるとともに、OR回路13に‘1'を出力する。
OR回路13の出力‘1'は処理装置1に制御バス8経由で動
作停止用信号として入力される。処理装置1の動作は実
行中のデータ書込み命令の実行が終了すると一時停止さ
れ、エンコーダ24の出力は‘0'となる。ファンアウトメ
モリ20の各エントリには、書き込まれたデータをコピー
すべき他要素プロセッサの番号PENOを格納する領域20−
1とその要素プロセッサの局所メモリ中の、コピーデー
タに対して割り付けられたセグメントの仮想番地SVを格
納する領域20−2、およびコピー先が複数ある場合に次
のコピー先を格納してあるファンアウトメモリ入口番地
を指すポインタpを格納する領域20−3とが用意されて
いる。ファンアウト制御回路25は、ファンアウトメモリ
番地レジスタ16の番地FOMAにて指定されるエントリ内の
情報を読み出す。コピーデータが割り付けられたセグメ
ントの仮想番地SVは、番地レジスタ17中のセグメント内
オフセットwとともに番地加算器21に入力される。この
加算器の出力は、コピーデータの仮想番地VAを表し、こ
れをレジスタ18内の書込みデータとファンアウトメモリ
20から読出されたコピー先の要素プロセッサ番号PENOと
ともに出力ポートレジスタ26に送る。また、ファンアウ
ト制御回路25は制御バス8上の書き込み指示信号に基づ
き書き込みコード“WRITE"を生成して出力ポートレジス
タ26に書き込む。こうして、第6A図に示す書き込みパケ
ットを出力ポートレジスタ26に形成する。制御回路25
は、送信装置5を起動してパケットの送出を依頼する。
この書込みパケットは相互を結合ネットワークにより、
パケット中の要素プロセッサ番号PENOで指定される要素
プロセッサに送出される。
一方、ファンアウト制御回路25はファンアウトメモ
リ20から読み出されたポインタpがあらかじめ定めた番
地、例えば000…0でなければ、再びそのポインタpを
番地とする、ファンアウトメモリ20の別のエントリの内
容を読み出して、この内容に基づき、上述の書込みパケ
ットの送出と同じ動作を行なう。この動作は、新たに読
まれたエントリのポインタpが00…0になるまで繰り返
す。この後、ファンアウト制御回路25は計算終了信号と
して‘0'をOR回路13に出力する。この信号はエンコーダ
24からの出力、すなわち‘0'とORを取られて処理装置1
の動作停止用信号を解除するので、処理装置1は再び動
き出す。この間、処理装置1は凍結状態にあり、ただ時
間が伸びるだけで何事も無かったように動作は続行され
る。ファンアウト制御回路25もビジー状態が解除され
る。
リ20から読み出されたポインタpがあらかじめ定めた番
地、例えば000…0でなければ、再びそのポインタpを
番地とする、ファンアウトメモリ20の別のエントリの内
容を読み出して、この内容に基づき、上述の書込みパケ
ットの送出と同じ動作を行なう。この動作は、新たに読
まれたエントリのポインタpが00…0になるまで繰り返
す。この後、ファンアウト制御回路25は計算終了信号と
して‘0'をOR回路13に出力する。この信号はエンコーダ
24からの出力、すなわち‘0'とORを取られて処理装置1
の動作停止用信号を解除するので、処理装置1は再び動
き出す。この間、処理装置1は凍結状態にあり、ただ時
間が伸びるだけで何事も無かったように動作は続行され
る。ファンアウト制御回路25もビジー状態が解除され
る。
コピー先の要素プロセッサの受信装置6が相互結合
ネットワーク7からパケットを入力ポートレジスタ28上
に受け取ると、受信パケット処理制御回路30はパケット
中の処理コードの内容をデコードする。処理コードがWR
ITEの場合、制御バス8上にバス要求信号を出力し、処
理装置1がバス認可信号を出力したらバス使用中を示す
信号を出力してから、パケット中の仮想番地VAを番地バ
ス9を経由してセグメント物理番地メモリ11に送り、ま
た、データをデータバス10上に出力する。セグメント物
理番地メモリ11は、処理装置1から送られてきた仮想番
地と全く同様にしてこの受信された仮想番地を物理番地
に変換し、この物理番地が指す局所メモリ2中の領域に
受信したデータを格納する。その後、バス使用中を示す
信号の出力を停止し、処理装置1にバス使用権を渡す。
こうしてデータコピーが終了する。
ネットワーク7からパケットを入力ポートレジスタ28上
に受け取ると、受信パケット処理制御回路30はパケット
中の処理コードの内容をデコードする。処理コードがWR
ITEの場合、制御バス8上にバス要求信号を出力し、処
理装置1がバス認可信号を出力したらバス使用中を示す
信号を出力してから、パケット中の仮想番地VAを番地バ
ス9を経由してセグメント物理番地メモリ11に送り、ま
た、データをデータバス10上に出力する。セグメント物
理番地メモリ11は、処理装置1から送られてきた仮想番
地と全く同様にしてこの受信された仮想番地を物理番地
に変換し、この物理番地が指す局所メモリ2中の領域に
受信したデータを格納する。その後、バス使用中を示す
信号の出力を停止し、処理装置1にバス使用権を渡す。
こうしてデータコピーが終了する。
(2)次に、各要素プロセッサの処理装置がデータ読出
し命令を実行した場合について説明する。局所メモリ2
に割り付けられた、部分配列データを一要素あるいはそ
の他のデータを読出すときには、その命令で指定された
仮想番地VAに対して、すでに説明したのと同じ方法で仮
想番地から物理番地への変換がなされる。この場合、勿
論、前述のコピー動作はしない。次に、間接指標表現の
配列データA(L(I),J)を読出す場合を考える。
し命令を実行した場合について説明する。局所メモリ2
に割り付けられた、部分配列データを一要素あるいはそ
の他のデータを読出すときには、その命令で指定された
仮想番地VAに対して、すでに説明したのと同じ方法で仮
想番地から物理番地への変換がなされる。この場合、勿
論、前述のコピー動作はしない。次に、間接指標表現の
配列データA(L(I),J)を読出す場合を考える。
要素プロセッサの処理装置1で実行されているイン
デクスI=iを担当するタスクの実行の結果、間接指標
L(i)となった場合、この指標kを用いて引いた配列
記述子120の内容、すなわち部分配列A(k,*)(*は
全てのJに渡ることを示す)に対応するセグメントの先
頭番地SVを読出し、インデクスJにより定まる先頭番地
からのオフセット番地を処理装置1内の汎用レジスタの
一つに入れて上記先頭番地SVとこのオフセット番地によ
り該部分配列をフェッチしようとするデータの仮想番地
VAを出力する。ここまではデータを局所メモリ2に書込
む命令の場合と同じである。
デクスI=iを担当するタスクの実行の結果、間接指標
L(i)となった場合、この指標kを用いて引いた配列
記述子120の内容、すなわち部分配列A(k,*)(*は
全てのJに渡ることを示す)に対応するセグメントの先
頭番地SVを読出し、インデクスJにより定まる先頭番地
からのオフセット番地を処理装置1内の汎用レジスタの
一つに入れて上記先頭番地SVとこのオフセット番地によ
り該部分配列をフェッチしようとするデータの仮想番地
VAを出力する。ここまではデータを局所メモリ2に書込
む命令の場合と同じである。
読出すべきデータA(k,J)が自要素プロセッサの
局所メモリ2中にあれば、データを格納する場合と同
様、この仮想番地VAを物理番地にし、この物理番地で読
み出された局所メモリ2の内容がデータバス10上に出力
される。該データが自要素プロセッサ中にあることは、
セグメント物理番地メモリ11中の無効ビットINVが0で
あることにより知られる。このとき、制御バス8上の読
み出し信号とゼクメント物理番地メモリ11から出力され
た無効ビットINV(=0)とがエンコーダ24に入力さ
れ、この場合には、ファンアウト制御回路25にはコピー
データのアクセスを依頼する信号‘1'は出力されない。
局所メモリ2中にあれば、データを格納する場合と同
様、この仮想番地VAを物理番地にし、この物理番地で読
み出された局所メモリ2の内容がデータバス10上に出力
される。該データが自要素プロセッサ中にあることは、
セグメント物理番地メモリ11中の無効ビットINVが0で
あることにより知られる。このとき、制御バス8上の読
み出し信号とゼクメント物理番地メモリ11から出力され
た無効ビットINV(=0)とがエンコーダ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から起動信号‘1'を入力したりファンアウ
ト制御回路25は、A(k,*)が割り付けられている要素
プロセッサに対し第6B図のようなREADパケットを作成し
て送るよう送信装置5に依頼する。すなわち、ファンア
ウト制御回路25は、セグメント物理番地メモリ11からフ
ァンアウトメモリ番地レジスタ16に出力されたファンア
ウトメモリ番地を用いてファンアウトメモリ20を読み、
その内容のうち要素プロセッサ番号PENOを出力ポートレ
ジスタ26に、セグメント仮想番地SVを番地加算器21に入
力する。一方、番地レジスタ17中のセグメント内オフセ
ットwが番地加算器21に入力され、セグメント仮想番地
と加算されて結果が出力ポートレジスタ26に出力され
る。ファンアウト制御回路25はまた、制御バス8上のフ
ェッチ信号に基づき、処理コード“READ"と自身の要素
プロセッサ番号とを生成し、これも出力ポート26上に出
力する。出力ポート26上に編成されたREADパケットは、
送信装置5により相互結合ネットワーク7に送出され
る。
い場合はセグメント物理番地メモリ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から起動信号‘1'を入力したりファンアウ
ト制御回路25は、A(k,*)が割り付けられている要素
プロセッサに対し第6B図のようなREADパケットを作成し
て送るよう送信装置5に依頼する。すなわち、ファンア
ウト制御回路25は、セグメント物理番地メモリ11からフ
ァンアウトメモリ番地レジスタ16に出力されたファンア
ウトメモリ番地を用いてファンアウトメモリ20を読み、
その内容のうち要素プロセッサ番号PENOを出力ポートレ
ジスタ26に、セグメント仮想番地SVを番地加算器21に入
力する。一方、番地レジスタ17中のセグメント内オフセ
ットwが番地加算器21に入力され、セグメント仮想番地
と加算されて結果が出力ポートレジスタ26に出力され
る。ファンアウト制御回路25はまた、制御バス8上のフ
ェッチ信号に基づき、処理コード“READ"と自身の要素
プロセッサ番号とを生成し、これも出力ポート26上に出
力する。出力ポート26上に編成されたREADパケットは、
送信装置5により相互結合ネットワーク7に送出され
る。
READパケットを受信した要素プロセッサでは、受信装
置6がパケットを入力ポートレジスタ28上に受け取る
と、直ちに受信パケット処理制御回路30が処理コードを
デコードし、READコードの場合、処理装置1からバス使
用権をもらってパケット中の(仮想)番地をセグメント
物理番地メモリ11に入力して局所メモリ2の物理番地に
変換し、これを用いて局所メモリ2の該当領域の内容、
すなわちA(k,*)を読み出し、その値を返信パケット
用出力ポートレジスタ31に格納する。受信パケット処理
制御回路30はまた、入力ポートレジタ28中の返信先要素
プロセッサ番号を返信パケット用出力ポートレジスタ31
に格納し、さらにコード“RETURN"を生成してこれも返
信パケット用出力ポートレジスタ31に格納する。こうし
て返信パケット用出力ポートレジスタ31上に第6C図に示
すRETURNパケットを形成する。このパケットは、受信装
置6が送信装置5に依頼して相互結合ネットワーク7に
出力してもらい、要求元に送り返される。要求元の要素
プロセッサでは、RETURNパケットが届くと、受信パケッ
ト処理制御回路31によりWRITEパケットと同様の処理が
行われるが、受信パケット処理制御回路30で処理コード
がデコードされた結果RETURNであることが分かると、受
信パケット処理制御回路30は局所メモリ2内のあらかじ
め定めた特定の固定番地(返信データ用バッファ領域番
地)を番地バス9上に出力してここに受信したデータを
格納し、また、制御バス8により制御装置1にデータの
到着を通知する動作が追加されている点が異なる。この
通知により、処理装置1のフェッチ割込み処理プログラ
ムは中断していたデータ読み出し命令のオペランド番地
を上記特定番地に変更してから、その命令を再実行す
る。従って、この命令は必ず上記の特定番地を読む。こ
のようにして各要素プロセッサは自メモリ中にない、間
接指標で指定されるデータを参照することが出来る。
置6がパケットを入力ポートレジスタ28上に受け取る
と、直ちに受信パケット処理制御回路30が処理コードを
デコードし、READコードの場合、処理装置1からバス使
用権をもらってパケット中の(仮想)番地をセグメント
物理番地メモリ11に入力して局所メモリ2の物理番地に
変換し、これを用いて局所メモリ2の該当領域の内容、
すなわちA(k,*)を読み出し、その値を返信パケット
用出力ポートレジスタ31に格納する。受信パケット処理
制御回路30はまた、入力ポートレジタ28中の返信先要素
プロセッサ番号を返信パケット用出力ポートレジスタ31
に格納し、さらにコード“RETURN"を生成してこれも返
信パケット用出力ポートレジスタ31に格納する。こうし
て返信パケット用出力ポートレジスタ31上に第6C図に示
すRETURNパケットを形成する。このパケットは、受信装
置6が送信装置5に依頼して相互結合ネットワーク7に
出力してもらい、要求元に送り返される。要求元の要素
プロセッサでは、RETURNパケットが届くと、受信パケッ
ト処理制御回路31によりWRITEパケットと同様の処理が
行われるが、受信パケット処理制御回路30で処理コード
がデコードされた結果RETURNであることが分かると、受
信パケット処理制御回路30は局所メモリ2内のあらかじ
め定めた特定の固定番地(返信データ用バッファ領域番
地)を番地バス9上に出力してここに受信したデータを
格納し、また、制御バス8により制御装置1にデータの
到着を通知する動作が追加されている点が異なる。この
通知により、処理装置1のフェッチ割込み処理プログラ
ムは中断していたデータ読み出し命令のオペランド番地
を上記特定番地に変更してから、その命令を再実行す
る。従って、この命令は必ず上記の特定番地を読む。こ
のようにして各要素プロセッサは自メモリ中にない、間
接指標で指定されるデータを参照することが出来る。
(3)(1)において自局所メモリ中2に無いデータを
更新する場合には、セグメント物理番地メモリ11中の、
そのデータの仮想番地VAに対するエントリでは無効ビッ
トINVが1であり、かつファンアウトメモリ番地FOMAは
0……0でない。このため比較器23の出力は1である。
INVビットは制御信号として局所メモリ2に与えら、局
所メモリ2でのデータ格納動作を禁止する。一方、書込
み命令を実行した要素プロセッサではAND回路12にはこ
の無効ビットINVと比較器23からの出力(=1)が入力
され、その出力が1となり、他プロセッサへの書き込み
が行なわれたことが処理装置1に伝えられる。
更新する場合には、セグメント物理番地メモリ11中の、
そのデータの仮想番地VAに対するエントリでは無効ビッ
トINVが1であり、かつファンアウトメモリ番地FOMAは
0……0でない。このため比較器23の出力は1である。
INVビットは制御信号として局所メモリ2に与えら、局
所メモリ2でのデータ格納動作を禁止する。一方、書込
み命令を実行した要素プロセッサではAND回路12にはこ
の無効ビットINVと比較器23からの出力(=1)が入力
され、その出力が1となり、他プロセッサへの書き込み
が行なわれたことが処理装置1に伝えられる。
一方、エンコーダ24は、この無効ビットと比較器23の
出力と制御バス8上の書込み指示信号に応答してファン
アウト制御回路25とOR回路13に‘1'を与え起動する。こ
の制御回路25は、制御バス8上の書込み指示信号に応答
して、コピー動作時と同様に書込みパケットを生成し
て、書込み指示されたデータを他要求プロセッサに送出
して、書込みを指示する。
出力と制御バス8上の書込み指示信号に応答してファン
アウト制御回路25とOR回路13に‘1'を与え起動する。こ
の制御回路25は、制御バス8上の書込み指示信号に応答
して、コピー動作時と同様に書込みパケットを生成し
て、書込み指示されたデータを他要求プロセッサに送出
して、書込みを指示する。
以下、本発明の第二実施例を図面により詳細に説明す
る。
る。
第7図において、100は要素プロセッサ、7は複数の
要素プロセッサ100を相互に接続してそれらの間の通信
を可能とする相互結合ネットワーク、10はホスト計算機
である。要素プロセッサ100はプログラム命令を実行す
る処理装置1、プログラムおよびデータを保持する局所
メモリ2、アドレス変換装置60、およびこれらを接続す
るバス74、比較器79、ファンアウトメモリ20、パケット
生成制御回路25A、出力ポートレジスタ26、およびこれ
を接続するバス77、入力ポートレジスタ28、受信パケッ
ト処理制御回路30A、待合せ情報記憶装置32、減算器3
3、およびこれらの要素30A,32,33を接続するバス71、お
よびバス71と74を接続するバススイッチ80B、バス74と
バス77を接続するバススイッチ80C、バススイッチ80Bと
80Cを制御するバスアービタ80A等からなる。
要素プロセッサ100を相互に接続してそれらの間の通信
を可能とする相互結合ネットワーク、10はホスト計算機
である。要素プロセッサ100はプログラム命令を実行す
る処理装置1、プログラムおよびデータを保持する局所
メモリ2、アドレス変換装置60、およびこれらを接続す
るバス74、比較器79、ファンアウトメモリ20、パケット
生成制御回路25A、出力ポートレジスタ26、およびこれ
を接続するバス77、入力ポートレジスタ28、受信パケッ
ト処理制御回路30A、待合せ情報記憶装置32、減算器3
3、およびこれらの要素30A,32,33を接続するバス71、お
よびバス71と74を接続するバススイッチ80B、バス74と
バス77を接続するバススイッチ80C、バススイッチ80Bと
80Cを制御するバスアービタ80A等からなる。
処理装置1は第2図に示されたのと同じ構造を有し、
ファンアウトメモリ20は、第1図のファンアウトメモリ
と同じく他要素プロセッサ内の番地を保持するためのも
ので、そのエントリの各々は第1図のと同じく、3つの
フィールドを有する。但し、第1図のファンアウトメモ
リでは、他要素プロセッサの仮想空間に割り付けられ
た、あるデータのセグメント番地を保持していたが、本
実施例では、他要素プロセッサの、局所メモリ2の番地
と待合せ情報記憶装置の番地を保持する点で第1図と異
なる。前者は第1図と同じくデータの転送に用いられ、
後者は制御トークンの転送に用いらる。アドレス変換装
置60は処理装置1から出力さた物理番地を他要素プロセ
ッサの局所メモリ2をアクセスする物理番地に変換する
もので第1図のセグメント物理番地メモリ11およびその
関連回路と類似の機能を果す。
ファンアウトメモリ20は、第1図のファンアウトメモリ
と同じく他要素プロセッサ内の番地を保持するためのも
ので、そのエントリの各々は第1図のと同じく、3つの
フィールドを有する。但し、第1図のファンアウトメモ
リでは、他要素プロセッサの仮想空間に割り付けられ
た、あるデータのセグメント番地を保持していたが、本
実施例では、他要素プロセッサの、局所メモリ2の番地
と待合せ情報記憶装置の番地を保持する点で第1図と異
なる。前者は第1図と同じくデータの転送に用いられ、
後者は制御トークンの転送に用いらる。アドレス変換装
置60は処理装置1から出力さた物理番地を他要素プロセ
ッサの局所メモリ2をアクセスする物理番地に変換する
もので第1図のセグメント物理番地メモリ11およびその
関連回路と類似の機能を果す。
アドレス変換装置60は、第8図に示すように、制御判
定回路62、ポインタメモリ65、ポインタレジスタ63、デ
ータレジスタ64とからなっている。
定回路62、ポインタメモリ65、ポインタレジスタ63、デ
ータレジスタ64とからなっている。
このポインタメモリ65は、第1図のセグメント物理番
地メモリ11と類似の機能を果すものであるが、後に述べ
る理由により、その各エントリに変換結果として出力す
べき物理番地およびファンアウトメモリ20の一つの番地
FOMAを対にして保持することはせず、第9A図に示すよう
に、FOMAのみを保持する。
地メモリ11と類似の機能を果すものであるが、後に述べ
る理由により、その各エントリに変換結果として出力す
べき物理番地およびファンアウトメモリ20の一つの番地
FOMAを対にして保持することはせず、第9A図に示すよう
に、FOMAのみを保持する。
アドレス変換回路60とファンアウトメモリ20の作用に
より、本実施例においても、第1図と同じく分散した局
所メモリ内のデータのコピー動作とその他の動作が可能
になる。待合せ情報記憶装置32は各要素プロセッサごと
にタスクの起動制御を行うことを可能にするためのもの
である。すなわち、この記憶装置はその要素プロセッサ
に割り付けられたタスクごとに、一つのエントリを有
し、その内容が第9B図に示す。
より、本実施例においても、第1図と同じく分散した局
所メモリ内のデータのコピー動作とその他の動作が可能
になる。待合せ情報記憶装置32は各要素プロセッサごと
にタスクの起動制御を行うことを可能にするためのもの
である。すなわち、この記憶装置はその要素プロセッサ
に割り付けられたタスクごとに、一つのエントリを有
し、その内容が第9B図に示す。
本実施例は第1の実施例に比較すると、第1の実施例
で採用さた分散した局所メモリとデータコピー技術は本
実施例でも採用されているが、本実施例で各要素プロセ
ッサに割り付けられた仮想番地空間は、第1の実施例と
異なる。すなわち、本実施例では仮想番地空間の一部が
物理番地空間に一致する。したがって、その一部に属す
る番地が処理装置から出力されたとき、第1の実施例で
述べたような番地変換は本実施例では不要である。この
ため、ポインタメモリ65にはFOMAのみが保持されてい
る。さらに本実施例では、タスク起動制御のための回路
が各要素プロセッサに設けられている。
で採用さた分散した局所メモリとデータコピー技術は本
実施例でも採用されているが、本実施例で各要素プロセ
ッサに割り付けられた仮想番地空間は、第1の実施例と
異なる。すなわち、本実施例では仮想番地空間の一部が
物理番地空間に一致する。したがって、その一部に属す
る番地が処理装置から出力されたとき、第1の実施例で
述べたような番地変換は本実施例では不要である。この
ため、ポインタメモリ65にはFOMAのみが保持されてい
る。さらに本実施例では、タスク起動制御のための回路
が各要素プロセッサに設けられている。
まず、本実施例の概略説明をする。
ホスト計算機10は以下のことを実行するようにプログ
ラムされている。まず、この並列計算機で実行すべきソ
ースプログラムから生成された複数のタスクと呼ぶその
実行途中でお互いに交信する必要のないプログラムと、
各タスクを実行するために必要なデータ(その詳細は後
に説明する)とがあらかじめこのホスト計算機10にロー
ドされており、ホスト計算機10は各要素プロセッサに、
そこで実行すべき複数のタスクと、それぞれのタスクの
実行に必要なデータをロードする。その後、全ての要素
プロセッサ100を起動し、全要素プロセッサ100の実行結
果を外部の装置(図示せず)に出力する。各様素プロセ
ッサはそこに割当てられた複数のタスクを、他の要素プ
ロセッサにおける他のタスクの実行と平行して実行する
ように構成されている。
ラムされている。まず、この並列計算機で実行すべきソ
ースプログラムから生成された複数のタスクと呼ぶその
実行途中でお互いに交信する必要のないプログラムと、
各タスクを実行するために必要なデータ(その詳細は後
に説明する)とがあらかじめこのホスト計算機10にロー
ドされており、ホスト計算機10は各要素プロセッサに、
そこで実行すべき複数のタスクと、それぞれのタスクの
実行に必要なデータをロードする。その後、全ての要素
プロセッサ100を起動し、全要素プロセッサ100の実行結
果を外部の装置(図示せず)に出力する。各様素プロセ
ッサはそこに割当てられた複数のタスクを、他の要素プ
ロセッサにおける他のタスクの実行と平行して実行する
ように構成されている。
各要素プロセッサの動作の概略は以下の通りである。
各タスクの末尾(またはその途中)に、制御トークン
送信命令がホスト計算機によりあらかじめ組み込まれて
いて、各要素プロセッサ100で実行中のタスクにあるそ
の命令に従い、制御トークンをそのタスクのその制御ト
ークン送信命令が発行されるまでの部分の実行終了を待
って実行が許される他のタスクに、パケット生成制御回
路25Aが送信する。そのような他のタスクは、各要素プ
ロセッサ100で実行されるタスクごとにあらかじめ定め
られている。その決定結果をファンアウトメモリ20が保
持する。各要素プロセッサ100は、実行中のタスクの実
行終了後、その要素プロセッサに割当てらたタスク内の
いずのタスクを実行するかを受信パケット処理制御回路
30Aが決定することができるようになっている。各タス
クが実行可能となるためには、そのタスクに先行して実
行されるべきタスクが全て実行終了し、その実行終了を
示す制御トークンがその要素プロセッサに通知される必
要がある。このため、各要素プロセッサでは、各タスク
ごとに、その実行許可のために必要な制御トークン数を
持合せ情報記憶装置32に保持するようになっている。各
要素プロセッサでの1つのタスクの実行が終了したと
き、受信パケット処理制御回路30で実行可能とすでに判
断されたタスクの一つを処理装置1が実行する。すなわ
ち、プログラムの最終でタスク終了命令が発行される
と、次のタスクへは分岐命令により移行する。分岐先番
地は、パケット受信制御回路30が作成した実行可能にな
ったタスクを起動するための情報を命令により取り出し
て求める。このように、本発明では、タスク切替にオペ
レーティングシステムを介在させないので極めて高速で
ある。
送信命令がホスト計算機によりあらかじめ組み込まれて
いて、各要素プロセッサ100で実行中のタスクにあるそ
の命令に従い、制御トークンをそのタスクのその制御ト
ークン送信命令が発行されるまでの部分の実行終了を待
って実行が許される他のタスクに、パケット生成制御回
路25Aが送信する。そのような他のタスクは、各要素プ
ロセッサ100で実行されるタスクごとにあらかじめ定め
られている。その決定結果をファンアウトメモリ20が保
持する。各要素プロセッサ100は、実行中のタスクの実
行終了後、その要素プロセッサに割当てらたタスク内の
いずのタスクを実行するかを受信パケット処理制御回路
30Aが決定することができるようになっている。各タス
クが実行可能となるためには、そのタスクに先行して実
行されるべきタスクが全て実行終了し、その実行終了を
示す制御トークンがその要素プロセッサに通知される必
要がある。このため、各要素プロセッサでは、各タスク
ごとに、その実行許可のために必要な制御トークン数を
持合せ情報記憶装置32に保持するようになっている。各
要素プロセッサでの1つのタスクの実行が終了したと
き、受信パケット処理制御回路30で実行可能とすでに判
断されたタスクの一つを処理装置1が実行する。すなわ
ち、プログラムの最終でタスク終了命令が発行される
と、次のタスクへは分岐命令により移行する。分岐先番
地は、パケット受信制御回路30が作成した実行可能にな
ったタスクを起動するための情報を命令により取り出し
て求める。このように、本発明では、タスク切替にオペ
レーティングシステムを介在させないので極めて高速で
ある。
各タスクは、その実行途中において、他のタスクと交
信する必要がないように構成された単位処理プログラム
である。従って、各要素プロセッサ100は、一つのタス
クの実行開始後は、他の要素プロセッサにおける他のタ
スクの実行と独立に、すなわち、並列にそのタスクを実
行することができる。ただし、そのタスクの実行開始前
には、先行するあらかじめ定めた一つまたは複数のタス
クの実行が終了している必要がある。たとえば第13図に
示すソースプログラムを分割して得られた複数のタスク
の実行順序を示したのが、第14図のタスクフローグラフ
である。このため、本実施例では、それらのタスクの実
行終了を示す制御トークンがその要素プロセッサ100に
て受信されたか否かを判別してから、そのタスクを起動
するようになっている。こうして、各要素プロセッサ10
0ごとにタスクの実行可否を判断可能になっている。
信する必要がないように構成された単位処理プログラム
である。従って、各要素プロセッサ100は、一つのタス
クの実行開始後は、他の要素プロセッサにおける他のタ
スクの実行と独立に、すなわち、並列にそのタスクを実
行することができる。ただし、そのタスクの実行開始前
には、先行するあらかじめ定めた一つまたは複数のタス
クの実行が終了している必要がある。たとえば第13図に
示すソースプログラムを分割して得られた複数のタスク
の実行順序を示したのが、第14図のタスクフローグラフ
である。このため、本実施例では、それらのタスクの実
行終了を示す制御トークンがその要素プロセッサ100に
て受信されたか否かを判別してから、そのタスクを起動
するようになっている。こうして、各要素プロセッサ10
0ごとにタスクの実行可否を判断可能になっている。
さらに、本実施例では、データの送信、すなわち、要
素プロセッサ間の通信に関すては、データを局所メモリ
2に格納し、もしくはそこから読み出すという通常のメ
モリアクセス動作を処理装置1が行ない、そのとき必要
なデータ通信は番地変更装置60を中心とする回路が自動
的に実行する。本実施例では各要素プロセッサごとに固
有の局所、番地空間が定められており、各要素プロセッ
サ100のタスクはデータをアクセスする際、その空間に
属する、そのデータに対応する局所番地を指定するよう
になっている。局所メモリ2の物理番地の空間はこの局
所空間の一部のみに対応し、局所空間の残りの番地に対
する局所メモリ2内領域はない。したがって、この局所
番地も第1の実施例と同様仮想の番地と考えることがで
きる。一方、ポインタメモリ65(第8図)の番地空間は
局所メモリ2の番地領域を含みそれより広い範囲とす
る。例えば、局所番地空間がNビットの番地で番地付け
られるとすると、局所メモリ2の物理番地空間はN−1
ビットで番地付けできる範囲、すなわち局所番地空間の
半分の範囲とし、ポインタメモリ65の物理番地空間Nビ
ットで番地付けできる範囲、すなわち局所番地空間全域
とする。このような多重の番地空間を各要素プロセッサ
ごとに設定する。本実施例ではこの多重番地空間上にデ
ータを分散配置し、任意の要素プロセッサが必要とする
データを確実にしかも高速にアクセスできるようにす
る。
素プロセッサ間の通信に関すては、データを局所メモリ
2に格納し、もしくはそこから読み出すという通常のメ
モリアクセス動作を処理装置1が行ない、そのとき必要
なデータ通信は番地変更装置60を中心とする回路が自動
的に実行する。本実施例では各要素プロセッサごとに固
有の局所、番地空間が定められており、各要素プロセッ
サ100のタスクはデータをアクセスする際、その空間に
属する、そのデータに対応する局所番地を指定するよう
になっている。局所メモリ2の物理番地の空間はこの局
所空間の一部のみに対応し、局所空間の残りの番地に対
する局所メモリ2内領域はない。したがって、この局所
番地も第1の実施例と同様仮想の番地と考えることがで
きる。一方、ポインタメモリ65(第8図)の番地空間は
局所メモリ2の番地領域を含みそれより広い範囲とす
る。例えば、局所番地空間がNビットの番地で番地付け
られるとすると、局所メモリ2の物理番地空間はN−1
ビットで番地付けできる範囲、すなわち局所番地空間の
半分の範囲とし、ポインタメモリ65の物理番地空間Nビ
ットで番地付けできる範囲、すなわち局所番地空間全域
とする。このような多重の番地空間を各要素プロセッサ
ごとに設定する。本実施例ではこの多重番地空間上にデ
ータを分散配置し、任意の要素プロセッサが必要とする
データを確実にしかも高速にアクセスできるようにす
る。
以下、実施例についてさらに詳細に説明する。
まず、各要素プロセッサのデータとタスクの割り付け
について説明する。
について説明する。
(a)データとそのデータを定義するタスクを同一要素
プロセッサ(例えば要素プロセッサA)に割り付ける。
データは各要素プロセッサの局所メモリ2の物理番地範
囲内に割り付ける。例えば、第11図に例示するように、
局所メモリ2の物理番地が0〜Mで局所番地空間が0〜
M′のとき、タスクで定義されるデータをM番地より小
さいa番地に割り付ける。
プロセッサ(例えば要素プロセッサA)に割り付ける。
データは各要素プロセッサの局所メモリ2の物理番地範
囲内に割り付ける。例えば、第11図に例示するように、
局所メモリ2の物理番地が0〜Mで局所番地空間が0〜
M′のとき、タスクで定義されるデータをM番地より小
さいa番地に割り付ける。
(b)該データを参照することがプログラム実行前から
判明している他のタスクが他のプロセッサ(例えば要素
プロセッサB)に割り付けられる場合、該データのコピ
ーデータを要素プロセッサBの局所メモリ2の番地範囲
内の番地、例えばb番地を割り付ける。
判明している他のタスクが他のプロセッサ(例えば要素
プロセッサB)に割り付けられる場合、該データのコピ
ーデータを要素プロセッサBの局所メモリ2の番地範囲
内の番地、例えばb番地を割り付ける。
(c)要素プロセッサAのポインタメモリ65のa番地の
エントリが指すファンアウトメモリ20の一つのエントリ
にコピーデータが割り付けられた要素プロセッサのと番
地プロセッサB、番地b)を格納する。もし、コピーデ
ータが複数の要素プロセッサに割り付ける場合は、それ
らのコピーデータの番地を要素プロセッサAのファアウ
トメモリ20内でポインタPで結んだリストの形で記憶さ
せる。これも第1図のファンアウトメモリ20と同じ構成
である。
エントリが指すファンアウトメモリ20の一つのエントリ
にコピーデータが割り付けられた要素プロセッサのと番
地プロセッサB、番地b)を格納する。もし、コピーデ
ータが複数の要素プロセッサに割り付ける場合は、それ
らのコピーデータの番地を要素プロセッサAのファアウ
トメモリ20内でポインタPで結んだリストの形で記憶さ
せる。これも第1図のファンアウトメモリ20と同じ構成
である。
(d)プログラム実行前には定義・参照関係が不定なデ
ータは、何らかの手段で(例えば順番)にプロセッサに
割り付け、自分に割り付けされていないが定義・参照を
行なう可能性のあるデータは、局所番地空間内の自局所
メモリ2の番地範囲外(たとえば第11図のM+1〜M′
番地範囲)の番地(例えばプロセッサAのc番地)に割
り付ける。
ータは、何らかの手段で(例えば順番)にプロセッサに
割り付け、自分に割り付けされていないが定義・参照を
行なう可能性のあるデータは、局所番地空間内の自局所
メモリ2の番地範囲外(たとえば第11図のM+1〜M′
番地範囲)の番地(例えばプロセッサAのc番地)に割
り付ける。
(e)上記(d)でM番地以降に仮想的に割り付けらた
データの真の所在番地(プロセッサB、d番地)を、プ
ロセッサAのポインタメモリ15のc番地のエントリが指
す、ファンアウトメモリ20内のエントリに格納する。
データの真の所在番地(プロセッサB、d番地)を、プ
ロセッサAのポインタメモリ15のc番地のエントリが指
す、ファンアウトメモリ20内のエントリに格納する。
上記(d),(e)の例として、次のプログラムを考
える。
える。
DO 10 I=1,3 DO 10 J=1,3 A(I,J)=A(I−1,J)+B(L(I),J) 10 CONTINUE これをIについて分割し、3台の要素プロセッサで並
列処理する場合として、各要素プロセッサで次のような
タスクを実行するものとする。
列処理する場合として、各要素プロセッサで次のような
タスクを実行するものとする。
K=L(I) (Bの変位番地=BD(K)) DO 10 J=1,3 A(I,J)=A(I−1,J)+B(J) 10 CONTINUE ここに( )内の文は新たに生成された実行文であ
り、BD(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 10 J=1,3 A(3,J)=A(2,J)+B(I,J) 10 CONTINUE を処理するが、A(3,J)、A(2,J)は自局所メモリに
直接見出すことが出来、B(I,J)はポインタメモリ65
にのみ存在しているので、これをたどってプロセッサ1
の局所メモリ2をアクセスする。他のプロセッサ100の
局所メモリ2を読む場合、アドレス変換装置60の指示に
よりREADパケットが発行され、これを受信したプロセッ
サは折り返しRETURNパケットを返信する。処理装置1は
この間、返信待ち状態にあり、とくに通信命令を実行す
る必要はない。以上のようなメモリシステムでは、物理
的には異なる場所に存在していても同一のデータはポイ
ンタで結合されているので、これをたどっていけばそれ
ら全てにアクセスできる。また、自プロセッサの局所メ
モリ2に存在しないデータも、ポインタメモリ65上に割
り付けられていればアクセスすることができる。ただ
し、データを読み出す場合は、どれかひとつをアクセス
すればよいが、データを更新する場合はポインタをたど
ってすべてのデータを書き直さなければならない。
り、BD(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 10 J=1,3 A(3,J)=A(2,J)+B(I,J) 10 CONTINUE を処理するが、A(3,J)、A(2,J)は自局所メモリに
直接見出すことが出来、B(I,J)はポインタメモリ65
にのみ存在しているので、これをたどってプロセッサ1
の局所メモリ2をアクセスする。他のプロセッサ100の
局所メモリ2を読む場合、アドレス変換装置60の指示に
よりREADパケットが発行され、これを受信したプロセッ
サは折り返しRETURNパケットを返信する。処理装置1は
この間、返信待ち状態にあり、とくに通信命令を実行す
る必要はない。以上のようなメモリシステムでは、物理
的には異なる場所に存在していても同一のデータはポイ
ンタで結合されているので、これをたどっていけばそれ
ら全てにアクセスできる。また、自プロセッサの局所メ
モリ2に存在しないデータも、ポインタメモリ65上に割
り付けられていればアクセスすることができる。ただ
し、データを読み出す場合は、どれかひとつをアクセス
すればよいが、データを更新する場合はポインタをたど
ってすべてのデータを書き直さなければならない。
このようなメモリシステムを用いることにより、任
意のプロセッサからアクセスできるようにデータを分散
配置出来るので、全プロセッサから直接アクセス可能な
集中型メモリ構成とした場合よりアクセスのぶつかりあ
いが少なく、アクセス速度も速い。アクセスするデー
タをそのタスクと同じプロセッサの局所メモリ2上に配
置することができる。(プログラム実行前にアクセスパ
タンが分かっているかぎり)。事前に分かる範囲で、
データ格納領域をそのデータを必要とするプロセッサの
局所メモリ2に割り付け、データ作成時点でこれらの領
域に送っておけるので、起動されたタスクが命令を解読
する時点で他のプロセッサの局所メモリを読む場合よ
り、命令実行時間を短縮できる。
意のプロセッサからアクセスできるようにデータを分散
配置出来るので、全プロセッサから直接アクセス可能な
集中型メモリ構成とした場合よりアクセスのぶつかりあ
いが少なく、アクセス速度も速い。アクセスするデー
タをそのタスクと同じプロセッサの局所メモリ2上に配
置することができる。(プログラム実行前にアクセスパ
タンが分かっているかぎり)。事前に分かる範囲で、
データ格納領域をそのデータを必要とするプロセッサの
局所メモリ2に割り付け、データ作成時点でこれらの領
域に送っておけるので、起動されたタスクが命令を解読
する時点で他のプロセッサの局所メモリを読む場合よ
り、命令実行時間を短縮できる。
という効果が得られる。
また、同一の論理的データが物理的に複数個存在する
場合、これらの定義が物理的に同時に行なわれないと、
一般にはそのアクセスの論理的正しさが保証されない。
例えば、書き直す前のデータを誤って読んでしまうread
before writeの問題とか、その逆のwrite before read
の問題がある。本実施例ではデータをアクセスしたタス
クが、次に同じデータをアクセスするタスクを制御トー
クンにより起動するという機構を基本にしているため、
このような問題は全て回避できる。
場合、これらの定義が物理的に同時に行なわれないと、
一般にはそのアクセスの論理的正しさが保証されない。
例えば、書き直す前のデータを誤って読んでしまうread
before writeの問題とか、その逆のwrite before read
の問題がある。本実施例ではデータをアクセスしたタス
クが、次に同じデータをアクセスするタスクを制御トー
クンにより起動するという機構を基本にしているため、
このような問題は全て回避できる。
次にデータの局所メモリ2への書込みについて第1,8
図を用いて説明する。
図を用いて説明する。
a)自要素プロセッサの局所メモリ2へのデータの書込
みと他要素プロセッサの局所メモリ2へのデータコピ
ー。タスクを実行中の処理装置1がデータを局所メモリ
2に格納する命令を解読すると、バス74中のアドレス
バス74−2、データバス74−3にそれぞれ番地とデータ
を乗せ、制御バス74−1に書き込み指示信号を乗せる。
局所メモリ2は普通のメモリのようにこれらのバスに接
続されるが、ポインタメモリ65のREAD端子Rには、制御
バス74−1の書き込み指示信号と読み出し指示信号が共
に入力され、データ端子Dはポインタメモリ65の内容が
空か否かを判定する制御判定回路62を経由してポインタ
レジスタ63に接続される。また、データバス74−3はデ
ータレジスタ64に接続され、格納命令の実行の都度デー
タがセットされる。このとき、局所メモリ2にはアド
レスバス74−2上に出力さている番地が指す領域にこの
データが格納さるが、同時にこの番地を持つポインタ
メモリ65の内容が読み出されて制御判定回路62に送ら
れ、空でなけばポインタレジスタ63に格納される。制
御判定回路62は、このとき(空でないとき)処理装置1
に停止信号を送って動作を停止させ、パケット生成制
御回路25Aに機能をかけるべくバスアービタ80Aにバス77
の解放を要求する。パケット生成制御回路25Aがビジ
ーでなくなり、バス77が解放されたらこれを用いてまず
ポインタレジスタ63の内容をレジスタ41に、続いてデー
タレジスタ64の内容をジスタ42に書き込み、パケット生
成制御回路25Aに書き込みを通知する。その後、処理
装置1の動作を再開させるための信号を送る。
みと他要素プロセッサの局所メモリ2へのデータコピ
ー。タスクを実行中の処理装置1がデータを局所メモリ
2に格納する命令を解読すると、バス74中のアドレス
バス74−2、データバス74−3にそれぞれ番地とデータ
を乗せ、制御バス74−1に書き込み指示信号を乗せる。
局所メモリ2は普通のメモリのようにこれらのバスに接
続されるが、ポインタメモリ65のREAD端子Rには、制御
バス74−1の書き込み指示信号と読み出し指示信号が共
に入力され、データ端子Dはポインタメモリ65の内容が
空か否かを判定する制御判定回路62を経由してポインタ
レジスタ63に接続される。また、データバス74−3はデ
ータレジスタ64に接続され、格納命令の実行の都度デー
タがセットされる。このとき、局所メモリ2にはアド
レスバス74−2上に出力さている番地が指す領域にこの
データが格納さるが、同時にこの番地を持つポインタ
メモリ65の内容が読み出されて制御判定回路62に送ら
れ、空でなけばポインタレジスタ63に格納される。制
御判定回路62は、このとき(空でないとき)処理装置1
に停止信号を送って動作を停止させ、パケット生成制
御回路25Aに機能をかけるべくバスアービタ80Aにバス77
の解放を要求する。パケット生成制御回路25Aがビジ
ーでなくなり、バス77が解放されたらこれを用いてまず
ポインタレジスタ63の内容をレジスタ41に、続いてデー
タレジスタ64の内容をジスタ42に書き込み、パケット生
成制御回路25Aに書き込みを通知する。その後、処理
装置1の動作を再開させるための信号を送る。
パケット生成制御回路25Aは書き込み通知信号を受
けて、レジスタ42の内容が制御トークンコードでないこ
とを確認してから、レジスタ41の内容を番地としてフ
ァンアウトメモリ20をアクセスして送信先番地をレジス
タ44Aと出力ポートレジスタ26に、次の送信先番地が格
納されている。ファンアウトメモリ20のエントリを示す
ポインタをレジスタ44Bに格納する。パケット生成制
御回路25Aはまた、レジスタ42内のデータをパケット生
成制御回路25Aはまた、レジスタ42内のデータをパケッ
ト生成制御回路25Aが生成した処理コード(WRITE)とと
もに出力ポートレジスタ26に移し、第6A図に示したのと
同じ形式の書込みパケットを形成する。相互結合ネッ
トワーク7にこうして編成したパケットを送出する。そ
の後、次の送信先があればその処理を行う。すなわ
ち、レジスタ44Bに置かれたポインタの内容が空(あら
かじめ定めたビット列、例えば000……0)でなけれ
ば、その番地のファンアウトメモリ20のエントリをアク
セスして次の送信先を取り出し、再び、送信先以外は全
て今のパケットと同じパケットを編成する。
けて、レジスタ42の内容が制御トークンコードでないこ
とを確認してから、レジスタ41の内容を番地としてフ
ァンアウトメモリ20をアクセスして送信先番地をレジス
タ44Aと出力ポートレジスタ26に、次の送信先番地が格
納されている。ファンアウトメモリ20のエントリを示す
ポインタをレジスタ44Bに格納する。パケット生成制
御回路25Aはまた、レジスタ42内のデータをパケット生
成制御回路25Aはまた、レジスタ42内のデータをパケッ
ト生成制御回路25Aが生成した処理コード(WRITE)とと
もに出力ポートレジスタ26に移し、第6A図に示したのと
同じ形式の書込みパケットを形成する。相互結合ネッ
トワーク7にこうして編成したパケットを送出する。そ
の後、次の送信先があればその処理を行う。すなわ
ち、レジスタ44Bに置かれたポインタの内容が空(あら
かじめ定めたビット列、例えば000……0)でなけれ
ば、その番地のファンアウトメモリ20のエントリをアク
セスして次の送信先を取り出し、再び、送信先以外は全
て今のパケットと同じパケットを編成する。
(b)他要素プロセッサの局所メモリ2へのデータの書
込み。
込み。
データ格納命令で指定された番地が局所メモリ2の番
地範囲を超える場合は制御判定回路62で判定され、局所
メモリ2への書き込みは実行されないが、他要素プロセ
ッサへ書込みパケットを送信する動作は上記コピー動作
と同様にして実行される。その書込み対象データを他要
素プロセッサに書込む。すなわち、まず、アドレス変換
装置60が処理装置1に停止信号を送り停止させた後、
パケット生成制御回路25Aの空きをアービタ80Aを通し
て確認し、アービタ80Aが接続したバス77を用いてレ
ジスタ41に(コピーデータ領域の番地が格納されてい
る)ファンアウトメモリ20の番地を送出し、レジスタ42
にバス74上の送信すべきデータを書き込み、パケット
生成制御回路25Aに書き込みを通知した後、処理装置
1の停止を解除する。
地範囲を超える場合は制御判定回路62で判定され、局所
メモリ2への書き込みは実行されないが、他要素プロセ
ッサへ書込みパケットを送信する動作は上記コピー動作
と同様にして実行される。その書込み対象データを他要
素プロセッサに書込む。すなわち、まず、アドレス変換
装置60が処理装置1に停止信号を送り停止させた後、
パケット生成制御回路25Aの空きをアービタ80Aを通し
て確認し、アービタ80Aが接続したバス77を用いてレ
ジスタ41に(コピーデータ領域の番地が格納されてい
る)ファンアウトメモリ20の番地を送出し、レジスタ42
にバス74上の送信すべきデータを書き込み、パケット
生成制御回路25Aに書き込みを通知した後、処理装置
1の停止を解除する。
パケット生成制御回路25Aは(a)で述べたのと同様
にしてWRITEパケットを生成し、送出する。
にしてWRITEパケットを生成し、送出する。
(c)他要素プロセッサから送られたデータの書込み 書込みパケットを受信した要素プロセッサの受信パケ
ット処理制御回路30Aはパケット中の局所メリ番地を
番地レジスタ34Aにセットし、パケット中のデータをデ
ータレジスタ34Bに格納し、同時にバスアービタ80Aは
バス74が空くのを待って受信パケット処理制御回路30
Aをバスマスタにし、バススイッチ80Bを接続してバス
74を受信パケット処理制御回路30Aに放解する。受信パ
ケット処理制御回路30Aはこれを用いて番地レジスタ3
4Aの内容が指す局所メモリ内の領域にデータレジスタ34
Bの内容を格納し、バス使用権を処理装置1に返す。
ット処理制御回路30Aはパケット中の局所メリ番地を
番地レジスタ34Aにセットし、パケット中のデータをデ
ータレジスタ34Bに格納し、同時にバスアービタ80Aは
バス74が空くのを待って受信パケット処理制御回路30
Aをバスマスタにし、バススイッチ80Bを接続してバス
74を受信パケット処理制御回路30Aに放解する。受信パ
ケット処理制御回路30Aはこれを用いて番地レジスタ3
4Aの内容が指す局所メモリ内の領域にデータレジスタ34
Bの内容を格納し、バス使用権を処理装置1に返す。
(d)自要素プロセッサの局所メモリからのデータの読
出し 処理装置1がデータを局所メモリ2から読み出す命令
を解読すると、制御判定回路62がその番地が自身の局
所メモリ2の番地範囲を超えていないかどうか検査し、
超えていなければその番地で局所メモリ2をアクセス
する。
出し 処理装置1がデータを局所メモリ2から読み出す命令
を解読すると、制御判定回路62がその番地が自身の局
所メモリ2の番地範囲を超えていないかどうか検査し、
超えていなければその番地で局所メモリ2をアクセス
する。
(e)他要素プロセッサの局所メモリからのデータの読
出し 処理装置1からデータを局所メモリから読出す命令
を解読し出力するアドレスバス742上の番地が局所メモ
リ2の番地範囲を超える場合は、制御判定回路62が制
御バス74−1を用いて処理装置1に割込みをかけ、割込
み処理プログラムを起動させる。このプログラムは、読
み出し命令のオペランドアドレスを特定の番地(受信バ
ッファ番地)に変更して、返信パケットの到着通知を待
つ。次に、制御判定回路62はバスアービタに依頼して
バススイッチ80Cを接続し、ポインタレジスタ63の内容
をレジスタ41に、また、みだし指示信号に対応してREAD
コードを生成してレジスタ42に書き込む。すでに述べた
ように、パケット生成制御回路25Aはレジスタ41の内容
でファンアウトメモリ20を引いて、第6B図に示したのと
同じフォーマットのREADパケットをそのデータの所在す
る要素プロセッサに送出する。
出し 処理装置1からデータを局所メモリから読出す命令
を解読し出力するアドレスバス742上の番地が局所メモ
リ2の番地範囲を超える場合は、制御判定回路62が制
御バス74−1を用いて処理装置1に割込みをかけ、割込
み処理プログラムを起動させる。このプログラムは、読
み出し命令のオペランドアドレスを特定の番地(受信バ
ッファ番地)に変更して、返信パケットの到着通知を待
つ。次に、制御判定回路62はバスアービタに依頼して
バススイッチ80Cを接続し、ポインタレジスタ63の内容
をレジスタ41に、また、みだし指示信号に対応してREAD
コードを生成してレジスタ42に書き込む。すでに述べた
ように、パケット生成制御回路25Aはレジスタ41の内容
でファンアウトメモリ20を引いて、第6B図に示したのと
同じフォーマットのREADパケットをそのデータの所在す
る要素プロセッサに送出する。
(2)他要素プロセッサから送られてきたデータ読出し
要求の処理 受信したパケットの処理コード28AがREADのとき受信
したパケットはデータ読み出し要求パケット(READパケ
ット)である。受信パケット処理制御回路30Aはパケ
ット中の局所メモリ番地を番地レジスタ34Aに格納し、
同時にバスアービタ80Aに対しバスリクエストを送
る。バスアービタ80Aはバス74が空くのを待って受信
パケット処理制御回路30Aをバスマスタにし、バスス
イッチ80Bを接続してバス74を制御回路30に解放する。
制御回路30はこれを用いて番地レジスタ34Aの内容が
指す局所メモリ領域を読み出してこれをデータレジスタ
34Bに格納し、バス使用権を処理装置1に返す。制御
回路30Aは、さらに、パケット生成制御回路25Aに依頼
して出力ポートレジスタ26が空くのを待ち、パケット
処理制御回路30がREADパケット中の返信先番地とデータ
レジスタ34Bの内容と、READパケット受信に対応して生
成したRETURNコードをバイパス29を経由して出力ポート
レジスタ26に格納し、返信する。
要求の処理 受信したパケットの処理コード28AがREADのとき受信
したパケットはデータ読み出し要求パケット(READパケ
ット)である。受信パケット処理制御回路30Aはパケ
ット中の局所メモリ番地を番地レジスタ34Aに格納し、
同時にバスアービタ80Aに対しバスリクエストを送
る。バスアービタ80Aはバス74が空くのを待って受信
パケット処理制御回路30Aをバスマスタにし、バスス
イッチ80Bを接続してバス74を制御回路30に解放する。
制御回路30はこれを用いて番地レジスタ34Aの内容が
指す局所メモリ領域を読み出してこれをデータレジスタ
34Bに格納し、バス使用権を処理装置1に返す。制御
回路30Aは、さらに、パケット生成制御回路25Aに依頼
して出力ポートレジスタ26が空くのを待ち、パケット
処理制御回路30がREADパケット中の返信先番地とデータ
レジスタ34Bの内容と、READパケット受信に対応して生
成したRETURNコードをバイパス29を経由して出力ポート
レジスタ26に格納し、返信する。
(3)RETURNパケットの受信と処理 処理コード31A=RETURNのときは受信したパケットは
返信データ格納要求パケット(RETURNパケット)であ
る。WRITEパケットと同様の処理であるが、あらかじめ
定めてある局所メモリ2の特定の固定番地に格納し、ま
た、バス74を用いて処理装置1にデータの到着を通知す
る動作が追加される点が異なる。この通知により、処理
装置1では中断していたデータ読み出し命令を途中から
再実行するが、このときは割込み処理プログラムがオペ
ランド番地を変更しているので、必ず上記の特定番地を
読む。
返信データ格納要求パケット(RETURNパケット)であ
る。WRITEパケットと同様の処理であるが、あらかじめ
定めてある局所メモリ2の特定の固定番地に格納し、ま
た、バス74を用いて処理装置1にデータの到着を通知す
る動作が追加される点が異なる。この通知により、処理
装置1では中断していたデータ読み出し命令を途中から
再実行するが、このときは割込み処理プログラムがオペ
ランド番地を変更しているので、必ず上記の特定番地を
読む。
以下、タスクの起動制御について説明する。
(a)処理装置1で実行中のタスクは、データの定義・
格納命令の実行が終了したならば、(一般にはタスクの
最後で)該データに関連する制御トークンを後続のタス
ク、又はタスク群に送る。このため制御トークン送信命
令を実行する。
格納命令の実行が終了したならば、(一般にはタスクの
最後で)該データに関連する制御トークンを後続のタス
ク、又はタスク群に送る。このため制御トークン送信命
令を実行する。
制御トークン送信命令を解読した処理装置1は、バ
スアービタ80Aに依頼してパケット生成制御回路25Aが指
示受付可能状態にあることを確認した後、アービタ80
Aの指示でバススイッチ80Cによりバス74と接続されたバ
ス77を用いて、命令が指示している局所メモリ2の特定
番地からファンアウトメモリ20のエントリの番地を読み
出し、レジスタ41にセットし、制御トークンであること
を示すコードをレジスタ42に書き込む。ファンアウトメ
モリ20のそのエントリには、実行終了したタスクに続い
て実行されるべき後続のタスクが割りあてられている要
素プロセッサの番号と、その中の待合せ情報記憶装置32
中の、その後続のタスクに対応するエントリの番地を保
持するものである。また、上記特定番地は、待合せ情報
記憶装置32中の、実行終了したタスクに対するエントリ
の第4フィールド40に保持されているので、処理装置1
はこの第4フィールドの内容を読むことにより、その特
定番地を知ることができる。同時に、パケット生成制
御回路25Aに書き込みを通知する。ファンアウトメモ
リ20には、その要素プロセッサに割り付けられたタスク
に対応して少くとも一つのエントリが設けられている。
各エントリには対応するタスクの実行終了後に実行すべ
きタスクが割り付けられている要素プロセッサの番号
と、その要素プロセッサ内の待合せ情報記憶装置の、そ
のタスクに関する情報を記憶したエントリの番地が格納
されている。このような後続のタスクが複数ある場合、
それぞれについての上記情報を格納するエントリがファ
ンアウトメモリ20にあり、かつそれらのエントリには、
他のエントリの番地を示すポインタが格納されている。
これらのポインタを利用して上記エントリを続けてアク
セス可能にしている。さて、パケット生成制御回路25A
は前述の書き込み通知信号を受けて、レジスタ41が指す
ファンアウトメモリ20のエントリをアクセスし、その制
御トークンの送信先番地(要素プロセッサ番号と待合せ
情報記憶装置の番地)を読み出してレジスタ44Aと出力
ポートレジスタ26にセットし、そのエントリにある別の
エントリを示すポインタをレジスタ44Bに格納する。ま
た、書き込み通知信号に応答して、制御トークンであ
ることを示す処理コード(CTL)を送出し、第10図に示
す制御トークンパケットを出力ポートレジスタ26上に生
成する。パケット生成制御回路25Aはこの送信先番地
の一部である要素プロセッサ番号を自プロセッサ番号と
比較器79により比較して送信先が自分かどうか判定し、
自分の場合は、入力ポートレジスタ28が空き状態にあ
ることを受信パケット処理制御回路30Aに問い合せて確
認した後、出力ポートレジスタ26内のパケットをバイパ
ス29を経由して自分の入力ポートレジスタ28に送る。
他プロセッサの場合はパケット生成制御回路25Aが相互
結合ネットワーク7に出力ポートレジスタ26中の制御ト
ークンパケットを送出する。この後、レジスタ44Bに
置かれたポインタの内容が空(あらかじめ定めたビット
列、例えば000……0)でなければ、そのポインタで示
されるファンアウトメモリ20のエントリをアクセスして
次の送信先を取り出し、再び制御トークンパケットを送
信する。
スアービタ80Aに依頼してパケット生成制御回路25Aが指
示受付可能状態にあることを確認した後、アービタ80
Aの指示でバススイッチ80Cによりバス74と接続されたバ
ス77を用いて、命令が指示している局所メモリ2の特定
番地からファンアウトメモリ20のエントリの番地を読み
出し、レジスタ41にセットし、制御トークンであること
を示すコードをレジスタ42に書き込む。ファンアウトメ
モリ20のそのエントリには、実行終了したタスクに続い
て実行されるべき後続のタスクが割りあてられている要
素プロセッサの番号と、その中の待合せ情報記憶装置32
中の、その後続のタスクに対応するエントリの番地を保
持するものである。また、上記特定番地は、待合せ情報
記憶装置32中の、実行終了したタスクに対するエントリ
の第4フィールド40に保持されているので、処理装置1
はこの第4フィールドの内容を読むことにより、その特
定番地を知ることができる。同時に、パケット生成制
御回路25Aに書き込みを通知する。ファンアウトメモ
リ20には、その要素プロセッサに割り付けられたタスク
に対応して少くとも一つのエントリが設けられている。
各エントリには対応するタスクの実行終了後に実行すべ
きタスクが割り付けられている要素プロセッサの番号
と、その要素プロセッサ内の待合せ情報記憶装置の、そ
のタスクに関する情報を記憶したエントリの番地が格納
されている。このような後続のタスクが複数ある場合、
それぞれについての上記情報を格納するエントリがファ
ンアウトメモリ20にあり、かつそれらのエントリには、
他のエントリの番地を示すポインタが格納されている。
これらのポインタを利用して上記エントリを続けてアク
セス可能にしている。さて、パケット生成制御回路25A
は前述の書き込み通知信号を受けて、レジスタ41が指す
ファンアウトメモリ20のエントリをアクセスし、その制
御トークンの送信先番地(要素プロセッサ番号と待合せ
情報記憶装置の番地)を読み出してレジスタ44Aと出力
ポートレジスタ26にセットし、そのエントリにある別の
エントリを示すポインタをレジスタ44Bに格納する。ま
た、書き込み通知信号に応答して、制御トークンであ
ることを示す処理コード(CTL)を送出し、第10図に示
す制御トークンパケットを出力ポートレジスタ26上に生
成する。パケット生成制御回路25Aはこの送信先番地
の一部である要素プロセッサ番号を自プロセッサ番号と
比較器79により比較して送信先が自分かどうか判定し、
自分の場合は、入力ポートレジスタ28が空き状態にあ
ることを受信パケット処理制御回路30Aに問い合せて確
認した後、出力ポートレジスタ26内のパケットをバイパ
ス29を経由して自分の入力ポートレジスタ28に送る。
他プロセッサの場合はパケット生成制御回路25Aが相互
結合ネットワーク7に出力ポートレジスタ26中の制御ト
ークンパケットを送出する。この後、レジスタ44Bに
置かれたポインタの内容が空(あらかじめ定めたビット
列、例えば000……0)でなければ、そのポインタで示
されるファンアウトメモリ20のエントリをアクセスして
次の送信先を取り出し、再び制御トークンパケットを送
信する。
(b)制御トークンパケットの受信と処理 パケット処理制御回路30は制御トークンパケットを
受け取るとパケット中の処理コード28Aをデコードし、
パケット中の待合せ情報記憶装置32の番地を用いて待
合せ情報記憶装置32の一つのエントリをアクセスする。
待合せ情報記憶装置32のエントリは第9B図に示すごと
く、5つのフィールドからなる。第1フィールド37には
そのエントリが示すタスクが起動されるのに必要な制御
トークンの総数が、第2フィールド38には未到着の制御
トークン数が格納されている。制御トークンパケットが
到着するたびに、受信パケット処理制御回路30は、該
制御トークンパケットで指定されたエントリ内の第2フ
ィールド38の内容を減算器33により1だけ減ずる。そ
の結果が0になったならばこのタスクは起動可能とな
る。テールポインタレジスタ36の内容はこれまでに起動
可能となったタスクの最終のものに対する、待合せ情報
記憶装置32のエントリの番地を示すようになっている。
受け取るとパケット中の処理コード28Aをデコードし、
パケット中の待合せ情報記憶装置32の番地を用いて待
合せ情報記憶装置32の一つのエントリをアクセスする。
待合せ情報記憶装置32のエントリは第9B図に示すごと
く、5つのフィールドからなる。第1フィールド37には
そのエントリが示すタスクが起動されるのに必要な制御
トークンの総数が、第2フィールド38には未到着の制御
トークン数が格納されている。制御トークンパケットが
到着するたびに、受信パケット処理制御回路30は、該
制御トークンパケットで指定されたエントリ内の第2フ
ィールド38の内容を減算器33により1だけ減ずる。そ
の結果が0になったならばこのタスクは起動可能とな
る。テールポインタレジスタ36の内容はこれまでに起動
可能となったタスクの最終のものに対する、待合せ情報
記憶装置32のエントリの番地を示すようになっている。
このエントリの第5フィールド41にはENDと書かれて
いる。
いる。
上記エントリの第5フィールドの内容を今起動可能と
なったタスクに対応する待合せ情報記憶装置32中のエン
トリの番地に書き換える。ここに第5フィールド41の内
容は起動可能タスクのエントリの行列を構成するポイン
タ・フィールドであり、これによりこの起動可能となっ
たタスクは待ち行列につながれたことになる。また、
今起動可能となり新しく待ち行列につながれたタスクに
対応する待合せ情報記憶装置32のエントリの番地をテー
ルポインタレジスタ36に格納し、該エントリの第5フ
ィールド41の内容をENDにする。尚、第3,#2*39はそ
のタスクの実行プログラムの番地を、第4フィールド40
はそのタスクに引き渡す種々のパラメータ(基底番地、
ファンアウトメモリ20の一つのエントリの番地等)が格
納されている。局所メモリ2の領域の番地である。な
お、ヘッドポインタレジスタ35は起動可能タスクの待ち
行列の先頭番地を格納している。
なったタスクに対応する待合せ情報記憶装置32中のエン
トリの番地に書き換える。ここに第5フィールド41の内
容は起動可能タスクのエントリの行列を構成するポイン
タ・フィールドであり、これによりこの起動可能となっ
たタスクは待ち行列につながれたことになる。また、
今起動可能となり新しく待ち行列につながれたタスクに
対応する待合せ情報記憶装置32のエントリの番地をテー
ルポインタレジスタ36に格納し、該エントリの第5フ
ィールド41の内容をENDにする。尚、第3,#2*39はそ
のタスクの実行プログラムの番地を、第4フィールド40
はそのタスクに引き渡す種々のパラメータ(基底番地、
ファンアウトメモリ20の一つのエントリの番地等)が格
納されている。局所メモリ2の領域の番地である。な
お、ヘッドポインタレジスタ35は起動可能タスクの待ち
行列の先頭番地を格納している。
(c)タスク切り替え処理 処理装置1は制御トークン送出命令の実行後にタスク
切り替え処理を実行する。
切り替え処理を実行する。
タスク切り替え処理は、タスクプログラムがバスアー
ビタ80Aに依頼して、バス71を解放させ、これを用いて
ヘッドポインタレジスタ35を読むことから始まる。処理
装置1はヘッドポインタレジスタ35が指す待合せ情報記
憶装置32のエントリ(起動可能タスク列の先頭のタスク
に対するもの)の第1フィールド41にあう制御トークン
総数を第2フィールド38に移す。
ビタ80Aに依頼して、バス71を解放させ、これを用いて
ヘッドポインタレジスタ35を読むことから始まる。処理
装置1はヘッドポインタレジスタ35が指す待合せ情報記
憶装置32のエントリ(起動可能タスク列の先頭のタスク
に対するもの)の第1フィールド41にあう制御トークン
総数を第2フィールド38に移す。
これにより、待合せ情報記憶装置32中の、そのタスク
に対するエントリを初期状態にリセットしたことにな
る。処理装置1は、さらに第3フィールド39内のタスク
番地と第4フィールド40内のパラメータ番地をレジスタ
群54(第2図)内の通常な汎用レジスタに格納し、第5
フィールド41内の待ち行列ポインタを、次に起動可能な
タスクに対応するエントリの番地としてヘッドポインタ
レジスタ35に格納し、その後、上記タスク番地がセット
された汎用レジスタを用いて、上記起動可能なタスクの
実行プログラムの番地に分岐し、分岐命令を実行する。
こうして、そのタスク内の命令の実行を開始する。
に対するエントリを初期状態にリセットしたことにな
る。処理装置1は、さらに第3フィールド39内のタスク
番地と第4フィールド40内のパラメータ番地をレジスタ
群54(第2図)内の通常な汎用レジスタに格納し、第5
フィールド41内の待ち行列ポインタを、次に起動可能な
タスクに対応するエントリの番地としてヘッドポインタ
レジスタ35に格納し、その後、上記タスク番地がセット
された汎用レジスタを用いて、上記起動可能なタスクの
実行プログラムの番地に分岐し、分岐命令を実行する。
こうして、そのタスク内の命令の実行を開始する。
次に第3の実施例について説明する。
本実施例では第15図に示すアドレス変換装置60Aを用
いる。これは、第8図と比較してワード内番地レジスタ
65が付け加わっている点が異なる。また、第16図に示す
ように、レジスタ44Aと出力ポートレジスタ26の間に番
地加存器54を設ける。この実施例ではポインタメモリ65
にはデータワードの群、たとえば2n(n:整数)個のデー
タワード群対応に、ファンアウトメモリ20のあるエント
リの番地が格納されている。そのエントリには、上記デ
ータワード群のコピーデータ群を有する要素プロセッサ
番地とそのコピーデータ群の先頭のコピーデータに割り
付けられた番地(先頭コピー番地)が格納されている。
すなわち、ワード単位に番地付けされ、2nのデータ群を
ひとかたまりのセグメントとしてコピーを持たせる。こ
の場合、処理装置1で発生された番地の下nビットを除
いた残りのビット列をポインタメモリ65を読むための番
地として用いる点でのみポインタメモリ65の読み出し方
法が第2実施例て異なる。本実施例は、その他では第2
の実施例と同じである。読み出されたポインタメモリ65
の内容は制御判定回路62に送られ、空でなければポイン
タレジスタ63に送られる。また処理装置で発生された番
地の下nビット(すなわちワード内番地)はワード内番
地レジスタ65に、データはデータレジスタ64に格納され
る。パケット生成制御回路25A(第7図)に起動がかけ
られる。その後、アドレス変換装置60Aは、まずポイン
タレジスタ63の内容をレジスタ41(第7図)に続いてデ
ータレジスタ64の内容をレジスタ42(第7図)に書き込
み、さらにワード内番地レジスタ65の内容をレジスタ44
Aに書き込んだ後、パケット生成制御回路25A(第7図)
に書き込みを通知する。すでに第2の実施例で述べたよ
うにして、回路25Aがファンアウトメモリ20の一つのエ
ントリからコピー番地を読む。この番地はコピーデータ
群からなるセグメントの先頭番地であるため、番地加算
器54によりレシスタ44Aの内容と加算されて送信先番地
に変換され、出力ポートレジスタ26に送られる点が異な
る。READパケットについても同様である。
いる。これは、第8図と比較してワード内番地レジスタ
65が付け加わっている点が異なる。また、第16図に示す
ように、レジスタ44Aと出力ポートレジスタ26の間に番
地加存器54を設ける。この実施例ではポインタメモリ65
にはデータワードの群、たとえば2n(n:整数)個のデー
タワード群対応に、ファンアウトメモリ20のあるエント
リの番地が格納されている。そのエントリには、上記デ
ータワード群のコピーデータ群を有する要素プロセッサ
番地とそのコピーデータ群の先頭のコピーデータに割り
付けられた番地(先頭コピー番地)が格納されている。
すなわち、ワード単位に番地付けされ、2nのデータ群を
ひとかたまりのセグメントとしてコピーを持たせる。こ
の場合、処理装置1で発生された番地の下nビットを除
いた残りのビット列をポインタメモリ65を読むための番
地として用いる点でのみポインタメモリ65の読み出し方
法が第2実施例て異なる。本実施例は、その他では第2
の実施例と同じである。読み出されたポインタメモリ65
の内容は制御判定回路62に送られ、空でなければポイン
タレジスタ63に送られる。また処理装置で発生された番
地の下nビット(すなわちワード内番地)はワード内番
地レジスタ65に、データはデータレジスタ64に格納され
る。パケット生成制御回路25A(第7図)に起動がかけ
られる。その後、アドレス変換装置60Aは、まずポイン
タレジスタ63の内容をレジスタ41(第7図)に続いてデ
ータレジスタ64の内容をレジスタ42(第7図)に書き込
み、さらにワード内番地レジスタ65の内容をレジスタ44
Aに書き込んだ後、パケット生成制御回路25A(第7図)
に書き込みを通知する。すでに第2の実施例で述べたよ
うにして、回路25Aがファンアウトメモリ20の一つのエ
ントリからコピー番地を読む。この番地はコピーデータ
群からなるセグメントの先頭番地であるため、番地加算
器54によりレシスタ44Aの内容と加算されて送信先番地
に変換され、出力ポートレジスタ26に送られる点が異な
る。READパケットについても同様である。
このように、第2,3実施例においては、複数台の要素
プロセッサに割り付けられた多くのタスクプログラム
が、お互いの間で制御トークンを渡しあって起動をかけ
ることによりプログラムが実行されていくので、完全な
分散処理が可能であり、要素プロセッサ台数増に伴う負
荷集中が原因で制御オーバヘッドが増大することはな
い。また、第1から第3の実施例ではメモリ概念を踏襲
しているので、データフローマシンと異なりプログラム
が配列のようなデータ構造を自由に扱うことができる。
さらに、データの格納命令を実行するとき、アドレス変
換装置を中心とするメモリシステム側が他プロセッサへ
の通信をタスクの処理と並行して裏側で行うので、通信
処理のための命令実行は不要であり、送信装置が頻繁に
ビジーとなる程短いピッチで続けて格納命令を実行する
ような場合を除けば、通信に伴うオーバヘッドは表面に
現れない。このため従来のプログラムを修正無しで走ら
せることが原理的には可能となる。また、第2,第3の実
施例ではタスクの起動管理が制御トークンの待合せによ
り行われるが、制御トークンをデータの定義・参照関係
に基づき流せば、データの揃ったタスクから処理される
データ駆動方式となる。起動されたタスクは必要とする
データを全て待たずに、同じ要素プロセッサ中の局所メ
モリ中に見出すことができるので、通信処理のための命
令実行が不要であることとあいまって極限の性能を引き
出すことができるという利点がある。
プロセッサに割り付けられた多くのタスクプログラム
が、お互いの間で制御トークンを渡しあって起動をかけ
ることによりプログラムが実行されていくので、完全な
分散処理が可能であり、要素プロセッサ台数増に伴う負
荷集中が原因で制御オーバヘッドが増大することはな
い。また、第1から第3の実施例ではメモリ概念を踏襲
しているので、データフローマシンと異なりプログラム
が配列のようなデータ構造を自由に扱うことができる。
さらに、データの格納命令を実行するとき、アドレス変
換装置を中心とするメモリシステム側が他プロセッサへ
の通信をタスクの処理と並行して裏側で行うので、通信
処理のための命令実行は不要であり、送信装置が頻繁に
ビジーとなる程短いピッチで続けて格納命令を実行する
ような場合を除けば、通信に伴うオーバヘッドは表面に
現れない。このため従来のプログラムを修正無しで走ら
せることが原理的には可能となる。また、第2,第3の実
施例ではタスクの起動管理が制御トークンの待合せによ
り行われるが、制御トークンをデータの定義・参照関係
に基づき流せば、データの揃ったタスクから処理される
データ駆動方式となる。起動されたタスクは必要とする
データを全て待たずに、同じ要素プロセッサ中の局所メ
モリ中に見出すことができるので、通信処理のための命
令実行が不要であることとあいまって極限の性能を引き
出すことができるという利点がある。
また、第3実施例ではセグメント単位にコピーの番地
を管理するので、第2実施例に比べてポインタメモリ65
の容量はより少なくて済むという利点がある。
を管理するので、第2実施例に比べてポインタメモリ65
の容量はより少なくて済むという利点がある。
以上述べたように、本願発明によれば、要素プロセッ
サ間のデータ転送に起因する不要な時間の削減を図るこ
とができる。また、本願発明によればタスク起動制御の
集中を排除できる。
サ間のデータ転送に起因する不要な時間の削減を図るこ
とができる。また、本願発明によればタスク起動制御の
集中を排除できる。
第1図は、本発明による並列計算機の第1の実施例を示
す図、 第2図は、第1図の装置の処理装置(1)の概略ブロッ
ク図を示す図、 第3図は、第1図の装置で用いるセグメントテーブル
(110)の構造を示す図、 第4図は、第1図の装置の2つの要素プロセッサにおけ
る仮想空間と物理空間へのデータの割り付け例を示す
図、 第5図は、第1図の装置における番地変換および他要素
プロセッサ内仮想番地の生成処理フローの模式図、 第6A図は、第1図の装置に用いらる書込みパケットのフ
ォーマットを示す図、 第6B図は、第1図の装置に用いられる読出しパケットの
フォーマットを示す図、 第6C図は、第1図の装置に用いられる返送パケットのフ
ォーマットを示す図、 第7図は、本発明による並列計算機の第2の実施例を示
す図、 第8図は、第7図の装置におけるアドレス変換装置
(5)の概略ブロック図を示す図、 第9A図は、第7図の装置におけるファンアウトメモリ
(20)の内容を示す図、 第9B図は、第7図の装置に用いる待合せ情報記憶装置
(32)の記憶内容を示す図、 第10図は、第7図の装置に用いられる制御トークンパケ
ットのフォーマットを示す図、 第11図は、第7図の装置における、異なる要素プロセッ
サへのデータの割付けの例を示す図、 第12図は、装置における、異なるプロセッサに対するデ
ータの割り付け例を示す図、 第13図はFortranプログラムの例を示す図、 第14図は第11図のプログラムに対するタスクフローグラ
フを示す図、 第15図は、本発明による並列計算機の第3の実施例に用
いるアドレス変換装置(5)を示す図、 第16図は、上記第3の実施例に用いるパケット生成に関
する回路を示す図である。
す図、 第2図は、第1図の装置の処理装置(1)の概略ブロッ
ク図を示す図、 第3図は、第1図の装置で用いるセグメントテーブル
(110)の構造を示す図、 第4図は、第1図の装置の2つの要素プロセッサにおけ
る仮想空間と物理空間へのデータの割り付け例を示す
図、 第5図は、第1図の装置における番地変換および他要素
プロセッサ内仮想番地の生成処理フローの模式図、 第6A図は、第1図の装置に用いらる書込みパケットのフ
ォーマットを示す図、 第6B図は、第1図の装置に用いられる読出しパケットの
フォーマットを示す図、 第6C図は、第1図の装置に用いられる返送パケットのフ
ォーマットを示す図、 第7図は、本発明による並列計算機の第2の実施例を示
す図、 第8図は、第7図の装置におけるアドレス変換装置
(5)の概略ブロック図を示す図、 第9A図は、第7図の装置におけるファンアウトメモリ
(20)の内容を示す図、 第9B図は、第7図の装置に用いる待合せ情報記憶装置
(32)の記憶内容を示す図、 第10図は、第7図の装置に用いられる制御トークンパケ
ットのフォーマットを示す図、 第11図は、第7図の装置における、異なる要素プロセッ
サへのデータの割付けの例を示す図、 第12図は、装置における、異なるプロセッサに対するデ
ータの割り付け例を示す図、 第13図はFortranプログラムの例を示す図、 第14図は第11図のプログラムに対するタスクフローグラ
フを示す図、 第15図は、本発明による並列計算機の第3の実施例に用
いるアドレス変換装置(5)を示す図、 第16図は、上記第3の実施例に用いるパケット生成に関
する回路を示す図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 中尾 和夫 神奈川県川崎市麻生区王禅寺1099番地 株式会社日立製作所システム開発研究所 内 (72)発明者 迫田 行介 神奈川県川崎市麻生区王禅寺1099番地 株式会社日立製作所システム開発研究所 内 (72)発明者 濱中 直樹 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 長島 重夫 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 田中 輝雄 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 能見 誠 神奈川県川崎市麻生区王禅寺1099番地 株式会社日立製作所システム開発研究所 内
Claims (4)
- 【請求項1】相互に通信可能に接続された複数の要素プ
ロセッサからなる並列計算機において、各要素プロセッ
サは、 (a)データおよびその要素プロセッサに割付けられた
タスクプログラムの命令列を保持するためのメモリと、 (b)前記メモリに保持された命令列を実行する命令実
行手段であって、メモリ読出し命令又はメモリ書込み命
令に応答して、前記メモリの、前記命令で指定される記
憶位置をアクセスする手段を有するものと、 (c)前記命令実行手段によるメモリ書込み命令の実行
に応答して、前記メモリ書込み命令が指定するメモリア
ドレスが予め定めたアドレスに一致するか否かを判定
し、一致が検出されたときに、前記メモリ書込み命令に
よる前記メモリに書き込まれたデータと同じデータを、
そのデータを利用する命令を実行するようにあらかじめ
定められている他の要素プロセッサに送出する手段と、 を有することを特徴とする並列計算機。 - 【請求項2】前記送出手段は、前記データとともに、前
記他の要素プロセッサが保持する前記メモリ内での前記
データの記憶位置に対応するアドレス情報を送出するこ
とを特徴とする特許請求の範囲第1項記載の並列計算
機。 - 【請求項3】前記各要素プロセッサは、さらに、他の要
素プロセッサから送出されたデータおよびアドレス情報
を受信して、前記アドレス情報に対応するメモリ内の記
憶位置に前記データを格納する手段を有することを特徴
とする特許請求の範囲第2項記載の並列計算機。 - 【請求項4】相互に通信可能に接続された複数の要素プ
ロセッサからなる並列計算機において、各要素プロセッ
サは、 (a)データおよびその要素プロセッサに割付けられた
タスクプログラムの命令列を保持するための第1のメモ
リと、 (b)実行中のタスクプログラムのを命令列を順次実行
するように、前記第1のメモリに保持された命令列を実
行する手段であって、実行中のタスクプログラムに含ま
れる所定の命令に応答して、前記タスクプログラムの実
行後に実行が許される他のタスクプログラムが割付けら
れている要素プロセッサに向けて、制御トークン信号と
前記他のタスクプログラムを指定する信号を送出する手
段を手段を有するものと、 (c)その要素プロセッサに割り付けられたタスクプロ
グラムの各々に対して、それぞれが実行される前に受信
されるべき制御トークンの複数を保持する第2のメモリ
と、 (d)他の要素プロセッサから送出された制御トークン
信号に応答して、その要素プロセッサに割付けられたタ
スクプログラムの内のいずれが実行可能かを、各タスク
プログラムについて前記第2のメモリに保持された制御
トークン総数と各タスクプログラムについてすでに受信
された制御トークンの総数から判断し、実行可能と判断
されたタスクプログラムを該実行手段に通知する制御手
段と、 を有することを特徴とする並列計算機。
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 JPH011049A (ja) | 1989-01-05 |
JP2602241B2 true 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)
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芯片、电子设备及存储介质 |
-
1987
- 1987-09-04 JP JP62220130A patent/JP2602241B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPS641049A (en) | 1989-01-05 |
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 | |
US7533197B2 (en) | System and method for remote direct memory access without page locking by the operating system | |
US5029070A (en) | Coherent cache structures and methods | |
US5434970A (en) | System for distributed multiprocessor communication | |
US8607004B2 (en) | Distributed symmetric multiprocessing computing architecture | |
US6363453B1 (en) | Parallel processor with redundancy of processor pairs | |
US20040073755A1 (en) | Broadcast invalidate scheme | |
JPH10143482A (ja) | エフィシェントな書込み動作を実行するマルチプロセッサ・システム | |
EP0553743A1 (en) | A cache controller | |
JPH10187645A (ja) | プロセス・ノードの多数のサブノード内にコヒーレンス状態で格納するように構成されたマルチプロセス・システム | |
JPH10143483A (ja) | ミグラトリ・データ・アクセス・パターンを検出し、効果的に提供するように構成されたマルチプロセスシステム | |
US5165038A (en) | Global registers for a multiprocessor system | |
US7069394B2 (en) | Dynamic data routing mechanism for a high speed memory cloner | |
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 | |
JP2001092772A (ja) | 同期固定レイテンシループを使用するデータバス | |
US6898677B2 (en) | Dynamic software accessibility to a microprocessor system with a high speed memory cloner | |
JP2602241B2 (ja) | 並列計算機 | |
JP3836836B2 (ja) | メモリ複製オペレーション時の不正確なキャッシュ・ライン保護機構 | |
US7502917B2 (en) | High speed memory cloning facility via a lockless multiprocessor mechanism | |
US6915390B2 (en) | High speed memory cloning facility via a coherently done mechanism | |
JPH011049A (ja) | 並列計算機 | |
JP2001236335A (ja) | 分散メモリ型並列計算機及びそのデータ転送終了確認方法 | |
US6928524B2 (en) | Data processing system with naked cache line write operations | |
CN113176950B (zh) | 报文处理方法、装置、设备及计算机可读存储介质 |