(57)【要約】  【課題】各々複数のＣＰＵおよびメモリを有する複数のクラスタから構成される大規模コンピュータシステム等におけるクラスタ間のデータ一括転送に伴う競合調停時間を低減して効率化、即ち高速化を図るデータ一括転送方法および装置を提供する。  【解決手段】各々複数のＣＰＵ１２とメモリ１４を有する複数のノードよりなり、これら複数のノードの複数のメモリ１４を共通のＲＣＵ（ノード間転送制御ユニット）２０を介してクラスタ間スイッチに接続する。ＲＣＵ２０は、ＣＰＵからの転送指示情報通知部２１、データロード部２２、データストア部２３、アドレス変換部２４、データ蓄積バッファ２５、アドレス指示情報バッファ２６、クラスタ間データ送出部２７およびクラスタ間データ受信部２８を備える。【選択図】    図１
2005285042.tif 000002
【特許請求の範囲】
【請求項１】
各々複数のＣＰＵおよびメモリを有する複数のノード（コンピュータ）により構成され、前記ノードの前記メモリのデータを一括転送するデータ一括転送方法において、
前記複数のノードの前記全てのメモリのデータをデータストア部の連続したアドレスに一括ストアして一元管理することを特徴するデータ一括転送方法。
【請求項２】
前記ノードを跨るディスタンスが前記ノード内のメモリサイズと定義してディスタンスアクセスを行うことを特徴とする請求項１に記載のデータ一括転送方法。
【請求項３】
前記各ノードのデータは、アドレス変換テーブルに基づいて前記データストア部に一括ストアすることを特徴とする請求項１又は２に記載のデータ一括転送方法。
【請求項４】
各々複数のＣＰＵと該複数のＣＰＵに共通のメモリを有する複数のノード（コンピュータ）を備え、該複数のノードの前記メモリのデータを一括して転送するデータ一括転送装置において、
前記複数のノードの全てのメモリに共通接続された単一のノード間転送制御ユニット（ＲＣＵ）を備え、該ＲＣＵは、前記各ノードのメモリのデータをストアするデータストア部および該データストア部のアドレスを決定するアドレス変換部を備え、前記複数のノードの前記メモリの全てのデータを一括転送することを特徴とするデータ一括転送装置。
【請求項５】
前記アドレス変換部は、前記ＣＰＵからの転送指示情報通知部に接続され、それぞれ転送元ノードとアドレスおよび転送先ノードとアドレスが供給されるデータロード部およびデータストア部を備えることを特徴とする請求項４に記載のデータ一括転送装置。
【請求項６】
前記複数のノードを纏めたクラスタを複数設け、該各クラスタの前記ＲＣＵに接続されるクラスタ間スイッチを介して前記複数のクラスタが相互接続されることを特徴とする請求項４又は５に記載のデータ一括転送装置。
【請求項７】
前記ＲＣＵの前記データストア部およびデータロード部は、それぞれデータ蓄積バッファとクラスタ間データ受信部およびデータ蓄積バッファとクラスタ間データ送信部を介して前記クラスタ間スイッチに接続されることを特徴とする請求項６に記載のデータ一括転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ一括転送方法および装置に関し、特に複数のコンピュータ（ノード）を接続して高速データ転送を行いながら計算すると共に１つの命令でノード間の大容量転送を実行可能にする、計算システム又はディスタンス転送によるクラスタ内データを一括転送するデータ一括転送方法および装置に関する。
【背景技術】
【０００２】
複数のノードに跨る大型計算システムにおいて、処理速度の高速化等のために、並列処理が行われる。ノード間に跨る平行実行プログラムは、主に各ノードの計算フェーズと、ノード間で同期転送する転送フェーズに処理が別れる。急速に向上する計算性能に対して、この転送フェーズの転送時間を軽減することが重要である。
【０００３】
特に、科学計算分野（例えば、各種のシミュレーション）においては、主として、
（１）各ノードでの計算に先立ち、あるノードで大配列データを構築し、これを分割して書くノードへ割り当ててデータを各ノードに転送する作業、また最後に逆に転送しデータを統合する作業および
（２）計算フェーズの間の転送フェーズでの転送（隣接する計算領域の境界のデータの加算演算等をするため、各ノード間で転送しあう）
の２種類の転送が発生する。そこで、これらの転送時間を軽減することが求められる。
【０００４】
斯かる技術分野における従来技術は、種々の技術文献に開示されている。各々ローカルエリアネットワークに接続された複数のＣＰＵ（演算処理装置）、データ転送装置および共有メモリを備える複数のクラスタをクラスタ間ネットワークで相互接続するデータ処理装置およびそのデータ処理方法が開示されている（例えば、特許文献１参照。）。また、二次元配列データ内のサブアレイデータ全体をアクセスする場合に、サブアレイデータの要素数に拘らず、総転送用素数をサブアレイデータの要素数で割った分だけデータ転送命令を発行することを不要とし、データ転送時の転送効率を改善する情報処理装置および情報処理システムが開示されている（例えば、特許文献２参照。）。
【０００５】
【特許文献１】特開２０００−３２２３９２号公報（第４頁、第１図）
【特許文献２】特開平１１−１３４３１０号公報（第２−３頁、第２図）
【０００６】
上述の如き従来技術を、図８を参照して説明する。従来技術のデータ（又は情報）処理装置１００は、図８の左上に示す如く、それぞれ複数のＣＰＵ（図中ではＣＰと略記する）１１０、これら複数のＣＰＵ１１０に共通のメモリ１２０およびＲＣＵ（ノード間転送制御ユニット）１３０を含むノード０乃至ノードnの複数のノードを有する。そして、これら複数のノードを、ノード間スイッチ１４０により切替選択するように構成され、ＲＣＵ１３０単位でノード間転送を実施している。この際の、ＲＣＵ１３０から見たメモリ１２０のメモリアドレスのイメージを、図８中に左下に図示している。
【０００７】
次に、図９乃至図１１を参照して従来のディスタンス転送を説明する。
図９は  ディスタンス転送のイメージ図であり、メモリーメモリ間転送時に各要素のアドレスをルールに従って変更して転送する。図中、ＢＬはローカルノード内主記憶転送開始アドレスを、ＢＬはローカルノード内主記憶転送開始アドレスを、ＢＲはリモートノード内主記憶転送開始アドレスを、ＦＬ１は第１ディスタンス転送要素数、ＦＬ２は第２ディスタンス転送ブロック数、ＴＬは総転送要素数、ＤＬ１はローカルノード第１ディスタンス、ＤＬ２はローカルノード第２ディスタンス、ＤＬ３はローカルノード第３ディスタンス、ＤＲ１はリモートノード第１ディスタンス、ＤＲ２はリモートノード第２ディスタンス、ＤＲ３はリモートノード第３ディスタンスをそれぞれ示す。
【０００８】
図１０はディスタンス転送の仕組みを説明する原理図であり、連続するアドレスに格納された配列に対して演算を実施し、規則的に点在（アドレスが飛ぶ）する配列を、別の規則に並べ直して転送先に格納するものである。転送元メモリ内の状態と転送先ノードのメモリ内の状態が示されている。ここで、配列の開始アドレスを０ｘ８００００として表示している。
【０００９】
図１１はディスタンス転送の利用方法の説明図である。図９において、各情報が転送指示情報である。このうちローカルノード側の情報が転送元配置情報であり、リモートノード側情報が転送先情報である。図１０は、配列の構成とメモリ内の配置イメージを示す。大配列を分割して各ノードで演算するためには、配列中を点在するデータを一定のルールを持ってかき集めて転送し、１つの配列として集めて計算を行う。また、図１１に示す如く、上述した分割・転送（図１１（Ａ）参照）のみならず、逆方向の転送・統合（図１１（Ｂ）参照）、圧縮・拡大（図（Ｃ１１）参照）および転置転送（変形）（図１１（Ｄ）参照）等の種々の利用が行われる。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
図８に示す従来例において、ＣＰＵ１１０からもＲＣＵ１３０からもメモリ１２０には自ノードのメモリ１２０にしかアクセスすることができない。この条件の中で、並列実行プログラムの転送では、ノードごとの転送の際に競合調停が入ることで、転送時間に該当ノードへの転送待ち時間が加わることになる。特に、複数ノードへの転送を行うノードは、初めに競合調停で転送待ちになってしまうと、後続の転送も一緒に転送待ちとすることになり（所謂ヘッドブロッキング現象）、この競合調停時間が増加するという課題を有する。
【００１１】
本発明は、従来技術の上述の如き課題に鑑みなされたものであり、クラスタ内の一括転送の機構を持つことにより、並列実行プログラム等でもこの競合調停時間を１回以下に低減し、転送時間を短縮する計算システム、即ちデータ一括転送方法および装置を提供することを主目的とする。また、ディスタンス転送の原理を変更することなく、ソフトウェア制御として実現され、新たな複雑な制御を行うことなく効率的且つ高速でプログラム実行可能にするデータ一括転送方法および装置を提供することを付加的な目的とする。
【課題を解決するための手段】
【００１２】
前述の課題を解決するため、本発明によるデータ一括転送方法および装置は次のような特徴的な構成を採用している。
【００１３】
（１）各々複数のＣＰＵおよびメモリを有する複数のノード（コンピュータ）により構成され、前記ノードの前記メモリのデータを一括転送するデータ一括転送方法において、
前記複数のノードの前記全てのメモリのデータをデータストア部の連続したアドレスに一括ストアして一元管理するデータ一括転送方法。
【００１４】
（２）前記ノードを跨るディスタンスが前記ノード内のメモリサイズと定義してディスタンスアクセスを行う上記（１）のデータ一括転送方法。
【００１５】
（３）前記各ノードのデータは、アドレス変換テーブルに基づいて前記データストア部に一括ストアする上記（１）又は（２）のデータ一括転送方法。
【００１６】
（４）各々複数のＣＰＵと該複数のＣＰＵに共通のメモリを有する複数のノード（コンピュータ）を備え、該複数のノードの前記メモリのデータを一括して転送するデータ一括転送装置において、
前記複数のノードの全てのメモリに共通接続された単一のノード間転送制御ユニット（ＲＣＵ）を備え、該ＲＣＵは、前記各ノードのメモリのデータをストアするデータストア部および該データストア部のアドレスを決定するアドレス変換部を備え、前記複数のノードの前記メモリの全てのデータを一括転送するデータ一括転送装置。
【００１７】
（５）前記アドレス変換部は、前記ＣＰＵからの転送指示情報通知部に接続され、それぞれ転送元ノードとアドレスおよび転送先ノードとアドレスが供給されるデータロード部およびデータストア部を備える上記（４）のデータ一括転送装置。
【００１８】
（６）前記複数のノードを纏めたクラスタを複数設け、該各クラスタの前記ＲＣＵに接続されるクラスタ間スイッチを介して前記複数のクラスタが相互接続される上記（４）又は（５）のデータ一括転送装置。
【００１９】
（７）前記ＲＣＵの前記データストア部およびデータロード部は、それぞれデータ蓄積バッファとクラスタ間データ受信部およびデータ蓄積バッファとクラスタ間データ送信部を介して前記クラスタ間スイッチに接続される上記（６）のデータ一括転送装置。
【発明の効果】
【００２０】
本発明のデータ一括転送方法および装置によると、次の如き実用上の顕著な効果が得られる。即ち、アドレス変換手段を備えて一括転送することにより、クラスタ内又は指定クラスタのノード転送毎に発生する転送競合調停時間を、クラスタ内全ノード転送で１回に時間短縮可能である。また、ソフトウェア命令のインタフェースを変更せずに実現するので、ソフトウェア制御を複雑化せず、転送手続きのソフトウェア制御が複雑化することなくハードウェアの本来の性能を引き出すことが可能である。
【実施例１】
【００２１】
以下、本発明によるデータ一括転送方法および装置の好適実施例の構成および動作を、添付図面を参照して詳細に説明する。
【００２２】
先ず、本発明は、以下の説明から明らかな如く、次に３点に集約できる。第１に、従来は、ノード（コンピュータ）１つ毎に保有するノード間転送制御ユニット（以下、ＲＣＵという)を複数のノードに対して１つ持つ（以下、その固まりをクラスタという）構成にし、且つそのＲＣＵにおいて、個々のクラスタ内ノードのメモリ領域を連続アドレスとして、ＲＣＵからアクセスできるためのノード間クラスタ内のアドレス変換機構を有する。尚、本明細書中で『クラスタ』とは、各クラスタ内のノードのメモリは、ノード内の各ＣＰＵからはアクセス可能であるが、他のノードのＣＰＵからはＲＣＵを介してノード間転送を行い、自ノード内のメモリ上にデータを転送しないとデータを参照不可能な構成とし、各ノードが他のノードのメモリをダイレクトに参照（および更新）することが不可なノードを複数構成させたものを意味する。
【００２３】
第２に、ある１ノードの１ＣＰＵから転送命令（１命令）が発行されたときに、上述したアドレス変換機構を介し、ＣＰＵの指定するアドレスを変換し、各メモリからデータをロードして連続したデータとしてＲＣＵ内に取り込むデータロード機構を有する。そして、このデータロード機能により１カ所に集められたデータを、連続したデータとして一括してＣＰＵの転送指示に従ってアドレスを変換し、各ノードに分かれている各メモリへデータをストア（蓄積）するデータストア機構を有する。
【００２４】
更に第３に、ＣＰＵからの命令である転送指示をディスタンス命令（メモリ上に規則的に点在する配列データをそのアドレス飛びルール〔転送元配列の配置ルールと転送先配列の配置ルール〕で指定することにより、一括ノード間転送する命令）で発行することである。これにより、クラスタ内のノード間に跨るアドレスの飛び幅を新たなディスタンスとして加えた単一ノード間ディスタンス転送のソフトウェア制御でありながら、クラスタ内の全ノード間の転送を一括転送可能にする。
【００２５】
図１は、本発明のデータ一括転送装置の好適実施例の基本構成を示すブロック図である。図１に示すデータ一括転送装置１０は、それぞれ複数のＣＰＵ１２を含む複数のノート（ノード０〜ノードｎ）、ノード毎に設けられ、ＣＰＵに接続されたメモリ１４およびこれら複数のノードの全てのメモリ１４に接続されたＲＣＵ２０により構成される。
【００２６】
そして、ＲＣＵ２０は、図１の右側に示す如く、ＣＰＵ１２からの転送指示情報通知部２１、データロード部２２、データストア部２３、アドレス変換部２４およびデータ蓄積バッファ２５を含んでいる。ここで、ＣＰＵからの転送指示情報通知部２１、データロード部２２およびデータストア部２３は、バスを介して相互接続されている。アドレス変換部２４は、ＣＰＵからの転送指示情報通知部２１から出力を得て、データロード部２２およびデータストア部２３に出力する。また、データ蓄積バッファ２５は、データロード部２２およびデータストア部２３間に接続されている。
【００２７】
このように、データ一括転送装置１０は、複数のノードに接続されたＲＣＵ２０を備え、このＲＣＵ２０は、アドレス変換部２４を有し、複数のノードに接続された複数のＣＰＵ１２のうちの１ノードに内在するＣＰＵから転送命令（メモリ上に規則的に点在する配列データを、そのアドレス飛びルール〔転送元配列の配置ルールと転送先配列の配置ルール〕で指定することにより、一括ノード間転送する命令）による転送指示情報を受け取る。ノード間転送制御ユニット２０の内部では、ＣＰＵ１２からの転送指示情報（転送元配置情報および転送先配置情報が含まれる）により、転送元データを複数のノードから並行して取り込み、またこれを各ノードのメモリ１４に配置する。
【００２８】
次に、上述したデータ一括転送装置１０を構成する各部の主要機能を説明する。アドレス変換部２４は、ＣＰＵ１２からの転送指示情報の転送元情報に示されたアドレス開始位置およびアドレスの飛び幅等のデータの点在するルールに基づき、これを連続したデータの塊に分解する。更に、実際にどのデータをどのノードのどのアドレスから持ってくるのか示したアドレス変換テーブル（後述する図５参照）により一意に変換し、これを通知する。また、同様にＣＰＵ１２からの転送指示情報の転送先情報に示されたアドレス開始位置およびアドレスの飛び幅等のデータの点在するルールに基づき、実際にどのデータをどのノードのどのアドレスへ書き込むか一意に変換する機能を有する。これにより、アドレス変換部２４は、実際にメモリアクセスするノードおよびそのメモリアドレス（一塊のブロック毎）を特定し、この情報をデータロード部２２に伝える。
【００２９】
データロード部２２は、指定されたノードの指定されたメモリアドレス（開始アドレス）にアクセスし、ブロック毎のデータを一括ロードする。データロード部２２は、ロードする際にアドレス変換部２４で変換されたアドレスの順序を保持し、各ノードから非同期に返却されるデータを、要求したアドレスの順序が保障されるようにデータ蓄積バッファ２５への格納を指示する。具体的には、順序のためのシーケンスＩＤを有し、これをデータ蓄積バッファ２５の書き込みアドレスにする等して順序を保障する。データストア部２３は、データ蓄積バッファ２５からデータを取り出し、通知された転送先配置情報を元にアドレス変換部２４が変換した転送先ノードおよび転送先アドレスに従い、指定するノードの指定するアドレス（開始アドレス）にブロック毎のデータを一括ストアする。
【００３０】
このようにして、本発明のデータ一括転送方法および装置では、ディスタンス命令１命令で複数のノードに点在する配列をクラスタ毎に処理するアドレス変換部２４、データロード部２２およびデータストア部２３を有している。従って、ノード単位の転送に発生する競合調停が、クラスタ単位の１回になるため競合調停時間が減少でき且つディスタンス転送命令に基づき転送を実現することでＳＷ制御を複雑にすることなく一括転送が実現できる。
【００３１】
次に、図２は、図１の具体例としてのノード０〜ノード３の合計４個のノードを束ねたクラスタ構成のブロック図が示されている。図２に示す具体例において、ＲＣＵ（ノード間転送制御ユニット）２０は、複数のノード（ノード０〜ノード３）と接続される。各ノードは、メモリ１４および１以上のＣＰＵ１２で構成される。ＲＣＵ２０は、複数のノードとの接続で各メモリ１４とのデータの送受を行う。また、各ノードは、ＣＰＵ１２からメモリ１４を経路としてＲＣＵ２０に情報の通知を行う。ここで、ＲＣＵ２０は、ＣＰＵからの転送指示情報通知部２１、データロード部２２、データストア部２３、アドレス変換部２４ａ、２４ｂ、データ蓄積バッファ２５ａ、２５ｂ、アドレス指示情報バッファ２６ａ、２６ｂ、クラスタ間データ送出部２７およびクラスタ間データ受信部２８を含んでいる。
【００３２】
複数のノードのうちの１ノードに内在するＣＰＵ１２が、転送命令（メモリ上に規則的に点在する配列データをそのアドレス飛びルールを指定することにより、一括転送命令（図３参照））による転送指示情報を受け取る。ＣＰＵ１２からの転送指示情報通知部２１は、転送指示を複数個保持（キューイング）しながら一番古い指示情報から随時、転送元データ配置情報をアドレス変換部２４に、転送先データ配置情報をアドレス指示情報バッファ２６に通知する。
【００３３】
アドレス変換部２４は、予め内部にデータをロードしておき、これを保持するアドレス変換テーブル（図５参照）を持ち、ＣＰＵ１２からの転送指示情報通知部２１から通知された転送元データ配置情報をノードとデータの固まり（ブロックという）毎のアドレスに分解し、これをデータロード部２２に通知する。データロード部２２は、ブロック毎に各ノードのメモリ１４内の指定アドレスよりデータをロードし、データをアドレス変換部２４からアドレスを通知された順序になるようにデータ蓄積バッファ２５に格納する。
【００３４】
クラスタ間データ送出部２７は、クラスタ間のデータ転送の競合調停を行い、データ転送の制御を行う。データの転送が可能な場合には、アドレス指示情報バッファ２６とデータ蓄積バッファ２５から各情報およびデータを取り出し、これを転送する。クラスタ内への自クラスタから自クラスタへ転送の場合には、クラスタ間データ受信部２８にデータを送信する。クラスタ間データ受信部２８は、アドレス指示情報バッファ２６とデータ蓄積バッファ２５に転送先データ配置情報とデータを格納する。アドレス指示情報バッファ２６は、アドレス変換部２４に転送先データ配置情報を通知する。アドレス変換部２４ｂは、予め内部にデータをロードしておき、これを保持するアドレス変換テーブル（図５参照）を有し、アドレス指示情報バッファ２６から通知された転送先データ配置情報をノードとデータの固まり（ブロック）毎のアドレスに分解し、これをデータストア部２３に通知する。データストア部２３は、ブロック毎に各ノードのメモリ１４内の指定アドレスにデータをストアする。
【００３５】
以上、本発明の実施例の構成および各部の機能を詳述したが、図２のＣＰＵ１２、メモリ１４およびクラスタ間スイッチ３０は、当業者に周知であり、また本発明とは直接関係しないので、その詳細構成は省略する。尚、上述の実施例では、クラスタは単一であってもよく、複数個存在してもよい。また、ＣＰＵ１２の数も特に制限はない。また、アドレス変換テーブル（図６）は、ページサイズ６４ＭＢ、主記憶１ＴＢ、クラスタ内ノード数４の場合の具体例であるが、これらは１例に過ぎず、これらの数に特に制限はない。主記憶のページ管理については、当業者に周知であり、また本発明とは直接関係しないので、その詳細な構成は省略する。
【００３６】
次に、本発明による新ディスタンス転送の原理を、図３を参照して説明する。従来のディスタンス転送において、ノード内メモリのサイズを１つのディスタンスとして定義して、大きな１枚のメモリの中の一部分が１ノードに割り当てられるイメージで指定ディスタンス毎（即ち、各ノードへの同時アクセス）に一括してデータを転送する。図３では、ノードを跨るディスタンス＝ノード内メモリサイズ（１ＴＢと想定）と定義してディスタンスアクセスを行っている。本例では、複数ノードに分散したデータを１ノードに統合している。ここでは、ＡｓｕｂとＡは簡単のため一次元配列として説明している。
【００３７】
図５は、図２中のアドレス変換部２４の説明図である。アドレス変換部２４は、図５（Ａ）に示す如く、複数の加算器等を含む従来構成のディスタンスアドレス分解回路２４１およびその出力側に設けられるアドレス変換テーブル２４２により構成される。図５（Ｂ）は、このアドレス変換テーブル２４２の具体例の説明である。
【００３８】
次に、図４におけるデータ転送について、図２のシステムの動作を、図６（Ａ）、（Ｂ）に示すタイミングチャートを参照して説明する。先ず、ノードのシステム立ち上げ時に、アドレス変換部２４にアドレステーブルの書き込みを行う。これは、ＲＣＵ２０の一部へのデータ書き込みという形でＣＰＵ１２等から値を設定する。このようにして、予め実際の転送に先立って設定される。その後、（１）のタイミングで、ＣＰＵ１２が、ディスタンス転送命令を発行する。この転送命令は、転送指示情報をメモリ１４に対して通知する。メモリ１４は、これをＲＣＵ２０に受け渡す。次に、（２）のタイミングで、転送指示情報がＲＣＵ２０内のＣＰＵからの転送指示情報通知部２１に到着する。図４では、Ａｓｕｂ＿ｎが隣接する配列Ａのサブ空間（Ａｓｕｂ＿ｎ+１等）のＡｓｕｂ＿ｎに隣接する配列部分を１〜３命令（３次元配列ならば３命令）で一括して隣接ノードに転送することができる。
【００３９】
ＣＰＵからの転送指示情報通知部２１では、転送指示を複数個保持（キューイング）しながら一番古い指示情報から随時、転送指示情報内の転送元データ配置情報をアドレス変換部２４に、転送先データ配置情報をアドレス指示情報バッファ２６に、（３）のタイミングで通知する。アドレス変換部２４は、ＣＰＵからの転送指示情報通知部２１から通知された転送元データ配置情報を、ディスタンス転送でのアドレス分解回路を動作させることでデータの固まり（ブロック）毎のアドレスに分解し(タイミング４〜７)、これをアドレス変換テーブルで変換することにより、ＲＣＵ２０のポート番号と送出するメモリアクセスリクエストのメモリアドレスおよびデータ長に変換する。変換後は、これをデータロード部２２に通知する（タイミング８〜１１）。
【００４０】
データロード部２２は、ブロック毎に指定されたポートに出力する（タイミング１２〜１５）。これら各タイミングで戻ってきたデータ（各ノードのメモリ内指定アドレスからのデータ）をそれぞれロードする（タイミング１６〜１９)。データをアドレス変換部２４からアドレスを通知された順序になるようにデータ蓄積バッファ２５ａに格納する（タイミング２０）。データが全て来たか否かを、データ蓄積バッファ２５はロードしたデータの個数により判別する。
【００４１】
次に、データ蓄積バッファ２５aにデータが全て揃うと、クラスタ間データ送出部２７に転送可能通知が発行される（タイミング２１）。これにより、クラスタ間データ送出部２７は、クラスタ間のデータ転送の競合調停を行い、データ転送の制御を行う（タイミング２２）。データの転送が可能な場合には、アドレス指示情報バッファ２６aおよびデータ蓄積バッファ２５aから各情報およびデータを取り出し、これを転送する（タイミング２３）。クラスタ内への自クラスタから自クラスタへ転送の場合には、クラスタ間データ受信部２８にデータを送信する（タイミング２４）。
【００４２】
クラスタ間データ受信部２８は、アドレス指示情報バッファ２６ｂおよびデータ蓄積バッファ２５ｂに転送先データ配置情報およびデータを格納する（タイミング２５）。アドレス指示情報バッファ２６ｂは、アドレス変換部２４ｂに転送先データ配置情報を通知する（タイミング２６）。アドレス変換部２４ｂは、アドレス指示情報バッファ２６ｂから通知された転送先データ配置情報をディスタンス転送でのアドレス分解回路を動作させることでデータの固まり（ブロック）毎のアドレスに分解する（タイミング２７〜３０）。そして、これをアドレス変換テーブルで変換することにより、ＲＣＵ２０のポート番号と送出するメモリアクセスリクエストのメモリアドレスおよびデータ長に変換する。この変換後は、これをデータストア部２３に通知する。データストア部２３は、ブロック毎に各ノードのメモリ１４内の指定アドレスにデータをそれぞれストアする（タイミング３１〜３４）。これにより、図４に示す如く、各ノードから転送データが複数ノードから複数ノードに一括して転送される。
【実施例２】
【００４３】
次に、図７を参照して本発明の第２実施例について説明する。この基本構成は、図２を参照して上述した通りであるが、ディスタンス命令の通知について更に工夫している。実施例として、今まで説明した事例は基本的に転送元クラスタから転送先クラスタ（自クラスタを含む）にデータを転送する形をとり、転送元クラスタのＣＰＵ１２からの通知で転送を開始する。図７において、ＣＰＵ１２からの転送指示情報通知部２１は、別クラスタのＣＰＵからのリクエストを通知するリクエスト転送手段とリクエスト受信手段を持ち、リクエスト受信手段が転送指示情報を受け取ったとき、これをＣＰＵ１２からの転送指示情報通知部２１に通知する。以後、ＣＰＵ１２からの転送指示情報通知部２１からの処理は、上述した第１実施例と同様である。
【００４４】
このように、第２実施例では、他クラスタに対してもクラスタ内の一括転送が可能なため、複数のクラスタで構成されるシステムについて、動作を統括する１ノードの１ＣＰＵから、全てのクラスタで並列してクラスタ内の一括転送処理を行うことにより、実行時間を更に短縮することが可能である。
【００４５】
図８に、本発明によるデータ一括転送装置１０および従来のデータ一括転送装置１００を、ＲＣＵ側から見たメモリアドレスのイメージと共に対比して示す。図８に右側に示す本発明によるデータ一括転送装置１０によると、各々複数のＣＰＵ１２とメモリ１４を含む複数のノードの複数のメモリ１４に共通のＲＣＵ２０を使用し、このＲＣＵ２０からクラスタ間スイッチ３０を介して他のクラスタと接続される。従って、クラスタ内をグローバルアドレス化してＲＣＵ２０から見たメモリアドレスは、点在するアドレスのデータを一定のルールでかき集めて１回の一括転送が可能であることが分かる。
【００４６】
以上、本発明の好適実施例の構成および動作を詳述した。しかし、斯かる実施例は、本発明の単なる例示に過ぎず、何ら本発明を限定するものではないことに留意されたい。本発明の要旨を逸脱することなく、特定用途に応じて種々の変形変更が可能であること、当業者には容易に理解できよう。
【図面の簡単な説明】
【００４７】
【図１】本発明によるデータ一括転送装置の第１実施例の基本構成を示すブロック図である。
【図２】図１に示すデータ一括転送装置の具体例を示すブロック図である。
【図３】本発明による新ディスタンス転送を説明する概念図である。
【図４】本発明による転送フェーズでの隣接領域のデータ転送の説明図である。
【図５Ａ】図２中のアドレス変換部の１例の内部構成を示すブロック図である。
【図５Ｂ】図２中のドレス変換テーブルの説明図である。
【図６Ａ】本発明の動作を説明するためのタイミングチャートである。
【図６Ｂ】本発明の動作を説明するためのタイミングチャートである。
【図７】本発明の第２実施例の説明図である。
【図８】データ一括転送装置の従来例（左側）および本発明（右側）を対比する説明図である。
【図９】従来のディスタンス転送命令の仕様を説明する図である。
【図１０】分割の際のディスタンス転送と演算の仕組みの説明図である。
【図１１】ディスタンス転送の主な利用方法の説明図である。
【符号の説明】
【００４８】
１０  データ一括転送装置
１２  ＣＰＵ
１４  メモリ
２０  ＲＣＵ（ノード間転送制御ユニット）
２１  ＣＰＵからの転送指示情報通知部
２２  データロード部
２３  データストア部
２４  アドレス変換部
２５  データ蓄積バッファ
２６  アドレス指示情報バッファ
２７  クラスタ間データ送出部
２８  クラスタ間データ受信部
３０  クラスタ間スイッチ
【図１】
2005285042.tif 000003
【図２】
2005285042.tif 000004
【図３】
2005285042.tif 000005
【図４】
2005285042.tif 000006
【図５Ａ】
2005285042.tif 000007
【図５Ｂ】
2005285042.tif 000008
【図６Ａ】
2005285042.tif 000009
【図６Ｂ】
2005285042.tif 000010
【図７】
2005285042.tif 000011
【図８】
2005285042.tif 000012
【図９】
2005285042.tif 000013
【図１０】
2005285042.tif 000014
【図１１】
2005285042.tif 000015