(57)【特許請求の範囲】
【請求項１】
第一のクロック周波数で動作する第一のデバイス及び第二の動作クロックで動作する第二のデバイス間に接続されたブリッジ装置において、前記二つのデバイスを動作結合させる方法であって、
（ａ）前記第一のデバイスから第一のコマンド・メッセージを受信するステップと、
（ｂ）前記第一のコマンド・メッセージをメモリ内に格納するステップと、
（ｃ）前記第一のコマンド・メッセージを前記第二のデバイスへ伝送するステップと、
（ｄ）前記第一のデバイスに対して前記第一のコマンド・メッセージの再送を要求するコマンドを送出するステップと、
（ｅ）前記第一のデバイスからメッセージを受信するステップと、
（ｆ）前記第一デバイスから送信されたメッセージが前記メモリ内に格納された前記第一のコマンド・メッセージと一致すると共に前記第二のデバイスから前記第一のコマンド・メッセージに対する応答メッセージを受信するまで前記ステップ（ｄ）乃至（ｅ）を繰り返すステップと、
（ｇ）前記第二のデバイスから前記応答メッセージが送信された時に、当該応答メッセージを前記第一のデバイスに伝送するステップと、
の各ステップを有することを特徴とする二つのデバイスを動作結合させる方法。
【請求項２】
第一のクロック周波数で動作する第一のデバイスと第二の動作クロックで動作する第二のデバイスとを動作結合させるブリッジ装置であって、
前記ブリッジ装置は、前記第一のデバイスに接続された第一のバス・スレーブ・インターフェースと、前記第一のバス・スレーブ・インターフェース及び前記第２のデバイスに接続された第二のバス・マスター・インターフェースとを備え、
（ａ）前記第一のデバイスから第一のコマンド・メッセージを受信し、
（ｂ）前記第一のコマンド・メッセージをメモリ内に格納し、
（ｃ）前記第一のコマンド・メッセージを前記第二のデバイスへ伝送し、
（ｄ）前記第一のデバイスに対して前記第一のコマンド・メッセージの再送を要求するコマンドを送出し、
（ｅ）前記第一のデバイスからメッセージを受信し、
（ｆ）前記第一デバイスから送信されたメッセージが前記メモリ内に格納された前記第一のコマンド・メッセージと一致すると共に前記第二のデバイスから前記第一のコマンド・メッセージに対する応答メッセージを受信するまで前記ステップ（ｄ）乃至（ｅ）を繰り返すステップと、
（ｇ）前記第二のデバイスから前記応答メッセージが送信された時に、当該応答メッセージを前記第一のデバイスに伝送する、
各手段を有することを特徴とするブリッジ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、主にバス・インターフェース・デバイスに関し、特に、異なるクロック周波数で作動している二つのデバイスをブリッジするための方法及び装置に関するものである。
【０００２】
【従来の技術】
ＰＣＩローカル・バスは、マルチプレクス・アドレス及びデータ・ラインを備えた高性能の３２ビットもしくは６４ビットのバスである。このＰＣＩローカル・バスは、低コストで高性能のローカル・バス・アーキテクチャを確立するために定められた工業規格である。ＰＣＩコンポーネント即ちＰＣＩ機器及びアド−イン式で用いられるカード・インターフェースは、プロセッサに依存していないことから、次世代のプロセッサへの移行も効率的に行うことができ、また、複数のプロセッサを用いたアーキテクチャにも用いることができる。
【０００３】
このように、プロセッサに依存しないことから、ＰＣＩローカル・バスは、Ｉ／Ｏ機能への最適化が可能で、プロセッサやメモリのサブシステムとの同時動作が可能となり、モーション・ビデオ等のグラフィックス、ＳＣＳＩ、ハード・ディスク・ドライブ等に加えて、多数の高性能周辺機器の調整も可能である。
【０００４】
高品位ＴＶのマルチ−メディア・ディスプレイやビデオ、及びその他の三次元または高帯域幅Ｉ／Ｏの進歩に伴って、ローカル・バスの帯域幅に対する要求も増している。
【０００５】
ＰＣＩインターフェースは、特に高集積周辺制御コンポーネント、周辺アド−イン式ボード、及びプロセッサ／メモリシステムの相互接続に適している。また、ＰＣＩインターフェース規格は、ＰＣＩに準拠したシステムによって、ユーザに対して更なる利益をもたらす。この規格では、ＰＣＩコンポーネント及びアド−インカードに対して、環境設定レジスタが規定されている。自動環境設定ソフトウェアを備えたシステムでは、電源を入れるとＰＣＩアド−インカードが自動的に環境設定されるので、システムを使用する際のユーザへの負担が劇的に軽減される。ＰＣＩローカル・バス仕様２．０は、参照として本願に包含されており、ＰＣＩインターフェース・プロトコルを電気的及び機械的に定義し、また、ＰＣＩローカル・バス・コンポーネントや拡張ボードの環境設定仕様をも定義する。
【０００６】
一方、互いにクロックが独立しているか、またはクロックが独立的に制御されるバス・コンポーネントやデバイス間でインターオペレート即ち相互動作を行うことが要求される場合も生じる。例えば、ホスト・コンピュータを、動作クロックが高いか、または低い周辺機器と接続して相互動作させる場合が挙げられる。また、ホスト・コンピュータや周辺機器の一方または双方の動作クロックが、制御可能もしくは可変である場合もある。例えば、ハードウェア・エミュレータを用いることで、バス・コンポーネントや拡張ボードの開発時間が短縮される。これらのエミュレータによって、開発者は、修正が容易であるソフトウェアを用いて、拡張ボードにインプリメントされたロジックを試験して、試験対象となるデザインがリアルタイムで機能しうるかを確認することができる。
【０００７】
【発明が解決しようとする課題】
しかしながら、ハードウェアのこのような機能調整を行うには、その代償が必要となる。通常、これらのハードウェア・エミュレータは、ホスト・デバイスよりも非常に低い動作速度で作動させなければならず、従って、ホスト・バスを最高速度として接続することは不可能であった。特に、ＰＣＩバス自体のＩ／Ｏ速度が高いので、この問題は、ホスト・バスに対してＰＣＩ準拠デバイスが接続されているときに、非常に大きな影響を及ぼす。
【０００８】
そこで、本発明は、第一のクロック周波数で動作している第一のデバイスと、第二の動作クロックで動作している第二のデバイスと、をブリッジする方法及び装置を提供することを目的とする。
【０００９】
本発明は、その一の形態として、第一のクロック周波数で動作する第一のデバイス及び第二の動作クロックで動作する第二のデバイス間に接続されたブリッジ装置において、前記二つのデバイスを動作結合させる方法であって、（ａ）前記第一のデバイスから第一のコマンド・メッセージを受信するステップと、（ｂ）前記第一のコマンド・メッセージをメモリ内に格納するステップと、（ｃ）前記第一のコマンド・メッセージを前記第二のデバイスへ伝送するステップと、（ｄ）前記第一のデバイスに対して前記第一のコマンド・メッセージの再送を要求するコマンドを送出するステップと、（ｅ）前記第一のデバイスからメッセージを受信するステップと、（ｆ）前記第一デバイスから送信されたメッセージが前記メモリ内に格納された前記第一のコマンド・メッセージと一致すると共に前記第二のデバイスから前記第一のコマンド・メッセージに対する応答メッセージを受信するまで前記ステップ（ｄ）乃至（ｅ）を繰り返すステップと、（ｇ）前記第二のデバイスから前記応答メッセージが送信された時に、当該応答メッセージを前記第一のデバイスに伝送するステップと、の各ステップを有することを特徴とする二つのデバイスを動作結合させる方法を提供するものである。
【００１０】
本発明は、他の形態として、第一のクロック周波数で動作する第一のデバイスと第二の動作クロックで動作する第二のデバイスとを動作結合させるブリッジ装置であって、前記ブリッジ装置は、前記第一のデバイスに接続された第一のバス・スレーブ・インターフェースと、前記第一のバス・スレーブ・インターフェース及び前記第２のデバイスに接続された第二のバス・マスター・インターフェースとを備え、（ａ）前記第一のデバイスから第一のコマンド・メッセージを受信し、（ｂ）前記第一のコマンド・メッセージをメモリ内に格納し、（ｃ）前記第一のコマンド・メッセージを前記第二のデバイスへ伝送し、（ｄ）前記第一のデバイスに対して前記第一のコマンド・メッセージの再送を要求するコマンドを送出し、（ｅ）前記第一のデバイスからメッセージを受信し、（ｆ）前記第一デバイスから送信されたメッセージが前記メモリ内に格納された前記第一のコマンド・メッセージと一致すると共に前記第二のデバイスから前記第一のコマンド・メッセージに対する応答メッセージを受信するまで前記ステップ（ｄ）乃至（ｅ）を繰り返し、（ｇ）前記第二のデバイスから前記応答メッセージが送信された時に、当該応答メッセージを前記第一のデバイスに伝送する、各手段を有することを特徴とするブリッジ装置を提供するものである。
【００１１】
このような方法及び装置によって、バス・コンポーネントや拡張ボードの開発に有用な非同期ブリッジが提供され、また、これらによって、クロックスピードが独立しているかまたは独立的に制御可能な状態で動作しているデバイス間にインターフェースを提供することで、複数のバス・コンポーネントやデバイスの間での相互動作が可能となる。
【００１２】
【発明の実施の形態】
以下、添付図面を参照して本発明の実施形態を説明する。
【００１３】
図１に、非同期ＰＣＩ−ＰＣＩブリッジ(asynchronous PCI-PCI bridge:ＡＰＢ)１００のトップ−レベル機能ブロック図を示す。このブリッジは、ホストＰＣＩ準拠デバイス１０２とターゲット（相手側）ＰＣＩ準拠デバイス１０４との間に、ホストＰＣＩバス１０６、ターゲットＰＣＩバス１０８によってそれぞれ結合されている。ＡＰＢ１００は、ターゲット・バス・マスター・インターフェース１１２に結合されたホスト・バス・スレーブ・インターフェース１１０と、ターゲット・バス・スレーブ・インターフェース１１６に結合されたホスト・バス・マスター・インターフェース１１４とを有する。また、ターゲット・バス・アービター（調停回路）１１８は、ターゲット・バスに結合されている。これら各コンポーネントの機能及び動作は後述する。
【００１４】
本発明の用途及び範囲は、ＰＣＩ準拠デバイスに限定されるものではない。本明細書に記載される、本発明に係る方法及び装置は、所定のインターフェースプロトコルを用いるデバイス間の非同期ブリッジとなるものである。さらに、図１に示されるブリッジは、種々の形態によって実現が可能である。
【００１５】
このような実現形態の一つとして、通常用いられるフリップ・フロップ及びその他の論理メモリデバイスを用いて、特定の目的におけるＡＰＢ１００を得ることが挙げられる。同様に、ＡＰＢ１００の機能（詳細は後述する）は、メモリデバイスに結合されたマイクロプロセッサにより達成することも可能である。更に、図１に示される各構成要素は、図２に示されるように、ホストＰＣＩバス１０６とターゲットＰＣＩバス１０８との間に結合されたコンピュータ１２０によってその機能を達成することも可能である。このコンピュータは、インター・エイリア(inter alia)、プロセッサ１２２、メモリ１２４を、固定型／リムーバブル型の格納デバイス１２６及び付随メディア１２８とともに有する。
【００１６】
当業者によれば、上記コンポーネントのどのような組み合わせや、あるいはその他のコンポーネントや周辺機器等の他のデバイスを用いることで、上述したような構成や処理を達成することも可能である。
【００１７】
以下、図３に示されるホスト・バス・スレーブ・インターフェース１１０の動作のフローチャートの各ステップ（Ｓと略記する）を説明する。この処理は、ホストＰＣＩバス１０６がアイドル状態（Ｓ２００）にあるときに開始され、最終的には、同じくこのアイドル状態で終了する。上記アイドル状態（Ｓ２００）から、ホスト・バス・スレーブ・インターフェース１１０は、ホスト・バスがブリッジにアクセスを要求したかを判定する（Ｓ２０２）。この要求は、ホストＰＣＩバス１０６上のFRAME信号ピンがアクティブとなることで示される。このことは、FRAMEピンが論理的にローレベルにあるときに示される。
【００１８】
次に、ホストＰＣＩバス１０６からのインストラクションを調べ、このインストラクションが、ターゲットＰＣＩデバイス１０４及びＡＰＢ１００によりサポートされたインストラクションであるものかどうかを判定する（Ｓ２０４）。例えば、無効化インストラクションは、ホストのマザーボードシステムメモリにのみ与えられるものであり、ＡＰＢやターゲットＰＣＩデバイスにサポートされたものではない。このインストラクションが示された場合、ＡＰＢはアイドル状態に戻る。
【００１９】
その後、ホスト・バス・スレーブ・インターフェース１１０は、ホストＰＣＩ準拠デバイス１０２からのメッセージを用いて、ＡＰＢが選択されたかどうかを判定する（Ｓ２０６）。通常、メッセージにより指定されるアドレス、アドレスレンジ、またはウィンドウに基づいて、この判定がなされる。このアドレスがＡＰＢアドレスウィンドウ内にある場合、アドレス、データ及びコマンドがキャプチャされる（Ｓ２０８）。このステップには、これらの値を格納してその後の使用のためにセーブすることが含まれる。後述するように、このデータは、その後のトライアルで上書きされることになる。
【００２０】
次に、ホスト・スレーブ・バス・インターフェース１１０は、キャプチャされたコマンドに対する最初のトライアルであるか否かを判定する（Ｓ２１０）。このコマンドまたはインストラクションに対する最初のトライアルではない場合、その後の処理のために、インストラクション・アドレス、コマンド及びデータが格納される。格納されたデータは、その後、二つのＰＣＩデバイスの間の遅れアクションのインターフェースを実行するために用いられる。
【００２１】
インストラクションを格納（Ｓ２１２）した後に、ホスト・スレーブ・バス・インターフェース１１０は、HOST_BUSYフラグ及び1ST TRIALフラグを立てる（Ｓ２１４）。このHOST_BUSYフラグは、ホストＰＣＩ準拠デバイスが、ＡＰＢ１００にアクセスしていることを示す。このフラグは、後に、他のＡＰＢの要素に対して、ホストが使用中であることを示すために用いられる。上記1ST_TRIALフラグは、ブロック２１０（Ｓ２１０）で示される機能を実行するのに用いられる。
【００２２】
次に、ホストＰＣＩバス１０６からコマンド・インストラクションを受けた後に、ターゲット側のバス・マスター・インターフェース１１２がアクセスされ（Ｓ２１６）、さらに処理が行われる（Ｓ２１８）。通常、クロック周波数、従ってターゲットＰＣＩバス１０８の速度は、ホストＰＣＩバス１０６よりも低いので、ホストＰＣＩバスを待機状態とすることは望ましくない。このようなホストＰＣＩバスの待機状態を防ぐために、ホストＰＣＩバスに対しては、リトライ・ハンドシェーク即ち接続の再試行が指示される（２２０）。これにより、ホストＰＣＩバス２２０は、その他の動作を行えるようフリーな状態となり、一方、データは、ターゲットＰＣＩバス１０８に書き込まれるか、またはこのバス１０８から回収される。ハンドシェーク再試行の指示（Ｓ２２０）は、周知のＰＣＩインターフェース・プロトコルに準拠してなされ、また、本願に参照として包含されるＰＣＩローカル・バス仕様書２．０にも記述されている。
【００２３】
本発明の一実施形態においては、ホストＰＣＩバスにハンドシェーク再試行が指示される（Ｓ２２０）前に、ディレイが挿入される。このディレイによって、他の機器がＰＣＩバス１０６にアクセス可能となる。このタイム・ディレイは、所望の値に設定可能であるが、少なくとも２クロック周期とすべきである。
【００２４】
ハンドシェーク再試行がホストＰＣＩ１０６に指示される（Ｓ２２０）と、HOSTREQ信号を生成することで、ターゲット・バス・マスター・インターフェース１１２が起動され（Ｓ２１６）、この信号がこのターゲット・バス・マスター・インターフェース１１２へと送られる。
【００２５】
図４に、バス・マスター・インターフェース１１２により実行される機能のフローチャートを示す。アイドル状態（Ｓ２００）から、ターゲット・バス・マスター・インターフェース１１２は、HOSTREQ信号を調べることで、ターゲット・バスへのアクセスが要求されたかをチェックする（Ｓ３０２）。ターゲット・バスへのアクセスが要求されていないときは、ターゲット・バス・マスター・インターフェース１１２は、アイドル状態（Ｓ２００）へともどる。ターゲット・バスへのアクセスが要求されたときは、ターゲット・バスが使用中であるかどうかを調べる（Ｓ３０４）。これは、ターゲット・バス・アービタ１１８によってQBUSY信号が生成されたかどうかを調べることでなされ、その詳細は後述する。ターゲット・バスが使用中である場合、バスが使用中でなくなるまで、リトライ即ち再試行が繰り返される。ターゲット・バスが使用中でない場合、ターゲット・バスに対して、アクセス・ハンドシェーク即ちハンドシェーク実行が指示される（Ｓ３０６）。この処理は周知のものであり、本明細書に参照として包含されるＰＣＩローカルバス仕様２．０に詳述されている。
【００２６】
その後、ＡＰＢ１００に格納された（Ｓ２１２）インストラクションやコマンドは、ターゲット・バス・マスター・インターフェース１１２に出力される。このデータは、後に、ターゲットＰＣＩバス１０８に指令される。次に、ターゲット・バス・マスター・インターフェース１１２は、アクセス処理が完了したかどうかを判定する（Ｓ３０８）。アクセス処理が完了したということは、ターゲットＰＣＩデバイス１０４が、インストラクションやコマンドを受け入れ可能な状態にあることを示すものである。
【００２７】
ターゲットＰＣＩデバイス１０４がインストラクションやコマンドを受け入れる状態にない場合（Ｓ３１０）、アクセス処理が新たに開始される。ターゲットＰＣＩデバイス１０４及びターゲットＰＣＩバス１０８がコマンドの受け入れ状態にある場合、このプロセスが続行される。ターゲットＰＣＩ準拠デバイス１０４からのアボート・コマンドを受けると（Ｓ３１２）、ホスト・バス・スレーブ・インターフェース１１０に対して、このターゲットアクセスが終了したことがレポートされ（Ｓ３１４）、ターゲット・バスに対しては、アボート・ハンドシェーク即ちハンドシェーク中止が指示される。この処理は周知のものであり、本明細書に参照として包含されるＰＣＩローカルバス仕様２．０に詳述されている。
【００２８】
ターゲットＰＣＩ準拠デバイス１０４から、なにもアボート・コマンドが得られない場合には、格納されたインストラクションまたはコマンドが、ターゲットＰＣＩバス１０８へと指令される。このインストラクションが書き込みコマンドであると、データがターゲットＰＣＩバス１０８に書き込まれ（Ｓ３１８）、このインストラクションがリードコマンドであると、データがターゲットＰＣＩバスから読み込まれる（Ｓ３１８）。その後、このターゲットＰＣＩバスへのアクセスが終了したことをホスト・バス・スレーブ・インターフェース１１０へとレポートし（Ｓ３２０）、ターゲットＰＣＩバスへとハンドシェークの通常完了が指示される（Ｓ３２２）。
【００２９】
図３を参照すると、ターゲット・バス・マスター・インターフェース１１２が起動する（Ｓ２１６）一方で、ホストＰＣＩバス１０６には、ハンドシェーク再試行が指示され、このホストバスに対して、与えられたインストラクションの再送信が指示される。ホストＰＣＩバス１０６は、ターゲットＰＣＩバスよりも高速なので、上記指示によって、ターゲットＰＣＩバスへの応答のためにホストＰＣＩバスがハング・アップ状態となることが防がれる。
【００３０】
一実施形態においては、ハンドシェーク再試行が指令される前にタイム・ディレイを行うことで、他のデバイスがホストＰＣＩバスへとアクセスすることを可能とすることもできる。ホストＰＣＩバス１０６が、再送信されたコマンドによってリトライ・コマンドに応答した後に、ホスト・バス・スレーブ・インターフェース１１０は、上述したように、インストラクションがサポートされて（Ｓ２０４）ＡＰＢが選択されたとき（Ｓ２０６）には、再送信されたコマンドをキャプチャリングすることで応答する。次に、HOST_BUSYフラグを調べることで（２１０）、ＡＰＢを通じてのこのインストラクションに対する最初のトライアルであるかどうかが判定される。
【００３１】
上述したような、Ｓ２１０からＳ２１２、Ｓ２１４を通じてのフローが行われた後においては、HOST_BUSYフラグは既にセットされており、ホスト・バス・スレーブ・インターフェース１１０は、最初のパス即ち最初のトライアルにおいて格納された情報と現在キャプチャされているインストラクションとを比較する（Ｓ２２２）。最初のトライアルで格納された情報と現在キャプチャされているインストラクションとがマッチしない場合（Ｓ２２４）、上述したように、ホストＰＣＩバスに対して、ハンドシェーク再試行が再度指令される（Ｓ２２０）。
【００３２】
格納された情報が現在キャプチャされているインストラクションとマッチし（Ｓ２２４）、ターゲット・バス・アクセスが完了している（Ｓ２２６）ときは、ホスト・バス・スレーブ・インターフェース１１０は、ターゲットＰＣＩ準拠デバイス１０４からアボート・コマンドが受信されたかをチェックする（Ｓ２２８）。受信されている場合、HOST_BUSY及び1ST_TRIALフラグがクリアされ（Ｓ２３０）、ホストＰＣＩバス１０６に対して、ハンドシェーク中止が指令される（Ｓ２３２）。ターゲットＰＣＩバス１０４からアボート・コマンドが受信されていない場合、Ｓ２３４〜Ｓ２３６に示される処理が実行される。
【００３３】
このコマンド・インストラクションが、ターゲットＰＣＩ準拠デバイス１０４からデータを読み込むという命令であるときは、このデータは、ターゲット・バス・マスター・インターフェース１１２からホストＰＣＩバスへと返送される（Ｓ２３４）。最後に、HOST_BUSYフラグと1ST_TRIALフラグとをクリアし、ホストＰＣＩバス１０６へとハンドシェークの通常完了を指令することで処理が完了される（Ｓ２３８）。これによって、ホストＰＣＩ準拠デバイス１０２がマスタ、ターゲットＰＣＩ準拠バスがスレーブとして動作する処理が完了される。
【００３４】
図５及び図６に、低速クロックのＰＣＩ準拠デバイスがマスタ、高速クロックのＰＣＩ準拠デバイスがスレーブとして動作する場合における、本発明の一実施形態を表すフロー・チャートを示す。
【００３５】
図５に、ターゲット・バス・スレーブ・インターフェース１１６の動作を示す。前述の実施形態と同様に、このプロセスも、ホストＰＣＩバス１０６がアイドル状態（Ｓ２００）にあるときに開始される。最初に、ターゲット・バス・スレーブ・インターフェース１１６は、QREQフラグを調べることで、ターゲット・バスがホストＰＣＩバス１０６にアクセスを要求しているかを判定する（Ｓ４０２）。
【００３６】
次に、ターゲットＰＣＩバスからのインストラクションのアドレス、データ、コマンドがキャプチャされる（Ｓ４０４）。この際、後に使用するように、これらの値が格納される。そして、Q_BUSYフラグがセットされ、ホスト・バス・マスター・インターフェースが起動されるこのホスト・バス・マスター・インターフェース１１４に関する処理を以下に示す。
【００３７】
図６は、ホスト・バス・マスター・インターフェース１１４の動作を示すフローチャートである。アイドル状態（２００）から、ホスト・バス・マスター・インターフェース１１４は、QREQフラグを調べることで、ホスト・バスへのアクセスが要求されたかを判定する（Ｓ５０２）。アクセスが要求されていなかったときは、ホスト・バス・マスター・インターフェース１１４は、アイドル状態（Ｓ２００）に戻る。
【００３８】
アクセスが要求されたときは、ホスト・バス・マスター・インターフェース１１４は、H_REQ信号を出すことで、ホストバスへのアクセスを要求する。ホストＰＣＩバスが（ＧＮＴ信号で示されるように）バスをグラント即ち認可しても、このホストＰＣＩバスがアイドル状態であるとは限らない。ＧＮＴ信号は、単に、要求側が次にこのバスを占有する、ということを示すものである。処理の続行前において、ホストＰＣＩバス１０６が認可されかつアイドル状態であることを確認することで、ホストＰＣＩバス１０６は、ターゲットＰＣＩバス１０８の応答待ちによって不当に低速化されることはなくなる。さらに、バスを認可することで、ホスト・バス・マスター・インターフェース１１４は、このバスをリザーブ即ち確保状態とし、バスがアイドル状態となるとすぐにこのバスを使用する。
【００３９】
ホスト・バス・マスター・インターフェース１１４は、ホストＰＣＩバス１０６が認可かつアイドル状態となるまで待機する。この状態となると、ホスト・バスとのハンドシェーク・アクセスが開始され、ターゲット・バスからキャプチャされた情報（Ｓ４０４）は、ホスト・バス・マスター・インターフェース１１４へと出力される。本発明の一実施形態では、更に適切なコミュニケイションを図るために、ハンドシェーク・アクセスは、他のＧＮＴ信号がホストＰＣＩバス１０６から受信されるまでディレイさせる。これらのハンドシェーク・アクセスプロトコルは周知のものであり、本発明に参照として包含されるＰＣＩローカルバス仕様２．０に記載されている。次に、ホスト・バス・マスター・インターフェース１１４は、ホストＰＣＩバス１０６へのアクセスが完了したかを判定する（Ｓ５１０）。
【００４０】
アクセスが完了した後に、ホスト・バス・マスター・インターフェース１１４は、ホストＰＣＩバス１０６からリトライ・コマンドが受信されたかを判定する。リトライ・コマンドが受信された場合（Ｓ５１２）、上記ＰＣＩローカル・バス仕様に規定されているハンドシェーク再試行がホストＰＣＩバス１０６に対して指令される（Ｓ５１４）。リトライ・コマンドが受信されなかったときは、ホスト・バス・マスター・インターフェースは、ホスト・アボート・コマンドが受信されたかを判定する（Ｓ５１６）。ホスト・アボート・コマンドが受信された場合、ホストＰＣＩバスのアクセスが無事完了したことを示すメッセージを、ターゲット・バス・スレーブ・インターフェース１１６に対してレポートする（Ｓ５１８）。その後、ホストＰＣＩバス１０６に対して、ハンドシェーク中止が指令される（Ｓ５２０）。
【００４１】
アボート・コマンドが受信されなかった場合、ホスト・バス・マスター・インターフェース１１４は、ターゲット・バス・スレーブ・インターフェース１１６から供給されたコマンドやインストラクションを実行する。このコマンドがリードコマンドの場合、ホストＰＣＩバス１０６からのデータが読み込まれる（Ｓ５２２）。このコマンドがライトコマンドのときは、指示されたデータがホストＰＣＩバス１０６へと書き込まれる（Ｓ５２２）。その後、H_DONEフラグがセットされて、ホストＰＣＩバスのアクセスが無事完了したことを示すメッセージがターゲット・バス・スレーブ・インターフェース１１６へとレポートされ（Ｓ５１８）、ハンドシェークの通常完了が、ホストＰＣＩバス１０６へと指令される。勿論、規定外やサポート外のインストラクションが供給された場合、このコマンドは、ホストＰＣＩバス１０６へは供給されない。このエラーは、ターゲットＰＣＩバス（１０８）にレポートされるか、または、単純にＡＰＢがハングアップする。さらに、規定外のインストラクションを、ターゲット・バス・スレーブ・インターフェース１１６内で検出及びレポートしてもよい。
【００４２】
図５に戻ると、ホスト・バス・マスター・インターフェース１１４の処理がなされる間に、ターゲット・バス・スレーブ・インターフェース１１６は、H_DONE信号を調べることで、ホストＰＣＩバスのアクセスが完了したかを判定する（Ｓ４１２）。完了している場合、ターゲット・バス・スレーブ・インターフェース１１６は、ホストＰＣＩバスがアボートされたかを判定する（Ｓ４１４）。アボート済みである場合、Q_BUSYフラグがクリアされ（Ｓ４１６）、ターゲットＰＣＩバス１０８に対して、ハンドシェーク中止が指示される（Ｓ４１８）。アボート・メッセージが受信されていない場合、ホストＰＣＩバス１０６から読み込まれたは、すべてターゲットＰＣＩバス１０８へと戻される。その後、Q_BUSYフラグがクリアされ（Ｓ４２２）、ハンドシェークの通常完了がターゲットＰＣＩバス１０８に対して指示される（Ｓ４２４）。
【００４３】
図７に、ターゲット・バス・アービタ１１８により実行される機能を表すフローチャートを示す。アイドル状態（Ｓ２００）から、ターゲット・バス・アービタ１１８は、ターゲット・バスへのアクセスが要求されたかを判定する。これは、QREQ信号により示される。HBUSY信号により示されるように、ホストＰＣＩバス１０６が使用中でない場合（Ｓ６０４）、ターゲットＰＣＩバス１０８は、QGRANT信号をセットすることで、バスの要求側に認可される（Ｓ６０６）。その後、QBUSY信号がセットされ、ターゲットＰＣＩバス１０８が使用中であることが示される。ターゲット・バス・アービタ１１８は、その後、QFRAME信号に示されるようにターゲットＰＣＩバス１０８がアクセスを開始するまで待機し、その後にQGRANT信号をクリアして、ターゲット・バスがもはや要求側に対して認可されていないことを示す。
【００４４】
最後に、ターゲットＰＣＩバスのアクセスが完了（Ｓ６１４）した後、QBUSYフラグがクリアされ（Ｓ６１６）、ターゲットＰＣＩバスが使用中ではなくなったことが示され、ターゲット・バス・アービタはアイドル状態へと戻り（Ｓ２００）、次の要求を待つ。
【００４５】
上述したターゲットＰＣＩ準拠デバイス１０４は、ホストＰＣＩ準拠デバイスよりも低速のクロック周波数で動作しているとしたが、デバイスのクロック周波数は、必ずしもこのような関係である必要はない。本発明は、クロック周波数を独立又は独立的に制御することが可能であるどのようなデバイスに対しても、これらのデバイス間相互のブリッジを提供するものである。従って、本発明は、ホストＰＣＩ準拠デバイス１０２よりも動作周波数が高速であるターゲットＰＣＩ準拠デバイス１０４に対しても、また、クロック周波数が可変または制御可能であるＰＣＩ準拠デバイス１０４に関しても適用可能である。
【図面の簡単な説明】
【図１】  本発明に係るトップ−レベルの機能ブロック図。
【図２】  コンピュータにインプリメントされた状態での、本発明に係るトップ−レベルの機能ブロック図。
【図３】  本発明に係るホスト・バス・スレーブ・インターフェースの動作を示すフローチャート。
【図４】  本発明に係るターゲット・バス・マスター・インターフェースの動作を示すフローチャート。
【図５】  ターゲット・バス・スレーブ・インターフェースの動作を示すフローチャート。
【図６】  ホスト・バス・マスター・インターフェースの動作を示すフローチャート。
【図７】  ターゲット・バス・アービタの動作を示すフローチャート。
【符号の説明】
１００  非同期ＰＣＩ−ＰＣＩブリッジ
１０２  ホストＰＣＩバス準拠デバイス
１０４  ターゲットＰＣＩ準拠デバイス
１０６  ホストＰＣＩバス
１０８  ターゲットＰＣＩバス
１１０  ホスト・バス・スレーブ・インターフェース
１１２  ターゲット・バス・マスター・インターフェース
１１４  ホスト・バス・マスター・インターフェース
１１６  ターゲット・バス・スレーブ・インターフェース
１１８  ターゲット・バス・アービタ
【図１】
0003705663.tif 000002
【図２】
0003705663.tif 000003
【図３】
0003705663.tif 000004
【図４】
0003705663.tif 000005
【図５】
0003705663.tif 000006
【図６】
0003705663.tif 000007
【図７】
0003705663.tif 000008