(57)【特許請求の範囲】
【請求項１】
仮想記憶方式を採用するＯＳを搭載する２つのコンピュータノードが各ＯＳの管理下にある２つのデータ転送装置を介して互いに接続されたコンピュータノード間データ転送システムで、一方のコンピュータノードのプロセスの仮想記憶空間から他方のコンピュータノードのプロセスの仮想記憶空間にデータを転送するコンピュータノード間データ転送方法において、前記データ転送装置が、コンピュータノードで実行されているプロセスの仮想記憶空間のうちの主記憶からスワップアウトされたページを保持するスワップ領域専用メモリを備え、コンピュータノードのプロセスの仮想記憶空間からデータを送信する際にページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ主記憶のページから、ページがスワップアウトされていれば前記スワップ領域専用メモリのページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記主記憶のページに、ページがスワップアウトされていれば前記スワップ領域専用メモリのページにデータを書き込み受信することを特徴とするコンピュータノード間データ転送方法。
【請求項２】
仮想記憶方式を採用するＯＳを搭載する２つのコンピュータノードが各ＯＳの管理下にある２つのデータ転送装置を介して互いに接続されたコンピュータノード間データ転送システムで、一方のコンピュータノードのプロセスの仮想記憶空間から他方のコンピュータノードのプロセスの仮想記憶空間にデータを転送するコンピュータノード間データ転送方法において、前記データ転送装置が、コンピュータノードで実行されているプロセスの仮想記憶空間のうちの主記憶からスワップアウトされたページを保持するスワップ領域専用メモリ，および主記憶上のページテーブルのキャッシュを保持するアドレス変換テーブルを備え、コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記アドレス変換テーブルを索引し、索引できなかった場合には前記ページテーブルを索引して前記アドレス変換テーブルを変更し、送信データの存在するページがスワップアウトされていなければ主記憶のページから、ページがスワップアウトされていれば前記スワップ領域専用メモリのページからデータを読み出し送信し、データを受信する際に前記アドレス変換テーブルを索引し、索引できなかった場合には前記ページテーブルを索引して前記アドレス変換テーブルを変更し、受信データを格納するページがスワップアウトされていなければ前記主記憶のページに、ページがスワップアウトされていれば前記スワップ領域専用メモリのページにデータを書き込み受信することを特徴とするコンピュータノード間データ転送方法。
【請求項３】
仮想記憶方式を採用するＯＳを搭載する２つのコンピュータノードが各ＯＳの管理下にある２つのデータ転送装置を介して互いに接続されたコンピュータノード間データ転送システムにおいて、コンピュータノードのプロセスの仮想記憶空間を実現するために実装され、主記憶からスワップアウトされたページを保持するとともに、コンピュータノードのＯＳがデータ転送装置に転送を要求することにより主記憶からのスワップアウトおよび主記憶へのスワップイン動作が行われるスワップ領域専用メモリと、ＯＳにより管理され、コンピュータノードのプロセスＩＤおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持するとともに、属性として対象ページがコンピュータノードの主記憶，スワップ領域専用メモリ，スワップインまたはスワップアウト動作中のどの状態にあるかを保持するページテーブルと、自コンピュータノードの主記憶，スワップ領域専用メモリ，および他コンピュータノードのデータ転送装置と接続され、コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記ページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ前記主記憶のページから、ページがスワップアウトされていれば前記スワップ領域専用メモリのページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記主記憶のページに、ページがスワップアウトされていれば前記スワップ領域専用メモリのページにデータを書き込み受信する前記データ転送装置とを有することを特徴とするコンピュータノード間データ転送システム。
【請求項４】
前記データ転送装置が、前記コンピュータノードの主記憶に接続され該主記憶からの送信データの読み出しおよび該主記憶への受信データの書き込みを物理アドレスで行うとともに前記主記憶のページテーブルの索引を行うＤＭＡ手段と、メモリマップドＩＯ等でコンピュータノードに接続されＯＳおよびプロセスからデータ転送装置へのアクセスを提供するスレーブ手段と、前記スワップ領域専用メモリへのデータの書き込みおよび読み出しを物理アドレスで行うメモリ制御手段と、ＯＳに対して割り込みを通知する割り込み手段と、他コンピュータノードのデータ転送装置のデータ受信手段に接続されるデータ送信手段と、他コンピュータノードのデータ転送装置のデータ送信手段に接続されるデータ受信手段と、前記ＤＭＡ手段，前記スレーブ手段，前記メモリ制御手段，前記割り込み手段，前記データ送信手段および前記データ受信手段を制御するデータ転送制御手段とから構成されることを特徴とする請求項３記載のコンピュータノード間データ転送システム。
【請求項５】
前記データ転送装置が、前記コンピュータノードの主記憶に接続され該主記憶からの送信データの読み出しおよび該主記憶への受信データの書き込みを物理アドレスで行うとともに前記主記憶のページテーブルの索引を行うＤＭＡ手段と、メモリマップドＩＯ等でコンピュータノードに接続されＯＳおよびプロセスからデータ転送装置へのアクセスを提供するスレーブ手段と、前記スワップ領域専用メモリへのデータの書き込みおよび読み出しを物理アドレスで行うメモリ制御手段と、ＯＳに対して割り込みを通知する割り込み手段と、他コンピュータノードのデータ転送装置のデータ受信手段に接続されるデータ送信手段と、他コンピュータノードのデータ転送装置のデータ送信手段に接続されるデータ受信手段と、前記主記憶上のページテーブルの一部をキャッシュとしてコンピュータノードのプロセス毎の仮想アドレスと物理アドレスとの対応をページ単位で保持し、データ転送時に各プロセスの仮想記憶空間をアクセスする際に仮想アドレスから物理アドレスへの変換に使用されるとともに属性として対象ページがコンピュータノードの主記憶，スワップ領域専用メモリ，スワップインまたはスワップアウト動作中のどの状態にあるかを保持するアドレス変換テーブルと、前記ＤＭＡ手段，前記スレーブ手段，前記メモリ制御手段，前記割り込み手段，前記データ送信手段，前記データ受信手段および前記アドレス変換テーブルを制御するデータ転送制御手段とから構成されることを特徴とする請求項３記載のコンピュータノード間データ転送システム。
【請求項６】
仮想記憶方式を採用するＯＳを搭載しそれぞれ主記憶を有する２つのコンピュータノードが各ＯＳの管理下にある２つのデータ転送装置を介して互いに接続されたコンピュータノード間データ転送システムにおいて、
主記憶に設けられ、コンピュータノードのプロセスの仮想記憶空間を実現するために実装され、主記憶からスワップアウトされたページを保持するとともに、コンピュータノードのＯＳがデータ転送装置に転送を要求することにより主記憶からのスワップアウトおよび主記憶へのスワップイン動作が行われるスワップ領域と、
ＯＳにより管理され、コンピュータノードのプロセスＩＤおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持するとともに、属性として対象ページがコンピュータノードのスワップ領域を除いた主記憶，スワップ領域，スワップインまたはスワップアウト動作中のどの状態にあるかを保持するページテーブルとを有し、
前記データ転送装置が、前記コンピュータノードの主記憶に接続され該主記憶からの送信データの読み出しおよび該主記憶への受信データの書き込みを物理アドレスで行うとともに前記主記憶のページテーブルの索引を行うＤＭＡ手段と、メモリマップドＩＯ等でコンピュータノードに接続されＯＳおよびプロセスからデータ転送装置へのアクセスを提供するスレーブ手段と、前記スワップ領域へのデータの書き込みおよび読み出しを物理アドレスで行うメモリ制御手段と、ＯＳに対して割り込みを通知する割り込み手段と、他コンピュータノードのデータ転送装置のデータ受信手段に接続されるデータ送信手段と、他コンピュータノードのデータ転送装置のデータ送信手段に接続されるデータ受信手段と、前記ＤＭＡ手段，前記スレーブ手段，前記メモリ制御手段，前記割り込み手段，前記データ送信手段および前記データ受信手段を制御するデータ転送制御手段とを有し、
コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記ページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ前記スワップ領域を除いた主記憶のページから、ページがスワップアウトされていれば前記スワップ領域のページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記スワップ領域を除いた主記憶のページに、ページがスワップアウトされていれば前記スワップ領域のページにデータを書き込み受信することを特徴とするコンピュータノード間データ転送システム。
【請求項７】
仮想記憶方式を採用するＯＳを搭載しそれぞれ主記憶を有する２つのコンピュータノードが各ＯＳの管理下にある２つのデータ転送装置を介して互いに接続されたコンピュータノード間データ転送システムにおいて、
コンピュータノードのプロセスの仮想記憶空間を実現するために実装され、主記憶からスワップアウトされたページを保持するとともに、コンピュータノードのＯＳがデータ転送装置に転送を要求することにより主記憶からのスワップアウトおよび主記憶へのスワップイン動作が行われ前記データ転送装置と接続するスワップ領域専用磁気記憶装置と、
ＯＳにより管理され、コンピュータノードのプロセスＩＤおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持するとともに、属性として対象ページがコンピュータノードの主記憶，スワップ領域専用磁気記憶装置，スワップインまたはスワップアウト動作中のどの状態にあるかを保持するページテーブルとを有し、
前記データ転送装置が、前記コンピュータノードの主記憶に接続され該主記憶からの送信データの読み出しおよび該主記憶への受信データの書き込みを物理アドレスで行うとともに前記主記憶のページテーブルの索引を行うＤＭＡ手段と、メモリマップドＩＯ等でコンピュータノードに接続されＯＳおよびプロセスからデータ転送装置へのアクセスを提供するスレーブ手段と、前記スワップ領域専用磁気記憶装置へのデータの書き込みおよび読み出しを物理アドレスで行うメモリ制御手段と、ＯＳに対して割り込みを通知する割り込み手段と、他コンピュータノードのデータ転送装置のデータ受信手段に接続されるデータ送信手段と、他コンピュータノードのデータ転送装置のデータ送信手段に接続されるデータ受信手段と、前記ＤＭＡ手段，前記スレーブ手段，前記メモリ制御手段，前記割り込み手段，前記データ送信手段および前記データ受信手段を制御するデータ転送制御手段とを有し、
コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記ページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ前記主記憶のページから、ページがスワップアウトされていれば前記スワップ領域専用磁気記憶装置のページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記主記憶のページに、ページがスワップアウトされていれば前記スワップ領域専用磁気記憶装置のページにデータを書き込み受信することを特徴とするコンピュータノード間データ転送システム。
【請求項８】
仮想記憶方式を採用するＯＳを搭載し主記憶を有し、プロセスＩＤおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持するとともに、属性として対象ページがコンピュータノードの主記憶、スワップ領域専用メモリ、スワップインまたはスワップアウト動作中のどの状態にあるかを保持するページテーブルを有するコンピュータノードと、
コンピュータノードのプロセスの仮想記憶空間を実現するために実装され、主記憶からスワップアウトされたページを保持するとともに、コンピュータノードのＯＳが転送を要求することにより主記憶からのスワップアウトおよび主記憶へのスワップイン動作が行われるスワップ領域を有するスワップ領域専用メモリとに接続し、
コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記ページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ前記主記憶のページから、ページがスワップアウトされていれば前記スワップ領域専用メモリのページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記主記憶のページに、ページがスワップアウトされていれば前記スワップ領域専用メモリのページにデータを書き込み受信することを特徴とするデータ転送装置。
【請求項９】
仮想記憶方式を採用するＯＳを搭載し主記憶を有し、プロセスＩＤおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持するとともに、属性として対象ページがコンピュータノードの主記憶、スワップ領域専用メモリ、スワップインまたはスワップアウト動作中のどの状態にあるかを保持するページテーブルを有するコンピュータノードと、
コンピュータノードのプロセスの仮想記憶空間を実現するために実装され、主記憶からスワップアウトされたページを保持するとともに、コンピュータノードのＯＳが転送を要求することにより主記憶からのスワップアウトおよび主記憶へのスワップイン動作が行われるスワップ領域専用メモリとに接続し、
コンピュータノードの主記憶に接続され該主記憶からの送信データの読み出しおよび該主記憶への受信データの書き込みを物理アドレスで行うとともに前記主記憶のページテーブルの索引を行うＤＭＡ手段と、メモリマップドＩＯ等でコンピュータノードに接続されＯＳおよびプロセスからデータ転送装置へのアクセスを提供するスレーブ手段と、スワップ領域専用メモリへのデータの書き込みおよび読み出しを物理アドレスで行うメモリ制御手段と、ＯＳに対して割り込みを通知する割り込み手段と、他コンピュータノードのデータ転送装置のデータ受信手段に接続されるデータ送信手段と、他コンピュータノードのデータ転送装置のデータ送信手段に接続されるデータ受信手段と、前記ＤＭＡ手段，前記スレーブ手段，前記メモリ制御手段，前記割り込み手段，前記データ送信手段および前記データ受信手段を制御するデータ転送制御手段とを有し、
コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記ページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ前記主記憶のページから、ページがスワップアウトされていれば前記スワップ領域専用メモリのページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記主記憶のページに、ページがスワップアウトされていれば前記スワップ領域専用メモリのページにデータを書き込み受信することを特徴とするデータ転送装置。
【請求項１０】
仮想記憶方式を採用するＯＳを搭載し主記憶を有し、プロセスＩＤおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持するとともに、属性として対象ページがコンピュータノードの主記憶、スワップ領域専用メモリ、スワップインまたはスワップアウト動作中のどの状態にあるかを保持するページテーブルを有するコンピュータノードと、
コンピュータノードのプロセスの仮想記憶空間を実現するために実装され、主記憶からスワップアウトされたページを保持するとともに、コンピュータノードのＯＳが転送を要求することにより主記憶からのスワップアウトおよび主記憶へのスワップイン動作が行われるスワップ領域専用メモリとに接続し、
コンピュータノードの主記憶に接続され該主記憶からの送信データの読み出しおよび該主記憶への受信データの書き込みを物理アドレスで行うとともに前記主記憶のページテーブルの索引を行うＤＭＡ手段と、メモリマップドＩＯ等でコンピュータノードに接続されＯＳおよびプロセスからデータ転送装置へのアクセスを提供するスレーブ手段と、スワップ領域専用メモリへのデータの書き込みおよび読み出しを物理アドレスで行うメモリ制御手段と、ＯＳに対して割り込みを通知する割り込み手段と、他コンピュータノードのデータ転送装置のデータ受信手段に接続されるデータ送信手段と、他コンピュータノードのデータ転送装置のデータ送信手段に接続されるデータ受信手段と、前記主記憶上のページテーブルの一部をキャッシュとしてコンピュータノードのプロセス毎の仮想アドレスと物理アドレスとの対応をページ単位で保持し、データ転送時に各プロセスの仮想記憶空間をアクセスする際に仮想アドレスから物理アドレスへの変換に使用されるとともに属性として対象ページがコンピュータノードの主記憶，スワップ領域専用メモリ，スワップインまたはスワップアウト動作中のどの状態にあるかを保持するアドレス変換テーブルと、前記ＤＭＡ手段，前記スレーブ手段，前記メモリ制御手段，前記割り込み手段，前記データ送信手段，前記データ受信手段および前記アドレス変換テーブルを制御するデータ転送制御手段とを有し、
コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記ページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ前記主記憶のページから、ページがスワップアウトされていれば前記スワップ領域専用メモリのページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記主記憶のページに、ページがスワップアウトされていれば前記スワップ領域専用メモリのページにデータを書き込み受信することを特徴とするデータ転送装置。
【請求項１１】
仮想記憶方式を採用するＯＳを搭載し主記憶を有し、プロセスＩＤおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持するとともに、属性として対象ページがコンピュータノードのスワップ領域を除いた主記憶、スワップ領域、スワップインまたはスワップアウト動作中のどの状態にあるかを保持するページテーブルと、
コンピュータノードのプロセスの仮想記憶空間を実現するために実装され、主記憶からスワップアウトされたページを保持するとともに、コンピュータノードのＯＳがデータ転送装置に転送を要求することにより主記憶からのスワップアウトおよび主記憶へのスワップイン動作が行われるスワップ領域を主記憶に設けたコンピュータノードと接続し、
コンピュータノードの主記憶に接続され該主記憶からの送信データの読み出しおよび該主記憶への受信データの書き込みを物理アドレスで行うとともに前記主記憶のページテーブルの索引を行うＤＭＡ手段と、メモリマップドＩＯ等でコンピュータノードに接続されＯＳおよびプロセスからデータ転送装置へのアクセスを提供するスレーブ手段と、前記主記憶上のスワップ領域へのデータの書き込みおよび読み出しを物理アドレスで行うメモリ制御手段と、ＯＳに対して割り込みを通知する割り込み手段と、他コンピュータノードのデータ転送装置のデータ受信手段に接続されるデータ送信手段と、他コンピュータノードのデータ転送装置のデータ送信手段に接続されるデータ受信手段と、前記ＤＭＡ手段，前記スレーブ手段，前記メモリ制御手段，前記割り込み手段，前記データ送信手段および前記データ受信手段を制御するデータ転送制御手段とを有し、
コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記ページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ前記スワップ領域を除いた主記憶のページから、ページがスワップアウトされていれば前記スワップ領域のページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記スワップ領域を除いた主記憶のページに、ページがスワップアウトされていれば前記スワップ領域のページにデータを書き込み受信することを特徴とするデータ転送装置。
【請求項１２】
仮想記憶方式を採用するＯＳを搭載し主記憶を有し、プロセスＩＤおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持するとともに、属性として対象ページがコンピュータノードの主記憶、スワップ領域専用磁気記憶装置、スワップインまたはスワップアウト動作中のどの状態にあるかを保持するページテーブルを有するコンピュータノードと、
コンピュータノードのプロセスの仮想記憶空間を実現するために実装され、主記憶からスワップアウトされたページを保持するとともに、コンピュータノードのＯＳが転送を要求することにより主記憶からのスワップアウトおよび主記憶へのスワップイン動作が行われるスワップ領域専用磁気記憶装置とに接続し、
コンピュータノードの主記憶に接続され該主記憶からの送信データの読み出しおよび該主記憶への受信データの書き込みを物理アドレスで行うとともに前記主記憶のページテーブルの索引を行うＤＭＡ手段と、メモリマップドＩＯ等でコンピュータノードに接続されＯＳおよびプロセスからデータ転送装置へのアクセスを提供するスレーブ手段と、スワップ領域専用磁気記憶装置へのデータの書き込みおよび読み出しを物理アドレスで行うメモリ制御手段と、ＯＳに対して割り込みを通知する割り込み手段と、他コンピュータノードのデータ転送装置のデータ受信手段に接続されるデータ送信手段と、他コンピュータノードのデータ転送装置のデータ送信手段に接続されるデータ受信手段と、前記ＤＭＡ手段，前記スレーブ手段，前記メモリ制御手段，前記割り込み手段，前記データ送信手段および前記データ受信手段を制御するデータ転送制御手段とを有し、
コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記ページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ前記主記憶のページから、ページがスワップアウトされていれば前記スワップ領域専用磁気記憶装置のページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記主記憶のページに、ページがスワップアウトされていれば前記スワップ領域専用磁気記憶装置のページにデータを書き込み受信することを特徴とするデータ転送装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はコンピュータノード間データ転送方法およびシステムに関し、特に一方のコンピュータノードのプロセスの仮想記憶空間から他方のコンピュータノードのプロセスの仮想記憶空間にデータを転送するコンピュータノード間データ転送方法およびシステムに関する。
【０００２】
【従来の技術】
この種の従来のコンピュータノード間データ転送システムの一例を、図１６を参照して説明する。
【０００３】
図１６は、従来のコンピュータノード間データ転送システムの構成を示すブロック図である。このコンピュータノード間データ転送システムは、主記憶３１およびＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）３２を搭載するコンピュータノード３０および３０’と、スワップ領域７１および７１’が設けられた磁気ディスク装置７０および７０’と、互いに接続されたデータ転送装置１０および１０’とから、その主要部が構成されている。
【０００４】
仮想記憶方式を採用するＯＳ３２が管理する磁気ディスク装置７０に存在するスワップ領域７１は、コンピュータノード３０のプロセス３３の仮想記憶空間３４を実現するために実装され、主記憶３１からスワップアウトされたページ３６をページ２２として保持する。主記憶３１からスワップ領域７１へのスワップアウト，およびスワップ領域７１から主記憶３１へのスワップイン動作は、コンピュータノード３０のＯＳ３２が磁気ディスク装置７０に転送を要求することにより行われる。なお、仮想記憶方式を採用するＯＳ３２’が管理する磁気ディスク装置７０’に存在するスワップ領域７１’についても同様である。
【０００５】
仮想記憶空間３４を実現するために主記憶３１上に実装されるページテーブル３８は、ＯＳ３２により管理され、コンピュータノード３０のプロセスＩＤおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持する（図２参照）。また、ページテーブル３８は、属性３９として、対象ページがコンピュータノード３０の主記憶３１，スワップ領域７１，スワップインまたはスワップアウト動作中のどの状態にあるかを保持する（図２参照）。なお、仮想記憶空間３４’を実現するために主記憶３１’上に実装されるページテーブル３８’についても同様である。
【０００６】
データ転送装置１０は、自コンピュータノード３０の主記憶３１および他コンピュータノード３０’のデータ転送装置１０’と接続され、コンピュータノード３０のプロセス３３の仮想記憶空間３４からコンピュータノード３０’のプロセス３３’の仮想記憶空間３４’へデータを転送する。コンピュータノード３０のプロセス３３の仮想記憶空間３４からデータを送信する際にページテーブル３８を索引し、送信データの存在するページ３５がスワップアウトされていなければ主記憶３１のページ３７から、またページ３６がスワップアウトされていればＯＳ３２にページフォルトの割り込みを発生し、スワップインを要求する。また、データ転送装置１０は、データを受信する際にページテーブル３８を索引し、受信データを格納するページ３５がスワップアウトされていなければ主記憶３１のページ３７に、またページ３６がスワップアウトされていればＯＳ３２にページフォルトの割り込みを発生し、スワップインを要求する。
【０００７】
図１７は、データ転送装置１０のさらに詳細な構成を示す。図１７において、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）手段１２０は、コンピュータノード３０の主記憶３１に接続され、主記憶３１からの送信データの読み出しおよび主記憶３１への受信データの書き込みを物理アドレスで行う。また、主記憶３１のページテーブル３８の索引を行う。スレーブ手段１３０は、メモリマップドＩＯ（Ｉｎ／Ｏｕｔ）等でコンピュータノード３０に接続され、ＯＳ３２およびプロセス３３からデータ転送装置１０へのアクセスを提供する。データ送信手段１５０およびデータ受信手段１６０は、それぞれ他コンピュータノード３０’のデータ転送装置１０’のデータ受信手段およびデータ送信手段に接続される。割り込み手段１８０は、ＯＳ３２に対して割り込みを通知する。これらＤＭＡ手段１２０，スレーブ手段１３０，割り込み手段１８０，データ送信手段１５０およびデータ受信手段１６０は、データ転送制御手段１１０により制御される。なお、図１６中のデータ転送装置１０’についても同様である。
【０００８】
以上、従来のコンピュータノード間データ転送システムの構成について述べたが、仮想記憶方式，ならびにＤＭＡ手段１２０，スレーブ手段１３０，割り込み手段１８０，データ送信手段１５０およびデータ受信手段１６０は、当業者にとってよく知られており、また本発明とは直接関係しないので、その詳細な説明は省略する。
【０００９】
次に、図１７のデータ転送装置１０、特にデータ転送制御手段１１０の送信動作および受信動作について、図１８および図１９に示すフローチャートを使用して説明する。
【００１０】
図１８において、まず、コンピュータノード３０のプロセス３３によりデータ送信要求がデータ転送装置１０のスレーブ手段１３０に与えられる（ステップＳ３０１）。データ送信要求は、転送元および転送先のプロセスＩＤ，転送元および転送先の仮想アドレス，ならびに転送長からなる。データ転送制御手段１１０は、ＤＭＡ手段１２０経由で、転送元のプロセスＩＤおよび仮想アドレスでページテーブル３８を索引し、送信データの存在するページの物理アドレスおよび属性を取得する（ステップＳ３０２）。プロセスＩＤおよび仮想アドレスでページテーブル３８を索引して物理アドレスを求める手段は、仮想記憶方式で一般的に使われているものと同様である。データ転送制御手段１１０は、属性がスワップインまたはスワップアウト動作中であったならば（ステップＳ３０３）、ページテーブル３８の索引を繰り返し、スワップインまたはスワップアウト動作が完了するまで待つ。属性がスワップ領域７１ならば、割り込み手段１８０は、ＯＳ３２に対してページフォルトを通知し、対象ページのスワップインを要求する（ステップＳ３０４）。属性が主記憶３１ならば、ＤＭＡ手段１２０は、取得した物理アドレスにより主記憶３１から送信データを読み出す（ステップＳ３０５）。次に、データ送信手段１５０は、読み出した送信データを送信し（ステップＳ３０６）、送信動作が完了する。送信データには、転送先のプロセスＩＤ，仮想アドレスおよび転送長が含まれる。
【００１１】
図１９において、データ受信手段１６０が受信データを受信すると（ステップＳ３１１）、データ転送制御手段１１０は、ＤＭＡ手段１２０経由で、受信データに含まれる転送先のプロセスＩＤおよび仮想アドレスでページテーブル３８を索引し、受信データを格納するページの物理アドレスおよび属性を取得する（ステップＳ３１２）。プロセスＩＤおよび仮想アドレスでページテーブル３８を索引して物理アドレスを求める手段は、仮想記憶方式で一般的に使われているものと同様である。データ転送制御手段１１０は、属性がスワップインまたはスワップアウト動作中であったならば（ステップＳ３１３）、ページテーブル３８の索引を繰り返し、スワップインまたはスワップアウト動作が完了するまで待つ。属性がスワップ領域７１ならば、割り込み手段１８０は、ＯＳ３２に対してページフォルトを通知し、対象ページのスワップインを要求する（ステップＳ３１４）。属性が主記憶３１ならば、ＤＭＡ手段１２０は、取得した物理アドレスにより主記憶３１へ受信データを書き込む（ステップＳ３１５）。以上により、受信動作が完了する。
【００１２】
次に、図２０および図２１に示すフローチャートを使用して、スワップアウトおよびスワップイン時のＯＳ３２の動作を説明する。
【００１３】
図２０において、スワップアウト時、コンピュータノード３０のＯＳ３２は、ページテーブル３８のスワップアウト対象ページの属性をスワップアウト動作中に変更し、磁気ディスク装置７０に対してスワップアウトを要求する（ステップＳ３２１）。スワップアウト要求は、スワップアウト対象ページの主記憶３１における物理アドレス，およびスワップアウト先のスワップ領域７１における物理アドレスからなる。ページデータの転送が完了すると、割り込みにより転送完了がＯＳ３２に通知される（ステップＳ３２２）。ページデータ転送完了により、ＯＳ３２は、ページテーブル３８のスワップアウト対象ページの物理アドレスを上記ページデータを書き込んだスワップ領域７１の物理アドレスに変更し、最後に属性をスワップ領域７１に変更する（ステップＳ３２３）。以上により、スワップアウト動作が完了する。
【００１４】
図２１において、スワップイン時、コンピュータノード３０のＯＳ３２は、ページテーブル３８のスワップイン対象ページの属性をスワップイン動作中に変更し、磁気ディスク装置７０に対してスワップインを要求する（ステップＳ３３１）。スワップイン要求は、スワップイン対象ページの主記憶３１における物理アドレス，およびスワップイン元のスワップ領域７１における物理アドレスからなる。ページデータの転送が完了すると、割り込みにより転送完了がＯＳ３２に通知される（ステップＳ３３２）。ページデータ転送完了により、ＯＳ３２は、ページテーブル３８のスワップイン対象ページの物理アドレスを上記ページデータを書き込んだ主記憶３１の物理アドレスに変更し、最後に属性を主記憶３１に変更する（ステップＳ３３３）。以上により、スワップイン動作が完了する。
【００１５】
【発明が解決しようとする課題】
上述した従来のコンピュータノード間データ転送方法システムでは、スワップ領域がＯＳ管理下の磁気ディスク装置に設けられているため、スワップアウトされた仮想記憶空間にデータ転送装置が直接アクセスできないことから、次のような課題があった。
【００１６】
第１の課題は、データ転送でスワップアウトされたページにアクセスする場合、ＯＳを呼び出し、スワップアウトされたページを主記憶にスワップインし、その後にデータアクセスをするため、アクセスに時間がかかるということである。
【００１７】
この課題をクリアするために、データ転送対象ページを主記憶に固定し、スワップアウト対象外にするという解決策がとられる場合がある。
【００１８】
このような解決策がとられた従来技術として、特開平０６−０１９８５６号公報に開示された「並列計算機」がある。この従来技術では、仮想アドレスから物理アドレスへのアドレス変換をユーザプロセスが行っているが（データ転送装置に対して転送アドレスは物理アドレスで要求される）、現在はデータ転送装置自体がこのアドレス変換を行うことが主流となっている（データ転送装置に対して転送アドレスは仮想アドレスで要求される）。これは、アドレス変換をするための処理はＣＰＵに負荷がかかるが、これをデータ転送装置にオフロードして負荷を減らす，ユーザプロセスが物理アドレスを扱うとシステムに重大な障害が発生する可能性がある（極力、ユーザプロセスにはシステムの資源に触れさせない）という点から、一般的になっている。このため、この従来技術では、スワップアウトされた仮想記憶空間にはアクセスできないので、転送データの存在するメモリ空間を物理アドレスに固定し、スワップアウト対象外としている。
【００１９】
しかし、このような従来技術に対しては、次のような課題がある。
【００２０】
第２の課題は、データ転送に使うページをスワップアウトしないようにすると、主記憶の多くをデータ転送用メモリに費やし、他のプロセス用の記憶容量が制限され、仮想記憶方式の利点が活かされないということである。また、データ転送に使うページを物理ページに固定するという余分な作業をユーザプロセスで行う必要がある。
【００２１】
本発明の目的は、仮想記憶方式の利点を活かし、かつ自コンピュータノードのプロセスの仮想記憶空間から他コンピュータノードのプロセスの仮想記憶空間にデータを高速に転送するコンピュータノード間データ転送方法を提供することにある。
【００２２】
また、本発明の他の目的は、上記コンピュータノード間データ転送方法を実現するコンピュータノード間データ転送システムを提供することにある。
【００２４】
【課題を解決するための手段】
本発明のコンピュータノード間データ転送方法は、仮想記憶方式を採用するＯＳを搭載する２つのコンピュータノードが各ＯＳの管理下にある２つのデータ転送装置を介して互いに接続されたコンピュータノード間データ転送システムで、一方のコンピュータノードのプロセスの仮想記憶空間から他方のコンピュータノードのプロセスの仮想記憶空間にデータを転送するコンピュータノード間データ転送方法において、前記データ転送装置が、コンピュータノードで実行されているプロセスの仮想記憶空間のうちの主記憶からスワップアウトされたページを保持するスワップ領域専用メモリを備え、コンピュータノードのプロセスの仮想記憶空間からデータを送信する際にページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ主記憶のページから、ページがスワップアウトされていれば前記スワップ領域専用メモリのページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記主記憶のページに、ページがスワップアウトされていれば前記スワップ領域専用メモリのページにデータを書き込み受信することを特徴とする。
【００２５】
さらに、本発明のコンピュータノード間データ転送方法は、仮想記憶方式を採用するＯＳを搭載する２つのコンピュータノードが各ＯＳの管理下にある２つのデータ転送装置を介して互いに接続されたコンピュータノード間データ転送システムで、一方のコンピュータノードのプロセスの仮想記憶空間から他方のコンピュータノードのプロセスの仮想記憶空間にデータを転送するコンピュータノード間データ転送方法において、前記データ転送装置が、コンピュータノードで実行されているプロセスの仮想記憶空間のうちの主記憶からスワップアウトされたページを保持するスワップ領域専用メモリ，および主記憶上のページテーブルのキャッシュを保持するアドレス変換テーブルを備え、コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記アドレス変換テーブルを索引し、索引できなかった場合には前記ページテーブルを索引して前記アドレス変換テーブルを変更し、送信データの存在するページがスワップアウトされていなければ主記憶のページから、ページがスワップアウトされていれば前記スワップ領域専用メモリのページからデータを読み出し送信し、データを受信する際に前記アドレス変換テーブルを索引し、索引できなかった場合には前記ページテーブルを索引して前記アドレス変換テーブルを変更し、受信データを格納するページがスワップアウトされていなければ前記主記憶のページに、ページがスワップアウトされていれば前記スワップ領域専用メモリのページにデータを書き込み受信することを特徴とする。
【００２６】
一方、本発明のコンピュータノード間データ転送システムは、仮想記憶方式を採用するＯＳを搭載する２つのコンピュータノードが各ＯＳの管理下にある２つのデータ転送装置を介して互いに接続されたコンピュータノード間データ転送システムにおいて、コンピュータノードのプロセスの仮想記憶空間を実現するために実装され、主記憶からスワップアウトされたページを保持するとともに、コンピュータノードのＯＳがデータ転送装置に転送を要求することにより主記憶からのスワップアウトおよび主記憶へのスワップイン動作が行われるスワップ領域専用メモリと、ＯＳにより管理され、コンピュータノードのプロセスＩＤおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持するとともに、属性として対象ページがコンピュータノードの主記憶，スワップ領域専用メモリ，スワップインまたはスワップアウト動作中のどの状態にあるかを保持するページテーブルと、自コンピュータノードの主記憶，スワップ領域専用メモリ，および他コンピュータノードのデータ転送装置と接続され、コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記ページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ前記主記憶のページから、ページがスワップアウトされていれば前記スワップ領域専用メモリのページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記主記憶のページに、ページがスワップアウトされていれば前記スワップ領域専用メモリのページにデータを書き込み受信する前記データ転送装置とを有することを特徴とする。
【００２７】
また、本発明のコンピュータノード間データ転送システムは、前記データ転送装置が、前記コンピュータノードの主記憶に接続され該主記憶からの送信データの読み出しおよび該主記憶への受信データの書き込みを物理アドレスで行うとともに前記主記憶のページテーブルの索引を行うＤＭＡ手段と、メモリマップドＩＯ等でコンピュータノードに接続されＯＳおよびプロセスからデータ転送装置へのアクセスを提供するスレーブ手段と、前記スワップ領域専用メモリへのデータの書き込みおよび読み出しを物理アドレスで行うメモリ制御手段と、ＯＳに対して割り込みを通知する割り込み手段と、他コンピュータノードのデータ転送装置のデータ受信手段に接続されるデータ送信手段と、他コンピュータノードのデータ転送装置のデータ送信手段に接続されるデータ受信手段と、前記ＤＭＡ手段，前記スレーブ手段，前記メモリ制御手段，前記割り込み手段，前記データ送信手段および前記データ受信手段を制御するデータ転送制御手段とから構成されることを特徴とする。
【００２８】
さらに、本発明のコンピュータノード間データ転送システムは、前記データ転送装置が、前記コンピュータノードの主記憶に接続され該主記憶からの送信データの読み出しおよび該主記憶への受信データの書き込みを物理アドレスで行うとともに前記主記憶のページテーブルの索引を行うＤＭＡ手段と、メモリマップドＩＯ等でコンピュータノードに接続されＯＳおよびプロセスからデータ転送装置へのアクセスを提供するスレーブ手段と、前記スワップ領域専用メモリへのデータの書き込みおよび読み出しを物理アドレスで行うメモリ制御手段と、ＯＳに対して割り込みを通知する割り込み手段と、他コンピュータノードのデータ転送装置のデータ受信手段に接続されるデータ送信手段と、他コンピュータノードのデータ転送装置のデータ送信手段に接続されるデータ受信手段と、前記主記憶上のページテーブルの一部をキャッシュとしてコンピュータノードのプロセス毎の仮想アドレスと物理アドレスとの対応をページ単位で保持し、データ転送時に各プロセスの仮想記憶空間をアクセスする際に仮想アドレスから物理アドレスへの変換に使用されるとともに属性として対象ページがコンピュータノードの主記憶，スワップ領域専用メモリ，スワップインまたはスワップアウト動作中のどの状態にあるかを保持するアドレス変換テーブルと、前記ＤＭＡ手段，前記スレーブ手段，前記メモリ制御手段，前記割り込み手段，前記データ送信手段，前記データ受信手段および前記アドレス変換テーブルを制御するデータ転送制御手段とから構成されることを特徴とする。
【００２９】
さらにまた、本発明のコンピュータノード間データ転送システムは、
仮想記憶方式を採用するＯＳを搭載しそれぞれ主記憶を有する２つのコンピュータノードが各ＯＳの管理下にある２つのデータ転送装置を介して互いに接続されたコンピュータノード間データ転送システムにおいて、主記憶に設けられ、コンピュータノードのプロセスの仮想記憶空間を実現するために実装され、主記憶からスワップアウトされたページを保持するとともに、コンピュータノードのＯＳがデータ転送装置に転送を要求することにより主記憶からのスワップアウトおよび主記憶へのスワップイン動作が行われるスワップ領域と、ＯＳにより管理され、コンピュータノードのプロセスＩＤおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持するとともに、属性として対象ページがコンピュータノードのスワップ領域を除いた主記憶，スワップ領域，スワップインまたはスワップアウト動作中のどの状態にあるかを保持するページテーブルとを有し、
前記データ転送装置が、前記コンピュータノードの主記憶に接続され該主記憶からの送信データの読み出しおよび該主記憶への受信データの書き込みを物理アドレスで行うとともに前記主記憶のページテーブルの索引を行うＤＭＡ手段と、メモリマップドＩＯ等でコンピュータノードに接続されＯＳおよびプロセスからデータ転送装置へのアクセスを提供するスレーブ手段と、前記スワップ領域へのデータの書き込みおよび読み出しを物理アドレスで行うメモリ制御手段と、ＯＳに対して割り込みを通知する割り込み手段と、他コンピュータノードのデータ転送装置のデータ受信手段に接続されるデータ送信手段と、他コンピュータノードのデータ転送装置のデータ送信手段に接続されるデータ受信手段と、前記ＤＭＡ手段，前記スレーブ手段，前記メモリ制御手段，前記割り込み手段，前記データ送信手段および前記データ受信手段を制御するデータ転送制御手段とを有し、
コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記ページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ前記スワップ領域を除いた主記憶のページから、ページがスワップアウトされていれば前記スワップ領域のページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記スワップ領域を除いた主記憶のページに、ページがスワップアウトされていれば前記スワップ領域のページにデータを書き込み受信することを特徴とする。
【００３０】
また、本発明のコンピュータノード間データ転送システムは、仮想記憶方式を採用するＯＳを搭載しそれぞれ主記憶を有する２つのコンピュータノードが各ＯＳの管理下にある２つのデータ転送装置を介して互いに接続されたコンピュータノード間データ転送システムにおいて、コンピュータノードのプロセスの仮想記憶空間を実現するために実装され、主記憶からスワップアウトされたページを保持するとともに、コンピュータノードのＯＳがデータ転送装置に転送を要求することにより主記憶からのスワップアウトおよび主記憶へのスワップイン動作が行われ前記データ転送装置と接続するスワップ領域専用磁気記憶装置と、ＯＳにより管理され、コンピュータノードのプロセスＩＤおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持するとともに、属性として対象ページがコンピュータノードの主記憶，スワップ領域専用磁気記憶装置，スワップインまたはスワップアウト動作中のどの状態にあるかを保持するページテーブルとを有し、
前記データ転送装置が、前記コンピュータノードの主記憶に接続され該主記憶からの送信データの読み出しおよび該主記憶への受信データの書き込みを物理アドレスで行うとともに前記主記憶のページテーブルの索引を行うＤＭＡ手段と、メモリマップドＩＯ等でコンピュータノードに接続されＯＳおよびプロセスからデータ転送装置へのアクセスを提供するスレーブ手段と、前記スワップ領域専用磁気記憶装置へのデータの書き込みおよび読み出しを物理アドレスで行うメモリ制御手段と、ＯＳに対して割り込みを通知する割り込み手段と、他コンピュータノードのデータ転送装置のデータ受信手段に接続されるデータ送信手段と、他コンピュータノードのデータ転送装置のデータ送信手段に接続されるデータ受信手段と、前記ＤＭＡ手段，前記スレーブ手段，前記メモリ制御手段，前記割り込み手段，前記データ送信手段および前記データ受信手段を制御するデータ転送制御手段とを有し、
コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記ページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ前記主記憶のページから、ページがスワップアウトされていれば前記スワップ領域専用磁気記憶装置のページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記主記憶のページに、ページがスワップアウトされていれば前記スワップ領域専用磁気記憶装置のページにデータを書き込み受信することを特徴とする。
【００３１】
他方、本発明のデータ転送装置は、仮想記憶方式を採用するＯＳを搭載し主記憶を有し、プロセスＩＤおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持するとともに、属性として対象ページがコンピュータノードの主記憶、スワップ領域専用メモリ、スワップインまたはスワップアウト動作中のどの状態にあるかを保持するページテーブルを有するコンピュータノードと、
コンピュータノードのプロセスの仮想記憶空間を実現するために実装され、主記憶からスワップアウトされたページを保持するとともに、コンピュータノードのＯＳが転送を要求することにより主記憶からのスワップアウトおよび主記憶へのスワップイン動作が行われるスワップ領域を有するスワップ領域専用メモリとに接続し、
コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記ページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ前記主記憶のページから、ページがスワップアウトされていれば前記スワップ領域専用メモリのページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記主記憶のページに、ページがスワップアウトされていれば前記スワップ領域専用メモリのページにデータを書き込み受信することを特徴とする。
また、本発明のデータ転送装置は、仮想記憶方式を採用するＯＳを搭載し主記憶を有し、プロセスＩＤおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持するとともに、属性として対象ページがコンピュータノードの主記憶、スワップ領域専用メモリ、スワップインまたはスワップアウト動作中のどの状態にあるかを保持するページテーブルを有するコンピュータノードと、
コンピュータノードのプロセスの仮想記憶空間を実現するために実装され、主記憶からスワップアウトされたページを保持するとともに、コンピュータノードのＯＳが転送を要求することにより主記憶からのスワップアウトおよび主記憶へのスワップイン動作が行われるスワップ領域専用メモリとに接続し、
コンピュータノードの主記憶に接続され該主記憶からの送信データの読み出しおよび該主記憶への受信データの書き込みを物理アドレスで行うとともに前記主記憶のページテーブルの索引を行うＤＭＡ手段と、メモリマップドＩＯ等でコンピュータノードに接続されＯＳおよびプロセスからデータ転送装置へのアクセスを提供するスレーブ手段と、スワップ領域専用メモリへのデータの書き込みおよび読み出しを物理アドレスで行うメモリ制御手段と、ＯＳに対して割り込みを通知する割り込み手段と、他コンピュータノードのデータ転送装置のデータ受信手段に接続されるデータ送信手段と、他コンピュータノードのデータ転送装置のデータ送信手段に接続されるデータ受信手段と、前記ＤＭＡ手段，前記スレーブ手段，前記メモリ制御手段，前記割り込み手段，前記データ送信手段および前記データ受信手段を制御するデータ転送制御手段とを有し、
コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記ページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ前記主記憶のページから、ページがスワップアウトされていれば前記スワップ領域専用メモリのページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記主記憶のページに、ページがスワップアウトされていれば前記スワップ領域専用メモリのページにデータを書き込み受信することを特徴とする。
【００３２】
また、本発明のデータ転送装置は、仮想記憶方式を採用するＯＳを搭載し主記憶を有し、プロセスＩＤおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持するとともに、属性として対象ページがコンピュータノードの主記憶、スワップ領域専用メモリ、スワップインまたはスワップアウト動作中のどの状態にあるかを保持するページテーブルを有するコンピュータノードと、
コンピュータノードのプロセスの仮想記憶空間を実現するために実装され、主記憶からスワップアウトされたページを保持するとともに、コンピュータノードのＯＳが転送を要求することにより主記憶からのスワップアウトおよび主記憶へのスワップイン動作が行われるスワップ領域専用メモリとに接続し、
コンピュータノードの主記憶に接続され該主記憶からの送信データの読み出しおよび該主記憶への受信データの書き込みを物理アドレスで行うとともに前記主記憶のページテーブルの索引を行うＤＭＡ手段と、メモリマップドＩＯ等でコンピュータノードに接続されＯＳおよびプロセスからデータ転送装置へのアクセスを提供するスレーブ手段と、スワップ領域専用メモリへのデータの書き込みおよび読み出しを物理アドレスで行うメモリ制御手段と、ＯＳに対して割り込みを通知する割り込み手段と、他コンピュータノードのデータ転送装置のデータ受信手段に接続されるデータ送信手段と、他コンピュータノードのデータ転送装置のデータ送信手段に接続されるデータ受信手段と、前記主記憶上のページテーブルの一部をキャッシュとしてコンピュータノードのプロセス毎の仮想アドレスと物理アドレスとの対応をページ単位で保持し、データ転送時に各プロセスの仮想記憶空間をアクセスする際に仮想アドレスから物理アドレスへの変換に使用されるとともに属性として対象ページがコンピュータノードの主記憶，スワップ領域専用メモリ，スワップインまたはスワップアウト動作中のどの状態にあるかを保持するアドレス変換テーブルと、前記ＤＭＡ手段，前記スレーブ手段，前記メモリ制御手段，前記割り込み手段，前記データ送信手段，前記データ受信手段および前記アドレス変換テーブルを制御するデータ転送制御手段とを有し、
コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記ページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ前記主記憶のページから、ページがスワップアウトされていれば前記スワップ領域専用メモリのページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記主記憶のページに、ページがスワップアウトされていれば前記スワップ領域専用メモリのページにデータを書き込み受信することを特徴とする。
【００３３】
さらに、本発明のデータ転送装置は、仮想記憶方式を採用するＯＳを搭載し主記憶を有し、プロセスＩＤおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持するとともに、属性として対象ページがコンピュータノードのスワップ領域を除いた主記憶、スワップ領域、スワップインまたはスワップアウト動作中のどの状態にあるかを保持するページテーブルと、
コンピュータノードのプロセスの仮想記憶空間を実現するために実装され、主記憶からスワップアウトされたページを保持するとともに、コンピュータノードのＯＳがデータ転送装置に転送を要求することにより主記憶からのスワップアウトおよび主記憶へのスワップイン動作が行われるスワップ領域を主記憶に設けたコンピュータノードと接続し、
コンピュータノードの主記憶に接続され該主記憶からの送信データの読み出しおよび該主記憶への受信データの書き込みを物理アドレスで行うとともに前記主記憶のページテーブルの索引を行うＤＭＡ手段と、メモリマップドＩＯ等でコンピュータノードに接続されＯＳおよびプロセスからデータ転送装置へのアクセスを提供するスレーブ手段と、前記主記憶上のスワップ領域へのデータの書き込みおよび読み出しを物理アドレスで行うメモリ制御手段と、ＯＳに対して割り込みを通知する割り込み手段と、他コンピュータノードのデータ転送装置のデータ受信手段に接続されるデータ送信手段と、他コンピュータノードのデータ転送装置のデータ送信手段に接続されるデータ受信手段と、前記ＤＭＡ手段，前記スレーブ手段，前記メモリ制御手段，前記割り込み手段，前記データ送信手段および前記データ受信手段を制御するデータ転送制御手段とを有し、
コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記ページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ前記スワップ領域を除いた主記憶のページから、ページがスワップアウトされていれば前記スワップ領域のページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記スワップ領域を除いた主記憶のページに、ページがスワップアウトされていれば前記スワップ領域のページにデータを書き込み受信することを特徴とする。
【００３４】
さらにまた、本発明のデータ転送装置は、仮想記憶方式を採用するＯＳを搭載し主記憶を有し、プロセスＩＤおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持するとともに、属性として対象ページがコンピュータノードの主記憶、スワップ領域専用磁気記憶装置、スワップインまたはスワップアウト動作中のどの状態にあるかを保持するページテーブルを有するコンピュータノードと、
コンピュータノードのプロセスの仮想記憶空間を実現するために実装され、主記憶からスワップアウトされたページを保持するとともに、コンピュータノードのＯＳが転送を要求することにより主記憶からのスワップアウトおよび主記憶へのスワップイン動作が行われるスワップ領域専用磁気記憶装置とに接続し、
コンピュータノードの主記憶に接続され該主記憶からの送信データの読み出しおよび該主記憶への受信データの書き込みを物理アドレスで行うとともに前記主記憶のページテーブルの索引を行うＤＭＡ手段と、メモリマップドＩＯ等でコンピュータノードに接続されＯＳおよびプロセスからデータ転送装置へのアクセスを提供するスレーブ手段と、スワップ領域専用磁気記憶装置へのデータの書き込みおよび読み出しを物理アドレスで行うメモリ制御手段と、ＯＳに対して割り込みを通知する割り込み手段と、他コンピュータノードのデータ転送装置のデータ受信手段に接続されるデータ送信手段と、他コンピュータノードのデータ転送装置のデータ送信手段に接続されるデータ受信手段と、前記ＤＭＡ手段，前記スレーブ手段，前記メモリ制御手段，前記割り込み手段，前記データ送信手段および前記データ受信手段を制御するデータ転送制御手段とを有し、
コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記ページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ前記主記憶のページから、ページがスワップアウトされていれば前記スワップ領域専用磁気記憶装置のページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記主記憶のページに、ページがスワップアウトされていれば前記スワップ領域専用磁気記憶装置のページにデータを書き込み受信することを特徴とする。
【００３５】
本発明は、自コンピュータノードのプロセスの仮想記憶空間から他コンピュータノードのプロセスの仮想記憶空間にデータを転送するコンピュータノード間データ転送方法およびシステムにおいて、仮想記憶空間を実現するために実装されているスワップ領域を専用のメモリ（スワップ領域専用メモリ）に実装することにより、転送元または転送先のデータがスワップアウトされた仮想記憶空間にあってもＯＳの介在なしに転送を可能とするようにしたことを特徴としている。
【００３６】
図１において、スワップ領域専用メモリ２０は、コンピュータノード３０で実行されているプロセス３３の仮想記憶空間３４のうちの主記憶３１からスワップアウトされたページ３６をページ２２として保持する。
【００３７】
データ転送装置１０は、コンピュータノード３０のプロセス３３の仮想記憶空間３４からデータを送信する際にページテーブル３８を索引し、送信データの存在するページ３５がスワップアウトされていなければ主記憶３１のページ３７から、またページ３６がスワップアウトされていればスワップ領域専用メモリ２０のページ２２からデータを読み出し送信する。
【００３８】
また、データ転送装置１０は、データを受信する際にページテーブル３８を索引し、受信データを格納するページ３５がスワップアウトされていなければ主記憶３１のページ３７に、またページ３６がスワップアウトされていればスワップ領域専用メモリ２０のページ２２にデータを書き込み受信する。
【００３９】
このようにして、従来のコンピュータノード間データ転送システムでは、コンピュータノード３０のＯＳ３２が管理する磁気ディスク装置７０（図１６参照）に存在するスワップ領域７１を、本発明では、データ転送装置１０の制御するスワップ領域専用メモリ２０に実装して管理しているので、転送データが存在する仮想記憶空間３４内のページ３６がスワップ領域にスワップアウト中であっても、ＯＳ３２の介在なしにデータ転送が可能となる。
【００４０】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００４１】
（１）第１の実施の形態
図１は、本発明の第１の実施の形態に係るコンピュータノード間データ転送システムの構成を示すブロック図である。本実施の形態に係るコンピュータノード間データ転送システムは、コンピュータノード３０および３０’と、スワップ領域専用メモリ２０および２０’と、データ転送装置１０および１０’とから、その主要部が構成されている。
【００４２】
スワップ領域専用メモリ２０は、コンピュータノード３０のプロセス３３の仮想記憶空間３４を実現するために実装され、主記憶３１からスワップアウトされたページ３６をページ２２として保持する。主記憶３１からスワップ領域専用メモリ２０へのスワップアウト，およびスワップ領域専用メモリ２０から主記憶３１へのスワップイン動作は、コンピュータノード３０のＯＳ３２がデータ転送装置１０に転送を要求することにより行われる。換言すれば、図１６に示した従来のコンピュータノード間データ転送システムにおいて、ＯＳ３２が管理する磁気ディスク装置７０に存在するスワップ領域７１を、データ転送装置１０が管理するスワップ領域専用メモリ２０に実装する構成になっている。
【００４３】
仮想記憶空間３４を実現するために実装されるページテーブル３８は、ＯＳ３２により管理され、図２に示すように、仮想アドレスと物理アドレスとの対応をページ単位で保持し、コンピュータノード３０のプロセスＩＤ（ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）および仮想アドレスで索引される。また、ページテーブル３８は、属性３９として、対象ページがコンピュータノード３０の主記憶３１，スワップ領域専用メモリ２０，スワップインまたはスワップアウト動作中のどの状態にあるかを保持する。なお、ページテーブル３８は、図１６に示した従来のコンピュータノード間データ転送システムにおけるのと同様の構成であり、スワップアウト先が従来のコンピュータノード３０のＯＳ３２が管理する磁気ディスク装置７０に存在するスワップ領域７１か、本発明のデータ転送装置１０が管理するスワップ領域専用メモリ２０であるかが異なるだけである。
【００４４】
データ転送装置１０は、コンピュータノード３０の主記憶３１，スワップ領域専用メモリ２０，および他コンピュータノード３０’のデータ転送装置１０’と接続され、コンピュータノード３０のプロセス３３の仮想記憶空間３４からデータを送信する際にページテーブル３８を索引し、送信データの存在するページ３５がスワップアウトされていなければ主記憶３１のページ３７から、またページ３６がスワップアウトされていればスワップ領域専用メモリ２０のページ２２からデータを読み出し送信する。また、データ転送装置１０は、データを受信する際にページテーブル３８を索引し、受信データを格納するページ３５がスワップアウトされていなければ主記憶３１のページ３７に、またページ３６がスワップアウトされていればスワップ領域専用メモリ２０のページ２２にデータを書き込み受信する。
【００４５】
図３は、データ転送装置１０のさらに詳細な構成を示すブロック図である。データ転送装置１０は、ＤＭＡ手段１２０と、スレーブ手段１３０と、メモリ制御手段１４０と、割り込み手段１８０と、データ送信手段１５０と、データ受信手段１６０と、データ転送制御手段１１０とから構成されている。
【００４６】
ＤＭＡ手段１２０は、コンピュータノード３０の主記憶３１に接続され、主記憶３１からの送信データの読み出しおよび主記憶３１への受信データの書き込みを物理アドレスで行う。また、ＤＭＡ手段１２０は、主記憶３１のページテーブル３８の索引を行う。
【００４７】
スレーブ手段１３０は、メモリマップドＩＯ等でコンピュータノード３０に接続され、ＯＳ３２およびプロセス３３からデータ転送装置１０へのアクセスを提供する。
【００４８】
メモリ制御手段１４０は、スワップ領域専用メモリ２０へのデータの書き込みおよび読み出しを物理アドレスで行う。
【００４９】
データ送信手段１５０およびデータ受信手段１６０は、他コンピュータノード３０’のデータ転送装置１０’のデータ受信手段およびデータ送信手段にそれぞれ接続される。
【００５０】
割り込み手段１８０は、ＯＳ３２に対して割り込みを通知する。
【００５１】
以上、第１の実施の形態に係るコンピュータノード間データ転送システムの構成について述べたが、仮想記憶方式，ならびにＤＭＡ手段１２０，スレーブ手段１３０，メモリ制御手段１４０，割り込み手段１８０，データ送信手段１５０およびデータ受信手段１６０は、当業者にとってよく知られており、また本発明とは直接関係しないので、その詳細な構成は省略する。
【００５２】
次に、このように構成された第１の実施の形態に係るコンピュータノード間データ転送システムにおけるデータ転送装置１０、特にデータ転送制御手段１１０の送信動作および受信動作を、図４および図５に示すフローチャートを使用して説明する。
【００５３】
図４において、まず、コンピュータノード３０のプロセス３３によりデータ送信要求がデータ転送装置１０のスレーブ手段１３０に与えられる（ステップＳ１０１）。データ送信要求は、転送元および転送先のプロセスＩＤ，転送元および転送先の仮想アドレス，ならびに転送長からなる。データ転送制御手段１１０は、ＤＭＡ手段１２０経由で、転送元のプロセスＩＤおよび仮想アドレスでページテーブル３８を索引し、送信データの存在するページの物理アドレスおよび属性を取得する（ステップＳ１０２）。プロセスＩＤおよび仮想アドレスでページテーブル３８を索引して物理アドレスを求める手段は、仮想記憶方式で一般的に使われているものと同様である。データ転送制御手段１１０は、属性がスワップインまたはスワップアウト動作中であったならば（ステップＳ１０３）、ページテーブル３８の索引を繰り返し、スワップインまたはスワップアウト動作が完了するまで待つ。属性が主記憶３１ならば、ＤＭＡ手段１２０は、取得した物理アドレスにより主記憶３１から送信データを読み出す（ステップＳ１０４）。属性がスワップ領域専用メモリ２０ならば、メモリ制御手段１４０は、取得した物理アドレスによりスワップ領域専用メモリ２０から送信データを読み出す（ステップＳ１０５）。次に、データ送信手段１５０は、読み出した送信データを送信し（ステップＳ１０６）、送信動作を完了する。送信データには、転送先のプロセスＩＤ，仮想アドレスおよび転送長が含まれる。
【００５４】
図５において、データ受信手段１６０が受信データを受信すると（ステップＳ１１１）、データ転送制御手段１１０は、ＤＭＡ手段１２０経由で、受信データに含まれる転送先のプロセスＩＤおよび仮想アドレスでページテーブル３８を索引し、受信データを格納するページの物理アドレスおよび属性を取得する（ステップＳ１１２）。プロセスＩＤおよび仮想アドレスでページテーブル３８を索引して物理アドレスを求める手段は、仮想記憶方式で一般的に使われているものと同様である。データ転送制御手段１１０は、属性がスワップインまたはスワップアウト動作中であったならば（ステップＳ１１３）、ページテーブル３８の索引を繰り返し、スワップインまたはスワップアウト動作が完了するまで待つ。属性が主記憶３１ならば、ＤＭＡ手段１２０は、取得した物理アドレスにより主記憶３１へ受信データを書き込む（ステップＳ１１４）。属性がスワップ領域専用メモリ２０ならば、メモリ制御手段１４０は、取得した物理アドレスによりスワップ領域専用メモリ２０へ受信データを書き込む（ステップＳ１１５）。以上により、受信動作が完了する。
【００５５】
次に、図６および図７に示すフローチャートを使用して、スワップアウトおよびスワップイン時のＯＳ３２およびデータ転送装置１０の動作を説明する。
【００５６】
図６において、スワップアウト時、コンピュータノード３０のＯＳ３２は、ページテーブル３８のスワップアウト対象ページの属性をスワップアウト動作中に変更し、スレーブ手段１３０に対してスワップアウトを要求する（ステップＳ１２１）。スワップアウト要求は、スワップアウト対象ページの主記憶３１における物理アドレス，およびスワップアウト先のスワップ領域専用メモリ２０における物理アドレスからなる。データ転送制御手段１１０は、ＤＭＡ手段１２０経由で、ＯＳ３２により指定された主記憶３１の物理アドレスから該当するページデータを読み出す（ステップＳ１２２）。さらに、メモリ制御手段１４０は、ＯＳ３２により指定されたスワップ領域専用メモリ２０の物理アドレスに対して該ページデータを書き込む（ステップＳ１２３）。ページデータの転送が完了すると、割り込み手段１８０は、転送完了をＯＳ３２に通知する（ステップＳ１２４）。ページデータ転送完了により、ＯＳ３２は、ページテーブル３８のスワップアウト対象ページの物理アドレスを上記ページデータを書き込んだスワップ領域専用メモリ２０の物理アドレスに変更し、最後に属性をスワップ領域専用メモリ２０に変更する（ステップＳ１２５）。以上により、スワップアウト動作が完了する。なお、スワップアウト先が磁気ディスク装置７０からスワップ領域専用メモリ２０に変わっただけで、ＯＳ３２の動作は、従来のコンピュータノード間データ転送システムの場合と同様である。
【００５７】
図７において、スワップイン時、コンピュータノード３０のＯＳ３２は、ページテーブル３８のスワップイン対象ページの属性をスワップイン動作中に変更し、スレーブ手段１３０に対してスワップインを要求する（ステップＳ１３１）。スワップイン要求は、スワップイン対象ページの主記憶３１における物理アドレス，およびスワップイン元のスワップ領域専用メモリ２０における物理アドレスからなる。データ転送制御手段１１０は、メモリ制御手段１４０経由で、ＯＳ３２により指定されたスワップ領域専用メモリ２０の物理アドレスから該当するページデータを読み出す（ステップＳ１３２）。さらに、ＤＭＡ制御手段１２０は、ＯＳ３２により指定された主記憶３１の物理アドレスに対して該ページデータを書き込む（ステップＳ１３３）。ページデータの転送が完了すると、割り込み手段１８０は、転送完了をＯＳ３２に通知する（ステップＳ１３４）。ページデータ転送完了により、ＯＳ３２は、ページテーブル３８のスワップイン対象ページの物理アドレスを上記ページデータを書き込んだ主記憶３１の物理アドレスに変更し、最後に属性を主記憶３１に変更する（ステップＳ１３５）。以上により、スワップイン動作が完了する。なお、スワップイン元が磁気ディスク装置７０からスワップ領域専用メモリ２０に変わるだけで、ＯＳ３２の動作は、従来のコンピュータノード間データ転送システムの場合と同様である。
【００５８】
このように、第１の実施の形態によれば、スワップ領域をデータ転送装置１０が直接アクセスできるスワップ領域専用メモリ２０に実装しているので、転送元または転送先のページがスワップアウトされた仮想記憶空間３４にあってもＯＳ３２の介在なしにデータ転送を行うことができる。
【００５９】
また、従来は磁気ディスク装置７０等の低速の記憶媒体に実装されていたスワップ領域を高速のスワップ領域専用メモリ２０に実装しているので、スワップアウトおよびスワップイン動作を高速にできる。
【００６０】
（２）第２の実施の形態
図８は、本発明の第２の実施の形態に係るコンピュータノード間データ転送システムにおけるデータ転送装置１０の構成を示すブロック図である。本実施の形態に係るコンピュータノード間データ転送システムは、その基本的構成は図１に示した通りであるが、第１の実施の形態に係るコンピュータノード間データ転送システムに比べて、ページテーブル３８へのアクセスについてさらに工夫している。詳しくは、データ転送装置１０に、主記憶３１上のページテーブル３８の一部をキャッシュとして保持するアドレス変換テーブル１９０を設けている。
【００６１】
図９を参照すると、アドレス変換テーブル１９０は、コンピュータノード３０のプロセス毎の仮想アドレスと物理アドレスとの対応をページ単位で保持し、データ転送時に各プロセス３３の仮想記憶空間３４をアクセスする際に仮想アドレスから物理アドレスへの変換に使用される。また、アドレス変換テーブル１９０は、属性１９１として、対象ページがコンピュータノード３０の主記憶３１，スワップ領域専用メモリ２０，スワップインまたはスワップアウト動作中のどの状態にあるかを保持する。
【００６２】
図１０および図１１において、ＤＭＡ手段１２０によりページテーブル３８へアクセスする前に、アドレス変換テーブル１９０を索引するところが、第１の実施の形態と異なる。アドレス変換テーブル１９０を索引し、プロセスＩＤおよび仮想アドレスがマッチした場合、対応する仮想アドレスおよび属性を使用し、マッチしない場合のみ、ＤＭＡ手段１２０によりページテーブル３８へアクセスする。
【００６３】
また、図１２および図１３において、スワップアウト動作およびスワップイン動作時、アドレス変換テーブル１９０を索引し、該ページがアドレス変換テーブル１９０に登録されている場合、主記憶３１上のページテーブル２８との整合性をとるために、変更が行われることが、第１の実施の形態と異なる。
【００６４】
次に、図８のデータ転送装置１０、特にデータ転送制御手段１１０の送信動作および受信動作を、図１０および図１１に示すフローチャートを使用して説明する。
【００６５】
図１０において、まず、コンピュータノード３０のプロセス３３によりデータ送信要求がデータ転送装置１０のスレーブ手段１３０に与えられる（ステップＳ２０１）。データ送信要求は、転送元および転送先のプロセスＩＤ，転送元および転送先の仮想アドレス，ならびに転送長からなる。データ転送制御手段１１０は、転送元のプロセスＩＤおよび仮想アドレスでアドレス変換テーブル１９０を索引し（ステップＳ２０２）、送信データの存在するページの物理アドレスおよび属性が索引できたかどうかを判定する（ステップＳ２０３）。データ転送制御手段１１０は、索引できなければ、ＤＭＡ手段１２０経由で、転送元のプロセスＩＤおよび仮想アドレスでページテーブル３８を索引し、送信データの存在するページの物理アドレスおよび属性を取得し（ステップＳ２０４）、転送元のプロセスＩＤおよび仮想アドレスで送信データの存在するページの物理アドレスおよび属性をアドレス変換テーブル１９０に登録する（ステップＳ２０５）。プロセスＩＤおよび仮想アドレスでアドレス変換テーブル１９０およびページテーブル３８を索引して物理アドレスを求める手段は、仮想記憶方式で一般的に使われているものと同様である。次に、データ転送制御手段１１０は、属性がスワップインまたはスワップアウト動作中であったならば（ステップＳ２０６）、アドレス変換テーブル１９０およびページテーブル３８の索引を繰り返し、スワップインまたはスワップアウト動作が完了するまで待つ。属性が主記憶３１ならば、ＤＭＡ手段１２０は、取得した物理アドレスにより主記憶３１から送信データを読み出す（ステップＳ２０７）。属性がスワップ領域専用メモリ２０ならば、メモリ制御手段１４０は、取得した物理アドレスによりスワップ領域専用メモリ２０から送信データを読み出す（ステップＳ２０８）。次に、データ送信手段１５０は、読み出した送信データを送信し（ステップＳ２０９）、送信動作を完了する。送信データには、転送先のプロセスＩＤ，仮想アドレスおよび転送長が含まれる。
【００６６】
図１１において、データ受信手段１６０が受信データを受信すると（ステップＳ２１１）、データ転送制御手段１１０は、受信データに含まれる転送先のプロセスＩＤおよび仮想アドレスでアドレス変換テーブル１９０を索引し（ステップＳ２１２）、受信データを書き込むページの物理アドレスおよび属性が索引できたかどうかを判定する（ステップＳ２１３）。データ転送制御手段１１０は、索引できなければ、ＤＭＡ手段１２０経由で、転送先のプロセスＩＤおよび仮想アドレスでページテーブル３８を索引し、受信データを書き込むページの物理アドレスおよび属性を取得し（ステップＳ２１４）、転送先のプロセスＩＤおよび仮想アドレスで受信データを書き込むページの物理アドレスおよび属性をアドレス変換テーブル１９０に登録する（ステップＳ２１５）。プロセスＩＤおよび仮想アドレスでアドレス変換テーブル１９０およびページテーブル３８を索引して物理アドレスを求める手段は、仮想記憶方式で一般的に使われているものと同様である。データ転送制御手段１１０は、属性がスワップインまたはスワップアウト動作中であったならば（ステップＳ２１６）、アドレス変換テーブル１９０およびページテーブル３８の索引を繰り返し、スワップインまたはスワップアウト動作が完了するまで待つ。属性が主記憶３１ならば、ＤＭＡ手段１２０は、取得した物理アドレスにより主記憶３１へ受信データを書き込む（ステップＳ２１７）。属性がスワップ領域専用メモリ２０ならば、メモリ制御手段１４０は、取得した物理アドレスによりスワップ領域専用メモリ２０へ受信データを書き込む（ステップＳ２１８）。以上により、受信動作が完了する。
【００６７】
次に、図１２および図１３に示すフローチャートを使用して、スワップアウトおよびスワップイン時のＯＳ３２，およびデータ転送装置１０、特にデータ転送制御手段１１０の動作を説明する。
【００６８】
図１２において、スワップアウト時、コンピュータノード３０のＯＳ３２は、ページテーブル３８のスワップアウト対象ページの属性をスワップアウト動作中に変更し、スレーブ手段１３０に対してスワップアウトを要求する（ステップＳ２２１）。スワップアウト要求は、スワップアウト対象ページの主記憶３１における物理アドレス，およびスワップアウト先のスワップ領域専用メモリ２０における物理アドレスからなる。データ転送制御手段１１０は、アドレス変換テーブル１９０の属性にスワップアウト動作中を登録する（ステップＳ２２２）。次に、データ転送制御手段１１０は、ＤＭＡ手段１２０経由で、ＯＳ３２により指定された主記憶３１の物理アドレスから該当するページデータを読み出す（ステップＳ２２３）。さらに、メモリ制御手段１４０は、ＯＳ３２により指定されたスワップ領域専用メモリ２０の物理アドレスに対して該ページデータを書き込む（ステップＳ２２４）。データ転送制御手段１１０は、アドレス変換テーブル１９０の物理アドレスをスワップ領域専用メモリ２０の物理アドレスに変更するとともに属性をスワップ領域専用メモリ２０に変更する（ステップＳ２２５）。ページデータの転送が完了すると、割り込み手段１８０は、転送完了をＯＳ３２に通知する（ステップＳ２２６）。ページデータ転送完了により、ＯＳ３２は、ページテーブル３８のスワップアウト対象ページの物理アドレスを上記ページデータを書き込んだスワップ領域専用メモリ２０の物理アドレスに変更し、最後に属性をスワップ領域専用メモリ２０に変更する（ステップＳ２２７）。以上により、スワップアウト動作が完了する。
【００６９】
図１３において、スワップイン時、コンピュータノード３０のＯＳ３２は、ページテーブル３８のスワップイン対象ページの属性をスワップイン動作中に変更し、スレーブ手段１３０に対してスワップインを要求する（ステップＳ２３１）。スワップイン要求は、スワップイン対象ページの主記憶３１における物理アドレス，およびスワップイン元のスワップ領域専用メモリ２０における物理アドレスからなる。データ転送制御手段１１０は、アドレス変換テーブル１９０の属性をスワップイン動作中を変更する（ステップＳ２３２）。次に、データ転送制御手段１１０は、メモリ制御手段１４０経由で、ＯＳ３２により指定されたスワップ領域専用メモリ２０の物理アドレスから該当するページデータを読み出す（ステップＳ２３３）。さらに、ＤＭＡ制御手段１２０は、ＯＳ３２により指定された主記憶３１の物理アドレスに対して該ページデータを書き込む（ステップＳ２３４）。データ転送制御手段１１０は、アドレス変換テーブル１９０の物理アドレスを主記憶３１の物理アドレスに変更するとともに属性を主記憶３１に変更する（ステップＳ２３５）。ページデータの転送が完了すると、割り込み手段１８０は、転送完了をＯＳ３２に通知する（ステップＳ２３６）。ページデータ転送完了により、ＯＳ３２は、ページテーブル３８のスワップイン対象ページの物理アドレスを上記ページデータを書き込んだ主記憶３１の物理アドレスに変更し、最後に属性を主記憶３１に変更する（ステップＳ２３７）。以上により、スワップイン動作が完了する。
【００７０】
なお、仮想記憶方式でページテーブル３８をアクセスする頻度を減らして性能向上をはかるために、ページテーブル３８のキャッシュを持つことは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）でのＴＬＢ（Ｔｒａｎｓｌａｔｉｏｎ  ｌｏｏｋａｓｉｄｅ  Ｂｕｆｆｅｒ）実装等、当業者にとってよく知られており、その詳細な構成および動作は省略する。
【００７１】
このように、第２の実施の形態では、データ転送装置１０内に、主記憶３１上のページテーブル３８の一部をキャッシュとして保持するアドレス変換テーブル１９０を設けているので、データ転送の際に仮想アドレスから物理アドレスへの変換のためにＤＭＡ手段１２０によってページテーブル３８を毎回アクセスする必要がなくなり、データ転送がより高速に実行できるという利点がある。
【００７２】
（３）第３の実施の形態
図１４は、本発明の第３の実施の形態に係るコンピュータノード間データ転送システムにおけるデータ転送装置１０の構成を示すブロック図である。本実施の形態に係るコンピュータノード間データ転送システムは、図３に示した第１の実施の形態に係るコンピュータノード間データ転送システムに比べて、スワップ領域２１についてさらに工夫している。詳しくは、スワップ領域２１がコンピュータノード３０の主記憶３１上に置かれ、スワップ領域２１へのアクセスはＤＭＡ手段１２０によって行われることが、第１の実施の形態に係るコンピュータノード間データ転送システムと異なる。
【００７３】
このように構成された第３の実施の形態に係るコンピュータノード間データ転送システムでは、スワップ領域２１をコンピュータノード３０の主記憶３１上に設けているので、データ転送装置１０にスワップ領域専用メモリ２０およびメモリ制御手段１４０を設ける必要がなく、データ転送装置１０のハードウエア量を削減できるという利点がある。
【００７４】
（４）第４の実施の形態
図１５は、本発明の第４の実施の形態に係るコンピュータノード間データ転送システムにおけるデータ転送装置１０の構成を示すブロック図である。本実施の形態に係るコンピュータノード間データ転送システムは、図１に示した第１の実施の形態に係るコンピュータノード間データ転送システムに比べて、スワップ領域を設ける媒体についてさらに工夫している。詳しくは、第１の実施の形態に係るコンピュータノード間データ転送システムにおけるスワップ領域専用メモリ２０の代替として、スワップ領域専用磁気ディスク装置７２を用いるようにしている。また、これに伴い、メモリ制御手段１４０をディスク制御手段１７０に置換している。スワップ領域専用磁気ディスク装置７２は、コンピュータノード３０で実行されているプロセス３３の仮想記憶空間３４のうちの主記憶３１からスワップアウトされたページ３６を保持する。ディスク制御手段１７０は、スワップ領域専用磁気ディスク装置７２への書き込みおよび読み出しを物理アドレスにより行う。
【００７５】
このように構成された第４の実施の形態に係るコンピュータノード間データ転送システムでは、スワップ領域専用メモリ２０の代わりにスワップ領域専用磁気ディスク装置７２を設けているので、スワップ領域に必要な記憶容量を低コストで実現できる。
【００７６】
なお、第４の実施の形態では、スワップ領域専用磁気ディスク装置７２として、通常の磁気ディスク装置を用いているが、キャッシュを持たせた高速な磁気ディスク装置，多重化により信頼性および高速性を持たせたＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）装置，およびより低コストで実現できるテープ装置または光磁気ディスク装置を用いることもできる。
【００７７】
【発明の効果】
以上説明したように、本発明においては、以下のような効果を奏する。
【００７８】
第１の効果は、スワップ領域をデータ転送装置が直接アクセスできる専用のメモリに実装しているので、転送元または転送先のデータがスワップアウトされた仮想記憶空間にあってもＯＳの介在なしにデータを転送できることである。
【００７９】
第２の効果は、従来は磁気ディスク装置等の低速の記憶媒体に実装されていたスワップ領域を高速のメモリに実装しているので、スワップアウトおよびスワップイン動作が高速にできることである。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係るコンピュータノード間データ転送システムの構成を示すブロック図である。
【図２】図１中のページテーブルの内容を示す図である。
【図３】図１中のデータ転送装置のさらに詳細な構成を示すブロック図である。
【図４】図３中のデータ転送装置の送信動作を示すフローチャートである。
【図５】図３中のデータ転送装置の受信動作を示すフローチャートである。
【図６】図３中のＯＳおよびデータ転送装置のスワップアウト時の動作を説明するフローチャートである。
【図７】 図３中のＯＳおよびデータ転送装置のスワップイン時の動作を説明するフローチャートである。
【図８】本発明の第２の実施の形態に係るコンピュータノード間データ転送システムにおけるデータ転送装置のより詳細な構成を示すブロック図である。
【図９】図８中のアドレス変換テーブルの内容を示す図である。
【図１０】図８中のデータ転送装置の送信動作を示すフローチャートである。
【図１１】図８中のデータ転送装置の受信動作を示すフローチャートである。
【図１２】図８中のＯＳおよびデータ転送装置のスワップアウト時の動作を説明するフローチャートである。
【図１３】 図８中のＯＳおよびデータ転送装置のスワップイン時の動作を説明するフローチャートである。
【図１４】本発明の第３の実施の形態に係るコンピュータノード間転送システムにおけるデータ転送装置のより詳細な構成を示すブロック図である。
【図１５】本発明の第４の実施の形態に係るコンピュータノード間転送システムにおけるデータ転送装置のより詳細な構成を示すブロック図である。
【図１６】従来のコンピュータノード間データ転送システムを示すブロック図である。
【図１７】図１６中のデータ転送装置のさらに詳細な構成を示すブロック図である。
【図１８】図１７中のデータ転送装置の送信動作を示すフローチャートである。
【図１９】図１７中のデータ転送装置の受信動作を示すフローチャートである。
【図２０】図１７中のＯＳおよび磁気ディスク装置のスワップアウト時の動作を示すフローチャートである。
【図２１】図１７中のＯＳおよび磁気ディスク装置のスワップイン時の動作を示すフローチャートである。
【符号の説明】
１０，１０’  データ転送装置
２０，２０’  スワップ領域専用メモリ
２１  スワップ領域
２２，２２’  ページ
３０，３０’  コンピュータノード
３１，３１’  主記憶
３２，３２’  ＯＳ
３３，３３’  プロセス
３４，３４’  仮想記憶空間
３５，３５’  ページ
３６，３６’  スワップアウトされたページ
３７，３７’  ページ
３８，３８’  ページテーブル
３９  属性
７２  スワップ領域専用磁気ディスク装置
１１０  データ転送制御手段
１２０  ＤＭＡ手段
１３０  スレーブ手段
１４０  メモリ制御手段
１５０  データ送信手段
１６０  データ受信手段
１８０  割り込み手段
１９０  アドレス変換テーブル
１９１  属性
【図１】
0003716752.tif 000002
【図２】
0003716752.tif 000003
【図３】
0003716752.tif 000004
【図４】
0003716752.tif 000005
【図５】
0003716752.tif 000006
【図６】
0003716752.tif 000007
【図７】
0003716752.tif 000008
【図８】
0003716752.tif 000009
【図９】
0003716752.tif 000010
【図１０】
0003716752.tif 000011
【図１１】
0003716752.tif 000012
【図１２】
0003716752.tif 000013
【図１３】
0003716752.tif 000014
【図１４】
0003716752.tif 000015
【図１５】
0003716752.tif 000016
【図１６】
0003716752.tif 000017
【図１７】
0003716752.tif 000018
【図１８】
0003716752.tif 000019
【図１９】
0003716752.tif 000020
【図２０】
0003716752.tif 000021
【図２１】
0003716752.tif 000022