JPH11126196A - データ転送方法およびそれに適した計算機システム - Google Patents

データ転送方法およびそれに適した計算機システム

Info

Publication number
JPH11126196A
JPH11126196A JP9290597A JP29059797A JPH11126196A JP H11126196 A JPH11126196 A JP H11126196A JP 9290597 A JP9290597 A JP 9290597A JP 29059797 A JP29059797 A JP 29059797A JP H11126196 A JPH11126196 A JP H11126196A
Authority
JP
Japan
Prior art keywords
data
message
transmission
memory
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.)
Granted
Application number
JP9290597A
Other languages
English (en)
Other versions
JP3601955B2 (ja
Inventor
Yoshiko Yasuda
淑子 保田
Keimei Fujii
啓明 藤井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP29059797A priority Critical patent/JP3601955B2/ja
Priority to US09/177,496 priority patent/US6338095B1/en
Publication of JPH11126196A publication Critical patent/JPH11126196A/ja
Application granted granted Critical
Publication of JP3601955B2 publication Critical patent/JP3601955B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 【課題】標準MPIライブラリを介したメモリ間直接転
送を高速化する。 【解決手段】送信側PUT/GETライブラリは、ユー
ザプロセスがMPIライブラリに対して発行したデータ
送信要求コマンドに応答して転送制御情報200を生成
する。送信側ネットワークインタフェース回路は、その
中の送信データアドレスと送信フラグアドレスを用いて
それぞれユーザデータ713とMPIライブラリにより
使用されるユーザデータに対応する付加情報714をロ
ーカルメモリ304から読み出し、一つのメッセージ7
05としてネットワーク105に送出し、送信完了フラ
グ715を送信フラグアドレスを用いて書き込む。受信
側のネットワークインタフェース回路は、メッセージ内
の受信データアドレスと受信フラグアドレスで指定され
るローカルメモリ領域721、722にそれぞれユーザ
データと付加情報を書き込み、受信完了フラグ723を
領域723に書き込む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、相互結合ネットワ
ークを介して接続された複数の要素プロセッサ間でのデ
ータ転送方法およびそれに適した計算機システムに関す
る。
【0002】
【従来の技術】従来、並列計算機は、ローカルメモリと
命令プロセッサから構成される複数の要素プロセッサを
相互結合ネットワークで結合した構成をとっている。一
般に、このような形態の並列計算機は、分散メモリ型並
列計算機と呼ばれる。各要素プロセッサは、相互結合ネ
ットワークを介して個々のローカルメモリに格納されて
いるデータの授受を行い、並列に処理を実行する。
【0003】一般に、分散メモリ型の並列計算機では、
メッセージパッシングと呼ぶプログラミングモデルを用
いてデータ転送を実現する。メッセージパッシングモデ
ルでは、ユーザが並列プログラム中に明示的に送信(S
END)手続きおよび受信(RECEIVE)手続きを
記して、要素プロセッサ間で必要になるデータの授受を
メッセージのやりとりという形で行う。命令プロセッサ
はこれらの通信手続きを解析して、相互結合ネットワー
クにデータを送信したり、相互結合ネットワークからデ
ータを受信しながら処理を進める。送信元の要素プロセ
ッサは、転送先の要素プロセッサ番号を指定してメッセ
ージを転送し、転送先の要素プロセッサでメッセージを
バッファリングする。メッセージパシングモデルでは、
メッセージ通信に伴ってデータのバッファリングやフロ
ー制御が必要となり、送受信オーバヘッドが大きくなっ
てしまう。
【0004】この送受信オーバヘッドを削減するため
に、近年複数の並列計算機において、要素プロセッサの
ローカルメモリの内容を、メッセージの生成あるいは受
信を行う送受信回路が直接アクセスするメモリ間直接転
送方法が使用されている。この方法を実行する代表例
は、PUT/GET通信である。例えば、”情報処理学
会並列処理シンポジウムJSPP’95、”PP. 2
33−240(1995年5月)参照。メモリ間直接転
送方法では、各要素プロセッサのローカルメモリからの
送信データの読み出しあるいはそのメモリへの受信デー
タの書き込みをメッセージの生成あるいは受信を行う送
受信回路が直接実行するため、これらのデータをOS管
理の領域にコピーする必要がなく、このコピーに由来す
るオーバーヘッドを削減できる。
【0005】しかしながら、このようなPUT/GET
通信を実際に実行する通信ライブラリは、各並列計算機
メーカーや研究機関が独自に開発しているため、それを
用いて作成された並列プログラムを他機種へ移植するこ
とは困難であった。この問題点を解決するために、MP
I(Message Passing Interfa
ce)に代表される、メッセージパッシングライブラリ
の標準化が進みつつある。MPIは、米国各大学および
並列計算機メーカーがメッセージパッシングインタフェ
ース標準化団体MPI Forumを組織し、その研究
成果をまとめた仕様である。この仕様に基づいて作成さ
れたライブラリ(以下MPIライブラリと呼ぶことがあ
る)は、今後の並列プログラム開発支援ライブラリの主
流になると考えられる。MPIライブラリを用いて記述
された並列プログラムは、異機種間で変更なしに走らせ
ることができる。各計算機メーカーは、自社の並列計算
機上で高性能を達成するようにMPIライブラリを開発
している。
【0006】上記MPI仕様は、PUT/GET通信に
関する仕様を含んでいない。しかし、データ転送の高速
化のためには、PUT/GET通信を併用することが重
要である。このために、並列計算機メーカー等は、PU
T/GET通信ライブラリを使用可能にしたMPIライ
ブラリを開発している。たとえば、本出願人による、
「並列計算機SR22D支援ライブラリ」参照。したが
って、MPIライブラリは、各計算機メーカーごとに異
なるものであるが、ユーザプログラムから見れば、MP
Iライブラリとの間のインタフェースは、いずれの計算
機メーカのMPIライブラリに対しても同じである。従
って、そのユーザプログラムは、いずれの計算機のメー
カの上でも実行できることになる。
【0007】MPIライブラリを用いるユーザプログラ
ムは、データを送信する時点で、MPIライブラリをコ
ールする。従来は、ユーザプログラムがPUT/GET
通信ライブラリを使用するときには、ユーザプログラム
は送信すべきユーザデータおよびデータ長をこのコール
文の引数でもって指定すればよい。しかし、MPIライ
ブラリを使用するときには、ユーザプログラムは、この
コール文の中でこのMPIライブラリにより定められた
付加情報を引数としてさらに指定する必要がある。この
付加情報は、送信先のプロセスの識別子、プロセスグル
ープ識別子等を含む固定長のデータであり、メッセージ
の送信先の要素プロセッサにおいて、受信したメッセー
ジがそこで実行中のユーザプロセスが発行する受信要求
が要求したメッセージか否かの識別に使用される。以
下、この情報をMPI付加情報とも呼ぶ。従来のMPI
ライブラリとPUT/GETライブラリを併用した通信
方法では、ユーザデータおよびMPI付加情報を異なる
二つのメッセージにより転送していた。
【0008】
【発明が解決しようとする課題】従来のように、同じ転
送先プロセッサに対しユーザデータおよびMPI付加情
報を2つのメッセージとして転送する場合、各メッセー
ジの転送に異なる転送制御情報が必要になる。その結
果、これらの情報の生成も2度行わなければならない。
このために、従来のMPIライブラリを使用したデータ
転送では、ユーザプログラムがデータの転送を要求して
から、実際に転送が開始されるまでの遅延時間(転送レ
イテンシと呼ばれる)が大きい。
【0009】さらに、これらの2種のデータに対して別
々のメッセージとして送信処理、受信処理を行うと、メ
ッセージ数に比例してローカルメモリに対するアクセス
回数(転送制御情報の読み出し、転送データの読み出
し、フラグの書き込み)が増加してしまう。
【0010】本発明の目的は、以上の問題を減少させ、
より高速にデータを転送できるデータ転送方法を提供す
ることにある。
【0011】
【発明を解決するための手段】上記の目的を達成するた
めに、本発明によるデータ転送方法は、送信側の要素プ
ロセッサで走行中のユーザプロセスから発行されたデー
タ送信要求が要求する、送信データとそれに関連する付
加情報とを、送信元のメッセージパッシングライブラリ
から送信元のメモリ間直接転送ライブラリに通知し、そ
のメモリ間直接転送ライブラリにより、上記送信データ
および付加情報と、それらの受信の完了を示す制御情報
を書き込むべき領域を指定するための、受信側の要素プ
ロセッサがあらかじめ決定した受信側アドレス情報とを
含むメッセージの送信をネットワークインタフェース回
路に対して要求し、上記ネットワークインタフェース回
路により、上記メッセージを組立て、受信側の要素プロ
セッサに宛てて上記相互結合ネットワークに送信し、上
記メッセージの送信後に、そのメモリ間直接転送ライブ
ラリが決定したアドレスを有する、上記メモリ内の記憶
位置に送信完了を示す制御情報を上記ネットワークイン
タフェース回路により書き込む。
【0012】より具体的には、上記メモリ間直接転送ラ
イブラリは、上記付加情報を上記メモリ内の領域に書き
込み、ユーザが指定した送信データの記憶位置を示す第
1のアドレスとそのデータの長さと、上記付加情報の記
憶位置を示す第2のアドレスと、送信先の要素プロセッ
サのメモリにおける、送信データの記憶位置を指定する
第3のアドレスと、上記付加情報を記憶する位置を示す
第4のアドレス等を指定し、これらの情報を含むメッセ
ージの送信を上記ネットワークインタフェース回路に要
求する。
【0013】この回路は、上記第1のアドレスと上記デ
ータ長により送信データを読み出し、上記第2のアドレ
スにより付加情報を読み出し、これらの送信データ、付
加情報および上記第3,第4のアドレスを含むメッセー
ジを生成し、送信先にあてて送信する。この送信の完了
後に、上記第2のアドレスを使用して、送信完了を示す
制御情報をメモリ内の、上記付加情報の書き込み位置と
異なる位置、具体的には、付加情報が書き込まれた記憶
位置の次の記憶位置に書き込む。
【0014】さらに、受信側の要素プロセッサにおいて
も、ネットワークインタフェース回路が、上記メッセー
ジ内の上記送信データと付加情報とをそれぞれ上記第
3、第4のメモリアドレスが指定する記憶位置に書き込
むとともに、この書き込みの完了後に、受信完了を示す
制御情報を上記第4のアドレスの基づいて上記付加情報
の書き込み位置と異なる記憶位置に書き込む。
【0015】本発明のより具体的な態様では、ユーザプ
ロセスが、メッセージパッシングライブラリを介して行
う上記の転送とともに、他のユーザプロセスはメッセー
ジパッシングライブラリを介さないでメモリ間直接転送
ライブラリにデータの送信要求を発行することができる
ようになっている。この場合には、メモリ間直接転送ラ
イブラリとネットワークインタフェース回路は、上に述
べた処理における、付加情報が存在しない場合の処理と
基本的に同じ処理を行う。
【0016】
【発明の実施の形態】以下、本発明に係る計算機システ
ムを図面に示した実施の形態を参照してさらに詳細に説
明する。
【0017】<発明の実施の形態>図1に、本発明にお
ける並列計算機の概略構成を示す。図中、101〜10
4は並列計算機を構成する要素プロセッサ、105は相
互結合ネットワークである。要素プロセッサ101〜1
04は、相互結合ネットワーク105に接続し、相互結
合ネットワーク105を介して、要素プロセッサ間でデ
ータの授受を行う。相互結合ネットワーク105の構成
方法(トポロジ)は、クロスバ結合、格子結合、リング
結合、多段結合等多種存在するが、本発明は、これらの
いずれにも適用可能であり、特定の相互結合ネットワー
クトポロジに限定されない。図3に要素プロセッサ10
1の概略構成を示す。図中、301は命令プロセッサ、
302はキャッシュローカルメモリ、303はストレー
ジコントローラ、304はローカルメモリ、305はネ
ットワークインタフェース回路、306はI/Oインタ
フェース回路である。この並列計算機は、個々の要素プ
ロセッサがそれぞれ固有のローカルメモリ304を有す
る分散ローカルメモリ型の並列計算機である。
【0018】各要素プロセッサは、他の要素プロセッサ
との間でメッセージパッシングによる通信を実行するよ
うに構成されている。すなわち、各要素プロセッサは、
標準のメッセージパッシングインタフェース、たとえば
MPIを有するメッセージパッシングライブラリ(以
下、MPIライブラリと呼ぶ)と、このライブラリと交
信して自要素プロセッサ内のローカルメモリとの間で直
接データの授受を行うメモリ間直接転送を実行するライ
ブラリとして、PUT/GET型通信を実行するための
ライブラリ(以下、PUT/GET型ライブラリと呼
ぶ)と、PUT/GET型ライブラリからのコマンドに
より起動されるネットワークインタフェース回路305
を有している。なお、本発明は、この特定のメッセージ
パッシングライブラリに限定されるのではなく、他のメ
ッセージパッシングライブラリたとえばPVM、PAR
MACSとして知られているライブラリも適用できる。
【0019】本実施の形態では、各要素プロセッサ内の
ユーザプロセスがMPIライブラリに対してデータ送信
要求を発行したときに、MPIライブラリ、PUT/G
ET型ライブラリおよびネットワークインタフェース回
路305は、協同してユーザデータとMPI付加情報を
一つのメッセージにて転送し、さらに他の要素プロセッ
サからユーザデータとMPI付加情報を含むメッセージ
を受信したときに、ネットワークインタフェース回路3
05は、これらのデータを区分してローカルメモリに書
き込むところに特徴がある。この付加情報は、MPIラ
イブラリを介した通信のために使用されるもので、MPI
ライブラリが指定した形式の、データ送信に関連する複
数の情報からなり、それぞれの情報は、ユーザプロセス
により指定される。具体的には、既に例示したように、
この付加情報は、受信側のユーザプロセスの識別子、プ
ロセスグループの識別子等を含む。
【0020】より具体的には、各要素プロセッサで実行
中のユーザプロセスからMPIライブラリに対する送信
要求が発行されたときに、MPIライブラリは、その送
信要求が指定するユーザデータと付加情報の送信をPU
T/GET型ライブラリに要求する。PUT/GET型
ライブラリにその送信要求が指定する付加情報をローカ
ルメモリに書き込み、そのユーザデータとMPI付加情
報の両方を一つのメッセージとして転送するための転送
制御情報を生成し、ローカルメモリ304に書き込み、
その後転送制御情報によるユーザデータおよび付加情報
の送信をネットワークインタフェース回路305に要求
する。
【0021】ネットワークインタフェース回路305
は、この送信要求に応答して、転送制御情報に従ってユ
ーザデータとMPI付加情報を含む一つのメッセージを
組み立て、受信側の要素プロセッサに相互結合ネットワ
ーク105を介して転送する。受信側の要素プロセッサ
では、ネットワークインタフェース回路305は、この
メッセージを受信すると、メッセージに含まれたユーザ
データおよびMPI付加情報をメッセージのヘッダ内の
転送制御情報が指定するローカルメモリ内の二つのアド
レスに書き込み、それぞれを受信側のユーザプロセスお
よび受信側のMPIライブラリに引き渡す。
【0022】図2に転送制御情報の例を示す。転送制御
情報200には、GETあるいはPUT動作の場合に使
用される転送先プロセッサ番号201、PUT動作の場
合に送信されるユーザデータが格納されているローカル
メモリ領域の先頭アドレスである送信データアドレス2
03、PUT動作の場合に送信完了フラグを書き込むロ
ーカルメモリ領域の先頭アドレスである送信フラグアド
レス204、GETあるいはPUT動作の場合に使用さ
れる、転送されるデータの長さである転送データ長20
5、受信側の要素プロセッサにおいて受信データを書き
込むローカルメモリ領域の先頭アドレスである受信デー
タアドレス206、その要素プロセッサにおいて、その
受信データに対する受信完了フラグを書き込むローカル
メモリ領域の先頭アドレスである受信フラグアドレス2
07、その他通信処理に必要な情報208等を格納す
る。
【0023】さらに、本実施の形態では、モードビット
202がセットされていない場合、送信フラグアドレス
204および受信フラグアドレス207は、それぞれP
UT動作時の送信完了フラグおよびGET動作時の受信
完了フラグを書き込むローカルメモリアドレスを指定す
る。しかし、モードビット202がセットされている場
合、送信フラグアドレスフィールド204は、PUT動
作時にMPI付加情報を読み出すべきローカルメモリア
ドレスを指定するのに使用され、受信フラグアドレスフ
ィールド207は、GET動作時に受信したMPI付加
情報を書き込むべきローカルメモリアドレスを指定する
のに使用される。
【0024】この結果、PUT動作時に送信完了フラグ
を書き込むべきローカルメモリアドレスが転送制御情報
200により指定されなくなるが、本実施の形態では、
あらかじめセットされたMPI付加情報サイズを送信フ
ラグアドレスに加算し、その結果得られるアドレスにユ
ーザデータおよびMPI付加情報という二つのデータの
送信完了フラグを書き込む。同様に、GET動作時に
は、GET動作時には、あらかじめセットされたMPI
付加情報サイズを受信フラグアドレスフィールドに加算
し、その結果得られるアドレスに2種類のデータの受信
完了フラグを書き込む。これにより、1つの転送制御情
報200を用いてユーザデータとMPI付加情報という
2つの種類のデータを1つのメッセージで送信または受
信し、従来と同様に送信完了フラグあるいは受信完了フ
ラグもローカルメモリに書き込むことができる。
【0025】命令プロセッサ301は、プログラム処理
を行うユニットである。キャッシュローカルメモリ30
2は、命令プロセッサ301に付随する、高速かつ小容
量のローカルメモリである。ネットワークインタフェー
ス回路305は、相互結合ネットワーク105に接続
し、命令プロセッサ301からの指示に従って、ローカ
ルメモリ分散型の並列計算機の特徴であるデータ転送処
理を命令プロセッサ301のプログラム処理とは独立し
て行うユニットである。ストレージコントローラ303
は、命令プロセッサ301、ネットワークインタフェー
ス回路305およびI/Oインタフェース回路306か
ら発行されるデータアクセス要求に従って、適当な記憶
媒体にアクセスする。ローカルメモリ304は、ストレ
ージコントローラ303で制御され、データ等を格納す
る。命令プロセッサ301およびネットワークインタフ
ェース回路305は独立に動作するため、ストレージコ
ントローラ303は、命令プロセッサ301からローカ
ルメモリ304へのアクセス要求を処理するのと同時
に、ネットワークインタフェース回路305からのデー
タ転送に伴うローカルメモリ304へのアクセスも処理
する。I/Oインタフェース回路306は、ストレージ
コントローラ303からのアクセス要求に従って、I/
O装置にアクセスする。I/Oインタフェース回路30
6は、要素プロセッサの構成によっては、存在しない場
合もある。
【0026】図4に示すように、ストレージコントロー
ラ303は、命令プロセッサインタフェース回路40
1、アドレス解析部402、メモリアクセスインタフェ
ース回路403およびデータ転送インタフェース回路4
04で構成される。命令プロセッサインタフェース回路
401は、命令プロセッサ301からローカルメモリ3
04へのアクセスおよび命令プロセッサ301からネッ
トワークインタフェース回路305へのコマンド発行と
いうトランザクションを線401Sから受け取る。通
常、このコマンドは、ネットワークインタフェース回路
305内部の制御レジスタへのアクセス要求である。命
令プロセッサインタフェース回路401は、このトラン
ザクションへの返答、ストレージコントローラ303や
ネットワークインタフェース回路305で検出した割り
込み要因を線402Sを介して命令プロセッサ301へ
伝える。このトランザクションの応答は、たとえば、ロ
ーカルメモリからの読み出しデータである。
【0027】アドレス解析部402は、命令プロセッサ
301が発行した、ローカルメモリアクセス要求および
ネットワークインタフェース回路305へのコマンドを
線403Sを介して受け取り、そのアクセス要求あるい
はコマンドが指定するアクセス先アドレスを解析する。
ローカルメモリアクセス要求は線404Sを介してメモ
リアクセスインタフェース回路403に伝えられる。ま
た、ネットワークインタフェース回路305へのコマン
ドは、線406Sを介してデータ転送インタフェース回
路404に伝達される。
【0028】メモリアクセスインタフェース回路403
は、アドレス解析部402からのローカルメモリアクセ
ス要求を線404Sを介して受け、線407Sを介して
ローカルメモリ304に伝達する。ローカルメモリアク
セス要求がローカルメモリからの読み出し要求であった
場合、この読み出し要求が指定するデータがローカルメ
モリ304から線408Sを介して伝達される。読み出
しデータは、メモリアクセスインタフェース回路403
から線409Sを介して命令プロセッサインタフェース
回路401に伝達され、線402Sを介して命令プロセ
ッサ301に伝達される。また、ローカルメモリアクセ
スインターフェース403は、データ転送に関わるロー
カルメモリアクセスも処理する。データ転送処理に関わ
るローカルメモリアクセスは、データ転送インタフェー
ス回路404から線410Sを介して伝達される。メモ
リアクセスインタフェース回路403は、アドレス解析
部402からローカルメモリアクセス要求が伝達された
時と同様に、ローカルメモリアクセス要求をローカルメ
モリ304に対して発行し、読み出しアクセスに対して
は、読み出しデータを線411Sを介してデータ転送イ
ンタフェース回路404に返送する。
【0029】データ転送インタフェース回路404は、
アドレス解析部402から線406Sを介して伝達され
るネットワークインタフェース回路305へのコマンド
を受け取り、線412Sを介してネットワークインタフ
ェース回路305に伝達する。ネットワークインタフェ
ース回路305からは、線413Sを介してコマンドに
対する返答およびデータ転送に関わるローカルメモリア
クセス要求が伝達される。データ転送インタフェース回
路404は、前記コマンドに対する返答を線414Sを
介して命令プロセッサインタフェース回路401に伝達
し、線402Sを介して命令プロセッサ301に伝達す
る。ローカルメモリアクセス要求は、線410Sを介し
てメモリアクセスインタフェース回路403に伝達す
る。ローカルメモリ読み出しデータは、線411Sを介
してデータ転送インタフェース回路404に伝達され、
データ転送インタフェース回路404から線412Sを
介してネットワークインタフェース回路305に伝達さ
れる。データ転送インタフェース回路404は、ネット
ワークインタフェース回路305内部で発生した割り込
み伝達要求を受ける場合もある。この場合、割り込み伝
達要求は線414Sを介して命令プロセッサインタフェ
ース回路401に伝達され、さらに命令プロセッサ30
1に伝達される。
【0030】ネットワークインタフェース回路305
は、コマンド受信部405、コマンド処理部406、メ
ッセージ生成部407、メッセージ送信部408、メッ
セージ受信部409、メッセージ分解部410およびコ
マンド送信部411で構成される。コマンド受信部40
5は、ストレージコントローラ303から線412Sを
介して、ネットワークインタフェース回路305内部の
制御レジスタへのアクセスあるいはネットワークインタ
フェース回路305が要求したローカルメモリ304か
ら読み出されたデータ等を受け取る。このデータは、線
415Sを介してコマンド処理部406に伝達され、転
送データとして使用されたり、ネットワークインタフェ
ース回路305の動作制御用データとしてネットワーク
インタフェース回路内部の制御レジスタに設定された
り、データ送信時にメッセージ生成用データ(転送先プ
ロセッサ番号、送信データアドレス、送信フラグアドレ
ス、転送データ長、受信データアドレス、受信フラグア
ドレス等)として使用される。
【0031】コマンド処理部406は、線415Sを介
してコマンド受信部405から伝達されるネットワーク
インタフェース回路305内部の制御レジスタへのアク
セスを行う。制御レジスタ読み出しアクセスを受けた場
合、コマンド処理部406は、読み出し結果を線417
Sを介してコマンド送信部411に伝達する。また、制
御レジスタ書き込みアクセスを受けた場合には、コマン
ド処理部406は、その書き込みを実行する。メッセー
ジの送信処理は、上記の制御レジスタへのアクセスがメ
ッセージ送信起動用レジスタへの書き込み要求である場
合に開始する。メッセージの送信処理では、データを宛
先の要素プロセッサに転送するのに必要な情報であるヘ
ッダを作成したり、転送データが存在するローカルメモ
リアドレスを知るために、ローカルメモリ304に格納
されている転送制御情報200を読み出すローカルメモ
リアクセス要求が発生される。このアクセス要求は線4
17Sを介してコマンド送信部411に伝達され、線4
13S、データ転送インタフェース回路404、線41
0S、メモリアクセスインタフェース回路403、線4
07Sを介してローカルメモリ304から読み出され
る。ローカルメモリ304からの読み出し結果は、線4
08S、メモリアクセスインタフェース回路403、線
411S、データ転送インタフェース回路404、線4
12S、コマンド受信部405を介してコマンド処理部
406に伝達され、メッセージ生成部407に伝達され
る。
【0032】メッセージ生成部407は、本実施の形態
での特徴的な回路の一つであり、418Sを介して伝達
された転送データと転送制御情報200を含むヘッダか
らメッセージを生成し、線419Sを介してメッセージ
送信部408に送出する。転送制御情報200内のモー
ドビット202が1である場合、メッセージ生成部40
7は、転送制御情報200から生成されるヘッダと、転
送制御情報200内の送信データアドレス203に従っ
てローカルメモリ304から読み出した送信データと、
送信フラグアドレス204に従ってローカルメモリ30
4から読み出したMPI付加情報からメッセージを組み
立て、メッセージ送信部408に送出する。
【0033】図5に、メッセージ生成部407の内部構
成を示す。メッセージ生成部407は、ローカルメモリ
304から読み出した転送制御情報200内の、送信デ
ータアドレス、送信フラグアドレスフィールド内のアド
レス、転送データ長をそれぞれ保持するレジスタ50
1、502、503を有する。メッセージ生成部407
は、さらに、ローカルメモリ304から生成中のメッセ
ージのためにローカルメモリからすでに読みだされたデ
ータの量を保持するレジスタ504と、本実施の形態に
特徴的な回路として、MPI付加情報のサイズを保持す
るレジスタ505と、転送制御情報200内モードビッ
トを保持するレジスタ506を有する。レジスタ504
に保持された読み出し済みのデータの量はデータがロー
カルメモリ304から読み込まれるたびにカウントアッ
プされ、送信すべきすべてのデータがメッセージ送信部
408に伝達された後リセットされる。従って、この読
み出し済みのデータの量は、送信済みのデータの総量と
考えることができる。MPI付加情報のサイズは、ユー
ザプロセスからの初期化要求によりMPIライブラリと
PUT/GETライブラリが初期化される時にレジスタ
505にあらかじめセットされる。レジスタ506に
は、転送制御情報200の読み出し時にその情報内のモ
ードビットがセットされ、すべてのデータがメッセージ
送信部408に伝達された後このレジスタ内のモードビ
ットがリセットされる。メッセージ生成部407は、さ
らに、ローカルメモリ読み出し要求発行部511と、ロ
ーカルメモリ書込み要求発行部512と、メッセージ組
み立て部513の他に、本実施の形態に特徴的な回路と
して、アンドゲート507と、加算器508および50
9と比較回路510とを有する。
【0034】アンドゲート507は、モードビットが1
である場合には、レジスタ505内のMPI付加情報サ
イズを出力し、0である場合にはモードビットの値0を
出力する。加算器509は、アンドゲート507の出力
とレジスタ502に保持されている送信フラグアドレス
フィールドの値を加算する。PUT動作時にモードビッ
トが1にセットされている場合、レジスタ502に保持
されている送信フラグアドレスフィールドには、ローカ
ルメモリ304内の、MPI付加情報714の先頭アド
レスが含まれているので、この加算の結果アドレスは、
そのMPI付加情報の次のアドレスを指すことになり、
PUT動作時の送信完了フラグの書込みアドレスとして
使用される。加算器508は、アンドゲート507の出
力と、レジスタ503に保持された転送データ長を加算
する。この加算の結果は、モードビットに1がセットさ
れた場合、PUT動作時に送信すべきメッセージに含ま
れるべき、ローカルメモリ304から読み出すべきデー
タの総量を示す。
【0035】比較回路510は、レジスタ504に保持
された読み出し済みのデータ量を、レジスタ503に保
持された転送データ量と加算器508から出力される転
送データの総量とを比較する。比較の結果として、レジ
スタ504に保持された読み出し済みデータ量がレジス
タ503内の転送データ長を越えていない場合には、そ
のことを示す比較結果信号をローカルメモリ読み出し要
求発行部511に出力する。レジスタ504に保持され
た読み出し済みデータ量がレジスタ503内の転送デー
タ長を越えているが、加算器508から与えられる、ロ
ーカルメモリ304から読み出すべきデータの総量を越
えていない場合には、そのことを示す比較結果信号をロ
ーカルメモリ読み出し要求発行部511に出力する。レ
ジスタ504に保持された読み出し済みデータ量が読み
出すべきデータの総量に達した場合、そのことを示す比
較結果信号をローカルメモリ書込み要求発行部512に
出力する。
【0036】ローカルメモリ読み出し要求発行部511
は、比較回路510からの比較結果信号と、レジスタ5
01内の送信データアドレスおよびレジスタ502内の
送信フラグアドレスとからローカルメモリ読み出し要求
を生成し、コマンド送信部411に送信する。すなわ
ち、比較結果信号が、読み出し済みのデータが転送デー
タ長を超えていないことを示すときには、送信データア
ドレスを元に後続の未読み出しのユーザデータを読み出
すためのローカルメモリ読み出し要求を生成し、読み出
し済みのデータが転送データ長を越えているが、読み出
すべきデータの総量を超えていないときには、送信フラ
グアドレスを元にして未読み出しのMPI付加情報を読
み出すためのローカルメモリ読み出し要求を生成する。
【0037】ローカルメモリ書込み要求発行部512
は、比較回路510からの比較結果信号と、加算器50
9から出力される送信完了フラグアドレスとを元にロー
カルメモリ書込み要求をコマンド送信部411に送信す
る。すなわち、比較結果信号が、読み出し済みデータ量
が読み出すべきデータの総量に達したことを示す場合、
加算器508より与えられる送信完了フラグアドレスに
送信完了フラグを書き込むことを要求する書き込み要求
を生成する。
【0038】メッセージ組み立て部513では、本実施
の形態に特徴的なセレクタ514がモードビットの値に
従ってメッセージを組み立て、メッセージ送信部408
にそのメッセージの送信要求を送付する。モードビット
が1である場合、ヘッダとデータとMPI付加情報を含
むメッセージ515を組立て、モードビットが0である
場合には、ヘッダとデータのみからなるメッセージ51
6を組立る。
【0039】図4において、メッセージ送信部408
は、メッセージ生成部407からのメッセージ送信要求
を受けて線420Sを介して相互結合ネットワーク10
5にメッセージを送出する。送出されたメッセージは、
相互結合ネットワーク105を介してそのヘッダ情報に
従って宛先に転送される。メッセージ生成部407にお
ける送信処理は、ネットワークインタフェース回路30
5へ送信される複数のメッセージ送信要求に対してそれ
らの送信要求の到着順に順次行われる。
【0040】次に、メッセージ受信部409について説
明する。メッセージ受信部409は、線421Sを介し
て、相互結合ネットワーク105からメッセージを順次
受け取り、メッセージ分解部410に線422Sを介し
て転送する。メッセージ分解部410はこのメッセージ
のヘッダ部に含まれる転送制御情報に従ってこのメッセ
ージをデータ部とヘッダ部に分解し、ローカルメモリ3
04へこのデータ部や受信完了フラグの書き込みを要求
する書き込み要求を線423Sを介してコマンド送信部
411に伝達する。
【0041】図6にメッセージ分解部410の内部構成
を示す。メッセージ分解部410には、メッセージヘッ
ダ内の受信データアドレス、受信フラグアドレス、転送
データ長、モードビットをそれぞれ保持するレジスタ6
01、602、603、606が設けられている。レジ
スタ606は本実施の形態で特徴的なレジスタであり、
レジスタ606には、ヘッダ受信時にヘッダ内のモード
ビットがセットされ、メッセージ内の全データを受信し
たときにそのモードビットがリセットされる。さらに、
受信したメッセージ内のデータの内、ローカルメモリに
書き込み済みのデータの総量を保持するレジスタ604
と、MPI付加情報のサイズを保持する、本実施の形態
に特徴的なレジスタ605が設けられている。レジスタ
605には、MPI初期化時あるいはジョブ起動時にあ
らかじめ定められたMPI付加情報サイズがセットさ
れ、このサイズ情報はメッセージ内の全データが受信さ
れたときにリセットされる。レジスタ604に保持され
た書き込み済みのデータの量は受信されたデータがロー
カルメモリ304に書き込まれるたびにカウントアップ
され、受信すべきすべてのデータがローカルメモリ30
4に書き込まれた後リセットされる。従って、この書き
込み済みのデータの総量は、受信済みのデータの総量で
あるとも考えることができる。
【0042】メッセージ分解部410には、ローカルメ
モリ書込み要求発行部611の他に、本実施の形態で特
徴的な、アンドゲート607、加算器608、609と
比較回路610とがさらに設けられている。アンドゲー
ト607は、レジスタ606内のモードビットが1であ
る場合にレジスタ605内のMPI付加情報サイズを出
力し、モードビットが0である場合には0を出力する。
加算器608および609の動作は、加算器508およ
び509(図5)と同様である。比較回路610は、レ
ジスタ504内の受信済みデータの総量を、転送データ
長、アンドゲート607の出力結果データと比較し、比
較結果信号をローカルメモリ書込み要求発行部611に
出力する。すなわち、この比較回路は、受信済みのデー
タが転送データ長よりも短いか、受信済みのデータの総
量が転送データ長より大きいが、転送データ長とアンド
ゲート607から出力されるMPI付加情報のサイズの
和より小さいか、あるいは受信済みのデータの総量が転
送データ長とMPI付加情報サイズの和より大きいかを
判別する。
【0043】メモリ書込み要求発行部611は、比較回
路610の比較結果信号と、レジスタ601内の受信デ
ータアドレスと、加算器609の出力とレジスタ602
内の受信フラグアドレスフィールドの値とから、ローカ
ルメモリ書込み要求を生成し、コマンド送信部411に
線42Sを介して伝達する。加算器609は、モードビ
ットが1である場合に、レジスタ602内の受信フラグ
アドレスフィールドの値にMPI付加情報サイズを加算
したアドレスを受信完了フラグを書き込むべきローカル
メモリアドレスとして出力する。
【0044】比較回路610の出力が、受信済みのデー
タの総量が転送データ長よりも大きいことを示す場合、
メモリ書き込み要求発行部611は、受信されたデータ
をそれまでに受信したデータの書き込み位置に続けて書
き込むためのローカルメモリ書き込み要求をレジスタ6
01内の受信データアドレスに基づいて生成する。
【0045】比較回路610の出力が、受信済みのデー
タの総量が転送データ長よりも大きく転送データ長とア
ンドゲート607から出力されるMPI付加情報のサイ
ズの和より小さいことを示す場合、新たに受信されたデ
ータは、MPI付加情報である。従って、この場合に
は、メモリ書き込み要求発行部611は、受信されたデ
ータをそれまでに受信したMPI付加情報の書き込み位
置に続けて書き込むためのローカルメモリ書き込み要求
を、レジスタ602内の受信フラグアドレスフィールド
に含まれる、MPI付加情報の書き込みアドレスに基づ
いて生成する。
【0046】比較回路610の出力が、受信済みのデー
タの総量が転送データ長とアンドゲート607から出力
されるMPI付加情報のサイズの和より大きいことを示
す場合、すべてのデータが受信されたこといなる。従っ
て、この場合には、メモリ書き込み要求発行部611
は、受信完了フラグをMPI付加情報の書き込み位置に
続けて書き込むためのローカルメモリ書き込み要求を、
加算器609の出力に基づいて生成する。
【0047】コマンド送信部411は、これらの書き込
み要求に従って、受信されたデータあるいは受信完了フ
ラグをローカルメモリ304に書き込む。コマンド送信
部411は、線417Sを介して伝達される、ネットワ
ークインタフェース回路305内部の制御レジスタから
の読み出しデータ、線424Sを介して伝達される、メ
ッセージ送信処理において使用される送信データのロー
カルメモリ304からの読み出し要求、線424Sを介
して伝達される、メッセージ送信処理の完了に伴う送信
完了フラグのローカルメモリ304への書き込み要求、
線423Sを介して伝達される、メッセージ受信処理に
伴う受信データあるいは受信完了フラグのローカルメモ
リ304への書き込み要求およびネットワークインタフ
ェース回路305内で発生した割り込み要求を、線41
3Sを介してストレージコントローラ303内のデータ
転送インタフェース回路404に伝達する。また、コマ
ンド送信部411は、ネットワークインタフェース回路
305の動作制御に関わる情報のローカルメモリ304
からの読み出し要求、メッセージ送信処理に使用する転
送制御情報200のローカルメモリ304からの読み出
し要求を線413Sを介してデータ転送インタフェース
回路404に伝達する。
【0048】次に本実施の形態におけるメッセージ転送
の流れを説明する。最初に自プロセッサのローカルメモ
リに格納されているユーザデータおよびMPI付加情報
を転送先の要素プロセッサのローカルメモリに直接書き
込むPUT処理について図4、5、7を用いて説明す
る。まず、本実施の形態に係わる通信方式では、送信側
のユーザプロセスおよび受信側のユーザプロセスは、M
PIライブラリを使用する前に、MPIライブラリ内の
初期化ルーチンたとえばMPI_initをコールする
コマンド発行する。この初期化ルーチンのコールを受け
ると、MPIライブラリは、PUT/GETライブラリ
内のいくつかの通信準備手続きをコールする。これらの
通信準備手続きは、使用するPUT/GETライブラリ
により予め定められているが、以下では、後の説明に関
連する部分および本実施の形態で新規に行われる処理の
みを説明する。
【0049】本実施の形態では、送信側のPUT/GE
Tライブラリおよび受信側のPUT/GETライブラリ
は、いずれもこれらの通信準備手続において以下の処理
をすると仮定する。すなわち、ローカルメモリ701を
ユーザ空間にあらかじめマップし、さらに、通信領域7
03、704(図7)を確保する。さらに、それぞれの
通信領域内に送信データ領域およびそれに対応する送信
完了フラグ領域を確保する。図7では、713は送信デ
ータ領域の例を示す。図では、受信側の通信領域704
内の送信データ領域は図示していない。本実施の形態で
は、送信完了フラグ領域として、MPI付加情報714
および送信完了フラグ715の両方を格納する連続した
領域を確保する点で従来と異なる。同様に、各通信領域
内に、受信データ領域および受信完了フラグ領域を確保
する。本実施の形態では図7では、721は受信データ
領域の例を示す。図では、送信側の通信領域703内の
受信データ領域は図示していない。本実施の形態では、
受信完了フラグ領域として、MPI付加情報722およ
び受信完了フラグ723の両方を格納する連続した領域
を確保する点で従来と異なる。なお、MPI付加情報71
4の長さは例えば64バイト程度である。なお、送信完
了フラグあるいは受信完了フラグを書き込む領域71
5,723は例えば8バイトである。
【0050】PUT/GET型ライブラリとして、送信
すべきユーザデータを、ローカルメモリ701に常駐さ
せることを前提とする場合とそうでない場合とがある。
前者の場合には、送信データ領域713は、この常駐さ
れたユーザデータの領域と一致するように、送信データ
領域713が決定される。一方、後者の場合には、送信
データ領域713は、送信側のユーザプロセスが使用す
るユーザデータに割り当てられたローカルメモリ内の領
域とは独立に決定される。本発明はいずれの構造のPU
T/GET型ライブラリにも適用可能である。しかし、
後者の場合には、後に述べるように、ユーザプロセスが
使用しているユーザデータに割り当てられたローカルメ
モリ内の領域のデータを送信データ領域713にコピー
する処理が必要となる。しかし、前者の場合にはこのコ
ピー動作が必要でなく、それだけデータ転送動作が高速
化される。
【0051】以上のようにして、通信準備手続きが実行
された後に、送信側のユーザプロセスの処理が進むと、
そのユーザプロセスは、送信すべきデータを送信側の通
信領域703内のユーザデータ領域713に書き込んだ
後に、データ送信要求コマンド、たとえばMPI_se
ndを送信側のMPIライブラリに対して発行する。こ
のコマンドの名称は、使用するメッセージパッシングラ
イブラリにより定まり、それが指定する引数も同様にそ
のライブラリにより定められた複数の種類の情報からな
る。ここで仮定するMPIライブラリの場合には、この
コマンドの引数は、送信すべきユーザデータの先頭アド
レス、ユーザデータ長と付加情報からなり、この先頭ア
ドレスは、ユーザプロセスに割り当てられた仮想メモリ
空間内での、そのユーザデータに対する仮想アドレスで
ある。この付加情報は、受信側のユーザプロセスの識別
子、プロセスグループの識別子等を含む。最初の二つの
引数は、MPIライブラリを介さないでデータ転送をユ
ーザプロセスがPUT/GET型ライブラリに直接要求
するためのデータ送信要求が指定する引数と同じであ
り、付加情報がMPIライブラリに対するデータ転送要
求が新たに指定する引数である。
【0052】送信側のMPIライブラリは、このデータ
送信要求コマンドMPI_sendに応答して、送信側
のPUT/GET型ライブラリに、この送信要求が指定
するデータの送信を要求する。送信側のMPIライブラ
リは、この要求を、MPIライブラリとPUT/GET
型ライブラリにより予め定められた一つまたは複数のコ
マンドの形で発行する。以下では、それらのコマンドの
内、本実施の形態で使用すると仮定する主なコマンドの
みを説明する。
【0053】まず、送信側のMPIライブラリは、送信
権の取得を要求するコマンドを発行する。送信側のPU
T/GET型ライブラリは、このコマンドに応答して、
受信側のユーザプロセスと交信してそのプロセスに対す
るデータの送信権を得る。受信側のユーザプロセスおよ
びそのプロセスを実行している要素プロセッサの番号
は、上記データ送信要求コマンドMPI_sendが指
定する付加情報中の、受信側のプロセス識別番号とプロ
セスグループ識別番号とにより決定される。
【0054】送信側のMPIライブラリは、さらに、受
信側のユーザプロセスの受信データ領域および受信フラ
グ領域のそれぞれの先頭位置を示す受信データアドレス
および受信フラグアドレスを受信する。但し、この後に
再度同じデータ送信要求コマンドMPI_sendを送
信側のユーザプロセスが発行したときには、このコマン
ドを実行する必要はない。
【0055】既に述べたように、PUT/GET型ライ
ブラリが、送信すべきユーザデータがローカルメモリ7
01に常駐されることを前提としない場合には、送信側
のMPIライブラリは、送信すべきユーザデータを、ユ
ーザデータ領域713にコピーすることを要求するコマ
ンドを発行し、送信側のPUT/GET型ライブラリに
より、このコマンドの引数で指定されるユーザデータの
アドレスとデータ長で指定されるユーザデータに割り当
てられた、ローカルメモリ内の領域のデータを、先に決
定された送信データ領域703にコピーする。PUT/
GET型ライブラリが、送信すべきユーザデータをロー
カルメモリ701に常駐させることを前提とする場合に
は、このコピー動作は不要である。
【0056】次に、送信側のMPIライブラリは、付加
情報のローカルメモリへの書き込みを要求するコマンド
を発行する。送信側のPUT/GET型ライブラリは、
このコマンドに応答して、このコマンドの引数で指定さ
れるMPI付加情報を、先に決定された送信データ領域
703に対応して決定された送信フラグ領域の先頭の領
域714に書き込む。
【0057】送信側のMPIライブラリは、付加情報の
ローカルメモリへの書き込みを要求するコマンドを発行
する。送信側のPUT/GET型ライブラリは、このコ
マンドに応答して、このコマンドの引数で指定されるM
PI付加情報を、先に決定された送信データ領域703
に対応して決定された送信フラグ領域の先頭の領域71
4に書き込む。
【0058】送信側のMPIライブラリは、転送制御情
報を生成することを要求するコマンドを発行する。送信
側のPUT/GET型ライブラリは、このコマンドに応
答して、転送制御情報700を生成して、ローカルメモ
リ700内の適当な領域に書き込む。この転送制御情報
700に含まれた情報は以下の通りである。転送先プロ
セッサ番号201は、受信側のユーザプロセスが実行さ
れているプロセッサの番号であり、この番号は、すでに
述べたように、MPI初期化ルーチンにおいて決定され
ている。モードビット202は、送信フラグアドレスフ
ィールド204を本実施の形態に従って拡張して使用す
るか否かを示すビットである。送信側のPUT/GET
型ライブラリは、送信側の MPIライブラリから、デ
ータ転送を要求されたときに、PUT/GET型ライブ
ラリはこのモードビットを1にセットする。モードビッ
ト202が1であることは、ユーザデータとMPI付加
情報とを一つのメッセージで送信することを指示する。
なお、本実施例の形態では、送信側のユーザプロセス
が、MPIライブラリに対してでなく、PUT/GET
型ライブラリに対して直接データ送信要求コマンドを発
行した場合には、PUT/GET型ライブラリは、その
データ要求に対して、図7に示す転送制御情報700と
同じ構造を有し、モードビット202の値が0である転
送制御情報を生成する。
【0059】送信データアドレス203は、送信側のユ
ーザプロセスにより転送が要求されたユーザデータまた
はそのコピーを保持する送信データ領域713の先頭ア
ドレスである。転送データ長205は、データ送信要求
コマンドMPI_sendが指定した、ユーザデータの
データ長であり、そのコマンドを受けたMPIライブラ
リがPUT/GET型ライブラリに通知する。
【0060】送信フラグアドレスフィールド204に
は、従来では送信完了フラグを書き込むためのローカル
メモリアドレスが格納されるが、本実施の形態では、モ
ードビット202が1である場合には、ローカルメモリ
701内のMPI付加情報714の先頭アドレスをこの
送信フラグアドレスフィールド204に格納する。な
お、モードビット202が1の場合には、送信完了フラ
グを格納するローカルメモリ内の領域715のアドレス
は送信フラグアドレスフィールド204によっては明に
は指定されないことになる。本実施の形態では、ネット
ワークインタフェース回路305が、ユーザプロセスと
MPI付加情報とに対する共通の送信完了フラグを、ロ
ーカルメモリ701内のMPI付加情報714の最終の
アドレスの次のアドレスの領域715に格納するように
なっている。このため、送信型のPUT/GET型ライ
ブラリは、ユーザプロセスからの先のデータ送信要求コ
マンドに対する応答として、この送信完了フラグが書き
込まれた時点で、送信完了を送信側のユーザプロセスに
通知するようになっている。なお、モードビット202
が0である場合には、PUT/GET型ライブラリは、
送信フラグアドレスフィールド204に、そのライブラ
リが決定した送信完了フラグを書き込むアドレスをセッ
トする。
【0061】受信データアドレス206は、受信側の要
素プロセッサにおいて、受信したデータを格納するため
のローカルメモリ領域721(図7)のアドレスであ
る。受信フラグアドレスフィールド207には、この受
信データとともに受信した付加情報と受信完了を示す受
信完了フラグを格納する領域の先頭アドレスである。本
実施の形態では、付加情報を記憶する領域722の後続
の領域723に受信完了フラグを書き込む。したがっ
て、受信フラグアドレスフィールド207には、この領
域722の先頭アドレスが書き込まれる。受信データア
ドレス206と受信フラグアドレス207は、いずれも
MPI初期化ルーチンにて送信先のPUT/GETライ
ブラリにより通知される。これらのアドレスは、GET
動作時に送信側のPUT/GET型ライブラリにより使
用される。
【0062】その他制御情報208は、PUTメッセー
ジあるいはGETメッセージあるいはGET要求メッセ
ージの種別を示したり、1対1通信あるいは1対多通信
等の通信形態を示すといった、その他通信処理に必要な
情報を含む。
【0063】なお、転送制御情報200の中に、MPI
付加情報を読み出すべきローカルメモリアドレスを指定
するフィールドおよび受信したMPI付加情報を書き込
むべきローカルメモリアドレスを指定するフィールドを
別に設けることも可能であるが、本実施の形態のように
モードビット202を用いて、送信フラグアドレス20
4および受信フラグアドレス207が指定する二つのア
ドレスを切り替えることにより転送制御情報200の構
造と大きさを、ユーザプロセスがPUT/GET型ライ
ブラリのみを使用して送信あるいは受信する場合と同じ
とすることができる。
【0064】こうして、転送制御情報700が生成され
ると、送信側のMPIライブラリは、生成された転送制
御情報に従って、データの送信を行うことをネットワー
クインタフェース回路305に要求するコマンドを発行
する。PUT/GETライブラリは、このコマンドに応
答して、ネットワークインタフェース回路305内部の
送信起動用レジスタ(図示せず)にその転送制御情報7
00のアドレスを書き込むことを要求する書き込みコマ
ンドを発行する。コマンド処理部406は、この書き込
みコマンドを実行して、ネットワークインタフェース回
路305内のメッセージ送信起動用レジスタ(図示せ
ず)へ転送制御情報700の先頭アドレスを書き込む。
この書き込みによりネットワークインタフェース回路3
05はメッセージ送信処理を開始する。
【0065】図4に示すように、コマンド処理部406
は、メッセージのヘッダを作成するためにローカルメモ
リ304に格納されている転送制御情報700を読み出
すローカルメモリアクセス要求を線417Sを介してコ
マンド送信部411に伝達する。線413S、データ転
送インタフェース回路404、線410S、メモリアク
セスインタフェース回路403を介して、送信起動用レ
ジスタ(図示せず)に書き込まれたアドレスをもとにロ
ーカルメモリ304から読み出された転送制御情報70
0は、メモリアクセスインタフェース回路403、線4
11S、データ転送インタフェース回路404、線41
2S、コマンド受信部405を介してコマンド処理部4
06に伝達され、メッセージ生成部407に伝達され
る。
【0066】図5において、メッセージ生成部407
は、転送制御情報700内の送信データアドレス20
3、送信フラグアドレスフィールド204の値、転送デ
ータ長205、モードビット202をそれぞれレジスタ
501、502、503、506にセットする。その他
の情報は図示しないレジスタに保持される。レジスタ5
06内のモードビットは今の場合には1である。レジス
タ506内のモードビットが1であるため、アンドゲー
ト507がONになり、レジスタ505内のMPI付加
情報サイズを出力する。加算器508は、レジスタ50
3内の転送データ長とアンドゲート507から出力され
たMPI付加情報を足しあわせ、ローカルメモリ701
から読み出すべきデータの総量を出力する。比較回路5
10がレジスタ504に保持された、読み出し済みデー
タの総量がレジスタ503内の転送データ長よりも小さ
いと判断した場合には、ローカルメモリ701内の、レ
ジスタ501に保持された送信データアドレスの記憶位
置からユーザデータ713を読み出すために、コマンド
送信部411にローカルメモリ読み出し要求を伝達す
る。このユーザデータは、コマンド送信部411からス
トレージコントローラ303内のメモリアクセスインタ
フェース回路403を介してローカルメモリ304から
読み出される。読み出されたデータは、ストレージコン
トローラ303内のメモリアクセスインタフェース回路
403、データ転送インタフェース回路404およびコ
マンド受信部405を介してコマンド処理部406に伝
達され、線418Sを介してメッセージ生成部407に
伝達される。
【0067】メッセージ生成部407では、比較回路5
10が、レジスタ504内の読み出し済みのデータの量
が、レジスタ503内の転送データ長より大きいが、
(転送データ長+レジスタ505内のMPI付加情報サ
イズ)以下であると判断したときには、メモリ読み出し
要求発行部511は、ローカルメモリ701内の、レジ
スタ502に保持された送信フラグアドレスを有する記
憶位置からMPI付加情報714を読み出すためのロー
カルメモリ読み出し要求をコマンド送信部411に伝達
する。この読み出し要求は、コマンド送信部411から
ストレージコントローラ303内の、データ転送インタ
フェース回路404およびメモリアクセスインタフェー
ス回路403を介してローカルメモリ304に送られ、
MPI付加情報714がそこから読み出される。読み出
されたMPI付加情報714は、ストレージコントロー
ラ303内のメモリアクセスインタフェース回路40
3、データ転送インタフェース回路404およびコマン
ド受信部405を介してコマンド処理部406に伝達さ
れ、線418Sを介してメッセージ生成部407に伝達
される。
【0068】メッセージ生成部407では、メッセージ
組み立て部513内のセレクタ514は、モードビット
が1であることから、ローカルメモリ304から読み出
された転送制御情報700内の送信データアドレス、送
信フラグアドレス以外の部分をレジスタ515内のヘッ
ダ部の格納する。同様に、ユーザデータ713およびM
PI付加情報714をレジスタ515のデータ部に格納
する。
【0069】比較回路610が、読み出したユーザデー
タの総量が、転送データ長とMPI付加情報サイズの和
に等しくなったことを検出したとき、メモリ書き込み要
求発行部512は、送信完了フラグを書き込むことを要
求するローカルメモリ書込み要求をコマンド送信部41
1に伝達する。このコマンドは、加算器509により与
えられる、レジスタ602内の送信フラグアドレスフィ
ールドに保持されたMPI付加情報の先頭アドレスと、
レジスタ505内のMPI付加情報サイズとの和に等し
いアドレスにこのフラグを書き込むことを要求する。送
信完了フラグ715は、コマンド送信部411からスト
レージコントローラ303内のメモリアクセスインタフ
ェース回路403を介してローカルメモリ304に書き
込まれる。本実施の形態では、メッセージに含まれるべ
きユーザデータとMPI付加情報の読み出しが完了した
時点で、メッセージの送信が完了したと見なして、送信
完了フラグ715を書き込む。しかし、このメッセージ
が実際に相互結合ネットワーク105に送信された時点
でこのフラグを書き込むようにしてもよい。
【0070】こうして、レジスタ515内にユーザデー
タとそれに関連するMPI付加情報を含む一つのメッセ
ージ705が生成される。このメッセージ705には、
転送制御情報700に含まれていたのと同じ転送先プロ
セッサ番号716、モードビット717、転送データ長
718、受信データアドレス719、受信フラグアドレ
ス720、その他の制御情報208をそのまま含み、転
送制御情報700に含まれていた送信データアドレス2
03と送信フラグアドレス204に代えて、ユーザデー
タ726、付加情報727を含むことになる。送信デー
タアドレスメッセージ生成部407はそのメッセージ7
05をメッセージ送信部408に送信する。メッセージ
生成部407は、メッセージ705の生成に使用される
上記3つの情報をメッセージ送信部408へ送出し終る
と、メッセージ送信部408はレジスタ504と506
をリセットする。メッセージ送信部408はそのメッセ
ージ705を相互結合ネットワーク105に送出する。
相互結合ネットワーク105はそのメッセージ内の転送
先プロセッサ番号201により指定されるプロセッサに
そのメッセージを転送する。
【0071】次に受信処理について説明する。相互結合
ネットワーク105から転送されたメッセージ705
は、まずメッセージ受信部409で受け取られ、メッセ
ージ分解部410に転送される。メッセージ分解部41
0は、メッセージヘッダ内の受信データアドレス71
9、受信フラグアドレス720、転送データ長718、
モードビット717をそれぞれレジスタ601、60
2、603、606(図6)に書き込む。レジスタ60
4はあらかじめ0にリセットされ、レジスタ605には
あらかじめMPI付加情報サイズがセットされている。
メッセージ分解部410では、メモリ書き込み要求発行
部611は、受信されたユーザデータをヘッダ内の受信
データアドレス719が示すローカルメモリ領域に書き
込むためのローカルメモリアクセス要求を生成し、線4
23Sを介してコマンド送信部411に伝達する。受信
されたユーザデータは、メッセージヘッダ内の受信デー
タアドレス719に従って、ストレージコントローラ3
03内のメモリアクセスインタフェース回路403を介
して、ローカルメモリ304の通信領域704内の領域
721に書き込まれる。レジスタ606内のモードビッ
トは1であるため、アンドゲート607がONになり、
レジスタ605内のMPI付加情報サイズを加算器60
8に供給する。加算器608では、レジスタ603内の
転送データ長とアンドゲート607から与えられるMP
I付加情報サイズを足しあわせ、ローカルメモリに書込
むべきデータの総量を得る。レジスタ604内の受信デ
ータ量は、メッセージ受信部409が相互結合ネットワ
ーク105からメッセージ内のデータの異なる部分を受
信するごとに更新される。
【0072】メッセージ分解部410では、ユーザデー
タの異なる部分がメッセージ受信部409により受信さ
れるごとに、比較回路610が、レジスタ604内の受
信されたデータの総量がレジスタ603内の転送データ
長よりも小さいか否かを判断し、前者が後者より小さい
と判断したときには、メモリ書き込み要求発行部611
は、レジスタ601に保持された受信データアドレスに
したがって受信されたデータを受信側のローカルメモリ
702に書き込むことを要求するコマンド送信部411
にローカルメモリ書込み要求を伝達する。
【0073】その後比較回路610が、レジスタ604
内の、受信されたデータの総量がレジスタ603内の転
送データ長よりも大きいが、転送データ長とレジスタ6
05内のMPI付加情報サイズの和以下と判断したなら
ば、メモリ書き込み要求発行部611は、レジスタ60
2に保持された受信フラグアドレスフィールドの値のア
ドレスに、受信されたMPI付加情報を書き込むことを
要求するローカルメモリ書込み要求を伝達する。
【0074】加算器609は、レジスタ602内の受信
フラグアドレスフィールドの値とアンドゲート607か
ら与えられるMPI付加情報サイズを加算し、受信完了
フラグを書き込むべきメモリアドレスを決定する。比較
回路610が、レジスタ604内の受信データ数が、加
算器608より与えられる、転送データ長+MPI付加
情報サイズに等しくなったことを検出すると、メモリ書
き込み要求発行部611は、加算器609により与えら
れるアドレスに受信完了フラグを書き込むことを要求す
るローカルメモリ書き込み要求をコマンド送信部411
に伝達する。その結果、受信完了フラグ723は、コマ
ンド送信部411から、ストレージコントローラ303
内のメモリアクセスインタフェース回路403を介して
ローカルメモリ304に書き込まれる。こうして、デー
タ受信処理が完了する。また、受信の完了でもってデー
タ転送処理が終了する。
【0075】なお、受信されたデータおよび付加情報
は、以下のようにして受信側の要素プロセッサ702で
使用される。受信側のユーザプロセスが、他の要素プロ
セッサから送信されたデータの受信を要求するコマン
ド、例えば、MPI_recvを発行する。このコマン
ドは、受信すべきユーザデータを指定するアドレスと、
そのデータの最大長、およびMPIライブラリにより定
められた付加情報とからなる引数を指定する。この付加
情報は、送信元ユーザプロセスの識別子その他の情報か
らなる。このコマンドで指定される上記アドレスは、受
信側のユーザプロセスに割り当てられたアドレス空間に
属する仮想アドレスである。受信側のMPIライブラリ
は、この受信コマンドの引数で指定されるユーザデータ
がローカルメモリ704に書き込み済みであるか否か
を、ローカルメモリ704に書き込まれたユーザデータ
721、付加情報722、受信完了フラグ723に基づ
いて判別する。もし、この要求されたデータがローカル
メモリ704に書き込み済みであるときには、受信側の
MPIライブラリは、受信側のユーザプロセスに受信完
了を通知する。この要求されたデータがローカルメモリ
704に書き込み済みでないときには、MPIライブラ
リは、上記判別が成功するまでその判別を繰り返す。
【0076】なお、受信側のユーザプロセスが指定した
仮想アドレスを有するデータ領域が、ローカルメモリ7
04に常駐していない場合には、受信側のMPIライブ
ラリは、上記通知を行う前に、受信されたユーザデータ
721を、ユーザプロセスが指定するアドレスに割り当
てられたローカルメモリ領域にコピーする。もし、受信
側のユーザプロセスが指定した仮想アドレスを有するデ
ータ領域が、ローカルメモリ704に常駐している場合
には、このコピーは不要である。
【0077】受信側のユーザプロセスは、この受信完了
の通知を受けると、受信データを読みだす命令を実行す
る。したがって、この受信側でのユーザデータの受信判
別処理では、ユーザデータ721と付加情報722が書
き込み済みであるか否かを検出するのに、共通の受信完
了フラグ723を使用するところが従来と異なる。
【0078】以上は、ユーザプロセスがデータの送信要
求コマンドをMPIライブラリに対して発行した場合で
ある。本実施の形態では、他のユーザプロセスは、PU
T/GETライブラリに対してデータ送信要求を発行す
ることもできるようになっている。この場合には、この
データ送信要求コマンドは、送信すべきユーザデータを
示す仮想アドレスと、データ長を指定する。送信側のM
PIライブラリは、このコマンドに応答して、先に述べ
たと同じようにして、転送制御情報700を生成する。
但し、この情報の中のモードビット202の値は0であ
る。さらに、送信フラグアドレスフィールド204は、
送信完了フラグの書き込み領域715のアドレスを指定
する。受信フラグアドレスフィールド723についても
同じである。上記データ送信要求コマンドの場合には、
付加情報記憶領域714,722は不要である。
【0079】転送制御情報700内のモードビット20
2が0である場合、転送制御情報700内のモードビッ
ト202が1である場合と比べると、メッセージ生成部
407およびメッセージ分解部410の動作が異なる。
すなわち、レジスタ506内のモードビットが0である
ため、加算器508の出力は、レジスタ503内の転送
データ長に等しく、加算器509の出力は、レジスタ5
02内の送信完了フラグアドレスに等しい。したがっ
て、メッセージ生成部407では、比較回路510が、
レジスタ504内の読み出し済みのデータの総量がアン
ドゲート507より与えられる、レジスタ503内の転
送データ長に等しくなったことを検出したときに、メモ
リ読み出し要求発行部511は、ローカルメモリ701
からの送信すべきデータの読み出しを終了する。この読
み出されたデータを含むメッセージがすべて相互結合ネ
ットワーク105へ送出されると、メッセージ生成部4
07内のメモ書き込み要求発行部512は、加算器50
9より与えられる、レジスタ502内の送信フラグアド
レスに示されるローカルメモリ領域に送信完了フラグを
書き込むことを要求する書き込み要求をコマンド送信部
411に伝達する。
【0080】受信側の要素プロセッサでは、相互結合ネ
ットワーク105から転送されたメッセージ内のヘッダ
内のモードビット717は0であるため、レジスタ60
6(図6)には0がセットされる。レジスタ606内の
モードビットが0であるため、加算器608の出力はレ
ジスタ603内の転送データ長に等しく、加算器609
の出力は、レジスタ602にセットされる受信フラグア
ドレスに等しい。したがって、比較回路610が、レジ
スタ604内の受信済みのデータの総量が加算器608
から出力される、転送データ長に等しくなったことを検
出するまで、メモリ書き込み要求発行部611は、受信
データのローカルメモリへの書き込みを要求する書き込
み要求を発行する。すべての受信データがローカルメモ
リに書き込まれた後、メモリ書き込み要求発行部611
は加算器609が出力する、レジスタ602内の受信フ
ラグアドレスに従ってローカルメモリ304に受信完了
フラグを書き込むための書き込み要求を発行する。こう
して、MPIライブラリが要求したデータ転送が終了す
る。
【0081】なお、比較のために、従来のPUT処理で
は、MPI_sendに示すように、送信側のPUT/
GETライブラリは、ユーザデータとそれに対する付加
情報をそれぞれ転送するための転送制御情報A、B(8
00、801)を作成し、通信領域802内にユーザデ
ータとそれに対する送信完了フラグA、付加情報とそれ
に対する送信完了フラグBを記憶するように構成され、
送信側のネットワークインタフェース回路はこえらの転
送制御情報に基づいて、二つのメッセージA、B(80
4、805)を送信する。受信側のネットワークインタ
フェース回路は、通信領域803内にユーザデータおよ
びそれに対する受信完了フラグ、付加情報とそれに対す
る受信完了フラグを書き込むように構成される。なお、
転送制御情報A、Bには、本実施の形態で言うモードビ
ットが存在しない。
【0082】これに対して、本実施の形態では、ユーザ
データおよびその付加情報という異なる2つのデータを
ローカルメモリ間直接転送にしたがって1回のメッセー
ジ転送で行なえる。したがって、2回のメッセージ転送
が必要であった従来よりも転送レイテンシおよびローカ
ルメモリアクセス回数を削減して並列処理効率を向上で
きる。さらに、MPIライブラリを介さない従来のメモ
リ間直接転送も実行できる。
【0083】さらに、送信側のネットワークインタフェ
ース回路は、送信完了フラグアドレスを付加情報と送信
完了を示す制御情報の書き込みの両方に使用しているの
で、PUT/GETライブラリがネットワークインタフ
ェース回路に対して指定すべき情報量が少なくて済む。
また、受信側においても、ネットワークインタフェース
回路は、受信完了アドレスを、付加情報と受信完了を示
す制御情報の書き込みの両方に使用しているので、PU
Tメッセージに含まれる情報量が少なくて済み、それだ
けネットワークの混雑を防ぐことができ、さらに、メッ
セージの、送信元の要素プロセッサでの送信時間、ネッ
トワーク上の転送時間および送信先の要素プロセッサに
おける受信時間が短くでき、全体としてメッセージの転
送時間が短くなる。
【0084】以上のように、従来の方式では、異なる2
種類のデータ送信処理を行う場合、ネットワークインタ
フェース回路305がローカルメモリを6回アクセス
(転送制御情報の読み出し×2と転送データの読み出し
×2とフラグの書き込み×2)し、受信処理の場合も送
信と同様に、ネットワークインタフェース回路305が
ローカルメモリを4回アクセス(転送データの書き込み
×2とフラグの書き込み×2)することになり、本実施
の形態に比べて処理オーバーヘッドが大きい。本実施の
形態では、転送制御情報にモードビットを持つことで、
転送制御情報の読み出し回数、およびフラグのローカル
メモリへの書き込み回数を送信側4回、受信側3回に削
減してローカルメモリアクセスに関わる処理オーバヘッ
ドを小さくできる。また、従来は2回にわけて転送して
いたメッセージを1回で転送できるため、データ転送の
レイテンシを削減できる。
【0085】以上ではMPIライブラリを介したPUT
処理について説明したが、他の通信として、送信元の要
素プロセッサが宛先の要素プロセッサのローカルメモリ
に格納されているユーザデータを取ってくるGET処理
がある。本実施の形態は、MPIライブラリを介したG
ET処理にも同様に適用できる。すなわち、MPIライ
ブラリとPUT/GET処理を併用して、ユーザデータ
とそれに対する付加情報を同時に一つのメッセージでG
ET(転送)できる。
【0086】まず、要求元のユーザプロセスは、GET
要求コマンドをMPIライブラリに対して発行する。こ
のコマンドは、要求するデータのアドレスとデータ長お
よびMPIライブラリが定めた付加情報等からなる点
で、先に説明した送信要求コマンドと同様の引数を指定
する。このコマンドを受けて、MPIライブラリとPU
T/GETライブラリとネットワークインタフェース回
路は、PUT動作の場合と同様にしてGET要求メッセ
ージを宛先要素プロセッサに対して転送する。このメッ
セージには、PUTのときのメッセージにおける受信デ
ータアドレス、受信完了フラグアドレスの代わりに、G
ETすべきデータに対する送信データアドレスおよび送
信完了フラグが含まれ、ユーザデータと付加情報は含ま
れない。このメッセージが従来のGET要求メッセージ
と異なる点は、モードビットを有することである。
【0087】宛先プロセッサは、GET要求メッセージ
に含まれたデータアドレスで指定されるローカルメモリ
領域からユーザデータを読み出し、送信完了フラグアド
レスで指定されるローカルメモリ領域から付加情報を読
み出し、送信元プロセッサにそのユーザデータと付加情
報を含むGETメッセージを送り返す。このメッセージ
は、受信データアドレスと受信完了フラグも含む。宛先
プロセッサではそのメッセージを全て相互結合ネットワ
ークに送出した後、送信完了フラグをローカルメモリ内
の、上記付加情報の記憶領域の次のアドレス位置に書き
込む。
【0088】送信元要素プロセッサは、GETメッセー
ジを受信し、メッセージ内の受信データアドレスに従っ
てローカルメモリにそのメッセージ内のデータを書き込
み、そのメッセージ内の受信完了フラグアドレスに従っ
て、メッセージ内の付加情報をローカルメモリに書き込
む。これらのユーザデータと付加情報をすべて受信した
後に受信完了フラグをローカルメモリに書き込む。
【0089】PUT処理と同様に、GET処理でも、転
送制御情報の読み出し回数およびフラグのローカルメモ
リへの書き込み回数を削減してローカルメモリアクセス
に関わる処理オーバヘッドを小さくできる。また、従来
はユーザデータとそれに対する付加情報とを2回にわけ
て転送していたが、本実施の形態では、一つのGETメ
ッセージでこれらの二つのデータを転送できるため、デ
ータ転送のレイテンシを削減できる。
【0090】<変形例>本発明は以上の実施の形態に限
定されるのではなく、以下に示す変形例を含むいろいろ
の実施の形態により実施可能である。たとえば、ローカ
ルメモリ304に格納する転送制御情報に拡張サイズフ
ィールドを設ける。拡張サイズフィールドには、拡張し
たいフラグ領域のサイズをセットする。モードビットが
セットされた場合、送信処理において、転送制御情報を
含むヘッダと、送信データアドレスに従ってローカルメ
モリ領域からよみだされる転送データ長分のデータと、
送信フラグアドレスに従ってローカルメモリ領域から読
み出される拡張サイズフィールドに設定されたサイズ分
の別のデータからメッセージを生成し、相互結合ネット
ワーク105に送出する。受信処理においては、メッセ
ージをヘッダ部とデータ部に分解し、ヘッダ内の転送制
御情報に含まれる受信データアドレスで示されるローカ
ルメモリ領域にデータを転送データ長分書き込み、さら
に、ヘッダ内の転送制御情報に含まれる受信フラグアド
レスで示されるローカルメモリ領域に対し、別のデータ
を拡張サイズフィールドに設定されたサイズ分書き込
む。モードビットがセットされていない場合、拡張サイ
ズフィールドにセットされた値は無視される。
【0091】
【発明の効果】本実施の形態によれば、MPIのような
メッセージパッシングライブラリを介してメモリ間直接
転送を行う場合におけるデータ転送処理をより高速に行
うことができる。
【図面の簡単な説明】
【図1】本実施の形態が対象とする並列計算機の概略構
成を示す図である。
【図2】本実施の形態で使用する転送制御情報の例を示
す図である。
【図3】図1の装置に使用する要素プロセッサの概略構
成を示す図である。
【図4】図3の要素プロセッサに使用するストレージコ
ントローラおよびネットワークインタフェース回路の構
成を示す図である。
【図5】図4のネットワークインタフェース回路内のメ
ッセージ生成部の内部構成を示す図である。
【図6】図4のネットワークインタフェース回路内のメ
ッセージ分解部の内部構成を示す図である。
【図7】本実施の形態におけるデータ転送処理の概要を
説明する図である。
【図8】従来例のデータ転送処理の概要を説明する図で
ある。
【符号の説明】 105…相互結合ネットワーク

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】相互結合ネットワークで接続された複数の
    要素プロセッサを有し、各要素プロセッサ内には、ユー
    ザプロセスと交信するメッセージパッシングライブラリ
    と、そのメッセージパッシングライブラリと交信するメ
    モリ間直接転送ライブラリとが組み込まれ、各要素プロ
    セッサは、プロセッサと、メモリと、上記相互結合ネッ
    トワークとの間でメッセージを交換するためのネットワ
    ークインタフェース回路とを有する計算機システムにお
    いて、 送信側の要素プロセッサで走行中のユーザプロセスによ
    り、その要素プロセッサ内のメッセージパッシングライ
    ブラリに対して発行されたデータ送信要求が要求する送
    信データと、そのデータ送信要求が要求する、メッセー
    ジパッシングライブラリにより定められた、受信側の要
    素プロセッサに送信されるべき付加情報との送信を、そ
    のメッセージパッシングライブラリからその要素プロセ
    ッサ内のメモリ間直接転送ライブラリに対して要求し、 そのメモリ間直接転送ライブラリにより、上記要求され
    た送信データおよび付加情報と、それらの受信の完了を
    示す制御情報を書き込むべき領域を指定するための、受
    信側の要素プロセッサがあらかじめ決定した受信側アド
    レス情報とを含むメッセージの送信を上記ネットワーク
    インタフェース回路に対して要求し、 上記ネットワークインタフェース回路により、上記メッ
    セージを組立て、受信側の要素プロセッサに宛てて上記
    相互結合ネットワークに送信し、 上記メッセージの送信後に、そのメモリ間直接転送ライ
    ブラリが決定したアドレスを有する、上記メモリ内の記
    憶位置に送信完了を示す制御情報を上記ネットワークイ
    ンタフェース回路により書き込むステップからなるデー
    タ転送方法。
  2. 【請求項2】受信側の要素プロセッサ内のネットワーク
    インタフェース回路により、上記メッセージ内の送信デ
    ータと付加情報を、受信側の要素プロセッサのメモリ内
    の、上記受信側アドレス情報により定まる領域に書き込
    み、 上記書き込みの終了後に、受信側の要素プロセッサ内の
    ネットワークインタフェース回路により、受信完了を示
    す制御情報を、上記メモリ内の、上記受信側アドレス情
    報により定まる領域に書き込むステップをさらに有する
    請求項1記載のデータ転送方法。
  3. 【請求項3】上記データ送信要求は、上記送信データに
    関する第1のアドレス情報とデータ長情報と上記付加情
    報を指定し、 上記メッセージの送信を要求するステップは、 送信側の要素プロセッサ内の上記メモリ間直接転送ライ
    ブラリにより、上記要求された付加情報を、そのメモリ
    間直接転送ライブラリが付加情報と送信完了を示す制御
    情報を書き込むための領域として決定した、上記メモリ
    内の領域に書き込み、 そのメモリ間直接転送ライブラリにより、上記第1のア
    ドレス情報、上記送信データ長情報、上記付加情報が書
    き込まれた上記領域を指定する第2のアドレス情報およ
    び上記受信側アドレス情報とを指定するメッセージ送信
    要求を送信側の要素プロセッサ内の上記ネットワークイ
    ンタフェース回路に対して発行するステップからなり、 上記メッセージを送信するステップは、 上記ネットワークインタフェース回路により、そのメッ
    セージ送信要求で指定された上記第1のアドレス情報と
    上記データ長情報との組および上記第2のアドレス情報
    にそれぞれ基づいて、上記送信データおよび上記付加情
    報を送信側の要素プロセッサのメモリより読み出し、 上記ネットワークインタフェース回路により、そのメッ
    セージ送信要求が指定した上記受信側アドレス情報と上
    記データ長情報、上記読み出された送信データおよび付
    加情報を含むメッセージを生成し、上記ネットワークを
    介して受信側の要素プロセッサに送信するステップを有
    し、 上記送信完了を示す制御情報を書き込むステップは、上
    記第2のアドレス情報に基づいて、上記付加情報が記憶
    された領域と異なる記憶位置に送信完了を示す制御情報
    を書き込むステップを有する請求項1記載のデータ送信
    方法。
  4. 【請求項4】受信側の要素プロセッサ内のネットワーク
    インタフェース回路により、上記メッセージ内の送信デ
    ータと付加情報を、受信側の要素プロセッサのメモリ内
    の、上記受信側アドレス情報により定まる領域に書き込
    み、 上記書き込みの終了後に、受信側の要素プロセッサ内の
    ネットワークインタフェース回路により、受信完了を示
    す制御情報を、上記メモリ内の、上記受信側アドレス情
    報により定まる領域に書き込むステップをさらに有し、 上記受信側のアドレス情報は、上記メッセージ内の送信
    データを書き込むべき第3のアドレス情報と受信完了を
    示す制御情報を書き込む第4のアドレス情報からなり、 上記メッセージ内の送信データと付加情報を書き込むス
    テップは、上記第3、第4のアドレス情報に基づいて、
    上記送信データおよび上記付加情報を、受信側の要素プ
    ロセッサのメモリに書き込むステップからなり、 上記受信完了を示す制御情報を書き込むステップは、上
    記第4のアドレス情報に基づいて、受信側の要素プロセ
    ッサのメモリ内の、上記付加情報が書き込まれた領域と
    異なる領域に書き込むステップからなる請求項3記載の
    データ転送方法。
  5. 【請求項5】送信側の要素プロセッサで走行中の他のユ
    ーザプロセスによりその要素プロセッサ内の上記メモリ
    間直接転送ライブラリに対して発行された他のデータ送
    信要求が要求する送信データと、受信側の要素プロセッ
    サがあらかじめ決定した、受信データと受信完了を示す
    制御情報を書き込むべき領域を指定するための受信側ア
    ドレス情報とを含むメッセージの送信を、そのメモリ間
    直接転送ライブラリにより、送信側の要素プロセッサの
    上記ネットワークインタフェース回路に対して要求し、 上記メッセージを上記ネットワークインタフェース回路
    により組立て、受信側の要素プロセッサに宛てて上記相
    互結合ネットワークに送信し、 上記メッセージの送信後に、そのメモリ間直接転送ライ
    ブラリが決定したアドレスを有する、上記メモリ内の記
    憶位置に送信完了を示す制御情報を上記ネットワークイ
    ンタフェース回路により書き込み、 受信側の要素プロセッサ内のネットワークインタフェー
    ス回路により、上記メッセージ内の送信データを、受信
    側の要素プロセッサのメモリ内の、上記受信側アドレス
    情報により定まる領域に書き込み、 上記書き込みの終了後に、受信側の要素プロセッサ内の
    ネットワークインタフェース回路により、受信完了を示
    す制御情報を、上記メモリ内の、上記受信側アドレス情
    報により定まる領域に書き込むステップをさらに有する
    請求項2記載のデータ転送方法。
  6. 【請求項6】相互結合ネットワークで接続された複数の
    要素プロセッサを有し、 各要素プロセッサは、プロセッサと、メモリと、上記相
    互結合ネットワークとの間でメッセージを交換するため
    のネットワークインタフェース回路とを有し、上記ネッ
    トワークインタフェース回路は、 転送すべきメッセージに関する情報として上記プロセッ
    サにより供給される、第1のアドレス情報とデータ長情
    報との組および第2のアドレス情報とに基づいて、それ
    ぞれ送信されるべき第1のデータおよびそのデータとと
    もに送信されるべき第2のデータを上記メモリから読み
    出すメモリアクセス回路と、 読みだされた第1,第2のデータと、転送すべきメッセ
    ージに関する他の情報として上記プロセッサにより供給
    される第3,第4のアドレス情報を含む一つのメッセー
    ジを生成し、上記相互結合ネットワークに送信する回路
    とを有し、 上記メモリアクセス回路は、上記メッセージの送信後
    に、上記第2のアドレス情報に基づいて、上記送信完了
    を示す制御情報を上記メモリ内の、上記第2のデータが
    記憶されている記憶位置と異なる記憶位置に書き込み、 該第1のアドレス情報は、上記第1のデータを保持す
    る、上記メモリ内の領域のアドレスを指示し、上記デー
    タ長情報は、上記第1のデータの長さを指定し、該第2
    のアドレス情報は、上記第2のデータを保持し、かつ、
    該第1のデータの送信完了を示す制御情報をさらに保持
    すべき、上記メモリ内の領域のアドレスを指示し、該第
    3のアドレス情報は、第1のデータを書き込むべき、受
    信側の要素プロセッサのメモリ内の領域のアドレスを指
    示し、該第4のアドレス情報は、上記第1のデータおよ
    び該第1のデータの受信完了を示す制御情報とを格納す
    るための、受信側の要素プロセッサのメモリ内の領域の
    アドレスを指示する計算機システム。
  7. 【請求項7】上記ネットワークインタフェース回路は、
    他の要素プロセッサから送信されたメッセージを上記相
    互結合ネットワークから受信する回路をさらに有し、 上記メモリアクセス回路は、受信されたメッセージ内の
    上記第3のアドレス情報に基づいて、受信されたメッセ
    ージ内の上記第1のデータを上記メモリに書き込み、受
    信されたメッセージ内の上記第4のアドレス情報に基づ
    いて、受信されたメッセージ内の上記第2のデータを上
    記メモリに書き込み、上記受信されたメッセージ内の上
    記第1,第2のデータの書き込みの終了後に、上記第4
    のアドレス情報に基づいて、上記第1のデータの受信完
    了を示す制御情報を、上記メモリ内の、受信された上記
    第2のデータが記憶されている記憶位置と異なる記憶位
    置に書き込む回路を有する請求項6記載の計算機システ
    ム。
  8. 【請求項8】上記転送制御情報はモードビットをさらに
    有し、 上記メモリアクセス回路は、上記モードビットが第1の
    値の時に、上記第2のデータの読み出しを実行し、上記
    モードビットが第2の値の時に、上記第2のデータの読
    み出しを実行せず、 上記メッセージ送信回路は、上記モードビットが第1の
    値の時に、上記第2のデータを含むメッセージを生成
    し、上記モードビットが第2の値の時に、上記第2のデ
    ータを含まないメッセージを生成し、 上記メモリアクセス回路は、上記モードビットが第1の
    値の時には、上記メッセージの送信後に、上記第2のア
    ドレス情報に基づいて、上記送信完了を示す制御情報
    を、上記メモリ内の、上記第2のデータが記憶されてい
    る記憶位置と異なる記憶位置に書き込み、上記モードビ
    ットが第2の値の時には、上記メッセージの送信後に、
    上記送信完了を示す制御情報を、上記第2のアドレス情
    報に依存する、上記メモリ内の記憶位置に書き込む回路
    を有する請求項6記載の計算機システム。
  9. 【請求項9】上記メッセージ送信が生成するメッセージ
    は、上記モードビットを含み、 上記ネットワークインタフェース回路は、他の要素プロ
    セッサから送信されたメッセージを上記相互結合ネット
    ワークから受信する回路をさらに有し、 上記メモリアクセス回路は、 受信されたメッセージ内のモードビットが第1の値の時
    には、受信されたメッセージ内の上記第3のアドレス情
    報に基づいて、受信されたメッセージ内の上記第1のデ
    ータを上記メモリに書き込み、上記受信されたメッセー
    ジ内の上記第4のアドレス情報に基づいて、受信された
    メッセージ内の上記第2のデータを上記メモリに書き込
    み、上記受信されたメッセージ内の上記第1,第2のデ
    ータの書き込みの終了後に、上記第4のアドレス情報に
    基づいて、上記第1のデータの受信完了を示す制御情報
    を、上記メモリ内の、受信された上記第2のデータが記
    憶されている記憶位置と異なる記憶位置に書き込み、 受信されたメッセージ内のモードビットが第2の値の時
    には、受信されたメッセージ内の上記第1のデータを、
    受信されたメッセージ内の上記第3のアドレス情報に基
    づいて、上記メモリ内の記憶位置に書き込み、上記受信
    されたメッセージ内の上記第1のデータの書き込みの終
    了後に、上記第1のデータの受信完了を示す制御情報
    を、上記第4のアドレス情報に依存する、上記メモリ内
    の記憶位置に書き込む回路を有する請求項8記載の計算
    機システム。
JP29059797A 1997-10-23 1997-10-23 データ転送方法およびそれに適した計算機システム Expired - Fee Related JP3601955B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP29059797A JP3601955B2 (ja) 1997-10-23 1997-10-23 データ転送方法およびそれに適した計算機システム
US09/177,496 US6338095B1 (en) 1997-10-23 1998-10-23 Data transfer method for reduced number of messages by message passing library and direct intermemory data transfer library and computer system suitable therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP29059797A JP3601955B2 (ja) 1997-10-23 1997-10-23 データ転送方法およびそれに適した計算機システム

Publications (2)

Publication Number Publication Date
JPH11126196A true JPH11126196A (ja) 1999-05-11
JP3601955B2 JP3601955B2 (ja) 2004-12-15

Family

ID=17758075

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29059797A Expired - Fee Related JP3601955B2 (ja) 1997-10-23 1997-10-23 データ転送方法およびそれに適した計算機システム

Country Status (2)

Country Link
US (1) US6338095B1 (ja)
JP (1) JP3601955B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008059282A (ja) * 2006-08-31 2008-03-13 Olympus Corp 分散処理システム、分散処理方法及びプログラム
JP2017016693A (ja) * 2006-06-13 2017-01-19 タンネンバウム、ズヴィ アプリケーションプログラムのためのクラスタコンピューティングのサポート

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4182575B2 (ja) * 1998-11-09 2008-11-19 ソニー株式会社 記憶装置および画像データ処理装置
US6389494B1 (en) * 1998-12-30 2002-05-14 Emc Corporation System for interfacing a data storage system to a host utilizing a plurality of busses for carrying end-user data and a separate bus for carrying interface state data
US7073020B1 (en) 1999-01-04 2006-07-04 Emc Corporation Method for message transfer in computer storage system
US7117275B1 (en) 1999-01-04 2006-10-03 Emc Corporation Data storage system having separate data transfer section and message network
US6691190B1 (en) * 2000-01-24 2004-02-10 Agere Systems Inc. Inter-DSP data exchange in a multiple DSP environment
US7007194B1 (en) 2000-06-29 2006-02-28 Emc Corporation Data storage system having point-to-point configuration
US7010575B1 (en) 2000-03-31 2006-03-07 Emc Corporation Data storage system having separate data transfer section and message network having bus arbitration
US6993621B1 (en) 2000-03-31 2006-01-31 Emc Corporation Data storage system having separate data transfer section and message network with plural directors on a common printed circuit board and redundant switching networks
US7003601B1 (en) 2000-03-31 2006-02-21 Emc Corporation Data storage system having separate data transfer section and message network with plural directions on a common printed circuit board
US6779071B1 (en) 2000-04-28 2004-08-17 Emc Corporation Data storage system having separate data transfer section and message network with status register
US6742017B1 (en) * 2000-06-29 2004-05-25 Emc Corporation Data storage system having separate data transfer section and message network with pointer or counters
US8176298B2 (en) 2002-10-08 2012-05-08 Netlogic Microsystems, Inc. Multi-core multi-threaded processing systems with instruction reordering in an in-order pipeline
US7984268B2 (en) 2002-10-08 2011-07-19 Netlogic Microsystems, Inc. Advanced processor scheduling in a multithreaded system
US8015567B2 (en) * 2002-10-08 2011-09-06 Netlogic Microsystems, Inc. Advanced processor with mechanism for packet distribution at high line rate
US7627721B2 (en) 2002-10-08 2009-12-01 Rmi Corporation Advanced processor with cache coherency
US8478811B2 (en) 2002-10-08 2013-07-02 Netlogic Microsystems, Inc. Advanced processor with credit based scheme for optimal packet flow in a multi-processor system on a chip
US7334086B2 (en) * 2002-10-08 2008-02-19 Rmi Corporation Advanced processor with system on a chip interconnect technology
US7961723B2 (en) 2002-10-08 2011-06-14 Netlogic Microsystems, Inc. Advanced processor with mechanism for enforcing ordering between information sent on two independent networks
US20050033889A1 (en) * 2002-10-08 2005-02-10 Hass David T. Advanced processor with interrupt delivery mechanism for multi-threaded multi-CPU system on a chip
US8037224B2 (en) * 2002-10-08 2011-10-11 Netlogic Microsystems, Inc. Delegating network processor operations to star topology serial bus interfaces
US9088474B2 (en) * 2002-10-08 2015-07-21 Broadcom Corporation Advanced processor with interfacing messaging network to a CPU
US7346757B2 (en) 2002-10-08 2008-03-18 Rmi Corporation Advanced processor translation lookaside buffer management in a multithreaded system
US7924828B2 (en) 2002-10-08 2011-04-12 Netlogic Microsystems, Inc. Advanced processor with mechanism for fast packet queuing operations
US20050038946A1 (en) * 2003-08-12 2005-02-17 Tadpole Computer, Inc. System and method using a high speed interface in a system having co-processors
US20050078708A1 (en) * 2003-10-14 2005-04-14 International Business Machines Corporation Formatting packet headers in a communications adapter
AU2005302145A1 (en) * 2004-10-29 2006-05-11 Interactive Supercomputing, Inc. Methods and apparatus for parallel execution of a process
US7694107B2 (en) * 2005-08-18 2010-04-06 Hewlett-Packard Development Company, L.P. Dynamic performance ratio proportionate distribution of threads with evenly divided workload by homogeneous algorithm to heterogeneous computing units
US7694023B1 (en) 2006-01-24 2010-04-06 Lockheed Martin Corporation Routing a processor communication
US7606961B2 (en) * 2006-06-28 2009-10-20 Kabushiki Kaisha Toshiba Computer system and data pre-fetching method
US9596324B2 (en) 2008-02-08 2017-03-14 Broadcom Corporation System and method for parsing and allocating a plurality of packets to processor core threads
CN102651690B (zh) 2011-02-28 2015-11-25 国际商业机器公司 对共享内存进行控制的方法和装置
US10268639B2 (en) * 2013-03-15 2019-04-23 Inpixon Joining large database tables
US10635724B2 (en) * 2015-01-30 2020-04-28 International Business Machines Corporation Analysis of data utilization
US9811403B1 (en) * 2016-06-22 2017-11-07 Intel Corporation Method, apparatus and system for performing matching operations in a computing system
US10963183B2 (en) * 2017-03-20 2021-03-30 Intel Corporation Technologies for fine-grained completion tracking of memory buffer accesses
US10671460B2 (en) * 2018-02-05 2020-06-02 Micron Technology, Inc. Memory access communications through message passing interface implemented in memory systems
CN112185435A (zh) * 2019-07-03 2021-01-05 旺宏电子股份有限公司 电子装置、存储器装置及其存储数据的读取方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3003418B2 (ja) * 1992-09-25 2000-01-31 株式会社日立製作所 プロセッサ間データ通信方法
JPH07262152A (ja) * 1994-03-24 1995-10-13 Hitachi Ltd コンピュータシステム
JP3290302B2 (ja) * 1994-06-30 2002-06-10 富士通株式会社 データの交換処理方法及び装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017016693A (ja) * 2006-06-13 2017-01-19 タンネンバウム、ズヴィ アプリケーションプログラムのためのクラスタコンピューティングのサポート
US10333768B2 (en) 2006-06-13 2019-06-25 Advanced Cluster Systems, Inc. Cluster computing
JP2020009450A (ja) * 2006-06-13 2020-01-16 タンネンバウム、ズヴィ アプリケーションプログラムのためのクラスタコンピューティングのサポート
US11128519B2 (en) 2006-06-13 2021-09-21 Advanced Cluster Systems, Inc. Cluster computing
US11563621B2 (en) 2006-06-13 2023-01-24 Advanced Cluster Systems, Inc. Cluster computing
US11570034B2 (en) 2006-06-13 2023-01-31 Advanced Cluster Systems, Inc. Cluster computing
US11811582B2 (en) 2006-06-13 2023-11-07 Advanced Cluster Systems, Inc. Cluster computing
JP2008059282A (ja) * 2006-08-31 2008-03-13 Olympus Corp 分散処理システム、分散処理方法及びプログラム

Also Published As

Publication number Publication date
US6338095B1 (en) 2002-01-08
JP3601955B2 (ja) 2004-12-15

Similar Documents

Publication Publication Date Title
JP3601955B2 (ja) データ転送方法およびそれに適した計算機システム
JP3344345B2 (ja) 共有メモリ型ベクトル処理システムとその制御方法及びベクトル処理の制御プログラムを格納する記憶媒体
JPH07210520A (ja) メモリアクセス機構
JP2001142842A (ja) Dmaハンドシェークプロトコル
JPH01156845A (ja) メモリ・システム
US6105080A (en) Host adapter DMA controller with automated host reply capability
JP3169624B2 (ja) プロセッサ間通信方法およびそのための並列プロセッサ
JP3375649B2 (ja) 並列計算機
JP3252464B2 (ja) 仮想計算機システム
JPH10143486A (ja) 並列計算機におけるデータ送受信方法
JPH10207814A (ja) コンピュータ・システム及びバス操作方法
JP2785738B2 (ja) 分散メモリ型マルチプロセッサ情報処理システム
JP2003330871A (ja) データ転送装置
CN117908959A (zh) 用于执行原子操作的方法及其相关产品
JP3207329B2 (ja) バスコントローラおよびバス転送方法
JP3615306B2 (ja) 記憶装置アクセスシステム
KR100198802B1 (ko) 노드간 엑센트네트를 통한 메시지 전송 제어 방법
JPH03252848A (ja) スプリットバスにおける可変バス幅指定方式及び可変バス幅情報受信方式
JPH06119259A (ja) 情報表現形式変換装置
JPH11327798A (ja) データ転送制御装置
JPH0816539A (ja) データ転送方法、それを実現する分散メモリ型並列計算機および要素プロセッサ
JPH05324571A (ja) システムバス接続ユニット
JP2002091520A (ja) プログラマブルコントローラ及びメモリモジュール
WO1996031824A1 (en) Operating system
JPH064464A (ja) 周辺装置アクセス装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040330

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20040412

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: 20040914

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040921

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081001

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091001

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101001

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111001

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121001

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131001

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees