(57)【特許請求の範囲】
【請求項１】
プロセッサであって、
ロックの要求またはロック解除の要求に応答して第１の要求を生成するように構成される第１の回路と、
前記第１の回路に結合されるシステムインターフェイスコントローラとを含み、前記システムインターフェイスコントローラは、前記第１の要求に応答して第１のコマンドを伝送してロック状態を切替えるように構成される、プロセッサ。
【請求項２】
前記第１の回路は前記第１のコマンドの後に１つまたは２つ以上のメモリアクセスを実行するように構成され、前記１つまたは２つ以上のメモリアクセスはロックされた状態で行われる、請求項１に記載のプロセッサ。
【請求項３】
前記システムインターフェイスコントローラは、前記第１の回路に前記第１のコマンドがコミットされたと表示するように構成され、前記第１の回路は前記システムコントローラからの表示に応答して前記１つまたは２つ以上のメモリアクセスを実行するように構成される、請求項２に記載のプロセッサ。
【請求項４】
前記第１の回路は、前記第１の要求を生成し、前記第１のコマンドの後に１つまたは２つ以上のメモリアクセスを行い、かつ前記１つまたは２つ以上のメモリアクセスの後に再び前記第１の要求を生成することにより、ロックされたシーケンスを行うように構成される、請求項１に記載のプロセッサ。
【請求項５】
前記第１の回路は、前記第１の回路内で最も古い未処理の要求である前記ロックの要求またはロック解除の前記要求に応答して、前記第１の要求を生成するように構成される、請求項１に記載のプロセッサ。
【請求項６】
ロックを特定する第１の１つまたは２つ以上の命令を受取りさらに復号化するように結合される復号ユニットをさらに含み、前記復号ユニットは、前記第１の１つまたは２つ以上の命令に応答して、ロック指令を生成するように構成され、
ロック指令はロックに対する要求を示し、前記第１の回路は、前記ロック指令と前記第１の１つまたは２つ以上の命令とを前記復号ユニットから受取るように結合されるロード／記憶ユニットを含み、前記ロード／記憶ユニットは、実行のために前記第１の１つまたは２つ以上の命令を選択し、さらに、ロックを得るためにロック指令に応答してロックトグルコマンドの第１の要求を伝送するように構成される、請求項１に記載のプロセッサ。
【請求項７】
前記システムインターフェイスコントローラは複数のバッファをさらに含み、
使用中の待ち行列エントリをトラッキングするように構成されるリソースカウンタと、
未処理のプロセッサコマンドをトラッキングするように構成されるコミットカウンタとを含む、請求項６に記載のプロセッサ。
【請求項８】
前記システムインターフェイスコントローラはさらに、プロセッサコマンドを発行したことに応答して、前記リソースカウンタを増分するように構成され、
前記システムインターフェイスコントローラはさらに、前記プロセッサコマンドを発行したことに応答して、前記コミットカウンタを増分するように構成される、請求項７に記載のプロセッサ。
【請求項９】
前記システムインターフェイスコントローラはさらに、システムデバイスからアクノレッジ信号を受取ったことに応答して、前記リソースカウンタを減分するように構成され、前記システムインターフェイスコントローラはさらに、前記システムデバイスからコミット信号を受取ったことに応答して、前記コミットカウンタを減分するように構成される、請求項８に記載のプロセッサ。
【請求項１０】
前記アクノレッジ信号は、待ち行列エントリを解放したことに応答して、前記システムデバイスによって送られる、請求項９に記載のプロセッサ。
【請求項１１】
前記コミット信号は、特定のプロセッサコマンドに対してコヒーレンシィポイントに到達したことに応答して、前記システムデバイスによって送られる、請求項９に記載のプロセッサ。
【請求項１２】
バスブリッジであって、
ロック状態を記憶するように構成されるロック記憶装置と、
前記ロックレジスタに結合され、さらに第１のプロセッサから第１のコマンドを受取って前記ロック状態を切替えるように結合される制御論理とを含み、前記制御論理は、前記ロックトグルコマンドと、ロック状態がロックの欠如を表示すると判断したことに応答して、前記ロックレジスタ内の前記ロック状態を設定し前記第１のプロセッサによるロックを表示するように構成され、前記制御論理は、前記第１のコマンドと、前記ロック状態が前記第１のプロセッサによる前記ロックを表示すると判断したこととに応答して、前記ロック状態を設定しロックの欠如を表示するように構成される、バスブリッジ。
【請求項１３】
前記制御論理はさらに、前記ロック状態が前記第１のプロセッサのための前記ロックを表示している間は、前記第１のプロセッサから受取ったコマンドのみを実行するように構成される、請求項１２に記載のバスブリッジ。
【請求項１４】
前記ロック記憶装置はロックレジスタである、請求項１２に記載のバスブリッジ。
【請求項１５】
前記制御論理はさらに、第２のプロセッサから前記第１のコマンドを受取ったことに応答して、前記ロック状態が前記ロックの欠如を表示する場合には、前記ロック状態を設定して第１のプロセッサと異なる前記第２のプロセッサのためのロックを表示するように構成される、請求項１２に記載のバスブリッジ。
【請求項１６】
前記第１のプロセッサから複数のコマンドを受取るように結合される第１の入力ポートと、
前記第１の入力ポートに結合される第１のプロセッサ待ち行列とをさらに含み、前記第１の入力ポートは前記複数のコマンドを前記第１のプロセッサ待ち行列へと転送するように構成され、前記第１のプロセッサ待ち行列は前記複数のコマンドを記憶するように構成され、前記複数のコマンドは前記ロックトグルコマンドを含み、
前記制御論理は前記複数のコマンドを第１のプロセッサ待ち行列から取除くように構成され、前記ロックトグルコマンドを前記第１のプロセッサ待ち行列から取除いたことに応答して、前記制御論理は、ロック状態を検査するように構成され、前記制御論理はさらに、前記ロック状態がロックの欠如を表示する場合には、前記ロック状態を設定して前記第１のプロセッサのためのロックを表示するように構成され、前記ロック状態が前記第１のプロセッサに対して前記ロックを表示する場合には、前記ロック状態を設定して前記ロックの欠如を表示するように構成される、請求項１２に記載のブリッジ。
【請求項１７】
第２のプロセッサから第２の複数のコマンドを受取るように結合される第２の入力ポートと、
前記第２の入力ポートに結合される第２のプロセッサ待ち行列とを含み、前記第２の入力ポートは前記第２の複数のコマンドを前記第２のプロセッサ待ち行列へと転送するように構成され、前記第２のプロセッサ待ち行列は前記第２の複数のコマンドを記憶するように構成され、
前記制御論理はさらに、予め定められたプロトコルに従って、前記第１のプロセッサ待ち行列および前記第２のプロセッサ待ち行列からコマンドを選択するように構成され、前記制御論理はさらに、前記ロック状態が前記第１のプロセッサのための前記ロックを表示するとき前記第１のプロセッサ待ち行列からのみコマンドを選択するように構成される、請求項１６に記載のブリッジ。
【請求項１８】
前記第１および第２のプロセッサの各々は、別のプロセッサバスによって前記ブリッジに結合される、請求項１７に記載のブリッジ。
【請求項１９】
コンピュータシステムであって、
１つまたは２つ以上のプロセッサと、
前記１つまたは２つ以上のプロセッサに結合されるブリッジとを含み、
前記１つまたは２つ以上のプロセッサのうちの第１のプロセッサは第１のコマンドを前記ブリッジへと伝送して、前記ブリッジ内のロック状態を切替えるように構成され、前記ブリッジは、前記１つまたは２つ以上のプロセッサのうちの前記第１のプロセッサから前記第１のコマンドを受取ったことに応答して、前記ロック状態がロックの欠如を表示する場合には、前記ロック状態を設定して前記１つまたは２つ以上のプロセッサのうちの前記第１のプロセッサのための前記ロックを表示し、さらには前記ロック状態が前記１つまたは２つ以上のプロセッサのうちの前記第１のプロセッサのための前記ロックを表示する場合には、前記ロック状態を設定して前記ロックの欠如を表示するように構成される、コンピュータシステム。
【請求項２０】
前記ブリッジはさらに、前記ロック状態が前記１つまたは２つ以上のプロセッサのうちの前記第１のプロセッサのための前記ロックを表示している間は、前記１つまたは２つ以上のプロセッサのうちの前記第１のプロセッサから受取ったコマンドのみを実行するように構成される、請求項１９に記載のコンピュータシステム。
【請求項２１】
前記ブリッジは、前記ロック状態を記憶するように構成されるロックレジスタを含む、請求項１９に記載のコンピュータシステム。
【請求項２２】
前記ブリッジは、前記１つまたは２つ以上のプロセッサのうちの前記第２のプロセッサから前記第１のコマンドを受取ったことに応答して、前記ロック状態が前記ロックの欠如を表示する場合には、前記ロック状態を設定して前記１つまたは２つ以上のプロセッサのうちの第２のプロセッサのためのロックを表示するように構成される、請求項１９に記載のコンピュータシステム。
【請求項２３】
１つまたは２つ以上のプロセッサとシステムデバイスとを含むコンピュータシステムを動作させるための方法であって、
前記１つまたは２つ以上のプロセッサのうちの第１のプロセッサから前記システムデバイスへと第１のロックトグルコマンドを発行するステップと、
前記第１のロックトグルコマンドに応答して、前記システムデバイス内のロック状態の表示を検査するステップと、
前記ロック状態の前記表示を検査したことおよび前記ロック状態がロックの欠如を表示すると判断したこととに応答して、前記ロック状態を設定し前記第１のプロセッサによるロックを表示するステップと、
前記ロック状態の前記表示を検査したことおよび前記ロック状態が前記ロックを表示すると判断したこととに応答して、前記ロック状態を設定し前記ロックの欠如を表示するステップとを含む、方法。
【請求項２４】
前記ロック状態が前記第１のプロセッサのための前記ロックを表示する間は、前記１つまたは２つ以上のプロセッサのうちの第２のプロセッサからのコマンドを無視するステップをさらに含む、請求項２３に記載の方法。
【請求項２５】
前記ロック状態を設定して前記ロックを表示したことに応答して、前記ロックを特定する前記１つまたは２つ以上のコマンドを、前記第１のプロセッサから前記システムデバイスへと送るステップと、
前記ロックを特定する前記１つまたは２つ以上のコマンドを、前記第１のプロセッサから前記システムデバイスへと送った後に、第２のロックトグルコマンドを、前記第１のプロセッサから前記システムデバイスへと送るステップとをさらに含む、請求項２３に記載の方法。
【発明の詳細な説明】
【０００１】
【技術分野】
この発明は、通信インターフェイス、より具体的にはロック状態の開始または終了のいずれかを要求するためのロックトグルコマンドに関する。
【０００２】
【背景技術】
コンピュータシステムでは、特に、メモリまたはＩ／Ｏ（入力／出力）スペースに、並行にアクセスしてもよい多数のプロセッサを含むコンピュータシステムでは、メモリへのアトミックアクセスが他のシステムデバイスによって割り込まれないことを保証するあるメカニズムが必要とされる。たとえば、メモリに基づく変数の場合などでは、第１のシステムデバイスが、メモリ内のある場所から読出し、その同じメモリ場所に新しい値を書込もうとするであろう。第１のシステムデバイスがメモリ場所でのオペレーションを終了する前に、同じメモリ場所に、第２のシステムデバイスが読出または書込をすることができないようにシステムを「ロック」するあるメカニズムが必要とされている。一般に、ロックオペレーションは、所与のデバイスから所与のメモリ場所または範囲への１つまたは２つ以上の読出サイクルとそれに続く１つまたは２つ以上の書込サイクルのシーケンスであると定義することができる。ロックオペレーションを含むそのシーケンスの間、他のデバイスは１つも、少なくとも所与のメモリ場所にアクセスしない。
【０００３】
ｘ８６プロセッサでは、ＬＯＣＫプレフィックスを用いるある命令にロッキング機能が設けられている。ある他の命令は、メモリの読出および書込がロックされることを暗に指定する。ロックオペレーションはまた、ページ表更新およびインタラプトアクノレッジサイクルをも含んでもよいことが注目される。ｘ８６ハードウェアでは、ロッキングは伝統的にｘ８６プロセッサ上のＬＯＣＫ♯ピンを通して実現されてきた。ロックオペレーションを行なうプロセッサは、ロックオペレーションを含む、読出および書込シーケンスの間、ＬＯＣＫ♯ピンをアサートする。ｘ８６プロセッサは一般に、プロセッサのメモリへのアクセスが単一の共有プロセッサバスを通して提供されるコンピュータシステム内に設計されてきたため、ＬＯＣＫ♯ピンアサーションを用いて共有バスリソースをロッキングプロセッサ専用にすることができる。共有バスがロックされている間、バスリソースを共有する他のプロセッサは共有バスにアクセスすることを禁じられるため、他のプロセッサは、読出と書込とのアトミックなシーケンスに割り込むことができない。
【０００４】
残念なことに、共有バスシステムにはいくつかの欠点がある。たとえば、多数のデバイスが共有バスに接続されているため、バスは通例比較的低い周波数で動作する。多数の接続は、バス上で信号を駆動するデバイスに高容量性負荷を与え、多数の接続ポイントは、高周波数では比較的複雑な伝送路モデルを与える。したがって、周波数は低いままでとどまり、共有バス上で利用できる帯域幅は同様に比較的狭い。狭い帯域幅により、共有バスへの追加のデバイスの接続が妨げられる。なぜならば、利用できる帯域幅によって性能が制限されるおそれがあるからである。
【０００５】
共有バスシステムにおける別の不利な点は、より多数のデバイスへのスケーラビリティの欠如である。上述のように、帯域幅の大きさは固定されている（追加のデバイスを付加することで、バスの動作可能周波数が減じられると、それはより狭くなるおそれもある）。バスに（直接または間接的に）接続されているデバイスの帯域幅要件が、バスの利用可能な帯域幅を一旦超えると、バスへのアクセスを試みるとき、デバイスは頻繁に機能停止する。このようにして、コンピュータシステムの全体の性能が衰えるおそれがある。
【０００６】
ｘ８６プロセッサは、動作周波数および全体の性能において向上し続けているため、共有コンピュータバスコンピュータシステムモデルは、性能面での限界となってきている。それゆえに、非共有バスシステム内でロッキング機能を提供するための方法が望まれる。
【０００７】
【発明の開示】
上述の問題は、ロックを設定し解除するためのトグルコマンド、つまりロックトグルを用いるためのシステムおよび方法によって大部分が解決される。例示的なコンピュータシステムでは、１つまたは２つ以上のプロセッサの各々がバスブリッジに、別々の高速接続を通して結合され、その各々は、ある実施例では、それぞれがソース同期クロック線を備える一対の単方向アドレスバスと、付随のソース同期クロック線を備える双方向データバスとを含む。ロックトグルコマンドを用いて、プロセッサからシステムコヒーレンシィポイント、たとえばバスブリッジへとロック要求およびアンロック要求の両方を伝送する。ロックが確立または解除されたとき、システムコヒーレンシィポイントは肯定応答する。ロックがアクティブな間は、他のプロセッサは、少なくともそれについてロックが開始されたメモリ場所にアクセスすることを禁じられる。このようにして、ロックはシステムコヒーレンシィポイントで確立され、このことは、有利なことには、非共有バスシステム内でのロック機能を可能にするであろう。ロックトグルコマンドの使用はまた、有利なことには、単一のコマンドコードポイントの使用を可能にし、他のポイントを他の用途に利用できるようにするであろう。
【０００８】
概して、復号ユニット、ロード／記憶ユニット、およびシステムインターフェイスコントローラを含むプロセッサが企図される。復号ユニットは、ロックを特定する第１の１つまたは２つ以上の命令を受取りそれを復号化するように結合され。復号ユニットは、第１の１つまたは２つ以上の命令に応答して、ロック表示を生成するように構成される。ロード／記憶ユニットは、ロック表示と、第１の１つまたは２つ以上の命令とを復号ユニットから受取るように結合される。ロード／記憶ユニットは、第１の１つまたは２つ以上の命令を選択して実行し、さらにそれに応答してロックトグルコマンドの第１の要求を伝送するように構成される。システムインターフェイスコントローラは、ロード／記憶ユニットとバスとの間に結合される。システムインターフェイスコントローラは、ロックトグルコマンドの第１の要求をロード／記憶ユニットから受取り、さらにロックトグルコマンドの第１の要求を受取ったことに応答して、第１のロックトグルコマンドを発行するように構成される。ロード／記憶ユニットはさらに、第１の１つまたは２つ以上の命令を実行したことに応答して、ロックトグルコマンドの第２の要求を伝送するように構成される。システムインターフェイスコントローラはさらに、ロックトグルコマンドの第２の要求をロード／記憶ユニットから受取り、さらにロックトグルコマンドの第２の要求を受取ったことに応答して、第２のロックトグルコマンドを発行するように構成される。
【０００９】
１つまたは２つ以上のプロセッサをコンピュータシステムに結合するためのブリッジもまた企図される。概して、ブリッジは、１つまたは２つ以上のプロセッサのうちの第１のプロセッサから複数のコマンドを受取るように結合される第１の入力ポートと、第１の入力ポートに結合される第１のプロセッサ待ち行列と、ロック状態を記憶するように構成されるロックレジスタと、第１の入力待ち行列とロックレジスタとに結合される制御論理とを含む。第１の入力ポートは、前記１つまたは２つ以上のプロセッサのうちの第１のプロセッサから第１のプロセッサ待ち行列へと複数のコマンドを転送するように構成される。第１のプロセッサ待ち行列は、１つまたは２つ以上のプロセッサのうちの第１のプロセッサからの複数のコマンドを記憶するように構成される。１つまたは２つ以上のプロセッサのうちの第１のプロセッサからの複数のコマンドは、ロックトグルコマンドを含む。制御論理は、１つまたは２つ以上のプロセッサのうちの第１のプロセッサからの複数のコマンドを、第１のプロセッサ待ち行列から取除くように構成される。ロックトグルコマンドを第１のプロセッサ待ち行列から取除いたことに応答して、制御論理は、ロック状態を検査するように構成される。制御論理はさらに、ロック状態がロックの欠如を表示する場合には、ロック状態を設定して１つまたは２つ以上のプロセッサのうちの第１のプロセッサのためのロックを表示するように構成される。制御論理はさらに、ロック状態がロックを表示する場合には、ロック状態を設定してロックの欠如を表示するように構成される。
【００１０】
コンピュータシステムもまた企図される。概して、コンピュータシステムは、１つまたは２つ以上のプロセッサと、１つまたは２つ以上のプロセッサに結合されるブリッジとを含む。ブリッジは、１つまたは２つ以上のプロセッサから受取るコマンドを実行するように構成される。１つまたは２つ以上のプロセッサの各々は、ロックトグルコマンドをブリッジへと伝送して、ロック状態がロックを表示するように設定されることを要求するように構成される。ブリッジは、１つまたは２つ以上のプロセッサのうちの第１のプロセッサからロックトグルコマンドを受取ったことに応答して、ロック状態を検査するように構成される。制御論理はさらに、ロック状態がロックの欠如を表示する場合には、ロック状態を設定して１つまたは２つ以上のプロセッサのうちの第１のプロセッサのためのロックを表示し、さらにはロック状態がロックを表示する場合には、ロック状態を設定してロックの欠如を表示するように構成される。
【００１１】
１つまたは２つ以上のプロセッサとシステムデバイスとを含むコンピュータシステムを動作させるための方法もまた企図される。概して、その方法は、１つまたは２つ以上のプロセッサのうちの第１のプロセッサからシステムデバイスへと第１のロックトグルコマンドを発行するステップを含む。その方法はさらに、第１のロックトグルコマンドに応答して、システムデバイス内のロック状態の表示を検査する。その方法はさらに、ロック状態の表示を検査してロック状態がロックの欠如を表示すると判断したことに応答して、ロック状態を設定して第１のプロセッサによるロックを表示するステップを含む。その方法はまた、ロック状態の表示を検査してロック状態がロックを表示すると判断したことに応答して、ロック状態を設定してロックの欠如を表示する。
【００１２】
この発明の他の目的および利点は、以下の詳細な説明を読み、さらには添付の図を参照することによって、明らかになるであろう。
【００１３】
この発明には、種々の変形および代替の形の余地があるが、図における例によってその具体的な実施例を示し、それらをここで詳細に説明する。しかし、図および詳細な説明は、開示された特定の形式に発明を制限することを意図するのではなく、逆に、添付の請求項によって規定されるようなこの発明の思想と範囲とに入るすべての変形、均等物、および代替物をカバーすることを意図することが理解されるべきである。
【００１４】
【発明の実施の態様】
図１を参照すると、一般的なコンピュータシステムの実施例のブロック図が示される。第１のプロセッサ１１０Ａと第２のプロセッサ１１０Ｂとの各々は、別々のプロセッサバスを通してブリッジ１３０に結合される。第１のプロセッサ１１０Ａと第２のプロセッサ１１０Ｂとは共に、それぞれのプロセッサバスを用いてメモリおよびＩ／Ｏオペレーションを行なうように、好ましくは構成される。ある実施例では、プロセッサ１１０Ａおよび１１０Ｂは、ｘ８６命令セットアーキテクチャを実現する。他の実施例はいかなる好適な命令セットアーキテクチャを実現してもよい。ブリッジ１３０はさらにメモリ１４０に結合される。メモリ１４０は好ましくは、第１のプロセッサ１１０Ａと第２のプロセッサ１１０Ｂとの両方にさらには他のシステムデバイスにもアクセス可能なデータと命令とを記憶するように構成される。メモリ１４０は、ＳＤＲＡＭ（同期ダイナミックランダムアクセスメモリ）、ＲＤＲＡＭ（ランバスＤＲＡＭ）［ＲＤＲＡＭおよびＲＡＭＢＵＳはランバス社（Rambus，Inc.）の登録商標である］、または他のいかなる好適なメモリタイプからなっていてもよい。アドバンスドグラフィックスポートデバイス(advanced graphics port device)（ＡＧＰ）１５０もまた任意でブリッジ１３０に結合される。図示されるように、ペリフェラルコンポーネントインターコネクト(Peripheral Component Interconnect)（ＰＣＩ）バス１６０もまたブリッジ１３０に結合される。種々のＩ／ＯコンポーネントがＰＣＩバス１６０に結合されてもよい。
【００１５】
インダストリスタンダードアーキテクチャ（ＩＳＡ）バス等の従来のバスを含むコンピュータシステムの実施例では、ブリッジ１３０はしばしばノースブリッジ１３０と呼ばれ、ＰＣＩバス１６０と従来のバスとの間のブリッジ（図示せず）はサウスブリッジと呼ばれることが注目される。例示される実施例では、ブリッジ１３０はコンピュータシステムのシステムマスタであることもまた注目される。例示される実施例は２つのプロセッサ１１０Ａおよび１１０Ｂを含むが、所望であれば、いかなる数のプロセッサ１１０もコンピュータシステムに含まれ得ることが注目される。
【００１６】
例示される実施例では、ブリッジ１３０はシステムマスタとして動作し、プロセッサ１１０Ａおよび１１０Ｂ、メモリ１４０、ＡＧＰデバイス１５０、およびＰＣＩバス等の間の通信を調整する。ブリッジ１３０は、プロセッサ１１０Ａおよび/または１１０Ｂを探索して、他のプロセッサ１１０Ａまたは１１０Ｂ、ＡＧＰデバイス１５０、またはＰＣＩバス１６０上のＰＣＩデバイス等によってアクセスされるメモリ場所があるか調べることによって、コンピュータシステムのデバイス間のデータ転送のためのコヒーレンシィを維持する。
【００１７】
図２を参照すると、図１の一般的なコンピュータシステムの、ある構成要素の実施例のより詳細なブロック図が例示される。第１のプロセッサ１１０Ａ、プロセッサバスコンポーネント１２６Ａおよび１２８Ａ、およびブリッジ１３０の種々の詳細が例示される。
【００１８】
図示されるように、プロセッサ１１０Ａは、Ｌ／Ｓコマンドバスおよびロック信号線を通して、ロード／記憶ユニット１１４に結合される復号ユニット１１２を含む。ロード／記憶ユニット１１４は、アドレスおよびデータバス、ロックトグル要求信号線、およびロックトグルグラント信号線を通して、システムインターフェイスコントローラ１１６に結合される。システムインターフェイスコントローラ１１６は、リソースカウンタ１１８（Ａカウンタ）とコミットカウンタ１１９（Ｃカウンタ）とを含む。第１のプロセッサ１１０Ａおよび第２のプロセッサ１１０Ｂの各々は、別々のプロセッサバスを通してブリッジ１３０に結合される。各プロセッサバスは、専用のソース同期クロック線１２６を備える双方向データバスと、付随のソース同期クロック線１２８を備える単方向アドレスインアドレスアウト線（アドレスバス）とを含む。第１のプロセッサ１１０Ａとブリッジ１３０との間のプロセッサバスは、データバス１２６Ａとアドレスバス１２８Ａとを含み、少なくとも第１の入力ポートを通してブリッジ１３０へと結合する。第２のプロセッサ１１０Ｂとブリッジ１３０との間のプロセッサバスは、データバス１２６Ｂとアドレスバス１２８Ｂとを含み、少なくとも第２の入力ポートを通してブリッジに結合する。ブリッジ１３０は、第１のプロセッサ１１０Ａからのコマンドの記憶に専用の第１のプロセッサ待ち行列１３４Ａと、第２のプロセッサ１１０Ｂからのコマンドの記憶に専用の第２のプロセッサ待ち行列１３４Ｂとを含む。メモリ１４０もまたブリッジ１３０に結合されて示される。
【００１９】
一般に、ロックが表示されない場合、コンピュータシステムの動作は以下のとおりである：プロセッサ１１０Ａの復号ユニット１１２は、命令を受取りそれを復号化する。復号ユニット１１２は、メモリオペレーション（メモリへのロードまたは記憶を指定する命令）をロード／記憶ユニット１１４に運ぶ。ロード／記憶ユニット１１４は、メモリオペレーションを内部データキャッシュ（図示せず）に運んでもよく、システムサービスを必要とするメモリオペレーションを、システムインターフェイスコントローラ１１６へ運ぶ。システムインターフェイスコントローラ１１６は、アドレスバス１２８Ａおよびデータバス１２６Ａを用いて、ブリッジ１３０等のシステムデバイスにオペレーションを運ぶ。より具体的には、システムインターフェイスコントローラ１１６は、アドレスバス１２８Ａのアドレスアウト部分上に、アドレスおよびコマンドインフォメーションを伝送する。アドレスバス１２８Ａのアドレスイン部分上で、ブリッジ１３０は、対応するデータ転送の準備ができたことを合図する。そこで対応するデータがデータバス１２６Ａ上で伝送される。
【００２０】
ブリッジ１３０に送られたコマンドの大部分について、システムインターフェイスコントローラ１１６は、リソースカウンタ１１８（Ａカウンタ）とコミットカウンタ１１９（Ｃカウンタ）とを増分する。ブリッジ１３０内の制御論理１３６は、第１のプロセッサ１１０Ａおよび第２のプロセッサ１１０Ｂからコマンドを受取り、コマンドをそれぞれの待ち行列、プロセッサＡ待ち行列１３４ＡとプロセッサＢ待ち行列１３４Ｂとに置く。制御論理１３６は、予め定められたプロトコルによって規定された順序で、つまりラウンドロビンまたは最終アクセスアルゴリズムに従って、プロセッサＡ待ち行列１３４ＡおよびプロセッサＢ待ち行列１３４Ｂからコマンドを取除く。プロセッサ１１０Ｂもまた、同様の様態で動作する。リソースカウンタ１１８および／またはコミットカウンタ１１９はある種のコマンドをトラッキングしなくてもよいということが注目される。トラッキングされないコマンドの例は、ある種のプローブ応答、ある種のバッファフラッシュ、ノーオペレーションコマンド（ＮＯＰｓ）、および特別なブロックメモリコマンドを含み得る。
【００２１】
プロセッサＡ待ち行列１３４Ａからコマンドを取除く等によって、待ち行列エントリを解放したことに応答して、制御論理１３６は、それぞれのプロセッサ１１０Ａのシステムインターフェイスコントローラ１１６に肯定応答信号を送る。システムインターフェイスコントローラ１１６は、ブリッジ１３０から肯定応答信号を受取ったことに応答して、リソースカウンタ１１８を減分する。システムマスタとして働くブリッジ１３０が特定のプロセッサコマンドに対してコヒーレンシィポイントに一旦到達すると、制御論理１３６は、コミット信号を適切なシステムインターフェイスコントローラ１１６に送る。システムインターフェイスコントローラ１１６は、コミット信号をブリッジ１３０から受取ったことに応答して、コミットカウンタ１１９を減分するように構成される。好ましい実施例では、プロセッサ１１０は、コミット信号をいかなる特定のプロセッサコマンドにも関連させないことが注目される。プロセッサコマンドのいずれかがコヒーレンシィポイントに到達したとき、ブリッジ１３０は単にコミット信号を返すのみである。アクノレッジ信号およびコミット信号は、アドレスバス１２８Ａのアドレスイン部分上のアドレスインコマンドの一部であってもよい。
【００２２】
ある実施例では、リソースカウンタ１１８および／またはコミットカウンタ１１９内の値が予め定められた値に到達すると、プロセッサ１１０Ａおよび１１０Ｂは、新しいコマンドをブリッジ１３０に送ることをやめるように構成されている。リソースカウンタ１１８は、各プロセッサ１１０に、ブリッジ１３０に送ったコマンドのうちいくつがブリッジ１３０によって肯定応答されていないのかを、トラッキングさせてもよい。コミットカウンタ１１９は、各プロセッサ１１０に、コヒーレンシィポイントにまだ到達していない、ブリッジ１３０に送られた未処理のコマンドの数を制限させてもよい。
【００２３】
種々の実施例において、リソースカウンタ１１８の用途と解釈とは異なっていてもよいことが注目される。ある実施例では、４エントリ共通プロセッサ待ち行列１３４は、一方は読出のためであり他方は書込のためである、２つのより大きな待ち行列を送る。肯定応答リミット（まだ肯定応答されていない、プロセッサ１１０が発行したコマンドの数に対するリミット）は、４に設定される。別の実施例では、１つのプロセッサ待ち行列は、読出と書込との両方を保持する。共通の待ち行列エントリの割当が解除されたとき、Ａビットがブリッジ１３０からプロセッサ１１０へと返される。
【００２４】
概して、１つまたは２つ以上のプロセッサ１１０のうちの第１のプロセッサ１１０Ａが、メモリ１４０へのアトミックアクセスを行なおうとするか、またはロックを必要とする１つまたは２つ以上の何らかの他のオペレーションを行なおうとするとき、第１のプロセッサ１１０Ａは、ブリッジ１３０等のシステムマスタに、第１のロックトグルコマンドを送る。第１のロックトグルコマンドが完遂されさらにロックが表示されるまでは、第１のプロセッサ１１０Ａは通例それ以上のコマンドをブリッジ１３０に送ることを避けるが、ある状況下では、ロックトグルコマンドの後に、ある種のコマンドを送ることができる。第１のロックトグルコマンドが到達するまでは、ブリッジ１３０は１つまたは２つ以上のプロセッサ待ち行列１３４からコマンドを選択するように動作する。第１のロックトグルコマンドを実行する際に、ブリッジ１３０はロックレジスタ１３２内のロック状態を調べ、第１のプロセッサ１１０Ａのためのロックを開始し、さらには第１のプロセッサ１１０Ａにロックトグルコマンドを完遂したことを知らせる。ブリッジ１３０は、ロック状態が第１のプロセッサ１１０Ａのためのロックを表示している間は、他のすべてのプロセッサ１１０からのコマンドを無視する。第１のプロセッサ１１０Ａは、ロックを指定した１つまたは２つ以上の命令を、実行のために、ブリッジ１３０に伝送する。第１のプロセッサ１１０Ａは、その後また第２のロックトグルコマンドをブリッジ１３０へと伝送し、ロック状態をアンロックに設定する。ロックを指定した命令を完了させさらに第２のロックトグルコマンドを実行した後、ブリッジ１３０は第１のプロセッサ１１０Ａにロック状態が再びアンロックに設定されたことを知らせる。そこでブリッジ１３０は、予め定められたプロトコルに従って、１つまたは２つ以上のプロセッサ待ち行列１３４のすべてからコマンドを選択することに戻る。
【００２５】
例示されるシステムにおいて、ソース同期クロックは付随のデータと同じ方向に伝送される。ソース同期クロックとその付随のデータとは一緒に受取られる。「ソース同期クロック」はまた「フォワードクロック」とも呼ばれることが注目される。例示的な実施例ではソース同期クロックが示されているが、コンピュータシステムに適切ないかなるクロックメカニズムをも用いてもよいということもまた注目される。データバス１２６Ａおよびアドレスバス１２８Ａもまた単なる例示的なものにすぎない。図２で示されるコンピュータシステムのオペレーションに関する種々の詳細が、以下の図３から図５の説明に関して、提供される。
【００２６】
図３を参照すると、図１および図２で示されるコンピュータシステム等のコンピュータシステム内におけるロックオペレーションを行なうための全体のオペレーションを示すフローチャートの１つの実施例が例示される。図３に示されるオペレーションはフローチャートの形式で示されているが、図３の種々のオペレーションは異なる順序で起こってもよく、または全く起こらなくてもよいということが注目される。
【００２７】
未処理のロックがない場合には、１つまたは２つ以上のプロセッサ１１０のうちの第１のプロセッサ１１０Ａが、ロックトグルコマンドをブリッジ１３０へと発行しロックを開始する。プロセッサ１１０Ａはまた、リソースカウンタ１１８およびコミットカウンタ１１９を増分させ（ステップ４１０）、通例、他のコマンドを開始することを避けるが、いくつかの実施例では投機的なコマンドの開始を選ぶことがあってもよい。ブリッジ１３０は、適切なプロセッサ待ち行列１３４内のロックトグルコマンドをバッファリングする（ステップ４１５）。ブリッジは、ロックトグルコマンドが到達するまでは、１つまたは２つ以上のプロセッサ待ち行列１３４からの要求されたオペレーションを行なう（ステップ４２０）。他の大部分のオペレーションと同様に、ブリッジ１３０は、ロックトグルコマンドがプロセッサ待ち行列１３４Ａから取除かれたとき、肯定応答信号（たとえばＡビット）を適切なプロセッサ１１０Ａに送る（ステップ４２５）。プロセッサ１１０ＡはＡビットを受取り、リソースカウンタ１１８を減分する（ステップ４３０）。
【００２８】
ブリッジ１３０は、たとえば以下の図５で説明されるようにロックトグルコマンドを処理する（ステップ４３５）。ブリッジ１３０は、ロックが確立されると、コミット信号（たとえばＣビット）をプロセッサ１１０Ａに送る（ステップ４４０）。プロセッサ１１０ＡはＣビットを受取り、コミットカウンタ１１９を減分する（ステップ４４５）。コミットカウンタ１１９がゼロに一旦到達すると、プロセッサ１１０Ａは、ロックが確立されたということを知らされる。その後、プロセッサ１１０Ａは、ロックがアクティブな間に行なわれるべき１つまたは２つ以上のコマンドをブリッジ１３０に送り、第２のロックトグルコマンドがこれに続く（ステップ４５０）。ブリッジ１３０は、ロックがアクティブなままで、１つまたは２つ以上のコマンドを処理する（ステップ４５５）。次に、ブリッジ１３０は第２のロックトグルコマンドを処理し、ロックを取消す（ステップ４６０）。第２のロックトグルコマンドは、第１のロックトグルコマンドと同様の態様で処理される。
【００２９】
図４を参照すると、ロックオペレーションを行なうためにブリッジ１３０と交信する、図２のプロセッサ１１０Ａおよび１１０Ｂのうちの第１のプロセッサ１１０Ａのオペレーションを示すフローチャートの１つの実施例が詳細に示される。図４で示されるオペレーションは単なる例示的なものにすぎず、例示されるオペレーションフローの一部ではないプロセッサ１１０またはブリッジ１３０の追加の特徴またはオペレーションを含まない。図４に示されるオペレーションはフローチャートの形式で示されているが、図４の種々のオペレーションは異なる順序で起こってもよく、または全く起こらなくてもよいということが注目される。
【００３０】
復号ユニット１１２は、ロックを特定する１つまたは２つ以上の命令を復号化し、それを識別する（ステップ３１０）。次に、復号ユニット１１２は、ロード／記憶ユニット１１４に、ロックを特定する１つまたは２つ以上のメモリオペレーションを知らせる（ステップ３１５）。より具体的には、復号ユニット１１２は、１つまたは２つ以上のメモリオペレーションをロード／記憶ユニット１１４に伝送し、ロック信号をアサートする。ロード／記憶ユニット１１４は、メモリオペレーションおよび対応するロックの要求をバッファリングする（ステップ３２０）。ロックの要求が最も古い未処理のオペレーションである場合、ロード／記憶ユニット１１４はシステムインターフェイスコントローラ１１６にロックトグルを要求する（ステップ３２５）。
【００３１】
システムインターフェイスコントローラ１１６は、ロックのために、第１のロックトグルコマンドをブリッジ１３０に発行する（ステップ３３０）。システムインターフェイスコントローラ１１６は、ブリッジ１３０が第１のロックトグルコマンドを実行するまで、たとえば、コミットカウンタ１１９がゼロにまで減分するまで、待つ（ステップ３３５）。ブリッジ１３０が第１のロックコマンドを完遂した後に、システムインターフェイスコントローラ１１６は、ロックトグルグラント信号をロード／記憶ユニット１１４に返す（ステップ３４０）。
【００３２】
ロックトグルグラント信号をシステムインターフェイスコントローラ１１６から受取ったことに応答して、ロード／記憶ユニット１１４は、ロックを特定する１つまたは２つ以上のオペレーションを行なう（ステップ３４５）。ロード／記憶ユニット１１４は、ロックを解除するための第２のロック要求をシステムインターフェイスコントローラ１１６に送る（ステップ３５０）。システムインターフェイスコントローラ１１６は、アンロックのために、第２のロックトグルコマンドをブリッジ１３０に発行する（ステップ３５５）。システムインターフェイスコントローラ１１６は、（アンロックのための）第２のロックトグル要求をロード／記憶ユニット１１４から受取ったことに応答して、アンロックのための第２のロックトグルコマンドをブリッジ１３０に発行してもよい。システムインターフェイスコントローラ１１６は、ブリッジ１３０がアンロックのためのロックトグルコマンドを実行するまで待ち（ステップ３６０）、それからロックトグルグラント信号を返す。
【００３３】
図５は、制御論理１３６が種々のプロセッサ待ち行列１３４からコマンドを取除くときの、ブリッジ１３０のオペレーションのハイレベルフローチャートの実施例を例示する。図５に示されるオペレーションはフローチャートの形式で示されるが、図５の種々のオペレーションは異なる順序で起こってもよく、または全く起こらなくてもよいということが注目される。
【００３４】
制御論理１３６はまず、未処理のロックが存在するかどうかを検査する（判断ブロック５１０）。未処理のロックは、ロックレジスタ１３２内のロック状態によって、またはロック状態を表わす他の所望の手段によって、表示されてもよい。より具体的には、ロックレジスタ１３２内のロック状態は、ノーロック、プロセッサ１１０Ａのためのロック、またはプロセッサ１１０Ｂのためのロックを表示してもよい。所望であれば、ロック状態の他の符号化で、いかなる数のプロセッサ１１０のためのロックを識別してもよい。未処理のロックが存在する場合には、制御論理１３６は、ロックを発行したプロセッサ待ち行列からのみコマンドを選択する（ステップ５１５）。制御論理１３６は、コマンドを調べそれがロックトグルコマンドであるかどうかを確かめる（判断ブロック５２０）。コマンドがロックトグルコマンドである場合には、制御論理１３６は未処理のロックをリセットする（ステップ５２５）。制御論理１３６は、既存のロックがありさらにロックトグルコマンドが実行される場合には、ロック状態をノーロックに設定する。そのとき制御論理１３６は動作可能になり、ブリッジ１３０の通常のオペレーションを続ける。
【００３５】
判断ブロック５２０で、コマンドがロックトグルコマンドでない場合には、ブリッジ１３０は、ロックを続けたままで、選択されたコマンドを処理する（ステップ５３０）。
【００３６】
判断ブロック５１０で、未処理のロックが存在しない場合には、制御論理１３６は、利用可能なプロセッサ待ち行列１３４から適切なコマンドを選択する（ステップ５３５）。どのコマンドを、どの待ち行列１３４から、ということを決定するためのプロトコルは、所望の、いかなる好適なプロトコルであってもよい。制御論理１３６は、判断ブロック５４０で、コマンドがロックトグルコマンドであるかどうかを確かめるために検査する。コマンドがロックトグルコマンドである場合には、制御論理はロックを設定し（ステップ５４５）、たとえばロックレジスタ１３２のロック状態を設定して、対応するプロセッサ１１０のためのロックを表示する。
【００３７】
判断ブロック５４０のコマンドがロックトグルコマンドでない場合には、制御論理１３６は選択されたコマンドを処理するのみである（ステップ５３０）。
【００３８】
図６を参照すると、図１のコンピュータシステム内の、ここではＳｙｓＡｄｄＯｕｔコマンドフォーマットと呼ばれるプロセッサによって開始されたコマンドのためのフォーマットの実施例のブロック図が例示される。好ましい実施例では、プロセッサ１１０が、読出、書込、データ移動を伴わないプローブ応答、キャッシュブロック状態遷移ブロードキャスト、およびロックトグルコマンドのためのコマンドをシステム１３０に発行するときに、ＳｙｓＡｄｄＯｕｔコマンドフォーマットが用いられる。ＳｙｓＡｄｄＯｕｔコマンドフォーマットは好ましくは、プロセッサアドレスバス１２８のアドレスアウト線の線［１４：２］♯上を送られる。
【００３９】
図示されるように、ＳｙｓＡｄｄＯｕｔコマンドフォーマットは、転送されたクロック信号の立上り端縁と立下り端縁との両方の上でクロックされる実施例で２つの完全な転送されたクロックサイクルにわたる４ビットタイムの広がりを含む。図６ではＡＤＤＲＥＳＳで示される物理アドレスの種々のビットが、４ビットタイムサイクルにわたって分配される。他のコマンドフィールドは、Ｍ１ビット、ＣＯＭＭＡＮＤ［４：０］フィールド、Ｍ２ビット、ＭＡＳＫ［７：０］フィールド、ＣＨフィールド、ＩＤ［２：０］フィールド、およびＲＶビットを含む。
【００４０】
図示されるように、ビットタイム０は、Ｍ１ビット、ＣＯＭＭＡＮＤ［４：０］フィールド、およびＡＤＤＲＥＳＳの一部を含む。Ｍ１ビットは、初期プローブミスインディケータである。Ｍ１が［１］に設定されている場合には、このプロセッサ１１０が受取る最も古いプローブはミスという結果になる。プローブがビットタイム０という結果になる場合には、Ｍ１がアサートされる。ＣＯＭＭＡＮＤ［４：０］フィールドは、プロセッサ１１０からシステム１３０へのコマンド符号化を表示するのに用いられる。ＣＯＭＭＡＮＤ［４：０］フィールドの種々の符号化は、読出、書込、プローブ応答等を識別する。ある特定の符号化がロックトグルコマンドを表示する。
【００４１】
図示されるように、ビットタイム１はＡＤＤＲＥＳＳの別の部分を含む。
図示されるように、ビットタイム２は、Ｍ２ビット、ＭＡＳＫ［７：０］フィールド、ＣＨフィールド、およびＩＤ［２：０］フィールドを含む。Ｍ２ビットは、レート(late)プローブミスインディケータまたはキャッシュヒット確認である。Ｍ２が［１］に設定されている場合、このプロセッサ１１０が受取る最も古いプローブはミスという結果になる。ビットタイム０の後、かつビットタイム２の前に、プローブが決定される場合には、Ｍ２がアサートされる。Ｍ２はまた、プローブヒットを表示するがデータ移動を表示しないＣＨビットを確認してもよい。ＭＡＳＫ［７：０］フィールドは、データ転送マップである。ＭＡＳＫ［７：０］フィールドは、すべてのサブキャッシュブロックコマンド（バイト、ＬＷ、ＱＷ）のために用いられ、それは、データバス１２８の、どのバイト（たとえば８ビット）、ロングワード（たとえば１６ビット）、またはクワットワード（たとえば３２ビット）が、要求されるデータ転送のために有効であるのかを表示する。ＣＨビットはキャッシュヒットビットである。最も古い未処理のプローブが、システム１３０へのデータ移動が必要とされないプロセッサキャッシュヒットという結果になった場合には、キャッシュヒットビットは［たとえば１］に設定される。キャッシュヒットビットが設定されると、Ｍ２ビットが設定される。ＩＤ［２：０］フィールドは、バッファ識別フィールドである。ＩＤ［２：０］フィールドは、ＣＯＭＭＡＭＤ［４：０］フィールド内のコマンドに対応するミスアドレスバッファ（ＭＡＢ）、ビクテムデータバッファ（ＶＤＢ）、または書込データバッファ（ＷＤＢ）エントリを指定する。ＩＤ［２：０］フィールドは、コマンドに依存して、ＷＤＢまたはＶＤＢを暗にマップする。
【００４２】
図示されるように、ビットタイム３は、ＲＶビット、およびＡＤＤＲＥＳＳの別の部分を含む。ＲＶビットは、ＣＯＭＭＡＮＤ［４：０］フィールド内の投機的なコマンドを確認する書込有効ビットである。
【００４３】
図７を参照すると、図１のコンピュータシステム内の、ここではＳｙｓＡｄｄＩｎコマンドフォーマットと呼ばれる、メモリコヒーレンシィを保持しさらにデータを移動させるような、システムによって開始されたコマンドのためのフォーマットの実施例のブロック図が例示される。好ましい実施例では、ブリッジ１３０が、プロセッサ１１０にキャッシュを探索させ、またはプロセッサ１１０への、およびプロセッサ１１０からのデータ移動を開始させるコマンドをプロセッサ１１０に発行するとき、ＳｙｓＡｄｄＩｎコマンドフォーマットが用いられる。ＳｙｓＡｄｄＩｎコマンドフォーマットは好ましくは、プロセッサアドレスバス１２８のアドレスイン線の線［１４：２］♯上を送られる。
【００４４】
図示されるように、ＳｙｓＡｄｄＩｎコマンドフォーマットは、転送されたクロック信号の立上り端縁と立下り端縁との両方の上でクロックされる実施例で２つの完全な転送されたクロックサイクルにわたる４ビットタイムの広がりを含む。図７でＡＤＤＲＥＳＳで示される物理アドレスが、４ビットタイムサイクルにわたって分配される。他のコマンドフィールドは、プローブタイプＰＲＯＢＥ［４：０］フィールド、システムデータコマンドＳＹＳＤＣ［４：０］フィールド、解除ビクティムバッファＲＶＢビット、解除プローブバッファＲＰＢビット、アクノリッジＡビット、バッファ識別番号ＩＤ［３：０］フィールド、およびコミットＣビットを含む。
【００４５】
プローブタイプＰＲＯＢＥ［４：０］フィールドは、プロセッサ１１０がデータをブリッジ１３０に戻すべき条件を表示し、プローブがキャッシュブロックヒットの結果になる場合には、プロセッサがキャッシュブロックをそれに変えなければならないキャッシュ状態を表示する。システムデータコマンドＳＹＳＤＣ［４：０］フィールドは、プロセッサへの、およびプロセッサからのデータ移動を制御する。プローブタイプＰＲＯＢＥ［４：０］フィールドとシステムデータコマンドＳＹＳＤＣ［４：０］フィールドとの種々の符号化が考えられる。ＲＶＢビットは、アサートされると、ＩＤ［３：０］フィールドに対応するＶＤＢまたはＷＤＢエントリを解除するようプロセッサ１１０に信号を送る。ＲＰＢビットは、アサートされると、ＩＤ［２：０］に対応する、ＶＤＢ内のプローブデータエントリを解除するようプロセッサに信号を送る。
【００４６】
アクノリッジビットは、プロセッサによって発行されるコマンドに肯定応答する。そこでプロセッサはリソースカウンタを減分する。バッファ識別番号フィールドは、書込およびバッファ解除コマンドのためのＲＶＢおよびＲＰＢビットに関連のバッファＩＤを識別する。ＩＤ［３］は設定されるとＷＤＢエントリを表示し、一方でクリアされたＩＤ［３］はＶＤＢエントリを表示する。コミットビットはシステム１３０によってアサートされ、プロセッサが生成したコマンドがいつコヒーレンシィポイントに到達したのかを表示する。
【００４７】
好ましい実施例では、プロセッサバス１２６Ａおよび１２８Ａは、マサチューセッツ州、メイナード（Mass. Maynard）のデジタルイクイップメント社（Digital Equipment Corp.）からのＥＶ６バスのバージョンと互換性がある。ＥＶ６バスは、これもデジタルイクイップメント社から入手可能なＡＬＰＨＡプロセッサのために設計された。ロックトグルコマンドは好ましくは、プロセッサがプロセッサ１１０である場合には、ＭＢコードポイントを用いてロックまたはアンロックを要求する。なぜならば、プロセッサ１１０Ａおよび１１０Ｂはメモリバリアトランザクションを行なわないからである。このようにして、ロックトグルコマンドは、プロセッサ１１０がＥＶ６バスを用いることを可能にしながら依然としてＡＬＰＨＡプロセッサとの互換性を維持することを可能にする。
【００４８】
上述の開示が完全に理解されると、多くの変更および変形が当業者にとって明らかになるであろう。以下の請求項がこのようなすべての変更および変形を含むと解釈されることが意図される。
【００４９】
【産業上の適用性】
この発明は一般に、プロセッサおよびコンピュータシステムに適用可能である。
【図面の簡単な説明】
【図１】  プロセッサをブリッジに連結する別々のバスを備える２つのプロセッサを含むコンピュータシステムの実施例のブロック図である。
【図２】  １つまたは２つ以上のロックトランザクションを処理するように構成される、図１のプロセッサおよびブリッジの実施例のブロック図である。
【図３】  図２のプロセッサとブリッジとの間の交信の実施例を示すフローチャートである。
【図４】  図２のコンピュータシステム内でロックオペレーションを行なうための方法の実施例を示すフローチャートである。
【図５】  図１のブリッジのオペレーションの実施例を示すフローチャートである。
【図６】  図１のコンピュータシステム内における、プロセッサによって開始されたコマンドのためのフォーマットの実施例を示す図である。
【図７】  メモリのコヒーレンシィを維持しさらに図１のコンピュータシステム内のデータを移動させるために、ブリッジによって用いられるコマンドのためのフォーマットの実施例を示す図である。
【図１】
0004565786.tif 000002
【図２】
0004565786.tif 000003
【図３】
0004565786.tif 000004
【図４】
0004565786.tif 000005
【図５】
0004565786.tif 000006
【図６】
0004565786.tif 000007
【図７】
0004565786.tif 000008