(57)【要約】【課題】計算機から通信路を介して別の計算機のデバイスに高速でアクセスすること。【解決手段】スレーブ側ブリッジ７０は、スレーブ側バス６２を介して、スレーブ側デバイス６３に対して、リード要求が示すデータの読込処理を指示し、データの読込処理の結果であるリードデータの返信を待つ期間に、スレーブ側通信インタフェース７８を介して、マスタ装置１に対して、リード要求の受信時に使用されたトランザクション上でダミーデータであるポーズデータを送信することで、そのトランザクションを維持し、スレーブ側デバイス６３からリードデータの返信が行われたら、維持されているトランザクション上で、リードデータをマスタ装置１に返信する。【選択図】図１
2010199634.tif 000002
【特許請求の範囲】
【請求項１】
マスタ装置とスレーブ装置とが通信路を介して接続されるデバイス接続システムに用いられ、前記スレーブ装置に内蔵されるスレーブ側ブリッジであって、
前記スレーブ側ブリッジは、制御処理を行うための制御部と、前記通信路と接続するスレーブ側通信インタフェースと、スレーブ側デバイスにアクセス可能なスレーブ側バスと接続するスレーブ側バスアクセス部と、を有し、
前記スレーブ側ブリッジの制御部は、
前記スレーブ側通信インタフェースを介して、前記マスタ装置から前記スレーブ側デバイスからのデータの読込処理を実行するためのリード要求を受信すると、そのリード要求の内容を前記スレーブ側ブリッジの記憶手段に格納し、
前記スレーブ側バスアクセス部を介して、前記スレーブ側デバイスに対して、前記リード要求が示すデータの読込処理を指示し、
データの読込処理の結果であるリードデータの返信を待つ期間に、前記スレーブ側通信インタフェースを介して、前記マスタ装置に対して、前記リード要求の受信時に使用されたトランザクション上でダミーデータであるポーズデータを送信することで、そのトランザクションを維持し、
前記スレーブ側デバイスから前記リードデータの返信が行われたら、前記維持されているトランザクション上で、前記リードデータを前記マスタ装置に返信し、前記記憶手段に記憶された前記リード要求を削除することを特徴とする
スレーブ側ブリッジ。
【請求項２】
前記スレーブ側ブリッジの制御部は、
前記スレーブ側通信インタフェースを介して、前記マスタ装置から前記スレーブ側デバイスからのデータの書込処理を実行するためのライト要求を受信すると、
前記スレーブ側通信インタフェースを介して、前記マスタ装置に対して、前記リード要求への応答を送信した後に、前記スレーブ側バスアクセス部を介して、前記スレーブ側デバイスに対して、前記リード要求が示すデータの読込処理を指示すること
請求項１に記載のスレーブ側ブリッジ。
【請求項３】
請求項１または請求項２に記載のスレーブ側ブリッジを含む前記スレーブ装置と前記マスタ装置とが前記通信路を介して接続されるデバイス接続システムに用いられ、前記マスタ装置に内蔵されるマスタ側ブリッジであって、
前記マスタ側ブリッジは、制御処理を行うための制御部と、前記通信路と接続するマスタ側通信インタフェースと、前記マスタ装置の制御部にアクセス可能なマスタ側バスへ接続するマスタ側バスアクセス部と、を有し、
前記マスタ側ブリッジの制御部は、
前記マスタ側バスアクセス部を介して、前記マスタ装置の制御部から前記リード要求を受信すると、前記マスタ側通信インタフェースを介して、そのリード要求を前記スレーブ装置に送信し、
前記マスタ側通信インタフェースを介して、前記リード要求への応答として、前記ポーズデータおよびそのポーズデータとともに送信される前段データを受信すると、そのポーズデータの前段データを前記マスタ装置の制御部へ転送し、
前記マスタ側通信インタフェースを介して、前記リード要求への応答として、前記リードデータを受信すると、そのリードデータを前記マスタ装置の制御部へ転送することを特徴とする
マスタ側ブリッジ。
【請求項４】
前記マスタ側ブリッジの制御部は、前記マスタ側通信インタフェースおよび前記マスタ側バスを有する筐体とは別の、前記マスタ装置の制御部に実行されるプログラムにより構成される処理部として実現することを特徴とする
請求項３に記載のマスタ側ブリッジ。
【請求項５】
請求項１または請求項２に記載の前記スレーブ側ブリッジと、請求項３または請求項４に記載の前記マスタ側ブリッジと、を同一筐体に収容することを特徴とする
通信用ブリッジ。
【請求項６】
マスタ装置とスレーブ装置とが通信路を介して接続されるデバイス接続システムであって、
スレーブ側ブリッジは、前記スレーブ装置に内蔵され、制御処理を行うための制御部と、前記通信路と接続するスレーブ側通信インタフェースと、スレーブ側デバイスにアクセス可能なスレーブ側バスと接続するスレーブ側バスアクセス部と、を有し、
前記スレーブ側ブリッジの制御部は、
前記スレーブ側通信インタフェースを介して、前記マスタ装置から前記スレーブ側デバイスからのデータの読込処理を実行するためのリード要求を受信すると、そのリード要求の内容を前記スレーブ側ブリッジの記憶手段に格納し、
前記スレーブ側バスアクセス部を介して、前記スレーブ側デバイスに対して、前記リード要求が示すデータの読込処理を指示し、
データの読込処理の結果であるリードデータの返信を待つ期間に、前記スレーブ側通信インタフェースを介して、前記マスタ装置に対して、前記リード要求の受信時に使用されたトランザクション上でダミーデータであるポーズデータを送信することで、そのトランザクションを維持し、
前記スレーブ側デバイスから前記リードデータの返信が行われたら、前記維持されているトランザクション上で、前記リードデータを前記マスタ装置に返信し、前記記憶手段に記憶された前記リード要求を削除することを特徴とする
デバイス接続システム。
【請求項７】
前記スレーブ側ブリッジの制御部は、
前記スレーブ側通信インタフェースを介して、前記マスタ装置から前記スレーブ側デバイスからのデータの書込処理を実行するためのライト要求を受信すると、
前記スレーブ側通信インタフェースを介して、前記マスタ装置に対して、前記リード要求への応答を送信した後に、前記スレーブ側バスアクセス部を介して、前記スレーブ側デバイスに対して、前記リード要求が示すデータの読込処理を指示することを特徴とする
請求項６に記載のデバイス接続システム。
【請求項８】
マスタ側ブリッジは、前記マスタ装置に内蔵され、制御処理を行うための制御部と、前記通信路と接続するマスタ側通信インタフェースと、前記マスタ装置の制御部にアクセス可能なマスタ側バスへ接続するマスタ側バスアクセス部と、を有し、
前記マスタ側ブリッジの制御部は、
前記マスタ側バスアクセス部を介して、前記マスタ装置の制御部から前記リード要求を受信すると、前記マスタ側通信インタフェースを介して、そのリード要求を前記スレーブ装置に送信し、
前記マスタ側通信インタフェースを介して、前記リード要求への応答として、
前記ポーズデータおよびそのポーズデータとともに送信される前段データを受信すると、そのポーズデータの前段データを前記マスタ装置の制御部へ転送し、
前記マスタ側通信インタフェースを介して、前記リード要求への応答として、前記リードデータを受信すると、そのリードデータを前記マスタ装置の制御部へ転送することを特徴とする
請求項６または請求項７に記載のデバイス接続システム。
【請求項９】
前記マスタ側ブリッジの制御部は、前記マスタ側通信インタフェースおよび前記マスタ側バスを有する筐体とは別の、前記マスタ装置の制御部に実行されるプログラムにより構成される処理部として実現することを特徴とする
請求項６ないし請求項８のいずれか１項に記載のデバイス接続システム。
【請求項１０】
前記スレーブ側バスは、ＰＣＩバスであることを特徴とする
請求項６ないし請求項９のいずれか１項に記載のデバイス接続システム。
【請求項１１】
前記通信路は、イーサネット（登録商標）であることを特徴とする
請求項６ないし請求項９のいずれか１項に記載のデバイス接続システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイス接続システム、ならびに、そのデバイス接続システムに用いられるマスタ側ブリッジ、スレーブ側ブリッジ、および、通信用ブリッジに関する。
【背景技術】
【０００２】
特許文献１には、計算機から遠隔にあるＩ／Ｏ機器を、ネットワークを介して制御する方式が開示されている。
特許文献１に開示されるシステムは、複数のＣＰＵと複数のＩ／Ｏ機器との間に、複数の上流ＰＣＩエクスプレス−ブリッジと複数の下流ＰＣＩエクスプレス−ブリッジとがネットワークを介して配置される。ＣＰＵからＩ／Ｏ機器への制御は、ＣＰＵと対に構成される上流ＰＣＩエクスプレス−ブリッジから出力され、ネットワークを介して、下流ＰＣＩエクスプレス−ブリッジに入力されＩ／Ｏ機器に到達する。
特許文献１は、これらの複数のＣＰＵと複数のＩ／Ｏ機器とを複数有するシステムにおいて、ネットワークの識別子を用いて共有設定する。
【０００３】
特許文献２には、計算機内部のバスを、リンクを用いて計算機外部に延長するシステムが、開示されている。
特許文献２に開示されるシステムは、Ｉ／Ｏノードと処理装置との間をリンクの“ファブリック”で相互接続してデータパスを提供するシステムに関する。具体的には、第一のバスと第二のバス（例えばそれぞれＰＣＩバス）とにそれぞれのバスシステムに適合するデバイスが接続されている。第一のバスにつながるデバイスはバスとリンクを結合し、第二のバスにつながるデバイスはリンクとバスを結合する。これらのデバイス間をつなぐリンクはスイッチを介して接続される。これらの対となるデバイスは、バスブリッジとして機能するよう構成される。
その結果、第一のバスにつながるホストプロセッサは、これらのデバイスを介して、第二のバスにつながるバスデバイスを利用することが可能となる。また、延長に介在するデバイスがＰＣＩ−ｔｏ−ＰＣＩブリッジとして機能するため、延長した先のデバイスを制御するデバイスドライバとして、延長しないで利用する通常のデバイスドライバと同じものを利用可能とする。
【０００４】
特許文献３には、計算機からＩ／Ｏ機器をリアルタイムに制御するための、ネットワークの通信方式に関して開示されている。
特許文献３に開示されるネットワーク方式における通信ノードは、受信ユニットと変換ユニット、送信ユニットを有する。データをイーサネット（登録商標）メッセージの形式でイーサネット伝送路に送信する際に、送信されるデータが変換ユニットによりイーサネットプロトコルの伝送規格に応じたデータに変換される。受信ユニットから受信したイーサネットメッセージに同期して、既定の間隔を置いて送信ユニットによりイーサネットメッセージが連続的に送信され、その結果イーサネットメッセージが連続的にイーサネット伝送路に出力される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−７８８８７号公報
【特許文献２】米国特許第６９９６６５８号明細書
【特許文献３】特表２００６−５２０１１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
近年の半導体製造技術向上とプロセッサ処理速度の向上は著しく、例えばＰＣに用いられるプロセッサは１年半で２倍程度の処理能力向上が図られている。ＰＣ内部の拡張バスにおいても、プロセッサの処理速度に追従して高速化が進められている。具体的には、ＰＣＩ Ｅｘｐｒｅｓｓと呼ばれる高速シリアルバスが広く用いられてきている。さらに、ＰＣにあらかじめ多くの機能を搭載してきているため、ＰＣにおける拡張の必要性が減少し、拡張バスコネクタのような拡張手段自体が数を減らしてきている。
【０００７】
その一方で、産業システムやプラントで計算機を使用する用途においては、制御される装置の処理速度は大きく変化しない。例えばバルブの開閉速度やモータの反応速度は、数年で大きく変化するものではない。そのため、プロセッサの処理速度とＰＣ外部の制御用装置の応答速度との速度差は、広がる一方である。
【０００８】
多くの産業システムでは、現在でも機能を拡張するためにＰＣにおける拡張バスの必要性が高い。そのため、ＰＣでは少なくなってきた拡張インターフェースを増設するために、様々なバス拡張の手段が講じられてきている。前記の各特許文献の技術も、そのための手段の一部である。
【０００９】
しかしながら、前記の各特許文献の技術では、以下の課題がある。
【００１０】
例えば、特許文献１における情報処理装置共有システムは、ＰＣ内部の拡張バスとして、ＰＣＩ Ｅｘｐｒｅｓｓに好適なシステムを開示している。ＰＣＩ Ｅｘｐｒｅｓｓはパケット方式のバスシステムであり、高速かつ大容量のデータを伝送できる特徴がある。一方、ＰＣＩ Ｅｘｐｒｅｓｓに接続するためのデバイスを開発するには、高速デバイスとしての設計技術が必要である。産業向けに多く開発されてきた装置は比較的低速であり、ＰＣＩ Ｅｘｐｒｅｓｓまでの高速性を必要としていない装置が多い。ＰＣＩ ＥｘｐｒｅｓｓをＰＣＩバスに変換するＬＳＩも存在する。しかしながら、これらを組み合わせるシステムでは部品量が増加するため、システムが複雑になり保守性が低下し、部品不良による稼働率低下やコスト対効果比の低さが問題となる。
【００１１】
特許文献２におけるマルチポート・システムは、ＰＣＩバスを延長するには好適なシステムである。しかしながら、高速なリンク（例えば２．５Ｇｂｐｓ程度のＬＶＤＳ）を用いてＰＣＩバスのトランザクションを転送するため、スイッチが必要となる。また、ＰＣＩバスのトランザクションを、ＰＣＩバスとはデータ伝送速度差のあるリンク、たとえば１００Ｍｂｐｓ程度のイーサネットで接続する際の、処理方法や応答性に対する課題の解決策が開示されていない。
【００１２】
特許文献３においては、イーサネットを用いた応答性の高い伝送方式が開示されている。しかしながら、ＰＣＩデバイスのようなデバイスをＰＣから操作する方式の開示がなされていない。
【００１３】
そこで、本発明は、前記した問題を解決し、計算機から通信路を介して別の計算機のデバイスに高速でアクセスすることを、主な目的とする。
【課題を解決するための手段】
【００１４】
前記課題を達成するために、本発明は、マスタ装置とスレーブ装置とが通信路を介して接続されるデバイス接続システムに用いられ、前記スレーブ装置に内蔵されるスレーブ側ブリッジであって、
前記スレーブ側ブリッジが、制御処理を行うための制御部と、前記通信路と接続するスレーブ側通信インタフェースと、スレーブ側デバイスにアクセス可能なスレーブ側バスと接続するスレーブ側バスアクセス部と、を有し、
前記スレーブ側ブリッジの制御部が、
前記スレーブ側通信インタフェースを介して、前記マスタ装置から前記スレーブ側デバイスからのデータの読込処理を実行するためのリード要求を受信すると、そのリード要求の内容を前記スレーブ側ブリッジの記憶手段に格納し、
前記スレーブ側バスアクセス部を介して、前記スレーブ側デバイスに対して、前記リード要求が示すデータの読込処理を指示し、
データの読込処理の結果であるリードデータの返信を待つ期間に、前記スレーブ側通信インタフェースを介して、前記マスタ装置に対して、前記リード要求の受信時に使用されたトランザクション上でダミーデータであるポーズデータを送信することで、そのトランザクションを維持し、
前記スレーブ側デバイスから前記リードデータの返信が行われたら、前記維持されているトランザクション上で、前記リードデータを前記マスタ装置に返信し、前記記憶手段に記憶された前記リード要求を削除することを特徴とする。
その他の手段は、後記する。
【発明の効果】
【００１５】
本発明によれば、計算機から通信路を介して別の計算機のデバイスに高速でアクセスすることができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態に関するデバイス接続システムを示す構成図である。
【図２】本発明の一実施形態に関するデバイス接続システムで送受信される通信パケットを示す構成図である。
【図３】本発明の一実施形態に関する図２のＳＴ／ＢＥの詳細を示す説明図である。
【図４】本発明の一実施形態に関するマスタ側ブリッジを示す構成図である。
【図５】本発明の一実施形態に関するスレーブ側ブリッジを示す構成図である。
【図６】本発明の一実施形態に関するマスタ装置が、スレーブ装置にライト要求する旨を示すフローチャートである。
【図７】本発明の一実施形態に関する図６の処理で送受信されるメッセージを示す説明図である。
【図８】本発明の一実施形態に関するマスタ装置が、スレーブ装置にリード要求する旨を示すフローチャートである。
【図９】本発明の一実施形態に関する図８の処理で送受信されるメッセージを示す説明図である。
【図１０】本発明の一実施形態に関するスレーブ装置がマスタ装置にライト要求する旨を示すフローチャートである。
【図１１】本発明の一実施形態に関するスレーブ装置がマスタ装置にリード要求する旨を示すフローチャートである。
【図１２】本発明の一実施形態に関する図１のマスタ装置の一部を変更したデバイス接続システムを示す構成図である。
【発明を実施するための形態】
【００１７】
図１は、デバイス接続システムを示す構成図である。デバイス接続システムは、マスタ装置１と、スレーブ装置６とを通信リンク（具体的には、通信路９ａ、通信スイッチ９、通信路９ｂ）で接続して構成される。
【００１８】
また、通信リンクを構成するための通信技術は、特に制限されるものはなく、イーサネットをはじめとして、ＦＤＤＩやＲＳ４８５、ＩＥＥＥ８０２．１１ａ／ｂ／ｇに準拠する無線ＬＡＮ、ＣＡＮ（Controller Area Network）、Fibre Channelなど、各種通信路９ａ，９ｂの物理層に適用可能である。通信スイッチ９は、通信路９ａ，９ｂの物理層に応じて用意する。各通信路において利用されるプロトコルも制限は無く、ＴＣＰ／ＵＤＰ／ＩＰ、ｉＳＣＳＩなど、通信路９ａ，９ｂの物理層や実装条件に応じたプロトコルに対応可能である。
【００１９】
なお、デバイス接続システムを構成する各装置は、図１に示した台数に限定されず、任意の台数として構成することができる。さらに、各装置内の構成要素を図１で示したように構成することは、あくまで一例であり、所定の構成要素が他の構成要素を包含することや、所定の構成要素を別の筐体として分離することとしてもよい。
【００２０】
マスタ装置１は、マスタ側ブリッジ２０を介して通信リンクと接続されており、通信リンクを中継してスレーブ装置６のスレーブ側ブリッジ７０と通信する。
マスタ装置１は、前記したマスタ側ブリッジ２０に加えて、ＣＰＵ１１、マスタ側デバイス１３、および、メモリ制御部１４がマスタ側バス１２を介して、マスタ装置１の装置内に接続されて構成される。
ＣＰＵ１１は、マスタ側バス１２を介して、マスタ装置１の各構成要素（マスタ側デバイス１３やマスタ側ブリッジ２０など）を制御する。
マスタ側デバイス１３は、マスタ装置１に内蔵されているデバイスであり、例えば、マスタ装置１のＰＣＩ（Peripheral Component Interconnect）スロットに差し込まれている。
メモリ制御部１４は、メモリ１５へのアクセス内容を制御する。
メモリ１５は、各デバイスが処理するデータを記憶するとともに、ＣＰＵ１１が実行する各プログラムが読み込まれる。
マスタ側ブリッジ２０は、メモリ制御部１４を介してメモリ１５へローカルアクセスするための制御部を有する。
【００２１】
スレーブ装置６は、スレーブ側ブリッジ７０と、１台以上のスレーブ側デバイス６３とが、スレーブ側バス６２を介して装置内に接続されている。
スレーブ側ブリッジ７０は、スレーブ側バス６２を介して、スレーブ側デバイス６３を制御する制御部を有する。
【００２２】
マスタ装置１のマスタ側バス１２には、マスタ側デバイス１３が接続されている。そして、マスタ側バス１２におけるマスタ側デバイス１３を接続するためのインタフェースの個数は、ハードウェア的な制限がある。
そこで、マスタ装置１とは別の装置であるスレーブ装置６を拡張装置として設け、スレーブ装置６内のスレーブ側バス６２に接続されているスレーブ側デバイス６３を、あたかもマスタ側バス１２に接続されているかのように、利用可能にすることで、マスタ装置１はマスタ側デバイス１３かスレーブ側デバイス６３かを特に区別（意識）せずに、データアクセスを実行できる。
このように、マスタ装置１が、スレーブ側デバイス６３をマスタ側デバイス１３のように利用可能にするため、マスタ側ブリッジ２０およびスレーブ側ブリッジ７０は、協調してスレーブ側デバイス６３へのデータアクセス（ライト要求、リード要求）のメッセージを、解釈する。
【００２３】
マスタ装置１は、以下に示すように、スレーブ装置６の側に存在するスレーブ側デバイス６３に対して、あたかもマスタ装置１内のマスタ側ブリッジ２０と同様に、データアクセスを実行することができる。つまり、スレーブ装置６は、自装置内のデータアクセスと、他装置から到着するデータアクセスと、の双方を処理することができる。
【００２４】
まず、マスタ装置１からスレーブ装置６へのデータアクセスは、マスタ装置１のＣＰＵ１１が、スレーブ側デバイス６３に対するバスアクセス要求を、マスタ側ブリッジ２０、通信リンク、および、スレーブ側ブリッジ７０を介して、スレーブ側デバイス６３に対して送信する。スレーブ側デバイス６３は、バスアクセス要求への応答を、スレーブ側ブリッジ７０、通信リンク、および、マスタ側ブリッジ２０を介して、マスタ装置１に返信する。
【００２５】
次に、スレーブ装置６からマスタ装置１へのデータアクセスは、マスタ装置１のＣＰＵ１１を介さない、メモリ１５へのＤＭＡ（Direct Memory Access）である。スレーブ側デバイス６３からのＤＭＡ要求は、スレーブ側ブリッジ７０が一旦受理し、通信リンクを介してマスタ側ブリッジ２０へと伝えられる。マスタ側ブリッジ２０は、スレーブ側デバイス６３を代理して、メモリ制御部１４を介してメモリ１５へとデータアクセスして、その結果を通信リンク、スレーブ側ブリッジ７０を介してスレーブ側デバイス６３へと返答する。
【００２６】
以上説明したマスタ側バス１２およびスレーブ側バス６２は、ＰＣＩバスをはじめとして、ＩＳＡバス、ＳＲＡＭメモリバス、ＶＭＥバス、ＰＣＩ Ｅｘｐｒｅｓｓなどが適用可能である。特にＰＣＩ Ｅｘｐｒｅｓｓのようなシリアルチャネルに関しては、適切なハブデバイスと併せて用いることが望ましい。
【００２７】
図２は、デバイス接続システムで送受信される通信パケットを示す構成図である。
【００２８】
イーサネットフレーム３０は、Ｐｒｅａｍｂｌｅ（プリアンブル）３１〜ＦＣＳ（検査データ）３６により構成される。
Ｐｒｅａｍｂｌｅ（プリアンブル）３１は、イーサネットのフレーム送信の開始を示す同期信号である。
ＤＡ（宛先アドレス）３２は、送信先の装置の通信インタフェースに割り当てられているＭＡＣアドレスである。
ＳＡ（送信元アドレス）３３は、送信元の装置の通信インタフェースに割り当てられているＭＡＣアドレスである。
ＴＹＰＥ（タイプ）３４は、通信パケットの種別を示す。例えば、ＩＰは、「０ｘ０８００」（「０ｘ」は１６進数を表す接頭語）として表現される。
Ｄａｔａ（データ）３５は、下記に示すイーサネットのデータを格納する。
ＦＣＳ（検査データ）３６は、通信パケットの伝送時に生じる誤りを検出するためのデータであり、イーサネットの場合には３２ビットのＣＲＣ（Cyclic Redundancy Check）を採用する。
【００２９】
Ｄａｔａ（データ）３５は、ＩＰ  ＨＤＲ（ＩＰヘッダ）４０〜ＡＣＫ（受信応答）４６により構成される。
ＩＰ  ＨＤＲ（ＩＰヘッダ）４０は、標準ＵＤＰ／ＩＰプロトコルに準拠するＩＰヘッダである。
ＵＤＰ  ＨＤＲ（ＵＤＰヘッダ）４１は、標準ＵＤＰ／ＩＰプロトコルに準拠するＵＤＰヘッダである。ＩＰヘッダとの組み合わせにより、通信パケットを識別することができる。
ＣＭＤ（コマンド）４２は、ＩＯバスにおけるバスアクセス要求の種類を示す。例えば、ＰＣＩバスによればアドレスフェーズに４ビットのＣ／「ＢＥ」［３：０］＃信号によって出力されるコマンドを、「ＣＭＤ」の下位４ビットに格納するのが好適である。
ＡＤＲ（アドレス）４３は、ＩＯバスにおけるバスアクセス要求のアドレスを示す。
ＳＴ／ＢＥ，ＷＤ，ＲＤ（バス制御データ）４４は、ライト要求やリード要求など、メッセージの種類によって様々なデータ内容を格納する。
ＡＣＫ（受信応答）４６には、全てのデータを正常に受信できたときに、応答を示すデータが格納される。例えば、正常受信するごとにＡＣＫ（受信応答）４６に格納されている値を１ずつ増加させる。
【００３０】
Ｃｏｕｎｔ（データ数）４５は、Ｄａｔａ（データ）３５の総データ数をバイト単位で示す。なお、Ｃｏｕｎｔ（データ数）４５は、包含されるイーサネットフレーム３０の総データ長が、そのイーサネットフレーム３０の送信開始時に確定しないケースに対処することを目的として、用意されている。つまり、イーサネットフレーム３０の総データ長は、ＩＰ  ＨＤＲ（ＩＰヘッダ）４０およびＵＤＰ  ＨＤＲ（ＵＤＰヘッダ）４１にも記載する必要があるが、それらのヘッダの作成時には有効なデータ長数値を格納できないため、一時的に最大データ長を格納する。一方、Ｃｏｕｎｔ（データ数）４５には、有効なデータ長数値を格納する。
【００３１】
ＳＴ／ＢＥ，ＷＤ，ＲＤ（バス制御データ）４４には、ＳＴ／ＢＥ５１、ＷＤ（ライトデータ）５２、および、ＲＤ（リードデータ）５３のうち、少なくとも１つのデータが格納される。
ＷＤ（ライトデータ）５２は、メモリまたはデバイスへ書き込むデータ内容である。ＲＤ（リードデータ）５３は、メモリまたはデバイスから読み取るデータ内容である。なお、ＷＤ（ライトデータ）５２およびＲＤ（リードデータ）５３は、それぞれ４バイト単位に限定されることなく適用可能である。例えば、ＣＰＵ１１のキャッシュラインサイズに応じたデータサイズで一括して、各データを構成してもよい。
【００３２】
バスアクセス要求（ＲＥＱ：Request）は、データを書き込むためのライト要求（ＷＲＱ：Write Request）、および、データを読み出すためのリード要求（ＲＲＱ：Read Request）に分類される。
ライト要求は、ＳＴ／ＢＥ５１とＷＤ（ライトデータ）５２との組を、１組以上格納することにより構成される。
リード要求は、前半部（ポーズ状態）と、後半部（データ送信状態）と、で構成される。ポーズ状態では、ＲＤ（リードデータ）５３を含まずに、ポーズデータを含むＳＴ／ＢＥ５１だけ構成される。データ送信状態では、ＳＴ／ＢＥ５１の後にＲＤ（リードデータ）５３が連続する。
【００３３】
図３は、図２のＳＴ／ＢＥの詳細を示す説明図である。
ＳＴ／ＢＥ５１は、ＳＴ（ステータス）と、ＢＥ（バイトイネーブル）５１ｃとの組として構成される。
ＳＴ（ステータス）は、後続データ５１ａ（１ビット長）と、応答状態５１ｂ（３ビット長）との組として構成される。
後続データ５１ａは、ＳＴ／ＢＥ５１の後に有効なデータが連続するか否かを示す。
応答状態５１ｂは、「正常、リトライ、ディスコネクト、ＳＥＲＲ（システムエラー）、ターゲットアボート、マスタアボート」のいずれかの状態を設定する。
ＢＥ５１ｃは、バスアクセス要求（ライト要求、リード要求）を発行した側が、バス上データの有効バイトレーンを示すデータである。ＰＣＩバスの場合には、Ｃ／「ＢＥ」［３：０］＃信号の「ＢＥ」［３：０］を格納するのが好適である。
【００３４】
例えば、リード要求におけるポーズ状態は、後続データ５１ａ＝「０（無）」かつ応答状態５１ｂ＝「０００（正常）」として表現される。一方、リード要求におけるデータ送信状態は、後続データ５１ａ＝「１（有）」かつ応答状態５１ｂ＝「０００（正常）」として表現される。
【００３５】
図４は、マスタ側ブリッジ２０を示す構成図である。
マスタ側ブリッジ２０は、マスタ側通信インタフェース２１と、ポーズ削除部２２と、要求発信部２３と、マスタ側バスアクセス部２４と、レジスタ部２９と、を有する。
【００３６】
マスタ側通信インタフェース２１は、通信路９ａと接続され、スレーブ装置６との通信を行うインタフェースである。マスタ側通信インタフェース２１には、通信路仕様によって規定されるインタフェースＩＤであるアドレスが割り当てられている。
通信路９ａは、送信用の信号線「Ｔｘ」と、受信用の信号線「Ｒｘ」との組により構成される。
【００３７】
ポーズ削除部２２は、マスタ側通信インタフェース２１から通信パケットを受信する。また、ポーズ削除部２２は、通信パケットから抽出されるリードデータ（「ＲＤ」）とポーズデータ（「Ｐ」）から、ポーズデータを削除して、残りのリードデータを要求発信部２３へ送出する。
【００３８】
要求発信部２３は、請求項における記憶手段としての、ＲＥＱ送信バッファ２３ａ、ＷＤ送信バッファ２３ｂ、ＲＤ受信バッファ２３ｃ、ＲＲＱ待ち行列２３ｄを有する。要求発信部２３は、マスタ側バスアクセス部２４からバストランザクションを受信し、そのバス制御データである「ＡＤＲ」および「ＣＭＤ」をＲＥＱ送信バッファ２３ａへ、「ＢＥ」および「ＷＤ」をＷＤ送信バッファ２３ｂへ保存（記憶）する。
要求発信部２３は、バストランザクションを通信路９ｂに送出可能な通信パケット形式に変換して、マスタ側通信インタフェース２１へ送出する。このとき要求発信部２３は、バストランザクションがリード要求であった場合には、ＲＲＱ待ち行列２３ｄに返答継続中と記録する。
要求発信部２３は、ポーズ削除部２２から受信したリードデータを、ＲＤ受信バッファ２３ｃに保存し、ＲＲＱ待ち行列２３ｄに応答可能と記録し、マスタ側バスアクセス部２４からのリード・バストランザクションに対してリードデータを応答する。
【００３９】
マスタ側バスアクセス部２４は、マスタ側バス１２と接続するためのインタフェースである。
マスタ側バスアクセス部２４は、マスタ側バス１２からＣＰＵ１１を介さないメモリ１５へのＤＭＡバストランザクションを受信して、要求発信部２３へ要求を転送する。
マスタ側バスアクセス部２４は、マスタ側バス１２からマスタ側ブリッジ２０自身へのバストランザクションを受信し、レジスタ部２９の情報を応答する。
【００４０】
レジスタ部２９は、マスタ側ブリッジ２０の動作を規定するレジスタを有する。本実施形態では、ＰＣＩ ＳＩＧ（Special Interest Group）発行の「PCI-to-PCI Bridge Architecture Specification Revision 1.1」に規定される、「PCI-to-PCI Bridge Configuration Registers」を搭載するものとして説明する。この場合、マスタ側ブリッジ２０は、スレーブ側ブリッジ７０と対をなして機能することより、マスタ側バス１２をプライマリバス、スレーブ側バス６２をセカンダリバスとして機能するよう、レジスタの機能を割り付けることが望ましい。
【００４１】
図５は、スレーブ側ブリッジ７０を示す構成図である。
スレーブ側ブリッジ７０は、要求応答部７１と、スレーブ側バスアクセス部７２と、ポーズ生成部７３と、スレーブ側通信インタフェース７８と、応答生成部７４と、レジスタ部７９と、を有する。
【００４２】
要求応答部７１は、請求項における記憶手段としての、ＲＥＱ受信バッファ７１ａとＷＤ受信バッファ７１ｂを有する。要求応答部７１は、スレーブ側通信インタフェース７８を介して受信する通信パケットからバスアクセス要求を解読し、スレーブ側バスアクセス部７２へ送出する。バスアクセス要求は、「ＡＤＲ」や「ＣＭＤ」、「ＢＥ」、「ＷＤ」などからなる。要求応答部７１は、「ＢＥ」と「ＷＤ」をＷＤ受信バッファ７１ｂへ保存（記憶）し、他のデータをＲＥＱ受信バッファ７１ａに保存（記憶）する。
要求応答部７１は、バスアクセス要求がスレーブ側バス６２へのリード要求であった場合に、スレーブ側バスアクセス部７２が有効なリードデータをスレーブ側バス６２から受信するまでの間、ポーズ生成部７３に対してポーズデータを出力するよう指示する。さらに、要求応答部７１は、応答生成部７４に対して、受信したパケットの一部を出力する。
【００４３】
スレーブ側バスアクセス部７２は、スレーブ側デバイス６３へのバスアクセス要求を出力し、スレーブ側デバイス６３からのアクセス結果である応答（有効なリードデータ）を応答生成部７４に転送する。
ポーズ生成部７３は、要求応答部７１からの指示に従い、スレーブ側バスアクセス部７２から有効なリードデータを受信するまでの間、ポーズデータを出力する。
【００４４】
応答生成部７４は、マスタ側通信インタフェース２１からのバスアクセス要求に対して、応答通信パケットを生成し返答する。また、応答生成部７４は、要求応答部７１から受信する通信パケットの一部を使い、応答通信パケットを生成する。
【００４５】
以上、図４のマスタ側ブリッジ２０および図５のスレーブ側ブリッジ７０それぞれの構成を説明した。なお、これらの通信用ブリッジは、２台を別々の構成要素としてもよいし、マスタ側ブリッジ２０とスレーブ側ブリッジ７０との両方の構成を兼用するように、１台にまとめてもよい。１台にまとめるときには、通信路と接続するための通信インタフェース（マスタ側通信インタフェース２１とスレーブ側通信インタフェース７８との組）、および、ブリッジの設定情報などを格納するレジスタ（レジスタ部２９とレジスタ部７９との組）は、機能が重複するため、それぞれ１つだけで済む。
【００４６】
図６は、マスタ装置１が、スレーブ装置６にライト要求する旨を示すフローチャートである。以下、図６の処理について、適宜図７に示すメッセージフォーマットを参照しつつ、説明する。
【００４７】
なお、図７に示すメッセージフォーマットの図は、図面の左が前側（先の時刻に送信される側）であり、図面の右が後側（後の時刻に送信される側）である。これらの各メッセージの構成要素（例えば、ＣＭＤ）は、図２，図３で説明したものである。なお、図２のＰｒｅａｍｂｌｅ（プリアンブル）３１は、データ処理には関係ないので図７の記載からは省略する。
また、図２のＩＰ  ＨＤＲ（ＩＰヘッダ）４０およびＵＤＰ  ＨＤＲ（ＵＤＰヘッダ）４１は、通信路で使用されるプロトコルに応じて、適宜挿入されるが、図７では記載を省略する。例えば、ＩＰ  ＨＤＲ（ＩＰヘッダ）４０およびＵＤＰ  ＨＤＲ（ＵＤＰヘッダ）４１の代わりに、独自のイーサネットフレームを設定するときには、その種別をＴＹＰＥ（タイプ）３４に記載すればよい。
【００４８】
図６の各メッセージ送信処理は、カットスルー方式が用いられる。カットスルー方式は、受信したパケットを完全に格納してから返信するストアアンドフォワード方式とは別の方式である。カットスルー方式では、データの一部を受信しながら、並行してその受信データに伴う解析処理および送信処理を行う。そして、受信した通信パケットの整合性がＦＣＳ（検査データ）３６によって確認を得られてから、スレーブ側バスアクセス部７２がバスアクセスを行う。
【００４９】
まず、図６のＳ１０１において、ＣＰＵ１１は、ライト要求を作成する。
具体的には、まず、ＣＰＵ１１は、ライトトランザクションを開始すると、マスタ側バス１２からマスタ側バスアクセス部２４を介して要求発信部２３へ、メッセージＭ１１を通知する。
要求発信部２３は、通知されたメッセージＭ１１のうち、イーサデータ（前側）をＲＥＱ送信バッファ２３ａに格納し、バスデータをＷＤ送信バッファ２３ｂに格納する。
要求発信部２３は、通知されたメッセージＭ１１の前にイーサヘッダ（「ＤＡ」、「ＳＡ」、「ＴＹＰＥ」）を付加し、受信したメッセージＭ１１の後にイーサデータ（後側）（「Ｃｏｕｎｔ」、「ＡＣＫ」）を付加することで、バストランザクションＭ１２を作成する。そして、要求発信部２３は、バストランザクションＭ１２をマスタ側通信インタフェース２１に通知する。
【００５０】
Ｓ１０２において、ＣＰＵ１１は、マスタ側ブリッジ２０に対して、Ｓ１０１のライト要求（バストランザクションＭ１２）を通知する。
Ｓ１０３において、マスタ側ブリッジ２０は、ＣＰＵ１１に対して、Ｓ１０２で通知されたライト要求への応答を通知する。このライト要求への応答は、Ｓ１０９の応答に代わる代理応答である。代理応答は、マスタ側ブリッジ２０が、ローカル（マスタ側バス１２を介するマスタ側デバイス１３）へのアクセスではなく、リモート（スレーブ装置６のスレーブ側デバイス６３）へのアクセスであると認識したときに、実施される。
【００５１】
Ｓ１０４において、マスタ側ブリッジ２０は、スレーブ側ブリッジ７０に対して、Ｓ１０２のライト要求を送信する。具体的には、マスタ側通信インタフェース２１は、Ｓ１０２で受信したバストランザクションＭ１２の末尾に、その通信パケットをもとに計算したイーサフッタ「ＦＣＳ」を付加してメッセージＭ１３を作成し、通信路９ａの送信用信号線「Ｔｘ」に送出する。メッセージＭ１３は、４バイトのデータライト要求（バスデータ）を含んでいる。なお、Ｓ１０４の処理は、Ｓ１０３の処理と並行して実行される。
【００５２】
Ｓ１０５において、スレーブ側ブリッジ７０は、マスタ側ブリッジ２０から、Ｓ１０４のライト要求を受信する。つまり、スレーブ側ブリッジ７０のスレーブ側通信インタフェース７８は、通信路９ｂの受信用信号線「Ｒｘ」から、メッセージＭ１３を受信する。このとき、スレーブ側通信インタフェース７８は、メッセージＭ１３を受信しながら、その整合性をＣＲＣ計算により検査する。そして、スレーブ側通信インタフェース７８は、メッセージＭ１３のイーサヘッダからイーサフッタまでを受信し、検査結果が正常であるとき、その旨を示す検査完了報告を応答生成部７４へ通知する。
【００５３】
Ｓ１０６において、スレーブ側ブリッジ７０は、マスタ側ブリッジ２０に対して、Ｓ１０５で受信したライト要求への応答（メッセージＭ１５）を送信する。このＳ１０６の応答も、Ｓ１０９の応答に代わる代理応答である。
そのため、スレーブ側通信インタフェース７８は、メッセージＭ１３の整合性検査処理（Ｓ１０５）と並行して、Ｓ１０６で送信するメッセージＭ１５を、次のように作成する、すなわち、Ｓ１０５で受信したメッセージＭ１３のデータからバストランザクションＭ１２を抽出して、要求応答部７１へ通知する。
要求応答部７１は、通知されたバストランザクションＭ１２を応答生成部７４へ転送しつつ、バストランザクションＭ１２のうちのイーサデータ（前側）をＲＥＱ受信バッファ７１ａに格納し、バスデータをＷＤ受信バッファ７１ｂに格納する。
応答生成部７４は、メッセージＭ１３の整合性検査処理（Ｓ１０５）が正常である旨の通知を受け、バストランザクションＭ１２の「ＡＣＫ」の値を１増加させてメッセージＭ１４を作成し、スレーブ側通信インタフェース７８へ返信する。
スレーブ側通信インタフェース７８は、応答生成部７４からのメッセージＭ１４に対して、再計算した検査データである「ＦＣＳ」＝“ｘ”を付加してメッセージＭ１５を作成し、通信路９ｂの送信用信号線「Ｔｘ」に送出する（Ｓ１０６）。
【００５４】
Ｓ１０７において、マスタ側ブリッジ２０は、スレーブ側ブリッジ７０から、Ｓ１０６のライト要求への応答を受信する。つまり、マスタ側ブリッジ２０のマスタ側通信インタフェース２１は、通信路９ａの受信用信号線「Ｒｘ」を介して、Ｓ１０６のマスタ側ブリッジ２０からのライト要求への応答（メッセージＭ１５）を、受信する。そして、マスタ側通信インタフェース２１は、受信したメッセージＭ１５内の「ＡＣＫ」が１増加されたことを読み取ることで、ライト要求が正常に実行されたことを確認すると、要求発信部２３に対してライト要求完了を通知する。要求発信部２３は、Ｓ１０１でメッセージＭ１１の内容をバッファリングしたので、その内容をＲＥＱ送信バッファ２３ａとＷＤ送信バッファ２３ｂとから、それぞれクリアする。
【００５５】
Ｓ１０８において、スレーブ側ブリッジ７０は、スレーブ側バス６２を介してスレーブ側デバイス６３に対して、Ｓ１０５で受信したライト要求（メッセージＭ１３）に含まれるアクセス内容（メッセージＭ１１）の指示を通知する。このＳ１０８の処理は、Ｓ１０６の処理と並行して実行される。スレーブ側バスアクセス部７２は、スレーブ側バス６２をバス制御信号で制御して、メッセージＭ１１から抽出したライトトランザクションでスレーブ側デバイス６３にアクセスし、ライトアクセスを完了させる。
【００５６】
Ｓ１０９において、スレーブ側デバイス６３は、スレーブ側バス６２を介してスレーブ側ブリッジ７０（要求応答部７１）に対して、Ｓ１０８で通知された指示の実行結果である、ライト要求の応答（書き込み成功を示すフラグなど）を送信する。要求応答部７１は、ライト要求の応答を得て、Ｓ１０６でバッファリングしたバストランザクションＭ１２のデータ内容を、ＲＥＱ受信バッファ７１ａおよびＷＤ受信バッファ７１ｂからクリアする。
なお、以上説明した図６の一例では、Ｓ１０９の応答について、先取り的に、既にＳ１０３およびＳ１０６で代理応答として行っているので、Ｓ１０９の応答は、ＣＰＵ１１に対しては、通知する必要はない。一方、代理応答をせずに、または代理応答をしてから、Ｓ１０９の応答をＣＰＵ１１に通知することとしてもよい。
【００５７】
図８は、マスタ装置１が、スレーブ装置６にリード要求する旨を示すフローチャートである。以下、図８の処理について、適宜図９に示すメッセージフォーマットを参照しつつ、説明する。図９は、図８の処理で送受信されるメッセージを示す説明図であり、その形式は図７と同様である。
【００５８】
まず、図８のＳ２０１において、ＣＰＵ１１は、リード要求を作成する。
具体的には、まず、ＣＰＵ１１は、リードトランザクションを開始すると、マスタ側バス１２からマスタ側バスアクセス部２４を介して要求発信部２３へ、メッセージＭ２１を通知する。
要求発信部２３は、通知されたメッセージＭ２１について、イーサデータ（前側）である「ＣＭＤ」および「ＡＤＲ」をＲＥＱ送信バッファ２３ａに格納しつつ、バスデータである「ＢＥ」をＷＤ送信バッファ２３ｂに格納する。
要求発信部２３は、通知されたメッセージＭ２１の前にイーサヘッダ（「ＤＡ」、「ＳＡ」、「ＴＹＰＥ」）を付加し、メッセージＭ２１の後にイーサデータ（後側）である「Ｃｏｕｎｔ」および「ＡＣＫ」）を付加することで、リード要求（バストランザクションＭ２２）を作成する。
Ｓ２０２において、ＣＰＵ１１は、マスタ側ブリッジ２０に対して、Ｓ２０１のリード要求（バストランザクションＭ２２）を通知する。
【００５９】
Ｓ２０３において、マスタ側ブリッジ２０は、スレーブ側ブリッジ７０に対して、Ｓ２０２で通知されたリード要求を送信する。このとき、マスタ側ブリッジ２０のマスタ側通信インタフェース２１は、通知されたバストランザクションＭ２２の末尾に、その通信パケットをもとに計算した「ＦＣＳ」をイーサフッタとして付加してメッセージＭ２３を作成し、通信路９ａの送信用信号線「Ｔｘ」に送出する。なお、メッセージＭ２３は、４バイトのデータリード要求を含む。
【００６０】
Ｓ２０４において、スレーブ側ブリッジ７０は、マスタ側ブリッジ２０から、Ｓ２０３のリード要求を受信する。具体的には、スレーブ側ブリッジ７０のスレーブ側通信インタフェース７８は、通信路９ｂの受信用信号線「Ｒｘ」からスレーブ側通信インタフェース７８を介して、メッセージＭ２３を受信する。
そして、スレーブ側通信インタフェース７８は、メッセージＭ２３を受信しながら、ＣＲＣを計算することで、その整合性を検査する。スレーブ側ブリッジ７０は、メッセージＭ２３のイーサヘッダからイーサフッタまでを受信し、その検査結果が正常であると認識できたら、検査完了報告を応答生成部７４へ通知する。
【００６１】
Ｓ２０５において、マスタ側ブリッジ２０は、リードデータの受信（Ｓ２１１で後記する）が行われていないうちは、ＣＰＵ１１に対して、Ｓ２０２で通知されたリード要求への応答として、リトライを通知する。このリード要求への応答は、Ｓ１０３と同様に、リモートアクセス時の代理応答である。また、Ｓ２０３の処理は、Ｓ２０５の処理と並行して実行される。
具体的には、要求発信部２３は、マスタ側バスアクセス部２４に対して、リトライを発行するよう指示する。指示を受けたマスタ側バスアクセス部２４は、マスタ側バス１２を介して、ＣＰＵ１１に対して、リード要求への応答であるリトライ（メッセージＭ２１）を通知する。このとき、要求発信部２３は、ＲＲＱ待ち行列２３ｄに対して、メッセージＭ２１をリードデータの返答継続中の状態として、格納して管理する。
【００６２】
Ｓ２０６において、スレーブ側ブリッジ７０は、スレーブ側デバイス６３に対して、Ｓ２０４で受信したリード要求が示すアクセス内容の指示を通知する。Ｓ２０６の処理は、Ｓ２０７の処理と並行して実行される。
そのため、まず、スレーブ側ブリッジ７０は、メッセージＭ２３の整合性検査処理（Ｓ２０４）と並行して、Ｓ２０４で受信したメッセージＭ２３のうちのバストランザクションＭ２２を要求応答部７１へ通知する。
要求応答部７１は、バストランザクションＭ２２を応答生成部７４へ転送しつつ、そのバストランザクションＭ２２のうちのイーサデータ（前側）をＲＥＱ受信バッファ７１ａに格納し、バストランザクションＭ２２のうちのバスデータの「ＢＥ」をＷＤ受信バッファ７１ｂに格納する。
要求応答部７１は、メッセージＭ２３の整合性検査処理（Ｓ２０４）の結果（受信正常）をスレーブ側ブリッジ７０のスレーブ側通信インタフェース７８から受けたら、メッセージＭ２３からメッセージＭ２１を抽出し、スレーブ側バスアクセス部７２へ通知する。
スレーブ側バスアクセス部７２は、スレーブ側バス６２を制御するためのバス制御信号、および、通知されたメッセージＭ２１から抽出したリードトランザクションでスレーブ側デバイス６３にアクセスする。
【００６３】
Ｓ２０７において、スレーブ側ブリッジ７０は、マスタ側ブリッジ２０に対して、マスタ側ブリッジ２０とのトランザクションの切断を防ぐためのポーズデータ（Ｐ）を、トランザクションの切断判定となる通信が途絶える間隔よりも短い間隔で作成し、送信し続ける。なお、このＳ２０７のポーズデータ処理は、リード要求の受信時（Ｓ２０４）から、リードデータの応答処理（Ｓ２０９）時まで、実行され続ける。
つまり、要求応答部７１は、通知されたバストランザクションＭ２２の「ＣＭＤ」がリード要求であると解読し、ポーズ生成部７３へポーズ要求を通知する。ポーズ生成部７３は、ポーズ要求に従い、リードデータの応答（Ｓ２０９）が到着するまで、ポーズデータ（Ｐ）を出力し始める。応答生成部７４は、ポーズ生成部７３からのポーズデータ（Ｐ）を通信パケット（メッセージＭ２４）に含め、マスタ側ブリッジ２０に対して、出力する。
【００６４】
Ｓ２０８において、マスタ側ブリッジ２０は、スレーブ側ブリッジ７０から、Ｓ２０７で送信されるポーズデータを受信し続けるとともに、その受信したポーズデータを、ＣＰＵ１１に転送しないように削除する。このように、ポーズデータを受信し続けることで、スレーブ側ブリッジ７０は、通信相手のマスタ側ブリッジ２０との間のトランザクションの切断を抑制する。
つまり、マスタ側ブリッジ２０のマスタ側通信インタフェース２１は、通信路９ａの受信用信号線「Ｒｘ」を介して、メッセージＭ２４を受信する。
ポーズ削除部２２は、マスタ側通信インタフェース２１からメッセージＭ２４を通知されると、受信したパケットのなかから、ポーズデータ（Ｐ）を削除する。ポーズデータ（Ｐ）は、あくまでトランザクションの維持を目的とする一時的な制御用データであり、マスタ側ブリッジ２０が発行するリード要求への応答には不要なデータであるためである。
一方、受信したパケットのなかから、ポーズデータ以外の前段データ（イーサヘッダ、および、イーサデータのうちの少なくとも１つのデータ）は、有効なリードデータとして要求発信部２３に通知する。
【００６５】
Ｓ２０９において、スレーブ側デバイス６３は、スレーブ側ブリッジ７０に対して、Ｓ２０６で指示されたリード要求のアクセス内容を実行し、その結果であるリードデータを応答する。なお、スレーブ側デバイス６３は、応答を受け、リードデータが用意できたので、ＲＲＱ待ち行列２３ｄの該当する「ＲＥＱ」について、応答可能と記録する。
そして、スレーブ側ブリッジ７０は、要求応答部７１およびポーズ生成部７３へ、それぞれバス完了応答を発行する。
バス完了応答を受けた要求応答部７１は、ＲＥＱ受信バッファ７１ａをクリアする。
バス完了応答を受けたポーズ生成部７３は、「正常リードデータ有」を示すステータスを出力するとともに、メッセージＭ２８のリードデータを出力する。そして、ポーズ生成部７３はＲＤ送信バッファ７４ａをクリアする。
【００６６】
Ｓ２１０において、スレーブ側ブリッジ７０は、マスタ側ブリッジ２０に対して、Ｓ２０９で応答されたスレーブ側デバイス６３からのリードデータの応答を送信する。
そのため、応答生成部７４は、「正常リードデータ有」を示すステータスをポーズ生成部７３から受信すると、メッセージＭ２４に対して、「Ｃｏｕｎｔ」を適切な値（ｘ）に修正し、「ＡＣＫ」の値を１つ増加させて、メッセージＭ２５を作成し、スレーブ側通信インタフェース７８へ通知する。
スレーブ側通信インタフェース７８は、通知されたメッセージＭ２５に対して、再計算した検査データである「ＦＣＳ」＝“ｘ”を付加して、メッセージＭ２６を作成する。そして、スレーブ側通信インタフェース７８は、メッセージＭ２６を、通信路９ｂの送信用信号線「Ｔｘ」へ送出する。
なお、メッセージＭ２５，２６は、それぞれメッセージＭ２４とは独立したメッセージではなく、メッセージＭ２４から時間経過したメッセージである。つまり、メッセージＭ２５，２６は、それぞれメッセージＭ２４と比較すると、バスデータのポーズデータ（Ｐ）の後に、ステータス（ＳＴ）およびリードデータ（ＲＤ）が追加されている。
一方、メッセージＭ２５，２６とメッセージＭ２４とで、バスデータより前のイーサヘッダ、イーサデータは、同じデータである。
よって、Ｓ２１０におけるメッセージＭ２６の送信処理のうちのバスデータの前段データ（イーサヘッダ、イーサデータ）の送信は既にメッセージＭ２４のカットスルー送信処理によってすでに行われているため、省略される。
【００６７】
Ｓ２１１において、マスタ側ブリッジ２０は、スレーブ側ブリッジ７０から、Ｓ２１０のリードデータの応答を受信する。つまり、マスタ側ブリッジ２０のマスタ側通信インタフェース２１は、通信路９ａの受信用信号線「Ｒｘ」から、メッセージＭ２４の続きとして、メッセージＭ２６を受信する。マスタ側通信インタフェース２１は、メッセージＭ２６の「ＡＣＫ」が「＋１」されていることを読み取ることで、リード要求が正常にスレーブ側ブリッジ７０に送信されたことを確認した後、メッセージＭ２６からメッセージＭ２５を取り出し、ポーズ削除部２２へ通知する。Ｓ２０８で説明したように、ポーズ削除部２２は、ポーズデータ（Ｐ）を削除し続けている。そして、ポーズ削除部２２は、メッセージＭ２５のうちのポーズデータ（Ｐ）を削除したデータを、有効なリードデータとして要求発信部２３に通知する。
要求発信部２３は、有効なリードデータをポーズ削除部２２から受信すると、その有効なリードデータをＲＤ受信バッファ２３ｃに格納する。また、要求発信部２３は、ＲＲＱ待ち行列２３ｄの該当する「ＲＥＱ」について、応答可能と記録する。
【００６８】
Ｓ２１２において、ＣＰＵ１１は、マスタ側ブリッジ２０に対して、Ｓ２０５の応答（リトライ）に応じて、すでにＳ２０２で送信したリード要求の通知（バストランザクションＭ２２）を再び実行する。このＳ２１２の処理は、リード要求の応答として、リードデータを返信する（Ｓ２１４）まで（Ｓ２１３がＹｅｓになるまで）、繰り返される。
【００６９】
Ｓ２１３において、マスタ側ブリッジ２０は、Ｓ２１２の通知を受け、リードデータの応答の受信（Ｓ２１１）により、リードデータが存在するか否かを判定する。つまり、マスタ側ブリッジ２０は、ＲＲＱ待ち行列２３ｄに格納されているＳ２１１のメッセージＭ２５と、Ｓ２１２のバストランザクションＭ２２と、を比較して、同一のリード要求（ＲＥＱ）が存在するときに、Ｓ２１３，Ｙｅｓとなる。
【００７０】
Ｓ２１４において、マスタ側ブリッジ２０は、ＣＰＵ１１に対して、リードデータの応答の受信（Ｓ２１１）により取得したリードデータを、リード要求への応答として返信する。リードデータを応答した要求発信部２３は、ＲＤ受信バッファ２３ｃのＳ２１４で応答した有効なリードデータをクリアする。
【００７１】
以上説明した本実施形態によれば、バスアクセスが装置内のローカル通信（マスタ側バス１２およびスレーブ側バス６２それぞれのＰＣＩバスの通信など）であるときでも、装置間のリモート通信（通信路９ａ、通信スイッチ９ａ、通信路９ｂで構成される通信リンクのイーサネットの通信など）であるときでも、応答の遅延時間の小さい、リアルタイム性に優れた高速処理を実現することができる。特に、ローカル通信とリモート通信とでデータ伝送速度の差がある場合でも、その速度差の影響を抑制することができる。
【００７２】
なお、マスタ側ブリッジ２０と、スレーブ側ブリッジ７０との間のリモート通信に使用されるトランザクションは、そのトランザクションが長い間使用されない（データが伝送されない）ときには、一旦途切れてしまう。よって、マスタ側ブリッジ２０がリード要求を発行すると、スレーブ側ブリッジ７０は、そのリード要求への応答データを得るまでの間、データが伝送されない空白期間が存在してしまう。
【００７３】
そこで、スレーブ側ブリッジ７０は、空白期間にトランザクションが途切れないように、マスタ側ブリッジ２０に対して、ポーズデータを送信し続ける。これにより、トランザクション上にデータが流れ続けることで、トランザクションが維持され続けることとなり、トランザクションが途切れるオーバーヘッドを抑制することにより、高速処理を実現することができる。また、マスタ側ブリッジ２０は、ポーズデータを受信すると、そのポーズデータは、リード要求に対する処理としては不要であるため、削除する。一方、マスタ側ブリッジ２０は、リード要求に対する応答として必要なデータである、ポーズデータ以外のデータをリード要求の送信側に転送する。
【００７４】
以上説明した本実施形態は、以下に示すように、様々な変形実施が可能である。
【００７５】
まず、図１０，図１１に示すように、バス通信ブリッジは対称的に動作するため、各要求（リード、ライト）の送信側および受信側の組み合わせは、マスタ装置１（送信側）および、スレーブ装置６（受信側）の組としてもよいし、マスタ装置１（受信側）および、スレーブ装置６（送信側）の組としてもよい。
【００７６】
図１０は、図６とは逆方向に、スレーブ装置６がマスタ装置１にライト要求する旨を示すフローチャートである。この図１０では、処理の動作主体を図６から変更しただけで、処理内容の変更は無い。
図６のＣＰＵ１１が図１０のスレーブ側デバイス６３に、図６のマスタ側ブリッジ２０が図１０のスレーブ側ブリッジ７０に、図６のスレーブ側ブリッジ７０が図１０のマスタ側ブリッジ２０に、図６のスレーブ側デバイス６３が図１０のマスタ側デバイス１３に、それぞれ変更されている。
【００７７】
図１１は、図８とは逆方向に、スレーブ装置６がマスタ装置１にリード要求する旨を示すフローチャートである。この図１１では、処理の動作主体を図８から変更しただけで、処理内容は変更無い。
図８のＣＰＵ１１が図１１のスレーブ側デバイス６３に、図８のマスタ側ブリッジ２０が図１１のスレーブ側ブリッジ７０に、図８のスレーブ側ブリッジ７０が図１１のマスタ側ブリッジ２０に、図８のスレーブ側デバイス６３が図１１のマスタ側デバイス１３に、それぞれ変更されている。
【００７８】
図１２は、図１のマスタ装置１の一部を変更したデバイス接続システムを示す構成図である。図１２のデバイス接続システムと、図１のデバイス接続システムとの相違点は、以下の点である。
【００７９】
まず、相違点として、図１のマスタ側ブリッジ２０の代わりに、マスタ側通信インタフェース２１を介して、通信リンクと接続する。マスタ側通信インタフェース２１は、通信路９ａへの送受信を実現するために、例えば、汎用のイーサネット規格の送受信ＬＳＩとして構成される。
【００８０】
次に、相違点として、マスタ側ブリッジ２０の機能をソフトウェアとＣＰＵ１１とが協働して実現するため、不揮発メモリ１６内に、ＤＭＡ処理部１７およびデバイス制御部１８を実現するためのプログラムを有している。デバイス制御部１８とは、ＩＯデバイス（マスタ側デバイス１３、スレーブ側デバイス６３）を制御するためのドライバプログラムが該当する。
なお、不揮発メモリ１６は、プログラムを格納する記憶素子であれば汎用的な装置が利用可能である。例えばＥＥＰＲＯＭ（Electric Erasable Programmable Read Only Memory）やフラッシュメモリ、ハードディスク、ＳＳＤ（Solid State Drive）などが利用可能である。
そして、ＤＭＡ処理部１７およびデバイス制御部１８を実現する際には、メモリ１５にＤＭＡ処理部１７を展開し、ＣＰＵ１１により処理する。または、ＣＰＵ１１は、ＸＩＰ（Execute In Place）と呼ばれる技術により、ＤＭＡ処理部１７を不揮発メモリ１６から読み出して、直接実行してもよい。
【００８１】
これにより、マスタ側ブリッジ２０の機能を実現するための各処理部（ソフトウェアにより実現される）をＣＰＵ１１が実行することにより、マスタ側通信インタフェース２１をマスタ側ブリッジ２０にハードウェア構成として置き換えなくても済むため、すでに導入済みのマスタ装置１に対して、新たなハードウェアを追加することなく、有効に活用することができる。さらに、このソフトウェアによる構成および効果は、マスタ装置１だけでなく、スレーブ装置６にも適用することができる。
【００８２】
この図１２のデバイス接続システムによるライト要求処理について、すでに説明した図６の処理との相違点を説明する。
マスタ側ブリッジ２０が有する各手段は、デバイス制御部１８、ＤＭＡ処理部１７およびマスタ側通信インタフェース２１へと代替されている。
Ｓ１０４において、ＤＭＡ処理部１７は、Ｓ１０２で通知されたライト要求をイーサネットフレームなどのパケット形式にしてから、マスタ側通信インタフェース２１を介して、ライト要求をスレーブ側ブリッジ７０に送信する。
Ｓ１０７において、ＤＭＡ処理部１７は、マスタ側通信インタフェース２１を介して、ライト要求の応答をスレーブ側ブリッジ７０から受信する。
【００８３】
この図１２のデバイス接続システムによるリード要求処理について、すでに説明した図８の処理との相違点を説明する。
マスタ側ブリッジ２０が有する各手段は、デバイス制御部１８、ＤＭＡ処理部１７、メモリ１５、および、マスタ側通信インタフェース２１へと代替されている。
Ｓ２０３において、ＤＭＡ処理部１７は、Ｓ２０２で通知されたリード要求をイーサネットフレームなどのパケット形式にしてから、マスタ側通信インタフェース２１を介して、リード要求をスレーブ側ブリッジ７０に送信する。
Ｓ２０８において、ＤＭＡ処理部１７は、Ｓ２０７で送信されたポーズデータを、マスタ側通信インタフェース２１を介して受信し、削除する。
Ｓ２１１において、ＤＭＡ処理部１７は、マスタ側通信インタフェース２１を介して、リード要求の応答（リードデータ）をスレーブ側ブリッジ７０から、マスタ側通信インタフェース２１およびメモリ１５経由で受信する。具体的には、マスタ側通信インタフェース２１は、受信した通信パケットをＤＭＡ（Direct Memory Access）方式でメモリ１５へ格納する。マスタ側通信インタフェース２１は、通信パケットの受信を完了すると、通信パケットを受信した旨をＤＭＡ処理部１７へ通知する。通知を受けたＤＭＡ処理部１７は、メモリ１５から受信した通信パケットを取得する。なお、ＤＭＡ処理部１７は、受信した通信パケットに含まれるポーズデータは、Ｓ２０８で削除される。
【符号の説明】
【００８４】
１      マスタ装置
６      スレーブ装置
９      通信スイッチ
９ａ    通信路
９ｂ    通信路
１１    ＣＰＵ
１２    マスタ側バス
１３    マスタ側デバイス
１４    メモリ制御部
１５    メモリ
１６    不揮発メモリ
１７    ＤＭＡ処理部
１８    デバイス制御部
２０    マスタ側ブリッジ（通信用ブリッジ）
２１    マスタ側通信インタフェース
２２    ポーズ削除部
２３    要求発信部
２３ａ  ＲＥＱ送信バッファ
２３ｂ  ＷＤ送信バッファ
２３ｃ  ＲＤ受信バッファ
２３ｄ  ＲＲＱ待ち行列
２４    マスタ側バスアクセス部
２９    レジスタ部
６２    スレーブ側バス
６３    スレーブ側デバイス
７０    スレーブ側ブリッジ（通信用ブリッジ）
７１    要求応答部
７１ａ  ＲＥＱ受信バッファ
７１ｂ  ＷＤ受信バッファ
７２    スレーブ側バスアクセス部
７３    ポーズ生成部
７４    応答生成部
７４ａ  ＲＤ送信バッファ
７８    スレーブ側通信インタフェース
７９    レジスタ部
【図１】
2010199634.tif 000003
【図２】
2010199634.tif 000004
【図３】
2010199634.tif 000005
【図４】
2010199634.tif 000006
【図５】
2010199634.tif 000007
【図６】
2010199634.tif 000008
【図７】
2010199634.tif 000009
【図８】
2010199634.tif 000010
【図９】
2010199634.tif 000011
【図１０】
2010199634.tif 000012
【図１１】
2010199634.tif 000013
【図１２】
2010199634.tif 000014