(57)【要約】【課題】コンピュータネットワーク上のノード間において、リソースの透過性を提供することにある。【解決手段】複数のプロセッサユニットがスイッチング装置によって相互接続されてなる情報処理システムにおいて、各プロセッサユニットの実効アドレスがマッピングされた、複数のプロセッサユニット間で共有されるグローバルアドレス空間を導入する。プロセッサユニットの入出バスを、スイッチング装置の入出力バスへ中継するブリッジは、プロセッサユニットから、ターゲットノードの実効アドレスを指定したアクセス要求パケットを受け取り、この実効アドレスにそのターゲットノードの、スイッチングに必要なノード識別番号を付加することにより、ターゲットノードの実効アドレスをグローバルアドレスに変換して、グローバルアドレスが指定されたアクセス要求パケットをスイッチング装置に出力する。【選択図】図３
2009110032.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサユニットの入出力バスを、複数のプロセッサユニットが相互接続されるスイッチング装置の入出力バスへと中継するブリッジであって、
各プロセッサユニットの実効アドレスがマッピングされた前記複数のプロセッサユニット間で共有されるグローバルアドレス空間を前提として、当該プロセッサユニットから、前記複数のプロセッサユニットの内いずれかのターゲットノードの実効アドレスを指定したアクセス要求パケットを受け取る上流ポートと、
前記ターゲットノードの実効アドレスにそのターゲットノードの、スイッチングに必要なノード識別番号を付加することにより、前記ターゲットノードの実効アドレスをグローバルアドレスに変換する変換部と、
前記グローバルアドレスが指定されたアクセス要求パケットを前記スイッチング装置に出力する下流ポートとを含むことを特徴とするブリッジ。
【請求項２】
前記複数のプロセッサユニット上で動作する分散アプリケーションを一意に識別するアプリケーション識別番号によって前記グローバルアドレス空間が論理的に区分けされる場合に、前記変換部は、前記グローバルアドレスが指定されたアクセス要求パケット内に前記アプリケーション識別番号を格納することを特徴とする請求項１に記載のブリッジ。
【請求項３】
前記下流ポートが、前記複数のプロセッサユニットのいずれかであるソースノードから、当該プロセッサユニットをターゲットノードとしてその実効アドレスを指定したアクセス要求パケットを受け取った場合、前記変換部は、前記アクセス要求パケットから前記アプリケーション識別番号を取得し、前記上流ポートは、前記アクセス要求パケットに指定された当該プロセッサユニットの実効アドレスとともに、前記アクセス要求パケットから取得した前記アプリケーション識別番号を当該プロセッサユニットに渡すことを特徴とする請求項２に記載のブリッジ。
【請求項４】
プロセッサユニットと、
当該プロセッサユニットの入出力バスを、複数のプロセッサユニットが相互接続されるスイッチング装置の入出力バスへと中継するブリッジとを含み、
前記ブリッジは、
各プロセッサユニットの実効アドレスがマッピングされた前記複数のプロセッサユニット間で共有されるグローバルアドレス空間を前提として、当該プロセッサユニットから、前記複数のプロセッサユニットの内いずれかのターゲットノードの実効アドレスを指定したアクセス要求パケットを受け取る上流ポートと、
前記ターゲットノードの実効アドレスにそのターゲットノードの、スイッチングに必要なノード識別番号を付加することにより、前記ターゲットノードの実効アドレスをグローバルアドレスに変換する変換部と、
前記グローバルアドレスが指定されたアクセス要求パケットを前記スイッチング装置に出力する下流ポートとを含むことを特徴とする情報処理装置。
【請求項５】
前記複数のプロセッサユニット上で動作する分散アプリケーションを一意に識別するアプリケーション識別番号によって前記グローバルアドレス空間が論理的に区分けされる場合に、前記変換部は、前記グローバルアドレスが指定されたアクセス要求パケット内に前記アプリケーション識別番号を格納することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記下流ポートが、前記複数のプロセッサユニットのいずれかであるソースノードから、当該プロセッサユニットをターゲットノードとしてその実効アドレスを指定したアクセス要求パケットを受け取った場合、前記変換部は、前記アクセス要求パケットから前記アプリケーション識別番号を取得し、前記上流ポートは、前記アクセス要求パケットに指定された当該プロセッサユニットの実効アドレスとともに、前記アクセス要求パケットから取得した前記アプリケーション識別番号を当該プロセッサユニットに渡すことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
当該プロセッサユニットは、前記ブリッジから渡された前記アプリケーション識別番号をもとに、当該プロセッサユニットの実効アドレスへのアクセスの許否を決定することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
当該プロセッサユニットは、実効アドレスを物理アドレスに変換するためのアドレス変換テーブルを含み、前記アドレス変換テーブルは、実効アドレスに対するアクセスを許可する分散アプリケーションの識別番号を許可識別番号として実効アドレスに対応づけて格納しており、
当該プロセッサユニットは、当該プロセッサユニットの実効アドレスへのアクセス要求を受けて、前記アドレス変換テーブルを参照して当該実効アドレスを物理アドレスに変換する際に、前記アドレス変換テーブルにおいて当該実効アドレスに対応づけられた許可識別番号と、前記ブリッジから渡された前記アプリケーション識別番号とが一致するか否かにより、当該実効アドレスに対するアクセスの許否を決定することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
複数のプロセッサユニットと、
複数のプロセッサユニットを相互接続するスイッチング装置と、
各プロセッサユニットの入出力バスを前記スイッチング装置の入出力バスへと中継するブリッジとを含み、
前記ブリッジは、
各プロセッサユニットの実効アドレスがマッピングされた前記複数のプロセッサユニット間で共有されるグローバルアドレス空間を前提として、当該プロセッサユニットから、前記複数のプロセッサユニットの内いずれかであるターゲットノードの実効アドレスを指定したアクセス要求パケットを受け取る上流ポートと、
前記ターゲットノードの実効アドレスにそのターゲットノードの、スイッチングに必要なノード識別番号を付加することにより、前記ターゲットノードの実効アドレスをグローバルアドレスに変換する変換部と、
前記グローバルアドレスが指定されたアクセス要求パケットを前記スイッチング装置に出力する下流ポートとを含むことを特徴とする情報処理システム。
【請求項１０】
複数のプロセッサユニットの各々がブリッジを介してスイッチング装置に接続された情報処理システムにおけるグローバルアドレス管理方法であって、
各プロセッサユニットの実効アドレスがマッピングされた前記複数のプロセッサユニット間で共有されるグローバルアドレス空間を前提として、一のプロセッサユニットから、前記複数のプロセッサユニットの内いずれかのターゲットノードの実効アドレスを指定したアクセス要求パケットを受け取るステップと、
前記ターゲットノードの実効アドレスにそのターゲットノードの、スイッチングに必要なノード識別番号を付加することにより、前記ターゲットノードの実効アドレスをグローバルアドレスに変換するステップと、
前記グローバルアドレスが指定されたアクセス要求パケットを前記スイッチング装置に転送するステップとを含むことを特徴とするグローバルアドレス管理方法。
【請求項１１】
前記複数のプロセッサユニット上で動作する分散アプリケーションを一意に識別するアプリケーション識別番号によって前記グローバルアドレス空間が論理的に区分けされる場合に、前記グローバルアドレスが指定されたアクセス要求パケット内に前記アプリケーション識別番号を格納した上で、前記スイッチング装置に転送することを特徴とする請求項１０に記載のグローバルアドレス管理方法。
【請求項１２】
前記複数のプロセッサユニットのいずれかのソースノードから、一のプロセッサユニットをターゲットノードとしてその実効アドレスを指定したアクセス要求パケットを受け取った場合、前記アクセス要求パケットに格納された前記アプリケーション識別番号を照合することにより、前記一のプロセッサユニットの実効アドレスに対する許可されていない分散アプリケーションからのアクセスを禁止することを特徴とする請求項１１に記載のグローバルアドレス管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータネットワーク上におけるノード間のアクセス技術に関する。
【背景技術】
【０００２】
従来、コンピュータネットワーク上において、通信を行うノード同士は互いのメモリやＩＯデバイスなどのリソースが見えず、リソースの透過性がなかった。
【０００３】
そのため、たとえば、Ｅｔｈｅｒｎｅｔ（登録商標）などのネットワークにおいて、ノード間のアクセスは、ノードに備えられたＮＩＣ（ネットワーク・インターフェイス・カード）などのネットワークハードウェアやこれらのハードウェアのデバイスドライバを介して行われており、システムの負荷が大きく、オーバーヘッドにつながる問題があった。
【０００４】
また、複数のプロセッサが接続されてなるマルチプロセッサシステムのようなコンピュータネットワークにおいて、各プロセッサ間においてリソースの透過性がないため、各プロセッサがアクセス可能な共有メモリを設け、共有メモリを介してプロセッサ間のデータの受渡しを行うことが考えられる。この場合、たとえばプロセッサＡがプロセッサＢにデータを渡したいときに、直接の受渡ができず、プロセッサＡによる、共有メモリへデータをコピーする処理と、プロセッサＢによる、共有メモリからデータを読み出してコピーする処理が必要であり、同じくオーバーヘッドの問題が起きうる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、上記事情に鑑みてなされたものであり、その目的は、コンピュータネットワーク上のノード間において、リソースの透過性を提供することにある。
【課題を解決するための手段】
【０００６】
本発明のある態様は、ブリッジである。このブリッジは、プロセッサユニットの入出力バスを、複数のプロセッサユニットが相互接続されるスイッチング装置の入出力バスへと中継するブリッジであって、上流ポートと、変換部と、下流ポートを含む。
【０００７】
上流ポートは、各プロセッサユニットの実効アドレスがマッピングされた複数のプロセッサユニット間で共有されるグローバルアドレス空間を前提として、当該プロセッサユニットから、複数のプロセッサユニットの内いずれかのターゲットノードの実効アドレスを指定したアクセス要求パケットを受け取る。ここで、実効アドレスとは実効アドレス空間内の所定の位置を示すアドレスである。さらに実効アドレス空間とは、各プロセッサユニット内に点在するメインメモリ等を含む記憶手段の各々から部分的に切り取られたメモリ空間の一部同士を集合させ、結合したものである。１つの実効メモリ空間は１つのプロセッサユニットに対応する。すなわち、プロセッサユニットと同数の実効メモリ空間が存在することになり、各プロセッサユニットは自分に対応する実効メモリ空間をワークメモリとして使用する。実効メモリ空間の内部構成を最適化することにより、対応するプロセッサユニットは最大パフォーマンスで動作できる。
【０００８】
変換部は、上流ポートと、ターゲットノードの実効アドレスにそのターゲットノードの、スイッチングに必要なノード識別番号を付加することにより、ターゲットノードの実効アドレスをグローバルアドレスに変換する。
【０００９】
下流ポートは、変換部と、グローバルアドレスが指定されたアクセス要求パケットをスイッチング装置に出力する。
【００１０】
また、複数のプロセッサユニット上で動作する分散アプリケーションを一意に識別するアプリケーション識別番号によってグローバルアドレス空間が論理的に区分けされる場合に、変換部は、グローバルアドレスが指定されたアクセス要求パケット内にアプリケーション識別番号を格納するようにしてもよい。
【００１１】
また、下流ポートが、複数のプロセッサユニットのいずれかであるソースノードから、当該プロセッサユニットをターゲットノードとしてその実効アドレスを指定したアクセス要求パケットを受け取った場合、変換部は、アクセス要求パケットからアプリケーション識別番号を取得し、上流ポートは、アクセス要求パケットに指定された当該プロセッサユニットの実効アドレスとともに、アクセス要求パケットから取得したアプリケーション識別番号を当該プロセッサユニットに渡すようにしてもよい。
【００１２】
本発明の別の態様は、情報処理装置である。この装置は、プロセッサユニットと、当該プロセッサユニットの入出力バスを、複数のプロセッサユニットが相互接続されるスイッチング装置の入出力バスへと中継するブリッジとを含む。ブリッジは、前述した態様のブリッジとすることができる。
【００１３】
本発明のさらに別の態様は、情報処理システムである。この情報処理システムは、複数のプロセッサユニットと、複数のプロセッサユニットを相互接続するスイッチング装置と、各プロセッサユニットの入出力バスをスイッチング装置の入出力バスへと中継するブリッジとを含む。このブリッジも、前述した態様のブリッジとすることができる。
【００１４】
なお、本発明の構成要素や表現を方法、システム、プログラム、プログラムを記憶した記憶媒体などの間で相互に置換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１５】
本発明は、コンピュータネットワーク上のノード間においてリソースの透過性を提供することができる。
【発明を実施するための最良の形態】
【００１６】
本発明の実施の形態の詳細を説明する前に、まず、本発明者が提案する技術の概要を説明する。
【００１７】
図１に示す情報処理システムについて考える。この情報処理システムは、複数ここでは例として２つのノード４０を有し、これらのノードはスイッチング装置（以下単にスイッチという）５０によって接続される。
【００１８】
図２は、ノード４０の構成を示す。
【００１９】
ノード４０は、プロセッサユニット３０と、プロセッサユニット３０の入出力バス（図示せず）を、スイッチ５０の入出力バス（図示せず）へ中継するブリッジ２０を備える。プロセッサユニット３０は、単一のプロセッサであってもよいし、複数のプロセッサより構成されたものであってもよい。ここで、ブリッジ２０の詳細を説明する前に、この技術に用いられるグローバルアドレス空間について説明する。
【００２０】
図３は、グローバルアドレス空間の概念を示す。図３に示すように、グローバルアドレス空間において、各プロセッサユニット３０の実効アドレスが、このプロセッサユニット３０が属するノードに対応付けられるようにマッピングされている。このグローバルアドレス空間は、各プロセッサユニット３０間で共有され、それにおけるアドレスは、以下グローバルアドレスという。
【００２１】
このグローバルアドレス空間を用いて、ノード４０間のアクセスが行われる。
【００２２】
ソースノードのプロセッサユニット３０は、ターゲットノードにアクセスする際に、ターゲットノードの実効アドレスを指定したアクセス要求パケットを発行して、ブリッジ２０に出力する。このアクセス要求パケットの発行は、たとえばＤＭＡ（ダイレクト・メモリ・アクセス）アーキテクチャを用いて行われる。
【００２３】
図４は、ブリッジ２０の構成を示す。ブリッジ２０は、プロセッサユニット３０の入出力バスを介してプロセッサユニット３０との送受信を行う上流ポート２２、変換部２４、スイッチ５０の入出力バスを介してスイッチ５０との送受信を行う下流ポート２６を備える。
【００２４】
上流ポート２２は、プロセッサユニット３０により発行されたアクセス要求パケットを受け取り、変換部２４は、ターゲットノードの実効アドレスに、ターゲットノードの、スイッチングに必要なノード識別番号（以下ノードＩＤという）を付加することによって、ターゲットノードの実効アドレスをグローバルアドレスに変換する。そして、下流ポート２６は、このグローバルアドレスを指定するアクセス要求パケットをスイッチ５０に出力する。
【００２５】
ノードＩＤは、ノード４０がネットワークにおける物理位置を示しうるものであり、たとえば、スイッチ５０における、このノードが接続された接続ポートの番号を用いることができる。
【００２６】
図５は、グローバルアドレスのフォーマットを示す。図示のように、グローバルアドレスは、ノードＩＤと実効アドレスから構成される。
【００２７】
ブリッジ２０の下流ポート２６は、このようなグローバルアドレスを指定したアクセス要求パケットをスイッチ５０に出力し、スイッチ５０は、受信したアクセス要求パケットのグローバルアドレスに含まれるノードＩＤを読み取り、このノードＩＤにより示される接続ポートに接続されたノード４０にアクセス要求パケットを転送する。
【００２８】
ターゲットノードとなるノード４０のブリッジ２０は、下流ポート２６によりアクセス要求パケットを受け取る。上流ポート２２はアクセス要求パケットにより指定された実効アドレスをプロセッサユニット３０に出力する。この場合、変換部２４によりグローバルアドレスから実効アドレスを読み出して上流ポート２２に渡すようにしてもよいし、スイッチ５０が、アクセスパケットを転送する際に、グローバルアドレスに含まれる実効アドレスのみをブリッジ２０に出力し、変換部２４の介在を必要としないようにしてもよい。または、アクセス要求パケットをそのままプロセッサユニット３０に渡し、プロセッサユニット３０により実効アドレスの読出を行うようにしてもよい。
【００２９】
プロセッサユニット３０は、実効アドレスを物理アドレスに変換する。
【００３０】
このように、ユーザ空間の一部をグローバルアドレス空間にマッピングすることによって、コンピュータネットワーク上のノード間において、リソースの透過性を得ることができる。これによって、ネットワークハードウェアやこれらのハードウェアのデバイスドライバの操作をせずにノード間のアクセスができ、低オーバヘッドのメモリアクセスが実現される。
【００３１】
次に、ネットワーク上の複数のノードが並列に同じアプリケーションを処理可能な分散アプリケーションシステムにこの技術を適用した場合について説明する。
【００３２】
この場合において、アプリケーションを実行するノード、具体的にはノードに含まれるプロセッサユニットにおけるメモリには、動作中のアプリケーション毎にエリアが割り当てられている。本発明者が提案する技術は、分散アプリケーションシステムにおいて、異なるノードで動作する同じアプリケーション間で、このアプリケーションに対して割り当てられたエリアにアクセスすることを容易にする。
【００３３】
そのために、アプリケーション識別番号（以下アプリケーションＩＤまたはＡＰＩＤという）を導入し、図３に示すグローバルアドレス空間を、このアプリケーションＩＤを用いて論理的に区分けする。
【００３４】
アプリケーションＩＤは、動作中のアプリケーション毎に付与された、システム全体において一意にこのアプリケーションを識別するものである。すなわち、異なる複数のノードで動作する同じアプリケーションは、同じアプリケーションＩＤを有することになる。
【００３５】
図６は、この場合のグローバルアドレス空間の概念を示す。右側の実効アドレスは各ノード、並びに当該ノードにおいて動作するアプリケーションに対応する実効アドレス空間である。中央のアドレス空間は、情報処理システム内に点在する同じアプリケーションに対応する実効アドレス空間の集合である。左側のアドレス空間は、情報処理システム内の各アプリケーションに対応するアドレス空間の集合である。
【００３６】
図１に示すシステム構成を利用して、この場合におけるノード間のアクセスを説明する。
【００３７】
ソースノードのプロセッサユニット３０は、ターゲットノードにアクセスする際に、ターゲットノードの実効アドレスを指定したアクセス要求パケットを発行して、ブリッジ２０に出力する。
【００３８】
ブリッジ２０の変換部２４は、ターゲットノードの実効アドレスに、ＡＰＩＤと、ターゲットノードのノードＩＤとを付加することによって、ターゲットノードの実効アドレスをグローバルアドレスに変換して、下流ポートを介して、このグローバルアドレスを指定し、アクセス要求元であるソースノードのノードＩＤが追加されたアクセス要求パケットをスイッチ５０に出力する。
【００３９】
図７は、グローバルアドレスのフォーマットの一例を示す。図示のように、このグローバルアドレスは、アプリケーションＩＤ（ＡＰＩＤ）、ノードＩＤ、実効アドレスによって構成される。
【００４０】
なお、グローバルアドレスのフォーマットは、図７に示す例に限られることがない。ＡＰＩＤは、アクセス要求パケットに含まれ、ターゲットノードのブリッジ２０により読出可能であればよく、たとえばグローバルアドレスのフォーマットとして図５に示すフォーマットを用い、ＡＰＩＤをアクセス要求パケットに格納するようにしてもよい。
【００４１】
ターゲットノードとなるノード４０のブリッジ２０は、アクセス要求パケットを受け取ると、変換部２４は、アクセス要求パケットからＡＰＩＤを読み出し、このＡＰＩＤとともに、アクセス要求パケットにより指定された実効アドレスをノード４０に渡す。
【００４２】
プロセッサユニット３０は、実効アドレスを、ＡＰＩＤに対応するアプリケーションに対して設けられたエリアの物理アドレスに変換する。
【００４３】
このように、各ノードにおける実効アドレスがマッピングされたグローバル空間を、ＡＰＩＤを用いて論理的に区分けし、グローバルアドレスにＡＰＩＤを付加するかアクセス要求パケットにＡＰＩＤを格納することによって、ユーザアプリケーションが容易に、ノード間にまたがってアプリケーションが利用するメモリ空間にアクセスする可能となる。  さらに、この場合において、プロセッサユニットは、ブリッジから渡されたＡＰＩＤを利用して、このアクセスの許否を決定するようにすることが好ましい。あるいはプロセッサユニットは、アクセス要求元ノードＩＤを利用して許否決定してもよい。
【００４４】
たとえば、プロセッサユニットは、実効アドレスを物理アドレスに変換する際に、変換のためのアドレス変換テーブルを用いることが考えられる。このアドレス変換テーブルに、アクセス要求先である物理アドレス空間へのアクセス許可／禁止を示す許可識別番号を付加する。当該許可識別番号とは例えば、各物理アドレス空間毎にアクセスを許可するアクセス要求元ノードのノードＩＤ、またはアクセス要求元アプリケーションの識別情報であるＡＰＩＤである。そして、プロセッサユニットは、この変換テーブルを参照して実効アドレスを物理アドレスに変換する際に、ブリッジから渡されたアクセス要求元ノードＩＤまたはＡＰＩＤと、変換テーブルにおいてこの実効アドレスに対応付けられた許可識別番号と一致するか否かにより、この実効アドレスに対するアクセスの許否を決定することができる。
【００４５】
こうすることによって、アプリケーションがノード間にまたがって動作し、且つ各ノードにおいてはプロセッサユニットまたはアプリケーションが最大パフォーマンスで動作するように各々の実効メモリ空間の内部構成が最適化された状態において、当該実効メモリ空間のノード間の相互アクセスを容易にするとともに、所定のアプリケーションに対して割り当てられたエリアが、異なるアプリケーションからアクセスされることを防ぐことができ、安全である。
【００４６】
また、実行アドレスから物理アドレスへの変換を、プロセッサユニット側において行うことによって、ブリッジの構成を単純にすることができる。さらに、プロセッサユニット側において、ブリッジとは独立に変換テーブルの調整などができる。さらに、ＩＯデバイスやメモリサイズの異なる種類のノードが混在しても、同じ構成のブリッジでノード間のアクセスを可能にすることができる。
【００４７】
以下、本発明の実施の形態について、以上の概要を具現化してシステムを説明する。
【００４８】
図８は、本発明にかかる実施の形態による情報処理システムの構成を示す。この情報処理システムは、複数のノード１００と、これらのノードを接続してネットワークを形成するスイッチ８０を備える。ノード１００は、図示しない接続用バスでスイッチ８０と接続されており、この接続用バスは、たとえばＰＣＩＥｘｐｒｅｓｓ（登録商標）バスとする。
【００４９】
図９は、図８に示す情報処理システムにおけるノード１００の構成例を示す。ノード１００は、ブリッジ１１０と、マルチコアプロセッサ１２０と、メインメモリ１８０とを有する。
【００５０】
マルチコアプロセッサ１２０は、ワンチップで形成されており、主処理ユニットＰＰＥ（Ｐｏｗｅｒ  Ｐｒｏｃｅｓｓｉｎｇ  Ｅｌｅｍｅｎｔ）１４０と、複数、図示の例では８つのサブ処理ユニットＳＰＥ（Ｓｙｎｅｒｇｉｓｔｉｃ  Ｐｒｏｃｅｓｓｉｎｇ  Ｅｌｅｍｅｎｔ）１３０と、ＩＯインターフェイス（以下ＩＯＩＦという）１６０と、メモリコントローラ１７０とを有し、これらは、リングバス１５０によって接続される。
【００５１】
メインメモリ１８０は、マルチコアプロセッサ１２０の各処理ユニットの共有メモリであり、メモリコントローラ１７０と接続されている。
【００５２】
メモリコントローラ１７０は、ＰＰＥ１４０および各ＳＰＥ１３０がメインメモリ１８０にアクセスする仲介を行う。なお、図９に示す例では、メインメモリ１８０はマルチコアプロセッサ１２０の外部に設けられているが、マルチコアプロセッサ１２０内に含まれるように設けられてもよい。
【００５３】
ＩＯＩＦ１６０は、図示しないＩＯＥＦバスによってブリッジ１１０と接続され、ブリッジ１１０と協働して、各ノード１００間のアクセスを可能にする。ＩＯＩＦ１６０には、ＩＯコントローラ１６４が含まれている。
【００５４】
ＳＰＥ１３０は、コア１３２と、ローカルメモリ１３４と、メモリフローコントローラ（以下ＭＦＣという）１３６とを備え、ＭＦＣ１３６には、ＤＭＡＣ（ダイレクトメモリアクセスコントローラ）１３８が含まれている。なお、ローカルメモリ１３４は、従来のハードウェアキャッシュメモリではないことが望ましく、それには、ハードウェアキャッシュメモリ機能を実現するための、チップ内蔵またはチップ外に置かれたハードウェアキャッシュ回路、キャッシュレジスタ、キャッシュメモリコントローラなどが無い。
【００５５】
ＰＰＥ１４０は、コア１４２と、Ｌ１キャッシュ１４４と、Ｌ２キャッシュ１４５と、ＭＦＣ１４６とを備え、ＭＦＣ１４６には、ＤＭＡＣ１４８が含まれている。
【００５６】
通常、マルチコアプロセッサ１２０のオペレーティングシステム（以下ＯＳともいう）は、ＰＰＥ１４０において動作し、ＯＳの基本処理に基づいて、各ＳＰＥ１３０で動作するプログラムが決定される。また、ＳＰＥ１３０で動作するプログラムは、ＯＳの機能の一部をなすようなプログラム（たとえばデバイスドライバや、システムプログラムの一部など）であってもよい。なお、ＰＰＥ１４０とＳＰＥ１３０の命令セットアーキテクチャは、異なる命令セットを有する。
【００５７】
図８に示す情報処理システムは、複数のマルチコアプロセッサ１２０上で同じアプリケーションが動作可能な分散アプリケーションシステムである。このシステムにおいて、図６に示すグローバルアドレス空間が用いられる。
【００５８】
図１０は、ブリッジ１１０の構成を示す。ブリッジ１１０は、第１の入出力部１１２、ブリッジコントローラ１１４と、第２の入出力部１１８を有し、ブリッジコントローラ１１４には、レジスタ群１１６が含まれている。
【００５９】
第１の入出力部１１２と第２の入出力部１１８は、図４に示すブリッジ２０の上流ポート２２と下流ポート２６とぞれぞれ同じであり、ここで詳細な説明を省略する。
【００６０】
ブリッジコントローラ１１４は、自身が属するノードがソースノードであるときに、マルチコアプロセッサ１２０により発行されたアクセス要求パケットが指定した実効アドレスをグローバルアドレスへの変換を行う。また、自身が属するノードがターゲットノードとしてアクセスされたときに、第２の入出力部１１８によって受信したアクセス要求パケットに含まれるグローバルアドレスからＡＰＩＤを読み出し、このＡＰＩＤとともに、アクセス要求パケットが指定した実効アドレスをマルチコアプロセッサ１２０に渡す。これらの処理は、レジスタ群１１６に書き込まれたチャネル情報（後述する）に基づいて行われる。
【００６１】
ブリッジコントローラ１１４内には、各ノード１００における実効アドレスと情報処理システム全体におけるグローバルアドレスの変換を行うためのＩＯアドレス空間が存在する。ＩＯアドレス空間は１つまたは複数の空間に分割され、各空間はチャネルとして管理される。さらに１つのチャネルには１つのアプリケーションが割り当てられる。ブリッジコントローラ１１４は、さらに変換を行うためのレジスタをチャネル情報として各チャネル毎に備え、それらレジスタの集合がレジスタ群１１６である。ブリッジコントローラ１１４が備える変換用レジスタは、当該チャネルを識別するチャネル識別情報、ＩＯベースアドレス、ＩＯレンジ等を各チャネル毎に含む。但し、本発明においてはチャネル識別情報として、当該チャネルに割り当てられたアプリケーションの識別情報であるＡＰＩＤを用いる。また、ＩＯベースアドレスとは、ＩＯアドレス空間において当該チャネルおよび当該アプリケーションに割り当てられた空間の開始位置を示すアドレスであり、ＩＯレンジとは、ＩＯアドレス空間において、当該チャネルおよび当該アプリケーションに割り当てられた空間の大きさを示すレンジである。
【００６２】
チャネル情報は、システムプログラムによってＩＯＩＦ１６０を経由してレジスタ群１１６に含まれる該当のレジスタに書き込まれる。
【００６３】
ここで、ノード１００間のアクセスについて説明する。
【００６４】
まず、アクセスを行うノード１００の動作を説明する。
【００６５】
ノード１００に含まれるマルチコアプロセッサ１２０は、アクセスを要求するアプリケーションに対して設けられたチャネルを経由してターゲットノードとなる他のノードにアクセスする。アクセスするのにあたり、マルチコアプロセッサ１２０は、アクセス要求パケットをブリッジ１１０に発行する。このアクセス要求パケットは、ターゲットノードにおけるアクセス要求先アプリケーションの実効アドレス（本実施の形態において、ターゲットノードのＩＯアドレス空間におけるオフセットである）を含む。なお、このアクセス要求パケットは、マルチコアプロセッサ１２０に含まれるいずれかの処理ユニットのＤＭＡＣから発行される。
【００６６】
ブリッジ１１０のブリッジコントローラ１１４は、実効アドレスをグローバルアドレスに変換する。ここで、グローバルアドレスについては、図７に示すフォーマットが用いられる。すなわち、ブリッジコントローラ１１４により得られたグローバルアドレスは、アクセスを要求するアプリケーションのＡＰＩＤと、ターゲットノードのノードＩＤと、ターゲットノードにおける実効アドレスから構成される。さらにここで、アクセス要求パケットにはアクセス要求元であるソースノードのノードＩＤが追加される。
【００６７】
ブリッジ１１０は、このグローバルアドレスを指定したアクセス要求パケットに含まれるノードＩＤを読み取り、このノードＩＤにより示されるターゲットノードにアクセス要求パケットを転送する。
【００６８】
次に、アクセスされる側のノード１００、すなわちターゲットノードの動作について説明する。
【００６９】
ターゲットノードとなるノード１００のブリッジ１１０はアクセス要求パケットを受信すると、ブリッジコントローラ１１４によりアクセス要求パケットに含まれるＡＰＩＤを読み出すとともに、レジスタ群１１６を参照して、このＡＰＩＤに対して設定されたチャネル情報を取得する。そして、アクセス要求パケットに含まれる実効アドレスを、ＩＯアドレスに変換する。
【００７０】
ブリッジ１１０は、このようにして得たＩＯアドレスを、ＡＰＩＤとともにマルチコアプロセッサ１２０のＩＯＩＦ１６０に送信する。
【００７１】
ＩＯＩＦ１６０のＩＯコントローラ１６４は、ＩＯアドレスを、メインメモリ１８０における物理アドレスに変換する。図１１は、この変換に用いられた変換テーブルおよび変換の結果の例を示す。
【００７２】
メインメモリ１８０がセグメントに分けられており、各セグメントはまた所定のページサイズのページに分けられている。ページサイズが４ＫＢであるときに、３６ビットのＩＯアドレスの各ビットは下記のように規定される：ＩＯ  Ａｄｄｒｅｓｓ［３４：２８］＝セグメント、ＩＯ  Ａｄｄｒｅｓｓ［２７：１２］＝ページ、ＩＯ  Ａｄｄｒｅｓｓ［１１：０］＝オフセット。
【００７３】
図１１に示すように変換テーブルは、セグメントに含まれる各ページ毎に物理アドレス（空間）をマッピングするとともに、許可識別番号ＩＯＩＤによってアクセス許可／禁止を示している。ここでＩＯＩＤは、対応する物理アドレス（空間）へのアクセスが許可されているアクセス要求元ノードのノードＩＤ、またはアクセス要求元アプリケーションの識別情報であるＡＰＩＤを示す。
【００７４】
ＩＯコントローラ１６４は、ブリッジ１１０から受信したＩＯアドレスにより表されるセグメント番号、ページ番号について、変換テーブルを参照して、マッピングが許可されているか否かを見出す。たとえば、「セグメント＝１、ページ＝２、オフセット＝０」を示すＩＯアドレスとともに受信したアクセス要求元ノードＩＤ、またはＡＰＩＤがＣである場合には、変換テーブルはセグメント＝１、ページ＝２に対してＩＯＩＤ＝Ｃを対応づけ、アクセス要求元ノードＩＤ、またはＡＰＩＤ＝Ｃで識別されるアプリケーションによる物理アドレスｄへのマッピングが許可されることを規定しているので、ＩＯコントローラ１６４は、このＩＯアドレスを物理アドレスｄにマッピングしてアクセスを許可する。一方、「セグメント＝１２７、ページ＝１、オフセット＝０」を示すＩＯアドレスとともに受信したアクセス要求元ノードＩＤ、またはＡＰＩＤがＣである場合には、変換テーブルはセグメント＝１２７、ページ＝１に対してＩＯＩＤ＝Ｄを対応づけ、アクセス要求元ノードＩＤ、またはＡＰＩＤ＝Ｃで識別されるアプリケーションによる該当するマッピングが許可されないことを示しているので、ＩＯコントローラ１６４は、エラー信号を返して、アクセスを拒否する。
【００７５】
なお、変換テーブルからわかるように、同じアクセス要求元ノード、または同じアプリケーション（たとえばＩＯＩＤ＝Ａに対応するアクセス要求元ノード、またはアプリケーション）に対して、メモリ上の連続したエリア（物理アドレスａ、ｂにより示されるエリア）にマッピングされる。
【００７６】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
そのような変形例として、スイッチ８０はＰＣＩバスを相互接続するものであったが、ＰＣＩ以外の規格のバスを相互接続するスイッチを用いてネットワークを構成してもよい。
【図面の簡単な説明】
【００７７】
【図１】本発明の概要の説明に用いた情報処理システムを示す図である。
【図２】図１に示す情報処理システムにおけるノードの構成を示す図である。
【図３】グローバルアドレス空間の概念を示す図（その１）である。
【図４】図２に示すノードにおけるブリッジの構成を示す図である。
【図５】図３に示すグローバルアドレス空間に対応するグローバルアドレスのフォーマットを示す図である。
【図６】グローバルアドレス空間の概念を示す図（その２）である。
【図７】図６に示すグローバルアドレス空間に対応するグローバルアドレスのフォーマットの一例を示す図である。
【図８】本発明にかかる実施の形態による情報処理システムの構成を示す図である。
【図９】図８に示す情報処理システムにおけるノードの構成例を示す図である。
【図１０】図９に示すノードにおけるブリッジの構成を示す図である。
【図１１】実効アドレスを物理アドレスへ変換する際に用いられる変換テーブルおよび変換の結果の例を示す図である。
【符号の説明】
【００７８】
２０  ブリッジ、  ２２  上流ポート、  ２４  変換部、  ２６  下流ポート、  ３０  プロセッサユニット、  ４０  ノード、  ５０  スイッチ、  ８０  スイッチ、  １００  ノード、  １１０  ブリッジ、  １１２  第１の入出力部、  １１４  ブリッジコントローラ、  １１６  レジスタ群、  １１８  第２の入出力部、  １２０  マルチコアプロセッサ、  １３０  ＳＰＥ、  １３２  コア、  １３４  ローカルメモリ、  １３６  ＭＦＣ、  １３８  ＤＭＡＣ、  １４０  ＰＰＥ、  １４２  コア、  １４４  Ｌ１キャッシュ、  １４５  Ｌ２キャッシュ、  １４６  ＭＦＣ、  １４８  ＤＭＡＣ、  １５０  リングバス、  １６０  ＩＯＩＦ、  １６４  ＩＯコントローラ、  １７０  メモリコントローラ、  １８０  メインメモリ。
【図１】
2009110032.tif 000003
【図２】
2009110032.tif 000004
【図３】
2009110032.tif 000005
【図４】
2009110032.tif 000006
【図５】
2009110032.tif 000007
【図６】
2009110032.tif 000008
【図７】
2009110032.tif 000009
【図８】
2009110032.tif 000010
【図９】
2009110032.tif 000011
【図１０】
2009110032.tif 000012
【図１１】
2009110032.tif 000013