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

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

Info

Publication number
JP2003527652A
JP2003527652A JP2001505301A JP2001505301A JP2003527652A JP 2003527652 A JP2003527652 A JP 2003527652A JP 2001505301 A JP2001505301 A JP 2001505301A JP 2001505301 A JP2001505301 A JP 2001505301A JP 2003527652 A JP2003527652 A JP 2003527652A
Authority
JP
Japan
Prior art keywords
lock
processor
command
bridge
processors
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.)
Granted
Application number
JP2001505301A
Other languages
English (en)
Other versions
JP2003527652A5 (ja
JP4565786B2 (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

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)
  • Multi Processors (AREA)
  • Bus Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 ロックを設定し解除するための、つまりロックトグルのためのトグルコマンドを用いるためのシステムおよび方法である。例示的なコンピュータシステムでは、1つまたは2つ以上のプロセッサ(110A;110B)の各々がバスブリッジ(130)に結合される。ロックトグルコマンドが用いられ、ロック要求とアンロック要求との両方を、プロセッサ(110A)からシステムコヒーレンシィポイント、たとえばバスブリッジ(130)へと伝送する。システムコヒーレンシィポイントは、ロックが確立または解除されたとき、肯定応答する。ロックがアクティブな間は、他のプロセッサは、少なくともそれに対してロックが開始されたメモリ場所にアクセスすることが禁じられる。このようにして、ロックはシステムコヒーレンシィポイントで確立され、それは有利なことには、非共有バスシステム内のロッキング機能を可能にするであろう。ロックトグルコマンドの使用によって、有利なことには、単一のコマンドコードポイントの使用が可能となり、他のポイントを他の用途に利用できるようになる。

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のプロセッサ1
10Aと第2のプロセッサ110Bとは共に、それぞれのプロセッサバスを用い
てメモリおよびI/Oオペレーションを行なうように、好ましくは構成される。
ある実施例では、プロセッサ110Aおよび110Bは、x86命令セットアー
キテクチャを実現する。他の実施例はいかなる好適な命令セットアーキテクチャ
を実現してもよい。ブリッジ130はさらにメモリ140に結合される。メモリ
140は好ましくは、第1のプロセッサ110Aと第2のプロセッサ110Bと
の両方にさらには他のシステムデバイスにもアクセス可能なデータと命令とを記
憶するように構成される。メモリ140は、SDRAM(同期ダイナミックラン
ダムアクセスメモリ)、RDRAM(ランバスDRAM)[RDRAMおよびR
AMBUSはランバス社(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、A
GPデバイス150、またはPCIバス160上のPCIデバイス等によってア
クセスされるメモリ場所があるか調べることによって、コンピュータシステムの
デバイス間のデータ転送のためのコヒーレンシィを維持する。
【0017】 図2を参照すると、図1の一般的なコンピュータシステムの、ある構成要素の
実施例のより詳細なブロック図が例示される。第1のプロセッサ110A、プロ
セッサバスコンポーネント126Aおよび128A、およびブリッジ130の種
々の詳細が例示される。
【0018】 図示されるように、プロセッサ110Aは、L/Sコマンドバスおよびロック
信号線を通して、ロード/記憶ユニット114に結合される復号ユニット112
を含む。ロード/記憶ユニット114は、アドレスおよびデータバス、ロックト
グル要求信号線、およびロックトグルグラント信号線を通して、システムインタ
ーフェイスコントローラ116に結合される。システムインターフェイスコント
ローラ116は、リソースカウンタ118(Aカウンタ)とコミットカウンタ1
19(Cカウンタ)とを含む。第1のプロセッサ110Aおよび第2のプロセッ
サ110Bの各々は、別々のプロセッサバスを通してブリッジ130に結合され
る。各プロセッサバスは、専用のソース同期クロック線126を備える双方向デ
ータバスと、付随のソース同期クロック線128を備える単方向アドレスインア
ドレスアウト線(アドレスバス)とを含む。第1のプロセッサ110Aとブリッ
ジ130との間のプロセッサバスは、データバス126Aとアドレスバス128
Aとを含み、少なくとも第1の入力ポートを通してブリッジ130へと結合する
。第2のプロセッサ110Bとブリッジ130との間のプロセッサバスは、デー
タバス126Bとアドレスバス128Bとを含み、少なくとも第2の入力ポート
を通してブリッジに結合する。ブリッジ130は、第1のプロセッサ110Aか
らのコマンドの記憶に専用の第1のプロセッサ待ち行列134Aと、第2のプロ
セッサ110Bからのコマンドの記憶に専用の第2のプロセッサ待ち行列134
Bとを含む。メモリ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内の制御論理13
6は、第1のプロセッサ110Aおよび第2のプロセッサ110Bからコマンド
を受取り、コマンドをそれぞれの待ち行列、プロセッサA待ち行列134Aとプ
ロセッサB待ち行列134Bとに置く。制御論理136は、予め定められたプロ
トコルによって規定された順序で、つまりラウンドロビンまたは最終アクセスア
ルゴリズムに従って、プロセッサA待ち行列134AおよびプロセッサB待ち行
列134Bからコマンドを取除く。プロセッサ110Bもまた、同様の様態で動
作する。リソースカウンタ118および/またはコミットカウンタ119はある
種のコマンドをトラッキングしなくてもよいということが注目される。トラッキ
ングされないコマンドの例は、ある種のプローブ応答、ある種のバッファフラッ
シュ、ノーオペレーションコマンド(NOPs)、および特別なブロックメモリ
コマンドを含み得る。
【0021】 プロセッサA待ち行列134Aからコマンドを取除く等によって、待ち行列エ
ントリを解放したことに応答して、制御論理136は、それぞれのプロセッサ1
10Aのシステムインターフェイスコントローラ116に肯定応答信号を送る。
システムインターフェイスコントローラ116は、ブリッジ130から肯定応答
信号を受取ったことに応答して、リソースカウンタ118を減分する。システム
マスタとして働くブリッジ130が特定のプロセッサコマンドに対してコヒーレ
ンシィポイントに一旦到達すると、制御論理136は、コミット信号を適切なシ
ステムインターフェイスコントローラ116に送る。システムインターフェイス
コントローラ116は、コミット信号をブリッジ130から受取ったことに応答
して、コミットカウンタ119を減分するように構成される。好ましい実施例で
は、プロセッサ110は、コミット信号をいかなる特定のプロセッサコマンドに
も関連させないことが注目される。プロセッサコマンドのいずれかがコヒーレン
シィポイントに到達したとき、ブリッジ130は単にコミット信号を返すのみで
ある。アクノレッジ信号およびコミット信号は、アドレスバス128Aのアドレ
スイン部分上のアドレスインコマンドの一部であってもよい。
【0022】 ある実施例では、リソースカウンタ118および/またはコミットカウンタ1
19内の値が予め定められた値に到達すると、プロセッサ110Aおよび110
Bは、新しいコマンドをブリッジ130に送ることをやめるように構成されてい
る。リソースカウンタ118は、各プロセッサ110に、ブリッジ130に送っ
たコマンドのうちいくつがブリッジ130によって肯定応答されていないのかを
、トラッキングさせてもよい。コミットカウンタ119は、各プロセッサ110
に、コヒーレンシィポイントにまだ到達していない、ブリッジ130に送られた
未処理のコマンドの数を制限させてもよい。
【0023】 種々の実施例において、リソースカウンタ118の用途と解釈とは異なってい
てもよいことが注目される。ある実施例では、4エントリ共通プロセッサ待ち行
列134は、一方は読出のためであり他方は書込のためである、2つのより大き
な待ち行列を送る。肯定応答リミット(まだ肯定応答されていない、プロセッサ
110が発行したコマンドの数に対するリミット)は、4に設定される。別の実
施例では、1つのプロセッサ待ち行列は、読出と書込との両方を保持する。共通
の待ち行列エントリの割当が解除されたとき、Aビットがブリッジ130からプ
ロセッサ110へと返される。
【0024】 概して、1つまたは2つ以上のプロセッサ110のうちの第1のプロセッサ1
10Aが、メモリ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は、適切なプロセッサ待ち行列13
4内のロックトグルコマンドをバッファリングする(ステップ415)。ブリッ
ジは、ロックトグルコマンドが到達するまでは、1つまたは2つ以上のプロセッ
サ待ち行列134からの要求されたオペレーションを行なう(ステップ420)
。他の大部分のオペレーションと同様に、ブリッジ130は、ロックトグルコマ
ンドがプロセッサ待ち行列134Aから取除かれたとき、肯定応答信号(たとえ
ばAビット)を適切なプロセッサ110Aに送る(ステップ425)。プロセッ
サ110AはAビットを受取り、リソースカウンタ118を減分する(ステップ
430)。
【0028】 ブリッジ130は、たとえば以下の図5で説明されるようにロックトグルコマ
ンドを処理する(ステップ435)。ブリッジ130は、ロックが確立されると
、コミット信号(たとえばCビット)をプロセッサ110Aに送る(ステップ4
40)。プロセッサ110AはCビットを受取り、コミットカウンタ119を減
分する(ステップ445)。コミットカウンタ119がゼロに一旦到達すると、
プロセッサ110Aは、ロックが確立されたということを知らされる。その後、
プロセッサ110Aは、ロックがアクティブな間に行なわれるべき1つまたは2
つ以上のコマンドをブリッジ130に送り、第2のロックトグルコマンドがこれ
に続く(ステップ450)。ブリッジ130は、ロックがアクティブなままで、
1つまたは2つ以上のコマンドを処理する(ステップ455)。次に、ブリッジ
130は第2のロックトグルコマンドを処理し、ロックを取消す(ステップ46
0)。第2のロックトグルコマンドは、第1のロックトグルコマンドと同様の態
様で処理される。
【0029】 図4を参照すると、ロックオペレーションを行なうためにブリッジ130と交
信する、図2のプロセッサ110Aおよび110Bのうちの第1のプロセッサ1
10Aのオペレーションを示すフローチャートの1つの実施例が詳細に示される
。図4で示されるオペレーションは単なる例示的なものにすぎず、例示されるオ
ペレーションフローの一部ではないプロセッサ110またはブリッジ130の追
加の特徴またはオペレーションを含まない。図4に示されるオペレーションはフ
ローチャートの形式で示されているが、図4の種々のオペレーションは異なる順
序で起こってもよく、または全く起こらなくてもよいということが注目される。
【0030】 復号ユニット112は、ロックを特定する1つまたは2つ以上の命令を復号化
し、それを識別する(ステップ310)。次に、復号ユニット112は、ロード
/記憶ユニット114に、ロックを特定する1つまたは2つ以上のメモリオペレ
ーションを知らせる(ステップ315)。より具体的には、復号ユニット112
は、1つまたは2つ以上のメモリオペレーションをロード/記憶ユニット114
に伝送し、ロック信号をアサートする。ロード/記憶ユニット114は、メモリ
オペレーションおよび対応するロックの要求をバッファリングする(ステップ3
20)。ロックの要求が最も古い未処理のオペレーションである場合、ロード/
記憶ユニット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で、未処理のロックが存在しない場合には、制御論理13
6は、利用可能なプロセッサ待ち行列134から適切なコマンドを選択する(ス
テップ535)。どのコマンドを、どの待ち行列134から、ということを決定
するためのプロトコルは、所望の、いかなる好適なプロトコルであってもよい。
制御論理136は、判断ブロック540で、コマンドがロックトグルコマンドで
あるかどうかを確かめるために検査する。コマンドがロックトグルコマンドであ
る場合には、制御論理はロックを設定し(ステップ545)、たとえばロックレ
ジスタ132のロック状態を設定して、対応するプロセッサ110のためのロッ
クを表示する。
【0037】 判断ブロック540のコマンドがロックトグルコマンドでない場合には、制御
論理136は選択されたコマンドを処理するのみである(ステップ530)。
【0038】 図6を参照すると、図1のコンピュータシステム内の、ここではSysAdd
Outコマンドフォーマットと呼ばれるプロセッサによって開始されたコマンド
のためのフォーマットの実施例のブロック図が例示される。好ましい実施例では
、プロセッサ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がアサートされる。COMMA
ND[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のコンピュータシステム内の、ここではSysAdd
Inコマンドフォーマットと呼ばれる、メモリコヒーレンシィを保持しさらにデ
ータを移動させるような、システムによって開始されたコマンドのためのフォー
マットの実施例のブロック図が例示される。好ましい実施例では、ブリッジ13
0が、プロセッサ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)のデジタルイクイップメント社(Digit
al 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のコンピュータシス
テム内のデータを移動させるために、ブリッジによって用いられるコマンドのた
めのフォーマットの実施例を示す図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マイヤー,デリック・アール アメリカ合衆国、78733 テキサス州、オ ースティン、クリークス・エッジ・パーク ウェイ、2728 (72)発明者 ルーチャック,ウィリアム・ケー アメリカ合衆国、78759−5183 テキサス 州、オースティン、シエラ・オークス、 10808 Fターム(参考) 5B061 BA01 GG11

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 1つまたは2つ以上のプロセッサ(110A;110B)と
    、 前記1つまたは2つ以上のプロセッサ(110A;110B)に結合されるブ
    リッジ(130)とを含むコンピュータシステムであって、 前記1つまたは2つ以上のプロセッサ(110A;110B)のうちの第1の
    プロセッサは、ロックトグルコマンドを前記ブリッジ(130)に伝送するよう
    に構成され、前記ブリッジ(130)は、前記ロックトグルコマンドを前記1つ
    または2つ以上のプロセッサ(110A;110B)のうちの前記第1のプロセ
    ッサから受取ったことに応答して、ロック状態がロックの欠如を表示する場合に
    は、前記ロック状態を設定して前記1つまたは2つ以上のプロセッサ(110A
    ;110B)のうちの前記第1のプロセッサのためのロックを表示し、前記ロッ
    ク状態が前記1つまたは2つ以上のプロセッサ(110A;110B)のうちの
    前記第1のプロセッサのための前記ロックを表示する場合には、前記ロック状態
    を設定して前記ロックの欠如を表示するように構成される、コンピュータシステ
    ム。
  2. 【請求項2】 前記ブリッジ(130)はさらに、前記ロック状態が前記1
    つまたは2つ以上のプロセッサ(110A;110B)のうちの前記第1のプロ
    セッサのための前記ロックを表示している間は、前記1つまたは2つ以上のプロ
    セッサ(110A;110B)のうちの前記第1のプロセッサから受取ったコマ
    ンドのみを実行するように構成される、請求項1に記載のコンピュータシステム
  3. 【請求項3】 前記ブリッジは、前記ロック状態を記憶するように構成され
    るロックレジスタ(132)を含む、請求項1に記載のコンピュータシステム。
  4. 【請求項4】 前記1つまたは2つ以上のプロセッサ(110A;110B
    )の各々は、 前記ロックを特定する第1の1つまたは2つ以上の命令を受取りさらに復号化
    するように結合される復号ユニット(112)を含み、 前記復号ユニット(112)は、前記第1の1つまたは2つ以上の命令に応答
    して、ロック表示を生成するように構成され、 前記プロセッサの各々はさらに、前記ロック表示と前記第1の1つまたは2つ
    以上の命令を前記復号ユニット(112)から受取るように結合されるロード/
    記憶ユニット(114)を含み、前記ロード/記憶ユニット(114)は、実行
    のために、前記第1の1つまたは2つ以上の命令を選択し、さらにそれに応答し
    て前記ロックトグルコマンドの第1の要求を伝送し、 前記プロセッサの各々はさらに、前記ロード/記憶ユニット(114)とバス
    (126A;128A)との間に結合されるシステムインターフェイスコントロ
    ーラ(116)を含み、 前記システムインターフェイスコントローラ(116)は、前記ロックトグル
    コマンドの前記第1の要求を前記ロード/記憶ユニット(114)から受取るよ
    うに構成され、前記システムインターフェイスコントローラはさらに、前記第1
    のロックトグルコマンドの前記要求を受取ったことに応答して、前記第1のロッ
    クトグルコマンドを発行するように構成され、 前記ロード/記憶ユニット(114)はさらに、前記第1の1つまたは2つ以
    上の命令を実行したことに応答して、前記ロックトグルコマンドの第2の要求を
    伝送するように構成され、前記システムインターフェイスコントローラ(116
    )はさらに、前記ロックトグルコマンドの前記第2の要求を前記ロード/記憶ユ
    ニットから受取り、前記ロックトグルコマンドの前記第2の要求を受取ったこと
    に応答して、前記第2のロックトグルコマンドを発行するように構成される、請
    求項1に記載のコンピュータシステム。
  5. 【請求項5】 前記ロード/記憶ユニット(114)はさらに、前記ロック
    トグルコマンドの前記第1の要求が最も古い未処理のオペレーションになるまで
    、前記ロックトグルコマンドの前記第1の要求をバッファリングするように構成
    され、 前記システムインターフェイスコントローラ(116)はさらに、前記第1の
    ロックトグルコマンドがいつ実行されたかを、前記ロード/記憶ユニット(11
    4)に知らせるように構成される、請求項1に記載のコンピュータシステム。
  6. 【請求項6】 1つまたは2つ以上のプロセッサ(110A;110B)と
    ブリッジ(130)とを含むコンピュータシステムを動作させるための方法であ
    って、 前記1つまたは2つ以上のプロセッサ(110A;110B)のうちの第1の
    プロセッサ(110A)から前記ブリッジ(130)へと第1のロックトグルコ
    マンドを発行するステップと、 前記第1のロックトグルコマンドと、ロック状態がロックの欠如を表示すると
    判断したこととに応答して、前記ロック状態を設定し前記第1のプロセッサ(1
    10A)によるロックを表示するステップと、 前記第1のロックトグルコマンドと、前記ロック状態が前記第1のプロセッサ
    (110A)による前記ロックを表示すると判断したこととに応答して、前記ロ
    ック状態を設定し前記ロックの欠如を表示するステップとを含む、方法。
  7. 【請求項7】 前記ロック状態が前記第1のプロセッサのための前記ロック
    を表示する間、前記1つまたは2つ以上のプロセッサ(110A;110B)の
    うちの第2のプロセッサ(110B)からのコマンドを処理することを禁止する
    ステップをさらに含む、請求項6に記載の方法。
  8. 【請求項8】 前記ロック状態を設定して前記ロックを表示したことに応答
    して、前記ロックを特定する前記1つまたは2つ以上のコマンドを、前記第1の
    プロセッサ(110A)から前記ブリッジ(130)へと送るステップと、 前記ロックを特定する前記1つまたは2つ以上のコマンドを、前記第1のプロ
    セッサ(110A)から前記ブリッジ(130)へと送った後に、第2のロック
    トグルコマンドを、前記第1のプロセッサ(110A)から前記ブリッジ(13
    0)へと送るステップとをさらに含む、請求項6に記載の方法。
  9. 【請求項9】 バスブリッジであって、 ロック状態を記憶するように構成されるロックレジスタ(132)と、 前記ロックレジスタに結合され、さらに第1のプロセッサ(110A)からの
    ロックトグルコマンドを受取るように結合される制御論理(136)とを含み、
    前記制御論理(136)は、前記ロックトグルコマンドと、ロック状態がロック
    の欠如を表示すると判断したこととに応答して、前記ロックレジスタ内の前記ロ
    ック状態を設定し前記第1のプロセッサ(110A)によるロックを表示するよ
    うに構成され、前記制御論理は、前記ロックトグルコマンドと、前記ロック状態
    が前記第1のプロセッサ(110A)による前記ロックを表示すると判断したこ
    ととに応答して、前記ロック状態を設定し前記ロックの欠如を表示するように構
    成される、バスブリッジ。
  10. 【請求項10】 マイクロプロセッサであって、 ロックの要求とロック解除の要求とを検出するように構成されるロード/記憶
    ユニット(114)を含み、前記ロード/記憶ユニット(114)は、前記ロッ
    クの要求または前記ロック解除の要求のいずれかに応答して、ロックトグル要求
    を生成するように構成され、 前記マイクロプロセッサはさらに、前記ロード/記憶ユニット(114)に結
    合されるシステムインターフェイスコントローラ(116)を含み、前記システ
    ムインターフェイスコントローラ(116)は、前記ロックトグル要求に応答し
    て、ロックトグルコマンドを伝送するように構成される、マイクロプロセッサ。
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 US6430639B1 (en) 1999-06-23 1999-06-23 Minimizing use of bus command code points to request the start and end of a lock
US09/339,351 1999-06-23
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 true JP2003527652A (ja) 2003-09-16
JP2003527652A5 JP2003527652A5 (ja) 2007-01-18
JP4565786B2 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

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02232747A (ja) * 1989-02-03 1990-09-14 Digital Equip Corp <Dec> マルチプロセッサ・システムにおけるメモリ・アクセス動作の同期化・処理
JPH0358164A (ja) * 1989-07-27 1991-03-13 Nec Corp マルチプロセッサシステムにおけるロック制御機構
WO1999019801A1 (en) * 1997-10-03 1999-04-22 Intel Corporation System and method for terminating lock-step sequences in a multiprocessor system

Family Cites Families (7)

* 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
US5133074A (en) * 1989-02-08 1992-07-21 Acer Incorporated Deadlock resolution with cache snooping
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
WO2016164872A1 (en) * 2015-04-10 2016-10-13 B/E Aerospace, Inc. Articulating foot well divider for adjacent parallel passenger seats

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02232747A (ja) * 1989-02-03 1990-09-14 Digital Equip Corp <Dec> マルチプロセッサ・システムにおけるメモリ・アクセス動作の同期化・処理
JPH0358164A (ja) * 1989-07-27 1991-03-13 Nec Corp マルチプロセッサシステムにおけるロック制御機構
WO1999019801A1 (en) * 1997-10-03 1999-04-22 Intel Corporation System and method for terminating lock-step sequences in a multiprocessor system

Also Published As

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

Similar Documents

Publication Publication Date Title
EP0694849B1 (en) Method for performing bus transactions in a computer system and computer system
US5835739A (en) Method and apparatus for maintaining transaction ordering and arbitrating in a bus bridge
US7228389B2 (en) System and method for maintaining cache coherency in a shared memory system
KR100253753B1 (ko) 지연 트랜잭션을 실행하기 위한 장치 및 방법
US5535341A (en) Apparatus and method for determining the status of data buffers in a bridge between two buses during a flush operation
KR910007750B1 (ko) 다중 프로세서 컴퓨터 시스템에서 다중 록 표시자를 실시하기 위한 방법 및 장치
KR100360064B1 (ko) 고도로파이프라인된버스구조
US6490642B1 (en) Locked read/write on separate address/data bus using write barrier
US6247102B1 (en) Computer system employing memory controller and bridge interface permitting concurrent operation
US5283870A (en) Method and apparatus for avoiding processor deadly embrace in a multiprocessor system
US6018792A (en) Apparatus for performing a low latency memory read with concurrent snoop
US8037253B2 (en) Method and apparatus for global ordering to insure latency independent coherence
US6553442B1 (en) Bus master for SMP execution of global operations utilizing a single token with implied release
US20220114098A1 (en) System, apparatus and methods for performing shared memory operations
WO2021191582A1 (en) Circuitry and method
US5991855A (en) Low latency memory read with concurrent pipe lined snoops
US6529933B1 (en) Method and apparatus for locking and unlocking a semaphore
US5903738A (en) Method and apparatus for performing bus transactions in a computer system
JP4565786B2 (ja) ロックの開始と終了を要求するためのバスコマンドコードポイントの使用の最小化
US5778441A (en) Method and apparatus for accessing split lock variables in a computer system
US6738837B1 (en) Digital system with split transaction memory access
US6502150B1 (en) Method and apparatus for resource sharing in a multi-processor system
US5764932A (en) Method and apparatus for implementing a dual processing protocol between processors
US11093396B2 (en) Enabling atomic memory accesses across coherence granule boundaries in processor-based devices
US5881256A (en) Bus interface unit capable of simultaneously proceeding with two bus cycles in a high-performance microprocessor

Legal Events

Date Code Title Description
A521 Written amendment

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 Written amendment

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