JP4261487B2 - キャッシュ・コヒーレンス・プロトコルに対する投機的分散競合解決 - Google Patents
キャッシュ・コヒーレンス・プロトコルに対する投機的分散競合解決 Download PDFInfo
- Publication number
- JP4261487B2 JP4261487B2 JP2004565115A JP2004565115A JP4261487B2 JP 4261487 B2 JP4261487 B2 JP 4261487B2 JP 2004565115 A JP2004565115 A JP 2004565115A JP 2004565115 A JP2004565115 A JP 2004565115A JP 4261487 B2 JP4261487 B2 JP 4261487B2
- Authority
- JP
- Japan
- Prior art keywords
- peer node
- node
- data block
- message
- request
- 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
Links
- 230000004044 response Effects 0.000 claims description 77
- 238000000034 method Methods 0.000 claims description 49
- 230000010076 replication Effects 0.000 claims description 15
- 230000005540 biological transmission Effects 0.000 claims description 8
- 230000003111 delayed effect Effects 0.000 claims description 7
- 230000015654 memory Effects 0.000 description 67
- 101100490184 Drosophila melanogaster Ack gene Proteins 0.000 description 24
- 238000012546 transfer Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 12
- 230000008859 change Effects 0.000 description 11
- 230000001427 coherent effect Effects 0.000 description 10
- 238000013459 approach Methods 0.000 description 7
- 239000003795 chemical substances by application Substances 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009118 appropriate response Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0826—Limited pointers directories; State-only directories without pointers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/622—State-only directory, i.e. not recording identity of sharing or owning nodes
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)
Description
以下のメッセージは、要求側ノードからのデータ/動作要求である。これらのメッセージは、システムのノード全てにブロードキャストされる。
以下のメッセージは、ピア(すなわち、非ホーム)・ノードから要求側ノードに上記要求に応じて送出されるメッセージである。
このメッセージはホーム・ノードにピア・ノードによって送信される。
このメッセージはホーム・ノードからピア・ノード及び/又は要求側ノードに送出される。
キャッシュ・コヒーレント状態を備える、スヌーピング(現在は多くの場合対称マルチプロセッシングSMPと呼ばれている)とディレクトリ(多くの場合分散共有メモリDSMと呼ばれている)との、2つの基本的な手法がある。基本的な違いは、メタ情報、すなわちキャッシュ・ラインの複製が記憶されている場所に関する情報の配置及びアクセスに関する。
一般的に、キャッシュ・コヒーレント・プロトコルは、種々のキャッシュ・ラインやその他のデータ・ブロックの状態を規則正しく変化させるために競合解決を必要とする。本明細書及び特許請求の範囲記載の競合解決手法はシーケンスの整合性を備える、すなわち、キャッシュ・ラインのうちの単一の、修正可能な複製のみが何れかの時点で存在することが可能であり、別の複製が読み取り可能である場合には、キャッシュ・ラインの複製は何れも修正することが可能でない。キャッシュ・ラインの複製を修正する競合要求は、したがって、シーケンスの整合性を維持するために解決されなければならない。
図7は、ノードの一実施例の構成図である。ノード700は、単一プロセッサ、キャッシュ・メモリ、メモリ・コントローラ及びメモリとともに示す。しかし、何れかの数の、構成部分のうちの何れかをノードに含むことが可能である。更に、別の構成部分及び/又は異なる構成部分(例えば、バス・ブリッジ)をノードに含めることも可能である。
図8は、マルチプロセッサ・システムの一実施例である。マルチプロセッサ・システム800は、例えば、コンピュータ・システム、リアルタイム監視システムなどの、複数のプロセッサを有する種々のシステムを表すことが意図されている。別のマルチプロセッサ・システムの構成部分は、より多い構成部分、より少ない構成部分、及び/又は異なる構成部分を含み得る。特定の場合には、本明細書及び特許請求の範囲記載のキャッシュ管理手法は、単一プロセッサ・システムにもマルチプロセッサ・システムにも適用し得る。マルチプロセッサ・システム800は、マルチノード・システムとして動作するよう構成し得る。
本明細書における「one embodiment」又は「an embodiment」への言及は、実施例に関して記載されている特定の特徴、構造又は特性が本発明の少なくとも1つの実施例に含まれているということを表す。本明細書の種々の箇所に「in one embodiment」の句が出てくることは、必ずしも全て同じ実施例を表すわけではない。
以下に、MESIFアルゴリズムの記述例を擬似コード形式で示す。記述はパケット・ベースである、すなわち、各ルーチンは着信パケット又は発信パケットに応じて実行される。あるいは、アルゴリズムは、受信されるパケット又は生成されるパケットによる状態変更に対する応答として表し得る。
1. 各ピア・ノード/要求側ノードは単一のキャッシュ・エージェントを有する;
2. ホーム・ノードはキャッシュ・エージェントを有しない;
3. ホーム・ノードにおけるメモリ要求のアルゴリズムは記載のものより複雑なものになり得るものであり、MESIFのコーナー・ケースの全てを処理し得る(2つ以上の読み取り、複数のエポック、書き込み転送など)
(一部の実施例において存在し得る)キャッシュ・エージェントを有するホーム・ノードのケースは、特定のアルゴリズムから、すなわち、局所のキャッシュ・エージェント(又はプロキシ)によるホーム・ノードとの間の伝送に関するルーチンを内部化することによって受信パケットのルーチンを組み合わせることによって導き出される。
1. キャッシュはラインがI状態にある場合のみPRLを生成することになる。
2. キャッシュはラインがI又はSの状態にある場合のみPRILを生成することになる。
3. キャッシュはラインがM状態にある場合のみPWLを生成することになる。
4. キャッシュはS状態、F状態、及びE状態からI状態に自由に移り得る。
5. キャッシュは(書き込みが行われたとすると)E状態からM状態に自由に移り得る。
6. キャッシュは、さもなければ、それが出した要求の完了又はピアからの要求の受信によって移り得る。
ベースMESIFプロトコル
要求生成
呼び出し:
(非アクティブ状態にある)アドレスの新要求をキャッシュが生成
アルゴリズム:
Mark address as being active
If request is PRL or PRIL
Send request to all other peer nodes and to home node
If request is PWL
Send request to home node
ホーム・ノードによる要求受信
呼び出し:
ホーム・ノードで要求を受信
アルゴリズム:
If request is PWL
Initiate write to memory
(Handle forwarding, canceling outstanding reads, etc.)
Send ACK back to requester
If request is PRL or PRIL
Initiate read from memory
(Buffer data if read finishes before a READ is received, etc.)
ピア・ノードによる要求受信
呼び出し:
ピア・ノードで要求(PRL又はPRIL)を受信
アルゴリズム:
If address is being forwarded
Buffer incoming request
Else if address is not active
Snoop cache
Else if address is active
If active request is a PWL
Buffer incoming request
--End If
If incoming request is in active request's conflict list
If active request is a PRL
Respond with CNFL
Else (active request is a PRIL)
Respond with CNFLI
Else if active request is in "data phase" (see Gathering Responses below)
Buffer incoming request
Else
Add requester to conflict list (of active request)
If incoming request is a PRIL
Mark requester in conflict list as a PRIL conflictor
If active request is a PRL
Respond with CNFL
Else (active request is a PRIL)
Respond with CNFLI
スヌープ応答
呼び出し:
適切な応答を生成するよう、要求が(スヌープとして)キャッシュに投入される
アルゴリズム:
現行キャッシュ状態と着信要求種類に基づいて以下の表における応答と次状態とのルックアップを行う(S/Iの次状態は、キャッシュが何れかの状態にラインを移動させることが可能であることを表す。なお、局所複製を無効化する場合でもPRLにDATA_Fをなお送出する。以下の、PRL DATA_E/M応答オプションを参照。)
Initiate PWL request
Buffer snoop (hold off sending DATA_F until writeback completes)
Else
If snoop hit cache line (in M, E, or F state)
Mark address as being forwarded
Change cache line to next state
Send response to requester
応答の収集
呼び出し:
PRL/PRIL要求が応答をピア・ノードから受信
アルゴリズム:
If response is a SACK (PRL only)
Record existence of shared copy in system
Else if response is a DATA
Record receipt of forwarded data from responding node
Send cache line and new state to cache (note: line is not yet
globally observable!)
Else if response is CNFL
Add repsonding node to conflict list
Else if response is CNFLI
Add responding node to conflict list
Mark responding node as PRIL conflictor
--End If
If all peer nodes have responded
Mark request as being in "data phase"
If a data response was received
Send CNCL, forwarding node, and conflict list to home node
Else
Send READ and conflict list to home node
ホーム・ノードでの取り消し
呼び出し:
ホーム・ノードが(転送ノード及び競合リストを含む)CNCLを受信
アルゴリズム:
Cancel outstanding read (if any)
Mark requesting node as "current owner" for this address
Send DACK to forwarding node
If no conflicts
Send ACK to requesting node
--conflictless cached epoch is complete
Else
Incorporate conflict list as "outstanding requests" for this address
-- wait for READs to XFR data to
ホーム・ノードでの読み取り要求
呼び出し:
ホーム・ノードが(競合リストを含む)READを受信
アルゴリズム:
If no current owner
If data not available
Wait for read to complete
Send DATA_E to requesting node
If conlict list is empty
Send ACK to requesting node
--conflictless uncached epoch is complete
Else
Incorporate conflict list as "outstanding nodes" for this address
Else
Add outstanding conflicts to "outstanding nodes" for this address
Remove requesting node from "outstanding nodes"
If no (remaining) outstanding nodes
Send XFR (target: requesting node) to "current owner"
Send ACK to requesting node
--epoch is complete
Else
If one or more outstanding nodes (including requester) is a PRIL
Send XFRI (target: requesting node) to "current owner"
Else
Send XFR (target: requesting node) to "current owner"
Mark requesting node as "current owner"
転送受信
呼び出し:
要求側が(標的ノードを含む)XFR又はXFRIを受信
アルゴリズム:
Wait for data if not yet received
If received XFRI
Send PRIL snoop to cache
Else
Send PRL snoop to cache
Add conflict list (sans receiving node) to DATA packet
Send DATA packet to target node
転送データ受信
呼び出し:
要求側がXFRの結果、(競合リストを含む)DATAを受信
アルゴリズム:
Send data to processor
Incorporate conflict list into current conflict list
If buffering requests matching entry in conflict list
Respond with CNFL to each matching request
DACK転送
呼び出し:
転送ノードがDACKを受信
アルゴリズム:
Unmark address as being forwarded
Service buffered requests per algorithm for receiving peer requests
ACK要求
呼び出し:
要求側がACKをホーム・ノードから受信
アルゴリズム:
If active request is a PWL
Switch cache line to desired next state (E or I)
If buffered snoop (PRL hit line in M state)
Send DATA_F to requester
Change cache line to next state (S) or to I state
Else (request is a PRL or PRIL)
Release buffered requests (i.e., treat them as though they
just arrived at the node)
Wait for data if not yet received
Send ACK to processor
<<<=== END OF BASE PROTOCOL ===>>>
上記プロトコル・アルゴリズムでは、ノードがキャッシュ・ラインをF状態からE状態に移す唯一の方法は、ラインを無効化させ(ラインをI状態に変え)、更にPRILを要求するというものである。これにはDATA転送が関係する。
要求生成
呼び出し:
キャッシュが(非アクティブ状態にある)アドレスの新要求を生成
アルゴリズム:
Mark address as being active
If request is PRL or PRIL
Send request to all other peer nodes and to home node
>> If request is PIL
>> Send request to all other peer nodes
If request is PWL
Send request to home node
ピア・ノードによる要求受信
呼び出し:
要求(PIL又はPRIL)をピア・ノードで受信
アルゴリズムへの唯一の変更点は、アクティブ状態ないるPWLに行われるのと同様に、アクティブ状態にあるPIL要求が存在する場合に要求をバッファするというものである。
ピア・ノードによるPIL要求受信
呼び出し:
PIL要求をピア・ノードで受信
アルゴリズム:
PILスヌープをキャッシュに送出
スヌープ応答
新応答/次状態テーブルに同じアルゴリズムを使用(F状態にある要求側、E状態にある要求側、及びM状態にある要求側は相互排除的であるので、PILではF状態、E状態、及びM状態の場合は、エントリは何らない)
呼び出し:
PIL要求が応答をピア・ノードから受信
アルゴリズム:
If all peer nodes have responded
Tell cache to move line to E state
Release any buffered requests
--PIL request is complete
MからSへのPWL、及び即時応答
M状態におけるラインをヒットするPRLの性能上の課題は、データを転送する前に書き戻す(PWLを出す)必要がある。ある程度の微妙な変化によって、データの転送と書き戻しとを同時に行い得る。ホーム・ノードは、PWL要求とCNCLとの両方を要求側/勝者から受信するまでDACKを送出しない。
ホーム・ノードによる要求受信
呼び出し:
要求のホーム・ノードでの受信
アルゴリズム:
If request is PWL
Initiate write to memory
(Handle forwarding, canceling outstanding reads, etc.)
>> If PWL was for PRL-hit-M
>> If CNCL received
>> Send DACK to forwarding node indicated in CNCL
>> Else
>> Mark address as being written back
>> Else
>> Send ACK back to requester
If request is PRL or PRIL
Initiate read from memory
(Buffer data if read finishes before a READ is received, etc.)
スヌープ応答
呼び出し:
適切な応答生成を行うよう、キャッシュに(スヌープとして)要求を投入
アルゴリズム:
Do response/next-state look up as in base protocol
If snoop hit cache line (in M, E, or F state)
Mark address as being forwarded
Change cache line to next state
If PRL snoop hits cache line in M state
Initiate PWL marked as PRL-hit-M writeback
Send DATA_F to requester, marked as PRL-hit-M
Else
Send response to requester
応答の収集
アルゴリズム:
Differences are in recording PRL-hit-M data and notifying home node of the special forwarding when sending the CNCL:
Else if response is a DATA
Record receipt of forwarded data from responding node
If PRL request and hit M (indicated via DATA)
Mark forwarding node as PRL-hit-M
Send cache line and new state to cache (note: line is not
yet globally observable!)
If all peer nodes have responded
If a data response was received
Send CNCL, forwarding node (marked as PRL-hit-M if it was),
and conflict list to home node
ホーム・ノードでの取り消し
呼び出し:
ホーム・ノードが(転送ノード及び競合リストを含む)CNCLを受信
アルゴリズム:
DACKを送出するか否かを判定することのみが異なる:
If forwarding node did PRL-hit-M writeback
If PWL has been received
Send DACK to forwarding node
Else
Mark address as needing writeback
Else
Send DACK to forwarding node
DACKの転送
相違点なし。PWLを出すことはワンショット・パケット(又はDACKによって終結される要求)によって処理される。
FM状態
M状態におけるラインをヒットするPRLの別の代替策は、FM状態をMESIFに導入するというものである。この状態は、修正ラインの共有複製を示す。M状態と同様に、データは、キャッシュから取り戻される場合、書き戻し(PWL)が行われなければならない。F状態と同様に、データを変更することは可能でなく、ノードは、ライン上の読み取り要求に対するヒットによって応答する。
呼び出し:
適切に応答を生成するよう要求を(スヌープとして)キャッシュに投入
アルゴリズム:
現行キャッシュ状態と着信要求種類に基づいて以下のテーブルにおける応答と次状態とのルックアップを行う(S/Iの次状態は、キャッシュが何れかの状態にラインを移動させることが可能であることを表す。なお、局所複製を無効化する場合でもPRLにDATA_F(M)をなお送出する、以下のPRL DATA_E/M応答のオプションを参照。)):
転送データを競合リストとともに送出することはハードウェアにとっては問題である。転送チェーンの途上にある要求が、自らが途上にあることが分かっており、転送データを受信した後に(IACK/SACKによって)バッファ要求に応答することが可能である場合には、この競合リストがなくてよいことが考えられる。これは、別の競合ノード全てが更に進み、よって、残りのREADをホーム・ノードに進めることを可能にする。
1) 送出段階:要求を送出する
2) 収集段階:応答を収集する(READ又はCNCLを送出することが続く)
3) データ段階:データを待つ
4) 保持段階:競合チェーンの途上で、データをXFRまで保持し、IACK/SACKをバッファ要求及び着信要求に送出する
この実施例では、要求は、転送DATA上にピギーバックACKがない場合にチェーンの途上にあることが分かることになる。この保持段階のみがベース・プロトコルと異なる。実際に、ベース・プロトコルのデータ段階は(競合のない要求又はエポック/競合チェーンの終わりでの要求の場合)同じ状態にとどまるか、2つの段階に分割され、第1段階はなおデータ段階であり、第2段階はその場合、XFRが受信される場合に終了する保持段階である。
ピア・ノードによる要求受信
アルゴリズムに対する変更は、アクティブ状態にある要求がその保持段階にあるかを検査するというものである:
If address is being forwarded
[same as before]
Else if address is not active
[same as before]
Else if address is active
If active request is a PWL
[same as before]
If incoming request is in active request's conflict list
[same as before]
Else if active request is in "hold phase"
If incoming request is a PRL
Respond with SACK (or IACK if previous PRIL got an IACK)
Else -- incoming request is a PRIL
Mark active request as needing to invalidate
Respond with IACK
Else if active request is in "data phase"
[same as before]
Else
[same as before]
応答の収集
このアルゴリズムに対する変更は、要求が、CNCLを送出し、その競合リストが空き状態にある場合に完了するという点である。すなわち、システムはキャッシュ間転送を行っており、競合は存在しなかったということである。未処理事項はホーム・ノードに通知するということだけであり、このことは応答されなくてよい。
ホーム・ノードでの取り消し
呼び出し:
ホーム・ノードが(転送ノードと競合リストとを含む)CNCLを受信
アルゴリズム:
Cancel outstanding read (if any)
Mark requesting node as "current owner" for this address
Send DACK to forwarding node
If no conflicts
-- conflictless cached epoch is complete
Else
Incorporate conflict list as "outstanding requests" for this address
-- wait for READs to XFR data to
ホーム・ノードでの読み取り要求
呼び出し:
ホーム・ノードは(競合リストを含む)READを受信
アルゴリズム:
If no current owner
If data not available
Initiate read if necessary
Wait for read to complete
Send DATA_E to requesting node
If conlict list is empty
-- conflictless uncached epoch is complete
Else
Incorporate conflict list as "outstanding nodes" for this address
-- wait for READs to XFR data to
Else
Add outstanding conflicts to "outstanding nodes" for this address
Remove requesting node from "outstanding nodes"
If no (remaining) outstanding nodes
Send XFR+ACK (target: requesting node) to "current owner"
-- epoch is complete
Else
If one or more outstanding nodes (including requester) is a PRIL
Send XFRI (target: requesting node) to "current owner"
Else
Send XFR (target: requesting node) to "current owner"
Mark requesting node as "current owner"
転送受信
(XFRとACKとを処理することに加え、)ここでの変更は、保持段階中にIACK応答はPRILにスプーフィングされたかを判定するという点である。その場合には、ラインがスヌープを用いて無効化される。
呼び出し:
要求側がXFR、XFR及びACK、又は(標的ノードを含む)XFRIを受信する
アルゴリズム:
Wait for data if not yet received
If received XFRI or request is marked as needing to invalidate
Send PRIL snoop to cache
Else
Send PRL snoop to cache
-- End If
If received XFR+ACK
Send DATA+ACK packet to target node
Else
Send DATA packet to target node
転送データ受信
呼び出し:
DATA、又はDATA及びACKをXFRの結果、受信(要求者は、データ段階にあるので、XFRを介したものであることが分かっている)
アルゴリズム:
Send data to processor
If received DATA packet
Move request to hold phase
Foreach buffered request
If buffered request is a PRL
Respond with SACK (or IACK if previous PRIL got an IACK)
Else -- buffered request is a PRIL
Mark local request as needing to invalidate
Respond with IACK
Else -- received DATA+ACK
-- request is complete and epoch is complete
PRL DATA E/M応答
PRLは、キャッシュ・ラインのスヌープ・ヒットを行う場合、キャッシュがラインをS状態又はI状態に移行させるか否かにかかわらず、正確性を維持するようDATA_Fによって応答する必要がある。Iに移行する場合にDATA_Eを送出することをサポートすることが考えられるが、PRLは、それが受信したE状態をFに格下げすることを必要とするということをキャッシュに知らせるよう、キャッシュとの別の通信が必要である。基本的には、アルゴリズムは、ノードが既にDATA_Eを受信し、更にSACKを受信する場合、キャッシュ状態をEからFに変更しなければならないというものである。
Claims (26)
- 方法であって:
第1ピア・ノードから、マルチノード・システムにおける複数のノードに、データ・ブロックの複製の要求を送信する工程;
該第1ピア・ノードによって、データ・ブロックの複製の要求を第2ピア・ノードから受信する工程;
該受信要求が該送信要求と競合しているか否かを判定する工程;及び
該受信要求が該送信要求と競合している場合に、競合が存在しているということを示すメッセージを該データ・ブロックのホーム・ノードに送信する工程;
を備えることを特徴とする方法。 - 請求項1記載の方法であって、該受信要求が該送信要求と競合しているか否かを判定する工程が:
該受信要求と該送信要求が同じデータを要求しているか否かを判定する工程;
を備えることを特徴とする方法。 - 請求項1記載の方法であって、更に:
該受信要求が該送信要求と競合している場合に、競合が存在しているということを示すメッセージを該データ・ブロックの第2ピア・ノードに送信する工程;
を備えることを特徴とする方法。 - 請求項1記載の方法であって、
該ホーム・ノードへの該メッセージに応じて、該デ―タ・ブロックを該第2ピア・ノードに送信することを該第1ピア・ノードに行わせるメッセージを、該ホ―ム・ノードが該第1ピア・ノードに送信する工程:
を備えることを特徴とする方法。 - 装置であって:
複数ピア・エンティティとホーム・エンティティとを有するシステムにおける複数のシステム・エンティティと結合される対象のインタフェース;及び
該インタフェースと結合されて、データ・ブロックの複製の要求を該ピア・エンティティのうちの1つ又は複数に送信する制御回路;
を備え;
該制御回路は、別のピア・エンティティから受信される競合要求メッセージを検知する対象であり;
競合要求メッセージに応じて、該制御回路は、競合を示すメッセージを該データ・ブロックに相当するホーム・エンティティに送出することを特徴とする装置。 - 請求項5記載の装置であって、該ホーム・エンティティが:
ホーム・ノード;
を備えることを特徴とする装置。 - 請求項5記載の装置であって、更に:
該インタフェースと結合されるプロセッサ;
を備えることを特徴とする装置。 - 請求項7記載の装置であって、該制御回路が:
該プロセッサ内部に含まれることを特徴とする装置。 - 請求項5記載の装置であって、該制御回路が:
要求データの複製を要求側ピア・エンティティに、該要求が該制御回路によって行われる要求と競合しない場合に供給することを特徴とする装置。 - 方法であって:
第1ピア・ノードによって、第1要求メッセージを送信して、データ・ブロックの複製を、少なくとも、ピア・ノードと、該要求データ・ブロックに相当するホーム・ノードとに要求する工程;
第2ピア・ノードによって、第2要求メッセージを送信して、該データ・ブロックの複製を、少なくとも、該第1ピア・ノードと、該ホーム・ノードに要求し、かつ第3ピア・ノードに要求する工程;
該第3ピア・ノードから該第1ピア・ノードに、該データ・ブロックの複製を送信する工程;
該第1ピア・ノードから該ホーム・ノードに、該第3ピア・ノードからの該データ・ブロックの受信を示すメッセージを送信する工程;
該第1ピア・ノードから該第2ピア・ノードに、該データ・ブロックの複製を送信する工程;及び
該第2ピア・ノードから該ホーム・ノードに、該第1ピア・ノードからの該データ・ブロックの受信を示すメッセージを送信する工程;
を備えることを特徴とする方法。 - 請求項10記載の方法であって、該データ・ブロックが:
キャッシュ・ライン;
を備えることを特徴とする方法。 - 請求項10記載の方法であって、該第3ピア・ノードから該第1ピア・ノードに、該データ・ブロックの複製を送信する工程が:
該第3ピア・ノードによって確保される該データ・ブロックがある場合に、該データ・ブロックの状態を変える工程;
を備えることを特徴とする方法。 - 請求項10記載の方法であって、該第1ピア・ノードから該第2ピア・ノードに、該データ・ブロックの複製を送信する工程が:
該第1ピア・ノードによって確保される該データ・ブロックがある場合に、該データ・ブロックの状態を変える工程;
を備えることを特徴とする方法。 - 方法であって:
第1ピア・ノードからのデータ・ブロックの複製を要求する第1要求メッセージを、少なくとも、第2ピア・ノードと、第3ピア・ノードと、該データ・ブロックに相当するホーム・ノードとに送信する工程;及び
第2ピア・ノードから、該データ・ブロックの複製を要求する第2要求メッセージを、該第1ピア・ノード、該第3ピア・ノード及び該ホーム・ノードに送信する工程;
を備え;
該第2要求メッセージは該第2ピア・ノードが該第1要求メッセージを受信する前に送信され;
更に、該第1ピア・ノードから該第2ピア・ノードに、該第1要求メッセージと該第2要求メッセージとの間の競合を示すメッセージを送信する工程;
該第3ピア・ノードから該第1ピア・ノードに、該データ・ブロックの複製を送信する工程;
該第1ピア・ノードから該ホーム・ノードに、該第1要求メッセージと該第2要求メッセージとの間の競合を示すメッセージを送信する工程;及び
該ホーム・ノードから該第1ピア・ノードに、該データ・ブロックの複製を該第2ピア・ノードに送信することを該第1ピア・ノードに行わせるメッセージを送信する工程;
を備えることを特徴とする方法。 - 請求項14記載の方法であって、更に:
該第1ピア・ノードから該第2ピア・ノードに、該データ・ブロックの複製を送信する工程;
を備えることを特徴とする方法。 - 請求項15記載の方法であって、更に:
該第2ピア・ノードから該第1ピア・ノードに、該第2要求メッセージと該第1要求メッセージとの間の競合を示すメッセージを送信する工程;
を備えることを特徴とする方法。 - 請求項15記載の方法であって、該第1ピア・ノードから該第2ピア・ノードに、該データ・ブロックの複製を送信する工程が:
該第1ピア・ノードによって確保される該データ・ブロックがある場合に、該データ・ブロックの状態を変える工程;
を備えることを特徴とする方法。 - 請求項14記載の方法であって、該データ・ブロックが:
キャッシュ・ライン;
を備えることを特徴とする方法。 - 方法であって:
第1ピア・ノードからのデータ・ブロックの複製を要求する第1要求メッセージを、第2ピア・ノードと、第3ピア・ノードと、該データ・ブロックに相当するホーム・ノードとに送信する工程;
を備え;
該第3ピア・ノードへの該第1要求メッセージは遅延しており;
更に、第2ピア・ノードから、該第1ピア・ノード、該第3ピア・ノード及び該ホーム・ノードに、該データ・ブロックの複製を要求する第2要求メッセージを送信する工程;
を備え;
該第2要求メッセージは、該遅延第1要求メッセージが該第3ピア・ノードによって受信される前に該第2ピア・ノードによって送信され;
更に、該第1ピア・ノードから該第2ピア・ノードに、該第1要求メッセージと該第2要求メッセージとの間の競合を示すメッセージを送信する工程;
該第3ピア・ノードから該第2ピア・ノードに、該データ・ブロックの複製を送信する工程;
該第2ピア・ノードから該ホーム・ノードに、該第1要求メッセージと該第2要求メッセージとの間の競合を示すメッセージを送信する工程;及び
該ホーム・ノードから該第2ピア・ノードに、該データ・ブロックの複製を該第1ピア・ノードに送信することを該第2ピア・ノードに行わせるメッセージを送信する工程;
を備えることを特徴とする方法。 - 請求項19記載の方法であって、更に:
該第2ピア・ノードから該第1ピア・ノードに、該データ・ブロックの複製を送信する工程;
を備えることを特徴とする方法。 - 請求項19記載の方法であって、該データ・ブロックが:
キャッシュ・ライン;
を備えることを特徴とする方法。 - 請求項19記載の方法であって、該第3ピア・ノードから該第2ピア・ノードに、該データ・ブロックの複製を送信する工程が:
該第3ピア・ノードによって確保される該データ・ブロックがある場合に、該データ・ブロックの状態を変える工程;
を備えることを特徴とする方法。 - 方法であって:
データ・ブロックの複製を要求する第1要求メッセージを、第1ピア・ノードから、第2ピア・ノードとホーム・ノードとに送信する工程;
第2ピア・ノードから、該第1ピア・ノード及び該ホーム・ノードに、該データ・ブロックの複製の第2要求メッセージを送信する工程;
該第1ピア・ノードから該第2ピア・ノードに、該第1要求メッセージと該第2要求メッセージとの間の競合を示すメッセージを送信する工程;
該第2ピア・ノードから該第1ピア・ノードに、該第2ピア・ノードが該データ・ブロックの有効な複製を有しないということを示すメッセージを送信する工程;
該ホーム・ノードから該第2ピア・ノードに、該データ・ブロックの複製を送信する工程;及び
該ホーム・ノードから該第2ピア・ノードに、該データ・ブロックの複製を該第1ピア・ノードに送信することを該第2ピア・ノードに行わせるメッセージを送信する工程;
を備えることを特徴とする方法。 - 方法であって:
データ・ブロックの複製を要求する第1要求メッセージを、第1ピア・ノードから、第2ピア・ノードとホーム・ノードとに送信する工程;
第2ピア・ノードから、該第1ピア・ノード及び該ホーム・ノードに、該データ・ブロックの複製の第2要求メッセージを送信する工程;
該第1ピア・ノードから該第2ピア・ノードに、該第1要求メッセージと該第2要求メッセージとの間の競合を示すメッセージを送信する工程;
該第2ピア・ノードから該第1ピア・ノードに、該第1要求メッセージと該第2要求メッセージとの間の競合を示すメッセージを送信する工程;
該ホーム・ノードから該第1ピア・ノードに、該データ・ブロックの複製を送信する工程;及び
該ホーム・ノードから該第1ピア・ノードに、該データ・ブロックの複製を該第2ピア・ノードに送信することを該第1ピア・ノードに行わせるメッセージを送信する工程;
を備えることを特徴とする方法。 - 請求項23記載の方法であって、該データ・ブロックが:
キャッシュ・ライン;
を備えることを特徴とする方法。 - 請求項23記載の方法であって:
該データ・ブロックの複製と、該データ・ブロックの複製を該第1ピア・ノードに送信することを該第2ピア・ノードに行わせるメッセージとを、単一のメッセージとして送信することを、該ホーム・ノードが行うことを特徴とする方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/325,427 US7917646B2 (en) | 2002-12-19 | 2002-12-19 | Speculative distributed conflict resolution for a cache coherency protocol |
PCT/US2003/037782 WO2004061677A2 (en) | 2002-12-19 | 2003-11-26 | Speculative distributed conflict resolution for a cache coherency protocol |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006516058A JP2006516058A (ja) | 2006-06-15 |
JP4261487B2 true JP4261487B2 (ja) | 2009-04-30 |
Family
ID=32593763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004565115A Expired - Fee Related JP4261487B2 (ja) | 2002-12-19 | 2003-11-26 | キャッシュ・コヒーレンス・プロトコルに対する投機的分散競合解決 |
Country Status (7)
Country | Link |
---|---|
US (2) | US7917646B2 (ja) |
JP (1) | JP4261487B2 (ja) |
KR (1) | KR100841484B1 (ja) |
CN (1) | CN100468365C (ja) |
AU (1) | AU2003295949A1 (ja) |
DE (1) | DE10393919B4 (ja) |
WO (1) | WO2004061677A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007535037A (ja) * | 2004-04-27 | 2007-11-29 | インテル・コーポレーション | 効率的な2つのホップ・キャッシュ・コヒーレンシ・プロトコル |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8185602B2 (en) | 2002-11-05 | 2012-05-22 | Newisys, Inc. | Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters |
US7526672B2 (en) * | 2004-02-25 | 2009-04-28 | Microsoft Corporation | Mutual exclusion techniques in a dynamic peer-to-peer environment |
US20070073977A1 (en) * | 2005-09-29 | 2007-03-29 | Safranek Robert J | Early global observation point for a uniprocessor system |
US20070150664A1 (en) * | 2005-12-28 | 2007-06-28 | Chris Dombrowski | System and method for default data forwarding coherent caching agent |
US7721050B2 (en) * | 2006-06-30 | 2010-05-18 | Intel Corporation | Re-snoop for conflict resolution in a cache coherency protocol |
US7506108B2 (en) * | 2006-06-30 | 2009-03-17 | Intel Corporation | Requester-generated forward for late conflicts in a cache coherency protocol |
US7536515B2 (en) * | 2006-06-30 | 2009-05-19 | Intel Corporation | Repeated conflict acknowledgements in a cache coherency protocol |
US7836144B2 (en) * | 2006-12-29 | 2010-11-16 | Intel Corporation | System and method for a 3-hop cache coherency protocol |
US7500037B2 (en) * | 2007-01-30 | 2009-03-03 | International Business Machines Corporation | System, method and program for managing locks |
US7934059B2 (en) * | 2008-01-29 | 2011-04-26 | International Business Machines Corporation | Method, system and computer program product for preventing lockout and stalling conditions in a multi-node system with speculative memory fetching |
US8190820B2 (en) * | 2008-06-13 | 2012-05-29 | Intel Corporation | Optimizing concurrent accesses in a directory-based coherency protocol |
US8205045B2 (en) * | 2008-07-07 | 2012-06-19 | Intel Corporation | Satisfying memory ordering requirements between partial writes and non-snoop accesses |
US8250311B2 (en) | 2008-07-07 | 2012-08-21 | Intel Corporation | Satisfying memory ordering requirements between partial reads and non-snoop accesses |
JP4600700B2 (ja) * | 2009-03-17 | 2010-12-15 | 日本電気株式会社 | プログラムのメモリ空間への配置方法、装置、およびプログラム |
JP5408713B2 (ja) * | 2009-09-29 | 2014-02-05 | エヌイーシーコンピュータテクノ株式会社 | キャッシュメモリ制御システム及びキャッシュメモリの制御方法 |
US8244986B2 (en) * | 2009-12-30 | 2012-08-14 | Empire Technology Development, Llc | Data storage and access in multi-core processor architectures |
US8463960B2 (en) * | 2011-08-08 | 2013-06-11 | Arm Limited | Synchronisation of data processing systems |
US10204049B2 (en) | 2012-01-06 | 2019-02-12 | Intel Corporation | Value of forward state by increasing local caching agent forwarding |
US10268583B2 (en) * | 2012-10-22 | 2019-04-23 | Intel Corporation | High performance interconnect coherence protocol resolving conflict based on home transaction identifier different from requester transaction identifier |
US9906597B2 (en) * | 2015-04-07 | 2018-02-27 | Microsoft Technology Licensing, Llc | Collaboration data proxy system in cloud computing platforms |
US10484249B1 (en) | 2015-09-18 | 2019-11-19 | Amazon Technologies, Inc. | Dynamic distribution of simulation load |
US10298679B1 (en) | 2015-09-18 | 2019-05-21 | Amazon Technologies, Inc. | Object ownership migration |
US10104173B1 (en) | 2015-09-18 | 2018-10-16 | Amazon Technologies, Inc. | Object subscription rule propagation |
US10506031B1 (en) | 2015-09-18 | 2019-12-10 | Amazon Technologies, Inc. | Scalable network for processing virtual environments |
US10911535B1 (en) * | 2015-09-18 | 2021-02-02 | Amazon Technologies, Inc. | Object ownership migration |
US10230583B1 (en) | 2015-09-18 | 2019-03-12 | Amazon Technologies, Inc. | Multi-node object simulation |
US10230809B2 (en) * | 2016-02-29 | 2019-03-12 | Intel Corporation | Managing replica caching in a distributed storage system |
US10802971B2 (en) | 2016-10-13 | 2020-10-13 | International Business Machines Corporation | Cache memory transaction shielding via prefetch suppression |
US10585800B2 (en) * | 2017-06-16 | 2020-03-10 | International Business Machines Corporation | Reducing cache transfer overhead in a system |
CN109840216B (zh) * | 2017-11-28 | 2023-05-09 | 华为技术有限公司 | 针对高速缓存的数据处理方法及相关元件、设备、系统 |
CN110083548B (zh) * | 2018-01-26 | 2023-01-13 | 华为技术有限公司 | 数据处理方法及相关网元、设备、系统 |
US11229038B2 (en) * | 2018-08-09 | 2022-01-18 | Qualcomm Incorporated | Multi-link network coordination |
Family Cites Families (65)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6026A (en) * | 1849-01-09 | Cast-iron car-wheel | ||
US5297269A (en) * | 1990-04-26 | 1994-03-22 | Digital Equipment Company | Cache coherency protocol for multi processor computer system |
JP2952128B2 (ja) * | 1992-01-27 | 1999-09-20 | キヤノン株式会社 | インクジェット捺染用布帛、インクジェット捺染方法及び捺染物 |
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 |
JPH07168763A (ja) * | 1992-11-13 | 1995-07-04 | Cyrix Corp | ライトスルーキャシュ設計のシステムでのライトバックキャシュのコヒーレンシ |
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 |
US6067611A (en) * | 1998-06-30 | 2000-05-23 | International Business Machines Corporation | Non-uniform memory access (NUMA) data processing system that buffers potential third node transactions to decrease communication latency |
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 |
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 |
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 |
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 |
US6457100B1 (en) * | 1999-09-15 | 2002-09-24 | International Business Machines Corporation | Scaleable shared-memory multi-processor computer system having repetitive chip structure with efficient busing and coherence controls |
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 |
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 |
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 |
US6615319B2 (en) * | 2000-12-29 | 2003-09-02 | Intel Corporation | Distributed mechanism for resolving cache coherence conflicts in a multi-node computer architecture |
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 |
WO2003075162A1 (en) * | 2002-02-28 | 2003-09-12 | Silicon Graphics, Inc. | Method and system for cache coherence in dsm multiprocessor system without growth of the sharing vector |
US6944719B2 (en) * | 2002-05-15 | 2005-09-13 | Broadcom Corp. | Scalable cache coherent distributed shared memory processing system |
US7269709B2 (en) * | 2002-05-15 | 2007-09-11 | Broadcom Corporation | Memory controller configurable to allow bandwidth/latency tradeoff |
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 |
JP3944449B2 (ja) * | 2002-12-19 | 2007-07-11 | 株式会社日立製作所 | 計算機システム、磁気ディスク装置、および、ディスクキャッシュ制御方法 |
US7130969B2 (en) * | 2002-12-19 | 2006-10-31 | Intel Corporation | Hierarchical directories for cache coherency in a multiprocessor system |
US7111128B2 (en) * | 2002-12-19 | 2006-09-19 | Intel Corporation | Hierarchical virtual model of a cache hierarchy in a multiprocessor system |
US6954829B2 (en) | 2002-12-19 | 2005-10-11 | Intel Corporation | Non-speculative distributed conflict resolution for a cache coherency protocol |
US7818391B2 (en) * | 2004-01-20 | 2010-10-19 | Hewlett-Packard Development Company, L.P. | System and method to facilitate ordering point migration |
US8145847B2 (en) * | 2004-01-20 | 2012-03-27 | Hewlett-Packard Development Company, L.P. | Cache coherency protocol with ordering points |
US7533134B2 (en) | 2004-04-01 | 2009-05-12 | Microsoft Corporation | Systems and methods for the propagation of conflict resolution to enforce item convergence (i.e., data convergence) |
-
2002
- 2002-12-19 US US10/325,427 patent/US7917646B2/en not_active Expired - Fee Related
-
2003
- 2003-11-26 JP JP2004565115A patent/JP4261487B2/ja not_active Expired - Fee Related
- 2003-11-26 KR KR1020057011395A patent/KR100841484B1/ko active IP Right Grant
- 2003-11-26 WO PCT/US2003/037782 patent/WO2004061677A2/en active Application Filing
- 2003-11-26 DE DE10393919.9T patent/DE10393919B4/de not_active Expired - Fee Related
- 2003-11-26 AU AU2003295949A patent/AU2003295949A1/en not_active Abandoned
- 2003-11-26 CN CNB2003801065501A patent/CN100468365C/zh not_active Expired - Fee Related
-
2011
- 2011-03-14 US US13/047,496 patent/US8171095B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007535037A (ja) * | 2004-04-27 | 2007-11-29 | インテル・コーポレーション | 効率的な2つのホップ・キャッシュ・コヒーレンシ・プロトコル |
Also Published As
Publication number | Publication date |
---|---|
US20040122966A1 (en) | 2004-06-24 |
KR100841484B1 (ko) | 2008-06-25 |
WO2004061677A2 (en) | 2004-07-22 |
CN100468365C (zh) | 2009-03-11 |
AU2003295949A1 (en) | 2004-07-29 |
CN1849592A (zh) | 2006-10-18 |
WO2004061677A3 (en) | 2006-02-16 |
DE10393919T5 (de) | 2006-01-12 |
US20110161451A1 (en) | 2011-06-30 |
US8171095B2 (en) | 2012-05-01 |
JP2006516058A (ja) | 2006-06-15 |
US7917646B2 (en) | 2011-03-29 |
DE10393919B4 (de) | 2019-10-10 |
AU2003295949A8 (en) | 2004-07-29 |
KR20050086922A (ko) | 2005-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4261487B2 (ja) | キャッシュ・コヒーレンス・プロトコルに対する投機的分散競合解決 | |
US7434006B2 (en) | Non-speculative distributed conflict resolution for a cache coherency protocol | |
US6922756B2 (en) | Forward state for use in cache coherency in a multiprocessor system | |
US10019366B2 (en) | Satisfying memory ordering requirements between partial reads and non-snoop accesses | |
US8205045B2 (en) | Satisfying memory ordering requirements between partial writes and non-snoop accesses | |
JP3661761B2 (ja) | 共用介入サポートを有する不均等メモリ・アクセス(numa)データ処理システム | |
JP3644587B2 (ja) | 共用介入サポートを有する不均等メモリ・アクセス(numa)・データ処理システム | |
KR100880059B1 (ko) | 효율적인 이홉(two-hop) 캐시 일관성 프로토콜 | |
US7506108B2 (en) | Requester-generated forward for late conflicts in a cache coherency protocol | |
US20050262250A1 (en) | Messaging protocol |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080604 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080617 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080912 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081014 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090107 |
|
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: 20090127 |
|
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: 20090205 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120220 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120220 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130220 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130220 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140220 Year of fee payment: 5 |
|
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 |