(57)【要約】【課題】情報ごとに要求される高速性・高信頼性の条件を満たした通信を可能とする。【解決手段】送信装置１の冗長転送部１ａは、データ４と同一内容の冗長転送データ４ａ，４ｂ，４ｃを複数の通信経路３ａ，３ｂ，３ｃに重複転送する。データ分割転送部１ｂは、データ５を分割して得られた分割データ５ａ，５ｂ，５ｃに種別識別子を付与し、通信経路３ａ，３ｂ，３ｃに振り分ける。データ送信部１ｃ，１ｄ，１ｅは、冗長転送データ４ａ，４ｂ，４ｃまたは分割データ５ａ，５ｂ，５ｃを通信経路３ａ，３ｂ，３ｃを介して送信する。送信されたデータを受信装置２のデータ受信部２ａ，２ｂ，２ｃが受信する。データ解析部２ｄ，２ｅ，２ｆは、受信したデータの種別を判断する。データ選択部２ｇは、冗長転送データ４ａ，４ｂ，４ｃのうちの１つを選択して出力する。データ合成部２ｈは、分割データ５ａ，５ｂ，５ｃを合成して、データ５を出力する。【選択図】図１
2010129018.tif 000002
【特許請求の範囲】
【請求項１】
受信装置に対して複数の通信経路で接続可能な送信装置であって、
冗長転送の対象となるデータが入力されると、入力されたデータと同一内容の複数の冗長転送データを複数の前記通信経路それぞれに向けて転送する冗長転送部と、
分割転送の対象となるデータが入力されると、入力されたデータを複数の分割データに分割し、前記分割データを複数の前記通信経路に振り分け、振り分けられた前記通信経路に向けて転送するデータ分割転送部と、
複数の前記通信経路それぞれに対応付けて設けられており、対応する前記通信経路に向けて前記冗長転送部または前記データ分割転送部から転送された前記冗長転送データまたは前記分割データを、対応する前記通信経路を介して前記受信装置へ送信するデータ送信部と、
を有する送信装置。
【請求項２】
前記データ分割転送部は、複数の前記分割データに基づいて、複数の前記分割データの復元用冗長データを生成し、前記復元用冗長データと前記分割データとを前記通信経路に振り分けることを特徴とする請求項１記載の送信装置。
【請求項３】
前記データ分割転送部は、前記分割データを複数のブロックに分け、前記ブロックごとにチェックコードを付加し、複数の前記分割データそれぞれから得られる１つずつの前記ブロックに基づいて、前記復元用冗長データを生成することを特徴とする請求項２記載の送信装置。
【請求項４】
前記データ分割転送部は、複数の前記分割データそれぞれを送信する際の送信順が同じ複数の前記ブロックに基づいて前記復元用冗長データを生成することを特徴とする請求項３記載の送信装置。
【請求項５】
前記データ分割転送部は、前記分割データを複数のブロックに分け、前記ブロックごとにチェックコードを付加することを特徴とする請求項１記載の送信装置。
【請求項６】
複数の前記データ送信部は、前記冗長転送データまたは前記分割データを、前記冗長転送部または前記データ分割転送部からの転送の早い順に送信することを特徴とする請求項１記載の送信装置。
【請求項７】
送信装置に対して複数の通信経路で接続可能な受信装置であって、
複数の前記通信経路それぞれに対応付けて設けられており、対応する前記通信経路を介して前記送信装置から送られたデータを受信する複数のデータ受信部と、
複数の前記データ受信部それぞれに対応付けて設けられており、対応する前記データ受信部が受信した前記データを解析し、受信した前記データが、複数の前記通信経路を用いて同一データの冗長送信が行われた冗長転送データなのか、または元データを分割することで得られたデータを複数の前記通信経路に分散してデータ転送が行われた分割データなのかを判断する複数のデータ解析部と、
複数の前記データ解析部それぞれから前記冗長転送データを取得し、取得した前記冗長転送データのうちの１つを選択し、選択した前記冗長転送データを出力するデータ選択部と、
複数の前記データ解析部それぞれから前記分割データを取得し、取得した前記分割データを合成して合成データを生成し、生成した前記合成データを出力するデータ合成部と、
を有する受信装置。
【請求項８】
前記データ選択部は、最初に取得したエラーのない前記冗長転送データを選択することを特徴とする請求項７記載の受信装置。
【請求項９】
前記データ解析部は、対応する前記データ受信部が受信した前記データの解析により、受信した前記データが、前記分割データの復元用冗長データであることを判断し、
前記データ合成部は、複数の前記分割データのうちの１つにエラーがある場合、前記復元用冗長データを用いてエラーのあった前記分割データを復元することを特徴とする請求項７記載の受信装置。
【請求項１０】
前記データ受信部は、前記復元用冗長データまたは前記分割データをブロック単位で受信し、
前記データ合成部は、複数の前記分割データを構成する前記ブロックごとに、エラーがあった前記分割データの復元を行うことを特徴とする請求項９記載の受信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は複数の通信ケーブル等の通信経路を介して互いに接続される送信装置および受信装置に関し、特に高速性と高信頼性とが要求される送信装置および受信装置に関する。
【背景技術】
【０００２】
近年ＬＳＩ（Large-Scale Integrated circuit）の性能向上により装置内部の性能は向上している。また、複数のコンピュータを通信インタフェースで接続し、連携して処理を実行させることで、さらに高速な処理が可能となる。このような複数のコンピュータで構成されるシステムの性能は、装置間の通信インタフェースの性能に依存する傾向にある。そのため高速性と高信頼性を併せ持つ装置間インタフェースが求められている。
【０００３】
従来の装置間通信インタフェースでは、クロックと転送データを併せて並列に転送するパラレル伝送方式を採用している。ただし、パラレル伝送方式は、信号の減衰やクロックと転送データの位相差や転送データ間の位相差が発生するという問題がある。そのため、転送速度と転送距離を両立するには限界がある。
【０００４】
しかも、システムを構成するサーバの台数が増えると、サーバ間を接続する通信ケーブルも長くなる。パラレル伝送方式における信号の減衰や位相差の発生といった問題は、通信ケーブルが長くなるほど顕在化する。
【０００５】
そこで、パラレル伝送方式の問題を解決する通信インタフェースとして、PCI-ExpressやInfiniBand（商標）と言ったシリアル伝送方式の通信インタフェースがある。最近ではこれらのインタフェースを比較的容易に実現するための汎用転送モジュールが数多く存在する。
【０００６】
なお、汎用転送モジュールを使用したシリアル転送方式の場合は転送速度の上限が既定されている。したがって、仕様以上の高速転送は不可能である。また、シリアル転送では信号の時間的なズレや揺らぎであるジッタの問題があり、データエラーに対する対策が必要である。そのため、仕様上の制限が無かったとしても、シリアル伝送の高速化には限界がある。そこで、データの伝送効率を高める技術としては、データを分割し、分割された各データを複数の通信路を用いてシリアル転送を行う技術もある。
【特許文献１】特開２００２−６４５０６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、コンピュータ間で送受信される情報には、高速伝送が重視される情報と、高信頼性が重視される情報とがある。例えば、コンピュータ間でコマンドを送受信する場合、そのコマンドを確実に伝送する必要がある。すなわち、コマンドの転送でエラーが発生し、再送処理が行われると受信側でのコマンドの実行が遅れ、システム全体の処理の遅延を招く。他方、コマンド以外の大容量のデータを転送する場合、可能な限り高速に伝送することが望まれる。データ伝送が高速化されることで、システムの処理効率も向上する。なお、大容量のデータ転送において一部のデータ伝送にエラーがあり再送処理を行ったとしても、その再送処理がシステム全体の処理の遅延に与える影響は少ない。
【０００８】
しかし、従来の通信技術では、情報の種類（コマンドまたはデータ）によっては、信頼性の欠如または伝送効率の低下を招く結果となっていた。例えば、高速伝送を重視すると信頼性が損なわれ、コマンドの伝送において信頼性が不十分となる。また、信頼性を重視すると大容量のデータ伝送に時間がかかり、システム全体としての処理効率が低下する。このように、各種情報ごとに要求される高速性・高信頼性の条件を十分満たしていなかった。
【０００９】
本発明はこのような点に鑑みてなされたものであり、情報ごとに要求される高速性・高信頼性の条件を満たした通信を行うことができるデータ伝送方式を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、以下のような送信装置が提供される。
送信装置は、受信装置に対して複数の通信経路で接続可能であり、冗長転送部、データ分割転送部、および複数のデータ送信部を有する。冗長転送部は、冗長転送の対象となるデータが入力されると、入力されたデータと同一内容の複数の冗長転送データを複数の通信経路それぞれに向けて転送する。データ分割転送部は、分割転送の対象となるデータが入力されると、入力されたデータを複数の分割データに分割し、分割データを複数の通信経路に振り分け、振り分けられた通信経路に向けて転送する。データ送信部は、複数の通信経路それぞれに対応付けて設けられており、対応する通信経路に向けて冗長転送部またはデータ分割転送部から転送された冗長転送データまたは分割データを、対応する通信経路を介して受信装置へ送信する。
【００１１】
また、上記課題を解決するために、以下のような受信装置が提供される。
受信装置は、送信装置に対して複数の通信経路で接続可能であり、複数のデータ受信部、複数のデータ解析部、データ選択部、およびデータ合成部を有する。データ受信部は、複数の通信経路それぞれに対応付けて設けられており、対応する通信経路を介して送信装置から送られたデータを受信する。データ解析部は、複数のデータ受信部それぞれに対応付けて設けられており、対応するデータ受信部が受信したデータを解析し、受信したデータが、複数の通信経路を用いて同一データの冗長送信が行われた冗長転送データなのか、または元データを分割することで得られたデータを複数の通信経路に分散してデータ転送が行われた分割データなのかを判断する。データ選択部は、複数のデータ解析部それぞれから冗長転送データを取得し、取得した冗長転送データのうちの１つを選択し、選択した冗長転送データを出力する。データ合成部は、複数のデータ解析部それぞれから分割データを取得し、取得した分割データを合成して合成データを生成し、生成した合成データを出力する。
【発明の効果】
【００１２】
上記送信装置および受信装置では、データ転送の高信頼性と高速性との両立を図ることが可能となる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態を、図面を参照して説明する。
図１は、実施の形態の概要を示す図である。送信装置１と受信装置２とは、複数の通信経路３ａ，３ｂ，３ｃで接続されている。
【００１４】
送信装置１は、冗長転送部１ａ、データ分割転送部１ｂ、および複数のデータ送信部１ｃ，１ｄ，１ｅを有している。
冗長転送部１ａは、冗長転送の対象となるデータ４が入力されると、入力されたデータと同一内容の複数の冗長転送データ４ａ，４ｂ，４ｃを複数の通信経路３ａ，３ｂ，３ｃそれぞれに向けて転送することにより、複数の通信経路を介した冗長転送を行う。
【００１５】
データ分割転送部１ｂは、分割転送の対象となるデータ５が入力されると、入力されたデータ５を複数の分割データ５ａ，５ｂ，５ｃに分割する。データ分割転送部１ｂは、分割した分割データ５ａ，５ｂ，５ｃを複数の通信経路３ａ，３ｂ，３ｃに振り分ける。そして、データ分割転送部１ｂは、分割データ５ａ，５ｂ，５ｃを、振り分けられた通信経路３ａ，３ｂ，３ｃに向けて転送することにより、複数の通信経路を介した分割転送を行う。
【００１６】
データ送信部１ｃ，１ｄ，１ｅは、複数の通信経路３ａ，３ｂ，３ｃそれぞれに対応付けて設けられている。各データ送信部１ｃ，１ｄ，１ｅは、対応する通信経路３ａ，３ｂ，３ｃに向けて冗長転送部１ａまたはデータ分割転送部１ｂから転送された冗長転送データ４ａ，４ｂ，４ｃまたは分割データ５ａ，５ｂ，５ｃを受信する。そしてデータ送信部１ｃ，１ｄ，１ｅは、受信したデータを、対応する通信経路３ａ，３ｂ，３ｃを介して受信装置２へ送信する。
【００１７】
受信装置２は、複数のデータ受信部２ａ，２ｂ，２ｃ、複数のデータ解析部２ｄ，２ｅ，２ｆ、データ選択部２ｇ、およびデータ合成部２ｈを有する。
データ受信部２ａ，２ｂ，２ｃは、複数の通信経路３ａ，３ｂ，３ｃそれぞれに対応付けて設けられている。そしてデータ受信部２ａ，２ｂ，２ｃは、冗長転送データ４ａ，４ｂ，４ｃ、または分割データ５ａ，５ｂ，５ｃを、対応する通信経路３ａ，３ｂ，３ｃを介して送信装置１から受信する。
【００１８】
データ解析部２ｄ，２ｅ，２ｆは、複数のデータ受信部２ａ，２ｂ，２ｃそれぞれに対応付けて設けられている。データ解析部２ｄ，２ｅ，２ｆは、対応するデータ受信部２ａ，２ｂ，２ｃが受信したデータを解析する。そして、データ解析部２ｄ，２ｅ，２ｆは、受信したデータが、複数の通信経路３ａ，３ｂ，３ｃを用いて同一データの冗長送信が行われた冗長転送データ４ａ，４ｂ，４ｃなのか、または元データを分割することで得られたデータを複数の通信経路３ａ，３ｂ，３ｃに分散してデータ転送が行われた分割データ５ａ，５ｂ，５ｃなのかを判断する。データ解析部２ｄ，２ｅ，２ｆは、受信したデータが冗長転送データ４ａ，４ｂ，４ｃであれば、その冗長転送データ４ａ，４ｂ，４ｃをデータ選択部２ｇに送信する。また、データ解析部２ｄ，２ｅ，２ｆは、受信したデータが分割データ５ａ，５ｂ，５ｃであれば、その分割データ５ａ，５ｂ，５ｃをデータ合成部２ｈに送信する。
【００１９】
データ選択部２ｇは、複数のデータ解析部２ｄ，２ｅ，２ｆそれぞれからデータ４ａ，４ｂ，４ｃを取得し、取得したデータ４ａ，４ｂ，４ｃのうちの１つを選択する。例えば最初に入力されたデータが選択される。そしてデータ選択部２ｇは、選択したデータを出力する。
【００２０】
データ合成部２ｈは、複数のデータ解析部２ｄ，２ｅ，２ｆそれぞれから分割データ５ａ，５ｂ，５ｃを取得する。データ合成部２ｈは、取得した分割データ５ａ，５ｂ，５ｃを合成してデータ５を生成する。そしてデータ合成部２ｈは、生成したデータ５を出力する。
【００２１】
このような構成の送信装置１および受信装置２によれば、データ４は複数の通信経路３ａ，３ｂ，３ｃで冗長転送データによる同一内容の重複伝送が行われる。また、データ５は、複数の通信経路３ａ，３ｂ，３ｃで並列伝送が行われる。その結果、データ４の高信頼性とデータ５のデータ転送の高速性との両立を図ることが可能となる。
【００２２】
図１に示した伝送方式を複数のサーバが連携して動作するコンピュータシステムに適用することで、コンピュータシステムの高信頼性と高速性との両立を図ることができる。すなわち、複数のサーバが連携して動作するシステムでは、サーバが協働するために、適切なタイミングでコマンドの受け渡しを正確に行う必要がある。また、システム全体の性能の向上には、サーバ間のデータ伝送の高速化が必要である。
【００２３】
そこで、図１に示した通信方式を複数のサーバを連係動作させるシステムに適用した場合を例に採り、本実施の形態の詳細を説明する。
図２は、本実施の形態のシステム構成例を示す図である。図２に示すシステムは、複数の情報処理装置としてのサーバ１００，１００ａ，・・・と１台の共用（共有）メモリ装置２００を有する。
【００２４】
サーバ１００は、演算処理装置としてのＣＰＵ（Central Processing Unit）１０１、記憶装置としてのメモリ１０２、および転送制御ユニット１１０を有している。ＣＰＵ１０１、メモリ１０２、および転送制御ユニット１１０は、内部バス１０３で互いに接続されている。ＣＰＵ１０１は、サーバ１００全体を制御する。メモリ１０２は、ＣＰＵ１０１に実行させるプログラムや処理に必要なデータを記憶する。
【００２５】
転送制御ユニット１１０は、装置間インタフェースケーブル群１０を介して共用メモリ装置２００内の転送制御ユニット２１０に接続されている。転送制御ユニット１１０は、内部バス１０３を介して入力されたコマンドまたはデータを、装置間インタフェースケーブル群１０を介して送信する。また、転送制御ユニット１１０は、装置間インタフェースケーブル群１０を介して入力されたコマンドまたはデータを受信する。
【００２６】
サーバ１００ａもサーバ１００と同様に、ＣＰＵ１０１ａ、メモリ１０２ａ、および転送制御ユニット１１０ａを有している。ＣＰＵ１０１ａ、メモリ１０２ａ、および転送制御ユニット１１０ａは、内部バス１０３ａで互いに接続されている。転送制御ユニット１１０ａは、装置間インタフェースケーブル群２０を介して共用メモリ装置２００内の転送制御ユニット２２０に接続されている。ＣＰＵ１０１ａ、メモリ１０２ａ、および転送制御ユニット１１０ａは、それぞれサーバ１００内の同名の要素と同様の機能を有している。
【００２７】
共用メモリ装置２００は、メモリ２０１、メモリ制御部２０２、システム構成制御部２０３、および複数の転送制御ユニット２１０，２２０，２３０，・・・を有している。メモリ制御部２０２、システム構成制御部２０３、および複数の転送制御ユニット２１０，２２０，２３０，・・・は、互いに内部バス２０４で接続されている。
【００２８】
メモリ２０１には、複数のサーバ１００，１００ａ，・・・で共有するデータが格納される。メモリ制御部２０２は、メモリ２０１への共有データの入出力を管理する。システム構成制御部２０３は、システム全体の構成を管理する。転送制御ユニット２１０，２２０，２３０，・・・は、それぞれ装置間インタフェースケーブル群１０，２０，３０を介してサーバ１００，１００ａ，・・・に接続されている。そして、転送制御ユニット２１０，２２０，２３０，・・・は、サーバ１００，１００ａ，・・・とコマンドやデータの通信を行う。
【００２９】
装置間インタフェースケーブル群１０，２０，３０は、それぞれ複数の装置間インタフェースケーブルを有している。この装置間インタフェースケーブルによってシリアル伝送を行うことができる。
【００３０】
このように、共用メモリ装置２００は、サーバ間の共用データの管理をするだけでなく、システムの構成制御も行う。システムの構成制御では、例えば各サーバ１００，１００ａ，・・・が正常に動作しているか否かの確認処理などが行われる。サーバ間の共用データの各サーバ１００，１００ａ，・・・との間の送受信は、できるだけ高速に行われることが望まれる。また、システムの構成制御に関連するコマンドの送受信は、信頼性の高い伝送が望まれる。すなわち、図２に示した共用メモリ装置２００と各サーバ１００，１００ａ，・・・との間の通信インタフェースには、高速転送と高信頼性転送との両立が必要である。
【００３１】
そこで、伝送制御ユニット間に複数の伝送路を設け、個々の伝送路で高速のシリアル伝送を行う。伝送すべきデータを分割して複数の伝送路で並行して送信すれば、高速伝送が可能となる。また、伝送すべきコマンドのコピーを生成し、複数の伝送路で同じコマンドを重複して送信すれば、高信頼性の伝送が可能となる。
【００３２】
図３は、転送制御ユニット間の接続関係を示す図である。図３には、サーバ１００の転送制御ユニット１１０と共用メモリ装置２００の転送制御ユニット２１０との間の接続関係を示している。
【００３３】
転送制御ユニット１１０内の送信装置１１１と転送制御ユニット２１０内の受信装置２１２との間は、装置間インタフェースケーブル群１０に含まれる複数の装置間インタフェースケーブルで接続されている。同様に、転送制御ユニット２１０内の送信装置２１１と転送制御ユニット１１０内の受信装置１１２との間は、装置間インタフェースケーブル群１０に含まれる複数の装置間インタフェースケーブルで接続されている。
【００３４】
図４は、送信装置と受信装置との間のインタフェースの詳細を示す図である。送信装置１１１は、出力変換器１１１ａを有している。出力変換器１１１ａには、送信側コマンドバス１１１ｂと送信側ストアデータバス１１１ｃとが接続されている。送信側コマンドバス１１１ｂは、共用メモリ装置２００に送信するコマンドを伝送する内部バスである。送信側ストアデータバス１１１ｃは、共用メモリ装置２００に格納するデータを伝送する内部バスである。
【００３５】
また、出力変換器１１１ａには、複数の送信モジュール１４１，１４２，１４３，・・・，１４ｎが接続されている。ここで、送信モジュール１４１，１４２，１４３，・・・，１４ｎがｎ個（ｎは自然数）であり、それぞれの識別情報をＴＸ１，ＴＸ２，ＴＸ３，・・・，ＴＸｎとする。識別情報の「ＴＸ」に続く数値は、送信モジュール１４１，１４２，１４３，・・・，１４ｎに対して付与された１から順の識別番号である。
【００３６】
出力変換器１１１ａは、システムの構成制御を行うコマンドを、送信側コマンドバス１１１ｂを介して受け取る。コマンドの伝送には信頼性が要求される。そのため、出力変換器１１１ａは、入力されたコマンドを含むｎ個のコマンドパケットを生成する。そして、出力変換器１１１ａは、生成された各コマンドパケットを各送信モジュール１４１，１４２，１４３，・・・，１４ｎに出力する。送信モジュール１４１，１４２，１４３，・・・，１４ｎは入力されたコマンドパケットをシリアル形式の信号に変換する。そして、送信モジュール１４１，１４２，１４３，・・・，１４ｎは、シリアル形式の信号に変換されたパケットを、装置間インタフェースケーブル１１，１２，１３，・・・，１ｎを介して受信装置に送信する。
【００３７】
また、出力変換器１１１ａは、送信側ストアデータバス１１１ｃを介してストアデータを受け取る。ストアデータはシステムの性能に関係するので高速性が要求される。そのため、出力変換器１１１ａは、ストアデータを所定のデータ長（例えば５１２バイト）の複数の単位データに分割する。そして、出力変換器１１１ａは、識別情報が「ＴＸ１」〜「ＴＸ（ｎ−１）」の各送信モジュールに単位データを割り当てる。出力変換器１１１ａは、識別情報が「ＴＸｎ」の送信モジュールには、単位データ「ｎ−１」個に対応する復元用冗長データを割り当てる。さらに、出力変換器１１１ａは、送信モジュール１４１，１４２，１４３，・・・，１４ｎごとに、割り当てた単位データを所定個数纏めてストアデータパケットを生成する。そして、出力変換器１１１ａは、各送信モジュール１４１，１４２，１４３，・・・，１４ｎに対して対応するストアデータパケットを出力する。各送信モジュール１４１，１４２，１４３，・・・，１４ｎは入力されたストアデータパケットをシリアル形式の信号に変換する。そして、送信モジュール１４１，１４２，１４３，・・・，１４ｎは、シリアル形式の信号に変換されたストアデータパケットを、装置間インタフェースケーブル１１，１２，１３，・・・，１ｎを介して受信装置２１２に送信する。
【００３８】
受信装置２１２は、入力変換器２１２ａを有している。入力変換器２１２ａには、受信側コマンドバス２１２ｂと受信側ストアデータバス２１２ｃとが接続されている。受信側コマンドバス２１２ｂは、システム構成制御部２０３に送信するコマンドを伝送する内部バスである。受信側ストアデータバス２１２ｃは、メモリ２０１に格納するデータを伝送する内部バスである。
【００３９】
また、入力変換器２１２ａには、複数の受信モジュール２４１，２４２，２４３，・・・，２４ｎが接続されている。ここで、受信モジュール２４１，２４２，２４３，・・・，２４ｎがｎ個（ｎは自然数）であり、それぞれの識別情報をＲＸ１，ＲＸ２，ＲＸ３，・・・，ＲＸｎとする。識別情報の「ＲＸ」に続く数値は、受信モジュール２４１，２４２，２４３，・・・，２４ｎに対して付与された１から順の識別番号である。
【００４０】
受信モジュール２４１，２４２，２４３，・・・，２４ｎは、装置間インタフェースケーブル１１，１２，１３，・・・，１ｎからシリアル信号のパケットを受信する。そして、受信モジュール２４１，２４２，２４３，・・・，２４ｎは、シリアル信号を解析してパケットを構成し、入力変換器２１２ａに転送する。
【００４１】
入力変換器２１２ａは、送信装置１１１から送られたパケットを受信モジュール２４１，２４２，２４３，・・・，２４ｎを介して取得する。そして、入力変換器２１２ａは、取得したパケットがコマンドパケットなのかストアデータパケットなのかを判断する。取得したパケットがコマンドパケットであれば、入力変換器２１２ａは、各受信モジュール２４１，２４２，２４３，・・・，２４ｎから受信したコマンドパケットのうち、最初に正しく受信したコマンドパケットのみを取得する。入力変換器２１２ａは、２つ目以降のコマンドは破棄する。そして、入力変換器２１２ａは、取得したコマンドパケットに含まれるコマンドデータのみを受信側コマンドバス２１２ｂを介してシステム構成制御部２０３に送信する。
【００４２】
また、入力変換器２１２ａは、取得したパケットがストアデータであれば、各受信モジュール２４１，２４２，２４３，・・・，２４ｎから受信したストアデータパケットから単位データを抽出し、ストアデータを再構成する。そして、入力変換器２１２ａは、取得したストアデータを受信側ストアデータバス２１２ｃを介してメモリ制御部２０２に送信する。
【００４３】
次に、出力変換器１１１ａ内部構造について詳細に説明する。
図５は、出力変換器の内部構造を示す図である。出力変換器１１１ａは、コマンドパケット作成回路４０、ストアデータパケット作成回路５０、およびセレクタ６１，６２，６３，・・・，６ｎを有している。
【００４４】
コマンドパケット作成回路４０の入力側端子は、送信側コマンドバス１１１ｂに接続されている。また、コマンドパケット作成回路４０の１つの出力側端子は、複数のセレクタ６１，６２，６３，・・・，６ｎに接続されている。コマンドパケット作成回路４０は、送信側コマンドバス１１１ｂを介してコマンドデータを受け取る。コマンドパケット作成回路４０は、受け取ったコマンドデータに基づいて１つのコマンドパケットを作成する。そして、コマンドパケット作成回路４０は、作成したコマンドパケットを各セレクタ６１，６２，６３，・・・，６ｎに送信する。
【００４５】
ストアデータパケット作成回路５０の入力側端子は、送信側ストアデータバス１１１ｃに接続されている。また、ストアデータパケット作成回路５０のｎ個の出力側端子は、それぞれセレクタ６１，６２，６３，・・・，６ｎに接続されている。ストアデータパケット作成回路５０は、送信側ストアデータバス１１１ｃを介してストアデータを受け取る。ストアデータパケット作成回路５０は、受け取ったストアデータに基づいてｎ個のストアデータパケットを作成する。そして、ストアデータパケット作成回路５０は、セレクタ６１，６２，６３，・・・，６ｎに対し、作成したストアデータパケットを１つずつ送信する。すなわち、各セレクタ６１，６２，６３，・・・，６ｎには、生成されたｎ個のストアデータパケットのうちの１つが送信される。また、生成された各ストアデータパケットは、いずれか１つのセレクタに送信される。
【００４６】
セレクタ６１，６２，６３，・・・，６ｎは、入力されたコマンドパケットまたはストアデータパケットを対応する送信モジュール１４１，１４２，１４３，・・・，１４ｎに転送する。具体的には、セレクタ６１，６２，６３，・・・，６ｎは、コマンドパケットとストアデータパケットとのいずれも入力されていない状態でいずれかのパケットが入力された場合、入力されたパケットを送信モジュール１４１，１４２，１４３，・・・，１４ｎに転送する。また、セレクタ６１，６２，６３，・・・，６ｎは、コマンドパケットまたはストアデータパケットの転送中に、他方のパケットの入力があると、後から入力されたパケットの転送を一旦待機させる。そして、セレクタ６１，６２，６３，・・・，６ｎは、転送中のパケットの転送完了後、待機させていたパケットの転送を行う。
【００４７】
このような出力変換器１１１ａに送信側コマンドバス１１１ｂを介してコマンドデータが入力されると、そのコマンドデータに基づいてコマンドパケット作成回路４０によって１個のコマンドパケットに変換される。そして、生成されたコマンドパケットが各セレクタ６１，６２，６３，・・・，６ｎに送信される。送信されたコマンドパケットは、セレクタ６１，６２，６３，・・・，６ｎを介して送信モジュール１４１，１４２，１４３，・・・，１４ｎに転送される。そして、同じ内容のコマンドパケットが、各送信モジュール１４１，１４２，１４３，・・・，１４ｎから装置間インタフェースケーブル１１，１２，１３，・・・，１ｎに送出される。
【００４８】
また、出力変換器１１１ａに送信側ストアデータバス１１１ｃを介してストアデータが入力されると、そのストアデータに基づいてストアデータパケット作成回路５０によってｎ個のストアデータパケットが生成される。そして、生成されたストアデータパケットが、それぞれセレクタ６１，６２，６３，・・・，６ｎに送信される。送信されたストアデータパケットは、セレクタ６１，６２，６３，・・・，６ｎを介して送信モジュール１４１，１４２，１４３，・・・，１４ｎに転送される。そして、個別のストアデータパケットが、各送信モジュール１４１，１４２，１４３，・・・，１４ｎから装置間インタフェースケーブル１１，１２，１３，・・・，１ｎに送出される。
【００４９】
次に、コマンドパケット作成回路４０、ストアデータパケット作成回路５０、およびセレクタ６１，６２，６３，・・・，６ｎで実行される処理の処理手順について説明する。
図６は、コマンドパケット作成処理の手順を示すフローチャートである。以下、図６に示す処理をステップ番号に沿って説明する。
【００５０】
［ステップＳ１１］コマンドパケット作成回路４０は、送信側コマンドバス１１１ｂよりコマンドデータを受信する。
［ステップＳ１２］コマンドパケット作成回路４０は、受信したコマンドデータにパケット情報を付加してコマンドパケットを生成する。ここでパケット情報には、パケットの識別番号などが含まれる。
【００５１】
［ステップＳ１３］コマンドパケット作成回路４０は、コマンドパケットをｎ個のセレクタ６１，６２，６３，・・・，６ｎに送信する。
図７は、ストアデータパケット作成処理の手順を示すフローチャートである。以下、図７に示す処理をステップ番号に沿って説明する。
【００５２】
［ステップＳ２１］ストアデータパケット作成回路５０は、送信側ストアデータバス１１１ｃよりストアデータを受信する。
［ステップＳ２２］ストアデータパケット作成回路５０は、ストアデータを分割し、（ｎ−１）個の送信モジュールに割り当てる。具体的には、ストアデータパケット作成回路５０は、ストアデータを所定データ長の単位データに分割し、単位データを先頭から順に、（ｎ−１）個の送信モジュール（識別情報が「ＴＸ１」〜「ＴＸ（ｎ−１）」の送信モジュール）に対して割り当てる。各送信モジュールに振り分けられた単位データの配列が、送信モジュールごとのデータ列となる。
【００５３】
［ステップＳ２３］ストアデータパケット作成回路５０は、復元用冗長データを作成する。具体的には、ストアデータパケット作成回路５０は、送信モジュールに割り当てられた１つずつの単位データに基づいて、単位データと同じサイズの１つの復元用冗長データを作成する。このような復元用冗長データが、（ｎ−１）個の送信モジュールそれぞれに割り当てられた単位データの数と同数だけ作成される。すなわち、復元用冗長データを並べた復元用冗長データ列が作成される。
【００５４】
［ステップＳ２４］ストアデータパケット作成回路５０は、送信モジュールごとの単位データ列または復元用冗長データ列を、所定長のブロックに分割する。各ブロックは、所定数の単位データまたは復元用冗長データを含んでいる。
【００５５】
［ステップＳ２５］ストアデータパケット作成回路５０は、各ブロックにパケット情報を付加して、送信モジュールごとのストアデータパケットを生成する。送信モジュールごとのストアデータパケットには、１以上のブロックが含まれる。パケット情報には、パケットの識別番号が含まれる。パケットの識別番号は、送信モジュールごとのストアデータパケットに共通の値が付与される。
【００５６】
［ステップＳ２６］ストアデータパケット作成回路５０は、ｎ個のストアデータパケットをｎ個のセレクタに送信する。
図８は、パケット送信処理の手順を示すフローチャートである。以下、図８に示す処理をステップ番号に沿って説明する。
【００５７】
［ステップＳ３１］各セレクタ６１，６２，６３，・・・，６ｎは、コマンドパケットまたはストアデータパケットが入力されると、入力されたパケットを選択する。コマンドパケットまたはストアデータパケットが同時期に入力された場合、セレクタ６１，６２，６３，・・・，６ｎは、入力された順にパケットを選択する。そして、セレクタ６１，６２，６３，・・・，６ｎは、選択したパケットを対応する送信モジュール１４１，１４２，１４３，・・・，１４ｎに転送する。
【００５８】
［ステップＳ３２］送信モジュール１４１，１４２，１４３，・・・，１４ｎは、入力されたパケットをシリアル形式で装置間インタフェースケーブル１１，１２，１３，・・・，１ｎを介して伝送する。
【００５９】
次に、出力変換器１１１ａの内部回路について、図９〜図１１を参照して説明する。
図９は、出力変換器の内部回路を示す第１の図である。なお、図９において信号を示す線に対して斜線と共に付加した数値は、各信号線の本数を示している（図１０、図１１、図１９〜図２２においても同様）。
【００６０】
図９には、コマンドパケット作成回路４０の主要部が示されている。書き込みアドレス回路（RF＿WCT＿COPY）４１には、書き込みアドレス有効信号（tx＿rf＿read＿go＿async）と書き込みアドレス（I＿PREP＿RF＿INQCT＿COPY）とが入力されている。書き込みアドレス有効信号（tx＿rf＿read＿go＿async）は書き込みアドレス（I＿PREP＿RF＿INQCT＿COPY）が有効であることを意味する信号である。書き込みアドレス（I＿PREP＿RF＿INQCT＿COPY）は、送信コマンドバッファ４５の書き込みアドレスを指示する信号である。書き込みアドレス回路４１は、書き込みアドレス有効信号（tx＿rf＿read＿go＿async）または書き込みアドレス（I＿PREP＿RF＿INQCT＿COPY）に基づいて、送信コマンドバッファ４５の書き込みアドレスを生成する。書き込みアドレス回路４１からは、書き込みアドレス（tx＿rf＿wadrs）と書き込み許可信号（tx＿rf＿we）とが出力される。
【００６１】
比較回路（RF＿RWCT＿COMP）４２には、書き込みアドレス回路４１から出力される書き込みアドレス（tx＿rf＿wadrs）と、読み出しアドレス回路（RF＿RCT）４３から出力される読み出しアドレス（tx＿rf＿fch＿radrs）とが入力される。比較回路４２は、書き込みアドレス（tx＿rf＿wadrs）と読み出しアドレス（tx＿rf＿fch＿radrs）とが一致するか否かを判断する。比較回路４２は、アドレスが不一致の場合、不一致信号（tx＿rf＿rw＿uncomp）を出力する。
【００６２】
読み出しアドレス回路４３には、送信コマンドバッファ制御回路（RF＿READ＿CTRL）４４より出力された読み出しアドレスインクリメント信号（tx＿rf＿adrs＿ctup）が入力される。読み出しアドレスインクリメント信号（tx＿rf＿adrs＿ctup）は、送信コマンドバッファ（TX＿RF）４５の読み出しアドレスのインクリメントを指示する信号である。読み出しアドレス回路４３は、読み出しアドレスインクリメント信号が入力されるごとに、出力する読み出しアドレスの値をインクリメントする。そして、読み出しアドレス回路４３は、インクリメントした読み出しアドレス（tx＿rf＿fch＿radrs）を出力する。
【００６３】
送信コマンドバッファ制御回路４４には、読み出しアドレス回路４３から出力された読み出しアドレス（tx＿rf＿fch＿radrs）と、比較回路４２から出力された不一致信号（tx＿rf＿rw＿uncomp）とが入力される。送信コマンドバッファ制御回路４４は、不一致信号（tx＿rf＿rw＿uncomp）が入力されている間、送信コマンドバッファ４５からの逐次的なデータの読み出しを指示する。すなわち、送信コマンドバッファ制御回路４４は、読み出しアドレス回路４３から入力された読み出しアドレス（tx＿rf＿fch＿radrs）と同じ値の読み出しアドレス（O＿PREP＿TX＿RF＿RADRS）と、読み出し許可信号（O＿PREP＿TX＿RE）とを送信コマンドバッファ４５に出力する。その後、読み出しアドレス回路４３に対して読み出しアドレスインクリメント信号（tx＿rf＿adrs＿ctup）を出力する。
【００６４】
送信コマンドバッファ制御回路４４は、不一致信号（tx＿rf＿rw＿uncomp）が入力されていれば、以後同様に、読み出しアドレス（O＿PREP＿TX＿RF＿RADRS）と読み出し許可信号（O＿PREP＿TX＿RE）との出力を繰り返す。不一致信号（tx＿rf＿rw＿uncomp）とが入力されていない場合、送信コマンドバッファ４５の書き込みアドレス（tx＿rf＿wadrs）と読み込みアドレス（tx＿rf＿fch＿radrs）とが一致している。すなわち、送信コマンドバッファ４５に書き込まれたコマンドデータはすべて読み出されているため、送信コマンドバッファ制御回路４４による読み出しのためのアドレスのカウントアップ等の処理が停止する。
【００６５】
また、送信コマンドバッファ制御回路４４は、読み出しアドレスのインクリメント回数に基づいて、１パケット分のデータ長（コマンドパケット長）を計算する。そして、送信コマンドバッファ制御回路４４は、コマンドパケット長データ（tx＿packet＿length（cmd））を出力する。
【００６６】
送信コマンドバッファ４５には、送信側コマンドバス１１１ｂが入力される。送信側コマンドバス１１１ｂで入力されるデータには、送信データ（I＿TX＿RF＿RDATA）、パリティ値（I＿TX＿PARITY）、付加データ（I＿TX＿RF＿TAG）が含まれる。また、送信コマンドバッファ４５には、書き込みアドレス回路４１より出力された書き込みアドレス（tx＿rf＿wadrs）と書き込み許可信号（tx＿rf＿we）とが入力される。送信コマンドバッファ４５は、書き込み許可信号（tx＿rf＿we）が入力されると、そのときの書き込みアドレス（tx＿rf＿wadrs）で指定されている記憶領域へ、送信側コマンドバス１１１ｂを介して入力されたデータを格納する。
【００６７】
さらに、送信コマンドバッファ４５には、送信コマンドバッファ制御回路４４より出力された読み出しアドレス（O＿PREP＿TX＿RF＿RADRS）と読み出し許可信号（O＿PREP＿TX＿RE）とが入力される。送信コマンドバッファ４５は、読み出し許可信号（O＿PREP＿TX＿RE）が入力されると、そのときの読み出しアドレス（O＿PREP＿TX＿RF＿RADRS）で指定されている記憶領域からデータを読み出し、出力する。出力されるデータには、読み出しデータ（I＿PREP＿TX＿RF＿RDATA）、パリティ値（I＿PREP＿TX＿PARITY）、付加データ（I＿PREP＿TX＿RF＿TAG）が含まれる。
【００６８】
Valid信号生成回路（RF＿VAL＿GEN）４６には、送信コマンドバッファ制御回路４４より出力された読み出し許可信号（O＿PREP＿TX＿RE）と、送信コマンドバッファ４５から出力された読み出しデータ（I＿PREP＿TX＿RF＿RDATA）とが入力される。Valid信号生成回路４６は、読み出し許可信号（O＿PREP＿TX＿RE）に応じて送信コマンドバッファ４５から出力された読み出しデータ（I＿PREP＿TX＿RF＿RDATA）についての有効信号であるValid信号を生成する。そして、Valid信号生成回路４６は、送信コマンドのValid信号（tx＿cmd＿val）、送信コマンドの種類ごとにコード化したValid信号（tx＿valid＿out（cmd））、送信コマンドでＣＲＣ（Cyclic Redundancy Check）の対象となるタイミング信号（tx＿crc＿val（cmd））を出力する。
【００６９】
図１０は、出力変換器の内部回路を示す第２の図である。図１０には、ストアデータパケット作成回路５０の主要部が示されている。
書き込みアドレス回路（RAM＿WCT＿COPY）５１には、書き込みアドレス有効信号（tx＿ram＿read＿go＿async）、書き込みアドレス（I＿PREP＿RAM＿INQCT＿COPY）、およびアドレスインクリメント終了信号（tx＿fetch＿end＿async）が入力されている。書き込みアドレス有効信号（tx＿ram＿read＿go＿async）は、書き込みアドレス（I＿PREP＿RAM＿INQCT＿COPY）が有効であることを意味する信号である。書き込みアドレス（I＿PREP＿RAM＿INQCT＿COPY）は、送信ストアデータバッファ５５の書き込みアドレスを指示する信号である。アドレスインクリメント終了信号（tx＿fetch＿end＿async）は、送信ストアデータバッファ５５の書き込みアドレスのインクリメントの終了を指示する信号である。書き込みアドレス回路５１は、送信ストアデータバッファ５５の書き込みアドレスを生成する。具体的には、書き込みアドレス回路５１は、書き込みアドレス有効信号（tx＿ram＿read＿go＿async）が入力されると、アドレスインクリメント終了信号（tx＿fetch＿end＿async）が入力されるまで、書き込みアドレス（I＿PREP＿RAM＿INQCT＿COPY）が書き込みアドレス（tx＿ram＿wadrs）に出力され、同時に書き込み許可信号（tx＿ram＿we）が出力される。また、書き込みアドレス回路５１は、書き込みアドレス（I＿PREP＿RAM＿INQCT＿COPY）が入力されると、指定されたアドレスを書き込みアドレスとする。
【００７０】
比較回路５２には、書き込みアドレス回路５１から出力される書き込みアドレス（tx＿ram＿wadrs）と、読み出しアドレス回路（RAM＿RCT）５３から出力される読み出しアドレス（tx＿ram＿fch＿radrs）とが入力される。比較回路５２は、書き込みアドレス（tx＿ram＿wadrs）と読み出しアドレス（tx＿ram＿fch＿radrs）とが一致するか否かを判断する。比較回路５２は、アドレスが一致する場合、一致信号（tx＿ram＿rw＿comp）を出力する。
【００７１】
読み出しアドレス回路５３には、アドレスインクリメント終了信号（tx＿fetch＿end＿async）と、送信ストアデータバッファ制御回路５４より出力された読み出しアドレスインクリメント信号（tx＿ram＿adrs＿ctup）とが入力される。読み出しアドレスインクリメント信号（tx＿ram＿adrs＿ctup）は、送信ストアデータバッファ５５の読み出しアドレスのインクリメントを指示する信号である。読み出しアドレス回路５３は、アドレスインクリメント終了信号（tx＿fetch＿end＿async）が入力されるまで、読み出しアドレスインクリメント信号が入力されるごとに、出力する読み出しアドレスの値をインクリメントする。そして、読み出しアドレス回路５３は、インクリメントした読み出しアドレス（tx＿ram＿fch＿radrs）を出力する。
【００７２】
送信ストアデータバッファ制御回路５４には、フェッチデータ長（I＿PREP＿FETCH＿LENGTH）、読み出しアドレス回路５３から出力された読み出しアドレス（tx＿ram＿fch＿radrs）、および比較回路５２から出力された一致信号（tx＿ram＿rw＿comp）が入力される。送信ストアデータバッファ制御回路５４は、一致信号（tx＿ram＿rw＿comp）が入力されていなければ、送信ストアデータバッファ５５からの逐次的なデータの読み出しを指示する。すなわち、送信ストアデータバッファ制御回路５４は、読み出しアドレス回路５３から入力された読み出しアドレス（tx＿ram＿fch＿radrs）と同じ値の読み出しアドレス（O＿PREP＿MACx＿FCH＿RADRS）と、読み出し許可信号（O＿PREP＿MACx＿FCH＿RE）とを送信ストアデータバッファ５５に出力する。その後、読み出しアドレス回路５３に対して読み出しアドレスインクリメント信号（tx＿ram＿adrs＿ctup）を出力する。
【００７３】
送信ストアデータバッファ制御回路５４は、送信ストアデータバッファ５５から読み出されたデータがフェッチデータ長（I＿PREP＿FETCH＿LENGTH）に達するまで、読み出しアドレス（O＿PREP＿MACx＿FCH＿RADRS）と読み出し許可信号（O＿PREP＿MACx＿FCH＿RE）との出力を繰り返す。また、送信ストアデータバッファ制御回路５４は、読み出し許可信号（O＿PREP＿MACx＿FCH＿RE）のコピー信号（tx＿ram＿fch＿re＿copy）を出力する。
【００７４】
さらに、送信ストアデータバッファ制御回路５４は、読み出しアドレスのインクリメント回数に基づいて、１パケット分のデータ長（ストアデータパケット長）を計算する。そして、送信ストアデータバッファ制御回路５４は、ストアデータパケット長データ（tx＿packet＿length（data））を出力する。
【００７５】
送信ストアデータバッファ５５には、送信側ストアデータバス１１１ｃが入力される。送信側ストアデータバス１１１ｃで入力されるデータには、送信データ（I＿MACx＿FCH＿RDATA）、ＥＣＣ（Error Correcting Code）値（I＿MACx＿FCH＿RECC）、付加データ（I＿MACx＿FCH＿PAD）が含まれる。また、送信ストアデータバッファ５５には、書き込みアドレス回路５１より出力された書き込みアドレス（tx＿rf＿wadrs）と書き込み許可信号（tx＿ram＿we）とが入力される。送信ストアデータバッファ５５は、書き込み許可信号（tx＿ram＿we）が入力されると、そのときの書き込みアドレス（tx＿rf＿wadrs）で指定されている記憶領域へ、送信側ストアデータバス１１１ｃを介して入力されたデータを格納する。
【００７６】
さらに、送信ストアデータバッファ５５には、送信ストアデータバッファ制御回路５４より出力された読み出しアドレス（O＿PREP＿MACx＿FCH＿RADRS）と読み出し許可信号（O＿PREP＿MACx＿FCH＿RE）とが入力される。送信ストアデータバッファ５５は、読み出し許可信号（O＿PREP＿MACx＿FCH＿RE）が入力されると、そのときの読み出しアドレス（O＿PREP＿MACx＿FCH＿RADRS）で指定されている記憶領域からデータを読み出し、出力する。出力されるデータには、読み出しデータ（I＿PREP＿MACx＿FCH＿RDATA）、ＥＣＣ値（I＿PREP＿MACx＿FCH＿RECC）、および付加データ（I＿PREP＿MACx＿FCH＿PAD）が含まれる。
【００７７】
Valid信号生成回路（MACx＿VAL＿GEN）５６には、送信ストアデータバッファ制御回路５４より出力されたパリティエラー（I＿PREP＿TX＿RF＿RDATA）が入力される。Valid信号生成回路５６は、パリティエラー（I＿PREP＿TX＿RF＿RDATA）が入力されていなければ、Valid信号を生成する。そして、Valid信号生成回路５６は、送信ストアデータのValid信号（tx＿data＿val）、コード化された送信ストアデータのValid信号（tx＿valid＿out（data））、送信ストアデータでＣＲＣ対象となるタイミング信号（tx＿crc＿val（data））を出力する。
【００７８】
ＥＣＣチェック回路５７には、送信ストアデータバッファ５５より出力された読み出しデータ（I＿PREP＿MACx＿FCH＿RDATA）、ＥＣＣ値（I＿PREP＿MACx＿FCH＿RECC）、および付加データ（I＿PREP＿MACx＿FCH＿PAD）が入力される。ＥＣＣチェック回路５７は、送信ストアデータバッファ５５から読み出されたデータのＥＣＣチェックを行う。そして、ＥＣＣチェック回路５７は、ＥＣＣチェック後の送信データを出力する。出力されるデータには、ＥＣＣチェック後の送信ストアデータバッファの読み出しデータのValid値（tx＿data＿val）、ＥＣＣチェック後の送信ストアデータバッファの読み出しデータ（tx＿macx＿data）、ＥＣＣチェック後の送信ストアデータバッファの付加データ（tx＿macx＿pad＿val）、およびＥＣＣチェック時のエラー検出信号（tx＿macx＿ecc＿err）が出力される。
【００７９】
図１１は、出力変換器の内部回路を示す第３の図である。図１１には、コマンドパケット作成回路４０の一部、ストアデータパケット作成回路５０の一部、およびセレクタ群（RAM・RF＿SEL）６０の接続関係が示されている。ここで、セレクタ群６０は、複数のセレクタ６１，６２，６３，・・・，６ｎを纏めて示したものである。
【００８０】
コマンドパケット作成回路４０のデコーダ（DECODE）４７には、Valid信号生成回路４６より出力されたコマンドデータのValid信号（tx＿valid＿out（cmd））と、Valid信号生成回路５６より出力された送信ストアデータのValid信号（tx＿valid＿out（data））とが入力される。デコーダ４７は、入力されたデータをデコードする。そして、デコーダ４７は、デコードしたデータを出力する。
【００８１】
コマンドパケット識別番号生成回路（CMDPID＿CT）４８は、デコーダ４７でデコードされた後のコマンドデータのValid信号（tx＿valid＿out（cmd））が入力される。コマンドパケット識別番号生成回路４８は、Valid信号（tx＿crc＿val（cmd））に応答して、コマンドパケット用のパケット識別番号を生成する。そして、コマンドパケット識別番号生成回路４８は、生成したパケット識別番号（tx＿packet＿id）を出力する。
【００８２】
ストアデータパケット識別番号生成回路（DATAPID＿CT）５８は、デコーダ４７でデコードされた後のストアデータのValid信号（tx＿valid＿out（data））が入力される。コマンドパケット識別番号生成回路４８は、Valid信号（tx＿valid＿out（data））に応答して、ストアデータパケット用のパケット識別番号を生成する。そして、ストアデータパケット識別番号生成回路５８は、生成したパケット識別番号（tx＿packet＿id）を出力する。
【００８３】
ヘッダ生成回路（HEADER＿GEN）５９には、Valid信号生成回路４６より出力されたコマンドデータのValid信号（tx＿valid＿out（cmd））、Valid信号生成回路５６より出力された送信ストアデータのValid信号（tx＿valid＿out（data））、送信コマンドバッファ制御回路４４より出力されたコマンドパケット長データ（tx＿packet＿length（cmd））、および送信ストアデータバッファ制御回路５４より出力されたストアデータパケット長データ（tx＿packet＿length（data））が入力される。ヘッダ生成回路５９は、入力されたデータに基づいて、コマンドパケットおよびストアデータパケットのヘッダ情報を生成すると共に、ヘッダ情報のValid信号を生成する。ヘッダ生成回路５９からは、ヘッダ情報のValid信号（tx＿header＿valid）とヘッダ情報（tx＿header＿lw）とが出力される。
【００８４】
冗長データ作成回路（Mn＿DATA＿GEN）５０ａには、ＥＣＣチェック回路５７より出力されたＥＣＣチェック後の送信ストアデータバッファの読み出しデータ（tx＿macx＿data）が入力される。この入力データは、（ｎ−1）個のセレクタの分だけ入力される。冗長データ作成回路５０ａは、入力されたデータ（tx＿macx＿data）に基づいて復元用冗長データを生成する。そして、冗長データ作成回路５０ａは、復元用冗長データを各セレクタに出力する。
【００８５】
冗長データ作成不可回路（Mn＿ERR＿OR）５０ｂには、ＥＣＣチェック回路５７より出力されたＥＣＣチェック時のエラー検出信号（tx＿macx＿ecc＿err）が入力される。この入力データは、（ｎ−1）個のセレクタの分だけ入力される。冗長データ作成不可回路５０ｂは、エラー検出信号（tx＿macx＿ecc＿err）に基づいてデータのエラーの有無を判断し、エラーがある場合、復元用冗長データが作成不可であることを示すエラー信号を各セレクタ出力する。
【００８６】
セレクタ群６０には、図５に示した複数のセレクタ６１，６２，６３，・・・，６ｎが含まれている。これらのセレクタ群６０には、Valid信号生成回路４６から出力された送信コマンドのValid信号（tx＿cmd＿val）およびタイミング信号（tx＿crc＿val（cmd））、送信コマンドバッファ４５より出力されたすべてのデータ、Valid信号生成回路５６から出力されたValid信号（tx＿data＿val）およびタイミング信号（tx＿crc＿val（data））、ＥＣＣチェック回路５７より出力されたすべてのデータが入力される。また、セレクタ群６０には、コマンドパケット識別番号生成回路４８、ストアデータパケット識別番号生成回路５８、冗長データ作成回路５０ａ、および冗長データ作成不可回路５０ｂの出力値が入力される。
【００８７】
なお、ＥＣＣチェック回路５７より出力されたデータは、［ｎ−１」個のセレクタ６１，６２，６３，・・・に分散して入力される。また、冗長データ作成回路５０ａ、および冗長データ作成不可回路５０ｂから出力されたデータは、セレクタ６ｎに入力される。
【００８８】
セレクタ群６０は、送信モジュール１４１，１４２，１４３，１４４，１４ｎそれぞれに対応付けて設けられたＣＲＣ（Cyclic Redundancy Check）生成回路（TX1＿CRC＿GEN, TX2＿CRC＿GEN, TX3＿CRC＿GEN, TX4＿CRC＿GEN,・・・, TXn＿CRC＿GEN）,１５１，１５２，１５３，１５４，・・・，１５ｎに対してデータを出力する。出力されるデータは、送信モジュール用パケットデータ付加コード（m1＿tx＿code, m2＿tx＿code, m3＿tx＿code, m4＿tx＿code, mn＿tx＿code）、送信モジュール用パケットデータ（m1＿tx＿data, m2＿tx＿data, m3＿tx＿data, m4＿tx＿data, mn＿tx＿data）、送信モジュール用ＣＲＣ対象パケットデータタイミング信号（m1＿ tx＿crcgen＿val, m2＿ tx＿crcgen＿val, m3＿ tx＿crcgen＿val, m4＿ tx＿crcgen＿val, mn＿ tx＿crcgen＿val）、送信モジュール用ＣＲＣ作成タイミング信号（m1＿rx＿crc＿val, m2＿rx＿crc＿val, m3＿rx＿crc＿val, m4＿rx＿crc＿val, mn＿rx＿crc＿val）である。
【００８９】
ＣＲＣ生成回路１５１，１５２，１５２，１５４，１５ｎは、入力されたデータに基づいてＣＲＣを生成する。そして、ＣＲＣを付加したパケットを対応する送信モジュール１４１，１４２，１４３，１４４，１４ｎに出力する。
【００９０】
以上のような回路構成によって出力変換器１１１ａが実現できる。
次に、出力変換器１１１ａで生成されるコマンドパケットとデータパケットとについて詳細に説明する。
【００９１】
図１２は、コマンドパケットのデータ構造を示す図である。コマンドパケット作成回路４０では、コマンドデータ３００に基づいて、１つのコマンドパケット３１０が生成される。コマンドパケット３１０は、コマンドデータフィールド３１１、パケット識別番号（Packet No.）フィールド３１２、パケット種別識別子（PacketID）フィールド３１３、およびチェックコード（Check Code）フィールド３１４を有している。パケット識別番号フィールド３１２、パケット種別識別子フィールド３１３、およびチェックコードフィールド３１４に設定される情報が、パケット情報である。
【００９２】
コマンドデータフィールド３１１は、送信側コマンドバス１１１ｂ経由で入力されたコマンドデータが格納される。
パケット識別番号フィールド３１２には、コマンドパケットを一意に識別するための通し番号（パケット識別番号）が格納される。例えば、コマンドパケットを作成するごとに１ずつカウントアップされるカウンタによって、パケット識別番号が生成される。そして、コマンドパケット３１０を生成する際に、そのときのカウンタの値がパケット識別番号フィールド３１２に格納される。
【００９３】
パケット種別識別子フィールド３１３には、パケットの種別を識別するためのフラグ（パケット種別識別子）が格納される。パケットの種別には、コマンドパケットとストアデータパケットとがある。コマンドパケットの場合、パケット種別識別子として”ＣＭＤ”の値が設定される。
【００９４】
チェックコードフィールド３１４には、コマンドパケットのエラーを検出するためのコード（チェックコード）が格納される。
このように、コマンドデータ３００に対して、パケット識別番号、パケット種別識別子、およびチェックコードのパケット情報を付加することでコマンドパケット３１０が生成される。
【００９５】
図１３は、ストアデータパケットのデータ構造例を示す図である。ストアデータパケット作成回路５０では、入力されたストアデータ３２０に基づいて、複数のストアデータパケット３３０，３４０，・・・，３５０，３６０が生成される。ストアデータパケット３３０は、識別情報が「ＴＸ１」の送信モジュール１４１用に生成されたパケットである。ストアデータパケット３４０は、識別情報が「ＴＸ２」の送信モジュール１４２用に生成されたパケットである。ストアデータパケット３５０は、識別情報が「ＴＸ（ｎ−１）」の送信モジュール（図示せず）用に生成されたパケットである。ストアデータパケット３６０は、識別情報が「ＴＸｎ」の送信モジュール１４ｎ用に生成されたパケットである。
【００９６】
ストアデータ３２０は、ストアデータパケット作成回路５０により、「データ分割」、「復元用冗長データ作成」、「ブロック分割」の処理後にパケット情報が付加される。
「データ分割」では、ストアデータ３２０が複数の単位データ３２１，３２２，・・・，３２ｍ，３２ｎ，３２ｏ，・・・，３２ｒ，・・・に分割される。図１３の例では、ストアデータ３２０の先頭から順に、単位データに対して１から昇順の識別番号を付与している。
【００９７】
単位データ３２１，３２２，・・・，３２ｍ，３２ｎ，３２ｏ，・・・，３２ｒ，・・・は、先頭から順に、識別情報「ＴＸ１」〜「ＴＸ（ｎ−１）」の「ｎ−１」個の送信モジュールに均等に割り振られる。
【００９８】
各単位データを先頭から順にＤａｔａ［１］，Ｄａｔａ［２］，Ｄａｔａ［３］，・・・と表した場合、（ｎ−１）個の送信モジュール（「ＴＸ１」〜「ＴＸ（ｎ−１）」）に対して、次のように振り分けられる。
ＴＸ１＝Ｄａｔａ［１］，・・・，Ｄａｔａ［ｎ］，・・・
ＴＸ２＝Ｄａｔａ［２］，・・・，Ｄａｔａ［ｎ＋１］，・・・
：
ＴＸ（ｎ−１）＝Ｄａｔａ［ｎ−１］，・・・，Ｄａｔａ［２ｎ−２］，・・・
各送信モジュールに振り分けられた単位データによって、送信モジュールごとの単位データ列が形成される。
【００９９】
その後、「復元用冗長データ作成」処理が行われる。「復元用冗長データ作成」とは、識別情報「ＴＸｎ」の送信モジュール用の復元用冗長データを作成することである。復元用冗長データは、他の転送モジュールの同タイミングのデータをビットごとに排他論理和を演算した結果得られるものである。ここで、同タイミングのデータとは、各ストアデータパケット内の同じ順番の単位データである。ビット毎の排他論理和の符号を“∀”とすると、復元用冗長データ（Ｄａｔａ［α］，Ｄａｔａ［β］，・・・）の演算式は以下のようになる。
ＴＸｎ＝Ｄａｔａ［α］Ｄａｔａ［β］，・・・
Ｄａｔａ［α］＝Ｄａｔａ［１］∀Ｄａｔａ［２］∀，・・・，∀Ｄａｔａ［ｎ−１］
Ｄａｔａ［β］＝Ｄａｔａ［ｎ］∀Ｄａｔａ［ｎ＋１］∀，・・・，∀Ｄａｔａ［２ｎ−２］
作成された復元用冗長データは、識別情報「ＴＸｎ」の送信モジュールに振り分けられる。そして、振り分けられた復元用冗長データにより復元用冗長データ列が形成される。
【０１００】
各送信モジュールに振り分けられた単位データ列および復元用冗長データ列は、それぞれ「ブロック分割」処理が施される。「ブロック分割」とは、転送モジュールごとの単位データ列および作成された復元用冗長データ列を固定長のブロックに分割する処理である。ブロックのサイズは、単位データのサイズ（復元用冗長データのサイズと同じ）の整数倍である。すなわち、１つのブロックには、１以上の単位データまたは復元用冗長データが含まれる。
【０１０１】
「ブロック分割」が行われた後、ブロック分割された単位データ列または復元用冗長データ列にパケット情報が付与され、ストアデータパケット３３０，３４０，・・・，３５０，３６０となる。
【０１０２】
ストアデータパケット３３０，３４０，・・・，３５０，３６０には、パケット識別番号（Packet No.）フィールド３３１，３４１，３５１，３６１、パケット種別識別子（PacketID）フィールド３３２，３４２，３５２，３６２、ブロック長（Block-Length）フィールド３３３，３４３，３５３，３６３、ブロックフィールド３３４，３４４，３５４，３６４、およびチェックコードフィールド３３５，３４５，３５５，３６５が設けられている。
【０１０３】
パケット識別番号フィールド３３１，３４１，３５１，３６１には、ストアデータ３２０を送信するためのパケットであることを識別するための通し番号（パケット識別番号）が格納される。例えば、ストアデータパケット３３０，３４０，・・・，３５０，３６０を生成するための一連の処理を実行するごとに１ずつカウントアップされるカウンタによって、パケット識別番号が生成される。そして、ストアデータパケット３３０，３４０，・・・，３５０，３６０を生成する際に、そのときのカウンタの値がパケット識別番号のフィールド３３１，３４１，３５１，３６１に格納される。すなわち、同一のストアデータ３２０が分割されたものと識別するため、各ストアデータパケット３３０，３４０，・・・，３５０，３６０には同じ値のパケット識別番号が格納される。
【０１０４】
パケット種別識別子フィールド３３２，３４２，３５２，３６２には、パケットの種別を識別するためのフラグ（パケット種別識別子：Packet ID）が格納される。パケットの種別には、コマンドパケットとストアデータパケットとがある。ストアデータパケットの場合、パケット種別識別子として”ＳＴＤ”の値が格納される。
【０１０５】
ブロック長フィールド３３３，３４３，３５３，３６３には、次のチェックコードフィールドまでのデータ長（ブロック長）が格納される。所定の１ブロック分のデータがブロックフィールドに含まれていれば、ブロック長フィールド３３３，３４３，３５３，３６３には所定の１ブロック分のデータ長が設定される。なお、最終のブロックは所定の１ブロック分のよりもデータ量が少ない場合がある。
【０１０６】
ブロックフィールド３３４，３４４，３５４，３６４には、１ブロック分の単位データまたは復元用冗長データが格納される。
チェックコードフィールド３３５，３４５，３５５，３６５には、直前のブロックのデータのエラーを検出するためのコードが格納される。
【０１０７】
ブロックのフィールドとチェックコードのフィールドとは、ストアデータ３２０内の単位データの数に応じて、交互に繰り返し設けられる。
ここで、識別情報「ＴＸ１」の送信モジュール用のストアデータパケット３３０に着目して、データ構造をさらに詳細に説明する。
【０１０８】
図１４は、ストアデータパケットの詳細構造を示す図である。図１４の例では、ブロック長の値を「Ｌ」（単位データ「Ｌ」個分）としている。また、図１４では、ストアデータ３２０を分割したときの単位データを通し番号を関数式ｆ（ｋ）で表している。この関数式は、ｆ（ｋ）＝（ｎ−１）（ｋ−１）＋１と定義される。ここで、ｋは、ストアデータ３２０内での単位データの順番を表す自然数である。ｎは、送信モジュールの数を表す自然数である。ストアデータ３２０内の先頭の単位データ（ｋ＝１）であれば、その単位データの通し番号「ｆ（ｋ）＝１」となる。その後、ｋの値が１増えるごとに、ｆ（ｋ）の値は「ｎ−１」ずつ増加する。
【０１０９】
ストアデータパケット３３０の最初のブロックフィールド３３４には、Ｌ個の単位データが格納されている。そして、最初のチェックコードフィールド３３５には、ストアデータパケット３３０の先頭からブロックフィールド３３４の最後までのデータのエラーを検査するためのチェックコードが格納される。
【０１１０】
２つめのブロックフィールド３３６には、Ｌ個の単位データが格納されている。２つめのチェックコードフィールド３３７には、ブロックフィールド３３６内のデータを検査するためのチェックコードが格納される。その後、ブロックフィールドとチェックコードフィールドとが交互に設けられる。図１４の例では、「ｐ−１」番目（ｐは自然数）のブロックフィールド３３８が最後のブロックフィールドである。
【０１１１】
最後のブロックフィールド３３８には、Ｌ個以下の単位データが格納される。図１４の例では、ｑ個（ｑは、Ｌ以下の自然数）の単位データがブロックフィールド３３８に格納されている。最後のブロックフィールド３３８に続くチェックコードフィールド３３９には、直前のブロックフィールド３３８に格納されたｑ個の単位データに対するチェックコードが格納される。
【０１１２】
なお、ブロック長の「Ｌ」値は他の送信モジュール用のストアデータパケットで共通の値である。送信されるストアデータのデータ長が予め分かっている場合、そのデータ長に応じた最適値が、ブロック長として予め設定される。
【０１１３】
次に、入力変換器２１２ａの内部構造について詳細に説明する。
図１５は、入力変換器の内部構造を示す図である。入力変換器２１２ａは、複数の受信回路７０，７０ａ，７０ｂ，・・・，７０ｍ、選択回路８０、および合成回路９０を有している。
【０１１４】
受信回路７０，７０ａ，７０ｂ，・・・，７０ｍは、それぞれ受信モジュール２４１，２４２，２４３，・・・，２４ｎに接続されている。そして、各受信回路７０，７０ａ，７０ｂ，・・・，７０ｍは、接続された受信モジュール２４１，２４２，２４３，・・・，２４ｎ経由で入力されたパケットの内容を解析する。そして、受信回路７０，７０ａ，７０ｂ，・・・，７０ｍは、入力されたパケットがコマンドパケットであれば、そのコマンドパケットから取得したコマンドデータを選択回路８０に転送する。また、受信回路７０，７０ａ，７０ｂ，・・・，７０ｍは、入力されたパケットがストアデータパケットであれば、そのストアデータパケットから取得したストアデータの単位データ列を合成回路９０に転送する。
【０１１５】
受信回路７０は、デコーダ７１、コマンドバッファ７２、およびデータバッファ７３、を有している。デコーダ７１は、受信モジュール２４１に接続されている。デコーダ７１は、受信モジュール２４１から入力されたパケットのパケット種別識別子を参照し、パケットの種別を判断する。デコーダ７１は、入力されたパケットがコマンドパケット、そのコマンドデータをコマンドバッファ７２に格納する。また、デコーダ７１は、入力されたパケットがストアデータパケットであれば、そのストアデータパケットをデータバッファ７３に格納する。
【０１１６】
また、デコーダ７１は、エラーチェック機能を有している。すなわち、デコーダ７１は、コマンドパケットとストアデータコマンドとのエラーチェックを行う。具体的には、デコーダ７１は、コマンドパケットのチェックコードを取得し、コマンドパケットのエラーの有無を判断する。すなわち、デコーダ７１は、コマンドパケットに基づいてエラーチェックコードを生成し、コマンドパケットに付与されていたエラーチェックコードと一致することを確認する。エラーチェックコードの値が一致すれば、コマンドパケットを正常に受信したと判断できる。エラーチェックコードの値が一致しない場合、エラーが発生したものと判断される。デコーダ７１は、エラーが発生したコマンドパケットに、エラーが発生した旨のフラグを付与する。
【０１１７】
また、デコーダ７１は、ストアデータパケットのブロックごとのエラーの有無を判断する。すなわち、デコーダ７１は、ブロック内の単位データ列に基づいてエラーチェックコードを生成し、ストアデータパケットに付与されていたエラーチェックコードと一致することを確認する。エラーチェックコードの値が一致すれば、エラーチェックコードに対応するブロックを正常に受信したと判断できる。エラーチェックコードの値が一致しない場合、エラーチェックコードに対応するブロックにエラーが発生したものと判断される。デコーダ７１は、エラーが発生したブロックに、エラーが発生した旨のフラグを付与する。
【０１１８】
コマンドバッファ７２は、コマンドパケットを記憶する記憶装置である。コマンドバッファ７２は、選択回路８０に接続されている。そして、コマンドバッファ７２に格納されたコマンドパケットは、格納が早い順に選択回路８０に出力される。
【０１１９】
データバッファ７３は、ストアデータパケットを記憶する記憶装置である。データバッファ７３は、選択回路８０に接続されている。そして、データバッファ７３に格納されたストアデータパケットは、格納が早い順に合成回路９０に出力される。
【０１２０】
受信回路７０ａ，７０ｂ，・・・，７０ｍも受信回路７０と同様の機能を有している。その結果、選択回路８０には、受信回路７０ａ，７０ｂ，・・・，７０ｍそれぞれからコマンドパケットが入力される。また、合成回路９０には、受信回路７０ａ，７０ｂ，・・・，それぞれからストアデータパケットが入力される。
【０１２１】
選択回路８０は、受信回路７０，７０ａ，７０ｂ，・・・，７０ｍから入力されたコマンドデータのうち、エラーのない最初のコマンドパケットのみを取得する。選択回路８０は、２番目以降に入力されたコマンドパケットは破棄する。最初に入力されたコマンドパケットにエラーがあればそのコマンドパケットは破棄され、次のエラーのないコマンドパケットが取得される。選択回路８０は、取得したコマンドパケットからコマンドデータを抽出し、そのコマンドデータを受信側コマンドバス２１２ｂを介して転送する。
【０１２２】
合成回路９０は、受信回路７０，７０ａ，７０ｂ，・・・から入力されたストアデータパケットに含まれる単位データ列を合成し、ストアデータを生成する。また、合成回路９０は、いずれかのブロックにエラーがある場合、対応する１ブロック分の復元用冗長データ列を用いてエラーのあったブロック内の単位データ列を復元する。そして、合成回路９０は、生成したストアデータを、受信側ストアデータバス２１２ｃを介して転送する。
【０１２３】
このような入力変換器２１２ａに受信モジュール２４１，２４２，２４３，・・・，２４ｎを介してパケットが入力されると、受信回路７０，７０ａ，７０ｂ，・・・，７０ｍ内のデコーダでコマンドパケットとストアデータパケットに分類される。そして、コマンドパケットからコマンドデータが抽出される。ストアデータパケットからは、ストアデータの単位データ列または復元用冗長データ列が抽出される。コマンドデータとストアデータの単位データ列または復元用冗長データ列は、受信回路７０，７０ａ，７０ｂ，・・・，７０ｍにおいてコマンドバッファまたはデータバッファに格納される。格納されたコマンドデータは、エラーチェックが行われる。同様に、格納された単位データ列または復元用冗長データ列は、ブロックごとのエラーチェックが行われる。そして選択回路８０によりエラーのないコマンドデータが１つだけ選択されて受信側コマンドバス２１２ｂに転送される。また合成回路９０により複数の受信モジュール２４１，２４２，２４３，・・・で受信した単位データ列が合成され、合成後のストアデータが受信側ストアデータバス２１２ｃに転送される。
【０１２４】
次に、受信回路７０、選択回路８０、および合成回路の処理手順について説明する。
図１６は、パケット受信処理の手順を示すフローチャートである。以下、図１６に示す処理をステップ番号に沿って説明する。なお、装置間インタフェースケーブル１１を介してシリアル形式のデータを受信した場合の処理として説明する。
【０１２５】
［ステップＳ４１］受信モジュール２４１は、装置間インタフェースケーブル１１を介して受信したシリアル形式のデータをパケットに変換する。受信モジュール２４１は、パケットを受信回路７０に転送する。
【０１２６】
［ステップＳ４２］受信回路７０のデコーダ７１は受信したパケットのエラーチェックを行う。エラーがあれば、デコーダ７１は、該当するデータにエラーフラグを設定する。
［ステップＳ４３］デコーダ７１は、エラーチェックをしたパケットを、コマンドパケットとストアデータパケットに分類する。そして、デコーダ７１は、取得したパケットがコマンドパケットであれば、そのコマンドパケットからコマンドデータを取得してコマンドバッファ７２に格納する。また、デコーダ７１は、取得したパケットがストアデータパケットであれば、そのストアデータパケットからブロックごとの単位データ列を取得して、データバッファ７３に格納する。
【０１２７】
次に、コマンドデータの選択処理について説明する。
図１７は、コマンドデータ選択処理の手順を示すフローチャートである。以下、図１７に示す処理をステップ番号に沿って説明する。
【０１２８】
［ステップＳ５１］選択回路８０は、各受信回路７０，７０ａ，７０ｂ，・・・，７０ｍ内のコマンドバッファにコマンドデータが格納されると、そのコマンドデータを取得し、エラーフラグの有無をチェックする。
【０１２９】
［ステップＳ５２］選択回路８０は、取得したコマンドパケットにエラーがあるか否かを判断する。エラーがあれば処理がステップＳ５３に進められる。エラーがなければ処理がステップＳ５５に進められる。
【０１３０】
［ステップＳ５３］選択回路８０は、各受信回路７０，７０ａ，７０ｂ，・・・，７０ｍから取得したすべてのコマンドパケットがエラーになったか否かを判断する。例えば、選択回路８０は、コマンドパケットのパケット識別番号に対応付けて、エラーとなったコマンドパケットの数を記憶しておく。そして、選択回路８０は、エラーとなったコマンドパケットの数が受信回路の数に等しくなった場合、すべてのコマンドパケットがエラーになったものと判断する。すべてのコマンドパケットがエラーとなった場合、処理がステップＳ５４に進められる。未受信のコマンドパケットがある場合、処理がステップＳ５７に進められる。
【０１３１】
［ステップＳ５４］選択回路８０は、すべてのコマンドパケットでエラーとなると、コマンドパケットの転送が失敗したときのエラー処理を行う。エラー処理は、例えば、送信装置に対してコマンドパケットの再送を要求する処理である。その後、コマンドデータ選択処理が終了する。
【０１３２】
［ステップＳ５５］選択回路８０は、同一のコマンドデータを転送済か否かをチェックする。例えば、選択回路８０は、最後に転送したコマンドデータのパケット識別番号を記憶しておく。そして、選択回路８０は、受信したコマンドパケットのパケット識別番号が、転送済のコマンドデータのパケット識別番号と同じであれば、受信したコマンドパケットに含まれるコマンドデータは転送済である。
【０１３３】
［ステップＳ５６］選択回路８０は、同一のコマンドデータを転送済であれば、処理をステップＳ５７に進める。また、選択回路８０は、同一のコマンドデータが未転送であれば、処理をステップＳ５８に進める。
【０１３４】
［ステップＳ５７］選択回路８０は、コマンドパケットにエラーがあった場合、あるいはすでに同一のコマンドデータが転送済の場合、受信したコマンドデータを破棄する。その後、コマンドデータ選択処理が終了する。
【０１３５】
［ステップＳ５８］選択回路８０は、コマンドパケットから抽出したコマンドを受信側コマンドバス２１２ｂを介して転送する。
［ステップＳ５９］選択回路８０は、同一コマンドデータの以後の転送を抑止する。例えば、選択回路８０は、転送したコマンドデータのパケット識別番号を記憶する。そして、選択回路８０は、以後、記憶したパケット識別番号と同じパケット識別番号のコマンドパケット内のコマンドデータの転送を抑止する。その後、コマンド選択処理が終了する。
【０１３６】
次に、ストアデータ合成処理について説明する。
図１８は、ストアデータ合成処理の手順を示すフローチャートである。以下、図１８に示す処理をステップ番号に沿って説明する。
【０１３７】
［ステップＳ６１］合成回路９０は、各受信回路７０，７０ａ，７０ｂ，・・・，７０ｍ内のデータバッファにストアデータの単位データ列または復元用冗長データ列が格納されると、それぞれのデータを取得し、ブロック単位でエラーフラグをチェックする。
【０１３８】
［ステップＳ６２］合成回路９０は、受信モジュール２４１，２４２，２４３，・・・，２４ｎそれぞれで受信されるストアデータパケット内での格納順が同じ順番のブロックのデータが揃うのを待つ。
【０１３９】
［ステップＳ６３］合成回路９０は、受信モジュール２４１，２４２，２４３，・・・，が受信した各ストアデータパケット内の同じ順番のブロック（単位データ列を含むブロック）のデータがすべて正常か否かを判断する。少なくとも１つのブロックでエラーが検出されていれば、異常ありと判断される。すべてのブロックが正常に受信できていれば、処理がステップＳ６７に進められる。少なくとも１つのブロックでエラーが検出された場合、処理がステップＳ６４に進められる。
【０１４０】
［ステップＳ６４］合成回路９０は、エラーがあったブロックの復元が可能か否かを判断する。具体的には、合成回路９０は、受信モジュール２４１，２４２，２４３，・・・，２４ｎそれぞれで受信されたストアデータパケット内の同一順番のブロックのうち、単位データ列を含むブロックの１つにエラーがあり、復元用冗長データ列を含むブロックにエラーがないことを確認する。この条件を満たしていれば、エラーのあったブロックを復元可能である。復元可能であれば、処理がステップＳ６６に進められる。復元不可能であれば、処理がステップＳ６５に進められる。
【０１４１】
［ステップＳ６５］合成回路９０は、ストアデータパケットの転送が失敗したときのエラー処理を行う。エラー処理は、例えば、送信装置に対してストアデータパケットの再送を要求する処理である。その後、合成処理が終了する。
【０１４２】
［ステップＳ６６］合成回路９０は、エラーを検出したパケット内のデータを復元する。具体的には、合成回路９０は、エラーが検出されたブロックと同じ送信順の他のブロックのデータ（単位データ列と復元用冗長データ列）のビットごとの排他的論理和を計算する。その計算結果が、エラーが検出されたブロックに含まれる単位データ列となる。
【０１４３】
［ステップＳ６７］合成回路９０は、単位データを結合し、受信側ストアデータバス２１２ｃに送出する。その後、合成処理が終了する。
次に、入力変換器２１２ａの内部回路について、図１９〜図２２を参照して説明する。
【０１４４】
図１９は、入力変換器の内部回路を示す第１の図である。受信モジュール２４１からの入力はデコーダ７１の受信パケットデコード回路（RX1＿VALID＿GEN）７１ａに入力される。受信パケットデコード回路７１ａは、受信したパケットを解析し、解析結果を出力する。出力される解析結果には、受信パケットのヘッダ情報を示す信号（mx＿rx＿header＿val）、受信パケットのペイロードを示す信号（mx＿rx＿val）、受信パケットのデータ（mx＿rx＿dat）、受信パケットのＣＲＣの値（mx＿rx＿crc＿val）、受信パケットにおけるＣＲＣのチェックの対象を示すタイミング信号（mx＿rx＿crc＿chk）、受信パケットの付加データ（mx＿rx＿pad）、およびエラー検出信号（mx＿rx＿err＿val）が含まれる。
【０１４５】
ＣＲＣチェック回路（CRC＿CHECK）７１ｂには、受信パケットデコード回路７１ａからのすべての出力データが入力される。ＣＲＣチェック回路７１ｂは、入力されたデータに基づいてＣＲＣのチェックを行う。そして、ＣＲＣチェック回路７１ｂは、チェック結果を出力する。出力されるチェック結果には、ＣＲＣチェック後のヘッダ情報を示す信号（mx＿rx＿header＿valid）、ＣＲＣチェック後のペイロードデータを示す信号（mx＿rx＿valid）、ＣＲＣチェック後の受信パケットのデータ（mx＿rx＿data）、ＣＲＣチェックで正常であることを示す正常検出信号（mx＿rx＿crc＿ok）、ＣＲＣでエラーが検出されたことを示すエラー検出信号（mx＿rx＿crc＿ng）、およびＣＲＣチェック後の付加データ（mx＿rx＿tag）が含まれる。
【０１４６】
ＥＣＣ作成回路（ECC＿GEN）７１ｃには、受信パケットデコード回路７１ａの出力のうち、受信パケットのペイロードを示す信号（mx＿rx＿val）、受信パケットのデータ（mx＿rx＿dat）、受信パケットの付加データ（mx＿rx＿pad）、およびエラー検出信号（mx＿rx＿err＿val）が入力される。ＥＣＣ作成回路７１ｃは、入力されたデータに基づいてＥＣＣを作成する。そして、ＥＣＣ作成回路７１ｃは、作成したＥＣＣ（mx＿rx＿ecc）を出力する。
【０１４７】
受信パケット分析回路（VALID＿SELECT・PACKET＿ID＿CHECK）７１ｄには、ＣＲＣチェック回路７１ｂとＥＣＣ作成回路７１ｃとの出力データが入力される。受信パケット分析回路７１ｄは、入力されたデータに基づいて、受信パケットの分析および分類を行う。分類は、ヘッダ情報に含まれるパケット種別識別子に基づいて行われる。すなわち、パケット種別識別子が「ＣＭＤ」であればコマンドパケット、「ＳＴＤ」であればストアデータパケットであると判断される。
【０１４８】
受信パケットがコマンドパケットであれば、受信パケット分析回路７１ｄは、コマンドバッファ７２に対する分析結果の書き込み指示を出力する。コマンドバッファ７２に出力される書き込み指示には、コマンドバッファ７２への書き込み許可信号（mx＿rx＿cmd＿we）、受信コマンドデータ（mx＿rx＿cmd）、受信コマンドデータのＥＣＣ（mx＿rx＿cmd＿ecc）、受信コマンドデータの付加データ（mx＿rx＿cmd＿tag）、受信コマンドデータの最終データポインタ（mx＿rx＿cmd＿readgo）、受信コマンドデータのエラー信号（mx＿rx＿cmd＿err）、および受信コマンドデータのパケット識別番号（mx＿rx＿cmd＿pno）が含まれる。なお、パケット識別番号（mx＿rx＿cmd＿pno）以外は、コマンドバッファ７２内のコマンドバッファ書き込み制御回路（Mx＿CMD＿RF＿GEN）７２ａに入力される。
【０１４９】
受信パケットがストアデータパケットであれば、受信パケット分析回路７１ｄは、データバッファ７３に分析結果の書き込み指示を出力する。データバッファ７３に出力される書き込み指示には、受信ストアデータ長（mx＿ram＿length）、受信ストアデータの最終データポインタ（mx＿ram＿readgo）、受信ストアデータのエラー信号（mx＿ram＿err）、受信ストアデータの付加データ（mx＿ram＿tag）、受信ストアデータのデータ長セット信号（mx＿ram＿lset）、データバッファ７３への書き込み許可信号（mx＿ram＿we）、書き込み対象のストアデータ（mx＿ram＿wdata）、およびストアデータのＥＣＣ（mx＿ram＿ecc）が含まれる。
【０１５０】
受信パケット分析回路７１ｄからデータバッファ７３に対して出力されたデータは、すべてデータバッファ７３内のデータバッファ書き込み制御回路（Mx＿RAM＿GEN）７３ａに入力される。データバッファ書き込み制御回路７３ａは、ストアデータパケットの書き込みを制御する。データバッファ書き込み制御回路７３ａは、データバッファクロック同期回路（MX＿DATA＿RAM＿SYNC）７３ｂに対して、データバッファの書き込みアドレス（mx＿rx＿ram＿wadrs＿copy）、受信ストアデータの最終データポインタ（mx＿rx＿ram＿read＿go）、受信ストアデータのエラー信号（mx＿rx＿ram＿err）、受信ストアデータのデータ長チェックで正常値であったことを示す正常検出信号（mx＿rx＿ram＿lcheck＿ok）、および受信ストアデータのデータ長チェックでエラーがあったことを示すエラー信号（mx＿rx＿ram＿lcheck＿ng）を出力する。また、データバッファ書き込み制御回路７３ａは、データバッファ用メモリに対して、データバッファの書き込みアドレス（mx＿rx＿ram＿wadrs）、データバッファの書き込み許可信号（mx＿rx＿ram＿we）、およびデータバッファの書き込みデータ（mx＿rx＿ram＿wdata）を出力する。
【０１５１】
図２０は、入力変換器の内部回路を示す第２の図である。図２０には、コマンドバッファ７２の内部構成を示している。コマンドバッファ７２のコマンドバッファ書き込み制御回路（Mx＿CMD＿RF＿GEN）７２ａは、受信パケット分析回路７１ｄから入力されたデータに応じて、コマンドパケットの書き込みを制御する。コマンドバッファ書き込み制御回路７２ａは、コマンドバッファ用メモリ（Mx＿CMD＿RF）７２ｂに対して、コマンドバッファ書き込みデータ（mx＿rx＿cmd＿rf＿w＿data）、コマンドバッファの書き込みアドレス（mx＿rx＿cmd＿rf＿wadrs）、およびコマンドバッファ書き込み許可信号（mx＿rx＿cmd＿rf＿we）を出力する。また、コマンドバッファ書き込み制御回路７２ａは、コマンドバッファクロック同期回路（Mx＿CMD＿RF＿SYNC）７２ｃに対して、コマンドバッファ書き込みアドレス（mx＿rx＿cmd＿rf＿wadrs＿copy）、受信コマンドデータの最終データポインタ（mx＿rx＿cmd＿rf＿read＿go）、および受信コマンドデータのエラー信号（mx＿rx＿cmd＿rf＿err）を出力する。
【０１５２】
コマンドバッファクロック同期回路７２ｃは、受信パケット分析回路７１ｄから入力されたデータに基づいてコマンドバッファ用メモリ７２ｂの読み出し同期制御を行う。コマンドバッファクロック同期回路７２ｃは、コマンドバッファ用メモリ７２ｂに対して、コマンドバッファの読み出しアドレス（mx＿rx＿rf＿radrs）とコマンドバッファ読み出し許可信号（mx＿rx＿cmd＿rf＿re）とを出力する。また、コマンドバッファクロック同期回路７２ｃは、受信コマンドデータの同期最終データポインタ（mx＿rx＿cmd＿rf＿read＿go＿async）、受信コマンドデータのパケット識別番号（mx＿rx＿cmd＿pno＿async）を選択回路８０に対して出力する。
【０１５３】
コマンドバッファ用メモリ７２ｂは、コマンドバッファ書き込み許可信号（mx＿rx＿cmd＿rf＿we）が入力されると、書き込みアドレス（mx＿rx＿cmd＿rf＿wadrs）で示される記憶領域にコマンドバッファ書き込みデータ（mx＿rx＿cmd＿rf＿w＿data）を記憶する。また、コマンドバッファ用メモリ７２ｂは、コマンドバッファ読み出し許可信号（mx＿rx＿cmd＿rf＿re）が入力されると、読み出しアドレス（mx＿rx＿rf＿radrs）で示される記憶領域内に格納されていたデータを、コマンドバッファ読み出しデータ（mx＿rx＿cmd＿rf＿rdata）として出力する。
【０１５４】
図２１は、入力変換器の内部回路を示す第３の図である。図２１には、選択回路８０の内部構成が示されている。選択回路８０のＥＣＣチェック回路（Mx＿CMD＿ECC＿CHK）８１には、コマンドバッファ用メモリ７２ｂから出力されたコマンドバッファ読み出しデータ（mx＿rx＿cmd＿rf＿rdata）が入力される。ＥＣＣチェック回路８１は、コマンドバッファ読み出し後のデータに対するＥＣＣチェックを行う。ＥＣＣチェック回路８１は、ＥＣＣチェックの結果を出力する。出力されるチェック結果には、ＥＣＣチェック後のコマンドバッファ読み出しデータ（mx＿rx＿cmd＿read＿data）、ＥＣＣチェックでエラーが検出されたことを示すエラー検出信号（mx＿rx＿cmd＿read＿err）、ＥＣＣチェック後のコマンドバッファ読み出しデータのValid信号（mx＿rx＿cmd＿read＿val）が含まれる。
【０１５５】
比較回路（Packet＿NO＿Comp）８２には、コマンドバッファクロック同期回路７２ｃより出力された同期最終データポインタ（mx＿rx＿cmd＿rf＿read＿go＿async）、パケット識別番号（mx＿rx＿cmd＿pno＿async）が入力される。また、比較回路８２には、パケット識別番号期待値作成回路（PNO＿Predict）８３からの出力（パケット識別番号の期待値）が入力される。比較回路８２は、同期最終データポインタ（mx＿rx＿cmd＿rf＿read＿go＿async）が入力されると、パケット識別番号（mx＿rx＿cmd＿pno＿async）と、パケット識別番号との期待値とを比較する。そして、比較の結果一致すると、比較回路８２からパケット識別番号期待値作成回路８３とコマンド有効判定回路（Cmd＿Select＿Valid）８４とに一致信号が出力される。
【０１５６】
パケット識別番号期待値作成回路８３は、次に受信するコマンドパケットのパケット識別番号の期待値を生成する回路である。すなわち、パケット識別番号期待値作成回路８３は、比較回路８２から一致信号を受け取ると、現在の期待値をカウントアップし、次のパケット識別番号の期待値とする。そして、パケット識別番号期待値作成回路８３は、新たに生成したパケット識別番号の期待値を、比較回路８２に対して出力する。
【０１５７】
コマンド有効判定回路８４には、比較回路８２からの一致信号と、ＥＣＣチェック回路８１からのコマンドバッファ読み出しデータのValid信号（mx＿rx＿cmd＿read＿val）とが入力される。コマンド有効判定回路８４は、一致信号が入力された際に、Valid信号（mx＿rx＿cmd＿read＿val）に基づいて、コマンドデータが有効か否かを判定する。そして、コマンド有効判定回路８４は、コマンドデータが有効な場合、コマンド有効信号（mx＿rx＿cmd＿sel）を出力する。
【０１５８】
コマンド選択回路（CMD＿SEL）８５には、ＥＣＣチェック回路８１より出力されたコマンドバッファ読み出しデータ（mx＿rx＿cmd＿read＿data）とエラー検出信号（mx＿rx＿cmd＿read＿err）、およびコマンド有効判定回路８４より出力されたコマンド有効信号（mx＿rx＿cmd＿sel）が入力される。なお、図２１には、コマンド選択回路８５のデータ入力として受信モジュール２４１に入力されたコマンドパケットに関するデータ入力しか示していないが、他の受信モジュールに入力されたコマンドパケットに関するデータも同様に入力される。コマンド選択回路８５は、入力された複数のデータのうち、エラーなしに最も早く入力されたデータを選択する。そして、コマンド選択回路８５は、選択したデータに基づいて、受信コマンドのValid信号（O＿CMD＿VAL）、受信コマンドデータ（O＿CMD＿DATA）、および受信コマンドのパリティ値（O＿CMD＿PARITY）を、受信側コマンドバス２１２ｂに対して出力する。
【０１５９】
図２２は、入力変換器の内部回路を示す第４の図である。図２２には、データバッファ７３の主要部と合成回路９０との内部構成が示されている。
データバッファ７３のデータバッファクロック同期回路７３ｂは、図１９に示した入力データに基づいて、ストアデータバッファにおけるデータ読み出しのクロック同期制御を行う。データバッファクロック同期回路７３ｂは、同期制御のために、受信ストアデータのデータ長チェックで正常を検出したことを示す正常値検出同期信号（mx＿rx＿ram＿lcheck＿ok＿async）、受信ストアデータのデータ長チェックでエラーを検出したことを示すエラー検出同期信号（mx＿rx＿ram＿lcheck＿ng＿async）、データ書き込み同期アドレス（mx＿rx＿ram＿wadrs＿cp＿async）、データバッファ書き込み許可同期信号（mx＿rx＿ram＿read＿go＿async）、およびデータバッファ書き込みエラー同期信号（mx＿rx＿ram＿err＿async）を出力する。
【０１６０】
データバッファ書き込み長チェック回路（INQ＿LEN＿CHK）７３ｃは、データバッファクロック同期回路７３ｂより出力された正常値検出同期信号（mx＿rx＿ram＿lcheck＿ok＿async）とエラー検出同期信号（mx＿rx＿ram＿lcheck＿ng＿async）とが入力される。なお、図２２には、データバッファ書き込み長チェック回路７３ｃのデータ入力として受信モジュール２４１に入力されたストアデータパケットに関するデータ入力しか示していないが、他の受信モジュールに入力されたストアデータパケットに関するデータも同様に入力される。データバッファ書き込み長チェック回路７３ｃは、書き込まれたストアデータのデータ長チェックで正常が検出されたか否かを判断する。そして、データバッファ書き込み長チェック回路７３ｃは、判断結果を出力する。出力される判断結果には、合成回路９０への通知用のデータ長エラー検出信号（O＿INQ＿LCHK＿ERR）、終了シーケンス要求信号（O＿TERM＿REQ）、および内部処理用のデータ長エラー検出信号（ram＿inq＿lchk＿err）が含まれる。
【０１６１】
データバッファ書き込みアドレス保持回路（Set&hold）７３ｄは、データバッファクロック同期回路７３ｂより出力されたデータ書き込み同期アドレス（mx＿rx＿ram＿wadrs＿cp＿async）と、データバッファ書き込み許可同期信号（mx＿rx＿ram＿read＿go＿async）とが入力される。データバッファ書き込みアドレス保持回路７３ｄは、入力されたデータ書き込み同期アドレス（mx＿rx＿ram＿wadrs＿cp＿async）を一時的に保持する。そして、データバッファ書き込みアドレス保持回路７３ｄは、データバッファ書き込み許可同期信号（mx＿rx＿ram＿read＿go＿async）が入力されると、保持していたアドレスを書き込みアドレス最小値判定回路（WT-AD＿MIN＿SEL）７３ｅに対して出力する。なお、書き込みアドレス最小値判定回路７３ｅには、受信モジュール２４１以外の受信モジュールに入力されたストアデータに関する書き込みアドレスも同様に入力される。
【０１６２】
書き込みアドレス最小値判定回路７３ｅは、入力されたアドレスのうちの最小値を検出する。そして、書き込みアドレス最小値判定回路７３ｅは、検出処理の結果を出力する。出力される検出結果には、２パス以上（受信モジュールの異なる２以上のストアデータ）でエラーを検出したことを示すエラー検出信号（ram＿2m＿dis）、データバッファ書き込み長最小値アドレス（rx＿ram＿wadrs＿min）、およびデータバッファ書き込み長最小値アドレス有効信号（rx＿ram＿reaad＿go＿or）が含まれる。
【０１６３】
データバッファ読み出し処理停止回路（CNT＿STOP）７３ｆには、データバッファ書き込み長チェック回路７３ｃより出力されたデータ長エラー検出信号（ram＿inq＿lchk＿err）と、書き込みアドレス最小値判定回路７３ｅより出力されたエラー検出信号（ram＿2m＿dis）とが入力される。データバッファ読み出し処理停止回路７３ｆは、エラーが検出された場合に、データバッファ読み出しアドレス比較回路（RAM＿ADRS＿COMP）７３ｇに対して読み出し処理の停止信号を出力する。
【０１６４】
データバッファ読み出しアドレス比較回路７３ｇには、書き込みアドレス最小値判定回路７３ｅより出力されるデータバッファ書き込み長最小値アドレス（rx＿ram＿wadrs＿min）とデータバッファ書き込み長最小値アドレス有効信号（rx＿ram＿reaad＿go＿or）とが入力される。また、データバッファ読み出しアドレス比較回路７３ｇには、読み出しアドレス作成回路（RA＿CT）７３ｈから出力されるデータバッファ読み出しアドレス（rx＿ram＿radrs）が入力される。データバッファ読み出しアドレス比較回路７３ｇは、有効なデータバッファ書き込み長最小値アドレス（rx＿ram＿wadrs＿min）に基づいて、有効なストアデータの有無を判断する。データバッファ書き込み長最小値アドレスとデータバッファ読み出しアドレスが一致、すなわち有効なストアデータがなくなれば（バッファ内が空）データバッファ読み出しアドレス比較回路７３ｇは、データバッファアドレス一致信号（comp）を出力する。データバッファアドレス一致信号（comp）は、合成回路９０に対してメモリバッファが空であることを通知するエンプティ信号（O＿RAM＿EMPTY）となる。また、有効なストアデータがあれば、データバッファ読み出しアドレス比較回路７３ｇはデータバッファアドレス不一致信号（uncomp）を出力する。
【０１６５】
読み出しアドレス作成回路７３ｈには、データバッファ読み出しアドレス比較回路７３ｇから出力されるデータバッファアドレス不一致信号（uncomp）が入力される。読み出しアドレス作成回路７３ｈは、データバッファアドレス不一致信号（uncomp）が入力されている間、順次データバッファ読み出しアドレスを生成する。そして、読み出しアドレス作成回路７３ｈは、生成したデータバッファ読み出しアドレス（m1＿rx＿ram＿radrs,m2＿rx＿ram＿radrs,・・・,mn＿rx＿ram＿radrs）と、データバッファ読み出し許可信号（m1＿rx＿ram＿re,m2＿rx＿ram＿re,・・・,mn＿rx＿ram＿re）とが、データバッファ用メモリ（DATA＿RAM）７３ｉに対して出力される。
【０１６６】
データバッファ用メモリ７３ｉは、受信モジュールごとのメモリを有している。そして、各メモリは、データバッファ読み出し許可信号が入力されると、入力されたデータバッファ読み出しアドレスで示される記憶領域内のデータを出力する。出力されるデータバッファ読み出しデータ（m1＿rx＿ram＿rdata,m2＿rx＿ram＿rdata,・・・,mn＿rx＿ram＿rdata）は、合成回路９０に対して出力される。
【０１６７】
合成回路９０は、データ訂正回路９１を有している。データ訂正回路９１は、データバッファ用メモリ７３ｉから出力されたデータを解析して、エラーがあれば復元用冗長データを用いてデータをエラーがあったデータを復元する。そして、データ訂正回路９１は、必要な訂正を施したデータを合成し、ストアデータとして受信側ストアデータバス２１２ｃに出力する。出力されるデータには、受信側ストアデータのValid信号（O＿MAC0＿DT＿VAL,O＿MAC1＿DT＿VAL,O＿MAC3＿DT＿VAL）、受信側ストアデータ（O＿MAC0＿DT,O＿MAC1＿DT,O＿MAC3＿DT）、および受信側ストアデータのパリティ値（O＿MAC0＿DT＿PARITY,O＿MAC1＿DT＿PARITY,O＿MAC3＿DT＿PARITY）が含まれる。
【０１６８】
以上のような回路構成により、入力変換器２１２ａを実現することができる。
次に、コマンドデータの選択例を説明する。
図２３は、コマンドデータ選択例を示す図である。図２３は、コマンドパケット３１０ｃ、コマンドパケット３１０ａ、コマンドパケット３１０ｂの順で各コマンドパケットを受信した場合の例が示されている。
【０１６９】
最初のコマンドパケット３１０ｃが選択回路８０に入力されると、コマンドパケット３１０ｃからコマンドデータ３００が抽出される。そして、選択回路８０により、コマンドデータ３００が受信側コマンドバス２１２ｂに転送される。その際、選択回路８０によって、コマンドパケット３１０ｃのパケット識別番号（Packet-No.）が記憶される。
【０１７０】
その後、後続のコマンドパケット３１０ａ、コマンドパケット３１０ｂを受信すると、選択回路８０は、各コマンドパケット３１０ａ、コマンドパケット３１０ｂのパケット識別番号と、記憶しておいたパケット識別番号とを照合する。この例では、パケット識別番号が一致する。すると、選択回路８０はコマンドパケット３１０ａ、コマンドパケット３１０ｂが抑止の対象であると認識し、各コマンドパケット３１０ａ、コマンドパケット３１０ｂを破棄する。
【０１７１】
このように、パケット識別番号が同一の複数のコマンドパケット３１０ａ，２１０ｂ，２１０ｃのうち、最初のコマンドパケット３１０ｃに含まれるコマンドデータ３００が受信側コマンドバス２１２ｂに転送される。そして、他の受信モジュール経由で受信したコマンドパケット３１０ａ，２１０ｂ内のコマンドデータの転送は抑止される。これにより、コマンドの多重受領が抑止される。
【０１７２】
次に、ストアデータパケットの合成例を説明する。
図２４は、ストアデータの合成例を示す図である。ストアデータパケット３３０，３４０，・・・，３５０は、受信回路７０，７０ａ，７０ｂ，・・・，７０ｍにおいてデータバッファに順次格納される。受信回路７０，７０ａ，７０ｂ，・・・，７０ｍでは、ブロック長（Block-Length）の値に基づいて、チェックコード（Check-Code）の位置が検出される。そして、受信回路７０，７０ａ，７０ｂ，・・・，７０ｍにおいてチェックコードを受信するたびに対応するブロックのデータチェックが行われる。合成回路９０は、すべての受信回路７０，７０ａ，７０ｂ，・・・，７０ｍにおいて、「同一のパケット識別番号（Packet-No）のストアデータパケットにおける同一タイミングのブロックデータ」のチェックが完了するのを待つ。すべての受信回路７０，７０ａ，７０ｂ，・・・，７０ｍで同一パケット識別番号（Packet-No）のパケットの同一ブロックのデータが揃ったら、合成回路９０でＤａｔａ［１］，Ｄａｔａ［２］，・・・の順で受信側ストアデータバス２１２ｃにデータが転送される。
【０１７３】
この方式では受領したブロック単位にブロックデータのチェック／合成処理が行われる。すなわちストアデータパケットを受信完了前にパケットデータを処理することができる。そのため、ブロック分割しない場合に比べてデータの滞留量が小さくなり、その分データ遅延時間が短縮できる。また各ブロックへの付加データがチェックコードだけである。そのため、パケット識別番号などのパケット情報が付加されるパケット単位で分割する場合と比較して、制御情報の付加に伴うオーバヘッドを低減することができる。
【０１７４】
また、本実施の形態では、１つのストアデータパケットに復元用冗長データが含まれている。そのため、エラーが発生したブロックデータは、復元用冗長データを用いて復元することができる。
【０１７５】
図２５は、ブロックデータの復元状況を示す図である。図２５の例では、識別情報「ＲＸ１」の受信モジュール２４１で受信したストアデータパケットの最初のブロックでエラーが検出された場合を示している。
【０１７６】
この場合、合成回路９０は復元用冗長データを使用してエラーデータを復元する。すなわち、合成回路９０は、識別情報「ＲＸ１」以外の受信モジュール２４２，２４３，・・・，２４ｎ（識別情報「ＲＸ２」〜「ＲＸｎ」）で受信した各ストアデータパケット２４０，・・・，２５０，２６０の同じ順番のブロックデータのビットごとの排他論理和を計算する。これにより、ストアデータパケット３３０の最初のブロックに含まれる各単位データ３２１，３２ｎ，・・・が復元される。
【０１７７】
なおストアデータパケットの各チェックコードはその直前のブロックのデータのみ保証している。そのため、第２ブロック以降のエラーの場合、異なるストアデータパケットに含まれる同じ順番のブロックで重複してエラーが発生しない限り、複数のブロックにエラーがあってもデータ復元が可能である。
【０１７８】
ただし、第１ブロックでエラーを検出した場合はパケット識別番号などのパケット情報を受信できない。そのため、エラーが発生したストアデータパケットは破棄される。
図２６は、複数のブロックでのエラー発生状況を示す図である。図２６では、各ブロックに対して、括弧書きで順番を示す番号を付加している。
【０１７９】
各ストアデータパケット３３０，３４０，３７０，３８０の第１ブロック（Block［1］）にはエラーは発生していない。第２ブロック（Block［2］）では、ストアデータパケット３４０に含まれるブロックのみにエラーが検出されている。第３ブロック（Block［3］）では、ストアデータパケット３８０に含まれるブロックのみにエラーが検出されている。第４ブロック（Block［4］）では、ストアデータパケット３３０に含まれるブロックのみにエラーが検出されている。
【０１８０】
図２６に示した例の場合、各ストアデータパケット３３０，３４０，３７０，３８０の送信順が同じブロック間では、１つのブロックのみにエラーが生じている。そのため、全体としては複数のブロックにエラーが検出されているものの、エラーが発生した各ブロックは、他のストアデータパケットに含まれる同じ順番のブロックを用いていずれも復元可能である。
【０１８１】
なお、コマンドデータとストアデータはそれぞれ独立した処理され、送信装置１１１ではセレクタ６１，６２，６３，・・・，６ｎでコマンドパケットとストアデータパケットが混合される。混合されたコマンドパケットとストアデータパケットとは、受信装置２１２のデコーダ７１で分離される。したがって装置間インタフェースではコマンドパケットとデータパケットが混在してパケット転送することができる。
【０１８２】
図２７は、コマンドパケットとストアデータパケットとを混在させたデータ伝送状況を示す図である。図２７の例では、送信側コマンドバス１１１ｂからコマンドデータ「Ａ」，コマンドデータ「Ｂ」が送信装置１１１に入力されている。それと同時に、送信側ストアデータバス１１１ｃからストアデータ「ａ」，ストアデータ「ｂ」が送信装置１１１に入力されている。このように同タイミングで入力されたパケットを転送する場合、コマンドデータとストアデータとがそれぞれパケット化され、セレクタ６１，６２，６３，・・・で選択される。このとき、セレクタ６１，６２，６３，・・・では、先に入力されたパケットを優先して選択する。そのため、装置間インタフェースではコマンドデータ「Ａ」のパケット，ストアデータ「ａ」のパケット，コマンドデータ「Ｂ」のパケット，ストアデータ「ｂ」のパケットが混在して転送される。
【０１８３】
なお、ストアデータ「ａ」は単位データに分割され、送信モジュールごとに振り分けられたデータ「ａ１」，「ａ２」，「ａ３」，・・・ごとにパケット化されている。同様に、ストアデータ「ｂ」は単位データに分割され、送信モジュールごとに振り分けられたデータ「ｂ１」，「ｂ２」，「ｂ３」，・・・ごとにパケット化されている。
【０１８４】
以上説明したように、本実施の形態によれば、複数の汎用転送モジュールを使用した装置間インタフェースにおいて、転送するデータの必要性に応じて高速転送と高信頼性転送との転送方式を必要に応じて切り替えることができる。その結果、十分な信頼性と転送効率とを兼ね備えた転送が可能となる。
【０１８５】
さらに高速転送においてパケットデータをブロック分割し、ブロックごとのエラー修復を可能としたことにより、高速転送の場合においても高信頼の確保が可能となっている。
なお、本実施の形態ではコマンドデータを冗長転送対象のデータとし、コマンドデータを重複して転送することによる高信頼性のデータ転送を行っているが、他のデータを冗長転送の対象とすることもできる。すなわち、送信側コマンドバス１１１ｂに他のデータを入力すれば、入力したデータを複数の通信経路で重複転送することができる。例えば、ストアデータの重複転送も可能である。
【０１８６】
同様に、本実施の形態ではストアデータを並列転送対象のデータとし、ストアデータの分割データを複数の通信経路で並列転送することによって高速転送を行っているが、他のデータを並列転送の対象とすることもできる。すなわち、送信側ストアデータバス１１１ｃに他のデータを入力すれば、入力したデータを並列転送することができる。例えば、コマンドデータの並列転送も可能である。
【０１８７】
また、本発明は、上述の実施の形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加えることができる。
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
【０１８８】
（付記１）  受信装置に対して複数の通信経路で接続可能な送信装置であって、
冗長転送の対象となるデータが入力されると、入力されたデータと同一内容の複数の冗長転送データを複数の前記通信経路それぞれに向けて転送する冗長転送部と、
分割転送の対象となるデータが入力されると、入力されたデータを複数の分割データに分割し、前記分割データを複数の前記通信経路に振り分け、振り分けられた前記通信経路に向けて転送するデータ分割転送部と、
複数の前記通信経路それぞれに対応付けて設けられており、対応する前記通信経路に向けて前記冗長転送部または前記データ分割転送部から転送された前記冗長転送データまたは前記分割データを、対応する前記通信経路を介して前記受信装置へ送信するデータ送信部と、
を有する送信装置。
【０１８９】
（付記２）  前記冗長転送部は、複数の前記冗長転送データそれぞれに対して、前記冗長転送データであることを示す識別子を付加し、
前記データ分割転送部は、複数の前記分割データにそれぞれに対して、前記分割データであることを示す識別子を付加することを特徴とする付記１記載の送信装置。
【０１９０】
（付記３）  前記データ分割転送部は、複数の前記分割データに基づいて、複数の前記分割データの復元用冗長データを生成し、前記復元用冗長データと前記分割データとを前記通信経路に振り分けることを特徴とする付記１記載の送信装置。
【０１９１】
（付記４）  前記データ分割転送部は、複数の前記分割データのビットごとの排他的論理和を計算し、計算結果を前記復元用冗長データとすることを特徴とする付記３記載の送信装置。
【０１９２】
（付記５）  前記データ分割転送部は、前記分割データを複数のブロックに分け、前記ブロックごとにチェックコードを付加し、複数の前記分割データそれぞれから得られる１つずつの前記ブロックに基づいて、前記復元用冗長データを生成することを特徴とする付記３記載の送信装置。
【０１９３】
（付記６）  前記データ分割転送部は、複数の前記分割データそれぞれを送信する際の送信順が同じ複数の前記ブロックに基づいて前記復元用冗長データを生成することを特徴とする付記５記載の送信装置。
【０１９４】
（付記７）  前記データ分割転送部は、前記分割データを複数のブロックに分け、前記ブロックごとにチェックコードを付加することを特徴とする付記１記載の送信装置。
（付記８）  複数の前記データ送信部は、前記冗長転送データまたは前記分割データを、前記冗長転送部または前記データ分割転送部からの転送の早い順に送信することを特徴とする付記１記載の送信装置。
【０１９５】
（付記９）  複数の前記データ送信部は、前記冗長転送データおよび前記分割データをシリアル伝送方式で送信することを特徴とする付記１記載の送信装置。
（付記１０）  送信装置に対して複数の通信経路で接続可能な受信装置であって、
複数の前記通信経路それぞれに対応付けて設けられており、対応する前記通信経路を介して前記送信装置から送られたデータを受信する複数のデータ受信部と、
複数の前記データ受信部それぞれに対応付けて設けられており、対応する前記データ受信部が受信した前記データを解析し、受信した前記データが、複数の前記通信経路を用いて同一データの冗長送信が行われた冗長転送データなのか、または元データを分割することで得られたデータを複数の前記通信経路に分散してデータ転送が行われた分割データなのかを判断する複数のデータ解析部と、
複数の前記データ解析部それぞれから前記冗長転送データを取得し、取得した前記冗長転送データのうちの１つを選択し、選択した前記冗長転送データを出力するデータ選択部と、
複数の前記データ解析部それぞれから前記分割データを取得し、取得した前記分割データを合成して合成データを生成し、生成した前記合成データを出力するデータ合成部と、
を有する受信装置。
【０１９６】
（付記１１）  前記データ解析部は、受信した前記データに付与されている識別子により、受信した前記データが、前記冗長転送データなのか、または前記分割データなのかを判断することを特徴とする付記１０記載の受信装置。
【０１９７】
（付記１２）  前記データ選択部は、最初に取得したエラーのない前記冗長転送データを選択することを特徴とする付記１０記載の受信装置。
（付記１３）  前記データ解析部は、対応する前記データ受信部が受信した前記データの解析により、受信した前記データが、前記分割データの復元用冗長データであることを判断し、
前記データ合成部は、複数の前記分割データのうちの１つにエラーがある場合、前記復元用冗長データを用いてエラーのあった前記分割データを復元することを特徴とする付記１０記載の受信装置。
【０１９８】
（付記１４）  前記データ合成部は、エラーのない前記分割データと前記復元用冗長データとのビットごとの排他的論理和を計算し、計算結果をエラーのあった前記分割データとすることを特徴とする付記１３記載の受信装置。
【０１９９】
（付記１５）  前記データ受信部は、前記復元用冗長データまたは前記分割データをブロック単位で受信し、
前記データ合成部は、複数の前記分割データを構成する前記ブロックごとに、エラーがあった前記分割データの復元を行うことを特徴とする付記１３記載の受信装置。
【図面の簡単な説明】
【０２００】
【図１】実施の形態の概要を示す図である。
【図２】本実施の形態のシステム構成例を示す図である。
【図３】転送制御ユニット間の接続関係を示す図である。
【図４】送信装置と受信装置との間のインタフェースの詳細を示す図である。
【図５】出力変換器の内部構造を示す図である。
【図６】コマンドパケット作成処理の手順を示すフローチャートである。
【図７】ストアデータパケット作成処理の手順を示すフローチャートである。
【図８】パケット送信処理の手順を示すフローチャートである。
【図９】出力変換器の内部回路を示す第１の図である。
【図１０】出力変換器の内部回路を示す第２の図である。
【図１１】出力変換器の内部回路を示す第３の図である。
【図１２】コマンドパケットのデータ構造を示す図である。
【図１３】ストアデータパケットのデータ構造例を示す図である。
【図１４】ストアデータパケットの詳細構造を示す図である。
【図１５】入力変換器の内部構造を示す図である。
【図１６】パケット受信処理の手順を示すフローチャートである。
【図１７】コマンドデータ選択処理の手順を示すフローチャートである。
【図１８】ストアデータ合成処理の手順を示すフローチャートである。
【図１９】入力変換器の内部回路を示す第１の図である。
【図２０】入力変換器の内部回路を示す第２の図である。
【図２１】入力変換器の内部回路を示す第３の図である。
【図２２】入力変換器の内部回路を示す第４の図である。
【図２３】コマンドデータ選択例を示す図である。
【図２４】ストアデータの合成例を示す図である。
【図２５】ブロックデータの復元状況を示す図である。
【図２６】複数のブロックでのエラー発生状況を示す図である。
【図２７】コマンドパケットとストアデータパケットとを混在させたデータ伝送状況を示す図である。
【符号の説明】
【０２０１】
１  送信装置
１ａ  冗長転送部
１ｂ  データ分割転送部
１ｃ，１ｄ，１ｅ  データ送信部
２  受信装置
２ａ，２ｂ，２ｃ  データ受信部
２ｄ，２ｅ，２ｆ  データ解析部
２ｇ  データ選択部
２ｈ  データ合成部
３ａ，３ｂ，３ｃ  通信経路
４，５  データ
４ａ，４ｂ，４ｃ  冗長転送データ
５ａ，５ｂ，５ｃ  分割データ
【図１】
2010129018.tif 000003
【図２】
2010129018.tif 000004
【図３】
2010129018.tif 000005
【図４】
2010129018.tif 000006
【図５】
2010129018.tif 000007
【図６】
2010129018.tif 000008
【図７】
2010129018.tif 000009
【図８】
2010129018.tif 000010
【図９】
2010129018.tif 000011
【図１０】
2010129018.tif 000012
【図１１】
2010129018.tif 000013
【図１２】
2010129018.tif 000014
【図１３】
2010129018.tif 000015
【図１４】
2010129018.tif 000016
【図１５】
2010129018.tif 000017
【図１６】
2010129018.tif 000018
【図１７】
2010129018.tif 000019
【図１８】
2010129018.tif 000020
【図１９】
2010129018.tif 000021
【図２０】
2010129018.tif 000022
【図２１】
2010129018.tif 000023
【図２２】
2010129018.tif 000024
【図２３】
2010129018.tif 000025
【図２４】
2010129018.tif 000026
【図２５】
2010129018.tif 000027
【図２６】
2010129018.tif 000028
【図２７】
2010129018.tif 000029