JP4565786B2 - ロックの開始と終了を要求するためのバスコマンドコードポイントの使用の最小化 - Google Patents

ロックの開始と終了を要求するためのバスコマンドコードポイントの使用の最小化 Download PDF

Info

Publication number
JP4565786B2
JP4565786B2 JP2001505301A JP2001505301A JP4565786B2 JP 4565786 B2 JP4565786 B2 JP 4565786B2 JP 2001505301 A JP2001505301 A JP 2001505301A JP 2001505301 A JP2001505301 A JP 2001505301A JP 4565786 B2 JP4565786 B2 JP 4565786B2
Authority
JP
Japan
Prior art keywords
lock
processor
command
bridge
response
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2001505301A
Other languages
English (en)
Other versions
JP2003527652A5 (ja
JP2003527652A (ja
Inventor
マイヤー,デリック・アール
ルーチャック,ウィリアム・ケー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2003527652A publication Critical patent/JP2003527652A/ja
Publication of JP2003527652A5 publication Critical patent/JP2003527652A5/ja
Application granted granted Critical
Publication of JP4565786B2 publication Critical patent/JP4565786B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【0001】
【技術分野】
この発明は、通信インターフェイス、より具体的にはロック状態の開始または終了のいずれかを要求するためのロックトグルコマンドに関する。
【0002】
【背景技術】
コンピュータシステムでは、特に、メモリまたはI/O(入力/出力)スペースに、並行にアクセスしてもよい多数のプロセッサを含むコンピュータシステムでは、メモリへのアトミックアクセスが他のシステムデバイスによって割り込まれないことを保証するあるメカニズムが必要とされる。たとえば、メモリに基づく変数の場合などでは、第1のシステムデバイスが、メモリ内のある場所から読出し、その同じメモリ場所に新しい値を書込もうとするであろう。第1のシステムデバイスがメモリ場所でのオペレーションを終了する前に、同じメモリ場所に、第2のシステムデバイスが読出または書込をすることができないようにシステムを「ロック」するあるメカニズムが必要とされている。一般に、ロックオペレーションは、所与のデバイスから所与のメモリ場所または範囲への1つまたは2つ以上の読出サイクルとそれに続く1つまたは2つ以上の書込サイクルのシーケンスであると定義することができる。ロックオペレーションを含むそのシーケンスの間、他のデバイスは1つも、少なくとも所与のメモリ場所にアクセスしない。
【0003】
x86プロセッサでは、LOCKプレフィックスを用いるある命令にロッキング機能が設けられている。ある他の命令は、メモリの読出および書込がロックされることを暗に指定する。ロックオペレーションはまた、ページ表更新およびインタラプトアクノレッジサイクルをも含んでもよいことが注目される。x86ハードウェアでは、ロッキングは伝統的にx86プロセッサ上のLOCK♯ピンを通して実現されてきた。ロックオペレーションを行なうプロセッサは、ロックオペレーションを含む、読出および書込シーケンスの間、LOCK♯ピンをアサートする。x86プロセッサは一般に、プロセッサのメモリへのアクセスが単一の共有プロセッサバスを通して提供されるコンピュータシステム内に設計されてきたため、LOCK♯ピンアサーションを用いて共有バスリソースをロッキングプロセッサ専用にすることができる。共有バスがロックされている間、バスリソースを共有する他のプロセッサは共有バスにアクセスすることを禁じられるため、他のプロセッサは、読出と書込とのアトミックなシーケンスに割り込むことができない。
【0004】
残念なことに、共有バスシステムにはいくつかの欠点がある。たとえば、多数のデバイスが共有バスに接続されているため、バスは通例比較的低い周波数で動作する。多数の接続は、バス上で信号を駆動するデバイスに高容量性負荷を与え、多数の接続ポイントは、高周波数では比較的複雑な伝送路モデルを与える。したがって、周波数は低いままでとどまり、共有バス上で利用できる帯域幅は同様に比較的狭い。狭い帯域幅により、共有バスへの追加のデバイスの接続が妨げられる。なぜならば、利用できる帯域幅によって性能が制限されるおそれがあるからである。
【0005】
共有バスシステムにおける別の不利な点は、より多数のデバイスへのスケーラビリティの欠如である。上述のように、帯域幅の大きさは固定されている(追加のデバイスを付加することで、バスの動作可能周波数が減じられると、それはより狭くなるおそれもある)。バスに(直接または間接的に)接続されているデバイスの帯域幅要件が、バスの利用可能な帯域幅を一旦超えると、バスへのアクセスを試みるとき、デバイスは頻繁に機能停止する。このようにして、コンピュータシステムの全体の性能が衰えるおそれがある。
【0006】
x86プロセッサは、動作周波数および全体の性能において向上し続けているため、共有コンピュータバスコンピュータシステムモデルは、性能面での限界となってきている。それゆえに、非共有バスシステム内でロッキング機能を提供するための方法が望まれる。
【0007】
【発明の開示】
上述の問題は、ロックを設定し解除するためのトグルコマンド、つまりロックトグルを用いるためのシステムおよび方法によって大部分が解決される。例示的なコンピュータシステムでは、1つまたは2つ以上のプロセッサの各々がバスブリッジに、別々の高速接続を通して結合され、その各々は、ある実施例では、それぞれがソース同期クロック線を備える一対の単方向アドレスバスと、付随のソース同期クロック線を備える双方向データバスとを含む。ロックトグルコマンドを用いて、プロセッサからシステムコヒーレンシィポイント、たとえばバスブリッジへとロック要求およびアンロック要求の両方を伝送する。ロックが確立または解除されたとき、システムコヒーレンシィポイントは肯定応答する。ロックがアクティブな間は、他のプロセッサは、少なくともそれについてロックが開始されたメモリ場所にアクセスすることを禁じられる。このようにして、ロックはシステムコヒーレンシィポイントで確立され、このことは、有利なことには、非共有バスシステム内でのロック機能を可能にするであろう。ロックトグルコマンドの使用はまた、有利なことには、単一のコマンドコードポイントの使用を可能にし、他のポイントを他の用途に利用できるようにするであろう。
【0008】
概して、復号ユニット、ロード/記憶ユニット、およびシステムインターフェイスコントローラを含むプロセッサが企図される。復号ユニットは、ロックを特定する第1の1つまたは2つ以上の命令を受取りそれを復号化するように結合され。復号ユニットは、第1の1つまたは2つ以上の命令に応答して、ロック表示を生成するように構成される。ロード/記憶ユニットは、ロック表示と、第1の1つまたは2つ以上の命令とを復号ユニットから受取るように結合される。ロード/記憶ユニットは、第1の1つまたは2つ以上の命令を選択して実行し、さらにそれに応答してロックトグルコマンドの第1の要求を伝送するように構成される。システムインターフェイスコントローラは、ロード/記憶ユニットとバスとの間に結合される。システムインターフェイスコントローラは、ロックトグルコマンドの第1の要求をロード/記憶ユニットから受取り、さらにロックトグルコマンドの第1の要求を受取ったことに応答して、第1のロックトグルコマンドを発行するように構成される。ロード/記憶ユニットはさらに、第1の1つまたは2つ以上の命令を実行したことに応答して、ロックトグルコマンドの第2の要求を伝送するように構成される。システムインターフェイスコントローラはさらに、ロックトグルコマンドの第2の要求をロード/記憶ユニットから受取り、さらにロックトグルコマンドの第2の要求を受取ったことに応答して、第2のロックトグルコマンドを発行するように構成される。
【0009】
1つまたは2つ以上のプロセッサをコンピュータシステムに結合するためのブリッジもまた企図される。概して、ブリッジは、1つまたは2つ以上のプロセッサのうちの第1のプロセッサから複数のコマンドを受取るように結合される第1の入力ポートと、第1の入力ポートに結合される第1のプロセッサ待ち行列と、ロック状態を記憶するように構成されるロックレジスタと、第1の入力待ち行列とロックレジスタとに結合される制御論理とを含む。第1の入力ポートは、前記1つまたは2つ以上のプロセッサのうちの第1のプロセッサから第1のプロセッサ待ち行列へと複数のコマンドを転送するように構成される。第1のプロセッサ待ち行列は、1つまたは2つ以上のプロセッサのうちの第1のプロセッサからの複数のコマンドを記憶するように構成される。1つまたは2つ以上のプロセッサのうちの第1のプロセッサからの複数のコマンドは、ロックトグルコマンドを含む。制御論理は、1つまたは2つ以上のプロセッサのうちの第1のプロセッサからの複数のコマンドを、第1のプロセッサ待ち行列から取除くように構成される。ロックトグルコマンドを第1のプロセッサ待ち行列から取除いたことに応答して、制御論理は、ロック状態を検査するように構成される。制御論理はさらに、ロック状態がロックの欠如を表示する場合には、ロック状態を設定して1つまたは2つ以上のプロセッサのうちの第1のプロセッサのためのロックを表示するように構成される。制御論理はさらに、ロック状態がロックを表示する場合には、ロック状態を設定してロックの欠如を表示するように構成される。
【0010】
コンピュータシステムもまた企図される。概して、コンピュータシステムは、1つまたは2つ以上のプロセッサと、1つまたは2つ以上のプロセッサに結合されるブリッジとを含む。ブリッジは、1つまたは2つ以上のプロセッサから受取るコマンドを実行するように構成される。1つまたは2つ以上のプロセッサの各々は、ロックトグルコマンドをブリッジへと伝送して、ロック状態がロックを表示するように設定されることを要求するように構成される。ブリッジは、1つまたは2つ以上のプロセッサのうちの第1のプロセッサからロックトグルコマンドを受取ったことに応答して、ロック状態を検査するように構成される。制御論理はさらに、ロック状態がロックの欠如を表示する場合には、ロック状態を設定して1つまたは2つ以上のプロセッサのうちの第1のプロセッサのためのロックを表示し、さらにはロック状態がロックを表示する場合には、ロック状態を設定してロックの欠如を表示するように構成される。
【0011】
1つまたは2つ以上のプロセッサとシステムデバイスとを含むコンピュータシステムを動作させるための方法もまた企図される。概して、その方法は、1つまたは2つ以上のプロセッサのうちの第1のプロセッサからシステムデバイスへと第1のロックトグルコマンドを発行するステップを含む。その方法はさらに、第1のロックトグルコマンドに応答して、システムデバイス内のロック状態の表示を検査する。その方法はさらに、ロック状態の表示を検査してロック状態がロックの欠如を表示すると判断したことに応答して、ロック状態を設定して第1のプロセッサによるロックを表示するステップを含む。その方法はまた、ロック状態の表示を検査してロック状態がロックを表示すると判断したことに応答して、ロック状態を設定してロックの欠如を表示する。
【0012】
この発明の他の目的および利点は、以下の詳細な説明を読み、さらには添付の図を参照することによって、明らかになるであろう。
【0013】
この発明には、種々の変形および代替の形の余地があるが、図における例によってその具体的な実施例を示し、それらをここで詳細に説明する。しかし、図および詳細な説明は、開示された特定の形式に発明を制限することを意図するのではなく、逆に、添付の請求項によって規定されるようなこの発明の思想と範囲とに入るすべての変形、均等物、および代替物をカバーすることを意図することが理解されるべきである。
【0014】
【発明の実施の態様】
図1を参照すると、一般的なコンピュータシステムの実施例のブロック図が示される。第1のプロセッサ110Aと第2のプロセッサ110Bとの各々は、別々のプロセッサバスを通してブリッジ130に結合される。第1のプロセッサ110Aと第2のプロセッサ110Bとは共に、それぞれのプロセッサバスを用いてメモリおよびI/Oオペレーションを行なうように、好ましくは構成される。ある実施例では、プロセッサ110Aおよび110Bは、x86命令セットアーキテクチャを実現する。他の実施例はいかなる好適な命令セットアーキテクチャを実現してもよい。ブリッジ130はさらにメモリ140に結合される。メモリ140は好ましくは、第1のプロセッサ110Aと第2のプロセッサ110Bとの両方にさらには他のシステムデバイスにもアクセス可能なデータと命令とを記憶するように構成される。メモリ140は、SDRAM(同期ダイナミックランダムアクセスメモリ)、RDRAM(ランバスDRAM)[RDRAMおよびRAMBUSはランバス社(Rambus,Inc.)の登録商標である]、または他のいかなる好適なメモリタイプからなっていてもよい。アドバンスドグラフィックスポートデバイス(advanced graphics port device)(AGP)150もまた任意でブリッジ130に結合される。図示されるように、ペリフェラルコンポーネントインターコネクト(Peripheral Component Interconnect)(PCI)バス160もまたブリッジ130に結合される。種々のI/OコンポーネントがPCIバス160に結合されてもよい。
【0015】
インダストリスタンダードアーキテクチャ(ISA)バス等の従来のバスを含むコンピュータシステムの実施例では、ブリッジ130はしばしばノースブリッジ130と呼ばれ、PCIバス160と従来のバスとの間のブリッジ(図示せず)はサウスブリッジと呼ばれることが注目される。例示される実施例では、ブリッジ130はコンピュータシステムのシステムマスタであることもまた注目される。例示される実施例は2つのプロセッサ110Aおよび110Bを含むが、所望であれば、いかなる数のプロセッサ110もコンピュータシステムに含まれ得ることが注目される。
【0016】
例示される実施例では、ブリッジ130はシステムマスタとして動作し、プロセッサ110Aおよび110B、メモリ140、AGPデバイス150、およびPCIバス等の間の通信を調整する。ブリッジ130は、プロセッサ110Aおよび/または110Bを探索して、他のプロセッサ110Aまたは110B、AGPデバイス150、またはPCIバス160上のPCIデバイス等によってアクセスされるメモリ場所があるか調べることによって、コンピュータシステムのデバイス間のデータ転送のためのコヒーレンシィを維持する。
【0017】
図2を参照すると、図1の一般的なコンピュータシステムの、ある構成要素の実施例のより詳細なブロック図が例示される。第1のプロセッサ110A、プロセッサバスコンポーネント126Aおよび128A、およびブリッジ130の種々の詳細が例示される。
【0018】
図示されるように、プロセッサ110Aは、L/Sコマンドバスおよびロック信号線を通して、ロード/記憶ユニット114に結合される復号ユニット112を含む。ロード/記憶ユニット114は、アドレスおよびデータバス、ロックトグル要求信号線、およびロックトグルグラント信号線を通して、システムインターフェイスコントローラ116に結合される。システムインターフェイスコントローラ116は、リソースカウンタ118(Aカウンタ)とコミットカウンタ119(Cカウンタ)とを含む。第1のプロセッサ110Aおよび第2のプロセッサ110Bの各々は、別々のプロセッサバスを通してブリッジ130に結合される。各プロセッサバスは、専用のソース同期クロック線126を備える双方向データバスと、付随のソース同期クロック線128を備える単方向アドレスインアドレスアウト線(アドレスバス)とを含む。第1のプロセッサ110Aとブリッジ130との間のプロセッサバスは、データバス126Aとアドレスバス128Aとを含み、少なくとも第1の入力ポートを通してブリッジ130へと結合する。第2のプロセッサ110Bとブリッジ130との間のプロセッサバスは、データバス126Bとアドレスバス128Bとを含み、少なくとも第2の入力ポートを通してブリッジに結合する。ブリッジ130は、第1のプロセッサ110Aからのコマンドの記憶に専用の第1のプロセッサ待ち行列134Aと、第2のプロセッサ110Bからのコマンドの記憶に専用の第2のプロセッサ待ち行列134Bとを含む。メモリ140もまたブリッジ130に結合されて示される。
【0019】
一般に、ロックが表示されない場合、コンピュータシステムの動作は以下のとおりである:プロセッサ110Aの復号ユニット112は、命令を受取りそれを復号化する。復号ユニット112は、メモリオペレーション(メモリへのロードまたは記憶を指定する命令)をロード/記憶ユニット114に運ぶ。ロード/記憶ユニット114は、メモリオペレーションを内部データキャッシュ(図示せず)に運んでもよく、システムサービスを必要とするメモリオペレーションを、システムインターフェイスコントローラ116へ運ぶ。システムインターフェイスコントローラ116は、アドレスバス128Aおよびデータバス126Aを用いて、ブリッジ130等のシステムデバイスにオペレーションを運ぶ。より具体的には、システムインターフェイスコントローラ116は、アドレスバス128Aのアドレスアウト部分上に、アドレスおよびコマンドインフォメーションを伝送する。アドレスバス128Aのアドレスイン部分上で、ブリッジ130は、対応するデータ転送の準備ができたことを合図する。そこで対応するデータがデータバス126A上で伝送される。
【0020】
ブリッジ130に送られたコマンドの大部分について、システムインターフェイスコントローラ116は、リソースカウンタ118(Aカウンタ)とコミットカウンタ119(Cカウンタ)とを増分する。ブリッジ130内の制御論理136は、第1のプロセッサ110Aおよび第2のプロセッサ110Bからコマンドを受取り、コマンドをそれぞれの待ち行列、プロセッサA待ち行列134AとプロセッサB待ち行列134Bとに置く。制御論理136は、予め定められたプロトコルによって規定された順序で、つまりラウンドロビンまたは最終アクセスアルゴリズムに従って、プロセッサA待ち行列134AおよびプロセッサB待ち行列134Bからコマンドを取除く。プロセッサ110Bもまた、同様の様態で動作する。リソースカウンタ118および/またはコミットカウンタ119はある種のコマンドをトラッキングしなくてもよいということが注目される。トラッキングされないコマンドの例は、ある種のプローブ応答、ある種のバッファフラッシュ、ノーオペレーションコマンド(NOPs)、および特別なブロックメモリコマンドを含み得る。
【0021】
プロセッサA待ち行列134Aからコマンドを取除く等によって、待ち行列エントリを解放したことに応答して、制御論理136は、それぞれのプロセッサ110Aのシステムインターフェイスコントローラ116に肯定応答信号を送る。システムインターフェイスコントローラ116は、ブリッジ130から肯定応答信号を受取ったことに応答して、リソースカウンタ118を減分する。システムマスタとして働くブリッジ130が特定のプロセッサコマンドに対してコヒーレンシィポイントに一旦到達すると、制御論理136は、コミット信号を適切なシステムインターフェイスコントローラ116に送る。システムインターフェイスコントローラ116は、コミット信号をブリッジ130から受取ったことに応答して、コミットカウンタ119を減分するように構成される。好ましい実施例では、プロセッサ110は、コミット信号をいかなる特定のプロセッサコマンドにも関連させないことが注目される。プロセッサコマンドのいずれかがコヒーレンシィポイントに到達したとき、ブリッジ130は単にコミット信号を返すのみである。アクノレッジ信号およびコミット信号は、アドレスバス128Aのアドレスイン部分上のアドレスインコマンドの一部であってもよい。
【0022】
ある実施例では、リソースカウンタ118および/またはコミットカウンタ119内の値が予め定められた値に到達すると、プロセッサ110Aおよび110Bは、新しいコマンドをブリッジ130に送ることをやめるように構成されている。リソースカウンタ118は、各プロセッサ110に、ブリッジ130に送ったコマンドのうちいくつがブリッジ130によって肯定応答されていないのかを、トラッキングさせてもよい。コミットカウンタ119は、各プロセッサ110に、コヒーレンシィポイントにまだ到達していない、ブリッジ130に送られた未処理のコマンドの数を制限させてもよい。
【0023】
種々の実施例において、リソースカウンタ118の用途と解釈とは異なっていてもよいことが注目される。ある実施例では、4エントリ共通プロセッサ待ち行列134は、一方は読出のためであり他方は書込のためである、2つのより大きな待ち行列を送る。肯定応答リミット(まだ肯定応答されていない、プロセッサ110が発行したコマンドの数に対するリミット)は、4に設定される。別の実施例では、1つのプロセッサ待ち行列は、読出と書込との両方を保持する。共通の待ち行列エントリの割当が解除されたとき、Aビットがブリッジ130からプロセッサ110へと返される。
【0024】
概して、1つまたは2つ以上のプロセッサ110のうちの第1のプロセッサ110Aが、メモリ140へのアトミックアクセスを行なおうとするか、またはロックを必要とする1つまたは2つ以上の何らかの他のオペレーションを行なおうとするとき、第1のプロセッサ110Aは、ブリッジ130等のシステムマスタに、第1のロックトグルコマンドを送る。第1のロックトグルコマンドが完遂されさらにロックが表示されるまでは、第1のプロセッサ110Aは通例それ以上のコマンドをブリッジ130に送ることを避けるが、ある状況下では、ロックトグルコマンドの後に、ある種のコマンドを送ることができる。第1のロックトグルコマンドが到達するまでは、ブリッジ130は1つまたは2つ以上のプロセッサ待ち行列134からコマンドを選択するように動作する。第1のロックトグルコマンドを実行する際に、ブリッジ130はロックレジスタ132内のロック状態を調べ、第1のプロセッサ110Aのためのロックを開始し、さらには第1のプロセッサ110Aにロックトグルコマンドを完遂したことを知らせる。ブリッジ130は、ロック状態が第1のプロセッサ110Aのためのロックを表示している間は、他のすべてのプロセッサ110からのコマンドを無視する。第1のプロセッサ110Aは、ロックを指定した1つまたは2つ以上の命令を、実行のために、ブリッジ130に伝送する。第1のプロセッサ110Aは、その後また第2のロックトグルコマンドをブリッジ130へと伝送し、ロック状態をアンロックに設定する。ロックを指定した命令を完了させさらに第2のロックトグルコマンドを実行した後、ブリッジ130は第1のプロセッサ110Aにロック状態が再びアンロックに設定されたことを知らせる。そこでブリッジ130は、予め定められたプロトコルに従って、1つまたは2つ以上のプロセッサ待ち行列134のすべてからコマンドを選択することに戻る。
【0025】
例示されるシステムにおいて、ソース同期クロックは付随のデータと同じ方向に伝送される。ソース同期クロックとその付随のデータとは一緒に受取られる。「ソース同期クロック」はまた「フォワードクロック」とも呼ばれることが注目される。例示的な実施例ではソース同期クロックが示されているが、コンピュータシステムに適切ないかなるクロックメカニズムをも用いてもよいということもまた注目される。データバス126Aおよびアドレスバス128Aもまた単なる例示的なものにすぎない。図2で示されるコンピュータシステムのオペレーションに関する種々の詳細が、以下の図3から図5の説明に関して、提供される。
【0026】
図3を参照すると、図1および図2で示されるコンピュータシステム等のコンピュータシステム内におけるロックオペレーションを行なうための全体のオペレーションを示すフローチャートの1つの実施例が例示される。図3に示されるオペレーションはフローチャートの形式で示されているが、図3の種々のオペレーションは異なる順序で起こってもよく、または全く起こらなくてもよいということが注目される。
【0027】
未処理のロックがない場合には、1つまたは2つ以上のプロセッサ110のうちの第1のプロセッサ110Aが、ロックトグルコマンドをブリッジ130へと発行しロックを開始する。プロセッサ110Aはまた、リソースカウンタ118およびコミットカウンタ119を増分させ(ステップ410)、通例、他のコマンドを開始することを避けるが、いくつかの実施例では投機的なコマンドの開始を選ぶことがあってもよい。ブリッジ130は、適切なプロセッサ待ち行列134内のロックトグルコマンドをバッファリングする(ステップ415)。ブリッジは、ロックトグルコマンドが到達するまでは、1つまたは2つ以上のプロセッサ待ち行列134からの要求されたオペレーションを行なう(ステップ420)。他の大部分のオペレーションと同様に、ブリッジ130は、ロックトグルコマンドがプロセッサ待ち行列134Aから取除かれたとき、肯定応答信号(たとえばAビット)を適切なプロセッサ110Aに送る(ステップ425)。プロセッサ110AはAビットを受取り、リソースカウンタ118を減分する(ステップ430)。
【0028】
ブリッジ130は、たとえば以下の図5で説明されるようにロックトグルコマンドを処理する(ステップ435)。ブリッジ130は、ロックが確立されると、コミット信号(たとえばCビット)をプロセッサ110Aに送る(ステップ440)。プロセッサ110AはCビットを受取り、コミットカウンタ119を減分する(ステップ445)。コミットカウンタ119がゼロに一旦到達すると、プロセッサ110Aは、ロックが確立されたということを知らされる。その後、プロセッサ110Aは、ロックがアクティブな間に行なわれるべき1つまたは2つ以上のコマンドをブリッジ130に送り、第2のロックトグルコマンドがこれに続く(ステップ450)。ブリッジ130は、ロックがアクティブなままで、1つまたは2つ以上のコマンドを処理する(ステップ455)。次に、ブリッジ130は第2のロックトグルコマンドを処理し、ロックを取消す(ステップ460)。第2のロックトグルコマンドは、第1のロックトグルコマンドと同様の態様で処理される。
【0029】
図4を参照すると、ロックオペレーションを行なうためにブリッジ130と交信する、図2のプロセッサ110Aおよび110Bのうちの第1のプロセッサ110Aのオペレーションを示すフローチャートの1つの実施例が詳細に示される。図4で示されるオペレーションは単なる例示的なものにすぎず、例示されるオペレーションフローの一部ではないプロセッサ110またはブリッジ130の追加の特徴またはオペレーションを含まない。図4に示されるオペレーションはフローチャートの形式で示されているが、図4の種々のオペレーションは異なる順序で起こってもよく、または全く起こらなくてもよいということが注目される。
【0030】
復号ユニット112は、ロックを特定する1つまたは2つ以上の命令を復号化し、それを識別する(ステップ310)。次に、復号ユニット112は、ロード/記憶ユニット114に、ロックを特定する1つまたは2つ以上のメモリオペレーションを知らせる(ステップ315)。より具体的には、復号ユニット112は、1つまたは2つ以上のメモリオペレーションをロード/記憶ユニット114に伝送し、ロック信号をアサートする。ロード/記憶ユニット114は、メモリオペレーションおよび対応するロックの要求をバッファリングする(ステップ320)。ロックの要求が最も古い未処理のオペレーションである場合、ロード/記憶ユニット114はシステムインターフェイスコントローラ116にロックトグルを要求する(ステップ325)。
【0031】
システムインターフェイスコントローラ116は、ロックのために、第1のロックトグルコマンドをブリッジ130に発行する(ステップ330)。システムインターフェイスコントローラ116は、ブリッジ130が第1のロックトグルコマンドを実行するまで、たとえば、コミットカウンタ119がゼロにまで減分するまで、待つ(ステップ335)。ブリッジ130が第1のロックコマンドを完遂した後に、システムインターフェイスコントローラ116は、ロックトグルグラント信号をロード/記憶ユニット114に返す(ステップ340)。
【0032】
ロックトグルグラント信号をシステムインターフェイスコントローラ116から受取ったことに応答して、ロード/記憶ユニット114は、ロックを特定する1つまたは2つ以上のオペレーションを行なう(ステップ345)。ロード/記憶ユニット114は、ロックを解除するための第2のロック要求をシステムインターフェイスコントローラ116に送る(ステップ350)。システムインターフェイスコントローラ116は、アンロックのために、第2のロックトグルコマンドをブリッジ130に発行する(ステップ355)。システムインターフェイスコントローラ116は、(アンロックのための)第2のロックトグル要求をロード/記憶ユニット114から受取ったことに応答して、アンロックのための第2のロックトグルコマンドをブリッジ130に発行してもよい。システムインターフェイスコントローラ116は、ブリッジ130がアンロックのためのロックトグルコマンドを実行するまで待ち(ステップ360)、それからロックトグルグラント信号を返す。
【0033】
図5は、制御論理136が種々のプロセッサ待ち行列134からコマンドを取除くときの、ブリッジ130のオペレーションのハイレベルフローチャートの実施例を例示する。図5に示されるオペレーションはフローチャートの形式で示されるが、図5の種々のオペレーションは異なる順序で起こってもよく、または全く起こらなくてもよいということが注目される。
【0034】
制御論理136はまず、未処理のロックが存在するかどうかを検査する(判断ブロック510)。未処理のロックは、ロックレジスタ132内のロック状態によって、またはロック状態を表わす他の所望の手段によって、表示されてもよい。より具体的には、ロックレジスタ132内のロック状態は、ノーロック、プロセッサ110Aのためのロック、またはプロセッサ110Bのためのロックを表示してもよい。所望であれば、ロック状態の他の符号化で、いかなる数のプロセッサ110のためのロックを識別してもよい。未処理のロックが存在する場合には、制御論理136は、ロックを発行したプロセッサ待ち行列からのみコマンドを選択する(ステップ515)。制御論理136は、コマンドを調べそれがロックトグルコマンドであるかどうかを確かめる(判断ブロック520)。コマンドがロックトグルコマンドである場合には、制御論理136は未処理のロックをリセットする(ステップ525)。制御論理136は、既存のロックがありさらにロックトグルコマンドが実行される場合には、ロック状態をノーロックに設定する。そのとき制御論理136は動作可能になり、ブリッジ130の通常のオペレーションを続ける。
【0035】
判断ブロック520で、コマンドがロックトグルコマンドでない場合には、ブリッジ130は、ロックを続けたままで、選択されたコマンドを処理する(ステップ530)。
【0036】
判断ブロック510で、未処理のロックが存在しない場合には、制御論理136は、利用可能なプロセッサ待ち行列134から適切なコマンドを選択する(ステップ535)。どのコマンドを、どの待ち行列134から、ということを決定するためのプロトコルは、所望の、いかなる好適なプロトコルであってもよい。制御論理136は、判断ブロック540で、コマンドがロックトグルコマンドであるかどうかを確かめるために検査する。コマンドがロックトグルコマンドである場合には、制御論理はロックを設定し(ステップ545)、たとえばロックレジスタ132のロック状態を設定して、対応するプロセッサ110のためのロックを表示する。
【0037】
判断ブロック540のコマンドがロックトグルコマンドでない場合には、制御論理136は選択されたコマンドを処理するのみである(ステップ530)。
【0038】
図6を参照すると、図1のコンピュータシステム内の、ここではSysAddOutコマンドフォーマットと呼ばれるプロセッサによって開始されたコマンドのためのフォーマットの実施例のブロック図が例示される。好ましい実施例では、プロセッサ110が、読出、書込、データ移動を伴わないプローブ応答、キャッシュブロック状態遷移ブロードキャスト、およびロックトグルコマンドのためのコマンドをシステム130に発行するときに、SysAddOutコマンドフォーマットが用いられる。SysAddOutコマンドフォーマットは好ましくは、プロセッサアドレスバス128のアドレスアウト線の線[14:2]♯上を送られる。
【0039】
図示されるように、SysAddOutコマンドフォーマットは、転送されたクロック信号の立上り端縁と立下り端縁との両方の上でクロックされる実施例で2つの完全な転送されたクロックサイクルにわたる4ビットタイムの広がりを含む。図6ではADDRESSで示される物理アドレスの種々のビットが、4ビットタイムサイクルにわたって分配される。他のコマンドフィールドは、M1ビット、COMMAND[4:0]フィールド、M2ビット、MASK[7:0]フィールド、CHフィールド、ID[2:0]フィールド、およびRVビットを含む。
【0040】
図示されるように、ビットタイム0は、M1ビット、COMMAND[4:0]フィールド、およびADDRESSの一部を含む。M1ビットは、初期プローブミスインディケータである。M1が[1]に設定されている場合には、このプロセッサ110が受取る最も古いプローブはミスという結果になる。プローブがビットタイム0という結果になる場合には、M1がアサートされる。COMMAND[4:0]フィールドは、プロセッサ110からシステム130へのコマンド符号化を表示するのに用いられる。COMMAND[4:0]フィールドの種々の符号化は、読出、書込、プローブ応答等を識別する。ある特定の符号化がロックトグルコマンドを表示する。
【0041】
図示されるように、ビットタイム1はADDRESSの別の部分を含む。
図示されるように、ビットタイム2は、M2ビット、MASK[7:0]フィールド、CHフィールド、およびID[2:0]フィールドを含む。M2ビットは、レート(late)プローブミスインディケータまたはキャッシュヒット確認である。M2が[1]に設定されている場合、このプロセッサ110が受取る最も古いプローブはミスという結果になる。ビットタイム0の後、かつビットタイム2の前に、プローブが決定される場合には、M2がアサートされる。M2はまた、プローブヒットを表示するがデータ移動を表示しないCHビットを確認してもよい。MASK[7:0]フィールドは、データ転送マップである。MASK[7:0]フィールドは、すべてのサブキャッシュブロックコマンド(バイト、LW、QW)のために用いられ、それは、データバス128の、どのバイト(たとえば8ビット)、ロングワード(たとえば16ビット)、またはクワットワード(たとえば32ビット)が、要求されるデータ転送のために有効であるのかを表示する。CHビットはキャッシュヒットビットである。最も古い未処理のプローブが、システム130へのデータ移動が必要とされないプロセッサキャッシュヒットという結果になった場合には、キャッシュヒットビットは[たとえば1]に設定される。キャッシュヒットビットが設定されると、M2ビットが設定される。ID[2:0]フィールドは、バッファ識別フィールドである。ID[2:0]フィールドは、COMMAMD[4:0]フィールド内のコマンドに対応するミスアドレスバッファ(MAB)、ビクテムデータバッファ(VDB)、または書込データバッファ(WDB)エントリを指定する。ID[2:0]フィールドは、コマンドに依存して、WDBまたはVDBを暗にマップする。
【0042】
図示されるように、ビットタイム3は、RVビット、およびADDRESSの別の部分を含む。RVビットは、COMMAND[4:0]フィールド内の投機的なコマンドを確認する書込有効ビットである。
【0043】
図7を参照すると、図1のコンピュータシステム内の、ここではSysAddInコマンドフォーマットと呼ばれる、メモリコヒーレンシィを保持しさらにデータを移動させるような、システムによって開始されたコマンドのためのフォーマットの実施例のブロック図が例示される。好ましい実施例では、ブリッジ130が、プロセッサ110にキャッシュを探索させ、またはプロセッサ110への、およびプロセッサ110からのデータ移動を開始させるコマンドをプロセッサ110に発行するとき、SysAddInコマンドフォーマットが用いられる。SysAddInコマンドフォーマットは好ましくは、プロセッサアドレスバス128のアドレスイン線の線[14:2]♯上を送られる。
【0044】
図示されるように、SysAddInコマンドフォーマットは、転送されたクロック信号の立上り端縁と立下り端縁との両方の上でクロックされる実施例で2つの完全な転送されたクロックサイクルにわたる4ビットタイムの広がりを含む。図7でADDRESSで示される物理アドレスが、4ビットタイムサイクルにわたって分配される。他のコマンドフィールドは、プローブタイプPROBE[4:0]フィールド、システムデータコマンドSYSDC[4:0]フィールド、解除ビクティムバッファRVBビット、解除プローブバッファRPBビット、アクノリッジAビット、バッファ識別番号ID[3:0]フィールド、およびコミットCビットを含む。
【0045】
プローブタイプPROBE[4:0]フィールドは、プロセッサ110がデータをブリッジ130に戻すべき条件を表示し、プローブがキャッシュブロックヒットの結果になる場合には、プロセッサがキャッシュブロックをそれに変えなければならないキャッシュ状態を表示する。システムデータコマンドSYSDC[4:0]フィールドは、プロセッサへの、およびプロセッサからのデータ移動を制御する。プローブタイプPROBE[4:0]フィールドとシステムデータコマンドSYSDC[4:0]フィールドとの種々の符号化が考えられる。RVBビットは、アサートされると、ID[3:0]フィールドに対応するVDBまたはWDBエントリを解除するようプロセッサ110に信号を送る。RPBビットは、アサートされると、ID[2:0]に対応する、VDB内のプローブデータエントリを解除するようプロセッサに信号を送る。
【0046】
アクノリッジビットは、プロセッサによって発行されるコマンドに肯定応答する。そこでプロセッサはリソースカウンタを減分する。バッファ識別番号フィールドは、書込およびバッファ解除コマンドのためのRVBおよびRPBビットに関連のバッファIDを識別する。ID[3]は設定されるとWDBエントリを表示し、一方でクリアされたID[3]はVDBエントリを表示する。コミットビットはシステム130によってアサートされ、プロセッサが生成したコマンドがいつコヒーレンシィポイントに到達したのかを表示する。
【0047】
好ましい実施例では、プロセッサバス126Aおよび128Aは、マサチューセッツ州、メイナード(Mass. Maynard)のデジタルイクイップメント社(Digital Equipment Corp.)からのEV6バスのバージョンと互換性がある。EV6バスは、これもデジタルイクイップメント社から入手可能なALPHAプロセッサのために設計された。ロックトグルコマンドは好ましくは、プロセッサがプロセッサ110である場合には、MBコードポイントを用いてロックまたはアンロックを要求する。なぜならば、プロセッサ110Aおよび110Bはメモリバリアトランザクションを行なわないからである。このようにして、ロックトグルコマンドは、プロセッサ110がEV6バスを用いることを可能にしながら依然としてALPHAプロセッサとの互換性を維持することを可能にする。
【0048】
上述の開示が完全に理解されると、多くの変更および変形が当業者にとって明らかになるであろう。以下の請求項がこのようなすべての変更および変形を含むと解釈されることが意図される。
【0049】
【産業上の適用性】
この発明は一般に、プロセッサおよびコンピュータシステムに適用可能である。
【図面の簡単な説明】
【図1】 プロセッサをブリッジに連結する別々のバスを備える2つのプロセッサを含むコンピュータシステムの実施例のブロック図である。
【図2】 1つまたは2つ以上のロックトランザクションを処理するように構成される、図1のプロセッサおよびブリッジの実施例のブロック図である。
【図3】 図2のプロセッサとブリッジとの間の交信の実施例を示すフローチャートである。
【図4】 図2のコンピュータシステム内でロックオペレーションを行なうための方法の実施例を示すフローチャートである。
【図5】 図1のブリッジのオペレーションの実施例を示すフローチャートである。
【図6】 図1のコンピュータシステム内における、プロセッサによって開始されたコマンドのためのフォーマットの実施例を示す図である。
【図7】 メモリのコヒーレンシィを維持しさらに図1のコンピュータシステム内のデータを移動させるために、ブリッジによって用いられるコマンドのためのフォーマットの実施例を示す図である。

Claims (25)

  1. プロセッサであって、
    ロックの要求またはロック解除の要求に応答して第1の要求を生成するように構成される第1の回路と、
    前記第1の回路に結合されるシステムインターフェイスコントローラとを含み、前記システムインターフェイスコントローラは、前記第1の要求に応答して第1のコマンドを伝送してロック状態を切替えるように構成される、プロセッサ。
  2. 前記第1の回路は前記第1のコマンドの後に1つまたは2つ以上のメモリアクセスを実行するように構成され、前記1つまたは2つ以上のメモリアクセスはロックされた状態で行われる、請求項に記載のプロセッサ。
  3. 前記システムインターフェイスコントローラは、前記第1の回路に前記第1のコマンドがコミットされたと表示するように構成され、前記第1の回路は前記システムコントローラからの表示に応答して前記1つまたは2つ以上のメモリアクセスを実行するように構成される、請求項に記載のプロセッサ。
  4. 前記第1の回路は、前記第1の要求を生成し、前記第1のコマンドの後に1つまたは2つ以上のメモリアクセスを行い、かつ前記1つまたは2つ以上のメモリアクセスの後に再び前記第1の要求を生成することにより、ロックされたシーケンスを行うように構成される、請求項に記載のプロセッサ。
  5. 前記第1の回路は、前記第1の回路内で最も古い未処理の要求である前記ロックの要求またはロック解除の前記要求に応答して、前記第1の要求を生成するように構成される、請求項に記載のプロセッサ。
  6. ックを特定する第1の1つまたは2つ以上の命令を受取りさらに復号化するように結合される復号ユニットをさらに含み、前記復号ユニットは、前記第1の1つまたは2つ以上の命令に応答して、ロック指令を生成するように構成され
    ロック指令はロックに対する要求を示し、前記第1の回路は、前記ロック指令と前記第1の1つまたは2つ以上の命令とを前記復号ユニットから受取るように結合されるロード/記憶ユニットを含み、前記ロード/記憶ユニットは、実行のために前記第1の1つまたは2つ以上の命令を選択し、さらに、ロックを得るためにロック指令に応答してロックトグルコマンドの第1の要求を伝送するように構成される請求項1に記載のプロセッサ。
  7. 前記システムインターフェイスコントローラは複数のバッファをさらに含み、
    使用中の待ち行列エントリをトラッキングするように構成されるリソースカウンタと、
    未処理のプロセッサコマンドをトラッキングするように構成されるコミットカウンタとを含む、請求項に記載のプロセッサ。
  8. 前記システムインターフェイスコントローラはさらに、プロセッサコマンドを発行したことに応答して、前記リソースカウンタを増分するように構成され、
    前記システムインターフェイスコントローラはさらに、前記プロセッサコマンドを発行したことに応答して、前記コミットカウンタを増分するように構成される、請求項に記載のプロセッサ。
  9. 前記システムインターフェイスコントローラはさらに、システムデバイスからアクノレッジ信号を受取ったことに応答して、前記リソースカウンタを減分するように構成され、前記システムインターフェイスコントローラはさらに、前記システムデバイスからコミット信号を受取ったことに応答して、前記コミットカウンタを減分するように構成される、請求項に記載のプロセッサ。
  10. 前記アクノレッジ信号は、待ち行列エントリを解放したことに応答して、前記システムデバイスによって送られる、請求項に記載のプロセッサ。
  11. 前記コミット信号は、特定のプロセッサコマンドに対してコヒーレンシィポイントに到達したことに応答して、前記システムデバイスによって送られる、請求項に記載のプロセッサ。
  12. バスブリッジであって、
    ロック状態を記憶するように構成されるロック記憶装置と、
    前記ロックレジスタに結合され、さらに第1のプロセッサから第1のコマンドを受取って前記ロック状態を切替えるように結合される制御論理とを含み、前記制御論理は、前記ロックトグルコマンドと、ロック状態がロックの欠如を表示すると判断したことに応答して、前記ロックレジスタ内の前記ロック状態を設定し前記第1のプロセッサによるロックを表示するように構成され、前記制御論理は、前記第1のコマンドと、前記ロック状態が前記第1のプロセッサによる前記ロックを表示すると判断したこととに応答して、前記ロック状態を設定しロックの欠如を表示するように構成される、バスブリッジ。
  13. 前記制御論理はさらに、前記ロック状態が前記第1のプロセッサのための前記ロックを表示している間は、前記第1のプロセッサから受取ったコマンドのみを実行するように構成される、請求項12に記載のバスブリッジ。
  14. 前記ロック記憶装置はロックレジスタである、請求項12に記載のバスブリッジ。
  15. 前記制御論理はさらに、第2のプロセッサから前記第1のコマンドを受取ったことに応答して、前記ロック状態が前記ロックの欠如を表示する場合には、前記ロック状態を設定して第1のプロセッサと異なる前記第2のプロセッサのためのロックを表示するように構成される、請求項12に記載のバスブリッジ。
  16. 記第1のプロセッサから複数のコマンドを受取るように結合される第1の入力ポートと、
    前記第1の入力ポートに結合される第1のプロセッサ待ち行列とをさらに含み、前記第1の入力ポートは前記複数のコマンドを前記第1のプロセッサ待ち行列へと転送するように構成され、前記第1のプロセッサ待ち行列は前記複数のコマンドを記憶するように構成され、前記複数のコマンドは前記ロックトグルコマンドを含み
    記制御論理は前記複数のコマンドを第1のプロセッサ待ち行列から取除くように構成され、前記ロックトグルコマンドを前記第1のプロセッサ待ち行列から取除いたことに応答して、前記制御論理は、ロック状態を検査するように構成され、前記制御論理はさらに、前記ロック状態がロックの欠如を表示する場合には、前記ロック状態を設定して前記第1のプロセッサのためのロックを表示するように構成され、前記ロック状態が前記第1のプロセッサに対して前記ロックを表示する場合には、前記ロック状態を設定して前記ロックの欠如を表示するように構成される、請求項12に記載のブリッジ。
  17. 2のプロセッサから第2の複数のコマンドを受取るように結合される第2の入力ポートと、
    前記第2の入力ポートに結合される第2のプロセッサ待ち行列とを含み、前記第2の入力ポートは前記第2の複数のコマンドを前記第2のプロセッサ待ち行列へと転送するように構成され、前記第2のプロセッサ待ち行列は前記第2の複数のコマンドを記憶するように構成され、
    前記制御論理はさらに、予め定められたプロトコルに従って、前記第1のプロセッサ待ち行列および前記第2のプロセッサ待ち行列からコマンドを選択するように構成され、前記制御論理はさらに、前記ロック状態が前記第1のプロセッサのための前記ロックを表示するとき前記第1のプロセッサ待ち行列からのみコマンドを選択するように構成される、請求項16に記載のブリッジ。
  18. 前記第1および第2のプロセッサの各々は別のプロセッサバスによって前記ブリッジに結合される、請求項17に記載のブリッジ。
  19. コンピュータシステムであって、
    1つまたは2つ以上のプロセッサと、
    前記1つまたは2つ以上のプロセッサに結合されるブリッジとを含み、
    前記1つまたは2つ以上のプロセッサのうちの第1のプロセッサは第1のコマンドを前記ブリッジへと伝送して、前記ブリッジ内のロック状態を切替えるように構成され、前記ブリッジは、前記1つまたは2つ以上のプロセッサのうちの前記第1のプロセッサから前記第1のコマンドを受取ったことに応答して、前記ロック状態がロックの欠如を表示する場合には、前記ロック状態を設定して前記1つまたは2つ以上のプロセッサのうちの前記第1のプロセッサのための前記ロックを表示し、さらには前記ロック状態が前記1つまたは2つ以上のプロセッサのうちの前記第1のプロセッサのための前記ロックを表示する場合には、前記ロック状態を設定して前記ロックの欠如を表示するように構成される、コンピュータシステム。
  20. 前記ブリッジはさらに、前記ロック状態が前記1つまたは2つ以上のプロセッサのうちの前記第1のプロセッサのための前記ロックを表示している間は、前記1つまたは2つ以上のプロセッサのうちの前記第1のプロセッサから受取ったコマンドのみを実行するように構成される、請求項19に記載のコンピュータシステム。
  21. 前記ブリッジは、前記ロック状態を記憶するように構成されるロックレジスタを含む、請求項19に記載のコンピュータシステム。
  22. 前記ブリッジは、前記1つまたは2つ以上のプロセッサのうちの前記第2のプロセッサから前記第1のコマンドを受取ったことに応答して、前記ロック状態が前記ロックの欠如を表示する場合には、前記ロック状態を設定して前記1つまたは2つ以上のプロセッサのうちの第2のプロセッサのためのロックを表示するように構成される、請求項19に記載のコンピュータシステム。
  23. 1つまたは2つ以上のプロセッサとシステムデバイスとを含むコンピュータシステムを動作させるための方法であって、
    前記1つまたは2つ以上のプロセッサのうちの第1のプロセッサから前記システムデバイスへと第1のロックトグルコマンドを発行するステップと、
    前記第1のロックトグルコマンドに応答して、前記システムデバイス内のロック状態の表示を検査するステップと、
    前記ロック状態の前記表示を検査したことおよび前記ロック状態がロックの欠如を表示すると判断したこととに応答して、前記ロック状態を設定し前記第1のプロセッサによるロックを表示するステップと、
    前記ロック状態の前記表示を検査したことおよび前記ロック状態が前記ロックを表示すると判断したこととに応答して、前記ロック状態を設定し前記ロックの欠如を表示するステップとを含む、方法。
  24. 前記ロック状態が前記第1のプロセッサのための前記ロックを表示する間は、前記1つまたは2つ以上のプロセッサのうちの第2のプロセッサからのコマンドを無視するステップをさらに含む、請求項23に記載の方法。
  25. 前記ロック状態を設定して前記ロックを表示したことに応答して、前記ロックを特定する前記1つまたは2つ以上のコマンドを、前記第1のプロセッサから前記システムデバイスへと送るステップと、
    前記ロックを特定する前記1つまたは2つ以上のコマンドを、前記第1のプロセッサから前記システムデバイスへと送った後に、第2のロックトグルコマンドを、前記第1のプロセッサから前記システムデバイスへと送るステップとをさらに含む、請求項23に記載の方法。
JP2001505301A 1999-06-23 2000-01-11 ロックの開始と終了を要求するためのバスコマンドコードポイントの使用の最小化 Expired - Lifetime JP4565786B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/339,351 1999-06-23
US09/339,351 US6430639B1 (en) 1999-06-23 1999-06-23 Minimizing use of bus command code points to request the start and end of a lock
PCT/US2000/000605 WO2000079404A1 (en) 1999-06-23 2000-01-11 Minimizing use of bus command code points to request the start and end of a lock

Publications (3)

Publication Number Publication Date
JP2003527652A JP2003527652A (ja) 2003-09-16
JP2003527652A5 JP2003527652A5 (ja) 2007-01-18
JP4565786B2 true JP4565786B2 (ja) 2010-10-20

Family

ID=23328620

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001505301A Expired - Lifetime JP4565786B2 (ja) 1999-06-23 2000-01-11 ロックの開始と終了を要求するためのバスコマンドコードポイントの使用の最小化

Country Status (6)

Country Link
US (1) US6430639B1 (ja)
EP (1) EP1190331B1 (ja)
JP (1) JP4565786B2 (ja)
KR (1) KR100687822B1 (ja)
DE (1) DE60002077T2 (ja)
WO (1) WO2000079404A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6973543B1 (en) * 2001-07-12 2005-12-06 Advanced Micro Devices, Inc. Partial directory cache for reducing probe traffic in multiprocessor systems
US6934806B2 (en) * 2002-09-23 2005-08-23 International Business Machines Corporation Method and system for improving input/output performance by proactively flushing and locking an entire page out of caches of a multiprocessor system
US7076680B1 (en) * 2003-03-14 2006-07-11 Sun Microsystems, Inc. Method and apparatus for providing skew compensation using a self-timed source-synchronous network
DE102006055513A1 (de) * 2006-05-24 2007-11-29 Robert Bosch Gmbh Kommunikationsbaustein
DE102007063291A1 (de) * 2007-12-27 2009-07-02 Robert Bosch Gmbh Sicherheitssteuerung
US9164886B1 (en) 2010-09-21 2015-10-20 Western Digital Technologies, Inc. System and method for multistage processing in a memory storage subsystem
US10572387B2 (en) * 2018-01-11 2020-02-25 International Business Machines Corporation Hardware control of CPU hold of a cache line in private cache where cache invalidate bit is reset upon expiration of timer
US11163688B2 (en) 2019-09-24 2021-11-02 Advanced Micro Devices, Inc. System probe aware last level cache insertion bypassing

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5016167A (en) * 1987-12-21 1991-05-14 Amdahl Corporation Resource contention deadlock detection and prevention
US5175837A (en) 1989-02-03 1992-12-29 Digital Equipment Corporation Synchronizing and processing of memory access operations in multiprocessor systems using a directory of lock bits
US5133074A (en) * 1989-02-08 1992-07-21 Acer Incorporated Deadlock resolution with cache snooping
JP2830116B2 (ja) * 1989-07-27 1998-12-02 日本電気株式会社 マルチプロセッサシステムにおけるロック制御機構
US5615373A (en) * 1993-08-26 1997-03-25 International Business Machines Corporation Data lock management in a distributed file server system determines variable lock lifetime in response to request to access data object
EP0986008B1 (en) 1993-12-01 2008-04-16 Marathon Technologies Corporation Computer system comprising controllers and computing elements
US5586253A (en) 1994-12-15 1996-12-17 Stratus Computer Method and apparatus for validating I/O addresses in a fault-tolerant computer system
US5706446A (en) * 1995-05-18 1998-01-06 Unisys Corporation Arbitration system for bus requestors with deadlock prevention
US6560682B1 (en) 1997-10-03 2003-05-06 Intel Corporation System and method for terminating lock-step sequences in a multiprocessor system
US9919801B2 (en) * 2015-04-10 2018-03-20 B/E Aerospace, Inc. Articulating foot well divider for adjacent parallel passenger seats

Also Published As

Publication number Publication date
WO2000079404A1 (en) 2000-12-28
DE60002077D1 (de) 2003-05-15
EP1190331B1 (en) 2003-04-09
KR100687822B1 (ko) 2007-02-28
KR20020012616A (ko) 2002-02-16
JP2003527652A (ja) 2003-09-16
US6430639B1 (en) 2002-08-06
DE60002077T2 (de) 2004-03-04
EP1190331A1 (en) 2002-03-27

Similar Documents

Publication Publication Date Title
US7228389B2 (en) System and method for maintaining cache coherency in a shared memory system
US5568620A (en) Method and apparatus for performing bus transactions in a computer system
KR100360064B1 (ko) 고도로파이프라인된버스구조
US5893151A (en) Method and apparatus for maintaining cache coherency in a computer system with a highly pipelined bus and multiple conflicting snoop requests
US8321634B2 (en) System and method for performing memory operations in a computing system
KR910007750B1 (ko) 다중 프로세서 컴퓨터 시스템에서 다중 록 표시자를 실시하기 위한 방법 및 장치
US6018792A (en) Apparatus for performing a low latency memory read with concurrent snoop
JP3391315B2 (ja) バス制御装置
US8037253B2 (en) Method and apparatus for global ordering to insure latency independent coherence
US9213665B2 (en) Data processor for processing a decorated storage notify
JP2000122916A (ja) 原子的更新処理を実行する方法
US6219745B1 (en) System and method for entering a stream read buffer mode to store non-cacheable or block data
US6553442B1 (en) Bus master for SMP execution of global operations utilizing a single token with implied release
US5664092A (en) System and method for performing locked test and set operations in an instrumentation system
WO2021191582A1 (en) Circuitry and method
US5991855A (en) Low latency memory read with concurrent pipe lined snoops
JP4565786B2 (ja) ロックの開始と終了を要求するためのバスコマンドコードポイントの使用の最小化
US5903738A (en) Method and apparatus for performing bus transactions in a computer system
US5778441A (en) Method and apparatus for accessing split lock variables in a computer system
US6502150B1 (en) Method and apparatus for resource sharing in a multi-processor system
US20040111547A1 (en) High speed memory cloning facility via a lockless multiprocessor mechanism
US5881256A (en) Bus interface unit capable of simultaneously proceeding with two bus cycles in a high-performance microprocessor
US6915390B2 (en) High speed memory cloning facility via a coherently done mechanism
WO2021091719A1 (en) Enabling atomic memory accesses across coherence granule boundaries in processor-based devices
US6266741B1 (en) Method and apparatus to reduce system bus latency on a cache miss with address acknowledgments

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061120

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091020

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100118

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100720

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100803

R150 Certificate of patent or registration of utility model

Ref document number: 4565786

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130813

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term