(57)【特許請求の範囲】
【請求項１】
ノードとノードを結合するためのノード結合装置を有し、複数のノードを複数のグループに分割して、同一グループで一つのシステムとして動作させることのできるマルチノードシステムにおいて、
前記複数のノードの各ノードに１個の前記ノード結合装置を接続し、隣接するノードのノード結合装置を互いに接続し、
前記ノード結合装置は、
自ノードと接続する結合ポートと、
隣接する他ノードのノード結合装置と接続するための結合ポートと、
ノード間でやり取りされるトランザクションの流れを制御するためのトランザクションコントローラとを備え、
前記トランザクションコントローラは、分割制御レジスタを有し、
前記分割制御レジスタは、前記結合ポート毎に、それに接続されている自ノードまたは隣接する他ノードが属するグループＩＤ及び各ノードに割り当てられたリソースマッピング情報から成る分割情報を保持していて、
前記トランザクションコントローラは、トランザクションを受付けると、トランザクション送出元の結合ポートのグループＩＤと同一のグループＩＤを持つ他の結合ポートを前記分割制御レジスタから抽出し、該抽出した結合ポートのリソースマッピング情報とトランザクションのリソースアクセス要求のアドレスとの比較結果により、トランザクションのあて先となる結合ポートを求めて、そのトランザクションをそのあて先に送出するように制御することを特徴とするマルチノードシステム。
【請求項２】
前記リソースマッピング情報は、前記自ノードおよび隣接する他のノードに割当てられたメモリマッピング情報、又はＩ／Ｏマッピング情報であり、前記リソースアクセス要求は、メモリアクセス要求、又はＩ／Ｏアクセス要求であることを特徴とする請求項１記載のマルチノードシステム。
【請求項３】
請求項１および請求項２記載のいずれかのマルチノードシステムは、スーパバイザプロセッサを有し、
前記スーパバイザプロセッサが、前記分割制御レジスタの分割情報を設定することを特徴とするマルチノードシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マルチノードシステムに係り、特にノードをいくつのグループに分割して一つのシステムとして動作させるマルチ分割に用いて、経済性、拡張性の点で好適なマルチノードシステムに関する。
【０００２】
【従来の技術】
従来、複数のノードを結合して構成されているマルチノードシステムでは、ノードをシステム構築者の意図により、いくつのグループに分割して、同一のグループに属するノードで一つのシステムとして動作させる技術が知られている。このようなシステム技術は、「マルチ分割」あるいは「マルチドメイン」などと呼称されている。
【０００３】
分割されたシステムは、それぞれのグループが一つのＯＳにより動作して、同じグループに属するノード間でのみトランザクションをやり取りして、異なったグループに属するノード間では、トランザクションのやり取りはおこなわない。
【０００４】
以下、図５および図６を用いて従来技術に係るマルチノードシステムを説明する。
図５は、従来技術に係るマルチノードシステムのシステム構成図である（その一）。
図６は、従来技術に係るマルチノードシステムのシステム構成図である（その二）。
【０００５】
従来技術に係るマルチノードシステムでは、図５に示すように、複数のノード２１０が一つのノード結合装置３００によって接続されている。
【０００６】
そして、各ノード２１０からのトランザクションは、前記ノード結合装置３００内にあるアービタ３３０で調停された後、クロスバースイッチ３４０であて先のノードへルーティングされる。マルチ分割の制御をおこなう際には、ノード２１０の起動前に、スーパバイザプロセッサ３５０から、ノードコントローラ２５０内の分割制御レジスタ２５１の設定が必要である。
【０００７】
分割制御レジスタには、ノードがどのグループに属するかを示す分割情報として、ノードＩＤとグループＩＤの対を持っている。
【０００８】
そして、ノード内のノードコントローラ２５０は、トランザクションを自分の属するグループのノードに送るように制御する。例えば、図５の例では、ノードＮ１は、グループＧ１に属するので、トランザクションをノードＮ２に送るように制御する。
【０００９】
また、分割制御レジスタは、図６に示すように、アービタ３３０の中に置かれることもある。このときには、アービタ３３０がトランザクションの発信元のノードを認識して、同一のグループＩＤを持つノードにトランザクションを送信するようにクロスバースイッチ３４０を制御する。
【００１０】
【発明が解決しようとする課題】
上記従来技術のマルチノードシステムでは、ノード２１０内の分割制御レジスタ２５１（または、アービタ３３０内の分割制御レジスタ３３１）で想定している最大分割数はノード結合装置３００に接続できるノード２１０の最大数に等しい。これは、言いかえると分割制御レジスタ２５１（または、分割制御レジスタ３３１）がノード結合装置３００に接続できるノード２１０の最大数に依存した構成になっているということで、上記マルチノードシステムは、拡張性を持たないマルチノードシステムということができる。このようなシステム構成は、将来拡張する予定がなく、最初からフル構成でノードを搭載して、それを分割運転するという場合であれば問題はない。
【００１１】
しかしながら、一般的には、最初は小規模システムで少ないノード数によるマルチ分割運転をおこない、途中で必要に応じて段階的にシステム規模を増やしていく場合も多い。このような場合には、ノード数が少ないときでも、最大のノード数を設置できるようなノード結合装置３３０を用意しなければならない。したがって、上記従来技術のシステムでは、ノードをフル搭載していない場合には、コスト、設置面積の面で不利であるという問題点がある。
【００１２】
また、ノードをフル搭載している場合には、それ以上拡張できないという問題点もある。
【００１３】
さらに、図５に示した構成では、各ノードが分割制御レジスタ２５１を有していて、マルチ分割機能が組み込まれたノードでなければ使用することができない。
【００１４】
本発明は、上記問題点を解決するためになされたもので、その目的は、既存のマルチ分割機能を持たないノードを搭載することができ、設置しているノードが少ない場合であっても、効率の良いノード結合がおこなうことができ、さらに、拡張性に富むマルチノードシステムを提供することにある。
【００１５】
【課題を解決するための手段】
上記目的を達成するために、本発明のマルチノードシステムの構成では、ノード結合装置をノード毎に用意して、各ノードを相互接続して、拡張性のあるマルチノードシステム構成を実現する。また、マルチ分割制御を、各ノードがもつ分割制御レジスタを使用せずに、各ノード結合装置にある分割制御レジスタのみで制御できるような機能をノード結合装置に持たせることにより、この拡張性のあるマルチノードシステム構成において、マルチ分割機能を実現する。
【００１６】
【発明の実施の形態】
以下、本発明に係る一実施形態を、図１を用いて説明する。
図１は、本発明のマルチノードシステムの構成図である。
【００１７】
本システムは、複数のノード１０とノード結合装置１００の組とスーパバイザプロセッサ１５０から構成されている。
【００１８】
ノード１０は、既存のマルチ分割機能を持たないノードを使用できる。すなわち、ノード１０側でどのようにシステムが分割されているかを意識することはない。
【００１９】
ノード１０は、ＣＰＵ２０、メモリ３０、Ｉ/Ｏ装置４０、ノードコントローラ５０から構成されている。
【００２０】
ノードコントローラ５０は、ノード内のＣＰＵ２０、メモリ３０、Ｉ/Ｏ装置４０と接続されていて、ノード結合装置１００内のトランザクションコントローラ１１０にも相互接続されている。
【００２１】
ノードコントローラ５０は、トランザクションコントローラ１１０経由で、他ノードからのトランザクションを受付け、トランザクションの種類を判定し、受付けたトランザクションが自ノードのメモリへのアクセス要求トランザクションであるならば、メモリ３０にアクセス要求を送出し、受付けたトランザクションが自ノードのＩ／Ｏ装置４０へのアクセス要求トランザクションであるならば、Ｉ／Ｏ装置４０へアクセス要求を送出する。
【００２２】
また、自ノードのＣＰＵ２０の要求により、他ノードへトランザクションを送出する動作をする。
【００２３】
ノード結合装置１００内は、結合ポート１２０〜１２２とトランザクションコントローラ１１０で構成されている。
【００２４】
結合ポート１２１は、自ノードと接続されていて、結合ポート１２０，１２２は、他ノード１０のノード結合装置１００と接続されている。この接続の形態は、いわゆる一次元のメッシュ接続であり、互いに隣り合うノードに対してトランザクションを送信するような接続である。
【００２５】
ノード結合装置１００内のトランザクションコントローラ１１０は、各ポート毎に分割情報を設定するための分割制御レジスタ１１１を有している。
【００２６】
分割情報については、後に具体例を交えて詳細に説明する。
【００２７】
スーパバイザプロセッサ１５０は、マルチノードシステムのノード全体の管理・設定をおこなう装置であるが、本発明に関連する機能としては、システムブート時に、分割制御レジスタに分割情報を設定することがある。
【００２８】
ノード結合装置１００内のトランザクションコントローラ１１０は、結合ポート１２０〜１２２経由で受付けた自ノード１０あるいはノード結合装置１００経由で接続されている他ノード１０からのトランザクションを、分割制御レジスタ１１１の設定にしたがって、その送信元のポートから適切な送信先を割り出して、送信先のノードに接続されている結合ポート１２０〜１２２に送り出す。
【００２９】
なお、図１の例では、ノード１０がマルチ分割機能を持たないものとして、説明したが、ノード１０内に分割制御レジスタが存在するノードでも、接続が可能である。その場合には、ノード１０を起動する前に、スーパバイザプロセッサ１５０から、ノード１０内の分割制御レジスタにアクセスして、ノード側では分割制御をおこなわない設定にする必要がある。
【００３０】
次に、図２、図３、図４を用いて本発明のマルチノードシステムのマルチ分割時のシステムの動作を具体例に基づいて説明する。
図２は、本発明のマルチノードシステムのマルチ分割時の構成図である。
図３は、各ノードの分割情報の具体例を示す模式図である。
図４は、本発明のマルチノードシステムのマルチ分割時のシステムの動作を示すフローチャートである。
【００３１】
図２に示されているように、ノードＮ１、ノードＮ２、ノードＮ３がグループＧ１に属していて、ノードＮ１６がグループＧ４に属しているものとする。
【００３２】
ノードＮ１、ノードＮ２、ノードＮ３は、一つのシステムとして動作し、それらのノード間でトランザクションをやり取りするが、他のグループに属するノードとは、トランザクションのやり取りをおこなわない。
【００３３】
分割制御レジスタ１１１内に、結合ポート毎に格納されている分割情報は、その結合ポートに接続されている自ノードあるいは他ノードのグループＩＤ情報、メモリマッピング情報、Ｉ／Ｏマッピング情報である。
【００３４】
グループＩＤは、各ノード１０がシステム内でどの分割グループに属するかを示す識別子であり、同じ分割グループに属するノード同士はグループＩＤを同じ値に設定する。
【００３５】
メモリマッピング情報は、結合ポート１２０〜１２２に接続されている自ノード１０のメモリ３０、あるいはノード結合装置１００経由で接続されている他ノード１０のメモリ３０がアドレス空間上のどこにマッピングされているかの情報を設定する。
【００３６】
Ｉ／Ｏマッピング情報は、結合ポート１２０〜１２２に接続されている自ノード１０のＩ／Ｏ装置４０、あるいはノード結合装置１００経由で接続されている他ノード１０のＩ／Ｏ装置４０がＩ／Ｏ空間上のどこにマッピングされているかの情報を設定する。
【００３７】
分割制御レジスタ１１１内のグループＩＤ情報は、各ノードが起動する前に、スーパバイザプロセッサ１５０から設定される。
【００３８】
また、メモリマッピング情報、および、Ｉ／Ｏマッピング情報は、同じグループＩＤに属するノード１０のうちの一つが、同じグループＩＤに属するノード間でマッピングの重複や抜けの矛盾がないようにシステムブート時に設定される。
【００３９】
トランザクションコントローラ１１０は、結合ポート１２０〜１２２経由で受付けた自ノード１０あるいはノード結合装置１００経由で接続されている他ノード１０からのトランザクションを、分割制御レジスタ１１１の設定に従って、結合ポート１２０〜１２２にルーティングすることになる。
【００４０】
例えば、分割制御レジスタの値が、図３に示されているようになっていたとする。ここで、ノードＮ２からメモリアクセス要求でアクセスがメモリアクセスが８Ｍであるトランザクションが送出されたとする。
【００４１】
以下、図４のフローチャートをも参照しながら、この場合のシステムの動作について説明する。
【００４２】
このときには、ノードＮ２のメモリコントローラは、トランザクションをポートＩＤ１の結合ポートから受けつけて（Ｓ４００）、トランザクションを送出したノードＮ２のグループＩＤがＧ１であることを知る。グループＩＤがＧ１の結合ポートは、ポートＩＤ＝０、ポートＩＤ＝２のポートなのでこれを抽出する（Ｓ４０１）。
【００４３】
そして、トランザクションの種類がメモリアクセスであり（Ｓ４０２）、メモリマッピングが８Ｍなので、ポートＩＤ＝０のメモリマッピング情報に含まれることになるので（Ｓ４０３，Ｓ４０５）、ポートＩＤ＝０の結合ポートにトランザクションを送出する（Ｓ４０７）。
【００４４】
ノードＮ１のトランザクションコントローラは、このトランザクションを受けつけて、同様の処理をおこない、ポートＩＤ＝１のポート、すなわち、ノードＮ１のノードコントローラ５０に、トランザクションを送信する。これにより、このトランザクションは、ノードＮ１で受けつけられて処理されることになる。
【００４５】
また、別の場合として、ノードＮ３からメモリアクセス要求でアクセスがメモリアクセスが８Ｍのトランザクションが送出されたとする。
【００４６】
このときには、ノードＮ３のメモリコントローラは、トランザクションをポートＩＤ１の結合ポートから受けつけて（Ｓ４００）、トランザクションを送出したノードＮ３のグループＩＤがＧ１であることを知る。グループＩＤがＧ１の結合ポートは、ポートＩＤ＝０のポートなのでこれを抽出する（Ｓ４０１）。
【００４７】
そして、トランザクションの種類がメモリアクセスであり（Ｓ４０２）、メモリマッピングが８Ｍなので、マッチングするポートはない（Ｓ４０３，Ｓ４０５）。このときには、ポートＩＤ＝０のポートにトランザクションを送出する（Ｓ４０６）。すなわち、隣のノードに転送するようにする。
【００４８】
ノードＮ２では、このトランザクションをポートＩＤ＝２で受けつけて、メモリマッピング情報を参照して、ポートＩＤ＝０のポートにトランザクションを送出して、ノードＮ１にトランザクションが転送される。したがって、このトランザクションは、ノードＮ１で処理されることになる。
【００４９】
このようにＳ４０６では、送信元のノードのグループの中で、条件の合うものがなかったときには、他のノードに転送する処理であるが、そのノード結合装置１００に接続している結合ポート１、すなわち、自ノードには、トランザクションは送らないようする。送るのは、他のノードのノード結合装置に接続された結合ポートのみである。
【００５０】
ここでは、ノード結合装置１００は、ポートを三つ持つ構成、接続形態は一次元メッシュであるが、性能や冗長性を向上させるために、さらに、多くのポートを持つ構成にしたり、他の結合形態にも適用することができる。また、ここでのシステム動作の説明では、ノードＮ３からノードＮ１にトランザクションを送信するときに、ノードＮ２のトランザクションコントローラ１１０が、トランザクションを転送する処理をおこなうように説明したが、トランザクションコントローラ１１０が、トランザクションを転送する機能を持たず、例えば、図２の構成では、ノードＮ１とノードＮ３を接続するポートをさらに設けて、トランザクションを送信するようにしても良い。
【００５１】
また、メモリアクセス要求のトランザクションについてのみ説明したが、Ｉ／Ｏアクセス要求のトランザクションについても同様の動作をおこなう。ここで、重要なのは、メモリアクセス要求のアドレスもＩ／Ｏアクセス要求のアドレスもアドレスも一意的なので、グループの中で処理するノードが一意的に定まることである。
【００５２】
したがって、マッチする結合ポートの数が複数あるときには、送信元にエラー応答を返すようにする（Ｓ４０８）。
【００５３】
【発明の効果】
本発明によれば、既存のマルチ分割機能を持たないノードを搭載することができ、設置しているノードが少ない場合であっても、効率の良いノード結合がおこなうことができ、さらに、拡張性に富むマルチノードシステムを提供することができる。
【図面の簡単な説明】
【図１】本発明のマルチノードシステムの構成図である。
【図２】本発明のマルチノードシステムのマルチ分割時の構成図である。
【図３】各ノードの分割情報の具体例を示す模式図である。
【図４】本発明のマルチノードシステムのマルチ分割時のシステムの動作を示すフローチャートである。
【図５】従来技術に係るマルチノードシステムのシステム構成図である（その一）。
【図６】従来技術に係るマルチノードシステムのシステム構成図である（その二）。
【符号の説明】
１０…ノード
２０…ＣＰＵ
３０…メモリ
４０…Ｉ／Ｏ
５０…ノードコントローラ
１００…ノード結合装置
１１０…トランザクションコントローラ
１１１…分割制御レジスタ
１２０〜１２２…結合ポート
１５０…スーパバイザプロセッサ
【図１】
0003735057.tif 000002
【図２】
0003735057.tif 000003
【図３】
0003735057.tif 000004
【図４】
0003735057.tif 000005
【図５】
0003735057.tif 000006
【図６】
0003735057.tif 000007