(57)【特許請求の範囲】
【請求項１】
制御チップセットは、第１制御チップと、第２制御チップとを具備し、データは、バスを介して第１および第２制御チップ間を転送され、該バスは、二方向バスを具備する、という制御チップセット内におけるバスアービトレーション方法であって、
前記第２制御チップは、該第２制御チップがバスを用いる必要がある場合に、バス要求信号を送出する段階と、
前記第１制御チップは、該第１制御チップが要求信号を検出すれば、該第１制御チップが現在バスを用いていなければバスの権限を第２制御チップへ解放し、該第１制御チップが現在バスを用いていれば該第１制御チップが現在のバストランザクションを完了した後にバスの権限を第２制御チップへ直ちに解放する段階と、
前記第２制御チップは、前記第１制御チップが現在はバスを用いていないことを該第２制御チップが検出した場合に、所定時間の間待機した後にバスを使用する段階と、
前記第２制御チップは、前記第１制御チップが現在はバスを用いていることを該第２制御チップが検出した場合に、前記第１制御チップが現在に実行するバスコマンドと当該バスコマンドに必要とされるクロック数により、現在に実行するバスコマンドが完了され、かつターンアラウンドサイクルを待機した後に、バスを使用する段階と、
を具備することを特徴とする方法。
【請求項２】
前記第１制御チップが現在はバスを使用していることを前記第２制御チップが検出した場合に、前記第２制御チップがバスを駆動する前の待機時間を計算するために、
前記第１制御チップは、現在のバスコマンドを実行するためのクロック数と、現在のバスコマンドに対応するデータ送信のために二方向バスを用いるクロック数とを、前記第２制御チップへ供給する段階と、
前記第２制御チップは、該第２制御チップが第１制御チップに対してコマンドを送出する場合に、確認応答のクロック数と、前記コマンドに対応する前記第１制御チップにより応答されるデータのクロック数とを記憶する段階と、
をさらに具備し、前記確認応答のクロック数と、前記第１制御チップにより応答されるデータのクロック数とは、前記確認応答が送信されるべき、前記コマンドに予め格納されているクロック数、及びデータが送信されるべき、前記コマンドに予め格納されているクロック数に基づいてコマンドにより決定されることを特徴とする請求項１に記載の方法。
【請求項３】
前記バスは、アドレス／データバスと、バイトイネーブル信号線と、アップリンクコマンド信号線と、アップリンクストローブ信号線と、ダウンリンクコマンド信号線と、ダウンリンクストローブ信号線と、クロック信号線とをさらに具備し、前記二方向バスは、アドレス／データバスと、バイトイネーブル信号線とからなることを特徴とする請求項１に記載の方法。
【請求項４】
前記第１および第２制御チップは、それぞれ、コンピュータマザーボード上にある北側ブリッジおよび南側ブリッジであることを特徴とする請求項１に記載の方法。
【請求項５】
前記第１および第２制御チップは、それぞれ、コンピュータマザーボード上にある南側ブリッジおよび北側ブリッジであることを特徴とする請求項１に記載の方法。
【請求項６】
前記アップリンクストローブ信号線の周波数および前記ダウンリンクストローブ信号の周波数は、クロック信号の周波数の２倍であることを特徴とする請求項３に記載の方法。
【請求項７】
前記要求信号は、アップリンクコマンド信号線を介して送出されることを特徴とする請求項６に記載の方法。
【請求項８】
前記要求信号は、１クロック周期内のビットタイム０において、アップリンクコマンド信号線を介して送出されることを特徴とする請求項７に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、バストランザクション方法に関する。より詳細には、本発明は、コンピュータシステム内の制御チップセット間におけるトランザクション方法に関する。
【０００２】
【従来の技術】
図１は、従来のコンピュータシステムの種々の構成要素を接続しているＰＣＩバスを示すブロック図である。図１に示されるように、中央処理装置１０は、ホストブリッジ１２を介して、ＰＣＩバス１４に結合されている。グラフィックアダプタ１６ａ、拡張バスブリッジ１６ｂ、ＬＡＮアダプタ１６ｃ、およびＳＣＳＩホストバスアダプタ１６ｄのような、幾つかのＰＣＩ互換周辺機器のマスターコントローラについてもまた、ＰＣＩバス１４に結合させることができる。これらのマスターコントローラの各々は、ＰＣＩバス１４の使用を求める要求（ＲＥＱ）信号を送出することができる。ホストブリッジ１２は、ＰＣＩバス１４が有効である場合にコントローラに対して許可（ＧＮＴ）信号を送出するアービトレータとして機能する。
【０００３】
（制御チップセットのマスターコントローラまたは北側ブリッジのような）ＰＣＩ互換装置間におけるデータ伝送は、少数のインターフェース制御信号により制御される。サイクルフレーム（ＦＲＡＭＥ）は、データアクセス動作の開始とその継続時間とを示すイニシエータ（これは、マスターコントローラまたは北側ブリッジであってもよい）から発行される。ＦＲＡＭＥ信号がアウト状態（out）になるとすぐに、ＰＣＩバスを介してのデータトランザクションが開始される。ＦＲＡＭＥ信号に関するロー側電位は、データ伝送が進行中であることを示す。データトランザクションの開始後に、アドレスバスＡＤは、アドレスサイクル中に有効なアドレスを送出する。その間に、コマンド／バイトイネーブル（ＣＢＥ［３：０］）信号線は、（ＰＣＩ仕様（PCI specification）にしたがって）有効なバスコマンドを送出し、これにより、ターゲット装置は、イニシエータにより要求されたデータトランザクションモードを知る。一般に、コマンド／バイトイネーブル信号線のうち４ビットは、最大１６個の異なるコマンドまでを符号化することが可能であり、かつ、各々のコマンドは、ＰＣＩ仕様において詳細に定義されている。有効アドレスがアウト状態となった後に、データがアドレスバスＡＤを介して伝送されるデータサイクルが開始される。その間に、バイトイネーブル信号が送信され、これにより、データを伝送することができる。ＦＲＡＭＥ信号の伝送が停止すると、最終組のデータが伝送され、かつ、現在のトランザクションにおいてはそれ以上のデータは伝送されない。イニシエータレディ（initiator ready：ＩＲＤＹ）信号およびターゲットレディ（target ready：ＴＲＤＹ）信号もまた、データトランザクションにおけるイニシエート（initiating）装置およびターゲット装置の準備ができている状態を表示するために、システムにより用いられる。データ読み出し動作において、ＩＲＤＹ信号は、イニシエータが、要求されたデータを受信する準備ができていることを示す。データ書き込み動作において、ＴＲＤＹ信号は、ターゲット装置が、要求されたデータを受信する準備ができていることを示す。停止（ＳＴＯＰ）信号は、イニシエータからのデータトランザクションの終了を要求するために、ターゲット装置により用いられる。
【０００４】
図２は、読み出し動作中のＰＣＩバスインターフェースにおける種々の信号を示すタイミング図である。ＰＣＩバスを介してデータが伝送される周期は、バストランザクションサイクル２０として既知である。バストランザクションサイクル２０は、アドレスサイクル２２と、例えば、２４ａ，２４ｂ，２４ｃのような幾つかのデータサイクルとを有する。各々のデータサイクル２４ａ，２４ｂ，２４ｃについては、さらに、待機（wait）サイクル２６ａ，２６ｂ，２６ｃと、データ転送サイクル２８ａ，２８ｂ，２８ｃとに分割することができる。以下に、ＰＣＩ仕様にしたがう制御信号を示すために、読み出し動作中のＰＣＩバスインターフェースについて、簡単に説明する。
【０００５】
サイクルＴ１の間には、データトランザクションの開始を示すＦＲＡＭＥ信号が、イニシエータにより送信され、その一方で、開始アドレスが、該トランザクションに関するターゲット装置を突き止めるために、アドレスバスＡＤ回線上に置かれる。その間に、読み出しコマンドが、ＣＢＥ回線を介して伝送される。読み出しコマンドの配信（delivery）後に、バイトイネーブル信号がＣＢＥ回線上に置かれる。バイトイネーブル信号は、（２４ａ，２４ｂ，２４ｃを包含する）データサイクルの始めから終わりまで送信される。サイクルＴ２の間には、イニシエータが、データ送信のためにイニシエータの準備ができている状態を示すイニシエータレディ信号ＩＲＤＹを提示する。しかしながら、ターゲット装置の準備がまだできていない。これにより、ターゲット装置はデータを準備する状態を保持し、その一方で、イニシエータは、データサイクル２４ａの待機サイクル２６ａにおいて不働（idle）となる。サイクルＴ３の間には、ターゲット装置が、伝送のために必要なデータを全て準備しており、これにより、ターゲットレディＴＲＤＹ信号を送出する。したがって、データサイクル２８ａにおいては、ＩＤＲＹおよびＴＲＤＹの両方がアウト状態となり、かつこれにより、イニシエータは、ターゲット装置からデータを読み出し始めることができる。サイクルＴ４の間には、ターゲット装置が、もはや、ターゲットレディＴＲＤＹ信号を発行せず、最初の組のデータ送信の終了を信号で通信する。その間に、１組のデータがターゲット装置内部で準備される。再び、イニシエータが、データサイクル２４ｂ内の待機サイクル２６ｂに入る。サイクルＴ５の間には、第２組のデータの準備ができていることを示すターゲットレディＴＲＤＹ信号が発行される。第２組のデータは、ＩＲＤＹ信号およびＴＲＤＹ信号の両方が発行される場合のサイクル２８ｂにおいて、イニシエータにより準備ができている。サイクルＴ６におけるように、イニシエータが、ターゲット装置から全てのデータを読み出すのに十分な時間を有していなければ、ＩＲＤＹ信号は終了する。ＴＲＤＹはいまだにアウト状態なので、待機サイクル２６ｃは、イニシエータにより活性化される。サイクルＴ７におけるように、再びイニシエータの準備ができると、ＩＲＤＹ信号が再発行される。イニシエータは、ＩＲＤＹ信号およびＴＲＤＹ信号の両方が発行される場合のデータ伝送サイクル２８ｃの間において、ターゲット装置からデータを読み出し、これにより、単一の読み出し動作を完了する。
【０００６】
従来のＰＣＩ仕様にしたがって適切なデータトランザクションを実行するためには、複雑な制御信号と、待機状態と、アービトレーション段階とを用いる必要がある。通常は、４５〜５０個までの信号ピンが、ＰＣＩ仕様にしたがって要求される。概して、制御チップ間の内部トランザクションのために、複雑な手順は不要である。したがって、制御チップ間の内部トランザクションの高速化を図るためには、従来のＰＣＩ仕様を固守する簡略化されたトランザクション方法が必要とされる。
【０００７】
しかしながら、ＰＣの制御チップ間のトランザクションは、概して、ＰＣＩ仕様により与えられる全ての複雑な機能を用いない。制御チップ間の動作は、通常は低下する。装置の統合が進むにつれて、制御チップについては単一のチップに統合することができ、かつ、さらに多くの機能がもたらされる。例えば、ＣＰＵ、北側ブリッジ（north bridge）、南側ブリッジ（south bridge）が統合されて単一チップの形に形成される。したがって、チップパッケージのピンが非常に重要なソースとなる。制御チップ間のトランザクション速度を増加させるために、制御チップ間で用いるために簡略化された特有の仕様が必要とされる。
【０００８】
【発明が解決しようとする課題】
本発明は、制御チップと、制御チップセット内の制御チップ間におけるデータトランザクション方法と、制御チップセット内の制御チップ間におけるバスアービトレーション方法とを提供する。したがって、制御チップセットの性能は向上し、かつ、制御チップ間における信号線の形式および数が減少する。
【０００９】
本発明は、制御チップセットの、および、該制御チップセット内の制御チップ間におけるデータトランザクション方法を提供する。データまたはコマンドについては、いかなる待機サイクル、停止または再試行も伴わずに、連続的に伝送することができる。
【００１０】
本発明は、制御チップセット、および、該制御チップセット内の制御チップ間におけるデータトランザクション方法を提供し、この場合には、待機状態とデータトランザクションサイクルと停止／再試行プロトコルとのための信号線は必要とされない。
【００１１】
本発明は、アービトレーション時間を減少させることができる制御チップ間におけるバスアービトレーション方法を提供する。
【００１２】
本発明は、バス許可（bus grant）信号線が必要とされない、制御チップ間におけるバスアービトレーション方法を提供する。
【００１３】
【課題を解決するための手段】
本発明によれば、制御チップセットの制御チップのデータバッファは一定の大きさおよび数量を有する。さらに、読み出し／書き込みコマンドにしたがって、読み出し／書き込み確認応答コマンドが示され、これにより、制御チップは、制御チップ内のバッファの状態を、互いに検出することができる。制御チップはコマンドの存在を示す（assert）ときに、これに対応するデータを予め準備する必要がある。これにより、待機状態とデータトランザクションサイクルと停止／再試行プロトコルとをもたらすための信号線を削除することができる。したがって、コマンドまたはデータを、待機、停止または再試行なしで、連続的に伝送することができ、これにより、性能が向上する。
【００１４】
本発明のバストランザクション方法によれば、制御チップは、通常は、バスを用いる権限（authority）を制御するが、他のチップは、バスを用いるためのより高い優先順位を有する。待機サイクルなしのバス仕様を伴って、バスを用いる権限をアービトレートすることを、迅速にかつ誤りなしに行うことができる。したがって、いかなるＧＮＴ信号線も必要とされず、かつ、アービトレーション時間が減少する。第２制御チップにより要求されたトランザクションは常に許可されているので、全体的な性能が向上する。
【００１５】
前述の一般的な説明および以下の詳細な説明は、例示的なものであり、かつ、特許請求される本発明に関するさらなる説明をもたらすために意図されていることを理解すべきである。
【００１６】
【発明の実施の形態】
添付の図面は、本発明のさらなる理解をもたらすために備えられており、かつ、本明細書に組み込まれ、かつ、本明細書の一部を構成している。
【００１７】
本発明は、制御チップセット間における、または、制御チップセットのチップ間におけるトランザクション方法およびアービトレーション方法を提供し、該方法は、制御チップ間におけるデータトランザクションの効率性を促進することができる。すなわち、前記方法は、制御チップ間におけるバストランザクション処理を簡略化する。パーソナルコンピュータ（ＰＣ）のようなコンピュータシステム内において北側ブリッジと南側ブリッジとからなる制御チップセットが、本発明による好ましい実施形態を説明するための例として用いられる。従来のＰＣＩ仕様により定義されるように、４５のコマンド信号線が、南側ブリッジと北側ブリッジとの間で通信するために必要とされる。しかしながら、本発明の好ましい実施形態においては、１５のコマンド信号線のみが、ＰＣＩ仕様により定義された元の４５のコマンド信号線を置き換えるために必要とされる。新たに定義された本発明の１５のコマンドは、ＶＬＩＮＫコマンドと称される。
【００１８】
図３および表１を参照すると、図３は、本発明の好ましい実施形態による制御チップセットのブロック図を概略的に示し、この図においては、制御チップセットの北側ブリッジと南側ブリッジとの間における制御信号線が、詳細に示されている。表１は、図３に示される各々の制御信号線の意味を記載している。例えば、制御チップセットは、北側ブリッジ３０と南側ブリッジ３２とを具備する。北側ブリッジ３０と南側ブリッジ３２との間の通信信号線は、ＰＣＩ仕様による４５の信号線から、本発明による１５の信号線へ減少する。したがって、北側ブリッジ３０および南側ブリッジ３２のさらなる３０（＝４５−１５）ピンを、他の目的のために用いることができ、これにより、チップセットの機能が促進される。
【００１９】
図３および表１に示されるように、元のＰＣＩ仕様により定義されるデータおよびアドレスバス（ＡＤバス）は、予約されているが、８つの二方向信号線まで減少され、その一方で、ＣＢＥ，ＦＲＡＭＥ，ＩＲＤＹ，ＴＲＤＹ，ＳＴＯＰ，ＤＥＶＳＥＬ，ＲＥＱ，およびＧＮＴ信号線は、二方向バイトイネーブル（ＢＥ）信号線と、（両方とも南側ブリッジにより駆動される）アップリンクコマンド信号線ＵＰＣＭＤおよびアップリンクストローブ信号線ＵＰＳＴＢと、（両方とも北側ブリッジにより駆動される）ダウンリンクコマンド信号線ＤＮＣＭＤおよびダウンリンクストローブ信号線ＤＮＳＴＢと、までに簡略化される。北側ブリッジ３０および南側ブリッジ３２の各々は、独立したコマンド信号線を駆動させ、これらの信号線は、両方とも、バスコマンドの存在を示すことができる。さらに、１つの制御チップにより、バスコマンドの存在が示されかつバスの権限が得られれば、該制御チップは、アドレスをＡＤバス上で送信しかつこれに対応するデータ長を送信することができるか、または、データをＡＤバス上で送信しかつ該データのためのバイトイネーブル信号をＢＥ信号線上で送信することができる。
【表１】
0004583590.tif 000002
【００２０】
図４は、本発明による、バスクロック信号（ＣＬＫ）と、ストローブ信号（ＳＴＢ）と、データ転送用データ回線のビットタイムとの間におけるタイミングの関係を示す。図４に示されるように、１つのクロック周期は、２つのストローブクロック周期を具備する。すなわち、アップリンクストローブ信号およびダウンリンクストローブ信号がアクティブ状態である場合の周波数は、バスクロック信号の周波数の２倍である。ストローブ信号の立ち上がりエッジと立ち下がりエッジとにより定義された４つのビットタイム０〜３が存在する。したがって、４ビットデータが、各々のデータ回線上において４つのビットタイム０〜３を用いることにより得られ、かつ、バスコマンドが符号化される。したがって、各々のクロック周期中に８つのデータ回線を用いることにより３２ビットデータが得られ、これは、従来のＰＣＩ仕様において３２個のデータ回線を用いてデータが伝送されることに等しい。さらに、ＢＥ信号線がデータ長を表しているかのように、１〜１６（４ビット）データ長情報が１クロック周期の範囲内で得られる。
【００２１】
種々の形式のデータトランザクションが、アップリンクコマンドＵＰＣＭＤとダウンリンクコマンドＤＮＣＭＤとを用いて定義される。南側ブリッジにより駆動されるアップリンクコマンドＵＰＣＭＤは、読み出し確認応答コマンド（ＮＢ（北側ブリッジ）からＳＢ（南側ブリッジ）へ）Ｃ２ＰＲＡ、書き込み確認応答コマンド（ＮＢからＳＢへ）Ｃ２ＰＷＡ、読み出しコマンドＰ２ＣＲ（ＳＢからＮＢへ）、書き込みコマンドＰ２ＣＷ（ＳＢからＮＢへ）、などを具備する。アップリンクコマンドとビットタイム符号化との関係は表２に記載されている。要求信号ＲＥＱは、他のバスコマンドとは重複していないビットタイム０においてその存在が示されている。したがって、ＲＥＱ信号については、いつでも、バスコマンドの存在が示される同じクロック周期においてさえも、送信することができる。北側ブリッジにより駆動されるダウンリンクコマンドＤＮＣＭＤは、入力／出力読み出しコマンド（ＮＢからＳＢへ）Ｃ２ＰＩＯＲ、メモリ読み出しコマンド（ＮＢからＳＢへ）Ｃ２ＰＭＲ、入力／出力書き込みコマンド（ＮＢからＳＢへ）Ｃ２ＰＩＯＷ、メモリ書き込みコマンド（ＮＢからＳＢへ）Ｃ２ＰＭＷ、読み出し確認応答コマンド（ＳＢからＮＢへ）Ｐ２ＣＲＡ、書き込み確認応答コマンド（ＳＢからＮＢへ）Ｐ２ＣＷＡ、などを具備する。ダウンリンクコマンドとビットタイム符号化との関係は表３に記載されている。本発明においては、いかなる許可信号ＧＮＴも定義されない。
【００２２】
北側ブリッジにより示されるコマンドおよび南側ブリッジにより示されるコマンドは、互いに対応している。南側ブリッジが、多数のＰ２ＣＲおよび／またはＰ２ＣＷの存在を順次的に示すと、北側ブリッジは、南側ブリッジにより存在を示されたＰ２ＣＲおよび／またはＰ２ＣＷコマンドに応答して、これに対応するＰ２ＣＲＡおよび／またはＰ２ＣＷＡコマンドの存在を順次的に示す必要がある。同様に、北側ブリッジが多数のＣ２ＰＩＯＲ，Ｃ２ＰＭＲ，Ｃ２ＰＩＯＷ，Ｃ２ＰＭＷコマンドの存在を順次的に示すと、南側ブリッジは、北側ブリッジにより存在を示されたコマンドに応答して、これに対応するＣ２ＣＲＡおよび／またはＣ２ＣＷＡの存在を順次的に示す必要がある。さらに、好ましい実施形態において説明するように、制御チップにより存在を示された各々のコマンドに対応するデータを、予め準備する必要がある。例えば、南側ブリッジがＰ２ＣＷコマンドの存在を示すときには、メモリに書き込むべきデータの準備ができている必要があり、かつ、北側ブリッジがＰ２ＣＲＡコマンドの存在を示すときには、メモリから南側ブリッジへ読み出しデータを転送するためのデータの準備ができている必要がある。したがって、伝送されたデータについては、遮断（interrupting）や待機を回避することができる。
【表２】
0004583590.tif 000003
【表３】
0004583590.tif 000004
【００２３】
図５は、本発明による書き込みトランザクションのための好ましい実施形態による制御チップセットのブロック図を概略的に示している。制御チップセットは、例えば、第１制御チップと、第２制御チップとを具備する。パーソナルコンピュータの一般的な利用において、第１制御チップおよび第２制御チップは、北側ブリッジ５００および南側ブリッジ６００であってもよい。第１制御チップ（北側ブリッジ５００）および第２制御チップ（南側ブリッジ６００）は、特別に設計されたバスにより結合されており、該バスの制御信号は、本発明のＶＬＩＮＫである。北側ブリッジ５００は、データ送受信機５１０と、ターゲットコントローラ（例えば、メモリコントローラ）５２０と、書き込みデータキュー５２５と、書き込みトランザクションキュー５３０とを具備する。南側ブリッジ６００は、データ送受信機６１０と、書き込みバッファサイズレジスタ５３５と、書き込みバッファカウントレジスタ５４０と、書き込みトランザクション生成器５４５と、書き込みトランザクション記録回路５５０と、書き込み比較器５５５とを具備する。
【００２４】
本発明のＶＬＩＮＫ仕様を満たすデータ送受信機５１０は、直接的にＶＬＩＮＫバスに結合する。ＶＬＩＮＫバスを介して、データ送受信機５１０は、多数の書き込みトランザクションを完了するために、データを受信しかつ伝送することができる。ある書き込みトランザクションは、南側ブリッジ６００がＰ２ＣＷコマンドと該Ｐ２ＣＷコマンドに対応するデータとを送信し、かつ次に、北側ブリッジ５００が該Ｐ２ＣＷコマンドに応答するためにＰ２ＣＷＡコマンドの存在を示すものとして定義されている。書き込みトランザクションキュー５３０は、一時的に、多数のデータ長と、全ての書き込みトランザクションの書き込みアドレスとを、順次的に記憶する。書き込みトランザクションキュー５３０の深度（depth）は、北側ブリッジ５００が処理できる書き込みトランザクションの最大総数を決定する。書き込みデータキュー５２５は、ターゲットコントローラ５２０へ送信するための、南側ブリッジ６００からのデータを記憶する。書き込みデータキュー５２５の深度は、北側ブリッジ５００が処理できる書き込みデータの最大数を決定する。ターゲットコントローラ５２０は、データを、書き込みアドレスおよびデータ長にしたがってデータを受信するターゲット（例えば、外部メモリ）へ送信する。前記書き込みアドレスおよびデータ長は、最初に書き込みトランザクションキュー５３０に記憶され、かつ、書き込みデータキュー５２５に記憶されたデータは、該書き込みアドレスおよびデータ長に対応している。第１データ送受信機５１０は、書き込み確認応答信号（Ｐ２ＣＷＡコマンド）を送信して、対応するトランザクションが終了したことを南側ブリッジ６００に知らせる。次に、書き込みデータキュー５２５に記憶された対応データは解放され、かつ、解放された空間は、他のデータを記憶することができる。
【００２５】
前記南側ブリッジ６００の書き込みバッファカウントレジスタ５４０および書き込みバッファサイズレジスタ５３５は、北側ブリッジ５００の書き込みトランザクションキュー５３０に記憶することができる書き込みトランザクションの最大数と、北側ブリッジ５００の書き込みデータキュー５２５に記憶することができるデータの最大数とを、それぞれ記憶する。例えば、書き込みトランザクションキュー５３０において受容可能な書き込みトランザクションの最大数は４であり、かつ、書き込みデータキュー５２５において受容可能なデータの最大数は１６である。書き込みトランザクションの最大数およびデータの最大数（すなわち、書き込みバッファカウントおよび書き込みバッファサイズ）という２つのパラメータについては、ブート（booting）中にＢＩＯＳ（basic input output system）構成により設定することができるか、または、チップセットの設計中に確定することができる。
【００２６】
前記データ送受信機６１０は、全ての書き込みトランザクションを完了すべく、ＶＬＩＮＫバスを介してデータを受信しかつ伝送するために、ＶＬＩＮＫバスと結合されている。データ送受信機６１０がＰ２ＣＷＡコマンドを受信すると、書き込みが成功しかつバッファが解放されたことを示す信号が、現在対応している書き込みトランザクションのデータ長を記憶する空間を解放するために、書き込みトランザクション記録回路５５０へ送信される。次の書き込みトランザクションの新たなデータ長、書き込みアドレス、およびデータが書き込みトランザクション生成器５４５により生成されると、新たなデータ長が、書き込みトランザクション記録回路５５０へ送信される。
【００２７】
前記書き込みトランザクション記録回路５５０は、書き込みデータキュー５２５において用いられるデータ数と、書き込みトランザクションキュー５３０において用いられる書き込みトランザクション数とを計算することが可能である。その理由は、書き込みトランザクション記録回路５５０が、全ての書き込みトランザクションのデータ長を順次的に記憶し、かつ、北側ブリッジ５００により存在を示されるＰ２ＣＷＡが、南側ブリッジ６００により存在を示されるＰ２ＣＷコマンドの順序にしたがって応答されるためである。これにより、南側ブリッジ６００は、北側ブリッジ５００内のキューにおけるバッファの状態を認識することができる。
【００２８】
前記書き込みトランザクション記録回路５５０は、書き込みデータキュー５２５において用いられるデータ数と、書き込みトランザクションキュー５３０において用いられる書き込みトランザクション数とを、書き込み比較器５５５へ送信することができる。次に、書き込み比較器５５５は、受信されたデータを、書き込みバッファサイズレジスタ５３５に記憶された書き込みデータキュー５２５のデータの最大数と、かつ、書き込みバッファカウントレジスタ５４０に記憶された書き込みトランザクションキュー５３０の書き込みトランザクションの最大数と、それぞれ比較する。書き込み比較器５５５により受信されたデータが最大データ数および最大書き込みトランザクション数よりも少なければ、書き込み比較器５５５は、データ送受信機６１０に、他の書き込みトランザクションを送信する能力を承認する。
【００２９】
図６は、本発明による読み出しトランザクションのための好ましい実施形態による制御チップセットのブロック図を概略的に示している。制御チップセットは、例えば、第１制御チップと、第２制御チップとを具備する。パーソナルコンピュータの一般的な利用において、第１制御チップおよび第２制御チップは、北側ブリッジ５００および南側ブリッジ６００であってもよい。第１制御チップ（北側ブリッジ）５００および第２制御チップ（南側ブリッジ）６００は、特別に設計されたバスにより結合されており、該バスの制御信号は、本発明のＶＬＩＮＫである。北側ブリッジ５００は、データ送受信機５１０と、ターゲットコントローラ（例えば、メモリコントローラ）５２０と、読み出しデータキュー６２５と、読み出しトランザクションキュー６３０とを具備する。南側ブリッジ６００は、データ送受信機６１０と、読み出しバッファサイズレジスタ６３５と、読み出しバッファカウントレジスタ６４０と、読み出しトランザクション生成器６４５と、読み出しトランザクション記録回路６５０と、読み出し比較器６５５とを具備する。
【００３０】
本発明のＶＬＩＮＫ仕様を満たすデータ送受信機５１０は、直接的にＶＬＩＮＫバスに結合する。ＶＬＩＮＫバスを介して、データ送受信機５１０は、多数の読み出しトランザクションを完了するために、データを受信しかつ伝送することができる。ある読み出しトランザクションは、南側ブリッジ６００がＰ２ＣＲコマンドを送信し、かつ次に、北側ブリッジ５００が、該Ｐ２ＣＲコマンドに応答するために、Ｐ２ＣＲＡコマンドと、これに対応するデータとを送信するものとして定義されている。読み出しトランザクションキュー６３０は、一時的に、多数のデータ長と、全ての読み出しトランザクションの読み出しアドレスとを、順次的に記憶する。読み出しトランザクションキュー６３０の深度は、北側ブリッジ５００が処理できる読み出しトランザクションの最大数を決定する。読み出しデータキュー６２５は、ターゲットコントローラからの多数の読み出しデータ（該データは、南側ブリッジ６００へ送信される）を一時的に記憶する。読み出しデータキュー６２５の深度は、北側ブリッジ５００が処理できる読み出しデータの最大数を決定する。ターゲットコントローラ５２０は、データを、ターゲット（例えば、外部メモリ）から読み出し、かつ次に、読み出しアドレスおよびデータ長にしたがって、読み出しデータキュー６２５に記憶する。前記読み出しアドレスおよびデータ長は、最初に読み出しトランザクションキュー６３０に記憶され、かつ、読み出しデータキュー６２５に記憶されたデータは、該読み出しアドレスおよびデータ長に対応している。第１データ送受信機５１０は、読み出し確認応答信号（Ｐ２ＣＲＡコマンド）と、読み出しデータキュー６２５に記憶された読み出しデータとを送信する。次に、読み出しデータキュー６２５に記憶された対応データは解放され、かつ、解放された空間は、他のデータを記憶することができる。
【００３１】
前記南側ブリッジ６００の読み出しバッファカウントレジスタ６４０および読み出しバッファサイズレジスタ６３５は、北側ブリッジ５００の読み出しトランザクションキュー６３０に記憶することができる読み出しトランザクションの最大数と、北側ブリッジ５００の読み出しデータキュー６２５に記憶することができるデータの最大数とを、それぞれ記憶する。例えば、読み出しトランザクションキュー６３０および読み出しバッファカウントレジスタ６４０に記憶することができる読み出しトランザクションの最大数は４であり、かつ、読み出しデータキュー６２５に記憶することができるデータの最大数は１６である。読み出しバッファカウントおよび読み出しバッファサイズ、という２つのパラメータについては、ブート中にＢＩＯＳ（basic input output system）構成により設定することができるか、または、チップセットの設計中に確定することができる。
【００３２】
前記データ送受信機６１０は、全ての読み出しトランザクションを完了すべく、ＶＬＩＮＫバスを介してデータを受信しかつ伝送するために、ＶＬＩＮＫバスと結合されている。データ送受信機６１０がＰ２ＣＲＡコマンドを受信すると、読み出しが成功しかつバッファが解放されたことを示す信号が、現在対応している読み出しトランザクションのデータ長を記憶する空間を解放するために、読み出しトランザクション記録回路６５０へ送信される。次の読み出しトランザクションの新たなデータ長、読み出しアドレス、およびデータが読み出しトランザクション生成器６４５により生成されると、新たなデータ長が、読み出しトランザクション記録回路６５０へ送信される。
【００３３】
前記読み出しトランザクション記録回路６５０は、読み出しデータキュー６２５において用いられるデータ数と、読み出しトランザクションキュー６３０において用いられる読み出しトランザクション数とを計算することが可能である。その理由は、読み出しトランザクション記録回路６５０が、全ての読み出しトランザクションのデータ長を順次的に記憶し、かつ、北側ブリッジ５００により存在を示されるＰ２ＣＲＡが、南側ブリッジ６００により存在を示されるＰ２ＣＲコマンドの順序にしたがって応答されるためである。これにより、南側ブリッジ６００は、北側ブリッジ５００内のキューにおけるバッファの状態を認識することができる。
【００３４】
前記読み出しトランザクション記録回路６５０は、読み出しデータキュー６２５において用いられるデータ数と、読み出しトランザクションキュー６３０において用いられる読み出しトランザクション数とを、読み出し比較器６５５へ送信することができる。次に、読み出し比較器６５５は、受信されたデータを、読み出しバッファサイズレジスタ６３５に記憶された読み出しデータキュー６２５のデータの最大数と、かつ、読み出しバッファカウントレジスタ６４０に記憶された読み出しトランザクションキュー６３０の読み出しトランザクションの最大数と、それぞれ比較する。読み出し比較器６５５により受信されたデータが最大データ数および最大読み出しトランザクション数よりも少なければ、読み出し比較器６５５は、データ送受信機６１０に、他の読み出しトランザクションを開始する能力を通知する。
【００３５】
前記北側ブリッジおよび南側ブリッジは、それぞれ、第１制御チップセットおよび第２制御チップセットであり、かつ、これらのコマンドは、データを読み出すかまたは書き込むべく北側ブリッジを制御するために、南側ブリッジにより送信される。しかしながら、当業者には明白なように、北側ブリッジおよび南側ブリッジの両方が対応する構造を有することができ、かつこれにより、これらのコマンドは、南側ブリッジまたは北側ブリッジにより送信されることに制約されるものではない。すなわち、南側ブリッジおよび北側ブリッジが、それぞれ、第１制御チップセットおよび第２制御チップセットであってもよい。
【００３６】
上述の説明は、北側ブリッジおよび南側ブリッジがＶＬＩＮＫバスを用いるための権限を得る方法について述べてはいない。以下のパラグラフは、本発明による、チップセット間におけるアービトレーション方法について述べている。本発明によれば、第１制御チップは、通常は、バスを用いるための権限を制御するが、第２制御チップは、バスを用いるための、より高い優先順位を有する。第２制御チップが、バスを用いるための要求信号の存在を示す場合に、第１制御チップは、直ちにバスの権限を第２制御チップに対して解放する必要があるか、または、該第１制御チップが現在のバスコマンドサイクルを終了した後に、直ちにバスの権限を第２制御チップに対して解放する必要がある。ＶＬＩＮＫバスのような待機サイクルを伴わないバス仕様とともに、バスを用いる権限をアービトレートすることを、迅速に、かつ、誤りなしに行うことができる。
【００３７】
本発明は、制御チップセット内におけるバスアービトレーションの方法に向けられている。制御チップセットは、（北側ブリッジのような）第１制御チップと、（南側ブリッジのような）第２制御チップとを具備することができる。データは、第１制御チップと第２制御チップとの間で、待機サイクルを伴わない（ＶＬＩＮＫバスのような）バスを介して伝送される。このバスは、さらに、図３〜図６に示されるような共通の二方向バスを具備する。
【００３８】
前記第２制御チップは、一定のクロック数と、コマンドが二方向バスを用いるクロック数とを有する全てのバスコマンドを知る必要がある。第２制御チップが、第１制御チップに対して（読み出しコマンドのような）第１コマンドの存在を示すときには、第２制御チップは、確認応答コマンドのクロック数と、第１制御チップにより存在を示される、第１コマンドに対応するデータのクロック数とを記憶する必要があり、この場合には、確認応答コマンドのクロック数および第１コマンドにより応答されるデータのクロック数は、第１コマンドに包含される情報により決定される。例えば、南側ブリッジが北側ブリッジへＰ２ＣＲコマンドの存在を示せば、データ長が南側ブリッジにより検出され、かつ、ＶＬＩＮＫバスは、待機サイクルを必要とせず、したがって、南側ブリッジは、Ｐ２ＣＲＡコマンドのクロック数および北側ブリッジにより送信されるデータのクロック数を知ることができる。
【００３９】
前記第２制御チップがバスを用いる必要があるときには、該第２制御チップは、直接的にバス要求信号の存在を示す。第１制御チップがバス要求信号を検出する際に、かつ、第１制御チップが二方向バスを現在用いていなければ、第１制御チップは、バスの権限を第２制御チップへ解放し、かつ、二方向バスを駆動しない。しかし、第１制御チップが二方向バスを現在用いていれば、第１制御チップは、現在のバスコマンドおよびトランザクションを終了した後に、バスの権限を第２制御チップへ直ちに解放する。
【００４０】
これに対し、第２制御チップがバス要求信号の存在を示せば、該第２制御チップは、二方向バスが第１制御チップにより現在用いられているかどうかを検出する。第１制御チップが二方向バスを現在用いていることを第２制御チップが検出しなければ、該第２制御チップは、所定のサイクルだけ待機し、かつ、二方向バスを連続的に検出する。次に、第２制御チップは、所定の待機サイクルの後に、二方向バスを駆動する。所定の待機サイクルの目的は、二方向バスを介して伝送された信号を遅延させることができることである。第１制御チップによりコマンドの存在が示されている間に該第１制御チップがバスを用いていないことを第２制御チップが検出することを回避されするために、さらに、第１制御チップおよび第２制御チップが二方向バスを同時に駆動することを回避するために、バスの権限を転送するための１クロック周期のターンアラウンドサイクルが存在する必要がある。
【００４１】
第１制御チップがバスを現在用いていることを第２制御チップが検出すると、南側ブリッジは、何のバスコマンドが第１制御チップにより現在実行されているのかと、バスコマンドを完了するために必要とされるクロック数とを検出することができる。次に、第２制御チップは、第１制御チップが現在のバスコマンドを完了した後にターンアラウンドサイクルだけ待機することにより、バスを駆動する。ＧＮＴコマンドを有する従来のバスアービトレーション方法においては、第１制御チップは、第２制御チップへＧＮＴコマンドを駆動して、第２制御チップがバスを駆動し始めることができることを承認し、かつ次に、第２制御チップは、第１制御チップにより送信されたＧＮＴコマンドを該第２制御チップが検出した後のターンアラウンドサイクル後に、バスを駆動する。図７（Ａ）を参照すると、周期Ｔ１において、第２制御チップは、要求信号ＤＲＥＱの存在を示す。周期Ｔ２において、第２制御チップは、信号ＲＥＱＳＴＢの存在を示す。第１制御チップは、周期Ｔ４において、要求信号を受信し、かつ次に、バスを用いることができることを第２制御チップに承認するために、直ちにＧＮＴコマンドの存在を示す。第１制御チップは、周期Ｔ５において、バスの駆動を停止する。周期Ｔ６において、第２制御チップは、ＧＮＴ信号を受信し、かつ次に、バスを駆動し始める。これにより、バスの権限をアービトレートするための時間は、従来の方法にしたがってＧＮＴコマンドを用いることにより浪費される。
【００４２】
以下は、本発明の方法によるタイミングを説明するための幾つかの例である。図７（Ｂ）および図８〜図１１は、バスの権限に対する許可と、バスの権限に関する要求とに関係するタイミング図を概略的に示している。以下の例において、南側ブリッジは、バスの使用のために要求信号の存在を示す。信号ＤＲＥＱは、南側ブリッジがバスを用いることを要求する内部信号を表す。信号ＤＲＥＱのハイレベルは、南側ブリッジがバスを内部的に用いることを要求していることを表す。信号ＲＥＱＳＴＢもまた内部信号であり、この信号においては、南側ブリッジが、ＲＥＱＳＴＢがハイレベルである場合に、アップリンクコマンド信号線ＵＰＣＭＤを用いて、ビットタイム０において、ＲＥＱ信号の存在を示す。信号ＨＯＳＴＯＥまたは信号ＨＵＢＯＥのハイレベルは、北側ブリッジまたは南側ブリッジが、バスを駆動させるためのバスの権限を得ることをそれぞれ表す。
【００４３】
図７（Ｂ）を参照すると、周期Ｔ１において、信号ＤＲＥＱは、南側ブリッジがバスを用いる必要があることを意味するハイレベルに上昇する。周期Ｔ２において、要求ストローブ信号ＲＥＱＳＴＢは、ハイレベルに上昇し、かつ、南側ブリッジは、ＵＰＣＭＤを用いて、ビットタイム０において、真の要求信号ＲＥＱの存在を示す。要求ストローブ信号ＲＥＱＳＴＢは、伝送の遅延に起因して、周期Ｔ４において受け入れられる。したがって、北側ブリッジがコマンドサイクルを開始すれば、該北側ブリッジは、周期Ｔ３において、ダウンリンクコマンドＤＮＣＭＤの存在を示すことができる。また、南側ブリッジは、周期Ｔ５まで、コマンドサイクルを検出する。北側ブリッジがダウンリンクコマンドの存在を示さなければ、南側ブリッジは、周期Ｔ５において、ＢＥ／ＡＤバスを用いる権限を有し、かつ、アップリンクコマンドの存在を示し、かつ、ＢＥ／ＡＤバスを駆動する。この例においては、南側ブリッジは、周期Ｔ２において真のＲＥＱコマンドの存在を示し、かつ、ターンアラウンドサイクルを具備する所定のサイクル（３つのクロック数）だけ待機した後に、周期Ｔ５においてＢＥ／ＡＤバスを駆動する。
【００４４】
図８を参照すると、周期Ｔ１において、信号ＤＲＥＱは、南側ブリッジがバスを用いる必要があることを意味するハイレベルに上昇する。周期Ｔ２において、信号ＲＥＱＳＴＢはハイレベルに上昇し、かつ次に、南側ブリッジは、アップリンクコマンド信号線ＵＰＣＭＤを介して、ビットタイム０において、真の要求信号ＲＥＱの存在を示す。しかしながら、北側ブリッジは、周期Ｔ３において、Ｐ２ＣＲＡコマンドのようなダウンリンクコマンドの存在を示す。トランザクションに対応するデータ長が８ダブルワード（８ＤＷ）であると仮定する。８ＤＷデータは、周期Ｔ３〜Ｔ１０の間に転送される。南側ブリッジは、トランザクションのクロック数を知り、かつ、北側ブリッジがトランザクションの完了後にバスの権限を解放することを確認し、かつこれにより、南側ブリッジは、周期Ｔ１１におけるターンアラウンドサイクル後の周期Ｔ１２において、ＢＥ／ＡＤバスを駆動することができる。
【００４５】
図９を参照すると、周期Ｔ１において、ＤＲＥＱは、南側ブリッジがバスを用いる必要があることを表すハイレベルとなる。周期Ｔ２において、要求ストローブ信号ＲＥＱＳＴＢは、ハイレベルに変化し、かつ、南側ブリッジは、アップリンクコマンド信号線ＵＰＣＭＤを介して、ビットタイム０において、真の要求信号ＲＥＱの存在を示す。しかしながら、北側ブリッジは、例えばＣ２ＰＲコマンドのようなダウンリンクコマンドの存在を示す。Ｃ２ＰＲコマンドのクロック数は、１クロック周期として固定され、周期Ｔ３において実行される。南側ブリッジは、一定の実行周期を有する全てのコマンドのクロック数を知り、かつ、北側ブリッジがバスの権限を解放することを確認する。これにより、南側ブリッジは、ターンアラウンドサイクル後の周期Ｔ５において、二方向ＢＥ，ＡＤバスを駆動することができる。
【００４６】
図１０を参照すると、ＲＥＱＳＴＢがハイレベルであり、かつ、南側ブリッジがバスを用いることを許可されたと仮定する。南側ブリッジは、アップリンクコマンドＵＰＣＭＤの存在を示し、かつ、二方向バスを駆動し始める。好ましい実施形態においては、２つの連続的なＰ２ＣＲコマンドの存在が示され、かつ、周期Ｔ５，Ｔ６の間にデータが転送される。信号ＲＥＱＳＴＢは、周期Ｔ６において、ローレベルに変化する。すなわち、南側ブリッジがなおもバスを用いかつＰ２ＣＲコマンドの存在を示すが、要求信号は、周期Ｔ６のビットタイム０において取り消されている。したがって、北側ブリッジは、南側ブリッジが、周期Ｔ８前にバスの使用要求を停止したことを検出し、かつ、周期Ｔ８においてＢＥ／ＡＤ信号線を駆動する。
【００４７】
図１１を参照すると、周期Ｔ１において、北側ブリッジは、読み出しコマンドＣ２ＰＲの存在を示す。南側ブリッジにより準備されたデータの用意ができたときに、南側ブリッジは、信号ＲＥＱＳＴＢをハイレベルとなるように駆動する。
所定の３クロック数だけ待機した後に、南側ブリッジは、ＡＤバスを駆動して、周期Ｔ７において、北側ブリッジが要求するデータを送信し、かつ同時に、ＵＰＣＭＤ信号線上でＣ２ＰＲＡコマンドの存在を示す。さらに、周期Ｔ７のビットタイム０において存在を示された要求信号ＲＥＱは取り消され、かつ、北側ブリッジは、周期Ｔ９において、バスを用いる権限を得る。
【００４８】
本発明の範囲から逸脱することなく、本発明の構成に対し、種々の変更がなされ得ることが、当業者には明白である。前述のことに鑑みて、本発明の修正および変更が、冒頭の特許請求の範囲およびそれらに均等なものの範囲内に収まれば、本発明は、前記修正および変更を包含するように意図されている。
【図面の簡単な説明】
【図１】従来のコンピュータシステムの種々の構成要素を接続しているＰＣＩバスシステムを示すブロック図である。
【図２】読み出し動作中のＰＣＩバスインターフェースにおける種々の信号を示すタイミング図である。
【図３】本発明の実施形態による、制御チップセットモジュール内部の制御チップ間におけるデータトランザクションにおいて用いられる制御信号を示すブロック図である。
【図４】本発明による、コマンド符号化のための４つのビットタイムを有するクロック周期を示す図である。
【図５】本発明による書き込みトランザクションのための好ましい実施形態による制御チップセットを概略的に示すブロック図である。
【図６】本発明による読み出しトランザクションのための好ましい実施形態による制御チップセットを概略的に示すブロック図である。
【図７】（Ａ）は、従来のバスアービトレーション方法を示すタイミング図であり、（Ｂ）は、本発明によるバスアービトレーション方法の例を概略的に示す図である。
【図８】本発明によるバスアービトレーション方法の例を概略的に示す図である。
【図９】図８と同様の図である。
【図１０】図８と同様の図である。
【図１１】図８と同様の図である。
【符号の説明】
２４  中央処理装置
３０  北側ブリッジ
３２  南側ブリッジ
３６  メモリ
５００  北側ブリッジ
５１０  データ送受信機
５２０  ターゲットコントローラ
５２５  書き込みデータキュー
５３０  書き込みトランザクションキュー
５３５  書き込みバッファサイズレジスタ
５４０  書き込みバッファカウントレジスタ
５４５  書き込みトランザクション生成器
５５０  書き込みトランザクション記録回路
５５５  書き込み比較器
６００  南側ブリッジ
６１０  データ送受信機
６２５  読み出しデータキュー
６３０  読み出しトランザクションキュー
６３５  読み出しバッファサイズレジスタ
６４０  読み出しバッファカウントレジスタ
６４５  読み出しトランザクション生成器
６５０  読み出しトランザクション記録回路
６５５  読み出し比較器
【図１】
0004583590.tif 000005
【図２】
0004583590.tif 000006
【図３】
0004583590.tif 000007
【図４】
0004583590.tif 000008
【図５】
0004583590.tif 000009
【図６】
0004583590.tif 000010
【図７】
0004583590.tif 000011
0004583590.tif 000012
【図８】
0004583590.tif 000013
【図９】
0004583590.tif 000014
【図１０】
0004583590.tif 000015
【図１１】
0004583590.tif 000016