(57)【特許請求の範囲】
【請求項１】
ロックマスタが、システム内の複数のプロセッサから複数のロック要求を受信することであって、前記複数のロック要求は、各ロック要求に関連する個別のプロセッサを識別する識別子（ＩＤ）を含む、ことと、
前記ロックマスタが、静止要求を前記複数のプロセッサの各々に送信することと、
前記複数のプロセッサの全てが、前記ロックマスタから前記静止要求を受信すると、新たなトランザクションを発行するのを止めて静止許諾トランザクションを発行することと、
前記ロックマスタが、前記複数のプロセッサの各々から静止許諾トランザクションを受信すると、前記複数のプロセッサの各々に対してロック許諾メッセージを発行することであって、前記ロックマスタによって発行されたロック許諾メッセージは、特定のロック要求に関する個別のプロセッサに関連するロックＩＤを含む、ことと、
前記複数のプロセッサ毎に、前記ロックＩＤと、自身のプロセッサＩＤとを比較することと、
前記ロックＩＤと、特定のプロセッサのプロセッサＩＤとが一致した場合に、前記特定のプロセッサが、アトミックトランザクションシーケンスを行い、前記アトミックトランザクションシーケンスが完了すると、第１ロック解除メッセージを前記ロックマスタに送信することと、
前記ロックマスタが、前記特定のプロセッサから前記第１ロック解除メッセージを受信すると、第２ロック解除メッセージを全てのプロセッサに送信することと、
を含む、方法。
【請求項２】
前記ロックマスタが、前記複数のプロセッサから受信した複数のロック要求をキューイングすることをさらに含む、請求項１の方法。
【請求項３】
少なくとも１つのプロセッサが、アクティブなプロセッサのセットに加わるか離れるために、要求メッセージを前記ロックマスタに送信することをさらに含む、請求項１の方法。
【請求項４】
前記少なくとも１つのプロセッサが、活動状態に到達すると、前記アクティブなプロセッサのセットに加わるために前記要求メッセージを送信する、請求項３の方法。
【請求項５】
前記少なくとも１つのプロセッサが、休止状態に移行すると、前記アクティブなプロセッサのセットから離れるために前記要求メッセージを送信する、請求項３の方法。
【請求項６】
前記ロックマスタが、前記複数のプロセッサから受信した静止許諾トランザクションの数をカウントすることと、全てのアクティブなプロセッサから静止許諾トランザクションを受信したと判断すると、前記ロック許諾メッセージを送信することと、をさらに含む、請求項３の方法。
【請求項７】
複数のプロセッサと、
ロックマスタと、
を含むシステムであって、
前記ロックマスタは、前記システム内の前記複数のプロセッサから複数のロック要求を受信することであって、前記複数のロック要求は、各ロック要求に関連する個別のプロセッサを識別する識別子（ＩＤ）を含む、ことと、静止要求を前記複数のプロセッサの各々に送信することと、前記複数のプロセッサの全てから静止許諾トランザクションを受信すると、前記複数のプロセッサの各々に対してロック許諾メッセージを発行することであって、前記ロックマスタによって発行されたロック許諾メッセージは、特定のロック要求に関する特定のプロセッサに関連するロックＩＤを含む、ことと、前記特定のプロセッサから第１ロック解除メッセージを受信すると、第２ロック解除メッセージを全てのプロセッサに送信することと、を行うように構成されている、
システム。
【請求項８】
前記複数のプロセッサの全ては、前記ロックマスタから前記静止要求を受信すると、新たなトランザクションを停止して、前記静止許諾トランザクションを発行する、請求項７のシステム。
【請求項９】
前記特定のプロセッサは、前記ロック許諾メッセージを受信すると、アトミックトランザクションシーケンスを行い、前記アトミックトランザクションシーケンスが完了すると、前記第１ロック解除メッセージを前記ロックマスタに送信するように構成されている、請求項７のシステム。
【請求項１０】
前記複数のプロセッサは、前記ロックＩＤを自身のプロセッサＩＤと比較するように構成されている、請求項７のシステム。
【請求項１１】
前記ロックマスタは、前記複数のプロセッサから受信した複数のロック要求をキューイングするように構成されている、請求項７のシステム。
【請求項１２】
少なくとも１つのプロセッサは、プロセッサのアクティブなセットに加わるか離れるために要求メッセージを前記ロックマスタに送信するように構成されている、請求項７のシステム。
【請求項１３】
前記少なくとも１つのプロセッサは、活動状態に到達すると、前記アクティブなプロセッサのセットに加わるために前記要求メッセージを送信する、請求項１２のシステム。
【請求項１４】
前記少なくとも１つのプロセッサは、休止状態に移行すると、前記アクティブなプロセッサのセットから離れるために前記要求メッセージを送信する、請求項１２のシステム。
【請求項１５】
前記ロックマスタは、前記複数のプロセッサから受信した静止許諾トランザクションの数をカウントし、全てのアクティブなプロセッサから静止許諾トランザクションを受信したと判断すると、前記ロック許諾メッセージを送信するように構成されている、請求項１２のシステム。
【請求項１６】
回路を備える装置であって、
前記回路は、システム内の複数のプロセッサから複数のロック要求を受信することであって、前記複数のロック要求は、各ロック要求に関連する個別のプロセッサを識別する識別子（ＩＤ）を含む、ことと、静止要求を前記複数のプロセッサの各々に送信することと、前記複数のプロセッサの全てから静止許諾トランザクションを受信すると、前記複数のプロセッサの各々に対してロック許諾メッセージを発行することであって、前記ロック許諾メッセージは、特定のロック要求に関する特定のプロセッサに関連するロックＩＤを含む、ことと、前記特定のプロセッサから第１ロック解除メッセージを受信すると、第２ロック解除メッセージを前記複数のプロセッサの全てに送信することと、を行うように構成されている、
装置。
【請求項１７】
前記複数のプロセッサから受信した静止許諾トランザクションの数をカウントし、全てのアクティブなプロセッサから静止許諾トランザクションを受信したと判断すると、前記ロック許諾メッセージを送信するように構成された回路をさらに備える、請求項１６の装置。
【請求項１８】
前記ロックＩＤと、前記特定のプロセッサのプロセッサＩＤとが一致しない場合に、前記特定のプロセッサが、前記複数のプロセッサを接続する相互接続ファブリックの使用を控えることをさらに含む、請求項１の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本願は、２０１３年１０月２５日に出願された米国仮特許出願番号第６１／８９５，５６９号の利益を主張するものであり、その内容は引用により本明細書に組み込まれる。
【０００２】
本発明は、概して、バスロックオペレーション及び変換索引バッファ（ｔｒａｎｓｌａｔｉｏｎ  ｌｏｏｋａｓｉｄｅ  ｂｕｆｆｅｒ）の無効化オペレーションを対象とする。
【背景技術】
【０００３】
マルチプロセッサシステムは、アトミックなリードモディファイライト（ｒｅａｄ−ｍｏｄｉｆｙ−ｗｒｉｔｅ）オペレーションを用いて、複数のプロセッサ又はスレッド間で共有されるデータ構造を処理する。これらは、キャッシュ可能なメモリ上でオペレーションすることができるし、キャッシュ不可能なメモリ上でもオペレーションすることができる。このオペレーションがキャッシュ可能なメモリに対してのものであって、境界（例えば、キャッシュライン）を横断しない場合には、プロセッサは、例えばキャッシュラインロッキング等の内部手段を利用して、そのオペレーションをアトミックに保つことができる。バスロックがキャッシュ不可能なメモリに対してのものである場合、又は、プロセッサが内部手段を用いることのできない境界を横断する場合には、プロセッサは、アトミックなリードモディファイライトを行う方法が必要となる。
【０００４】
キャッシュ不可能なアトミックトランザクションに対して必要なアトミック性を提供する一般的なソリューションは、相互接続ファブリック（すなわち、配線プロトコル及びシグナリングプロトコルであって、これらによりプロセッサ、キャッシュ及びメモリが互いに通信する）を「ロック」して、これを１つのプロセッサにのみ使用し、他の全てのプロセッサをストールすること（ｓｔａｌｌｉｎｇ）である。従来、このようなことは、ファブリックのトポロジの各スイッチポイントでのロック条件を調停し且つ強制することによって行われていた。
【０００５】
また、プロセッサは、仮想アドレスから物理アドレスへの変換スキームを使用するとともに、通常、これらのオペレーションを変換索引バッファ（ＴＬＢ）にキャッシュする。ソフトウェアが、例えば仮想アドレスの無効化、ページのプロテクションの変更、ページの移動等の変換のうち１つを変更する場合には、その変換の（ＴＬＢに）キャッシュされたコピーの全ては、変更された変換をソフトウェアが有効にすることができる前に削除されなければならない。
【０００６】
変更を変換に同期させるのに用いられる従来のソリューションの１つは、全てのプロセッサに割り込んで各プロセッサ上でタスクを実行して、変更されたＴＬＢエントリを無効にすることによって、ソフトウェアが、複数のプロセッサ上のＴＬＢを明確に無効にすることである。変換の変更を開始するプロセッサは、他の全てプロセッサに割り込む。受信プロセッサは、変更される変換をプロセッサ上のＴＬＢからフラッシュする割り込みハンドラを実行する。変更を変換に同期させるのに使用される他の従来の方法は、プロセッサからプロセッサへの直接的なハードウェア通信である（例えば、ソフトウェアは、明示的なＴＬＢ無効化命令を用いて、変更されている変換を記述する全ての他のプロセッサに対してハードウェアメッセージを送信する）。１つ以上の開始プロセッサが全ての他のプロセッサに対して「同期」メッセージを送信し、ハンドシェイク応答を受信した後で、以前のＴＬＢ無効化メッセージの全ては、そのプロセッサでこれらの十分な効果を有していた。専用ハードウェアは、全てのプロセッサが、同期化オペレーションが始まる前に無効にされた全ての変換を用いること止めるまで、同期化オペレーションが終わらないことを保証する。
【０００７】
従来のバスロックソリューションでは、相互接続ファブリック内の中間のスイッチポイントの全ては、ロックに気付き、それに対するハードウェアを実装しなければならない。各スイッチポイントは、要求元の端末間の競合を仲裁するとともに、承認されたロックを、ロックされていないプロセッサからのトラフィックを禁止することによって強制する。したがって、システムが大きくなるにつれて、より複雑な相互接続トポロジが必要になる。
【０００８】
ＴＬＢ無効化についての従来の同期ソリューションは、ポイントツーポイントの通信を必要とする。このソリューションは、関与するプロセッサの数の２乗に比例する配線又はトランザクションが必要になるので、うまくスケールアップすることができない。さらに、このソリューションは、複数のプロセッサによって同時に出された無効化／同期化シーケンスのシリアライゼーションによって、性能低下につながる可能性がある。
【０００９】
したがって、従来のソリューションの制限に左右されないバスロック及び／又はＴＬＢ無効化を行う方法及び装置を提供することが有益であろう。
【発明の概要】
【課題を解決するための手段】
【００１０】
バスロックを行う方法を対象とする実施形態が開示される。この方法は、ロックマスタが、システム内の第１プロセッサからロック要求を受信することを含む。ロックマスタは、システム内の全てのプロセッサに対して静止要求を送信する。そして、全てのプロセッサは、ロックマスタから静止要求を受信すると、新たなトランザクションを発行するのを止めて、静止許諾トランザクション（ｑｕｉｅｓｃｅ  ｇｒａｎｔｅｄ  ｔｒａｎｓａｃｔｉｏｎ）を発行する。ロックマスター、全てのプロセッサから静止許諾トランザクションを受信すると、第１プロセッサの識別子を含むロック許諾メッセージを発行する。第１プロセッサは、アトミックトランザクションシーケンスを行い、アトミックトランザクションシーケンスが完了すると第１ロック解除メッセージをロックマスタに送信する。ロックマスタは、第１プロセッサから第１ロック解除メッセージを受信すると、全てのプロセッサに対してロック解除メッセージを送信する。
【００１１】
バスロックを行うシステムを対象とする実施形態が開示される。このシステムは、複数のプロセッサと、ロックマスタと、を含む。ロックマスタは、システム内の複数のプロセッサのうち第１プロセッサからロック要求を受信し、システム内の全てのプロセッサに対して静止要求を送信する。ロックマスタは、全てのプロセッサから静止許諾トランザクションを受信すると、第１プロセッサの識別子を含むロック許諾メッセージを発行する。ロックマスタは、第１プロセッサから第１ロック解除メッセージを受信すると、全てのプロセッサに対してロック解除メッセージを送信する。
【００１２】
バスロックを行う装置を対象とした実施形態が開示される。この装置は、システム内の複数のプロセッサのうち第１プロセッサからロック要求を受信し、システム内の全てのプロセッサに対して静止要求を送信する回路を含む。装置は、全てのプロセッサから静止許諾トランザクションを受信すると、第１プロセッサの識別子を含むロック許諾メッセージを発行する。装置は、第１プロセッサから第１ロック解除メッセージを受信すると、全てのプロセッサに対して第２ロック解除メッセージを送信する。
【００１３】
より詳細な理解は、添付図面とともに例示された以下の説明から得られる。
【図面の簡単な説明】
【００１４】
【図１】開示された１つ以上の実施形態が実装され得る例示的な装置のブロック図である。
【図２】実施形態による例示的なシステムの図式表現である。
【図３】実施形態によるバスロックを行う例示的な方法のフロー図である。
【図４】実施形態による変換索引バッファ（ＴＬＢ）の無効化を行う例示的な方法のフロー図である。
【発明を実施するための形態】
【００１５】
実施形態のより詳細な説明が以下に提供されるが、簡潔に言えば、中心となるロックマスタは、プロセッサがアトミックなリードモディファイライト手続きを開始する必要がある場合に、当該プロセッサからのバスをロックする要求を受信するアービタとして機能する。ロックマスタは、このバスを制御して、他のプロセッサが他の如何なるオペレーションに対してもバスを利用しないことを保証する。別の実施形態では、中心となる同期マスタは、変換索引バッファ（ＴＬＢ）の無効化要求をプロセッサから受信し、システム内の全てのプロセッサに対して同期メッセージを送信する。
【００１６】
図１は、開示された１つ以上の実施形態が実装され得る例示的な装置１００のブロック図である。装置１００は、コンピュータ（例えばデスクトップコンピュータ、タブレット型コンピュータ等）、ゲーミングデバイス、携帯用デバイス、セットトップボックス、テレビ又は携帯電話を含み得る。装置１００は、プロセッサ１０２と、メモリ１０４と、記憶装置１０６と、１つ以上の入力装置１０８と、１つ以上の出力装置１１０と、を含む。装置１００は、任意に、入力ドライバ１１２と、出力ドライバ１１４と、を含んでもよい。装置１００は、図１に示されていない追加のコンポーネントを含んでもよい。
【００１７】
プロセッサ１０２は、中央処理装置（ＣＰＵ）、グラフィックスプロセッシングユニット（ＧＰＵ）、同じダイ上に位置するＣＰＵ及びＧＰＵ、又は、１つ以上のプロセッサコア（ここで、各プロセッサコアは、ＣＰＵ又はＧＰＵであってもよい）を含み得る。メモリ１０４は、プロセッサ１０２と同じダイ上に位置してもよいし、プロセッサ１０２と離れて位置してもよい。メモリ１０４は、例えば、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭ又はキャッシュ等のように、揮発性又は不揮発性のメモリを含んでもよい。
【００１８】
記憶装置１０６は、例えば、ハードディスクドライブ、ソリッドステートドライブ、光ディスク若しくはフラッシュドライブ等のように、固定又は取り外し可能な記憶装置を含み得る。入力装置１０８は、キーボード、キーパッド、タッチスクリーン、タッチパッド、検出器、マイクロホン、加速度計、ジャイロスコープ、生体測定用スキャナ、又は、ネットワーク接続（例えば、無線ＩＥＥＥ８０２信号の送信及び／又は受信用の無線ローカルエリアネットワークカード）を含み得る。出力装置１１０は、ディスプレイ、スピーカ、プリンタ、触覚フィードバック装置、１つ以上のライト、アンテナ、又は、ネットワーク接続（例えば、無線ＩＥＥＥ８０２信号の送信及び／若しくは受信用の無線ローカルエリアネットワークカード）を含み得る。
【００１９】
入力ドライバ１１２は、プロセッサ１０２及び入力装置１０８と通信し、プロセッサ１０２が入力装置１０８からの入力を受信するのを可能にする。出力ドライバ１１４は、プロセッサ１０２及び出力装置１１０と通信し、プロセッサ１０２が出力装置１１０に対して出力を送信するのを可能にする。入力ドライバ１１２及び出力ドライバ１１４は、任意のコンポーネントであり、装置１００は、入力ドライバ１１２及び出力ドライバ１１４が存在しない場合と同様にオペレーションし得ることに留意すべきである。説明した実施形態ではメインディスプレイを含むが、本発明は、メインディスプレイなしで実施されてもよいし、ビデオのソース機器のみを含んでもよい。このように、コントロール領域は、多くの携帯機器を備えたメインディスプレイなしのオフィス環境であってもよい。
【００２０】
図２は、一実施形態による例示的なシステム２００の図式表現である。例示的なシステム２００は、複数のプロセッサ１０２０〜１０２Ｎ（Ｐ０〜Ｐ（Ｎ）で示す）と、複数のメモリ装置１０４０〜１０４Ｍ（Ｍｅｍ０〜Ｍｅｍ（Ｍ）で示す）と、ロック／同期マスタ２１０と、を含む。図２に示すように、ロック／同期マスタ２１０が任意のノードＸに接続され得るが、メモリ１０４０に直接接続されたノードに接続されている状態で、プロセッサ１０２は、ノード又はスイッチ「Ｘ」を介して各メモリ１０４に関連付けられている。例示的なシステム２００では、プロセッサＰ０〜Ｐ５はＭｅｍ０と関連付けられており、プロセッサＰ６〜Ｐ８はＭｅｍ１と関連付けられており、プロセッサＰ（Ｎ−１）〜Ｐ（Ｎ）はＭｅｍ（Ｍ）と関連付けられている。複数のメモリ１０４が図示されているが、任意の数のメモリ（例えば、１個だけのメモリ）が例示的なシステム２００に存在していてもよい。さらに、様々なメモリ１０２が特定のメモリ１０４に関連付けられて図示されているが、任意のプロセッサ１０２は、例示的なシステム２００に示された任意のメモリ１０２にアクセスできることに留意すべきである。
【００２１】
バスロック操作又はＴＬＢ無効化の何れかを行う前に、プロセッサは、プロセッサのアクティブプール（ａｃｔｉｖｅ  ｐｏｏｌ）に加わる／離れることに関するメッセージをロック／同期マスタに送信する。これは、ロック／同期マスタが、任意の所定の時間に、何れのプロセッサが活動していて、何れのプロセッサが休止しているかを知ることが可能になるように行われる。例えば、プロセッサは、プロセッサが活動してプロセッサのアクティブプールに加わったことをロックマスタに知らせる場合に、ロック／同期マスタに対してメッセージを送信し、プロセッサが休止状態に入る予定の場合に、プロセッサがアクティブプールを離れて当該プロセッサからのシグナリングが予測できないことをロックマスタが知るように、ロックマスタに対してメッセージを送信する。
【００２２】
図３は、一実施形態によるバスロックを行う例示的な方法３００のフロー図である。便宜上、ロック／同期マスタは、例示的な方法３００の「ロックマスタ」として説明する。
【００２３】
ステップ３０１では、プロセッサは、アトミックなリードモディファイライトトランザクションを始める必要がある場合に、ロックマスタに対してロック要求を送信する。ロック要求は、キャッシュされていない書き込みに類似した相互接続ファブリックを介して移動し、要求しているプロセッサ（例えば、コア）を識別する値を含む。識別子（ＩＤ）は、コアＩＤの形態であってもよい。１つ以上のプロセッサは、ほぼ同時又は短時間に互いに連続して、ロックマスタに対してロック要求を送信することができる。
【００２４】
ロックマスタは、プロセッサからロック要求を受信すると、ロック要求をキューイングし、何れのロック要求を最初に処理するかについて決定する（ステップ３０２）。ロックマスタは、決定すると、全てのプロセッサに対して静止要求を送信する（ステップ３０３）。ブロードキャストされた静止要求メッセージは、コヒーレンスプローブに類似した相互接続ファブリックを介して移動し、全てのプロセッサに対して、相互接続ファブリックを利用するのを止めるように命令する。
【００２５】
ステップ３０４では、プロセッサは、相互接続ファブリック上の新たなトランザクションの発行を止めて、未処理のトランザクションが完了するのを待機する。プロセッサは、未処理のトランザクションが完了すると、ロックマスタに対する静止許諾トランザクションを相互接続ファブリック上に発行して待機する。
【００２６】
ステップ３０５では、ロックマスタは、プロセッサから受信した静止許諾トランザクションをカウントし、そのカウント数がアクティブなプロセッサの数と一致する場合に（すなわち、全ての静止許諾トランザクションが受信された場合に）、ブロードキャストによってロック許諾メッセージを発行する（ステップ３０６）。ロック許諾メッセージは、ロックが許諾されたプロセッサのＩＤを含む。
【００２７】
ステップ３０７では、各プロセッサは、ロック許諾メッセージをロックマスタから受信して、許諾ＩＤを自身のＩＤと比較する。許諾ＩＤが自身のＩＤの場合（ステップ３０８）には、プロセッサは、アトミックなトランザクションシーケンス（例えば、リードモディファイライト）を続行し、完了した場合にロック解除メッセージをロックマスタに発行する（ステップ３０９）。ステップ３０８にて許諾ＩＤが自身のＩＤと一致しない場合には、プロセッサは、相互接続ファブリックの使用を控える（ステップ３１２）。
【００２８】
ロックマスタが複数のロック要求を受信した場合（ステップ３１０）には、本方法は、ステップ３０６に戻り、ロックマスタが、次のプロセッサＩＤ許諾を含む新たなロック許諾メッセージをプロセッサに発行する。そうでない場合には、ロックマスタは、全てのプロセッサへのブロードキャストメッセージを介してロック解除を送信する（ステップ３１１）。そして、各プロセッサは、ロックマスターからのロック解除を受信すると、相互接続ファブリックの使用を再開する。
【００２９】
図４は、一実施形態による変換索引バッファ（ＴＬＢ）の無効化を行う例示的な方法４００のフロー図である。便宜上、ロック／同期マスタは、例示的な方法４００の同期マスタと呼ばれる。
【００３０】
プロセッサが変換を変更する必要がある場合には、プロセッサは、同期マスタに削除されつつあるトランザクションを含む一連のＴＬＢ無効化要求を送信する（ステップ４０１）。その後、プロセッサは、自身の固有のプロセッサＩＤを含む単一の同期要求をロックマスタに送信する。無効化シーケンスをできるだけ早く実行するために無効化要求をパイプライン化することができ、これにより、同期要求がシリアライゼーションを強化する。すなわち、シリアライゼーションは、無効化要求をパイプライン化すること（例えば、単一の同期化オペレーションに続く任意数のＴＬＢ無効化オペレーションの「バッチ処理」を発行すること）によって、変換を変更するプロセッサが、他のプロセッサが古い変換を依然として使用していないことを知るまで新たな変換を可能にすることができない、と要求するので、無効化シーケンスが加速され得る。
【００３１】
同期マスタは、全てのプロセッサに対して無効化要求をブロードキャストし（ステップ４０２）、全てのプロセッサに対して同期メッセージをブロードキャストする（ステップ４０３）。各プロセッサは、無効化要求及び同期メッセージを受信すると、以前に無効にされたあらゆるトランザクションの使用を完了していることを保証し、同期マスタに対して同期完了メッセージを発行する（ステップ４０４）。
【００３２】
同期マスタは、プロセッサからの受信同期完了メッセージをカウントし、カウント数がアクティブなプロセッサの数と一致する場合に、ブロードキャストによってプロセッサに対して同期完了メッセージを発行する（ステップ４０５）。同期完了メッセージは、同期要求が完了しつつあるプロセッサのＩＤを含む。同期マスタが、複数の同期要求をキューイングしている（すなわち、同期マスタが１つ以上のプロセッサから１つ以上の同期要求を受信する）が、介在する無効化要求を何も受信していない場合には、同期マスタは、個々の同期完了メッセージの代わりに、ステップ４０５にて複数の同期完了メッセージを発行することができる。これにより、複数のプロセッサによる重複した無効化／同期シーケンスの取り扱いを加速することができる。各プロセッサが同期マスタから同期完了メッセージを受信する場合であってプロセッサが同期を要求していない場合には、このプロセッサは、同期完了メッセージを無視して通常の実行を続ける。同期を要求していた場合には、このプロセッサは、メッセージ内のＩＤと自身のＩＤとを比較する（ステップ４０６）。ステップ４０６にてＩＤが一致する場合には、プロセッサは、自身の同期が終了したことを知る（ステップ４０７）。ＩＤが一致しない場合には、プロセッサは、同期マスタを待ち続け、プロセッサが要求した同期を行う。あるいは、同期マスタによって送信された同期完了メッセージが、当該メッセージにＩＤが含まれたプロセッサのみ、又は、全てのプロセッサのうちのサブセットのみに送信されてもよい。
【００３３】
本明細書の開示に基づいて多くの変形が可能であることを理解すべきである。特別な組み合わせで特徴及び要素を上述したが、各特徴又は要素は、他の特徴及び要素を含まずに単独で使用されてもよいし、他の特徴及び要素の有無の様々な組み合わせにおいて使用されてもよい。
【００３４】
例えば、相互接続ファブリックは、様々な技術の何れかを含んでもよい。相互接続ファブリックは、集積回路ダイ上の構成部品間のワイヤ、パッケージを共有する集積回路ダイ間のインターポーザ若しくはパッケージ基板上の配線、又は、パッケージ間のプリント回路基板上の配線を含み得る。
【００３５】
また、上述した実施形態では、ロックマスタ及び同期マスタは、単一のエンティティ（すなわち、２１０）内に存在すると説明されているが、これらのマスタの各々は、別個のエンティティ内に存在してもよいことに留意すべきである。
【００３６】
さらに、上述した方法３００，４００は、ロックマスタ又は同期マスタがロック／同期マスタ２１０を含む例示的なシステム２００であって、プロセッサがプロセッサＰ０〜Ｐ（Ｎ）を含む例示的なシステム２００のコンポーネントに実装されてもよい。上述したリードモディファイライトオペレーションは、リードモディファイライトオペレーションを各メモリ（すなわち、Ｍｅｍ０〜Ｍｅｍ（Ｍ））に対して行う図２のプロセッサを含んでもよい。
【００３７】
提供される方法は、汎用コンピュータ、プロセッサ又はプロセッサコアに実装することができる。適切なプロセッサは、例えば、汎用プロセッサ、特殊用途のプロセッサ、従来のプロセッサ、デジタル信号プロセサ（ＤＳＰ）、複数のマイクロプロセッサ、ＤＳＰコアと共同した１つ以上のマイクロプロセッサ、コントローラ、マイクロコントローラ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）回路、他のタイプの集積回路（ＩＣ）及び／又はステートマシンを含む。かかるプロセッサは、処理されたハードウェア記述言語（ＨＤＬ）命令及びネットリスト（コンピュータ読み取り可能な媒体に格納可能な命令等）を含む他の中間データの結果を用いる製造プロセスを構成することによって、製造することができる。かかる処理の結果は、後に半導体製造プロセスで用いられるマスクワークであって、本発明の態様を実装するプロセッサを製造するマスクワークとなり得る。
【００３８】
本明細書で提供される方法又はフローチャートは、コンピュータプログラム、ソフトウェア、又は、汎用コンピュータ若しくはプロセッサが実行するためのコンピュータ可読記憶媒体に組み入れられたファームウェアに実装することができる。コンピュータ可読記憶媒体の例としては、読み取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、レジスタ、キャッシュメモリ、半導体記憶装置、内部ハードディスク及びリムーバブルディスク等の磁気媒体、光磁気記録媒体、並びに、ＣＤ−ＲＯＭディスク及びデジタル多用途ディスク（ＤＶＤ）等の光媒体が挙げられる。
【００３９】
実施形態１．機能を行う方法。
【００４０】
実施形態２．キャッシュがＬ２又はＬ３のキャッシュである、実施形態１の方法。
【００４１】
実施形態３．同期バリア（ＤＳＢ）命令をさらに含む、上記実施形態の何れかの方法。
【００４２】
実施形態４．同期バリア命令は、コヒーレントドメインの全てのコアと特定の同期を行う、上記実施形態の何れかの方法。
【００４３】
実施形態５．他の全てのコアが停止した後に、現在ＤＳＢを使用している同一のスレッドによって以前に発行された任意のＴＬＢＩによって影響を受けた任意の変換を用いて、同期を完了することをさらに含む、上記実施形態の何れかの方法。
【００４４】
実施形態６．スレッドがＤＳＢかバスロックの何れかを発行する、上記実施形態の何れかの方法。
【００４５】
実施形態７．ＬＳが両方のスレッドからのバスロックを決して発行しないように自身を規制する、上記実施形態の何れかの方法。
【００４６】
実施形態８．ＬＳが両方のスレッドからのＤＳＢを決して発行しないように自身を規制する、上記実施形態の何れかの方法。
【００４７】
実施形態９．ＤＳＢが１つのスレッドから発行され、バスロックが第２のスレッドから発行される、上記実施形態の何れかの方法。
【００４８】
実施形態１０．ＤＶＭＯｐがポステッドライトである、上記実施形態の何れかの方法。
【００４９】
実施形態１１．スレッドからのＤＶＭＳｙｎｃ要求を発行する前に当該スレッドからの保留中の書き込みが全て終了するのを待機することをさらに含む、上記実施形態の何れかの方法。
【００５０】
実施形態１２．スレッドからの保留中の書き込みが全て終了するのを待機することは、何らかのＤＶＭＯｐ要求を含む、上記実施形態の何れかの方法。
【００５１】
実施形態１３．ＬＳは、ＤＶＭＳｙｎｃ要求を発行すると、ＤＶＭＳｙｎｃがＤＶＭＣｏｍｐｌｅｔｅを受信するまで、スレッドのためにＴＬＢＩを発行しない、上記実施形態の何れかの方法。
【００５２】
実施形態１４．一度に１つのみのＤＶＭＳｙｎｃを発行することを含む、上記実施形態の何れかの方法。
【００５３】
実施形態１５．第２のＤＶＭＳｙｎｃは、ＤＶＭＳｙｎｃメッセージが送信される時間からＤＶＭＣｏｍｐｌｅｔｅメッセージを送信する時間まで発行されない、上記実施形態の何れかの方法。
【００５４】
実施形態１６．異なるスレッドからの複数のＤＶＭＳｙｎｃ要求が壊され、単一のＤＶＭＳｙｎｃ／ＤＶＭＣｏｍｐｌｅｔｅシーケンスで取り扱われる、上記実施形態の何れかの方法。
【００５５】
実施形態１７．同期の間、メモリコントローラは、バスロックを含む通常の要求を処理し続ける、上記実施形態の何れかの方法。
【００５６】
実施形態１８．ＤＶＭＳｙｎｃ要求がスレッド単位である、上記実施形態の何れかの方法。
【００５７】
実施形態１９．ＤＶＭＣｏｍｐｌｅｔｅ要求がコア単位である、上記実施形態の何れかの方法。
【００５８】
実施形態２０．コアが、レジスタ書き込みを介して、メモリコントローラとハンドシェイクを行う、上記実施形態の何れかの方法。
【００５９】
実施形態２１．コアは、ＣＣ６エントリの間、メモリコントローラがコアからのＤＶＭＣｏｍｐｌｅｔｅ要求を予期しないように、コアがＴＬＢの使用を終了し停止中であることをメモリコントローラに告げる、上記実施形態の何れかの方法。
【００６０】
実施形態２２．コアは、ＣＣ６イグジットの間とリセットの間、メモリコントローラがＤＶＭＳｙｎｃメッセージに応答してコアからのＤＶＭＣｏｍｐｌｅｔｅ要求を予期することを開始できるように、コアがＴＬＢを用いてスタートするところであることをメモリコントローラに告げる、上記実施形態の何れかの方法。
【００６１】
実施形態２３．ＩＴＬＢが、内部２サイクルプローブ（アドレス＋追加のフィールド）をＬＳに送信する、上記実施形態の何れかの方法。
【００６２】
実施形態２４．ＺＶＡは、キャッシュ階層が全ての４ストアを受信するまで閉じられないことが保証された４ＷＣ＋ストアである、上記実施形態の何れかの方法。
【００６３】
実施形態２５．ＣＬＦＬＵＳＨは、個別のトランザクションコマンドのタイプである、上記実施形態の何れかの方法。
【００６４】
実施形態２６．〜ＬＳ＿Ｌ２ＳｔＷｃｂＲｅｑＰｏｓｔｅｄを用いて強く順序付けられたＯＰの性能が、ＷＣＢ  Ｌ２バッファの数によって制限される、上記実施形態の何れかの方法。
【００６５】
実施形態２７．ＬＳ＿Ｌ２ＳｔＷｃｂＲｅｑＰｏｓｔｅｄが、弱く順序付けられたトランザクション用にセットされている、上記実施形態の何れかの方法。
【００６６】
実施形態２８．Ｌ２タグがＬ１にあることを示す場合に、Ｌ１がコヒーレントなｍｅｍｔｙｐｅ上でのみプローブされる、上記実施形態の何れかの方法。
【００６７】
実施形態２９．ＴＬＢエンティティをローカル又はグルーバルに無効化するＴＬＢＩと呼ばれる命令をさらに含む、上記実施形態の何れかの方法。
【００６８】
実施形態３０．スレッドが、一連のパイプライン化されたＴＬＢＩを送信する、上記実施形態の何れかの方法。
【００６９】
実施形態３１．ＴＬＢＩシリーズの帯域幅が５〜１０サイクル毎に１である、上記実施形態の何れかの方法。
【００７０】
実施形態３２．プローブチャネルの連鎖したメッセージがインターリーブされない、上記実施形態の何れかの方法。
【００７１】
実施形態３３．ＳＤＰポートにて、連鎖したメッセージ間に通常のプローブがあるが、ＸＳＩは、このタイプのインタリービングを隠す、上記実施形態の何れかの方法。
【００７２】
実施形態３４．アイドルサイクルのみが２つのＤＶＭＯｐメッセージの間に存在する、上記実施形態の何れかの方法。
【００７３】
実施形態３５．ＣＣ６エントリの間、Ｌ１Ｉ、Ｌ１Ｄ及びＬ２がフラッシュされる、上記実施形態の何れかの方法。
【００７４】
実施形態３６．ＰＣ６エントリの間、Ｌ３がフラッシュされる、上記実施形態の何れかの方法。
【００７５】
実施形態３７．ソフトウェアが、８つの新たなＦｌｕｓｈＬ２Ｗａｙ  ＣＭＯｓを実行する、上記実施形態の何れかの方法。
【００７６】
実施形態３８．Ｌ３Ｃｔｌ内のフラッシュイテレータ（ｆｌｕｓｈ  ｉｔｅｒａｔｏｒ）がＬ２及びＬ２シャドウタグをフラッシュするがＬ３にはしない、上記実施形態の何れかの方法。
【００７７】
実施形態３９．ＳＭＵは、ＦｌｕｓｈＬ３Ｗａｙコマンドを用いて、Ｌ３ＣＴＬ１に対して８つのＳＭＮ書き込みを発行する、上記実施形態の何れかの方法。
【００７８】
実施形態４０．Ｌ３Ｃｔｌ内のイテレータがＬ３キャッシュの２つの方法をフラッシュする、上記実施形態の何れかの方法。
【００７９】
実施形態４１．Ｌ２キャッシュ位置のフラッシュがＤＣ内にもラインが存在することを検出した場合に、Ｌ２Ｃｔｌが、ＤＣから出るラインをプローブする、上記実施形態の何れかの方法。
【００８０】
実施形態４２．ＩＣの無効化はコアの責務である、上記実施形態の何れかの方法。
【００８１】
実施形態４３．マルチコアシステムでの同期化及びセマフォをサポートするローカル及びグローバルなモニタをさらに含む、上記実施形態の何れかの方法。
【００８２】
実施形態４４．各コアがＬＳ内にローカルモニタを有し、ＣＰＵの外部にグローバルモニタを有する、上記実施形態の何れかの方法。
【００８３】
実施形態４５．ローカルモニタが、メモリコントローラのコヒーレントスレイブ内、又は、その近くに存在する、上記実施形態の何れかの方法。
【００８４】
実施形態４６．ＬＳが、キャッシュされないロード又はストアトランザクションに対して、排他的なトランザクション特性を加える、上記実施形態の何れかの方法。
【００８５】
実施形態４７．トランザクションを異なって取り扱うことなく、プロパティをトランザクション符号化の一部としてＬＳからＳＤＦに送信することをさらに含む、上記実施形態の何れかの方法。
【００８６】
実施形態４８．ＳＤＦからのキャッシュされないストア応答が、排他的なリードモディファイライトの成否を示す「ＥｘＯｋａｙ」と呼ばれるプロパティを有し得る、上記実施形態の何れかの方法。
【００８７】
実施形態４９．プロパティが、ＬＳまでの全ての応答で送信される、上記実施形態の何れかの方法。
【００８８】
実施形態５０．ＣＬＲＥＸが、ローカルモニタによって専ら取り扱われる、上記実施形態の何れかの方法。
【００８９】
実施形態５１．ＮＳは、全てのメモリ要求の属性として通過し得る、上記実施形態の何れかの方法。
【００９０】
実施形態５２．ＮＳがタグに格納される、上記実施形態の何れかの方法。
【００９１】
実施形態５３．ＮＳは、補給応答に関してＭＣＴによって指定されたように設定され、ＬＳがロード又はストアの完了を試みるようにＬＳによって最終的に反応される、上記実施形態の何れかの方法。
【００９２】
実施形態５４．実行スレッドが、コア（ＳＣＲ＿ＥＬ３．ＮＳ）内の適切なコントロールレジスタビット毎に安全な状態になく、ＮＳタグビットが明らかな場合に、アクセスを拒絶し例外を送出する、上記実施形態の何れかの方法。
【００９３】
実施形態５５．コアアクセスに対して必要なセマンティクスがコア自身に含まれる、上記実施形態の何れかの方法。
【００９４】
実施形態５６．以下の属性：アクセスモード（ロード、ストア、命令（ＡＲＭのみ））、キャッシュレベル（Ｌ１、Ｌ２、Ｌ３）及び／又は使用（通常の、非一時的な）の属性及びその組み合わせを含むプリフェッチ命令をさらに含む、上記実施形態の何れかの方法。
【００９５】
実施形態５７．Ｌ２がＬ１を含む、上記実施形態の何れかの方法。
【００９６】
実施形態５８．Ｌ１のプリフェッチターゲティングがＬ２もターゲットにする、上記実施形態の何れかの方法。
【００９７】
実施形態５９．プリフェッチサポートはＬＳ又はＩＴから由来する、上記実施形態の何れかの方法。
【００９８】
実施形態６０．プリフェッチサポートがＬＳから由来する場合に、Ｌ２がロードされる、上記実施形態の何れかの方法。
【００９９】
実施形態６１．コアが、割り込み又はイベントを未決のままにする低パワーのアイドル状態に移行することができる、上記実施形態の何れかの方法。
【０１００】
実施形態６２．イベントが、任意のスレッドを他の全てのスレッドにブロードキャストすることができるジェネリックウェイクアップ（ｇｅｎｅｒｉｃ  ｗａｋｅｕｐ）である、上記実施形態の何れかの方法。
【０１０１】
実施形態６３．割り込み及びイベントの両方が割り込みチャネル上のコアに到達する、上記実施形態の何れかの方法。
【０１０２】
実施形態６４．スレッドは、ＳＥＶを実行する場合に、特定のアドレスへのキャッシュされない書き込みとしてＬＳから出てＬ２に入る、上記実施形態の何れかの方法。
【０１０３】
実施形態６５．ＣＰＵの外部のロジックは、割り込みチャネルに関するイベントを書き込み、ブロードキャストすることを認識する責務を有する、上記実施形態の何れかの方法。
【０１０４】
実施形態６６．コア内の両スレッドがＷＦＥ又はＷＦＩを実行している場合に、コアがＣＣ１（クロックが停止している）に入る、上記実施形態の何れかの方法。
【０１０５】
実施形態６７．Ｌ３Ｉ内のＳＣＦＣＴＰブロックは、イベント又は割り込みが到達した場合にコアを活動させる、上記実施形態の何れかの方法。
【０１０６】
実施形態６８．スレッド毎のリソースを備える割り込みコントローラが、ＳＯＣ内のＣＰＵコンプレックスの外部にある、上記実施形態の何れかの方法。
【０１０７】
実施形態６９．スレッドは、データファブリックを調べるキャッシュされない読み込み及び書き込みを用いて、そのＡＰＩＣ／ＧＩＣとのアウトバウンド通信を開始することができる、上記実施形態の何れかの方法。
【０１０８】
実施形態７０．ＡＰＩＣ／ＧＩＣは、割り込みチャネルを用いて、そのスレッドとインバウンド通信を開始することができる、上記実施形態の何れかの方法。
【０１０９】
実施形態７１．ＣＰＵコンプレックスの外部に、ＧＩＣブロック又はＡＰＩＣブロックのバンクがある、上記実施形態の何れかの方法。
【０１１０】
実施形態７２．各ＣＰＵコンプレックスは、取り付けられた割り込みコントローラのセットを、そのＣＰＵコンプレックス内のスレッドの数に対して十分な容量で有する、上記実施形態の何れかの方法。
【０１１１】
実施形態７３．割り込みコントローラのバンクは、プロセッサスレッドからのレジスタの読み出し及び書き込み、並びに、ＩＯ装置からの着信割り込みに対してのデータファブリック接続（ＡＸＩを用いた）を有し、当該バンクは、プロセッサスレッドに対する割り込み及び割り込みハンドシェイクに対してのコントロールファブリック接続（ＡＸＩ＿ＳＰを用いた）を有する、上記実施形態の何れかの方法。
【０１１２】
実施形態７４．ＡＸＩ＿ＳＰは、各方向に１つの書き込みチャネルのみを備えたＡＸＩのサブセットに類似する、上記実施形態の何れかの方法。
【０１１３】
実施形態７５．全ての書き込みがポストされる、上記実施形態の何れかの方法。
【０１１４】
実施形態７６．ＡＸＩ＿ＳＰへのトラフィック及びＡＸＩ＿ＳＰからのトラフィックが、変更されたＳＭＮルータ又は専用のガスケットブロックによってＳＭＮに合流される、上記実施形態の何れかの方法。
【０１１５】
実施形態７７．ＳＭＮは、割り込みトラフィックをＣＰＵコンプレックスに接続し、その先の各コアのＳＣＦＣＴＰブロックに接続するのに用いられる、上記実施形態の何れかの方法。
【０１１６】
実施形態７８．ＳＣＦＣＴＰが、物理的な割り込みワイヤをコア内に運ぶ、上記実施形態の何れかの方法。
【０１１７】
実施形態７９．割り込みがＩＯ装置でスタートし、ＩＯハブに向かって進む、上記実施形態の何れかの方法。
【０１１８】
実施形態８０．割り込みは、メッセージシグナル割り込みとしてＳｃａｌａｂｌｅ  Ｄａｔａ  Ｆａｂｒｉｃを通り、ＡＰＩＣ／ＧＩＣバンクのＡＸＩポートまで進む、上記実施形態の何れかの方法。
【０１１９】
実施形態８１．ＣＭは、実際のＡＸＩインターフェースを用いて、メッセージを、ターゲットのＡＰＩＣ又はＧＩＣまで送る、上記実施形態の何れかの方法。
【０１２０】
実施形態８２．割り込みメッセージは、ＡＸＩ＿ＳＰバスを通りＳＭＮネットワーク内に進む、上記実施形態の何れかの方法。
【０１２１】
実施形態８３．ＳＭＮネットワークは、割り込みメッセージをＣＰＵコンプレックスまでルーティングする、上記実施形態の何れかの方法。
【０１２２】
実施形態８４．ＣＰＵコンプレックスの内部において、通常のＳＭＮルーティングハードウェアが、ターゲットのコアのＳＣＦＣＴＰブロックに割り込みメッセージを向ける、上記実施形態の何れかの方法。
【０１２３】
実施形態８５．ＳＣＦＣＴＰブロックは、専用の物理的割り込みワイヤを用いて、割り込みメッセージを、Ｌ３Ｉ／Ｃｏｒｅ境界を通ってコアの割り込みロジック内に送る、上記実施形態の何れかの方法。
【０１２４】
実施形態８６．割り込みを送るのに必要なハードウェアハンドシェイクは、ＳＭＮ書き込みトランザクションをＧＩＣ／ＡＰＩＣバンクに送り返すＳＣＦＣＴＰブロックによって管理される、上記実施形態の何れかの方法。
【０１２５】
実施形態８７．リードモディファイライトシーケンスを保護するためにアトミック性プリミティブをさらに含む、上記実施形態の何れかの方法。
【０１２６】
実施形態８８．アトミック性プリミティブがＬ１データキャッシュ内で取り扱われる、上記実施形態の何れかの方法。
【０１２７】
実施形態８９．アトミック性プリミティブがキャッシュ可能なロックと呼ばれる、上記実施形態の何れかの方法。
【０１２８】
実施形態９０．バスロックが、キャッシュ不可能なアドレスを含むか、キャッシュライン境界を跨ぐ、上記実施形態の何れかの方法。
【０１２９】
実施形態９１．ＳＤＦ内では、バスロックが、集中型のバスロックアービタによって１つのコヒーレントスレイブの内部又は近くでコントロールされる、上記実施形態の何れかの方法。
【０１３０】
実施形態９２．スレッドがバスロックを要求し、アービタが他の全てのスレッドにトランザクションを発行するのを止めるように知らせる、上記実施形態の何れかの方法。
【０１３１】
実施形態９３．アービタが、要求しているスレッドに対して、バスロックを認証する、上記実施形態の何れかの方法。
【０１３２】
実施形態９４．ロックしているスレッドが自身のアトミックなオペレーションを行う、上記実施形態の何れかの方法。
【０１３３】
実施形態９５．ロックが解除される、上記実施形態の何れかの方法。
【０１３４】
実施形態９６．バスロックアービタが、他のスレッドに対して、トランザクションを発行してよいと知らせる、上記実施形態の何れかの方法。
【０１３５】
実施形態９７．ロックの間、コヒーレントドメイン内の他の全てのコアがストールされる、上記実施形態の何れかの方法。
【０１３６】
実施形態９８．コヒーレントドメイン内の他のコアは、自身のＬ１キャッシュ及びＬ２キャッシュの中から実行を継続することができるが、Ｌ２ミスは、バスがロック解除されるまでストールする、上記実施形態の何れかの方法。
【０１３７】
実施形態９９．着信しているＤＶＭＳｙｎｃを完了する前に、未処理のバスロックを取得し終了することをさらに含む、上記実施形態の何れかの方法。
【０１３８】
実施形態１００．Ｄビット書き込みがアトミックであり、Ｄビット書き込みが開始されると、ＤＶＭＳｙｎｃがこれより前に順序付けられない、上記実施形態の何れかの方法。
【０１３９】
実施形態１０１．バスロックが、ＤＶＭＳｙｎｃシーケンスの間フローする、上記実施形態の何れかの方法。
【０１４０】
実施形態１０２．メモリコントローラは、どのコアがＣＣ６であるかを認識している、上記実施形態の何れかの方法。
【０１４１】
実施形態１０３．ＣＣ６の中及び外のトランザクションの周りにコーナーケースがある、上記実施形態の何れかの方法。
【０１４２】
実施形態１０４．コア（例えば、ｘ８６マイクロコード、ＡＲＭソフトウェア）が、レジスタ書き込みを介して、メモリコントローラとハンドシェイクを行う、上記実施形態の何れかの方法。
【０１４３】
実施形態１０５．ＣＣ６エントリの間、メモリコントローラがコアからのＢｕｓＬｏｃｋＧｒａｎｔ要求を予期しないように、コアがバストランザクションを行うこと及び停止することを終了したとメモリコントローラに知らせる、上記実施形態の何れかの方法。
【０１４４】
実施形態１０６．ＣＣ６エグジットの間及びリセットの間、メモリコントローラがＢｕｓＬｏｃｋＲｅｑメッセージに応答してコアからのＢｕｓＬｏｃｋＧｒａｎｔ要求を予期することを開始するように、コアが、メモリコントローラに対して、バストランザクションを再度行うことを知らせる、上記実施形態の何れかの方法。
【０１４５】
実施形態１０７．システム内の第１プロセッサからのロック要求をロックマスタが受信することを含む、上記実施形態の何れかの方法。
【０１４６】
実施形態１０８．ロックマスタがシステム内の全てのプロセッサに対して静止要求を送信することをさらに含む、上記実施形態の何れかの方法。
【０１４７】
実施形態１０９．ロックマスタからの静止要求を受信すると、全てのプロセッサが新たなトランザクションの発行を止め、静止許諾トランザクションを発行する、上記実施形態の何れかの方法。
【０１４８】
実施形態１１０．全てのプロセッサからの静止許諾トランザクションを受信すると、ロックマスタは、ロック許諾メッセージを発行し、ロックマスタによって発行されたロック許諾メッセージは、第１プロセッサの識別子を含む、上記実施形態の何れかの方法。
【０１４９】
実施形態１１１．第１プロセッサがアトミックトランザクションシーケンスを行い、アトミックトランザクションシーケンスが完了すると第１ロック解除メッセージをロックマスタに送信することをさらに含む、上記実施形態の何れかの方法。
【０１５０】
実施形態１１２．ロックマスタが、第１プロセッサから第１ロック解除メッセージを受信すると、第２ロック解除メッセージを全てのプロセッサに送信することをさらに含む、上記実施形態の何れかの方法。
【０１５１】
実施形態１１３．第１プロセッサが、ロック許諾メッセージに含まれる識別子を第１プロセッサの識別子と比較することをさらに含む、上記実施形態の何れかの方法。
【０１５２】
実施形態１１４．ロックマスタが、第１プロセッサ以外のプロセッサから受信した複数のロック要求をキューイングすることをさらに含む、上記実施形態の何れかの方法。
【０１５３】
実施形態１１５．少なくとも１つのプロセッサが、プロセッサのアクティブなセットに加わり又は離れるために、ロックマスタにメッセージを送信することをさらに含む、上記実施形態の何れかの方法。
【０１５４】
実施形態１１６．少なくとも１つのプロセッサが、活動状態に到達すると、アクティブなプロセッサのセットに加わるためにメッセージを送信する、上記実施形態の何れかの方法。
【０１５５】
実施形態１１７．少なくとも１つのプロセッサが、休止状態に入ると、アクティブなプロセッサのセットから離れるためにメッセージを送信する、上記実施形態の何れかの方法。
【０１５６】
実施形態１１８．ロックマスタが、プロセッサから受信した静止許諾メッセージの数をカウントし、全てのアクティブなプロセッサから静止許諾メッセージを受信したと判断すると、ロック許諾メッセージを送信することをさらに含む、上記実施形態の何れかの方法。
【０１５７】
実施形態１１９．上記実施形態の何れかの方法を行う装置。
【０１５８】
実施形態１２０．実施形態１〜１１８の何れかの方法を行うシステム。
【図１】
0006609552.tif 000002
【図２】
0006609552.tif 000003
【図３】
0006609552.tif 000004
【図４】
0006609552.tif 000005