JPH02132575A - 並列計算機,ベクトルレジスタ間データフロー同期装置およびネットワークプリセット装置 - Google Patents
並列計算機,ベクトルレジスタ間データフロー同期装置およびネットワークプリセット装置Info
- Publication number
- JPH02132575A JPH02132575A JP63285654A JP28565488A JPH02132575A JP H02132575 A JPH02132575 A JP H02132575A JP 63285654 A JP63285654 A JP 63285654A JP 28565488 A JP28565488 A JP 28565488A JP H02132575 A JPH02132575 A JP H02132575A
- Authority
- JP
- Japan
- Prior art keywords
- vector
- data
- register
- address
- synchronization
- 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
Links
Landscapes
- Multi Processors (AREA)
- Complex Calculations (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、並列計算機に係り、特に繰返しループの負荷
分散処理が主体の数値計算用並列計算機に関する. 〔従来の技術〕 従来の数値計算用並列計算機には、下記文献1記載の局
所メモリ型の並列計算機、下記文献2記載の共有メモリ
型の並列計算機2下記文献3記載のベクトル計算機のマ
ルチプロセッサがある.文献1 チャールズ・エル・サ
イツ:ザ コズミツク キューブ,コミュニケーション
ズ オブザ エーシーエム,28巻1号,22〜33頁
,1985年 (Charles L. Seitz : The C
osi+ic Cube,Com+aunicatio
ns of the ACM, vo Q .28,
Nnl, pp.22−33. 1985) 文献2 アラン ゴットリーブ他:ザ NYUウルトラ
コンピューターデザイニング アンMIMD シエア
ド メモリ パラレル コンピュータ,IEEE ト
ランザクションズ オンコンピューターズ C−32巻
,2号,175〜189頁,1983年 (Allan Gottligb et.al.:Th
e NYU Ultracomputer−Desig
ning an MIND Shared Memor
y ParallelComputer, IEEE
Transactions on Computsrs
,voQ .C−32, N(L2, pp.l75−
189. 1983)文献3 寺内和也:主記憶2Gバ
イトで液浸冷却方式のCRAY−2スーパーコンピュー
タ,日経エレクトロニクス,1985.12.16号,
195〜209頁,1985年 このうち、文献1記載の局所メモリ型の並列計算機では
、解くべき問題を使用する並列計算機の構成に合わせて
分割し,各要素プロセッサ毎のプログラムを作成する.
要素プロセッサ間でデータを交換する場合には,データ
の送受信命令,例えばSEND命令, RECIVE命
令を発行する。また、逐次処理が必要な場合は、どれか
1台の要素プロセッサが他の要素プロセッサと同期を取
った後これを実行する。
分散処理が主体の数値計算用並列計算機に関する. 〔従来の技術〕 従来の数値計算用並列計算機には、下記文献1記載の局
所メモリ型の並列計算機、下記文献2記載の共有メモリ
型の並列計算機2下記文献3記載のベクトル計算機のマ
ルチプロセッサがある.文献1 チャールズ・エル・サ
イツ:ザ コズミツク キューブ,コミュニケーション
ズ オブザ エーシーエム,28巻1号,22〜33頁
,1985年 (Charles L. Seitz : The C
osi+ic Cube,Com+aunicatio
ns of the ACM, vo Q .28,
Nnl, pp.22−33. 1985) 文献2 アラン ゴットリーブ他:ザ NYUウルトラ
コンピューターデザイニング アンMIMD シエア
ド メモリ パラレル コンピュータ,IEEE ト
ランザクションズ オンコンピューターズ C−32巻
,2号,175〜189頁,1983年 (Allan Gottligb et.al.:Th
e NYU Ultracomputer−Desig
ning an MIND Shared Memor
y ParallelComputer, IEEE
Transactions on Computsrs
,voQ .C−32, N(L2, pp.l75−
189. 1983)文献3 寺内和也:主記憶2Gバ
イトで液浸冷却方式のCRAY−2スーパーコンピュー
タ,日経エレクトロニクス,1985.12.16号,
195〜209頁,1985年 このうち、文献1記載の局所メモリ型の並列計算機では
、解くべき問題を使用する並列計算機の構成に合わせて
分割し,各要素プロセッサ毎のプログラムを作成する.
要素プロセッサ間でデータを交換する場合には,データ
の送受信命令,例えばSEND命令, RECIVE命
令を発行する。また、逐次処理が必要な場合は、どれか
1台の要素プロセッサが他の要素プロセッサと同期を取
った後これを実行する。
共有メモリ型の並列計算機では、データは分割せずに共
有メモリに置き、プログラムを分割または複写して各要
素プロセッサで実行させる。このため、要素プロセッサ
間で送受信命令を用いてデータを交換する必要はなく、
代りに共有メモリを読み書きする.そのため、読み書き
の順序を制御するために,データを定義する側の要素プ
ロセッサと参照する側の要素プロセッサとの間で同期を
取る必要がある。代表的な同期手段としては、メモリの
ロック,アンロツク手続きがある。
有メモリに置き、プログラムを分割または複写して各要
素プロセッサで実行させる。このため、要素プロセッサ
間で送受信命令を用いてデータを交換する必要はなく、
代りに共有メモリを読み書きする.そのため、読み書き
の順序を制御するために,データを定義する側の要素プ
ロセッサと参照する側の要素プロセッサとの間で同期を
取る必要がある。代表的な同期手段としては、メモリの
ロック,アンロツク手続きがある。
ベクトル計算機のマルチプロセッサも、同様に共有メモ
リ型であり、要素プロセッサ間共有データは共有メモリ
に置いて、ロック/アンロツタ制御によりこれを読み書
きする.従って、ベクトル処理(ベクトルレジスタを使
用する)の並列処理は、ループ内の変数間に依存関係が
ない場合に限られる. 下記文献4には、分散メモリ上に共有メモリを構築する
例が記載されている。この例では、各要素プロセッサが
自分のメモリ中に存在するデータをアクセスする場合は
高速であるが、他の要素プロセッサ中のメモリをアクセ
スする場合は、ネットワークを経由するため遅い. 文献4 ジー・エフ・フイスター他:ザ アイビーエム
リサーチ パラレル プロセッサ プロトタイプ(R
P3):イントロダクション アンド アーキテクチャ
,プロシーデイングズ オブザ 1985 インターナ
ショナル コンファレンス イン パラレル プロセシ
ング,764〜771頁,1985年 (G.F.Pfistsr st.al. : The
IBM Research ParalleI Pr
ocessor Prototype(RP3) :
Introduction andArchitect
ure,Proceedings of tha 19
85International Conferenc
e in ParallelProcessingy
pp.764−771. 1985)〔発明が解決しよ
うとする課題〕 まず、局所メモリ型の並列計算機は、利用者が?列計算
機の横成を意識して問題を分割しなくてはならないとい
う大きな問題がある. 残る3種類の並列計算機■共有メモリ型の並列計算機,
ベクトル計算機のマルチプロセッサ,分散型共有メモリ
を持つ並列計算機■には、次のような問題点がある。
リ型であり、要素プロセッサ間共有データは共有メモリ
に置いて、ロック/アンロツタ制御によりこれを読み書
きする.従って、ベクトル処理(ベクトルレジスタを使
用する)の並列処理は、ループ内の変数間に依存関係が
ない場合に限られる. 下記文献4には、分散メモリ上に共有メモリを構築する
例が記載されている。この例では、各要素プロセッサが
自分のメモリ中に存在するデータをアクセスする場合は
高速であるが、他の要素プロセッサ中のメモリをアクセ
スする場合は、ネットワークを経由するため遅い. 文献4 ジー・エフ・フイスター他:ザ アイビーエム
リサーチ パラレル プロセッサ プロトタイプ(R
P3):イントロダクション アンド アーキテクチャ
,プロシーデイングズ オブザ 1985 インターナ
ショナル コンファレンス イン パラレル プロセシ
ング,764〜771頁,1985年 (G.F.Pfistsr st.al. : The
IBM Research ParalleI Pr
ocessor Prototype(RP3) :
Introduction andArchitect
ure,Proceedings of tha 19
85International Conferenc
e in ParallelProcessingy
pp.764−771. 1985)〔発明が解決しよ
うとする課題〕 まず、局所メモリ型の並列計算機は、利用者が?列計算
機の横成を意識して問題を分割しなくてはならないとい
う大きな問題がある. 残る3種類の並列計算機■共有メモリ型の並列計算機,
ベクトル計算機のマルチプロセッサ,分散型共有メモリ
を持つ並列計算機■には、次のような問題点がある。
(1)共有メモリ型の並列計算機では、1台当りの性能
がベクトル計算機のように高くないので、システム全体
の性能を高くしようとすると多数台を結合しなくてはな
らない。これは、要素プロセッサと共有メモリを結合す
る装置のハードウエア量が増加し、メモリアクセスに時
間がかかる他,メモリアクセス競合を引き起こす等の問
題を生み出す。特に,データを複数台の要素プロセッサ
で共有する場合には,メモリロック等の同期オーバヘッ
ドが大きくなり、多数台の要素プロセッサを結合しても
性能が出ないという問題がある. (2)ベクトル計算機のマルチプロセッサでは,1台当
りの性能が高いので、多数台の要素プロセツサを結合す
る必要性は低い。しかし,やはりメモリロック等の同期
オーバヘッドは大きく、またデータ依存関係のあるルー
プのベクトル処理を並列に実行できないという問題があ
る。
がベクトル計算機のように高くないので、システム全体
の性能を高くしようとすると多数台を結合しなくてはな
らない。これは、要素プロセッサと共有メモリを結合す
る装置のハードウエア量が増加し、メモリアクセスに時
間がかかる他,メモリアクセス競合を引き起こす等の問
題を生み出す。特に,データを複数台の要素プロセッサ
で共有する場合には,メモリロック等の同期オーバヘッ
ドが大きくなり、多数台の要素プロセッサを結合しても
性能が出ないという問題がある. (2)ベクトル計算機のマルチプロセッサでは,1台当
りの性能が高いので、多数台の要素プロセツサを結合す
る必要性は低い。しかし,やはりメモリロック等の同期
オーバヘッドは大きく、またデータ依存関係のあるルー
プのベクトル処理を並列に実行できないという問題があ
る。
(3)分散型共有メモリを持つ並列計算機は、データが
自メモリ中にある場合には高速にアクセスでき、メモリ
競合も発生しないので,多数台の要素プロセッサを結合
するのに向いた方式である。しかし、要素プロセッサ間
でデータを交換する場合には通信に時間がかかる。また
、一旦データを分散メモリ上に割り付けてしまうと、ベ
クトル計算機がベクトル処理を行うために内側ループと
外側ループとを交換してループの独立性を得るというよ
うなプログラムの変換ができず、必然的に依存型のルー
プをより多く対象としなければならなくなる。これは,
要素プロセッサ間の同期のオーバヘッドが増大すること
につながる. 本発明の目的は,利用者が並列計算機の構成を意識して
問題を分割する必要がなく、さらに高性能を出すことの
できる並列計算機であるベクトル計算機のマルチプロセ
ッサ,分散型共有メモリを持つ並列計算機に共通の問題
点である。
自メモリ中にある場合には高速にアクセスでき、メモリ
競合も発生しないので,多数台の要素プロセッサを結合
するのに向いた方式である。しかし、要素プロセッサ間
でデータを交換する場合には通信に時間がかかる。また
、一旦データを分散メモリ上に割り付けてしまうと、ベ
クトル計算機がベクトル処理を行うために内側ループと
外側ループとを交換してループの独立性を得るというよ
うなプログラムの変換ができず、必然的に依存型のルー
プをより多く対象としなければならなくなる。これは,
要素プロセッサ間の同期のオーバヘッドが増大すること
につながる. 本発明の目的は,利用者が並列計算機の構成を意識して
問題を分割する必要がなく、さらに高性能を出すことの
できる並列計算機であるベクトル計算機のマルチプロセ
ッサ,分散型共有メモリを持つ並列計算機に共通の問題
点である。
メモリロツク等の同期オーバヘッドが大きいことを解決
する同期手段およびそれを用いた並列計算機およびベク
トル計算機を提供することにある。
する同期手段およびそれを用いた並列計算機およびベク
トル計算機を提供することにある。
本発明のさらに他の目的は、ベクトル計算機のマルチプ
ロセッサに固有の問題である。
ロセッサに固有の問題である。
データ依存関係のあるループのベクトル処理を並列に実
行できないことを解決したベクトル計算機を提供するこ
とにある。
行できないことを解決したベクトル計算機を提供するこ
とにある。
さらに、本発明の他の目的は分散型共有メモリを持つ並
列計算機に顕著である。
列計算機に顕著である。
通信に時間がかかるという問題を解決した並列計算機を
提供することにある。
提供することにある。
上記問題点を解決するために、本発明の並列計算機では
,ホスト計算機から全要素プロセッサの記憶装置中の同
一アドレスに対して一度に情報を書き込む放送手段と,
全要素プロセッサの処理終了を検出する全同期手段と、
任意の要素プロセッサ間で情報の授受を行うための相互
結合ネットワークと、情報の授受を行うときにその記憶
装置への書き込み,読みだしに関する同期をとるために
各要素プロセッサに設けた同期用変数または同期用レジ
スタとその排他的加減算回路とから構成されるデータフ
ロー同期手段とを備える。
,ホスト計算機から全要素プロセッサの記憶装置中の同
一アドレスに対して一度に情報を書き込む放送手段と,
全要素プロセッサの処理終了を検出する全同期手段と、
任意の要素プロセッサ間で情報の授受を行うための相互
結合ネットワークと、情報の授受を行うときにその記憶
装置への書き込み,読みだしに関する同期をとるために
各要素プロセッサに設けた同期用変数または同期用レジ
スタとその排他的加減算回路とから構成されるデータフ
ロー同期手段とを備える。
また、本発明の好ましい態様では、ベクトル計算機のマ
ルチプロセッサのように要素プロセッサがベクトル演算
装置を有し,1台の要素プロセッサのベクトルレジスタ
から他の1台または複数台の要素プロセッサのベクトル
レジスタに直接データを送るための経路を設定する手段
、およびその値が0のときデータのベクトルレジスタへ
の書き込みができ、その値が1のときデータのベクトル
レジスタからの読みたしができる、各語単位に設けたタ
グフィールドを持つベクトルレジスタと,タグフィール
ドの値を操作する手段とから成るベクトルレジスタ間デ
ータフロー同期装置を備える.さらに,通信のオーバヘ
ッド削減のために、相互結合ネットワークの接続パタン
をネットワーク利用時以前に設定するネットワーク接続
パタン設定回路と、送信元要素プロセッサ番号をそこか
ら送られてくるデータを格納するベクトルレジスタアド
レスまたは記憶装置中の格納領域アドレスに変換する格
納アドレス生成回路とから成るネットワークプリセット
装置を備える. 〔作用〕 並列実行させる一つの繰返しループの終了の検出を、全
要素プロセッサの処理終了を検出する全同期手段を用い
て高速に行い、該ループに引き続き並列実行させる他の
ループをホスト計算機から全要素プロセッサの記憶装置
中の同一アドレスに対して一度に情報を書き込む放送手
段により高速に開始し,このようにして両ループの間に
存在するデータ依存関係を満たすための同期を高速に取
ることが可能となる.また、情報の生産者側要素プロセ
ッサが情報を消費者側要素プロセッサに転送した後、消
費者側要素プロセッサの同期用変数または同期用レジス
タの内容を1だけ排他的加減算回路を用いて増加し,消
費者側要素プロセッサは自プロセッサ内の同期用変数ま
たは同期用レジスタの内容が正なら排他的加減算回討を
用いて1だけ減少させた後転送されてきた情報を参照す
る(または消費者側要素プロセッサが生産者側要素プロ
セッサの情報を参照した後、生産者側要素プロセッサの
同期用変数または同期用レジスタの内容を1だけ排他的
加減算回路を用いて増加し,生産者側要素プロセッサは
自プロセッサ内の同期用変数または同期用レジスタの内
容が正なら排他的加減算回路を用いて1だけ減少させた
後該情報を再定義する)ことにより、メモリをロック,
アンロックする手続きをせずに共有データをアクセスす
ることができ、一つの繰返しループ内に要素プロセッサ
間にまたがるデータ依存関係が存在しても,過大なオー
バヘッドを伴わずに並列処理することができる. とくに、要素プロセッサがベクトル演算装置を持つ場合
,要素プロセッサ間にまたがったデータ依存関係のある
ループのベクトル処理においては、異なる要素プロセッ
サに属すベクトルレジスタ間の経路設定手段を用いて、
該依存関係を表わすデータフローに従って1台の要素プ
ロセッサのベクトルレジスタから他の1台または複数台
の要素プロセッサのベクトルレジスタに直接データを送
るための経路を設定し,ベクトルレジスタの各語単位に
設けたタグフィールドの内容がデータの到着を示してい
ればその内容をベクトル演算器に入力し、また,タグフ
ィールドの内容がデータの未倒着を示していればそこに
データを書き込む.このようにして、本発明のベクトル
レジスタ間データフロー同期装置を用いることにより、
要素プロセッサ間にまたがったデータ依存関係のあるル
ープのベクトル処理を並列に実行することが可能となる
。
ルチプロセッサのように要素プロセッサがベクトル演算
装置を有し,1台の要素プロセッサのベクトルレジスタ
から他の1台または複数台の要素プロセッサのベクトル
レジスタに直接データを送るための経路を設定する手段
、およびその値が0のときデータのベクトルレジスタへ
の書き込みができ、その値が1のときデータのベクトル
レジスタからの読みたしができる、各語単位に設けたタ
グフィールドを持つベクトルレジスタと,タグフィール
ドの値を操作する手段とから成るベクトルレジスタ間デ
ータフロー同期装置を備える.さらに,通信のオーバヘ
ッド削減のために、相互結合ネットワークの接続パタン
をネットワーク利用時以前に設定するネットワーク接続
パタン設定回路と、送信元要素プロセッサ番号をそこか
ら送られてくるデータを格納するベクトルレジスタアド
レスまたは記憶装置中の格納領域アドレスに変換する格
納アドレス生成回路とから成るネットワークプリセット
装置を備える. 〔作用〕 並列実行させる一つの繰返しループの終了の検出を、全
要素プロセッサの処理終了を検出する全同期手段を用い
て高速に行い、該ループに引き続き並列実行させる他の
ループをホスト計算機から全要素プロセッサの記憶装置
中の同一アドレスに対して一度に情報を書き込む放送手
段により高速に開始し,このようにして両ループの間に
存在するデータ依存関係を満たすための同期を高速に取
ることが可能となる.また、情報の生産者側要素プロセ
ッサが情報を消費者側要素プロセッサに転送した後、消
費者側要素プロセッサの同期用変数または同期用レジス
タの内容を1だけ排他的加減算回路を用いて増加し,消
費者側要素プロセッサは自プロセッサ内の同期用変数ま
たは同期用レジスタの内容が正なら排他的加減算回討を
用いて1だけ減少させた後転送されてきた情報を参照す
る(または消費者側要素プロセッサが生産者側要素プロ
セッサの情報を参照した後、生産者側要素プロセッサの
同期用変数または同期用レジスタの内容を1だけ排他的
加減算回路を用いて増加し,生産者側要素プロセッサは
自プロセッサ内の同期用変数または同期用レジスタの内
容が正なら排他的加減算回路を用いて1だけ減少させた
後該情報を再定義する)ことにより、メモリをロック,
アンロックする手続きをせずに共有データをアクセスす
ることができ、一つの繰返しループ内に要素プロセッサ
間にまたがるデータ依存関係が存在しても,過大なオー
バヘッドを伴わずに並列処理することができる. とくに、要素プロセッサがベクトル演算装置を持つ場合
,要素プロセッサ間にまたがったデータ依存関係のある
ループのベクトル処理においては、異なる要素プロセッ
サに属すベクトルレジスタ間の経路設定手段を用いて、
該依存関係を表わすデータフローに従って1台の要素プ
ロセッサのベクトルレジスタから他の1台または複数台
の要素プロセッサのベクトルレジスタに直接データを送
るための経路を設定し,ベクトルレジスタの各語単位に
設けたタグフィールドの内容がデータの到着を示してい
ればその内容をベクトル演算器に入力し、また,タグフ
ィールドの内容がデータの未倒着を示していればそこに
データを書き込む.このようにして、本発明のベクトル
レジスタ間データフロー同期装置を用いることにより、
要素プロセッサ間にまたがったデータ依存関係のあるル
ープのベクトル処理を並列に実行することが可能となる
。
さらに、ネットワーク接続パタン設定回路により事前に
通信路を定めれば,通信の宛先をデコードしてスイッチ
を切替る動作が不要になり,また、宛先自体も送る必要
がない。さらに、格納アドレス生成回路により送られて
きたデータの格納先を受信側ハードウエアで生成できる
ので、アドレスを送る必要がなく通信量が低減できる。
通信路を定めれば,通信の宛先をデコードしてスイッチ
を切替る動作が不要になり,また、宛先自体も送る必要
がない。さらに、格納アドレス生成回路により送られて
きたデータの格納先を受信側ハードウエアで生成できる
ので、アドレスを送る必要がなく通信量が低減できる。
以下、本発明の実施例を図面により詳細に説明する.
去mエ
第2図は,本発明の並列計算機の全体構成図である.1
台のホスト計算機/と呼ぶ通常の逐次処理型計算機の下
に複数台の要素プロセッサーが接続されており、それら
が相互結合ネットワーク3で結合されている.ホスト計
算機/と要素プロセッサコの間には、制御信号・データ
を交換するための結合パスと、要素プロセッサーの処理
終了信号を要素プロセッサーからホスト計算機/に伝送
する全同期信号線が張られている.ホスト計算機lは、
結合バスダを用いて要素プロセッサλに情報を放送する
。全同期信号線6は途中でAND回路乙によりANDが
とられ、要素プロセッサ全体が動作終了した場合にのみ
全同期信号がホスト計算機lに伝えられる。相互結合ネ
ットワーク3は,任意の要素プロセッサ間を結合するこ
とができるものとする。
台のホスト計算機/と呼ぶ通常の逐次処理型計算機の下
に複数台の要素プロセッサーが接続されており、それら
が相互結合ネットワーク3で結合されている.ホスト計
算機/と要素プロセッサコの間には、制御信号・データ
を交換するための結合パスと、要素プロセッサーの処理
終了信号を要素プロセッサーからホスト計算機/に伝送
する全同期信号線が張られている.ホスト計算機lは、
結合バスダを用いて要素プロセッサλに情報を放送する
。全同期信号線6は途中でAND回路乙によりANDが
とられ、要素プロセッサ全体が動作終了した場合にのみ
全同期信号がホスト計算機lに伝えられる。相互結合ネ
ットワーク3は,任意の要素プロセッサ間を結合するこ
とができるものとする。
第1図は,第1実施例の並列計算機の1台の要素プロセ
ッサと相互結合ネットワークの構成図である.要素プロ
セッサーは通常の逐次処理型計算機であり、処理ユニッ
ト.2/,メモリ制御ユニットコ一,局所メモリ.2J
,SENDユニット一ダ,RECEIVEユニット−6
,全同期用レジスター6とから成っている。処理ユニッ
ト−27はいわゆるCPUであり、メモリ制御ユニット
一一は処理ユニット,2/,SEND!ニット一II
, RECEIVE ユニット−6およびホスト計算機
/から局所メモリ,23へのアクセス要求を調停する装
置である。メモリ制御ユニット.2.2は動的アドレス
変換装置を含んでもよい。処理ユニット..2/,メモ
リ制御ユニット一一,局所メモリ−3は通常の計算機に
おけるものと同一であり、本発明に直接関係しないので
これ以上の説明は省略する. SENDユニット一ダは、処理ユニットコ/またはメモ
リ制御ユニット一一の指示により他の要素プロセッサー
の局所メモリ.23にデータを送信する装置であり、R
ECEIVEユニット.2jはこれを受信してメモリ制
御ユニット.2.2経由で局所メモリ.23に書き込む
装置である。これらの装置は、さらにいくつかの複雑な
処理、例えばデータ要求情報の送信と返信、等を行うも
のとしてもよいが、それらの内容は本発明に直接関係し
ないのでこれ以上の説明は省略する。
ッサと相互結合ネットワークの構成図である.要素プロ
セッサーは通常の逐次処理型計算機であり、処理ユニッ
ト.2/,メモリ制御ユニットコ一,局所メモリ.2J
,SENDユニット一ダ,RECEIVEユニット−6
,全同期用レジスター6とから成っている。処理ユニッ
ト−27はいわゆるCPUであり、メモリ制御ユニット
一一は処理ユニット,2/,SEND!ニット一II
, RECEIVE ユニット−6およびホスト計算機
/から局所メモリ,23へのアクセス要求を調停する装
置である。メモリ制御ユニット.2.2は動的アドレス
変換装置を含んでもよい。処理ユニット..2/,メモ
リ制御ユニット一一,局所メモリ−3は通常の計算機に
おけるものと同一であり、本発明に直接関係しないので
これ以上の説明は省略する. SENDユニット一ダは、処理ユニットコ/またはメモ
リ制御ユニット一一の指示により他の要素プロセッサー
の局所メモリ.23にデータを送信する装置であり、R
ECEIVEユニット.2jはこれを受信してメモリ制
御ユニット.2.2経由で局所メモリ.23に書き込む
装置である。これらの装置は、さらにいくつかの複雑な
処理、例えばデータ要求情報の送信と返信、等を行うも
のとしてもよいが、それらの内容は本発明に直接関係し
ないのでこれ以上の説明は省略する。
相互結合ネットワークJは,任意要素プロセッサ間を結
合することのできるものであれば何でもよい。第1図で
は完全結合のフルクロスバスイッチを図示している.ス
イッチの詳細な回路楕成は第3図〜第5図に示されてい
る。SENDユニット.2ダから送出される情報は,(
宛先要素プロセッサアドレス,書き込み領域のアドレス
,書き込みデータの値)とから構成されている。情報が
データ線/Oを経由してクロスバスイッチのデイストリ
ビュータ3/に到着すると、宛先要素プロセッサアドレ
スがデコーダJ/.2 (第3図)によりデコードさ
れて対応するセレクタ3.2 (第1図)が選択され、
そこに至るデータパスjtI−/〜jtI−jのいずれ
かがデイストリビュータ31/により選択される(第3
図)。このとき,情報がデータパス上に乗っていること
を示す制御信号が対応する信号線33−l〜33−3の
いずれかに出力される。各セレクタ3.2では,同時に
到着する送信要求の中から一つを選択して要素プロセッ
サλのRECEIVEユニット−6に送る。この動作を
第4図,第5図を用いて説明する.データパス3ダー/
〜Jllt−3にデータが、信号線33−7〜J3−3
に制御信号が乗ってセレクタ3..2に届くと,信号線
33−/−JJ−jはアドレスレジスタ3−ダを経由し
てROMJ.2−に入力される.ROMj.2.2は(
この例では)5ビットのアドレスによりアクセスされる
メモリであり,最初の2ビットはROMj..2.2の
前回の出力(3ビット)がエンコーダ3.23によりエ
ンコードされて、残りの3ビットは信号線33−l〜3
3−3が使われる.第5図にはROMj.2,.2の内
容の1例が示されている.左側の表側は3ビットアドレ
スを,上側は2ビットアドレスを示している。2ビット
アドレスは、ROMj,2.2の前回の出力が100の
場合はo o ニ、010の場合は0 1 ニ、001
の場合は10にエンコードされる.すなわち、例えば先
頭の2ビットアドレスがooである場合とは、前回の出
力が100、つまり前回にはデータバスjlIt−/が
選択された場合であることを意味する。従って.ROM
J,.2.2のアドレスの先頭2ビットがOOであるア
ドレスには、データパスJダー/にだけ出力要求がきて
いる場合(残り3ビットが100)を除いて、他のデー
タバスが選択されるような出力パタンか格納されている
.このようにして、各出力要求は平等に受け付けられる
. RECEIVHユニット一Jでは、(書き込み領域
のアドレス,書き込みデータの値)を受け取って,メモ
リ制御ユニット.2一経由で局所メモリ,.23に書き
込む. 本発明では、実行すべきプログラムを A.繰返しループ(入出力を除く配列定義部)B.
以外の逐次処理部 C.入出力部 に分割し、Aは要素プロセッサーのアレイに、B,Cは
ホスト計算機/に割り付けて実行する。ホスl・計算機
/のプログラムでは,Aの実行命令,例えば Do 10 I=1,100 Do 10 J=1,100 A (I,J)=・・・・・・ 1 0 Confinue 等の代りに要素プロセッサλのアレイに対するAの実行
指令命令 START TASKIO 等が書かれている。この命令はAの対応するプログラム
部分TASK10のエントリアドレスtを全要素プロセ
ッサの記憶装置中の同一アドレス#Pに放送して書き込
むものである。
合することのできるものであれば何でもよい。第1図で
は完全結合のフルクロスバスイッチを図示している.ス
イッチの詳細な回路楕成は第3図〜第5図に示されてい
る。SENDユニット.2ダから送出される情報は,(
宛先要素プロセッサアドレス,書き込み領域のアドレス
,書き込みデータの値)とから構成されている。情報が
データ線/Oを経由してクロスバスイッチのデイストリ
ビュータ3/に到着すると、宛先要素プロセッサアドレ
スがデコーダJ/.2 (第3図)によりデコードさ
れて対応するセレクタ3.2 (第1図)が選択され、
そこに至るデータパスjtI−/〜jtI−jのいずれ
かがデイストリビュータ31/により選択される(第3
図)。このとき,情報がデータパス上に乗っていること
を示す制御信号が対応する信号線33−l〜33−3の
いずれかに出力される。各セレクタ3.2では,同時に
到着する送信要求の中から一つを選択して要素プロセッ
サλのRECEIVEユニット−6に送る。この動作を
第4図,第5図を用いて説明する.データパス3ダー/
〜Jllt−3にデータが、信号線33−7〜J3−3
に制御信号が乗ってセレクタ3..2に届くと,信号線
33−/−JJ−jはアドレスレジスタ3−ダを経由し
てROMJ.2−に入力される.ROMj.2.2は(
この例では)5ビットのアドレスによりアクセスされる
メモリであり,最初の2ビットはROMj..2.2の
前回の出力(3ビット)がエンコーダ3.23によりエ
ンコードされて、残りの3ビットは信号線33−l〜3
3−3が使われる.第5図にはROMj.2,.2の内
容の1例が示されている.左側の表側は3ビットアドレ
スを,上側は2ビットアドレスを示している。2ビット
アドレスは、ROMj,2.2の前回の出力が100の
場合はo o ニ、010の場合は0 1 ニ、001
の場合は10にエンコードされる.すなわち、例えば先
頭の2ビットアドレスがooである場合とは、前回の出
力が100、つまり前回にはデータバスjlIt−/が
選択された場合であることを意味する。従って.ROM
J,.2.2のアドレスの先頭2ビットがOOであるア
ドレスには、データパスJダー/にだけ出力要求がきて
いる場合(残り3ビットが100)を除いて、他のデー
タバスが選択されるような出力パタンか格納されている
.このようにして、各出力要求は平等に受け付けられる
. RECEIVHユニット一Jでは、(書き込み領域
のアドレス,書き込みデータの値)を受け取って,メモ
リ制御ユニット.2一経由で局所メモリ,.23に書き
込む. 本発明では、実行すべきプログラムを A.繰返しループ(入出力を除く配列定義部)B.
以外の逐次処理部 C.入出力部 に分割し、Aは要素プロセッサーのアレイに、B,Cは
ホスト計算機/に割り付けて実行する。ホスl・計算機
/のプログラムでは,Aの実行命令,例えば Do 10 I=1,100 Do 10 J=1,100 A (I,J)=・・・・・・ 1 0 Confinue 等の代りに要素プロセッサλのアレイに対するAの実行
指令命令 START TASKIO 等が書かれている。この命令はAの対応するプログラム
部分TASK10のエントリアドレスtを全要素プロセ
ッサの記憶装置中の同一アドレス#Pに放送して書き込
むものである。
要素プロセッサーは実行すべき繰返しループ処理(TA
SKIO等)が終了すると、このアドレス#Pに次の処
理のエントリアドレスt′が書かれるのを待っているの
で、t′の放送が完了するとすぐにその実行に入る。そ
して、プログラム実行が終了すると全同期用レジスター
乙に1を書いて,再び次の処理のエントリアドレスtが
書かれるのを待つ. 全同期用レジスター乙の内容は、AND回路乙でAND
されてホスト計算機/に全同期信号として入力される。
SKIO等)が終了すると、このアドレス#Pに次の処
理のエントリアドレスt′が書かれるのを待っているの
で、t′の放送が完了するとすぐにその実行に入る。そ
して、プログラム実行が終了すると全同期用レジスター
乙に1を書いて,再び次の処理のエントリアドレスtが
書かれるのを待つ. 全同期用レジスター乙の内容は、AND回路乙でAND
されてホスト計算機/に全同期信号として入力される。
従って、全ての要素プロセッサーが処理を終了した段階
で即座にその状態がホスト計算機lに伝わる。
で即座にその状態がホスト計算機lに伝わる。
以上に述べたように、一つの繰返しループと該ループと
依存関係のある次の繰返しループの間で必要な同期は,
放送手段およびハードウェアにより全同期手段を用いて
高速に実現される。なお,互いに依存関係にない相互に
独立した複数のループは一まとめにして実行する。
依存関係のある次の繰返しループの間で必要な同期は,
放送手段およびハードウェアにより全同期手段を用いて
高速に実現される。なお,互いに依存関係にない相互に
独立した複数のループは一まとめにして実行する。
次に、一つの繰返しループの内部に存在するデータ依存
関係の処理について述べる. FORTRANプログラ
ムの例をとると、 Do 10 I=1,100 Do 10 J=1,100 A(I,J)=A(I−1,J)+B(J)1 0
CONTINUH という繰返しループ(FORTRANプログラム例■)
を工について並列処理する場合、各要素プロセッサ2は Do 10 J=1, 100A(I,J)
=A(I−1,J)+B(J)1 0 CONTI
NUE という内側ループを特定の1について担当する。
関係の処理について述べる. FORTRANプログラ
ムの例をとると、 Do 10 I=1,100 Do 10 J=1,100 A(I,J)=A(I−1,J)+B(J)1 0
CONTINUH という繰返しループ(FORTRANプログラム例■)
を工について並列処理する場合、各要素プロセッサ2は Do 10 J=1, 100A(I,J)
=A(I−1,J)+B(J)1 0 CONTI
NUE という内側ループを特定の1について担当する。
このとき配列A (I−1,J),J=1,100の各
要素については、一つ若い工を担当する要素プロセッサ
から定義後の値をもらって計算する必要がある。すなわ
ち、■については逐次処理が要求される.しかし,Jに
関しては各要素プロセッサで独立であるため、一つ若い
工を担当する要素プロセッサがJの順に次々と定義値を
送ってくれば,これをパイプライン的に処理することに
より並列処理が可能となる.このように、データ依存関
係のある繰返しループでも、並列処理が可能である。本
発明では,このような依存型ループの並列処理のために
、局所メモリ.23中に確保した同期用変数.23/ま
たは専用に設けた同期用レジスター3−と,該同期用変
数−37または同期用レジスターJ一の値を排他的に1
だけ増減する排他的加減算回路.2//を以下のように
用いる。
要素については、一つ若い工を担当する要素プロセッサ
から定義後の値をもらって計算する必要がある。すなわ
ち、■については逐次処理が要求される.しかし,Jに
関しては各要素プロセッサで独立であるため、一つ若い
工を担当する要素プロセッサがJの順に次々と定義値を
送ってくれば,これをパイプライン的に処理することに
より並列処理が可能となる.このように、データ依存関
係のある繰返しループでも、並列処理が可能である。本
発明では,このような依存型ループの並列処理のために
、局所メモリ.23中に確保した同期用変数.23/ま
たは専用に設けた同期用レジスター3−と,該同期用変
数−37または同期用レジスターJ一の値を排他的に1
だけ増減する排他的加減算回路.2//を以下のように
用いる。
いま,簡単のために、インデクスエを担当する要素プロ
セッサを要素プロセッサIと記す。要素プロセッサI−
1は、A(I−1,J)を定義した後、要素プロセッサ
Iにこの値を送信し、引き続き要素プロセッサエに制御
情報(宛先要素プロセッサアドレス,制御情報であるこ
とを示すコード,同期用変数または同期用レジスタアド
レス)を送信する。制御情報が到達すると、メモリ制御
ユニット一一がこれを判定して処理ユニット.2/に割
込みをかける.処理ユニット.2/の割込み処理プログ
ラムは排他的加減算回路一/lを用いて同期用変数−3
7または同期用レジスタ.2J7!の内容に1を加算す
る。一方、要素プロセッサIはA(I−1,J)を参照
する前にこの同期用変数.2 J /.または同期用レ
ジスタ.2J−の内容が正か否かチェックし、否の場合
はチェック動作を繰り返す(busy wait)。内
容が正である場合にはA (I−1,J)の参照を行う
。以上は定義した変数を参照する依存関係の例であるが
、参照した変数を再定義する依存関係の場合も同様であ
る。
セッサを要素プロセッサIと記す。要素プロセッサI−
1は、A(I−1,J)を定義した後、要素プロセッサ
Iにこの値を送信し、引き続き要素プロセッサエに制御
情報(宛先要素プロセッサアドレス,制御情報であるこ
とを示すコード,同期用変数または同期用レジスタアド
レス)を送信する。制御情報が到達すると、メモリ制御
ユニット一一がこれを判定して処理ユニット.2/に割
込みをかける.処理ユニット.2/の割込み処理プログ
ラムは排他的加減算回路一/lを用いて同期用変数−3
7または同期用レジスタ.2J7!の内容に1を加算す
る。一方、要素プロセッサIはA(I−1,J)を参照
する前にこの同期用変数.2 J /.または同期用レ
ジスタ.2J−の内容が正か否かチェックし、否の場合
はチェック動作を繰り返す(busy wait)。内
容が正である場合にはA (I−1,J)の参照を行う
。以上は定義した変数を参照する依存関係の例であるが
、参照した変数を再定義する依存関係の場合も同様であ
る。
すなわち、
DO 10 I=1,100
Do 10 J=1,100
A(I,J)=A(I+1,J)+B(.T)1 0
CONTINtlH (FORTRANプログラム例■)を工について並列処
理する場合、要素プロセッサエは,A(I+1.,J)
を参照した後,要素プロセッサI+1にこの値を送信し
、引き続き要素プロセッサI+1に制御情報(宛先要素
プロセッサアドレス,制御情報であることを示すコード
,同期用変数または同期用レジスタアドレス)を送信す
る。制御情報が同期用変数または同期用レジスタに到着
すると、メモリ制御ユニット.2.2がこれを判定して
処理ユニット一/に割込みをかける。処理ユニット.2
/の割込み処理プログラムは排他的加減算回路.2//
を用いてその内容に1を加算する。一方,要素プロセッ
サI+1はA (I+1,J)を定義する前にこの同期
用変数,23/または同期用レジスター3.2の内容が
正か否かチェックし、否の場合はチェック動作を繰り返
す(busy wait)。内容が正である場合には、
A (I+1.1)の定義を行う。
CONTINtlH (FORTRANプログラム例■)を工について並列処
理する場合、要素プロセッサエは,A(I+1.,J)
を参照した後,要素プロセッサI+1にこの値を送信し
、引き続き要素プロセッサI+1に制御情報(宛先要素
プロセッサアドレス,制御情報であることを示すコード
,同期用変数または同期用レジスタアドレス)を送信す
る。制御情報が同期用変数または同期用レジスタに到着
すると、メモリ制御ユニット.2.2がこれを判定して
処理ユニット一/に割込みをかける。処理ユニット.2
/の割込み処理プログラムは排他的加減算回路.2//
を用いてその内容に1を加算する。一方,要素プロセッ
サI+1はA (I+1,J)を定義する前にこの同期
用変数,23/または同期用レジスター3.2の内容が
正か否かチェックし、否の場合はチェック動作を繰り返
す(busy wait)。内容が正である場合には、
A (I+1.1)の定義を行う。
同期用変数.23/または同期用レジスター3.2が計
数型であるため、上記例のいずれにおいても、インデク
スIの若い方を担当する要素プロセッサはいくらでも処
理を先行させることができる。
数型であるため、上記例のいずれにおいても、インデク
スIの若い方を担当する要素プロセッサはいくらでも処
理を先行させることができる。
実施例2
並列計算機の全体構成,要素プロセッサの主要構成部分
,プログラムの分割と割り当ておよび実行のさせ方は実
施例1と同じである。以下では、異なる部分について第
6図を用いて重点的に説明する。
,プログラムの分割と割り当ておよび実行のさせ方は実
施例1と同じである。以下では、異なる部分について第
6図を用いて重点的に説明する。
本実施例は、実施例1にネットワークプリセット装置、
すなわち相互結合ネットワーク3のデイストリビュータ
J/からデコーダ3/−lを除き、代わりにデイストリ
ビュータJ//−0〜Jの接続パタン設定回路33と格
納アドレス生成回路l?を付加したものである。実施例
1で引用したFORTRANプログラム例のでは、第I
−1要素プロセッサから第工要素プロセッサへデータお
よび制御情報を送信する必要があることがソースプログ
ラムを解析すれば分かる。本実施例では、コンパイラが
解析したこのような要素プロセッサ間結合パタンを、繰
返しループ処理を開始する前に相互結合ネットワーク3
の接続パタン設定回路33に送ってデイストリビュータ
J//−0〜3の接続を定める。また、受信側要素プロ
セッサの局所メモリa23中の受信領域先頭アドレス(
A(T−.1.1)のアドレス)とその語長をそれぞれ
格納アドレス生成回路l?中の格納領.域アドレスレジ
スタ/ヲ/−/〜/?/−jのいずれかと語長レジスタ
/?5に格納する。各要素プロセッサエにおいてA (
I−1,J),J=1,100を同じアドレスに割り付
ければ、受信領域先頭アドレスと語長の格納はホスト計
算機lから放送することができる.もし,右辺にA(I
−2,J)等が現れるとき,すなわち複数の要素プロセ
ッサから同時に受信する可能性があるときも,それぞれ
の受信領域先頭アドレスと語長を送信元要素プロセッサ
に対応した格納領域アドレスレジスタlヲ/−/〜/?
/−Jと語長レジスタ/9.5に格納する。ただし、本
装置は一本の式を定義する繰返しループに適用すること
を主眼に設計されており、一つの繰返しループ中で複数
の式を定義するプログラムの場合には、これを一本の式
を定義する繰返しループの系列に分解する。
すなわち相互結合ネットワーク3のデイストリビュータ
J/からデコーダ3/−lを除き、代わりにデイストリ
ビュータJ//−0〜Jの接続パタン設定回路33と格
納アドレス生成回路l?を付加したものである。実施例
1で引用したFORTRANプログラム例のでは、第I
−1要素プロセッサから第工要素プロセッサへデータお
よび制御情報を送信する必要があることがソースプログ
ラムを解析すれば分かる。本実施例では、コンパイラが
解析したこのような要素プロセッサ間結合パタンを、繰
返しループ処理を開始する前に相互結合ネットワーク3
の接続パタン設定回路33に送ってデイストリビュータ
J//−0〜3の接続を定める。また、受信側要素プロ
セッサの局所メモリa23中の受信領域先頭アドレス(
A(T−.1.1)のアドレス)とその語長をそれぞれ
格納アドレス生成回路l?中の格納領.域アドレスレジ
スタ/ヲ/−/〜/?/−jのいずれかと語長レジスタ
/?5に格納する。各要素プロセッサエにおいてA (
I−1,J),J=1,100を同じアドレスに割り付
ければ、受信領域先頭アドレスと語長の格納はホスト計
算機lから放送することができる.もし,右辺にA(I
−2,J)等が現れるとき,すなわち複数の要素プロセ
ッサから同時に受信する可能性があるときも,それぞれ
の受信領域先頭アドレスと語長を送信元要素プロセッサ
に対応した格納領域アドレスレジスタlヲ/−/〜/?
/−Jと語長レジスタ/9.5に格納する。ただし、本
装置は一本の式を定義する繰返しループに適用すること
を主眼に設計されており、一つの繰返しループ中で複数
の式を定義するプログラムの場合には、これを一本の式
を定義する繰返しループの系列に分解する。
格納アドレス生成回路/フ中の格納領域アドレスレジス
タ/9/一/〜/?/−jは、セレクタj..2−0〜
3への入力データバス(以後入力チャネルという)に対
応している。これは、各要素プロセッサ毎に定まるセレ
クタ3コーθ〜3への入力チャネルが分かれば送信側要
素プロセッサが分かるから、これに対応した受信領域の
アドレスを格納しておくためである。この図の例では、
送信側要素プロセッサ番号 =受信側要素プロセッサ番号十該セレクタへの入力チャ
ネル番号+1 (mad要素プロセッサ台数) という関係がある。従って、本発明では,入力チャネル
番号により格納領域アドレスレジスタ/?/−l〜/’
l/−jを選択できるよう、第6図に示すように、相互
結合ネットワーク3のセレクタj,2一〇〜3から出力
される入力チャネル番号(0,1.2)と,第7図に示
すよう送信情報中の制御情報か否かを表わす1ビットコ
ードとをデコーダl?一に入力してデコードし,その結
果によりセレクタ/93のスイッチングを行う。制御情
報の場合(コード= ’i’ )は、同期用変数.23
lまたは同期用レジスタjJ.2のアドレスを格納して
あるレジスタ/ ? /−1を選択する。データの場合
は、上記関係により定まる送信側要素プロセッサから送
られてくるデータの格納領域のアドレスを設定してある
レジスタ/?/−/から/9/−Jを選択する。
タ/9/一/〜/?/−jは、セレクタj..2−0〜
3への入力データバス(以後入力チャネルという)に対
応している。これは、各要素プロセッサ毎に定まるセレ
クタ3コーθ〜3への入力チャネルが分かれば送信側要
素プロセッサが分かるから、これに対応した受信領域の
アドレスを格納しておくためである。この図の例では、
送信側要素プロセッサ番号 =受信側要素プロセッサ番号十該セレクタへの入力チャ
ネル番号+1 (mad要素プロセッサ台数) という関係がある。従って、本発明では,入力チャネル
番号により格納領域アドレスレジスタ/?/−l〜/’
l/−jを選択できるよう、第6図に示すように、相互
結合ネットワーク3のセレクタj,2一〇〜3から出力
される入力チャネル番号(0,1.2)と,第7図に示
すよう送信情報中の制御情報か否かを表わす1ビットコ
ードとをデコーダl?一に入力してデコードし,その結
果によりセレクタ/93のスイッチングを行う。制御情
報の場合(コード= ’i’ )は、同期用変数.23
lまたは同期用レジスタjJ.2のアドレスを格納して
あるレジスタ/ ? /−1を選択する。データの場合
は、上記関係により定まる送信側要素プロセッサから送
られてくるデータの格納領域のアドレスを設定してある
レジスタ/?/−/から/9/−Jを選択する。
てあり、格納領域アドレスレジスタ/9/−/〜/?/
−ダの一つが選択されるとその内容に語長レジスタの内
容が加算器/?Qにより加算され、選択されている格納
領域アドレスレジスタに書き込み制御回路/?0を経由
して戻される.この処理により1語分アドレスが進む.
ただし,同期用変数−3lまたは同期用レジスタ.2J
一の場合は語長はOである. 以上の装置を用いて、第1−1要素プロセッサがA (
I−1.1)を定義した後、これを第I要素プロセッサ
に送信し,データフロー同期によりパイプライン処理す
る場合を第6図を用いて説明する. (1)全要素プロセッサがA (I−1,J),J=1
,100を同一のao番地から割り付ける。
−ダの一つが選択されるとその内容に語長レジスタの内
容が加算器/?Qにより加算され、選択されている格納
領域アドレスレジスタに書き込み制御回路/?0を経由
して戻される.この処理により1語分アドレスが進む.
ただし,同期用変数−3lまたは同期用レジスタ.2J
一の場合は語長はOである. 以上の装置を用いて、第1−1要素プロセッサがA (
I−1.1)を定義した後、これを第I要素プロセッサ
に送信し,データフロー同期によりパイプライン処理す
る場合を第6図を用いて説明する. (1)全要素プロセッサがA (I−1,J),J=1
,100を同一のao番地から割り付ける。
もし複数の■(以下工′等と記す)を担当するときは.
ao番地から始まる領域に、A(I−1,J),J=1
,100に引き続いてA(I’−1,J),J=1,1
00等を割り付ける.(2)格納領域アドレスレジスタ
/デ/−3に、ホスト計算機が書き込み制御回路を経由
してaoを格納する。格納領域アドレスレジスタ/?/
−/〜3はそれぞれ相互結合ネットワーク3の各セレク
タ3λ−θ〜3への入力チャネル0〜2(セレクタ3ノ
−θ〜3の箱の中に表示)に対応しており、入力チャネ
ル2はどのセレクタにおいても一つ若い番号(ただしプ
ロセッサ台数を法として)の要素プロセッサと接続して
いる。
ao番地から始まる領域に、A(I−1,J),J=1
,100に引き続いてA(I’−1,J),J=1,1
00等を割り付ける.(2)格納領域アドレスレジスタ
/デ/−3に、ホスト計算機が書き込み制御回路を経由
してaoを格納する。格納領域アドレスレジスタ/?/
−/〜3はそれぞれ相互結合ネットワーク3の各セレク
タ3λ−θ〜3への入力チャネル0〜2(セレクタ3ノ
−θ〜3の箱の中に表示)に対応しており、入力チャネ
ル2はどのセレクタにおいても一つ若い番号(ただしプ
ロセッサ台数を法として)の要素プロセッサと接続して
いる。
(3)ホスト計算機/が語長レジスタ/?6にAの語長
を格納する。
を格納する。
(4)デイストリビュータ・パタン設定回路33を各デ
イストリビュータの出力チャネル0に設定する(出力チ
ャネル番号はデイストリビュータJ//−0〜3の左に
表示),,この例では、デイストリビュータ3ii−o
〜3の出力チャネルOは各々セレクタ12−0〜Jの入
カチャネル2と接続している.すなわち、 送信先(受信側)要素プロセッサ番号 =送信元(送信側)要素プロセッサ番号十デイストリビ
ュータ出力チャネル番号+1 (mad,要素プロセッ
サ台数) という関係があるからである. (5)同期用変数.2J/または同期用レジスター3ノ
の値をOに初期設定する。ここから繰返しループ処理に
入る. (6)第0要素プロセッサがA(1.1)をSENDユ
ニット.2llにより送信する。
イストリビュータの出力チャネル0に設定する(出力チ
ャネル番号はデイストリビュータJ//−0〜3の左に
表示),,この例では、デイストリビュータ3ii−o
〜3の出力チャネルOは各々セレクタ12−0〜Jの入
カチャネル2と接続している.すなわち、 送信先(受信側)要素プロセッサ番号 =送信元(送信側)要素プロセッサ番号十デイストリビ
ュータ出力チャネル番号+1 (mad,要素プロセッ
サ台数) という関係があるからである. (5)同期用変数.2J/または同期用レジスター3ノ
の値をOに初期設定する。ここから繰返しループ処理に
入る. (6)第0要素プロセッサがA(1.1)をSENDユ
ニット.2llにより送信する。
(7)デイストリビュータJ//−0の出力チャネル0
からセレクタ3−一/の入力チャネル2を経由して第1
要素プロセッサのRECEIVEユニット.2jにデー
タが渡される.一方、セレクタ3.2−/の入カチャネ
ル番号2がデータ中の制御情報コード0とともに第1要
素プロセッサのデコーダlヲ一へ入力され、その結果セ
レクタ/?3により格納領域アドレスレジスタ/?/−
3が選択されて、その内容(ao)がRll!CEIV
Eユニットコ5から渡される受信データの格納先アドレ
スとしてメモリ制御ユニット,.2コへ送られる. (8)メモリ制御ユニット.2−は,値A (1,1)
をao番地に書き込む. (9)加算器/?タによりセレクタ/?3出力のaoに
語長(バイト単位。例えば、倍精度演算では8)が加算
され、ao+8が書き込み制御回路/?Oを経由して格
納領域アドレスレジスタ/9/−jに書き込まれる。
からセレクタ3−一/の入力チャネル2を経由して第1
要素プロセッサのRECEIVEユニット.2jにデー
タが渡される.一方、セレクタ3.2−/の入カチャネ
ル番号2がデータ中の制御情報コード0とともに第1要
素プロセッサのデコーダlヲ一へ入力され、その結果セ
レクタ/?3により格納領域アドレスレジスタ/?/−
3が選択されて、その内容(ao)がRll!CEIV
Eユニットコ5から渡される受信データの格納先アドレ
スとしてメモリ制御ユニット,.2コへ送られる. (8)メモリ制御ユニット.2−は,値A (1,1)
をao番地に書き込む. (9)加算器/?タによりセレクタ/?3出力のaoに
語長(バイト単位。例えば、倍精度演算では8)が加算
され、ao+8が書き込み制御回路/?Oを経由して格
納領域アドレスレジスタ/9/−jに書き込まれる。
(lO)第0要素プロセッサが制御情報をSENDユニ
ット一ダにより送信する。
ット一ダにより送信する。
(11)デイストリビュータJ//−0の出力チャネル
Oからセレクタ3−一/の入カチャネル2を経由して第
1要素プロセッサのRECEIVEユニット.2Jに制
御情報が渡される。デコーダ/?一へは,セレクタJ2
−/の入カチャネル番号2の他に制御情報コード′1″
が入力される。その結果、同期用変数アドレスまたは同
期用レジスタアドレスの入っている格納領域アドレスレ
ジスタ/?/−9が選択され、メモリ制御ユニット一一
に送られた後、処理装置一lの割込み処理プログラムに
より排他的に1が加算される.(12)第O要素プロセ
ッサはさらに次の繰返しに入り、A (1.2)を第1
要素プロセッサに送る.(13)第1要素プロセッサは
.A (1.2)をaO+8番地に書き込む.格納領域
アドレスレジスタ/’l/−jの内容はao+16とな
る。
Oからセレクタ3−一/の入カチャネル2を経由して第
1要素プロセッサのRECEIVEユニット.2Jに制
御情報が渡される。デコーダ/?一へは,セレクタJ2
−/の入カチャネル番号2の他に制御情報コード′1″
が入力される。その結果、同期用変数アドレスまたは同
期用レジスタアドレスの入っている格納領域アドレスレ
ジスタ/?/−9が選択され、メモリ制御ユニット一一
に送られた後、処理装置一lの割込み処理プログラムに
より排他的に1が加算される.(12)第O要素プロセ
ッサはさらに次の繰返しに入り、A (1.2)を第1
要素プロセッサに送る.(13)第1要素プロセッサは
.A (1.2)をaO+8番地に書き込む.格納領域
アドレスレジスタ/’l/−jの内容はao+16とな
る。
(14)第O要素プロセッサは制御情報を送り、第1要
素プロセッサはこれに排他的加算を行う.第1要素プロ
セッサの同期用変数.23lまたは同期用レジスター3
,.2の値は2となる.(第O要素プロセッサの送信は
このようにいくら先行しても構わない.) (15)第1要素プロセッサが同期用変数−37または
同期用レジスタ,.2J一の内容が正か否かチェックし
,正なら排他的に1を減算する。(もし、ゼロまたは負
ならbusy waitする)。
素プロセッサはこれに排他的加算を行う.第1要素プロ
セッサの同期用変数.23lまたは同期用レジスター3
,.2の値は2となる.(第O要素プロセッサの送信は
このようにいくら先行しても構わない.) (15)第1要素プロセッサが同期用変数−37または
同期用レジスタ,.2J一の内容が正か否かチェックし
,正なら排他的に1を減算する。(もし、ゼロまたは負
ならbusy waitする)。
(16)第1要素プロセッサはao番地からA(1,1
)読みだし、それを用いてA (2.1)を定義する.
結果は第2要素プロセッサに送る.以上のようにして、
アドレス情報の送信やデコ一ド/切替を行わずに効率良
く通信して、要素プロセッサ間でパイプライン演算を行
うことができる. ヌ】11l 並列計算機の全体構成,要素プロセッサの一部構成部分
,プログラムの分割と割り当ておよび実行のさせ方は実
施例2と同じである。以下では、異なる部分について第
8,9図を用いて重点的に説明する. 本実施例は,実施例2を要素プロセッサがベクトルプロ
セッサである場合に拡張したものである.要素プロセッ
サは局所メモリ,23の他、スカラプロセッサl,5、
全同期用レジスタ.2A、ロード/ストアパイプ7−/
,7−2,ベクトノレレジスタ/l−/〜l一−ダ、ベ
クトル演算器/ダー/〜/Q−J、インタチェンジA/
A、インタチェンジB/7、SENDパイプ8 , R
ECEIVEパイプフ、および格納アドレス生成回路/
?とから構成される。同期用変数,同期用レジスタは用
いない.以下に,各構成要素の機能について簡単に述べ
る。
)読みだし、それを用いてA (2.1)を定義する.
結果は第2要素プロセッサに送る.以上のようにして、
アドレス情報の送信やデコ一ド/切替を行わずに効率良
く通信して、要素プロセッサ間でパイプライン演算を行
うことができる. ヌ】11l 並列計算機の全体構成,要素プロセッサの一部構成部分
,プログラムの分割と割り当ておよび実行のさせ方は実
施例2と同じである。以下では、異なる部分について第
8,9図を用いて重点的に説明する. 本実施例は,実施例2を要素プロセッサがベクトルプロ
セッサである場合に拡張したものである.要素プロセッ
サは局所メモリ,23の他、スカラプロセッサl,5、
全同期用レジスタ.2A、ロード/ストアパイプ7−/
,7−2,ベクトノレレジスタ/l−/〜l一−ダ、ベ
クトル演算器/ダー/〜/Q−J、インタチェンジA/
A、インタチェンジB/7、SENDパイプ8 , R
ECEIVEパイプフ、および格納アドレス生成回路/
?とから構成される。同期用変数,同期用レジスタは用
いない.以下に,各構成要素の機能について簡単に述べ
る。
・局所メモリ−3とスカラプロセッサ/,5:通常の逐
次処理型計算機であり,要素プロセッサーに割り当てら
れたベクトル処理以外の処理を担当する. ・全同期用レジスター乙:要素プロセッサコ全体で同期
をとるためのレジスタ。実施例1,2に同じ. ・ロード/ストアパイプ7−/t 7−.2:ベクト
ルレジスタ/一一/〜/.2−Qと局所メモリー3間で
データの転送を高速に行う装置。通常のベクトル計算機
で使われているものと同じ.・ベクトルレジスタ/,2
−/−/j−Il:ベクトル演算に使用するデータを格
納するテンポラリ・レジスタ.通常のベクトル計算機で
使われているものと異なり,語単位に1ビットのタグ・
フィールドl3−/〜/3−ダが用意されていて、ベク
トルレジスタ/.2−/〜/コーダにデータをロードす
ると1にセットされる。また、ベクトル演算器lダーl
〜/lI−jはタグ・フィールド/3一7〜/ J−1
の値が1である場合に限ってその語を入力し、そのタグ
・フィールド/3−/〜/3−ダの値を0にリセットす
る。繰返し参照する定数データがベクトルレジスタ/一
一/〜/2−2に入っている場合は、命令によりタグ・
フィールド/3−l〜/ j−llの値を0にリセット
しない。
次処理型計算機であり,要素プロセッサーに割り当てら
れたベクトル処理以外の処理を担当する. ・全同期用レジスター乙:要素プロセッサコ全体で同期
をとるためのレジスタ。実施例1,2に同じ. ・ロード/ストアパイプ7−/t 7−.2:ベクト
ルレジスタ/一一/〜/.2−Qと局所メモリー3間で
データの転送を高速に行う装置。通常のベクトル計算機
で使われているものと同じ.・ベクトルレジスタ/,2
−/−/j−Il:ベクトル演算に使用するデータを格
納するテンポラリ・レジスタ.通常のベクトル計算機で
使われているものと異なり,語単位に1ビットのタグ・
フィールドl3−/〜/3−ダが用意されていて、ベク
トルレジスタ/.2−/〜/コーダにデータをロードす
ると1にセットされる。また、ベクトル演算器lダーl
〜/lI−jはタグ・フィールド/3一7〜/ J−1
の値が1である場合に限ってその語を入力し、そのタグ
・フィールド/3−/〜/3−ダの値を0にリセットす
る。繰返し参照する定数データがベクトルレジスタ/一
一/〜/2−2に入っている場合は、命令によりタグ・
フィールド/3−l〜/ j−llの値を0にリセット
しない。
・ベクトル演算器/l1t−/〜/%−j:通常のベク
トル計算機で使われているものと同じ。
トル計算機で使われているものと同じ。
・インタチェンジA/乙:ベクトルレジスタ7.2−/
〜/d−9とロード/ストアパイプ7−/,7−.2、
SENDパイプ8、RECEIVEパイプフを相互結合
するデータパス。
〜/d−9とロード/ストアパイプ7−/,7−.2、
SENDパイプ8、RECEIVEパイプフを相互結合
するデータパス。
・インタチェンジB17:ベクトル演算器ll1t一/
〜/ダー3とベクトルレジスタ/U−/〜/コーダを相
互結合するデータパス。
〜/ダー3とベクトルレジスタ/U−/〜/コーダを相
互結合するデータパス。
・SENDパイプ8:ベクトルレジスタ/一一/〜/,
?−1から他の要素プロセッサのベクトルレジスタ/一
一/〜/.2−1へデータを高速に転送する装置。
?−1から他の要素プロセッサのベクトルレジスタ/一
一/〜/.2−1へデータを高速に転送する装置。
クトルレジスタ/.2−/〜/一−9から高速に転送さ
れてきたデータをインタチェンジA/Aを経由して自ベ
クトノレレジスタ/J−/〜/一−9に格納する装置. ・格納アドレス生成回路: RECEIVEバイプ7か
ら出力されるデータを格納するベクトルレジスタ/.2
−/〜/..2−1のアドレスを、受信チャネルから生
成する装置.このアドレスによりインタチェンジC/8
の接続パスが設定される.機能的には実施例2に類似し
ているが、格納領域アドレスレジスタ/?/−/〜3に
はベクトルレジスタアドレスが格納され、語長レジスタ
や加算回路がない点が異なる. 相互結合ネットワーク3は実施例2と同じであり、デイ
ストリビュータ・パタン設定回路33によりデイストリ
ビュータJ//−0〜J//−jの接続パタンを設定し
てアドレスデコードやスイッチングを不要にしたもので
ある。
れてきたデータをインタチェンジA/Aを経由して自ベ
クトノレレジスタ/J−/〜/一−9に格納する装置. ・格納アドレス生成回路: RECEIVEバイプ7か
ら出力されるデータを格納するベクトルレジスタ/.2
−/〜/..2−1のアドレスを、受信チャネルから生
成する装置.このアドレスによりインタチェンジC/8
の接続パスが設定される.機能的には実施例2に類似し
ているが、格納領域アドレスレジスタ/?/−/〜3に
はベクトルレジスタアドレスが格納され、語長レジスタ
や加算回路がない点が異なる. 相互結合ネットワーク3は実施例2と同じであり、デイ
ストリビュータ・パタン設定回路33によりデイストリ
ビュータJ//−0〜J//−jの接続パタンを設定し
てアドレスデコードやスイッチングを不要にしたもので
ある。
次に,本実施例の並列計算機の動作について述べる。プ
ログラムは,実施例1のFORTRANプログラム例■
を用いて説明する。
ログラムは,実施例1のFORTRANプログラム例■
を用いて説明する。
(1)ベクトル処理に入る前に、ホスト計算機lが相互
結合ネットワーク3の結合パタンを設定する。すなわち
、ディストリビュータ・パタン設定回路33により各デ
イストリビュータ3//−0〜J//−Jの出力チャネ
ルを0に設定する。この例では、デイストリビュータの
出力チャネル0はそれぞれセレクタ3−−0〜j2 −
3の入力チャネル2と接続しているからである。
結合ネットワーク3の結合パタンを設定する。すなわち
、ディストリビュータ・パタン設定回路33により各デ
イストリビュータ3//−0〜J//−Jの出力チャネ
ルを0に設定する。この例では、デイストリビュータの
出力チャネル0はそれぞれセレクタ3−−0〜j2 −
3の入力チャネル2と接続しているからである。
(2)ベクトルレジスタ/一一/への受信命令を発行す
る.すなわち、格納領域アドレスレジスタ/?/−..
?に、ホスト計算機1が書き込み制御回路/90を経由
して受信用ベクトルレジスタ/一一/のアドレスを格納
し,同時にインタチェンジA/4のデータパスの一つを
ベクトルレジスタ/2−/にアサインする。具体的には
(第9図)、ホスト計算機1中のベクトル命令制御回路
/.50が信号線10を用いてセレクタ/乙0−/を信
号線1/9に接続し、信号線1/0によりRECEIV
E指示発生制御回路?0に起動信号を送る。また、信号
線1ダによりベクトルレジスタアクセス制御回路ヲ一に
も起動信号を送る. RECEIVE指示発生制御回路
?Oは起動され、信号線?J−,2から受信ベクトルレ
ジスタアドレスが入力されるまで待機する.格納領域ア
ドレスレジスタ/’7/−/〜3は相互結合ネットワー
ク3の各セレクタ3.2−0〜3−−3への入力チャネ
ル0〜2に対応しており、入カチャネル2はどの要素プ
ロセッサのセレクタにおいても一つ若い番号の要素プロ
セッサと接続している。従って,これで全要素プロセッ
サのベクトルレジスタ/2−/は一つ若い番号の要素プ
ロセッサから送信されてくるベクトルデータを受信でき
る体制が整ったことになる。そのタグ・フィールド/3
−/は0に初期設定される.(ただし、第O要素プロセ
ッサだけは受信命令の代りにベクトルレジスタ/一一/
への初期データのロード命令を発行する。
る.すなわち、格納領域アドレスレジスタ/?/−..
?に、ホスト計算機1が書き込み制御回路/90を経由
して受信用ベクトルレジスタ/一一/のアドレスを格納
し,同時にインタチェンジA/4のデータパスの一つを
ベクトルレジスタ/2−/にアサインする。具体的には
(第9図)、ホスト計算機1中のベクトル命令制御回路
/.50が信号線10を用いてセレクタ/乙0−/を信
号線1/9に接続し、信号線1/0によりRECEIV
E指示発生制御回路?0に起動信号を送る。また、信号
線1ダによりベクトルレジスタアクセス制御回路ヲ一に
も起動信号を送る. RECEIVE指示発生制御回路
?Oは起動され、信号線?J−,2から受信ベクトルレ
ジスタアドレスが入力されるまで待機する.格納領域ア
ドレスレジスタ/’7/−/〜3は相互結合ネットワー
ク3の各セレクタ3.2−0〜3−−3への入力チャネ
ル0〜2に対応しており、入カチャネル2はどの要素プ
ロセッサのセレクタにおいても一つ若い番号の要素プロ
セッサと接続している。従って,これで全要素プロセッ
サのベクトルレジスタ/2−/は一つ若い番号の要素プ
ロセッサから送信されてくるベクトルデータを受信でき
る体制が整ったことになる。そのタグ・フィールド/3
−/は0に初期設定される.(ただし、第O要素プロセ
ッサだけは受信命令の代りにベクトルレジスタ/一一/
への初期データのロード命令を発行する。
この場合は、タグ・フィールド/3−lは1となる。)
(3)ベクトノレレジスタ7.2−一にB (J),J
=1,100のロードを開始する。これはロードパイプ
7−/を用いて行い、タグフィールド/3一一には1が
セットされていく。具体的には、信号線10によりセレ
クタ/乙O−一を信号1/乙と接続し、信号線1jによ
りリクエスト発生制御回路70−/に起動信号,要素数
,データ幅を,信号線1乙によりアドレス発生制御回路
7/−/にB (J)の先頭アドレスと増分を送る。ま
た、信号線1/によりベクトルレジスタアクセス制御回
路78−lに起動信号とベクトルレジスタ/.2−2の
アドレスを送る。これにより、ベクトルレジスタアクア
クセス制御回路78−lはベクトルレジスタ/一−−へ
の書き込みを制御できる.アドレス発生制御回略7/−
/が生成するアドレスはアドレスレジスタ7−一lに格
納された後、優先制御回路73を通ってアドレスレジス
タ7lIに入り、局所メモリ.23の読み出しに用いら
れる。優先制御回路23は所定のサイクル数経過後に,
セレクタ76,ベクトルレジスタアクセス制御回路28
−/、にそれぞれ選択情報、書き込み指示信号を送り、
局所メモリ.23から出力されたデータをセレクタl乙
O−一を経由してベクトルレジスタ/一−一に書き込ん
でいく。このとき,タグフィールド/J−,2にも1が
書き込まれる。
=1,100のロードを開始する。これはロードパイプ
7−/を用いて行い、タグフィールド/3一一には1が
セットされていく。具体的には、信号線10によりセレ
クタ/乙O−一を信号1/乙と接続し、信号線1jによ
りリクエスト発生制御回路70−/に起動信号,要素数
,データ幅を,信号線1乙によりアドレス発生制御回路
7/−/にB (J)の先頭アドレスと増分を送る。ま
た、信号線1/によりベクトルレジスタアクセス制御回
路78−lに起動信号とベクトルレジスタ/.2−2の
アドレスを送る。これにより、ベクトルレジスタアクア
クセス制御回路78−lはベクトルレジスタ/一−−へ
の書き込みを制御できる.アドレス発生制御回略7/−
/が生成するアドレスはアドレスレジスタ7−一lに格
納された後、優先制御回路73を通ってアドレスレジス
タ7lIに入り、局所メモリ.23の読み出しに用いら
れる。優先制御回路23は所定のサイクル数経過後に,
セレクタ76,ベクトルレジスタアクセス制御回路28
−/、にそれぞれ選択情報、書き込み指示信号を送り、
局所メモリ.23から出力されたデータをセレクタl乙
O−一を経由してベクトルレジスタ/一−一に書き込ん
でいく。このとき,タグフィールド/J−,2にも1が
書き込まれる。
(4)同時にベクトル加算命令を発行し、ベクトルレジ
スタ/.2−/とベクトルレジスタ/2−2の内容を加
算して、ベクトルレジスタ/,2−jとベクトルレジス
タ/,2−1への出力を開始する.第0要素プロセッサ
以外は,ベクトルレジスタ/一−/のタグ・フィールド
/3−/は0だからすぐには計算に入れない。しかし、
第O要素プロセッサは計算を始めることができ、その結
果をインタチェンジB/7を経由してベクトルレジスタ
/t2−J〜/..2−1に出力していく。出力された
語に対応するタグ・フィールド/3−3〜/J−ダは1
となる。
スタ/.2−/とベクトルレジスタ/2−2の内容を加
算して、ベクトルレジスタ/,2−jとベクトルレジス
タ/,2−1への出力を開始する.第0要素プロセッサ
以外は,ベクトルレジスタ/一−/のタグ・フィールド
/3−/は0だからすぐには計算に入れない。しかし、
第O要素プロセッサは計算を始めることができ、その結
果をインタチェンジB/7を経由してベクトルレジスタ
/t2−J〜/..2−1に出力していく。出力された
語に対応するタグ・フィールド/3−3〜/J−ダは1
となる。
(5)ベクトルレジスタ/,2−Jからの送信命令を発
行する。これにより、インタチェンジA/A上にベクト
ルレジスタ/一−3からSENDバイプ8へのデータバ
スができ、SENDパイプ8はタグ・フィールド/3−
3が1の内容を相互結合ネットワーク3に送り出す。具
体的には、ベクトル命令制御回路/JOが信号10を用
いてセレクタ/乙0−Jを信号線1/8と接続し,信号
線1?を用いてSEND指示発生制御回路80に起動信
号を送り、さらに、ベクトルレジスタアクセス制御回路
83に起動信号とベクトルレジスタ/.2−Jのアドレ
スを送る.ベクトルレジスタアクセス制御回路83の信
号によりベクトルレジスタ7.2−Jから読み出された
データはセレクタ/乙0−jを経由して信号線1/8上
に出力され,データレジスタ8−に格納される.このと
き、各語の先頭のタグ・フィールドの内容が1であれば
,SEND指示発生制御回路80からベクトルレジスタ
アクセス制御回路83に次の読み出し指示信号が送られ
,ベクトルレジスタ/..2−Jの次の語が読み出され
る。また、読み出したデータは、タグ部を除いてデータ
線/0に出力され,信号線1//には送信信号が出力さ
れる。タグ・フィールドの内容がOであればSEND指
示発生制御回路80からは次の読み出し指示信号は送ら
れず、繰り返し同じ語を読みだす。また、信号線1/7
には送信信号は出力されない。
行する。これにより、インタチェンジA/A上にベクト
ルレジスタ/一−3からSENDバイプ8へのデータバ
スができ、SENDパイプ8はタグ・フィールド/3−
3が1の内容を相互結合ネットワーク3に送り出す。具
体的には、ベクトル命令制御回路/JOが信号10を用
いてセレクタ/乙0−Jを信号線1/8と接続し,信号
線1?を用いてSEND指示発生制御回路80に起動信
号を送り、さらに、ベクトルレジスタアクセス制御回路
83に起動信号とベクトルレジスタ/.2−Jのアドレ
スを送る.ベクトルレジスタアクセス制御回路83の信
号によりベクトルレジスタ7.2−Jから読み出された
データはセレクタ/乙0−jを経由して信号線1/8上
に出力され,データレジスタ8−に格納される.このと
き、各語の先頭のタグ・フィールドの内容が1であれば
,SEND指示発生制御回路80からベクトルレジスタ
アクセス制御回路83に次の読み出し指示信号が送られ
,ベクトルレジスタ/..2−Jの次の語が読み出され
る。また、読み出したデータは、タグ部を除いてデータ
線/0に出力され,信号線1//には送信信号が出力さ
れる。タグ・フィールドの内容がOであればSEND指
示発生制御回路80からは次の読み出し指示信号は送ら
れず、繰り返し同じ語を読みだす。また、信号線1/7
には送信信号は出力されない。
相互結合ネットワーク3では、デイストリビュータJ/
/−0〜J//−jの出力チャネル0は一つ大きい番号
の要素プロセッサのセレクタ3−一〇〜3.2−3の入
力チャネル2と接続しているから、第0要素プロセッサ
から送信されたデータは第1要素プロセッサに送られる
。
/−0〜J//−jの出力チャネル0は一つ大きい番号
の要素プロセッサのセレクタ3−一〇〜3.2−3の入
力チャネル2と接続しているから、第0要素プロセッサ
から送信されたデータは第1要素プロセッサに送られる
。
(6)ベクトルレジスタ/.2−1のストア命令を発行
する。ベクトルレジスタ/,2−Zにはベクトルレジス
タ/.2−.7と同じ内容が格納されている。この命令
により、送信とは独立に自メモリへの格納が実行される
。格納はもう一本のストアパイプ7−λを用いて行われ
る.具体的には,ベクトル命令制御回路/.50が信号
10によりセレクタ/60−tIを信号線1/7と接続
し、信号線17,信号線18にそれぞれ起動信号,要素
数,データ幅,A (I,J)の先頭アドレスを乗せて
リクエスト発生制御回路70−J,アドレス発生回路7
/−2に送る.さらに、ベクトルレジスタアクセス制御
回路7B−2に起動信号とベクトルレジスタ/.2−I
Iのアドレスを送る。ロードのときと同様にして局所メ
モリにA (I,J)のアドレスが順に送られ、また、
ベクトルレジスタ/一一9から読みだされたデータがセ
レクタ/乙O−tI,信号線1l7,データレジスタ7
7−..2を経由して局所メモリー3に書き込まれる。
する。ベクトルレジスタ/,2−Zにはベクトルレジス
タ/.2−.7と同じ内容が格納されている。この命令
により、送信とは独立に自メモリへの格納が実行される
。格納はもう一本のストアパイプ7−λを用いて行われ
る.具体的には,ベクトル命令制御回路/.50が信号
10によりセレクタ/60−tIを信号線1/7と接続
し、信号線17,信号線18にそれぞれ起動信号,要素
数,データ幅,A (I,J)の先頭アドレスを乗せて
リクエスト発生制御回路70−J,アドレス発生回路7
/−2に送る.さらに、ベクトルレジスタアクセス制御
回路7B−2に起動信号とベクトルレジスタ/.2−I
Iのアドレスを送る。ロードのときと同様にして局所メ
モリにA (I,J)のアドレスが順に送られ、また、
ベクトルレジスタ/一一9から読みだされたデータがセ
レクタ/乙O−tI,信号線1l7,データレジスタ7
7−..2を経由して局所メモリー3に書き込まれる。
(7)一つ若い番号の要素プロセッサから送られてきた
データは、相互結合ネットワーク3の当該セレクタの入
力チャネル2からRBCEIVEバイプヲに送られる。
データは、相互結合ネットワーク3の当該セレクタの入
力チャネル2からRBCEIVEバイプヲに送られる。
同時に、セレクタの入力チャネル番号12′がデコーダ
l?−へ入力され,その結果セレクタ/?3により格納
領域アドレスレジスタ/9/−Jが選択されて、その内
容(受信用ベクトルレジスタ/j−/のアドレス)がR
ECEIVEバイプ2から渡される受信データの格納先
ベクトルレジスタのアドレスとしてインタチェンジAI
乙へ送られる.すなわち、信号線?3−一上のベクトル
レジスタ/一一/のアドレスがRECEIME指示発生
制御回路?0に渡され、信号線1/jを経由してベクト
ルレジスタアクセス制御回路?一に書き込み指示信号と
共に入力される。この入力にもとづいて,ベクトルレジ
スタアクセス制御回路?一は信号線93一/上のデータ
とRECEIVE指示発生制御回路?0が生成したタグ
・フィールドの値1を、データレジスタ?/,信号線1
l?,セレクタ/40−/を経由してベクトルレジスタ
/一一lに書き込む. こうして,受信データはベクトルレジスタ/.2−/に
格納され、そのタグ・フィールド/J−/は書き込みさ
れた語単位に1にセットされていく.第1要素プロセッ
サ以降は,この値を用いてベクトル処理を行う. 以上のようにして,アドレス情報の送信やデコード/切
替を行わずに効率良く通信して、要素プロセッサ間にま
たがるベクトル演算を行うことができる。
l?−へ入力され,その結果セレクタ/?3により格納
領域アドレスレジスタ/9/−Jが選択されて、その内
容(受信用ベクトルレジスタ/j−/のアドレス)がR
ECEIVEバイプ2から渡される受信データの格納先
ベクトルレジスタのアドレスとしてインタチェンジAI
乙へ送られる.すなわち、信号線?3−一上のベクトル
レジスタ/一一/のアドレスがRECEIME指示発生
制御回路?0に渡され、信号線1/jを経由してベクト
ルレジスタアクセス制御回路?一に書き込み指示信号と
共に入力される。この入力にもとづいて,ベクトルレジ
スタアクセス制御回路?一は信号線93一/上のデータ
とRECEIVE指示発生制御回路?0が生成したタグ
・フィールドの値1を、データレジスタ?/,信号線1
l?,セレクタ/40−/を経由してベクトルレジスタ
/一一lに書き込む. こうして,受信データはベクトルレジスタ/.2−/に
格納され、そのタグ・フィールド/J−/は書き込みさ
れた語単位に1にセットされていく.第1要素プロセッ
サ以降は,この値を用いてベクトル処理を行う. 以上のようにして,アドレス情報の送信やデコード/切
替を行わずに効率良く通信して、要素プロセッサ間にま
たがるベクトル演算を行うことができる。
本発明では,一つの繰返しループと該ループと依存関係
のある次の繰返しループの間で必要な同期は、放送手段
およびハードウエアによる全同期手段を用いて高速に実
現される。また、繰返しループ内のデータ依存関係を満
足するためには,要素プロセッサがスカラプロセッサの
場合、同期を取り合う要素プロセッサで制御情報の送信
&加算命令とチェック&busy−%tait命令を発
行するだけでよく、共有メモリのロック・アンロツクの
ように他の処理を阻害することがない。さらに、排他的
加減算は同期用変数または同期用レジスタの存在する側
の要素プロセッサが制御情報を受け取った後行うので、
不必要にネットワークを専有して他の処理を阻害するこ
ともない.また、要素プロセッサがベクトルプロセッサ
の場合、要素プロセッサ間にまたがってベクトルレジス
タを結合しておいてから、ベクトル処理を行なうことが
でき、データ依存関係のある繰り返しループのベクトル
処理を並列に実行することが可能となる.さらに、ネッ
トワーク・ブリセット装置により宛先情報の送信が不要
となり、通信時の宛先のデコードやスイッチ切り替えが
省略できるので通信が高速化できるという効果がある.
のある次の繰返しループの間で必要な同期は、放送手段
およびハードウエアによる全同期手段を用いて高速に実
現される。また、繰返しループ内のデータ依存関係を満
足するためには,要素プロセッサがスカラプロセッサの
場合、同期を取り合う要素プロセッサで制御情報の送信
&加算命令とチェック&busy−%tait命令を発
行するだけでよく、共有メモリのロック・アンロツクの
ように他の処理を阻害することがない。さらに、排他的
加減算は同期用変数または同期用レジスタの存在する側
の要素プロセッサが制御情報を受け取った後行うので、
不必要にネットワークを専有して他の処理を阻害するこ
ともない.また、要素プロセッサがベクトルプロセッサ
の場合、要素プロセッサ間にまたがってベクトルレジス
タを結合しておいてから、ベクトル処理を行なうことが
でき、データ依存関係のある繰り返しループのベクトル
処理を並列に実行することが可能となる.さらに、ネッ
トワーク・ブリセット装置により宛先情報の送信が不要
となり、通信時の宛先のデコードやスイッチ切り替えが
省略できるので通信が高速化できるという効果がある.
第1図は,本発明の第1実施例の全体構成図、第2図は
、本発明の各実施例に共通の並列計算機の概念図,第3
図は、相互結合ネットワーク中のデイストリビュータの
構成図,第4図は、相互結合ネットワーク中のセレクタ
の構成図、第5図は、セレクタの選択論理を表わすRO
Mの一例,第6図は、本発明の第2実施例の全体構成図
、第7図は,第2実施例の送信情報の内容説明図,第8
図は、本発明の第3実施例の全体構成図,第9図は,本
発明の第3実施例のベクトル処理装置の詳細な構成図で
ある. 剃imp/テニタ織別コーk 図 4 石レ腎ハ゜ス 5 4ト用1む弓イ自号イ橋ヒ 6 AND回路
、本発明の各実施例に共通の並列計算機の概念図,第3
図は、相互結合ネットワーク中のデイストリビュータの
構成図,第4図は、相互結合ネットワーク中のセレクタ
の構成図、第5図は、セレクタの選択論理を表わすRO
Mの一例,第6図は、本発明の第2実施例の全体構成図
、第7図は,第2実施例の送信情報の内容説明図,第8
図は、本発明の第3実施例の全体構成図,第9図は,本
発明の第3実施例のベクトル処理装置の詳細な構成図で
ある. 剃imp/テニタ織別コーk 図 4 石レ腎ハ゜ス 5 4ト用1む弓イ自号イ橋ヒ 6 AND回路
Claims (1)
- 【特許請求の範囲】 1、ホスト計算機から全要素プロセッサの記憶装置中の
同一アドレスに対して一度に情報を書き込む手段と、全
要素プロセッサの処理終了を検出する手段と、任意の要
素プロセッサ間で情報の授受を行うための相互結合ネッ
トワークと、情報の授受を行うときにその記憶装置への
書き込み、読みだしに関する同期をとるため、各要素プ
ロセッサに設けた同期用変数または同期用レジスタとそ
の排他的加減算回路とから構成されるデータフロー同期
手段とを備えることを特徴とする並列計算機。 2、ベクトル演算装置を有する要素プロセッサ間で、1
台の要素プロセッサのベクトルレジスタから他の1台ま
たは複数台の要素プロセッサのベクトルレジスタに直接
データを送るための経路を設定する手段、およびその値
が0のときデータのベクトルレジスタへの書き込みがで
き、その値が1のときデータのベクトルレジスタからの
読みだしができる、各語単位に設けたタグフィールドを
持つベクトルレジスタと、タグフィールドの値を操作す
る手段とから成るベクトルレジスタ間データフロー同期
装置。 3、要素プロセッサを相互に結合するネットワークの接
続パタンをネットワーク利用時以前に設定するネットワ
ーク接続パタン設定回路と、送信元要素プロセッサ番号
をそこから送られてくるデータを格納するベクトルレジ
スタアドレスまたは記憶装置中の格納領域アドレスに変
換する格納アドレス生成回路とから成るネットワークプ
リセット装置。 4、データフロー同期手段として請求項2記載のベクト
ルレジスタ間データフロー同期装置を用いた並列計算機
。 5、請求項3記載のネットワークプリセット装置を用い
た並列計算機。 6、相互結合ネットワークとして請求項3記載のネット
ワークプリセット装置を用いた並列計算機。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63285654A JP2765882B2 (ja) | 1988-11-14 | 1988-11-14 | 並列計算機,ベクトルレジスタ間データフロー同期装置およびネットワークプリセット装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63285654A JP2765882B2 (ja) | 1988-11-14 | 1988-11-14 | 並列計算機,ベクトルレジスタ間データフロー同期装置およびネットワークプリセット装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH02132575A true JPH02132575A (ja) | 1990-05-22 |
| JP2765882B2 JP2765882B2 (ja) | 1998-06-18 |
Family
ID=17694334
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP63285654A Expired - Lifetime JP2765882B2 (ja) | 1988-11-14 | 1988-11-14 | 並列計算機,ベクトルレジスタ間データフロー同期装置およびネットワークプリセット装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2765882B2 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7711096B2 (en) | 2005-09-28 | 2010-05-04 | Fujitsu Limited | Telecommunication server apparatus |
| JP2018206402A (ja) * | 2009-06-19 | 2018-12-27 | シンギュラー コンピューティング、エルエルシー | コンパクトな演算処理要素を用いたプロセッシング |
-
1988
- 1988-11-14 JP JP63285654A patent/JP2765882B2/ja not_active Expired - Lifetime
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7711096B2 (en) | 2005-09-28 | 2010-05-04 | Fujitsu Limited | Telecommunication server apparatus |
| JP2018206402A (ja) * | 2009-06-19 | 2018-12-27 | シンギュラー コンピューティング、エルエルシー | コンパクトな演算処理要素を用いたプロセッシング |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2765882B2 (ja) | 1998-06-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5822606A (en) | DSP having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word | |
| US5638524A (en) | Digital signal processor and method for executing DSP and RISC class instructions defining identical data processing or data transfer operations | |
| US4837676A (en) | MIMD instruction flow computer architecture | |
| US6088783A (en) | DPS having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word | |
| US5187795A (en) | Pipelined signal processor having a plurality of bidirectional configurable parallel ports that are configurable as individual ports or as coupled pair of ports | |
| CN100541425C (zh) | 标量/矢量处理器 | |
| CA1176757A (en) | Data processing system for parallel processings | |
| US5179530A (en) | Architecture for integrated concurrent vector signal processor | |
| EP0782071B1 (en) | Data processor | |
| US5872987A (en) | Massively parallel computer including auxiliary vector processor | |
| US8244931B2 (en) | Methods and apparatus for providing bit-reversal and multicast functions utilizing DMA controller | |
| US5832258A (en) | Digital signal processor and associated method for conditional data operation with no condition code update | |
| EP1512068B1 (en) | Access to a wide memory | |
| WO1992007335A1 (en) | A scalable parallel vector computer system | |
| CN111506534A (zh) | 具有非阻塞高性能事务信用系统的多核总线架构 | |
| US5404553A (en) | Microprocessor and data flow microprocessor having vector operation function | |
| US5586289A (en) | Method and apparatus for accessing local storage within a parallel processing computer | |
| US5710914A (en) | Digital signal processing method and system implementing pipelined read and write operations | |
| US7165166B2 (en) | Data processing system, data processing apparatus and control method for a data processing apparatus | |
| EP0199757B1 (en) | Instruction flow computer | |
| EP0797803B1 (en) | Chunk chaining for a vector processor | |
| KR100267092B1 (ko) | 멀티미디어신호프로세서의단일명령다중데이터처리 | |
| US6654870B1 (en) | Methods and apparatus for establishing port priority functions in a VLIW processor | |
| US6725355B1 (en) | Arithmetic processing architecture having a portion of general-purpose registers directly coupled to a plurality of memory banks | |
| JPH02132575A (ja) | 並列計算機,ベクトルレジスタ間データフロー同期装置およびネットワークプリセット装置 |