JP3641837B2 - Data transfer method for distributed memory parallel computer - Google Patents
Data transfer method for distributed memory parallel computer Download PDFInfo
- Publication number
- JP3641837B2 JP3641837B2 JP14939994A JP14939994A JP3641837B2 JP 3641837 B2 JP3641837 B2 JP 3641837B2 JP 14939994 A JP14939994 A JP 14939994A JP 14939994 A JP14939994 A JP 14939994A JP 3641837 B2 JP3641837 B2 JP 3641837B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- message
- processor
- transfer
- transmission
- 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
Images
Landscapes
- Multi Processors (AREA)
Description
【0001】
【産業上の利用分野】
本発明は、分散メモリ型並列計算機におけるデータ転送方法、それを実現する分散メモリ型並列計算機および要素プロセッサに関し、特に、並列計算機を構成する任意の要素プロセッサが、自らを含めて任意の2つの(送信側と受信側)要素プロセッサが具備する主記憶装置間でデータの送受信を可能とするデータ転送方法、それを実現する分散メモリ型並列計算機および要素プロセッサに関する。
【0002】
【従来の技術】
近年の高度な情報化社会において、情報処理装置に対する処理量の増大、処理速度の高速化などが強く要求され、その要求に答えるために複数の演算プロセッサを連携して構成した並列計算機が開発された。ある並列計算機は、数台の演算プロセッサを有し、その数台の演算プロセッサで1つのメモリを共有して用いる形で構成された。この種の並列計算機はTCMP(Tightly Coupled Multi−Processor)型の並列計算機と呼ばれている。一方でTCMP型よりもより多くの演算プロセッサ、具体的には数百台から数千台の演算プロセッサを有する並列計算機も登場した。この並列計算機は、ハードウェア上の実現の難易度の観点から、全演算プロセッサで1つのメモリを共有するような方式をとらずに、それぞれの演算プロセッサが独立してメモリを有する方式をとったため、分散メモリ型の並列計算機と呼ばれている。
分散メモリ型の並列計算機はTCMP型の並列計算機に比べて高性能を達成できる。しかし、分散メモリ型の並列計算機は、メモリが複数の演算プロセッサに分散されて設けられるため、単一演算プロセッサと単一メモリを想定した従来プログラミングスタイルに基づくプログラムの移植性やプログラミングの容易性などに問題点があるとの指摘も存在した。そこで、最近では、米国Stanford大学の研究に代表されるような分散メモリ型の並列計算機に対して、各演算プロセッサが互いに他の演算プロセッサが有するメモリを参照できるようにする分散共有メモリ方式を導入する傾向が高くなっている。
【0003】
分散共有メモリを実現するためには、他の演算プロセッサが有するメモリをいかにして参照させるかという課題が存在する。この課題はアドレッシングによって解決する。具体的には、自らのアドレス空間に他の演算プロセッサが有するメモリをマッピングする。これによって実現されるアドレス空間を以降グローバルアドレス空間と呼ぶ。図6は、グローバルアドレス空間の例である。グローバルアドレス空間601は、並列計算機を構成する要素プロセッサの台数分に分割される。分割された領域603、605、・・・607はそれぞれ異なる要素プロセッサ用に割り当てられる。そして、それぞれの領域603、605、・・・607の中の領域602、604、・・・606に対して、該当する要素プロセッサが具備する主記憶装置がマップされる。
例えば、IBMが実験的に試作した並列計算機であるRP3では、1985年のInternational Conference on Parallel Processingの予稿集782ページから789ページの予稿である”RP3 Processor−Memory Element”および特公平5−20776号に開示されているとおり、図13に示す形態のアドレスを用いて他の演算プロセッサが有するメモリを参照する。図13のアドレスでは、参照すべきメモリを有する演算プロセッサをプロセッサ番号フィールド1301で指定し、そのメモリ内のアドレスをオフセットフィールド1302で指定している。
【0004】
【発明が解決しようとする課題】
上述した従来の分散共有メモリ方式では、ある演算プロセッサが他の演算プロセッサが有するメモリを参照する場合に、自プロセッサが有するメモリを参照する時と同様なロード/ストア命令を用いていた。すなわち、分散共有メモリ方式を並列計算機を構成する要素プロセッサ間のデータ転送インタフェースとして捉えるならば、従来の分散共有メモリ実現方式では、ワード単位の小粒度のデータ転送しか実現し得なかった。
例えば、データベース処理にこの並列計算機を適用することを考えると、大規模なデータベースの(メモリ間)コピーが発生した場合に、多量のワード単位データ転送を行わなければならないため、オーバヘッドが大きくなり性能的に問題が大きい。
また、このインタフェースでは、データ転送を起動するプロセッサ自身が必ずデータ転送元あるいはデータ転送先のどちらかになる必要がある。すなわち、このインタフェースは、2方向のみのインタフェースである。
これに対し、分散メモリ型の並列計算機が基本的にサポートしているメッセージ・パッシング・インタフェースは、数ワードから数百、数千のワードを一度に転送できるインタフェースである。しかし、従来のメッセージ・パッシング・インタフェースでは、明示的にデータの送信先のプロセッサ番号を指定する必要があった。また、送信するデータは、自プロセッサの有するメモリ内に存在しなければならなかった。すなわち、従来のメッセージ・パッシング・インタフェースは、自プロセッサから他プロセッサへの一方向のインタフェースであった。
本発明の目的は、データ群の帰属先プロセッサを意識せず、かつ、可変量のデータ群を対象とし、しかも、任意要素プロセッサ間に対して任意要素プロセッサが起動可能なデータ転送方法、それを実現する分散メモリ型並列計算機および要素プロセッサを提供することにある。
【0005】
【課題を解決するための手段】
上記課題を解決するために、本発明は、従来のメッセージ・パッシング・インタフェースに基づくデータ転送方式に、分散共有メモリ方式で実現するグローバルアドレス空間の考え方を導入したものである。
具体的には、図5に示すように、送信するデータ群の送信元プロセッサ(この場合、自プロセッサ)での先頭アドレス(src−adr)、送信先のプロセッサ番号(dst−PU#)、送信先でのデータ群の書き込みメモリ領域の先頭アドレス(dst−adr)、データ転送量(length)、および、送受信対象データのメモリ領域における存在間隔(stride)の主に5つのパラメータで表現される従来のメッセージ・パッシング・インタフェースを変更し、図3に示すように、送信するデータ群の先頭グローバルアドレス(src−adr)、転送データ群の書き込み先の先頭グローバルアドレス(dst−adr)、データ転送量(length)、および、送受信対象データのメモリ領域における存在間隔(stride)という4つのパラメータで表現されるインタフェースを定義する。本インタフェースは、分散メモリ型の並列計算機において、該並列計算機を構成する要素プロセッサの各々に所属する主記憶装置を全てグローバルアドレス空間によって参照して、任意のグローバルアドレス領域から他の任意のグローバルアドレス領域へのメモリ領域間データコピーを実現するインタフェースである。本発明は、このようなインタフェースを用いてコピー態様でデータ転送を実現することを特徴としている。
【0006】
【作用】
本発明は、上記手段によって、分散メモリ型の並列計算機において、データ転送をメモリ領域間データコピーの概念で実現できる。したがって、グローバルアドレス空間参照に際しても、ワード単位から数百、数千ワード以上のデータ群を一度に対象とできる。
また、データ転送という観点からは、データ転送起動者がデータまたはデータ群の帰属先プロセッサを意識する必要がなくなる。この特徴は、上記手段を適用する並列計算機向けのプログラムの記述容易性を高める効果がある。
さらに、上記手段によって実現されるデータ転送方法では、任意要素プロセッサ間(任意主記憶装置間)のデータ転送が可能であり、また、データ転送起動者を、データ転送元あるいはデータ転送先のいずれとも規定しない。すなわち、要素プロセッサBから要素プロセッサCへのデータ転送を要素プロセッサBでも要素プロセッサCでもない要素プロセッサAが指示できる。これは、一方向のみのインタフェースであった従来のメッセージ・パッシング・インタフェースや、せいぜい2方向であった従来の分散共有メモリ方式に基づくデータ転送インタフェースを凌駕する多方向のインタフェースであり、この特徴がプログラムの記述容易性を高める効果も大きい。特にこの特徴はサーバ・クライアント・モデルのプログラム記述にとって効果が大きいと考えられる。
【0007】
【実施例】
本発明の実施例を図を用いて詳細に説明する。
図2は、分散メモリ型の並列計算機を構成する要素プロセッサの一実施例である。同図において、要素プロセッサ201は、プログラム処理を行う命令プロセッサ202、命令プロセッサ202に接続され、命令プロセッサ202から出されるコマンド/アドレス/データの組に従って、後述する主記憶装置207、I/Oデバイス205およびネットワークインタフェース208内部などへのアクセスを発行するメモリアクセスインタフェース203、I/Oインタフェース204、メモリ制御ユニット206、他の要素プロセッサ(201と同様な構成を有する)と要素プロセッサ間結合網(ネットワーク)を介してパケットおよびデータの受渡しを行うネットワークインタフェース208、I/Oインタフェース204に接続されるI/Oデバイス205、メモリ制御ユニット206に接続される主記憶装置207、および、メモリアクセスインタフェース203、I/Oインタフェース204、メモリ制御ユニット206およびネットワークインタフェース208を接続するバス209などから構成される。
本発明は、データ転送を実現するデータ転送機構の根幹であるネットワークインタフェース208に関するものである。
【0008】
次に、本発明で定義するデータ転送インタフェースについて説明する。
図3は、本発明で定義するデータ転送インタフェースをC言語などのプログラミング言語を使って関数の形で表現したものである。該インタフェースを適用する並列計算機向きのプログラム中でデータ転送を表現する場合には、実際に図3に準ずる形で記述される。
図3の第1パラメータ“src−adr”は、転送する一連のデータ群の先頭グローバルアドレスである。また、第2パラメータ“dst−adr”は、転送データ群の書き込み先の先頭グローバルアドレスである。第3パラメータ“length”は、転送データ量であり、第4パラメータ“stride”は、転送対象データのメモリ領域における存在間隔である。図14に示すとおり、“stride”は、例えば、転送順で連続する転送対象データがアドレス順で隣り合うときに1、アドレス順で1つおきのとき2(以下同様)となる。
【0009】
本発明で定義するデータ転送インタフェースでは、図3に示した4つのパラメータのうち、最低限第1、第2、第3の3つのパラメータを指定する必要がある(strideは1に固定することで省略可能である。逆に、本データ転送方法を拡張すれば他にもパラメータを設定可能である)。
図3は、“src−adr”というグローバルアドレスから始まる“length”דstride”個分のデータ領域から、データを“length”個だけ“stride”間隔で読出した後、読み出した全データを、“dst−adr”というグローバルアドレスから始まる“length”דstride”個分のデータ領域へ“stride”間隔に“length”個だけ書き込むという操作を表現している。すなわち、このインタフェースを用いて実現するのはデータ転送というよりは、むしろ、任意のグローバルアドレス領域から他の任意のグローバルアドレス領域へのメモリ領域間データコピーとみなすことができる。
なお、上記でグローバルアドレスと表現しているのは、図6に例示するようなグローバルアドレス空間上のアドレスであり、例えば、図13のような形式をとる。図13のアドレスは、参照すべきメモリを有する要素プロセッサをプロセッサ番号フィールド1301で指定し、そのメモリ内のアドレスをオフセットフィールド1302で指定している。また、図6のグローバルアドレス空間601は、要素プロセッサの台数分に分割されており、分割された領域603、605、・・・607はそれぞれ異なる要素プロセッサ用に割り当てられている。そして、それぞれの領域603、605、・・・607の中の領域602、604、・・・606に対して、該当する要素プロセッサが具備する主記憶がマップされている。
【0010】
次に、図1を用いて本発明に基づくネットワークインタフェース208の構成および各部動作を詳細に説明する。なお、前もって、図1の信号線L15、L16、L17について誤解のないように説明しておく。それぞれの信号線は紙面の都合上いくつかのレジスタを表現する四角の下側あるいは裏側を走っているイメージで書き入れている。信号線L15は、送信元アドレスレジスタ117の下を通ってメッセージ送出部103の入力信号となっている。信号線L16は、送信先アドレスレジスタ118および送信元アドレスレジスタ117の下を通ってメッセージ送出部103の入力信号となっている。信号線L17は、送信データ長レジスタ119、送信先アドレスレジスタ118および送信元アドレスレジスタ117の下を通ってメッセージ送出部103の入力信号となっている。
図1におけるネットワークインタフェース208とバス209、ネットワークの接続関係は先に図2の説明で述べたとおりである。
【0011】
ネットワークインタフェース208は、大きく分けてメッセージ送信部、メッセージ受信部、主記憶アクセス部およびバスインタフェース部101の4つの部分から構成される。
メッセージ送信部は、メッセージ送出部103、送信元アドレスレジスタ117、送信先アドレスレジスタ118、送信データ長レジスタ119、送信ストライド幅レジスタ120、書き込み制御部121、セレクタ123、セレクタ124、自要素プロセッサからの要求とネットワークを介したデータ転送要求(ヘッダ解析部から)を調停する要求調停部122、アドレス加算部116、比較器104、自PU番号レジスタ105(PUは要素プロセッサの略称)などからなる。
メッセージ受信部は、メッセージ受取部106、ヘッダ解析部107およびアドレス加算部112などから構成される。
主記憶アクセス部は、主記憶読出し部125および主記憶書き込み部128から構成される。
バスインタフェース部101は、バス209に接続され、命令プロセッサ202からメモリアクセスインタフェース203を通し、さらにバス209を介して伝えられる以下の3種の要求を受取り、必要な処理をする。
(1)メッセージ送出部103へのメッセージ送信開始指令信号L1の伝達。
(2)要求調停部122へのメッセージ送信要求信号L13の伝達。
(3)送信元アドレスレジスタ117、送信先アドレスレジスタ118、送信データ長レジスタ119、送信ストライド幅レジスタ120への値の書き込み。
さらに、バスインタフェース部101は、要求調停部122の調停結果を逆にバス209を介して、メモリアクセスインタフェース203を通し、命令プロセッサ202に伝える。また、バスインタフェース部101は、ネットワークインタフェース208内の主記憶読出し部125および主記憶書き込み部128からの主記憶アクセスを実現する。
【0012】
メッセージ送信部内の送信元アドレスレジスタ117、送信先アドレスレジスタ118、送信データ長レジスタ119、送信ストライド幅レジスタ120は、それぞれ図3に示した4つのパラメータである“src−adr”すなわち転送する一連のデータ群の先頭グローバルアドレス、“dst−adr”すなわち転送データ群の書き込み先の先頭グローバルアドレス、“length”すなわち転送データ量、“stride”すなわち転送対象データのメモリ領域における存在間隔を格納するためのレジスタである。
送信元アドレスレジスタ117および送信先アドレスレジスタ118には、図13に例示するような形式をとるグローバルアドレスが格納されるため、図7に示す形のレジスタ701を用いる。レジスタ701は、図13におけるプロセッサ番号フィールド1301およびオフセットフィールド1302を格納するために、それぞれPU番号フィールド702およびPU内アドレスフィールド703を有する。
【0013】
メッセージ送信部からは、送信元アドレスレジスタ117の内容に応じて要求メッセージ送信とデータメッセージ送信の2種類のメッセージ送信が発生しうる。送信元アドレスレジスタ117のPU番号フィールドの内容を伝える信号線L25の値と自PU番号レジスタ105の値を比較器104で比較した結果、値が等しければデータメッセージ送信が発生する。逆に、比較器104での比較の結果、値が異なれば、送信元アドレスレジスタ117のPU番号フィールドの内容が示す要素プロセッサに対してデータ転送を要求する要求メッセージ送信が発生する。
要求メッセージとデータメッセージのそれぞれに対しては、図9、図10に示す別個のメッセージヘッダ901および1001が定義されている。
【0014】
要求メッセージに対する図9のメッセージヘッダ901には、メッセージ種類902、送信元PU番号903、送信元アドレス904、送信先アドレス905、送信データ長906、送信ストライド幅907などの情報が含まれている。メッセージ種類902は、要求メッセージ/データメッセージの別を示す情報(1ビットで可)であり、この場合要求メッセージを示す。送信元PU番号903は、信号線L14を介してメッセージ送出部103に伝えられる送信元アドレスレジスタ117のPU番号フィールドの内容であり、すなわち、転送すべきデータが格納されている主記憶装置を有する要素プロセッサの番号である。送信元PU番号903は、この要求メッセージ自身の送信先要素プロセッサの番号でもある。送信元アドレス904、送信先アドレス905、送信データ長906、送信ストライド幅907は、それぞれ信号線L14、L15、L16、L17を介してメッセージ送出部103に伝えられる送信元アドレスレジスタ117、送信先アドレスレジスタ118、送信データ長レジスタ119、送信ストライド幅レジスタ120の内容である。
【0015】
データメッセージに対する図10のメッセージヘッダ1001には、メッセージ種類902、送信先PU番号1003、送信先アドレス905、送信データ長906、送信ストライド幅907などの情報が含まれている。メッセージ種類902は、前述のとおり要求メッセージ/データメッセージの別を示す情報であり、この場合データメッセージを示す。送信先PU番号1003は、信号線L15を介してメッセージ送出部103に伝えられる送信先アドレスレジスタ118のPU番号フィールドの内容であり、すなわち、転送するデータを書き込むべき主記憶装置を有する要素プロセッサの番号である。送信先PU番号1003は、このデータメッセージ自身の送信先要素プロセッサの番号でもある。送信先アドレス905、送信データ長906、送信ストライド幅907は、それぞれ信号線L15、L16、L17を介してメッセージ送出部103に伝えられる送信先アドレスレジスタ118、送信データ長レジスタ119、送信ストライド幅レジスタ120の内容である。
【0016】
メッセージ送出部103は、信号線L8を介して伝えられる比較器104での比較結果にしたがって、信号線L14、L15、L16、L17を介して伝えられる情報をもとに、上述のような要求メッセージ用およびデータメッセージ用のメッセージヘッダの作り分けを行い、そのメッセージヘッダを信号線L4を介してネットワークへ送出することで、要求メッセージおよびデータメッセージの種別分けを行う。さらに、その送信がデータメッセージ送信であった場合には、メッセージヘッダの送信に続いて転送データの送出を行う。データメッセージパケットを図15に示す。
転送データの送出は、メッセージ送出部103が信号線L6を介して主記憶読出し部125に主記憶読出し要求を伝えて実現する。主記憶読出し部125は、バスインタフェース部101を介して主記憶読出しを行い、読み出したデータを信号線L36を介して順次メッセージ送出部103に転送する。なお、メッセージ送出部103に転送する場合には、信号線L7を用いて有効信号も転送する。なお、有効信号とは、そのマシンサイクルにおいて、信号線L上に有効な読みだしデータがのっていることを示す信号である。メッセージ送出部103では、読出しデータを信号線L4を介して逐次ネットワークに送出する。送出したデータ数はメッセージ送出部103でカウントされ、そのカウント値が信号線L16を介して伝えられる送信データ長と等しくなれば転送データの送出を完了し、これをもってメッセージ送出を完了する。
一方、送出したメッセージヘッダが要求メッセージ用であった場合には、メッセージヘッダの送出を完了し次第、メッセージ送出を完了する。
【0017】
なお、メッセージ送出部103が上述のような動作を開始するためには、信号線L3を介してメッセージ送出開始信号が伝えられる必要がある。信号線L3は、信号線L1と信号線L2のOR信号である。信号線L1は、前述したとおり命令プロセッサ202がメッセージ送出開始を要求した結果真値が伝えられる信号線であり、信号線L2は、メッセージ受信部内のヘッダ解析部107がメッセージ送出開始を要求して真値を伝える信号線である。また、メッセージ送出部103は、メッセージ送出を完了すると、その状態を信号線L41を介して要求調停部122に伝える。命令プロセッサ202およびヘッダ解析部107がメッセージ送出開始を要求するためには、それぞれがまず要求調停部122に対して、メッセージ送出要求を伝える必要がある。命令プロセッサ202の要求は前述したとおり信号線L13で伝えられ、ヘッダ解析部107の要求は信号線L11で伝えられる。要求調停部122は、これらの要求を受けて何等かの形で優先度制御を行った後、メッセージ送出が完了している状態のときに、要求を認める側を示す信号を信号線L12にのせる。信号線L12の内容を見た命令プロセッサ202およびヘッダ解析部107は、その内容が自身を示していれば、前述のメッセージ送出開始を要求する。
【0018】
メッセージ送信部が要求メッセージ送信とデータメッセージ送信の2種類のメッセージ送信を行うため、メッセージ受信部のメッセージ受取部106には、2種類のメッセージが到着しうる。概略的に述べると、メッセージ受信部は、要求メッセージが到着した場合には、同じネットワークインタフェース208内のメッセージ送信部に依頼して、要求されたデータ転送を開始する。また、データメッセージが到着した場合には、主記憶書き込み部128に依頼して主記憶装置への転送データの書き込みを行う。
メッセージが到着すると、メッセージ受取部106は、そのメッセージが伝える最初の情報であるメッセージヘッダ内のメッセージ種類902によってメッセージの種類を判別する。メッセージ種類が要求メッセージであった場合には、メッセージヘッダ901内のメッセージ種類902、送信元アドレス904、送信先アドレス905、送信データ長906、送信ストライド幅907の各情報を信号線L9を介してヘッダ解析部107内のヘッダレジスタ108に格納してメッセージ受信を完了する。
一方、メッセージ種類がデータメッセージであった場合には、メッセージヘッダ1001内のメッセージ種類902、送信先アドレス905、送信データ長906、送信ストライド幅907の各情報を信号線L9を介してヘッダ解析部107内のヘッダレジスタ108に格納し、さらに後続する転送データを信号線L10を介して主記憶書き込み部128に伝える。
【0019】
メッセージ種類がデータメッセージであった場合、ヘッダ解析部107は、ヘッダレジスタ108内の送信先アドレスおよび送信ストライド幅をそれぞれ信号線L31およびL32を介してアドレス加算部112に伝え、送信データ長を、信号線L35を介して主記憶書き込み部128内のカウンタ129に初期値として伝える。さらに、信号線L33を介して主記憶書き込み部128に対して主記憶書き込みを要求する。要求を受けた主記憶書き込み部128は、アドレス加算部112が信号線L34を介して与えるアドレスと、メッセージ受取部106から信号線L10を介して伝えられ、主記憶書き込み部128内のレジスタ130にセットされるデータを持って主記憶アクセスを行い、これをカウンタ129に初期値として与えられた回数だけ繰り返す。メッセージ受取部106が送信データ長分の転送データを全て受取り、主記憶書き込み部128内のレジスタ130に最後のデータを書き込んだ時点で、メッセージ受取部106はメッセージ受信を完了し、メッセージ受取部106およびヘッダ解析部107は、受信したデータメッセージに対する処理を完了する。
【0020】
一方、メッセージ種類が要求メッセージであった場合、ヘッダ解析部107は、前述のとおり、要求調停部122に対して信号線L11を用いてメッセージ送出要求を伝え、然るべき後に要求調停部122から信号線L12を介して要求を認める信号を受け取る。ヘッダ解析部107は、メッセージ送出要求が認められると、送信元アドレスレジスタ117、送信先アドレスレジスタ118、送信データ長レジスタ119および送信ストライド幅レジスタ120を順次選択し、各々のレジスタを指定するレジスタ選択信号を信号線L22を介してセレクタ123に順次伝え、その都度各々のレジスタに書き込むべき値を、ヘッダレジスタ108の該当する領域から選択し、その値を順次信号線L24でセレクタ124に伝える。送信元アドレスレジスタ117、送信先アドレスレジスタ118、送信データ長レジスタ119および送信ストライド幅レジスタ120の全てのレジスタへの値の設定が終了すると、ヘッダ解析部107は、メッセージ送出部103に対して信号線L2を介してメッセージ送出開始信号を伝達し、メッセージ送出を開始させる。ヘッダ解析部107は、メッセージ送出開始信号をメッセージ送出部103に伝達した時点で、受信した要求メッセージに対する処理を完了する。
【0021】
ネットワークインタフェース208内のメッセージ送信部に対する処理依頼は、受信した要求メッセージに対するヘッダ解析部107の処理手順で説明したとおりの以下の手順で行われる。
(1)要求調停部122へのメッセージ送出要求伝達。
(2)要求調停部122からのメッセージ送出承認。
(3)送信元アドレスレジスタ117、送信先アドレスレジスタ118、送信データ長レジスタ119および送信ストライド幅レジスタ120へのメッセージ送信に係わるパラメータ値の設定。
(4)メッセージ送出部103へのメッセージ送出開始信号の伝達。
メッセージ送信部に対して処理を依頼する主体は、命令プロセッサ202およびヘッダ解析部107である。ヘッダ解析部107の処理依頼に係わる全動作については既に述べたとおりであり、命令プロセッサ202の処理依頼に係わる動作についても、(1)、(2)、(4)については既述した。命令プロセッサ202の(3)に係わる動作は、基本的にヘッダ解析部107の動作と同様であり、レジスタを指定するレジスタ選択信号を、(既に説明を加えたアクセスパスを介して最終的に)信号線L21を介してセレクタ123に順次伝え、その都度各々のレジスタに書き込むべき値を、順次信号線L23でセレクタ124に伝える。
なお、命令プロセッサ202からの処理依頼に対しては、結果として要求メッセージ送出とデータメッセージ送出の2種類が発行されうるが、ヘッダ解析部107からの処理依頼に対しては、結果としてデータメッセージ送出しか発行されえない。
【0022】
送信元アドレスレジスタ117、送信先アドレスレジスタ118、送信データ長レジスタ119および送信ストライド幅レジスタ120への値の書き込みは、書き込み制御部121とセレクタ123およびセレクタ124を用いて実現する。
セレクタ123とセレクタ124は組となって機能し、セレクタ123が送信元アドレスレジスタ117、送信先アドレスレジスタ118、送信データ長レジスタ119および送信ストライド幅レジスタ120のいずれかを指定するレジスタ指定信号を信号線L19を介して書き込み制御部121に伝達し、セレクタ124が信号線L19で指定されるレジスタに書き込むべき値を信号線L20を介して書き込み制御部121に伝達する。
信号線L19の値は、信号線L21および信号線L22のうちのいずれかであり、信号線L20の値は、信号線L23および信号線L24のうちのいずれかである。どちらを選択するかは、信号線L12の値によって、すなわち、要求調停部122が命令プロセッサ202あるいはヘッダ解析部107のどちらに対してメッセージ送出承認を行っているかで定まる。要求調停部122が命令プロセッサ202に対してメッセージ送出承認を行っている場合には、信号線L21の値と信号線L23の値がそれぞれ信号線L19の値と信号線L20の値になる。要求調停部122がヘッダ解析部107に対してメッセージ送出承認を行っている場合には、信号線L22の値と信号線L24の値がそれぞれ信号線L19の値と信号線L20の値になる。
書き込み制御部121は、信号線L19を介して伝わるレジスタ指定信号に基づいて送信元アドレスレジスタ117、送信先アドレスレジスタ118、送信データ長レジスタ119および送信ストライド幅レジスタ120のいずれかを選択し、その選択に対応して各々のレジスタに対応して設けられている書き込みパスL18a、L18b、L18cおよびL18dのいずれかを有効にし、その有効になった書き込みパス上に信号線L20を介して伝わる書き込み値をのせる。結果として、信号線L19の値が指定するレジスタに信号線L20の値が書き込まれる。
【0023】
次に、先に概略的に述べた主記憶アクセス部の動作をさらに詳細に説明する。主記憶読出し部125は、データメッセージ送出時にメッセージ送出部103から信号線L6を介して伝わる起動信号(主記憶読出し要求)によって起動される。主記憶読出し部125は内部にカウンタ126およびデータ用レジスタ127を有する。カウンタ126には、主記憶読出し部125の起動時に信号線L26を介して伝えられるその時点での送信データ長レジスタ119に格納されている値が初期値として設定される。以降、主記憶読出し部125が主記憶読出し要求を発行する度にカウンタ126の値は1づつ減じられる。主記憶読出し部125は、起動されてから以降、カウンタ126の値が0となるまで主記憶読出し要求の発行を繰り返す。カウンタ126の値が0となると、そのデータメッセージ送出に係わる主記憶読出し要求の発行は完了する。主記憶読出し要求の発行時、主記憶読出し部125は、主記憶アクセスコマンド線であるL37に読出しコマンドを伝え、同時に主記憶読出しアドレス線L28で読出しアドレスを伝える。なお、主記憶読出しアドレス線L28はアドレス加算部116から伝えられる信号である。
【0024】
アドレス加算部116は、内部に加算器115、セレクタ114、アドレス用レジスタ113を有する。加算器115は、アドレス用レジスタ113の値に、((信号線L27を介して伝えられる送信ストライド幅レジスタの値)×(送信単位データのバイトサイズ))の値を加えてその結果を信号線L29に出力する。セレクタ114は、信号線L29の値と信号線L14を介して伝わる送信元アドレスレジスタ117の値のうちどちらかを選択し、その値をアドレス用レジスタ113にセットする。ただし、セレクタ114が信号線L14の値を選択するのは、信号線L6によって主記憶読出し起動信号が伝わる時だけである。それ以外の場合は、信号線L29の値を選択する。これによって、アドレス用レジスタ113の値を信号線L28を介して主記憶読出しアドレスとして供給するアドレス加算部116は、主記憶読出し起動時にその回のデータメッセージ送出に係わる転送元データ領域の先頭アドレスを供給し、以降、その値にストライドを反映させた値を供給することができる。
主記憶読出しデータ線L38を介して伝わる主記憶装置からの読出しデータは、逐次データ用レジスタ127で受け、信号線L36を介してメッセージ送出部103に伝えられる。
【0025】
一方、主記憶書き込み部128は、データメッセージ受信時にヘッダ解析部107から信号線L33を介して伝わる起動信号(主記憶書き込み要求)によって起動される。主記憶書き込み部128は内部にカウンタ129およびデータ用レジスタ130を有する。カウンタ129には、主記憶書き込み部128の起動時に信号線L35を介してヘッダ解析部107内のヘッダレジスタ108の該当領域から伝えられる送信データ長値が初期値として設定される。以降、主記憶書き込み部128が主記憶書き込み要求を発行する度にカウンタ129の値は1づつ減じられる。主記憶書き込み部128は、起動されてから以降、カウンタ129の値が0となるまで主記憶書き込み要求の発行を繰り返す。カウンタ129の値が0となると、そのデータメッセージ受信に係わる主記憶書き込みは完了する。主記憶書き込み要求の発行時、主記憶書き込み部128は、主記憶アクセスコマンド線であるL39に書き込みコマンドを伝え、同時に主記憶読出しアドレス線L34で書き込みアドレスを伝え、主記憶書き込みデータ線L40を介して、メッセージ受取部106から信号線L10を介してセットされているデータ用レジスタ130の値を伝える。なお、主記憶読出しアドレス線L34はアドレス加算部112から伝えられる信号である。
【0026】
アドレス加算部112は、アドレス加算部116と同様に、内部に加算器111、セレクタ110、アドレス用レジスタ109を有する。加算器は、アドレス用レジスタ109の値に、((信号線L32を介してヘッダ解析部107内のヘッダレジスタ108の該当領域から伝えられる送信ストライド幅値)×(送信単位データのバイトサイズ))の値を加えてその結果を信号線L30に出力する。セレクタ110は、信号線L30の値と信号線L31を介してヘッダ解析部107内のヘッダレジスタ108の該当領域から伝わる送信先(書き込み先)アドレス値のうちどちらかを選択し、その値をアドレス用レジスタ109にセットする。ただし、セレクタ110が信号線L31の値を選択するのは、信号線L33によって主記憶書き込み起動信号が伝わる時だけである。それ以外の場合は、信号線L30の値を選択する。これによって、アドレス用レジスタ109の値を信号線L34を介して主記憶書き込みアドレスとして供給するアドレス加算部112は、主記憶書き込み起動時にその回のデータメッセージ受信に係わる転送先(書き込み先)データ領域の先頭アドレスを供給し、以降、その値にストライドを反映させた値を供給することができる。
【0027】
以上で図1に示した本発明に基づくネットワークインタフェース208の構成および各部動作の説明を終了する。次に、本発明に係わるデータ転送方法に基づくデータ転送の処理の流れを説明する。
データ転送要求は、命令プロセッサ202から発行される。命令プロセッサ202は、ネットワークインタフェース208内の要求調停部122に対してデータ転送要求を発行し、要求調停部122からの許可を待つ。この時要求調停部122には、同じネットワークインタフェース208内のメッセージ受信部側(具体的には、ヘッダ解析部107)からもデータメッセージ送出要求が届いている場合があり、その場合には優先度制御の結果メッセージ受信部側に許可がおりる場合もある。
命令プロセッサ202は、要求調停部122からの許可を得ると、データ転送のためのパラメータである“src−adr”すなわち転送する一連のデータ群の先頭グローバルアドレス、“dst−adr”すなわち転送データ群の書き込み先の先頭グローバルアドレス、“length”すなわち転送データ量、“stride”すなわち転送対象データのメモリ領域における存在間隔をそれぞれ順番に送信元アドレスレジスタ117、送信先アドレスレジスタ118、送信データ長レジスタ119および送信ストライド幅レジスタ120にセットする。このパラメータの設定が終了すると、メッセージ送出部103へのデータ転送開始信号を伝達する。これでデータ転送が開始され、データ転送に係わる命令プロセッサ202の役割は終了する。
【0028】
命令プロセッサ202から開始されたデータ転送に関して、送信元アドレスレジスタ117にセットされているパラメータ“src−adr”すなわち転送する一連のデータ群の先頭グローバルアドレスのPU番号フィールド値が自プロセッサ番号である場合、メッセージ送出部103の制御の下、主記憶読出し部125が自らの主記憶装置207からデータを読み出して、データメッセージの送出が始まる。すなわち、実際にデータの転送が始まる。このデータメッセージは、送信先アドレスレジスタ118にセットされているパラメータ“dst−adr”すなわち転送データ群の書き込み先先頭グローバルアドレスのPU番号フィールド値が示す要素プロセッサ201に対して送出される。
データメッセージの送信先となった要素プロセッサ201は、ネットワークインタフェース208内のメッセージ受取部106でメッセージを受け、データメッセージであることを認識すると、メッセージ受取部106およびヘッダ解析部107の制御の下、主記憶書き込み部128が受信したデータを自らの主記憶装置207に書き込んでいく。全データの書き込みが終了した時点でこのデータ転送が完了する。
【0029】
一方、命令プロセッサ202から開始されたデータ転送に関して、送信元アドレスレジスタ117にセットされているパラメータ“src−adr”すなわち転送する一連のデータ群の先頭グローバルアドレスのPU番号フィールド値が自プロセッサ番号でない場合、そのPU番号フィールド値が示す要素プロセッサ201に対してメッセージ送出部103が要求メッセージを送信する。
要求メッセージの送信先となった要素プロセッサ201は、ネットワークインタフェース208内のメッセージ受取部106でメッセージを受け、要求メッセージであることを認識すると、ヘッダ解析部107からデータメッセージ送信要求が発行される。ヘッダ解析部107は、ネットワークインタフェース208内の要求調停部122に対してデータメッセージ送信要求を発行し、要求調停部122からの許可を待つ。この時要求調停部122には、同じ要素プロセッサ201内の命令プロセッサ202からもデータ転送要求が届いている場合があり、その場合には優先度制御の結果命令プロセッサ202に許可がおりる場合もある。
【0030】
ヘッダ解析部107は、要求調停部122からの許可を得ると、ヘッダレジスタ108に格納されている送信元アドレス904、送信先アドレス905、送信データ長906、送信ストライド幅907の各情報をそれぞれ順番に送信元アドレスレジスタ117、送信先アドレスレジスタ118、送信データ長レジスタ119および送信ストライド幅レジスタ120にセットする。この設定が終了すると、メッセージ送出部103へのデータメッセージ送出開始信号を伝達する。この時、送信元アドレスレジスタ117にセットされているグローバルアドレスのPU番号フィールド値は常に自プロセッサ番号である。したがって、これでデータメッセージ送信が開始される。
以降、メッセージ送出部103の制御の下、主記憶読出し部125が自らの主記憶装置207からデータを読み出して、データメッセージを送出する。このデータメッセージは、送信先アドレスレジスタ118にセットされているグローバルアドレスのPU番号フィールド値が示す要素プロセッサ201に対して送出される。
このデータメッセージの送信先となった要素プロセッサ201は、ネットワークインタフェース208内のメッセージ受取部106でメッセージを受け、データメッセージであることを認識すると、メッセージ受取部106およびヘッダ解析部107の制御の下、主記憶書き込み部128が受信したデータを自らの主記憶装置207に書き込んでいく。全データの書き込みが終了した時点でこのデータ転送が完了する。
以上が本発明に係わる実施例である。
なお、本実施例の変形例として次のものが考えられる。
【0031】
(変形例1)
図3に示したデータ転送インタフェースを図4に示すようなインタフェースに変形する。図4の“src−adr”および“dst−adr”は、グローバルアドレスではなく、それぞれ、送信元の要素プロセッサ201が所有する主記憶装置のアドレスおよび送信先の要素プロセッサ201が所有する主記憶装置のアドレスである。図4に示すインタフェースでは、“src−adr”および“dst−adr”をグローバルアドレスとしない代わりに、データ転送の送信元および送信先をそれぞれ明示するための新たなパラメータ“src−PU#”および“dst−PU#”を定義する。残りの“length”、“stride”については図3のそれと同じである。
図4に示すインタフェースとした場合、図3に示すインタフェースのデータ転送に係わる要素プロセッサを意識しないでよいという特徴は失われるが、任意の要素プロセッサ間(主記憶装置間)のデータ転送を任意の要素プロセッサが起動できるという特徴はそのまま保有している。
【0032】
図4に示すインタフェースを採用した場合の実施例からの機構上の主な変更点は以下の2点である。
(1)図7のような構成であった送信元アドレスレジスタ117および送信先アドレスレジスタ118を図8のような構成とし、このPU番号レジスタ801とPU内アドレスレジスタ802を連結して用いる。連結して用いれば、PU番号レジスタ801をPU番号フィールド702として、さらに、PU内アドレスレジスタ802をPU内アドレスフィールド703としてレジスタ701を擬似的に実現できる。
(2)図9、図10に示したメッセージヘッダをそれぞれ図11、図12に示すように変更する。細かく記述すると、図9の送信元アドレス904は、図11の送信元PU内アドレス1104に代わり、図9の送信先アドレス905は、図11の送信先PU番号1105と送信先PU内アドレス1106に代わる。また、図10の送信先アドレス905は、図12の送信先PU内アドレス1205に代わる。
【0033】
(変形例2)
バス209でメモリアクセスインタフェース203とネットワークインタフェース208を接続するのをやめ、メモリアクセスインタフェース203とネットワークインタフェース208を直結とする。この時、バスインタフェース部101に代わり新たなインタフェース処理部がネットワークインタフェース208内に必要となる。
【0034】
【発明の効果】
本発明によれば、分散メモリ型並列計算機において、分散共有メモリ方式で実現される“データ転送起動者がデータまたはデータ群の帰属先プロセッサを特別意識する必要がない”というプログラム記述容易性の高さを継承した上で、分散共有メモリ方式上で実現されるデータ転送方式によっては従来実現できなかった数百、数千ワード以上のデータ群の一括転送が可能になった。
さらに、本発明によれば、任意要素プロセッサ間(任意主記憶装置間)のデータ転送が可能となり、また、データ転送起動者を、データ転送元あるいはデータ転送先のいずれとも規定しない。すなわち、要素プロセッサBから要素プロセッサCへのデータ転送を要素プロセッサBでも要素プロセッサCでもない要素プロセッサAが指示できるようになった。これは、一方向のみのインタフェースであった従来のメッセージ・パッシング・インタフェースや、せいぜい2方向であった従来の分散共有メモリ方式上で実現されるデータ転送インタフェースを凌駕する多方向のインタフェースであり、この特徴によりプログラム記述容易性が一層向上する。
【図面の簡単な説明】
【図1】実施例におけるデータ転送方法を実現する分散メモリ型並列計算機の根幹であるネットワークインタフェースの構成図である。
【図2】実施例における並列計算機を構成する要素プロセッサの構成例を示す図である。
【図3】実施例におけるデータ転送インタフェースを示す図である。
【図4】変形例1におけるデータ転送インタフェースを示す図である。
【図5】従来のメッセージ・パッシング・インタフェースを示す図である。
【図6】実施例におけるグローバルアドレス空間を例示する図である。
【図7】実施例におけるグローバルアドレスを格納するためのレジスタを示す図である。
【図8】変形例1における並列計算機内の任意の主記憶アドレスを表現するための値の組を格納するレジスタ群を示す図である。
【図9】実施例における要求メッセージヘッダを示す図である。
【図10】実施例におけるデータメッセージヘッダを示す図である。
【図11】変形例1における要求メッセージヘッダを示す図である。
【図12】変形例1におけるデータメッセージヘッダを示す図である。
【図13】実施例におけるグローバルアドレスのフォーマットを例示する図である。
【図14】実施例におけるデータ転送時のストライド値を説明するための図である。
【図15】実施例におけるデータパケットを示す図である。
【符号の説明】
109 アドレス用レジスタ
113 アドレス用レジスタ
127 データ用レジスタ
130 データ用レジスタ
209 バス
701 グローバルアドレスレジスタ
801 PU番号レジスタ
802 PU内アドレスレジスタ
901 要求メッセージヘッダ
1001 データメッセージヘッダ
1101 要求メッセージヘッダ
1201 データメッセージヘッダ
1301 プロセッサ番号フィールド
1302 オフセットフィールド[0001]
[Industrial application fields]
The present invention relates to a data transfer method in a distributed memory type parallel computer, a distributed memory type parallel computer and an element processor for realizing the method, and in particular, any element processor constituting the parallel computer includes any two (including itself) ( The present invention relates to a data transfer method that enables data transmission / reception between main memory units included in an element processor (transmission side and reception side), a distributed memory parallel computer, and an element processor that realize the data transfer method.
[0002]
[Prior art]
In an advanced information society in recent years, there has been a strong demand for an increase in processing amount and speeding up of information processing devices, and in order to answer these demands, a parallel computer configured by linking multiple arithmetic processors has been developed. It was. One parallel computer has several arithmetic processors, and the several arithmetic processors are configured to share one memory. This type of parallel computer is called a TCMP (Tightly Coupled Multi-Processor) type parallel computer. On the other hand, parallel computers having more arithmetic processors than the TCMP type, specifically, hundreds to thousands of arithmetic processors have appeared. This parallel computer has a method in which each arithmetic processor has a memory independently from the viewpoint of the difficulty of realization on hardware, without using a method in which all arithmetic processors share one memory. It is called a distributed memory type parallel computer.
A distributed memory type parallel computer can achieve higher performance than a TCMP type parallel computer. However, since the distributed memory type parallel computer is provided with the memory distributed to a plurality of arithmetic processors, the portability and the ease of programming of the program based on the conventional programming style assuming a single arithmetic processor and a single memory, etc. Some pointed out that there was a problem. Therefore, recently, a distributed shared memory system has been introduced that enables each arithmetic processor to refer to the memory of other arithmetic processors with respect to a distributed memory type parallel computer represented by research at Stanford University in the United States. The tendency to do is high.
[0003]
In order to realize a distributed shared memory, there is a problem of how to refer to a memory included in another arithmetic processor. This problem is solved by addressing. Specifically, the memory of another arithmetic processor is mapped to its own address space. The address space realized by this is hereinafter referred to as a global address space. FIG. 6 is an example of the global address space. The
For example, in RP3 which is a parallel computer experimentally manufactured by IBM, "RP3 Processor-Memory Element" which is a manuscript of pages 782 to 789 of the 1985 International Conference on Parallel Processing, and Japanese Patent Publication No. 5-20776. As described in the above, a memory included in another arithmetic processor is referred to using an address in the form shown in FIG. In the address of FIG. 13, an arithmetic processor having a memory to be referred to is designated by a
[0004]
[Problems to be solved by the invention]
In the conventional distributed shared memory system described above, when a certain arithmetic processor refers to a memory included in another arithmetic processor, a load / store instruction similar to that used when referring to the memory included in the own processor is used. In other words, if the distributed shared memory system is regarded as a data transfer interface between the element processors constituting the parallel computer, the conventional distributed shared memory implementation system can only realize data transfer in a small granularity in units of words.
For example, considering the application of this parallel computer to database processing, when a large-scale database copy (between memory) occurs, a large amount of data must be transferred in units of words, resulting in an increase in overhead and performance. The problem is big.
In this interface, the processor that activates data transfer must always be either the data transfer source or the data transfer destination. That is, this interface is an interface in only two directions.
On the other hand, the message passing interface that is basically supported by the distributed memory parallel computer is an interface that can transfer several words to several hundreds or thousands of words at a time. However, in the conventional message passing interface, it is necessary to explicitly specify the processor number of the data transmission destination. In addition, the data to be transmitted must exist in the memory of the own processor. That is, the conventional message passing interface is a one-way interface from its own processor to another processor.
SUMMARY OF THE INVENTION An object of the present invention is to provide a data transfer method that is not conscious of a processor to which a data group belongs, and that targets a variable amount of data group and that can be started by an arbitrary element processor between arbitrary element processors. An object of the present invention is to provide a distributed memory type parallel computer and an element processor.
[0005]
[Means for Solving the Problems]
In order to solve the above-described problems, the present invention introduces the concept of a global address space realized by a distributed shared memory method to a data transfer method based on a conventional message passing interface.
Specifically, as shown in FIG. 5, the start address (src-adr), the destination processor number (dst-PU #), and the transmission of the data group to be transmitted in the transmission source processor (in this case, the own processor) Conventionally expressed by five parameters, the first address (dst-adr), the data transfer amount (length), and the existence interval (stride) in the memory area of the data to be transmitted / received. As shown in FIG. 3, the head global address (src-adr) of the data group to be transmitted, the head global address (dst-adr) of the write destination of the transfer data group, and the data transfer amount, as shown in FIG. (Length) and the existence interval (strid) in the memory area of transmission / reception target data ) Defines the interface represented by four parameters:. This interface is a distributed memory type parallel computer that refers to all the main storage devices belonging to each of the element processors constituting the parallel computer by a global address space, and from any global address area to any other global address. It is an interface that realizes data copy between memory areas to an area. The present invention is characterized in that data transfer is realized in a copy mode using such an interface.
[0006]
[Action]
According to the present invention, data transfer can be realized with the concept of data copy between memory areas in a distributed memory type parallel computer by the above means. Therefore, even when referring to the global address space, a data group of several hundreds or thousands of words or more from a word unit can be targeted at a time.
Further, from the viewpoint of data transfer, it is not necessary for the data transfer initiator to be aware of the processor to which the data or data group belongs. This feature has the effect of improving the ease of describing a program for a parallel computer to which the above means is applied.
Further, in the data transfer method realized by the above means, data transfer between arbitrary element processors (arbitrary main storage devices) is possible, and the data transfer initiator is designated as either the data transfer source or the data transfer destination. not regulated. In other words, the element processor A that is neither the element processor B nor the element processor C can instruct data transfer from the element processor B to the element processor C. This is a multi-directional interface that surpasses the conventional message passing interface that was a one-way interface and the data transfer interface based on the conventional distributed shared memory method that was at most two-way. The effect of improving the ease of describing a program is also great. This feature is considered to be particularly effective for server-client model program description.
[0007]
【Example】
Embodiments of the present invention will be described in detail with reference to the drawings.
FIG. 2 shows an embodiment of an element processor constituting a distributed memory type parallel computer. In FIG. 1, an
The present invention relates to a
[0008]
Next, the data transfer interface defined in the present invention will be described.
FIG. 3 represents the data transfer interface defined in the present invention in the form of a function using a programming language such as C language. When data transfer is expressed in a program for a parallel computer to which the interface is applied, it is actually described in a form similar to FIG.
The first parameter “src-adr” in FIG. 3 is the leading global address of a series of data groups to be transferred. The second parameter “dst-adr” is the leading global address of the transfer data group write destination. The third parameter “length” is the amount of transfer data, and the fourth parameter “stride” is the existence interval of the transfer target data in the memory area. As shown in FIG. 14, “stride” is, for example, 1 when transfer target data that are consecutive in the transfer order are adjacent in the address order, and 2 when every other data in the address order (the same applies hereinafter).
[0009]
In the data transfer interface defined by the present invention, it is necessary to specify at least the first, second, and third parameters among the four parameters shown in FIG. 3 (stride is fixed to 1). Conversely, if this data transfer method is expanded, other parameters can be set).
FIG. 3 shows that “length” × “stride” data areas starting from a global address “src-adr” are read out by “length” data at “stride” intervals, and all the read data are This represents an operation in which only “length” data is written at “stride” intervals into “length” × “stride” data areas starting from a global address “dst-adr”. That is, using this interface can be regarded as data copy between memory areas from any global address area to any other global address area, rather than data transfer.
In addition, what is expressed as a global address in the above is an address on the global address space as illustrated in FIG. 6, and takes, for example, a format as shown in FIG. In the address of FIG. 13, an element processor having a memory to be referred to is designated by a
[0010]
Next, the configuration and operation of each part of the
The connection relationship between the
[0011]
The
The message transmission unit includes a message transmission unit 103, a transmission
The message receiving unit includes a message receiving unit 106, a header analyzing unit 107, an
The main memory access unit includes a main
The bus interface unit 101 is connected to the
(1) Transmission of a message transmission start command signal L1 to the message transmission unit 103.
(2) Transmission of the message transmission request signal L13 to the
(3) Write values to the transmission
Further, the bus interface unit 101 transmits the arbitration result of the
[0012]
A transmission
In the transmission
[0013]
From the message transmission unit, two types of message transmission, request message transmission and data message transmission, can occur according to the contents of the
[0014]
The
[0015]
The
[0016]
The message sending unit 103 makes a request message as described above based on the information transmitted via the signal lines L14, L15, L16, and L17 in accordance with the comparison result in the comparator 104 transmitted via the signal line L8. The message headers for the data message and the data message are created separately, and the message header is sent to the network via the signal line L4, thereby classifying the request message and the data message. Further, when the transmission is a data message transmission, the transfer data is transmitted following the transmission of the message header. A data message packet is shown in FIG.
Transmission of the transfer data is realized by the message transmission unit 103 transmitting a main memory read request to the main memory read
On the other hand, when the transmitted message header is for a request message, the message transmission is completed as soon as the message header transmission is completed.
[0017]
In order for the message sending unit 103 to start the operation as described above, a message sending start signal needs to be transmitted via the signal line L3. The signal line L3 is an OR signal of the signal line L1 and the signal line L2. The signal line L1 is a signal line through which a true value is transmitted as a result of the
[0018]
Since the message transmission unit transmits two types of messages, that is, request message transmission and data message transmission, two types of messages can arrive at the message reception unit 106 of the message reception unit. In general, when a request message arrives, the message receiving unit requests the message transmitting unit in the
When the message arrives, the message receiving unit 106 determines the message type based on the
On the other hand, if the message type is a data message, the header analysis unit transmits the information on the
[0019]
When the message type is a data message, the header analysis unit 107 transmits the transmission destination address and the transmission stride width in the header register 108 to the
[0020]
On the other hand, if the message type is a request message, the header analysis unit 107 transmits a message transmission request to the
[0021]
The processing request to the message transmission unit in the
(1) Message transmission request transmission to the
(2) Message transmission approval from the
(3) Setting of parameter values related to message transmission to the transmission
(4) Transmission of a message transmission start signal to the message transmission unit 103.
The main body that requests processing to the message transmission unit is the
Note that two types of request message transmission and data message transmission can be issued as a result for a processing request from the
[0022]
Writing values to the transmission
The
The value of the signal line L19 is one of the signal line L21 and the signal line L22, and the value of the signal line L20 is one of the signal line L23 and the signal line L24. Which one is selected depends on the value of the signal line L12, that is, whether the
The write control unit 121 selects one of the transmission
[0023]
Next, the operation of the main memory access unit outlined above will be described in more detail. The main
[0024]
The
Read data from the main memory transmitted through the main memory read data line L38 is received by the sequential data register 127 and transmitted to the message sending unit 103 through the signal line L36.
[0025]
On the other hand, the main
[0026]
Similarly to the
[0027]
This is the end of the description of the configuration and operation of each part of the
The data transfer request is issued from the
When the
[0028]
Regarding the data transfer started from the
When the
[0029]
On the other hand, regarding the data transfer started from the
When the
[0030]
Upon obtaining permission from the
Thereafter, under the control of the message sending unit 103, the main
When the
The above is an embodiment according to the present invention.
In addition, the following can be considered as a modification of a present Example.
[0031]
(Modification 1)
The data transfer interface shown in FIG. 3 is transformed into the interface shown in FIG. “Src-adr” and “dst-adr” in FIG. 4 are not global addresses, but the address of the main memory owned by the
In the case of the interface shown in FIG. 4, the feature that the element processor related to the data transfer of the interface shown in FIG. 3 does not need to be considered is lost, but the data transfer between any element processors (main storage devices) is arbitrary. The feature that the element processor can be activated is retained as it is.
[0032]
The main changes in the mechanism from the embodiment when the interface shown in FIG. 4 is adopted are the following two points.
(1) The transmission
(2) The message headers shown in FIGS. 9 and 10 are changed as shown in FIGS. 11 and 12, respectively. More specifically, the
[0033]
(Modification 2)
The
[0034]
【The invention's effect】
According to the present invention, in a distributed memory type parallel computer, high program description easiness that “data transfer initiator does not need to be particularly aware of the processor to which the data or the data group belongs” realized by the distributed shared memory system. Inheriting the above, it became possible to transfer data groups of several hundreds or thousands of words, which could not be realized in the past depending on the data transfer method realized on the distributed shared memory method.
Furthermore, according to the present invention, data transfer between arbitrary element processors (arbitrary main storage devices) is possible, and the data transfer initiator is not defined as either a data transfer source or a data transfer destination. That is, the element processor A that is neither the element processor B nor the element processor C can instruct data transfer from the element processor B to the element processor C. This is a multi-directional interface that surpasses the conventional message passing interface that was a one-way interface and the data transfer interface realized on the conventional distributed shared memory method that was at most two-way. This feature further improves the ease of program description.
[Brief description of the drawings]
FIG. 1 is a configuration diagram of a network interface that is the basis of a distributed memory parallel computer that implements a data transfer method according to an embodiment;
FIG. 2 is a diagram illustrating a configuration example of an element processor included in the parallel computer in the embodiment.
FIG. 3 is a diagram illustrating a data transfer interface in the embodiment.
FIG. 4 is a diagram illustrating a data transfer interface in a first modification.
FIG. 5 illustrates a conventional message passing interface.
FIG. 6 is a diagram illustrating a global address space in the embodiment.
FIG. 7 is a diagram illustrating a register for storing a global address in the embodiment.
FIG. 8 is a diagram illustrating a register group that stores a set of values for expressing an arbitrary main memory address in a parallel computer according to Modification 1;
FIG. 9 is a diagram illustrating a request message header in the embodiment.
FIG. 10 is a diagram illustrating a data message header in the embodiment.
FIG. 11 is a diagram showing a request message header in Modification 1;
12 is a diagram showing a data message header in Modification 1. FIG.
FIG. 13 is a diagram illustrating a format of a global address in the embodiment.
FIG. 14 is a diagram for explaining a stride value at the time of data transfer in the embodiment.
FIG. 15 is a diagram illustrating a data packet in the embodiment.
[Explanation of symbols]
109 Register for address
113 Address register
127 Data register
130 Data register
209 Bus
701 Global address register
801 PU number register
802 Address register in PU
901 Request message header
1001 Data message header
1101 Request message header
1201 Data message header
1301 Processor number field
1302 Offset field
Claims (3)
前記複数の要素プロセッサの任意の一つに備えた命令プロセッサは、転送すべきデータの転送元グローバルアドレスと転送先グローバルアドレスと転送データ量を指定して自プロセッサ要素のネットワークインターフェース部に伝達し、
伝達を受けたネットワークインターフェース部では、
前記指定された転送元グローバルアドレスが、自要素プロセッサが具備する主記憶装置に割り当てられた領域内か否かを判定し、
前記指定された転送元グローバルアドレスが、自要素プロセッサが具備する主記憶装置に割り当てられた領域内であれば、該転送元グローバルアドレスと前記指定された転送データ量に基づき自要素プロセッサの主記憶装置から転送すべきデータを読み出し、前記指定された転送先グローバルアドレスと読み出したデータとを少なくとも含み且つデータを転送するメッセージであることを示す情報を付したデータメッセージを作成して前記転送先グローバルアドレスを含む領域が割り当てられた主記憶装置を具備する要素プロセッサに向けて前記ネットワークを介して送信し、
前記指定された転送元グローバルアドレスが、自要素プロセッサが具備する主記憶装置に割り当てられた領域内でなければ、前記指定された転送元グローバルアドレスと指定された転送先グローバルアドレスと指定された転送データ量の情報とを少なくとも含み且つデータ転送を要求するメッセージであることを示す情報を付した転送要求メッセージを作成し、該指定された転送元グローバルアドレスを含む領域が割り当てられた主記憶装置を具備する要素プロセッサに向けて前記ネットワークを介して送信することを特徴とするデータ転送方法。Each of the plurality of element processors each including an instruction processor, a main storage device, and a network interface unit, and a network connecting the plurality of element processors is unique to the main storage device included in the plurality of element processors . in parallel computer divided region of space with a global address is assigned respectively, the Dede over data transfer between the processor elements a row arm over data transfer method,
An instruction processor provided in any one of the plurality of element processors specifies a transfer source global address, a transfer destination global address, and a transfer data amount of data to be transferred, and transmits the specified data to the network interface unit of the processor element.
In the network interface part that received the communication,
Determining whether the designated transfer source global address is within an area allocated to a main storage device of the processor of its own element;
If the designated transfer source global address is within an area allocated to the main storage device of the own element processor, the main memory of the own element processor is based on the transfer source global address and the designated transfer data amount. Read data to be transferred from the device, create a data message including at least the designated transfer destination global address and the read data and with information indicating that the message is a data transfer message, and transferring the data to the transfer destination global Transmitting to the element processor having the main storage device to which the area including the address is allocated , via the network,
If the designated transfer source global address is not within the area allocated to the main storage device of the local processor, the designated transfer source global address, the designated transfer destination global address, and the designated transfer A transfer request message including information indicating that the message is a data transfer request message including at least data amount information, and a main storage device to which an area including the designated transfer source global address is allocated A data transfer method comprising: transmitting to an element processor provided via the network.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14939994A JP3641837B2 (en) | 1994-06-30 | 1994-06-30 | Data transfer method for distributed memory parallel computer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14939994A JP3641837B2 (en) | 1994-06-30 | 1994-06-30 | Data transfer method for distributed memory parallel computer |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0816539A JPH0816539A (en) | 1996-01-19 |
JP3641837B2 true JP3641837B2 (en) | 2005-04-27 |
Family
ID=15474288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP14939994A Expired - Fee Related JP3641837B2 (en) | 1994-06-30 | 1994-06-30 | Data transfer method for distributed memory parallel computer |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3641837B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100367136C (en) * | 2004-02-17 | 2008-02-06 | 联想(北京)有限公司 | Universal control method |
JP6665429B2 (en) * | 2015-06-23 | 2020-03-13 | 富士通株式会社 | Arithmetic processing device, information processing device, and control method for information processing device |
-
1994
- 1994-06-30 JP JP14939994A patent/JP3641837B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0816539A (en) | 1996-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3836838B2 (en) | Method and data processing system for microprocessor communication using processor interconnections in a multiprocessor system | |
US7290096B2 (en) | Full access to memory interfaces via remote request | |
US5434970A (en) | System for distributed multiprocessor communication | |
US5864738A (en) | Massively parallel processing system using two data paths: one connecting router circuit to the interconnect network and the other connecting router circuit to I/O controller | |
JP3003418B2 (en) | Data communication method between processors | |
US6513091B1 (en) | Data routing using status-response signals | |
JP3601955B2 (en) | Data transfer method and computer system suitable for it | |
US5592625A (en) | Apparatus for providing shared virtual memory among interconnected computer nodes with minimal processor involvement | |
CN1290022C (en) | Method for supporting improved burst transfers on a coherent bus | |
JP3687990B2 (en) | Memory access mechanism | |
JP3836840B2 (en) | Multiprocessor system | |
JP3189727B2 (en) | Packet-type memory LSI with built-in coprocessor, memory system using the same, and control method therefor | |
TW544589B (en) | Loosely coupled-multi processor server | |
JP2010165022A (en) | Inter-processor communication device, inter-processor communication method, program, and recording medium | |
KR20030074047A (en) | Multi-processor system | |
US6904465B2 (en) | Low latency inter-reference ordering in a multiple processor system employing a multiple-level inter-node switch | |
JP3836837B2 (en) | Method, processing unit, and data processing system for microprocessor communication in a multiprocessor system | |
Best et al. | Cmmd i/o: A parallel unix i/o | |
JP3641837B2 (en) | Data transfer method for distributed memory parallel computer | |
JP3836839B2 (en) | Method and data processing system for microprocessor communication in a cluster-based multiprocessor system | |
Maples et al. | Merlin: A superglue for multicomputer systems | |
JP2736237B2 (en) | Remote memory access controller | |
Blumrich et al. | Two virtual memory mapped network interface designs | |
JP3304445B2 (en) | Program generation processing device | |
JP2505298B2 (en) | Variable bus width designation method and variable bus width information reception method in split bus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040106 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040305 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050104 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050117 |
|
R150 | Certificate of patent (=grant) or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080204 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090204 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100204 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100204 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110204 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120204 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120204 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130204 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130204 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |