(57)【要約】  他の処理部（１０）に接続され他の処理部（１０）との通信を行なうポート（２０）を有する複数の処理部（１０）と、複数の処理部（１０）に対しパーティション構成に則した設定を行なう設定部（４０）と、を備え、ポート（２０）は、前記ポート（２０）の属する処理部（１０）と同一パーティションに属する処理部（１０）との通信を行なう第１通信部（２３）と、前記ポート（２０）の属する処理部（１０）と異なるパーティションに属する処理部（１０）との通信を行なう第２通信部（２４）と、設定部（４０）による設定に応じて第１通信部（２３）と第２通信部（２４）とのいずれか一方を選択し、選択した通信部に他の処理部（１０）との通信を実行させる選択部（２５）と、を有する。これにより、異なるパーティションに属する処理部間の通信が効率よく実現される。
2014027416.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理部と、
前記複数の処理部に対しパーティション構成に則した設定を行なう設定部と、を備え、
前記複数の処理部のそれぞれは、他の処理部に接続され前記他の処理部との通信を行なうポートを有し、
前記ポートは、
前記ポートの属する処理部と同一パーティションに属する処理部との通信を行なう第１通信部と、
前記ポートの属する処理部と異なるパーティションに属する処理部との通信を行なう第２通信部と、
前記設定部による前記設定に応じて前記第１通信部と前記第２通信部とのいずれか一方を選択し、選択した通信部に前記他の処理部との通信を実行させる選択部と、を有することを特徴とする情報処理装置。
【請求項２】
前記複数の処理部のそれぞれは、
前記設定部により、前記他の処理部が前記同一パーティションに属することを示す第１情報、または、前記他の処理部が前記異なるパーティションに属することを示す第２情報を設定されるレジスタをさらに有し、
前記選択部は、前記第１情報が前記レジスタに設定されている場合、前記第１通信部を選択する一方、前記第２情報が前記レジスタに設定されている場合、前記第２通信部を選択することを特徴とする、請求項１に記載の情報処理装置。
【請求項３】
前記第１通信部は、前記同一パーティションに属する前記他の処理部との間で、全てのメモリアクセスについてメモリ空間を共有するための通信を実行することを特徴とする、請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記第２通信部は、前記異なるパーティションに属する前記他の処理部との間で、前記ポートの属する処理部を成すプロセッサコアによって明示的に指示された通信を実行することを特徴とする、請求項１〜請求項３のいずれか一項に記載の情報処理装置。
【請求項５】
前記第２通信部が通信を実行することにより、前記ポートは、ＰＣＩ（Peripheral Components Interconnect）デバイスのＮＴＢ（Non-Transparent Bridge）ポートとして機能することを特徴とする、請求項４に記載の情報処理装置。
【請求項６】
前記第２通信部は、
前記プロセッサコアと接続される第１インターフェイスと、
前記他の処理部と接続される第２インターフェイスと、
前記第１インターフェイス部と前記第２インターフェイスとの間に配置されるＮＴＢトランザクション層と、を有し、
前記第２通信部が前記ポートを前記ＮＴＢポートとして用い前記他の処理部へのデータ送信を行なう場合、前記第１インターフェイスは、前記他の処理部へのデータをＰＣＩ仕様に準拠するデータに変換し、前記ＮＴＢトランザクション層は、前記第１インターフェイスからのデータに基づきＴＬＰ（Transaction Layer Packet）を生成し、前記第２インターフェイスは、前記ＮＴＢトランザクション層からのＴＬＰを、前記ポートと前記他の処理部との間の通信仕様に準拠するパケットに変換する一方、
前記第２通信部が前記ポートを前記ＮＴＢポートとして用い前記他の処理部からデータ受信を行なう場合、前記第２インターフェイスは、前記他の処理部からのパケットをＴＬＰに変換し、前記ＮＴＢトランザクション層は、前記第２インターフェイスからのＴＬＰに基づき、ＰＣＩ仕様に準拠するデータを生成し、前記第１インターフェイスは、前記ＮＴＢトランザクション層からのデータを前記プロセッサコアまたはメモリへのデータに変換することを特徴とする、請求項５に記載の情報処理装置。
【請求項７】
前記複数の処理部のそれぞれは、ＰＣＩポートおよびルートコンプレクスを有し、
前記第２通信部の前記第１インターフェイスは、前記ルートコンプレクスによって構成されることを特徴とする、請求項６に記載の情報処理装置。
【請求項８】
前記第２通信部は、
前記プロセッサコアから前記他の処理部に対する割込み指示を前記ＮＴＢトランザクション層の送信用割込みレジスタに書き込まれると、割込みを指示するＴＬＰを生成し前記他の処理部へ転送する一方、
前記他の処理部から前記プロセッサコアに対する割込み指示を前記ＮＴＢトランザクション層の受信用割込みレジスタに書き込まれると、前記プロセッサコアに対する割込み指示を行なうことを特徴とする、請求項６または請求項７に記載の情報処理装置。
【請求項９】
前記第２通信部は、
前記プロセッサコアから前記他の処理部と交換すべき交換情報を前記ＮＴＢトランザクション層の送信用交換情報レジスタに書き込まれると、前記交換情報を含むＴＬＰを生成し前記他の処理部へ転送する一方、
前記他の処理部から前記プロセッサコアと交換すべき交換情報を前記ＮＴＢトランザクション層の受信用交換情報レジスタに書き込まれると、前記プロセッサコアからの問合せに応じて、前記受信用交換情報レジスタの交換情報を前記プロセッサコアに通知することを特徴とする、請求項６〜請求項８のいずれか一項に記載の情報処理装置。
【請求項１０】
前記第２通信部が通信を実行することにより、前記ポートと前記他の処理部との間に確立されるパスは、メモリミラーリングパスおよびフェイルオーバーパスの少なくとも一方として機能することを特徴する、請求項１〜請求項９のいずれか一項に記載の情報処理装置。
【請求項１１】
他の処理部に接続され前記他の処理部との通信を行なうポートを有する複数の処理部を備えた情報処理装置において、前記複数の処理部に対しパーティション構成に則した設定を行なう制御方法であって、
前記ポートにおいて、前記ポートの属する処理部と同一パーティションに属する処理部との通信を行なう第１通信部と、前記ポートの属する処理部と異なるパーティションに属する処理部との通信を行なう第２通信部と、を備え、
前記設定に応じて前記第１通信部と前記第２通信部とのいずれか一方を選択し、選択した通信部に前記他の処理部との通信を実行させることを特徴とする情報処理装置の制御方法。
【請求項１２】
前記複数の処理部のそれぞれに、前記他の処理部が前記同一パーティションに属することを示す第１情報、または、前記他の処理部が前記異なるパーティションに属することを示す第２情報を設定されるレジスタを備え、
前記第１情報が前記レジスタに設定されている場合、前記第１通信部を選択する一方、前記第２情報が前記レジスタに設定されている場合、前記第２通信部を選択することを特徴とする、請求項１１に記載の情報処理装置の制御方法。
【請求項１３】
前記第１通信部に、前記同一パーティションに属する前記他の処理部との間で、全てのメモリアクセスについてメモリ空間を共有するための通信を実行させることを特徴とする、請求項１１または請求項１２に記載の情報処理装置の制御方法。
【請求項１４】
前記第２通信部に、前記異なるパーティションに属する前記他の処理部との間で、前記ポートの属する処理部を成すプロセッサコアによって明示的に指示された通信を実行させることを特徴とする、請求項１１〜請求項１３のいずれか一項に記載の情報処理装置の制御方法。
【請求項１５】
前記第２通信部が通信を実行することにより、前記ポートを、ＰＣＩ（Peripheral Components Interconnect）デバイスのＮＴＢ（Non-Transparent Bridge）ポートとして機能させることを特徴とする、請求項１４に記載の情報処理装置の制御方法。
【請求項１６】
前記第２通信部が通信を実行することにより、前記ポートと前記他の処理部との間に確立されるパスを、メモリミラーリングパスおよびフェイルオーバーパスの少なくとも一方として機能させることを特徴する、請求項１１〜請求項１５のいずれか一項に記載の情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、及び情報処理装置の制御方法に関する。
【背景技術】
【０００２】
サーバ等の情報処理装置は、複数のＣＰＵ（Central Processing Unit）を搭載し、ＣＰＵどうしをＱＰＩ（Quick Path Interconnect), ＨＴ（Hyper Transport）等によってポイントツーポイント接続し、物理パーティショニング機能を有する形態をとる場合がある。【０００３】
例えば、図１４は、物理パーティショニング機能を有する情報処理装置（サーバ）１００の基本構成を示すブロック図である。図１４に示すサーバ１００には、４つのＣＰＵ１０１Ａ〜１０１Ｄが搭載されている。なお、４つのＣＰＵのうちの一つを特定する場合、符号１０１Ａ〜１０１Ｄを用い、任意のＣＰＵを指す場合、符号１０１を用いる。各ＣＰＵ１０１は、２つのＣＰＵインターコネクトポート１０２を有し、４つのＣＰＵ１０１Ａ〜１０１Ｄは、ＣＰＵインターコネクトポート１０２およびＣＰＵインターコネクトライン１０３を介してリング状に接続されている。【０００４】
図１４に示す例では、サーバ１００が物理バーティショニング機能により２つの物理サーバに分割され、２つのＣＰＵ１０１Ａ，１０１Ｂと２つのＣＰＵ１０１Ｃ，１０１Ｄとが、それぞれ異なるパーティション＃０，＃１に割り当てられている。このとき、パーティション＃０に属する２つのＣＰＵ１０１Ａ，１０１Ｂ間のＣＰＵインターコネクトライン１０３や、パーティション＃１に属する２つのＣＰＵ１０１Ｃ，１０１Ｄ間のＣＰＵインターコネクトライン１０３は、通常通り使用される。一方、異なるパーティション＃０，＃１にまたがるＣＰＵインターコネクトライン１０３、つまりＣＰＵ１０１Ａ，１０１Ｄ間およびＣＰＵ１０１Ｂ，１０１Ｃ間のライン１０３は、物理的に接続されたまま使用されないか、あるいは、ＣＰＵインターコネクトライン１０３への出力がセーブまたはパワーオフした状態に保たれる。【０００５】
図１４に示すようにパーティションによって分断された２つのＣＰＵ１０１Ａ，１０１Ｄ間でのデータ通信は、ＣＰＵ１０１Ａ，１０１Ｄ間におけるＣＰＵインターコネクトライン１０３を使用することなく、例えば、図１５または図１６に示す形態で行なわれる。図１５および図１６は、それぞれ、パーティション間の通信形態の一例および他例を示すブロック図である。【０００６】
図１５に示す通信形態の一例では、各ＣＰＵ１０１の配下にＰＣＩExpress（登録商標；ＰＣＩｅ（登録商標）；Peripheral Components Interconnect express）スイッチ１０４がそなえられ、各ＰＣＩｅスイッチ１０４のカードスロット１０４ａにＮＩＣ（Network Interface Card）１０５が搭載される。そして、異なるパーティション＃０，＃１にそれぞれ属するＮＩＣ１０５，１０５が、ケーブル１０６を用いてEthernet（登録商標）経由で接続される。これにより、異なるパーティション＃０，＃１にそれぞれ属するＣＰＵ１０１Ａ，１０１Ｄ間でのデータ通信が行なわれる。【０００７】
図１６に示す通信形態の他例では、２つのパーティション＃０，＃１にそれぞれ属するＣＰＵ１０１Ａ，１０１Ｄによって共用され且つパーティション分割機能およびＮＴＢ（Non-Transparent Bridge）ポート１０４ｂを有するＰＣＩｅスイッチ１０４′がそなえられる。そして、ＰＣＩｅスイッチ１０４′のＮＴＢポート１０４ｂを用い、異なるパーティション＃０，＃１にそれぞれ属するＣＰＵ１０１Ａ，１０１Ｄ間でのデータ通信が行なわれる。なお、ＮＴＢポートとは、ＰＣＩ仕様において、異なる２つのパーティション間やホスト間でデータを共有するための機能を果たすもので、メモリマップされた空間をポート内に有し、その空間を利用してパーティション間やホスト間でのデータのやりとりが可能なポートである。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００６−４０２８５号公報
【特許文献２】特開２０１１−２２１９４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
図１５に示す通信形態では、異なる２つのパーティション＃０，＃１間のデータ通信を実現するために、別途、２枚のＮＩＣ１０５とケーブル１０６とを用意する必要がある。また、図１６に示す通信形態では、異なる２つのパーティション＃０，＃１間で共有するスイッチ１０４′が必要になる。どちらの通信形態においても、異なるパーティションのＣＰＵ１０１Ａ，１０１Ｄ間で通信をする際にスイッチ１０４，１０４′やネットワークを経由することになるため、ＣＰＵインターコネクトを使用するよりも通信性能は劣る。このように同一サーバ１００内の別パーティションに属するＣＰＵ１０１どうしが通信する場合、低レイテンシで高バンド幅のインターフェイス（ＣＰＵインターコネクトライン１０３）が存在するにも関わらず活用されておらず、ＮＩＣ１０５やＰＣＩｅスイッチ１０４，１０４′等を介して通信が行なわれており、極めて効率が悪い。【００１０】
一つの側面で、本発明は、異なるパーティションに属する処理部間の通信を効率よく実現することを目的とする。
【課題を解決するための手段】
【００１１】
一つの案では、情報処理装置は、複数の処理部と、前記複数の処理部に対しパーティション構成に則した設定を行なう設定部と、を備え、前記複数の処理部のそれぞれは、他の処理部に接続され前記他の処理部との通信を行なうポートを有している。前記ポートは、第１通信部，第２通信部および選択部を有している。前記第１通信部は、前記ポートの属する処理部と同一パーティションに属する処理部との通信を行なう。前記第２通信部は、前記ポートの属する処理部と異なるパーティションに属する処理部との通信を行なう。前記選択部は、前記設定部による前記設定に応じて前記第１通信部と前記第２通信部とのいずれか一方を選択し、選択した通信部に前記他の処理部との通信を実行させる。
【発明の効果】
【００１２】
一実施形態によれば、異なるパーティションに属する処理部間の通信を効率よく実現することができる。
【図面の簡単な説明】
【００１３】
【図１】第１実施形態としての情報処理装置の要部構成を示すブロック図である。
【図２】図１に示す要部構成を適用される、第１実施形態の情報処理装置の全体構成を概略的に示すブロック図である。
【図３】図２に示す設定部および図１に示す選択部の機能を説明するフローチャートである。
【図４】図２に示す情報処理装置の１パーティション状態を示すブロック図である。
【図５】図２に示す情報処理装置の２パーティション状態を示すブロック図である。
【図６】図１に示すＮＴＢポート上位層（第２通信部）の詳細構成を示すブロック図である。
【図７】図６に示すＮＴＢトランザクション層のアドレス変換部によるアドレス変換機能を説明するブロック図である。
【図８】トランザクションＩＤの内容を示す図である。
【図９】図６に示すＮＴＢトランザクション層のアドレス変換部によるタグ変換／逆変換機能およびトランザクションＩＤ変換／逆変換機能を説明するブロック図である。
【図１０】図６に示すＮＴＢトランザクション層によるドアベル機能およびスクラッチパッド機能を説明するブロック図である。
【図１１】図６に示すＣＰＵインターコネクトデータリンクインターフェイス（第２インターフェイス）によるパケット分割およびカプセル化を説明する図である。
【図１２】第２実施形態としての情報処理装置の要部構成を示すブロック図である。
【図１３】図１２に示すＮＴＢポート上位層（第２通信部）の詳細構成を示すブロック図である。
【図１４】物理パーティショニング機能を有する情報処理装置（サーバ）の基本構成を示すブロック図である。
【図１５】パーティション間の通信形態の一例を示すブロック図である。
【図１６】パーティション間の通信形態の他例を示すブロック図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して実施の形態を説明する。
〔１〕第１実施形態の情報処理装置（サーバ）
〔１−１〕第１実施形態の基本的な構成
まず、図１〜図３を参照しながら、第１実施形態としての情報処理装置（サーバ）１の構成および機能について説明する。なお、図１は、第１実施形態のサーバ１の要部構成を示すブロック図、図２は、図１に示す要部構成を適用される、第１実施形態のサーバ１の全体構成を概略的に示すブロック図である。また、図３は、図２に示すシステムファームウエア（設定部）４０および図１に示すマルチプレクサ（選択部）２５の機能を説明するフローチャート（ステップＳ１〜Ｓ７）である。
【００１５】
図１および図２に示すサーバ１には、４つのＣＰＵ（処理部）１０Ａ〜１０Ｄが搭載されている。ここで、４つのＣＰＵのうちの一つを特定する場合、符号１０Ａ〜１０Ｄを用い、任意のＣＰＵを指す場合、符号１０を用いる。ＣＰＵ１０どうしは、ＱＰＩ，ＨＴ等によってポイントツーポイント接続される。また、各ＣＰＵ１０は、２つのＣＰＵインターコネクトポート２０を有し、４つのＣＰＵ１０Ａ〜１０Ｄは、ＣＰＵインターコネクトポート２０およびＣＰＵインターコネクトライン１１を介してリング状に接続されている。
【００１６】
各ＣＰＵ１０において、ＣＰＵインターコネクトポート（以下、単にポートという場合がある）２０には、ＣＰＵ内部バス５０を介して、プロセッサコア６０（図７，図９，図１０参照）や、メモリまたはＩ／Ｏ（Input/Output）装置７０（図７，図９参照）が接続されている。
【００１７】
また、サーバ１は、物理パーティショニング機能を有しており、４つのＣＰＵ１０Ａ〜１０Ｄに対しパーティション構成に則した設定を行なうシステムファームウエア（Ｆ／Ｗ；設定部）４０を有している（図２，図４，図５参照）。システムＦ／Ｗ４０は、ネットワーク９０を介しユーザによって操作可能に構成されている。さらに、各ＣＰＵ１０のチップ上において、２つのポート２０のそれぞれにポートモード選択レジスタ（以下、単にレジスタという場合がある）３０が付設されている。レジスタ３０は、ポート２０の動作モードを設定するためのもので、レジスタ３０には、システムＦ／Ｗ４０によって、ＣＰＵ内部バス５０を介し、ユーザからの指示により物理パーティション構成と図４および図５を参照しながら後述する第１情報または第２情報とが設定される。
【００１８】
各ＣＰＵ１０におけるポート２０は、ＣＰＵ１０のチップ上に備えられ、ＣＰＵインターコネクトライン１１を介して他のＣＰＵ１０に接続され、他の処理部１０との通信を行なう。ポート２０内において、ＣＰＵインターコネクトライン１１とＣＰＵ内部バス５０との間には、物理層２１，データリンク層２２，ＣＰＵインターコネクト上位層２３，ＰＣＩｅ-ＮＴＢポート上位層２４およびマルチプレクサ２５が備えられている。
【００１９】
ポート２０において、物理層２１，データリンク層２２およびＣＰＵインターコネクト上位層２３は、ＣＰＵインターコネクトライン１１とＣＰＵ内部バス５０との間に備えられる既存の構成である。第１実施形態のポート２０では、当該既存の構成に対し、ＰＣＩｅ-ＮＴＢポート上位層２４およびマルチプレクサ２５が追加されている。
【００２０】
ここで、データリンク層２２よりも上位のＣＰＵインターコネクト上位層２３は、当該ポート２０の属するＣＰＵ１０と同一パーティションに属するＣＰＵ１０との通信を行なう第１通信部として機能する。このとき、ＣＰＵインターコネクト上位層２３は、ＣＰＵインターコネクトポート２０を、同一パーティションに属する他のＣＰＵ１０との間で全てのメモリアクセスについてメモリ空間を共有するための通信を実行するポートとして機能させる。
【００２１】
一方、ＰＣＩｅ-ＮＴＢポート上位層２４は、ＣＰＵインターコネクト上位層２３と並列的に備えられ、当該ポート２０の属するＣＰＵ１０と異なるパーティションに属するＣＰＵ１０との通信を行なう第２通信部として機能する。このとき、ＰＣＩｅ-ＮＴＢポート上位層２４は、ＣＰＵインターコネクトポート２０を、ＰＣＩデバイスのＮＴＢ（Non-Transparent Bridge）ポートとして機能させる。ＮＴＢポートは、異なるパーティションに属する他のＣＰＵ１０との間で当該ポート２０の属するＣＰＵ１０を成すプロセッサコア６０によって明示的に指示された通信を実行する。
【００２２】
また、並列的に備えられた上位層２３，２４と、データリンク層２２との間には、マルチプレクサ２５が備えられている。マルチプレクサ２５は、システムＦ／Ｗ４０による設定に応じて、ＣＰＵインターコネクト上位層２３とＰＣＩｅ-ＮＴＢポート上位層２４とのいずれか一方を選択し、選択した上位層（通信部）２３または２４に他のＣＰＵ１０との通信を実行させる選択部として機能する。
【００２３】
システムＦ／Ｗ４０は、ネットワーク９０を介してユーザから物理パーティションニングについての指示を受けると（図３のステップＳ１のＹＥＳルート参照）、４つのＣＰＵ１０Ａ〜１０Ｄに対し、当該指示によるパーティション構成に則した設定を行なう（図３のステップＳ２参照）。その際、システムＦ／Ｗ４０は、例えば図４または図５に示すように、ポート２０毎に備えられるレジスタ３０に対し、第１情報または第２情報の設定を行なう（図３のステップＳ３，Ｓ４）。ここで、第１情報は、ポート２０と接続される他のＣＰＵ１０が同一パーティションに属することを示す値で、例えば“０”である。第２情報は、ポート２０と接続される他のＣＰＵ１０が異なるパーティションに属することを示す値で、例えば“１”である。
【００２４】
マルチプレクサ２５は、レジスタ３０に第１情報“０”が設定されている場合（図３のステップＳ５の“０”ルート参照）、ＣＰＵインターコネクト上位層２３を選択するようデータのパスを切り換え、ポート２０をＣＰＵインターコネクトポートとして機能させる（図３のステップＳ６参照）。一方、マルチプレクサ２５は、レジスタ３０に第２情報“１”が設定されている場合（図３のステップＳ５の“１”ルート参照）、ＰＣＩｅ-ＮＴＢポート上位層２４を選択するようデータのパスを切り換え、ポート２０をＮＴＢポートとして機能させる（図３のステップＳ７参照）。
【００２５】
〔１−２〕第１実施形態の基本的な動作および効果
次に、上述のような構成を有するサーバ１の基本的な動作について、図４および図５を参照しながら説明する。
ここで、図４は、サーバ１の１パーティション状態を示すブロック図である。図４に示す状態では、４つのＣＰＵ１０Ａ〜１０Ｄは同一パーティションに属しているので、システムＦ／Ｗ４０により、４つのＣＰＵ１０Ａ〜１０Ｄにおける全てのレジスタ３０に第１情報“０”が設定される。これに伴い、マルチプレクサ２５によって、ＣＰＵインターコネクト上位層２３が選択されるようデータのパスが切り換えられ、全てのポート２０は、通常のＣＰＵインターコネクトポートとして機能する。したがって、同一パーティションに属する他のＣＰＵ１０との間で全てのメモリアクセスについてメモリ空間を共有するための通信が実行される。
【００２６】
また、図５は、サーバ１の２パーティション状態を示すブロック図である。図５に示す状態では、サーバ１が物理バーティショニング機能により２つの物理サーバに分割され、２つのＣＰＵ１０Ａ，１０Ｂと２つのＣＰＵ１０Ｃ，１０Ｄとが、それぞれ異なるパーティション＃０，＃１に割り当てられている。
【００２７】
この場合、同一パーティション＃０に属するＣＰＵ１０Ａ，１０Ｂを相互に接続するポート２０に対応するレジスタ３０には、システムＦ／Ｗ４０により、第１情報“０”が設定される。これに伴い、マルチプレクサ２５により、当該ポート２０ではＣＰＵインターコネクト上位層２３が選択されるようデータのパスが切り換えられ、当該ポート２０は、通常のＣＰＵインターコネクトポートとして機能する。したがって、同一パーティションに属するＣＰＵ１０Ａ，１０Ｂ間で全てのメモリアクセスについてメモリ空間を共有するための通信が実行される。同一パーティション＃１に属するＣＰＵ１０Ｃ，１０Ｄについても上述と同様の設定・選択が行なわれ、ＣＰＵ１０Ｃ，１０Ｄ間で全てのメモリアクセスについてメモリ空間を共有するための通信が実行される。
【００２８】
一方、異なるパーティション＃０，＃１に属するＣＰＵ１０Ａ，１０Ｄを相互に接続するポート２０に対応するレジスタ３０には、システムＦ／Ｗ４０により、第２情報“１”が設定される。これに伴い、マルチプレクサ２５により、当該ポート２０ではＰＣＩｅ-ＮＴＢポート上位層２４が選択されるようデータのパスが切り換えられ、当該ポート２０は、ＮＴＢポートとして機能する。つまり、通常、未使用になるＣＰＵインターコネクトポート２０をＮＴＢポートとして用いることが可能になる。したがって、ＮＴＢポートを介し、異なるパーティション＃０，＃１に属するＣＰＵ１０Ａ，１０Ｄ間でＣＰＵ１０Ａまたは１０Ｄを成すプロセッサコア６０によって明示的に指示された通信が実行される。異なるパーティション＃０，＃１に属するＣＰＵ１０Ｂ，１０Ｃについても上述と同様の設定・選択が行なわれ、ＣＰＵ１０Ｂ，１０Ｃ間でＣＰＵ１０Ｂまたは１０Ｃを成すプロセッサコア６０によって明示的に指示された通信が実行される。
【００２９】
上述のように、ＰＣＩｅ-ＮＴＢポート上位層２４を選択し未使用だったポート２０をＮＴＢポートとして機能させ通信を実行することで、ポート２０と他のＣＰＵ１０との間に通信パスが確立される。このように確立された通信パスは、メモリミラーリングパスおよびフェイルオーバーパスの少なくとも一方として用いることができる。
【００３０】
図１４を参照しながら前述したように、図１４に示す例では、サーバ１００がパーティショニング機能で複数の物理サーバに分割されて使用されているときに、サーバ１００中の２つのＣＰＵ１０１が別々のパーティション＃０，＃１に割り当てられている。この場合、通常、当該２つのＣＰＵ１０１を結ぶポイントツーポイントのＣＰＵインターコネクト（ポート１０２およびライン１０３）は未使用となる。
【００３１】
これに対し、第１実施形態のサーバ１によれば、従来、異なるパーティションに属するＣＰＵどうしを接続する場合に未使用になっていたＣＰＵインターコネクトポート２０がＰＣＩデバイスのＮＴＢポートとして機能することになる。これにより、異なるパーティション＃０，＃１に属するＣＰＵ１０Ａ，１０Ｄ間またはＣＰＵ１０Ｂ，１０Ｃ間に通信パスが確立され、異なるパーティション間でのメモリミラーリングパスやフェイルオーバーパスとして利用される。したがって、従来、使用していなかったＣＰＵインターコネクト（ポート２０およびライン１１）を利用して、異なるパーティションに属するＣＰＵ１０，１０間の通信を効率よく実現することができる。
【００３２】
上述したＮＴＢポートは、前述したように、ＰＣＩ仕様において、異なる２つのパーティション間やホスト間でデータを共有するための機能を果たすもので、メモリマップされた空間をポート内に有し、その空間を利用してパーティション間やホスト間でのデータのやりとりが可能なポートである。
【００３３】
〔１−３〕ＰＣＩｅ-ＮＴＢポート上位層（第２通信部）の詳細構成および動作
ついで、このようなＮＴＢポートを実現するＰＣＩｅ-ＮＴＢポート上位層（第２通信部）２４の詳細構成（内部構造）および動作について、図６〜図１１を参照しながら説明する。
【００３４】
図６は、ＰＣＩｅ-ＮＴＢポート上位層２４の詳細構成を示すブロック図である。図６に示すように、ＰＣＩｅ-ＮＴＢポート上位層２４は、ＣＰＵ内部バスインターフェイス（Ｉ／Ｆ）２４１，ＰＣＩｅ-ＮＴＢトランザクション層２４２およびＣＰＵインターコネクトデータリンクインターフェイス（Ｉ／Ｆ）２４３を有している。
【００３５】
ＣＰＵ内部バスＩ／Ｆ（第１インターフェイス）２４１は、ＣＰＵ内部バス５０を介しプロセッサコア６０と接続される。ＣＰＵ内部バスＩ／Ｆ２４１は、キャッシュプロトコル制御を行なうとともに、プロセッサコア６０側のデータ（DATAおよびCMD (command)）とトランザクション層２４２側のＰＣＩｅ使用に準拠したデータとの間の変換を行なう。つまり、ＣＰＵ内部バスＩ／Ｆ２４１は、プロセッサコア６０側のキャッシュラインサイズのデータを、トランザクション層２４２側のＰＣＩｅペイロードサイズのデータに分割／結合する機能を果たす。また、ＣＰＵ内部バスＩ／Ｆ２４１は、トランザクション層２４２側のＰＣＩｅペイロードサイズのデータを、プロセッサコア６０側のキャッシュラインサイズのデータに分割／結合する機能を果たす。
【００３６】
なお、ＣＰＵ内部バスＩ／Ｆ２４１は、バッファ２４１ａ〜２４１ｄを有している。バッファ２４１ａは、ＣＰＵ内部バス５０（プロセッサコア６０）からのコマンドCMD(RX)を受信し、変換後のコマンドは、バッファ２４１ａからトランザクション層２４２へ出力される。同様に、バッファ２４１ｂは、ＣＰＵ内部バス５０（プロセッサコア６０）からのデータDATA(RX)を受信し、変換後のデータは、バッファ２４１ｂからトランザクション層２４２へ出力される。また、バッファ２４１ｃは、トランザクション層２４２からのコマンドを受信し、変換後のコマンドCMD(TX)は、バッファ２４１ｃからＣＰＵ内部バス５０を介してプロセッサコア６０またはメモリ７０へ送信される。同様に、バッファ２４１ｄは、トランザクション層２４２からのデータを受信し、変換後のデータDATA(TX)は、バッファ２４１ｄからＣＰＵ内部バス５０を介してプロセッサコア６０またはメモリ７０へ送信される。
【００３７】
ＣＰＵインターコネクトデータリンクＩ／Ｆ（第２インターフェイス）２４３は、マルチプレクサ２５，データリンク層２２，物理層２１およびＣＰＵインターコネクトライン１１を介して他のＣＰＵ１０と接続される。ＣＰＵインターコネクトデータリンクＩ／Ｆ２４３は、トランザクション層２４２で生成されたＴＬＰ（Transaction Layer Packet）の分割／再構成を行なう。ＴＬＰのパケット長とＣＰＵインターコネクトで規定された最大パケット長とが必ずしも一致するとは限らないため、トランザクション層２４２は、必要に応じてＴＬＰの分割あるいは結合を行なう。ＴＬＰのパケット分割およびカプセル化については、項目〔１−６〕において図１１を参照しながら後述する。
【００３８】
なお、ＣＰＵインターコネクトデータリンクＩ／Ｆ２４３は、バッファ２４３ａ，２４３ｂを有している。バッファ２４３ａは、トランザクション層２４２からのＴＬＰを受信し、分割後または結合後のパケットは、バッファ２４３ａからマルチプレクサ２５，データリンク層２２，物理層２１およびＣＰＵインターコネクトライン１１を介して他のＣＰＵ１０へ送信される。また、バッファ２４３ｂは、他のＣＰＵ１０からのパケットを受信し、分割または結合によって得られたＴＬＰは、バッファ２４３ｂからトランザクション層２４２へ送出される。
【００３９】
ＰＣＩｅ-ＮＴＢトランザクション層２４２は、ＣＰＵ内部バスＩ／Ｆ２４１とＣＰＵインターコネクトデータリンクＩ／Ｆ２４３との間に配置され、ＴＬＰの生成／解体（assemble/disassemble）およびアドレス変換を行なう。このため、トランザクション層２４２は、ＰＣＩコンフィグレーションレジスタ２４２ａ，メモリマップドＩ／Ｏ（ＭＭＩＯ）レジスタ２４２ｂ，アドレス変換部２４２ｃ，ＴＬＰ生成部２４２ｄ，ＴＬＰ解体部２４２ｅおよびアドレス変換部２４２ｆを有している。
【００４０】
ＰＣＩコンフィグレーションレジスタ２４２ａは、ＰＣＩｅ使用に準拠したレジスタセットである。
【００４１】
ＭＭＩＯレジスタ２４２ｂは、項目〔１−４〕，〔１−５〕において図７，図９，図１０を参照しながら後述する、下記６種類のレジスタ２４２ｂ−１〜２４２ｂ−６を有している。
・ベースアドレスレジスタ（ＢＡＲ；アドレス変換用レジスタ）２４２ｂ−１
・リミットアドレスレジスタ（ＬＡＲ；アドレス変換用レジスタ）２４２ｂ−２
・送信用ドアベルレジスタ（送信用割込みレジスタ）２４２ｂ−３
・受信用ドアベルレジスタ（受信用割込みレジスタ）２４２ｂ−４
・送信用スクラッチパッドレジスタ（送信用交換情報レジスタ）２４２ｂ−５
・受信用スクラッチパッドレジスタ（受信用交換情報レジスタ）２４２ｂ−６
【００４２】
アドレス変換部２４２ｃは、他のＣＰＵ１０へ送信すべきデータについて、項目〔１−４〕において図７〜図９を参照しながら後述するごとく、プロセッサコア６０からのコマンドおよびＭＭＩＯレジスタ２４２ｂの値に基づきアドレス変換を行なう。
ＴＬＰ生成部２４２ｄは、アドレス変換部２４２ｃで得られた情報に基づき、他のＣＰＵ１０へ送信すべきデータを含むＴＬＰを生成し、ＣＰＵインターコネクトデータリンクＩ／Ｆ２４３へ出力する。
【００４３】
ＴＬＰ解体部２４２ｅは、他のＣＰＵ１０から受信したＴＬＰを解体（ディスアセンブル）することによりアドレス情報および受信データを得て、アドレス情報をアドレス変換部２４２ｆへ出力する一方、受信データをＣＰＵ内部バスＩ／Ｆ２４１（バッファ２４１ｄ）へ出力する。
アドレス変換部２４２ｆは、ＴＬＰ解体部２４２ｅから受信したアドレス情報について、項目〔１−４〕において図７〜図９を参照しながら後述するごとく、ＭＭＩＯレジスタ２４２ｂの値に基づきアドレス変換を行ない、変換結果をコマンドとしてＣＰＵ内部バスＩ／Ｆ２４１（バッファ２４１ｃ）へ出力する。
【００４４】
ここで、上述のごとく構成されるＰＣＩｅ-ＮＴＢポート上位層２４の動作について簡単に説明する。
ＰＣＩｅ-ＮＴＢポート上位層２４がポート２０をＮＴＢポートとして用い他のＣＰＵ１０へのデータ送信を行なう場合、まず、ＣＰＵ内部バスＩ／Ｆ２４１は、他のＣＰＵ１０へのデータをＰＣＩ仕様に準拠するデータに変換する。そして、トランザクション層２４２は、ＣＰＵ内部バスＩ／Ｆ２４１からのデータに基づきＴＬＰを生成する。この後、ＣＰＵインターコネクトデータリンクＩ／Ｆ２４３は、トランザクション層２４２からのＴＬＰを、ポート２０と他のＣＰＵ１０との間の通信仕様（ＣＰＵインターコネクト）に準拠するパケットに変換する。
【００４５】
一方、ＰＣＩｅ-ＮＴＢポート上位層２４がポート２０をＮＴＢポートとして用い他のＣＰＵ１０からのデータ受信を行なう場合、まず、ＣＰＵインターコネクトデータリンクＩ／Ｆ２４３は、他のＣＰＵ１０からのパケットをＴＬＰに変換する。そして、トランザクション層２４２は、ＣＰＵインターコネクトデータリンクＩ／Ｆ２４３からのＴＬＰに基づき、ＰＣＩ仕様に準拠するデータを生成する。この後、ＣＰＵ内部バスＩ／Ｆ２４１は、トランザクション層２４２からのデータをプロセッサコア６０またはメモリ（Ｉ／Ｏ装置）７０へのデータに変換する。
【００４６】
〔１−４〕アドレス変換
次に、図７〜図９を参照しながら、ＰＣＩｅ-ＮＴＢトランザクション層２４２のアドレス変換部２４２ｃ，２４２ｆによるアドレス変換機能について説明する。各物理パーティション＃０，＃１は別のメモリ空間を有するため、一般的にＮＴＢポートは、アドレス変換機能が必要になる。アドレス変換機能は、ＰＣＩｅ-ＮＴＢトランザクション層２４２において、ＭＭＩＯレジスタ２４２ｂ（レジスタ２４２ｂ−１，２４２ｂ−２）の設定値に基づき、アドレス変換部２４２ｃ，２４２ｆによって実現される。
【００４７】
まず、図７を参照しながら、上記アドレス変換機能を用いて、パーティション＃０のプロセッサコア６０からパーティション＃１のメモリ（Ｉ／Ｏ装置）７０に対し書込データの転送（Write転送）を行なう場合の手順(A1)〜(A4)について説明する。なお、図７は、図６に示すトランザクション層２４２のアドレス変換部２４２ｃ，２４２ｆによるアドレス変換機能を説明するブロック図である。図７では、パーティション＃０に属するＣＰＵ１０Ａのプロセッサコア６０からパーティション＃１に属するＣＰＵ１０Ｄのメモリ７０への書込データの転送が示されている。
【００４８】
(A1)送信側のパーティション＃０のプロセッサコア６０は、パーティション＃１のメモリ７０宛に送りたい書込データを、パーティション＃０のＮＴＢのＢＡＲ２４２ｂ−１を宛先として書き込む。この時のアドレスをＡとする。このアドレスＡは、パーティション＃０のメモリ空間に属するアドレスである。
【００４９】
(A2)パーティション＃０のＰＣＩｅ-ＮＴＢポート上位層２４におけるアドレス変換部２４２ｃは、書込アドレスが下限値と上限値との間の範囲内にあることを確認し、アドレス変換を行なう。このとき、ＢＡＲ２４２ｂ−１の設定値（下限値）をＢとすると、アドレス変換部２４２ｃは、アドレスＡが設定値Ｂ以上で且つＬＡＲ２４２ｂ−２に設定された上限値以下であることを確認した上で、Ａ−Ｂで示される値を変換後のアドレスとして出力する。変換後のアドレスＡ−Ｂは、ＣＰＵインターコネクトアドレス空間に属するアドレスである。
【００５０】
(A3)データを受け取ったパーティション＃１のＰＣＩｅ-ＮＴＢポート上位層２４におけるアドレス変換部２４２ｆは、受信したデータのアドレスＡ−Ｂを、パーティション＃１のメモリ空間のアドレスに変換する。このとき、パーティション＃１のＢＡＲ２４２ｂ−１の設定値（下限値；ターゲットアドレス（ＴＡ））をＣとすると、変換後のアドレスはＡ−Ｂ＋Ｃとなり、このアドレスＡ−Ｂ＋Ｃは、パーティション＃１のメモリ空間に属するアドレスである。
【００５１】
(A4)パーティション＃１のＰＣＩｅ-ＮＴＢポート上位層２４は、ＣＰＵ内部バス５０を介して、メモリ（Ｉ／Ｏ装置）７０に対し、Ａ−Ｂ＋ＣをアドレスとしてＤＭＡ（Direct Memory Address）を実行する。
【００５２】
ついで、図８および図９を参照しながら、上記アドレス変換機能を用いて、パーティション＃０のプロセッサコア６０からパーティション＃１のメモリ（Ｉ／Ｏ装置）７０に対する読出アクセス（Read転送）を行なう場合の手順(B1)〜(B6)について説明する。なお、図８は、トランザクションＩＤ（identification）の内容を示す図、図９は、図６に示すトランザクション層２４２のアドレス変換部２４２ｆによるタグ変換／逆変換機能およびトランザクションＩＤ変換／逆変換機能を説明するブロック図である。図９では、パーティション＃０に属するＣＰＵ１０Ａのプロセッサコア６０からパーティション＃１に属するＣＰＵ１０Ｄのメモリ７０に対する読出アクセスが示されている。
【００５３】
読出アクセス（Read転送）の場合も、読出対象のアドレスについてのアドレス変換は、図７を参照しながら上述した手順(A1)〜(A4)と同様に行なわれる。ただし、読出アクセスの場合、読出データがパーティション＃１からパーティション＃０の方向へ転送される。要求元のパーティション＃０のプロセッサコア６０が、パーティション＃１からの応答がどの要求に対する応答かを識別できるように、読出データのトランザクションＩＤは、読出要求（Read Request）のトランザクションＩＤと一対一で対応付けられている。図８に示すように、トランザクションＩＤは、リクエスタ（Requester）ＩＤとタグとから構成される。リクエスタＩＤ（ＲＩＤ）は、バス番号，デバイス番号，ファンクション番号を含む読出要求元の情報（プロセッサコア６０のＩＤ）である。タグは、例えば、プロセッサコア６０により要求毎に生成される、シーケンシャルな番号である。以下、図９および手順(B1)〜(B6)では、リクエスタＩＤ（ＲＩＤ）およびタグの変換手順を説明する。
【００５４】
(B1)送信側のパーティション＃０のプロセッサコア６０は、自身のリクエスタＩＤで読出要求をパーティション＃０のＰＣＩｅ-ＮＴＢポート上位層２４に要求する。
【００５５】
(B2)読出要求を受け取ったパーティション＃０のＰＣＩｅ-ＮＴＢポート上位層２４は、自身が受け取っている読出要求を一意に識別できるように、アドレス変換部２４２ｃにより、受け取ったトランザクションＩＤのうちタグを付け替えるタグ変換を行なう。これにより、ＰＣＩｅ-ＮＴＢポート上位層２４は、タグのみで、読出要求と読出データとの対応を一意に認識できる。このとき、タグ変換前の元のトランザクションＩＤとタグ変換後のタグの値とは対応付けられて第１テーブル（図示略）に記憶される。この後、パーティション＃０のＰＣＩｅ-ＮＴＢポート上位層２４は、タグ変換後のトランザクションＩＤを含む読出要求を、パーティション＃１のＰＣＩｅ-ＮＴＢポート上位層２４に転送する。
【００５６】
(B3)読出要求を受け取ったパーティション＃１のＰＣＩｅ-ＮＴＢポート上位層２４におけるアドレス変換部２４２ｆは、受け取った読出要求のトランザクションＩＤのうちリクエスタＩＤ（パーティション＃０のプロセッサコア６０のＩＤ）をパーティション＃１側のリクエスタＩＤに付け替えるＲＩＤ変換を行なう。このパーティション＃１側のリクエスタＩＤは、読出要求に対するメモリ７０からの応答（読出データ／完了通知；Read Data / Completion）がパーティション＃１のＰＣＩｅ-ＮＴＢポート上位層２４に戻ってきた際に使用される。このとき、パーティション＃１のＰＣＩｅ-ＮＴＢポート上位層２４において、ＲＩＤ変換前のトランザクションＩＤは第２テーブル（図示略）に記憶される。
【００５７】
(B4)パーティション＃１のメモリ（Ｉ／Ｏ装置）７０からＰＣＩｅ-ＮＴＢポート上位層２４へ、読出データ（完了通知）が応答される。
【００５８】
(B5)パーティション＃１のＰＣＩｅ-ＮＴＢポート上位層２４におけるアドレス変換部２４２ｃは、タグをキーにして上記第２テーブルにおけるＲＩＤ変換前のトランザクションＩＤを検索し、受け取った読出データのリクエスタＩＤを元のリクエスタＩＤに付け替えるＲＩＤ逆変換を行なう。この後、ＰＣＩｅ-ＮＴＢポート上位層２４は、ＲＩＤ逆変換後のトランザクションＩＤを含む読出データを、パーティション＃０のＰＣＩｅ-ＮＴＢポート上位層２４に転送する。
【００５９】
(B6)パーティション＃０のＰＣＩｅ-ＮＴＢポート上位層２４におけるアドレス変換部２４２ｆは、受け取った読出データのトランザクションＩＤに含まれるタグをキーにして上記第１テーブルを検索し、トランザクションＩＤのタグを元のタグに付け替えるタグ逆変換を行なう。この後、ＰＣＩｅ-ＮＴＢポート上位層２４は、タグ逆変換後のトランザクションＩＤを含む読出データを、ＣＰＵ内部バス５０を介しプロセッサコア６０に転送する。
【００６０】
〔１−５〕ドアベル機能およびスクラッチパッド機能
次に、図１０を参照しながら、ＰＣＩｅ-ＮＴＢトランザクション層２４２によるドアベル機能およびスクラッチパッド機能について説明する。なお、図１０は、図６に示すトランザクション層２４２によるドアベル機能およびスクラッチパッド機能を説明するブロック図である。
【００６１】
異なるパーティション＃０，＃１に属するＣＰＵ１０（例えばＣＰＵ１０Ａ，１０Ｄ）どうしの通信のため、一般的に、ＮＴＢポート（ＰＣＩｅ-ＮＴＢトランザクション層２４２）は、ドアベル（Doorbell）機能およびスクラッチパッド（Scratchpad）機能を備えている。
【００６２】
〔１−５−１〕ドアベル機能
ドアベル機能は、一方のパーティション＃０または＃１のプロセッサコア６０から他方のパーティション＃１または＃０のプロセッサコア６０に対して割り込み（INT）を上げるための機能である。送信側のプロセッサコア６０は、ＰＩＯ（Programmed I/O）によって、送信側のＰＣＩｅ-ＮＴＢトランザクション層２４２の送信用ドアベルレジスタ２４２ｂ−３への書込みを実行する。この書込みを受けた送信側のＰＣＩｅ-ＮＴＢトランザクション層２４２は、メッセージパケット（Msg；ＴＬＰ）を生成し、受信側のＰＣＩｅ-ＮＴＢトランザクション層２４２へ送信する。このときのメッセージパケットは、ＰＣＩｅ仕様のVendor Defined Messageの仕組みを用いて独自に定義される。メッセージパケットを受け取った受信側のＰＣＩｅ-ＮＴＢトランザクション層２４２は、ドアベル機能に係るメッセージパケットを受信すると、メッセージパケットにより受け取った内容をドアベルと判断する。そして、受信側のＰＣＩｅ-ＮＴＢトランザクション層２４２は、受信用ドアベルレジスタ２４２ｂ−４への書込みを実行し、受信側のプロセッサコア６０に対して割り込み（INT）を通知する。
【００６３】
つまり、ＰＣＩｅ-ＮＴＢトランザクション層２４２（ＮＴＢポート）は、プロセッサコア６０から他のＣＰＵ１０に対する割込み指示を送信用ドアベルレジスタ２４２ｂ−３に書き込まれると、割込みを指示するＴＬＰを生成し他のＣＰＵへ転送する。一方、ＰＣＩｅ-ＮＴＢトランザクション層２４２（ＮＴＢポート）は、他のＣＰＵ１０からプロセッサコア６０に対する割込み指示を受信用ドアベルレジスタ２４２ｂ−４に書き込まれると、プロセッサコア６０に対する割込み指示を行なう。
【００６４】
〔１−５−２〕スクラッチパッド機能
スクラッチパッド機能は、各パーティション＃０，＃１のプロセッサコア６０が数バイト程度の情報を交換するために使用される機能である。送信側のプロセッサコア６０は、ＰＩＯによって、送信側のＰＣＩｅ-ＮＴＢトランザクション層２４２の送信用スクラッチパッドレジスタ２４２ｂ−５に交換情報を書き込む。交換情報を書き込まれた送信側のＰＣＩｅ-ＮＴＢトランザクション層２４２は、メッセージパケット（Msg；ＴＬＰ）を生成し、受信側のＰＣＩｅ-ＮＴＢトランザクション層２４２へ送信する。このときのメッセージパケットは、ＰＣＩｅ仕様のVendor Defined Messageの仕組みを用いて独自に定義される。メッセージパケットを受け取った受信側のＰＣＩｅ-ＮＴＢトランザクション層２４２は、スクラッチパッド機能に係るメッセージパケットを受信すると、メッセージパケットにより受け取った内容をスクラッチパッドと判断する。そして、受信側のＰＣＩｅ-ＮＴＢトランザクション層２４２は、メッセージパケットの内容（交換情報）を受信用スクラッチパッドレジスタ２４２ｂ−６に反映する。受信側のプロセッサコア６０は、ＰＩＯによって受信用スクラッチパッドレジスタ２４２ｂ−６の内容を読み出すことで、送信側のプロセッサコア６０からの交換情報を知ることが可能になっている。
【００６５】
つまり、ＰＣＩｅ-ＮＴＢトランザクション層２４２（ＮＴＢポート）は、プロセッサコア６０から他のＣＰＵ１０と交換すべき交換情報をトランザクション層２４２の送信用スクラッチパッドレジスタ２４２ｂ−５に書き込まれると、当該交換情報を含むＴＬＰを生成し他のＣＰＵ１０へ転送する。一方、ＰＣＩｅ-ＮＴＢトランザクション層２４２（ＮＴＢポート）は、他のＣＰＵ１０からプロセッサコア６０と交換すべき交換情報を受信用スクラッチパッドレジスタ２４２ｂ−６に書き込まれると、プロセッサコア６０からの問合せ（ＰＩＯ）に応じて、受信用スクラッチパッドレジスタ２４２ｂ−６の交換情報をプロセッサコア６０に通知する。
【００６６】
〔１−６〕ＴＬＰの分割およびカプセル化
次に、図１１を参照しながら、ＣＰＵインターコネクトデータリンクＩ／Ｆ（第２インターフェイス）２４３によるパケット分割およびカプセル化について説明する。なお、図１１は、図６に示すＣＰＵインターコネクトデータリンクＩ／Ｆ２４３によるパケット分割およびカプセル化を説明する図である。
【００６７】
送信側ＮＴＢポートのＣＰＵインターコネクトデータリンクＩ／Ｆ２４３では、以下のような処理が行なわれる。まず、ＣＰＵインターコネクトデータリンクＩ／Ｆ２４３は、上流のＰＣＩｅ-ＮＴＢトランザクション層２４２からＰＣＩｅのＴＬＰを受信する。ＴＬＰのフォーマットは、図１１の上段に示すとおりである。ＣＰＵインターコネクトデータリンクＩ／Ｆ２４３は、受信したＴＬＰをＣＰＵインターコネクトのパケットサイズ（パケット長）に合わせて分割したり、パディング（padding）を行なったりして、ＣＰＵインターコネクトのパケットサイズに揃えた一以上のパケットを生成する。
【００６８】
図１１では、受信したＴＬＰがＣＰＵインターコネクトのパケットサイズよりも大きい場合の、パケット分割およびカプセル化が示されている。つまり、まず、ＣＰＵインターコネクトデータリンクＩ／Ｆ２４３は、図１１の上段に示すＴＬＰを、図１１の中段に示すように、２つのパケットに分割する。一方（左側）のパケットのサイズは、ＣＰＵインターコネクトのパケットサイズと同じである。しかし、他方（右側）のパケットのサイズは、ＣＰＵインターコネクトのパケットサイズよりも小さいため、他方のパケットに対しては、図１１の中段の右側に示すごとく、そのサイズがＣＰＵインターコネクトのパケットサイズと同じになるよう、パディングが行なわれている。
【００６９】
さらに、図１１に示す例では、ＣＰＵインターコネクトデータリンクＩ／Ｆ２４３は、２つに分けられたパケットそれぞれの前後に、同図の下段に示すように、ＣＰＵインターコネクトのデータリンク層のヘッダ（Haeder）およびＣＲＣ（Cyclic Redundancy Check）を付加する。これにより、各パケットは、カプセル化される。一方、受信側ＮＴＢポートのＣＰＵインターコネクトデータリンクＩ／Ｆ２４３は、上述した送信側ＮＴＢポートでのパケット分割およびカプセル化のプロセスとは逆のプロセスで、データリンク層のパケットからＰＣＩｅのＴＬＰを再構築する。
【００７０】
〔２〕第２実施形態の情報処理装置（サーバ）
次に、図１２および図１３を参照しながら、第２実施形態としての情報処理装置（サーバ）１′の構成について説明する。なお、図１２は、第２実施形態のサーバ１′の要部構成を示すブロック図、図１３は、図１２に示すＰＣＩｅ-ＮＴＢポート上位層（第２通信部）２４′の詳細構成を示すブロック図である。図中、既述の符号と同一の符号は、同一もしくはほぼ同一の部分を示しているので、その説明は省略する。
【００７１】
第２実施形態のサーバ１′におけるＣＰＵ１０は、図１２に示すように、ＰＣＩｅポート８１を有している。このようにＣＰＵ１０がＰＣＩｅポート８１を有している場合、ＣＰＵ１０は、ＣＰＵ内部バス５０とＰＣＩｅポート８１との間にＰＣＩｅルートコンプレクス（Root Complex）８０を備えている。この場合、第１実施形態のＣＰＵ内部バスＩ／Ｆ２４１をＰＣＩｅルートコンプレクス８０内に実装し他のＰＣＩｅポート８１と共用する形態とすることができる。
【００７２】
つまり、第２実施形態は、図１２に示すように、ＰＣＩｅ-ＮＴＢポート上位層２４′の上流側の接続先が、ＣＰＵ内部バス５０ではなく、ＰＣＩｅルートコンプレクス８０である点で、第１実施形態（ＰＣＩｅ-ＮＴＢポート上位層２４）と異なっている。
第２実施形態では、図１２に示すように、ＰＣＩｅ-ＮＴＢポート上位層２４′がＰＣＩｅルートコンプレクス８０と接続されるので、図１３に示すように、第１実施形態では必要であったＣＰＵ内部バスＩ／Ｆ２４１のブロックは不要となる。そのほかのブロック（ＰＣＩｅ-ＮＴＢトランザクション層２４２およびＣＰＵインターコネクトデータリンクＩ／Ｆ２４３）は、第２実施形態のＰＣＩｅ-ＮＴＢポート上位層２４′においても、第１実施形態のＰＣＩｅ-ＮＴＢポート上位層２４と同様に備えられる。
【００７３】
このように、第２実施形態のサーバ１′では、ＣＰＵ１０がＰＣＩｅポート８１およびＰＣＩｅルートコンプレクス８０を有する場合、ＰＣＩｅルートコンプレクス８０によって、第１実施形態におけるＣＰＵ内部バスＩ／Ｆ（第１インターフェイス）２４１の機能が実現される。したがって、第２実施形態のサーバ１′によれば、より簡素な構成で、第１実施形態と同様の作用効果を得ることができる。
【００７４】
〔３〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
なお、上述した実施形態では、一つのサーバ１に４つのＣＰＵ１０Ａ〜１０Ｄを備えた場合について説明したが、本発明は、これに限定されるものではない。
【００７５】
上述したＣＰＵインターコネクト上位層（第１通信部）２３，ＰＣＩｅ-ＮＴＢポート上位層（第２通信部）２４，２４′，マルチプレクサ（選択部）２５およびシステムＦ／Ｗ（設定部）４０を含むサーバ１，１′の各種機能の全部もしくは一部は、コンピュータ（ＣＰＵ，情報処理装置，各種端末を含む）が所定のプログラムを実行することによって実現される。
【００７６】
そのプログラムは、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷなど），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋Ｒ，ＤＶＤ＋ＲＷなど），ブルーレイディスク等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。
【００７７】
ここで、コンピュータとは、ハードウエアとＯＳ（オペレーティングシステム）とを含む概念であり、ＯＳの制御の下で動作するハードウエアを意味している。また、ＯＳが不要でアプリケーションプログラム単独でハードウエアを動作させるような場合には、そのハードウエア自体がコンピュータに相当する。ハードウエアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取る手段とをそなえている。上記プログラムは、上述のようなコンピュータに、上述したサーバ１，１′の各種機能を実現させるプログラムコードを含んでいる。また、その機能の一部は、アプリケーションプログラムではなくＯＳによって実現されてもよい。
【符号の説明】
【００７８】
１，１′    情報処理装置（サーバ）
１０，１０Ａ〜１０Ｄ    ＣＰＵ（処理部）
１１    ＣＰＵインターコネクトライン
２０    ＣＰＵインターコネクトポート（ポート，ＮＴＢポート）
２１    物理層
２２    データリンク層
２３    ＣＰＵインターコネクト上位層（第１通信部）
２４，２４′    ＰＣＩｅ-ＮＴＢポート上位層（第２通信部）
２４１    ＣＰＵ内部バスインターフェイス（第１インターフェイス）
２４１ａ〜２４１ｄ    バッファ
２４２    ＰＣＩｅ-ＮＴＢトランザクション層（ＮＴＢトランザクション層）
２４２ａ    ＰＣＩコンフィグレーションレジスタ
２４２ｂ    メモリマップドＩ／Ｏ（ＭＭＩＯ）レジスタ
２４２ｂ−１    ベースアドレスレジスタ（ＢＡＲ；アドレス変換用レジスタ）
２４２ｂ−２    リミットアドレスレジスタ（ＬＡＲ；アドレス変換用レジスタ）
２４２ｂ−３    送信用ドアベルレジスタ（送信用割込みレジスタ）
２４２ｂ−４    受信用ドアベルレジスタ（受信用割込みレジスタ）
２４２ｂ−５    送信用スクラッチパッドレジスタ（送信用交換情報レジスタ）
２４２ｂ−６    受信用スクラッチパッドレジスタ（受信用交換情報レジスタ）
２４２ｃ    アドレス変換部
２４２ｄ    ＴＬＰ生成部
２４２ｅ    ＴＬＰ解体部
２４２ｆ    アドレス変換部
２４３    ＣＰＵインターコネクトデータリンクインターフェイス（第２インターフェイス）
２４３ａ，２４３ｂ    バッファ
２５    マルチプレクサ（選択部）
３０    ポートモード選択レジスタ（レジスタ）
４０    システムファームウエア（設定部）
５０    ＣＰＵ内部バス
６０    プロセッサコア
７０    メモリまたはＩ／Ｏ装置
８０    ＰＣＩｅルートコンプレクス（第１インターフェイス）
８１    ＰＣＩｅポート
９０    ネットワーク
【図１】
2014027416.tif 000003
【図２】
2014027416.tif 000004
【図３】
2014027416.tif 000005
【図４】
2014027416.tif 000006
【図５】
2014027416.tif 000007
【図６】
2014027416.tif 000008
【図７】
2014027416.tif 000009
【図８】
2014027416.tif 000010
【図９】
2014027416.tif 000011
【図１０】
2014027416.tif 000012
【図１１】
2014027416.tif 000013
【図１２】
2014027416.tif 000014
【図１３】
2014027416.tif 000015
【図１４】
2014027416.tif 000016
【図１５】
2014027416.tif 000017
【図１６】
2014027416.tif 000018
【手続補正書】
【提出日】平成27年2月18日(2015.2.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の処理部と、
前記複数の処理部に対しパーティション構成に則した設定を行なう設定部と、を備え、
前記複数の処理部のそれぞれは、他の処理部に接続され前記他の処理部との通信を行なうポートを有し、
前記ポートは、
前記ポートの属する処理部と同一パーティションに属する処理部との通信を行なう第１通信部と、
前記ポートの属する処理部と異なるパーティションに属する処理部との通信を行なう第２通信部と、
前記設定部による前記設定に応じて前記第１通信部と前記第２通信部とのいずれか一方を選択し、選択した通信部に前記他の処理部との通信を実行させる選択部と、を有することを特徴とする情報処理装置。
【請求項２】
前記複数の処理部のそれぞれは、
前記設定部により、前記他の処理部が前記同一パーティションに属することを示す第１情報、または、前記他の処理部が前記異なるパーティションに属することを示す第２情報を設定されるレジスタをさらに有し、
前記選択部は、前記第１情報が前記レジスタに設定されている場合、前記第１通信部を選択する一方、前記第２情報が前記レジスタに設定されている場合、前記第２通信部を選択することを特徴とする、請求項１に記載の情報処理装置。
【請求項３】
前記第１通信部は、前記同一パーティションに属する前記他の処理部との間で、全てのメモリアクセスについてメモリ空間を共有するための通信を実行することを特徴とする、請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記第２通信部は、前記異なるパーティションに属する前記他の処理部との間で、前記ポートの属する処理部を成すプロセッサコアによって明示的に指示された通信を実行することを特徴とする、請求項１〜請求項３のいずれか一項に記載の情報処理装置。
【請求項５】
前記第２通信部が通信を実行することにより、前記ポートは、ＰＣＩ（Peripheral Components Interconnect）デバイスのＮＴＢ（Non-Transparent Bridge）ポートとして機能することを特徴とする、請求項４に記載の情報処理装置。
【請求項６】
前記第２通信部は、
前記プロセッサコアと接続される第１インターフェイスと、
前記他の処理部と接続される第２インターフェイスと、
前記第１インターフェイス部と前記第２インターフェイスとの間に配置されるＮＴＢトランザクション層と、を有し、
前記第２通信部が前記ポートを前記ＮＴＢポートとして用い前記他の処理部へのデータ送信を行なう場合、前記第１インターフェイスは、前記他の処理部へのデータをＰＣＩ仕様に準拠するデータに変換し、前記ＮＴＢトランザクション層は、前記第１インターフェイスからのデータに基づきＴＬＰ（Transaction Layer Packet）を生成し、前記第２インターフェイスは、前記ＮＴＢトランザクション層からのＴＬＰを、前記ポートと前記他の処理部との間の通信仕様に準拠するパケットに変換する一方、
前記第２通信部が前記ポートを前記ＮＴＢポートとして用い前記他の処理部からデータ受信を行なう場合、前記第２インターフェイスは、前記他の処理部からのパケットをＴＬＰに変換し、前記ＮＴＢトランザクション層は、前記第２インターフェイスからのＴＬＰに基づき、ＰＣＩ仕様に準拠するデータを生成し、前記第１インターフェイスは、前記ＮＴＢトランザクション層からのデータを前記プロセッサコアまたはメモリへのデータに変換することを特徴とする、請求項５に記載の情報処理装置。
【請求項７】
前記複数の処理部のそれぞれは、ＰＣＩポートおよびルートコンプレクスを有し、
前記第２通信部の前記第１インターフェイスは、前記ルートコンプレクスによって構成されることを特徴とする、請求項６に記載の情報処理装置。
【請求項８】
他の処理部に接続され前記他の処理部との通信を行なうポートを有する複数の処理部を備えた情報処理装置において、前記複数の処理部に対しパーティション構成に則した設定を行なう制御方法であって、
前記ポートにおいて、前記ポートの属する処理部と同一パーティションに属する処理部との通信を行なう第１通信部と、前記ポートの属する処理部と異なるパーティションに属する処理部との通信を行なう第２通信部と、を備え、
前記設定に応じて前記第１通信部と前記第２通信部とのいずれか一方を選択し、選択した通信部に前記他の処理部との通信を実行させることを特徴とする情報処理装置の制御方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００４
【補正方法】変更
【補正の内容】
【０００４】
図１４に示す例では、サーバ１００が物理パーティショニング機能により２つの物理サーバに分割され、２つのＣＰＵ１０１Ａ，１０１Ｂと２つのＣＰＵ１０１Ｃ，１０１Ｄとが、それぞれ異なるパーティション＃０，＃１に割り当てられている。このとき、パーティション＃０に属する２つのＣＰＵ１０１Ａ，１０１Ｂ間のＣＰＵインターコネクトライン１０３や、パーティション＃１に属する２つのＣＰＵ１０１Ｃ，１０１Ｄ間のＣＰＵインターコネクトライン１０３は、通常通り使用される。一方、異なるパーティション＃０，＃１にまたがるＣＰＵインターコネクトライン１０３、つまりＣＰＵ１０１Ａ，１０１Ｄ間およびＣＰＵ１０１Ｂ，１０１Ｃ間のライン１０３は、物理的に接続されたまま使用されないか、あるいは、ＣＰＵインターコネクトライン１０３への出力がセーブまたはパワーオフした状態に保たれる。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００３０
【補正方法】変更
【補正の内容】
【００３０】
図１４を参照しながら前述したように、サーバ１００がパーティショニング機能で複数の物理サーバに分割されて使用されているときに、サーバ１００中の２つのＣＰＵ１０１が別々のパーティション＃０，＃１に割り当てられている。この場合、通常、当該２つのＣＰＵ１０１を結ぶポイントツーポイントのＣＰＵインターコネクト（ポート１０２およびライン１０３）は未使用となる。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００７７
【補正方法】変更
【補正の内容】
【００７７】
ここで、コンピュータとは、ハードウエアとＯＳ（オペレーティングシステム）とを含む概念であり、ＯＳの制御の下で動作するハードウエアを意味している。また、ＯＳが不要でアプリケーションプログラム単独でハードウエアを動作させるような場合には、そのハードウエア自体がコンピュータに相当する。ハードウエアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取る手段とをそなえている。上記プログラムは、上述のようなコンピュータに、上述したサーバ１，１′の各種機能を実現させるプログラムコードを含んでいる。また、その機能の一部は、アプリケーションプログラムではなくＯＳによって実現されてもよい。
〔４〕付記
以上の各実施形態を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
複数の処理部と、
前記複数の処理部に対しパーティション構成に則した設定を行なう設定部と、を備え、
前記複数の処理部のそれぞれは、他の処理部に接続され前記他の処理部との通信を行なうポートを有し、
前記ポートは、
前記ポートの属する処理部と同一パーティションに属する処理部との通信を行なう第１通信部と、
前記ポートの属する処理部と異なるパーティションに属する処理部との通信を行なう第２通信部と、
前記設定部による前記設定に応じて前記第１通信部と前記第２通信部とのいずれか一方を選択し、選択した通信部に前記他の処理部との通信を実行させる選択部と、を有することを特徴とする情報処理装置。
（付記２）
前記複数の処理部のそれぞれは、
前記設定部により、前記他の処理部が前記同一パーティションに属することを示す第１情報、または、前記他の処理部が前記異なるパーティションに属することを示す第２情報を設定されるレジスタをさらに有し、
前記選択部は、前記第１情報が前記レジスタに設定されている場合、前記第１通信部を選択する一方、前記第２情報が前記レジスタに設定されている場合、前記第２通信部を選択することを特徴とする、付記１に記載の情報処理装置。
（付記３）
前記第１通信部は、前記同一パーティションに属する前記他の処理部との間で、全てのメモリアクセスについてメモリ空間を共有するための通信を実行することを特徴とする、付記１または付記２に記載の情報処理装置。
（付記４）
前記第２通信部は、前記異なるパーティションに属する前記他の処理部との間で、前記ポートの属する処理部を成すプロセッサコアによって明示的に指示された通信を実行することを特徴とする、付記１〜付記３のいずれか一項に記載の情報処理装置。
（付記５）
前記第２通信部が通信を実行することにより、前記ポートは、ＰＣＩ（Peripheral Components Interconnect）デバイスのＮＴＢ（Non-Transparent Bridge）ポートとして機能することを特徴とする、付記４に記載の情報処理装置。
（付記６）
前記第２通信部は、
前記プロセッサコアと接続される第１インターフェイスと、
前記他の処理部と接続される第２インターフェイスと、
前記第１インターフェイス部と前記第２インターフェイスとの間に配置されるＮＴＢトランザクション層と、を有し、
前記第２通信部が前記ポートを前記ＮＴＢポートとして用い前記他の処理部へのデータ送信を行なう場合、前記第１インターフェイスは、前記他の処理部へのデータをＰＣＩ仕様に準拠するデータに変換し、前記ＮＴＢトランザクション層は、前記第１インターフェイスからのデータに基づきＴＬＰ（Transaction Layer Packet）を生成し、前記第２インターフェイスは、前記ＮＴＢトランザクション層からのＴＬＰを、前記ポートと前記他の処理部との間の通信仕様に準拠するパケットに変換する一方、
前記第２通信部が前記ポートを前記ＮＴＢポートとして用い前記他の処理部からデータ受信を行なう場合、前記第２インターフェイスは、前記他の処理部からのパケットをＴＬＰに変換し、前記ＮＴＢトランザクション層は、前記第２インターフェイスからのＴＬＰに基づき、ＰＣＩ仕様に準拠するデータを生成し、前記第１インターフェイスは、前記ＮＴＢトランザクション層からのデータを前記プロセッサコアまたはメモリへのデータに変換することを特徴とする、付記５に記載の情報処理装置。
（付記７）
前記複数の処理部のそれぞれは、ＰＣＩポートおよびルートコンプレクスを有し、
前記第２通信部の前記第１インターフェイスは、前記ルートコンプレクスによって構成されることを特徴とする、付記６に記載の情報処理装置。
（付記８）
前記第２通信部は、
前記プロセッサコアから前記他の処理部に対する割込み指示を前記ＮＴＢトランザクション層の送信用割込みレジスタに書き込まれると、割込みを指示するＴＬＰを生成し前記他の処理部へ転送する一方、
前記他の処理部から前記プロセッサコアに対する割込み指示を前記ＮＴＢトランザクション層の受信用割込みレジスタに書き込まれると、前記プロセッサコアに対する割込み指示を行なうことを特徴とする、付記６または付記７に記載の情報処理装置。
（付記９）
前記第２通信部は、
前記プロセッサコアから前記他の処理部と交換すべき交換情報を前記ＮＴＢトランザクション層の送信用交換情報レジスタに書き込まれると、前記交換情報を含むＴＬＰを生成し前記他の処理部へ転送する一方、
前記他の処理部から前記プロセッサコアと交換すべき交換情報を前記ＮＴＢトランザクション層の受信用交換情報レジスタに書き込まれると、前記プロセッサコアからの問合せに応じて、前記受信用交換情報レジスタの交換情報を前記プロセッサコアに通知することを特徴とする、付記６〜付記８のいずれか一項に記載の情報処理装置。
（付記１０）
前記第２通信部が通信を実行することにより、前記ポートと前記他の処理部との間に確立されるパスは、メモリミラーリングパスおよびフェイルオーバーパスの少なくとも一方として機能することを特徴する、付記１〜付記９のいずれか一項に記載の情報処理装置。
（付記１１）
他の処理部に接続され前記他の処理部との通信を行なうポートを有する複数の処理部を備えた情報処理装置において、前記複数の処理部に対しパーティション構成に則した設定を行なう制御方法であって、
前記ポートにおいて、前記ポートの属する処理部と同一パーティションに属する処理部との通信を行なう第１通信部と、前記ポートの属する処理部と異なるパーティションに属する処理部との通信を行なう第２通信部と、を備え、
前記設定に応じて前記第１通信部と前記第２通信部とのいずれか一方を選択し、選択した通信部に前記他の処理部との通信を実行させることを特徴とする情報処理装置の制御方法。
（付記１２）
前記複数の処理部のそれぞれに、前記他の処理部が前記同一パーティションに属することを示す第１情報、または、前記他の処理部が前記異なるパーティションに属することを示す第２情報を設定されるレジスタを備え、
前記第１情報が前記レジスタに設定されている場合、前記第１通信部を選択する一方、前記第２情報が前記レジスタに設定されている場合、前記第２通信部を選択することを特徴とする、付記１１に記載の情報処理装置の制御方法。
（付記１３）
前記第１通信部に、前記同一パーティションに属する前記他の処理部との間で、全てのメモリアクセスについてメモリ空間を共有するための通信を実行させることを特徴とする、付記１１または付記１２に記載の情報処理装置の制御方法。
（付記１４）
前記第２通信部に、前記異なるパーティションに属する前記他の処理部との間で、前記ポートの属する処理部を成すプロセッサコアによって明示的に指示された通信を実行させることを特徴とする、付記１１〜付記１３のいずれか一項に記載の情報処理装置の制御方法。
（付記１５）
前記第２通信部が通信を実行することにより、前記ポートを、ＰＣＩ（Peripheral Components Interconnect）デバイスのＮＴＢ（Non-Transparent Bridge）ポートとして機能させることを特徴とする、付記１４に記載の情報処理装置の制御方法。
（付記１６）
前記第２通信部が通信を実行することにより、前記ポートと前記他の処理部との間に確立されるパスを、メモリミラーリングパスおよびフェイルオーバーパスの少なくとも一方として機能させることを特徴する、付記１１〜付記１５のいずれか一項に記載の情報処理装置の制御方法。
【手続補正５】
【補正対象書類名】図面
【補正対象項目名】図９
【補正方法】変更
【補正の内容】
【図９】
2014027416.tif 000019
【国際調査報告】
2014027416.tif 000020
2014027416.tif 000021
2014027416.tif 000022
2014027416.tif 000023