(57)【要約】      （修正有）【課題】プールドメモリを備えるデータ処理システムを提供する。【解決手段】データ処理システム１００は、少なくとも一つのプールドメモリノードＰＤＭと、少なくとも一つの処理ノードＰＵと、少なくとも一つのプールドメモリノード及び少なくとも一つの処理ノードに各々連結するスイッチノードＳＷと、スイッチノードを介して、タスク情報を少なくとも一つの処理ノードの第１の処理ノードに転送し、少なくとも一つのプールドメモリノードの第１のプールドメモリノードのメモリアドレス範囲をスイッチノードに転送するマスターノードＭＡＳＴＥＲと、を備える。スイッチノードが、メモリアドレス範囲に基づいて、第１の処理ノードがタスク情報に基づいて転送した第１のメモリアクセス要請を、第１のプールドメモリノードに対して処理する。【選択図】図１
2019192232.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一つのプールドメモリノードと、
少なくとも一つの処理ノードと、
前記少なくとも一つのプールドメモリノード及び前記少なくとも一つの処理ノードに各々連結するスイッチノードと、
前記スイッチノードを介して、タスク情報を前記少なくとも一つの処理ノードの第１の処理ノードに転送し、前記少なくとも一つのプールドメモリノードの第１のプールドメモリノードのメモリアドレス範囲を前記スイッチノードに転送するように構成されたマスターノードと、
を備え、
前記スイッチノードが、前記メモリアドレス範囲に基づいて、前記第１の処理ノードが前記タスク情報に基づいて転送した第１のメモリアクセス要請を前記第１のプールドメモリノードに対して処理するデータ処理システム。
【請求項２】
前記マスターノードが、前記スイッチノードに第１の処理ノードの識別情報をさらに転送し、
前記スイッチノードが、前記第１の処理ノードの前記識別情報と、前記第１のメモリアクセス要請に含まれた識別情報とを比較することで、前記第１のメモリアクセス要請を処理する請求項１に記載のデータ処理システム。
【請求項３】
前記マスターノードが、前記タスク情報を前記スイッチノードを介して前記第１の処理ノードに転送することで、タスク処理を前記第１の処理ノードに委任し、
前記第１の処理ノードが、前記タスク情報に基づいて仮想アドレス範囲を決定し、前記仮想アドレス範囲に含まれる仮想アドレスに対して前記第１のメモリアクセス要請を前記スイッチノードに転送する請求項１に記載のデータ処理システム。
【請求項４】
前記タスク情報が、前記メモリアドレス範囲に対応するメモリ容量を含み、
前記第１の処理ノードが、前記メモリ容量に基づいて前記仮想アドレス範囲を決定する請求項３に記載のデータ処理システム。
【請求項５】
前記スイッチノードは、前記第１のメモリアクセス要請に応じて、前記仮想アドレスを前記メモリアドレス範囲に含まれるメモリアドレスに変更し、前記メモリアドレスに対する第２のメモリアクセス要請を前記第１のプールドメモリノードに転送し、
前記第１のプールドメモリノードが、前記第２のメモリアクセス要請に応じて、前記メモリアドレスに対してメモリアクセス動作を遂行する請求項３に記載のデータ処理システム。
【請求項６】
前記スイッチノードが、前記仮想アドレス及び前記メモリアドレス間のマッピング情報を管理する請求項５に記載のデータ処理システム。
【請求項７】
少なくとも一つの処理ノードと、
前記少なくとも一つの処理ノードに各々連結し、プールドメモリを備えるスイッチノードと、
前記スイッチノードを介してタスク情報を前記少なくとも一つの処理ノードの第１の処理ノードに転送し、前記プールドメモリのメモリアドレス範囲を前記スイッチノードに転送するように構成されたマスターノードと、
を備え、
前記スイッチノードが、前記メモリアドレス範囲に基づいて、前記第１の処理ノードが転送したメモリアクセス要請を前記プールドメモリに対して処理するデータ処理システム。
【請求項８】
前記マスターノードが、前記スイッチノードに第１の処理ノードの識別情報をさらに転送し、
前記スイッチノードが、前記第１の処理ノードの前記識別情報と、前記メモリアクセス要請に含まれた識別情報とを比較することで、前記メモリアクセス要請を処理する請求項７に記載のデータ処理システム。
【請求項９】
前記マスターノードが、前記タスク情報を前記スイッチノードを介して前記第１の処理ノードに転送することで、前記タスク処理を前記第１の処理ノードに委任し、
前記第１の処理ノードが、前記タスク情報に基づいて仮想アドレス範囲を決定し、前記仮想アドレス範囲に含まれる仮想アドレスに対して前記メモリアクセス要請を前記スイッチノードに転送する請求項７に記載のデータ処理システム。
【請求項１０】
前記タスク情報が、前記メモリアドレス範囲に対応するメモリ容量を含み、
前記第１の処理ノードが、前記メモリ容量に基づいて前記仮想アドレス範囲を決定する請求項９に記載のデータ処理システム。
【請求項１１】
前記スイッチノードが、前記メモリアクセス要請に応じて、前記仮想アドレスを前記メモリアドレス範囲に含まれるメモリアドレスに変更し、前記プールドメモリノードが、前記メモリアクセスに対してメモリアクセス動作を遂行するように制御する請求項９に記載のデータ処理システム。
【請求項１２】
前記スイッチノードが、前記仮想アドレス及び前記メモリアドレス間のマッピング情報を管理する請求項１１に記載のデータ処理システム。
【請求項１３】
少なくとも一つのプールドメモリノードと、
前記少なくとも一つのプールドメモリノードの各プールドメモリノードに各々連結した少なくとも一つの処理ノードと、
前記少なくとも一つのプールドメモリノード及び前記少なくとも一つの処理ノードに各々連結したスイッチノードと、
前記スイッチノードを介して、前記少なくとも一つの処理ノード及び前記少なくとも一つのプールドメモリノードと通信可能であり、前記少なくとも一つの処理ノードの第１の処理ノードに前記少なくとも一つのプールドメモリノードの第１のプールドメモリノードのメモリアドレス範囲を割り当て、前記メモリアドレス範囲を前記スイッチノードを介して前記第１のプールドメモリノードに転送するように構成されたマスターノードと、
を備え、
前記第１のプールドメモリノードが、前記メモリアドレス範囲に基づいて、前記第１の処理ノードが転送したメモリアクセス要請を処理するデータ処理システム。
【請求項１４】
前記マスターノードが、前記第１のプールドメモリノードに第１の処理ノードの識別情報をさらに転送し、
前記第１のプールドメモリノードが、前記第１の処理ノードの前記識別情報と、前記メモリアクセス要請に含まれた識別情報とを比較することで、前記メモリアクセス要請を処理する請求項１３に記載のデータ処理システム。
【請求項１５】
前記マスターノードが、タスク情報を前記スイッチノードを介して前記第１の処理ノードに転送することで、タスク処理を前記第１の処理ノードに委任し、
前記第１の処理ノードが、前記タスク情報に基づいて仮想アドレス範囲を決定し、前記仮想アドレス範囲に含まれる仮想アドレスに対して前記メモリアクセス要請を前記第１のプールドメモリノードに転送する請求項１３に記載のデータ処理システム。
【請求項１６】
前記タスク情報が、前記メモリアドレス範囲に対応するメモリ容量を含み、
前記第１の処理ノードが、前記メモリ容量に基づいて前記仮想アドレス範囲を決定する請求項１５に記載のデータ処理システム。
【請求項１７】
前記第１のプールドメモリノードが、前記仮想アドレスを前記メモリアドレス範囲に含まれるメモリアドレスに変更し、前記メモリアドレスに対してメモリアクセス動作を遂行する請求項１５に記載のデータ処理システム。
【請求項１８】
前記第１のプールドメモリノードが、前記仮想アドレス及び前記メモリアドレス間のマッピング情報を管理する請求項１７に記載のデータ処理システム。
【請求項１９】
少なくとも一つのプールドメモリノードと、
前記少なくとも一つのプールドメモリノードの各プールドメモリノードに各々連結した少なくとも一つの処理ノードと、
前記少なくとも一つの処理ノードに各々連結したスイッチノードと、
前記スイッチノードを介して、前記少なくとも一つの処理ノードと通信可能であり、前記少なくとも一つの処理ノードの第１の処理ノードがタスク処理のためのメモリ容量を、前記少なくとも一つのプールドメモリノードから直接割り当てられるように制御することで、前記第１の処理ノードに前記タスク処理を委任するように構成されたマスターノードと、
を備えるデータ処理システム。
【請求項２０】
前記第１の処理ノードが、前記マスターノードの制御により、前記少なくとも一つのプールドメモリノードの第１のプールドメモリノードに前記メモリ容量に対するメモリ割り当て要請を直接転送し、前記第１のプールドメモリノードから転送された割り当て成功の応答に応じて、前記マスターノードに割り当て結果を転送することで、前記タスク処理が委任される請求項１９に記載のデータ処理システム。
【請求項２１】
前記第１の処理ノードが、前記メモリ容量に基づいて仮想アドレス範囲を決定し、前記タスク処理のために前記仮想アドレス範囲に含まれる仮想アドレスに対するメモリアクセス要請を前記第１のプールドメモリノードに転送する請求項２０に記載のデータ処理システム。
【請求項２２】
前記第１のプールドメモリノードが、前記メモリ割り当て要請に応じて、前記メモリ容量に対応するメモリアドレス範囲を前記第１の処理ノードに割り当てる請求項２０に記載のデータ処理システム。
【請求項２３】
前記第１のプールドメモリノードが、前記メモリアドレス範囲に基づいて、前記第１の処理ノードが前記タスク処理のために転送したメモリアクセス要請を処理する請求項２２に記載のデータ処理システム。
【請求項２４】
前記第１のプールドメモリノードが、前記メモリアクセス要請に含まれた仮想アドレスを前記メモリアドレス範囲に含まれるメモリアドレスに変更し、前記メモリアドレスに対してメモリアクセス動作を遂行する請求項２３に記載のデータ処理システム。
【請求項２５】
前記第１のプールドメモリノードが、前記仮想アドレス及び前記メモリアドレス間のマッピング情報を管理する請求項２４に記載のデータ処理システム。
【請求項２６】
第２のプールドメモリノードと、
前記第２のプールドメモリノードの各第２のプールドメモリノードに各々連結した少なくとも一つの第２の処理ノードと、
前記少なくとも一つの第２の処理ノードに各々連結した第２のスイッチノードと、
を備え、
前記マスターノードが、前記第１の処理ノードが前記少なくとも一つのプールドメモリノードから前記メモリ容量が割り当てられない場合、前記第２のスイッチノードを介して前記少なくとも一つの第２の処理ノードから選択された処理ノードを制御することで、前記選択された処理ノードに前記タスク処理を委任する請求項１９に記載のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システムに関し、より詳しくは、プールドメモリ(Pooled  Memory)を含むデータ処理システムに関する。
【背景技術】
【０００２】
第４次産業革命の到来とともに、データ量が幾何級数的に増加している。これにより、データが処理できる多様な種類のサービスが導入されており、マシンラーニング(Machine  Learning)のようなビックデータ基盤のアプリケーションが絶えず開発されている。
【０００３】
このような傾向により、莫大なデータを格納して処理できるデータ処理システム、例えば、データセンターの重要性は時間が過ぎるほど増大する実情である。特に、データ処理システムの処理性能、すなわち、外部から要請されたタスクを処理して結果データを提供する速度を向上させるために、データ処理システムの多様な構造が提案されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、処理ノードにタスク処理を委任しながらプールドメモリを割り当て、タスクを効率よく処理するデータ処理システムを提供することにある。
【課題を解決するための手段】
【０００５】
本発明の実施例に係るデータ処理システムは、少なくとも一つのプールドメモリノード；少なくとも一つの処理ノード；前記少なくとも一つのプールドメモリノードと、前記少なくとも一つの処理ノードとに各々連結するスイッチノード；及び、前記スイッチノードを介して、タスク情報を前記少なくとも一つの処理ノードの第１の処理ノードに転送し、前記少なくとも一つのプールドメモリノードの第１のプールドメモリノードのメモリアドレス範囲を前記スイッチノードに転送するように構成されたマスターノードを含み、前記スイッチノードは、前記メモリアドレス範囲に基づいて、前記第１の処理ノードが前記タスク情報に基づいて転送した第１のメモリアクセス要請を前記第１のプールドメモリノードに対して処理できる。
【０００６】
本発明の実施例に係るデータ処理システムは、少なくとも一つの処理ノード；前記少なくとも一つの処理ノードに各々連結し、プールドメモリを含むスイッチノード；及び、前記スイッチノードを介してタスク情報を前記少なくとも一つの処理ノードの第１の処理ノードに転送し、前記プールドメモリのメモリアドレス範囲を前記スイッチノードに転送するように構成されたマスターノードを含み、前記スイッチノードは、前記メモリアドレス範囲に基づいて、前記第１の処理ノードが転送したメモリアクセス要請を前記プールドメモリに対して処理できる。
【０００７】
本発明の実施例に係るデータ処理システムは、少なくとも一つのプールドメモリノード；前記少なくとも一つのプールドメモリノードの各プールドメモリノードに各々連結した少なくとも一つの処理ノード；前記少なくとも一つのプールドメモリノード及び前記少なくとも一つの処理ノードに各々連結したスイッチノード；及び、前記スイッチノードを介して、前記少なくとも一つの処理ノード及び前記少なくとも一つのプールドメモリノードと通信可能であり、前記少なくとも一つの処理ノードの第１の処理ノードに前記少なくとも一つのプールドメモリノードの第１のプールドメモリノードのメモリアドレス範囲を割り当て、前記メモリアドレス範囲を前記スイッチノードを介して前記第１のプールドメモリノードに転送するように構成されたマスターノードを含み、前記第１のプールドメモリノードは、前記メモリアドレス範囲に基づいて、前記第１の処理ノードが転送したメモリアクセス要請を処理できる。
【０００８】
本発明の実施例に係るデータ処理システムは、少なくとも一つのプールドメモリノード；前記少なくとも一つのプールドメモリノードの各プールドメモリノードに各々連結した少なくとも一つの処理ノード；前記少なくとも一つの処理ノードに各々連結したスイッチノード；及び、前記スイッチノードを介して、前記少なくとも一つの処理ノードと通信可能であり、前記少なくとも一つの処理ノードの第１の処理ノードがタスク処理のためのメモリ容量を、前記少なくとも一つのプールドメモリノードから直接割り当てられるように制御することで、前記第１の処理ノードに前記タスク処理を委任するように構成されたマスターノードを含むことができる。
【発明の効果】
【０００９】
本発明の実施例に係るデータ処理システムは、処理ノードにタスク処理を委任しながらプールドメモリを割り当て、タスクを効率よく処理できる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施例に係るデータ処理システムを例示的に示すブロック図である。
【図２】本発明の実施例に係るデータ処理システムを例示的に示すブロック図である。
【図３ａ】本発明の実施例に係る図２のデータ処理システムの動作方法を示す図である。
【図３ｂ】本発明の実施例に係る図２のデータ処理システムの動作方法を示す図である。
【図４】本発明の実施例に係るデータ処理システムを例示的に示すブロック図である。
【図５】本発明の実施例に係るデータ処理システムを例示的に示すブロック図である。
【図６ａ】本発明の実施例に係る図５のデータ処理システムの動作方法を示す図である。
【図６ｂ】本発明の実施例に係る図５のデータ処理システムの動作方法を示す図である。
【図７】本発明の実施例に係るデータ処理システムを例示的に示すブロック図である。
【図８ａ】本発明の実施例に係る図７のデータ処理システムの動作方法を示す図である。
【図８ｂ】本発明の実施例に係る図７のデータ処理システムの動作方法を示す図である。
【図９】本発明の実施例に係る図７のデータ処理システムの動作方法を示す図である。
【発明を実施するための形態】
【００１１】
本発明の利点や特徴、並びにそれらを達成する方法は、添付図面と共に詳細に後述する実施例を参照すれば明確になる。しかしながら、本発明は、以下で開示している実施例に限定されず、互い異なる多様な形態で具現可能である。但し、本実施例らは、本発明の属する技術の分野における通常の知識を有した者に、本発明の技術的思想が容易に実施できる程度に詳細に説明するために提供されるものである。
【００１２】
図において、本発明の実施例は、図示の特定形態に制限されず、明確性を期するために誇張されたものである。本明細書において用いられる特定の用語は、本発明を説明するために用いられるだけで、意味限定や特許請求の範囲に記載された本発明の権利範囲を制限するために用いられるものではない。
【００１３】
本明細書において、“及び/又は”という表現は、前後に羅列する構成要素の少なくとも一つを含む意味として用いられる。また、“連結する/結合される”という表現は、他の構成要素と直接的に連結したり、他の構成要素によって間接的に連結するのを含む意味として用いられる。本明細書において用いられる単数型は文句で特別に言及しない限り複数型も含む。また、明細書において用いられる“含む”として言及された構成要素、段階、動作及び素子は、一つ以上の他の構成要素、段階、動作及び素子の存在や追加を意味する。
【００１４】
以下、添付図面に基づき、本発明の好適な実施例を詳細に説明する。
【００１５】
図１は、本発明の実施例に係るデータ処理システム１００を例示的に示すブロック図である。
【００１６】
図１を参照すれば、データ処理システム１００は、データが処理できる電子システムであって、データセンター、インターネットデータセンター、パーソナルコンピュータ、ラップトップコンピュータ、スマートフォン、タブレットコンピュータ、デジタルカメラ、ゲームコンソール、ナビゲーション、ヴァーチャルリアリティ装置及びウェアラブル装置などを備えることができる。
【００１７】
データ処理システム１００は、マスターノードＭＡＳＴＥＲ、上位スイッチノードＵＳＷ及びサブシステムＳＵＢＳＹＳを備えることができる。
【００１８】
マスターノードＭＡＳＴＥＲは、上位スイッチノードＵＳＷを介してサブシステムＳＵＢＳＹＳと連結することができる。
【００１９】
上位スイッチノードＵＳＷは、複数のレイヤー構成、例えば、２段階のレイヤー構造で連結できる。なお、２段階のレイヤー構造に限定されず、３段階以上のレイヤー構造も可能である。第１のレイヤーＬＡＹＥＲ１の上位スイッチノードＵＳＷは、マスターノードＭＡＳＴＥＲと、第２のレイヤーＬＡＹＥＲ２の上位スイッチノードＵＳＷとを連結することができる。第２のレイヤーＬＡＹＥＲ２の上位スイッチノードＵＳＷの各々は、複数のサブシステムＳＵＢＳＹＳのうちで対応するサブシステムと連結することができる。
【００２０】
マスターノードＭＡＳＴＥＲは、サブシステムＳＵＢＳＹＳが制御できる。マスターノードＭＡＳＴＥＲは、サブシステムＳＵＢＳＹＳに含まれたリソースＲＳＳを管理して制御できる。マスターノードＭＡＳＴＥＲは、サブシステムＳＵＢＳＹＳのリソースＲＳＳの現況が全部把握できる。したがって、マスターノードＭＡＳＴＥＲは、プールドメモリノードＰＤＭの部分メモリ領域を処理ノードＰＵに割り当てることで、処理ノードにタスク処理を委任することができる。
【００２１】
実施例により、マスターノードＭＡＳＴＥＲは、少なくとも一つのサブシステムＳＵＢＳＹＳから選択された少なくとも一つの処理ノードＰＵにタスク処理を委任することができる。マスターノードＭＡＳＴＥＲは、発生した一つのタスクを分割して複数の処理ノードＰＵに各々タスク処理を委任することができる。
【００２２】
実施例により、リソースＲＳＳの連結構造によって、プールドメモリノードＰＤＭの部分メモリ領域をマスターノードＭＡＳＴＥＲが割り当てることなく、処理ノードＰＵが直接プールドメモリノードＰＤＭに要請して割り当てられる。マスターノードＭＡＳＴＥＲは、処理ノードＰＵがプールドメモリノードＰＤＭの部分メモリ領域の割り当てに成功するか否かによって該処理ノードにタスク処理を委任することができる。
【００２３】
第１のレイヤーＬＡＹＥＲ１及び第２のレイヤーＬＡＹＥＲ２の上位スイッチノードＵＳＷの各々は、マスターノードＭＡＳＴＥＲから転送された信号で住所を確認し、住所に対応するサブシステムＳＵＢＳＹＳに該信号が転送できる。
【００２４】
サブシステムＳＵＢＳＹＳの各々は、スイッチノードＳＷ、一つ以上の処理ノードＰＵ及び一つ以上のプールドメモリノードＰＤＭを備えることができる。サブシステムＳＵＢＳＹＳの各々はコンピューティングシステムであり得る。
【００２５】
スイッチノードＳＷは、マスターノードＭＡＳＴＥＲと、サブシステムの他のリソース、すなわち、処理ノードＰＵ及びプールドメモリノードＰＤＭとの間で情報伝達動作及びアクセスコントロール動作が遂行できる。実施例により、スイッチノードＳＷは、データ処理システム１００の連結構造によって一部の機能が制限できる。具体的に、スイッチノードＳＷは、プールドメモリノードＰＤＭと連結しないことで、一部の機能が制限できる。
【００２６】
処理ノードＰＵの各々は、マスターノードＭＡＳＴＥＲからタスク処理が委任され、タスクが処理できる。処理ノードＰＵの各々は、プールドメモリノードＰＤＭの部分メモリ領域が割り当てられ、部分メモリ領域を用いてタスクが処理できる。部分メモリ領域の割り当ては、マスターノードＭＡＳＴＥＲにより遂行したり、タスク処理が委任された処理ノードにより遂行したりする。
【００２７】
処理ノードＰＵは、中央処理装置、グラフィック処理装置、マイクロプロセッサ、アプリケーションプロセッサ、加速処理装置(Accelerated Processing Unit)及び/又は運営体制などを備えることができる。
【００２８】
プールドメモリノードＰＤＭは、一種の共有メモリとしてタスク処理中である処理ノードＰＵにより用いられる。すなわち、プールドメモリノードＰＤＭは何れか一つの処理ノードのみによって専属或いは独占しない。実施例により、あるサブシステムに含まれたプールドメモリノードＰＤＭは、他のサブシステムの処理ノードによっても用いられる。
【００２９】
プールドメモリノードＰＤＭは、ＰＣＭＣＩＡ(Personal Computer Memory Card International Association)カード、ＣＦ(Compact Flash)カード、スマートメディアカード、メモリスティック、多様なマルチメディアカード(ＭＭＣ、ｅＭＭＣ、ＲＳ−ＭＭＣ、ＭＭＣ−ｍｉｃｒｏ)、ＳＤ(Secure Digital)カード(ＳＤ、Ｍｉｎｉ−ＳＤ、Ｍｉｃｒｏ−ＳＤ)、ＵＦＳ(Universal Flash Storage)又はＳＳＤ(Solid State Drive)などのメモリシステムを備えることができる。
【００３０】
実施例により、プールドメモリノードＰＤＭは、ナンドフラッシュ(NAND  Flash)又はノアフラッシュ(NOR  Flash)のようなフラッシュメモリ装置、ＦｅＲＡＭ(Ferroelectrics  Random  Access  Memory)、ＰＣＲＡＭ(Phase-Change  Random  Access  Memory)、ＭＲＡＭ(Magnetic  Random  Access  Memory)又はＲｅＲＡＭ(Resistive  Random  Access  Memory)などのような非揮発性メモリ装置を備えることができる。
【００３１】
実施例により、プールドメモリノードＰＤＭは、ＤＲＡＭ(Dynamic  Random  Access  Memory)又はＳＲＡＭ(Static  Random  Access  Memory)などのような揮発性メモリ装置を備えることができる。
【００３２】
実施例により、サブシステムＳＵＢＳＹＳは、大容量ストレージをさらに備えることができる。
【００３３】
実施例により、サブシステムＳＵＢＳＹＳの各々は、サーバラックに対応できる。そして、リソースＲＳＳは、サーバラックの棚に各々設置されるサーバであってもい。
【００３４】
実施例により、データ処理システム１００のノードは、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの結合で構成できる。
【００３５】
以下では、本発明の実施例に係るデータ処理システム１００の多様な構造及び動作方法を詳細に説明する。
【００３６】
図２は、本発明の実施例に係るデータ処理システム１０を例示的に示すブロック図である。
【００３７】
図２を参照すれば、データ処理システム１０は、マスターノードＭＡＳＴＥＲ１と、サブシステムＳＵＢＳＹＳ１とを備えることができる。
【００３８】
マスターノードＭＡＳＴＥＲ１は、サブシステムＳＵＢＳＹＳ１と連結することができる。図示していないが、データ処理システム１０は、マスターノードＭＡＳＴＥＲ１及びスイッチノードＳＷＩＴＣＨ１間に一つ以上の上位スイッチノードをさらに備えることができる。スイッチノードＳＷＩＴＣＨ１がマスターノードＭＡＳＴＥＲ１から転送された情報は、不図示の上位スイッチノードを介して転送されたものであり得る。また、図示していないが、データ処理システム１０は、複数のサブシステムＳＵＢＳＹＳ１をさらに備えることができる。また、図示していないが、サブシステムＳＵＢＳＹＳ１は、複数のプールドメモリノードをさらに備えることができる。このような省略は以下のすべての実施例に対して同様である。
【００３９】
サブシステムＳＵＢＳＹＳ１は、スイッチノードＳＷＩＴＣＨ１、一つ以上の処理ノードＰＵ１及びプールドメモリノードＰＤＭ１を備えることができる。
【００４０】
スイッチノードＳＷＩＴＣＨ１は、マスターノードＭＡＳＴＥＲ１と連結することができる。スイッチノードＳＷＩＴＣＨ１は、マスターノードＭＡＳＴＥＲ１と一つ以上の上位スイッチノードを介して連結することができる。また、スイッチノードＳＷＩＴＣＨ１は、処理ノードＰＵ１及びプールドメモリノードＰＤＭ１に各々連結することができる。
【００４１】
処理ノードＰＵ１は、スイッチノードＳＷＩＴＣＨ１を介してプールドメモリノードＰＤＭ１と連結することができる。
【００４２】
マスターノードＭＡＳＴＥＲ１は、タスク発生時、処理ノードＰＵ１及びプールドメモリノードＰＤＭ１に対してタスク委任動作が遂行できる。具体的に、マスターノードＭＡＳＴＥＲ１は、処理ノードＰＵ１の何れか一つ、例えば、処理ノード１１にタスク処理を委任することに決定できる。そして、マスターノードＭＡＳＴＥＲ１は、プールドメモリノードＰＤＭ１で処理ノード１１に割り当てるメモリアドレス範囲が決定できる。すなわち、マスターノードＭＡＳＴＥＲ１は、プールドメモリノードＰＤＭ１の全体メモリ領域で処理ノード１１に割り当てる部分メモリ領域が決定できる。マスターノードＭＡＳＴＥＲ１は、すべてのリソースの現況を管理するため、タスク処理を委任する処理ノード１１及び処理ノード１１に割り当てるメモリアドレス範囲が決定できる。
【００４３】
マスターノードＭＡＳＴＥＲ１は、スイッチノードＳＷＩＴＣＨ１に処理ノード１１及びプールドメモリノードＰＤＭ１についての割り当て情報が転送できる。割り当て情報は、処理ノード１１の識別情報及びプールドメモリノードＰＤＭ１で処理ノード１１に割り当てられた部分メモリ領域のメモリアドレス範囲を含むことができる。
【００４４】
マスターノードＭＡＳＴＥＲ１は、タスク処理を委任する処理ノード１１にタスク情報が転送できる。タスク情報は、プールドメモリノードＰＤＭ１で処理ノード１１に割り当てられたメモリアドレス範囲に対応するメモリ容量を含むことができる。すなわち、タスク情報は、プールドメモリノードＰＤＭ１の全体メモリ領域の処理ノード１１に割り当てられた部分メモリ領域のメモリ容量を含むことができる。また、タスク情報は、処理ノード１１に委任されたタスク内容を含むことができる。なお、マスターノードＭＡＳＴＥＲ１が処理ノード１１にタスク情報を転送することは、後述するようにスイッチノードＳＷＩＴＣＨ１の情報伝達動作により処理され得る。
【００４５】
一方、タスク情報は、プールドメモリノードＰＤＭ１で処理ノード１１に割り当てられたメモリアドレス範囲を含まないことがある。すなわち、マスターノードＭＡＳＴＥＲ１は、プールドメモリノードＰＤＭ１のメモリアドレス範囲の代わりに、メモリアドレス範囲に対応するメモリ容量を処理ノード１１に通知することで、処理ノード１１が、後述するように、メモリ容量による仮想アドレス範囲を使用するようにできる。
【００４６】
スイッチノードＳＷＩＴＣＨ１は、マスターノードＭＡＳＴＥＲ１と、処理ノードＰＵ１及びプールドメモリノードＰＤＭ１との間で情報伝達動作が遂行できる。具体的に、マスターノードＭＡＳＴＥＲ１が処理ノード１１にタスク情報を転送する時、スイッチノードＳＷＩＴＣＨ１は情報伝達動作によってマスターノードＭＡＳＴＥＲ１から転送されたタスク情報を処理ノード１１に転送できる。
【００４７】
また、スイッチノードＳＷＩＴＣＨ１は、処理ノード１１がタスク処理動作を遂行する時、処理ノード１１から転送された第１のメモリアクセス要請が処理できる。
【００４８】
具体的に、スイッチノードＳＷＩＴＣＨ１は、処理ノード１１がタスク処理動作を遂行する時、処理ノード１１から転送された第１のメモリアクセス要請に応じて処理ノード１１についての割り当て情報が確認できる。スイッチノードＳＷＩＴＣＨ１は、割り当て情報から処理ノード１１の識別情報を確認し、第１のメモリアクセス要請に含まれた処理ノード１１の識別情報と比較できる。
【００４９】
また、スイッチノードＳＷＩＴＣＨ１は、割り当て情報から処理ノード１１に割り当てられたプールドメモリノードＰＤＭ１のメモリアドレス範囲が確認できる。スイッチノードＳＷＩＴＣＨ１は、第１のメモリアクセス要請に含まれた仮想アドレスを割り当て情報のメモリアドレス範囲に含まれたメモリアドレスに変換できる。スイッチノードＳＷＩＴＣＨ１は、仮想アドレス及びメモリアドレス間のマッピング情報が管理できる。そして、スイッチノードＳＷＩＴＣＨ１は、変換されたメモリアドレスに対する第２のメモリアクセス要請をプールドメモリノードＰＤＭ１に転送できる。
【００５０】
処理ノード１１は、タスク処理動作を遂行することで、マスターノードＭＡＳＴＥＲ１から委任されたタスクが処理できる。処理ノード１１は、タスク処理動作を遂行するために、マスターノードＭＡＳＴＥＲ１から転送されたタスク情報が確認できる。処理ノード１１は、タスク情報を確認して、所定の仮想アドレス範囲を使用することに決定できる。仮想アドレス範囲は、タスク情報に含まれた割り当てのメモリ容量に対応できる。
【００５１】
処理ノード１１は、スイッチノードＳＷＩＴＣＨ１に第１のメモリアクセス要請が転送できる。第１のメモリアクセス要請は仮想アドレスを含むことができる。仮想アドレスは、処理ノード１１がタスク処理に使用することに決定した仮想アドレス範囲に含まれる。仮想アドレスは、スイッチノードＳＷＩＴＣＨ１によりプールドメモリノードＰＤＭ１のメモリアドレスに変換されるはずである。
【００５２】
プールドメモリノードＰＤＭ１は、スイッチノードＳＷＩＴＣＨ１から第２のメモリアクセス要請を受信し、第２のメモリアクセス要請に含まれたメモリアドレスに対してメモリアクセス動作が遂行できる。
【００５３】
図３ａ及び図３ｂは、本発明の実施例に係る図２のデータ処理システム１０の動作方法を示す図である。図３ａにおいて、マスターノードＭＡＳＴＥＲ１はタスク委任動作を遂行し、図３ｂにおいて、処理ノード１１はタスク処理動作が遂行できる。
【００５４】
図３ａを参照すれば、段階Ｓ１１において、マスターノードＭＡＳＴＥＲ１は、処理ノード１１にタスク処理を委任することに決定できる。そして、マスターノードＭＡＳＴＥＲ１は、プールドメモリノードＰＤＭ１から処理ノード１１に割り当てるメモリアドレス範囲が決定できる。すなわち、マスターノードＭＡＳＴＥＲ１は、プールドメモリノードＰＤＭ１の全体メモリ領域ＭＲで処理ノード１１に割り当てる部分メモリ領域ＰＭＲが決定できる。
【００５５】
段階Ｓ１２において、マスターノードＭＡＳＴＥＲ１は、スイッチノードＳＷＩＴＣＨ１に処理ノード１１及びプールドメモリノードＰＤＭ１についての割り当て情報ＡＳＳ１が転送できる。割り当て情報ＡＳＳ１は、処理ノード１１の識別情報及び部分メモリ領域ＰＭＰのメモリアドレス範囲を含むことができる。スイッチノードＳＷＩＴＣＨ１は、内部メモリに割り当て情報ＡＳＳ１が格納できる。
【００５６】
段階Ｓ１３において、マスターノードＭＡＳＴＥＲ１は、処理ノード１１にタスク情報Ｔ１が転送できる。タスク情報Ｔ１は、処理ノード１１に割り当てられた部分メモリ領域ＰＭＲのメモリ容量及び処理ノード１１に委任されたタスク内容を含むことができる。処理ノード１１は内部メモリにタスク情報Ｔ１が格納できる。なお、スイッチノードＳＷＩＴＣＨ１は、情報伝達動作によってマスターノードＭＡＳＴＥＲ１から転送されたタスク情報Ｔ１を処理ノード１１に転送できる。
【００５７】
一方、段階Ｓ１２の後に段階Ｓ１３を遂行したり、その反対であり得る。
【００５８】
図３ｂを参照すれば、段階Ｓ１４において、処理ノード１１は、タスク処理動作を遂行するためにタスク情報Ｔ１が確認できる。処理ノード１１は、タスク情報Ｔ１を確認して、所定の仮想アドレス範囲を使用することに決定できる。仮想アドレス範囲は、タスク情報Ｔ１に含まれた部分メモリ領域ＰＭＲのメモリ容量に対応できる。
【００５９】
段階Ｓ１５において、処理ノード１１は、スイッチノードＳＷＩＴＣＨ１に第１のメモリアクセス要請が転送できる。第１のメモリアクセス要請は仮想アドレスＶＡ１を含むことができる。仮想アドレスＶＡ１は、タスク処理に使用することに決定した仮想アドレス範囲に含まれる。
【００６０】
段階Ｓ１６において、スイッチノードＳＷＩＴＣＨ１は、処理ノード１１から転送された第１のメモリアクセス要請に応じて、処理ノード１１についての割り当て情報ＡＳＳ１が確認できる。スイッチノードＳＷＩＴＣＨ１は、割り当て情報ＡＳＳ１で処理ノード１１の識別情報を確認し、第１のメモリアクセス要請に含まれた処理ノード１１の識別情報と比較できる。また、スイッチノードＳＷＩＴＣＨ１は、割り当て情報ＡＳＳ１で処理ノード１１に割り当てられた部分メモリ領域ＰＭＲのメモリアドレス範囲が確認できる。
【００６１】
段階Ｓ１７において、スイッチノードＳＷＩＴＣＨ１は、第１のメモリアクセス要請に含まれた仮想アドレスＶＡ１を割り当て情報ＡＳＳ１のメモリアドレス範囲に含まれたメモリアドレスＭＡ１に変換しながら、仮想アドレスＶＡ１及びメモリアドレスＭＡ１間のマッピング情報が管理できる。スイッチノードＳＷＩＴＣＨ１は、仮想アドレスＶＡ１及びメモリアドレスＭＡ１をマッピングしたことをマッピング情報ＭＡＰ１として記憶できる。
【００６２】
段階Ｓ１８において、スイッチノードＳＷＩＴＣＨ１は、メモリアドレスＭＡ１に対する第２のメモリアクセス要請をプールドメモリノードＰＤＭ１に転送できる。
【００６３】
段階Ｓ１９において、プールドメモリノードＰＤＭ１は、スイッチノードＳＷＩＴＣＨ１から転送された第２のメモリアクセス要請を受信し、部分メモリ領域ＰＭＲのメモリアドレスＭＡ１に対してメモリアクセス動作が遂行できる。
【００６４】
要約すれば、本発明の実施例に係る図２のデータ処理システム１０は、マスターノードＭＡＳＴＥＲ１が処理ノード１１及びプールドメモリノードＰＤＭ１を含むすべての資源を管理するので、タスク処理に資源を効率よく割り当てることができる。
【００６５】
また、プールドメモリノードＰＤＭ１は、処理ノードＰＵ１と独立的にスイッチノードＳＷＩＴＣＨ１に連結するので、サブシステムＳＵＢＳＹＳ１は複数のプールドメモリノードを含むように容易に拡張できる。すなわち、図２のサブシステムＳＵＢＳＹＳ１は、一つのプールドメモリノードＰＤＭ１がスイッチノードＳＷＩＴＣＨ１に連結するが、本発明の実施例により二つ以上のプールドメモリノードが処理ノードＰＵ１に独立的にスイッチノードＳＷＩＴＣＨ１に各々連結できる。その場合、タスク委任動作及びタスク処理動作の遂行方法は、前述した動作と実質的に類似している。
【００６６】
一方、スイッチノードＳＷＩＴＣＨ１が複数のプールドメモリノードに各々連結する時、マスターノードＭＡＳＴＥＲ１は、プールドメモリノードのうち、どのプールドメモリノードを処理ノード１１に割り当てるかを決定する。したがって、マスターノードＭＡＳＴＥＲ１からスイッチノードＳＷＩＴＣＨ１に転送される割り当て情報ＡＳＳ１は、複数のプールドメモリノードのうち、処理ノード１１に割り当てられたプールドメモリノードについての情報を含むことができる。スイッチノードＳＷＩＴＣＨ１は、割り当て情報ＡＳＳ１に基づいて、複数のプールドメモリノードのうち、メモリアクセス要請を転送するプールドメモリノードが選択できる。
【００６７】
図４は、本発明の実施例に係るデータ処理システム２０を例示的に示すブロック図である。
【００６８】
図４を参照すれば、データ処理システム２０は、マスターノードＭＡＳＴＥＲ２及びサブシステムＳＵＢＳＹＳ２を含むことができる。マスターノードＭＡＳＴＥＲ２は、サブシステムＳＵＢＳＹＳ２と連結することができる。サブシステムＳＵＢＳＹＳ２は、スイッチノードＳＷＩＴＣＨ２及び複数の処理ノードＰＵ２を含むことができる。図２の実施例におけるプールドメモリノードＰＤＭ１は、スイッチノードＳＷＩＴＣＨ１と物理的に独立された構造であるのに対し、図４の実施例におけるスイッチノードＳＷＩＴＣＨ２は、図２のプールドメモリノードＰＤＭ１の役割をするプールドメモリＰＤＭ２を含むことができる。
【００６９】
スイッチノードＳＷＩＴＣＨ２がプールドメモリを含む場合にも、マスターノードＭＡＳＴＥＲ２は、タスク委任動作を図２のマスターノードＭＡＳＴＥＲ１が遂行すると同様に遂行できる。
【００７０】
具体的に、マスターノードＭＡＳＴＥＲ２は、処理ノード２１にタスク処理を委任するために、プールドメモリＰＤＭ２のメモリアドレス範囲を処理ノード２１に割り当て、メモリアドレス範囲及び処理ノード２１の識別情報を含む割り当て情報をスイッチノードＳＷＩＴＣＨ２に転送できる。そして、マスターノードＭＡＳＴＥＲ２は、メモリアドレス範囲に対応するメモリ容量を含むタスク情報をスイッチノードＳＷＩＴＣＨ２を介して処理ノード２１に転送できる。
【００７１】
処理ノードＰＵ２は、タスク処理動作を図２の処理ノード１１が遂行すると同様に遂行できる。
【００７２】
具体的に、タスク処理が委任された処理ノード２１は、タスク情報に含まれたメモリ容量に基づいて仮想アドレス範囲を決定し、仮想アドレス範囲に含まれる仮想アドレスに対してメモリアクセス要請をスイッチノードＳＷＩＴＣＨ２に転送できる。
【００７３】
スイッチノードＳＷＩＴＣＨ２は、図２のスイッチノードＳＷＩＴＣＨ１と類似しているように動作できる。具体的に、スイッチノードＳＷＩＴＣＨ２は、マスターノードＭＡＳＴＥＲ２から転送された識別情報と、処理ノード２１から受信したメモリアクセス要請に含まれた識別情報とを比較することで、メモリアクセス要請が処理できる。また、スイッチノードＳＷＩＴＣＨ２は、メモリアクセス要請に含まれた仮想アドレスをマスターノードＭＡＳＴＥＲ２から転送されたメモリアドレス範囲のメモリアドレスに変更できる。スイッチノードＳＷＩＴＣＨ２は、仮想アドレス及びメモリアドレス間のマッピング情報が管理できる。
【００７４】
一方、スイッチノードＳＷＩＴＣＨ２がメモリアクセス要請を処理する際、図２のデータ処理システム１０と比較してレイテンシ(latency)が減少できる。
【００７５】
具体的に、図２のスイッチノードＳＷＩＴＣＨ１がプールドメモリノードＰＤＭ１と物理的に区分されてケーブルを介して連結する時、スイッチノードＳＷＩＴＣＨ１は、プールドメモリノードＰＤＭ１にメモリアクセス要請をパケット化(packetizing)することにより転送できる。しかしながら、図４のスイッチノードＳＷＩＴＣＨ２は、メモリアクセス要請をプールドメモリＰＤＭ２のメモリインターフェース、例えば、ＤＩＭＭ(Dual In-line Memory Module)インターフェースを通して処理して、プールドメモリＰＤＭ２がメモリアクセス動作を遂行するように制御できる。このように、スイッチノードＳＷＩＴＣＨ２がメモリインターフェースを通して内部のプールドメモリＰＤＭ２を制御する時、図２のスイッチノードＳＷＩＴＣＨ１のようにパケット化が不要になるため、パケット化によるレイテンシが除去できる。
【００７６】
以外に、図４のデータ処理システム２０の構成及び動作方法は、図２のデータ処理システム１０の構成及び動作方法と類似しているので、詳細な説明は省略し得る。
【００７７】
図５は、本発明の実施例に係るデータ処理システム３０を例示的に示すブロック図である。
【００７８】
図５を参照すれば、データ処理システム３０は、マスターノードＭＡＳＴＥＲ３及びサブシステムＳＵＢＳＹＳ３を備えることができる。
【００７９】
マスターノードＭＡＳＴＥＲ３は、サブシステムＳＵＢＳＹＳ３と連結することができる。
【００８０】
サブシステムＳＵＢＳＹＳ３は、スイッチノードＳＷＩＴＣＨ３、一つ以上の処理ノードＰＵ３、及びプールドメモリノードＰＤＭ３を備えることができる。
【００８１】
スイッチノードＳＷＩＴＣＨ３は、マスターノードＭＡＳＴＥＲ３と連結することができる。スイッチノードＳＷＩＴＣＨ３は、マスターノードＭＡＳＴＥＲ３と一つ以上の上位スイッチノードを介して連結することができる。また、スイッチノードＳＷＩＴＣＨ３は、処理ノードＰＵ３及びプールドメモリノードＰＤＭ３に各々連結することができる。
【００８２】
処理ノードＰＵ３は、プールドメモリノードＰＤＭ３と直接的に連結することができる。
【００８３】
マスターノードＭＡＳＴＥＲ３は、タスク発生時、処理ノードＰＵ３及びプールドメモリノードＰＤＭ３に対してタスク委任動作が遂行できる。具体的に、マスターノードＭＡＳＴＥＲ３は、処理ノードＰＵ３の何れか一つ、例えば、処理ノード３１にタスク処理を委任することに決定できる。そして、マスターノードＭＡＳＴＥＲ３は、プールドメモリノードＰＤＭ３で処理ノード３１に割り当てるメモリアドレス範囲が決定できる。すなわち、マスターノードＭＡＳＴＥＲ３は、プールドメモリノードＰＤＭ３のメモリ領域で処理ノード３１に割り当てる部分メモリ領域が決定できる。マスターノードＭＡＳＴＥＲ３は、すべてのリソースの現況を管理するため、タスク処理を委任する処理ノード３１及び処理ノード３１に割り当てるメモリアドレス範囲が決定できる。
【００８４】
マスターノードＭＡＳＴＥＲ３は、プールドメモリノードＰＤＭ３に処理ノード３１及びプールドメモリノードＰＤＭ３についての割り当て情報が転送できる。割り当て情報は、処理ノード３１の識別情報及びプールドメモリノードＰＤＭ３から処理ノード３１に割り当てられた部分メモリ領域のメモリアドレス範囲を含むことができる。マスターノードＭＡＳＴＥＲ３がプールドメモリノードＰＤＭ３に割り当て情報を転送することは、スイッチノードＳＷＩＴＣＨ３の情報伝達動作により処理できる。
【００８５】
すなわち、マスターノードＭＡＳＴＥＲ３は、図１のマスターノードＭＡＳＴＥＲ１がスイッチノードＳＷＩＴＣＨ１に割り当て情報を転送した場合と異なり、プールドメモリノードＰＤＭ３に割り当て情報が転送できる。これは、後述するように、処理ノードＰＵ３が直接的に連結したプールドメモリノードＰＤＭ３にメモリアクセス要請を直ぐ転送するためである。プールドメモリノードＰＤＭ３は、マスターノードＭＡＳＴＥＲ３から転送された割り当て情報に基づいて、処理ノードＰＵ３から直接的に受信したメモリアクセス要請が処理できる。
【００８６】
マスターノードＭＡＳＴＥＲ３は、タスク処理を委任する処理ノード３１にタスク情報が転送できる。タスク情報は、プールドメモリノードＰＤＭ３で処理ノード３１に割り当てられた部分メモリ容量及び処理ノード３１に委任されたタスク内容を含むことができる。マスターノードＭＡＳＴＥＲ３が処理ノード３１にタスク情報を転送することは、スイッチノードＳＷＩＴＣＨ３の情報伝達動作により処理され得る。
【００８７】
スイッチノードＳＷＩＴＣＨ３は、マスターノードＭＡＳＴＥＲ３と、処理ノードＰＵ３及びプールドメモリノードＰＤＭ３との間で情報伝達動作が遂行できる。具体的に、マスターノードＭＡＳＴＥＲ３がプールドメモリノードＰＤＭ３に割り当て情報を転送する時、スイッチノードＳＷＩＴＣＨ３は情報伝達動作によってマスターノードＭＡＳＴＥＲ３から転送された割り当て情報をプールドメモリノードＰＤＭ３に転送できる。また、マスターノードＭＡＳＴＥＲ３が処理ノード３１にタスク情報を転送する時、スイッチノードＳＷＩＴＣＨ３は情報伝達動作によってマスターノードＭＡＳＴＥＲ３から転送されたタスク情報を処理ノード３１に転送できる。
【００８８】
処理ノード３１は、タスク処理動作を遂行することで、マスターノードＭＡＳＴＥＲ３から委任されたタスクが処理できる。処理ノード３１は、タスク処理動作を遂行するために、マスターノードＭＡＳＴＥＲ３から転送されたタスク情報が確認できる。処理ノード３１は、タスク情報を確認して、所定の仮想アドレス範囲を使用することに決定できる。仮想アドレス範囲は、タスク情報に含まれた割り当てのメモリ容量に対応できる。
【００８９】
処理ノード３１は、プールドメモリノードＰＤＭ３にメモリアクセス要請が転送できる。メモリアクセス要請は仮想アドレスを含むことができる。仮想アドレスは、処理ノード３１がタスク処理に使用することに決定した仮想アドレス範囲に含まれる。
【００９０】
プールドメモリノードＰＤＭ３は、処理ノード３１から転送されたメモリアクセス要請に応じて、処理ノード３１についての割り当て情報が確認できる。プールドメモリノードＰＤＭ３は、割り当て情報で処理ノード３１の識別情報を確認し、メモリアクセス要請に含まれた処理ノード３１の識別情報と比較できる。
【００９１】
また、プールドメモリノードＰＤＭ３は、割り当て情報で処理ノード３１に割り当てられたプールドメモリノードＰＤＭ３のメモリアドレス範囲が確認できる。プールドメモリノードＰＤＭ３は、メモリアクセス要請に含まれた仮想アドレスを割り当て情報のメモリアドレス範囲に含まれたメモリアドレスに変換できる。プールドメモリノードＰＤＭ３は、仮想アドレス及びメモリアドレス間のマッピング情報が管理できる。
【００９２】
プールドメモリノードＰＤＭ３は、メモリアドレスに対してメモリアクセス動作が遂行できる。すなわち、プールドメモリノードＰＤＭ３は、処理ノードＰＵ３と直接的に連結するので、処理ノードＰＵ３からメモリアクセス要請を直接的に受信して、メモリアクセス許容可否を自ら判断できる。
【００９３】
実施例により、サブシステムＳＵＢＳＹＳ３は、複数のプールドメモリノードを含むことができる。各プールドメモリノードは、スイッチノードＳＷＩＴＣＨ３に連結し、処理ノードＰＵ３に各々連結できる。すなわち、処理ノードＰＵ３の各々は、複数のプールドメモリノードに直接連結できる。この場合、マスターノードＭＡＳＴＥＲ３は、プールドメモリノードのうち、どのプールドメモリノードを処理ノード３１に割り当てるかを決定するはずである。したがって、マスターノードＭＡＳＴＥＲ３から処理ノード３１に転送されるタスク情報Ｔ３は、複数のプールドメモリノードのうち、処理ノード３１に割り当てられたプールドメモリノードについての情報を含むことができる。すなわち、割り当てられたプールドメモリノードについての情報が、図２のデータ処理システム１０ではスイッチノードＳＷＩＴＣＨ１に転送されるのに対し、図５のデータ処理システム３０では処理ノード３１に転送される。これは、図５のデータ処理システム３０の処理ノード３１は、スイッチノードＳＷＩＴＣＨ３を通さないで、プールドメモリノードに直接メモリアクセス要請が転送できるためである。すなわち、処理ノード３１は、タスク情報Ｔ３に基づいて、複数のプールドメモリノードのうち、メモリアクセス要請を転送するプールドメモリノードが選択できる。
【００９４】
図６ａ及び図６ｂは、本発明の実施例に係る図５のデータ処理システム３０の動作方法を示す図である。図６ａにおいて、マスターノードＭＡＳＴＥＲ３はタスク委任動作を遂行し、図６ｂにおいて、処理ノード３１はタスク処理動作が遂行できる。
【００９５】
図６ａを参照すれば、段階Ｓ３１において、マスターノードＭＡＳＴＥＲ３は処理ノード３１にタスク処理を委任することに決定できる。そして、マスターノードＭＡＳＴＥＲ３は、プールドメモリノードＰＤＭ３から処理ノード３１に割り当てるメモリアドレス範囲が決定できる。すなわち、マスターノードＭＡＳＴＥＲ３は、プールドメモリノードＰＤＭ３の全体メモリ領域ＭＲで処理ノード３１に割り当てる部分メモリ領域ＰＭＲが決定できる。
【００９６】
段階Ｓ３２において、マスターノードＭＡＳＴＥＲ３は、プールドメモリノードＰＤＭ３に処理ノード３１及びプールドメモリノードＰＤＭ３についての割り当て情報ＡＳＳ３が転送できる。割り当て情報ＡＳＳ３は、処理ノード３１の識別情報及び部分メモリ領域ＰＭＰのメモリアドレス範囲を含むことができる。プールドメモリノードＰＤＭ３は、内部メモリに割り当て情報ＡＳＳ３が格納できる。なお、スイッチノードＳＷＩＴＣＨ３は、情報伝達動作によってマスターノードＭＡＳＴＥＲ３から転送された割り当て情報ＡＳＳ３をプールドメモリノードＰＤＭ３に転送できる。
【００９７】
段階Ｓ３３において、マスターノードＭＡＳＴＥＲ３は、処理ノード３１にタスク情報Ｔ３が転送できる。タスク情報Ｔ３は、処理ノード３１に割り当てられた部分メモリ領域ＰＭＲのメモリ容量及び処理ノード３１に委任されたタスク内容を含むことができる。処理ノード３１は内部メモリにタスク情報Ｔ３が格納できる。なお、スイッチノードＳＷＩＴＣＨ３は、情報伝達動作によってマスターノードＭＡＳＴＥＲ３から転送されたタスク情報Ｔ３を処理ノード３１に転送できる。
【００９８】
一方、段階Ｓ３２の後に段階Ｓ３３を遂行したり、その反対であり得る。
【００９９】
図６ｂを参照すれば、段階Ｓ３４において、処理ノード３１は、タスク処理動作を遂行するためにタスク情報Ｔ３が確認できる。処理ノード３１は、タスク情報Ｔ３を確認して、所定の仮想アドレス範囲を使用することに決定できる。仮想アドレス範囲は、タスク情報Ｔ３に含まれた部分メモリ領域ＰＭＲのメモリ容量に対応できる。
【０１００】
段階Ｓ３５において、処理ノード３１は、プールドメモリノードＰＤＭ３にメモリアクセス要請が転送できる。メモリアクセス要請は仮想アドレスＶＡ３を含むことができる。仮想アドレスＶＡ３は、タスク処理に使用することに決定した仮想アドレス範囲に含まれる。
【０１０１】
段階Ｓ３６において、プールドメモリノードＰＤＭ３は、処理ノード３１から転送されたメモリアクセス要請に応じて、処理ノード３１についての割り当て情報ＡＳＳ３が確認できる。プールドメモリノードＰＤＭ３は、割り当て情報ＡＳＳ３から処理ノード３１の識別情報を確認し、メモリアクセス要請に含まれた処理ノード３１の識別情報と比較できる。また、プールドメモリノードＰＤＭ３は、割り当て情報ＡＳＳ３から処理ノード３１に割り当てられた部分メモリ領域ＰＭＲのメモリアドレス範囲が確認できる。
【０１０２】
段階Ｓ３７において、プールドメモリノードＰＤＭ３は、メモリアクセス要請に含まれた仮想アドレスＶＡ３を割り当て情報ＡＳＳ３のメモリアドレス範囲に含まれたメモリアドレスＭＡ３に変換しながら、仮想アドレスＶＡ３及びメモリアドレスＭＡ３間のマッピング情報が管理できる。プールドメモリノードＰＤＭ３は、仮想アドレスＶＡ３及びメモリアドレスＭＡ３をマッピングしたことをマッピング情報ＭＡＰ３として記憶できる。
【０１０３】
段階Ｓ３８において、プールドメモリノードＰＤＭ３は、部分メモリ領域ＰＭＲのメモリアドレスＭＡ３に対してメモリアクセス動作が遂行できる。
【０１０４】
要約すれば、本発明の実施例に係る図５のデータ処理システム３０は、マスターノードＭＡＳＴＥＲ３が処理ノード３１及びプールドメモリノードＰＤＭ３を含むすべての資源を管理するので、タスク処理に資源を効率よく割り当てることができる。
【０１０５】
また、プールドメモリノードＰＤＭ３は、処理ノードＰＵ３に直接的に連結するので、スイッチサーバーを通さないで、処理ノードから直ぐメモリアクセス要請が転送され得る。したがって、ボトルネックの現象が抑制され、タスク処理がより速く遂行できる。
【０１０６】
図７は、本発明の実施例に係るデータ処理システム４０を例示的に示すブロック図である。
【０１０７】
図７を参照すれば、データ処理システム４０は、マスターノードＭＡＳＴＥＲ４及びサブシステムＳＵＢＳＹＳ４を備えることができる。
【０１０８】
マスターノードＭＡＳＴＥＲ４は、サブシステムＳＵＢＳＹＳ４と連結することができる。
【０１０９】
サブシステムＳＵＢＳＹＳ４は、スイッチノードＳＷＩＴＣＨ４、一つ以上の処理ノードＰＵ４及びプールドメモリノードＰＤＭ４を備えることができる。
【０１１０】
スイッチノードＳＷＩＴＣＨ４は、マスターノードＭＡＳＴＥＲ４と連結することができる。スイッチノードＳＷＩＴＣＨ４は、マスターノードＭＡＳＴＥＲ４と一つ以上の上位スイッチノードを介して連結することもできる。また、スイッチノードＳＷＩＴＣＨ４は、処理ノードＰＵ４に各々連結することができる。
【０１１１】
処理ノードＰＵ４は、プールドメモリノードＰＤＭ４と直接的に連結することができる。
【０１１２】
プールドメモリノードＰＤＭ４は、処理ノードＰＵ４と直接的に各々連結することができる。プールドメモリノードＰＤＭ４は、図５のプールドメモリノードＰＤＭ３がスイッチノードＳＷＩＴＣＨ３と連結した場合と異なり、スイッチノードＳＷＩＴＣＨ４と連結しないこともある。
【０１１３】
マスターノードＭＡＳＴＥＲ４は、タスク発生時、処理ノードＰＵ４に対してタスク委任動作が遂行できる。具体的に、マスターノードＭＡＳＴＥＲ４は、処理ノードＰＵ４の何れか一つ、例えば、処理ノード４１にタスク処理を委任することに決定できる。マスターノードＭＡＳＴＥＲ４は、処理ノード４１にメモリ確認要請が転送できる。メモリ確認要請は、処理ノード４１がタスク処理のために割り当てられるメモリ容量についての情報を含むことができる。
【０１１４】
マスターノードＭＡＳＴＥＲ４は、メモリ確認要請に対して処理ノード４１から割り当て結果が受信できる。割り当て結果は、プールドメモリノードＰＤＭ４に対して割り当てが成功したか否かを含むことができる。マスターノードＭＡＳＴＥＲ４は、処理ノード４１から割り当て成功の割り当て結果を受信すれば、処理ノード４１にタスク情報が転送できる。タスク情報は、処理ノード４１に委任されたタスク内容を含むことができる。
【０１１５】
しかしながら、マスターノードＭＡＳＴＥＲ４は、処理ノード４１から割り当て失敗の割り当て結果を受信すれば、他のサブシステム(図示せず)の処理ノードにタスク処理を委任するために、該処理ノードにメモリ確認要請が転送できる。
【０１１６】
すなわち、マスターノードＭＡＳＴＥＲ４は、図２、図４及び図５のマスターノード１０、２０、３０のように、プールドメモリノードＰＤＭ４及びスイッチノードＳＷＩＴＣＨ４を介して連結しないので、プールドメモリノードＰＤＭ４の現況を認知しないことがある。したがって、マスターノードＭＡＳＴＥＲ４は、処理ノード４１にプールドメモリノードＰＤＭ４のメモリアドレス範囲を直接割り当てないことがある。
【０１１７】
スイッチノードＳＷＩＴＣＨ４は、マスターノードＭＡＳＴＥＲ４及び処理ノードＰＵ４間で情報伝達動作が遂行できる。具体的に、マスターノードＭＡＳＴＥＲ４が処理ノード４１にメモリ確認要請又はタスク情報を転送する時、スイッチノードＳＷＩＴＣＨ４は、情報伝達動作によってマスターノードＭＡＳＴＥＲ４から転送されたメモリ確認要請又はタスク情報を処理ノード４１に転送できる。処理ノード４１がマスターノードＭＡＳＴＥＲ４に割り当て結果を転送する時、スイッチノードＳＷＩＴＣＨ４は、情報伝達動作によって処理ノード４１から転送された割り当て結果をマスターノードＭＡＳＴＥＲ４に転送できる。
【０１１８】
処理ノード４１は、マスターノードＭＡＳＴＥＲ４から転送されたメモリ確認要請に応じて、プールドメモリノードＰＤＭ４に割り当て要請が転送できる。割り当て要請は、処理ノード４１に割り当てられるメモリ容量についての情報を含むことができる。処理ノード４１は、プールドメモリノードＰＤＭ４から転送された割り当て成功/失敗の応答に応じて、マスターノードＭＡＳＴＥＲ４に割り当て成功/失敗を通知する割り当て結果が転送できる。
【０１１９】
そして、処理ノード４１は、タスク処理動作を遂行することで、マスターノードＭＡＳＴＥＲ４から委任されたタスクが処理できる。処理ノード４１は、タスク処理動作を遂行するために、マスターノードＭＡＳＴＥＲ４から転送されたタスク情報が確認できる。タスク情報は、処理ノード４１に委任されたタスク内容を含むことができる。処理ノード４１は、プールドメモリノードＰＤＭ４から割り当てられたメモリ容量をタスク情報として共に管理できる。
【０１２０】
処理ノード４１は、所定の仮想アドレス範囲を使用することに決定できる。仮想アドレス範囲は、処理ノード４１に割り当てられたメモリ容量に対応できる。
【０１２１】
処理ノード４１は、プールドメモリノードＰＤＭ４にメモリアクセス要請が転送できる。メモリアクセス要請は仮想アドレスを含むことができる。仮想アドレスは、処理ノード４１がタスク処理に使用することに決定した仮想アドレス範囲に含まれる。
【０１２２】
プールドメモリノードＰＤＭ４は、処理ノード４１から転送された割り当て要請に応じて、メモリ領域のうちで部分メモリ領域を処理ノード４１に割り当て、割り当て情報が生成できる。割り当て情報は、処理ノード４１の識別情報及び部分メモリ領域のメモリアドレス範囲を含むことができる。プールドメモリノードＰＤＭ４は、処理ノード４１に割り当て成功の応答が転送できる。
【０１２３】
一方、プールドメモリノードＰＤＭ４は、処理ノード４１から割り当て要請を受信した時、処理ノードに割り当て可能なメモリ領域が存在しない場合、処理ノード４１に割り当て失敗の応答が転送できる。
【０１２４】
プールドメモリノードＰＤＭ４は、処理ノード４１から転送されたメモリアクセス要請に応じて、処理ノード４１についての割り当て情報が確認できる。プールドメモリノードＰＤＭ４は、割り当て情報から処理ノード４１の識別情報を確認し、メモリアクセス要請に含まれた処理ノード４１の識別情報と比較できる。
【０１２５】
また、プールドメモリノードＰＤＭ４は、割り当て情報から処理ノード４１に割り当てられたプールドメモリノードＰＤＭ４のメモリアドレス範囲が確認できる。プールドメモリノードＰＤＭ４は、メモリアクセス要請に含まれた仮想アドレスを割り当て情報のメモリアドレス範囲に含まれたメモリアドレスに変換できる。プールドメモリノードＰＤＭ４は、仮想アドレス及びメモリアドレス間のマッピング情報が管理できる。
【０１２６】
プールドメモリノードＰＤＭ４は、メモリアドレスに対してメモリアクセス動作が遂行できる。すなわち、プールドメモリノードＰＤＭ４は、処理ノードＰＵ４と直接的に連結するので、処理ノードＰＵ４からメモリアクセス要請を直接的に受信して、メモリアクセス許容可否が自ら判断できる。
【０１２７】
実施例により、サブシステムＳＵＢＳＹＳ４は、複数のプールドメモリノードを備えることができる。各プールドメモリノードは、処理ノードＰＵ４に各々連結することができる。すなわち、処理ノードＰＵ４の各々は、複数のプールドメモリノードに直接連結することができる。すなわち、処理ノードＰＵ４の各々は複数のプールドメモリノードに直接連結することができる。各プールドメモリノードは、スイッチノードＳＷＩＴＣＨ４とは直接的に連結しないことがある。
【０１２８】
図８ａ及び図８ｂは、本発明の実施例に係る図７のデータ処理システム４０の動作方法を示す図である。図８ａにおいて、マスターノードＭＡＳＴＥＲ４はタスク委任動作を遂行し、図８ｂにおいて、処理ノード４１はタスク処理動作が遂行できる。
【０１２９】
図８ａを参照すれば、段階Ｓ４１において、マスターノードＭＡＳＴＥＲ４は処理ノード４１にメモリ確認要請が転送できる。メモリ確認要請は、処理ノード４１が割り当てられるメモリ容量についての情報を含むことができる。なお、スイッチノードＳＷＩＴＣＨ４は、情報伝達動作によってマスターノードＭＡＳＴＥＲ４から転送されたメモリ確認要請を処理ノード４１に転送できる。
【０１３０】
段階Ｓ４２において、処理ノード４１は、マスターノードＭＡＳＴＥＲ４から転送されたメモリ確認要請に応じて、プールドメモリノードＰＤＭ４に割り当て要請が転送できる。割り当て要請は、処理ノード４１に割り当てられるメモリ容量についての情報を含むことができる。
【０１３１】
段階Ｓ４３において、プールドメモリノードＰＤＭ４は、処理ノード４１から転送された割り当て要請に応じて、全体メモリ領域ＭＲのうちで部分メモリ領域ＰＭＲを処理ノード４１に割り当て、割り当て情報ＡＳＳ４が生成できる。割り当て情報ＡＳＳ４は、処理ノード４１の識別情報及び部分メモリ領域ＰＭＲのメモリアドレス範囲を含むことができる。プールドメモリノードＰＤＭ４は、内部メモリに割り当て情報ＡＳＳ４が格納できる。
【０１３２】
段階Ｓ４４において、プールドメモリノードＰＤＭ４は、処理ノード４１に割り当て成功の応答が転送できる。
【０１３３】
段階Ｓ４５において、処理ノード４１は、プールドメモリノードＰＤＭ４から転送された割り当て成功の応答に応じて、マスターノードＭＡＳＴＥＲ４に割り当てが成功したことを報告する割り当て結果が転送できる。なお、スイッチノードＳＷＩＴＣＨ４は、情報伝達動作によって処理ノード４１から転送された割り当て結果をマスターノードＭＡＳＴＥＲに転送できる。
【０１３４】
段階Ｓ４６において、マスターノードＭＡＳＴＥＲ４は、処理ノード４１から転送された割り当て結果に応じて、処理ノード４１にタスク情報Ｔ４が転送できる。タスク情報Ｔ４は、処理ノード４１に委任されたタスク内容を含むことができる。処理ノード４１は、プールドメモリノードＰＤＭ４から割り当てられたメモリ容量をタスク情報Ｔ４として共に管理できる。処理ノード４１は、内部メモリにタスク情報Ｔ４が格納できる。なお、スイッチノードＳＷＩＴＣＨ４は、情報伝達動作によってマスターノードＭＡＳＴＥＲ４から転送されたタスク情報Ｔ４を処理ノード４１に転送できる。
【０１３５】
図８ｂを参照すれば、段階Ｓ４７において、処理ノード４１は、タスク処理動作を遂行するためにタスク情報Ｔ４が確認できる。処理ノード４１は、タスク情報Ｔ４を確認して所定の仮想アドレス範囲を使用することに決定できる。仮想アドレス範囲は、タスク情報Ｔ４に含まれた部分メモリ領域ＰＭＲのメモリ容量に対応できる。
【０１３６】
段階Ｓ４８において、処理ノード４１は、プールドメモリノードＰＤＭ４にメモリアクセス要請が転送できる。メモリアクセス要請は、仮想アドレスＶＡ４を含むことができる。仮想アドレスＶＡ４は、タスク処理に使用することに決定した仮想アドレス範囲に含まれる。
【０１３７】
段階Ｓ４９において、プールドメモリノードＰＤＭ４は、処理ノード４１から転送されたメモリアクセス要請に応じて、処理ノード４１についての割り当て情報ＡＳＳ４が確認できる。プールドメモリノードＰＤＭ４は、わらいて情報ＡＳＳ４から処理ノード４１の識別情報を確認し、メモリアクセス要請に含まれた処理ノード４１の識別情報と比較できる。また、プールドメモリノードＰＤＭ４は、割り当て情報ＡＳＳ４から処理ノード４１に割り当てられた部分メモリ領域ＰＭＲのメモリアドレス範囲が確認できる。
【０１３８】
段階Ｓ５０において、プールドメモリノードＰＤＭ４は、メモリアクセス要請に含まれた仮想アドレスＶＡ４を割り当て情報ＡＳＳ４のメモリアドレス範囲に含まれたメモリアドレスＭＡ４に変換しながら、仮想アドレスＶＡ４及びメモリアドレスＭＡ４間のマッピング情報が管理できる。プールドメモリノードＰＤＭ４は、仮想アドレスＶＡ４及びメモリアドレスＭＡ４をマッピングしたことをマッピング情報ＭＡＰ４として記憶できる。
【０１３９】
段階Ｓ５１において、プールドメモリノードＰＤＭ４は、部分メモリ領域ＰＭＲのメモリアドレスＭＡ４に対してメモリアクセス動作が遂行できる。
【０１４０】
図９は、本発明の実施例に係る図７のデータ処理システム４０の動作方法を示す図である。データ処理システム４０は、図７のサブシステムＳＵＢＳＹＳ４と同様に構成されて動作するサブシステムＳＵＢＳＹＳ４１、ＳＵＢＳＹＳ４２を含むことができる。図９は、サブシステムＳＵＢＳＹＳ４１においてプールドメモリノードの割り当てが失敗した時、マスターノードＭＡＳＴＥＲ４が他のサブシステムＳＵＢＳＹＳ４２においてタスク委任動作を同一に繰り返す動作方法を示す。
【０１４１】
具体的に、図９を参照すれば、段階Ｓ６１において、マスターノードＭＡＳＴＥＲ４は処理ノード４１にメモリ確認要請が転送できる。メモリ確認要請は、処理ノード４１に割り当てられるメモリ容量についての情報を含むことができる。なお、スイッチノードＳＷＩＴＣＨ４は、情報伝達動作によってマスターノードＭＡＳＴＥＲ４から転送されたメモリ確認要請を処理ノード４１に転送できる。
【０１４２】
段階Ｓ６２において、処理ノード４１は、マスターノードＭＡＳＴＥＲ４から転送されたメモリ確認要請に応じて、プールドメモリノードＰＤＭ４に割り当て要請が転送できる。割り当て要請は、処理ノード４１に割り当てられるメモリ容量についての情報を含むことができる。
【０１４３】
段階Ｓ６３において、プールドメモリノードＰＤＭ４は、処理ノード４１から転送された割り当て要請に応じて、全体メモリ領域ＭＲで割り当て可能な部分がない時、処理ノード４１に割り当て失敗の応答が転送できる。
【０１４４】
段階Ｓ６４において、処理ノード４１は、プールドメモリノードＰＤＭ４から転送された割り当て失敗の応答に応じて、マスターノードＭＡＳＴＥＲ４に割り当てが失敗したことを報告する割り当て結果が転送できる。なお、スイッチノードＳＷＩＴＣＨ４は、情報伝達動作によって処理ノード４１から転送された割り当て結果をマスターノードＭＡＳＴＥＲに転送できる。
【０１４５】
段階Ｓ６５において、マスターノードＭＡＳＴＥＲ４は、処理ノード４１から転送された割り当て結果を受信し、他のサブシステムＳＵＢＳＹＳ４２の処理ノード(図示せず)にメモリ確認要請が転送できる。サブシステムＳＵＢＳＹＳ４２は、マスターノードＭＡＳＴＥＲ４から転送されたメモリ確認要請に応じて、図７のサブシステムＳＵＢＳＹＳ４又は図９のサブシステムＳＵＢＳＹＳ４１が動作するように動作できる。
【０１４６】
実施例により、サブシステムＳＵＢＳＹＳ４１がプールドメモリノードＰＤＭ４の以外に他のプールドメモリノードをさらに備え、各プールドメモリノードが処理ノードＰＵ４に各々連結できる。この場合、処理ノード４１は、マスターノードＭＡＳＴＥＲ４からメモリ確認要請が転送された時、プールドメモリノードＰＤＭ４に対して割り当てが失敗すれば、他のプールドメモリノードに割り当て要請が転送できる。処理ノー４１は、すべてのプールドメモリノードに対して割り当てが失敗すれば、マスターノードＭＡＳＴＥＲ４に割り当てが失敗したことを報告する割り当て結果が転送できる。
【０１４７】
本発明の属する技術分野における通常の技術者は、本発明がその技術的思想や必須特徴から逸脱しない範囲内において、他の具体的な形態で実施できるので、前述した実施例は全ての面において例示的なものであり、限定的なものでないと理解するべきである。本発明の範囲は前記詳細な説明よりも後述する特許請求の範囲により示され、特許請求の範囲の意味及び範囲、その等価概念から導出される全ての変更又は変形された形態が、本発明の範囲に含まれるものと解析するべきである。
【図１】
2019192232.tif 000003
【図２】
2019192232.tif 000004
【図３ａ】
2019192232.tif 000005
【図３ｂ】
2019192232.tif 000006
【図４】
2019192232.tif 000007
【図５】
2019192232.tif 000008
【図６ａ】
2019192232.tif 000009
【図６ｂ】
2019192232.tif 000010
【図７】
2019192232.tif 000011
【図８ａ】
2019192232.tif 000012
【図８ｂ】
2019192232.tif 000013
【図９】
2019192232.tif 000014