JP2016534432A - バスロック及び変換索引バッファの無効化を行う方法及び装置 - Google Patents

バスロック及び変換索引バッファの無効化を行う方法及び装置 Download PDF

Info

Publication number
JP2016534432A
JP2016534432A JP2016526040A JP2016526040A JP2016534432A JP 2016534432 A JP2016534432 A JP 2016534432A JP 2016526040 A JP2016526040 A JP 2016526040A JP 2016526040 A JP2016526040 A JP 2016526040A JP 2016534432 A JP2016534432 A JP 2016534432A
Authority
JP
Japan
Prior art keywords
processor
lock
processors
message
quiesce
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
JP2016526040A
Other languages
English (en)
Other versions
JP6609552B2 (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 JP2016534432A publication Critical patent/JP2016534432A/ja
Application granted granted Critical
Publication of JP6609552B2 publication Critical patent/JP6609552B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/466Transaction processing
    • G06F9/467Transactional memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/52Indexing scheme relating to G06F9/52
    • G06F2209/522Manager
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/682Multiprocessor TLB consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/683Invalidation

Landscapes

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

Abstract

バスロック及び変換索引バッファの無効化トランザクションを行う方法及び装置は、ロックマスタが、システム内の第1プロセッサからロック要求を受信すること、を含む。ロックマスタは、静止要求をシステム内の全てのプロセッサに送信する。そして、全てのプロセッサは、ロックマスタからの静止要求を受信すると、新たなトランザクションを発行するのを止めて、静止許諾トランザクションを発行する。ロックマスタは、全てのプロセッサから静止許諾トランザクションを受信すると、第1プロセッサの識別子を含むロック許諾メッセージを発行する。第1プロセッサは、アトミックトランザクションシーケンスを行い、アトミックトランザクションシーケンスが完了すると、第1ロック解除メッセージをロックマスタに送信する。ロックマスタは、第1プロセッサから第1ロック解除メッセージを受信すると、第2ロック解除メッセージを全てのプロセッサに送信する。【選択図】図2

Description

(関連出願の相互参照)
本願は、2013年10月25日に出願された米国仮特許出願番号第61/895,569号の利益を主張するものであり、その内容は引用により本明細書に組み込まれる。
本発明は、概して、バスロックオペレーション及び変換索引バッファ(translation lookaside buffer)の無効化オペレーションを対象とする。
マルチプロセッサシステムは、アトミックなリードモディファイライト(read−modify−write)オペレーションを用いて、複数のプロセッサ又はスレッド間で共有されるデータ構造を処理する。これらは、キャッシュ可能なメモリ上でオペレーションすることができるし、キャッシュ不可能なメモリ上でもオペレーションすることができる。このオペレーションがキャッシュ可能なメモリに対してのものであって、境界(例えば、キャッシュライン)を横断しない場合には、プロセッサは、例えばキャッシュラインロッキング等の内部手段を利用して、そのオペレーションをアトミックに保つことができる。バスロックがキャッシュ不可能なメモリに対してのものである場合、又は、プロセッサが内部手段を用いることのできない境界を横断する場合には、プロセッサは、アトミックなリードモディファイライトを行う方法が必要となる。
キャッシュ不可能なアトミックトランザクションに対して必要なアトミック性を提供する一般的なソリューションは、相互接続ファブリック(すなわち、配線プロトコル及びシグナリングプロトコルであって、これらによりプロセッサ、キャッシュ及びメモリが互いに通信する)を「ロック」して、これを1つのプロセッサにのみ使用し、他の全てのプロセッサをストールすること(stalling)である。従来、このようなことは、ファブリックのトポロジの各スイッチポイントでのロック条件を調停し且つ強制することによって行われていた。
また、プロセッサは、仮想アドレスから物理アドレスへの変換スキームを使用するとともに、通常、これらのオペレーションを変換索引バッファ(TLB)にキャッシュする。ソフトウェアが、例えば仮想アドレスの無効化、ページのプロテクションの変更、ページの移動等の変換のうち1つを変更する場合には、その変換の(TLBに)キャッシュされたコピーの全ては、変更された変換をソフトウェアが有効にすることができる前に削除されなければならない。
変更を変換に同期させるのに用いられる従来のソリューションの1つは、全てのプロセッサに割り込んで各プロセッサ上でタスクを実行して、変更されたTLBエントリを無効にすることによって、ソフトウェアが、複数のプロセッサ上のTLBを明確に無効にすることである。変換の変更を開始するプロセッサは、他の全てプロセッサに割り込む。受信プロセッサは、変更される変換をプロセッサ上のTLBからフラッシュする割り込みハンドラを実行する。変更を変換に同期させるのに使用される他の従来の方法は、プロセッサからプロセッサへの直接的なハードウェア通信である(例えば、ソフトウェアは、明示的なTLB無効化命令を用いて、変更されている変換を記述する全ての他のプロセッサに対してハードウェアメッセージを送信する)。1つ以上の開始プロセッサが全ての他のプロセッサに対して「同期」メッセージを送信し、ハンドシェイク応答を受信した後で、以前のTLB無効化メッセージの全ては、そのプロセッサでこれらの十分な効果を有していた。専用ハードウェアは、全てのプロセッサが、同期化オペレーションが始まる前に無効にされた全ての変換を用いること止めるまで、同期化オペレーションが終わらないことを保証する。
従来のバスロックソリューションでは、相互接続ファブリック内の中間のスイッチポイントの全ては、ロックに気付き、それに対するハードウェアを実装しなければならない。各スイッチポイントは、要求元の端末間の競合を仲裁するとともに、承認されたロックを、ロックされていないプロセッサからのトラフィックを禁止することによって強制する。したがって、システムが大きくなるにつれて、より複雑な相互接続トポロジが必要になる。
TLB無効化についての従来の同期ソリューションは、ポイントツーポイントの通信を必要とする。このソリューションは、関与するプロセッサの数の2乗に比例する配線又はトランザクションが必要になるので、うまくスケールアップすることができない。さらに、このソリューションは、複数のプロセッサによって同時に出された無効化/同期化シーケンスのシリアライゼーションによって、性能低下につながる可能性がある。
したがって、従来のソリューションの制限に左右されないバスロック及び/又はTLB無効化を行う方法及び装置を提供することが有益であろう。
バスロックを行う方法を対象とする実施形態が開示される。この方法は、ロックマスタが、システム内の第1プロセッサからロック要求を受信することを含む。ロックマスタは、システム内の全てのプロセッサに対して静止要求を送信する。そして、全てのプロセッサは、ロックマスタから静止要求を受信すると、新たなトランザクションを発行するのを止めて、静止許諾トランザクション(quiesce granted transaction)を発行する。ロックマスター、全てのプロセッサから静止許諾トランザクションを受信すると、第1プロセッサの識別子を含むロック許諾メッセージを発行する。第1プロセッサは、アトミックトランザクションシーケンスを行い、アトミックトランザクションシーケンスが完了すると第1ロック解除メッセージをロックマスタに送信する。ロックマスタは、第1プロセッサから第1ロック解除メッセージを受信すると、全てのプロセッサに対してロック解除メッセージを送信する。
バスロックを行うシステムを対象とする実施形態が開示される。このシステムは、複数のプロセッサと、ロックマスタと、を含む。ロックマスタは、システム内の複数のプロセッサのうち第1プロセッサからロック要求を受信し、システム内の全てのプロセッサに対して静止要求を送信する。ロックマスタは、全てのプロセッサから静止許諾トランザクションを受信すると、第1プロセッサの識別子を含むロック許諾メッセージを発行する。ロックマスタは、第1プロセッサから第1ロック解除メッセージを受信すると、全てのプロセッサに対してロック解除メッセージを送信する。
バスロックを行う装置を対象とした実施形態が開示される。この装置は、システム内の複数のプロセッサのうち第1プロセッサからロック要求を受信し、システム内の全てのプロセッサに対して静止要求を送信する回路を含む。装置は、全てのプロセッサから静止許諾トランザクションを受信すると、第1プロセッサの識別子を含むロック許諾メッセージを発行する。装置は、第1プロセッサから第1ロック解除メッセージを受信すると、全てのプロセッサに対して第2ロック解除メッセージを送信する。
より詳細な理解は、添付図面とともに例示された以下の説明から得られる。
開示された1つ以上の実施形態が実装され得る例示的な装置のブロック図である。 実施形態による例示的なシステムの図式表現である。 実施形態によるバスロックを行う例示的な方法のフロー図である。 実施形態による変換索引バッファ(TLB)の無効化を行う例示的な方法のフロー図である。
実施形態のより詳細な説明が以下に提供されるが、簡潔に言えば、中心となるロックマスタは、プロセッサがアトミックなリードモディファイライト手続きを開始する必要がある場合に、当該プロセッサからのバスをロックする要求を受信するアービタとして機能する。ロックマスタは、このバスを制御して、他のプロセッサが他の如何なるオペレーションに対してもバスを利用しないことを保証する。別の実施形態では、中心となる同期マスタは、変換索引バッファ(TLB)の無効化要求をプロセッサから受信し、システム内の全てのプロセッサに対して同期メッセージを送信する。
図1は、開示された1つ以上の実施形態が実装され得る例示的な装置100のブロック図である。装置100は、コンピュータ(例えばデスクトップコンピュータ、タブレット型コンピュータ等)、ゲーミングデバイス、携帯用デバイス、セットトップボックス、テレビ又は携帯電話を含み得る。装置100は、プロセッサ102と、メモリ104と、記憶装置106と、1つ以上の入力装置108と、1つ以上の出力装置110と、を含む。装置100は、任意に、入力ドライバ112と、出力ドライバ114と、を含んでもよい。装置100は、図1に示されていない追加のコンポーネントを含んでもよい。
プロセッサ102は、中央処理装置(CPU)、グラフィックスプロセッシングユニット(GPU)、同じダイ上に位置するCPU及びGPU、又は、1つ以上のプロセッサコア(ここで、各プロセッサコアは、CPU又はGPUであってもよい)を含み得る。メモリ104は、プロセッサ102と同じダイ上に位置してもよいし、プロセッサ102と離れて位置してもよい。メモリ104は、例えば、ランダムアクセスメモリ(RAM)、ダイナミックRAM又はキャッシュ等のように、揮発性又は不揮発性のメモリを含んでもよい。
記憶装置106は、例えば、ハードディスクドライブ、ソリッドステートドライブ、光ディスク若しくはフラッシュドライブ等のように、固定又は取り外し可能な記憶装置を含み得る。入力装置108は、キーボード、キーパッド、タッチスクリーン、タッチパッド、検出器、マイクロホン、加速度計、ジャイロスコープ、生体測定用スキャナ、又は、ネットワーク接続(例えば、無線IEEE802信号の送信及び/又は受信用の無線ローカルエリアネットワークカード)を含み得る。出力装置110は、ディスプレイ、スピーカ、プリンタ、触覚フィードバック装置、1つ以上のライト、アンテナ、又は、ネットワーク接続(例えば、無線IEEE802信号の送信及び/若しくは受信用の無線ローカルエリアネットワークカード)を含み得る。
入力ドライバ112は、プロセッサ102及び入力装置108と通信し、プロセッサ102が入力装置108からの入力を受信するのを可能にする。出力ドライバ114は、プロセッサ102及び出力装置110と通信し、プロセッサ102が出力装置110に対して出力を送信するのを可能にする。入力ドライバ112及び出力ドライバ114は、任意のコンポーネントであり、装置100は、入力ドライバ112及び出力ドライバ114が存在しない場合と同様にオペレーションし得ることに留意すべきである。説明した実施形態ではメインディスプレイを含むが、本発明は、メインディスプレイなしで実施されてもよいし、ビデオのソース機器のみを含んでもよい。このように、コントロール領域は、多くの携帯機器を備えたメインディスプレイなしのオフィス環境であってもよい。
図2は、一実施形態による例示的なシステム200の図式表現である。例示的なシステム200は、複数のプロセッサ102〜102(P0〜P(N)で示す)と、複数のメモリ装置104〜104(Mem0〜Mem(M)で示す)と、ロック/同期マスタ210と、を含む。図2に示すように、ロック/同期マスタ210が任意のノードXに接続され得るが、メモリ104に直接接続されたノードに接続されている状態で、プロセッサ102は、ノード又はスイッチ「X」を介して各メモリ104に関連付けられている。例示的なシステム200では、プロセッサP0〜P5はMem0と関連付けられており、プロセッサP6〜P8はMem1と関連付けられており、プロセッサP(N−1)〜P(N)はMem(M)と関連付けられている。複数のメモリ104が図示されているが、任意の数のメモリ(例えば、1個だけのメモリ)が例示的なシステム200に存在していてもよい。さらに、様々なメモリ102が特定のメモリ104に関連付けられて図示されているが、任意のプロセッサ102は、例示的なシステム200に示された任意のメモリ102にアクセスできることに留意すべきである。
バスロック操作又はTLB無効化の何れかを行う前に、プロセッサは、プロセッサのアクティブプール(active pool)に加わる/離れることに関するメッセージをロック/同期マスタに送信する。これは、ロック/同期マスタが、任意の所定の時間に、何れのプロセッサが活動していて、何れのプロセッサが休止しているかを知ることが可能になるように行われる。例えば、プロセッサは、プロセッサが活動してプロセッサのアクティブプールに加わったことをロックマスタに知らせる場合に、ロック/同期マスタに対してメッセージを送信し、プロセッサが休止状態に入る予定の場合に、プロセッサがアクティブプールを離れて当該プロセッサからのシグナリングが予測できないことをロックマスタが知るように、ロックマスタに対してメッセージを送信する。
図3は、一実施形態によるバスロックを行う例示的な方法300のフロー図である。便宜上、ロック/同期マスタは、例示的な方法300の「ロックマスタ」として説明する。
ステップ301では、プロセッサは、アトミックなリードモディファイライトトランザクションを始める必要がある場合に、ロックマスタに対してロック要求を送信する。ロック要求は、キャッシュされていない書き込みに類似した相互接続ファブリックを介して移動し、要求しているプロセッサ(例えば、コア)を識別する値を含む。識別子(ID)は、コアIDの形態であってもよい。1つ以上のプロセッサは、ほぼ同時又は短時間に互いに連続して、ロックマスタに対してロック要求を送信することができる。
ロックマスタは、プロセッサからロック要求を受信すると、ロック要求をキューイングし、何れのロック要求を最初に処理するかについて決定する(ステップ302)。ロックマスタは、決定すると、全てのプロセッサに対して静止要求を送信する(ステップ303)。ブロードキャストされた静止要求メッセージは、コヒーレンスプローブに類似した相互接続ファブリックを介して移動し、全てのプロセッサに対して、相互接続ファブリックを利用するのを止めるように命令する。
ステップ304では、プロセッサは、相互接続ファブリック上の新たなトランザクションの発行を止めて、未処理のトランザクションが完了するのを待機する。プロセッサは、未処理のトランザクションが完了すると、ロックマスタに対する静止許諾トランザクションを相互接続ファブリック上に発行して待機する。
ステップ305では、ロックマスタは、プロセッサから受信した静止許諾トランザクションをカウントし、そのカウント数がアクティブなプロセッサの数と一致する場合に(すなわち、全ての静止許諾トランザクションが受信された場合に)、ブロードキャストによってロック許諾メッセージを発行する(ステップ306)。ロック許諾メッセージは、ロックが許諾されたプロセッサのIDを含む。
ステップ307では、各プロセッサは、ロック許諾メッセージをロックマスタから受信して、許諾IDを自身のIDと比較する。許諾IDが自身のIDの場合(ステップ308)には、プロセッサは、アトミックなトランザクションシーケンス(例えば、リードモディファイライト)を続行し、完了した場合にロック解除メッセージをロックマスタに発行する(ステップ309)。ステップ308にて許諾IDが自身のIDと一致しない場合には、プロセッサは、相互接続ファブリックの使用を控える(ステップ312)。
ロックマスタが複数のロック要求を受信した場合(ステップ310)には、本方法は、ステップ306に戻り、ロックマスタが、次のプロセッサID許諾を含む新たなロック許諾メッセージをプロセッサに発行する。そうでない場合には、ロックマスタは、全てのプロセッサへのブロードキャストメッセージを介してロック解除を送信する(ステップ311)。そして、各プロセッサは、ロックマスターからのロック解除を受信すると、相互接続ファブリックの使用を再開する。
図4は、一実施形態による変換索引バッファ(TLB)の無効化を行う例示的な方法400のフロー図である。便宜上、ロック/同期マスタは、例示的な方法400の同期マスタと呼ばれる。
プロセッサが変換を変更する必要がある場合には、プロセッサは、同期マスタに削除されつつあるトランザクションを含む一連のTLB無効化要求を送信する(ステップ401)。その後、プロセッサは、自身の固有のプロセッサIDを含む単一の同期要求をロックマスタに送信する。無効化シーケンスをできるだけ早く実行するために無効化要求をパイプライン化することができ、これにより、同期要求がシリアライゼーションを強化する。すなわち、シリアライゼーションは、無効化要求をパイプライン化すること(例えば、単一の同期化オペレーションに続く任意数のTLB無効化オペレーションの「バッチ処理」を発行すること)によって、変換を変更するプロセッサが、他のプロセッサが古い変換を依然として使用していないことを知るまで新たな変換を可能にすることができない、と要求するので、無効化シーケンスが加速され得る。
同期マスタは、全てのプロセッサに対して無効化要求をブロードキャストし(ステップ402)、全てのプロセッサに対して同期メッセージをブロードキャストする(ステップ403)。各プロセッサは、無効化要求及び同期メッセージを受信すると、以前に無効にされたあらゆるトランザクションの使用を完了していることを保証し、同期マスタに対して同期完了メッセージを発行する(ステップ404)。
同期マスタは、プロセッサからの受信同期完了メッセージをカウントし、カウント数がアクティブなプロセッサの数と一致する場合に、ブロードキャストによってプロセッサに対して同期完了メッセージを発行する(ステップ405)。同期完了メッセージは、同期要求が完了しつつあるプロセッサのIDを含む。同期マスタが、複数の同期要求をキューイングしている(すなわち、同期マスタが1つ以上のプロセッサから1つ以上の同期要求を受信する)が、介在する無効化要求を何も受信していない場合には、同期マスタは、個々の同期完了メッセージの代わりに、ステップ405にて複数の同期完了メッセージを発行することができる。これにより、複数のプロセッサによる重複した無効化/同期シーケンスの取り扱いを加速することができる。各プロセッサが同期マスタから同期完了メッセージを受信する場合であってプロセッサが同期を要求していない場合には、このプロセッサは、同期完了メッセージを無視して通常の実行を続ける。同期を要求していた場合には、このプロセッサは、メッセージ内のIDと自身のIDとを比較する(ステップ406)。ステップ406にてIDが一致する場合には、プロセッサは、自身の同期が終了したことを知る(ステップ407)。IDが一致しない場合には、プロセッサは、同期マスタを待ち続け、プロセッサが要求した同期を行う。あるいは、同期マスタによって送信された同期完了メッセージが、当該メッセージにIDが含まれたプロセッサのみ、又は、全てのプロセッサのうちのサブセットのみに送信されてもよい。
本明細書の開示に基づいて多くの変形が可能であることを理解すべきである。特別な組み合わせで特徴及び要素を上述したが、各特徴又は要素は、他の特徴及び要素を含まずに単独で使用されてもよいし、他の特徴及び要素の有無の様々な組み合わせにおいて使用されてもよい。
例えば、相互接続ファブリックは、様々な技術の何れかを含んでもよい。相互接続ファブリックは、集積回路ダイ上の構成部品間のワイヤ、パッケージを共有する集積回路ダイ間のインターポーザ若しくはパッケージ基板上の配線、又は、パッケージ間のプリント回路基板上の配線を含み得る。
また、上述した実施形態では、ロックマスタ及び同期マスタは、単一のエンティティ(すなわち、210)内に存在すると説明されているが、これらのマスタの各々は、別個のエンティティ内に存在してもよいことに留意すべきである。
さらに、上述した方法300,400は、ロックマスタ又は同期マスタがロック/同期マスタ210を含む例示的なシステム200であって、プロセッサがプロセッサP0〜P(N)を含む例示的なシステム200のコンポーネントに実装されてもよい。上述したリードモディファイライトオペレーションは、リードモディファイライトオペレーションを各メモリ(すなわち、Mem0〜Mem(M))に対して行う図2のプロセッサを含んでもよい。
提供される方法は、汎用コンピュータ、プロセッサ又はプロセッサコアに実装することができる。適切なプロセッサは、例えば、汎用プロセッサ、特殊用途のプロセッサ、従来のプロセッサ、デジタル信号プロセサ(DSP)、複数のマイクロプロセッサ、DSPコアと共同した1つ以上のマイクロプロセッサ、コントローラ、マイクロコントローラ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)回路、他のタイプの集積回路(IC)及び/又はステートマシンを含む。かかるプロセッサは、処理されたハードウェア記述言語(HDL)命令及びネットリスト(コンピュータ読み取り可能な媒体に格納可能な命令等)を含む他の中間データの結果を用いる製造プロセスを構成することによって、製造することができる。かかる処理の結果は、後に半導体製造プロセスで用いられるマスクワークであって、本発明の態様を実装するプロセッサを製造するマスクワークとなり得る。
本明細書で提供される方法又はフローチャートは、コンピュータプログラム、ソフトウェア、又は、汎用コンピュータ若しくはプロセッサが実行するためのコンピュータ可読記憶媒体に組み入れられたファームウェアに実装することができる。コンピュータ可読記憶媒体の例としては、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、レジスタ、キャッシュメモリ、半導体記憶装置、内部ハードディスク及びリムーバブルディスク等の磁気媒体、光磁気記録媒体、並びに、CD−ROMディスク及びデジタル多用途ディスク(DVD)等の光媒体が挙げられる。
実施形態1.機能を行う方法。
実施形態2.キャッシュがL2又はL3のキャッシュである、実施形態1の方法。
実施形態3.同期バリア(DSB)命令をさらに含む、上記実施形態の何れかの方法。
実施形態4.同期バリア命令は、コヒーレントドメインの全てのコアと特定の同期を行う、上記実施形態の何れかの方法。
実施形態5.他の全てのコアが停止した後に、現在DSBを使用している同一のスレッドによって以前に発行された任意のTLBIによって影響を受けた任意の変換を用いて、同期を完了することをさらに含む、上記実施形態の何れかの方法。
実施形態6.スレッドがDSBかバスロックの何れかを発行する、上記実施形態の何れかの方法。
実施形態7.LSが両方のスレッドからのバスロックを決して発行しないように自身を規制する、上記実施形態の何れかの方法。
実施形態8.LSが両方のスレッドからのDSBを決して発行しないように自身を規制する、上記実施形態の何れかの方法。
実施形態9.DSBが1つのスレッドから発行され、バスロックが第2のスレッドから発行される、上記実施形態の何れかの方法。
実施形態10.DVMOpがポステッドライトである、上記実施形態の何れかの方法。
実施形態11.スレッドからのDVMSync要求を発行する前に当該スレッドからの保留中の書き込みが全て終了するのを待機することをさらに含む、上記実施形態の何れかの方法。
実施形態12.スレッドからの保留中の書き込みが全て終了するのを待機することは、何らかのDVMOp要求を含む、上記実施形態の何れかの方法。
実施形態13.LSは、DVMSync要求を発行すると、DVMSyncがDVMCompleteを受信するまで、スレッドのためにTLBIを発行しない、上記実施形態の何れかの方法。
実施形態14.一度に1つのみのDVMSyncを発行することを含む、上記実施形態の何れかの方法。
実施形態15.第2のDVMSyncは、DVMSyncメッセージが送信される時間からDVMCompleteメッセージを送信する時間まで発行されない、上記実施形態の何れかの方法。
実施形態16.異なるスレッドからの複数のDVMSync要求が壊され、単一のDVMSync/DVMCompleteシーケンスで取り扱われる、上記実施形態の何れかの方法。
実施形態17.同期の間、メモリコントローラは、バスロックを含む通常の要求を処理し続ける、上記実施形態の何れかの方法。
実施形態18.DVMSync要求がスレッド単位である、上記実施形態の何れかの方法。
実施形態19.DVMComplete要求がコア単位である、上記実施形態の何れかの方法。
実施形態20.コアが、レジスタ書き込みを介して、メモリコントローラとハンドシェイクを行う、上記実施形態の何れかの方法。
実施形態21.コアは、CC6エントリの間、メモリコントローラがコアからのDVMComplete要求を予期しないように、コアがTLBの使用を終了し停止中であることをメモリコントローラに告げる、上記実施形態の何れかの方法。
実施形態22.コアは、CC6イグジットの間とリセットの間、メモリコントローラがDVMSyncメッセージに応答してコアからのDVMComplete要求を予期することを開始できるように、コアがTLBを用いてスタートするところであることをメモリコントローラに告げる、上記実施形態の何れかの方法。
実施形態23.ITLBが、内部2サイクルプローブ(アドレス+追加のフィールド)をLSに送信する、上記実施形態の何れかの方法。
実施形態24.ZVAは、キャッシュ階層が全ての4ストアを受信するまで閉じられないことが保証された4WC+ストアである、上記実施形態の何れかの方法。
実施形態25.CLFLUSHは、個別のトランザクションコマンドのタイプである、上記実施形態の何れかの方法。
実施形態26.〜LS_L2StWcbReqPostedを用いて強く順序付けられたOPの性能が、WCB L2バッファの数によって制限される、上記実施形態の何れかの方法。
実施形態27.LS_L2StWcbReqPostedが、弱く順序付けられたトランザクション用にセットされている、上記実施形態の何れかの方法。
実施形態28.L2タグがL1にあることを示す場合に、L1がコヒーレントなmemtype上でのみプローブされる、上記実施形態の何れかの方法。
実施形態29.TLBエンティティをローカル又はグルーバルに無効化するTLBIと呼ばれる命令をさらに含む、上記実施形態の何れかの方法。
実施形態30.スレッドが、一連のパイプライン化されたTLBIを送信する、上記実施形態の何れかの方法。
実施形態31.TLBIシリーズの帯域幅が5〜10サイクル毎に1である、上記実施形態の何れかの方法。
実施形態32.プローブチャネルの連鎖したメッセージがインターリーブされない、上記実施形態の何れかの方法。
実施形態33.SDPポートにて、連鎖したメッセージ間に通常のプローブがあるが、XSIは、このタイプのインタリービングを隠す、上記実施形態の何れかの方法。
実施形態34.アイドルサイクルのみが2つのDVMOpメッセージの間に存在する、上記実施形態の何れかの方法。
実施形態35.CC6エントリの間、L1I、L1D及びL2がフラッシュされる、上記実施形態の何れかの方法。
実施形態36.PC6エントリの間、L3がフラッシュされる、上記実施形態の何れかの方法。
実施形態37.ソフトウェアが、8つの新たなFlushL2Way CMOsを実行する、上記実施形態の何れかの方法。
実施形態38.L3Ctl内のフラッシュイテレータ(flush iterator)がL2及びL2シャドウタグをフラッシュするがL3にはしない、上記実施形態の何れかの方法。
実施形態39.SMUは、FlushL3Wayコマンドを用いて、L3CTL1に対して8つのSMN書き込みを発行する、上記実施形態の何れかの方法。
実施形態40.L3Ctl内のイテレータがL3キャッシュの2つの方法をフラッシュする、上記実施形態の何れかの方法。
実施形態41.L2キャッシュ位置のフラッシュがDC内にもラインが存在することを検出した場合に、L2Ctlが、DCから出るラインをプローブする、上記実施形態の何れかの方法。
実施形態42.ICの無効化はコアの責務である、上記実施形態の何れかの方法。
実施形態43.マルチコアシステムでの同期化及びセマフォをサポートするローカル及びグローバルなモニタをさらに含む、上記実施形態の何れかの方法。
実施形態44.各コアがLS内にローカルモニタを有し、CPUの外部にグローバルモニタを有する、上記実施形態の何れかの方法。
実施形態45.ローカルモニタが、メモリコントローラのコヒーレントスレイブ内、又は、その近くに存在する、上記実施形態の何れかの方法。
実施形態46.LSが、キャッシュされないロード又はストアトランザクションに対して、排他的なトランザクション特性を加える、上記実施形態の何れかの方法。
実施形態47.トランザクションを異なって取り扱うことなく、プロパティをトランザクション符号化の一部としてLSからSDFに送信することをさらに含む、上記実施形態の何れかの方法。
実施形態48.SDFからのキャッシュされないストア応答が、排他的なリードモディファイライトの成否を示す「ExOkay」と呼ばれるプロパティを有し得る、上記実施形態の何れかの方法。
実施形態49.プロパティが、LSまでの全ての応答で送信される、上記実施形態の何れかの方法。
実施形態50.CLREXが、ローカルモニタによって専ら取り扱われる、上記実施形態の何れかの方法。
実施形態51.NSは、全てのメモリ要求の属性として通過し得る、上記実施形態の何れかの方法。
実施形態52.NSがタグに格納される、上記実施形態の何れかの方法。
実施形態53.NSは、補給応答に関してMCTによって指定されたように設定され、LSがロード又はストアの完了を試みるようにLSによって最終的に反応される、上記実施形態の何れかの方法。
実施形態54.実行スレッドが、コア(SCR_EL3.NS)内の適切なコントロールレジスタビット毎に安全な状態になく、NSタグビットが明らかな場合に、アクセスを拒絶し例外を送出する、上記実施形態の何れかの方法。
実施形態55.コアアクセスに対して必要なセマンティクスがコア自身に含まれる、上記実施形態の何れかの方法。
実施形態56.以下の属性:アクセスモード(ロード、ストア、命令(ARMのみ))、キャッシュレベル(L1、L2、L3)及び/又は使用(通常の、非一時的な)の属性及びその組み合わせを含むプリフェッチ命令をさらに含む、上記実施形態の何れかの方法。
実施形態57.L2がL1を含む、上記実施形態の何れかの方法。
実施形態58.L1のプリフェッチターゲティングがL2もターゲットにする、上記実施形態の何れかの方法。
実施形態59.プリフェッチサポートはLS又はITから由来する、上記実施形態の何れかの方法。
実施形態60.プリフェッチサポートがLSから由来する場合に、L2がロードされる、上記実施形態の何れかの方法。
実施形態61.コアが、割り込み又はイベントを未決のままにする低パワーのアイドル状態に移行することができる、上記実施形態の何れかの方法。
実施形態62.イベントが、任意のスレッドを他の全てのスレッドにブロードキャストすることができるジェネリックウェイクアップ(generic wakeup)である、上記実施形態の何れかの方法。
実施形態63.割り込み及びイベントの両方が割り込みチャネル上のコアに到達する、上記実施形態の何れかの方法。
実施形態64.スレッドは、SEVを実行する場合に、特定のアドレスへのキャッシュされない書き込みとしてLSから出てL2に入る、上記実施形態の何れかの方法。
実施形態65.CPUの外部のロジックは、割り込みチャネルに関するイベントを書き込み、ブロードキャストすることを認識する責務を有する、上記実施形態の何れかの方法。
実施形態66.コア内の両スレッドがWFE又はWFIを実行している場合に、コアがCC1(クロックが停止している)に入る、上記実施形態の何れかの方法。
実施形態67.L3I内のSCFCTPブロックは、イベント又は割り込みが到達した場合にコアを活動させる、上記実施形態の何れかの方法。
実施形態68.スレッド毎のリソースを備える割り込みコントローラが、SOC内のCPUコンプレックスの外部にある、上記実施形態の何れかの方法。
実施形態69.スレッドは、データファブリックを調べるキャッシュされない読み込み及び書き込みを用いて、そのAPIC/GICとのアウトバウンド通信を開始することができる、上記実施形態の何れかの方法。
実施形態70.APIC/GICは、割り込みチャネルを用いて、そのスレッドとインバウンド通信を開始することができる、上記実施形態の何れかの方法。
実施形態71.CPUコンプレックスの外部に、GICブロック又はAPICブロックのバンクがある、上記実施形態の何れかの方法。
実施形態72.各CPUコンプレックスは、取り付けられた割り込みコントローラのセットを、そのCPUコンプレックス内のスレッドの数に対して十分な容量で有する、上記実施形態の何れかの方法。
実施形態73.割り込みコントローラのバンクは、プロセッサスレッドからのレジスタの読み出し及び書き込み、並びに、IO装置からの着信割り込みに対してのデータファブリック接続(AXIを用いた)を有し、当該バンクは、プロセッサスレッドに対する割り込み及び割り込みハンドシェイクに対してのコントロールファブリック接続(AXI_SPを用いた)を有する、上記実施形態の何れかの方法。
実施形態74.AXI_SPは、各方向に1つの書き込みチャネルのみを備えたAXIのサブセットに類似する、上記実施形態の何れかの方法。
実施形態75.全ての書き込みがポストされる、上記実施形態の何れかの方法。
実施形態76.AXI_SPへのトラフィック及びAXI_SPからのトラフィックが、変更されたSMNルータ又は専用のガスケットブロックによってSMNに合流される、上記実施形態の何れかの方法。
実施形態77.SMNは、割り込みトラフィックをCPUコンプレックスに接続し、その先の各コアのSCFCTPブロックに接続するのに用いられる、上記実施形態の何れかの方法。
実施形態78.SCFCTPが、物理的な割り込みワイヤをコア内に運ぶ、上記実施形態の何れかの方法。
実施形態79.割り込みがIO装置でスタートし、IOハブに向かって進む、上記実施形態の何れかの方法。
実施形態80.割り込みは、メッセージシグナル割り込みとしてScalable Data Fabricを通り、APIC/GICバンクのAXIポートまで進む、上記実施形態の何れかの方法。
実施形態81.CMは、実際のAXIインターフェースを用いて、メッセージを、ターゲットのAPIC又はGICまで送る、上記実施形態の何れかの方法。
実施形態82.割り込みメッセージは、AXI_SPバスを通りSMNネットワーク内に進む、上記実施形態の何れかの方法。
実施形態83.SMNネットワークは、割り込みメッセージをCPUコンプレックスまでルーティングする、上記実施形態の何れかの方法。
実施形態84.CPUコンプレックスの内部において、通常のSMNルーティングハードウェアが、ターゲットのコアのSCFCTPブロックに割り込みメッセージを向ける、上記実施形態の何れかの方法。
実施形態85.SCFCTPブロックは、専用の物理的割り込みワイヤを用いて、割り込みメッセージを、L3I/Core境界を通ってコアの割り込みロジック内に送る、上記実施形態の何れかの方法。
実施形態86.割り込みを送るのに必要なハードウェアハンドシェイクは、SMN書き込みトランザクションをGIC/APICバンクに送り返すSCFCTPブロックによって管理される、上記実施形態の何れかの方法。
実施形態87.リードモディファイライトシーケンスを保護するためにアトミック性プリミティブをさらに含む、上記実施形態の何れかの方法。
実施形態88.アトミック性プリミティブがL1データキャッシュ内で取り扱われる、上記実施形態の何れかの方法。
実施形態89.アトミック性プリミティブがキャッシュ可能なロックと呼ばれる、上記実施形態の何れかの方法。
実施形態90.バスロックが、キャッシュ不可能なアドレスを含むか、キャッシュライン境界を跨ぐ、上記実施形態の何れかの方法。
実施形態91.SDF内では、バスロックが、集中型のバスロックアービタによって1つのコヒーレントスレイブの内部又は近くでコントロールされる、上記実施形態の何れかの方法。
実施形態92.スレッドがバスロックを要求し、アービタが他の全てのスレッドにトランザクションを発行するのを止めるように知らせる、上記実施形態の何れかの方法。
実施形態93.アービタが、要求しているスレッドに対して、バスロックを認証する、上記実施形態の何れかの方法。
実施形態94.ロックしているスレッドが自身のアトミックなオペレーションを行う、上記実施形態の何れかの方法。
実施形態95.ロックが解除される、上記実施形態の何れかの方法。
実施形態96.バスロックアービタが、他のスレッドに対して、トランザクションを発行してよいと知らせる、上記実施形態の何れかの方法。
実施形態97.ロックの間、コヒーレントドメイン内の他の全てのコアがストールされる、上記実施形態の何れかの方法。
実施形態98.コヒーレントドメイン内の他のコアは、自身のL1キャッシュ及びL2キャッシュの中から実行を継続することができるが、L2ミスは、バスがロック解除されるまでストールする、上記実施形態の何れかの方法。
実施形態99.着信しているDVMSyncを完了する前に、未処理のバスロックを取得し終了することをさらに含む、上記実施形態の何れかの方法。
実施形態100.Dビット書き込みがアトミックであり、Dビット書き込みが開始されると、DVMSyncがこれより前に順序付けられない、上記実施形態の何れかの方法。
実施形態101.バスロックが、DVMSyncシーケンスの間フローする、上記実施形態の何れかの方法。
実施形態102.メモリコントローラは、どのコアがCC6であるかを認識している、上記実施形態の何れかの方法。
実施形態103.CC6の中及び外のトランザクションの周りにコーナーケースがある、上記実施形態の何れかの方法。
実施形態104.コア(例えば、x86マイクロコード、ARMソフトウェア)が、レジスタ書き込みを介して、メモリコントローラとハンドシェイクを行う、上記実施形態の何れかの方法。
実施形態105.CC6エントリの間、メモリコントローラがコアからのBusLockGrant要求を予期しないように、コアがバストランザクションを行うこと及び停止することを終了したとメモリコントローラに知らせる、上記実施形態の何れかの方法。
実施形態106.CC6エグジットの間及びリセットの間、メモリコントローラがBusLockReqメッセージに応答してコアからのBusLockGrant要求を予期することを開始するように、コアが、メモリコントローラに対して、バストランザクションを再度行うことを知らせる、上記実施形態の何れかの方法。
実施形態107.システム内の第1プロセッサからのロック要求をロックマスタが受信することを含む、上記実施形態の何れかの方法。
実施形態108.ロックマスタがシステム内の全てのプロセッサに対して静止要求を送信することをさらに含む、上記実施形態の何れかの方法。
実施形態109.ロックマスタからの静止要求を受信すると、全てのプロセッサが新たなトランザクションの発行を止め、静止許諾トランザクションを発行する、上記実施形態の何れかの方法。
実施形態110.全てのプロセッサからの静止許諾トランザクションを受信すると、ロックマスタは、ロック許諾メッセージを発行し、ロックマスタによって発行されたロック許諾メッセージは、第1プロセッサの識別子を含む、上記実施形態の何れかの方法。
実施形態111.第1プロセッサがアトミックトランザクションシーケンスを行い、アトミックトランザクションシーケンスが完了すると第1ロック解除メッセージをロックマスタに送信することをさらに含む、上記実施形態の何れかの方法。
実施形態112.ロックマスタが、第1プロセッサから第1ロック解除メッセージを受信すると、第2ロック解除メッセージを全てのプロセッサに送信することをさらに含む、上記実施形態の何れかの方法。
実施形態113.第1プロセッサが、ロック許諾メッセージに含まれる識別子を第1プロセッサの識別子と比較することをさらに含む、上記実施形態の何れかの方法。
実施形態114.ロックマスタが、第1プロセッサ以外のプロセッサから受信した複数のロック要求をキューイングすることをさらに含む、上記実施形態の何れかの方法。
実施形態115.少なくとも1つのプロセッサが、プロセッサのアクティブなセットに加わり又は離れるために、ロックマスタにメッセージを送信することをさらに含む、上記実施形態の何れかの方法。
実施形態116.少なくとも1つのプロセッサが、活動状態に到達すると、アクティブなプロセッサのセットに加わるためにメッセージを送信する、上記実施形態の何れかの方法。
実施形態117.少なくとも1つのプロセッサが、休止状態に入ると、アクティブなプロセッサのセットから離れるためにメッセージを送信する、上記実施形態の何れかの方法。
実施形態118.ロックマスタが、プロセッサから受信した静止許諾メッセージの数をカウントし、全てのアクティブなプロセッサから静止許諾メッセージを受信したと判断すると、ロック許諾メッセージを送信することをさらに含む、上記実施形態の何れかの方法。
実施形態119.上記実施形態の何れかの方法を行う装置。
実施形態120.実施形態1〜118の何れかの方法を行うシステム。

Claims (18)

  1. ロックマスタが、システム内の第1プロセッサからロック要求を受信することと、
    前記ロックマスタが、静止要求を前記システム内の全てのプロセッサに送信することと、
    全てのプロセッサが、前記ロックマスタから前記静止要求を受信すると、新たなトランザクションを発行するのを止めて静止許諾トランザクションを発行することと、
    前記ロックマスタが、全てのプロセッサから前記静止許諾トランザクションを受信すると、前記第1プロセッサの識別子を含むロック許諾メッセージを発行することと、
    前記第1プロセッサが、アトミックトランザクションシーケンスを行い、前記アトミックトランザクションシーケンスが完了すると、第1ロック解除メッセージを前記ロックマスタに送信することと、
    前記ロックマスタが、前記第1プロセッサから前記第1ロック解除メッセージを受信すると、第2ロック解除メッセージを全てのプロセッサに送信することと、
    を含む、方法。
  2. 前記第1プロセッサが、前記ロック許諾メッセージに含まれる前記識別子を前記第1プロセッサの識別子と比較することをさらに含む、請求項1の方法。
  3. 前記ロックマスタが、前記第1プロセッサ以外のプロセッサから受信した複数のロック要求をキューイングすることをさらに含む、請求項1の方法。
  4. 少なくとも1つのプロセッサが、アクティブなプロセッサのセットに加わるか離れるために、メッセージを前記ロックマスタに送信することをさらに含む、請求項1の方法。
  5. 前記少なくとも1つのプロセッサが、活動状態に到達すると、前記アクティブなプロセッサのセットに加わるためにメッセージを送信する、請求項4の方法。
  6. 前記少なくとも1つのプロセッサが、休止状態に移行すると、前記アクティブなプロセッサのセットから離れるためにメッセージを送信する、請求項4の方法。
  7. 前記ロックマスタが、前記プロセッサから受信した静止許諾メッセージの数をカウントすることと、全てのアクティブなプロセッサから静止許諾メッセージを受信したと判断すると、前記ロック許諾メッセージを送信することと、をさらに含む、請求項4の方法。
  8. 複数のプロセッサと、
    ロックマスタと、
    を含むシステムであって、
    前記ロックマスタは、前記システム内の前記複数のプロセッサのうち第1プロセッサからロック要求を受信し、静止要求を前記システム内の全てのプロセッサに送信し、全てのプロセッサから静止許諾トランザクションを受信すると、前記第1プロセッサの識別子を含むロック許諾メッセージを発行し、前記第1プロセッサから第1ロック解除メッセージを受信すると、第2ロック解除メッセージを全てのプロセッサに送信するように構成されている、
    システム。
  9. 全てのプロセッサは、前記ロックマスタから前記静止要求を受信すると、新たなトランザクションを停止して、前記静止許諾トランザクションを発行する、請求項8のシステム。
  10. 前記第1プロセッサは、前記ロック許諾メッセージを受信すると、アトミックトランザクションシーケンスを行い、前記アトミックトランザクションシーケンスが完了すると、前記第1ロック解除メッセージを前記ロックマスタに送信するように構成されている、請求項8のシステム。
  11. 前記第1プロセッサは、前記ロック許諾メッセージに含まれる前記識別子を前記第1プロセッサの識別子と比較するように構成されている、請求項8のシステム。
  12. 前記ロックマスタは、前記第1プロセッサ以外のプロセッサから受信した複数のロック要求をキューイングするように構成されている、請求項8のシステム。
  13. 少なくとも1つのプロセッサは、プロセッサのアクティブなセットに加わるか離れるためにメッセージを前記ロックマスタに送信するように構成されている、請求項8のシステム。
  14. 前記少なくとも1つのプロセッサは、活動状態に到達すると、前記アクティブなプロセッサのセットに加わるためにメッセージを送信する、請求項13のシステム。
  15. 前記少なくとも1つのプロセッサは、休止状態に移行すると、前記アクティブなプロセッサのセットから離れるためにメッセージを送信する、請求項13のシステム。
  16. 前記ロックマスタは、前記プロセッサから受信した静止許諾メッセージの数をカウントし、全てのアクティブなプロセッサから静止許諾メッセージを受信したと判断すると、前記ロック許諾メッセージを送信するように構成されている、請求項13のシステム。
  17. システム内の複数のプロセッサのうち第1プロセッサからロック要求を受信し、静止要求を前記システム内の全てのプロセッサに送信し、全てのプロセッサから静止許諾トランザクションを受信すると、前記第1プロセッサの識別子を含むロック許諾メッセージを発行し、前記第1プロセッサから第1ロック解除メッセージを受信すると、第2ロック解除メッセージを全てのプロセッサに送信するように構成された回路を備える、
    装置。
  18. 前記プロセッサから受信した静止許諾メッセージの数をカウントし、全てのアクティブなプロセッサから静止許諾メッセージを受信したと判断すると、前記ロック許諾メッセージを送信するように構成された回路をさらに含む、請求項17の装置。
JP2016526040A 2013-10-25 2014-10-23 バスロック及び変換索引バッファの無効化を行う方法及び装置 Active JP6609552B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361895569P 2013-10-25 2013-10-25
US61/895,569 2013-10-25
PCT/US2014/061944 WO2015061554A1 (en) 2013-10-25 2014-10-23 Method and apparatus for performing a bus lock and translation lookaside buffer invalidation

Publications (2)

Publication Number Publication Date
JP2016534432A true JP2016534432A (ja) 2016-11-04
JP6609552B2 JP6609552B2 (ja) 2019-11-20

Family

ID=52993553

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016526040A Active JP6609552B2 (ja) 2013-10-25 2014-10-23 バスロック及び変換索引バッファの無効化を行う方法及び装置

Country Status (6)

Country Link
US (1) US9916243B2 (ja)
EP (1) EP3060996A4 (ja)
JP (1) JP6609552B2 (ja)
KR (1) KR102165775B1 (ja)
CN (1) CN105765547A (ja)
WO (1) WO2015061554A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10817434B2 (en) * 2018-12-19 2020-10-27 International Business Machines Corporation Interruptible translation entry invalidation in a multithreaded data processing system
CN113590314A (zh) * 2021-07-13 2021-11-02 上海一谈网络科技有限公司 网络请求数据处理方法和系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004506265A (ja) * 2000-08-04 2004-02-26 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 分散処理システムにおけるロックの実行
JP2005534081A (ja) * 2001-09-21 2005-11-10 ポリサーブ・インコーポレーテッド 共有ストレージを備えたマルチノード環境のためのシステムおよび方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6381663B1 (en) * 1999-03-26 2002-04-30 Hewlett-Packard Company Mechanism for implementing bus locking with a mixed architecture
US6484185B1 (en) 1999-04-05 2002-11-19 Microsoft Corporation Atomic operations on data structures
US7380001B2 (en) * 2001-05-17 2008-05-27 Fujitsu Limited Fault containment and error handling in a partitioned system with shared resources
US6892283B2 (en) * 2002-12-05 2005-05-10 International Business Machines Corporation High speed memory cloner with extended cache coherency protocols and responses
US7191349B2 (en) * 2002-12-26 2007-03-13 Intel Corporation Mechanism for processor power state aware distribution of lowest priority interrupt
US7822978B2 (en) * 2005-07-22 2010-10-26 Intel Corporation Quiescing a manageability engine
US7730491B2 (en) * 2005-08-30 2010-06-01 Intel Corporation Fair scalable reader-writer mutual exclusion
JP4208895B2 (ja) * 2006-05-30 2009-01-14 株式会社東芝 キャッシュメモリ装置および処理方法
US7761696B1 (en) * 2007-03-30 2010-07-20 Intel Corporation Quiescing and de-quiescing point-to-point links
JP5349072B2 (ja) * 2009-02-17 2013-11-20 パナソニック株式会社 資源排他制御方法および資源排他制御装置
US8443148B2 (en) * 2009-12-26 2013-05-14 Intel Corporation System-wide quiescence and per-thread transaction fence in a distributed caching agent
US8352656B2 (en) * 2010-04-08 2013-01-08 Intel Corporation Handling atomic operations for a non-coherent device
US8516577B2 (en) * 2010-09-22 2013-08-20 Intel Corporation Regulating atomic memory operations to prevent denial of service attack
US9015436B2 (en) * 2011-08-22 2015-04-21 Intel Corporation Performing an atomic operation without quiescing an interconnect structure
JP5838652B2 (ja) 2011-08-23 2016-01-06 富士通株式会社 データコピー処理システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004506265A (ja) * 2000-08-04 2004-02-26 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 分散処理システムにおけるロックの実行
JP2005534081A (ja) * 2001-09-21 2005-11-10 ポリサーブ・インコーポレーテッド 共有ストレージを備えたマルチノード環境のためのシステムおよび方法

Also Published As

Publication number Publication date
US9916243B2 (en) 2018-03-13
KR102165775B1 (ko) 2020-10-14
JP6609552B2 (ja) 2019-11-20
CN105765547A (zh) 2016-07-13
KR20160075638A (ko) 2016-06-29
US20150120976A1 (en) 2015-04-30
EP3060996A1 (en) 2016-08-31
WO2015061554A1 (en) 2015-04-30
EP3060996A4 (en) 2017-05-10

Similar Documents

Publication Publication Date Title
JP6969853B2 (ja) ノンブロッキング高性能トランザクションクレジットシステムを備えるマルチコアバスアーキテクチャ
JP6552512B2 (ja) 入出力メモリマップユニット及びノースブリッジ
US9372808B2 (en) Deadlock-avoiding coherent system on chip interconnect
US10509740B2 (en) Mutual exclusion in a non-coherent memory hierarchy
US7613882B1 (en) Fast invalidation for cache coherency in distributed shared memory system
TWI494942B (zh) 用於i/o流量的同調性開關
US7590805B2 (en) Monitor implementation in a multicore processor with inclusive LLC
US7797563B1 (en) System and method for conserving power
JP2017530436A (ja) 異種共有仮想メモリにおけるオンデマンド共有可能性変換
JP5933000B2 (ja) 中央処理ユニット及び画像処理ユニットの同期機構
US20150143044A1 (en) Mechanism for sharing private caches in a soc
CN114580344B (zh) 测试激励生成方法、验证方法、验证系统及相关设备
US7000078B1 (en) System and method for maintaining cache coherency in a shared memory system
BR102016012083A2 (pt) Hardware appliances and methods for performing transactive energy management
US20130159632A1 (en) Memory sharing by processors
JP6609552B2 (ja) バスロック及び変換索引バッファの無効化を行う方法及び装置
TW201423403A (zh) 共用資源的存取請求之有效率處理
Zhao et al. Hardware support for accelerating data movement in server platform
US20040111547A1 (en) High speed memory cloning facility via a lockless multiprocessor mechanism
EP4264905A1 (en) Data placement with packet metadata
JP2004185610A (ja) メモリ複製オペレーション時の不正確なキャッシュ・ライン保護機構
US6915390B2 (en) High speed memory cloning facility via a coherently done mechanism
Zhang Research on Cache Coherence Key Technology in Multi-core Processor System
JP2010140130A (ja) 半導体装置
JPS6332649A (ja) マルチプロセツサシステム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160805

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171016

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180814

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181114

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190402

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190801

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20190809

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: 20191001

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191028

R150 Certificate of patent or registration of utility model

Ref document number: 6609552

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250