説明

マルチホストシステム

【課題】マルチホストシステムにてホスト装置切替時のサービス停止を抑制すること。
【解決手段】マルチホストシステムは、2つの制御装置と、ポートを有するスイッチ装置と、を備え、2つの制御装置が接続された各ポートは、一方の制御装置と各デバイスとが属し一方の制御装置が管理する一方の領域と、他方の制御装置が属し当該他方の制御装置が管理する他方の領域と、に分割する機能を有する。一方の制御装置と他方の制御装置とは、自身が管理する領域を制御するための情報をメモリ空間に割り当てるアドレスマッピング手段をそれぞれ備え、特定の通信経路を介して接続されている。さらに、他方の制御装置は、特定の通信経路を介して一方の制御装置からメモリ空間に対する一方の領域を制御するための情報の割り当てを表す割り当て情報を取得して、この割り当て情報とメモリ空間に割り当てられた他方の領域を制御する情報とを同期する同期手段を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マルチホストシステムにかかり、特に、PCI Expressスイッチで用いられるNT mode(non-transparent mode)技術を導入して実現され、各ホスト装置よりEnd Pointであるデバイスに対してIOアクセス通信を可能にしたマルチホストシステムに関する。
【背景技術】
【0002】
近年、PCI Express(以下、適宣「PCIe」と記す。)が普及し、PCIeスロットを搭載したパーソナルコンピュータも市販されている。このようなPCIeシステムの一般的な構成を図1に示す(例えば特許文献1を参照)。この図に示すように、PCIeシステムの構成要素は、ルートコンプレックス、PCIeスイッチ、PCIeブリッジ、IOデバイスであるエンドポイント(EP:End Point)などである。
【0003】
そして、上述したPCIeシステムを複数のドメインに分割し、複数のホストCPU(ホスト装置)を内蔵するための技術として、PCIeスイッチに導入されるNon-transparent Bridge Mode技術(以下、適宣「NTmode」と記す)がある。このようなPCIeスイッチを搭載したPCIeシステムの一般的な構成を図2に示す。図2に示すシステムの構成要素は、ホストCPU(901、902)、ルートコンプレックス(903、904)、エンドポイント(905、906)、NTmode対応PCIeスイッチ(907)などである。
【0004】
複数のホストCPUに接続される複数のルートコンプレックスは、NTmode対応PCIeスイッチ(907)にそれぞれ接続されるが、ドメインを複数に分割するために、スイッチのポート(以下、適宣「NTポート」と呼ぶ)において、NT modeとして動作するためのポートを設定する必要がある。いくつNT modeとしてポートを設定できるかは、それぞれのスイッチの特性に依存するが、本例では説明を簡単にするため一つであるとする。あるポートをNTポートとして設定し、そのポートに接続されるホストCPUをSystem Host(以下、適宣「SH」と呼ぶ)(902)と呼ぶ。反対に、NTポートではないポートに接続されるホストCPUをLocal Host(以下、適宣「LH」と呼ぶ)(901)と呼ぶ。また、LH側のドメインをDomain 0、SH側のドメインをDomain 1と呼ぶこととする。
【0005】
NTポートは、内部、外部に対して仮想的なエンドポイントが存在するように各ホストCPUに見せることが出来る。内部側のエンドポイント(LHより認識できるEP)はVirtual Interface(後述する図4参照)と呼ばれ、外部側のエンドポイント(SHより認識できるEP)はLink Interface(後述する図4参照)と呼ばれる。
【0006】
Virtual Interface、Link Interfaceそれぞれは、Type0コンフィグレーション空間を持っており、LH、SHはそれぞれのEPをコンフィグレーションし、自身のメモリ空間にマッピングすることが出来る。このとき、システム全体としては、本物のEPとして二つ存在しているため(905、906)、LH側ではメモリ空間上に二つのEPがマッピングされる。
【0007】
しかし、SH側では二つの(本物の)EPを認識することが出来ず、SHは二つのEPに対してConfigurationサイクルを実行することが出来ないため、仮想的なEPであるLink Interfaceのみしかマッピングされない。そのため、SHのつながっているポートがNTポートである限り、SHが二つのEPのデバイスドライバをロードすることが出来ず、結果としてIOアクセスをすることが出来ない。そして、デバイスドライバとは、近年多数の種類が存在するハードウェアデバイスを制御するためのソフトウェアであり、デバイスドライバがないと、それぞれのハードウェアデバイス固有の制御アクセス(IOアクセス)方法などを実行することが出来ない。従って、SHは、各EPに対してIOアクセスが出来ないことにより、EPの制御をすることが不可能となってしまう。
【0008】
そのため、NTmode対応PCIeスイッチを搭載したPCIeシステムでは、LH側が何らかの理由でダウンしてしまった場合、接続ポートがNTポートから従来のポートに戻すために、PCIeスイッチをRe-Configurationする必要がある。Re-Configurationすることによって、SHがEPを認識することができ、IOアクセスをすることも可能となる。ところが、Re-Configurationが実行されている間、システム全体としてはサービスを停止している状態となってしまう。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2007−95025号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
以上のように、上述したPCIeシステムつまりPCIeスイッチを備えたマルチホストシステムでは、SHが発生させるConfigurationサイクルがNTポートを越えて本来のEPへ伝播することが無く、SHがEPを認識し、デバイスドライバをロードすることが出来ない。このため、第1の問題点として、Domain0側(Local Host側)で複数EPが存在したとしても、Domain1側(System Host側)からは一つのEP(Link Interface)としてしか認識できず、System Hostは意図したデバイスの、意図したアドレスに対するIOアクセスが困難である、という問題があった。
【0011】
また、SHがEPに対してIOアクセスするには、PCIeシステムをRe-Configurationし、はじめにNTポートであったポートを従来のPCIeポートに遷移させることによって再度、SHがEPに対してConfigurationサイクルを発生させ、認識させる必要がある。このため、第2の問題点として、SHがEPに対してIOアクセスするには、PCIeシステムをRe-Configurationしなければならず、システムとしてのサービスが中断される、という問題があった。
【0012】
このため、本発明の目的は、ホストCPUの冗長構成を取り、システムの信頼性を向上させつつ、ホストCPU切替時にシステムとしてのサービス動作を止めることなく、継続してサービスを提供し続けることができるシステムを提供することにある。
【課題を解決するための手段】
【0013】
上記目的を達成するため、本発明の一形態であるマルチホストシステムは、
少なくとも2つの制御装置と、上記各制御装置にてアクセスされる各デバイスと上記各制御装置とにそれぞれ接続された複数のポートを有するスイッチ装置と、を備え、
上記2つの制御装置がそれぞれ接続された上記スイッチ装置が有する上記各ポートは、一方の上記制御装置と上記各デバイスとが属し上記一方の制御装置が管理する一方の領域と、他方の上記制御装置が属し当該他方の制御装置が管理する他方の領域と、に分割する機能を有し、
上記一方の制御装置と上記他方の制御装置とは、それぞれ自身が管理する領域を制御するための情報を所定のメモリ空間に割り当てるアドレスマッピング手段をそれぞれ備えると共に、
上記一方の制御装置と上記他方の制御装置とは、相互に通信可能なよう特定の通信経路を介して接続され、
上記他方の制御装置は、上記特定の通信経路を介して上記一方の制御装置から上記メモリ空間に対する上記一方の領域を制御するための情報の割り当てを表す割り当て情報を取得して、当該取得した割り当て情報と上記メモリ空間に割り当てられた上記他方の領域を制御する情報とを同期する同期手段を備えた、
という構成を採る。
【0014】
また、本発明の他の形態である制御装置は、
少なくとも2つの制御装置と、上記各制御装置にてアクセスされる各デバイスと上記各制御装置とにそれぞれ接続された複数のポートを有するスイッチ装置と、を備え、
上記2つの制御装置がそれぞれ接続された上記スイッチ装置が有する上記各ポートが、一方の上記制御装置と上記各デバイスとが属し上記一方の制御装置が管理する一方の領域と、他方の上記制御装置が属し当該他方の制御装置が管理する他方の領域と、に分割する機能を有し、
上記一方の制御装置と上記他方の制御装置とが、それぞれ自身が管理する領域を制御するための情報を所定のメモリ空間に割り当てるアドレスマッピング手段をそれぞれ備えると共に、上記一方の制御装置と上記他方の制御装置とが、相互に通信可能なよう特定の通信経路を介して接続されているマルチホストシステム、を構成する上記他方の制御装置であって、
上記特定の通信経路を介して上記一方の制御装置から上記メモリ空間に対する上記一方の領域を制御するための情報の割り当てを表す割り当て情報を取得して、当該取得した割り当て情報と上記メモリ空間に割り当てられた上記他方の領域を制御する情報とを同期する同期手段を備えた、
という構成を採る。
【0015】
また、本発明の他の形態であるプログラムは、
少なくとも2つの制御装置と、上記各制御装置にてアクセスされる各デバイスと上記各制御装置とにそれぞれ接続された複数のポートを有するスイッチ装置と、を備え、
上記2つの制御装置がそれぞれ接続された上記スイッチ装置が有する上記各ポートが、一方の上記制御装置と上記各デバイスとが属し上記一方の制御装置が管理する一方の領域と、他方の上記制御装置が属し当該他方の制御装置が管理する他方の領域と、に分割する機能を有し、
上記一方の制御装置と上記他方の制御装置とが、それぞれ自身が管理する領域を制御するための情報を所定のメモリ空間に割り当てるアドレスマッピング手段をそれぞれ備えると共に、上記一方の制御装置と上記他方の制御装置とが、相互に通信可能なよう特定の通信経路を介して接続されているマルチホストシステム、を構成する上記他方の制御装置に、
上記特定の通信経路を介して上記一方の制御装置から上記メモリ空間に対する上記一方の領域を制御するための情報の割り当てを表す割り当て情報を取得して、当該取得した割り当て情報と上記メモリ空間に割り当てられた上記他方の領域を制御する情報とを同期する同期手段、
を実現させるためのプログラムである。
【0016】
また、本発明の他の形態であるシステム制御方法は、
少なくとも2つの制御装置と、上記各制御装置と当該各制御装置にてアクセスされる各デバイスとにそれぞれ接続された複数のポートを有するスイッチ装置と、を備え、
上記2つの制御装置がそれぞれ接続された上記スイッチ装置が有する上記各ポートが、一方の上記制御装置と上記各デバイスとが属し上記一方の制御装置が管理する一方の領域と、他方の上記制御装置が属し当該他方の制御装置が管理する他方の領域と、に分割する機能を有するマルチホストシステムにて、
上記一方の制御装置と上記他方の制御装置とが、それぞれ自身が管理する領域を制御するための情報を所定のメモリ空間に割り当てるアドレスマッピング工程と、
上記他方の制御装置が、上記一方の制御装置と相互に通信可能なよう接続された特定の通信経路を介して、上記一方の制御装置から上記メモリ空間に対する上記一方の領域を制御するための情報の割り当てを表す割り当て情報を取得して、当該取得した割り当て情報と上記メモリ空間に割り当てられた上記他方の領域を制御する情報とを同期する同期工程と、
を有する。
【発明の効果】
【0017】
本発明は、以上のように構成されることにより、システムによるサービス停止を抑制してシステムの信頼性の向上を図ることができる。
【図面の簡単な説明】
【0018】
【図1】本発明に関連するPCIeシステムの構成を示す図である。
【図2】本発明に関連するNTmode対応PCIeスイッチが搭載されたPCIeシステムの構成を示す図である。
【図3】本発明におけるマルチホストシステムの構成を示す図である。
【図4】図1に開示したPCIeスイッチの構成を示す図である。
【図5】図1に開示したマルチホストシステムにおけるコンフィグレーションサイクル実施終了後のメモリマッピングの状態を示す図である。
【図6】仮想的マルチデバイスドライバの構成ドライバとの関係を示す図である。
【図7】仮想的マルチデバイスドライバシステムを利用したときのOSより認識できるドライバとEPの関係を示す図である。
【図8】図1に開示したマルチホストシステムのコンフィグレーションサイクルを示したシーケンス図である。
【図9】仮想マルチデバイスドライバシステムにおいて生成されるデバイスドライバとメモリマッピング情報との関係を示すテーブル図である。
【図10】NTポートをまたいで別Domainへ制御IOアクセスを実施したときのデータの流れの例を示す図である。
【図11】仮想OS技術を用いたときに構成されるマルチホストシステムの他の構成例を示す図である。
【発明を実施するための形態】
【0019】
<実施形態1>
本発明の第1の実施形態を、図3乃至図11を参照して説明する。図3乃至図4は、マルチホストシステムの構成を示す図である。図5乃至図10は、マルチホストシステムの動作例を説明するための図である。図11は、マルチホストシステムの他の構成を示す図である。
【0020】
[構成]
本発明におけるマルチホストシステムは、図3に示すように、制御装置である複数のホストCPU101,102と、複数のIOデバイスであるエンドポイント(EP0,EP1)とが、PCIe(PCI Express)スイッチ(PCIeSW)105(スイッチ装置)を介して接続されたマルチホストシステムである。
【0021】
そして、マルチホストシステムは、ホストCPUとして、Local Host101とSystem Host102といった2つの制御装置(ホスト装置)を備えており、Local Host101とSystem Host102とがそれぞれ制御する領域である2つのDomainを備えている。そして、Local Host101が制御する一方のDomain 0は、Root Complex(ルートコンプレックス)103と、NT mode対応のPCIeスイッチ105と、を備えており、当該PCIeスイッチ105に接続されたEP0,EP1が属している。また、System Host102が制御する他方のDomain 1は、ルートコンプレックス104を備えており、NT mode対応のPCIeスイッチ105とはNTポートで接続されている。
【0022】
また、上記PCIeスイッチ105は、上述したLocal Host101,System Host102と、各エンドポイント106,107とがそれぞれ接続されるポートを備えている。具体的には、図4に示すように、Upstream Port110にLocal Host101が接続され、2つのDownstreamPort114には、それぞれ各エンドポイント106,107が接続されている。また、PCIeスイッチ105は、Non-transparent Bridge Mode技術(以下、適宣「NT mode」と記す)を有しており、かかるNT mode対応のNTポート(NT Port)111を有しており、System Host102が接続されている。
【0023】
上記NTポート111は、内部、外部に対して仮想的なエンドポイントが存在するように各ホストCPUに見せることが出来る。内部側のエンドポイント(LHより認識できるEP)は、Virtual Interface112と呼ばれ、外部側のエンドポイントはLink Interface113と呼ばれる。そして、後述するように、Virtual Interface112、Link Interface113それぞれは、Type0コンフィグレーション空間を持っており、LH、SHはそれぞれのEPをコンフィグレーションし、自身のメモリ空間にマッピングすることが出来る。このとき、システム全体としては、本物のEPとして二つ存在しているが、SH側ではメモリ空間上に二つのEPが仮想的なEPであるLink Interface113のみとしてマッピングされる。
【0024】
さらに、本発明におけるLocal Host101とSystem Host102とは、相互に通信可能なようTCP/IPネットワークなどの特定の通信経路100を介して接続されている。
【0025】
また、Local Host101とSystem Host102とは、アクセスする各IOデバイスであるエンドポイント106,107毎に、正しいデバイスドライバを選択する機能を有するVMDDS(仮想マルチデバイスドライバシステム)108,109を備えており、当該VMDDSを用いることで、各エンドポイントに対して正しくIOアクセスを動作させることができる。
【0026】
そして、本発明におけるLocal Host101とSystem Host102とは、電源投入時から、各DomainにおいてPCIeシステムを構築すべく、各Domainにてメモリマッピング、デバイスドライバのロードなどを実行するアドレスマッピング機能(アドレスマッピング手段)を備えている。つまり、このアドレスマッピング機能により、Local Host101とSystem Host102とは、それぞれ自身が管理するDomainを制御するための情報である各エンドポイントのデバイスドライバなどを所定のメモリ空間に割り当てる。なお、アドレスマッピングの機能の詳細については、動作説明時に説明する。
【0027】
さらに、本発明におけるLocal Host101とSystem Host102とは、TCP/IPネットワークなどの特定の通信経路100を経由して、それぞれのHost101,102がメモリ空間に割り当てた情報の共有作業、デバイスドライバ情報の通知作業を実施する機能(同期手段)を有する。特に、System Host102は、Local Host101からメモリ空間に割り当てられているエンドポイント106,107のデバイスドライバの割り当て状態を示す割り当て情報、つまり、Local Host101によるメモリマッピングの情報、必要とするデバイスドライバの種類などの割り当て情報を取得して、この割り当て情報と、System Host102のアドレスマッピングの情報とを同期する同期手段を有する。なお、同期動作については、動作説明時に詳述する。
【0028】
以上の同期動作を行ってデバイスドライバの再構築を行うことにより、System Host102は各エンドポイント106,107に対してDomainを超えたIOアクセス通信を実現することができる。
【0029】
なお、上記のマルチホストシステムでは、Host装置が2つ装備され、Domainが2つ形成されているが、さらに多くのHost装置が装備され、さらに多くのDomainが形成されていてもよい。
【0030】
また、上記Local Host101とSystem Host102とが有する各機能は、所定のプログラムが各Host101,102に組み込まれることによって実現される。
【0031】
[動作]
次に、上述したマルチホストシステムの動作を説明する。ここでは、電源投入時から、各Domainにおいて、PCIeシステムが構築されるまでのシーケンスは既存のものと同一であることを想定している。そして、動作の概略としては、まず、各Domainにてメモリマッピング、デバイスドライバのロードなどが完了したのち(アドレスマッピング工程)、各Domainのホスト間でメモリマッピングの情報、必要とするデバイスドライバの種類などを周到するように同期シーケンスが作動し、VMDDSにてデバイスドライバの再構築が実施される(同期工程)。それにより、Domainを超えたIOアクセス通信を実現する。つまり、既存のNTmode対応PCIeスイッチが存在するPCIeシステムでは、メモリアクセス、コンプリーショントランザクションのみ可能であるが、本発明のシステムでは、IOアクセスも可能となる。
【0032】
なお、メモリアクセス、コンプリーショントランザクションを実施するには、EPに対応するデバイスドライバを利用する必要は無く、PCI-SIG策定のPCIeトランザクションパケットを生成することによりトランザクションを生成することが可能であるが、IOアクセスはEPの制御レジスタに対するRead/Writeなど、各EP固有のアクセスシーケンスやレジスタ情報に合わせた動作が必要となる。そのため、制御IOアクセスを行うにはデバイスドライバが必須である。
【0033】
<コンフィグレーション処理>
まず、電源投入後のコンフィグレーション処理について、図8を参照して説明する。図8において、各HostであるCPUは、電源投入直後に、PCIeバス配下のEPを検索するバスサイクルを発生させる(実際はルートコンプレックス(RC)が発生させる)。それぞれのCPUは、NTmode対応PCIeスイッチの仮想的なEP(Virtual Interface、Link Interface)に対してもコンフィグレーションアクセスを実施し、メモリ空間上にマッピングする(ステップ501)。
【0034】
この際、Domain0側のホスト(Local Host)が、NTmode対応PCIeスイッチのもつレジスタに対して、Domain0 側にて必要とする、EPの為に確保されるメモリ量をスクラッチパッドレジスタAに設定する(ステップ502)。
【0035】
同時に、System Host側では、コンフィグレーションサイクルが実行されているが、NTポートの設定により、CRS(Configuration Retry Status:リトライ要求)を返答として受け取り、コンフィグレーションが出来るようになるまで、要求を継続する(ステップ503)。
【0036】
Local Hostがさらに、スクラッチパッドレジスタBに対して、要求メモリ量をスクラッチパッドレジスタに格納完了したことを通知する内容(READY情報)をセットする(ステップ504)。
【0037】
さらにこの後、Local Hostが、NTポートの制御レジスタに対してLink Interface Access Enableの設定をする(ステップ505)。これによって、今までリトライ要求を受け続けていたSystem HostはLink Interfaceに対してコンフィグレーションアクセスの結果を受け取る事が可能となる。
【0038】
この際、SH側にて、EPがマッピングされるベース・アドレスを示すのに使われるBAR(Base Address Register)は0ではなく、2を利用する(NTmode技術を利用する際の仕様)。BAR0はNTmode特有の仕様であるが、NTmode対応PCIeスイッチの各ポートのコンフィグレーション空間を、メモリ空間上にマッピングする際に利用されるので、Link InterfaceへのBARとしてBAR0を利用することは出来ない(図5における203、204)。以上により、SH側にて、LH側Domain0に存在するEPが必要とするメモリ容量と同量の領域を確保することが可能となる。
【0039】
本発明では、さらにこの後、メモリ空間の同期、デバイスドライバの同期等を行うことによって、Domain間をまたいでのIOアクセスを可能とする。
【0040】
<メモリ空間の同期、管理テーブル作成、デバイスドライバα再構築>
続いて、各ホスト間において、コンフィグレーションアクセスを実施した結果生成できた、アドレスマッピング情報や利用するデバイスドライバ等の同期を行う。NTmode対応PCIeスイッチを用いたシステムでは、EPのアドレスマッピングは、隙間無く連続してマッピングが行われる(図5の符号201)。SH側では、Configurationサイクル後、LIに対応するデバイスドライバとして、デバイスドライバαをロードしている。なお、図5において、符号201は、EP0、EP1のメモリマッピングであり、符号202は、Link Interface EPとして確保されたメモリ領域である。また、符号203,204は、NTmode対応PCIeスイッチの各ポートのコンフィグレーション空間のメモリマッピングである。
【0041】
図5を用いてメモリ空間の同期動作について説明する。各Domainのホストがマッピングしているアドレス情報は一致することはない。例えば、Domain0にてマッピングされているEP0、EP1のベース・アドレス(図5の符号201)に対して、同じ量を確保されたLink Interfaceのベース・アドレス(図5の符号202)は異なり、このベース・アドレスはそれぞれのDomainの構成により決定される。つまり、Domain0にてEP0、EP1はベース・アドレスをそれぞれ100番地、200番地、必要メモリ量をそれぞれ100として割り当てられている。一方、Domain1側にて、Link Interface EPとして割り当てられているベース・アドレスは600番地であり、必要とするメモリ量は200であり、一つのEPとして認識されている。つまり、SH側では、EP0、EP1のデバイスドライバをまとめて1つのドライバ情報としてメモリ空間に割り当てている。
【0042】
しかし、ベース・アドレスは異なるが、各EPが割り当てられているメモリ容量は共通のものと出来るため(共に200分確保している)、VMDDSによって各EPの割り当て量、割り当て間隔などを統一する。つまり、Link Interfaceとして確保されている領域(図5の符号202)をEP0、EP1の各領域それぞれに分割し、LH側のメモリマッピングと状態を同期させることで、既存のNTmodeにおけるアドレストランスレーションにより、Domain間を越えてのアクセスが可能となる。換言すると、Domain1側にて、Link Interface EPとして割り当てられたメモリ量200は、EP0、EP1であることが認識できる。
【0043】
このため、VMDDSは、TCP/IPネットワークなどを経由して、それぞれのアドレスマッピング情報共有作業、デバイスドライバ情報通知作業を実施する。つまり、Local Host101は、メモリ空間に割り当てたデバイスドライバ等の割り当て状態を表す割り当て情報をTCP/IPネットワーク100を介してSystem Host102はこれを受信する。
【0044】
そして、Domainの異なるホストからTCP/IPネットワークを経由してのデバイスドライバの情報通知により、通知されたデバイスドライバは、あるメモリワーク領域に保存される(保持メモリ空間)。また、System Host102側のVMDDSは、デバイスドライバの情報通知(割り当て情報の通知)に基づいて、図9のような、デバイスドライバα(ドライバ情報)と、各デバイスドライバの対応付けを行うテーブル(管理情報)を作成することにより、System Host側で、宛先アドレスとそのとき必要となるデバイスドライバの対応が認識できる。すると、ホストCPU(SH)は、デバイスドライバが変更になったように意識することは無く、そのままデバイスドライバαを利用し続けることが可能である。
【0045】
このとき、LIがマッピングされているアドレス空間に対するアクセス(デバイスドライバαを利用しようとする)を、アドレスの範囲をデバイスドライバの選択トリガとして利用し、利用するデバイスドライバが保持されている領域へ作業を移すことをデバイスドライバαが実行することによって、アクセス先のデバイスドライバが選択でき、正しいデバイスへのIOアクセスが可能となる。
【0046】
テーブルの内容として、図9に示すように、統括デバイスドライバ名とそれらを構成する実際のデバイスドライバ名、さらにそれらがマッピングされているSystem Hostが管理するEPが対応付けられている領域のベース・アドレス、リミットアドレス、保持メモリ空間アドレス、要求メモリ量などが考えられる。
【0047】
デバイスドライバを判別するためのパラメータとして、宛先アドレスフィールドとテーブルとの照らし合わせをすることによって、NTポートにて行われるアドレストランスレーションと合わせて、Domainを超えてのIOアクセス通信を実現する。
【0048】
<データ転送処理>
Domain1側ホスト(System Host)とEPとのIOアクセス通信について、図7及び図10に示す。本システムにおいて、Domain1側ホスト(System Host)とEP0のIOアクセス通信を行うには、宛先EP0に対応するデバイスドライバ(仮にデバイスドライバAとする)を正しく選択する必要がある。SHは、IOアクセス通信をさせたい処理が要求された場合、デバイスドライバ対応テーブルより、利用するデバイスドライバAの選択、宛先アドレスなどを利用してIOリクエストトランザクションをSHは発生させる。IOリクエストが発生したと認識したルートコンプレックスはPCIeパケット形式に変換し、接続しているNTポートに対してIOアクセストランザクションパケットを送信する。IOアクセストランザクションを受け取ったNTポートでは、届いたトランザクションの宛先アドレスを、Domain0側へ転送するためのアドレスに変換するため、アドレス書き換えを行う。この方法は既存のNTmodeでの動作と同様である。以上により、SHはDomainをまたいでの制御IOアクセスをすることが可能となる。
【0049】
以上により、本実施形態におけるマルチホストシステムでは、複数のホストがそれぞれEPに対して制御IOアクセスをすることが可能となったため、ACTとして動作していたホストが何らかの理由でダウンした際に、PCIeシステムをRe-Configurationを実施せずに制御ホストを変更することが出来るために、システムとしてのサービス動作を停止することなく、提供し続けることができる。
【0050】
また、マルチホストシステムにおいて、NTポートを超えることが出来なかった制御IOアクセスが可能となる。
【0051】
さらに、デバイスドライバを利用する(アドレス空間としては、一つのEPに見えているままである)ことに変更を加えることなく、複数のEPにアクセスするために、デバイスドライバを新しく用意する(ロードする)必要が無く、複数のデバイスにアクセスするのに無駄な作業が不要となる。
【0052】
<他の実施例>
本発明の他の実施例として、その基本的構成は上記の通りであるが、ホストCPUで仮想OS(例えばXenなど)システムを備えており、SR-IOV対応のEPを用いた時にさらにシステムの利便性の向上が期待できる。その構成図を図11に示す。
【0053】
構成要素として、仮想OSシステムを備えているLH(801)、SH(802)、PCI-SIG策定のSR-IOV規格に対応しているEP(805、806)などが上述した図1のシステムと異なる点である。
【0054】
SR-IOVシステムでは、SR-PCIMというソフトウェアがEPに対するアクセスの制御をおこなうために制御部に組み込まれているため、各仮想OSは他の仮想OSの動作を意識することなく、EPに対する制御IOアクセス動作を行うことが可能である。この動作方法は従来のVMDDSと同様である。メモリ空間情報の同期や、デバイスドライバ情報の通知を行うVMDDSは、他の仮想OSに対して特権的なドメイン0上の仮想OS上のVMDDSが代表してそれを行う。
【0055】
従って、SR-IOVを利用することにより、仮想OS毎(VMDDS毎に)にEPを共有し、同時にIOアクセス動作をする事が可能となるため、IOアクセスをする際の仮想OS間でのアービトレーション動作の必要がなく、さらに処理性能の向上が期待できる。
【0056】
本構成において、全てのEPがSR-IOVに対応している必要は無く、SR-IOV対応EP、未対応EPを共に一つのシステムに組み込むという構成を取ることも可能である。
【0057】
<付記>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるマルチホストシステム、制御装置、プログラム、システム制御方法の構成の概略について説明する。但し、本発明は、以下の構成に限定されない。
【0058】
(付記1)
少なくとも2つの制御装置と、前記各制御装置にてアクセスされる各デバイスと前記各制御装置とにそれぞれ接続された複数のポートを有するスイッチ装置と、を備え、
前記2つの制御装置がそれぞれ接続された前記スイッチ装置が有する前記各ポートは、一方の前記制御装置と前記各デバイスとが属し前記一方の制御装置が管理する一方の領域と、他方の前記制御装置が属し当該他方の制御装置が管理する他方の領域と、に分割する機能を有し、
前記一方の制御装置と前記他方の制御装置とは、それぞれ自身が管理する領域を制御するための情報を所定のメモリ空間に割り当てるアドレスマッピング手段をそれぞれ備えると共に、
前記一方の制御装置と前記他方の制御装置とは、相互に通信可能なよう特定の通信経路を介して接続され、
前記他方の制御装置は、前記特定の通信経路を介して前記一方の制御装置から前記メモリ空間に対する前記一方の領域を制御するための情報の割り当てを表す割り当て情報を取得して、当該取得した割り当て情報と前記メモリ空間に割り当てられた前記他方の領域を制御する情報とを同期する同期手段を備えた、
マルチホストシステム。
【0059】
(付記2)
付記1に記載のマルチホストシステムであって、
前記一方の制御装置が有する前記アドレスマッピング手段は、前記各デバイスの動作を制御するための情報である各デバイスドライバをそれぞれ前記メモリ空間に割り当て、
前記他方の制御装置が有する前記アドレスマッピング手段は、前記各デバイスの動作を制御するための情報である各デバイスドライバをまとめて1つのドライバ情報として前記メモリ空間に割り当て、
前記他方の制御装置が有する前記同期手段は、前記一方の制御装置から取得した割り当て情報に基づいて、前記メモリ空間に記憶されている前記ドライバ情報を前記各デバイスの各デバイスドライバに対応させて同期する、
マルチホストシステム。
【0060】
(付記3)
付記2に記載のマルチホストシステムであって、
前記他方の制御装置が有する前記同期手段は、前記一方の制御装置から取得した割り当て情報に基づいて、前記メモリ空間に記憶されている前記ドライバ情報を前記各デバイスの各デバイスドライバに対応するよう分割して同期する、
マルチホストシステム。
【0061】
(付記4)
付記3に記載のマルチホストシステムであって、
前記他方の制御装置が有する前記同期手段は、前記メモリ空間に割り当てられた前記ドライバ情報と、前記一方の制御装置から取得した前記割り当て情報に基づく前記各デバイスドライバと、を関連付けた管理情報を保持する、
マルチホストシステム。
【0062】
(付記5)
付記1乃至4のいずれかに記載のマルチホストシステムであって、
前記他方の制御装置は、前記メモリ空間に記憶され前記同期手段にて同期された前記他方の領域を制御するための情報に基づいて、前記各デバイスにアクセスする、
マルチホストシステム。
【0063】
(付記6)
付記1乃至5のいずれかに記載のマルチホストシステムであって、
前記他方の制御装置が接続された前記スイッチ装置が有する前記ポートは、Non-transparent Bridge Modeポートである、
マルチホストシステム。
【0064】
(付記7)
少なくとも2つの制御装置と、前記各制御装置にてアクセスされる各デバイスと前記各制御装置とにそれぞれ接続された複数のポートを有するスイッチ装置と、を備え、
前記2つの制御装置がそれぞれ接続された前記スイッチ装置が有する前記各ポートが、一方の前記制御装置と前記各デバイスとが属し前記一方の制御装置が管理する一方の領域と、他方の前記制御装置が属し当該他方の制御装置が管理する他方の領域と、に分割する機能を有し、
前記一方の制御装置と前記他方の制御装置とが、それぞれ自身が管理する領域を制御するための情報を所定のメモリ空間に割り当てるアドレスマッピング手段をそれぞれ備えると共に、前記一方の制御装置と前記他方の制御装置とが、相互に通信可能なよう特定の通信経路を介して接続されているマルチホストシステム、を構成する前記他方の制御装置であって、
前記特定の通信経路を介して前記一方の制御装置から前記メモリ空間に対する前記一方の領域を制御するための情報の割り当てを表す割り当て情報を取得して、当該取得した割り当て情報と前記メモリ空間に割り当てられた前記他方の領域を制御する情報とを同期する同期手段を備えた、
制御装置。
【0065】
(付記8)
付記7に記載の前記他方の制御装置であって、
前記一方の制御装置が有する前記アドレスマッピング手段が、前記各デバイスの動作を制御するための情報である各デバイスドライバをそれぞれ前記メモリ空間に割り当てる機能を有すると共に、
前記他方の制御装置が有する前記アドレスマッピング手段が、前記各デバイスの動作を制御するための情報である各デバイスドライバをまとめて1つのドライバ情報として前記メモリ空間に割り当てる機能を有する場合に、
前記同期手段は、前記一方の制御装置から取得した割り当て情報に基づいて、前記メモリ空間に記憶されている前記ドライバ情報を前記各デバイスの各デバイスドライバに対応させて同期する、
制御装置。
【0066】
(付記9)
少なくとも2つの制御装置と、前記各制御装置にてアクセスされる各デバイスと前記各制御装置とにそれぞれ接続された複数のポートを有するスイッチ装置と、を備え、
前記2つの制御装置がそれぞれ接続された前記スイッチ装置が有する前記各ポートが、一方の前記制御装置と前記各デバイスとが属し前記一方の制御装置が管理する一方の領域と、他方の前記制御装置が属し当該他方の制御装置が管理する他方の領域と、に分割する機能を有し、
前記一方の制御装置と前記他方の制御装置とが、それぞれ自身が管理する領域を制御するための情報を所定のメモリ空間に割り当てるアドレスマッピング手段をそれぞれ備えると共に、前記一方の制御装置と前記他方の制御装置とが、相互に通信可能なよう特定の通信経路を介して接続されているマルチホストシステム、を構成する前記他方の制御装置に、
前記特定の通信経路を介して前記一方の制御装置から前記メモリ空間に対する前記一方の領域を制御するための情報の割り当てを表す割り当て情報を取得して、当該取得した割り当て情報と前記メモリ空間に割り当てられた前記他方の領域を制御する情報とを同期する同期手段、
を実現させるためのプログラム。
【0067】
(付記10)
付記9に記載のプログラムであって、
前記一方の制御装置が有する前記アドレスマッピング手段が、前記各デバイスの動作を制御するための情報である各デバイスドライバをそれぞれ前記メモリ空間に割り当てる機能を有すると共に、
前記他方の制御装置が有する前記アドレスマッピング手段が、前記各デバイスの動作を制御するための情報である各デバイスドライバをまとめて1つのドライバ情報として前記メモリ空間に割り当てる機能を有する場合に、
前記同期手段は、前記一方の制御装置から取得した割り当て情報に基づいて、前記メモリ空間に記憶されている前記ドライバ情報を前記各デバイスの各デバイスドライバに対応させて同期する、
プログラム。
【0068】
(付記11)
少なくとも2つの制御装置と、前記各制御装置と当該各制御装置にてアクセスされる各デバイスとにそれぞれ接続された複数のポートを有するスイッチ装置と、を備え、
前記2つの制御装置がそれぞれ接続された前記スイッチ装置が有する前記各ポートが、一方の前記制御装置と前記各デバイスとが属し前記一方の制御装置が管理する一方の領域と、他方の前記制御装置が属し当該他方の制御装置が管理する他方の領域と、に分割する機能を有するマルチホストシステムにて、
前記一方の制御装置と前記他方の制御装置とが、それぞれ自身が管理する領域を制御するための情報を所定のメモリ空間に割り当てるアドレスマッピング工程と、
前記他方の制御装置が、前記一方の制御装置と相互に通信可能なよう接続された特定の通信経路を介して、前記一方の制御装置から前記メモリ空間に対する前記一方の領域を制御するための情報の割り当てを表す割り当て情報を取得して、当該取得した割り当て情報と前記メモリ空間に割り当てられた前記他方の領域を制御する情報とを同期する同期工程と、
を有するシステム制御方法。
【0069】
(付記12)
付記11に記載のシステム制御方法であって、
前記アドレスマッピング工程は、前記一方の制御装置が、前記各デバイスの動作を制御するための情報である各デバイスドライバをそれぞれ前記メモリ空間に割り当て、前記他方の制御装置が、前記各デバイスの動作を制御するための情報である各デバイスドライバをまとめて1つのドライバ情報として前記メモリ空間に割り当て、
前記同期工程は、前記一方の制御装置から取得した割り当て情報に基づいて、前記メモリ空間に記憶されている前記ドライバ情報を前記各デバイスの各デバイスドライバに対応させて同期する、
システム制御方法。
【符号の説明】
【0070】
101 Local Host
102 System Host
103,104 Root Complex
105 PCIeスイッチ
106,107 End Point
108,109 仮想マルチデバイスドライバシステム
111 NT port
112 Link Interface
113 Virtual Interface


【特許請求の範囲】
【請求項1】
少なくとも2つの制御装置と、前記各制御装置にてアクセスされる各デバイスと前記各制御装置とにそれぞれ接続された複数のポートを有するスイッチ装置と、を備え、
前記2つの制御装置がそれぞれ接続された前記スイッチ装置が有する前記各ポートは、一方の前記制御装置と前記各デバイスとが属し前記一方の制御装置が管理する一方の領域と、他方の前記制御装置が属し当該他方の制御装置が管理する他方の領域と、に分割する機能を有し、
前記一方の制御装置と前記他方の制御装置とは、それぞれ自身が管理する領域を制御するための情報を所定のメモリ空間に割り当てるアドレスマッピング手段をそれぞれ備えると共に、
前記一方の制御装置と前記他方の制御装置とは、相互に通信可能なよう特定の通信経路を介して接続され、
前記他方の制御装置は、前記特定の通信経路を介して前記一方の制御装置から前記メモリ空間に対する前記一方の領域を制御するための情報の割り当てを表す割り当て情報を取得して、当該取得した割り当て情報と前記メモリ空間に割り当てられた前記他方の領域を制御する情報とを同期する同期手段を備えた、
マルチホストシステム。
【請求項2】
請求項1に記載のマルチホストシステムであって、
前記一方の制御装置が有する前記アドレスマッピング手段は、前記各デバイスの動作を制御するための情報である各デバイスドライバをそれぞれ前記メモリ空間に割り当て、
前記他方の制御装置が有する前記アドレスマッピング手段は、前記各デバイスの動作を制御するための情報である各デバイスドライバをまとめて1つのドライバ情報として前記メモリ空間に割り当て、
前記他方の制御装置が有する前記同期手段は、前記一方の制御装置から取得した割り当て情報に基づいて、前記メモリ空間に記憶されている前記ドライバ情報を前記各デバイスの各デバイスドライバに対応させて同期する、
マルチホストシステム。
【請求項3】
請求項2に記載のマルチホストシステムであって、
前記他方の制御装置が有する前記同期手段は、前記一方の制御装置から取得した割り当て情報に基づいて、前記メモリ空間に記憶されている前記ドライバ情報を前記各デバイスの各デバイスドライバに対応するよう分割して同期する、
マルチホストシステム。
【請求項4】
請求項3に記載のマルチホストシステムであって、
前記他方の制御装置が有する前記同期手段は、前記メモリ空間に割り当てられた前記ドライバ情報と、前記一方の制御装置から取得した前記割り当て情報に基づく前記各デバイスドライバと、を関連付けた管理情報を保持する、
マルチホストシステム。
【請求項5】
請求項1乃至4のいずれかに記載のマルチホストシステムであって、
前記他方の制御装置は、前記メモリ空間に記憶され前記同期手段にて同期された前記他方の領域を制御するための情報に基づいて、前記各デバイスにアクセスする、
マルチホストシステム。
【請求項6】
請求項1乃至5のいずれかに記載のマルチホストシステムであって、
前記他方の制御装置が接続された前記スイッチ装置が有する前記ポートは、Non-transparent Bridge Modeポートである、
マルチホストシステム。
【請求項7】
少なくとも2つの制御装置と、前記各制御装置にてアクセスされる各デバイスと前記各制御装置とにそれぞれ接続された複数のポートを有するスイッチ装置と、を備え、
前記2つの制御装置がそれぞれ接続された前記スイッチ装置が有する前記各ポートが、一方の前記制御装置と前記各デバイスとが属し前記一方の制御装置が管理する一方の領域と、他方の前記制御装置が属し当該他方の制御装置が管理する他方の領域と、に分割する機能を有し、
前記一方の制御装置と前記他方の制御装置とが、それぞれ自身が管理する領域を制御するための情報を所定のメモリ空間に割り当てるアドレスマッピング手段をそれぞれ備えると共に、前記一方の制御装置と前記他方の制御装置とが、相互に通信可能なよう特定の通信経路を介して接続されているマルチホストシステム、を構成する前記他方の制御装置であって、
前記特定の通信経路を介して前記一方の制御装置から前記メモリ空間に対する前記一方の領域を制御するための情報の割り当てを表す割り当て情報を取得して、当該取得した割り当て情報と前記メモリ空間に割り当てられた前記他方の領域を制御する情報とを同期する同期手段を備えた、
制御装置。
【請求項8】
少なくとも2つの制御装置と、前記各制御装置にてアクセスされる各デバイスと前記各制御装置とにそれぞれ接続された複数のポートを有するスイッチ装置と、を備え、
前記2つの制御装置がそれぞれ接続された前記スイッチ装置が有する前記各ポートが、一方の前記制御装置と前記各デバイスとが属し前記一方の制御装置が管理する一方の領域と、他方の前記制御装置が属し当該他方の制御装置が管理する他方の領域と、に分割する機能を有し、
前記一方の制御装置と前記他方の制御装置とが、それぞれ自身が管理する領域を制御するための情報を所定のメモリ空間に割り当てるアドレスマッピング手段をそれぞれ備えると共に、前記一方の制御装置と前記他方の制御装置とが、相互に通信可能なよう特定の通信経路を介して接続されているマルチホストシステム、を構成する前記他方の制御装置に、
前記特定の通信経路を介して前記一方の制御装置から前記メモリ空間に対する前記一方の領域を制御するための情報の割り当てを表す割り当て情報を取得して、当該取得した割り当て情報と前記メモリ空間に割り当てられた前記他方の領域を制御する情報とを同期する同期手段、
を実現させるためのプログラム。
【請求項9】
少なくとも2つの制御装置と、前記各制御装置と当該各制御装置にてアクセスされる各デバイスとにそれぞれ接続された複数のポートを有するスイッチ装置と、を備え、
前記2つの制御装置がそれぞれ接続された前記スイッチ装置が有する前記各ポートが、一方の前記制御装置と前記各デバイスとが属し前記一方の制御装置が管理する一方の領域と、他方の前記制御装置が属し当該他方の制御装置が管理する他方の領域と、に分割する機能を有するマルチホストシステムにて、
前記一方の制御装置と前記他方の制御装置とが、それぞれ自身が管理する領域を制御するための情報を所定のメモリ空間に割り当てるアドレスマッピング工程と、
前記他方の制御装置が、前記一方の制御装置と相互に通信可能なよう接続された特定の通信経路を介して、前記一方の制御装置から前記メモリ空間に対する前記一方の領域を制御するための情報の割り当てを表す割り当て情報を取得して、当該取得した割り当て情報と前記メモリ空間に割り当てられた前記他方の領域を制御する情報とを同期する同期工程と、
を有するシステム制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2011−248662(P2011−248662A)
【公開日】平成23年12月8日(2011.12.8)
【国際特許分類】
【出願番号】特願2010−121624(P2010−121624)
【出願日】平成22年5月27日(2010.5.27)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】