JP2007183702A - キャッシュ一貫性制御方法およびチップセットおよびマルチプロセッサシステム - Google Patents
キャッシュ一貫性制御方法およびチップセットおよびマルチプロセッサシステム Download PDFInfo
- Publication number
- JP2007183702A JP2007183702A JP2006000028A JP2006000028A JP2007183702A JP 2007183702 A JP2007183702 A JP 2007183702A JP 2006000028 A JP2006000028 A JP 2006000028A JP 2006000028 A JP2006000028 A JP 2006000028A JP 2007183702 A JP2007183702 A JP 2007183702A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- node
- processor
- snoop
- copy tag
- 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
Links
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
- 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/0822—Copy directories
-
- 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/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
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)
Abstract
【解決手段】スヌープとキャッシュコピータグの情報を使ってメモリアクセスレイテンシの短縮を図る。自ノードのキャッシュコピータグの情報を使って可能な場合にはスヌープ結果の集計処理を省略することでメモリアクセスレイテンシの短縮を図る。また、キャッシュリプレース時のキャッシュコピータグの更新にメモリの位置情報を利用することで、自ノードから再アクセスされた場合にコピータグにヒットする確率を上げる。
【選択図】 図1
Description
(1) ローカルスヌープ<ローカルメモリデータ<リモートスヌープ<リモートメモリデータ
(2) ローカルスヌープ<リモートスヌープ<ローカルメモリデータ<リモートメモリデータ
ローカルメモリデータとリモートスヌープのどちらが速いかは、ノード間接続やメモリのつくりによって変わってくる。
図1は本発明の実施例1であるキャッシュ一貫性制御機能を備えたノードコントローラによって構成されたマルチプロセッサシステムを示す概略図である。
ノードコントローラ200はプロセッサバス120を介して1つ以上のプロセッサ100が接続される。プロセッサ100はキャッシュ110を備える。また、ここではプロセッサとしたが、それぞれのプロセッサは1つのプロセッサ内に2つ以上のプロセッサコアを含むマルチコア構成であっても良い。以下の説明はプロセッサをプロセッサコアと読み替えても差異を生じない。
〔キャッシュミス要求発生時の動作〕
図1を主に参照して実施例1のキャッシュミス要求発生時の動作を説明する。
まず要求元ノードの動作を説明する。プロセッサ100a0がキャッシュ110a0にないラインに対してアクセスするとキャッシュミス要求500がプロセッサバス120aを介して発行される。トランザクション発行部220はキャッシュミス要求500を受け、発行元識別子720等をトランザクション登録通知550としてデータ応答制御部240に通知する。トランザクション発行部220はトランザクションに含まれるアドレス700から宛先メモリのノードを特定し、そのノードのメモリユニット300を対象にメモリリード要求をトランザクション発行パス560aを介して発行する。
トランザクション受信パス570を通じてスヌープ要求を受け取ったトランザクション受信部230では、キャッシュコピータグ管理部215に対してキャッシュコピータグ210の探索を要求する。キャッシュコピータグ管理部215では、スヌープ要求の該当するアドレスがキャッシュコピータグ210に登録されていない場合、あるいは登録されていて、キャッシュ状態211がI(無効)の場合、あるいは登録されていて、キャッシュ状態211がS(共有)でかつスヌープ要求がリードだった場合、ヒットしなかったと応答する。キャッシュ状態211がE(占有)の場合、あるいはキャッシュ状態211がS(共有)でかつスヌープ要求がリードインバリデートだった場合、ヒットしたと応答する。
以上でキャッシュミス要求時の動作が完了する。
ステップ1240はキャッシュ状態をE(占有)に更新するステップである。これが完了するとステップ1260へ進む。一方、ステップ1250はキャッシュ状態をS(共有)に更新するステップであり、これが完了するとステップ1260へ進む。ステップ1260では、もしキャッシュコピータグのエントリにリプレースフラグがある場合に、これをクリアする。リプレースフラグがない場合には何もしない。以上で自ノードコピータグ更新は完了する。
〔キャッシュリプレース処理の動作〕
次に実施例1のキャッシュリプレース処理の動作を説明する。
プロセッサ100a0のキャッシュ110a0にラインが入りきらなくなった場合、古いラインが追い出される。これがキャッシュリプレースである。キャッシュリプレースはプロセッサバス120aを介してノードコントローラ200aのトランザクション発行部220にキャッシュリプレース通知510として通知される。キャッシュリプレース通知510には図8に示す2種類の通知がある。このうち、ライトバックだった場合、ライトバックに伴う最新のデータが続けてプロセッサバス120aから発行される。トランザクション発行部220は、キャッシュコピータグ管理部215にキャッシュリプレースの通知を行う。キャッシュコピータグ管理部215では、キャッシュコピータグ210中の該当するエントリのキャッシュ状態をI(無効)へと更新する。キャッシュリプレース通知がライトバックだった場合、トランザクション発行部220は、アドレスに対応するノードを特定し、そのノードのメモリユニット300を対象としたメモリライト要求を発行する。以上でキャッシュリプレース処理が完了する。
〔実施例1の変形例1〕
変形例1のキャッシュミス要求時の動作は実施例1と同じである。一方、変形例1ではキャッシュリプレース処理の動作が上記の実施例1とやや異なる。すなわち、キャッシュコピータグ管理部215では、トランザクション発行部220からキャッシュリプレースの通知を受けた時、同時にキャッシュリプレース対象のアドレスのメモリのあるノードを通知してもらう。もし対象アドレスが他ノードである場合、上記の実施例1と同じようにキャッシュコピータグの更新を行う。一方、対象アドレスが自ノードである場合、キャッシュコピータグの更新は行わない。以上が実施例1の変形例1である。
〔実施例1の変形例2〕
変形例2の構成の大部分は上記実施例1と共通であり、つまり図1で示されるとおりである。ただし変形例2では、ノードコントローラ200の設定用スイッチ250が図12に示すようにキャッシュリプレース制御スイッチ270を含む。キャッシュリプレース制御スイッチ270を含む。キャッシュリプレース制御スイッチ270はリプレース有効かリプレース無効かのどちらかの状態を取る。
〔実施例1の変形例3〕
変形例3の構成も実施例1とほぼ同様であり、図1に示される。ただし、変形例3におけるキャッシュコピータグ210は、図13に示すようにキャッシュ状態211、アドレスタグ212に加え、リプレースフラグ213を持つ。キャッシュミス要求の最後に自ノードコピータグを更新する時、リプレースフラグ213はクリアされる。
〔実施例3の変形例〕
先に述べた実施例1の変形例3と同様に、実施例3もリプレースフラグ213(図13)を持つようにキャッシュコピータグ210を変形することができる。この変形を採用した場合、キャッシュリプレース処理の基本フローが図18に代えて図21になるのは実施例1の変形例3と同様である。さらに他ノードコピータグ検索(図22のステップ1400)の詳細フローは図25に示すとおりとなる。
以上の一連の動作により、リプレースフラグがセットされたエントリは、自ノードコピータグ探索に対してはヒットし、他ノードコピータグ探索に対してはヒットしないように振舞う。これにより、他ノードからキャッシュを要求された場合に余計なスヌープ要求をプロセッサバスへと上げずに、自ノードからリプレースされたキャッシュラインに対して再びキャッシュミスが起きた場合のレイテンシを短縮する効果があるのも実施例1の変形例3と同様である
110 キャッシュ
120 プロセッサバス
200 ノードコントローラ
210 キャッシュコピータグ
211 キャッシュ状態
212 アドレスタグ
213 リプレースフラグ
215 キャッシュコピータグ管理部
220 トランザクション発行部
230 トランザクション受信部
240 データ応答制御部
250 設定用スイッチ
260 スヌープフィルタスイッチ
270 キャッシュリプレース制御スイッチ
280 キャッシュヒット制御スイッチ
300 メモリユニット
400 システム結合網
500 キャッシュミス要求
505 トランザクション
510 キャッシュリプレース通知
515 ライトバックデータ
520 スヌープ要求
530 スヌープ応答
540 データ応答
550 トランザクション登録通知
560 トランザクション発行パス
570 トランザクション受信パス
580 メモリ要求パス
590 メモリ応答パス
600 スヌープ集計結果
610 メモリデータ応答
620 先行応答通知
630 スヌープ結果
700 アドレス
701 アドレスタグ
702 インデックス
703 オフセット
710 トランザクション種別
720 発行元識別子
1000 メモリリードを発行するステップ
1010 自ノードスヌープ結果がHITMかどうかを判定するステップ
1020 バス上でキャッシュ間転送するステップ
1030 全ノードへスヌープ要求をブロードキャストするステップ
1040 スヌープ結果が全てのノードから返るまで待つステップ
1050 スヌープ集計結果がHITMかどうかを判定するステップ
1060 メモリからデータが返るまで待つステップ
1070 キャッシュ間転送データが返るまで待つステップ
1080 データ応答をプロセッサに返すステップ
1090 自ノードコピータグ更新を行うステップ
1100 自ノードコピータグ探索を行うステップ
1110 自ノードタグヒットしたかどうかを判定するステップ
1120 自ノードのコピータグを検索するステップ
1130 要求キャッシュラインがコピータグ中にあるかどうかを判定するステップ
1140 キャッシュ状態がEであるかどうか判定するステップ
1150 キャッシュ状態がSでかつ要求がリード要求かどうかを判定するステップ
1160 エントリを確保し、キャッシュ状態はIに初期化するステップ
1170 自ノードコピータグにヒットしなかった、と応答するステップ
1180 自ノードコピータグにヒットした、と応答するステップ
1200 キャッシュミス要求はリード要求かどうかを判定するステップ
1210 スヌープ集計結果がHITMかどうかを判定するステップ
1220 スヌープ集計結果がHITかどうかを判定するステップ
1240 キャッシュ状態をEに更新するステップ
1250 キャッシュ状態をSに更新するステップ
1260 リプレースフラグをクリアするステップ
1300 キャッシュコピータグの対応するエントリのキャッシュ状態をIに変更するステップ
1310 データが変更されていればメモリへとデータの書き戻しを行うステップ
1320 アドレスの宛先メモリが自ノードであるかどうかを判定するステップ
1330 キャッシュリプレース制御スイッチがリプレース有効になっているかどうかを判定するステップ
1340 キャッシュコピータグの対応するエントリのリプレースフラグをセットするステップ
1400 他ノードコピータグ探索を行うステップ
1410 他ノードコピータグにヒットしたかどうかを判定するステップ
1420 スヌープ要求をプロセッサバスへ発行するステップ
1430 スヌープの結果最新データがキャッシュされていたかどうかを判定するステップ
1440 キャッシュ間転送により最新データを応答するステップ
1445 他ノードコピータグ更新を行うステップ
1450 スヌープ結果を応答するステップ
1460 スヌープ応答がHITMかどうかを判定するステップ
1465 スヌープ応答がHITかどうかを判定するステップ
1470 キャッシュ状態をSに更新するステップ
1480 キャッシュ状態をIに更新するステップ
1490 スヌープフィルタスイッチが有効かどうかを判定するステップ
1500 他ノードのコピータグを検索するステップ
1510 要求キャッシュラインがコピータグ中にあるかどうかを判定するステップ
1520 要求はリードかどうかを判定するステップ
1530 キャッシュ状態はEかどうかを判定するステップ
1540 キャッシュ状態はSまたはEかどうかを判定するステップ
1550 キャッシュ状態をSに変更するステップ
1560 キャッシュ状態をIに変更するステップ
1570 他ノードコピータグにヒットしなかったと応答するステップ
1580 他ノードコピータグにヒットしたと応答するステップ
1590 リプレースフラグがセットされているかどうかを判定するステップ
1600 キャッシュ状態をIに変更し、リプレースフラグをクリアするステップ。
Claims (17)
各メモリユニットは、それぞれ該複数のノードのプロセッサ間で共有される主記憶の一部分を構成する複数の主記憶部分の一つを有し、
該プロセッサは該メモリユニットから取ってきたデータを保持するキャッシュを有し、
該ノードコントローラには該プロセッサの該キャッシュに保持されたデータのアドレスタグとキャッシュ状態を保持するキャッシュコピータグと該キャッシュコピータグを管理するキャッシュコピータグ管理部を有するマルチプロセッサシステムのキャッシュ一貫性制御方法であって、
該プロセッサからのキャッシュミスの要求に従ってメモリユニットへのアクセスを行う時に該要求元のノードコントローラは他のノードコントローラに対してスヌープ要求を該システム結合網を介してブロードキャストし、
同時に該要求元ノードの該キャッシュコピータグを検索し、
該アドレスが自ノードのキャッシュコピータグに登録されていた時に、該キャッシュコピータグ管理部は先行応答通知を発行し、
ブロードキャストした該スヌープ要求に対するスヌープ結果の集計を待たずに該メモリユニットから返ってきた応答データを該プロセッサへと返すことを特徴とするマルチプロセッサシステムのキャッシュ一貫性制御方法。
該プロセッサからのキャッシュミス要求が共有状態を許す要求だった時、該要求元ノードの該キャッシュコピータグを検索した結果、当該アドレスのキャッシュ状態がSまたはEであった場合、あるいは該プロセッサからのキャッシュミス要求が占有状態のみを許す要求だった時、該要求元ノードの該キャッシュコピータグを検索した結果、当該アドレスのキャッシュ状態がEであった場合に、該キャッシュコピータグにヒットしたとして、ブロードキャストした該スヌープ要求に対するスヌープ結果の集計を待たずに該メモリユニットから返ってきた応答データを該プロセッサへと返すことを特徴とする請求項1に記載のマルチプロセッサシステムのキャッシュ一貫性制御方法。
該データを保持するメモリユニットがどのノードに属するかを識別する手段を有し、
該メモリユニットが該キャッシュから追い出されたノードに属さない場合には、該キャッシュコピータグの該当するエントリのキャッシュ状態をIへと変更し、
該メモリユニットが該キャッシュから追い出されたノードに属する場合には、該キャッシュコピータグの該当するエントリのキャッシュ状態を変更しないことを特徴とする、請求項2に記載のマルチプロセッサシステムのキャッシュ一貫性制御方法。
該プロセッサの該キャッシュからデータが追い出された場合に、該キャッシュコピータグの該当するエントリのキャッシュ状態を変更するかどうかを、該キャッシュリプレース制御スイッチの状態によって切り替えることを特徴とする、請求項2に記載のマルチプロセッサシステムのキャッシュ一貫性制御方法。
該プロセッサのキャッシュミスの要求に従ってデータをプロセッサがキャッシュした場合には、
該エントリのリプレースフラグはクリアされ、
該プロセッサの該キャッシュからデータが追い出された場合に、該キャッシュコピータグ内の該データに対応するエントリの該リプレースフラグをセットし、
他ノードからのスヌープ要求に従って該キャッシュコピータグを検索する場合に、該リプレースフラグがセットされていた場合には、キャッシュ状態によらずIであると応答し、
自ノードのキャッシュミス要求に従って該キャッシュコピータグを検索する場合には、該リプレースフラグがセットされていても該キャッシュ状態を応答することを特徴とする、請求項2に記載のマルチプロセッサシステムのキャッシュ一貫性制御方法。
各ノードは該1つ以上のプロセッサバスと1つ以上のメモリユニットと1つのノードコントローラから構成されており、
各メモリユニットは、それぞれ該複数のプロセッサにより共有される主記憶の一部分を構成する複数の主記憶部分の一つを有し、
該プロセッサは該メモリユニットから取ってきたデータを保持するキャッシュを有し、
該ノードコントローラには該プロセッサの該キャッシュに保持されたデータのアドレスタグとキャッシュ状態を保持するキャッシュコピータグと該キャッシュコピータグを管理するキャッシュコピータグ管理部を有し、
該プロセッサからのキャッシュミスの要求に従ってメモリユニットへのアクセスを行う時に該要求元のノードコントローラは他のノードコントローラに対してスヌープ要求を該システム結合網を介してブロードキャストし、
同時に該要求元ノードの該キャッシュコピータグを検索し、該アドレスが自ノードのキャッシュコピータグに登録されていた場合に、
該キャッシュコピータグ管理部は先行応答通知を発行し、ブロードキャストした該スヌープ要求に対するスヌープ結果の集計を待たずに該メモリユニットから返ってきた応答データを該プロセッサへと返すことを特徴とするノードコントローラ。
前記プロセッサからのキャッシュミス要求が共有状態を許す要求だった時、要求元ノードのキャッシュコピータグを検索した結果、当該アドレスのキャッシュ状態がSまたはEであった場合、あるいはプロセッサからのキャッシュミス要求が占有状態のみをゆする要求だった時、要求元ノードの該キャッシュコピータグを検索した結果、当該アドレスのキャッシュ状態がEであった場合に、該キャッシュコピータグにヒットしたとして、ブロードキャストした前記スヌープ要求に対するスヌープ結果の集計を待たずに前記メモリユニットから返ってきた応答データを該プロセッサへと返すことを特徴とする請求項6に記載のノードコントローラ。
前記メモリユニットが前記キャッシュから追い出されたノードに属さない場合には、前記キャッシュコピータグの該当するエントリのキャッシュ状態をIへと変更し、前記メモリユニットが前記キャッシュから追い出されたノードに属する場合には、前記キャッシュコピータグの該当するエントリのキャッシュ状態を変更しないことを特徴とする請求項7に記載のノードコントローラ。
前記プロセッサのキャッシュからデータが追い出された場合に、前期キャッシュコピータグの該当するエントリのキャッシュ状態を変更するかどうかを、前記キャッシュリプレース制御スイッチの状態によって切り替えることを特徴とする請求項7に記載のノードコントローラ。
前記プロセッサのキャッシュミスの要求に従ってデータをプロセッサがキャッシュした場合には、該当するエントリの前記リプレースフラグはクリアされ、
前記プロセッサの該キャッシュからデータが追い出された場合に、該キャッシュコピータグ内の該データに対応するエントリの前記リプレースフラグをセットし、
他ノードからのスヌープ要求に従って前記キャッシュコピータグを検索する場合に、前記リプレースフラグがセットされていた場合には、キャッシュ状態によらずIであると応答し、
自ノードのキャッシュミス要求に従って前記キャッシュコピータグを検索する場合には、前記リプレースフラグがセットされていても前記キャッシュ状態を応答することを特徴とする請求項7に記載のノードコントローラ。
各メモリユニットは、それぞれ該複数のノードのプロセッサにより共有される主記憶の一部分を構成する複数の主記憶部分の一つを有し、
該プロセッサから発行される該メモリユニットへのアクセス命令には、プロセッサのキャッシュ上で他のプロセッサキャッシュとのデータの共有が可能なリード命令と、他のプロセッサのキャッシュとの共有が不可能なリードインバリデート命令の少なくとも2種類の命令を含み、
各ノードコントローラは1つ以上の設定用スイッチを有し、該設定用スイッチは該ノードに含まれる該プロセッサに対するスヌープ動作をコントロールするスヌープフィルタスイッチを有し、
該スヌープフィルタスイッチは、有効な場合には他ノード発のスヌープトランザクションに対して該ノード上のプロセッサに対するスヌープが必要ない場合にはスヌープを該プロセッサバス上に発行せず、無効な場合には必ずスヌープをプロセッサバス上に発行する効果を持つマルチプロセッサシステムであって、
第一のノードは少なくとも二つのプロセッサを有し、第二のノードのスヌープフィルタスイッチのみをスヌープフィルタ無効と設定した上で、
前記第一のノードの該メモリユニットに対応するアドレスに対して、前記第一のノードに属する第一のプロセッサからリード命令を発行し、前期第二のノードの該プロセッサバス上に対応するアドレスのスヌープトランザクションが発行され、その後前記第一のノードの該プロセッサバス上に要求したリードに対するデータが応答された後に、続けて第一のノードに属する第二のプロセッサから同一のアドレスに対してリード命令を発行した場合に、
前記第一のプロセッサが発行したリード命令にかかった時間よりも早く前記第二のプロセッサが発行したリードに対するデータが前記第一のノードの該プロセッサバス上に応答されることを特徴とし、
さらに一方、前記第二のノードの該メモリユニットに対応するアドレスに対して、前記第一のノードに属する前記第一のプロセッサからリード命令を発行し、前記第二のノードの該プロセッサバス上に対応するアドレスのスヌープトランザクションが発行され、その後第一のノードの該プロセッサバス上に要求したリードに対するデータが応答された後に、続けて前記第一のノードに属する第二のプロセッサから同一のアドレスに対してリード命令を発行した場合に、
前記第一のプロセッサが発行したリード命令にかかった時間と同一の時間で、前記第二のプロセッサが発行したリードに対するデータが第一のノードの該プロセッサバス上に応答されることを特徴とするマルチプロセッサシステム。
続けて第二のノードに属する一つのプロセッサから、該リードインバリデート命令と同一のアドレスに対してリード命令を発行し、第二のノードの該プロセッサバス上に要求したリードに対するデータが応答された後に、
さらに続けて第一のノードに属する第二のプロセッサから、第一のプロセッサが発行したのと同一のアドレスに対してリードインバリデート要求を発行した場合に、
第一のプロセッサが発行したリードインバリデートにかかった時間と同一の時間で、第二のプロセッサが発行したリードインバリデートに対するデータが第一のノードの該プロセッサバス上に応答されることを特徴とする請求項11に記載のマルチプロセッサシステム。
第一のノードと第二のノードがあった時に、第一のノードは少なくとも二つのプロセッサを有し、第二のノードのスヌープフィルタスイッチのみをスヌープフィルタ無効と設定し、
第一のノードの該メモリユニットに対応するアドレスに対して、第一のノードに属する第一のプロセッサからリード命令を発行し、第二のノードの該プロセッサバス上に対応するアドレスのスヌープトランザクションが発行され、その後第一のノードの該プロセッサバス上に要求したリードに対するデータが応答された後に、
続けて第一のノードに属する第二のプロセッサから同一のアドレスに対してリード命令を発行した場合に、
該キャッシュヒット制御スイッチが有効な時には、第一のプロセッサが発行したリード命令にかかった時間よりも早く第二のプロセッサが発行したリードに対するデータが第一のノードの該プロセッサバス上に応答され、
該キャッシュヒット制御スイッチが無効な時には、第一のプロセッサが発行したリード命令にかかった時間と同一の時間で第二のプロセッサが発行したリードに対するデータが第一のノードの該プロセッサバス上に応答されることを特徴とする請求項11に記載のマルチプロセッサシステム。
各ノードコントローラは、自ノードに属するプロセッサがキャッシュしている全てのアドレスのアドレスタグとキャッシュ状態を保持するキャッシュコピータグを有し、
キャッシュミスによりプロセッサバスへとメモリアクセス要求が発行された際に、自ノードのスヌープ結果キャッシュ間転送があったかどうかを判定するステップと、
キャッシュ間転送がなかった場合に該当アドレスに対するメモリリード要求をメモリに発行し、スヌープ要求を各ノードへブロードキャストするステップと、
自ノードの該キャッシュコピータグを検索し、当該アドレスに対応するエントリがあるかどうかを判定するステップと、
エントリが存在した場合にはキャッシュ状態が占有状態を示すかどうかを判定するステップと、
キャッシュ状態が占有状態ではなかった場合には共有状態を示していてかつ要求されたキャッシュミスが共有状態を許すかどうかを判定するステップと、
当該エントリが存在していた場合には各ノードからのスヌープ結果を待つステップをスキップしてメモリからデータが返るのを待つステップと、
各ノードからのスヌープ結果を待つステップと、
各ノードからのスヌープ結果により最新データがメモリにあるかどうかを判定するステップと、
最新データがメモリにある場合にメモリからデータが返るのを待つステップと、
最新データがメモリにない場合にはキャッシュ間転送のデータが返るのを待つステップと、
返ってきたデータをプロセッサに返すステップを含むことを特徴とするキャッシュ一貫性制御方法。
前記キャッシュからのリプレース時に、前記キャッシュリプレース制御スイッチが有効だった場合に、前記キャッシュコピータグの対応するエントリのキャッシュ状態を無効へと変更するステップを含むことを特徴とする請求項14に記載のキャッシュ一貫性制御方法。
前記メモリ位置が他ノードだった場合に、前記キャッシュコピータグの対応するエントリのキャッシュ状態を無効へと変更するステップを含むことを特徴とする請求項14に記載のキャッシュ一貫性制御方法。
キャッシュコピータグにエントリを確保する時に該リプレースフラグをクリアするステップと、
前記キャッシュからのリプレース時に、前記キャッシュコピータグの対応するエントリのリプレースフラグをセットするステップと、
他ノードからキャッシュコピータグ探索の要求が来た時に、要求キャッシュラインが前記キャッシュコピータグ中にあるかどうかを判定するステップと、
要求キャッシュラインが前記キャッシュコピータグ中にあった場合に、前記リプレースフラグがセットされているかどうかを判定するステップと、
前記リプレースフラグがセットされていた場合にはキャッシュ状態を無効に変更し、前記リプレースフラグをクリアし、かつ探索にはヒットしなかったと応答するステップと、
前記リプレースフラグがセットされていない場合には、探索にヒットしたと応答するステップを含むことを特徴とする請求項14に記載のキャッシュ一貫性制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006000028A JP4848771B2 (ja) | 2006-01-04 | 2006-01-04 | キャッシュ一貫性制御方法およびチップセットおよびマルチプロセッサシステム |
US11/513,378 US7613885B2 (en) | 2006-01-04 | 2006-08-31 | Cache coherency control method, chipset, and multi-processor system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006000028A JP4848771B2 (ja) | 2006-01-04 | 2006-01-04 | キャッシュ一貫性制御方法およびチップセットおよびマルチプロセッサシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007183702A true JP2007183702A (ja) | 2007-07-19 |
JP4848771B2 JP4848771B2 (ja) | 2011-12-28 |
Family
ID=38226029
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006000028A Expired - Fee Related JP4848771B2 (ja) | 2006-01-04 | 2006-01-04 | キャッシュ一貫性制御方法およびチップセットおよびマルチプロセッサシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US7613885B2 (ja) |
JP (1) | JP4848771B2 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008046890A (ja) * | 2006-08-17 | 2008-02-28 | Fujitsu Ltd | マルチプロセッサシステム |
JP2008123333A (ja) * | 2006-11-14 | 2008-05-29 | Renesas Technology Corp | 半導体集積回路装置 |
US8464004B2 (en) | 2008-03-18 | 2013-06-11 | Fujitsu Limited | Information processing apparatus, memory control method, and memory control device utilizing local and global snoop control units to maintain cache coherency |
JP2013205985A (ja) * | 2012-03-27 | 2013-10-07 | Fujitsu Ltd | 情報処理装置及び情報処理装置の制御方法 |
WO2017023252A1 (en) * | 2015-07-31 | 2017-02-09 | Hewlett Packard Enterprise Development Lp | Using a directory-based cache coherence system to regulate snooping |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7797495B1 (en) * | 2005-08-04 | 2010-09-14 | Advanced Micro Devices, Inc. | Distributed directory cache |
JP4572169B2 (ja) * | 2006-01-26 | 2010-10-27 | エヌイーシーコンピュータテクノ株式会社 | マルチプロセッサシステム及びその動作方法 |
US7493451B2 (en) * | 2006-06-15 | 2009-02-17 | P.A. Semi, Inc. | Prefetch unit |
JP4912790B2 (ja) * | 2006-08-18 | 2012-04-11 | 富士通株式会社 | システムコントローラ,スヌープタグ更新方法および情報処理装置 |
US9104483B2 (en) * | 2007-01-18 | 2015-08-11 | International Business Machines Corporation | System and method for automating and scheduling remote data transfer and computation for high performance computing |
CN101216815B (zh) * | 2008-01-07 | 2010-11-03 | 浪潮电子信息产业股份有限公司 | 一种双翼可扩展多处理器紧耦合共享存储器体系结构 |
US8612559B2 (en) * | 2008-12-10 | 2013-12-17 | Cisco Technology, Inc. | Central controller for coordinating multicast message transmissions in distributed virtual network switch environment |
US8656115B2 (en) | 2010-08-20 | 2014-02-18 | Intel Corporation | Extending a cache coherency snoop broadcast protocol with directory information |
US9418016B2 (en) * | 2010-12-21 | 2016-08-16 | Intel Corporation | Method and apparatus for optimizing the usage of cache memories |
US8935485B2 (en) | 2011-08-08 | 2015-01-13 | Arm Limited | Snoop filter and non-inclusive shared cache memory |
US9477600B2 (en) | 2011-08-08 | 2016-10-25 | Arm Limited | Apparatus and method for shared cache control including cache lines selectively operable in inclusive or non-inclusive mode |
CN102439571B (zh) * | 2011-10-27 | 2013-08-28 | 华为技术有限公司 | 一种防止节点控制器死锁的方法及装置 |
US10095663B2 (en) | 2012-11-14 | 2018-10-09 | Amazon Technologies, Inc. | Delivery and display of page previews during page retrieval events |
US10339059B1 (en) * | 2013-04-08 | 2019-07-02 | Mellanoz Technologeis, Ltd. | Global socket to socket cache coherence architecture |
WO2014205845A1 (zh) * | 2013-06-29 | 2014-12-31 | 华为技术有限公司 | 一种numa系统内存镜像配置方法、解除方法、系统和主节点 |
CN103488606B (zh) * | 2013-09-10 | 2016-08-17 | 华为技术有限公司 | 基于节点控制器的请求响应方法和装置 |
US9336110B2 (en) | 2014-01-29 | 2016-05-10 | Red Hat, Inc. | Identifying performance limiting internode data sharing on NUMA platforms |
US9836326B2 (en) * | 2014-03-31 | 2017-12-05 | Oracle International Corporation | Cache probe request to optimize I/O directed caching |
US9563928B1 (en) | 2014-05-22 | 2017-02-07 | Amazon Technlogies, Inc. | Bandwidth reduction through delivery of hardware-independent graphics commands for portions of content pages |
US11169666B1 (en) | 2014-05-22 | 2021-11-09 | Amazon Technologies, Inc. | Distributed content browsing system using transferred hardware-independent graphics commands |
US10042521B1 (en) | 2014-05-22 | 2018-08-07 | Amazon Technologies, Inc. | Emulation of control resources for use with converted content pages |
US9922007B1 (en) | 2014-05-22 | 2018-03-20 | Amazon Technologies, Inc. | Split browser architecture capable of determining whether to combine or split content layers based on the encoding of content within each layer |
US9563929B1 (en) * | 2014-05-22 | 2017-02-07 | Amazon Technologies, Inc. | Caching of content page layers |
US9720888B1 (en) | 2014-05-22 | 2017-08-01 | Amazon Technologies, Inc. | Distributed browsing architecture for the delivery of graphics commands to user devices for assembling a plurality of layers of a content page |
US9454515B1 (en) | 2014-06-17 | 2016-09-27 | Amazon Technologies, Inc. | Content browser system using graphics commands and native text intelligence |
CN104331377B (zh) * | 2014-11-12 | 2018-06-26 | 浪潮(北京)电子信息产业有限公司 | 一种多核处理器系统的目录缓存管理方法 |
FR3058608A1 (fr) * | 2016-11-04 | 2018-05-11 | Orange | Basculement d'une premiere interface de communication vers une deuxieme pour ameliorer la qualite percue de la communication |
US10521112B2 (en) | 2017-03-17 | 2019-12-31 | International Business Machines Corporation | Layered clustered scale-out storage system |
CN109309615B (zh) * | 2017-07-27 | 2020-07-07 | 华为技术有限公司 | 传输数据的方法和设备 |
US10372638B2 (en) | 2017-10-20 | 2019-08-06 | Hewlett Packard Enterprise Development Lp | Interconnect agent |
US11119926B2 (en) | 2017-12-18 | 2021-09-14 | Advanced Micro Devices, Inc. | Region based directory scheme to adapt to large cache sizes |
US10705959B2 (en) | 2018-08-31 | 2020-07-07 | Advanced Micro Devices, Inc. | Region based split-directory scheme to adapt to large cache sizes |
US10922237B2 (en) | 2018-09-12 | 2021-02-16 | Advanced Micro Devices, Inc. | Accelerating accesses to private regions in a region-based cache directory scheme |
CN111818108B (zh) * | 2019-04-10 | 2022-07-19 | 阿里巴巴集团控股有限公司 | 一种确保数据获取一致性的方法和装置 |
GB2620198A (en) * | 2022-07-01 | 2024-01-03 | Advanced Risc Mach Ltd | Coherency control |
CN116962259B (zh) * | 2023-09-21 | 2024-02-13 | 中电科申泰信息科技有限公司 | 一种基于监听-目录两层协议的一致性处理方法及系统 |
CN117349199A (zh) * | 2023-11-30 | 2024-01-05 | 摩尔线程智能科技(北京)有限责任公司 | 缓存管理装置及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000132531A (ja) * | 1998-10-23 | 2000-05-12 | Pfu Ltd | マルチプロセッサ |
JP2001167077A (ja) * | 1999-12-09 | 2001-06-22 | Nec Kofu Ltd | ネットワークシステムにおけるデータアクセス方法、ネットワークシステムおよび記録媒体 |
WO2004042585A2 (en) * | 2002-11-04 | 2004-05-21 | Newisys, Inc. | Methods and apparatus for managing probe requests |
JP2006072509A (ja) * | 2004-08-31 | 2006-03-16 | Fujitsu Ltd | 情報処理装置及びローカルスヌープ制御方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10222423A (ja) | 1997-02-07 | 1998-08-21 | Nec Corp | キャッシュメモリ制御方式 |
US6598123B1 (en) * | 2000-06-28 | 2003-07-22 | Intel Corporation | Snoop filter line replacement for reduction of back invalidates in multi-node architectures |
US6901485B2 (en) * | 2001-06-21 | 2005-05-31 | International Business Machines Corporation | Memory directory management in a multi-node computer system |
-
2006
- 2006-01-04 JP JP2006000028A patent/JP4848771B2/ja not_active Expired - Fee Related
- 2006-08-31 US US11/513,378 patent/US7613885B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000132531A (ja) * | 1998-10-23 | 2000-05-12 | Pfu Ltd | マルチプロセッサ |
JP2001167077A (ja) * | 1999-12-09 | 2001-06-22 | Nec Kofu Ltd | ネットワークシステムにおけるデータアクセス方法、ネットワークシステムおよび記録媒体 |
WO2004042585A2 (en) * | 2002-11-04 | 2004-05-21 | Newisys, Inc. | Methods and apparatus for managing probe requests |
JP2006072509A (ja) * | 2004-08-31 | 2006-03-16 | Fujitsu Ltd | 情報処理装置及びローカルスヌープ制御方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008046890A (ja) * | 2006-08-17 | 2008-02-28 | Fujitsu Ltd | マルチプロセッサシステム |
JP2008123333A (ja) * | 2006-11-14 | 2008-05-29 | Renesas Technology Corp | 半導体集積回路装置 |
US8464004B2 (en) | 2008-03-18 | 2013-06-11 | Fujitsu Limited | Information processing apparatus, memory control method, and memory control device utilizing local and global snoop control units to maintain cache coherency |
JP2013205985A (ja) * | 2012-03-27 | 2013-10-07 | Fujitsu Ltd | 情報処理装置及び情報処理装置の制御方法 |
WO2017023252A1 (en) * | 2015-07-31 | 2017-02-09 | Hewlett Packard Enterprise Development Lp | Using a directory-based cache coherence system to regulate snooping |
US10740235B2 (en) | 2015-07-31 | 2020-08-11 | Hewlett Packard Enterprise Development Lp | Using a directory-based cache coherence system to regulate snooping |
US11481328B2 (en) | 2015-07-31 | 2022-10-25 | Hewlett Packard Enterprise Development Lp | Using a directory-based cache coherence system to regulate snooping |
Also Published As
Publication number | Publication date |
---|---|
US20070156972A1 (en) | 2007-07-05 |
JP4848771B2 (ja) | 2011-12-28 |
US7613885B2 (en) | 2009-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4848771B2 (ja) | キャッシュ一貫性制御方法およびチップセットおよびマルチプロセッサシステム | |
US9170946B2 (en) | Directory cache supporting non-atomic input/output operations | |
EP3427154B1 (en) | Self-healing coarse-grained snoop filter | |
JP3269967B2 (ja) | キャッシュコヒーレンシ制御方法、および、これを用いたマルチプロセッサシステム | |
US7669018B2 (en) | Method and apparatus for filtering memory write snoop activity in a distributed shared memory computer | |
US7581068B2 (en) | Exclusive ownership snoop filter | |
US8812786B2 (en) | Dual-granularity state tracking for directory-based cache coherence | |
US20150058570A1 (en) | Method of constructing share-f state in local domain of multi-level cache coherency domain system | |
JP5445581B2 (ja) | コンピュータシステム、制御方法、記録媒体及び制御プログラム | |
JP2013058225A (ja) | マルチプロセッサ・システムにおけるキャッシュ・コヒーレンスにおいて用いるフォワード状態 | |
JP3661764B2 (ja) | 不均等メモリ・アクセス・コンピュータ・システムにおいてエヴィクション・プロトコルを提供するための方法およびシステム | |
JP2001282764A (ja) | マルチプロセッサシステム | |
JP2000322318A (ja) | コンピュータキャッシュ用コヒーレンシープロトコル | |
US8332592B2 (en) | Graphics processor with snoop filter | |
KR20090079964A (ko) | 능동적 프리페치들로 향상된 호버 상태를 실시하는 시스템 및 방법 | |
JP2005141606A (ja) | マルチプロセッサシステム | |
US7725660B2 (en) | Directory for multi-node coherent bus | |
US7669013B2 (en) | Directory for multi-node coherent bus | |
US8397029B2 (en) | System and method for cache coherency in a multiprocessor system | |
CN115858420B (zh) | 用于支持多处理器架构的系统缓存架构和芯片 | |
JP3732397B2 (ja) | キャッシュシステム | |
US10489292B2 (en) | Ownership tracking updates across multiple simultaneous operations | |
JP2000267935A (ja) | キヤッシュメモリ装置 | |
JP2002024198A (ja) | 分散共有メモリ型並列計算機 | |
JPH10232831A (ja) | キャッシュ・タグ維持装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080908 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110607 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110728 |
|
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: 20110920 |
|
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: 20111003 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141028 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |