(57)【要約】【課題】同期動作をする装置の信頼性を効率的に確保すること。【解決手段】ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０は、自装置と接続されるＣＰＵが処理した結果を示すパケットデータの誤り検出に用いられる誤り検出情報を取得するパケット取得部３２０−１と、前記パケットデータの誤り検出情報を取得したとき、前記ＣＰＵと多重化された装置であって前記ＣＰＵと同時に同一の処理を行う同期動作をする装置があるか否かを判定するパケット収集部３３０と、判定された結果、同期動作をする装置が少なくとも１以上あるとき、同期動作をするそれぞれの装置が同期動作をした結果を示すパケットデータの誤り検出情報をそれぞれ取得するパケット取得部３２０−２と、パケット取得部３２０−１およびパケット取得部３２０−２によって取得された誤り検出情報のすべての誤り検出情報が互いに一致するか否かを比較する比較部３４０と、を備える。【選択図】        図２
2010079702.tif 000002
【特許請求の範囲】
【請求項１】
自装置と接続される第１の装置が処理した結果を示すパケットデータの誤り検出に用いられる誤り検出情報を取得する第１の取得手段と、
前記第１の取得手段によって前記パケットデータの誤り検出情報を取得したとき、前記第１の装置と多重化された装置であって前記第１の装置と同時に同一の処理を行う同期動作をする装置があるか否かを判定する判定手段と、
前記判定手段によって判定された結果、前記同期動作をする装置が少なくとも１以上あるとき、前記同期動作をするそれぞれの装置が同期動作をした結果を示すパケットデータの誤り検出情報をそれぞれ取得する第２の取得手段と、
前記第１の取得手段によって取得された誤り検出情報および前記第２の取得手段によって取得された誤り検出情報のすべての誤り検出情報が互いに一致するか否かを比較する比較手段と、
を備えることを特徴とする伝送装置。
【請求項２】
前記比較手段によって比較された結果、誤り検出情報が一致するとき、一致する誤り検出情報のパケットデータごとにパケットデータの出力先の装置が自装置に接続されているか否かを判定し、出力先の装置が接続されていないパケットデータがあるとき、当該パケットデータを破棄する装置接続判定手段をさらに備えることを特徴とする請求項１に記載の伝送装置。
【請求項３】
前記比較手段によって３つ以上の誤り検出情報が比較された結果、一致する誤り検出情報があるとき、一致する誤り検出情報の数を比較して多数決で決定された誤り検出情報のパケットデータを選択する選択手段をさらに備えることを特徴とする請求項１に記載の伝送装置。
【請求項４】
前記判定手段によって判定された結果前記同期動作をする装置がないとき、前記第１の取得手段によって取得されたパケットデータ、または、前記選択手段によって選択されたパケットデータをパケットデータの出力先の装置と同期動作をする装置の数だけ複製する複製手段をさらに備えることを特徴とする請求項３に記載の伝送装置。
【請求項５】
自装置と接続される第１の装置が処理した結果を示すパケットデータの誤り検出に用いられる誤り検出情報を取得する第１の取得工程と、
前記第１の取得工程によって前記パケットデータの誤り検出情報を取得したとき、前記第１の装置と多重化された装置であって前記第１の装置と同時に同一の処理を行う同期動作をする装置があるか否かを判定する判定工程と、
前記判定工程によって判定された結果、前記同期動作をする装置が少なくとも１以上あるとき、前記同期動作をするそれぞれの装置が同期動作をした結果を示すパケットデータの誤り検出情報をそれぞれ取得する第２の取得工程と、
前記第１の取得工程によって取得された誤り検出情報および前記第２の取得工程によって取得された誤り検出情報のすべての誤り検出情報が互いに一致するか否かを比較する比較工程と、
を含むことを特徴とする伝送方法。
【請求項６】
自装置と接続される第１の装置が処理した結果を示すパケットデータの誤り検出に用いられる誤り検出情報を取得する第１の取得手順と、
前記第１の取得手順によって前記パケットデータの誤り検出情報を取得したとき、前記第１の装置と多重化された装置であって前記第１の装置と同時に同一の処理を行う同期動作をする装置があるか否かを判定する判定手順と、
前記判定手順によって判定された結果、前記同期動作をする装置が少なくとも１以上あるとき、前記同期動作をするそれぞれの装置が同期動作をした結果を示すパケットデータの誤り検出情報をそれぞれ取得する第２の取得手順と、
前記第１の取得手順によって取得された誤り検出情報および前記第２の取得手順によって取得された誤り検出情報のすべての誤り検出情報が互いに一致するか否かを比較する比較手順と、
をコンピュータに実行させることを特徴とする伝送プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同期動作をする装置の多重化を行う伝送装置、伝送方法および伝送プログラムに関する。
【背景技術】
【０００２】
現在、計算機システムは様々な分野に広く用いられており、それらの分野の中には高い信頼性が要求される分野も含まれている。これらの分野で用いられる計算機システムの高信頼性を実現するために、すべての装置を多重化して多重化された装置同士が同時に同一の処理を行い（以降、同期動作という。）、処理結果を照合する多重化システムがある。
【０００３】
このような多重化システムの例として、１つのブリッジに接続された複数のＣＰＵ（Central Processing Unit）を多重化して、ブリッジがそれぞれのＣＰＵから出力された情報に含まれるアドレスおよびデータを比較して情報の一致を確認する技術が開示されている。
【０００４】
また、入出力レベルでの装置の多重化を行う多重化システムがある。具体的な例を、図９を用いて説明する。図９に示すように、多重化システムを構成する計算機システム１および計算機システム２は、それぞれＣＰＵとメモリと入出力装置であるＩ／Ｏブリッジ、Ｉ／Ｏアダプタおよび磁気ディスク装置とから構成され、各装置を２重化している。そして、計算機システム１および計算機システム２は、Ｉ／Ｏブリッジと複数のＩ／Ｏアダプタとの接続をバス形式としている。そして、計算機システム１内のＩ／ＯブリッジとＩ／Ｏアダプタとの間を流れるトラフィックが、計算機システム２内のＩ／ＯブリッジとＩ／Ｏアダプタとの間を流れるトラフィックと一致するか否かが比較され、トラフィックの一致が確認される。
【０００５】
ところで、計算機システムでは高速性を実現するために、入出力装置との接続をＰＣＩ−ＳＩＧ（PCI Special Interest Group）によって規格化されたＰＣＩ  Ｅｘｐｒｅｓｓが用いられている。ここで、ＰＣＩ  Ｅｘｐｒｅｓｓを用いた計算機システムの例を図１０に示す。図１０に示すように、ＰＣＩ  Ｅｘｐｒｅｓｓを用いた計算機システムでは、Ｉ／Ｏブリッジは、複数のＩ／Ｏアダプタとの接続をＰＣＩ  Ｅｘｐｒｅｓｓスイッチを経由して行う。これにより、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチを介して接続されたＩ／Ｏブリッジと複数のＩ／Ｏアダプタとは、Ｉ／Ｏアダプタごとに通信回線が１対１となるため、計算機システムの通信の高速性が実現される。
【０００６】
このようなＰＣＩ  Ｅｘｐｒｅｓｓスイッチを用いた計算機システムにおいてＣＰＵを多重化した多重化システムがある。具体的な例を、図１１を用いて説明する。図１１に示すように、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチを用いた多重化システムは、ＣＰＵとメモリと入出力装置であるＩ／Ｏブリッジ、Ｉ／Ｏアダプタおよび磁気ディスク装置とを２重化して、入出力装置をＰＣＩ  Ｅｘｐｒｅｓｓスイッチによって接続している。したがって、一方のＣＰＵ配下のＩ／ＯブリッジおよびＩ／Ｏアダプタの間を流れるトラフィックと他方のＣＰＵ配下のＩ／ＯブリッジおよびＩ／Ｏアダプタの間を流れるトラフィックとが一致するか否かを、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチが比較し、トラフィックの一致を確認することも可能である。
【０００７】
【特許文献１】特表２００２−５１９７３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来の多重化システムでは、同期動作をする装置の信頼性を効率的に確保することができないという問題がある。すなわち、多重化システムは、多重化された装置の処理結果の一致を確認するために、処理結果がビット単位で一致することを確認する必要があり、処理結果を比較する時間がかかる。このとき、多重化システムは、多重化された装置の処理結果の全ビットが一致することを確認するために、多くの記憶域を使用することとなるため、多くの記憶域を準備しなくてはならない。また、多重化された装置の処理結果の全ビットが一致することを確認するために、例えば多重化された装置の処理結果の一致を検査する検査回路の構成が複雑となる場合もある。
【０００９】
また、従来の多重化システムでは、同期動作をする装置の信頼性を確保するために多重化システムを構成する複数の計算機システムの装置構成が完全に同一である必要があり、多重化システムを構築するために準備する装置の数が通常の計算機システムの少なくとも２倍となる。その結果、多重化システムを構築するためにコストがかかる。
【００１０】
本発明は、上記に鑑みてなされたものであって、同期動作をする装置の信頼性を効率的に確保することができる伝送装置、伝送方法および伝送プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した問題を解決し、目的を達成するために、伝送装置は、自装置と接続される第１の装置が処理した結果を示すパケットデータの誤り検出に用いられる誤り検出情報を取得する第１の取得手段と、前記第１の取得手段によって前記パケットデータの誤り検出情報を取得したとき、前記第１の装置と多重化された装置であって前記第１の装置と同時に同一の処理を行う同期動作をする装置があるか否かを判定する判定手段と、前記判定手段によって判定された結果、前記同期動作をする装置が少なくとも１以上あるとき、前記同期動作をするそれぞれの装置が同期動作をした結果を示すパケットデータの誤り検出情報をそれぞれ取得する第２の取得手段と、前記第１の取得手段によって取得された誤り検出情報および前記第２の取得手段によって取得された誤り検出情報のすべての誤り検出情報が互いに一致するか否かを比較する比較手段と、を備えた構成を採る。
【００１２】
かかる構成によれば、伝送装置は、同期動作をする装置があるとき同期動作の結果を表すそれぞれのパケットデータの誤り検出情報を用いてパケットデータの比較を行うため、パケットデータそのものよりも少ないデータ量の比較で済むこととなり、比較時間を短縮することができる。そして、伝送装置は、比較対象のデータ量がパケットデータそのものより少ないため、検査回路を簡易なものにすることができるとともに、比較処理を行う際に使用する記憶域を少なくすることができる。その結果、伝送装置は、同期動作をする装置の信頼性を効率的に確保することができる。また、伝送装置は、同期動作をする装置がないとき同期動作の結果を表すパケットデータがないため比較処理を行わないこととなり、同期動作をする多重化されるシステムの装置構成が完全に一致していない場合であっても、その後の同期動作を継続して行うことができ、装置の信頼性を効率的に確保することができる。
【発明の効果】
【００１３】
以上により、伝送装置、伝送方法および伝送プログラムは、同期動作をする装置の信頼性を効率的に確保することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１４】
以下に、本発明にかかる伝送装置、伝送方法および伝送プログラムの実施例を図面に基づいて詳細に説明する。なお、本実施例にかかる伝送装置は、ＰＣＩ  Ｅｘｐｒｅｓｓインタフェースを持ったＰＣＩ  Ｅｘｐｒｅｓｓスイッチであるものとするが、本実施例によりこの発明が限定されるものではない。
【実施例１】
【００１５】
図１は、実施例１に係るＰＣＩ  Ｅｘｐｒｅｓｓスイッチを含む同期動作システムの全体構成の一例を示す図である。図１に示すように、同期動作システムは、システム１とシステム２とから構成される２重化システムである。システム１は、ＣＰＵ１０と、入出力装置４０−１、４０−２と、を備え、システム２は、ＣＰＵ２０と、入出力装置５０−１、５０−２と、を備え、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０が、システム１とシステム２とを接続している。ここで、同期動作システムは、デュアルシステムを適用し、システム１とシステム２とは同期動作を行うものとする。すなわち、ＣＰＵ１０とＣＰＵ２０、入出力装置４０−１と入出力装置５０−１および入出力装置４０−２と入出力装置５０−２は、それぞれ２重化され、それぞれの装置同士で同時に同一処理を行う同期動作を行っている。なお、図１の例ではシステム１とシステム２とは、システム構成が完全に同一となっているが、これに限定されず、例えばどちらか一方のシステムのＣＰＵまたは一部の入出力装置がない場合のようにシステム構成が同一となっていなくても良い。また、以降の説明は、システム１に関する各装置を中心に説明をするが、システム２もシステム１に関する装置と同様であるため、その説明は、省略する。
【００１６】
ＣＰＵ１０は、入出力命令のあるプログラムの処理を実行する中央処理装置である。例えば、ＣＰＵ１０は、入出力装置４０−１に対して入出力処理を依頼するために、入出力装置４０−１を宛先にした入出力処理の依頼を示すパケットデータをＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０に対して出力する。このとき、システム２のＣＰＵ２０があるときは、ＣＰＵ２０は、ＣＰＵ１０と同期動作を行うため、ＣＰＵ１０と同一のプログラムを同時に実行して、システム１の入出力装置４０−１と同期動作を行う入出力装置５０−１を宛先にしたパケットデータをＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０に対して出力する。また、ＣＰＵ１０は、入出力装置４０−１によって処理された処理結果を示すパケットデータをＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０から取得する。このとき、システム２のＣＰＵ２０があるときは、ＣＰＵ２０は、システム１の入出力装置４０−１と同期動作を行う入出力装置５０−１によって処理された処理結果を示すパケットデータをＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０から取得する。なお、図示していないが、ＣＰＵ１０、２０は、メモリとＩ／Ｏブリッジと接続されている。
【００１７】
ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０は、ＣＰＵ１０から入出力装置４０−１に対して出力されたパケットデータと、ＣＰＵ２０から入出力装置５０−１に対して出力されたパケットデータとを取得すると、それぞれ取得したパケットデータに付加されたＬＣＲＣ（Link Cyclic Redundancy Check）を比較する。なお、ＣＰＵ２０がないときは、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０は、ＣＰＵ１０から出力されたパケットデータしかないため、ＬＣＲＣの比較を行わない。
【００１８】
ここで、ＬＣＲＣとは、ＰＣＩ  Ｅｘｐｒｅｓｓインタフェースで規格化されたＯＳＩ参照モデルのデータリンク層のための誤り検出／訂正コードである。ＰＣＩ  Ｅｘｐｒｅｓｓインタフェースでは高速なデータ通信が行われるため、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチを介した装置間でパケットデータがやりとりされるとき、パケットデータを転送中に誤りが発生したか否かが確認される必要がある。このため、ＬＣＲＣは、パケットデータを転送中に誤りが発生したか否かを検査するためにパケットデータに付加される。
【００１９】
ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０は、このようなＬＣＲＣを用いてＣＰＵ１０から取得されたＬＣＲＣとＣＰＵ２０から取得されたＬＣＲＣとを比較をした結果、ＣＰＵ１０およびＣＰＵ２０から取得されたＬＣＲＣが一致していれば、一方のパケットデータを選択する。ここで、ＣＰＵ２０がないときは、ＣＰＵ１０から取得されるＬＣＲＣしかないため、ＣＰＵ１０から出力されたパケットデータが選択されることになる。そして、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０は、選択されたパケットデータの宛先を示す入出力装置４０−１が多重化されている数だけパケットデータを複製する。この多重化されている数は、図１の例では、システム１とシステム２が２重化されているため２である。その後、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０は、パケットデータの宛先を示す装置と多重化された装置が接続するポートを取得するために、あらかじめ定められた多重化された装置がそれぞれ接続するポートの情報から、複製されたパケットデータの宛先から割り出されたポートに対応するポートを読み出す。そして、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０は、複製されて得られたパケットデータを読み出されたポートに出力する。なお、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０は、ＣＰＵ１０から出力されたパケットデータを取得するものとして説明したが、入出力装置４０−１、４０−２から出力されたパケットデータを取得するものとしても処理は同様であるため、説明は省略する。
【００２０】
入出力装置４０−１、４０−２は、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０から出力されたパケットデータを取得すると、パケットデータの内容に応じて処理を行う。例えば、入出力装置４０−１、４０−２は、読み込み要求を取得したときは、入出力装置からデータを読み込み、書き込み要求を取得したときは、入出力装置にパケットデータに含まれたデータを書き込む。そして、入出力装置４０−１、４０−２は、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０に対して処理結果を示すパケットデータを出力する。なお、入出力装置４０−１、４０−２とは、例えば、磁気ディスク装置、ネットワーク装置であるが、ＰＣＩ  Ｅｘｐｒｅｓｓインタフェースが接続されるものであれば良く、ＰＣＩ  Ｅｘｐｒｅｓｓインタフェースに変換可能なＩ／Ｏアダプタであっても良い。
【００２１】
なお、ＬＣＲＣは、通常、ＰＣＩ  Ｅｘｐｒｅｓｓリンク（例えばＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０と入出力装置４０−１との間の回線）を転送するパケットデータの保護のために用いられており、ＰＣＩ  Ｅｘｐｒｅｓｓリンクの両端の装置によって生成される。すなわち、ＬＣＲＣは、パケットデータの出力元である例えばＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０によって、パケットデータと所定のＬＣＲＣの生成多項式とに基づいて生成され、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０は、生成されたＬＣＲＣをパケットデータに付加して出力先である例えば入出力装置４０−１に出力する。そして、ＬＣＲＣが付加されたパケットデータを取得した入出力装置４０−１は、取得したパケットデータと出力元と同一の生成多項式とに基づいてＬＣＲＣを生成し、取得されたパケットデータに付加されたＬＣＲＣと生成されたＬＣＲＣとを比較する。比較の結果、取得されたパケットデータに付加されたＬＣＲＣと生成されたＬＣＲＣとが一致していれば、入出力装置４０−１とＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０との間を転送されたパケットデータに誤りは発生しなかったことが確認される。一方、取得されたパケットデータに付加されたＬＣＲＣと生成されたＬＣＲＣとが一致していなければ、パケットデータに誤りが発生したことが確認されるのである。
【００２２】
図２は、実施例１に係るＰＣＩ  Ｅｘｐｒｅｓｓスイッチの構成を示す機能ブロック図である。図２に示すように、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０は、ポート３１０−１、２と、パケット取得部３２０−１、２と、パケット収集部３３０と、比較部３４０と、パケット選択部３５０と、経路選択部３６０と、複製部３７０と、ポート３８０−１〜４と、を備える。なお、図２の例ではＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０は、ＣＰＵから取得するパケットデータを入出力装置に出力するが、入出力装置から取得されるパケットデータをＣＰＵに出力しても良い。また、パケット取得部３２０−１〜２は、それぞれ特許請求の範囲に記載の「第１の取得手段」、「第２の取得手段」に対応し、パケット収集部３３０は、特許請求の範囲に記載の「判定手段」を含むものとする。
【００２３】
ポート３１０−１、２は、それぞれＣＰＵ１０、２０とＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０が通信を行うポートである。
【００２４】
パケット取得部３２０−１は、ポート３１０−１を介してＣＰＵ１０からパケットデータを取得するのを待ち、パケットデータを取得すると、取得したパケットデータをパケット収集部３３０に対して出力する。
【００２５】
パケット取得部３２０−２は、ポート３１０−２を介してＣＰＵ２０からパケットデータを取得するのを待ち、パケットデータを取得すると、取得したパケットデータをパケット収集部３３０に対して出力する。なお、ＣＰＵ１０とＣＰＵ２０とは同期動作をしているため、パケット取得部３２０−１およびパケット取得部３２０−２は、同期動作の処理結果を示すパケットデータを取得する。
【００２６】
パケット収集部３３０は、ＣＰＵ１０とＣＰＵ２０とが多重化されているか否かを示す情報を参照して、ＣＰＵ１０とＣＰＵ２０とが多重化されている場合は、パケット取得部３２０−１およびパケット取得部３２０−２からパケットデータを収集する。そして、パケット収集部３３０は、パケット取得部３２０−１およびパケット取得部３２０−２から出力されたパケットデータを収集すると、比較部３４０に対してそれぞれのパケットデータを出力する。一方、パケット収集部３３０は、ＣＰＵ１０とＣＰＵ２０とが多重化されているか否かを示す情報を参照して、ＣＰＵ１０とＣＰＵ２０とが多重化されていない場合は、パケット取得部３２０−１、３２０−２から出力されたパケットデータのうちどちらか一方のパケットデータを取得すると、経路選択部３６０に対してパケットデータを出力する。なお、ＣＰＵ１０とＣＰＵ２０とが多重化されているか否かを示す情報は、パケット収集部３３０にあらかじめ保持される。
【００２７】
比較部３４０は、パケット収集部３３０から出力されたそれぞれのパケットデータを取得すると、それぞれのパケットデータに付加されたＬＣＲＣを抽出し、抽出されたそれぞれのＬＣＲＣを比較する。比較部３４０は、抽出されたそれぞれのＬＣＲＣを比較した結果、一致していれば、一致したＬＣＲＣのパケットデータをパケット選択部３５０に対して出力する。一方、比較部３４０は、抽出されたそれぞれのＬＣＲＣを比較した結果、一致していなければ、同期動作にエラーがあったことを出力する。なお、ＬＣＲＣが付加されたパケットデータのフォーマットについては後に詳述する。
【００２８】
パケット選択部３５０は、比較部３４０から出力された複数のパケットデータのいずれか１つのパケットデータを選択する。パケット選択部３５０は、それぞれのパケットデータのうち１つのパケットデータを選択して、選択されなかったパケットデータを破棄する。そして、パケット選択部３５０は、選択されたパケットデータを経路選択部３６０に対して出力する。
【００２９】
経路選択部３６０は、宛先に対応する入出力装置にパケットデータを出力するために、パケット選択部３５０から出力されたパケットデータに含まれた宛先に基づいて経路を選択する。例えば、経路選択部３６０は、パケット選択部３５０から出力されたパケットデータに含まれた宛先に基づいて、パケットデータを出力するポートの識別番号を選択する。そして、経路選択部３６０は、パケットデータおよび選択されたポートの識別番号を複製部３７０に対して出力する。
【００３０】
複製部３７０は、経路選択部３６０から出力されたパケットデータおよびポートの識別番号を取得すると、パケットデータの宛先である入出力装置が多重化されている数だけパケットデータを複製する。例えば、複製部３７０は、あらかじめ複製部３７０に保持されたポート番号対応表からポートの識別番号に合致する組を読み出す。ここで、ポート番号対応表とは、多重化される入出力装置同士を組にしてそれらの入出力装置が接続されるポートの識別番号を保持した表である。そして、複製部３７０は、読み出された組に含まれたポートの識別番号の数だけ、パケットデータを複製する。さらに、複製部３７０は、複製されて得られたパケットデータを、読み出された組に含まれたポートの識別番号に対応するポート３８０−１〜４に出力する。
【００３１】
ポート３８０−１〜４は、それぞれ接続される入出力装置（４０−１、２、５０−１、２）とＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０が通信を行うポートであり、それぞれ擬似ポート判定部３８１−１〜４を備える。
【００３２】
擬似ポート判定部３８１−１〜４は、複製部３７０から出力されたパケットデータを取得すると、自己のポート３８０−１〜４が擬似ポートであるか否かを判定する。ここで、擬似ポートとは、多重化されるべき装置が接続されないポートのことである。擬似ポート判定部３８１―１〜４は、自己のポートが擬似ポートでないと判定されたとき、ポートに接続された入出力装置に対してパケットデータを出力する。一方、擬似ポート判定部３８１―１〜４は、自己のポートが擬似ポートであると判定されたとき、パケットデータを破棄する。なお、自己のポートが擬似ポートであるか否かを示す情報は、それぞれの擬似ポート判定部３８１−１〜４にあらかじめ保持される。
【００３３】
ここで、擬似ポートを用いた同期動作の例を、図３を参照して説明する。図３に示すように、システム１とシステム２とは２重化システムであり、ＣＰＵ１０とＣＰＵ２０および入出力装置４０−１と入出力装置５０−１は、対になった装置同士で多重化され同期動作を行っている。ところが、システム１の入出力装置４０−２と多重化されるべき入出力装置がシステム２になくＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０に接続されていないため、多重化されるべき入出力装置のポートは、擬似ポートである。なお、入出力装置４０−２は、図３の例ではネットワークに接続されたネットワーク装置であるものとする。
【００３４】
ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０は、ＣＰＵ１０およびＣＰＵ２０から取得されたそれぞれのパケットデータに付加されたＬＣＲＣを比較して、比較した結果が一致しているとき、パケットデータを複製する。そして、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０は、複製されたパケットデータを入出力装置４０−２に接続されたポートに出力するとともに、入出力装置４０−２と多重化されるべき入出力装置の擬似ポートに出力する。さらに、擬似ポートは、出力されたパケットデータを破棄する。これにより、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０は、多重化された処理結果を示すパケットデータのいずれか１つのパケットデータだけ入出力装置４０−２を介してネットワークに送信することになり、ネットワーク装置を用いた多重化システムを容易に実現することができる。
【００３５】
また、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０は、ネットワークから入出力装置４０−２を介してパケットデータを取得して、ＣＰＵ１０とＣＰＵ２０とが多重化されているため２装置分パケットデータを複製した後、複製され得られたパケットデータをＣＰＵ１０とＣＰＵ２０とに出力する。これにより、多重化システム外部のネットワークが、多重化されたそれぞれのネットワーク装置にパケットデータを配布する等の機能を導入する必要がないため、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０は、ネットワーク装置を含んだ多重化システムを構築するための余計なコストを抑制することができる。
【００３６】
このようにして、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０は、擬似ポートを用いると、システム１とシステム２のシステム構成が完全に同一でなくても、同期動作を行うことができる。
【００３７】
次に、ＬＣＲＣが付加されたパケットデータのフォーマットを、図４を参照して説明する。図４は、ＰＣＩ  Ｅｘｐｒｅｓｓインタフェースで用いられるパケットデータの一例を表したフォーマットである。図４に示すように、ＰＣＩ  Ｅｘｐｒｅｓｓパケットフォーマットは、パケットデータのシーケンス番号７１と、パケットデータの種類を含む共通ヘッダ７２と、パケットデータの種類によってフォーマットが異なるヘッダ７３と、本来伝達したいデータを設定するデータペイロード７４と、から構成され、末尾にＬＣＲＣ７５が付加されている。
【００３８】
ヘッダ７３は、どの装置からリクエストが出力されたかを示すリクエスト番号７６と、どの装置にリクエストを出力するのかを示すアドレス７７を含んでいる。例えば、ＣＰＵ１０が入出力装置４０−１に入出力処理の依頼をするとき、ＣＰＵ１０はパケットデータのリクエスト番号７６に出力元のＣＰＵ１０の識別番号、アドレス７７に入出力装置４０−１を示す宛先を設定する。
【００３９】
ＬＣＲＣ７５は、パケットデータから生成される。ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０は、同期動作中のそれぞれの装置から出力されるパケットデータの一致比較を、ＬＣＲＣ７５を用いて行う。したがって、同期動作中のそれぞれの装置から出力されるパケットデータは、データペイロード７４に設定されるデータ以外も一致していなければならない。そのため、同期動作を行う多重化されるそれぞれの装置は、同一のバス番号および装置番号となるように設定される。また、同期動作中の装置は、同期動作を行う開始時にシーケンス番号７１をリセットしてから動作を開始する。これにより、それぞれのパケットデータ内のシーケンス番号７１、リクエスト番号７６およびアドレス７７が一致することになり、同期動作が正常であれば、ＬＣＲＣ７５は一致することになる。
【００４０】
このようにして、同期動作の結果を示すパケットデータのＬＣＲＣ７５を一致させることによって、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０は、パケットデータの比較をパケットデータそのものでなく、パケットデータから生成されるＬＣＲＣ７５を用いて比較することができるため、比較時間を短縮することができるとともに、比較処理の作業量を少なくすることができる。その結果、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０は、パケットデータの比較を高速に行うことができる。また、ＬＣＲＣ７５は、ＰＣＩ  Ｅｘｐｒｅｓｓインタフェースの規格であるため、ＰＣＩ  Ｅｘｐｒｅｓｓインタフェースを用いたすべてのパケットデータにＬＣＲＣ７５が付加される。そのため、新たに比較対象となるＬＣＲＣ７５は開発される必要がなく、ＬＣＲＣ７５を比較する比較回路だけが開発されれば良いため、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０は、パケットデータの比較を低コストで行うことができる。
【００４１】
次に、実施例１に係る同期動作を、図５を参照して説明する。図５は、実施例１に係る同期動作を示すフローチャートである。なお、以降の説明は、ＣＰＵ１０から入出力装置４０−１に対して入出力処理の依頼を示すパケットデータを出力するものとする。そして、ＣＰＵ１０と入出力装置４０−１とを備えるシステム１およびＣＰＵ２０と入出力装置５０−１とを備えるシステム２は、多重化システムであるものとする。
【００４２】
まず、パケット取得部３２０−１は、ＣＰＵ１０から出力されるパケットデータが届いたか否かを判定する（Ｓ１１０）。パケットデータがＣＰＵ１０から届いていない場合には（Ｓ１１０Ｎｏ）、パケット取得部３２０−１は、パケットデータがＣＰＵ１０から届くのを待つ。一方、パケットデータがＣＰＵ１０から届いた場合には（Ｓ１１０Ｙｅｓ）、パケット取得部３２０−１は、パケット収集部３３０にパケットデータを出力する。
【００４３】
また、パケット取得部３２０−１と同様に、パケット取得部３２０−２は、ＣＰＵ１０と同期動作中のＣＰＵ２０から出力されるパケットデータが届いたか否かを判定する（Ｓ１１０）。パケットデータがＣＰＵ２０から届いていない場合には（Ｓ１１０Ｎｏ）、パケット取得部３２０−２は、パケットデータがＣＰＵ２０から届くのを待つ。一方、パケットデータがＣＰＵ２０から届いた場合には（Ｓ１１０Ｙｅｓ）、パケット取得部３２０−２は、パケット収集部３３０にパケットデータを出力する。
【００４４】
続いて、パケット収集部３３０は、例えばパケット取得部３２０−１からパケットデータを取得すると、パケット取得部３２０−１が取得したパケットデータを出力したＣＰＵ１０と多重化されたＣＰＵがあるか否かを判定する（Ｓ１２０）。ＣＰＵ１０と多重化されたＣＰＵが存在しない場合には（Ｓ１２０Ｎｏ）、パケット収集部３３０は、パケットデータを経路選択部３６０に出力する。
【００４５】
一方、ＣＰＵ１０と多重化されたＣＰＵが存在する場合には（Ｓ１２０Ｙｅｓ）、パケット収集部３３０は、同期動作中のＣＰＵ２０からパケットデータが届いたか否かを判定する（Ｓ１３０）。同期動作中のＣＰＵからパケットデータが届いていない場合には（Ｓ１３０Ｎｏ）、パケット収集部３３０は、パケットデータが同期動作中のＣＰＵから届くのを待つ。一方、同期動作中のＣＰＵからパケットデータが届いた場合には（Ｓ１３０Ｙｅｓ）、同期動作中の２つのＣＰＵから届いた複数のパケットデータを比較部３４０に出力する。
【００４６】
２つのパケットデータを取得した比較部３４０は、それぞれのパケットデータに付加されたＬＣＲＣを比較する（Ｓ１４０）。
【００４７】
そして、比較部３４０は、２つのパケットデータに付加されたＬＣＲＣが一致したか否かを判定する（Ｓ１５０）。ＬＣＲＣが一致しない場合には（Ｓ１５０Ｎｏ）、比較部３４０は、同期動作のエラーがあったことを出力して（Ｓ１６０）、同期動作を終了する。
【００４８】
一方、ＬＣＲＣが一致する場合には（Ｓ１５０Ｙｅｓ）、比較部３４０は、２つのパケットデータをパケット選択部３５０に出力する。
【００４９】
すると、パケット選択部３５０は、２つのパケットデータのいずれか一方のパケットデータを選択し（Ｓ１７０）、他方のパケットデータを破棄する。そして、パケット選択部３５０は、選択されたパケットデータを経路選択部３６０に出力する。
【００５０】
パケット収集部３３０またはパケット選択部３５０からパケットデータを取得した経路選択部３６０は、例えばパケットデータに含まれた宛先からパケットデータを出力するポートの識別番号を選択する（Ｓ１８０）。そして、経路選択部３６０は、パケットデータと選択されたポートの識別番号とを複製部３７０に出力する。
【００５１】
パケットデータとポートの識別番号とを取得した複製部３７０は、パケットデータの宛先を示す入出力装置が多重化されている数だけパケットデータを複製する（Ｓ１９０）。例えば、複製部３７０は、ポート番号対応表からポートの識別番号に合致する組であって多重化されている入出力装置のポートの識別番号が保持された組を読み出す。そして、複製部３７０は、読み出された組に含まれたポートの数だけ、パケットデータを複製する。さらに、複製部３７０は、複製されて得られたパケットデータを読み出された組に含まれたポート識別番号に対応する擬似ポート判定部３８１−１〜４に出力する。
【００５２】
引き続き、複製部３７０から出力されたパケットデータを取得した擬似ポート判定部３８１−１〜４は、自己のポートが擬似ポートであるか否かを判定する（Ｓ２００）。自己のポートが擬似ポートである場合には（Ｓ２００Ｙｅｓ）、擬似ポート判定部３８１−１〜４は、パケットデータを破棄する（Ｓ２１０）。一方、自己のポートが擬似ポートでない場合には（Ｓ２００Ｎｏ）、擬似ポート判定部３８１−１〜４は、ポートに接続された入出力装置、例えば入出力装置４０−１および入出力装置５０−１にパケットデータを送信する（Ｓ２２０）。
【００５３】
以上のように本実施例１によれば、自装置と接続されるＣＰＵ１０が処理した結果を示すパケットデータの誤り検出に用いられるＬＣＲＣを取得する。そして、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０は、ＣＰＵ１０の処理結果を示すパケットデータのＬＣＲＣを取得したとき、ＣＰＵ１０と多重化された装置であってＣＰＵ１０と同時に同一の処理を行う同期動作をする装置があるか否かを判定する。同期処理をする装置があるとき、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０は、同期動作をするＣＰＵ２０が同期動作をした結果を示すパケットデータのＬＣＲＣを取得する。そして、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０は、取得されたＣＰＵ１０およびＣＰＵ２０のパケットデータのＬＣＲＣを比較する。
【００５４】
このようにして、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０は、同期動作をする装置があるとき同期動作の結果を表すそれぞれのパケットデータの誤り検出情報を用いてパケットデータの比較を行うため、パケットデータそのものよりも少ないデータ量の比較で済むこととなり、比較時間を短縮することができる。そして、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０は、比較対象のデータ量がパケットデータそのものより少ないため、検査回路を簡易なものにすることができるとともに、比較処理を行う際に使用する記憶域を少なくすることができる。その結果、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０は、同期動作をする装置の信頼性を効率的に確保することができる。また、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０は、同期動作をする装置がないとき同期動作の結果を表すパケットデータがないため比較処理を行わないこととなり、同期動作をする多重化されるシステムの装置構成が完全に一致していない場合であっても、その後の同期動作を継続して行うことができ、装置の信頼性をさらに効率的に確保することができる。その結果、同期動作を行う多重化システムの構築にかかるコストを抑制することができる。
【実施例２】
【００５５】
ところで、上記の実施例１では、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０を用いた同期動作システムは２システムから構成される多重化システムである場合を説明した。本発明はこれに限定されるものではなく、３システム以上から構成される多重化システムであっても良い。
【００５６】
そこで、実施例２では、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０を用いた同期動作システムが３システムから構成される多重化システムである場合を説明する。まず、実施例２に係る同期動作システムの全体構成について図６を参照しながら説明する。図６は、実施例２に係る同期動作システムの全体構成の一例を示す図である。図６に示すように、実施例２に係る同期動作システムでは、実施例１に係る同期動作システム（図１）にシステム３が追加されている。なお、図６において、図１と同じ部分には同じ符号を付し、詳しい説明を省略する。
【００５７】
システム３は、ＣＰＵ６０と、入出力装置６０−１、６０−２と、を備え、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ７０が、システム１とシステム２とシステム３とを接続している。そして、同期動作システムは、ＣＰＵ１０とＣＰＵ２０とＣＰＵ６０、入出力装置４０−１と入出力装置５０−１と入出力装置６０−１および入出力装置４０−２と入出力装置５０−２と入出力装置６０−２は、それぞれ３重化され、それぞれの装置同士で同時に同一処理を行う同期動作を行っている。なお、図６の例ではシステム１、システム２およびシステム３とは、システム構成が完全に同一となっているが、これに限定されず、例えばいずれかのシステムのＣＰＵまたは一部の入出力装置がない場合のようにシステム構成が同一となっていなくても良い。また、ＣＰＵ６０および入出力装置６０−１、６０−２の機能は、ＣＰＵ１０および入出力装置４０−１、４０−２と同様であるため、その説明を省略する。
【００５８】
ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ７０は、ＣＰＵ１０から入出力装置４０−１に対して出力されたパケットデータと、ＣＰＵ２０から入出力装置５０−１に対して出力されたパケットデータと、ＣＰＵ６０から入出力装置６０−１に対して出力されたパケットデータと、を取得すると、それぞれ取得したパケットデータに付加されたＬＣＲＣを比較する。なお、例えばＣＰＵ２０およびＣＰＵ６０がないときは、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ７０は、ＣＰＵ１０から出力されたパケットデータしかないため、ＬＣＲＣの比較を行わない。
【００５９】
ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ７０は、ＬＣＲＣを用いた比較をした結果、ＣＰＵ１０、ＣＰＵ２０およびＣＰＵ６０から取得されたＬＣＲＣがすべて一致していれば、いずれか１つのパケットデータを選択する。一方、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ７０は、ＬＣＲＣを用いた比較をした結果、ＬＣＲＣがすべて一致していなければ、一致するＬＣＲＣの数を比較して多数決でＬＣＲＣを決定して、決定されたＬＣＲＣのパケットデータを選択する。ここで、例えばＣＰＵ２０およびＣＰＵ６０がないときは、ＣＰＵ１０から取得されるＬＣＲＣしかないため、ＣＰＵ１０から出力されたパケットデータが選択される。そして、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ７０は、選択されたパケットデータの宛先を示す入出力装置４０−１が多重化されている数だけ複製する。この多重化されている数は、図６の例では、３重化されているため３である。その後、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ７０は、パケットデータの宛先を示す装置と多重化された装置が接続するポートを取得するために、あらかじめ定められた多重化された装置がそれぞれ接続するポートの情報から、複製されたパケットデータの宛先から割り出されたポートに対応するポートを読み出す。そして、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ７０は、複製されて得られたパケットデータを読み出したポートに出力する。なお、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ７０は、ＣＰＵ１０から出力されたパケットデータを取得するものとして説明したが、入出力装置４０−１、４０−２から出力されたパケットデータを取得するものとしても処理は同様であるため、説明は省略する。
【００６０】
次に、実施例２に係るＰＣＩ  Ｅｘｐｒｅｓｓスイッチの構成について図７を参照しながら説明する。図７は、実施例２に係るＰＣＩ  Ｅｘｐｒｅｓｓスイッチの構成を示す機能ブロック図である。図７に示すように、実施例２に係るＰＣＩ  Ｅｘｐｒｅｓｓスイッチ７０では、実施例１に係るＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０（図２）にポート３１０−３とパケット取得部３２０−３とポート３８０−５、３８０−６が追加され、多数決選択部５１０が変更されている。なお、図７において、図２と同じ部分には同じ符号を付し、詳しい説明を省略する。また、なお、図７の例ではＰＣＩ  Ｅｘｐｒｅｓｓスイッチ７０は、ＣＰＵから取得するパケットデータを入出力装置に出力するが、入出力装置から取得されるパケットデータをＣＰＵに出力しても良い。
【００６１】
ポート３１０−３は、ＣＰＵ６０とＰＣＩ  Ｅｘｐｒｅｓｓｓスイッチ７０が通信を行うポートである。
【００６２】
パケット取得部３２０−３は、ポート３１０−３を介してＣＰＵ６０から出力されるパケットデータが取得されるのを待ち、パケットデータが取得されたとき、取得されたパケットデータをパケット収集部３３０に対して出力する。
【００６３】
パケット収集部３３０は、ＣＰＵ１０、ＣＰＵ２０またはＣＰＵ６０が多重化されているか否かを示す情報を参照して、いずれかのＣＰＵが多重化されている場合は、多重化されたＣＰＵに対応するパケット取得部３２０−１〜３からパケットデータを収集する。そして、パケット収集部３３０は、多重化されたＣＰＵに対応するパケット取得部３２０−１〜３からパケットデータを取得すると、比較部３４０に対してそれぞれのパケットデータを出力する。また、パケット収集部３３０は、ＣＰＵ１０、ＣＰＵ２０およびＣＰＵ６０が多重化されていない場合は、いずれか１つのパケット取得部３２０−１〜３から出力されたパケットデータを取得すると、経路選択部３６０に対してパケットデータを出力する。
【００６４】
比較部３４０は、パケット収集部３３０から出力されたそれぞれのパケットデータを取得すると、それぞれのパケットデータに付加されたＬＣＲＣを抽出し、抽出されたそれぞれのＬＣＲＣを比較する。比較部３４０は、抽出されたそれぞれのＬＣＲＣを比較した結果、すべてのＬＣＲＣが一致していれば、一致したＬＣＲＣのパケットデータをパケット選択部３５０に対して出力する。また、比較部３４０は、抽出されたそれぞれのＬＣＲＣを比較した結果、一致するＬＣＲＣがあれば、一致しているＬＣＲＣの数および一致しているＬＣＲＣのパケットデータを組としたパケット情報を多数決選択部５１０に対して出力する。さらに、比較部３４０は、抽出されたそれぞれのＬＣＲＣを比較した結果、一致するＬＣＲＣがなければ、同期動作にエラーがあったことを出力する。
【００６５】
多数決選択部５１０は、比較部３４０から出力されたパケット情報を取得して、一致しているＬＣＲＣの数を比較して多数決でＬＣＲＣを決定する。すなわち、多数決選択部５１０は、パケット情報に含まれる組のうち、一致しているＬＣＲＣの数が一番大きいＬＣＲＣの組を決定して、決定された組の複数のパケットデータをパケット選択部３５０に対して出力する。
【００６６】
パケット選択部３５０は、比較部３４０または多数決選択部５１０から出力された複数のパケットデータのいずれか１つのパケットデータを選択する。パケット選択部３５０は、複数のパケットデータのうち１つのパケットデータを選択して、選択されなかったパケットデータを破棄する。そして、パケット選択部３５０は、選択されたパケットデータを経路選択部３６０に対して出力する。
【００６７】
ポート３８０−５、６は、それぞれ接続される入出力装置（６０−１、２）とＰＣＩ  Ｅｘｐｒｅｓｓスイッチ７０が通信を行うポートであり、それぞれ擬似ポート判定部３８１−５、６を備える。なお、擬似ポート判定部３８１−５、６は、擬似ポート判定部３８１−１、２と同様の機能であるため、説明を省略する。
【００６８】
次に、実施例２に係る同期動作を、図８を参照して説明する。図８は、実施例２に係る同期動作を示すフローチャートである。なお、以降の説明は、ＣＰＵ１０から入出力装置４０−１に対して入出力処理の依頼を示すパケットデータを出力するものとする。そして、ＣＰＵ１０と入出力装置４０−１とを備えるシステム１、ＣＰＵ２０と入出力装置５０−１とを備えるシステム２およびＣＰＵ６０と入出力装置６０−１とを備えるシステム３は、多重化されているものとする。
【００６９】
まず、パケット取得部３２０−１は、ＣＰＵ１０から出力されるパケットデータが届いたか否かを判定する（Ｓ３１０）。パケットデータがＣＰＵ１０から届いていない場合には（Ｓ３１０Ｎｏ）、パケット取得部３２０−１は、パケットデータがＣＰＵ１０から届くのを待つ。一方、パケットデータがＣＰＵ１０から届いた場合には（Ｓ３１０Ｙｅｓ）、パケット取得部３２０−１は、パケット収集部３３０にパケットデータを出力する。
【００７０】
また、パケット取得部３２０−２は、ＣＰＵ２０から出力されるパケットデータが届いたか否かを判定している（Ｓ３１０）。パケットデータがＣＰＵ２０から届いていない場合には（Ｓ３１０Ｎｏ）、パケット取得部３２０−２は、パケットデータがＣＰＵ２０から届くのを待つ。一方、パケットデータがＣＰＵ２０から届いた場合には（Ｓ３１０Ｙｅｓ）、パケット取得部３２０−２は、パケット収集部３３０にパケットデータを出力する。
【００７１】
さらに、パケット取得部３２０−３は、ＣＰＵ６０から出力されるパケットデータが届いたか否かを判定している（Ｓ３１０）。パケットデータがＣＰＵ６０から届いていない場合には（Ｓ３１０Ｎｏ）、パケット取得部３２０−３は、パケットデータがＣＰＵ６０から届くのを待つ。一方、パケットデータがＣＰＵ６０から届いた場合には（Ｓ３１０Ｙｅｓ）、パケット取得部３２０−３は、パケット収集部３３０にパケットデータを出力する。
【００７２】
続いて、パケット収集部３３０は、例えばパケット取得部３２０−１からパケットデータを取得すると、パケット取得部３２０−１が取得したパケットデータを出力したＣＰＵ１０と多重化されたＣＰＵがあるか否かを判定する（Ｓ３２０）。ＣＰＵ１０と多重化されたＣＰＵが存在しない場合には（Ｓ３２０Ｎｏ）、パケット収集部３３０は、パケットデータを経路選択部３６０に出力する。
【００７３】
一方、ＣＰＵ１０と多重化されたＣＰＵが存在する場合には（Ｓ３２０Ｙｅｓ）、パケット収集部３３０は、同期動作中のＣＰＵからパケットデータが届いたか否かを判定する（Ｓ３３０）。同期動作中のＣＰＵからパケットデータが届いていない場合には（Ｓ３３０Ｎｏ）、パケット収集部３３０は、パケットデータが同期動作中のＣＰＵから届くのを待つ。一方、同期動作中のＣＰＵからパケットデータが届いた場合には（Ｓ３３０Ｙｅｓ）、同期動作中のＣＰＵから届いた複数のパケットデータを比較部３４０に出力する。
【００７４】
複数のパケットデータを取得した比較部３４０は、それぞれのパケットデータに付加されたＬＣＲＣを比較する（Ｓ３４０）。
【００７５】
このとき、比較部３４０は、複数のパケットデータに付加されたそれぞれのＬＣＲＣがすべて一致したか否かを判定する（Ｓ３５０）。ＬＣＲＣがすべて一致しない場合には（Ｓ３５０Ｎｏ）、比較部３４０は、一致するＬＣＲＣがあるか否かを判定する（Ｓ３７０）。
【００７６】
一致するＬＣＲＣがあると判定された場合には（Ｓ３７０Ｙｅｓ）、比較部３４０は、一致しているＬＣＲＣの数および一致しているＬＣＲＣのパケットデータを組としたパケット情報を多数決選択部５１０に出力する。
【００７７】
そして、パケット情報を取得した多数決選択部５１０は、パケット情報に含まれる組のうち、組に含まれる一致しているＬＣＲＣの数を比較して多数決でＬＣＲＣの組を決定する（Ｓ３８０）。その後、多数決選択部５１０は、決定されたＬＣＲＣの数に含まれる複数のパケットデータをパケット選択部３５０に出力する。
【００７８】
一方、一致するＬＣＲＣがないと判定された場合には（Ｓ３７０Ｎｏ）、比較部３４０は、同期動作のエラーが発生したことを出力して（Ｓ３９０）、同期動作を終了する。
【００７９】
また、全ＬＣＲＣが一致する場合（Ｓ３５０Ｙｅｓ）、比較部３４０は、一致したＬＣＲＣのパケットデータをパケット選択部３５０に出力する。
【００８０】
比較部３４０または多数決選択部５１０によって複数のパケットデータを取得したパケット選択部３５０は、複数のパケットデータのいずれか１つのパケットデータを選択し（Ｓ３６０）、その他のパケットデータを破棄する。そして、パケット選択部３５０は、選択されたパケットデータを経路選択部３６０に出力する。
【００８１】
パケット収集部３３０またはパケット選択部３５０からパケットデータを取得した経路選択部３６０は、例えばパケットデータに含まれた宛先からパケットデータを出力するポートの識別番号を選択する（Ｓ４００）。そして、経路選択部３６０は、パケットデータと選択されたポートの識別番号とを複製部３７０に出力する。
【００８２】
パケットデータとポートの識別番号とを取得した複製部３７０は、パケットデータの宛先を示す入出力装置が多重化されている数だけパケットデータを複製する（Ｓ４１０）。例えば、複製部３７０は、ポート番号対応表からポートの識別番号に合致する組であって多重化されている入出力装置のポートの識別番号が保持された組を読み出す。そして、複製部３７０は、読み出された組に含まれたポートの数だけ、パケットデータを複製する。さらに、複製部３７０は、複製されて得られたパケットデータを読み出された組に含まれたポート識別番号に対応する擬似ポート判定部３８１−１〜６に出力する。
【００８３】
引き続き、複製部３７０から出力されたパケットデータを取得した擬似ポート判定部３８１−１〜６は、自己のポートが擬似ポートであるか否かを判定する（Ｓ４２０）。自己のポートが擬似ポートである場合には（Ｓ４２０Ｙｅｓ）、擬似ポート判定部３８１−１〜６は、パケットデータを破棄する（Ｓ４３０）。一方、自己のポートが擬似ポートでない場合には（Ｓ４２０Ｎｏ）、擬似ポート判定部３８１−１〜６は、ポートに接続された入出力装置、例えば入出力装置４０−１、５０−１、６０−１にパケットデータを送信する（Ｓ４４０）。
【００８４】
以上のように本実施例２によれば、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ７０は、自装置と接続されるＣＰＵ１０が処理した結果を示すパケットデータの誤り検出に用いられるＬＣＲＣを取得する。そして、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ７０は、ＣＰＵ１０の処理結果を示すパケットデータのＬＣＲＣを取得したとき、ＣＰＵ１０と多重化された装置であってＣＰＵ１０と同時に同一の処理を行う同期動作をする装置が少なくとも１以上あるか否かを判定する。同期処理をする装置があるとき、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ７０は、同期動作をする装置が同期動作をした結果を示すパケットデータのＬＣＲＣをそれぞれ取得する。そして、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ７０は、取得されたＣＰＵ１０のＬＣＲＣおよびＣＰＵ１０と同期動作をした装置のＬＣＲＣのすべてのＬＣＲＣを互いに比較する。さらに、３つ以上のＬＣＲＣのうち一致するＬＣＲＣがあるとき、一致するＬＣＲＣの数を比較して多数決で決定されたＬＣＲＣのパケットデータを選択する。そして、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ７０は、選択されたパケットデータを、パケットデータの出力先の装置と同期処理をする装置の数だけ複製する。
【００８５】
このようにして、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ７０は、同期処理がされた結果を表す複数のパケットデータのうち１つのパケットデータに誤りが発生しても、誤りが発生したパケットデータを、ＬＣＲＣの一致の数を比較して多数決で決定されたＬＣＲＣのパケットデータに補完することができるため、同期処理を確実に継続して行わせることができる。その結果、高信頼化システムを構築することが可能になる。
【００８６】
なお、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ３０またはＰＣＩ  Ｅｘｐｒｅｓｓスイッチ７０にて行われる各処理機能は、その全部または任意の一部が、ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現されても良い。
【００８７】
以上の実施例にかかる実施形態に関し、さらに以下の付記を開示する。
【００８８】
（付記１）自装置と接続される第１の装置が処理した結果を示すパケットデータの誤り検出に用いられる誤り検出情報を取得する第１の取得手段と、
前記第１の取得手段によって前記パケットデータの誤り検出情報を取得したとき、前記第１の装置と多重化された装置であって前記第１の装置と同時に同一の処理を行う同期動作をする装置があるか否かを判定する判定手段と、
前記判定手段によって判定された結果、前記同期動作をする装置が少なくとも１以上あるとき、前記同期動作をするそれぞれの装置が同期動作をした結果を示すパケットデータの誤り検出情報をそれぞれ取得する第２の取得手段と、
前記第１の取得手段によって取得された誤り検出情報および前記第２の取得手段によって取得された誤り検出情報のすべての誤り検出情報が互いに一致するか否かを比較する比較手段と、
を備えることを特徴とする伝送装置。
【００８９】
（付記２）前記比較手段によって比較された結果、誤り検出情報が一致するとき、一致する誤り検出情報のパケットデータごとにパケットデータの出力先の装置が自装置に接続されているか否かを判定し、出力先の装置が接続されていないパケットデータがあるとき、当該パケットデータを破棄する装置接続判定手段をさらに備えることを特徴とする付記１に記載の伝送装置。
【００９０】
（付記３）前記比較手段によって３つ以上の誤り検出情報が比較された結果、一致する誤り検出情報があるとき、一致する誤り検出情報の数を比較して多数決で決定された誤り検出情報のパケットデータを選択する選択手段をさらに備えることを特徴とする付記１に記載の伝送装置。
【００９１】
（付記４）前記判定手段によって判定された結果前記同期動作をする装置がないとき、前記第１の取得手段によって取得されたパケットデータ、または、前記選択手段によって選択されたパケットデータをパケットデータの出力先の装置と同期動作をする装置の数だけ複製する複製手段をさらに備えることを特徴とする付記３に記載の伝送装置。
【００９２】
（付記５）前記判定手段によって判定された結果前記同期動作をする装置がないとき、前記第１の取得手段によって取得されたパケットデータ、または、前記選択手段によって選択されたパケットデータの出力先に基づいて前記パケットデータが出力される経路を選択する経路選択手段をさらに備えることを特徴とする付記４に記載の伝送装置。
【００９３】
（付記６）前記複製手段は、
あらかじめ定められた同期動作をする装置の経路同士を組とした経路情報から、前記経路選択手段によって選択された経路と同期動作をする装置の経路を選択する同期経路選択手段を含み、
前記同期経路選択手段によって選択された経路の数だけ前記パケットデータを複製することを特徴とする付記５に記載の伝送装置。
【００９４】
（付記７）前記複製手段によって複製されて得られた複数のパケットデータを、前記同期経路選択手段によって選択された複数の経路にそれぞれ出力する出力手段をさらに備えることを特徴とする付記６に記載の伝送装置。
【００９５】
（付記８）自装置と接続される第１の装置が処理した結果を示すパケットデータの誤り検出に用いられる誤り検出情報を取得する第１の取得工程と、
前記第１の取得工程によって前記パケットデータの誤り検出情報を取得したとき、前記第１の装置と多重化された装置であって前記第１の装置と同時に同一の処理を行う同期動作をする装置があるか否かを判定する判定工程と、
前記判定工程によって判定された結果、前記同期動作をする装置が少なくとも１以上あるとき、前記同期動作をするそれぞれの装置が同期動作をした結果を示すパケットデータの誤り検出情報をそれぞれ取得する第２の取得工程と、
前記第１の取得工程によって取得された誤り検出情報および前記第２の取得工程によって取得された誤り検出情報のすべての誤り検出情報が互いに一致するか否かを比較する比較工程と、
を含むことを特徴とする伝送方法。
【００９６】
（付記９）自装置と接続される第１の装置が処理した結果を示すパケットデータの誤り検出に用いられる誤り検出情報を取得する第１の取得手順と、
前記第１の取得手順によって前記パケットデータの誤り検出情報を取得したとき、前記第１の装置と多重化された装置であって前記第１の装置と同時に同一の処理を行う同期動作をする装置があるか否かを判定する判定手順と、
前記判定手順によって判定された結果、前記同期動作をする装置が少なくとも１以上あるとき、前記同期動作をするそれぞれの装置が同期動作をした結果を示すパケットデータの誤り検出情報をそれぞれ取得する第２の取得手順と、
前記第１の取得手順によって取得された誤り検出情報および前記第２の取得手順によって取得された誤り検出情報のすべての誤り検出情報が互いに一致するか否かを比較する比較手順と、
をコンピュータに実行させることを特徴とする伝送プログラム。
【図面の簡単な説明】
【００９７】
【図１】実施例１に係る同期動作システムの全体構成の一例を示す図である。
【図２】実施例１に係るＰＣＩ  Ｅｘｐｒｅｓｓスイッチの構成を示す機能ブロック図である。
【図３】擬似ポートを用いた同期動作を示す図である。
【図４】ＰＣＩ  Ｅｘｐｒｅｓｓパケットフォーマットを示す図である。
【図５】実施例１に係る同期動作を示すフローチャートである。
【図６】実施例２に係る同期動作システムの全体構成の一例を示す図である。
【図７】実施例２に係るＰＣＩ  Ｅｘｐｒｅｓｓスイッチの構成を示す機能ブロック図である。
【図８】実施例２に係る同期動作を示すフローチャートである。
【図９】従来の入出力レベルの多重化システムを示す図である。
【図１０】従来のＰＣＩ  Ｅｘｐｒｅｓｓを用いたシステムを示す図である。
【図１１】従来のＰＣＩ  Ｅｘｐｒｅｓｓスイッチに複数ＣＰＵを接続したシステムを示す図である。
【符号の説明】
【００９８】
３０  ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ
３１０−１〜２  ポート
３２０−１〜２  パケット取得部
３３０  パケット収集部
３４０  比較部
３５０  パケット選択部
３６０  経路選択部
３７０  複製部
３８０−１〜４  ポート
３８１−１〜４  擬似ポート判定部
【図１】
2010079702.tif 000003
【図２】
2010079702.tif 000004
【図３】
2010079702.tif 000005
【図４】
2010079702.tif 000006
【図５】
2010079702.tif 000007
【図６】
2010079702.tif 000008
【図７】
2010079702.tif 000009
【図８】
2010079702.tif 000010
【図９】
2010079702.tif 000011
【図１０】
2010079702.tif 000012
【図１１】
2010079702.tif 000013