JP2010079702A - 伝送装置、伝送方法、伝送プログラム - Google Patents

伝送装置、伝送方法、伝送プログラム Download PDF

Info

Publication number
JP2010079702A
JP2010079702A JP2008248718A JP2008248718A JP2010079702A JP 2010079702 A JP2010079702 A JP 2010079702A JP 2008248718 A JP2008248718 A JP 2008248718A JP 2008248718 A JP2008248718 A JP 2008248718A JP 2010079702 A JP2010079702 A JP 2010079702A
Authority
JP
Japan
Prior art keywords
packet data
error detection
detection information
cpu
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008248718A
Other languages
English (en)
Other versions
JP5380978B2 (ja
Inventor
Mitsuru Sato
充 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008248718A priority Critical patent/JP5380978B2/ja
Priority to US12/556,785 priority patent/US20100082875A1/en
Publication of JP2010079702A publication Critical patent/JP2010079702A/ja
Application granted granted Critical
Publication of JP5380978B2 publication Critical patent/JP5380978B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1683Temporal synchronisation or re-synchronisation of redundant processing components at instruction level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/183Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
    • G06F11/184Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components where the redundant components implement processing functionality

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Hardware Redundancy (AREA)
  • Maintenance And Management Of Digital Transmission (AREA)

Abstract

【課題】同期動作をする装置の信頼性を効率的に確保すること。
【解決手段】PCI Expressスイッチ30は、自装置と接続されるCPUが処理した結果を示すパケットデータの誤り検出に用いられる誤り検出情報を取得するパケット取得部320−1と、前記パケットデータの誤り検出情報を取得したとき、前記CPUと多重化された装置であって前記CPUと同時に同一の処理を行う同期動作をする装置があるか否かを判定するパケット収集部330と、判定された結果、同期動作をする装置が少なくとも1以上あるとき、同期動作をするそれぞれの装置が同期動作をした結果を示すパケットデータの誤り検出情報をそれぞれ取得するパケット取得部320−2と、パケット取得部320−1およびパケット取得部320−2によって取得された誤り検出情報のすべての誤り検出情報が互いに一致するか否かを比較する比較部340と、を備える。
【選択図】 図2

Description

本発明は、同期動作をする装置の多重化を行う伝送装置、伝送方法および伝送プログラムに関する。
現在、計算機システムは様々な分野に広く用いられており、それらの分野の中には高い信頼性が要求される分野も含まれている。これらの分野で用いられる計算機システムの高信頼性を実現するために、すべての装置を多重化して多重化された装置同士が同時に同一の処理を行い(以降、同期動作という。)、処理結果を照合する多重化システムがある。
このような多重化システムの例として、1つのブリッジに接続された複数のCPU(Central Processing Unit)を多重化して、ブリッジがそれぞれのCPUから出力された情報に含まれるアドレスおよびデータを比較して情報の一致を確認する技術が開示されている。
また、入出力レベルでの装置の多重化を行う多重化システムがある。具体的な例を、図9を用いて説明する。図9に示すように、多重化システムを構成する計算機システム1および計算機システム2は、それぞれCPUとメモリと入出力装置であるI/Oブリッジ、I/Oアダプタおよび磁気ディスク装置とから構成され、各装置を2重化している。そして、計算機システム1および計算機システム2は、I/Oブリッジと複数のI/Oアダプタとの接続をバス形式としている。そして、計算機システム1内のI/OブリッジとI/Oアダプタとの間を流れるトラフィックが、計算機システム2内のI/OブリッジとI/Oアダプタとの間を流れるトラフィックと一致するか否かが比較され、トラフィックの一致が確認される。
ところで、計算機システムでは高速性を実現するために、入出力装置との接続をPCI−SIG(PCI Special Interest Group)によって規格化されたPCI Expressが用いられている。ここで、PCI Expressを用いた計算機システムの例を図10に示す。図10に示すように、PCI Expressを用いた計算機システムでは、I/Oブリッジは、複数のI/Oアダプタとの接続をPCI Expressスイッチを経由して行う。これにより、PCI Expressスイッチを介して接続されたI/Oブリッジと複数のI/Oアダプタとは、I/Oアダプタごとに通信回線が1対1となるため、計算機システムの通信の高速性が実現される。
このようなPCI Expressスイッチを用いた計算機システムにおいてCPUを多重化した多重化システムがある。具体的な例を、図11を用いて説明する。図11に示すように、PCI Expressスイッチを用いた多重化システムは、CPUとメモリと入出力装置であるI/Oブリッジ、I/Oアダプタおよび磁気ディスク装置とを2重化して、入出力装置をPCI Expressスイッチによって接続している。したがって、一方のCPU配下のI/OブリッジおよびI/Oアダプタの間を流れるトラフィックと他方のCPU配下のI/OブリッジおよびI/Oアダプタの間を流れるトラフィックとが一致するか否かを、PCI Expressスイッチが比較し、トラフィックの一致を確認することも可能である。
特表2002−519735号公報
しかしながら、従来の多重化システムでは、同期動作をする装置の信頼性を効率的に確保することができないという問題がある。すなわち、多重化システムは、多重化された装置の処理結果の一致を確認するために、処理結果がビット単位で一致することを確認する必要があり、処理結果を比較する時間がかかる。このとき、多重化システムは、多重化された装置の処理結果の全ビットが一致することを確認するために、多くの記憶域を使用することとなるため、多くの記憶域を準備しなくてはならない。また、多重化された装置の処理結果の全ビットが一致することを確認するために、例えば多重化された装置の処理結果の一致を検査する検査回路の構成が複雑となる場合もある。
また、従来の多重化システムでは、同期動作をする装置の信頼性を確保するために多重化システムを構成する複数の計算機システムの装置構成が完全に同一である必要があり、多重化システムを構築するために準備する装置の数が通常の計算機システムの少なくとも2倍となる。その結果、多重化システムを構築するためにコストがかかる。
本発明は、上記に鑑みてなされたものであって、同期動作をする装置の信頼性を効率的に確保することができる伝送装置、伝送方法および伝送プログラムを提供することを目的とする。
上述した問題を解決し、目的を達成するために、伝送装置は、自装置と接続される第1の装置が処理した結果を示すパケットデータの誤り検出に用いられる誤り検出情報を取得する第1の取得手段と、前記第1の取得手段によって前記パケットデータの誤り検出情報を取得したとき、前記第1の装置と多重化された装置であって前記第1の装置と同時に同一の処理を行う同期動作をする装置があるか否かを判定する判定手段と、前記判定手段によって判定された結果、前記同期動作をする装置が少なくとも1以上あるとき、前記同期動作をするそれぞれの装置が同期動作をした結果を示すパケットデータの誤り検出情報をそれぞれ取得する第2の取得手段と、前記第1の取得手段によって取得された誤り検出情報および前記第2の取得手段によって取得された誤り検出情報のすべての誤り検出情報が互いに一致するか否かを比較する比較手段と、を備えた構成を採る。
かかる構成によれば、伝送装置は、同期動作をする装置があるとき同期動作の結果を表すそれぞれのパケットデータの誤り検出情報を用いてパケットデータの比較を行うため、パケットデータそのものよりも少ないデータ量の比較で済むこととなり、比較時間を短縮することができる。そして、伝送装置は、比較対象のデータ量がパケットデータそのものより少ないため、検査回路を簡易なものにすることができるとともに、比較処理を行う際に使用する記憶域を少なくすることができる。その結果、伝送装置は、同期動作をする装置の信頼性を効率的に確保することができる。また、伝送装置は、同期動作をする装置がないとき同期動作の結果を表すパケットデータがないため比較処理を行わないこととなり、同期動作をする多重化されるシステムの装置構成が完全に一致していない場合であっても、その後の同期動作を継続して行うことができ、装置の信頼性を効率的に確保することができる。
以上により、伝送装置、伝送方法および伝送プログラムは、同期動作をする装置の信頼性を効率的に確保することができるという効果を奏する。
以下に、本発明にかかる伝送装置、伝送方法および伝送プログラムの実施例を図面に基づいて詳細に説明する。なお、本実施例にかかる伝送装置は、PCI Expressインタフェースを持ったPCI Expressスイッチであるものとするが、本実施例によりこの発明が限定されるものではない。
図1は、実施例1に係るPCI Expressスイッチを含む同期動作システムの全体構成の一例を示す図である。図1に示すように、同期動作システムは、システム1とシステム2とから構成される2重化システムである。システム1は、CPU10と、入出力装置40−1、40−2と、を備え、システム2は、CPU20と、入出力装置50−1、50−2と、を備え、PCI Expressスイッチ30が、システム1とシステム2とを接続している。ここで、同期動作システムは、デュアルシステムを適用し、システム1とシステム2とは同期動作を行うものとする。すなわち、CPU10とCPU20、入出力装置40−1と入出力装置50−1および入出力装置40−2と入出力装置50−2は、それぞれ2重化され、それぞれの装置同士で同時に同一処理を行う同期動作を行っている。なお、図1の例ではシステム1とシステム2とは、システム構成が完全に同一となっているが、これに限定されず、例えばどちらか一方のシステムのCPUまたは一部の入出力装置がない場合のようにシステム構成が同一となっていなくても良い。また、以降の説明は、システム1に関する各装置を中心に説明をするが、システム2もシステム1に関する装置と同様であるため、その説明は、省略する。
CPU10は、入出力命令のあるプログラムの処理を実行する中央処理装置である。例えば、CPU10は、入出力装置40−1に対して入出力処理を依頼するために、入出力装置40−1を宛先にした入出力処理の依頼を示すパケットデータをPCI Expressスイッチ30に対して出力する。このとき、システム2のCPU20があるときは、CPU20は、CPU10と同期動作を行うため、CPU10と同一のプログラムを同時に実行して、システム1の入出力装置40−1と同期動作を行う入出力装置50−1を宛先にしたパケットデータをPCI Expressスイッチ30に対して出力する。また、CPU10は、入出力装置40−1によって処理された処理結果を示すパケットデータをPCI Expressスイッチ30から取得する。このとき、システム2のCPU20があるときは、CPU20は、システム1の入出力装置40−1と同期動作を行う入出力装置50−1によって処理された処理結果を示すパケットデータをPCI Expressスイッチ30から取得する。なお、図示していないが、CPU10、20は、メモリとI/Oブリッジと接続されている。
PCI Expressスイッチ30は、CPU10から入出力装置40−1に対して出力されたパケットデータと、CPU20から入出力装置50−1に対して出力されたパケットデータとを取得すると、それぞれ取得したパケットデータに付加されたLCRC(Link Cyclic Redundancy Check)を比較する。なお、CPU20がないときは、PCI Expressスイッチ30は、CPU10から出力されたパケットデータしかないため、LCRCの比較を行わない。
ここで、LCRCとは、PCI Expressインタフェースで規格化されたOSI参照モデルのデータリンク層のための誤り検出/訂正コードである。PCI Expressインタフェースでは高速なデータ通信が行われるため、PCI Expressスイッチを介した装置間でパケットデータがやりとりされるとき、パケットデータを転送中に誤りが発生したか否かが確認される必要がある。このため、LCRCは、パケットデータを転送中に誤りが発生したか否かを検査するためにパケットデータに付加される。
PCI Expressスイッチ30は、このようなLCRCを用いてCPU10から取得されたLCRCとCPU20から取得されたLCRCとを比較をした結果、CPU10およびCPU20から取得されたLCRCが一致していれば、一方のパケットデータを選択する。ここで、CPU20がないときは、CPU10から取得されるLCRCしかないため、CPU10から出力されたパケットデータが選択されることになる。そして、PCI Expressスイッチ30は、選択されたパケットデータの宛先を示す入出力装置40−1が多重化されている数だけパケットデータを複製する。この多重化されている数は、図1の例では、システム1とシステム2が2重化されているため2である。その後、PCI Expressスイッチ30は、パケットデータの宛先を示す装置と多重化された装置が接続するポートを取得するために、あらかじめ定められた多重化された装置がそれぞれ接続するポートの情報から、複製されたパケットデータの宛先から割り出されたポートに対応するポートを読み出す。そして、PCI Expressスイッチ30は、複製されて得られたパケットデータを読み出されたポートに出力する。なお、PCI Expressスイッチ30は、CPU10から出力されたパケットデータを取得するものとして説明したが、入出力装置40−1、40−2から出力されたパケットデータを取得するものとしても処理は同様であるため、説明は省略する。
入出力装置40−1、40−2は、PCI Expressスイッチ30から出力されたパケットデータを取得すると、パケットデータの内容に応じて処理を行う。例えば、入出力装置40−1、40−2は、読み込み要求を取得したときは、入出力装置からデータを読み込み、書き込み要求を取得したときは、入出力装置にパケットデータに含まれたデータを書き込む。そして、入出力装置40−1、40−2は、PCI Expressスイッチ30に対して処理結果を示すパケットデータを出力する。なお、入出力装置40−1、40−2とは、例えば、磁気ディスク装置、ネットワーク装置であるが、PCI Expressインタフェースが接続されるものであれば良く、PCI Expressインタフェースに変換可能なI/Oアダプタであっても良い。
なお、LCRCは、通常、PCI Expressリンク(例えばPCI Expressスイッチ30と入出力装置40−1との間の回線)を転送するパケットデータの保護のために用いられており、PCI Expressリンクの両端の装置によって生成される。すなわち、LCRCは、パケットデータの出力元である例えばPCI Expressスイッチ30によって、パケットデータと所定のLCRCの生成多項式とに基づいて生成され、PCI Expressスイッチ30は、生成されたLCRCをパケットデータに付加して出力先である例えば入出力装置40−1に出力する。そして、LCRCが付加されたパケットデータを取得した入出力装置40−1は、取得したパケットデータと出力元と同一の生成多項式とに基づいてLCRCを生成し、取得されたパケットデータに付加されたLCRCと生成されたLCRCとを比較する。比較の結果、取得されたパケットデータに付加されたLCRCと生成されたLCRCとが一致していれば、入出力装置40−1とPCI Expressスイッチ30との間を転送されたパケットデータに誤りは発生しなかったことが確認される。一方、取得されたパケットデータに付加されたLCRCと生成されたLCRCとが一致していなければ、パケットデータに誤りが発生したことが確認されるのである。
図2は、実施例1に係るPCI Expressスイッチの構成を示す機能ブロック図である。図2に示すように、PCI Expressスイッチ30は、ポート310−1、2と、パケット取得部320−1、2と、パケット収集部330と、比較部340と、パケット選択部350と、経路選択部360と、複製部370と、ポート380−1〜4と、を備える。なお、図2の例ではPCI Expressスイッチ30は、CPUから取得するパケットデータを入出力装置に出力するが、入出力装置から取得されるパケットデータをCPUに出力しても良い。また、パケット取得部320−1〜2は、それぞれ特許請求の範囲に記載の「第1の取得手段」、「第2の取得手段」に対応し、パケット収集部330は、特許請求の範囲に記載の「判定手段」を含むものとする。
ポート310−1、2は、それぞれCPU10、20とPCI Expressスイッチ30が通信を行うポートである。
パケット取得部320−1は、ポート310−1を介してCPU10からパケットデータを取得するのを待ち、パケットデータを取得すると、取得したパケットデータをパケット収集部330に対して出力する。
パケット取得部320−2は、ポート310−2を介してCPU20からパケットデータを取得するのを待ち、パケットデータを取得すると、取得したパケットデータをパケット収集部330に対して出力する。なお、CPU10とCPU20とは同期動作をしているため、パケット取得部320−1およびパケット取得部320−2は、同期動作の処理結果を示すパケットデータを取得する。
パケット収集部330は、CPU10とCPU20とが多重化されているか否かを示す情報を参照して、CPU10とCPU20とが多重化されている場合は、パケット取得部320−1およびパケット取得部320−2からパケットデータを収集する。そして、パケット収集部330は、パケット取得部320−1およびパケット取得部320−2から出力されたパケットデータを収集すると、比較部340に対してそれぞれのパケットデータを出力する。一方、パケット収集部330は、CPU10とCPU20とが多重化されているか否かを示す情報を参照して、CPU10とCPU20とが多重化されていない場合は、パケット取得部320−1、320−2から出力されたパケットデータのうちどちらか一方のパケットデータを取得すると、経路選択部360に対してパケットデータを出力する。なお、CPU10とCPU20とが多重化されているか否かを示す情報は、パケット収集部330にあらかじめ保持される。
比較部340は、パケット収集部330から出力されたそれぞれのパケットデータを取得すると、それぞれのパケットデータに付加されたLCRCを抽出し、抽出されたそれぞれのLCRCを比較する。比較部340は、抽出されたそれぞれのLCRCを比較した結果、一致していれば、一致したLCRCのパケットデータをパケット選択部350に対して出力する。一方、比較部340は、抽出されたそれぞれのLCRCを比較した結果、一致していなければ、同期動作にエラーがあったことを出力する。なお、LCRCが付加されたパケットデータのフォーマットについては後に詳述する。
パケット選択部350は、比較部340から出力された複数のパケットデータのいずれか1つのパケットデータを選択する。パケット選択部350は、それぞれのパケットデータのうち1つのパケットデータを選択して、選択されなかったパケットデータを破棄する。そして、パケット選択部350は、選択されたパケットデータを経路選択部360に対して出力する。
経路選択部360は、宛先に対応する入出力装置にパケットデータを出力するために、パケット選択部350から出力されたパケットデータに含まれた宛先に基づいて経路を選択する。例えば、経路選択部360は、パケット選択部350から出力されたパケットデータに含まれた宛先に基づいて、パケットデータを出力するポートの識別番号を選択する。そして、経路選択部360は、パケットデータおよび選択されたポートの識別番号を複製部370に対して出力する。
複製部370は、経路選択部360から出力されたパケットデータおよびポートの識別番号を取得すると、パケットデータの宛先である入出力装置が多重化されている数だけパケットデータを複製する。例えば、複製部370は、あらかじめ複製部370に保持されたポート番号対応表からポートの識別番号に合致する組を読み出す。ここで、ポート番号対応表とは、多重化される入出力装置同士を組にしてそれらの入出力装置が接続されるポートの識別番号を保持した表である。そして、複製部370は、読み出された組に含まれたポートの識別番号の数だけ、パケットデータを複製する。さらに、複製部370は、複製されて得られたパケットデータを、読み出された組に含まれたポートの識別番号に対応するポート380−1〜4に出力する。
ポート380−1〜4は、それぞれ接続される入出力装置(40−1、2、50−1、2)とPCI Expressスイッチ30が通信を行うポートであり、それぞれ擬似ポート判定部381−1〜4を備える。
擬似ポート判定部381−1〜4は、複製部370から出力されたパケットデータを取得すると、自己のポート380−1〜4が擬似ポートであるか否かを判定する。ここで、擬似ポートとは、多重化されるべき装置が接続されないポートのことである。擬似ポート判定部381―1〜4は、自己のポートが擬似ポートでないと判定されたとき、ポートに接続された入出力装置に対してパケットデータを出力する。一方、擬似ポート判定部381―1〜4は、自己のポートが擬似ポートであると判定されたとき、パケットデータを破棄する。なお、自己のポートが擬似ポートであるか否かを示す情報は、それぞれの擬似ポート判定部381−1〜4にあらかじめ保持される。
ここで、擬似ポートを用いた同期動作の例を、図3を参照して説明する。図3に示すように、システム1とシステム2とは2重化システムであり、CPU10とCPU20および入出力装置40−1と入出力装置50−1は、対になった装置同士で多重化され同期動作を行っている。ところが、システム1の入出力装置40−2と多重化されるべき入出力装置がシステム2になくPCI Expressスイッチ30に接続されていないため、多重化されるべき入出力装置のポートは、擬似ポートである。なお、入出力装置40−2は、図3の例ではネットワークに接続されたネットワーク装置であるものとする。
PCI Expressスイッチ30は、CPU10およびCPU20から取得されたそれぞれのパケットデータに付加されたLCRCを比較して、比較した結果が一致しているとき、パケットデータを複製する。そして、PCI Expressスイッチ30は、複製されたパケットデータを入出力装置40−2に接続されたポートに出力するとともに、入出力装置40−2と多重化されるべき入出力装置の擬似ポートに出力する。さらに、擬似ポートは、出力されたパケットデータを破棄する。これにより、PCI Expressスイッチ30は、多重化された処理結果を示すパケットデータのいずれか1つのパケットデータだけ入出力装置40−2を介してネットワークに送信することになり、ネットワーク装置を用いた多重化システムを容易に実現することができる。
また、PCI Expressスイッチ30は、ネットワークから入出力装置40−2を介してパケットデータを取得して、CPU10とCPU20とが多重化されているため2装置分パケットデータを複製した後、複製され得られたパケットデータをCPU10とCPU20とに出力する。これにより、多重化システム外部のネットワークが、多重化されたそれぞれのネットワーク装置にパケットデータを配布する等の機能を導入する必要がないため、PCI Expressスイッチ30は、ネットワーク装置を含んだ多重化システムを構築するための余計なコストを抑制することができる。
このようにして、PCI Expressスイッチ30は、擬似ポートを用いると、システム1とシステム2のシステム構成が完全に同一でなくても、同期動作を行うことができる。
次に、LCRCが付加されたパケットデータのフォーマットを、図4を参照して説明する。図4は、PCI Expressインタフェースで用いられるパケットデータの一例を表したフォーマットである。図4に示すように、PCI Expressパケットフォーマットは、パケットデータのシーケンス番号71と、パケットデータの種類を含む共通ヘッダ72と、パケットデータの種類によってフォーマットが異なるヘッダ73と、本来伝達したいデータを設定するデータペイロード74と、から構成され、末尾にLCRC75が付加されている。
ヘッダ73は、どの装置からリクエストが出力されたかを示すリクエスト番号76と、どの装置にリクエストを出力するのかを示すアドレス77を含んでいる。例えば、CPU10が入出力装置40−1に入出力処理の依頼をするとき、CPU10はパケットデータのリクエスト番号76に出力元のCPU10の識別番号、アドレス77に入出力装置40−1を示す宛先を設定する。
LCRC75は、パケットデータから生成される。PCI Expressスイッチ30は、同期動作中のそれぞれの装置から出力されるパケットデータの一致比較を、LCRC75を用いて行う。したがって、同期動作中のそれぞれの装置から出力されるパケットデータは、データペイロード74に設定されるデータ以外も一致していなければならない。そのため、同期動作を行う多重化されるそれぞれの装置は、同一のバス番号および装置番号となるように設定される。また、同期動作中の装置は、同期動作を行う開始時にシーケンス番号71をリセットしてから動作を開始する。これにより、それぞれのパケットデータ内のシーケンス番号71、リクエスト番号76およびアドレス77が一致することになり、同期動作が正常であれば、LCRC75は一致することになる。
このようにして、同期動作の結果を示すパケットデータのLCRC75を一致させることによって、PCI Expressスイッチ30は、パケットデータの比較をパケットデータそのものでなく、パケットデータから生成されるLCRC75を用いて比較することができるため、比較時間を短縮することができるとともに、比較処理の作業量を少なくすることができる。その結果、PCI Expressスイッチ30は、パケットデータの比較を高速に行うことができる。また、LCRC75は、PCI Expressインタフェースの規格であるため、PCI Expressインタフェースを用いたすべてのパケットデータにLCRC75が付加される。そのため、新たに比較対象となるLCRC75は開発される必要がなく、LCRC75を比較する比較回路だけが開発されれば良いため、PCI Expressスイッチ30は、パケットデータの比較を低コストで行うことができる。
次に、実施例1に係る同期動作を、図5を参照して説明する。図5は、実施例1に係る同期動作を示すフローチャートである。なお、以降の説明は、CPU10から入出力装置40−1に対して入出力処理の依頼を示すパケットデータを出力するものとする。そして、CPU10と入出力装置40−1とを備えるシステム1およびCPU20と入出力装置50−1とを備えるシステム2は、多重化システムであるものとする。
まず、パケット取得部320−1は、CPU10から出力されるパケットデータが届いたか否かを判定する(S110)。パケットデータがCPU10から届いていない場合には(S110No)、パケット取得部320−1は、パケットデータがCPU10から届くのを待つ。一方、パケットデータがCPU10から届いた場合には(S110Yes)、パケット取得部320−1は、パケット収集部330にパケットデータを出力する。
また、パケット取得部320−1と同様に、パケット取得部320−2は、CPU10と同期動作中のCPU20から出力されるパケットデータが届いたか否かを判定する(S110)。パケットデータがCPU20から届いていない場合には(S110No)、パケット取得部320−2は、パケットデータがCPU20から届くのを待つ。一方、パケットデータがCPU20から届いた場合には(S110Yes)、パケット取得部320−2は、パケット収集部330にパケットデータを出力する。
続いて、パケット収集部330は、例えばパケット取得部320−1からパケットデータを取得すると、パケット取得部320−1が取得したパケットデータを出力したCPU10と多重化されたCPUがあるか否かを判定する(S120)。CPU10と多重化されたCPUが存在しない場合には(S120No)、パケット収集部330は、パケットデータを経路選択部360に出力する。
一方、CPU10と多重化されたCPUが存在する場合には(S120Yes)、パケット収集部330は、同期動作中のCPU20からパケットデータが届いたか否かを判定する(S130)。同期動作中のCPUからパケットデータが届いていない場合には(S130No)、パケット収集部330は、パケットデータが同期動作中のCPUから届くのを待つ。一方、同期動作中のCPUからパケットデータが届いた場合には(S130Yes)、同期動作中の2つのCPUから届いた複数のパケットデータを比較部340に出力する。
2つのパケットデータを取得した比較部340は、それぞれのパケットデータに付加されたLCRCを比較する(S140)。
そして、比較部340は、2つのパケットデータに付加されたLCRCが一致したか否かを判定する(S150)。LCRCが一致しない場合には(S150No)、比較部340は、同期動作のエラーがあったことを出力して(S160)、同期動作を終了する。
一方、LCRCが一致する場合には(S150Yes)、比較部340は、2つのパケットデータをパケット選択部350に出力する。
すると、パケット選択部350は、2つのパケットデータのいずれか一方のパケットデータを選択し(S170)、他方のパケットデータを破棄する。そして、パケット選択部350は、選択されたパケットデータを経路選択部360に出力する。
パケット収集部330またはパケット選択部350からパケットデータを取得した経路選択部360は、例えばパケットデータに含まれた宛先からパケットデータを出力するポートの識別番号を選択する(S180)。そして、経路選択部360は、パケットデータと選択されたポートの識別番号とを複製部370に出力する。
パケットデータとポートの識別番号とを取得した複製部370は、パケットデータの宛先を示す入出力装置が多重化されている数だけパケットデータを複製する(S190)。例えば、複製部370は、ポート番号対応表からポートの識別番号に合致する組であって多重化されている入出力装置のポートの識別番号が保持された組を読み出す。そして、複製部370は、読み出された組に含まれたポートの数だけ、パケットデータを複製する。さらに、複製部370は、複製されて得られたパケットデータを読み出された組に含まれたポート識別番号に対応する擬似ポート判定部381−1〜4に出力する。
引き続き、複製部370から出力されたパケットデータを取得した擬似ポート判定部381−1〜4は、自己のポートが擬似ポートであるか否かを判定する(S200)。自己のポートが擬似ポートである場合には(S200Yes)、擬似ポート判定部381−1〜4は、パケットデータを破棄する(S210)。一方、自己のポートが擬似ポートでない場合には(S200No)、擬似ポート判定部381−1〜4は、ポートに接続された入出力装置、例えば入出力装置40−1および入出力装置50−1にパケットデータを送信する(S220)。
以上のように本実施例1によれば、自装置と接続されるCPU10が処理した結果を示すパケットデータの誤り検出に用いられるLCRCを取得する。そして、PCI Expressスイッチ30は、CPU10の処理結果を示すパケットデータのLCRCを取得したとき、CPU10と多重化された装置であってCPU10と同時に同一の処理を行う同期動作をする装置があるか否かを判定する。同期処理をする装置があるとき、PCI Expressスイッチ30は、同期動作をするCPU20が同期動作をした結果を示すパケットデータのLCRCを取得する。そして、PCI Expressスイッチ30は、取得されたCPU10およびCPU20のパケットデータのLCRCを比較する。
このようにして、PCI Expressスイッチ30は、同期動作をする装置があるとき同期動作の結果を表すそれぞれのパケットデータの誤り検出情報を用いてパケットデータの比較を行うため、パケットデータそのものよりも少ないデータ量の比較で済むこととなり、比較時間を短縮することができる。そして、PCI Expressスイッチ30は、比較対象のデータ量がパケットデータそのものより少ないため、検査回路を簡易なものにすることができるとともに、比較処理を行う際に使用する記憶域を少なくすることができる。その結果、PCI Expressスイッチ30は、同期動作をする装置の信頼性を効率的に確保することができる。また、PCI Expressスイッチ30は、同期動作をする装置がないとき同期動作の結果を表すパケットデータがないため比較処理を行わないこととなり、同期動作をする多重化されるシステムの装置構成が完全に一致していない場合であっても、その後の同期動作を継続して行うことができ、装置の信頼性をさらに効率的に確保することができる。その結果、同期動作を行う多重化システムの構築にかかるコストを抑制することができる。
ところで、上記の実施例1では、PCI Expressスイッチ30を用いた同期動作システムは2システムから構成される多重化システムである場合を説明した。本発明はこれに限定されるものではなく、3システム以上から構成される多重化システムであっても良い。
そこで、実施例2では、PCI Expressスイッチ30を用いた同期動作システムが3システムから構成される多重化システムである場合を説明する。まず、実施例2に係る同期動作システムの全体構成について図6を参照しながら説明する。図6は、実施例2に係る同期動作システムの全体構成の一例を示す図である。図6に示すように、実施例2に係る同期動作システムでは、実施例1に係る同期動作システム(図1)にシステム3が追加されている。なお、図6において、図1と同じ部分には同じ符号を付し、詳しい説明を省略する。
システム3は、CPU60と、入出力装置60−1、60−2と、を備え、PCI Expressスイッチ70が、システム1とシステム2とシステム3とを接続している。そして、同期動作システムは、CPU10とCPU20とCPU60、入出力装置40−1と入出力装置50−1と入出力装置60−1および入出力装置40−2と入出力装置50−2と入出力装置60−2は、それぞれ3重化され、それぞれの装置同士で同時に同一処理を行う同期動作を行っている。なお、図6の例ではシステム1、システム2およびシステム3とは、システム構成が完全に同一となっているが、これに限定されず、例えばいずれかのシステムのCPUまたは一部の入出力装置がない場合のようにシステム構成が同一となっていなくても良い。また、CPU60および入出力装置60−1、60−2の機能は、CPU10および入出力装置40−1、40−2と同様であるため、その説明を省略する。
PCI Expressスイッチ70は、CPU10から入出力装置40−1に対して出力されたパケットデータと、CPU20から入出力装置50−1に対して出力されたパケットデータと、CPU60から入出力装置60−1に対して出力されたパケットデータと、を取得すると、それぞれ取得したパケットデータに付加されたLCRCを比較する。なお、例えばCPU20およびCPU60がないときは、PCI Expressスイッチ70は、CPU10から出力されたパケットデータしかないため、LCRCの比較を行わない。
PCI Expressスイッチ70は、LCRCを用いた比較をした結果、CPU10、CPU20およびCPU60から取得されたLCRCがすべて一致していれば、いずれか1つのパケットデータを選択する。一方、PCI Expressスイッチ70は、LCRCを用いた比較をした結果、LCRCがすべて一致していなければ、一致するLCRCの数を比較して多数決でLCRCを決定して、決定されたLCRCのパケットデータを選択する。ここで、例えばCPU20およびCPU60がないときは、CPU10から取得されるLCRCしかないため、CPU10から出力されたパケットデータが選択される。そして、PCI Expressスイッチ70は、選択されたパケットデータの宛先を示す入出力装置40−1が多重化されている数だけ複製する。この多重化されている数は、図6の例では、3重化されているため3である。その後、PCI Expressスイッチ70は、パケットデータの宛先を示す装置と多重化された装置が接続するポートを取得するために、あらかじめ定められた多重化された装置がそれぞれ接続するポートの情報から、複製されたパケットデータの宛先から割り出されたポートに対応するポートを読み出す。そして、PCI Expressスイッチ70は、複製されて得られたパケットデータを読み出したポートに出力する。なお、PCI Expressスイッチ70は、CPU10から出力されたパケットデータを取得するものとして説明したが、入出力装置40−1、40−2から出力されたパケットデータを取得するものとしても処理は同様であるため、説明は省略する。
次に、実施例2に係るPCI Expressスイッチの構成について図7を参照しながら説明する。図7は、実施例2に係るPCI Expressスイッチの構成を示す機能ブロック図である。図7に示すように、実施例2に係るPCI Expressスイッチ70では、実施例1に係るPCI Expressスイッチ30(図2)にポート310−3とパケット取得部320−3とポート380−5、380−6が追加され、多数決選択部510が変更されている。なお、図7において、図2と同じ部分には同じ符号を付し、詳しい説明を省略する。また、なお、図7の例ではPCI Expressスイッチ70は、CPUから取得するパケットデータを入出力装置に出力するが、入出力装置から取得されるパケットデータをCPUに出力しても良い。
ポート310−3は、CPU60とPCI Expresssスイッチ70が通信を行うポートである。
パケット取得部320−3は、ポート310−3を介してCPU60から出力されるパケットデータが取得されるのを待ち、パケットデータが取得されたとき、取得されたパケットデータをパケット収集部330に対して出力する。
パケット収集部330は、CPU10、CPU20またはCPU60が多重化されているか否かを示す情報を参照して、いずれかのCPUが多重化されている場合は、多重化されたCPUに対応するパケット取得部320−1〜3からパケットデータを収集する。そして、パケット収集部330は、多重化されたCPUに対応するパケット取得部320−1〜3からパケットデータを取得すると、比較部340に対してそれぞれのパケットデータを出力する。また、パケット収集部330は、CPU10、CPU20およびCPU60が多重化されていない場合は、いずれか1つのパケット取得部320−1〜3から出力されたパケットデータを取得すると、経路選択部360に対してパケットデータを出力する。
比較部340は、パケット収集部330から出力されたそれぞれのパケットデータを取得すると、それぞれのパケットデータに付加されたLCRCを抽出し、抽出されたそれぞれのLCRCを比較する。比較部340は、抽出されたそれぞれのLCRCを比較した結果、すべてのLCRCが一致していれば、一致したLCRCのパケットデータをパケット選択部350に対して出力する。また、比較部340は、抽出されたそれぞれのLCRCを比較した結果、一致するLCRCがあれば、一致しているLCRCの数および一致しているLCRCのパケットデータを組としたパケット情報を多数決選択部510に対して出力する。さらに、比較部340は、抽出されたそれぞれのLCRCを比較した結果、一致するLCRCがなければ、同期動作にエラーがあったことを出力する。
多数決選択部510は、比較部340から出力されたパケット情報を取得して、一致しているLCRCの数を比較して多数決でLCRCを決定する。すなわち、多数決選択部510は、パケット情報に含まれる組のうち、一致しているLCRCの数が一番大きいLCRCの組を決定して、決定された組の複数のパケットデータをパケット選択部350に対して出力する。
パケット選択部350は、比較部340または多数決選択部510から出力された複数のパケットデータのいずれか1つのパケットデータを選択する。パケット選択部350は、複数のパケットデータのうち1つのパケットデータを選択して、選択されなかったパケットデータを破棄する。そして、パケット選択部350は、選択されたパケットデータを経路選択部360に対して出力する。
ポート380−5、6は、それぞれ接続される入出力装置(60−1、2)とPCI Expressスイッチ70が通信を行うポートであり、それぞれ擬似ポート判定部381−5、6を備える。なお、擬似ポート判定部381−5、6は、擬似ポート判定部381−1、2と同様の機能であるため、説明を省略する。
次に、実施例2に係る同期動作を、図8を参照して説明する。図8は、実施例2に係る同期動作を示すフローチャートである。なお、以降の説明は、CPU10から入出力装置40−1に対して入出力処理の依頼を示すパケットデータを出力するものとする。そして、CPU10と入出力装置40−1とを備えるシステム1、CPU20と入出力装置50−1とを備えるシステム2およびCPU60と入出力装置60−1とを備えるシステム3は、多重化されているものとする。
まず、パケット取得部320−1は、CPU10から出力されるパケットデータが届いたか否かを判定する(S310)。パケットデータがCPU10から届いていない場合には(S310No)、パケット取得部320−1は、パケットデータがCPU10から届くのを待つ。一方、パケットデータがCPU10から届いた場合には(S310Yes)、パケット取得部320−1は、パケット収集部330にパケットデータを出力する。
また、パケット取得部320−2は、CPU20から出力されるパケットデータが届いたか否かを判定している(S310)。パケットデータがCPU20から届いていない場合には(S310No)、パケット取得部320−2は、パケットデータがCPU20から届くのを待つ。一方、パケットデータがCPU20から届いた場合には(S310Yes)、パケット取得部320−2は、パケット収集部330にパケットデータを出力する。
さらに、パケット取得部320−3は、CPU60から出力されるパケットデータが届いたか否かを判定している(S310)。パケットデータがCPU60から届いていない場合には(S310No)、パケット取得部320−3は、パケットデータがCPU60から届くのを待つ。一方、パケットデータがCPU60から届いた場合には(S310Yes)、パケット取得部320−3は、パケット収集部330にパケットデータを出力する。
続いて、パケット収集部330は、例えばパケット取得部320−1からパケットデータを取得すると、パケット取得部320−1が取得したパケットデータを出力したCPU10と多重化されたCPUがあるか否かを判定する(S320)。CPU10と多重化されたCPUが存在しない場合には(S320No)、パケット収集部330は、パケットデータを経路選択部360に出力する。
一方、CPU10と多重化されたCPUが存在する場合には(S320Yes)、パケット収集部330は、同期動作中のCPUからパケットデータが届いたか否かを判定する(S330)。同期動作中のCPUからパケットデータが届いていない場合には(S330No)、パケット収集部330は、パケットデータが同期動作中のCPUから届くのを待つ。一方、同期動作中のCPUからパケットデータが届いた場合には(S330Yes)、同期動作中のCPUから届いた複数のパケットデータを比較部340に出力する。
複数のパケットデータを取得した比較部340は、それぞれのパケットデータに付加されたLCRCを比較する(S340)。
このとき、比較部340は、複数のパケットデータに付加されたそれぞれのLCRCがすべて一致したか否かを判定する(S350)。LCRCがすべて一致しない場合には(S350No)、比較部340は、一致するLCRCがあるか否かを判定する(S370)。
一致するLCRCがあると判定された場合には(S370Yes)、比較部340は、一致しているLCRCの数および一致しているLCRCのパケットデータを組としたパケット情報を多数決選択部510に出力する。
そして、パケット情報を取得した多数決選択部510は、パケット情報に含まれる組のうち、組に含まれる一致しているLCRCの数を比較して多数決でLCRCの組を決定する(S380)。その後、多数決選択部510は、決定されたLCRCの数に含まれる複数のパケットデータをパケット選択部350に出力する。
一方、一致するLCRCがないと判定された場合には(S370No)、比較部340は、同期動作のエラーが発生したことを出力して(S390)、同期動作を終了する。
また、全LCRCが一致する場合(S350Yes)、比較部340は、一致したLCRCのパケットデータをパケット選択部350に出力する。
比較部340または多数決選択部510によって複数のパケットデータを取得したパケット選択部350は、複数のパケットデータのいずれか1つのパケットデータを選択し(S360)、その他のパケットデータを破棄する。そして、パケット選択部350は、選択されたパケットデータを経路選択部360に出力する。
パケット収集部330またはパケット選択部350からパケットデータを取得した経路選択部360は、例えばパケットデータに含まれた宛先からパケットデータを出力するポートの識別番号を選択する(S400)。そして、経路選択部360は、パケットデータと選択されたポートの識別番号とを複製部370に出力する。
パケットデータとポートの識別番号とを取得した複製部370は、パケットデータの宛先を示す入出力装置が多重化されている数だけパケットデータを複製する(S410)。例えば、複製部370は、ポート番号対応表からポートの識別番号に合致する組であって多重化されている入出力装置のポートの識別番号が保持された組を読み出す。そして、複製部370は、読み出された組に含まれたポートの数だけ、パケットデータを複製する。さらに、複製部370は、複製されて得られたパケットデータを読み出された組に含まれたポート識別番号に対応する擬似ポート判定部381−1〜6に出力する。
引き続き、複製部370から出力されたパケットデータを取得した擬似ポート判定部381−1〜6は、自己のポートが擬似ポートであるか否かを判定する(S420)。自己のポートが擬似ポートである場合には(S420Yes)、擬似ポート判定部381−1〜6は、パケットデータを破棄する(S430)。一方、自己のポートが擬似ポートでない場合には(S420No)、擬似ポート判定部381−1〜6は、ポートに接続された入出力装置、例えば入出力装置40−1、50−1、60−1にパケットデータを送信する(S440)。
以上のように本実施例2によれば、PCI Expressスイッチ70は、自装置と接続されるCPU10が処理した結果を示すパケットデータの誤り検出に用いられるLCRCを取得する。そして、PCI Expressスイッチ70は、CPU10の処理結果を示すパケットデータのLCRCを取得したとき、CPU10と多重化された装置であってCPU10と同時に同一の処理を行う同期動作をする装置が少なくとも1以上あるか否かを判定する。同期処理をする装置があるとき、PCI Expressスイッチ70は、同期動作をする装置が同期動作をした結果を示すパケットデータのLCRCをそれぞれ取得する。そして、PCI Expressスイッチ70は、取得されたCPU10のLCRCおよびCPU10と同期動作をした装置のLCRCのすべてのLCRCを互いに比較する。さらに、3つ以上のLCRCのうち一致するLCRCがあるとき、一致するLCRCの数を比較して多数決で決定されたLCRCのパケットデータを選択する。そして、PCI Expressスイッチ70は、選択されたパケットデータを、パケットデータの出力先の装置と同期処理をする装置の数だけ複製する。
このようにして、PCI Expressスイッチ70は、同期処理がされた結果を表す複数のパケットデータのうち1つのパケットデータに誤りが発生しても、誤りが発生したパケットデータを、LCRCの一致の数を比較して多数決で決定されたLCRCのパケットデータに補完することができるため、同期処理を確実に継続して行わせることができる。その結果、高信頼化システムを構築することが可能になる。
なお、PCI Expressスイッチ30またはPCI Expressスイッチ70にて行われる各処理機能は、その全部または任意の一部が、CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現されても良い。
以上の実施例にかかる実施形態に関し、さらに以下の付記を開示する。
(付記1)自装置と接続される第1の装置が処理した結果を示すパケットデータの誤り検出に用いられる誤り検出情報を取得する第1の取得手段と、
前記第1の取得手段によって前記パケットデータの誤り検出情報を取得したとき、前記第1の装置と多重化された装置であって前記第1の装置と同時に同一の処理を行う同期動作をする装置があるか否かを判定する判定手段と、
前記判定手段によって判定された結果、前記同期動作をする装置が少なくとも1以上あるとき、前記同期動作をするそれぞれの装置が同期動作をした結果を示すパケットデータの誤り検出情報をそれぞれ取得する第2の取得手段と、
前記第1の取得手段によって取得された誤り検出情報および前記第2の取得手段によって取得された誤り検出情報のすべての誤り検出情報が互いに一致するか否かを比較する比較手段と、
を備えることを特徴とする伝送装置。
(付記2)前記比較手段によって比較された結果、誤り検出情報が一致するとき、一致する誤り検出情報のパケットデータごとにパケットデータの出力先の装置が自装置に接続されているか否かを判定し、出力先の装置が接続されていないパケットデータがあるとき、当該パケットデータを破棄する装置接続判定手段をさらに備えることを特徴とする付記1に記載の伝送装置。
(付記3)前記比較手段によって3つ以上の誤り検出情報が比較された結果、一致する誤り検出情報があるとき、一致する誤り検出情報の数を比較して多数決で決定された誤り検出情報のパケットデータを選択する選択手段をさらに備えることを特徴とする付記1に記載の伝送装置。
(付記4)前記判定手段によって判定された結果前記同期動作をする装置がないとき、前記第1の取得手段によって取得されたパケットデータ、または、前記選択手段によって選択されたパケットデータをパケットデータの出力先の装置と同期動作をする装置の数だけ複製する複製手段をさらに備えることを特徴とする付記3に記載の伝送装置。
(付記5)前記判定手段によって判定された結果前記同期動作をする装置がないとき、前記第1の取得手段によって取得されたパケットデータ、または、前記選択手段によって選択されたパケットデータの出力先に基づいて前記パケットデータが出力される経路を選択する経路選択手段をさらに備えることを特徴とする付記4に記載の伝送装置。
(付記6)前記複製手段は、
あらかじめ定められた同期動作をする装置の経路同士を組とした経路情報から、前記経路選択手段によって選択された経路と同期動作をする装置の経路を選択する同期経路選択手段を含み、
前記同期経路選択手段によって選択された経路の数だけ前記パケットデータを複製することを特徴とする付記5に記載の伝送装置。
(付記7)前記複製手段によって複製されて得られた複数のパケットデータを、前記同期経路選択手段によって選択された複数の経路にそれぞれ出力する出力手段をさらに備えることを特徴とする付記6に記載の伝送装置。
(付記8)自装置と接続される第1の装置が処理した結果を示すパケットデータの誤り検出に用いられる誤り検出情報を取得する第1の取得工程と、
前記第1の取得工程によって前記パケットデータの誤り検出情報を取得したとき、前記第1の装置と多重化された装置であって前記第1の装置と同時に同一の処理を行う同期動作をする装置があるか否かを判定する判定工程と、
前記判定工程によって判定された結果、前記同期動作をする装置が少なくとも1以上あるとき、前記同期動作をするそれぞれの装置が同期動作をした結果を示すパケットデータの誤り検出情報をそれぞれ取得する第2の取得工程と、
前記第1の取得工程によって取得された誤り検出情報および前記第2の取得工程によって取得された誤り検出情報のすべての誤り検出情報が互いに一致するか否かを比較する比較工程と、
を含むことを特徴とする伝送方法。
(付記9)自装置と接続される第1の装置が処理した結果を示すパケットデータの誤り検出に用いられる誤り検出情報を取得する第1の取得手順と、
前記第1の取得手順によって前記パケットデータの誤り検出情報を取得したとき、前記第1の装置と多重化された装置であって前記第1の装置と同時に同一の処理を行う同期動作をする装置があるか否かを判定する判定手順と、
前記判定手順によって判定された結果、前記同期動作をする装置が少なくとも1以上あるとき、前記同期動作をするそれぞれの装置が同期動作をした結果を示すパケットデータの誤り検出情報をそれぞれ取得する第2の取得手順と、
前記第1の取得手順によって取得された誤り検出情報および前記第2の取得手順によって取得された誤り検出情報のすべての誤り検出情報が互いに一致するか否かを比較する比較手順と、
をコンピュータに実行させることを特徴とする伝送プログラム。
実施例1に係る同期動作システムの全体構成の一例を示す図である。 実施例1に係るPCI Expressスイッチの構成を示す機能ブロック図である。 擬似ポートを用いた同期動作を示す図である。 PCI Expressパケットフォーマットを示す図である。 実施例1に係る同期動作を示すフローチャートである。 実施例2に係る同期動作システムの全体構成の一例を示す図である。 実施例2に係るPCI Expressスイッチの構成を示す機能ブロック図である。 実施例2に係る同期動作を示すフローチャートである。 従来の入出力レベルの多重化システムを示す図である。 従来のPCI Expressを用いたシステムを示す図である。 従来のPCI Expressスイッチに複数CPUを接続したシステムを示す図である。
符号の説明
30 PCI Expressスイッチ
310−1〜2 ポート
320−1〜2 パケット取得部
330 パケット収集部
340 比較部
350 パケット選択部
360 経路選択部
370 複製部
380−1〜4 ポート
381−1〜4 擬似ポート判定部

Claims (6)

  1. 自装置と接続される第1の装置が処理した結果を示すパケットデータの誤り検出に用いられる誤り検出情報を取得する第1の取得手段と、
    前記第1の取得手段によって前記パケットデータの誤り検出情報を取得したとき、前記第1の装置と多重化された装置であって前記第1の装置と同時に同一の処理を行う同期動作をする装置があるか否かを判定する判定手段と、
    前記判定手段によって判定された結果、前記同期動作をする装置が少なくとも1以上あるとき、前記同期動作をするそれぞれの装置が同期動作をした結果を示すパケットデータの誤り検出情報をそれぞれ取得する第2の取得手段と、
    前記第1の取得手段によって取得された誤り検出情報および前記第2の取得手段によって取得された誤り検出情報のすべての誤り検出情報が互いに一致するか否かを比較する比較手段と、
    を備えることを特徴とする伝送装置。
  2. 前記比較手段によって比較された結果、誤り検出情報が一致するとき、一致する誤り検出情報のパケットデータごとにパケットデータの出力先の装置が自装置に接続されているか否かを判定し、出力先の装置が接続されていないパケットデータがあるとき、当該パケットデータを破棄する装置接続判定手段をさらに備えることを特徴とする請求項1に記載の伝送装置。
  3. 前記比較手段によって3つ以上の誤り検出情報が比較された結果、一致する誤り検出情報があるとき、一致する誤り検出情報の数を比較して多数決で決定された誤り検出情報のパケットデータを選択する選択手段をさらに備えることを特徴とする請求項1に記載の伝送装置。
  4. 前記判定手段によって判定された結果前記同期動作をする装置がないとき、前記第1の取得手段によって取得されたパケットデータ、または、前記選択手段によって選択されたパケットデータをパケットデータの出力先の装置と同期動作をする装置の数だけ複製する複製手段をさらに備えることを特徴とする請求項3に記載の伝送装置。
  5. 自装置と接続される第1の装置が処理した結果を示すパケットデータの誤り検出に用いられる誤り検出情報を取得する第1の取得工程と、
    前記第1の取得工程によって前記パケットデータの誤り検出情報を取得したとき、前記第1の装置と多重化された装置であって前記第1の装置と同時に同一の処理を行う同期動作をする装置があるか否かを判定する判定工程と、
    前記判定工程によって判定された結果、前記同期動作をする装置が少なくとも1以上あるとき、前記同期動作をするそれぞれの装置が同期動作をした結果を示すパケットデータの誤り検出情報をそれぞれ取得する第2の取得工程と、
    前記第1の取得工程によって取得された誤り検出情報および前記第2の取得工程によって取得された誤り検出情報のすべての誤り検出情報が互いに一致するか否かを比較する比較工程と、
    を含むことを特徴とする伝送方法。
  6. 自装置と接続される第1の装置が処理した結果を示すパケットデータの誤り検出に用いられる誤り検出情報を取得する第1の取得手順と、
    前記第1の取得手順によって前記パケットデータの誤り検出情報を取得したとき、前記第1の装置と多重化された装置であって前記第1の装置と同時に同一の処理を行う同期動作をする装置があるか否かを判定する判定手順と、
    前記判定手順によって判定された結果、前記同期動作をする装置が少なくとも1以上あるとき、前記同期動作をするそれぞれの装置が同期動作をした結果を示すパケットデータの誤り検出情報をそれぞれ取得する第2の取得手順と、
    前記第1の取得手順によって取得された誤り検出情報および前記第2の取得手順によって取得された誤り検出情報のすべての誤り検出情報が互いに一致するか否かを比較する比較手順と、
    をコンピュータに実行させることを特徴とする伝送プログラム。
JP2008248718A 2008-09-26 2008-09-26 伝送装置、伝送装置の制御方法および伝送装置の制御プログラム Expired - Fee Related JP5380978B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008248718A JP5380978B2 (ja) 2008-09-26 2008-09-26 伝送装置、伝送装置の制御方法および伝送装置の制御プログラム
US12/556,785 US20100082875A1 (en) 2008-09-26 2009-09-10 Transfer device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008248718A JP5380978B2 (ja) 2008-09-26 2008-09-26 伝送装置、伝送装置の制御方法および伝送装置の制御プログラム

Publications (2)

Publication Number Publication Date
JP2010079702A true JP2010079702A (ja) 2010-04-08
JP5380978B2 JP5380978B2 (ja) 2014-01-08

Family

ID=42058804

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008248718A Expired - Fee Related JP5380978B2 (ja) 2008-09-26 2008-09-26 伝送装置、伝送装置の制御方法および伝送装置の制御プログラム

Country Status (2)

Country Link
US (1) US20100082875A1 (ja)
JP (1) JP5380978B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8750430B2 (en) 2010-04-12 2014-06-10 Fujitsu Limited Data receiver circuit
WO2016151674A1 (ja) * 2015-03-20 2016-09-29 ルネサスエレクトロニクス株式会社 データ処理装置

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101401874B1 (ko) * 2010-02-22 2014-05-29 닛본 덴끼 가부시끼가이샤 통신제어 시스템, 스위칭 노드, 통신제어 방법, 및 통신제어용 프로그램
TW201209580A (en) * 2010-08-27 2012-03-01 Hon Hai Prec Ind Co Ltd System and method for testing PCI-E switch
US20140112131A1 (en) * 2011-06-17 2014-04-24 Hitachi, Ltd. Switch, computer system using same, and packet forwarding control method
JP2014186376A (ja) * 2013-03-21 2014-10-02 Fujitsu Ltd 障害箇所特定方法、スイッチング装置、障害箇所特定装置、及び情報処理装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11102267A (ja) * 1997-07-30 1999-04-13 Canon Inc 印刷装置および印刷システムおよび印刷装置のデータ処理方法および印刷システムのデータ処理方法および印刷制御装置および印刷制御方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
US5901281A (en) * 1991-01-25 1999-05-04 Hitachi, Ltd. Processing unit for a computer and a computer system incorporating such a processing unit
US6447184B2 (en) * 1997-07-30 2002-09-10 Canon Kabushiki Kaisha Method and apparatus for controlling a printing operation
JP2005301488A (ja) * 2004-04-08 2005-10-27 Hitachi Ltd 入出力インタフェースモジュールの管理方法
JP2006209523A (ja) * 2005-01-28 2006-08-10 Yokogawa Electric Corp 情報処理装置および情報処理方法
US7328371B1 (en) * 2004-10-15 2008-02-05 Advanced Micro Devices, Inc. Core redundancy in a chip multiprocessor for highly reliable systems
JP2008518339A (ja) * 2004-10-25 2008-05-29 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング 少なくとも2つの実施ユニットを有する計算機において切り替える装置および方法
JP2008310489A (ja) * 2007-06-13 2008-12-25 Hitachi Ltd I/oデバイス切り替え方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4907228A (en) * 1987-09-04 1990-03-06 Digital Equipment Corporation Dual-rail processor with error checking at single rail interfaces
JPH0756976B2 (ja) * 1988-02-25 1995-06-14 富士通株式会社 情報分配方式とその送信局および端末装置
US5181207A (en) * 1988-04-14 1993-01-19 Harris Corp. Error correction mechanism using pattern predictive error correction codes
US5838894A (en) * 1992-12-17 1998-11-17 Tandem Computers Incorporated Logical, fail-functional, dual central processor units formed from three processor units
SE516542C2 (sv) * 1999-07-01 2002-01-29 Ericsson Telefon Ab L M Metod och anordning för övervakning av parallella processer
US7457897B1 (en) * 2004-03-17 2008-11-25 Suoer Talent Electronics, Inc. PCI express-compatible controller and interface for flash memory
US6985975B1 (en) * 2001-06-29 2006-01-10 Sanera Systems, Inc. Packet lockstep system and method
JP4411602B2 (ja) * 2004-12-16 2010-02-10 日本電気株式会社 フォールトトレラント・コンピュータシステム
JP2006178636A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールトトレラントコンピュータ、およびその制御方法
JP4507875B2 (ja) * 2004-12-21 2010-07-21 日本電気株式会社 多重化装置及びレガシーデバイス多重化方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5901281A (en) * 1991-01-25 1999-05-04 Hitachi, Ltd. Processing unit for a computer and a computer system incorporating such a processing unit
JPH11102267A (ja) * 1997-07-30 1999-04-13 Canon Inc 印刷装置および印刷システムおよび印刷装置のデータ処理方法および印刷システムのデータ処理方法および印刷制御装置および印刷制御方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
US6447184B2 (en) * 1997-07-30 2002-09-10 Canon Kabushiki Kaisha Method and apparatus for controlling a printing operation
JP2005301488A (ja) * 2004-04-08 2005-10-27 Hitachi Ltd 入出力インタフェースモジュールの管理方法
US7328371B1 (en) * 2004-10-15 2008-02-05 Advanced Micro Devices, Inc. Core redundancy in a chip multiprocessor for highly reliable systems
JP2008518339A (ja) * 2004-10-25 2008-05-29 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング 少なくとも2つの実施ユニットを有する計算機において切り替える装置および方法
US7669079B2 (en) * 2004-10-25 2010-02-23 Robert Bosch Gmbh Method and device for switching over in a computer system having at least two execution units
JP2006209523A (ja) * 2005-01-28 2006-08-10 Yokogawa Electric Corp 情報処理装置および情報処理方法
JP2008310489A (ja) * 2007-06-13 2008-12-25 Hitachi Ltd I/oデバイス切り替え方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8750430B2 (en) 2010-04-12 2014-06-10 Fujitsu Limited Data receiver circuit
WO2016151674A1 (ja) * 2015-03-20 2016-09-29 ルネサスエレクトロニクス株式会社 データ処理装置
CN106796541A (zh) * 2015-03-20 2017-05-31 瑞萨电子株式会社 数据处理装置
JPWO2016151674A1 (ja) * 2015-03-20 2017-06-15 ルネサスエレクトロニクス株式会社 データ処理装置
US10248156B2 (en) 2015-03-20 2019-04-02 Renesas Electronics Corporation Data processing device
CN106796541B (zh) * 2015-03-20 2021-03-09 瑞萨电子株式会社 数据处理装置

Also Published As

Publication number Publication date
US20100082875A1 (en) 2010-04-01
JP5380978B2 (ja) 2014-01-08

Similar Documents

Publication Publication Date Title
JP5380978B2 (ja) 伝送装置、伝送装置の制御方法および伝送装置の制御プログラム
JP3709795B2 (ja) コンピュータシステムと、コンピュータシステム内のモジュール間の通信方法
US7940666B2 (en) Communication node architecture in a globally asynchronous network on chip system
CN101873339B (zh) 灵活地将终端逻辑集成到各种平台
US6826123B1 (en) Global recovery for time of day synchronization
US9749222B2 (en) Parallel computer, node apparatus, and control method for the parallel computer
JP5285690B2 (ja) 並列コンピュータ・システム、並列コンピュータ・システム上のノード・トラフィックを動的に再経路指定するためのコンピュータ実装方法、コンピュータ可読記録媒体及びコンピュータ・プログラム
US20050091383A1 (en) Efficient zero copy transfer of messages between nodes in a data processing system
US20050081080A1 (en) Error recovery for data processing systems transferring message packets through communications adapters
US20050080933A1 (en) Master-slave adapter
US8489795B2 (en) PCI-Express communication system and PCI-Express communication method
JP5593530B2 (ja) フォールトトレラントなタイムトリガ方式のリアルタイム通信のための方法および装置
US20030118042A1 (en) Packet communications method and apparatus
US9306844B2 (en) Zero-cycle router for networks on-chip
US20050080869A1 (en) Transferring message packets from a first node to a plurality of nodes in broadcast fashion via direct memory to memory transfer
JP2005202956A (ja) 破損データを処理する方法
US20050080945A1 (en) Transferring message packets from data continued in disparate areas of source memory via preloading
JP2006260140A (ja) データ処理システム
US20050078708A1 (en) Formatting packet headers in a communications adapter
US6157651A (en) Rogue data packet removal method and apparatus
US10554535B2 (en) Apparatus and method to perform all-to-all communication without path conflict in a network including plural topological structures
JP2012235335A (ja) 装置間ケーブルの誤接続検出方法及び装置
JP2009194510A (ja) 優先調停システム及び優先調停方法
JP2017147597A (ja) 通信装置、経路管理サーバ、通信方法、および仮想ポート割当方法
JP4655733B2 (ja) リング型二重化ネットワークにおける受信方法及び装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110708

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130607

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130618

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130816

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130903

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130916

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees