(57)【特許請求の範囲】
【請求項１】
バスと第１制御チップと第２制御チップとを具備する制御チップセットであって、
第１制御チップは、
バスへ結合され、リード／ライトトランザクションを完了するためにデータ信号を受信しかつ送信する第１データトランシーバと、
第１データトランシーバへ結合され、リード／ライトトランザクションのデータを一時的に記憶するリード／ライトデータ待ち行列と、
第１データトランシーバへ結合され、リード／ライトトランザクションのデータのデータ長とアドレスとを一時的に記憶するリード／ライトトランザクション待ち行列と、
リード／ライトデータ待ち行列とリード／ライトトランザクション待ち行列とへ結合されたターゲットコントローラと
を具備し、
ターゲットコントローラは、リード／ライトトランザクション待ち行列内に記憶されたリード／ライトアドレスと第１の記憶されたリード／ライトトランザクションに対応するリード／ライトデータ待ち行列内に記憶されたデータとに従って、データをターゲットデバイスへ送り、
そして、第１データトランシーバは、リード／ライトアクノレッジ信号をアサートし、
リード／ライトアドレスと該リード／ライトアドレスに対応するリード／ライトデータ待ち行列とが解放され、
第２制御チップはバスへ結合され、
第２制御チップは、
リード／ライトデータ待ち行列内で許可されるデータの最大数を記憶するリード／ライトバッファサイズレジスタと、
リード／ライトトランザクション待ち行列内で許可されるトランザクションの最大数を記憶するリード／ライトバッファ計数レジスタと、
バスへ結合され、リード／ライトトランザクションを完了するためにバスを通してデータ信号を受信しかつ送信し、リード／ライトアクノレッジ信号を受信するとバッファ解放信号をアサートする第２データトランシーバと、
第２データトランシーバへ結合され、リード／ライトトランザクションのデータ長とリード／ライトアドレスとデータとを生成するリード／ライトトランザクション発生器と、
第２データトランシーバとリード／ライトトランザクション発生器とへ結合され、リード／ライトトランザクションのデータ長を一時的に記憶し、バッファ解放信号に従ってリード／ライトデータ待ち行列の使用可能なデータ数とリード／ライトトランザクション待ち行列内の許容可能なトランザクション数とを計算するリード／ライト記録回路と、
第２データトランシーバとリード／ライトバッファサイズレジスタとリード／ライトバッファ計数レジスタとリード／ライト記録待ち行列回路とへ結合され、次のリード／ライトトランザクションに対応する他の情報を送ることを第２データトランシーバへ通知するリード／ライト比較器と
を具備する
ことを特徴する制御チップセット。
【請求項２】
バスは、基準電圧信号線とインピーダンス比較信号線とアドレス／データバスと長／バイトイネーブル信号線とアップリンクコマンド信号線とアップリンクストローブ信号線とダウンリンクコマンド信号線とダウンリンクストローブ信号線とクロック信号線とを具備する
ことを特徴する請求項１記載の制御チップセット。
【請求項３】
アップリンクストローブ信号線とダウンリンクストローブ信号線との周波数は、共に、クロック信号の２倍の周波数である
ことを特徴する請求項１記載の制御チップセット。
【請求項４】
第１制御チップと第２制御チップとは、それぞれ、北側ブリッジと南側ブリッジとであり、
ターゲットコントローラはメモリコントローラであり、
バスはＶＬＩＮＫバスである
ことを特徴する請求項１記載の制御チップ。
【請求項５】
深さｎを有するトランザクション待ち行列と深さｍを有するデータ待ち行列とを具備する第１チップと、
トランザクション待ち行列とデータ待ち行列とのステータスを記録し、もし、未処理のトランザクションの量がｎより少なく、かつ、データの量がｍより少ないならば、次のトランザクションが開始される第２チップと
を具備する
ことを特徴する制御チップセット。
【請求項６】
第１チップと第２チップとは、それぞれ、コンピュータマザーボードの北側ブリッジと南側ブリッジとである
ことを特徴する請求項５記載の制御チップ。
【請求項７】
バスによって接続された第１デバイスと第２デバイスとの間において、複数のリード／ライトトランザクションを完了するデータトランザクション方法であって、
リード／ライトトランザクションの最大実行数と各々のリード／ライトトランザクションによって送受信されるデータの最大データ数とを提供する過程と、
リード／ライトトランザクションに対応するリード／ライトアドレスとリード／ライトデータとについて、データの最大データ数を超えないリード／ライトデータに対してリード／ライトアドレスがアサートされると、リード／ライトトランザクションを実行する過程と、
リード／ライトアクノレッジ信号をアサートする過程と、
リード／ライトトランザクションに対応するリード／ライトアドレスとリード／ライトデータ待ち行列内に記憶されたデータとを解放し、それらの遂行されたトランザクションが開放される過程と、
次のリード／ライトトランザクションのデータ長とリード／ライトアドレスと対応データとを生成する過程と、
リード／ライトアクノレッジ信号に従って、リード／ライトデータのデータバッファ数とリード／ライトトランザクションのリード／ライトトランザクション数とを計算する過程と、
データバッファ数とリード／ライトトランザクション数とリード／ライトトランザクションの総トランザクション数とリード／ライトデータの最大データ数とに従って、次のリード／ライトトランザクションのデータ長とリード／ライトトランザクションとリード／ライトアドレスと対応データとを決定する過程と
を具備する
ことを特徴するデータトランザクション方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、バストランザクション方法に関し、かつ、より詳細には、コンピュータシステム内の制御チップセットの間におけるデータトランザクション方法と、制御チップセットの間における調停方法とに関する。
【０００２】
【従来の技術および発明が解決しようとする課題】
図７は、従来のコンピュータシステムの様々なコンポーネントを接続するＰＣＩバスシステムを示す。図７に示されるように、中央処理装置１０は、ホストブリッジ１２を介して、ＰＣＩバス１４へ結合される。グラフィックアダプタ１６ａと拡張バスブリッジ１６ｂとＬＡＮアダプタ１６ｃとＳＣＳＩホストバスアダプタ１６ｄのようなＰＣＩ互換周辺デバイスのマスタコントローラもまた、ＰＣＩバス１４へ結合される。各マスタコントローラは、ＰＣＩバス１４の使用を要求するリクエスト（ＲＳＴ）信号を送出する。ホストブリッジ１２は、ＰＣＩバス１４が利用可能なときに、コントローラへ許可（ＧＮＴ）信号を送出するアービトレータとして働く。
【０００３】
（マスタコントローラまたは北側ブリッジのような）ＰＣＩ互換デバイスの間におけるデータ送信は、いくつかのインターフェース制御信号によって制御される。サイクルフレーム（ＦＲＡＭＥ）は、イニシエータ（マスタコントローラまたは北側ブリッジ）から発せられる。イニシエータは、データアクセス動作の初期化と該動作の継続期間とを示す。ＦＲＡＭＥ信号が送出されるやいなや、ＰＣＩバスを介するデータトランザクションが始まる。“Ｌ”のＦＲＡＭＥ信号は、「データトランザクションが進行中である」ということを示す。データトランザクションの開始の後、アドレスバスＡＤが、アドレスサイクルの間、有効アドレスを送出する。暫くすると、イニシエータによって要求されたデータトランザクションモードをターゲットデバイスに通知するために、コマンド／バイトイネーブル（ＣＢＥ〔３：０〕）信号線が、（ＰＣＩ仕様書に従って）有効バスコマンドを送出する。一般的に、４ビットのコマンド／バイトイネーブル信号線は、最大１６個までの異なるコマンドをコード化する。各コマンドは、ＰＣＩ仕様書に、詳細に定義されている。有効アドレスが送出された後、データサイクルが始まる。該データサイクルでは、データが、アドレスバスＡＤを通して、送信される。暫くすると、バイトイネーブル信号が送られ、それによって、データは送信されることができる。ＦＲＡＭＥ信号の送信が停止すると、最後の組のデータが送信され、かつ、それ以上処理は行われない。開始デバイスとターゲットデバイスとのデータトランザクションにおける準備完了を示すために、イニシエータ準備完了（ＩＲＤＹ）信号とターゲット準備完了（ＴＲＤＹ）信号とが、２つ１組で、システムによって使用される。データリード動作では、ＩＲＤＹ信号が、「イニシエータが、要求されたデータを受信する準備を完了した」ということを示す。データライト動作では、ＴＲＤＹ信号が、「ターゲットデバイスが、要求されたデータを受信する準備を完了した」ということを示す。停止（ＳＴＯＰ）信号は、イニシエータからのデータトランザクションの終了を要求するために、ターゲットデバイスによって使用される。
【０００４】
図８は、リード動作の間におけるＰＣＩバスインターフェース内の様々な信号を示すタイミング図である。データがＰＣＩバスを介して送信される期間は、バストランザクションサイクル２０として知られる。バストランザクションサイクル２０は、アドレスサイクル２２といくつかのデータサイクル（例えば、２４ａと２４ｂと２４ｃ）とを具備する。各データサイクル２４ａ／ｂ／ｃは、更に、ウエイトサイクル２６ａ／ｂ／ｃとデータ転移サイクル２８ａ／ｂ／ｃとに分割されることができる。以下は、リード動作の間におけるＰＣＩバスインターフェースの簡単な説明である。以下の説明は、ＰＣＩ仕様書に従った制御信号を図解するためのものである。
【０００５】
サイクルＴ１では、イニシエータ（マスタ）が、ＰＣＩバスへアクセスするために、リクエスト信号ＲＥＱを送る。このとき、もし、高い優先度を有する他のデバイスがＰＣＩバスへのアクセスを要求していないならば、サイクルＴ２の間において、メインブリッジ（アービトレータ）は、「イニシエータがＰＣＩバスへアクセスする」ということを許可するために、許可信号ＧＮＴを送る。サイクルＴ３の間において、データトランザクションの開始を示すために、ＦＲＡＭＥ信号がイニシエータによって送られ、一方、トランザクションのターゲットデバイスの位置を示すために、開始アドレスがアドレスバスＡＤ線上に置かれる。暫くすると、リードコマンドが、ＣＢＥ線を通して送信される。リードコマンドの送付の後、バイトイネーブル信号が、ＣＢＥ線上に置かれる。バイトイネーブル信号は、（２４ａと２４ｂと２４ｃとを含む）データサイクルの間に渡って送られる。サイクルＴ４の間において、イニシエータは、イニシエータ準備完了信号ＩＲＤＹを提示する。ＩＲＤＹは、データ送信に対する準備完了を示す。しかしながら、ターゲットデバイスは、未だ、準備を完了していない。故に、ターゲットデバイスは、イニシエータがデータサイクル２４ａのウエイトサイクル２６ａにおいてアイドル状態にある間、データの比較を続ける。サイクルＴ５の間において、ターゲットデバイスは、送信に必要な全てのデータの比較を完了し、それによって、ターゲット準備完了ＴＲＤＹ信号を送出する。故に、データサイクル２８ａにおいて、ＩＲＤＹとＴＲＤＹとの両方が出力され、かつ、イニシエータが、ターゲットデバイスからデータを読み始める。サイクルＴ６の間において、ターゲットデバイスは、ターゲット準備完了ＴＲＤＹ信号をもはや発せず、第１組のデータの送信が完了する。その間に、他の組のデータが、ターゲットデバイスによって準備される。再び、イニシエータが、データサイクル２４ｂのウエイトサイクル２６ｂにおいて、アイドル状態になる。サイクルＴ７の間において、ターゲット準備完了ＴＲＤＹ信号が、「第２組のデータの準備が完了した」ということを示すために、再び発せられる。サイクル２８ｂにおいて、ＩＲＤＹとＴＲＤＹとの両方が発せられ、かつ、イニシエータが、ターゲットデバイスからデータを読み始める。もし、ターゲットデバイスから全てのデータを読むのに十分な時間をイニシエータが有しないならば、ＩＲＤＹ信号は終了する。ＴＲＤＹ信号は未だ出力されるので、ウエイトサイクル２６ｃが、イニシエータによってアクティブ状態にされる。サイクルＴ９におけるように、イニシエータが再び準備を完了するやいなや、ＩＲＤＹ信号は再び発せられる。ＩＲＤＹ信号とＴＲＤＹ信号との両方が発せられると、イニシエータは、データ転移サイクル２８ｃの間において、ターゲットデバイスからデータを読み、それによって、信号リード動作が完了する。
【０００６】
従来のＰＣＩ仕様書に従って適切なデータトランザクションを実行するためには、複雑な制御信号とウエイトステートと調停ステップとが使用されなくてはならない。ＰＣＩ仕様書によると、通常、約４０〜５０個の信号送信ピンが必要とされる。一般に、制御チップセットの間における内部トランザクションに対して、複雑な手続は不必要である。故に、制御チップセットの間における内部トランザクションを高速化するためには、（従来のＰＣＩ仕様書に忠実な）簡単化されたトランザクション方法が必要とされる。
【０００７】
しかしながら、ＰＣの制御チップの間におけるトランザクションは、一般的に、ＰＣＩ仕様書によって提供される複雑な機能を全て使用しているわけではない。制御チップ間の性能は、大抵、不必要な手続によって減少される。デバイスの統合が増大すると、制御チップは単一チップへと統合されるかもしれず、かつ、より多くの機能が提供される。例えば、ＣＰＵと北側ブリッジと南側ブリッジとが、単一チップ内へ統合的に形成される。故に、チップパッケージのピンは、より重要になる。制御チップの間におけるトランザクションの速度を増大するためには、制御チップの間における使用のための簡単かつ明細な仕様書が要求される。
【０００８】
【課題を解決するための手段】
本発明は、制御チップと、制御チップセット内の制御チップ間のデータトランザクション方法と、制御チップセット内の制御チップ間のバス調停方法とを提供する。故に、制御チップセットの性能が増大し、かつ、制御チップ間の信号線のタイプと数とが減少する。
【０００９】
本発明は、制御チップ間のデータトランザクション方法を提供する。データまたはコマンドは、如何なる待機または停止または再試行をも伴わずに、連続的に送信される。
【００１０】
本発明は、制御チップセット内の制御チップ間のデータトランザクション方法を提供する。該方法では、待機停止／再試行のためのサイクルが減少する。
【００１１】
本発明は、調停時間と許可時間とを減少させる（制御チップ間の）バス調停方法を提供する。
【００１２】
本発明によると、制御チップセットの制御チップのデータバッファは、固定されたサイズと量とを有する。加えて、リード／ライトコマンドによって、リード／ライトアクノレッジコマンドが順次アサートされる。それによって、制御チップは、他の制御チップ内のバッファのステータスを検出できる。制御チップがコマンドをアサートする場合、対応するデータが、前もって準備されていなくてはならない。故に、待機ステータスとデータトランザクションサイクルと停止／再試行プロトコルとを提供するための信号線が省略されることができる。従って、コマンドまたはデータが、待機または停止または再試行を伴わずに、連続的に送信されることができ、かつ、性能が増大する。
【００１３】
「前述の一般的な記載と以下の詳細な記載とは、一例であり、かつ、請求されるような本発明の更なる説明を提供することを意図する」ということが理解されるべきである。
【００１４】
【発明の実施の形態】
本発明の更なる理解を提供するために、添付図面が伴われる。添付図面は、この明細書の一部に組み込まれ、かつ、この明細書の一部を構成する。図面は、本発明の実施形態を図解し、かつ、説明を伴って本発明の原理を説明する。添付図面は以下の通りである。
図１は、この発明の実施形態において、制御チップセットモジュール内部の制御チップセットの間におけるデータトランザクションで使用される制御信号を示すブロック図である。
図２は、この発明において、コマンドコード化のための４個のビットタイムを含むクロックサイクルを示すタイミング図である。
図３は、本発明の１つの好ましい実施形態によるライトトランザクションのための制御チップセットのブロック図を概要的に図解する。
図４は、本発明によるライトトランザクションのタイミング図の一例を示す。図５は、本発明の１つの好ましい実施形態によるリードトランザクションのための制御チップセットのブロック図を概要的に図解する。
図６は、本発明によるリードトランザクションのタイミング図の一例を示す。図７は、従来のコンピュータシステムの様々なコンポーネントを接続するＰＣＩバスシステムを示すブロック図である。
図８は、リード動作の間におけるＰＣＩバスインターフェース内の様々な信号を示すタイミング図である。
【００１５】
本発明は、制御チップセットの間または制御チップセット内のチップとセットの間におけるトランザクション方法と調停方法とを提供する。該方法は、制御チップセットの間におけるデータトランザクションの効率を増進する。即ち、制御チップセットの間におけるデータトランザクションプロセスが簡単化される。制御チップセット（例えば、コンピュータシステム内の北側ブリッジと南側ブリッジ）が、本発明による好ましい実施形態を説明するための一例として使用される。従来のＰＣＩ仕様書の定義では、４５本のコマンド信号線が、南側ブリッジと北側ブリッジとの間における通信のために必要とされる。しかしながら、本発明の好ましい実施形態では、１６個の信号（即ち、１６本の信号線）のみが要求される。本発明の新たに定義される１６個のコマンドは、ＶＬＩＮＫコマンドと名付けられる。
【００１６】
図１と表１とを参照すると、図１は、本発明の好ましい実施形態による制御チップセットのブロック図を示す。図１には、北側ブリッジと南側ブリッジとの間における制御信号線が詳細に図解される。表１には、図１に示される各制御信号線が列挙される。制御チップセットは、例えば、南側ブリッジ３０と北側ブリッジ３２とを具備する。本発明では、南側ブリッジ３０と北側ブリッジ３２との間における信号線（信号）が、４５本の信号線（信号）から１６本の信号線（信号）減少される。故に、他のピンは、チップセットの機能を増進する他の目的に対して使用されることができる。
【００１７】
本発明では、１６個の信号は、クロック信号（ＣＬＫ）とＡＤ〔７：０〕とＤＮＳＴＢとＵＰＳＴＢとＤＮＣＭＤとＢＥとＶＲＥＦとＣＯＭとを具備する。図１と表１とに示されるように、元のＰＣＩ仕様書によって定義されるデータおよびアドレスバス（ＡＤバス）は、確保されているが、８本の双方向信号線に減少される。ＣＢＥ信号線とＦＲＡＭＥ信号線とＩＲＤＹ信号線とＴＲＤＹ信号線とＳＴＯＰ信号線とＤＥＶＳＥＬ信号線とＲＥＱ信号線とＧＮＴ信号線とは、双方向バイトイネーブル（ＢＥ）信号線とアップリンクコマンド信号線ＵＰＣＭＤとアップリンクストローブ信号線ＵＰＳＴＢとダウンリンクコマンド信号線ＤＮＣＭＤとダウンリンクストローブ信号線ＤＮＳＴＢとへ簡単化される。アップリンクコマンド信号線ＵＰＣＭＤとアップリンクストローブ信号線ＵＰＳＴＢとの両方は、南側ブリッジによって駆動される。ダウンリンクコマンド信号線ＤＮＣＭＤとダウンリンクストローブ信号線ＤＮＳＴＢとの両方は、北側ブリッジによって駆動される。ＶＲＥＦ信号は、基準電圧を参照し、かつ、ＣＯＭＰ信号は、インピーダンス比較を参照する。ＣＬＫ信号は、６６ＭＨｚクロック信号である。該信号は、北側ブリッジによっても南側ブリッジによっても始められない。北側ブリッジ３２と南側ブリッジ３０との各々は、個別のコマンド信号線（ＤＮＣＭＤとＵＰＣＭＤ）を駆動する。ＤＮＣＭＤとＵＰＣＭＤとの両方は、バスコマンドをアサートできる。加えて、もし、ある制御チップによって、バスコマンドがアサートされ、かつ、バス権利が取得されるならば、制御チップは、アドレスをＡＤバス上へ送ることができ、かつ、現在コマンドに対応するデータ長をＢＥ信号線上へを送ることができる。または、制御チップは、データをＡＤバス上へ送ることができ、かつ、該データに対するバイトイネーブル信号をＢＥ信号線上へ送ることができる。
【００１８】
【表１】
0003602435.tif 000002
【００１９】
図２は、本発明によるデータの転移について、バスクロック信号（ＣＬＫ）とストローブ信号（ＳＴＢ）とデータ線のビットタイムとの間におけるタイミング関係を図解する。図２に示されるように、１クロック周期は、２ストローブクロック周期に等しい。即ち、アップリンクストローブ信号／ダウンリンクストローブ信号の周波数は、バスクロック信号の２倍の周波数である。ストローブ信号の立ち上がりエッジと立ち下がりエッジとによって、４個のビットタイム０〜３が定義される。故に、各データライン上で４個のビットタイム０〜３を使用することによって４ビットデータが取得され、かつ、４個のビットタイム０〜３からバスコマンドが符号化される。従って、各クロック周期の間において８本のデータラインを使用して、３２ビットデータが取得される。該３２ビットデータは、従来のＰＣＩ仕様書において３２ビット線を使用して転移されるデータに等しい。加えて、もし、ＢＥ信号線がデータ長を送信するならば、１〜１６（４ビット）のデータ長情報が１クロック周期内で取得される。
【００２０】
様々なタイプのデータトランザクションが、アップリンクコマンドＵＰＣＭＤとダウンリンクコマンドＤＮＣＭＤとによって定義される。南側ブリッジによって駆動されるアップリンクコマンドＵＰＣＭＤは、リードアクノレッジコマンド（ＮＢからＳＢへ）Ｃ２ＰＲＡとライトアクノレッジコマンド（ＮＢからＳＢへ）Ｃ２ＰＷＡとリードコマンドＰ２ＣＲ（ＳＢからＮＢへ）とライトコマンド（ＳＢからＮＢへ）Ｐ２ＣＷ等を具備する。アップリンクコマンドとビットタイム符号化との間における関係は、表２に列挙される。リクエスト信号ＲＥＱは、ビットタイム０でアサートされ、かつ、他のバスコマンドとオーバーラップしない。故に、ＲＥＱ信号は、如何なる時間にでも、かつ、バスコマンドがアサートされる周期と同じくロック周期にでさえ、送られることができる。北側ブリッジによって駆動されるダウンリンクコマンドＤＮＣＭＤは、入力／出力リードコマンド（ＮＢからＳＢへ）Ｃ２ＰＩＯＲとメモリリードコマンド（ＮＢからＳＢへ）Ｃ２ＰＭＲと入力／出力ライトコマンド（ＮＢからＳＢへ）Ｃ２ＰＩＯＷとメモリライトコマンド（ＮＢからＳＢへ）Ｃ２ＰＭＷとリードアクノレッジコマンド（ＳＢからＮＢへ）Ｐ２ＣＲＡとライトアクノレッジコマンド（ＳＢからＮＢへ）Ｐ２ＣＷＡなどを具備する。ダウンリンクコマンドとビットタイム符号化との間における関係は、表３に列挙される。本発明では、許可信号ＧＮＴは、定義されず、かつ、必要とされない。
【００２１】
北側ブリッジと南側ブリッジとによってアサートされるコマンドは、互いに対応している。南側ブリッジが多数のＰ２ＣＲおよび／またはＰ２ＣＷを連続的にアサートすると、北側ブリッジは、該Ｐ２ＣＲコマンドおよび／または該Ｐ２ＣＷコマンドに応答して、対応するＰ２ＣＲＡコマンドおよび／またはＰ２ＣＷＡコマンドを連続的にアサートしなくてはならない。同様に、北側ブリッジが多数のＣ２ＰＩＯＲコマンドとＣ２ＰＭＲコマンドとＣ２ＰＩＯＷコマンドとＣ２ＰＭＷコマンドとを連続的にアサートすると、南側ブリッジは、Ｐ２ＣＲコマンドおよび／またはＰ２ＣＷコマンドに応答して、対応するＣ２ＰＲＡコマンドとＣ２ＰＷＡコマンドとを連続的にアサートしなくてはならない。加えて、好ましい実施形態において説明されるように、制御チップによってアサートされた各コマンドに対応するデータは、ノース／南側ブリッジによって、前もって準備されなくてはならない。例えば、メモリに書き込まれるデータは、南側ブリッジがＰ２ＣＷコマンドをアサートする前に、準備されていなくてはならず、かつ、メモリから南側ブリッジへリードデータを転移するためのデータは、北側ブリッジがＰ２ＣＲＡコマンドをアサートする前に、準備されていなくてはならない。従って、データ送信には割込がなく、かつ、ウエイトステートが存在しない。
【００２２】
【表２】
0003602435.tif 000003
【００２３】
【表３】
0003602435.tif 000004
【００２４】
図３は、本発明の１つの好ましい実施形態によるライトトランザクションのための制御チップセットのブロック図を概要的に図解する。該チップセットは、例えば、第１制御チップと第２制御チップとを具備する。一般に、第１制御チップと第２制御チップとは、北側ブリッジ５００と南側ブリッジ６００とであってもよい。第１制御チップ（北側ブリッジ）５００と第２制御チップ（南側ブリッジ）６００とは、特別に設計されたバス（ＶＬＩＮＫ）によって結合される。北側ブリッジ５００は、データトランシーバ５１０とターゲットコントローラ５２０（例えば、メモリコントローラ）とライトデータ待ち行列５２５とライトトランザクション待ち行列５３０とを具備する。南側ブリッジ６００は、データトランシーバ６１０とライトバッファサイズレジスタ５３５とライトバッファ計数レジスタ５４０とライトトランザクション発生器５４５とライトトランザクション記録待ち行列回路５５０とライト比較器５５５とを具備する。
【００２５】
本発明のＶＬＩＮＫ仕様書を満足するデータトランシーバ５１０は、ＶＬＩＮＫバスへ直接結合される。ＶＬＩＮＫバスを通して、データトランシーバ５１０は、多数のライトトランザクションを完了するために、データを送受信できる。１つのライトトランザクションは、「南側ブリッジ６００が、Ｐ２ＣＷコマンドと該Ｐ２ＣＷコマンドに対応するデータとを送り、そして、北側ブリッジ５００が、該Ｐ２ＣＷコマンドに応答するために、Ｐ２ＣＷＡコマンドをアサートする」というように定義される。ライトトランザクション待ち行列５３０は、全てのライトトランザクションの個々のデータ長とライトアドレスとを、順次、一時的に記憶する。ライトトランザクション待ち行列５３０の深さは、北側ブリッジ５００によって許可されるライトトランザクションの総数を決定する。ライトデータ待ち行列５２５は、南側ブリッジ６００からの全てのポスト（ｐｏｓｔ）ライトデータを記憶する。ライトデータ待ち行列の深さは、北側ブリッジ５００によって許可されるライトデータの最大数を決定する。その後、ターゲットコントローラ５２０は、ライトトランザクション待ち行列５３０内に最初に記憶されたライトアドレスとデータ長と従うデータと、該ライトアドレスとデータ長とに対応してライトデータ待ち行列５２５内に記憶されたデータとを、ターゲット（例えば、外部メモリ）へ送る。第１データトランシーバ５１０が、「ライトトランザクションが完了し、かつ、全てのライトデータがターゲットデバイス内にある」ということを南側ブリッジ６００に通知するために、ライトアクノレッジ信号（Ｐ２ＣＷＡコマンド）を送る。そして、ライトデータ待ち行列５２５内に記憶された対応データが解放される。
【００２６】
ライトバッファ計数レジスタ５４０は、北側ブリッジ５００のライトトランザクション待ち行列５３０が処理できるライトトランザクションの最大数（即ち、待ち行列５３０の深さ）を記憶する。ライトバッファサイズレジスタ５３５は、北側ブリッジ５００のライトデータ待ち行列５２５が処理できるライトデータの最大数（即ち、待ち行列５２５の深さ）を記憶する。例えば、ライトバッファ計数レジスタ５４０は４に設定され、かつ、ライトバッファサイズレジスタ５３５は１６に設定される。故に、南側ブリッジ６００は、「北側ブリッジ５００が４個までのライトトランザクションを受諾でき、かつ、ライトトランザクションのデータの最大数は１６ＤＷを超えることはない」ということを知る。２個のパラメータ（ライトトランザクションの最大数とライトデータの最大数）は、起動中に、ＢＩＯＳ（ｂａｓｉｃ  ｉｎｐｕｔ  ｏｕｔｐｕｔ  ｓｙｓｔｅｍ  ）コンフィグレーションによってセットアップされることができる。
【００２７】
ＶＬＩＮＫバスへ結合されたデータトランシーバ６１０は、全てのライトトランザクションを完了するために、ＶＬＩＮＫバスを通して、データを受信しかつ送信する。データトランシーバ６１０がＰ２ＣＷＡコマンドを受信すると、データトランシーバ６１０は、現在のライトトランザクションに対応するデータ長を記憶するスペースを解放するために、ライトの成功とバッファの解放とを示す信号を、ライトトランザクション記録待ち行列回路５５０へ送る。次のライトトランザクションの新たなデータ長とライトアドレスとデータとがライトトランザクション発生器５４５によって生成されると、新たなデータ長が、ライトトランザクション記録待ち行列回路５５０へ送られる。
【００２８】
ライトトランザクション記録回路５５０は、ライトデータ待ち行列５２５内に許容可能なデータ数とライトトランザクション待ち行列５３０内に許容可能なライトトランザクション数とを計算できる。これは、ライトトランザクション記録回路５５０が、全てのライトトランザクションのデータ長を順次記憶するからであり、かつ、北側ブリッジ５００によってアサートされたＰ２ＣＷＡが、南側ブリッジ６００によってアサートされたＰ２ＣＷコマンドの列に従って応答するからである。故に、南側ブリッジ６００は、北側ブリッジ５００内の待ち行列内のバッファのステータスを認識できる。
【００２９】
ライトトランザクション記録回路５５０は、ライトデータ待ち行列５２５内に許容可能なデータ数とライトトランザクション待ち行列５３０内に許容可能なライトトランザクション数とを、ライト比較器５５５へ送ることができる。そして、ライト比較器５５５は、受信されたデータを、ライトデータバッファサイズレジスタ５３５内に記憶されたライトデータの最大数およびライトバッファ計数レジスタ５４０内に記憶されたライトトランザクションの最大数と、個々に比較する。もし、ライト比較器５５５によって受信されたデータが最大データ数および最大トランザクション数よりも少ないならば、ライト比較器５５５は、ライトトランザクションの他の情報を送ることを、データトランシーバ６１０へ通知する。もし、ライト比較器５５５によって受信されたデータが最大データ数および最大トランザクション数よりも多いならば、南側ブリッジ６００は、ライトトランザクションを、これ以上、北側ブリッジ５００へ送ることができない。
【００３０】
図４は、本発明によるライトトランザクションのタイミング図の一例を示す。この例では、「南側ブリッジ６００が、データバスを使用するために権利を取得し、かつ、Ｔ１で第１ライトトランザクションを開始する」とする。南側ブリッジ６００は、アップリンクコマンド信号線ＵＰＣＭＤ上でライトコマンドＰ２ＣＷをアサートし、かつ、アドレス／データ（ＡＤ）バス上でライトアドレスＡＤＤＲをアサートし、かつ、バイトイネーブル（ＢＥ）信号線上で書き込まれるべきデータ長ＬＥＮ＝２（一例）をアサートする。期間Ｔ２で、南側ブリッジ６００は、第１データをＡＤバス上へ送り、かつ、第１データのＢＥコマンドをＢＥ信号線上へ送る。期間Ｔ３で、第２データが、南側ブリッジ６００によって送られる。このとき、未終了のライトトランザクションが、未だ、北側ブリッジ５００内で実行中である。南側ブリッジ６００は、北側ブリッジによって現在許可されるライトトランザクションの最大数とライトデータ待ち行列の最大サイズとを認識することができる。故に、南側ブリッジ６００は、「北側ブリッジ５００が新たなライトトランザクションを受信するか否か」ということを判断する。もし、ライトトランザクション待ち行列５３０内とライトデータ待ち行列５２５内とに空き空間がまだあるならば、南側ブリッジ６００は、期間Ｔ４で、第２ライトトランザクションを開始する。このとき、北側ブリッジ５００内には、２個の未終了のライトトランザクションがある。期間Ｔ９で、南側ブリッジは、「第３ライトトランザクションが開始できるか否か」ということを判断する。もし、南側ブリッジが「第３ライトトランザクションを開始することが、ライトトランザクション待ち行列５３０またはライトデータ待ち行列５２５のオーバーフローを引き起こす」ということを検出するならば、南側ブリッジは、期間Ｔ９において、第３トランザクションを開始しない。北側ブリッジ５００が第１ライトトランザクションに対応するデータをメモリに書き込むと、北側ブリッジ５００は、「第１ライトトランザクション（長さＬＥＮ＝２）が終了した」ということを南側ブリッジ６００へ通知するために、期間Ｔ９において、ダウンリンク信号線ＤＮＣＭＤを通して、ライトアクノレッジコマンドをアサートする。すると、南側ブリッジ６００は、「北側ブリッジ５００のライトトランザクション待ち行列５３０の１個の空間とライトデータ待ち行列５２５の２個の空間とが解放された」ということを検出できる。即ち、南側ブリッジ６００がライトアクノレッジコマンドを受信した後、南側ブリッジ６００は、「第１ライトトランザクションが終了した」ということを知る。ライトトランザクション待ち行列５３０とライトデータ待ち行列５２５との第１ライトトランザクションに対応する空間が解放される。すると、南側ブリッジ６００は、「北側ブリッジ５００が第３ライトトランザクションを処理できる」ということを判断する。そして、第３ライトトランザクションが、期間Ｔ１２で始まる。
【００３１】
図５は、本発明の好ましい実施形態によるリードトランザクションのための制御チップセットのブロック図を概要的に図解する。該チップセットは、例えば、第１制御チップと第２制御チップとを具備する。一般に、第１制御チップと第２制御チップとは、北側ブリッジ５００と南側ブリッジ６００とであってもよい。第１制御チップ（北側ブリッジ）５００と第２制御チップ（南側ブリッジ）６００とは、特別に設計されたバス（ＶＬＩＮＫ）によって結合される。北側ブリッジ５００は、データトランシーバ５１０とターゲットコントローラ５２０（例えば、メモリコントローラ）とリードデータ待ち行列６２５とリードトランザクション待ち行列６３０とを具備する。南側ブリッジ６００は、データトランシーバ６１０とリードバッファサイズレジスタ６３５とリードバッファ計数レジスタ６４０とリードトランザクション発生器６４５とリードトランザクション記録回路６５０とリード比較器６５５とを具備する。
【００３２】
本発明のＶＬＩＮＫ仕様書を満足するデータトランシーバ５１０は、ＶＬＩＮＫバスへ直接結合される。ＶＬＩＮＫバスを通して、データトランシーバ５１０は、リードトランザクションを完了するために、データを送受信できる。１つのリードトランザクションは、「南側ブリッジ６００がＰ２ＣＲコマンドを送り、そして、北側ブリッジ５００が、該Ｐ２ＣＲコマンドに応答するために、Ｐ２ＣＲＡコマンドと対応データと送る」というように定義される。リードトランザクション待ち行列６３０は、全てのリードトランザクションのデータ長とリードアドレスとを、順次、一時的に記憶する。リードトランザクション待ち行列６３０の深さは、北側ブリッジ５００によって許可されるリードトランザクションの総数を決定する。リードデータ待ち行列６２５は、ターゲットコントローラ５２０からの全てのリードデータを記憶する。該リードデータは、後に、南側ブリッジ６００へ送られる。リードデータ待ち行列の深さは、北側ブリッジ５００によって許可されるリードデータの最大数を決定する。ターゲットコントローラ５２０は、リードトランザクション待ち行列６３０内に最初に記憶されたリードアドレスとデータ長とに従って、ターゲット（例えば、外部メモリ）からデータを読み出す。第１データトランシーバ５１０は、リードアクノレッジ信号（Ｐ２ＣＲＡコマンド）を送る。同時に、リードデータ待ち行列６２５内に記憶された対応データが、ＶＬＩＮＫバスを通して、南側ブリッジ６００へ送られ、かつ、解放された空間は、次のリードトランザクションのための他のデータを記憶できる。
【００３３】
南側ブリッジ６００のリードバッファ計数レジスタ６４０とリードバッファサイズレジスタ６３５とは、リードトランザクション待ち行列６３０が処理できるリードトランザクションの最大数と、リードデータ待ち行列６２５が処理できるデータの最大数とを、個々に記憶する。例えば、リードトランザクション待ち行列６３０が処理できるリードトランザクションの最大数（リードバッファ計数）は４であり、かつ、リードデータ待ち行列６２５が処理できるデータの最大数（リードバッファサイズ）は１６ＤＷである。２個のパラメータ（リードバッファサイズとリードバッファ計数）は、起動中にＢＩＯＳ（ｂａｓｉｃ  ｉｎｐｕｔ  ｏｕｔｐｕｔ  ｓｙｓｔｅｍ  ）コンフィグレーションによってセットアップされることができるか、または、チップセット設計中に固定される。
【００３４】
データトランシーバ６１０は、ＶＬＩＮＫバスを通してデータを受信しかつ送信するためにＶＬＩＮＫバスへ結合され、その結果、全てのリードトランザクションを完了する。データトランシーバ６１０がＰ２ＣＲＡコマンドを受信すると、データトランシーバ６１０は、現在の対応リードトランザクションのデータ長を記憶するスペースを解放するために、リードの成功とバッファの解放とを示す信号を、リードトランザクション記録回路６５０へ送る。次のリードトランザクションの新たなデータ長とリードアドレスとがリードトランザクション発生器６４５によって生成されると、新たなデータ長が、リードトランザクション記録回路６５０へ送られる。
【００３５】
リードトランザクション記録待ち行列回路６５０は、リードデータ待ち行列６３０内に許容可能なデータ数とリードトランザクション待ち行列６２５内に許容可能なリードトランザクション数とを計算できる。これは、リードトランザクション記録待ち行列回路６５０が、全てのリードトランザクションのデータ長を順次記憶するからであり、かつ、北側ブリッジ５００によってアサートされたＰ２ＣＲＡが、南側ブリッジ６００によってアサートされたＰ２ＣＲコマンドの列に従って応答されるからである。故に、南側ブリッジ６００は、北側ブリッジ５００内の待ち行列内のバッファのステータスを認識できる。
【００３６】
リードトランザクション記録回路６５０は、リードデータ待ち行列６３０内に許容可能なデータ数とリードトランザクション待ち行列６２５内に許容可能なリードトランザクション数とを、リード比較器６５５へ送ることができる。そして、リード比較器６５５は、受信されたデータを、リードデータバッファサイズレジスタ６３５内に記憶されたリードデータ待ち行列６２５の最大データ数およびリードバッファ計数レジスタ６４０内に記憶されたリードトランザクション待ち行列６３０の最大リードトランザクション数と、個々に比較する。もし、リード比較器６５５によって受信されたデータが最大データ数および最大リードトランザクション数よりも少ないならば、リード比較器６５５は、「リードトランザクションの他の情報を送ることができる」ということを、データトランシーバ６１０へ通知する。
【００３７】
図６は、本発明によるリードトランザクションのタイミング図の一例を示す。この例では、「南側ブリッジ６００が、データバスを使用するための権利を取得し、かつ、Ｔ１で第１リードトランザクションを開始する」という第１仮定を提供する。南側ブリッジ６００は、アップリンクコマンド信号線ＵＰＣＭＤ上でリードコマンドＰ２ＣＲをアサートし、かつ、アドレス／データ（ＡＤ）バス上でリードアドレスＡＤＤＲをアサートし、かつ、バイトイネーブル（ＢＥ）信号線上で読み出されるべきデータ長ＬＥＮ＝２（一例）を送る。このとき、未終了のリードトランザクションが、北側ブリッジ５００内にある。南側ブリッジ６００は、北側ブリッジによって許可されるリードトランザクションの数とデータ待ち行列のサイズとを検出できる。故に、南側ブリッジは、「北側ブリッジが新たなリードトランザクションを受信できるか否か」ということを判断できる。もし、リードトランザクション待ち行列６３０内とリードデータ待ち行列６２５内とに空き空間がまだあるならば、南側ブリッジ６００は、期間Ｔ２で、第２リードトランザクションを開始できる（例えば、ＬＥＮ＝３）。このとき、北側ブリッジ５００内には、２個の未終了のリードトランザクションがある。期間Ｔ３において、南側ブリッジ６００は、「第３リードトランザクションを開始することは、リードトランザクション待ち行列６３０またはリードデータ待ち行列６２５のオーバーフローを引き起こす」ということを判断する。そして、南側ブリッジは、期間Ｔ３において、第３トランザクションを開始しない。北側ブリッジ５００が第１リードトランザクションに対応するデータをメモリコントローラ５２０から取得し、そして、該データをリードデータ待ち行列６２５内に記憶すると、北側ブリッジ５００は、データを南側ブリッジ６００へ送るために、リードアクノレッジコマンドをアサートする。期間Ｔ７において、北側ブリッジは、バスを使用するための権利を取得し、そして、リードアクノレッジコマンドＰ２ＣＲＡをダウンリンクコマンド信号線ＤＮＣＭＤ上へ送り、かつ、第１リードトランザクションの第１ダブルワードのデータをＡＤバス上へ送る。期間Ｔ８において、第１リードトランザクションの第２ダブルワードが送出される。このとき、南側ブリッジ６００は、「リードトランザクション待ち行列６３０とリードデータ待ち行列６２５との第１リードトランザクションに対応する空間が解放された」ということを検出する。そして、南側ブリッジ６００は、「第３リードトランザクションが開始されることができるか否か」ということを判断する。南側ブリッジ６００は、第３リードトランザクションを開始する前に、ＶＬＩＮＫバスを使用するための権利を取得しなくてはならない。故に、南側ブリッジ６００は、ＶＬＩＮＫバスの使用の権利を要求するために、期間Ｔ１０において、アップリンクコマンド信号線ＵＰＣＭＤを通して、リクエストコマンドＲＥＱをアサートする。期間Ｔ９〜Ｔ１０〜Ｔ１１において、北側ブリッジ５００は、第２リードトランザクションのデータを送るためのリードアクノレッジコマンドを、南側ブリッジ６００へ送る。すると、南側ブリッジ６００は、バスを使用するための権利を、期間Ｔ１３において取得する。そして、第３リードトランザクションは、南側ブリッジ６００によって開始される。
【００３８】
北側ブリッジと南側ブリッジとは、それぞれ、第１制御チップセットと第２制御チップセットとであり、かつ、コマンドは、北側ブリッジがデータを読み出しかつ書き込むことを制御するために、南側ブリッジによって送られる。しかしながら、当業者にとって、北側ブリッジと南側ブリッジとの両方は、対応する構成を有することができる。故に、コマンドは、南側ブリッジによって送られるのか、または、北側ブリッジによって送られるのか限定されない。即ち、南側ブリッジと北側ブリッジとは、それぞれ、第１制御チップセットと第２制御チップセットとであることができる。
【００３９】
図３〜６に対応する記載は単なる一例である。該一例は、本発明の範囲を制限するために使用されるものではない。本発明の特徴は、少なくとも以下を具備する。
【００４０】
１．  ライトトランザクションまたはリードトランザクションが開始されると、アドレスとコマンドとに加えて、ライトトランザクションまたはリードトランザクションに対応するデータ長も送られる。故に、データトランザクションの終了を通知するためのＦＲＡＭＥ信号が要求されない。
【００４１】
２．  処理されるべきライトトランザクションまたはリードトランザクションが多数ある場合、該ライトトランザクションまたはリードトランザクションに対応する多数のライトアクノレッジコマンドまたはリードアクノレッジコマンドが、順次、送られかつ対応される。故に、チップセットは、チップセットの内部待ち行列の状態を互いに知ることができる。
【００４２】
３．  本出願は、ＰＣの北側ブリッジと南側ブリッジとに限定されず、２個のチップの間における如何なるデータトランザクションに対しても使用される。
【００４３】
「様々な変更と変形とが、本発明の範囲または趣旨から離れることなく、本発明の構成に対して行われることができる」ということが、当業者に対して明白である。前記の点に基づいて、「本発明の範囲は、以下の請求項とその等価物との範囲内に入る（この発明の）変更と変形とに及ぶ」ということが意図される。
【図面の簡単な説明】
【図１】この発明の実施形態による制御チップセットモジュール内部の制御チップセット間のデータトランザクションで使用される制御信号を示すブロック図である。
【図２】この発明によるコマンド符号化のための４個のビットタイムを含むクロックサイクルを示すタイミング図である。
【図３】本発明の好ましい一実施形態によるライトトランザクションのための制御チップセットのブロック図である。
【図４】本発明によるライトトランザクションのタイミングの一例を示す図である。
【図５】本発明の好ましい一実施形態によるリードトランザクションのための制御チップセットのブロック図である。
【図６】本発明によるリードトランザクションのタイミングの一例を示す図である。
【図７】従来のコンピュータシステムの様々なコンポーネントを接続するＰＣＩバスシステムを示すブロック図である。
【図８】リード動作中におけるＰＣＩバスインターフェース内の様々な信号を示すタイミング図である。
【符号の説明】
２４……ＣＰＵ
３０……北側ブリッジ
３２……南側ブリッジ
３６……メモリ
【図１】
0003602435.tif 000005
【図２】
0003602435.tif 000006
【図３】
0003602435.tif 000007
【図４】
0003602435.tif 000008
【図５】
0003602435.tif 000009
【図６】
0003602435.tif 000010
【図７】
0003602435.tif 000011
【図８】
0003602435.tif 000012