JP3716752B2 - コンピュータノード間データ転送方法およびシステム - Google Patents

コンピュータノード間データ転送方法およびシステム Download PDF

Info

Publication number
JP3716752B2
JP3716752B2 JP2001060545A JP2001060545A JP3716752B2 JP 3716752 B2 JP3716752 B2 JP 3716752B2 JP 2001060545 A JP2001060545 A JP 2001060545A JP 2001060545 A JP2001060545 A JP 2001060545A JP 3716752 B2 JP3716752 B2 JP 3716752B2
Authority
JP
Japan
Prior art keywords
data
page
swap
computer node
main memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2001060545A
Other languages
English (en)
Other versions
JP2002259212A (ja
Inventor
修作 内堀
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2001060545A priority Critical patent/JP3716752B2/ja
Publication of JP2002259212A publication Critical patent/JP2002259212A/ja
Application granted granted Critical
Publication of JP3716752B2 publication Critical patent/JP3716752B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【0001】
【発明の属する技術分野】
本発明はコンピュータノード間データ転送方法およびシステムに関し、特に一方のコンピュータノードのプロセスの仮想記憶空間から他方のコンピュータノードのプロセスの仮想記憶空間にデータを転送するコンピュータノード間データ転送方法およびシステムに関する。
【0002】
【従来の技術】
この種の従来のコンピュータノード間データ転送システムの一例を、図16を参照して説明する。
【0003】
図16は、従来のコンピュータノード間データ転送システムの構成を示すブロック図である。このコンピュータノード間データ転送システムは、主記憶31およびOS(Operating System)32を搭載するコンピュータノード30および30’と、スワップ領域71および71’が設けられた磁気ディスク装置70および70’と、互いに接続されたデータ転送装置10および10’とから、その主要部が構成されている。
【0004】
仮想記憶方式を採用するOS32が管理する磁気ディスク装置70に存在するスワップ領域71は、コンピュータノード30のプロセス33の仮想記憶空間34を実現するために実装され、主記憶31からスワップアウトされたページ36をページ22として保持する。主記憶31からスワップ領域71へのスワップアウト,およびスワップ領域71から主記憶31へのスワップイン動作は、コンピュータノード30のOS32が磁気ディスク装置70に転送を要求することにより行われる。なお、仮想記憶方式を採用するOS32’が管理する磁気ディスク装置70’に存在するスワップ領域71’についても同様である。
【0005】
仮想記憶空間34を実現するために主記憶31上に実装されるページテーブル38は、OS32により管理され、コンピュータノード30のプロセスIDおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持する(図2参照)。また、ページテーブル38は、属性39として、対象ページがコンピュータノード30の主記憶31,スワップ領域71,スワップインまたはスワップアウト動作中のどの状態にあるかを保持する(図2参照)。なお、仮想記憶空間34’を実現するために主記憶31’上に実装されるページテーブル38’についても同様である。
【0006】
データ転送装置10は、自コンピュータノード30の主記憶31および他コンピュータノード30’のデータ転送装置10’と接続され、コンピュータノード30のプロセス33の仮想記憶空間34からコンピュータノード30’のプロセス33’の仮想記憶空間34’へデータを転送する。コンピュータノード30のプロセス33の仮想記憶空間34からデータを送信する際にページテーブル38を索引し、送信データの存在するページ35がスワップアウトされていなければ主記憶31のページ37から、またページ36がスワップアウトされていればOS32にページフォルトの割り込みを発生し、スワップインを要求する。また、データ転送装置10は、データを受信する際にページテーブル38を索引し、受信データを格納するページ35がスワップアウトされていなければ主記憶31のページ37に、またページ36がスワップアウトされていればOS32にページフォルトの割り込みを発生し、スワップインを要求する。
【0007】
図17は、データ転送装置10のさらに詳細な構成を示す。図17において、DMA(Direct Memory Access)手段120は、コンピュータノード30の主記憶31に接続され、主記憶31からの送信データの読み出しおよび主記憶31への受信データの書き込みを物理アドレスで行う。また、主記憶31のページテーブル38の索引を行う。スレーブ手段130は、メモリマップドIO(In/Out)等でコンピュータノード30に接続され、OS32およびプロセス33からデータ転送装置10へのアクセスを提供する。データ送信手段150およびデータ受信手段160は、それぞれ他コンピュータノード30’のデータ転送装置10’のデータ受信手段およびデータ送信手段に接続される。割り込み手段180は、OS32に対して割り込みを通知する。これらDMA手段120,スレーブ手段130,割り込み手段180,データ送信手段150およびデータ受信手段160は、データ転送制御手段110により制御される。なお、図16中のデータ転送装置10’についても同様である。
【0008】
以上、従来のコンピュータノード間データ転送システムの構成について述べたが、仮想記憶方式,ならびにDMA手段120,スレーブ手段130,割り込み手段180,データ送信手段150およびデータ受信手段160は、当業者にとってよく知られており、また本発明とは直接関係しないので、その詳細な説明は省略する。
【0009】
次に、図17のデータ転送装置10、特にデータ転送制御手段110の送信動作および受信動作について、図18および図19に示すフローチャートを使用して説明する。
【0010】
図18において、まず、コンピュータノード30のプロセス33によりデータ送信要求がデータ転送装置10のスレーブ手段130に与えられる(ステップS301)。データ送信要求は、転送元および転送先のプロセスID,転送元および転送先の仮想アドレス,ならびに転送長からなる。データ転送制御手段110は、DMA手段120経由で、転送元のプロセスIDおよび仮想アドレスでページテーブル38を索引し、送信データの存在するページの物理アドレスおよび属性を取得する(ステップS302)。プロセスIDおよび仮想アドレスでページテーブル38を索引して物理アドレスを求める手段は、仮想記憶方式で一般的に使われているものと同様である。データ転送制御手段110は、属性がスワップインまたはスワップアウト動作中であったならば(ステップS303)、ページテーブル38の索引を繰り返し、スワップインまたはスワップアウト動作が完了するまで待つ。属性がスワップ領域71ならば、割り込み手段180は、OS32に対してページフォルトを通知し、対象ページのスワップインを要求する(ステップS304)。属性が主記憶31ならば、DMA手段120は、取得した物理アドレスにより主記憶31から送信データを読み出す(ステップS305)。次に、データ送信手段150は、読み出した送信データを送信し(ステップS306)、送信動作が完了する。送信データには、転送先のプロセスID,仮想アドレスおよび転送長が含まれる。
【0011】
図19において、データ受信手段160が受信データを受信すると(ステップS311)、データ転送制御手段110は、DMA手段120経由で、受信データに含まれる転送先のプロセスIDおよび仮想アドレスでページテーブル38を索引し、受信データを格納するページの物理アドレスおよび属性を取得する(ステップS312)。プロセスIDおよび仮想アドレスでページテーブル38を索引して物理アドレスを求める手段は、仮想記憶方式で一般的に使われているものと同様である。データ転送制御手段110は、属性がスワップインまたはスワップアウト動作中であったならば(ステップS313)、ページテーブル38の索引を繰り返し、スワップインまたはスワップアウト動作が完了するまで待つ。属性がスワップ領域71ならば、割り込み手段180は、OS32に対してページフォルトを通知し、対象ページのスワップインを要求する(ステップS314)。属性が主記憶31ならば、DMA手段120は、取得した物理アドレスにより主記憶31へ受信データを書き込む(ステップS315)。以上により、受信動作が完了する。
【0012】
次に、図20および図21に示すフローチャートを使用して、スワップアウトおよびスワップイン時のOS32の動作を説明する。
【0013】
図20において、スワップアウト時、コンピュータノード30のOS32は、ページテーブル38のスワップアウト対象ページの属性をスワップアウト動作中に変更し、磁気ディスク装置70に対してスワップアウトを要求する(ステップS321)。スワップアウト要求は、スワップアウト対象ページの主記憶31における物理アドレス,およびスワップアウト先のスワップ領域71における物理アドレスからなる。ページデータの転送が完了すると、割り込みにより転送完了がOS32に通知される(ステップS322)。ページデータ転送完了により、OS32は、ページテーブル38のスワップアウト対象ページの物理アドレスを上記ページデータを書き込んだスワップ領域71の物理アドレスに変更し、最後に属性をスワップ領域71に変更する(ステップS323)。以上により、スワップアウト動作が完了する。
【0014】
図21において、スワップイン時、コンピュータノード30のOS32は、ページテーブル38のスワップイン対象ページの属性をスワップイン動作中に変更し、磁気ディスク装置70に対してスワップインを要求する(ステップS331)。スワップイン要求は、スワップイン対象ページの主記憶31における物理アドレス,およびスワップイン元のスワップ領域71における物理アドレスからなる。ページデータの転送が完了すると、割り込みにより転送完了がOS32に通知される(ステップS332)。ページデータ転送完了により、OS32は、ページテーブル38のスワップイン対象ページの物理アドレスを上記ページデータを書き込んだ主記憶31の物理アドレスに変更し、最後に属性を主記憶31に変更する(ステップS333)。以上により、スワップイン動作が完了する。
【0015】
【発明が解決しようとする課題】
上述した従来のコンピュータノード間データ転送方法システムでは、スワップ領域がOS管理下の磁気ディスク装置に設けられているため、スワップアウトされた仮想記憶空間にデータ転送装置が直接アクセスできないことから、次のような課題があった。
【0016】
第1の課題は、データ転送でスワップアウトされたページにアクセスする場合、OSを呼び出し、スワップアウトされたページを主記憶にスワップインし、その後にデータアクセスをするため、アクセスに時間がかかるということである。
【0017】
この課題をクリアするために、データ転送対象ページを主記憶に固定し、スワップアウト対象外にするという解決策がとられる場合がある。
【0018】
このような解決策がとられた従来技術として、特開平06−019856号公報に開示された「並列計算機」がある。この従来技術では、仮想アドレスから物理アドレスへのアドレス変換をユーザプロセスが行っているが(データ転送装置に対して転送アドレスは物理アドレスで要求される)、現在はデータ転送装置自体がこのアドレス変換を行うことが主流となっている(データ転送装置に対して転送アドレスは仮想アドレスで要求される)。これは、アドレス変換をするための処理はCPUに負荷がかかるが、これをデータ転送装置にオフロードして負荷を減らす,ユーザプロセスが物理アドレスを扱うとシステムに重大な障害が発生する可能性がある(極力、ユーザプロセスにはシステムの資源に触れさせない)という点から、一般的になっている。このため、この従来技術では、スワップアウトされた仮想記憶空間にはアクセスできないので、転送データの存在するメモリ空間を物理アドレスに固定し、スワップアウト対象外としている。
【0019】
しかし、このような従来技術に対しては、次のような課題がある。
【0020】
第2の課題は、データ転送に使うページをスワップアウトしないようにすると、主記憶の多くをデータ転送用メモリに費やし、他のプロセス用の記憶容量が制限され、仮想記憶方式の利点が活かされないということである。また、データ転送に使うページを物理ページに固定するという余分な作業をユーザプロセスで行う必要がある。
【0021】
本発明の目的は、仮想記憶方式の利点を活かし、かつ自コンピュータノードのプロセスの仮想記憶空間から他コンピュータノードのプロセスの仮想記憶空間にデータを高速に転送するコンピュータノード間データ転送方法を提供することにある。
【0022】
また、本発明の他の目的は、上記コンピュータノード間データ転送方法を実現するコンピュータノード間データ転送システムを提供することにある。
【0024】
【課題を解決するための手段】
発明のコンピュータノード間データ転送方法は、仮想記憶方式を採用するOSを搭載する2つのコンピュータノードが各OSの管理下にある2つのデータ転送装置を介して互いに接続されたコンピュータノード間データ転送システムで、一方のコンピュータノードのプロセスの仮想記憶空間から他方のコンピュータノードのプロセスの仮想記憶空間にデータを転送するコンピュータノード間データ転送方法において、前記データ転送装置が、コンピュータノードで実行されているプロセスの仮想記憶空間のうちの主記憶からスワップアウトされたページを保持するスワップ領域専用メモリを備え、コンピュータノードのプロセスの仮想記憶空間からデータを送信する際にページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ主記憶のページから、ページがスワップアウトされていれば前記スワップ領域専用メモリのページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記主記憶のページに、ページがスワップアウトされていれば前記スワップ領域専用メモリのページにデータを書き込み受信することを特徴とする。
【0025】
さらに、本発明のコンピュータノード間データ転送方法は、仮想記憶方式を採用するOSを搭載する2つのコンピュータノードが各OSの管理下にある2つのデータ転送装置を介して互いに接続されたコンピュータノード間データ転送システムで、一方のコンピュータノードのプロセスの仮想記憶空間から他方のコンピュータノードのプロセスの仮想記憶空間にデータを転送するコンピュータノード間データ転送方法において、前記データ転送装置が、コンピュータノードで実行されているプロセスの仮想記憶空間のうちの主記憶からスワップアウトされたページを保持するスワップ領域専用メモリ,および主記憶上のページテーブルのキャッシュを保持するアドレス変換テーブルを備え、コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記アドレス変換テーブルを索引し、索引できなかった場合には前記ページテーブルを索引して前記アドレス変換テーブルを変更し、送信データの存在するページがスワップアウトされていなければ主記憶のページから、ページがスワップアウトされていれば前記スワップ領域専用メモリのページからデータを読み出し送信し、データを受信する際に前記アドレス変換テーブルを索引し、索引できなかった場合には前記ページテーブルを索引して前記アドレス変換テーブルを変更し、受信データを格納するページがスワップアウトされていなければ前記主記憶のページに、ページがスワップアウトされていれば前記スワップ領域専用メモリのページにデータを書き込み受信することを特徴とする。
【0026】
一方、本発明のコンピュータノード間データ転送システムは、仮想記憶方式を採用するOSを搭載する2つのコンピュータノードが各OSの管理下にある2つのデータ転送装置を介して互いに接続されたコンピュータノード間データ転送システムにおいて、コンピュータノードのプロセスの仮想記憶空間を実現するために実装され、主記憶からスワップアウトされたページを保持するとともに、コンピュータノードのOSがデータ転送装置に転送を要求することにより主記憶からのスワップアウトおよび主記憶へのスワップイン動作が行われるスワップ領域専用メモリと、OSにより管理され、コンピュータノードのプロセスIDおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持するとともに、属性として対象ページがコンピュータノードの主記憶,スワップ領域専用メモリ,スワップインまたはスワップアウト動作中のどの状態にあるかを保持するページテーブルと、自コンピュータノードの主記憶,スワップ領域専用メモリ,および他コンピュータノードのデータ転送装置と接続され、コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記ページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ前記主記憶のページから、ページがスワップアウトされていれば前記スワップ領域専用メモリのページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記主記憶のページに、ページがスワップアウトされていれば前記スワップ領域専用メモリのページにデータを書き込み受信する前記データ転送装置とを有することを特徴とする。
【0027】
また、本発明のコンピュータノード間データ転送システムは、前記データ転送装置が、前記コンピュータノードの主記憶に接続され該主記憶からの送信データの読み出しおよび該主記憶への受信データの書き込みを物理アドレスで行うとともに前記主記憶のページテーブルの索引を行うDMA手段と、メモリマップドIO等でコンピュータノードに接続されOSおよびプロセスからデータ転送装置へのアクセスを提供するスレーブ手段と、前記スワップ領域専用メモリへのデータの書き込みおよび読み出しを物理アドレスで行うメモリ制御手段と、OSに対して割り込みを通知する割り込み手段と、他コンピュータノードのデータ転送装置のデータ受信手段に接続されるデータ送信手段と、他コンピュータノードのデータ転送装置のデータ送信手段に接続されるデータ受信手段と、前記DMA手段,前記スレーブ手段,前記メモリ制御手段,前記割り込み手段,前記データ送信手段および前記データ受信手段を制御するデータ転送制御手段とから構成されることを特徴とする。
【0028】
さらに、本発明のコンピュータノード間データ転送システムは、前記データ転送装置が、前記コンピュータノードの主記憶に接続され該主記憶からの送信データの読み出しおよび該主記憶への受信データの書き込みを物理アドレスで行うとともに前記主記憶のページテーブルの索引を行うDMA手段と、メモリマップドIO等でコンピュータノードに接続されOSおよびプロセスからデータ転送装置へのアクセスを提供するスレーブ手段と、前記スワップ領域専用メモリへのデータの書き込みおよび読み出しを物理アドレスで行うメモリ制御手段と、OSに対して割り込みを通知する割り込み手段と、他コンピュータノードのデータ転送装置のデータ受信手段に接続されるデータ送信手段と、他コンピュータノードのデータ転送装置のデータ送信手段に接続されるデータ受信手段と、前記主記憶上のページテーブルの一部をキャッシュとしてコンピュータノードのプロセス毎の仮想アドレスと物理アドレスとの対応をページ単位で保持し、データ転送時に各プロセスの仮想記憶空間をアクセスする際に仮想アドレスから物理アドレスへの変換に使用されるとともに属性として対象ページがコンピュータノードの主記憶,スワップ領域専用メモリ,スワップインまたはスワップアウト動作中のどの状態にあるかを保持するアドレス変換テーブルと、前記DMA手段,前記スレーブ手段,前記メモリ制御手段,前記割り込み手段,前記データ送信手段,前記データ受信手段および前記アドレス変換テーブルを制御するデータ転送制御手段とから構成されることを特徴とする。
【0029】
さらにまた、本発明のコンピュータノード間データ転送システムは、
仮想記憶方式を採用するOSを搭載しそれぞれ主記憶を有する2つのコンピュータノードが各OSの管理下にある2つのデータ転送装置を介して互いに接続されたコンピュータノード間データ転送システムにおいて、主記憶に設けられ、コンピュータノードのプロセスの仮想記憶空間を実現するために実装され、主記憶からスワップアウトされたページを保持するとともに、コンピュータノードのOSがデータ転送装置に転送を要求することにより主記憶からのスワップアウトおよび主記憶へのスワップイン動作が行われるスワップ領域と、OSにより管理され、コンピュータノードのプロセスIDおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持するとともに、属性として対象ページがコンピュータノードのスワップ領域を除いた主記憶,スワップ領域,スワップインまたはスワップアウト動作中のどの状態にあるかを保持するページテーブルとを有し、
前記データ転送装置が、前記コンピュータノードの主記憶に接続され該主記憶からの送信データの読み出しおよび該主記憶への受信データの書き込みを物理アドレスで行うとともに前記主記憶のページテーブルの索引を行うDMA手段と、メモリマップドIO等でコンピュータノードに接続されOSおよびプロセスからデータ転送装置へのアクセスを提供するスレーブ手段と、前記スワップ領域へのデータの書き込みおよび読み出しを物理アドレスで行うメモリ制御手段と、OSに対して割り込みを通知する割り込み手段と、他コンピュータノードのデータ転送装置のデータ受信手段に接続されるデータ送信手段と、他コンピュータノードのデータ転送装置のデータ送信手段に接続されるデータ受信手段と、前記DMA手段,前記スレーブ手段,前記メモリ制御手段,前記割り込み手段,前記データ送信手段および前記データ受信手段を制御するデータ転送制御手段とを有し、
コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記ページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ前記スワップ領域を除いた主記憶のページから、ページがスワップアウトされていれば前記スワップ領域のページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記スワップ領域を除いた主記憶のページに、ページがスワップアウトされていれば前記スワップ領域のページにデータを書き込み受信することを特徴とする。
【0030】
また、本発明のコンピュータノード間データ転送システムは、仮想記憶方式を採用するOSを搭載しそれぞれ主記憶を有する2つのコンピュータノードが各OSの管理下にある2つのデータ転送装置を介して互いに接続されたコンピュータノード間データ転送システムにおいて、コンピュータノードのプロセスの仮想記憶空間を実現するために実装され、主記憶からスワップアウトされたページを保持するとともに、コンピュータノードのOSがデータ転送装置に転送を要求することにより主記憶からのスワップアウトおよび主記憶へのスワップイン動作が行われ前記データ転送装置と接続するスワップ領域専用磁気記憶装置と、OSにより管理され、コンピュータノードのプロセスIDおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持するとともに、属性として対象ページがコンピュータノードの主記憶,スワップ領域専用磁気記憶装置,スワップインまたはスワップアウト動作中のどの状態にあるかを保持するページテーブルとを有し、
前記データ転送装置が、前記コンピュータノードの主記憶に接続され該主記憶からの送信データの読み出しおよび該主記憶への受信データの書き込みを物理アドレスで行うとともに前記主記憶のページテーブルの索引を行うDMA手段と、メモリマップドIO等でコンピュータノードに接続されOSおよびプロセスからデータ転送装置へのアクセスを提供するスレーブ手段と、前記スワップ領域専用磁気記憶装置へのデータの書き込みおよび読み出しを物理アドレスで行うメモリ制御手段と、OSに対して割り込みを通知する割り込み手段と、他コンピュータノードのデータ転送装置のデータ受信手段に接続されるデータ送信手段と、他コンピュータノードのデータ転送装置のデータ送信手段に接続されるデータ受信手段と、前記DMA手段,前記スレーブ手段,前記メモリ制御手段,前記割り込み手段,前記データ送信手段および前記データ受信手段を制御するデータ転送制御手段とを有し、
コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記ページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ前記主記憶のページから、ページがスワップアウトされていれば前記スワップ領域専用磁気記憶装置のページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記主記憶のページに、ページがスワップアウトされていれば前記スワップ領域専用磁気記憶装置のページにデータを書き込み受信することを特徴とする。
【0031】
他方、本発明のデータ転送装置は、仮想記憶方式を採用するOSを搭載し主記憶を有し、プロセスIDおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持するとともに、属性として対象ページがコンピュータノードの主記憶、スワップ領域専用メモリ、スワップインまたはスワップアウト動作中のどの状態にあるかを保持するページテーブルを有するコンピュータノードと、
コンピュータノードのプロセスの仮想記憶空間を実現するために実装され、主記憶からスワップアウトされたページを保持するとともに、コンピュータノードのOSが転送を要求することにより主記憶からのスワップアウトおよび主記憶へのスワップイン動作が行われるスワップ領域を有するスワップ領域専用メモリとに接続し、
コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記ページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ前記主記憶のページから、ページがスワップアウトされていれば前記スワップ領域専用メモリのページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記主記憶のページに、ページがスワップアウトされていれば前記スワップ領域専用メモリのページにデータを書き込み受信することを特徴とする。
また、本発明のデータ転送装置は、仮想記憶方式を採用するOSを搭載し主記憶を有し、プロセスIDおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持するとともに、属性として対象ページがコンピュータノードの主記憶、スワップ領域専用メモリ、スワップインまたはスワップアウト動作中のどの状態にあるかを保持するページテーブルを有するコンピュータノードと、
コンピュータノードのプロセスの仮想記憶空間を実現するために実装され、主記憶からスワップアウトされたページを保持するとともに、コンピュータノードのOSが転送を要求することにより主記憶からのスワップアウトおよび主記憶へのスワップイン動作が行われるスワップ領域専用メモリとに接続し、
コンピュータノードの主記憶に接続され該主記憶からの送信データの読み出しおよび該主記憶への受信データの書き込みを物理アドレスで行うとともに前記主記憶のページテーブルの索引を行うDMA手段と、メモリマップドIO等でコンピュータノードに接続されOSおよびプロセスからデータ転送装置へのアクセスを提供するスレーブ手段と、スワップ領域専用メモリへのデータの書き込みおよび読み出しを物理アドレスで行うメモリ制御手段と、OSに対して割り込みを通知する割り込み手段と、他コンピュータノードのデータ転送装置のデータ受信手段に接続されるデータ送信手段と、他コンピュータノードのデータ転送装置のデータ送信手段に接続されるデータ受信手段と、前記DMA手段,前記スレーブ手段,前記メモリ制御手段,前記割り込み手段,前記データ送信手段および前記データ受信手段を制御するデータ転送制御手段とを有し、
コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記ページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ前記主記憶のページから、ページがスワップアウトされていれば前記スワップ領域専用メモリのページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記主記憶のページに、ページがスワップアウトされていれば前記スワップ領域専用メモリのページにデータを書き込み受信することを特徴とする。
【0032】
また、本発明のデータ転送装置は、仮想記憶方式を採用するOSを搭載し主記憶を有し、プロセスIDおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持するとともに、属性として対象ページがコンピュータノードの主記憶、スワップ領域専用メモリ、スワップインまたはスワップアウト動作中のどの状態にあるかを保持するページテーブルを有するコンピュータノードと、
コンピュータノードのプロセスの仮想記憶空間を実現するために実装され、主記憶からスワップアウトされたページを保持するとともに、コンピュータノードのOSが転送を要求することにより主記憶からのスワップアウトおよび主記憶へのスワップイン動作が行われるスワップ領域専用メモリとに接続し、
コンピュータノードの主記憶に接続され該主記憶からの送信データの読み出しおよび該主記憶への受信データの書き込みを物理アドレスで行うとともに前記主記憶のページテーブルの索引を行うDMA手段と、メモリマップドIO等でコンピュータノードに接続されOSおよびプロセスからデータ転送装置へのアクセスを提供するスレーブ手段と、スワップ領域専用メモリへのデータの書き込みおよび読み出しを物理アドレスで行うメモリ制御手段と、OSに対して割り込みを通知する割り込み手段と、他コンピュータノードのデータ転送装置のデータ受信手段に接続されるデータ送信手段と、他コンピュータノードのデータ転送装置のデータ送信手段に接続されるデータ受信手段と、前記主記憶上のページテーブルの一部をキャッシュとしてコンピュータノードのプロセス毎の仮想アドレスと物理アドレスとの対応をページ単位で保持し、データ転送時に各プロセスの仮想記憶空間をアクセスする際に仮想アドレスから物理アドレスへの変換に使用されるとともに属性として対象ページがコンピュータノードの主記憶,スワップ領域専用メモリ,スワップインまたはスワップアウト動作中のどの状態にあるかを保持するアドレス変換テーブルと、前記DMA手段,前記スレーブ手段,前記メモリ制御手段,前記割り込み手段,前記データ送信手段,前記データ受信手段および前記アドレス変換テーブルを制御するデータ転送制御手段とを有し、
コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記ページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ前記主記憶のページから、ページがスワップアウトされていれば前記スワップ領域専用メモリのページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記主記憶のページに、ページがスワップアウトされていれば前記スワップ領域専用メモリのページにデータを書き込み受信することを特徴とする。
【0033】
さらに、本発明のデータ転送装置は、仮想記憶方式を採用するOSを搭載し主記憶を有し、プロセスIDおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持するとともに、属性として対象ページがコンピュータノードのスワップ領域を除いた主記憶、スワップ領域、スワップインまたはスワップアウト動作中のどの状態にあるかを保持するページテーブルと、
コンピュータノードのプロセスの仮想記憶空間を実現するために実装され、主記憶からスワップアウトされたページを保持するとともに、コンピュータノードのOSがデータ転送装置に転送を要求することにより主記憶からのスワップアウトおよび主記憶へのスワップイン動作が行われるスワップ領域を主記憶に設けたコンピュータノードと接続し、
コンピュータノードの主記憶に接続され該主記憶からの送信データの読み出しおよび該主記憶への受信データの書き込みを物理アドレスで行うとともに前記主記憶のページテーブルの索引を行うDMA手段と、メモリマップドIO等でコンピュータノードに接続されOSおよびプロセスからデータ転送装置へのアクセスを提供するスレーブ手段と、前記主記憶上のスワップ領域へのデータの書き込みおよび読み出しを物理アドレスで行うメモリ制御手段と、OSに対して割り込みを通知する割り込み手段と、他コンピュータノードのデータ転送装置のデータ受信手段に接続されるデータ送信手段と、他コンピュータノードのデータ転送装置のデータ送信手段に接続されるデータ受信手段と、前記DMA手段,前記スレーブ手段,前記メモリ制御手段,前記割り込み手段,前記データ送信手段および前記データ受信手段を制御するデータ転送制御手段とを有し、
コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記ページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ前記スワップ領域を除いた主記憶のページから、ページがスワップアウトされていれば前記スワップ領域のページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記スワップ領域を除いた主記憶のページに、ページがスワップアウトされていれば前記スワップ領域のページにデータを書き込み受信することを特徴とする。
【0034】
さらにまた、本発明のデータ転送装置は、仮想記憶方式を採用するOSを搭載し主記憶を有し、プロセスIDおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持するとともに、属性として対象ページがコンピュータノードの主記憶、スワップ領域専用磁気記憶装置、スワップインまたはスワップアウト動作中のどの状態にあるかを保持するページテーブルを有するコンピュータノードと、
コンピュータノードのプロセスの仮想記憶空間を実現するために実装され、主記憶からスワップアウトされたページを保持するとともに、コンピュータノードのOSが転送を要求することにより主記憶からのスワップアウトおよび主記憶へのスワップイン動作が行われるスワップ領域専用磁気記憶装置とに接続し、
コンピュータノードの主記憶に接続され該主記憶からの送信データの読み出しおよび該主記憶への受信データの書き込みを物理アドレスで行うとともに前記主記憶のページテーブルの索引を行うDMA手段と、メモリマップドIO等でコンピュータノードに接続されOSおよびプロセスからデータ転送装置へのアクセスを提供するスレーブ手段と、スワップ領域専用磁気記憶装置へのデータの書き込みおよび読み出しを物理アドレスで行うメモリ制御手段と、OSに対して割り込みを通知する割り込み手段と、他コンピュータノードのデータ転送装置のデータ受信手段に接続されるデータ送信手段と、他コンピュータノードのデータ転送装置のデータ送信手段に接続されるデータ受信手段と、前記DMA手段,前記スレーブ手段,前記メモリ制御手段,前記割り込み手段,前記データ送信手段および前記データ受信手段を制御するデータ転送制御手段とを有し、
コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記ページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ前記主記憶のページから、ページがスワップアウトされていれば前記スワップ領域専用磁気記憶装置のページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記主記憶のページに、ページがスワップアウトされていれば前記スワップ領域専用磁気記憶装置のページにデータを書き込み受信することを特徴とする。
【0035】
本発明は、自コンピュータノードのプロセスの仮想記憶空間から他コンピュータノードのプロセスの仮想記憶空間にデータを転送するコンピュータノード間データ転送方法およびシステムにおいて、仮想記憶空間を実現するために実装されているスワップ領域を専用のメモリ(スワップ領域専用メモリ)に実装することにより、転送元または転送先のデータがスワップアウトされた仮想記憶空間にあってもOSの介在なしに転送を可能とするようにしたことを特徴としている。
【0036】
図1において、スワップ領域専用メモリ20は、コンピュータノード30で実行されているプロセス33の仮想記憶空間34のうちの主記憶31からスワップアウトされたページ36をページ22として保持する。
【0037】
データ転送装置10は、コンピュータノード30のプロセス33の仮想記憶空間34からデータを送信する際にページテーブル38を索引し、送信データの存在するページ35がスワップアウトされていなければ主記憶31のページ37から、またページ36がスワップアウトされていればスワップ領域専用メモリ20のページ22からデータを読み出し送信する。
【0038】
また、データ転送装置10は、データを受信する際にページテーブル38を索引し、受信データを格納するページ35がスワップアウトされていなければ主記憶31のページ37に、またページ36がスワップアウトされていればスワップ領域専用メモリ20のページ22にデータを書き込み受信する。
【0039】
このようにして、従来のコンピュータノード間データ転送システムでは、コンピュータノード30のOS32が管理する磁気ディスク装置70(図16参照)に存在するスワップ領域71を、本発明では、データ転送装置10の制御するスワップ領域専用メモリ20に実装して管理しているので、転送データが存在する仮想記憶空間34内のページ36がスワップ領域にスワップアウト中であっても、OS32の介在なしにデータ転送が可能となる。
【0040】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【0041】
(1)第1の実施の形態
図1は、本発明の第1の実施の形態に係るコンピュータノード間データ転送システムの構成を示すブロック図である。本実施の形態に係るコンピュータノード間データ転送システムは、コンピュータノード30および30’と、スワップ領域専用メモリ20および20’と、データ転送装置10および10’とから、その主要部が構成されている。
【0042】
スワップ領域専用メモリ20は、コンピュータノード30のプロセス33の仮想記憶空間34を実現するために実装され、主記憶31からスワップアウトされたページ36をページ22として保持する。主記憶31からスワップ領域専用メモリ20へのスワップアウト,およびスワップ領域専用メモリ20から主記憶31へのスワップイン動作は、コンピュータノード30のOS32がデータ転送装置10に転送を要求することにより行われる。換言すれば、図16に示した従来のコンピュータノード間データ転送システムにおいて、OS32が管理する磁気ディスク装置70に存在するスワップ領域71を、データ転送装置10が管理するスワップ領域専用メモリ20に実装する構成になっている。
【0043】
仮想記憶空間34を実現するために実装されるページテーブル38は、OS32により管理され、図2に示すように、仮想アドレスと物理アドレスとの対応をページ単位で保持し、コンピュータノード30のプロセスID(IDentification)および仮想アドレスで索引される。また、ページテーブル38は、属性39として、対象ページがコンピュータノード30の主記憶31,スワップ領域専用メモリ20,スワップインまたはスワップアウト動作中のどの状態にあるかを保持する。なお、ページテーブル38は、図16に示した従来のコンピュータノード間データ転送システムにおけるのと同様の構成であり、スワップアウト先が従来のコンピュータノード30のOS32が管理する磁気ディスク装置70に存在するスワップ領域71か、本発明のデータ転送装置10が管理するスワップ領域専用メモリ20であるかが異なるだけである。
【0044】
データ転送装置10は、コンピュータノード30の主記憶31,スワップ領域専用メモリ20,および他コンピュータノード30’のデータ転送装置10’と接続され、コンピュータノード30のプロセス33の仮想記憶空間34からデータを送信する際にページテーブル38を索引し、送信データの存在するページ35がスワップアウトされていなければ主記憶31のページ37から、またページ36がスワップアウトされていればスワップ領域専用メモリ20のページ22からデータを読み出し送信する。また、データ転送装置10は、データを受信する際にページテーブル38を索引し、受信データを格納するページ35がスワップアウトされていなければ主記憶31のページ37に、またページ36がスワップアウトされていればスワップ領域専用メモリ20のページ22にデータを書き込み受信する。
【0045】
図3は、データ転送装置10のさらに詳細な構成を示すブロック図である。データ転送装置10は、DMA手段120と、スレーブ手段130と、メモリ制御手段140と、割り込み手段180と、データ送信手段150と、データ受信手段160と、データ転送制御手段110とから構成されている。
【0046】
DMA手段120は、コンピュータノード30の主記憶31に接続され、主記憶31からの送信データの読み出しおよび主記憶31への受信データの書き込みを物理アドレスで行う。また、DMA手段120は、主記憶31のページテーブル38の索引を行う。
【0047】
スレーブ手段130は、メモリマップドIO等でコンピュータノード30に接続され、OS32およびプロセス33からデータ転送装置10へのアクセスを提供する。
【0048】
メモリ制御手段140は、スワップ領域専用メモリ20へのデータの書き込みおよび読み出しを物理アドレスで行う。
【0049】
データ送信手段150およびデータ受信手段160は、他コンピュータノード30’のデータ転送装置10’のデータ受信手段およびデータ送信手段にそれぞれ接続される。
【0050】
割り込み手段180は、OS32に対して割り込みを通知する。
【0051】
以上、第1の実施の形態に係るコンピュータノード間データ転送システムの構成について述べたが、仮想記憶方式,ならびにDMA手段120,スレーブ手段130,メモリ制御手段140,割り込み手段180,データ送信手段150およびデータ受信手段160は、当業者にとってよく知られており、また本発明とは直接関係しないので、その詳細な構成は省略する。
【0052】
次に、このように構成された第1の実施の形態に係るコンピュータノード間データ転送システムにおけるデータ転送装置10、特にデータ転送制御手段110の送信動作および受信動作を、図4および図5に示すフローチャートを使用して説明する。
【0053】
図4において、まず、コンピュータノード30のプロセス33によりデータ送信要求がデータ転送装置10のスレーブ手段130に与えられる(ステップS101)。データ送信要求は、転送元および転送先のプロセスID,転送元および転送先の仮想アドレス,ならびに転送長からなる。データ転送制御手段110は、DMA手段120経由で、転送元のプロセスIDおよび仮想アドレスでページテーブル38を索引し、送信データの存在するページの物理アドレスおよび属性を取得する(ステップS102)。プロセスIDおよび仮想アドレスでページテーブル38を索引して物理アドレスを求める手段は、仮想記憶方式で一般的に使われているものと同様である。データ転送制御手段110は、属性がスワップインまたはスワップアウト動作中であったならば(ステップS103)、ページテーブル38の索引を繰り返し、スワップインまたはスワップアウト動作が完了するまで待つ。属性が主記憶31ならば、DMA手段120は、取得した物理アドレスにより主記憶31から送信データを読み出す(ステップS104)。属性がスワップ領域専用メモリ20ならば、メモリ制御手段140は、取得した物理アドレスによりスワップ領域専用メモリ20から送信データを読み出す(ステップS105)。次に、データ送信手段150は、読み出した送信データを送信し(ステップS106)、送信動作を完了する。送信データには、転送先のプロセスID,仮想アドレスおよび転送長が含まれる。
【0054】
図5において、データ受信手段160が受信データを受信すると(ステップS111)、データ転送制御手段110は、DMA手段120経由で、受信データに含まれる転送先のプロセスIDおよび仮想アドレスでページテーブル38を索引し、受信データを格納するページの物理アドレスおよび属性を取得する(ステップS112)。プロセスIDおよび仮想アドレスでページテーブル38を索引して物理アドレスを求める手段は、仮想記憶方式で一般的に使われているものと同様である。データ転送制御手段110は、属性がスワップインまたはスワップアウト動作中であったならば(ステップS113)、ページテーブル38の索引を繰り返し、スワップインまたはスワップアウト動作が完了するまで待つ。属性が主記憶31ならば、DMA手段120は、取得した物理アドレスにより主記憶31へ受信データを書き込む(ステップS114)。属性がスワップ領域専用メモリ20ならば、メモリ制御手段140は、取得した物理アドレスによりスワップ領域専用メモリ20へ受信データを書き込む(ステップS115)。以上により、受信動作が完了する。
【0055】
次に、図6および図7に示すフローチャートを使用して、スワップアウトおよびスワップイン時のOS32およびデータ転送装置10の動作を説明する。
【0056】
図6において、スワップアウト時、コンピュータノード30のOS32は、ページテーブル38のスワップアウト対象ページの属性をスワップアウト動作中に変更し、スレーブ手段130に対してスワップアウトを要求する(ステップS121)。スワップアウト要求は、スワップアウト対象ページの主記憶31における物理アドレス,およびスワップアウト先のスワップ領域専用メモリ20における物理アドレスからなる。データ転送制御手段110は、DMA手段120経由で、OS32により指定された主記憶31の物理アドレスから該当するページデータを読み出す(ステップS122)。さらに、メモリ制御手段140は、OS32により指定されたスワップ領域専用メモリ20の物理アドレスに対して該ページデータを書き込む(ステップS123)。ページデータの転送が完了すると、割り込み手段180は、転送完了をOS32に通知する(ステップS124)。ページデータ転送完了により、OS32は、ページテーブル38のスワップアウト対象ページの物理アドレスを上記ページデータを書き込んだスワップ領域専用メモリ20の物理アドレスに変更し、最後に属性をスワップ領域専用メモリ20に変更する(ステップS125)。以上により、スワップアウト動作が完了する。なお、スワップアウト先が磁気ディスク装置70からスワップ領域専用メモリ20に変わっただけで、OS32の動作は、従来のコンピュータノード間データ転送システムの場合と同様である。
【0057】
図7において、スワップイン時、コンピュータノード30のOS32は、ページテーブル38のスワップイン対象ページの属性をスワップイン動作中に変更し、スレーブ手段130に対してスワップインを要求する(ステップS131)。スワップイン要求は、スワップイン対象ページの主記憶31における物理アドレス,およびスワップイン元のスワップ領域専用メモリ20における物理アドレスからなる。データ転送制御手段110は、メモリ制御手段140経由で、OS32により指定されたスワップ領域専用メモリ20の物理アドレスから該当するページデータを読み出す(ステップS132)。さらに、DMA制御手段120は、OS32により指定された主記憶31の物理アドレスに対して該ページデータを書き込む(ステップS133)。ページデータの転送が完了すると、割り込み手段180は、転送完了をOS32に通知する(ステップS134)。ページデータ転送完了により、OS32は、ページテーブル38のスワップイン対象ページの物理アドレスを上記ページデータを書き込んだ主記憶31の物理アドレスに変更し、最後に属性を主記憶31に変更する(ステップS135)。以上により、スワップイン動作が完了する。なお、スワップイン元が磁気ディスク装置70からスワップ領域専用メモリ20に変わるだけで、OS32の動作は、従来のコンピュータノード間データ転送システムの場合と同様である。
【0058】
このように、第1の実施の形態によれば、スワップ領域をデータ転送装置10が直接アクセスできるスワップ領域専用メモリ20に実装しているので、転送元または転送先のページがスワップアウトされた仮想記憶空間34にあってもOS32の介在なしにデータ転送を行うことができる。
【0059】
また、従来は磁気ディスク装置70等の低速の記憶媒体に実装されていたスワップ領域を高速のスワップ領域専用メモリ20に実装しているので、スワップアウトおよびスワップイン動作を高速にできる。
【0060】
(2)第2の実施の形態
図8は、本発明の第2の実施の形態に係るコンピュータノード間データ転送システムにおけるデータ転送装置10の構成を示すブロック図である。本実施の形態に係るコンピュータノード間データ転送システムは、その基本的構成は図1に示した通りであるが、第1の実施の形態に係るコンピュータノード間データ転送システムに比べて、ページテーブル38へのアクセスについてさらに工夫している。詳しくは、データ転送装置10に、主記憶31上のページテーブル38の一部をキャッシュとして保持するアドレス変換テーブル190を設けている。
【0061】
図9を参照すると、アドレス変換テーブル190は、コンピュータノード30のプロセス毎の仮想アドレスと物理アドレスとの対応をページ単位で保持し、データ転送時に各プロセス33の仮想記憶空間34をアクセスする際に仮想アドレスから物理アドレスへの変換に使用される。また、アドレス変換テーブル190は、属性191として、対象ページがコンピュータノード30の主記憶31,スワップ領域専用メモリ20,スワップインまたはスワップアウト動作中のどの状態にあるかを保持する。
【0062】
図10および図11において、DMA手段120によりページテーブル38へアクセスする前に、アドレス変換テーブル190を索引するところが、第1の実施の形態と異なる。アドレス変換テーブル190を索引し、プロセスIDおよび仮想アドレスがマッチした場合、対応する仮想アドレスおよび属性を使用し、マッチしない場合のみ、DMA手段120によりページテーブル38へアクセスする。
【0063】
また、図12および図13において、スワップアウト動作およびスワップイン動作時、アドレス変換テーブル190を索引し、該ページがアドレス変換テーブル190に登録されている場合、主記憶31上のページテーブル28との整合性をとるために、変更が行われることが、第1の実施の形態と異なる。
【0064】
次に、図8のデータ転送装置10、特にデータ転送制御手段110の送信動作および受信動作を、図10および図11に示すフローチャートを使用して説明する。
【0065】
図10において、まず、コンピュータノード30のプロセス33によりデータ送信要求がデータ転送装置10のスレーブ手段130に与えられる(ステップS201)。データ送信要求は、転送元および転送先のプロセスID,転送元および転送先の仮想アドレス,ならびに転送長からなる。データ転送制御手段110は、転送元のプロセスIDおよび仮想アドレスでアドレス変換テーブル190を索引し(ステップS202)、送信データの存在するページの物理アドレスおよび属性が索引できたかどうかを判定する(ステップS203)。データ転送制御手段110は、索引できなければ、DMA手段120経由で、転送元のプロセスIDおよび仮想アドレスでページテーブル38を索引し、送信データの存在するページの物理アドレスおよび属性を取得し(ステップS204)、転送元のプロセスIDおよび仮想アドレスで送信データの存在するページの物理アドレスおよび属性をアドレス変換テーブル190に登録する(ステップS205)。プロセスIDおよび仮想アドレスでアドレス変換テーブル190およびページテーブル38を索引して物理アドレスを求める手段は、仮想記憶方式で一般的に使われているものと同様である。次に、データ転送制御手段110は、属性がスワップインまたはスワップアウト動作中であったならば(ステップS206)、アドレス変換テーブル190およびページテーブル38の索引を繰り返し、スワップインまたはスワップアウト動作が完了するまで待つ。属性が主記憶31ならば、DMA手段120は、取得した物理アドレスにより主記憶31から送信データを読み出す(ステップS207)。属性がスワップ領域専用メモリ20ならば、メモリ制御手段140は、取得した物理アドレスによりスワップ領域専用メモリ20から送信データを読み出す(ステップS208)。次に、データ送信手段150は、読み出した送信データを送信し(ステップS209)、送信動作を完了する。送信データには、転送先のプロセスID,仮想アドレスおよび転送長が含まれる。
【0066】
図11において、データ受信手段160が受信データを受信すると(ステップS211)、データ転送制御手段110は、受信データに含まれる転送先のプロセスIDおよび仮想アドレスでアドレス変換テーブル190を索引し(ステップS212)、受信データを書き込むページの物理アドレスおよび属性が索引できたかどうかを判定する(ステップS213)。データ転送制御手段110は、索引できなければ、DMA手段120経由で、転送先のプロセスIDおよび仮想アドレスでページテーブル38を索引し、受信データを書き込むページの物理アドレスおよび属性を取得し(ステップS214)、転送先のプロセスIDおよび仮想アドレスで受信データを書き込むページの物理アドレスおよび属性をアドレス変換テーブル190に登録する(ステップS215)。プロセスIDおよび仮想アドレスでアドレス変換テーブル190およびページテーブル38を索引して物理アドレスを求める手段は、仮想記憶方式で一般的に使われているものと同様である。データ転送制御手段110は、属性がスワップインまたはスワップアウト動作中であったならば(ステップS216)、アドレス変換テーブル190およびページテーブル38の索引を繰り返し、スワップインまたはスワップアウト動作が完了するまで待つ。属性が主記憶31ならば、DMA手段120は、取得した物理アドレスにより主記憶31へ受信データを書き込む(ステップS217)。属性がスワップ領域専用メモリ20ならば、メモリ制御手段140は、取得した物理アドレスによりスワップ領域専用メモリ20へ受信データを書き込む(ステップS218)。以上により、受信動作が完了する。
【0067】
次に、図12および図13に示すフローチャートを使用して、スワップアウトおよびスワップイン時のOS32,およびデータ転送装置10、特にデータ転送制御手段110の動作を説明する。
【0068】
図12において、スワップアウト時、コンピュータノード30のOS32は、ページテーブル38のスワップアウト対象ページの属性をスワップアウト動作中に変更し、スレーブ手段130に対してスワップアウトを要求する(ステップS221)。スワップアウト要求は、スワップアウト対象ページの主記憶31における物理アドレス,およびスワップアウト先のスワップ領域専用メモリ20における物理アドレスからなる。データ転送制御手段110は、アドレス変換テーブル190の属性にスワップアウト動作中を登録する(ステップS222)。次に、データ転送制御手段110は、DMA手段120経由で、OS32により指定された主記憶31の物理アドレスから該当するページデータを読み出す(ステップS223)。さらに、メモリ制御手段140は、OS32により指定されたスワップ領域専用メモリ20の物理アドレスに対して該ページデータを書き込む(ステップS224)。データ転送制御手段110は、アドレス変換テーブル190の物理アドレスをスワップ領域専用メモリ20の物理アドレスに変更するとともに属性をスワップ領域専用メモリ20に変更する(ステップS225)。ページデータの転送が完了すると、割り込み手段180は、転送完了をOS32に通知する(ステップS226)。ページデータ転送完了により、OS32は、ページテーブル38のスワップアウト対象ページの物理アドレスを上記ページデータを書き込んだスワップ領域専用メモリ20の物理アドレスに変更し、最後に属性をスワップ領域専用メモリ20に変更する(ステップS227)。以上により、スワップアウト動作が完了する。
【0069】
図13において、スワップイン時、コンピュータノード30のOS32は、ページテーブル38のスワップイン対象ページの属性をスワップイン動作中に変更し、スレーブ手段130に対してスワップインを要求する(ステップS231)。スワップイン要求は、スワップイン対象ページの主記憶31における物理アドレス,およびスワップイン元のスワップ領域専用メモリ20における物理アドレスからなる。データ転送制御手段110は、アドレス変換テーブル190の属性をスワップイン動作中を変更する(ステップS232)。次に、データ転送制御手段110は、メモリ制御手段140経由で、OS32により指定されたスワップ領域専用メモリ20の物理アドレスから該当するページデータを読み出す(ステップS233)。さらに、DMA制御手段120は、OS32により指定された主記憶31の物理アドレスに対して該ページデータを書き込む(ステップS234)。データ転送制御手段110は、アドレス変換テーブル190の物理アドレスを主記憶31の物理アドレスに変更するとともに属性を主記憶31に変更する(ステップS235)。ページデータの転送が完了すると、割り込み手段180は、転送完了をOS32に通知する(ステップS236)。ページデータ転送完了により、OS32は、ページテーブル38のスワップイン対象ページの物理アドレスを上記ページデータを書き込んだ主記憶31の物理アドレスに変更し、最後に属性を主記憶31に変更する(ステップS237)。以上により、スワップイン動作が完了する。
【0070】
なお、仮想記憶方式でページテーブル38をアクセスする頻度を減らして性能向上をはかるために、ページテーブル38のキャッシュを持つことは、CPU(Central Processing Unit)でのTLB(Translation lookaside Buffer)実装等、当業者にとってよく知られており、その詳細な構成および動作は省略する。
【0071】
このように、第2の実施の形態では、データ転送装置10内に、主記憶31上のページテーブル38の一部をキャッシュとして保持するアドレス変換テーブル190を設けているので、データ転送の際に仮想アドレスから物理アドレスへの変換のためにDMA手段120によってページテーブル38を毎回アクセスする必要がなくなり、データ転送がより高速に実行できるという利点がある。
【0072】
(3)第3の実施の形態
図14は、本発明の第3の実施の形態に係るコンピュータノード間データ転送システムにおけるデータ転送装置10の構成を示すブロック図である。本実施の形態に係るコンピュータノード間データ転送システムは、図3に示した第1の実施の形態に係るコンピュータノード間データ転送システムに比べて、スワップ領域21についてさらに工夫している。詳しくは、スワップ領域21がコンピュータノード30の主記憶31上に置かれ、スワップ領域21へのアクセスはDMA手段120によって行われることが、第1の実施の形態に係るコンピュータノード間データ転送システムと異なる。
【0073】
このように構成された第3の実施の形態に係るコンピュータノード間データ転送システムでは、スワップ領域21をコンピュータノード30の主記憶31上に設けているので、データ転送装置10にスワップ領域専用メモリ20およびメモリ制御手段140を設ける必要がなく、データ転送装置10のハードウエア量を削減できるという利点がある。
【0074】
(4)第4の実施の形態
図15は、本発明の第4の実施の形態に係るコンピュータノード間データ転送システムにおけるデータ転送装置10の構成を示すブロック図である。本実施の形態に係るコンピュータノード間データ転送システムは、図1に示した第1の実施の形態に係るコンピュータノード間データ転送システムに比べて、スワップ領域を設ける媒体についてさらに工夫している。詳しくは、第1の実施の形態に係るコンピュータノード間データ転送システムにおけるスワップ領域専用メモリ20の代替として、スワップ領域専用磁気ディスク装置72を用いるようにしている。また、これに伴い、メモリ制御手段140をディスク制御手段170に置換している。スワップ領域専用磁気ディスク装置72は、コンピュータノード30で実行されているプロセス33の仮想記憶空間34のうちの主記憶31からスワップアウトされたページ36を保持する。ディスク制御手段170は、スワップ領域専用磁気ディスク装置72への書き込みおよび読み出しを物理アドレスにより行う。
【0075】
このように構成された第4の実施の形態に係るコンピュータノード間データ転送システムでは、スワップ領域専用メモリ20の代わりにスワップ領域専用磁気ディスク装置72を設けているので、スワップ領域に必要な記憶容量を低コストで実現できる。
【0076】
なお、第4の実施の形態では、スワップ領域専用磁気ディスク装置72として、通常の磁気ディスク装置を用いているが、キャッシュを持たせた高速な磁気ディスク装置,多重化により信頼性および高速性を持たせたRAID(Redundant Arrays of Inexpensive Disks)装置,およびより低コストで実現できるテープ装置または光磁気ディスク装置を用いることもできる。
【0077】
【発明の効果】
以上説明したように、本発明においては、以下のような効果を奏する。
【0078】
第1の効果は、スワップ領域をデータ転送装置が直接アクセスできる専用のメモリに実装しているので、転送元または転送先のデータがスワップアウトされた仮想記憶空間にあってもOSの介在なしにデータを転送できることである。
【0079】
第2の効果は、従来は磁気ディスク装置等の低速の記憶媒体に実装されていたスワップ領域を高速のメモリに実装しているので、スワップアウトおよびスワップイン動作が高速にできることである。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係るコンピュータノード間データ転送システムの構成を示すブロック図である。
【図2】図1中のページテーブルの内容を示す図である。
【図3】図1中のデータ転送装置のさらに詳細な構成を示すブロック図である。
【図4】図3中のデータ転送装置の送信動作を示すフローチャートである。
【図5】図3中のデータ転送装置の受信動作を示すフローチャートである。
【図6】図3中のOSおよびデータ転送装置のスワップアウト時の動作を説明するフローチャートである。
【図7】 図3中のOSおよびデータ転送装置のスワップイン時の動作を説明するフローチャートである。
【図8】本発明の第2の実施の形態に係るコンピュータノード間データ転送システムにおけるデータ転送装置のより詳細な構成を示すブロック図である。
【図9】図8中のアドレス変換テーブルの内容を示す図である。
【図10】図8中のデータ転送装置の送信動作を示すフローチャートである。
【図11】図8中のデータ転送装置の受信動作を示すフローチャートである。
【図12】図8中のOSおよびデータ転送装置のスワップアウト時の動作を説明するフローチャートである。
【図13】 図8中のOSおよびデータ転送装置のスワップイン時の動作を説明するフローチャートである。
【図14】本発明の第3の実施の形態に係るコンピュータノード間転送システムにおけるデータ転送装置のより詳細な構成を示すブロック図である。
【図15】本発明の第4の実施の形態に係るコンピュータノード間転送システムにおけるデータ転送装置のより詳細な構成を示すブロック図である。
【図16】従来のコンピュータノード間データ転送システムを示すブロック図である。
【図17】図16中のデータ転送装置のさらに詳細な構成を示すブロック図である。
【図18】図17中のデータ転送装置の送信動作を示すフローチャートである。
【図19】図17中のデータ転送装置の受信動作を示すフローチャートである。
【図20】図17中のOSおよび磁気ディスク装置のスワップアウト時の動作を示すフローチャートである。
【図21】図17中のOSおよび磁気ディスク装置のスワップイン時の動作を示すフローチャートである。
【符号の説明】
10,10’ データ転送装置
20,20’ スワップ領域専用メモリ
21 スワップ領域
22,22’ ページ
30,30’ コンピュータノード
31,31’ 主記憶
32,32’ OS
33,33’ プロセス
34,34’ 仮想記憶空間
35,35’ ページ
36,36’ スワップアウトされたページ
37,37’ ページ
38,38’ ページテーブル
39 属性
72 スワップ領域専用磁気ディスク装置
110 データ転送制御手段
120 DMA手段
130 スレーブ手段
140 メモリ制御手段
150 データ送信手段
160 データ受信手段
180 割り込み手段
190 アドレス変換テーブル
191 属性

Claims (12)

  1. 仮想記憶方式を採用するOSを搭載する2つのコンピュータノードが各OSの管理下にある2つのデータ転送装置を介して互いに接続されたコンピュータノード間データ転送システムで、一方のコンピュータノードのプロセスの仮想記憶空間から他方のコンピュータノードのプロセスの仮想記憶空間にデータを転送するコンピュータノード間データ転送方法において、前記データ転送装置が、コンピュータノードで実行されているプロセスの仮想記憶空間のうちの主記憶からスワップアウトされたページを保持するスワップ領域専用メモリを備え、コンピュータノードのプロセスの仮想記憶空間からデータを送信する際にページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ主記憶のページから、ページがスワップアウトされていれば前記スワップ領域専用メモリのページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記主記憶のページに、ページがスワップアウトされていれば前記スワップ領域専用メモリのページにデータを書き込み受信することを特徴とするコンピュータノード間データ転送方法。
  2. 仮想記憶方式を採用するOSを搭載する2つのコンピュータノードが各OSの管理下にある2つのデータ転送装置を介して互いに接続されたコンピュータノード間データ転送システムで、一方のコンピュータノードのプロセスの仮想記憶空間から他方のコンピュータノードのプロセスの仮想記憶空間にデータを転送するコンピュータノード間データ転送方法において、前記データ転送装置が、コンピュータノードで実行されているプロセスの仮想記憶空間のうちの主記憶からスワップアウトされたページを保持するスワップ領域専用メモリ,および主記憶上のページテーブルのキャッシュを保持するアドレス変換テーブルを備え、コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記アドレス変換テーブルを索引し、索引できなかった場合には前記ページテーブルを索引して前記アドレス変換テーブルを変更し、送信データの存在するページがスワップアウトされていなければ主記憶のページから、ページがスワップアウトされていれば前記スワップ領域専用メモリのページからデータを読み出し送信し、データを受信する際に前記アドレス変換テーブルを索引し、索引できなかった場合には前記ページテーブルを索引して前記アドレス変換テーブルを変更し、受信データを格納するページがスワップアウトされていなければ前記主記憶のページに、ページがスワップアウトされていれば前記スワップ領域専用メモリのページにデータを書き込み受信することを特徴とするコンピュータノード間データ転送方法。
  3. 仮想記憶方式を採用するOSを搭載する2つのコンピュータノードが各OSの管理下にある2つのデータ転送装置を介して互いに接続されたコンピュータノード間データ転送システムにおいて、コンピュータノードのプロセスの仮想記憶空間を実現するために実装され、主記憶からスワップアウトされたページを保持するとともに、コンピュータノードのOSがデータ転送装置に転送を要求することにより主記憶からのスワップアウトおよび主記憶へのスワップイン動作が行われるスワップ領域専用メモリと、OSにより管理され、コンピュータノードのプロセスIDおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持するとともに、属性として対象ページがコンピュータノードの主記憶,スワップ領域専用メモリ,スワップインまたはスワップアウト動作中のどの状態にあるかを保持するページテーブルと、自コンピュータノードの主記憶,スワップ領域専用メモリ,および他コンピュータノードのデータ転送装置と接続され、コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記ページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ前記主記憶のページから、ページがスワップアウトされていれば前記スワップ領域専用メモリのページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記主記憶のページに、ページがスワップアウトされていれば前記スワップ領域専用メモリのページにデータを書き込み受信する前記データ転送装置とを有することを特徴とするコンピュータノード間データ転送システム。
  4. 前記データ転送装置が、前記コンピュータノードの主記憶に接続され該主記憶からの送信データの読み出しおよび該主記憶への受信データの書き込みを物理アドレスで行うとともに前記主記憶のページテーブルの索引を行うDMA手段と、メモリマップドIO等でコンピュータノードに接続されOSおよびプロセスからデータ転送装置へのアクセスを提供するスレーブ手段と、前記スワップ領域専用メモリへのデータの書き込みおよび読み出しを物理アドレスで行うメモリ制御手段と、OSに対して割り込みを通知する割り込み手段と、他コンピュータノードのデータ転送装置のデータ受信手段に接続されるデータ送信手段と、他コンピュータノードのデータ転送装置のデータ送信手段に接続されるデータ受信手段と、前記DMA手段,前記スレーブ手段,前記メモリ制御手段,前記割り込み手段,前記データ送信手段および前記データ受信手段を制御するデータ転送制御手段とから構成されることを特徴とする請求項3記載のコンピュータノード間データ転送システム。
  5. 前記データ転送装置が、前記コンピュータノードの主記憶に接続され該主記憶からの送信データの読み出しおよび該主記憶への受信データの書き込みを物理アドレスで行うとともに前記主記憶のページテーブルの索引を行うDMA手段と、メモリマップドIO等でコンピュータノードに接続されOSおよびプロセスからデータ転送装置へのアクセスを提供するスレーブ手段と、前記スワップ領域専用メモリへのデータの書き込みおよび読み出しを物理アドレスで行うメモリ制御手段と、OSに対して割り込みを通知する割り込み手段と、他コンピュータノードのデータ転送装置のデータ受信手段に接続されるデータ送信手段と、他コンピュータノードのデータ転送装置のデータ送信手段に接続されるデータ受信手段と、前記主記憶上のページテーブルの一部をキャッシュとしてコンピュータノードのプロセス毎の仮想アドレスと物理アドレスとの対応をページ単位で保持し、データ転送時に各プロセスの仮想記憶空間をアクセスする際に仮想アドレスから物理アドレスへの変換に使用されるとともに属性として対象ページがコンピュータノードの主記憶,スワップ領域専用メモリ,スワップインまたはスワップアウト動作中のどの状態にあるかを保持するアドレス変換テーブルと、前記DMA手段,前記スレーブ手段,前記メモリ制御手段,前記割り込み手段,前記データ送信手段,前記データ受信手段および前記アドレス変換テーブルを制御するデータ転送制御手段とから構成されることを特徴とする請求項3記載のコンピュータノード間データ転送システム。
  6. 仮想記憶方式を採用するOSを搭載しそれぞれ主記憶を有する2つのコンピュータノードが各OSの管理下にある2つのデータ転送装置を介して互いに接続されたコンピュータノード間データ転送システムにおいて、
    主記憶に設けられ、コンピュータノードのプロセスの仮想記憶空間を実現するために実装され、主記憶からスワップアウトされたページを保持するとともに、コンピュータノードのOSがデータ転送装置に転送を要求することにより主記憶からのスワップアウトおよび主記憶へのスワップイン動作が行われるスワップ領域と、
    OSにより管理され、コンピュータノードのプロセスIDおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持するとともに、属性として対象ページがコンピュータノードのスワップ領域を除いた主記憶,スワップ領域,スワップインまたはスワップアウト動作中のどの状態にあるかを保持するページテーブルとを有し、
    前記データ転送装置が、前記コンピュータノードの主記憶に接続され該主記憶からの送信データの読み出しおよび該主記憶への受信データの書き込みを物理アドレスで行うとともに前記主記憶のページテーブルの索引を行うDMA手段と、メモリマップドIO等でコンピュータノードに接続されOSおよびプロセスからデータ転送装置へのアクセスを提供するスレーブ手段と、前記スワップ領域へのデータの書き込みおよび読み出しを物理アドレスで行うメモリ制御手段と、OSに対して割り込みを通知する割り込み手段と、他コンピュータノードのデータ転送装置のデータ受信手段に接続されるデータ送信手段と、他コンピュータノードのデータ転送装置のデータ送信手段に接続されるデータ受信手段と、前記DMA手段,前記スレーブ手段,前記メモリ制御手段,前記割り込み手段,前記データ送信手段および前記データ受信手段を制御するデータ転送制御手段とを有し、
    コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記ページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ前記スワップ領域を除いた主記憶のページから、ページがスワップアウトされていれば前記スワップ領域のページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記スワップ領域を除いた主記憶のページに、ページがスワップアウトされていれば前記スワップ領域のページにデータを書き込み受信することを特徴とするコンピュータノード間データ転送システム。
  7. 仮想記憶方式を採用するOSを搭載しそれぞれ主記憶を有する2つのコンピュータノードが各OSの管理下にある2つのデータ転送装置を介して互いに接続されたコンピュータノード間データ転送システムにおいて、
    コンピュータノードのプロセスの仮想記憶空間を実現するために実装され、主記憶からスワップアウトされたページを保持するとともに、コンピュータノードのOSがデータ転送装置に転送を要求することにより主記憶からのスワップアウトおよび主記憶へのスワップイン動作が行われ前記データ転送装置と接続するスワップ領域専用磁気記憶装置と、
    OSにより管理され、コンピュータノードのプロセスIDおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持するとともに、属性として対象ページがコンピュータノードの主記憶,スワップ領域専用磁気記憶装置,スワップインまたはスワップアウト動作中のどの状態にあるかを保持するページテーブルとを有し、
    前記データ転送装置が、前記コンピュータノードの主記憶に接続され該主記憶からの送信データの読み出しおよび該主記憶への受信データの書き込みを物理アドレスで行うとともに前記主記憶のページテーブルの索引を行うDMA手段と、メモリマップドIO等でコンピュータノードに接続されOSおよびプロセスからデータ転送装置へのアクセスを提供するスレーブ手段と、前記スワップ領域専用磁気記憶装置へのデータの書き込みおよび読み出しを物理アドレスで行うメモリ制御手段と、OSに対して割り込みを通知する割り込み手段と、他コンピュータノードのデータ転送装置のデータ受信手段に接続されるデータ送信手段と、他コンピュータノードのデータ転送装置のデータ送信手段に接続されるデータ受信手段と、前記DMA手段,前記スレーブ手段,前記メモリ制御手段,前記割り込み手段,前記データ送信手段および前記データ受信手段を制御するデータ転送制御手段とを有し、
    コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記ページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ前記主記憶のページから、ページがスワップアウトされていれば前記スワップ領域専用磁気記憶装置のページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記主記憶のページに、ページがスワップアウトされていれば前記スワップ領域専用磁気記憶装置のページにデータを書き込み受信することを特徴とするコンピュータノード間データ転送システム。
  8. 仮想記憶方式を採用するOSを搭載し主記憶を有し、プロセスIDおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持するとともに、属性として対象ページがコンピュータノードの主記憶、スワップ領域専用メモリ、スワップインまたはスワップアウト動作中のどの状態にあるかを保持するページテーブルを有するコンピュータノードと、
    コンピュータノードのプロセスの仮想記憶空間を実現するために実装され、主記憶からスワップアウトされたページを保持するとともに、コンピュータノードのOSが転送を要求することにより主記憶からのスワップアウトおよび主記憶へのスワップイン動作が行われるスワップ領域を有するスワップ領域専用メモリとに接続し、
    コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記ページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ前記主記憶のページから、ページがスワップアウトされていれば前記スワップ領域専用メモリのページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記主記憶のページに、ページがスワップアウトされていれば前記スワップ領域専用メモリのページにデータを書き込み受信することを特徴とするデータ転送装置。
  9. 仮想記憶方式を採用するOSを搭載し主記憶を有し、プロセスIDおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持するとともに、属性として対象ページがコンピュータノードの主記憶、スワップ領域専用メモリ、スワップインまたはスワップアウト動作中のどの状態にあるかを保持するページテーブルを有するコンピュータノードと、
    コンピュータノードのプロセスの仮想記憶空間を実現するために実装され、主記憶からスワップアウトされたページを保持するとともに、コンピュータノードのOSが転送を要求することにより主記憶からのスワップアウトおよび主記憶へのスワップイン動作が行われるスワップ領域専用メモリとに接続し、
    コンピュータノードの主記憶に接続され該主記憶からの送信データの読み出しおよび該主記憶への受信データの書き込みを物理アドレスで行うとともに前記主記憶のページテーブルの索引を行うDMA手段と、メモリマップドIO等でコンピュータノードに接続されOSおよびプロセスからデータ転送装置へのアクセスを提供するスレーブ手段と、スワップ領域専用メモリへのデータの書き込みおよび読み出しを物理アドレスで行うメモリ制御手段と、OSに対して割り込みを通知する割り込み手段と、他コンピュータノードのデータ転送装置のデータ受信手段に接続されるデータ送信手段と、他コンピュータノードのデータ転送装置のデータ送信手段に接続されるデータ受信手段と、前記DMA手段,前記スレーブ手段,前記メモリ制御手段,前記割り込み手段,前記データ送信手段および前記データ受信手段を制御するデータ転送制御手段とを有し、
    コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記ページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ前記主記憶のページから、ページがスワップアウトされていれば前記スワップ領域専用メモリのページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記主記憶のページに、ページがスワップアウトされていれば前記スワップ領域専用メモリのページにデータを書き込み受信することを特徴とするデータ転送装置。
  10. 仮想記憶方式を採用するOSを搭載し主記憶を有し、プロセスIDおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持するとともに、属性として対象ページがコンピュータノードの主記憶、スワップ領域専用メモリ、スワップインまたはスワップアウト動作中のどの状態にあるかを保持するページテーブルを有するコンピュータノードと、
    コンピュータノードのプロセスの仮想記憶空間を実現するために実装され、主記憶からスワップアウトされたページを保持するとともに、コンピュータノードのOSが転送を要求することにより主記憶からのスワップアウトおよび主記憶へのスワップイン動作が行われるスワップ領域専用メモリとに接続し、
    コンピュータノードの主記憶に接続され該主記憶からの送信データの読み出しおよび該主記憶への受信データの書き込みを物理アドレスで行うとともに前記主記憶のページテーブルの索引を行うDMA手段と、メモリマップドIO等でコンピュータノードに接続されOSおよびプロセスからデータ転送装置へのアクセスを提供するスレーブ手段と、スワップ領域専用メモリへのデータの書き込みおよび読み出しを物理アドレスで行うメモリ制御手段と、OSに対して割り込みを通知する割り込み手段と、他コンピュータノードのデータ転送装置のデータ受信手段に接続されるデータ送信手段と、他コンピュータノードのデータ転送装置のデータ送信手段に接続されるデータ受信手段と、前記主記憶上のページテーブルの一部をキャッシュとしてコンピュータノードのプロセス毎の仮想アドレスと物理アドレスとの対応をページ単位で保持し、データ転送時に各プロセスの仮想記憶空間をアクセスする際に仮想アドレスから物理アドレスへの変換に使用されるとともに属性として対象ページがコンピュータノードの主記憶,スワップ領域専用メモリ,スワップインまたはスワップアウト動作中のどの状態にあるかを保持するアドレス変換テーブルと、前記DMA手段,前記スレーブ手段,前記メモリ制御手段,前記割り込み手段,前記データ送信手段,前記データ受信手段および前記アドレス変換テーブルを制御するデータ転送制御手段とを有し、
    コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記ページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ前記主記憶のページから、ページがスワップアウトされていれば前記スワップ領域専用メモリのページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記主記憶のページに、ページがスワップアウトされていれば前記スワップ領域専用メモリのページにデータを書き込み受信することを特徴とするデータ転送装置。
  11. 仮想記憶方式を採用するOSを搭載し主記憶を有し、プロセスIDおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持するとともに、属性として対象ページがコンピュータノードのスワップ領域を除いた主記憶、スワップ領域、スワップインまたはスワップアウト動作中のどの状態にあるかを保持するページテーブルと、
    コンピュータノードのプロセスの仮想記憶空間を実現するために実装され、主記憶からスワップアウトされたページを保持するとともに、コンピュータノードのOSがデータ転送装置に転送を要求することにより主記憶からのスワップアウトおよび主記憶へのスワップイン動作が行われるスワップ領域を主記憶に設けたコンピュータノードと接続し、
    コンピュータノードの主記憶に接続され該主記憶からの送信データの読み出しおよび該主記憶への受信データの書き込みを物理アドレスで行うとともに前記主記憶のページテーブルの索引を行うDMA手段と、メモリマップドIO等でコンピュータノードに接続されOSおよびプロセスからデータ転送装置へのアクセスを提供するスレーブ手段と、前記主記憶上のスワップ領域へのデータの書き込みおよび読み出しを物理アドレスで行うメモリ制御手段と、OSに対して割り込みを通知する割り込み手段と、他コンピュータノードのデータ転送装置のデータ受信手段に接続されるデータ送信手段と、他コンピュータノードのデータ転送装置のデータ送信手段に接続されるデータ受信手段と、前記DMA手段,前記スレーブ手段,前記メモリ制御手段,前記割り込み手段,前記データ送信手段および前記データ受信手段を制御するデータ転送制御手段とを有し、
    コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記ページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ前記スワップ領域を除いた主記憶のページから、ページがスワップアウトされていれば前記スワップ領域のページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記スワップ領域を除いた主記憶のページに、ページがスワップアウトされていれば前記スワップ領域のページにデータを書き込み受信することを特徴とするデータ転送装置。
  12. 仮想記憶方式を採用するOSを搭載し主記憶を有し、プロセスIDおよび仮想アドレスで索引され、仮想アドレスと物理アドレスとの対応をページ単位で保持するとともに、属性として対象ページがコンピュータノードの主記憶、スワップ領域専用磁気記憶装置、スワップインまたはスワップアウト動作中のどの状態にあるかを保持するページテーブルを有するコンピュータノードと、
    コンピュータノードのプロセスの仮想記憶空間を実現するために実装され、主記憶からスワップアウトされたページを保持するとともに、コンピュータノードのOSが転送を要求することにより主記憶からのスワップアウトおよび主記憶へのスワップイン動作が行われるスワップ領域専用磁気記憶装置とに接続し、
    コンピュータノードの主記憶に接続され該主記憶からの送信データの読み出しおよび該主記憶への受信データの書き込みを物理アドレスで行うとともに前記主記憶のページテーブルの索引を行うDMA手段と、メモリマップドIO等でコンピュータノードに接続されOSおよびプロセスからデータ転送装置へのアクセスを提供するスレーブ手段と、スワップ領域専用磁気記憶装置へのデータの書き込みおよび読み出しを物理アドレスで行うメモリ制御手段と、OSに対して割り込みを通知する割り込み手段と、他コンピュータノードのデータ転送装置のデータ受信手段に接続されるデータ送信手段と、他コンピュータノードのデータ転送装置のデータ送信手段に接続されるデータ受信手段と、前記DMA手段,前記スレーブ手段,前記メモリ制御手段,前記割り込み手段,前記データ送信手段および前記データ受信手段を制御するデータ転送制御手段とを有し、
    コンピュータノードのプロセスの仮想記憶空間からデータを送信する際に前記ページテーブルを索引し、送信データの存在するページがスワップアウトされていなければ前記主記憶のページから、ページがスワップアウトされていれば前記スワップ領域専用磁気記憶装置のページからデータを読み出し送信し、データを受信する際に前記ページテーブルを索引し、受信データを格納するページがスワップアウトされていなければ前記主記憶のページに、ページがスワップアウトされていれば前記スワップ領域専用磁気記憶装置のページにデータを書き込み受信することを特徴とするデータ転送装置。
JP2001060545A 2001-03-05 2001-03-05 コンピュータノード間データ転送方法およびシステム Expired - Lifetime JP3716752B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001060545A JP3716752B2 (ja) 2001-03-05 2001-03-05 コンピュータノード間データ転送方法およびシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001060545A JP3716752B2 (ja) 2001-03-05 2001-03-05 コンピュータノード間データ転送方法およびシステム

Publications (2)

Publication Number Publication Date
JP2002259212A JP2002259212A (ja) 2002-09-13
JP3716752B2 true JP3716752B2 (ja) 2005-11-16

Family

ID=18919948

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001060545A Expired - Lifetime JP3716752B2 (ja) 2001-03-05 2001-03-05 コンピュータノード間データ転送方法およびシステム

Country Status (1)

Country Link
JP (1) JP3716752B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5433349B2 (ja) * 2009-08-27 2014-03-05 ルネサスエレクトロニクス株式会社 データプロセッサ
CN105095094B (zh) 2014-05-06 2018-11-30 华为技术有限公司 内存管理方法和设备

Also Published As

Publication number Publication date
JP2002259212A (ja) 2002-09-13

Similar Documents

Publication Publication Date Title
US6826653B2 (en) Block data mover adapted to contain faults in a partitioned multiprocessor system
TWI516933B (zh) 用於在本地代理者之記憶體鏡像及遷移之裝置及方法以及電腦可讀取媒體
US7814279B2 (en) Low-cost cache coherency for accelerators
US6128711A (en) Performance optimization and system bus duty cycle reduction by I/O bridge partial cache line writes
KR100389103B1 (ko) 컴퓨터 시스템에서 장치 사이에 데이터를 전송하는 방법, 시스템 및 컴퓨터로 판독가능한 기록매체
US5953538A (en) Method and apparatus providing DMA transfers between devices coupled to different host bus bridges
EP0447145B1 (en) User scheduled direct memory access using virtual addresses
US6021456A (en) Method for communicating interrupt data structure in a multi-processor computer system
CN101430664B (zh) 一种多处理器系统及Cache一致性消息传输方法
WO2009140631A2 (en) Distributed computing system with universal address system and method
JPH11232173A (ja) ローカルメモリに組み込んでいるリモートキャッシュとcc−NUMA(キャッシュ整合型の不均一メモリアクセス)アーキテクチュアを有するデータ処理システム
JPH10254772A (ja) キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム
US6029224A (en) Self-contained memory apparatus having diverse types of memory and distributed control
US20060184747A1 (en) Bandwidth of a cache directory by slicing the cache directory into two smaller cache directories and replicating snooping logic for each sliced cache directory
JP4266629B2 (ja) ページ・テーブル属性によるバス・インタフェース選択
US5812816A (en) System and method for transferring data between memories of different types occupying a single real address space using a dedicated memory transfer bus
JP3716752B2 (ja) コンピュータノード間データ転送方法およびシステム
Kent Cache coherence in distributed systems (network, file systems)
JP2002024085A (ja) ディスクキャッシュシステム、及びその制御方法
US7082501B2 (en) Remote node accessing local memory by using distributed shared memory
EP1396790A2 (en) Remote translation mechanism of a virtual address from a source a node in a multi-node system
US20060106992A1 (en) Distributed shared I/O cache subsystem
AU617514B2 (en) Multiple processor/cache memory system and data transaction control therefor
JP3507314B2 (ja) メモリコントローラおよびコンピュータシステム
JPH06259303A (ja) 分散ファイルシステム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041014

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050124

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050315

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050405

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050601

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050621

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050704

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050822

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 3716752

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20080909

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090909

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090909

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100909

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110909

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120909

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130909

Year of fee payment: 8

EXPY Cancellation because of completion of term