JP4789926B2 - 効率的な2つのホップ・キャッシュ・コヒーレンシ・プロトコル - Google Patents

効率的な2つのホップ・キャッシュ・コヒーレンシ・プロトコル Download PDF

Info

Publication number
JP4789926B2
JP4789926B2 JP2007509505A JP2007509505A JP4789926B2 JP 4789926 B2 JP4789926 B2 JP 4789926B2 JP 2007509505 A JP2007509505 A JP 2007509505A JP 2007509505 A JP2007509505 A JP 2007509505A JP 4789926 B2 JP4789926 B2 JP 4789926B2
Authority
JP
Japan
Prior art keywords
node
peer node
request
home
copy
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 - Fee Related
Application number
JP2007509505A
Other languages
English (en)
Other versions
JP2007535037A (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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2007535037A publication Critical patent/JP2007535037A/ja
Application granted granted Critical
Publication of JP4789926B2 publication Critical patent/JP4789926B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/0815Cache consistency protocols
    • 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
    • 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/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Description

本発明は、キャッシュ・メモリに関する。さらに詳しくは、本発明は、マルチキャッシュ・マルチプロセッサ・システム中に分散された競合の解消(conflict resolution)に関する。
関連出願
本米国特許出願は、次の米国特許出願に関連する。
(1)「SPECULATIVE DISTRIBUTED CONFLICT RESOLUTION FOR A CACHE COHERENCY PROTOCOL(キャッシュ・コヒーレンシ・プロトコルのために推量的な分散型競合解消)」と題する2003年に出願された出願番号10/XXX,XXX(ドケット番号P13923)。
電子システムが複数のキャッシュ・メモリを含む場合、使用可能なデータの妥当性が維持されなければならない。これは、典型的にはキャッシュ・コヒーレンシ・プロトコルに従ってデータを操作することにより達成される。キャッシュおよび/またはプロセッサの数が増加するにつれ、キャッシュのコヒーレンシ(一貫性)を維持する複雑さも増加する。
複数のコンポーネント(例えば、キャッシュ・メモリ、プロセッサ)が同じデータ・ブロックを要求するとき、複数のコンポーネント間の衝突は、データの妥当性を維持するような方法で解決されなければならない。現在のキャッシュ・コヒーレンシ・プロトコルは、典型的には競合解消(conflict resolution)に責任のある単一のコンポーネントを有する。しかしながら、システムの複雑さが増大するにつれ、競合解消のための単一コンポーネントに対する信頼は、システム性能全体に亘って減少する。
キャッシュ・コヒーレンス、スヌープ(しばしば対称型マルチプロセシングSMPと称される)、およびディレクトリ(しばしば分散共同利用メモリDSMと称される)を提供する2つの基本スキームがある。その基本的な差は、メタ情報、すなわちキャッシュ・ラインのコピーがどこに格納されるかに関する情報への配置とアクセスに関係する。
キャッシュをスヌープするために、キャッシュされたコピー自体で情報が配布される、すなわち、いずれかのノードが新しい方法でキャッシュ・ラインにアクセスするための許可を要求する場合はいつでも、キャッシュ・ラインの有効な各コピーは、その応答を認識しなければならないユニットによって保持される。いずれかの場所、通常は固定位置に、キャッシュに入れられていないときにデータが格納されるリポジトリ(repository)がある。そのラインがキャッシュに入れられるときさえ、この位置に有効なコピーが含んでいてもよい。しかしながら、このノードの位置は、一般に要求ノードに知られておらず、その要求ノードは、単に必要とされる許可と共に、要求されたキャッシュ・ラインのアドレスを同報するに過ぎず、また、コピーを有するすべてのノードは、もし他の(ピア)ノードが応答しない場合に応答するキャッシュされていないコピーを収容するノードと共に、一貫性が維持されることを保証するために応答しなければならない。
キャッシュされていないデータが格納される固定場所に加えて、ディレクトリに基づくスキームのために、キャッシュされたコピーがどこに存在するかを示す固定位置、ディレクトリがある。新しい方法でキャッシュ・ラインにアクセスするために、ノードはディレクトリを含むノードと通信しなければならない、それは通常キャッシュに入れられていないデータのリポジトリを含む同じノードである、したがって、主格納装置のコピーが有効なときに、その応答ノードがそのデータを提供することを可能にする。このようなノードはホーム・ノードと称される。
ディレクトリは、2つの方法で配布される。第1に、主格納装置のデータ(キャッシュに入れられていないリポジトリ)は、多くの場合ノード間で配布され、そのディレクトリは同じ方法で配布される。第2に、メタ情報それ自身は、できるだけ小さな情報をラインがキャッシュされるように維持してホーム・ノードで配布され、そうならば、ここに単一のコピーが存在する。例えば、SCIはこのスキームを使用し、キャッシュに入れられたコピーを収容する各ノードは、キャッシュに入れられたコピーを有する他のノードへのリンクを維持し、それにより、総体として完全なディレクトリを維持する。
スヌープ方式は、メタ情報が保持される単一の場所がないので、同報に依存する、したがって、すべてのノードは、各クエリー(照会)を通知されなければならず、各ノードはコヒーレンスが維持されることを保証するためにその役割を果たすために応答を受けることができる。これは、介入メッセージを含み、別のノードがデータを提供するとき、ホーム・ノードが応答しないように通知する。
スヌープ方式は、すべてのノードがすべてのクエリーを観察することを要求されるので、応答(レスポンス)が直接かつ迅速であるが、スケールしないという長所を有する。ディレクトリ方式は、本質的により大きくまたは小さくすることができるが、より複雑な応答を要求し、多くの場合ポイント間通信による3つのノードを含む。
マルチノード・システムにおける分散型キャッシュ・コヒーレンシの競合解消のための技術が説明される。以下の記述では、本説明の目的のために、多くの特定の詳細事項が本発明の完全な理解を提供するために述べられる。しかしながら、本発明はこれらの特定の詳細事項がなくても実施できることを当業者は理解するであろう。他の例では、本発明を不明瞭にしないようにするために、構造と装置をブロック図の形式で示す。
以下の議論は、マルチノード・システム内のノードの観点から提供される。ある実施例において、ノードは、内部キャッシュ・メモリ、外部キャッシュ・メモリおよび/または外部メモリを有するプロセッサを含む。別の実施例では、ノードは、他の電子システムと相互接続された電子システム(例えば、コンピュータ・システム、モバイル装置)である。他のタイプのノード構成が使用されてもよい。
以下の図中で描かれるホーム・ノードは、データを要求するホーム・ノードとして役立ち、それはホーム・ノードがキャッシュに入れられなかった場合に要求されたデータが格納される非キャッシュ・メモリ(例えば、メインメモリ)と関係しることを意味する。例えば、ホーム・ノードは、プロセッサ、キャッシュ・メモリおよびランダム・アクセス・メモリ(RAM)であってもよく、そのRAMはデータ用の非キャッシュの格納位置を提供する。
請求項記載の主題は、マルチノード・システムにおける分散型キャッシュ・コヒーレンシの競合解消を容易にする。ある実施例において、競合解消はホーム・ノードで解決される。ある側面では、請求項記載の主題は、ノード間で通信されるメッセージの数に関して競合解消プロトコルを効率的にする。例えば、ノードは、以下のように、ソース・ノード、ホーム・ノードおよびピア・ノードに分類される。請求項記載の主題は、ソース・ノードおよびホーム・ノードのためのプロトコルについて記述する。ある実施例において、請求項記載の主題は、関連出願に関して議論されるようなピア・ノード・プロトコルを利用してもよい。ソース・ノードのためのアルゴリズムは、図5に関して議論されるであろう。同様に、ホーム・ノードのためのアルゴリズムは、図6に関して議論されるであろう。
要求メッセージ
以下のメッセージは、要求ノードからのデータ/アクションの要求である。
ポート読取り無効ライン(PRIL):これは、供給者ノードのデータのコピーが無効にされる場合、データ・セグメントのコピーを求める要求である。このメッセージも「オーナーシップの要求(request for ownership)」と称することができる。ある実施例において、PRILは、ホーム・ノードを含むすべてのノードに報知される。
ポート書込みライン(PWL):このメッセージによって、データ(例えば、修正済のキャッシュ・ライン)がメモリ、したがってライトバック・ラインに書き込まれる。このメッセージは、「ダーティ・エビクション(dirty eviction)」と称することができる。ある実施例において、PWLはホーム・ノードに送られる。
応答メッセージ
次のメッセージは、上述の要求に応答して、ピア(つまり、非ホーム)ノードから要求ノードへのメッセージである。
排他的データ(E_DATA):このメッセージは、レスポンスを送るノードが要求されたデータの排他的なコピー(exclusive copy)を有する場合、要求(PRIL)に対するレスポンスである。ある実施例において、そのノードは、要求ノードへそのデータの排他的なコピーを転送する。
ホーム・ノードへのメッセージ
これらのメッセージは、ピア・ノードによってホーム・ノードへ送信される。
無効ステート肯定応答(I_ACK):このメッセージは、レスポンスを送るノードが要求されたデータの無効コピーを有するか、要求されたデータのコピーを有さない場合、要求(PRILおよびPWL)に対するレスポンスである。
排他的ステート肯定応答(E_ACK):このメッセージは、レスポンスを送るノードが要求されたデータの排他的なコピーを有するか、要求されたデータのコピーを有さない場合、要求(PRILおよびPWL)に対するレスポンスである。
データ受信肯定応答(DACK):このメッセージは、要求ノードによってホーム・ノードへ送信される。
I_ACK_Conflict:このメッセージは、要求されたキャッシュ・ラインに対して共存中の要求があることを示す。
ホーム・ノードからのメッセージ
これらのメッセージは、ホーム・ノードからピアおよび/または要求ノードへ送られる。
排他的完了(E_CMP):このメッセージは、要求ノードが排他的データを受け取ったので、要求ノードの要求が完了したことを排他的キャッシュ・ステートで示す。ある実施例では、ホーム・ノードは、このメッセージを送出した後にラインの割り当てを解除する。
無効データ完了(I_DATA_CMP):このメッセージは、要求ノードに送られるべき要求されたデータを含み、要求ノードのPRIL要求が完了したことを「無効」キャッシュ・ステータスで示す。
完了(CMP)−このメッセージは、メモリへ修正済データのライトバックを完了したことを示すためにPWLを要求したノードに送られる。
I_CMP−このメッセージは、衝突したラインが割り当て解除されたことを示すために衝突状態にある2つのノードの1つに送信される。
XFER_(NodeID):このメッセージによって、受信ノードはメッセージ中に示されたノードにデータを転送する。データの現在の所有者がそのデータをターゲット・ノードに転送することを要求するという衝突状態がホーム・ノードに通知される場合、ホーム・ノードは、要求されたデータの現在の所有者へこのメッセージを送る。未解決の衝突する要求がPRILメッセージであるとホーム・ノードが判断する場合、データ転送を始めるとき現在の所有者がラインを無効にしなければならないことを意味して、XFRIメッセージがXFRメッセージの代わりに送信される。
E_CMP_XFER(NodeID):E_CMP_XFERは、E_CMPおよびXFERメッセージで作成される合成メッセージである。したがって、このメッセージは、このトランザクションがホーム・ノードで行われ、さらに受信ノードがメッセージ中で示されたノードにデータを転送させることを示す。データの現在の所有者がそのデータをターゲット・ノードに転送することを要求するという衝突状態がホーム・ノードに通知される場合、ホーム・ノードは、要求されたデータの現在の所有者へこのメッセージを送る。
これは、ホーム・ノードおよび要求ノードから、および、ホーム・ノードおよび要求ノードへのメッセージの議論が終了したことを示す。
以下の議論は、マルチノード・システム内のノードの観点から提供される。ある実施例において、ノードは、内部キャッシュ・メモリ、外部キャッシュ・メモリおよび/または外部メモリを有するプロセッサを含む。別の実施例では、ノードは、他の電子システムと相互接続された電子システム(例えば、コンピュータ・システム、モバイル装置)である。他のタイプのノード構成が使用されてもよい。以下の例において、メッセージに先行する数は、相対的な時間を示す。「1」で始まるメッセージは「1.1」または「2」あるいは「3」、で始まるメッセージの前に送信される。例えば、その数は、2つのノード間のラフな時間シーケンスを表示する。しかしながら、その数は、異なる対のノード間のタイミングを判断するために使用することができない。例えば、ノードAとBとの間の「4」は、ノードCとDとの間の「2」に先行する。点線を具備するメッセージは、インオーダ・ホーム・チャネル(in-order home channel)を示す。例えば、要求ノードからの第1のメッセージが同じ要求ノードからの第2のメッセージに先立って送られ、その順で受け取られること保証するために、インオーダ・ホーム・チャネルは、同じペアのノード間で同じ方向にある(第1のメッセージが受信ノードによって最初に受け取られ、そして、第2のメッセージが受信ノードによって続いて受け取られる)。
図1は、リード・トランザクションをサポートするためのプロトコルの一実施例を示す概念図を提供する。この実施例では、複数のノードA,B,Cは、ホーム・ノードHに結合される。明らかに、請求項記載の主題は3つのノードに制限されるのではなく、異なる数のノードを考慮に入れる。
ある局面では、この図はリード・トランザクションを示す。まず、ノードの状態(ステート)は以下のとおりである。ノードA,Bは、データの無効なコピーを有している。対照的に、ノードCは、データの排他的なコピーを有している(これはノードの第1ステートとして図中に示される(無効に対してはI、排他的に対してはE))。
最初に、要求ノードAは、PRIL要求をノードB,Cおよびホーム・ノードへ送出する。ある実施例において、PRIL要求はインオーダ・ホーム・チャネルでホーム・ノードに伝えられる。
次に、ノードCは、ノードAのPRIL要求に対してE_DATAで応答し、排他的なデータのコピーを返す。同様に、ノードCは、ホーム・ノードにE_ACKで応答し、ノードCが要求されたデータの排他的なコピーを転送したことを示す。一方、ノードBは、要求されたデータの無効のコピーを有することを示すためにI_ACKを転送する。
その結果、ホーム・ノードは、要求ノードが排他的データを受け取ったので、ノードAの排他的データの要求が完了したことを示すために、E_CMPをノードAへ送出する。ある実施例において、ホーム・ノードは、このメッセージを出した後にラインの割り当てを解除する。したがって、ホーム・ノードは、他のノードからの受信メッセージに基づいて、リード・トランザクションを監督し制御する。
図2は、ライトバックの競合衝突(race conflict)をサポートするためのプロトコルの一実施例を示す概念図を提供する。この実施例では、複数のノードA,B,Cは、ホーム・ノードHに結合される。明らかに、請求項記載の主題は3つのノードに制限されるのではなく、異なる数のノードを考慮に入れる。
ある局面では、この図はライトバック競合衝突を示す。まず、ノードの状態は以下のとおりである。ノードA,Bは、データの無効なコピーを有している。対照的に、ノードCは、データの修正されたコピーを有している(これはノードの第1ステートとして図中に示される(無効に対してはI、修正に対してはM))。
最初に、要求ノードAは、PRIL要求をノードB,Cおよびホーム・ノードへ送出する。ある実施例において、PRIL要求は、インオーダ・ホーム・チャネルでホーム・ノードに伝えられる。一方、ノードCは、修正データをメモリへライトバックするためにPWL要求をホーム・ノードへ送出する。ある実施例において、PRIL要求は、インオーダ・ホーム・チャネルでホーム・ノードに伝えられる。したがって、ライトバック競合衝突は、CのPWL(ライトバック)要求と衝突する修正データに対するAの要求により存在する。ある実施例において、ライトバックはホーム・チャネル上に送られ、AのPRIL要求をノードCでブロック(阻止)しない。
次に、ノードC,Bは、AのPRIL要求に応答してI_ACKメッセージを送出する。I_ACKメッセージは、AのPRIL要求に対する応答としてホーム・ノードに送られ、それらが要求されたデータの無効なコピーを有するか、要求されたデータのコピーを有しないことを示す。
ホーム・ノードは、衝突を解決するであろう。最初に、ホーム・ノードは、ノードB,CからのI_ACKメッセージを受け取ると、CのPWL要求およびAのPRIL要求に応答する。ホーム・ノードは、CMPメッセージでノードCへ応答し、修正データのメモリへのライトバックが完了したことを示す。さらに、ホーム・ノードは、要求されたデータを含み、かつノードAのPRIL要求が完了したことを示すI_DATA_CMPメッセージでノードAに応答する。
図3は、オーナーシップを要求する2つのリクエスト間の競合衝突をサポートするためのプロトコルの一実施例を示す概念図を提供する。例えば、ほぼ同時に送出する要求によって引き起こされる共有ラインの衝突をサポートするためのプロトコルを示す。最初に、ノードAは、データ・ブロックを要求するPRILメッセージをノードB,Cへおよびホーム・ノードへ送信する。ある実施例において、PRILメッセージは、インオーダ・ホーム・チャネルを経由してホーム・ノードに送られる。ある短期間後に、または、同時でさえ、ノードBは、PRILメッセージをノードA,Cへおよび同じデータ・ブロックを要求するホーム・ノードに送信する。ある実施例において、PRILメッセージは、インオーダ・ホーム・チャネルを経由してホーム・ノードに送られる。
現在、2つの競争するPRIL要求、すなわち1つはノードAからおよび1つはノードBからとする。まず、この段落でAのPRIL要求に対する処理について説明し、次の段落でBのPRIL要求に対する処理が続く。ノードAおよびノードBの両方は、I_ACK_Conflictメッセージをホーム・ノードに送り、要求されたキャッシュ・ラインに対する並存する要求があることを示す。
AのPRIL要求について、ノードCは、E_DataメッセージをノードAのPRIL要求に対する応答としてノードAに送り、ノードCが要求されたデータの排他的なコピーを有することを示す。さらに、ある実施例において、ノードCは、そのデータの排他的なコピーをノードAへ転送する。一方、ノードCはE_ACKメッセージをホーム・ノードに送り、それが要求されたデータの排他的なコピーを転送したことを示す。ある実施例において、E_ACKメッセージは、インオーダ・ホーム・チャネルを経由してホーム・ノードに送られる。
BのPRIL要求について、データの排他的なコピーをノードAに送った後に要求されたデータが無効にされたので、ノードCはI_ACKをホーム・ノードに送る。
従って、ホーム・ノードは、I_CMPメッセージをノードBへ送出することにより、またE_CMP_XFER(B)メッセージをノードAへ送出することにより並存するPRIL要求を解決する。E_CMP_XFER(B)メッセージによって、受信ノードであるノードAは、データの排他的なコピーをメッセージ中に示されたノードであるノードBへ転送させる。データの現在の所有者がそのデータをターゲット・ノードへ、この例におけるノードBへ転送することを要求する衝突状態がホーム・ノードに通知されると、ホーム・ノードは、要求されたデータの現在の所有者であるこの例におけるノードAへこのメッセージを送る。
その結果、ノードAは、E_DATAメッセージをノードBに送ることによりE_CMP_XFER(B)メッセージを受け取った後に、データの排他的なコピーをノードBに転送する。
図4は、オーナーシップを要求する2つのリクエスト間の遅延衝突をサポートするためのプロトコルの一実施例を示す概念図を提供する。例えば、ノードAはPRILメッセージをノードB,Cおよびデータ・ブロックを要求するホーム・ノードに送信する。ノードBがAのPRIL要求を肯定応答した後にPRIL要求を送出する場合、遅延衝突が発生することがある。
最初に、要求ノードAは、PRIL要求をノードB,Cおよびホーム・ノードに送出する。ある実施例において、PRIL要求は、インオーダ・ホーム・チャネルでホーム・ノードに伝えられる。
第2に、ノードCが要求されたデータの排他的なコピーを転送したことを示すために、ノードCは、ホーム・ノードへのE_ACKでAのPRILに応答する。一方、ノードBはAのPRILにI_ACKで応答、それが要求されたデータの無効のコピーを有することを示す。
第3に、ノードBは、PRIL要求をノード,Cおよびホーム・ノードへ送出する。ある実施例において、PRIL要求はインオーダ・ホーム・チャネルでホーム・ノードに伝えられる。
第4に、ノードCは、E_DATAでAのPRIL要求に応答する。さらに、ノードCは、ホーム・ノードへのI_AckメッセージでBのPRILに応答する。一方、ノードAは、ホーム・ノードへのI_Ack_ConflictメッセージでBのPRlLに応答する。
第5に、ホーム・ノードは、衝突があるという事実にもかかわらずノードAにE_CMPを送る。理想的には、衝突が検出されると、XFERメッセージはちょうど図3のようにCMPで添付される。ホーム・ノードがAのPRILに対する応答のすべて集めるとき、衝突の指示がないので、このようなことは起こらない。衝突指示I_Ack_Conflict(BのPRILに対するAの応答)は、まだ伝送中で、ホーム・ノードによって受け取られていない。この場合、ノードAは、ノードAがラインの所有者であり、ホーム・ノードが衝突およびXferコマンドを送る必要性を見逃していることを示すために、ホーム・ノードからのE_CMPを受け取るとDACKメッセージをホーム・ノードに送る、なぜならDACKはインオーダ・ホーム・チャネル上で送られ、それは、同じホーム・チャネル上で送られるそれに先立つI_Ack_Conflictをプッシュするであろう。ある実施例において、DACKメッセージは、インオーダ・ホーム・チャネルでホーム・ノードに伝えられる。
従って、ホーム・ノードは、第1の受信DACKによって2つの要求者間の遅延衝突を解決し、次に、I_CMPメッセージをノードBへ、Xfer(B)をノードA送出する。XFER(B)メッセージによって、受信ノード、ノードA)は、データの排他的なコピーをメッセージ中に示されたノード、ノードBに転送させる。ホーム・ノードは、ホーム・ノードにそのデータの現在の所有者がそのデータをターゲット・ノード、この例におけるノードBへ転送することを要求する衝突条件が通知されると、このメッセージを要求されたデータの現在の所有者、この例におけるノードAへ送る。その結果、そのホーム・ノードからXfer(B)メッセージを受け取ると、ノードAは、データの排他的なコピーをE_Dataメッセージを備えるノードBに送る。
図5は、ソース・ノード・アルゴリズムの方法のためのフローチャートの一実施例である。すでに議論されたように、ノードは次のように分類される。すなわち、ソース・ノード、ホーム・ノードおよびピア・ノードである。請求項記載の主題は、ソース・ノードで使用されるアルゴリズムについて記述する。ある実施例において、請求項記載の主題は、関連アプリケーションに関して議論されるようなピア・ノード・プロトコルを利用する。
図5は、ソース・ノード・アルゴリズムのための1つの方法を示す。例えば、下記条件は、Dackメッセージを主張することになる。
ある実施例において、Dackが要求するキャッシュ・ラインであると主張する1つの条件は、フォワード、排他的、あるいは修正のような予め定義された状態であり、少なくとも1つの衝突は検出され、また、完了が転送(Xfrメッセージ)なしに受け取られる。
別の実施例では、衝突中、衝突チェーン中のすべてのトランザクションは、DACKフェーズを経験するために要求されるように、本プロトコルは修正される。換言すれば、図3中のE_CMP_XFERは、E_CMP_Conflictに変更される。E_CMP_Conflict(衝突完了)を受け取ると、ノードAは、DACKをホーム・ノードへ送出する。ホーム・ノードは、DACKを受け取った後にXFERを送出する。衝突処理フローは比較的図3および図4に類似するので、これはハードウェア実行を単純化することができる。しかしながら、それは、すべての衝突のためにDACKを利用し、競合解消を少し遅延させる。これは、通常衝突がまれであることによる問題ではない。
ある実施例において、すべての入来する要求は、DACKの主張と、DACKのためのCMPの受信との間で阻止される。これによって、ホーム・ノードは衝突チェーンの終了が到達しているかどうかの決定を促進させることができる。
ある実施例において、DACKのためのCMPまたはXFERが受け取られるとき、阻止条件が取り除かれる。そのノードは、ピア・ノードのように振舞うであろう。
図6は、ホーム・ノード・アルゴリズムの方法のためのフローチャートの一実施例である。すでに議論されたように、ノードは次のように分類される。すなわち、ソース・ノード、ホーム・ノードおよびピア・ノードである。請求項記載の主題は、ソース・ノードおよびホーム・ノードで使用されるアルゴリズムについて記述する。ある実施例において、請求項記載の主題は、関連アプリケーションに関して議論されるようなピア・ノード・プロトコルを利用する。
図6は、ホーム・ノード・アルゴリズムのための1つの方法を示す。例えば、ホーム・ノード・アルゴリズムは、他のノード間の衝突を解決するために使用されてもよい。
例えば、ある実施例において、下記条件/イベントは、衝突を退かせるために使用される。ホーム・ノードは、次の場合、衝突要求を退かせて(終了させ)、衝突チェーンから衝突対象(conflictor)を取り除くであろう。すなわち、
すべての肯定応答メッセージが受け取られる、および、
Xferまたはフォワード・メッセージが受け取られる、および、
Xferが送られ、または、それが衝突チェーン中の最後のメッセージである。
さもなければ、別の実施例では、下記条件/イベントは衝突を退かせるために使用される。すなわち、
すべての肯定応答メッセージが受け取られる、および、
すべての衝突が発見される、および、
チェーン中の保留中の衝突が転送またはフォワードのための目標ではない、および、
Xferが送られ、または、それが衝突チェーン中の最後のメッセージである。
また、ホーム・ノード・アルゴリズムは、衝突メッセージのフォーマットおよび記録を管理し決定する。例えば、ノードからの衝突メッセージは、オリジナル処理の処理IDを含む。あるいは、別の実施例では、ノードからの衝突メッセージは、オリジナル処理の処理IDおよび衝突処理の処理IDを含んでもよい。2つの処理IDは、衝突のリンク・リストを構築するために使用することができる。オリジナルおよび衝突処理IDの両方が存在するので、衝突チェーンは両方の処理のそれぞれの記録エントリで記録できる。ちょうどYAP(特許番号―――)のように、このプロトコルは、伝送中の各処理を格納するための実質的な記録テーブルを要求する。要求がホーム・ノードに到着すると、それは、遅くて高価なアドレスCAMを要求せずに、衝突をすべて見つけるために衝突チェーンを単に調べることができる。例えば、図2中のCからホームへのI_ACkは、I_Ack_Conflictに最適化される。このI_Ack_Conflictは、AのPRIL処理ID(オリジナル)およびPWL処理ID(衝突対象)を有する。AのPRILがホームに到着すると、遅くて高価なアドレスCAMのサーチの代わりに、それは、PWLの記録エントリを見つけるために、I_Ack_Conflictから記録されるPWLの処理IDを単に使用することができる。
分散型キャッシュ・コヒーレンシの競合解消をサポートするシステム例
図7は、ノードの一実施例のブロック図である。ノード700は、単一のプロセッサ、キャッシュ・メモリ、メモリ制御器およびメモリで図示されるが、しかしながら、これらのいずれのコンポーネントもノード中に任意の個数で含めることができる。さらに、追加および/または異なるコンポーネント(例えば、バスブリッジ)をノードに含めることもできる。
プロセッサ710は、当技術分野で既知のあらゆるタイプのプロセッサでよい。ある実施例において、プロセッサ710は、キャッシュ・メモリ720を含む。別の実施例では、キャッシュ・メモリ720はプロセッサ710の外部にあってもよく、また、プロセッサ710の内部または外部に追加のキャッシュ・メモリは含めてもよい。
メモリ制御器730は、キャッシュ・メモリ720およびメモリ740に結合される。メモリ制御器730は、キャッシュ・メモリ720とメモリ740との間のインターフェイスとして動作する。ある実施例において、メモリ制御器730は、ここに記述されたキャッシュ・コヒーレンシ・プロトコルに従ってキャッシュ・コヒーレンシを維持する。メモリ制御器730は、ノード・リンク750を介して他のノードと相互に作用する。別の実施例では、プロセッサ710は、ここに記述されるようなキャッシュ・コヒーレンシを維持するためにメモリ制御器730と相互に作用し、また、プロセッサ710は、他のノード・リンク755を介して他のノードと相互に作用する。
ある実施例において、ノード・リンク750は、ノード700が相互に作用する各ノードのための専用インターフェイスを含む。別の実施例では、ノード・リンク750は、ノード700が相互に作用するノード数と異なるインターフェイスの数を含む。ある実施例において、ノード700は、複数のノードを表わす1またはそれ以上のエージェントと相互に作用する。
図8は、マルチプロセッサ・システムの一実施例である。マルチプロセッサ・システム800は、複数のプロセッサ、例えばコンピュータ・システム、リアルタイム監視システムなどを有する一連のシステムを表わすように意図される。他のマルチプロセッサ・システムは、より多くの、より限定した、および/または、異なるコンポーネントを含めることができる。ある状況では、ここに記述されたキャッシュ管理技術が単一プロセッサおよびマルチプロセッサ・システムに適用できる。マルチプロセッサ・システム800は、マルチノード・システムとして動作するために形成することができる。
マルチプロセッサ・システム800は、情報を交換するためにバス・システム810または他の通信装置を含む。バス・システム810は、あらゆる数のバスおよび関連する相互接続回路、例えば、バスブリッジを含めることができる。プロセッサ820は、情報を処理するためにバス・システム810に結合される。プロセッサ820は、キャッシュ・メモリ822、例えばレベル0(L0)のキャッシュ・メモリ、およびキャッシュ・コントローラ824を含めることができる。ある実施例において、プロセッサ820は、キャッシュ825と結合されてもよく、それはあらゆるタイプのキャッシュ・メモリでありえる。別の実施例では、キャッシュ825は、バス・システム810と結合される。他のタイプのプロセッサ−キャッシュ構成を使用することもできる。
ある実施例において、キャッシュ・コントローラ824は、例えばプロセッサ820に内部バスであるキャッシュ・メモリ・インターフェイス828を経由してキャッシュ・メモリ822に結合される。キャッシュ・コントローラは、プロセッサ820と外部キャッシュ・メモリとの間のインターフェイスを提供するキャッシュ・インターフェイス826を経由してキャッシュ・メモリ825に結合される。
マルチプロセッサ・システム800は、キャッシュ・メモリ832およびキャッシュ・コントローラ834を備えるプロセッサ830をさらに含む。キャッシュ・コントローラ834は、キャッシュ・インターフェイス838を経由してキャッシュ・メモリ832に結合される。同様に、キャッシュ・コントローラ834は、キャッシュ・インターフェイス836を経由してキャッシュ・メモリ835に結合される。ある実施例において、キャッシュ・メモリ835は、プロセッサ830に結合される。
マルチプロセッサ・システム800は2つのプロセッサで図示されているが、マルチプロセッサ・システム800はあらゆる数のプロセッサおよび/またはコプロセッサを含めることができる。マルチプロセッサ・システム800は、さらにバス・システム810に結合されたメモリ・システム840を含む。メモリ・システム840は、ダイナミック(例えば、ランダム・アクセス・メモリ)およびスタティック(例えば、リード・オンリ・メモリ、CD−ROM、ディスク装置、フラッシュ・メモリ)メモリ装置の任意の組合せ、および関連する適切なドライブをさらに含むことができる。メモリ・システム840のメモリ装置は、マルチプロセッサ・システム800のプロセッサによって実行される情報および命令を格納するために使用される。さらに、メモリ・システム840は、プロセッサによる命令実行中の一時変数または他の中間情報を格納するために使用することができる。
命令は、有線またはワイヤレスなどのいずれかのリモート接続を介して、磁気ディスク、リード・オンリ・メモリ(ROM)集積回路、CD−ROM、DVDのようなスタティックまたは遠隔格納装置から、メモリ・システム840に提供される。他の実施例では、ハードワイヤード回路は、ソフトウェア命令の代わりに、またはその命令と結合して使用することができる。このように、命令の実行シーケンスは、ハードウェア回路およびソフトウェア命令のあらゆる特定の組合せに制限されることはない。
マルチプロセッサ・システム800は、ローカル・エリア・ネットワークおよび/またはインターネットのようなネットワークへのアクセスを提供するためのネットワーク・インターフェイス850をさらに含む。ネットワーク・インターフェイス850は、ワイヤレスおよび/または有線ネットワーク・インターフェイスを提供することができ、それは遠隔の電子的アクセス可能な媒体からまたはそれへの通信命令を含む。電子的アクセス可能な媒体は、電子装置(例えば、コンピュータ、個人用デジタル情報処理端末(携帯電話))によって読取ることのできる形式内の内容(例えば、コンピュータ実行可能な命令)を提供(つまり、格納および/または送信)するあらゆるメカニズムを含む。
例えば、マシンアクセス可能な媒体は、リード・オンリ・メモリ(ROM);ランダム・アクセス・メモリ(RAM);磁気ディスク格納装置媒体;光格納装置媒体;フラッシュ・メモリ装置;電気的、光学的、音響的あるいは他の形式の伝播信号(例えば、搬送波、赤外線信号、デジタル信号)を含む。
マルチプロセッサ・システム800は、情報を表示するために陰極線管(CRT)または液晶ディスプレイ(LCD)のような表示装置860をさらに含めることができる。入力装置870は、例えば、英数字および他のキーを有するキーボードを含み、典型的にはプロセッサ820および/または830に情報と命令選択を伝えるバス810を結合される。別のタイプのユーザ入力装置は、プロセッサ820,830に指示情報および命令選択を伝え、さらに表示装置860上のカーソル移動を制御するマウス、トラックボール、または、カーソル指示キー、のようなカーソル制御装置である。
明細書中の「ある実施例」または「実施例」への参照は、本実施例に関して記述された特定の特徴、構造または特性が少なくとも本発明の一実施例に含まれることを意味する。本明細書中の様々な場所に現れる「ある実施例において」なる語句は、必ずしもすべてが同じ実施例を参照するものではない。
前述の明細書では、本発明がその特定の実施例に関連して記述された。しかしながら、様々な修正および変更は本発明のより広い思想および範囲から逸脱せずに成されるであろう。従って、明細書および図面は、限定的に意図する表現ではないと考えるべきである。
本発明は、実施例によって図示され、それは限定するものではなく、添付図面中同じ参照数字は類似の要素を参照する。
読取りトランザクションをサポートするためのプロトコルの一実施例を示す概念図を提供する。 ライトバック競合衝突をサポートするためのプロトコルの一実施例を示す概念図を提供する。 オーナーシップを要求する2つのリクエスト間の競合衝突をサポートするためのプロトコルの一実施例を示す概念図を提供する。 オーナーシップを要求する2つのリクエスト間の遅延衝突をサポートするためのプロトコルの一実施例を示す概念図を提供する。 ソース・ノード・アルゴリズムのためのフローチャートを示す一実施例である。 ホーム・ノード・アルゴリズムのためのフローチャートを示す一実施例である。 ノードの一実施例であるブロック図である。 マルチプロセッサ・システムの一実施例である。

Claims (10)

  1. それぞれの要求に関連するトランザクションの識別子に基づく衝突のリンク・リストを維持するホーム・ノードを含むマルチノード・システムにおいて、第1ピア・ノードからデータ・ブロックのコピーの要求を複数のノードへ送信する段階であって、前記ホーム・ノードは、前記データ・ブロックの有効なコピーがキャッシュされない場合に格納される非キャッシュ・メモリを含む、段階と、
    第2ピア・ノードから、前記データ・ブロックのコピーの要求を前記ホーム・ノードを含む前記複数のノードへ、送信する段階と、
    第3ピア・ノードから、前記データ・ブロックのコピーを前記第1ピア・ノードへ、および、肯定応答を、もしあるなら後続の衝突する要求をホーム・ノードへ、送信する段階と、
    完了メッセージを前記ホーム・ノードから受信するまで、入来する要求を前記第1ピア・ノードによって阻止する段階と、
    前記第1ピア・ノードによって前記データ・ブロックのコピーを送信し、前記第2ピア・ノードが前記ホーム・ノードからの命令に応答して前記データを排他的ステートで格納する段階であって、前記命令はまた明示的な完了命令であり、前記ホーム・ノードは、前記第1ピア・ノードからの前記要求および前記第2ピア・ノードからの前記要求を受け取り、かつ前記衝突のリンク・リストに基づいてその要求が衝突していると決定したことに応答して、前記命令を送る、段階と、
    を含むことを特徴とする方法。
  2. データ・ブロックのコピーの要求を第1ピア・ノードから複数のノードへ送信する段階は、前記要求を前記第1ピア・ノードからインオーダ・ホーム・チャネルを経由して前記ホーム・ノードへ送信する段階を含むことを特徴とする請求項1記載の方法。
  3. 前記第2ピア・ノードから前記第1ピア・ノードへ送られた前記データ・ブロックのコピーは、データ・ブロックの排他的なコピーであることを特徴とする請求項1記載の方法。
  4. それぞれの要求に関連するトランザクションの識別子に基づく衝突のリンク・リストを維持するホーム・ノードを含むマルチノード・システムにおいて、第1ピア・ノードからデータ・ブロックのコピーの要求を複数のノードへ送信する段階であって、前記ホーム・ノードは、前記データ・ブロックの有効なコピーがキャッシュされない場合格納される非キャッシュ・メモリを含む、段階と、
    第2ピア・ノードから、前記データ・ブロックのコピーの要求を前記ホーム・ノードを含む前記複数のノードへ、送信する段階と、
    第3ピア・ノードから、前記データ・ブロックのコピーを前記第1ピア・ノードへ、および、肯定応答を、もしあるなら後続の衝突する要求をホーム・ノードへ、送信する段階と、
    完了メッセージを前記ホーム・ノードから受信するまで、入来する要求を前記第1ピア・ノードによって阻止する段階と、
    前記要求の完了を示すために転送メッセージに結合した前記完了メッセージを前記ホーム・ノードから前記第1ピア・ノードに送信し、また前記メッセージによって前記第1ピア・ノードが排他的ステートで格納される前記データ・ブロックのコピーを前記第2ピア・ノードへ送り、前記データ・ブロックのコピーに関連したキャッシュ・ラインの割り当てを解除する段階と、
    を含むことを特徴とする方法。
  5. データ・ブロックのコピーの要求を第1ピア・ノードから複数のノードへ送信する段階は、前記要求を前記第1ピア・ノードからインオーダ・ホーム・チャネルを経由して前記ホーム・ノードへ送信する段階を含むことを特徴とする請求項4記載の方法。
  6. 前記第2ピア・ノードから前記第1ピア・ノードへ送られた前記データ・ブロックのコピーは、データ・ブロックの排他的なコピーであることを特徴とする請求項4記載の方法。
  7. ライトバック競合衝突を解決する方法において、
    マルチノード・システムにおける第1ピア・ノードからデータ・ブロックのコピーの要求を複数のノードへ送信する段階と、
    第2ピア・ノードからホーム・ノードへ、前記データ・ブロックのコピーの修正キャッシュ・ラインをメモリに書く(ライトバック・ライン)要求を送信する段階であって、前記ホーム・ノードは、前記データ・ブロックの有効なコピーがキャッシュされない場合に格納される非キャッシュ・メモリを含み、さらに、前記ホーム・ノードは、前記第1ピア・ノードからの要求、前記第2ピア・ノードからの要求、および、もしあるなら後続の衝突する要求に関連するトランザクションの識別子に基づく衝突のリンク・リストを維持する、段階と、
    前記第1ピア・ノードと前記第2ピア・ノードとの間のライトバックの競合衝突を前記ホーム・ノードで解決する段階と、
    合成された完了およびフォワード・メッセージを前記データ・ブロックの所有者へ送信し、その所有者は、前記データ・ブロックのコピーを排他的ステートで格納される前記ライトバック競合衝突の勝者へ送る段階と、
    前記ライトバック競合衝突の解決期間中、入来する要求を前記第1ピア・ノードおよび前記第2ピア・ノードによって阻止する段階と、
    を含むことを特徴とするライトバック競合衝突を解決する方法。
  8. 前記第2ピア・ノードから前記ホーム・ノードへの前記ライトバック要求は、インオーダ・ホーム・チャネルを経由して送信されることを特徴とする請求項7記載の方法。
  9. 前記第2ピア・ノードおよび第3ピア・ノードは、前記第1ピア・ノードの要求に応答してI_ACKメッセージを生成することを特徴とする請求項7記載の方法。
  10. 前記ライトバック競合衝突を解決する段階は、
    メモリへの修正データのライトバックの完了を示す完了CMPメッセージで前記第2ピア・ノードに応答する段階と、
    前記データ・ブロックの前記コピーを含み、かつ前記第1ピア・ノードからの前記要求の完了を示すI_DATA_CMPメッセージで前記第1ピア・ノードに応答する段階と、によって、
    前記ホーム・ノードが前記衝突を解決することを特徴とする請求項7記載の方法。
JP2007509505A 2004-04-27 2005-04-08 効率的な2つのホップ・キャッシュ・コヒーレンシ・プロトコル Expired - Fee Related JP4789926B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/833,963 US7822929B2 (en) 2004-04-27 2004-04-27 Two-hop cache coherency protocol
US10/833,963 2004-04-27
PCT/US2005/012087 WO2005109206A2 (en) 2004-04-27 2005-04-08 An efficient two-hop cache coherency protocol

Publications (2)

Publication Number Publication Date
JP2007535037A JP2007535037A (ja) 2007-11-29
JP4789926B2 true JP4789926B2 (ja) 2011-10-12

Family

ID=34966020

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007509505A Expired - Fee Related JP4789926B2 (ja) 2004-04-27 2005-04-08 効率的な2つのホップ・キャッシュ・コヒーレンシ・プロトコル

Country Status (8)

Country Link
US (1) US7822929B2 (ja)
JP (1) JP4789926B2 (ja)
KR (1) KR100880059B1 (ja)
CN (1) CN100377114C (ja)
DE (1) DE112005000974T5 (ja)
GB (2) GB2447119B (ja)
TW (1) TWI274998B (ja)
WO (1) WO2005109206A2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7512741B1 (en) 2006-01-11 2009-03-31 Intel Corporation Two-hop source snoop based messaging protocol
JP4572169B2 (ja) * 2006-01-26 2010-10-27 エヌイーシーコンピュータテクノ株式会社 マルチプロセッサシステム及びその動作方法
JP4449931B2 (ja) * 2006-03-30 2010-04-14 ブラザー工業株式会社 管理装置、および管理システム
US7941610B2 (en) 2006-04-27 2011-05-10 Hewlett-Packard Development Company, L.P. Coherency directory updating in a multiprocessor computing system
US7836144B2 (en) * 2006-12-29 2010-11-16 Intel Corporation System and method for a 3-hop cache coherency protocol
US8190820B2 (en) * 2008-06-13 2012-05-29 Intel Corporation Optimizing concurrent accesses in a directory-based coherency protocol
US8250311B2 (en) 2008-07-07 2012-08-21 Intel Corporation Satisfying memory ordering requirements between partial reads and non-snoop accesses
US8205045B2 (en) * 2008-07-07 2012-06-19 Intel Corporation Satisfying memory ordering requirements between partial writes and non-snoop accesses
WO2013100984A1 (en) * 2011-12-28 2013-07-04 Intel Corporation High bandwidth full-block write commands
US9235519B2 (en) * 2012-07-30 2016-01-12 Futurewei Technologies, Inc. Method for peer to peer cache forwarding
US20140040561A1 (en) * 2012-07-31 2014-02-06 Futurewei Technologies, Inc. Handling cache write-back and cache eviction for cache coherence
US9152501B2 (en) 2012-12-19 2015-10-06 International Business Machines Corporation Write performance in fault-tolerant clustered storage systems
US9727464B2 (en) * 2014-11-20 2017-08-08 International Business Machines Corporation Nested cache coherency protocol in a tiered multi-node computer system
US9886382B2 (en) 2014-11-20 2018-02-06 International Business Machines Corporation Configuration based cache coherency protocol selection
US11269773B2 (en) * 2019-10-08 2022-03-08 Arm Limited Exclusivity in circuitry having a home node providing coherency control

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04261487A (ja) * 1991-02-15 1992-09-17 Sekisui Chem Co Ltd 粘着テープ
JPH10105464A (ja) * 1996-04-08 1998-04-24 Sun Microsyst Inc マルチプロセッサ内の多数のキャッシュ用のキャッシュ・コヒーレンシ方式
JP2000112910A (ja) * 1998-06-30 2000-04-21 Internatl Business Mach Corp <Ibm> 非一様メモリ・アクセス・コンピュ―タ・システム及びその操作方法
JP2000132531A (ja) * 1998-10-23 2000-05-12 Pfu Ltd マルチプロセッサ
US20020087804A1 (en) * 2000-12-29 2002-07-04 Manoj Khare Distributed mechanism for resolving cache coherence conflicts in a multi-node computer architecture
JP2002533813A (ja) * 1998-12-21 2002-10-08 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド メモリキャンセルメッセージを用いたシステムメモリ帯域幅の節約およびキャッシュコヒーレンシ維持
US6594733B1 (en) * 2000-09-27 2003-07-15 John T. Cardente Cache based vector coherency methods and mechanisms for tracking and managing data use in a multiprocessor system
US20040123052A1 (en) * 2002-12-19 2004-06-24 Beers Robert H. Non-speculative distributed conflict resolution for a cache coherency protocol
US20040123045A1 (en) * 2002-12-19 2004-06-24 Hum Herbert H. J. Hierarchical virtual model of a cache hierarchy in a multiprocessor system
JP2005189928A (ja) * 2003-12-24 2005-07-14 Nec Corp マルチプロセッサシステム、マルチプロセッサシステムにおける一貫性制御装置及び一貫性制御方法
US20050198440A1 (en) * 2004-01-20 2005-09-08 Van Doren Stephen R. System and method to facilitate ordering point migration
JP2005293560A (ja) * 2004-04-01 2005-10-20 Microsoft Corp 項目収束(すなわち、データ収束)を施行するための競合解決を伝播するシステムおよび方法
JP2006510119A (ja) * 2002-12-19 2006-03-23 インテル コーポレイション マルチプロセッサ・システムにおけるキャッシュ・コヒーレンスにおいて用いるフォワード状態

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5297269A (en) 1990-04-26 1994-03-22 Digital Equipment Company Cache coherency protocol for multi processor computer system
US5190386A (en) * 1992-01-28 1993-03-02 Eudy James R Printer with edge strip trimmer
US5463629A (en) 1992-07-13 1995-10-31 Ko; Cheng-Hsu Dynamic channel allocation method and system for integrated services digital network
EP0600626A1 (en) 1992-11-13 1994-06-08 Cyrix Corporation Coherency for write-back cache in a system designed for write-through cache
US5812814A (en) * 1993-02-26 1998-09-22 Kabushiki Kaisha Toshiba Alternative flash EEPROM semiconductor memory system
JP2819982B2 (ja) 1993-03-18 1998-11-05 株式会社日立製作所 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム
JP3183993B2 (ja) 1993-03-31 2001-07-09 株式会社東芝 ディスク制御システム
US5623644A (en) 1994-08-25 1997-04-22 Intel Corporation Point-to-point phase-tolerant communication
US5819296A (en) 1996-10-31 1998-10-06 Veritas Software Corporation Method and apparatus for moving large numbers of data files between computer systems using import and export processes employing a directory of file handles
US6636944B1 (en) 1997-04-24 2003-10-21 International Business Machines Corporation Associative cache and method for replacing data entries having an IO state
US6189043B1 (en) 1997-06-09 2001-02-13 At&T Corp Dynamic cache replication in a internet environment through routers and servers utilizing a reverse tree generation
US6092155A (en) 1997-07-10 2000-07-18 International Business Machines Corporation Cache coherent network adapter for scalable shared memory processing systems
US6085276A (en) * 1997-10-24 2000-07-04 Compaq Computers Corporation Multi-processor computer system having a data switch with simultaneous insertion buffers for eliminating arbitration interdependencies
US6009488A (en) 1997-11-07 1999-12-28 Microlinc, Llc Computer having packet-based interconnect channel
US6460119B1 (en) 1997-12-29 2002-10-01 Intel Corporation Snoop blocking for cache coherency
US6341337B1 (en) 1998-01-30 2002-01-22 Sun Microsystems, Inc. Apparatus and method for implementing a snoop bus protocol without snoop-in and snoop-out logic
US6430657B1 (en) 1998-10-12 2002-08-06 Institute For The Development Of Emerging Architecture L.L.C. Computer system that provides atomicity by using a tlb to indicate whether an exportable instruction should be executed using cache coherency or by exporting the exportable instruction, and emulates instructions specifying a bus lock
US6275907B1 (en) 1998-11-02 2001-08-14 International Business Machines Corporation Reservation management in a non-uniform memory access (NUMA) data processing system
US6477535B1 (en) 1998-11-25 2002-11-05 Computer Associates Think Inc. Method and apparatus for concurrent DBMS table operations
US6338122B1 (en) 1998-12-15 2002-01-08 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that speculatively forwards a read request to a remote processing node
US6275905B1 (en) 1998-12-21 2001-08-14 Advanced Micro Devices, Inc. Messaging scheme to maintain cache coherency and conserve system memory bandwidth during a memory read operation in a multiprocessing computer system
US6370621B1 (en) 1998-12-21 2002-04-09 Advanced Micro Devices, Inc. Memory cancel response optionally cancelling memory controller's providing of data in response to a read operation
US6263409B1 (en) 1998-12-22 2001-07-17 Unisys Corporation Data processing system and method for substituting one type of request for another for increased performance when processing back-to-back requests of certain types
US6275995B1 (en) * 1999-02-26 2001-08-21 Sweports Limited Hand covering with reversible cleaning membrane
JP4363539B2 (ja) 1999-06-04 2009-11-11 諏訪熱工業株式会社 ボールペン用ボール
US6442597B1 (en) 1999-07-08 2002-08-27 International Business Machines Corporation Providing global coherence in SMP systems using response combination block coupled to address switch connecting node controllers to memory
US6484220B1 (en) 1999-08-26 2002-11-19 International Business Machines Corporation Transfer of data between processors in a multi-processor system
US6405289B1 (en) 1999-11-09 2002-06-11 International Business Machines Corporation Multiprocessor system in which a cache serving as a highest point of coherency is indicated by a snoop response
JP3959914B2 (ja) 1999-12-24 2007-08-15 株式会社日立製作所 主記憶共有型並列計算機及びそれに用いるノード制御装置
US6493809B1 (en) 2000-01-28 2002-12-10 International Business Machines Corporation Maintaining order of write operations in a multiprocessor for memory consistency
US6922755B1 (en) 2000-02-18 2005-07-26 International Business Machines Corporation Directory tree multinode computer system
US6769017B1 (en) 2000-03-13 2004-07-27 Hewlett-Packard Development Company, L.P. Apparatus for and method of memory-affinity process scheduling in CC-NUMA systems
US7062541B1 (en) 2000-04-27 2006-06-13 International Business Machines Corporation System and method for transferring related data objects in a distributed data storage environment
US6640287B2 (en) 2000-06-10 2003-10-28 Hewlett-Packard Development Company, L.P. Scalable multiprocessor system and cache coherence method incorporating invalid-to-dirty requests
US6795900B1 (en) 2000-07-20 2004-09-21 Silicon Graphics, Inc. Method and system for storing data at input/output (I/O) interfaces for a multiprocessor system
US6760728B1 (en) 2000-09-27 2004-07-06 Palmsource, Inc. Method and apparatus for importing and exporting directory and calendar information to and from personal information management applications
US6631449B1 (en) 2000-10-05 2003-10-07 Veritas Operating Corporation Dynamic distributed data system and method
DE10052443A1 (de) * 2000-10-23 2002-05-08 Boehringer Werkzeugmaschinen Kombimaschine
US6826591B2 (en) 2000-12-15 2004-11-30 International Business Machines Corporation Flexible result data structure and multi-node logging for a multi-node application system
US6571322B2 (en) 2000-12-28 2003-05-27 International Business Machines Corporation Multiprocessor computer system with sectored cache line mechanism for cache intervention
US6859864B2 (en) * 2000-12-29 2005-02-22 Intel Corporation Mechanism for initiating an implicit write-back in response to a read or snoop of a modified cache line
US6763434B2 (en) 2000-12-30 2004-07-13 International Business Machines Corporation Data processing system and method for resolving a conflict between requests to modify a shared cache line
US6842830B2 (en) 2001-03-31 2005-01-11 Intel Corporation Mechanism for handling explicit writeback in a cache coherent multi-node architecture
US6877026B2 (en) 2001-06-08 2005-04-05 Sun Microsystems, Inc. Bulk import in a directory server
US6901485B2 (en) 2001-06-21 2005-05-31 International Business Machines Corporation Memory directory management in a multi-node computer system
US6691192B2 (en) 2001-08-24 2004-02-10 Intel Corporation Enhanced general input/output architecture and related methods for establishing virtual channels therein
US20030074430A1 (en) 2001-10-05 2003-04-17 Gieseke Eric James Object oriented provisioning server object model
US6785774B2 (en) * 2001-10-16 2004-08-31 International Business Machines Corporation High performance symmetric multiprocessing systems via super-coherent data mechanisms
JP2005519391A (ja) 2002-02-28 2005-06-30 シリコン、グラフィクス、インコーポレイテッド 共有ベクトルの増加を伴わないdsmマルチプロセッサシステムにおけるキャッシュコヒーレンスのための方法およびシステム
US7269709B2 (en) 2002-05-15 2007-09-11 Broadcom Corporation Memory controller configurable to allow bandwidth/latency tradeoff
US6944719B2 (en) 2002-05-15 2005-09-13 Broadcom Corp. Scalable cache coherent distributed shared memory processing system
US7209976B2 (en) 2002-07-16 2007-04-24 Jeremy Benjamin Protocol communication and transit packet forwarding routed between multiple virtual routers within a single physical router
US7051163B2 (en) * 2002-10-03 2006-05-23 Hewlett-Packard Development Company, L.P. Directory structure permitting efficient write-backs in a shared memory computer system
US6934814B2 (en) 2002-11-05 2005-08-23 Newisys, Inc. Cache coherence directory eviction mechanisms in multiprocessor systems which maintain transaction ordering
US7209776B2 (en) * 2002-12-03 2007-04-24 Aesculap Ag & Co. Kg Method of determining the position of the articular point of a joint
US7130969B2 (en) 2002-12-19 2006-10-31 Intel Corporation Hierarchical directories for cache coherency in a multiprocessor system
US7917646B2 (en) * 2002-12-19 2011-03-29 Intel Corporation Speculative distributed conflict resolution for a cache coherency protocol
JP3944449B2 (ja) 2002-12-19 2007-07-11 株式会社日立製作所 計算機システム、磁気ディスク装置、および、ディスクキャッシュ制御方法
US8145847B2 (en) * 2004-01-20 2012-03-27 Hewlett-Packard Development Company, L.P. Cache coherency protocol with ordering points

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04261487A (ja) * 1991-02-15 1992-09-17 Sekisui Chem Co Ltd 粘着テープ
JPH10105464A (ja) * 1996-04-08 1998-04-24 Sun Microsyst Inc マルチプロセッサ内の多数のキャッシュ用のキャッシュ・コヒーレンシ方式
JP2000112910A (ja) * 1998-06-30 2000-04-21 Internatl Business Mach Corp <Ibm> 非一様メモリ・アクセス・コンピュ―タ・システム及びその操作方法
JP2000132531A (ja) * 1998-10-23 2000-05-12 Pfu Ltd マルチプロセッサ
JP2002533813A (ja) * 1998-12-21 2002-10-08 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド メモリキャンセルメッセージを用いたシステムメモリ帯域幅の節約およびキャッシュコヒーレンシ維持
US6594733B1 (en) * 2000-09-27 2003-07-15 John T. Cardente Cache based vector coherency methods and mechanisms for tracking and managing data use in a multiprocessor system
US20020087804A1 (en) * 2000-12-29 2002-07-04 Manoj Khare Distributed mechanism for resolving cache coherence conflicts in a multi-node computer architecture
US20040123052A1 (en) * 2002-12-19 2004-06-24 Beers Robert H. Non-speculative distributed conflict resolution for a cache coherency protocol
US20040123045A1 (en) * 2002-12-19 2004-06-24 Hum Herbert H. J. Hierarchical virtual model of a cache hierarchy in a multiprocessor system
JP2006510119A (ja) * 2002-12-19 2006-03-23 インテル コーポレイション マルチプロセッサ・システムにおけるキャッシュ・コヒーレンスにおいて用いるフォワード状態
JP2005189928A (ja) * 2003-12-24 2005-07-14 Nec Corp マルチプロセッサシステム、マルチプロセッサシステムにおける一貫性制御装置及び一貫性制御方法
US20050198440A1 (en) * 2004-01-20 2005-09-08 Van Doren Stephen R. System and method to facilitate ordering point migration
JP2005293560A (ja) * 2004-04-01 2005-10-20 Microsoft Corp 項目収束(すなわち、データ収束)を施行するための競合解決を伝播するシステムおよび方法

Also Published As

Publication number Publication date
GB0620090D0 (en) 2006-11-22
US7822929B2 (en) 2010-10-26
JP2007535037A (ja) 2007-11-29
TW200608204A (en) 2006-03-01
CN100377114C (zh) 2008-03-26
GB2427730B (en) 2008-10-29
GB2447119A (en) 2008-09-03
CN1690986A (zh) 2005-11-02
TWI274998B (en) 2007-03-01
GB0802718D0 (en) 2008-03-26
US20070022252A1 (en) 2007-01-25
GB2427730A (en) 2007-01-03
GB2447119B (en) 2008-12-03
WO2005109206A2 (en) 2005-11-17
KR20070007865A (ko) 2007-01-16
KR100880059B1 (ko) 2009-01-22
DE112005000974T5 (de) 2007-03-29
WO2005109206A3 (en) 2006-02-02

Similar Documents

Publication Publication Date Title
JP4789926B2 (ja) 効率的な2つのホップ・キャッシュ・コヒーレンシ・プロトコル
US7434006B2 (en) Non-speculative distributed conflict resolution for a cache coherency protocol
US8171095B2 (en) Speculative distributed conflict resolution for a cache coherency protocol
KR100634932B1 (ko) 멀티프로세서 시스템 내에서의 캐시 일관성에서 사용하기위한 전송 상태
US8205045B2 (en) Satisfying memory ordering requirements between partial writes and non-snoop accesses
US8806147B2 (en) System and method for creating ordering points
US7506108B2 (en) Requester-generated forward for late conflicts in a cache coherency protocol
WO2006012198A1 (en) Pushing of clean data to one or more caches corresponding to one or more processors in a system having coherency protocol
US20050262250A1 (en) Messaging protocol
US8516199B2 (en) Bandwidth-efficient directory-based coherence protocol

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100215

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100517

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101206

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110307

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110314

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110405

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110412

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110506

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110513

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110606

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

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

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

Free format text: PAYMENT UNTIL: 20140729

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

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

LAPS Cancellation because of no payment of annual fees