(57)【特許請求の範囲】
【請求項１】
複数の連続したワードから構成される書き込みデータ・バーストのかたちで書き込みデータを転送するＰＣＩバス・システムであり、該ＰＣＩバス・システムに対して少なくとも１つのＰＣＩデータ・ソースを接続させる少なくとも１つのＰＣＩバスと、該データ・ソースから前記書き込みデータを受信し、かつ転送するために前記ＰＣＩバスに接続したＰＣＩバス・ターゲットとを有し、さらにＰＣＩバス・ターゲットが少なくとも書き込みデータの操作に関するコマンドをコマンド待ち行列に入れるＰＣＩバス・システムにおいて前記書き込みデータがＰＣＩバス上で複数のより小さいデータ・バーストに分けられる書き込みデータ破壊を制限する方法であって、
前記書き込みデータの破壊を検知するステップと、
前記破壊を検知するステップが前記ＰＣＩバス・ターゲットによって前記破壊を検知すると、前記ＰＣＩバスに対するアクセスをブロックするステップと、
前記ブロックするステップに続いて、前記ＰＣＩバス・ターゲットの前記待ち行列に入れられたコマンドの完了をモニタするステップと、
前記完了をモニタするステップが前記ＰＣＩバス・ターゲットで待ち行列に入れられたままの前記コマンドの所定数を示すと、前記少なくとも１つのＰＣＩデータ・ソースによってＰＣＩバスに対するアクセスの許可を可能とするステップと、
を有することを特徴とする書き込みデータの破壊を制限する方法。
【請求項２】
前記完了をモニタするステップは、前記ブロックをするステップの時に前記ＰＣＩバス・ターゲット・コマンド待ち行列に残る前記待ち行列に入ったコマンドの残存数を識別するステップと、前記完了をモニタするステップのモニタされた完了の各々に応じて前記残っている前記コマンドの数をディクリメントするステップと、前記残っている前記コマンドの数と前記所定数とを比較するステップと、該比較ステップによって数が等しいと判断されると、前記所定数表示を提供するステップとを有することを特徴とする請求項１に記載の方法。
【請求項３】
前記所定数は、前記残っているコマンド１つであることを特徴とする請求項２に記載の方法。
【請求項４】
複数の前記ＰＣＩデータ・ソースが前記ＰＣＩバスに接続し、前記ブロックするステップは前記複数の前記ＰＣＩデータ・ソースの全てによる前記ＰＣＩバスに対する前記アクセスをブロックし、前記ＰＣＩバス・ターゲット及び前記バス・システムによる連続したアクセスを許すことを特徴とする請求項１に記載の方法。
【請求項５】
前記ＰＣＩバス・ターゲットは、書き込み操作中にデータ・ソースによってデータがさらに送出されるのを防ぐために「タイプＢ切断」信号をアサートし、前記破壊を検知するステップは、書き込み操作の待ち行列入りを許した後に前記「タイプＢ切断」信号をアサートすることを検出するために、前記ＰＣＩバスをモニタすることが含まれることを特徴とする請求項１に記載の方法。
【請求項６】
複数の連続したワードから構成される書き込みデータ・バーストのかたちで書き込みデータを転送するＰＣＩバス・システムであり、該ＰＣＩバス・システムに対して少なくとも１つのＰＣＩデータ・ソースを接続させる少なくとも１つのＰＣＩバスと、該データ・ソースから前記書き込みデータを受信し、かつ転送するために前記ＰＣＩバスに接続したＰＣＩバス・ターゲットとを有し、さらにＰＣＩバス・ターゲットが少なくとも書き込みデータの操作に関するコマンドをコマンド待ち行列に入れるＰＣＩバス・システムにおいて、前記書き込みデータがＰＣＩバス上で複数のより小さいデータ・バーストに分けられる書き込みデータ破壊を制限するシステムであって、
前記書き込みデータの破壊を検知する破壊検出論理と、
前記ＰＣＩバス・ターゲットの前記待ち行列に入ったコマンドの完了をモニタする待ち行列レベル検出論理と、
前記ＰＣＩバス・ターゲットによって前記書き込みデータの前記破壊を検知し前記ＰＣＩバスに対するアクセスをブロックし、前記ＰＣＩバス・ターゲット・コマンド待ち行列において待ち行列に入ったままである前記コマンドの所定数を示す前記待ち行列レベル検出論理に応答し、前記少なくとも１つのＰＣＩデータ・ソースによって前記ＰＣＩバスにアクセスすることを許可する、前記破壊検知論理に応答するバス・アービタと、
を有することを特徴とする書き込みデータの破壊を制限するシステム。
【請求項７】
前記待ち行列レベル検出論理は、さらに前記ブロックをするステップの時に前記ＰＣＩバス・ターゲット・コマンド待ち行列に残る前記待ち行列に入ったコマンドの残存数を識別するステップと、前記モニタされた前記待ち行列に入ったコマンドの完了の各々に応じて前記待ち行列に入ったままである前記コマンドの数をディクリメントするステップと、前記待ち行列に入ったままである前記コマンドの数と前記所定数とを比較するステップと、該比較ステップによって数が等しいと判断されると、前記所定数表示を提供するステップとを有することを特徴とする請求項６に記載のシステム。
【請求項８】
前記所定数は、前記残っているコマンド１つであることを特徴とする請求項７に記載のシステム。
【請求項９】
複数の前記ＰＣＩデータ・ソースが前記ＰＣＩバスに接続し、前記バス・アービタは前記複数の前記ＰＣＩデータ・ソースの全てによる前記ＰＣＩバスに対する前記アクセスをブロックし、一方で前記ＰＣＩバス・ターゲット及び前記バス・システムによる連続したアクセスを許すことを特徴とする請求項６に記載のシステム。
【請求項１０】
前記ＰＣＩバス・ターゲットは、書き込み操作中にデータ・ソースによってデータがさらに送出されるのを防ぐために「タイプＢ切断」信号をアサートし、前記破壊検出論理は、書き込み操作の待ち行列入りを許した後に前記「タイプＢ切断」信号をアサートすることを検出することを特徴とする請求項６に記載のシステム。
【請求項１１】
少なくとも複数の連続したワードから構成される書き込みデータ・バーストのかたちで書き込みデータを転送し、前記書き込みデータがＰＣＩバス上で複数のより小さいデータ・バーストに分けられる書き込みデータ破壊を制限するＰＣＩバス・システムであって、
該ＰＣＩバス・システムに対して少なくとも１つのＰＣＩデータ・ソースを接続させるための少なくとも１つのＰＣＩバスと、
該データ・ソースから前記書き込みデータを受信し、かつ転送するために前記ＰＣＩバスに接続し、さらに少なくとも書き込みデータの操作に関するコマンドを待ち行列に入れるためのコマンド待ち行列を持つＰＣＩバス・ターゲットと、
前記書き込みデータの破壊を感知する破壊検知論理と、
前記ＰＣＩバス・ターゲットの前記待ち行列に入ったコマンドの完了をモニタする待ち行列レベル検知論理と、
前記ＰＣＩバス・ターゲットによって前記書き込みデータの前記破壊を検知し、前記ＰＣＩバスに対するアクセスをブロックし、前記ＰＣＩバス・ターゲット・コマンド待ち行列において待ち行列に入ったままである前記コマンドの所定数を示す前記待ち行列レベル検出論理に応答し、前記少なくとも１つのＰＣＩデータ・ソースによって前記ＰＣＩバスにアクセスすることを許可する、前記破壊検知論理に応答するバス・アービタと、
を有することを特徴とするＰＣＩバス・システム。
【請求項１２】
前記待ち行列レベル検出論理は、さらに前記ブロックをするステップの時に前記ＰＣＩバス・ターゲット・コマンド待ち行列に残る前記待ち行列に入ったコマンドの残存数を識別するステップと、前記モニタされた前記待ち行列に入ったコマンドの完了の各々に応じて前記待ち行列に入ったままである前記コマンドの数をディクリメントするステップと、前記待ち行列に入ったままである前記コマンドの数と前記所定数とを比較するステップと、該比較ステップによって数が等しいと判断されると、前記所定数表示を提供するステップとを有することを特徴とする請求項１１に記載のＰＣＩバス・システム。
【請求項１３】
前記所定数は、前記残っているコマンド１つであることを特徴とする請求項１２に記載のＰＣＩバス・システム。
【請求項１４】
複数の前記ＰＣＩデータ・ソースが前記ＰＣＩバスに接続し、前記バス・アービタは前記複数の前記ＰＣＩデータ・ソースの全てによる前記ＰＣＩバスに対する前記アクセスをブロックし、一方で前記ＰＣＩバス・ターゲット及び前記バス・システムによる連続したアクセスを許すことを特徴とする請求項１１に記載のＰＣＩバス・システム。
【請求項１５】
前記ＰＣＩバス・ターゲットは、書き込み操作中にデータ・ソースによってデータがさらに送出されるのを防ぐために「タイプＢ切断」信号をアサートし、前記破壊検出論理は、書き込み操作の待ち行列入りを許した後に前記「タイプＢ切断」信号をアサートすることを検出することを特徴とする請求項１１に記載のＰＣＩバス・システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＰＣＩバスを通した書き込みデータの転送、特にＰＣＩバスに複数のエージェントが接続された環境下での書き込みデータ・バーストの転送に適用される書き込みデータの破壊を制限する方法及びシステムとＰＣＩバス・システムとに関する。
【０００２】
【従来の技術】
一般譲渡された米国特許出願第０９／２７５，６１０号（出願人整理番号ＴＵ９９８０７４）は接続した多数のホストからの要求を処理するＰＣＩバス・ブリッジ・システムを開示している。したがって、本明細書は、この米国特許出願の開示内容と関連する。
【０００３】
ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス・システムは、ホスト・プロセッサが直接ＰＣＩデバイスにアクセス可能なＰＣＩブリッジを使用する低遅延パスを提供する高性能な拡張バス・アーキテクチャである。多数のホスト環境では、ＰＣＩバス方式がデータ・バッファリングとしての機能やバス・システムの使用に対するアービトレーション等のＰＣＩ主要機能を含むものであってもよい。
【０００４】
本明細書の一部として援用する米国特許出願第０９／２７５，６１０号（上掲）は、チャンネル・アダプタ等、複数のエージェントが接続するセカンダリＰＣＩバスと、周辺装置サーバが接続する少なくとも１つのプライマリ・バスとの間の接続パスを提供する。さらに、本明細書の一部として援用する米国特許出願第０９／２７５，６１０号は、本明細書で使用する多くの用語を定義している。また、そのような定義はＰＣＩ特別利益団体（ＰＣＩ  Ｓｐｅｃｉａｌ  Ｉｎｔｅｒｅｓｔ  Ｇｒｏｕｐ）が提供する刊行物から入手可能であり、ここでは繰り返して言及するようなことはしない。複合ＰＣＩバス・システム、例えば米国特許出願第０９／２７５，６１０号に開示されたものは、ＰＣＩバス・システムに接続したチャンネル・アダプタからのコマンド間のアービトレーションを用いて効率的な方法でバス・システムの使用を管理する。
【０００５】
コンピュータのデータ記憶装置は、チャンネル・アダプタ及びＰＣＩバス・システムを介してネットワーク・サーバ等のホスト・プロセッサから高速のデータ記憶を記憶装置、キャッシュ記憶装置、又は不揮発性キャッシュ記憶装置を有する接続された格納サーバに提供するために、ＰＣＩバス・システムを用いる。ホスト・プロセッサの速度に近づくか、あるいは該速度に一致する相対的に速い速度で動作するか、またはホスト・プロセッサが遅くならないように該ホスト・プロセッサを解放するデータ記憶を提供することは有利である。本明細書の一部として援用する米国特許出願第０９／２７５，６１０号は、さらにここで使用される用語の多くを定義しており、そのような定義もまたＰＣＩ特別利益団体（ＰＣＩ  Ｓｐｅｃｉａｌ  Ｉｎｔｅｒｅｓｔ  Ｇｒｏｕｐ）によって提供される刊行物から利用可能であるため、ここで繰り返すことはしない。
【０００６】
一般に、そのようなチャンネル・アダプタはバースト単位で、書き込みデータを転送する。このバースト単位は、１つのワードがデータ・バスの幅に等しいデータ・ビットを含む連続的な多数のワードから構成される。ＰＣＩバス方式では、書き込みデータは１つ以上のＰＣＩバス・アダプタによってセカンダリＰＣＩバスにおいてチャンネル・アダプタから受け取られる。ＰＣＩバス・アダプタは、ＦＩＦＯベースの操作コマンドを待ち行列に入れるコマンド待ち行列と、待ち行列バッファの関連アドレス及びデータとを有する。好ましくは、コマンド待ち行列及び待ち行列バッファは、１つの書き込みコマンド、書き込みデータが宛てられるアドレス、及びデータ・バーストが一度に待ち行列に入れられるほど十分に大きい。このような構成によって、データ転送を効率的に行うことが可能となる。
【０００７】
ＰＣＩバス・アダプタは、もし待ち行列バッファが満杯で、アダプタが「ターゲット・レディ」歩調合わせを実行することが不可能である場合に「タイプＢ切断」信号を送出する能力を送出する能力を有し、これによってダブルワード転送が可能となり、バスを切断してアイドル状態に戻すチャンネル・アダプタ等の要求エージェントを生ずる。もし要求がバースト書き込みコマンドであり、またＰＣＩバス・アダプタがそのデータのターゲットであるならば、ＰＣＩバス・ターゲットにおいて格納されたデータ量はバースト書き込みが開始された時のターゲットの待ち行列バッファで利用可能な空間である。利用可能な空間がバッファ内の２つのロケーションであるならば、待ち行列バッファに格納されたデータ量は１であろう。なぜなら、アドレス及びコマンドが一方のロケーションを取り、データが他方のロケーションを取ると考えられるからである。当業者に知られているように、もし多数のコマンドがコマンド待ち行列にあるならば、ＰＣＩバス・アダプタは「ターゲット・レディ」歩調あわせを実行することが不可能であり、バースト書き込みは１つのコマンドとしてコマンド待ち行列に格納され、またデータの１つのワード及びアドレスは待ち行列バッファに格納される。
【０００８】
もし、例えば試みられたバースト書き込みより優先されているいくつかの単一ワード書き込みコマンドをＰＣＩバス・ターゲットが待ち行列に入れたならば、該ＰＣＩバス・ターゲットはコマンド待ち行列からの書き込みコマンドを実行するので、さらに別の単一ワード書き込みコマンドの空間が確保される。ＰＣＩバスへのアクセスを許可された要求エージェント（チャンネル・アダプタ）及びこのエージェントのターゲットは、該ターゲットの待ち行列バッファが再び満杯になり、ターゲットが「ターゲット・レディ」歩調あわせを実行することができなかったことから、別の切断信号を受信する前にデータのちょうど１ワードのみの書き込みが許可されるだろう。この条件は、データ破壊と呼ばれ、書き込みバースト・サイズ全体に対して繰り返される。もし、例えば１２８ワードからなる書き込みバーストを提供することを要求エージェントが必要としたとするならば、バーストは１２８の単一ワード操作に分割されよう。さらに悪いことには、この同一のターゲットに対してバースト書き込みの実行を試みているＰＣＩバス上にいくつかの要求エージェントが存在することで、これらのバーストはすべて複数の単一ワード書き込みに分割されよう。結果として得られるＰＣＩバス・システムの性能は、接続した要求エージェント及びデータの転送先であるエージェント（例えばデータ記憶装置）の性能としてあり、その状況で著しく低下する。なぜなら、ＰＣＩバス上の単一ワード操作はＰＣＩバースト操作よりもかなり遅いからである。
【０００９】
【発明が解決しようとする課題】
本発明の目的は、ＰＣＩバースト書き込み操作の破壊を制限し、それによって有効なＰＣＩ帯域幅を高めることを可能とする、書き込みデータの破壊を制限する方法及びシステムとＰＣＩバス・システムを提供することである。
【００１０】
【課題を解決するための手段】
連続した複数のワードから構成される書き込みデータ・バーストのかたちで書き込みデータを転送するためのＰＣＩバス・システムにおいて、バースト書き込みデータの破壊を制限するためにシステム及び方法が開示されている。ＰＣＩバス・システムは、該ＰＣＩバス・システムに対して少なくとも１つのＰＣＩデータ・ソースを連結させるための少なくとも１つのＰＣＩバスと、該ＰＣＩデータ・ソースから書き込みデータを受信し、かつ転送するためにＰＣＩバスに連結されたＰＣＩバス・アダプタ等のＰＣＩバス・ターゲットとを有し、該ＰＣＩバス・ターゲットは操作コマンドをコマンド待ち行列に入れる。
【００１１】
書き込みデータの破壊を制限するためのシステムは、書き込みデータの破壊を感知するためにＰＣＩバスをモニタする破壊検出論理を有する。ＰＣＩバス・ターゲットの待ち行列に入れられた操作コマンドの完了をモニタするために、待ち行列レベル検出論理が用いられる。バス・アービタはターゲットによって書き込みデータの破壊を検出する破壊レベル検出論理に応答し、ＰＣＩバスへのアクセスをブロックする。次に、ブロッキングに続いて、バス・アービタはコマンド待ち行列レベル検出論理に応答する。このコマンド待ち行列レベル検出論理は、所定数（例えば１）の操作コマンドがそのコマンド待ち行列に入れられたままであり、ＰＣＩデータ・ソースが破壊無しにバースト書き込み操作を完了させることができるようにＰＣＩバスに対するアクセスを許可する。
【００１２】
【発明の実施の形態】
以下、図面を参照しながら本発明の好ましい発明の実施形態を説明する。図中、同一符号は同一又は類似の構成要素を表す。この発明の目的を達成する上で最良の形式で本発明を説明する。しかし、当業者は本発明の精神又は範囲から逸脱することなく、そのような説明から得られる知識に鑑みて種々の変形例が可能であることを容易に理解することができよう。
【００１３】
図１は、本発明の一実施形態例にもとづくＰＣＩバス・システム１１を示す。このＰＣＩバス１１は、例えば１つ以上のホスト・システム４とプロセッサ１０、１２、デバイス６、及びＮＶＳ（非揮発性記憶）ユニット３２、３３との間の通信パスを提供する。例示されたＰＣＩバス・システム１１は、米国特許出願第０９／２７５，６１０号（上掲）に例証されたシステムをベースとし、類似の構成要素を用いてはいるが本発明にもとづく改良が加えられている。米国特許出願第０９／２７５，６１０号で議論されるように、デバイス６は直接アクセス記憶装置（ＤＡＳＤ）サブシステム、例えば連なりとなった複数のＤＡＳＤを有するものであってもよい。
【００１４】
ＰＣＩバス・システム１１は、チャンネル・アダプタ（Ａ、Ｂ、Ｃ、及びＤ）１４及びチャンネル・アダプタ（Ａ、Ｂ、Ｃ、及びＤ）１６あるいは他の通信エージェント（不図示）、例えば一般にＰＣＩバスを通して通信する任意のデバイスを用いてホスト・システム４がプロセッサ１０及びプロセッサ１２と通信するのを可能とする。チャンネル・アダプタ１４、１６は、ＰＣＩバス・システム１１のリモート・ブリッジ１８、２０に対してＰＣＩバス・システム上のスロットを介して各々接続するチャンネル・アダプタ・カードを有するものであってもよい。各チャンネル・アダプタ・カードは、セカンダリＰＣＩバス４４、４５で１つ以上のホスト・システム４との接続を提供する。簡単に言えば、プロセッサ１０がプライマリＰＣＩバス８８を制御し、プロセッサ１２がプライマリＰＣＩバス９０を制御し、各々によってセカンダリＰＣＩバス４４、４５においてアダプタ１４、１６によるアクセスのためのアドレスが提供される。
【００１５】
２つのリモート・ブリッジ１８、２０はチャンネル・アダプタ又は他の通信エージェントの異なるセットに連結してもよく、また各リモート・ブリッジはローカル・ブリッジに連結する。したがって、リモート・ブリッジ１８はローカル・ブリッジ２２、２６に連結し、またリモート・ブリッジ２０はローカル・ブリッジ２４、２８に連結する。一例として、ローカル・ブリッジ２２、２４がプライマリＰＣＩバス８８上でプロセッサ１０及びＮＶＳユニット３２と通信することが可能であり、またローカル・ブリッジ２６、２８がプライマリＰＣＩバス９０上でプロセッサ１２及びＮＶＳユニット３４と通信することも可能である。しかし、当業者ならば他の配置を思い描くこともできよう。したがって、ＰＣＩバスの本実施形態例では、リモート・ブリッジ１８に連結したチャンネル・アダプタ（Ａ、Ｂ、Ｃ、及びＤ）１４は、ＰＣＩバス・システム１１を通してプロセッサ１０、１２又はＮＶＳユニット３２、３４と通信することが可能である。
【００１６】
ＰＣＩバス・システムにおける重要な通信は、ＮＶＳユニット３２、３４におけるホスト・システム４によるデータの書き込み及びデバイス６におけるホスト・システム４によるデータの書き込みであり、プロセッサ１０による制御下で選択されたユニット又はデバイスにデータが格納される。ホスト・システムは、一般に大量のデータを扱い、かつ処理し、実質的に待ち時間無しにホスト・システムが処理を継続することを可能とするために、そのデータに素早くアクセスするか、又は格納することを要求する。したがって、そのような素早いアクセス又は格納を行うために、バス・システムの待ち時間が短いことが要求される。ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス・システムは、ホスト・プロセッサがＰＣＩデバイスに直接アクセスすることができるＰＣＩブリッジを用いるそのような待ち時間が少ないパスを提供する高性能拡張バス・アーキテクチャである。
【００１７】
多数のホスト環境下で、ＰＣＩバス・システムは、データ・バッファリングのような機能及びバス・システムが使用されている間のアービトレーション等のＰＣＩ中心的機能を含む。その結果、ＰＣＩバス・システムはますます複雑になる。
【００１８】
米国特許出願第０９／２７５，６１０号は、プロセッサ１０、１２等の１つ以上のコンピュータ・システム・データ記憶制御装置が取り付けられるセカンダリＰＣＩバスと少なくとも１つのプライマリＰＣＩバスとの間の接続パスを提供するための複合ＰＣＩバス・システムの一例を説明している。ホストからの高速データ格納を提供するために、コンピュータ・システム記憶制御装置は、ＰＣＩバス・システムを用いる。
【００１９】
図１において、ＰＣＩバス・システムでは、チャンネル・アダプタ１４、１６がセカンダリＰＣＩバス４４、４５においてＰＣＩ書き込みコマンド及びデータを提供し、該データをそれらの宛先に転送する。さらに、データがセカンダリ・バスをわたって転送されてくるリモート・ブリッジ１８、２０は、さらにデータをローカル・ブリッジ２２、２４、２６、２８に転送し、該ローカル・ブリッジ２２、２４、２６、２８は続けて該データをプライマリ・バス８８、９０において宛先へ転送する。一般に、データ転送は大量データのバースト書き込み転送である。
【００２０】
図２は、図１に示す典型的な複合ＰＣＩブリッジ・システムの半分をさらに詳細に描いたものである。米国特許出願第０９／２７５，６１０号に記載されているように、複合ＰＣＩシステムは、セカンダリＰＣＩバス上の結合したチャンネル・アダプタからのコマンド間のアービトレーションを用いることで、効率よくバス・システムの使用を管理する。図２の例では、アービトレーションはバス・マネージャ４６によって行われる。一般に、ＰＣＩバス・マネージャ４６は順繰りにセカンダリＰＣＩバス４４上のチャンネル・アダプタ（Ａ、Ｂ、Ｃ、Ｄ）１４に対して許可を与える。図２に示す典型的なＰＣＩバス・システムは、セカンダリＰＣＩバス４４上に呈示されたデータ及び信号を管理するＰＣＩバス・マネージャ４６を含む。ＰＣＩバス・マネージャ４６は、上記したバス・アービトレーション、バス・パーキング、及び他のバス管理機能、好ましくは単独の回路を持つものが含まれるバス中心リソース機能を有する。ＰＣＩバス・マネージャ４６は、リモート・ブリッジ１８に接続したエージェント、ＰＣＩバス・アダプタ５０及び５２、さらにリモート・ブリッジの他の構成要素に接続したエージェントのアドレス範囲が記述されている情報を有し、またどのエージェント又は構成要素がＰＣＩ操作のターゲットであるかを判断するためにそのような情報を用いる。アドレス範囲上の情報は、好ましくはＰＣＩバス・マネージャ４６のレジスタに書き込まれ、ＰＣＩバス・アダプタ５０及び５２にコピーされてもよい。リモート・ブリッジ１８もまたリモート・アドレス・トランスレータ５４、５６、トランザクション制御５５、５７、リモート・ディスタンス・インタフェース５８、６０、及び静的ランダム・アクセス・メモリ（ＳＲＡＭ）７４、７６、又は他の任意の適当なメモリ・デバイスを有する。ＰＣＩバス・アダプタ５０、リモート・アドレス・トランスレータ５４、トランザクション制御５５、及びリモート・ディスタンス・インタフェース５８は、チャンネル・アダプタ１４とローカル・ブリッジ２２との間の通信を提供する。ＰＣＩバス・アダプタ５２、リモート・アドレス・トランスレータ５６、トランザクション制御５７、及びリモート・ディスタンス・インタフェース６０はチャンネル・アダプタ１４とローカル・ブリッジ２６との間の通信を提供する。チャンネル・アダプタ（Ａ、Ｂ、Ｃ、Ｄ）１４は、セカンダリＰＣＩバス４４を介してＰＣＩバス・アダプタ５０又は５２のいずれか一方と通信する。ＰＣＩパス・アダプタ５０、５２、リモート・アドレス・トランスレータ５４、５６、トランザクション制御５５、５７、リモート・ディスタンス・インタフェース５８、６０、及びＳＲＡＭ７４、７６は当業者に知られているようなＰＣＩブリッジの論理要素又は他の適当なタイプのブリッジ回路を有する。リモート・ディスタンス・インタフェース５８、６０及びローカル・ディスタンス・インタフェース６２、６４は、当業者に知られている制御及びバッファを含むもので、リモート・ブリッジ１８とローカル・ブリッジ２２、２６との間のトランザクションを制御し、長距離接続５９、６１を越えたブリッジ間の長距離通信に備える。リモート・ブリッジ２０はリモート・ブリッジ１８と同様又は類似のものであってもよく、またローカル・ブリッジ２４、２８に対して通信を提供する。
【００２１】
各ローカル・ブリッジ２２、２６は、それぞれローカル・ディスタンス・インタフェース６２、６４、ローカル・アドレス・トランスレータ６６、６８、トランザクション制御６７、６９、及びＰＣＩバス・アダプタ７０、７２を含む。リモート・アドレス・トランスレータ５４、５６及びローカル・アドレス・トランスレータ６６、６８は、受信したアドレスを別のアドレス空間にマップするために、当業者に周知の回路を含む。リモート・アドレス・トランスレータ５４、５６は、チャンネル・アダプタ１４によって与えられたアドレスをそれぞれローカルＰＣＩバス・アダプタ７０、７２のアドレス空間にマッピングすることによってアドレス・トランザクション操作を実行する。ローカル・アドレス・トランスレータ６６、６８はローカルＰＣＩバス・アダプタ７０、７２をリモートＰＣＩバス・アダプタ５０、５２のアドレス空間にマップするので、このトランスレートされたアドレスがローカル・ディスタンス・インタフェース６２、６４とリモート・ディスタンス・インタフェース５８、６０とに転送される。そのような場合、リモート・アドレス・トランスレータ５４、５６は、この受信されたアドレスをバッファリングしてリモートＰＣＩバス・アダプタ５０、５２へ転送することができる。同様に、リモート・アドレス・トランスレータ５４、５６がリモートＰＣＩバス・アダプタ５０、５２から受信したアドレスをそれぞれローカルＰＣＩバス・アダプタ７０、７２のアドレス空間に変換した後、この変換されたアドレスはリモート・ディスタンス・インタフェース５８、６０及びローカル・ディスタンス・インタフェース６２、６４を介してローカル・アドレス・トランスレータ６６、６８へ転送される。そのような場合、ローカル・アドレス・トランスレータ６６、６８は、この受信されたアドレスをバッファリングしてローカルＰＣＩバス・アダプタ７０、７２へ転送することができる。
【００２２】
ＦＩＦＯバッファ・セクション８０、８２、８４、及び８６は、ＰＣＩバス・システム１１の読み出し／書き込みトランザクションを待ち行列に入れる。ＦＩＦＯバッファ・セクションの各々は、チャンネル・アダプタ（Ａ，Ｂ，Ｃ，Ｄ）１４及びプロセッサ１０からのトランザクションを待ち行列に入れるための多数のＦＩＦＯバッファを有する。アドレス・トランスレータ５４、５６、６６、及び６８は、トランザクションを配置し、かつトランザクションの流れを管理するためにＦＩＦＯバッファ８０、８２、８４、及び８６の待ち行列を選択する論理が含まれるトランザクション制御回路５５、５７、６７、及び６９を有する。ＦＩＦＯバッファは、書き込みコマンドがＰＣＩバス・システム１１を通して進行するように該書き込みコマンドをまとまりのある一連のシークエンスとして保持することを保証する。
【００２３】
ＰＣＩバス４４、８８、及び９０は、実質的にインチで測定されるようなただ単に非常に短い距離用、かつ小負荷用に設計されており、さらに距離接続５９、６１は距離がよりいっそう長く、かつ負荷がよりいっそう大きい場合のために設計されている。
【００２４】
図２及び図３を参照すると、一般にＰＣＩバス・システムは連続した多数のワードからなるバーストとして書き込みデータを転送し、該データは１つ以上のＰＣＩバス・アダプタ５０、５２によってセカンダリＰＣＩバス４４においてチャンネル・アダプタ（Ａ、Ｂ、Ｃ、Ｄ）１４から受信される。ＰＣＩバス・アダプタは、例えば市販のＰＣＩチップである９０６０  ＰＣＩ  Ｂｕｓ  Ｍａｓｔｅｒ  Ｉｎｔｅｒｆａｃｅ（ＰＬＸ  Ｔｅｃｈｎｏｌｏｇｙ，  Ｉｎｃ．，  ３９０  Ｐｏｒｔｒｅｒｏ  Ａｖｅｎｕｅ，  Ｓｕｎｎｙｖａｌｅ，  ＣＡ  ９４０８６）から構成されるものであってもよい。ＰＣＩバス・アダプタは、ＦＩＦＯベースで操作コマンドを待ち行列に入れるコマンド待ち行列１１０、１１２と、該コマンドに関連したアドレス及びデータとを待ち行列に入れる待ち行列バッファ１１１、１１３とを有する。好ましくは、コマンド待ち行列及び待ち行列バッファは、単一書き込みコマンド、書き込みデータの宛先であるアドレス、及びデータ・バーストが一度に待ち行列に入れられるほど十分に大きなバッファである。このような配置によってデータ転送を効率的に実行することが可能となる。
【００２５】
当業者に知られているように、もし待ち行列バッファ１１１、１１３が十分な空間を持つものならば、ＰＣＩバス・アダプタ５０、５２はバースト書き込みの実行を可能とし、またオーバーランを防ぐために待ち行列バッファ１１１、１１３を通してデータを「ターゲット・レディ（ＴＲＤＹ）」歩調あわせするものであってもよい。しかし、もしコマンド待ち行列に多数のコマンドが存在するならば、待ち行列バッファが満杯又はそれに近い状態である場合、アダプタは「ＴＲＤＹ」歩調あわせすることができない。したがって、ＰＣＩバス・アダプタ５０、５２は、待ち行列バッファ１１１、１１３が満杯になりアダプタが「ＴＲＤＹ」歩調あわせすることができない場合に「タイプＢ切断再試行」信号を送出する能力を有し、該信号は切断のためにチャンネル・アダプタ等の要求エージェントを生ずる。もし、要求がバースト書き込みコマンドであり、またＰＣＩバス・アダプタがそのデータのターゲットであるならば、ＰＣＩバス・ターゲットにおいて格納されたデータ量は、バースト書き込みが開始された時のターゲットの待ち行列バッファで利用可能な空間である。もし利用可能な空間がロケーション２つであった場合、待ち行列１１１、１１３に格納されたデータ量は１であろう。なぜなら、アドレスは１つのロケーションを取り、またデータは他のロケーションを取るからである。この場合のバースト書き込みは、コマンド待ち行列及び待ち行列バッファにたったの１つの単一ワード書き込みとして格納され、さらなるデータ転送が停止及び切断されることで、データ・ストリームが破壊されよう。
【００２６】
最悪の場合の例として、もしＰＣＩバス・ターゲットであるＰＣＩバス・アダプタ５０、５２は、試みられたバースト書き込みに先行する待ち行列に入れられたいくつかの単一ワード書き込みコマンドを有し、かつ「ターゲット・レディ」歩調あわせすることができないならば、コマンド待ち行列からの書き込みコマンドが実行されるので、さらに別の単一ワード書き込みコマンド及び関連したアドレスとデータの１ワードとのためにコマンド待ち行列１１０、１１２及び待ち行列バッファ１１１、１１３に空間を作ることができる。ＰＣＩバス４４へのアクセスが許可され、かつＰＣＩバス・アダプタ５０、５２をターゲットとしている要求されたチャンネル・アダプタ（Ａ、Ｂ、Ｃ、Ｄ）１４は、切断を受信する前にたったの１ワードを書き込みすることが許されるであろう。なぜなら、ターゲットのコマンド待ち行列１１０、１１２及び待ち行列バッファ１１１、１１３が再び満杯となり、データ・ストリームがさらに破壊されるからである。従来技術では、データの破壊は全体的な書き込みバースト・サイズ、例えば１２８ワードからなる書き込みバーストのために繰り返され、バーストが１２８の単一ワード操作に分かれる。さらに悪いことには、この同一ターゲットに対するバースト書き込みの実行を試みているＰＣＩバス上のいくつかの要求エージェントが存在し、それらのバーストはすべて単一のワード書き込みに分かれる。接続された要求エージェント及びデータの宛先であるエージェント（例えば、データ記憶装置）の性能と同様に、ＰＣＩバス・システムの結果として得られる性能は、この環境下では著しく劣化する。なぜなら、ＰＣＩバス上の単一ワード操作がＰＣＩバースト操作よりもかなり遅く不十分なためである。
【００２７】
図３は本発明の一実施形態例を説明するためのもので、リモート・バス・マネージャ４６に破壊検出論理１２０、１２２が設けられている。これらの破壊検出論理１２０、１２２は、ＰＣＩバス・アダプタ５０、５２の各々に対応するもので、好ましくはＰＣＩバス４４において、関連するＰＣＩバス・アダプタによるデータ・ストリームの破壊を検出する。取って代わるものとして、ＰＣＩバス・アダプタ間で１つの破壊検出手段を共有するようにリモート・バス・アービタを配列することができる。ＰＣＩバス・アダプタにおいて破壊が検知されると、破壊検出論理１２０、１２２はバス・アービタ論理１２４に対して破壊を信号で伝える。バス・アービタはターゲットによる書き込みデータの破壊の検知に応答し、チャンネル・アダプタによるＰＣＩバスへのアクセスをブロックする。このことによって、破壊されているＰＣＩバス・アダプタ５０、５２がコマンド待ち行列１１０、１１２のコマンドを実行し続けることが可能となり、徐々に待ち行列を空にしていく。
【００２８】
コマンド待ち行列検出論理１２５、１２７は、コマンド待ち行列の各コマンドの実行が完了したことを感知するために破壊されているＰＣＩバス・アダプタに接続されたトランザクション制御５５、５７をモニタする。別の例として、待ち行列５０、５２と同一サイズの影コマンド待ち行列は、バス・アービタ１２４によって維持され、コマンド待ち行列レベル検出論理１２５、１２７によって決定される。さらに別の例として、コマンド待ち行列で実行されなければならない操作の数がコマンド待ち行列レベル検出論理に提供され、該コマンド待ち行列レベル検出論理によってディクリメントされる。ブロックに続いて、バス・アービタ１２４はコマンド待ち行列レベル検出論理１２５、１２７に応答するもので、該コマンド待ち行列レベル検出論理１２５、１２７は、所定の数（例えば１）のコマンドがそのコマンド待ち行列１１０、１１２において待ち行列に入れられたままである十分な操作を、破壊されているＰＣＩバス・アダプタ５０、５２が完了したことを示し、さらにＰＣＩデータ・ソース（チャンネル・アダプタ）がＰＣＩバスにアクセスして破壊なしにバースト書き込み操作を完了させることを許可する。
【００２９】
したがって、ＰＣＩバス・アダプタはそのコマンド待ち行列及び待ち行列バッファを空にしてしまい、ターゲット・レディ（ＴＲＤＹ）歩調あわせを行うことができる。それによって、破壊なしにバースト書き込みの残りを受け取る。
【００３０】
ＰＣＩバスの典型的な１ワード、２ワード、及び３ワードＰＣＩ書き込みデータ転送信号をそれぞれ図４、図５、及び図６に示す。信号は負の状態でアクティブな状態が示され、正の状態でアクティブではない状態が示されている。サイクル・フレーム信号１３１はコマンドのイニシエータ、例えばチャンネル・アダプタによって駆動され、トランザクションの開始及び持続時間を示す。トランザクションは、許可信号（不図示）によって、図２及び図３のバス・マネージャ４６によってバスの所有権が与えられたイニシエータからであろう。コマンドは、コマンド／バイト・イネーブル・バス（不図示）上に例えば４ビットとして与えられ、アドレスはアドレス／データ・バス上に例えば３２ビットのアドレス１３５として与えられ、両バスともＰＣＩパスから構成される。イニシエータ・レディ信号１３６は、現在のバス・マスタ（トランザクションのイニシエータ）によって駆動される。書き込み中、イニシエータ・レディ信号１３６をアサートすることで、イニシエータがデータ・バス上の正当なデータ１４０であることが示される。。ターゲット・レディ信号１３７は現在アドレス指定されたターゲット、例えばＰＣＩバス・アダプタによって駆動される。その信号は、ターゲットがマスタからのデータを受け入れて現在のデータ・フェーズ（データ転送）を完了する時にアサートされる。次に、データ１４０がターゲットによってＰＣＩバスで受け取られる。
【００３１】
もしターゲットが全体のデータ転送を完了することができず、「ターゲット・レディ」歩調あわせを実行することができないならば、ターゲットは「タイプＢ切断」をアサートすることで、停止信号を用いるであろう。停止出力１４１は、空白（ヌル）又はオフ状態で示されている。停止信号は、イニシエータに対して転送を終了するように強制する。
【００３２】
バースト書き込みデータ転送のためのＰＣＩバス信号方式が従来の破壊を被ったものとして図７に示されている。既に述べたように、サイクル・フレーム信号１３１はコマンドのイニシエータ、例えばチャンネル・アダプタによって駆動され、トランザクションの開始及び継続時間を示す。バス・マネージャ４６は許可信号１３２によってイニシエータに対してＰＣＩバスの所有権を与えるであろう。コマンドは、コマンド／バイト・イネーブル・バス（不図示）上に与えられ、またアドレス１３５はアドレス／データ・バス上に与えられる。イニシエータ・レディ信号１３６は、イニシエータがデータ・バス上に正しいデータ１４０を駆動していること示すためにトランザクションのイニシエータによってアクティブにされる。ターゲット・レディ信号１３７は現在アドレス指定されたターゲットＰＣＩバス・アダプタによって駆動され、イニシエータからのデータの少なくとも１つのワードで受諾可能となったことを示す。次にデータ１４０はターゲットによってＰＣＩバスで受け取られる。
【００３３】
イニシエータはフレーム１３１をアクティブな状態に保つことでバースト書き込みを転送することを望むが、図示した従来例ではデータの１つのワードがロードされるやいなや待ち行列バッファが満たされ、それによってターゲットがデータ転送全体を完了することができない。したがって、ターゲットは「タイプＢ切断」のために停止信号１４２をアサートする。停止信号によってイニシエータが転送の終了を強制され、次のアドレス１５５（転送されたワードの長さによってインクリメントされたアドレス）で再びトライする。
【００３４】
より詳細には、イニシエータがトランザクションを終了していないため、許可信号１３２はアクティブのままであり、またイニシエータはフレーム信号１３１を終わらせる。フレーム信号が終了することで、ターゲットは停止信号１４２を中断し、イニシエータはフレーム信号１５１及びイニシエータ・レディ信号１５６を再びアサートする。ターゲットはコマンドを実行し、コマンド待ち行列及び待ち行列バッファが使用可能となるので、ターゲットは再びターゲット・レディ信号１５７をアサートする。さらにまた、待ち行列バッファは１つのワード１６０が転送された後に満たされ、ターゲットが停止信号１６２をアサートする。イニシエータは再びデータ転送を終了させてさらにまたサイクルを一巡することを強制され、フレーム１７１、アドレス１７５、及びレディ信号１７７を提供する。次にターゲットはターゲット・レディ信号１７７を与え、再び停止信号１８２をアサートする。プロセスは全バースト書き込みに対して行われ、それによって非能率的なデータ転送操作となりうる。
【００３５】
本発明にもとづくバースト書き込みデータ転送のＰＣＩバス信号方式を図８に示す。また、本発明の方法の一実施形態例を図９に示す。これらの図と共に図１乃至図３を参照して説明する。サイクル・フレーム信号１３１はコマンドのイニシエータ、例えばチャンネル・アダプタ（Ａ、Ｂ、Ｃ、Ｄ）１４によって駆動される。バス・マネージャ４６のバス・アービタ論理１２４は許可信号１３２によってチャンネル・アダプタに対するＰＣＩバスの所有権が与えられよう。コマンドはコマンド／バイト・イネーブル・バス（不図示）上に与えられ、アドレス１３５はアドレス／データ・バス上に与えられ、さらにイニシエータ・レディ信号１３６はイニシエータによってアクティブにされることで、データ・バス上に正しいデータ１４０を駆動しているイニシエータが示される。ターゲット・レディ信号１３７は現在アドレス指定されたターゲットＰＣＩバス・アダプタ、例えばＰＣＩバス・アダプタ５０によって駆動され、ターゲットがイニシエータからデータの少なくとも１つのワードを受け取る準備が完了していることを示す。次にデータ１４０はターゲットによってＰＣＩバスにおいて受け入れられる。
【００３６】
ステップ２００では、ＰＣＩバス・アダプタ５０に関して、破壊検出論理１２０は、バス４４で信号を検出することで破壊についてターゲット５０のアドレス／データ待ち行列バッファ１１１をモニタする。ステップ２０２で破壊が検出されなければ、破壊検出論理はステップ２００でモニタを継続する。
【００３７】
バースト書き込みの具体例として、イニシエータはフレーム１３１をアクティブに保つ。既に述べたように、待ち行列バッファ１１１はデータの１つのワードがロードされると直ちに満たされ、ターゲットがデータ転送全体を完了することができない。したがって、ターゲットは、「タイプＢ切断」のために停止信号１４２をアサートする。停止信号によってイニシエータは転送を終了するように強制される。
【００３８】
しかし、ここでステップ２０２では、破壊検知論理１２０が停止信号１４２のターゲットによるアクティブ化を検知する一方でイニシエータ・レディ信号１３６がアクティブになり、また一方でターゲットはターゲット・レディ信号１３７をアクティブにしており、データ・ストリームの破壊が示される。ステップ２０４では、バス・アービタ論理１２４はターゲットによる書き込みデータの破壊検出論理の感知に応答し、許可信号１３２が除去される。さらに、バス・アービタ・ブロックは任意の許可信号を送出することなくチャンネル・アダプタ（Ａ、Ｂ、Ｃ、Ｄ）１４によってＰＣＩバス４４に対してアクセスする。このことによって、破壊されているＰＣＩバス・アダプタ５０がコマンド待ち行列１１０のコマンドを実行し続け、徐々にコマンド待ち行列及び待ち行列バッファ１１１が空になることが可能となろう。ＰＣＩバスに対するアクセスは、待ち行列にあるコマンドが実行されることを保証するために、ＰＣＩバス・ターゲットを含むＰＣＩバス・システムのエージェントに対して許可されてもよい。
【００３９】
ステップ２０７では、コマンド待ち行列レベル検出論理１２５は、破壊されているＰＣＩバス・アダプタに関連したトランザクション制御５５をモニタすることで、コマンド待ち行列１１０の各コマンドの実行が完了したことを検出する。既に述べたように、別の例として、影コマンド待ち行列がバス・アービタ１２４によって維持され、かつコマンド待ち行列レベル検出論理１２５によってディクリメントされる。さらに別の例として、コマンド待ち行列で実行されなければならない操作の数がコマンド待ち行列レベル検出論理に提供され、該コマンド待ち行列レベル検出論理によってディクリメントされる。
【００４０】
ステップ２０８では、ＰＣＩバス・アダプタによって各コマンドが完了すると、待ち行列に入ったコマンドの残りの数が所定の数と比較される。好ましくは、所定の数は「１」であり、たった１つの操作が残っていることが示される。もし操作の残りの数が所定の数よりも多ければ、ステップ２１０からステップ２０７に戻って待ち行列１１０のモニタを続ける。
【００４１】
しかし、もしステップ２１０で「ＮＯ」、すなわち待ち行列が所定の数まで下がっていることが示されたとするならば、ステップ２１２でバス・アービタ１２４はコマンド待ち行列レベル検出論理１２５に応答し、所定数の操作コマンドがそのコマンド待ち行列１１０において待ち行列に入ったままである十分な操作を破壊されているＰＣＩバス・アダプタ５０が完了したことを信号２２５によって示し、ＰＣＩバスに対するアクセスを許可する。この点で、ＰＣＩバスはそのコマンド待ち行列及び待ち行列バッファを空にし、破壊なしにバースト書き込みコマンドを受け入れることが可能となろう。
【００４２】
バス・アービタ論理１２４はステップ２１２でオリジナルの要求元に対するアクセスを許可しなくてもよく、そのかわり連続プロセスによって進行し、他の要求元に対するアクセスを許可してもよい。究極的には、他のトランザクションが完了した後に、バス・アービタ論理は許可信号２３２をアサートすることによってオリジナルの要求もとに対するアクセスを許可するであろう。
【００４３】
オリジナルのチャンネル・アダプタ（Ａ、Ｂ、Ｃ、Ｄ）１４は、従来技術にあるように、次のアドレス１５５（転送されたワードの長さによってインクリメントされたアドレス）でバースト書き込みを再び試みることを強いられる。しかし、ここではＰＣＩバス・アダプタはそのコマンド待ち行列及び待ち行列バッファを空にし、破壊なしにバースト書き込みコマンドを受け入れることが可能となろう。したがって、フレーム信号２３１がアクティブになり、一方でコマンドがコマンド／バイト・イネーブル・バス上に与えられ、アドレス１５５がアドレス／データ・バス上に与えられ、さらにイニシエータ・レディ信号２３６がイニシエータによってアサートされる。ターゲット・レディ信号２３７は、現在アドレス指定されたターゲットＰＣＩバス・アダプタ、例えばＰＣＩバス・アダプタ５０によって駆動され、この場合イニシエータからのデータ全てがターゲットに受け入れられることが可能となったことを示す。イニシエータによってＰＣＩバス上で駆動されるデータ２４０は、次にターゲットによって受け入れられ、バースト書き込み転送操作の残りが破壊なしに完了する。
【００４４】
ＰＣＩバス４４からのバースト書き込みコマンドについて、ＰＣＩバス・アダプタ５２及びトランザクション制御５７に対するコマンド待ち行列１１２及び待ち行列バッファ１１３により、同一の方法が破壊検出論理１２２、コマンド待ち行列レベル検出論理１２７、及びバス・アービタ論理１２４にによって達成される。
【００４５】
本発明の実施形態例は、特にＰＣＩバスに関係するが、同様な意味合いでアレンジされたバス・システムに対しても等しく関係する。
【００４６】
まとめとして、本発明の構成に関して以下の事項を開示する。
（１）複数の連続したワードから構成される書き込みデータ・バーストのかたちで書き込みデータを転送するＰＣＩバス・システムであり、該ＰＣＩバス・システムに対して少なくとも１つのＰＣＩデータ・ソースを接続させる少なくとも１つのＰＣＩバスと、該データ・ソースから前記書き込みデータを受信し、かつ転送するために前記ＰＣＩバスに接続したＰＣＩバス・ターゲットとを有し、さらにＰＣＩバス・ターゲットが操作コマンドをコマンド待ち行列に入れるＰＣＩバス・システムにおいて前記書き込みデータの破壊を制限する方法であって、
前記書き込みデータの破壊を検知するために前記ＰＣＩバス・ターゲットをモニタするステップと、
前記破壊をモニタするステップが前記ＰＣＩバス・ターゲットによって前記破壊を検知すると、前記ＰＣＩに対するアクセスをブロックするステップと、
前記ブロックするステップに続いて、前記ＰＣＩバス・ターゲットの前記待ち行列に入れられた操作コマンドの完了をモニタするステップと、
前記完了をモニタするステップが前記ＰＣＩバス・ターゲットで待ち行列に入れられたままの前記操作コマンドの所定数を示すと、前記少なくとも１つのＰＣＩデータ・ソースによってＰＣＩバスに対するアクセスの許可を可能とするステップと、
を有することを特徴とする書き込みデータの破壊を制限する方法。
（２）前記完了をモニタするステップは、前記ブロックをするステップの時に前記ＰＣＩバス・ターゲット・コマンド待ち行列に残る前記待ち行列に入った操作コマンドの残存数を識別するステップと、前記完了をモニタするステップは、前記ブロックをするステップの時に前記ＰＣＩバス・ターゲット・コマンド待ち行列に残る前記待ち行列に入った操作コマンドの残存数を識別するステップと、前記完了をモニタするステップのモニタされた完了の各々に応じて前記残っている前記操作コマンドの数をディクリメントするステップと、前記残っている前記操作コマンドの数と前記所定数とを比較するステップと、該比較ステップによって数が等しいと判断されると、前記所定数表示を提供するステップとを有することを特徴とする上記（１）に記載の方法。
（３）前記所定数は、前記残っている操作コマンド１つであることを特徴とする上記（２）に記載の方法。
（４）複数の前記ＰＣＩデータ・ソースが前記ＰＣＩバスに接続し、前記ブロックするステップは前記複数の前記ＰＣＩデータ・ソースの全てによる前記ＰＣＩバスに対する前記アクセスをブロックし、前記ＰＣＩバス・ターゲット及び前記バス・システムによる連続したアクセスを許すことを特徴とする上記（１）に記載の方法。
（５）前記ＰＣＩバス・ターゲットは、書き込み操作中にデータ・ソースによってデータがさらに送出されるのを防ぐために「タイプＢ切断」信号をアサートし、前記破壊をモニタするステップは、書き込み操作の待ち行列入りを許した後に前記「タイプＢ切断」信号をアサートすることを検出するために、前記ＰＣＩバス・ターゲットをモニタすることが含まれることを特徴とする上記（１）に記載の方法。
（６）複数の連続したワードから構成される書き込みデータ・バーストのかたちで書き込みデータを転送するＰＣＩバス・システムであり、該ＰＣＩバス・システムに対して少なくとも１つのＰＣＩデータ・ソースを接続させる少なくとも１つのＰＣＩバスと、該データ・ソースから前記書き込みデータを受信し、かつ転送するために前記ＰＣＩバスに接続したＰＣＩバス・ターゲットとを有し、さらにＰＣＩバス・ターゲットが操作コマンドをコマンド待ち行列に入れるＰＣＩバス・システムにおいて、前記書き込みデータの破壊を制限するシステムであって、
前記書き込みデータの破壊を検知するために前記ＰＣＩバス・ターゲットをモニタする破壊検出論理と、
前記ＰＣＩバス・ターゲットの前記待ち行列に入った操作コマンドの完了をモニタする待ち行列レベル検出論理と、
前記ＰＣＩバス・ターゲットによって前記書き込みデータの前記破壊を検知し前記ＰＣＩに対するアクセスをブロックし、前記ＰＣＩバス・ターゲット・コマンド待ち行列において待ち行列に入ったままである前記操作コマンドの所定数を示す前記待ち行列レベル検出論理に応答し、前記少なくとも１つのＰＣＩデータ・ソースによって前記ＰＣＩバスにアクセスすることを許可する、前記破壊検知論理に応答するバス・アービタと、
を有することを特徴とする書き込みデータの破壊を制限するシステム。
（７）前記待ち行列レベル検出論理は、さらに前記ブロックをするステップの時に前記ＰＣＩバス・ターゲット・コマンド待ち行列に残る前記待ち行列に入った操作コマンドの残存数を識別するステップと、前記モニタされた前記待ち行列に入った操作コマンドの完了の各々に応じて前記待ち行列に入ったままである前記操作コマンドの数をディクリメントするステップと、前記待ち行列に入ったままである前記操作コマンドの数と前記所定数とを比較するステップと、該比較ステップによって数が等しいと判断されると、前記所定数表示を提供するステップとを有することを特徴とする上記（６）に記載のシステム。
（８）前記所定数は、前記残っている操作コマンド１つであることを特徴とする上記（７）に記載のシステム。
（９）複数の前記ＰＣＩデータ・ソースが前記ＰＣＩバスに接続し、前記バス・アービタは前記複数の前記ＰＣＩデータ・ソースの全てによる前記ＰＣＩバスに対する前記アクセスをブロックし、一方で前記ＰＣＩバス・ターゲット及び前記バス・システムによる連続したアクセスを許すことを特徴とする上記（６）に記載のシステム。
（１０）前記ＰＣＩバス・ターゲットは、書き込み操作中にデータ・ソースによってデータがさらに送出されるのを防ぐために「タイプＢ切断」信号をアサートし、前記破壊検出論理は、書き込み操作の待ち行列入りを許した後に前記「タイプＢ切断」信号をアサートすることを検出するために、前記ＰＣＩバス・ターゲットをモニタすることを特徴とする上記（６）に記載のシステム。
（１１）少なくとも複数の連続したワードから構成される書き込みデータ・バーストのかたちで書き込みデータを転送し、前記書き込みデータの破壊を制限するＰＣＩバス・システムであって、
該ＰＣＩバス・システムに対して少なくとも１つＩデータ・ソースを接続させるための少なくとも１つのＰＣＩバスと、
該データ・ソースから前記書き込みデータを受信し、かつ転送するために前記ＰＣＩバスに接続し、さらに操作コマンドを待ち行列に入れるためのコマンド待ち行列を持つＰＣＩバス・ターゲットと、
前記書き込みデータの破壊を感知するために前記ＰＣＩバス・ターゲットをモニタする破壊検知論理と、
前記ＰＣＩバス・ターゲットの前記待ち行列に入った操作コマンドの完了をモニタする待ち行列レベル検知論理と、
前記ＰＣＩバス・ターゲットによって前記書き込みデータの前記破壊を検知し、前記ＰＣＩに対するアクセスをブロックし、前記ＰＣＩバス・ターゲット・コマンド待ち行列において待ち行列に入ったままである前記操作コマンドの所定数を示す前記待ち行列レベル検出論理に応答し、前記少なくとも１つのＰＣＩデータ・ソースによって前記ＰＣＩバスにアクセスすることを許可する、前記破壊検知論理に応答するバス・アービタと、
を有することを特徴とするＰＣＩバス・システム。
（１２）前記待ち行列レベル検出論理は、さらに前記ブロックをするステップの時に前記ＰＣＩバス・ターゲット・コマンド待ち行列に残る前記待ち行列に入った操作コマンドの残存数を識別するステップと、前記モニタされた前記待ち行列に入った操作コマンドの完了の各々に応じて前記待ち行列に入ったままである前記操作コマンドの数をディクリメントするステップと、前記待ち行列に入ったままである前記操作コマンドの数と前記所定数とを比較するステップと、該比較ステップによって数が等しいと判断されると、前記所定数表示を提供するステップとを有することを特徴とする上記（１１）に記載のＰＣＩバス・システム。
（１３）前記所定数は、前記残っている操作コマンド１つであることを特徴とする上記（１２）に記載のＰＣＩバス・システム。
（１４）複数の前記ＰＣＩデータ・ソースが前記ＰＣＩバスに接続し、前記バス・アービタは前記複数の前記ＰＣＩデータ・ソースの全てによる前記ＰＣＩバスに対する前記アクセスをブロックし、一方で前記ＰＣＩバス・ターゲット及び前記バス・システムによる連続したアクセスを許すことを特徴とする上記（１１）に記載のＰＣＩバス・システム。
（１５）前記ＰＣＩバス・ターゲットは、書き込み操作中にデータ・ソースによってデータがさらに送出されるのを防ぐために「タイプＢ切断」信号をアサートし、前記破壊検出論理は、書き込み操作の待ち行列入りを許した後に前記「タイプＢ切断」信号をアサートすることを検出するために、前記ＰＣＩバス・ターゲットをモニタすることを特徴とする上記（１１）に記載のＰＣＩバス・システム。
【図面の簡単な説明】
【図１】本発明の一実施形態にもとづくＰＣＩバスと、それに接続されたホスト・システム及びデバイスを説明するためのブロック図である。
【図２】図１に示すＰＣＩバスのブロック図であって、ＰＣＩリモート・ブリッジと２つのＰＣＩ論理ブリッジとを示す。
【図３】本発明の一実施形態を実現する図２のリモート・バス・マネージャ、ＰＣＩバス・アダプタ、及びリモート・アドレス・トランスレータのブロック図である。
【図４】１ワード書き込みデータ転送操作を説明するタイミング図である。
【図５】２ワード書き込みデータ転送操作を説明するタイミング図である。
【図６】３ワード書き込みデータ転送操作を説明するタイミング図である。
【図７】破壊が生じた従来のバースト書き込みコマンドのタイミング図である。
【図８】破壊を抑えるために本発明にもとづいて実行されたバースト書き込みコマンドのタイミング図である。
【図９】本発明の方法の一実施形態を説明するためのフローチャートである。
【符号の説明】
４                          ホスト・システム
６                          デバイス
１０、１２            プロセッサ
１１                      ＰＣＩバス・システム
１４                      チャンネル・アダプタ（Ａ、Ｂ、Ｃ、及びＤ）
１６                      チャンネル・アダプタ（Ａ、Ｂ、Ｃ、及びＤ）
１８、２０          リモート・ブリッジ
４４、４５          セカンダリＰＣＩバス
２２、２４、２６、２８      ローカル・ブリッジ
３２、３４          ＮＶＳ（非揮発性記憶）
８８、９０          プライマリ・バス
４６                      ＰＣＩバス・マネージャ
５０、５２          ＰＣＩバス・アダプタ
５４、５６          リモート・アドレス・トランスレータ
５５、５７            トランザクション制御
５８、６０            リモート・ディスタンス・インタフェース
５９、６１          長距離接続
６２、６４          ローカル・ディスタンス・インタフェース
６６、６８          ローカル・アドレス・トランスレータ
６７、６９          トランザクション制御
７０、７２          ＰＣＩバス・アダプダ
７４、７６          静的ランダム・アクセス・メモリ（ＳＲＡＭ）
８０、８２、８４、８６      ＦＩＦＯバッファ・セクション
８８、９０          ＰＣＩバス
１１０、１１２      コマンド待ち行列
１１１、１１３    待ち行列バッファ
１２０、１２２    破壊検出論理
１２４                  バス・アービタ論理
１２５、１２７    コマンド待ち行列レベル検出論理
１３１                  サイクル・フレーム信号
１３２                  許可信号
１３５、１５５、１７５      アドレス
１３６、１５６、２３６      イニシエータ・レディ信号
１３７、１５７、２３７      ターゲット・レディ信号
１４０、２４０    データ
１４１                  停止出力
１４２、１６２、１８２      停止信号
１６０                  ワード
１７１                  フレーム
１７７                  レディ信号
２３１                  フレーム信号
２３２                  許可信号
【図１】
0003600536.tif 000002
【図２】
0003600536.tif 000003
【図３】
0003600536.tif 000004
【図４】
0003600536.tif 000005
【図５】
0003600536.tif 000006
【図６】
0003600536.tif 000007
【図７】
0003600536.tif 000008
【図８】
0003600536.tif 000009
【図９】
0003600536.tif 000010