JP2906819B2 - 並列計算機及びデータ交換制御装置 - Google Patents
並列計算機及びデータ交換制御装置Info
- Publication number
- JP2906819B2 JP2906819B2 JP4092783A JP9278392A JP2906819B2 JP 2906819 B2 JP2906819 B2 JP 2906819B2 JP 4092783 A JP4092783 A JP 4092783A JP 9278392 A JP9278392 A JP 9278392A JP 2906819 B2 JP2906819 B2 JP 2906819B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- data
- processor
- processing element
- address
- 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 - Fee Related
Links
Landscapes
- Advance Control (AREA)
- Multi Processors (AREA)
Description
【0001】
【産業上の利用分野】この発明は、複数のプロセッシン
グエレメントを備えた並列計算機に関するものである。
グエレメントを備えた並列計算機に関するものである。
【0002】
【従来の技術】図7は例えば「特願平3−04956
5」に示された従来の分散共有メモリ方式並列計算機を
示すシステム構成図である。図において、1はプロセッ
シングエレメント(以下、PEともいう)である。PE
は並列計算機の基本単位であり、並列計算機は任意個の
PEにより構成される。2はプロセッサ(MPU)であ
り、5は各PEに分散配置された分散共有メモリであ
る。6はシステム全体のPEを接続するシステムバスで
ある。29はPEからの出力データをバッファすると共
に転送タイミングを制御する機能を持ったFIFOレジ
スタ(以下、FIFOともいう)である。30はシステ
ム全体のデータ転送を制御するデータ転送制御用プロセ
ッサ(以下、転送用PEともいう)である。この構成に
おいて、分散配置された共有メモリは全てのPEが全て
のアドレスをアクセスできるが、同じPE内に配置され
たメモリアドレスは高速にアクセスできる。
5」に示された従来の分散共有メモリ方式並列計算機を
示すシステム構成図である。図において、1はプロセッ
シングエレメント(以下、PEともいう)である。PE
は並列計算機の基本単位であり、並列計算機は任意個の
PEにより構成される。2はプロセッサ(MPU)であ
り、5は各PEに分散配置された分散共有メモリであ
る。6はシステム全体のPEを接続するシステムバスで
ある。29はPEからの出力データをバッファすると共
に転送タイミングを制御する機能を持ったFIFOレジ
スタ(以下、FIFOともいう)である。30はシステ
ム全体のデータ転送を制御するデータ転送制御用プロセ
ッサ(以下、転送用PEともいう)である。この構成に
おいて、分散配置された共有メモリは全てのPEが全て
のアドレスをアクセスできるが、同じPE内に配置され
たメモリアドレスは高速にアクセスできる。
【0003】次に動作について説明する。このシステム
においては、各PEがプログラムを実行する際に必要と
するデータは自PE内の分散共有メモリ内に置くことを
基本としている。この方針により、演算とデータの関係
が自PE内に閉じている限りは、データをシステムバス
経由でアクセスする必要がないので、メモリを高速にア
クセスできる。しかし、1つのプロセスを複数PEで分
担して実行する際にはほとんどの場合にPE間でのデー
タ交換が必要となる。このシステムでは、このデータ交
換を効率良く実行するために、専用に設けたデータ転送
制御用プロセッサ30がPE間のデータ転送を全て担当
している。まず、各PEでの演算結果を他のPEに転送
する必要が生じるとMPUはそのデータをFIFO29
に格納する。転送用PE30にはあらかじめ各PEがデ
ータをFIFOに格納する順番とそのデータの転送先が
転送用プログラムにより示されており、各演算担当PE
のMPUの動作とは非同期にデータ転送動作を実行でき
る。また、FIFO29は転送用PE30に対し要求さ
れたデータの有無を示す割り込み制御機構を備えている
ので、転送用PE30は最小限の同期オーバヘッドで転
送を行うことができる。
においては、各PEがプログラムを実行する際に必要と
するデータは自PE内の分散共有メモリ内に置くことを
基本としている。この方針により、演算とデータの関係
が自PE内に閉じている限りは、データをシステムバス
経由でアクセスする必要がないので、メモリを高速にア
クセスできる。しかし、1つのプロセスを複数PEで分
担して実行する際にはほとんどの場合にPE間でのデー
タ交換が必要となる。このシステムでは、このデータ交
換を効率良く実行するために、専用に設けたデータ転送
制御用プロセッサ30がPE間のデータ転送を全て担当
している。まず、各PEでの演算結果を他のPEに転送
する必要が生じるとMPUはそのデータをFIFO29
に格納する。転送用PE30にはあらかじめ各PEがデ
ータをFIFOに格納する順番とそのデータの転送先が
転送用プログラムにより示されており、各演算担当PE
のMPUの動作とは非同期にデータ転送動作を実行でき
る。また、FIFO29は転送用PE30に対し要求さ
れたデータの有無を示す割り込み制御機構を備えている
ので、転送用PE30は最小限の同期オーバヘッドで転
送を行うことができる。
【0004】このシステムを従来の集中配置型共有メモ
リ+キャッシュ方式(以下、集中方式と呼ぶ)と比較す
ると、集中方式ではPE間のデータ転送にキャッシュか
らメモリへの書き戻しと、メモリからキャッシュへの書
き込みの2回のバス上のデータ転送が必要となってい
た。また、集中方式では各PEの演算にデータが必要に
なってからメモリからキャッシュへの転送が発生するた
めに転送タイミングが固定的で、転送動作が競合する可
能性が高く、その競合が直接演算の待ちにつながってい
た。それに対し、ここに示した分散共有メモリ方式では
データ転送の回数が半分になると共に、データ転送のタ
イミングの自由度が向上し、実質的なバス性能が向上す
る。
リ+キャッシュ方式(以下、集中方式と呼ぶ)と比較す
ると、集中方式ではPE間のデータ転送にキャッシュか
らメモリへの書き戻しと、メモリからキャッシュへの書
き込みの2回のバス上のデータ転送が必要となってい
た。また、集中方式では各PEの演算にデータが必要に
なってからメモリからキャッシュへの転送が発生するた
めに転送タイミングが固定的で、転送動作が競合する可
能性が高く、その競合が直接演算の待ちにつながってい
た。それに対し、ここに示した分散共有メモリ方式では
データ転送の回数が半分になると共に、データ転送のタ
イミングの自由度が向上し、実質的なバス性能が向上す
る。
【0005】
【発明が解決しようとする課題】従来の分散共有メモリ
方式並列計算機におけるデータ転送制御プロセッサ方式
では、転送動作のためには各アプリケーションごとに専
用のデータ転送用プログラムが必要であり、プログラム
設計が複雑になるという問題と、データ転送用プログラ
ムを作成するために、あらかじめスタティックに負荷分
散法を定義しておく必要があり、実行中のダイナミック
な負荷分散が困難であるという問題があった。
方式並列計算機におけるデータ転送制御プロセッサ方式
では、転送動作のためには各アプリケーションごとに専
用のデータ転送用プログラムが必要であり、プログラム
設計が複雑になるという問題と、データ転送用プログラ
ムを作成するために、あらかじめスタティックに負荷分
散法を定義しておく必要があり、実行中のダイナミック
な負荷分散が困難であるという問題があった。
【0006】この発明は、並列計算機におけるPE間の
負荷分散によるデータ転送先のアドレス指定をアドレス
マッピング方式により行い、更にメモリの一部をブロー
ドキャスト領域として用いることにより、コンパイラの
設計を容易にし、また、アプリケーションプログラムの
設計における複雑さを低減することを目的としている。
負荷分散によるデータ転送先のアドレス指定をアドレス
マッピング方式により行い、更にメモリの一部をブロー
ドキャスト領域として用いることにより、コンパイラの
設計を容易にし、また、アプリケーションプログラムの
設計における複雑さを低減することを目的としている。
【0007】また、この発明はブロードキャスト手段と
非同期アクセス手段を備えたデータ交換制御装置の実現
可能な方式を得ることを目的としている。
非同期アクセス手段を備えたデータ交換制御装置の実現
可能な方式を得ることを目的としている。
【0008】
【課題を解決するための手段】この発明に係る並列計算
機は、データ処理を行なうプロセッサを有する複数のプ
ロセッシングエレメントを有し、データを記憶する複数
のメモリを上記複数のプロセッシングエレメントにそれ
ぞれ配置して、配置した各メモリを他のプロセッシング
エレメントと共有する分散共有メモリとして使用する並
列計算機において、 各プロセッシングエレメントは、 デ
ータが配置される分散共有メモリのデータ領域に対しア
ドレスマッピングを行うアドレスマッピング手段と、 上
記アドレスマッピング手段によりマッピングされる分散
共有メモリのデータ領域の特定の領域を各プロセッシン
グエレメントに共通のブロードキャスト領域として扱う
ブロードキャスト手段と、 上記アドレスマッピング手段
およびブロードキャスト手段に基づく自プロセッシング
エレメント内および他プロセッシングエレメント内のプ
ロセッサのメモリアクセス要求を受けて、その要求に対
応する実際のメモリアクセスを要求元のプロセッサの命
令実行動作とは非同期に実行する非同期アクセス手段と
を有するとともに、 上記並列計算機は、 上記ブロードキ
ャスト領域として、各プロセッシングエレメントに配置
された各メモリの特定の領域を各プロセッシングエレメ
ント毎にそれぞれ物理的に確保し、 上記ブロードキャス
ト領域に対する書き込みは、上記各プロセッシングエレ
メント毎にそれぞれ物理的に確保された各メモリの特定
の領域に対して各非同期アクセス手段によりそれぞれ行
われ、 上記ブロードキャスト領域に対する読み出しは、
読み出しを行なうプロセッシングエレメント毎にそれぞ
れで物理的に確保されたメモリの特定の領域に対して該
プロセッシングエレメントの非同期アクセス手段により
行われることを特徴とする。
機は、データ処理を行なうプロセッサを有する複数のプ
ロセッシングエレメントを有し、データを記憶する複数
のメモリを上記複数のプロセッシングエレメントにそれ
ぞれ配置して、配置した各メモリを他のプロセッシング
エレメントと共有する分散共有メモリとして使用する並
列計算機において、 各プロセッシングエレメントは、 デ
ータが配置される分散共有メモリのデータ領域に対しア
ドレスマッピングを行うアドレスマッピング手段と、 上
記アドレスマッピング手段によりマッピングされる分散
共有メモリのデータ領域の特定の領域を各プロセッシン
グエレメントに共通のブロードキャスト領域として扱う
ブロードキャスト手段と、 上記アドレスマッピング手段
およびブロードキャスト手段に基づく自プロセッシング
エレメント内および他プロセッシングエレメント内のプ
ロセッサのメモリアクセス要求を受けて、その要求に対
応する実際のメモリアクセスを要求元のプロセッサの命
令実行動作とは非同期に実行する非同期アクセス手段と
を有するとともに、 上記並列計算機は、 上記ブロードキ
ャスト領域として、各プロセッシングエレメントに配置
された各メモリの特定の領域を各プロセッシングエレメ
ント毎にそれぞれ物理的に確保し、 上記ブロードキャス
ト領域に対する書き込みは、上記各プロセッシングエレ
メント毎にそれぞれ物理的に確保された各メモリの特定
の領域に対して各非同期アクセス手段によりそれぞれ行
われ、 上記ブロードキャスト領域に対する読み出しは、
読み出しを行なうプロセッシングエレメント毎にそれぞ
れで物理的に確保されたメモリの特定の領域に対して該
プロセッシングエレメントの非同期アクセス手段により
行われることを特徴とする。
【0009】また、この発明に係るデータ交換制御装置
は、以下の要素を有するものである。 (a)自プロセッシングエレメントのプロセッサからの
メモリアクセス要求を受け、ブロードキャストアクセス
要求か否かを判断してアドレスマッピングを行なうとと
もに、プロセッサと非同期にメモリアクセス要求を完了
させる自プロセッシングエレメントマスタ要求制御手
段、(b)他プロセッシングエレメントのプロセッサか
らのメモリアクセス要求を受け、ブロードキャストアク
セス要求か否かを判断してアドレスマッピングを行なう
とともに、プロセッサと非同期にメモリアクセス要求を
完了させる他プロセッシングエレメントマスタ要求制御
手段、(c)上記自プロセッシングエレメントマスタ要
求制御手段及び他プロセッシングエレメントマスタ要求
制御手段によるデータ転送路経由のデータ交換を制御す
る通信制御手段。
は、以下の要素を有するものである。 (a)自プロセッシングエレメントのプロセッサからの
メモリアクセス要求を受け、ブロードキャストアクセス
要求か否かを判断してアドレスマッピングを行なうとと
もに、プロセッサと非同期にメモリアクセス要求を完了
させる自プロセッシングエレメントマスタ要求制御手
段、(b)他プロセッシングエレメントのプロセッサか
らのメモリアクセス要求を受け、ブロードキャストアク
セス要求か否かを判断してアドレスマッピングを行なう
とともに、プロセッサと非同期にメモリアクセス要求を
完了させる他プロセッシングエレメントマスタ要求制御
手段、(c)上記自プロセッシングエレメントマスタ要
求制御手段及び他プロセッシングエレメントマスタ要求
制御手段によるデータ転送路経由のデータ交換を制御す
る通信制御手段。
【0010】
【作用】この発明における並列計算機は、各PEへのデ
ータ分割をアドレスマッピングにより制御する。また、
配列など論理アドレス上は一つにまとまったデータを複
数のPEに分割する場合には、メモリ上に置いたブロー
ドキャスト領域にマッピングすることにより、データ分
割の変更によるアドレスマッピングの変更が発生しな
い。たとえば、各PE内に分散配置された共有メモリの
メモリアドレスが、PEアドレスを含む上位アドレスと
オフセットアドレスを用いた下位アドレスで表されるよ
うなシステムにおいて、各PEを示すそれぞれのPEア
ドレスの他にあらかじめ定めた特定の1つのPEアドレ
スをブロードキャストアドレスとして認識することによ
り、アドレスマッピング機能と組み合わせてブロードキ
ャスト機能を実現する。
ータ分割をアドレスマッピングにより制御する。また、
配列など論理アドレス上は一つにまとまったデータを複
数のPEに分割する場合には、メモリ上に置いたブロー
ドキャスト領域にマッピングすることにより、データ分
割の変更によるアドレスマッピングの変更が発生しな
い。たとえば、各PE内に分散配置された共有メモリの
メモリアドレスが、PEアドレスを含む上位アドレスと
オフセットアドレスを用いた下位アドレスで表されるよ
うなシステムにおいて、各PEを示すそれぞれのPEア
ドレスの他にあらかじめ定めた特定の1つのPEアドレ
スをブロードキャストアドレスとして認識することによ
り、アドレスマッピング機能と組み合わせてブロードキ
ャスト機能を実現する。
【0011】また、この発明におけるデータ交換制御装
置は、上記ブロードキャスト手段と非同期アクセス手段
を実現するためのもので、プロセッサからのアクセス要
求の制御およびデータ交換制御装置間の通信制御を自分
のプロセッサの演算動作と非同期に行うとともに、ブロ
ードキャストアクセス要求か否かを判断して、ブロード
キャストアクセス要求のための通信制御およびメモリア
クセスを行なう。
置は、上記ブロードキャスト手段と非同期アクセス手段
を実現するためのもので、プロセッサからのアクセス要
求の制御およびデータ交換制御装置間の通信制御を自分
のプロセッサの演算動作と非同期に行うとともに、ブロ
ードキャストアクセス要求か否かを判断して、ブロード
キャストアクセス要求のための通信制御およびメモリア
クセスを行なう。
【0012】
実施例1.以下、この発明の一実施例を図について説明
する。図1において、1はプロセッシングエレメント
(PE)で、ここでは4個のPEが記載されているが、
実際には任意個数のPEで並列計算機が構成される。ま
た、各PEはそれぞれ以下の2から5の要素で構成され
る。2はプロセッサ(MPU)である。3はメモリ管理
ユニット(MMU)で論理アドレスから物理アドレスへ
のアドレス変換を担当する。4はデータ交換制御装置
(DXU)でメモリアクセスの制御を全て担当する。5
は分散共有メモリである。分散共有メモリは計算機シス
テム全体で1つのリニアな物理アドレスを持つ共有メモ
リである。しかし、各PEに分散して配置されているた
め、ローカルメモリ的な性質を兼ね備えており、各MP
Uにとって、自PE内のメモリは他のPEのメモリより
高速にアクセスできる。6はシステムバスで並列計算機
内の全てのPEを接続する。本システムではDXU4が
このシステムバスと接続されている。
する。図1において、1はプロセッシングエレメント
(PE)で、ここでは4個のPEが記載されているが、
実際には任意個数のPEで並列計算機が構成される。ま
た、各PEはそれぞれ以下の2から5の要素で構成され
る。2はプロセッサ(MPU)である。3はメモリ管理
ユニット(MMU)で論理アドレスから物理アドレスへ
のアドレス変換を担当する。4はデータ交換制御装置
(DXU)でメモリアクセスの制御を全て担当する。5
は分散共有メモリである。分散共有メモリは計算機シス
テム全体で1つのリニアな物理アドレスを持つ共有メモ
リである。しかし、各PEに分散して配置されているた
め、ローカルメモリ的な性質を兼ね備えており、各MP
Uにとって、自PE内のメモリは他のPEのメモリより
高速にアクセスできる。6はシステムバスで並列計算機
内の全てのPEを接続する。本システムではDXU4が
このシステムバスと接続されている。
【0013】次に図2はDXU4の内部構成を示すブロ
ック図である。7は自分のPE内のマスタ(MPU2お
よびMMU3)からのアクセス要求に伴なう制御を担当
する自PEマスタ要求制御部である。8は同じく他のP
Eのマスタからのアクセス要求を制御する他PEマスタ
要求制御部である。9はアクセス要求の種類によってそ
の優先度の判断をする優先度制御部である。10は自分
のPE内の分散共有メモリ5を実際にアクセスするメモ
リアクセス制御部である。11はバスを経由したDXU
間通信を制御するDXU間通信制御部である。これらは
内部に適宜バッファを持つ。また、自PEマスタ要求制
御部7、他PEマスタ要求制御部8、DXU間通信制御
部11は、自分のPE内のマスタ(MPU2およびMM
U3)及び他のPEのマスタと非同期に動作するように
設計されている。
ック図である。7は自分のPE内のマスタ(MPU2お
よびMMU3)からのアクセス要求に伴なう制御を担当
する自PEマスタ要求制御部である。8は同じく他のP
Eのマスタからのアクセス要求を制御する他PEマスタ
要求制御部である。9はアクセス要求の種類によってそ
の優先度の判断をする優先度制御部である。10は自分
のPE内の分散共有メモリ5を実際にアクセスするメモ
リアクセス制御部である。11はバスを経由したDXU
間通信を制御するDXU間通信制御部である。これらは
内部に適宜バッファを持つ。また、自PEマスタ要求制
御部7、他PEマスタ要求制御部8、DXU間通信制御
部11は、自分のPE内のマスタ(MPU2およびMM
U3)及び他のPEのマスタと非同期に動作するように
設計されている。
【0014】次に動作について説明する。まず、図1の
4個のPEがひとまとまりの処理を分担する場合につい
て説明する。この場合に論理アドレス空間はシステム全
体で1つである。各MPUはそれぞれ独自のMMUを持
っているがそのアドレスマッピングテーブルはOSより
システム全体で一元的に管理されている。このOSによ
り管理されるアドレスマッピングテーブルはプロセスの
起動前に設定したものを実行中固定的に使用してもよい
し、プロセスの実行中にダイナミックスケジューリング
に伴い変更しても良い。
4個のPEがひとまとまりの処理を分担する場合につい
て説明する。この場合に論理アドレス空間はシステム全
体で1つである。各MPUはそれぞれ独自のMMUを持
っているがそのアドレスマッピングテーブルはOSより
システム全体で一元的に管理されている。このOSによ
り管理されるアドレスマッピングテーブルはプロセスの
起動前に設定したものを実行中固定的に使用してもよい
し、プロセスの実行中にダイナミックスケジューリング
に伴い変更しても良い。
【0015】メモリは分散配置されているが、共有メモ
リなので、図3に示すように論理アドレス空間12の各
領域はそれぞれ物理アドレス空間13のどこかの領域に
1対1に割り当てられる。この方式において、たとえ
ば、「論理アドレス空間でのアドレス」15はインデッ
クス番号(上位アドレス)とオフセットアドレス(下位
アドレス)で構成される。MMUはこの「論理アドレス
空間でのアドレス」15のインデックス番号をページ番
号に変換することにより、「物理アドレス空間でのアド
レス」16を生成する。この「物理アドレス空間でのア
ドレス」16におけるページ番号は、たとえば、PE番
号とページ番号から構成することもでき、このようにP
E番号とページ番号から上位アドレスを構成することに
より、「分散配置された物理アドレス空間でのアドレ
ス」17が構成できる。PE番号は、PEのアドレスを
示すものであり、たとえば、4個のPEがある場合、P
E番号(PEアドレスともいう)は、“00”、“0
1”、“10”、“11”を用いることができる。この
ように、物理アドレスの上位ビットはPEを特定するP
Eアドレスとして使われる。したがって、全てのMPU
は特定のデータが自PEの物理アドレス空間に割り当て
られているか他PEの物理アドレス空間に割り当てられ
ているかを意識する必要はなく、どちらの場合でも自由
にアクセスすることができる。但し、アクセス速度は異
なるので従来方式同様に必要なデータをなるべく自PE
の領域に置くようにする。
リなので、図3に示すように論理アドレス空間12の各
領域はそれぞれ物理アドレス空間13のどこかの領域に
1対1に割り当てられる。この方式において、たとえ
ば、「論理アドレス空間でのアドレス」15はインデッ
クス番号(上位アドレス)とオフセットアドレス(下位
アドレス)で構成される。MMUはこの「論理アドレス
空間でのアドレス」15のインデックス番号をページ番
号に変換することにより、「物理アドレス空間でのアド
レス」16を生成する。この「物理アドレス空間でのア
ドレス」16におけるページ番号は、たとえば、PE番
号とページ番号から構成することもでき、このようにP
E番号とページ番号から上位アドレスを構成することに
より、「分散配置された物理アドレス空間でのアドレ
ス」17が構成できる。PE番号は、PEのアドレスを
示すものであり、たとえば、4個のPEがある場合、P
E番号(PEアドレスともいう)は、“00”、“0
1”、“10”、“11”を用いることができる。この
ように、物理アドレスの上位ビットはPEを特定するP
Eアドレスとして使われる。したがって、全てのMPU
は特定のデータが自PEの物理アドレス空間に割り当て
られているか他PEの物理アドレス空間に割り当てられ
ているかを意識する必要はなく、どちらの場合でも自由
にアクセスすることができる。但し、アクセス速度は異
なるので従来方式同様に必要なデータをなるべく自PE
の領域に置くようにする。
【0016】まず、プロセスの実行を通して常に特定の
PEだけに係わるデータはそのPEのメモリにマッピン
グする。問題はプロセスの実行中にPE間で大規模なデ
ータ交換を行わざるを得ない場合の対処法である。その
様な例を図4に示す。これは配列データに対する演算で
ある。まず、配列Aに対して処理1を実行する場合に図
に示すように行単位に分割して各PEに割り当てたとす
る。ここでアクセスを高速化するために処理の分割と同
様に配列データも行単位に各PEに割り当てると処理1
の実行中は互いにデータ交換の必要なく処理を実行でき
る。次にこの処理の結果として配列Bができる。この場
合にデータはB−1のように各PEの分散共有メモリに
分割されている。ここで次の処理2がこの配列のデータ
をB−2のように分割して各PEで処理する必要がある
場合にPE間で大規模なデータ交換が発生する。
PEだけに係わるデータはそのPEのメモリにマッピン
グする。問題はプロセスの実行中にPE間で大規模なデ
ータ交換を行わざるを得ない場合の対処法である。その
様な例を図4に示す。これは配列データに対する演算で
ある。まず、配列Aに対して処理1を実行する場合に図
に示すように行単位に分割して各PEに割り当てたとす
る。ここでアクセスを高速化するために処理の分割と同
様に配列データも行単位に各PEに割り当てると処理1
の実行中は互いにデータ交換の必要なく処理を実行でき
る。次にこの処理の結果として配列Bができる。この場
合にデータはB−1のように各PEの分散共有メモリに
分割されている。ここで次の処理2がこの配列のデータ
をB−2のように分割して各PEで処理する必要がある
場合にPE間で大規模なデータ交換が発生する。
【0017】この様な場合について、PE間データ交換
を高速に実行する方法と、配列A、配列B、配列Cなど
を各PEに分割する際のアドレスマッピング法を以下に
説明する。まず、図3に示すように、PEが4個ある場
合を例にPE間データ交換を高速に実行する方法を説明
する。「処理1」が演算結果を順次出力する際に配列B
−1のように出力するのではなく、次の「処理2」に合
わせて分割された配列B−2のように直接出力する。す
なわち、処理1の出力として、PE1は、データX11
をPE1の分散共有メモリに出力し、データX12をP
E2の分散共有メモリに直接出力し、データX13をP
E3の分散共有メモリに直接出力し、データX14をP
E4の分散共有メモリに直接出力する。同様に、PE2
は、データX21をPE1の分散共有メモリに出力し、
データX22をPE2の分散共有メモリに直接出力し、
データX23をPE3の分散共有メモリに直接出力し、
データX24をPE4の分散共有メモリに直接出力す
る。以下、データX31〜X44についても同様であ
る。その結果、データ転送は次の処理にデータが必要に
なってからではなく、前の処理が終わったらすぐに、前
倒しに転送することができる。また、この時DXUの各
制御部はMPUと非同期に動作する機能を持っているの
で、バスネックによる転送待ちが発生しても、それが直
ちにMPUのオーバヘッドにはならない。その結果、バ
スのデータ転送性能が実質的に向上する。
を高速に実行する方法と、配列A、配列B、配列Cなど
を各PEに分割する際のアドレスマッピング法を以下に
説明する。まず、図3に示すように、PEが4個ある場
合を例にPE間データ交換を高速に実行する方法を説明
する。「処理1」が演算結果を順次出力する際に配列B
−1のように出力するのではなく、次の「処理2」に合
わせて分割された配列B−2のように直接出力する。す
なわち、処理1の出力として、PE1は、データX11
をPE1の分散共有メモリに出力し、データX12をP
E2の分散共有メモリに直接出力し、データX13をP
E3の分散共有メモリに直接出力し、データX14をP
E4の分散共有メモリに直接出力する。同様に、PE2
は、データX21をPE1の分散共有メモリに出力し、
データX22をPE2の分散共有メモリに直接出力し、
データX23をPE3の分散共有メモリに直接出力し、
データX24をPE4の分散共有メモリに直接出力す
る。以下、データX31〜X44についても同様であ
る。その結果、データ転送は次の処理にデータが必要に
なってからではなく、前の処理が終わったらすぐに、前
倒しに転送することができる。また、この時DXUの各
制御部はMPUと非同期に動作する機能を持っているの
で、バスネックによる転送待ちが発生しても、それが直
ちにMPUのオーバヘッドにはならない。その結果、バ
スのデータ転送性能が実質的に向上する。
【0018】次に図5に示すように、PEアドレスが4
個分あってPEが3個ある場合を例に、配列を各PEに
分割する際のアドレスマッピング法を説明する。このよ
うに、以下に示す方式では実際のPE数より1個多いP
Eアドレスが必要である。一般的に配列は論理アドレス
上では一塊に配置される。これを複数のPEに分割する
のに、ここに示す方式では論理アドレスから物理アドレ
スへのアドレスマッピングを利用する。しかし、このア
ドレスマッピングはページ単位で行われるため希望する
分割法を実現するのは容易ではなく、論理アドレス上で
あらかじめ特殊な配置をするなどの工夫が必要となる。
この様な問題を解決するため、このシステムではメモリ
にブロードキャスト領域を導入する。まず、論理アドレ
ス上の特定領域をブロードキャスト領域と定義し、コン
パイラなどが配列をこの領域に配置することでOS等に
対してこの配列を物理的に各PEの分散共有メモリにブ
ロードキャストすることを指定する。このアドレスとし
て、本実施例では4個目のPEアドレス、すなわち、
“11”を割り当てるものとする。MMUにより論理ア
ドレスをリニアな物理アドレスにマッピングする際に、
このブロードキャスト領域だけはPEアドレスが固定で
同じPEアドレス“11”にマッピングされる。ただし
ページアドレスは一般領域と競合しない範囲で自由にマ
ッピングできる。更に図に示すように物理アドレス上の
この領域はDXUの機能により、実際の物理メモリに対
しては全PEの同じページに同時にマッピングされる。
個分あってPEが3個ある場合を例に、配列を各PEに
分割する際のアドレスマッピング法を説明する。このよ
うに、以下に示す方式では実際のPE数より1個多いP
Eアドレスが必要である。一般的に配列は論理アドレス
上では一塊に配置される。これを複数のPEに分割する
のに、ここに示す方式では論理アドレスから物理アドレ
スへのアドレスマッピングを利用する。しかし、このア
ドレスマッピングはページ単位で行われるため希望する
分割法を実現するのは容易ではなく、論理アドレス上で
あらかじめ特殊な配置をするなどの工夫が必要となる。
この様な問題を解決するため、このシステムではメモリ
にブロードキャスト領域を導入する。まず、論理アドレ
ス上の特定領域をブロードキャスト領域と定義し、コン
パイラなどが配列をこの領域に配置することでOS等に
対してこの配列を物理的に各PEの分散共有メモリにブ
ロードキャストすることを指定する。このアドレスとし
て、本実施例では4個目のPEアドレス、すなわち、
“11”を割り当てるものとする。MMUにより論理ア
ドレスをリニアな物理アドレスにマッピングする際に、
このブロードキャスト領域だけはPEアドレスが固定で
同じPEアドレス“11”にマッピングされる。ただし
ページアドレスは一般領域と競合しない範囲で自由にマ
ッピングできる。更に図に示すように物理アドレス上の
この領域はDXUの機能により、実際の物理メモリに対
しては全PEの同じページに同時にマッピングされる。
【0019】この機能を実現するDXUの動作を具体的
に説明する。図5はPEが3個ある場合のアドレスマッ
ピングを示す図であり、各PE内のメモリアドレスは図
3の17に示したようにPE番号(PEアドレス)が異
なるだけで、ページ番号、オフセットアドレス(下位ア
ドレス)は全く同様に設定されているものとする。DX
UはこのPEアドレスを判断して自分の担当メモリであ
れば行動を起こす。特定のPEアドレス、例えば、“1
1”を持つアドレスをブロードキャストアドレスと定義
し、このアドレスの場合は全DXUがアクセス動作を起
こし、このブロードキャスト領域への書き込みを各PE
の分散共有メモリのブロードキャストアドレスのページ
及びオフセットアドレスと同じアドレスへの書き込みと
する(書き込みの場合)。これによってブロードキャス
トができる。但し、このPEアドレスに対する読み出し
を命令された場合は自PE内でローカルに処理する。す
なわちブロードキャスト領域に割り当てられた配列など
に対して、書き込みは全PEの分散共有メモリに行わ
れ、読み出しは自分の分散共有メモリから行なう。な
お、論理アドレス割り付け時に、PEアドレスを11と
することによってOSに対してブロードキャスト要求の
意思表示を行うことができることを示したが、PEがど
れだけ増えてもブロードキャスト領域の最大容量は各P
Eの最大メモリ量と等しく一定なのでこの方式で対応で
きる。また、この方式では書き込み動作は直ちに全メモ
リに反映されるのでコヒーレンシが保たれる。また、ア
クセスの種類についての優先度付けを定義することによ
りコヒーレンシの質を高く保ち、また、性能を向上させ
ることができる。
に説明する。図5はPEが3個ある場合のアドレスマッ
ピングを示す図であり、各PE内のメモリアドレスは図
3の17に示したようにPE番号(PEアドレス)が異
なるだけで、ページ番号、オフセットアドレス(下位ア
ドレス)は全く同様に設定されているものとする。DX
UはこのPEアドレスを判断して自分の担当メモリであ
れば行動を起こす。特定のPEアドレス、例えば、“1
1”を持つアドレスをブロードキャストアドレスと定義
し、このアドレスの場合は全DXUがアクセス動作を起
こし、このブロードキャスト領域への書き込みを各PE
の分散共有メモリのブロードキャストアドレスのページ
及びオフセットアドレスと同じアドレスへの書き込みと
する(書き込みの場合)。これによってブロードキャス
トができる。但し、このPEアドレスに対する読み出し
を命令された場合は自PE内でローカルに処理する。す
なわちブロードキャスト領域に割り当てられた配列など
に対して、書き込みは全PEの分散共有メモリに行わ
れ、読み出しは自分の分散共有メモリから行なう。な
お、論理アドレス割り付け時に、PEアドレスを11と
することによってOSに対してブロードキャスト要求の
意思表示を行うことができることを示したが、PEがど
れだけ増えてもブロードキャスト領域の最大容量は各P
Eの最大メモリ量と等しく一定なのでこの方式で対応で
きる。また、この方式では書き込み動作は直ちに全メモ
リに反映されるのでコヒーレンシが保たれる。また、ア
クセスの種類についての優先度付けを定義することによ
りコヒーレンシの質を高く保ち、また、性能を向上させ
ることができる。
【0020】実施例2.なお、DXUにバッファを設け
ることにより、非同期アクセスの機能がより向上し、さ
らに自由度を高めることができる。
ることにより、非同期アクセスの機能がより向上し、さ
らに自由度を高めることができる。
【0021】実施例3. また、このブロードキャスト領域は論理アドレス空間で
の領域割り付けにより0からシステムの全領域までペー
ジ単位でその適応範囲を変更することができる。
の領域割り付けにより0からシステムの全領域までペー
ジ単位でその適応範囲を変更することができる。
【0022】実施例4.また、上記実施例では、PEが
4個又は3個の場合を示したが、その数に制限はない。
4個又は3個の場合を示したが、その数に制限はない。
【0023】実施例5.次に複数のプロセスが同時に走
る場合について説明する。この場合は論理アドレス空間
が複数存在し、それが一つの物理アドレス空間にマッピ
ングされる。これはアドレスマッピングテーブルをその
様に作成するだけで、シングルプロセスの場合とまった
く同様に扱うことができる。
る場合について説明する。この場合は論理アドレス空間
が複数存在し、それが一つの物理アドレス空間にマッピ
ングされる。これはアドレスマッピングテーブルをその
様に作成するだけで、シングルプロセスの場合とまった
く同様に扱うことができる。
【0024】実施例6.上記実施例1では並列計算機全
体を1本のシステムバスで接続した場合について説明し
たが、図6に示すように複数のバスに分割して接続され
ていても良い。これは前述の「特願平3−04956
5」で示されている多重クラスタバスを用いた並列計算
機の構成図である。実施例1で示した方式は、図6のよ
うにシステム内に複数のクラスタが形成された場合にも
適用することができる。アドレスマッピングテーブルは
システム全体を通して一元的に管理し、各プロセスをそ
れぞれ1つのクラスタ内に閉じるように割り付ける。こ
のようにするとブロードキャストアクセス要求の適用範
囲を物理的にクラスタ内に制限できるので、各クラスタ
ごとに同じオフセット領域を別の配列の格納に利用でき
る。また、バス負荷を低減できるという利点もある。
体を1本のシステムバスで接続した場合について説明し
たが、図6に示すように複数のバスに分割して接続され
ていても良い。これは前述の「特願平3−04956
5」で示されている多重クラスタバスを用いた並列計算
機の構成図である。実施例1で示した方式は、図6のよ
うにシステム内に複数のクラスタが形成された場合にも
適用することができる。アドレスマッピングテーブルは
システム全体を通して一元的に管理し、各プロセスをそ
れぞれ1つのクラスタ内に閉じるように割り付ける。こ
のようにするとブロードキャストアクセス要求の適用範
囲を物理的にクラスタ内に制限できるので、各クラスタ
ごとに同じオフセット領域を別の配列の格納に利用でき
る。また、バス負荷を低減できるという利点もある。
【0025】
【発明の効果】以上のように、この発明によれば並列計
算機において各PEにデータを分割する場合のアドレス
指定をアドレスマッピングにより行うようにし、かつ、
ブロードキャスト機能を設けたので、配列のような論理
アドレス上ではひとかたまりのものとして扱われるデー
タを複数のPEに分割する場合に、プログラム設計時に
そのデータを格納する変数をブロードキャスト変数とし
て指定するだけで任意の分割に対応でき、また、実行時
にダイナミックにデータ分割を変更することもできると
いう効果がある。また、上記に加えてDXUがMPUと
非同期にデータ転送動作を実行するように構成したの
で、従来同様転送の自由度を保持し、バスの実効的な性
能を高く保つことができる。
算機において各PEにデータを分割する場合のアドレス
指定をアドレスマッピングにより行うようにし、かつ、
ブロードキャスト機能を設けたので、配列のような論理
アドレス上ではひとかたまりのものとして扱われるデー
タを複数のPEに分割する場合に、プログラム設計時に
そのデータを格納する変数をブロードキャスト変数とし
て指定するだけで任意の分割に対応でき、また、実行時
にダイナミックにデータ分割を変更することもできると
いう効果がある。また、上記に加えてDXUがMPUと
非同期にデータ転送動作を実行するように構成したの
で、従来同様転送の自由度を保持し、バスの実効的な性
能を高く保つことができる。
【図1】この発明の一実施例による並列計算機のシステ
ム構成図である。
ム構成図である。
【図2】この発明の一実施例におけるデータ交換制御装
置の構成図である。
置の構成図である。
【図3】この発明の一実施例におけるアドレスマッピン
グを示す説明図である。
グを示す説明図である。
【図4】この発明が課題としているPE間のデータ交換
を示す説明図である。
を示す説明図である。
【図5】この発明の一実施例におけるブロードキャスト
領域のマッピング法を示す説明図である。
領域のマッピング法を示す説明図である。
【図6】従来の並列計算機のシステム構成図であり、こ
の発明の適用可能な一実施例を示す並列計算機のシステ
ム構成図でもある。
の発明の適用可能な一実施例を示す並列計算機のシステ
ム構成図でもある。
【図7】従来の並列計算機のシステム構成図である。
1 プロセッシングエレメント(PE) 2 プロセッサ(MPU) 3 メモリ管理ユニット(MMU) 4 データ交換制御装置(DXU) 5 分散共有メモリ 6 システムバス 7 自PEマスタ要求制御部 8 他PEマスタ要求制御部 9 優先度制御部 10 メモリアクセス制御部 11 DXU間通信制御部
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.6,DB名) G06F 15/16 645 G06F 9/38 370 G06F 15/177 682
Claims (2)
- 【請求項1】 データ処理を行なうプロセッサを有する
複数のプロセッシングエレメントを有し、データを記憶
する複数のメモリを上記複数のプロセッシングエレメン
トにそれぞれ配置して、配置した各メモリを他のプロセ
ッシングエレメントと共有する分散共有メモリとして使
用する並列計算機において、 各プロセッシングエレメントは、 データが配置される分散共有メモリのデータ領域に対し
アドレスマッピングを行うアドレスマッピング手段と、 上記アドレスマッピング手段によりマッピングされる分
散共有メモリのデータ領域の特定の領域を各プロセッシ
ングエレメントに共通のブロードキャスト領域として扱
うブロードキャスト手段と、 上記アドレスマッピング手段およびブロードキャスト手
段に基づく自プロセッシングエレメント内および他プロ
セッシングエレメント内のプロセッサのメモリアクセス
要求を受けて、その要求に対応する実際のメモリアクセ
スを要求元のプロセッサの命令実行動作とは非同期に実
行する非同期アクセス手段とを有するとともに、 上記並列計算機は、 上記ブロードキャスト領域として、各プロセッシングエ
レメントに配置された各メモリの特定の領域を各プロセ
ッシングエレメント毎にそれぞれ物理的に確保し、 上記ブロードキャスト領域に対する書き込みは、上記各
プロセッシングエレメント毎にそれぞれ物理的に確保さ
れた各メモリの特定の領域に対して各非同期アクセス手
段によりそれぞれ行われ、 上記ブロードキャスト領域に対する読み出しは、読み出
しを行なうプロセッシングエレメント毎にそれぞれで物
理的に確保されたメモリの特定の領域に対して該プロセ
ッシングエレメントの非同期アクセス手段により行われ
ることを特徴とする並列計算機。 - 【請求項2】 以下の要素を有し請求項第1項記載の並
列計算機に用いられるデータ交換制御装置 (a)自プロセッシングエレメントのプロセッサからの
メモリアクセス要求を受け、ブロードキャストアクセス
要求か否かを判断してアドレスマッピングを行なうとと
もに、プロセッサと非同期にメモリアクセス要求を完了
させる自プロセッシングエレメントマスタ要求制御手
段、 (b)他プロセッシングエレメントのプロセッサからの
メモリアクセス要求を受け、ブロードキャストアクセス
要求か否かを判断してアドレスマッピングを行なうとと
もに、プロセッサと非同期にメモリアクセス要求を完了
させる他プロセッシングエレメントマスタ要求制御手
段、 (c)上記自プロセッシングエレメントマスタ要求制御
手段及び他プロセッシングエレメントマスタ要求制御手
段によるデータ転送路経由のデータ交換を制御する通信
制御手段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4092783A JP2906819B2 (ja) | 1992-04-13 | 1992-04-13 | 並列計算機及びデータ交換制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4092783A JP2906819B2 (ja) | 1992-04-13 | 1992-04-13 | 並列計算機及びデータ交換制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH05290000A JPH05290000A (ja) | 1993-11-05 |
JP2906819B2 true JP2906819B2 (ja) | 1999-06-21 |
Family
ID=14064021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4092783A Expired - Fee Related JP2906819B2 (ja) | 1992-04-13 | 1992-04-13 | 並列計算機及びデータ交換制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2906819B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003006177A (ja) * | 1995-03-14 | 2003-01-10 | Mitsubishi Electric Corp | 分散共有メモリ監視装置、分散共有メモリネットワーク追跡装置および分散共有メモリネットワーク設定支援装置。 |
JP3661235B2 (ja) * | 1995-08-28 | 2005-06-15 | 株式会社日立製作所 | 共有メモリシステム、並列型処理装置並びにメモリlsi |
JP5241384B2 (ja) * | 2008-08-29 | 2013-07-17 | ルネサスエレクトロニクス株式会社 | 分散共有メモリ型マルチプロセッサ及びデータ処理方法 |
CN103152394B (zh) * | 2013-02-06 | 2016-09-28 | 华为技术有限公司 | 数据存取***、内存共享设备及数据读取方法 |
JP2019079175A (ja) * | 2017-10-23 | 2019-05-23 | 日本電気株式会社 | 情報処理システム、及び、情報処理システムによる制御方法 |
-
1992
- 1992-04-13 JP JP4092783A patent/JP2906819B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH05290000A (ja) | 1993-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5940870A (en) | Address translation for shared-memory multiprocessor clustering | |
US5263169A (en) | Bus arbitration and resource management for concurrent vector signal processor architecture | |
US7360035B2 (en) | Atomic read/write support in a multi-module memory configuration | |
US5729714A (en) | Shared memory access method and apparatus with address translation | |
JP2002500395A (ja) | 最適な多チャネル記憶制御システム | |
JPH04348451A (ja) | 並列計算機 | |
US5761455A (en) | Dynamic bus reconfiguration logic | |
JP2906819B2 (ja) | 並列計算機及びデータ交換制御装置 | |
JPH10187631A (ja) | 拡張された対称マルチプロセッサ・アーキテクチャ | |
JPH08235143A (ja) | クラスタ構成の並列計算機 | |
JP2002163228A (ja) | 多重コアdsp装置のための外部バス裁定技術 | |
US20030229721A1 (en) | Address virtualization of a multi-partitionable machine | |
JPH09146904A (ja) | アドレス空間共有システム | |
JPH04288643A (ja) | マルチプロセッサシステムのメモリマッピング方式 | |
JP2780662B2 (ja) | マルチプロセッサシステム | |
JP2602241B2 (ja) | 並列計算機 | |
JP3304445B2 (ja) | プログラム生成処理装置 | |
JPH08339326A (ja) | マルチプロセッサ装置 | |
JPH0330175B2 (ja) | ||
Masko | Atomic operations for task scheduling for systems based on communication on-the-fly between SMP clusters | |
JP2000067020A (ja) | マルチプロセッサシステム | |
JP2823663B2 (ja) | マルチプロセッサシステム | |
JPS6345669A (ja) | マルチプロセツサシステム | |
JP4214521B2 (ja) | 情報処理システム及びマルチプロセッサ・システム | |
JP2001273191A (ja) | コンピュータシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |