JP2003186742A - ディレクトリ・キャッシュの更新 - Google Patents

ディレクトリ・キャッシュの更新

Info

Publication number
JP2003186742A
JP2003186742A JP2002300016A JP2002300016A JP2003186742A JP 2003186742 A JP2003186742 A JP 2003186742A JP 2002300016 A JP2002300016 A JP 2002300016A JP 2002300016 A JP2002300016 A JP 2002300016A JP 2003186742 A JP2003186742 A JP 2003186742A
Authority
JP
Japan
Prior art keywords
entry
cache
board
directory cache
entries
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.)
Pending
Application number
JP2002300016A
Other languages
English (en)
Inventor
Patricia Shanahan
パトリシア・シャナハン
Andrew E Phelps
アンドリュー・イー・フェルプス
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JP2003186742A publication Critical patent/JP2003186742A/ja
Pending legal-status Critical Current

Links

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/0817Cache consistency protocols using directory methods
    • G06F12/082Associative directories

Abstract

(57)【要約】 【課題】 ディレクトリ・キャッシュを更新する方法お
よび装置を提供する。 【解決手段】 この方法は、メモリ・アクセス・トラン
ザクションを検出し、メモリ・アクセス・トランザクシ
ョンの種類に基づいて保持値を求め、メモリ・アクセス
・トランザクションに関連するエントリ内に保持値を格
納することを含む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は全体としてプロセッ
サ・ベースのシステムに関し、より詳細には、分散共用
メモリ・プロセッサ・ベースのシステムにおけるディレ
クトリ・キャッシュを更新することに関する。
【0002】
【従来の技術】企業は通常、他の企業に対する競争上の
利点を維持するうえでネットワーク・コンピューティン
グを利用する。そのため、開発者は、ネットワーク中心
の環境で使用されるプロセッサ・ベースのシステムを設
計する際、顧客の期待にかなうようにそのようなシステ
ムの機能性、信頼性、スケーラビリティ、性能などいく
つかの因子を考慮する。
【0003】ネットワーク中心の環境で使用されるプロ
セッサ・ベースのシステムの一例として、ミッドレンジ
・サーバ・システムがある。単一のミッドレンジ・サー
バ・システムは、たとえば、1つまたは複数のドメイン
として構成できる複数のシステム・ボードを有してい
る。ドメインは、たとえば、オペレーティング・システ
ムのドメイン自体のインスタンスを動作させて1つまた
は複数の構成済みのタスクを実行することによって独立
のマシンとして働くことができる。
【0004】ミッドレンジ・サーバは、一実施形態にお
いて、分散共用メモリ・システムを使用することがで
き、1つのシステム・ボードのプロセッサが他のシステ
ム・ボードのメモリ・コンテンツにアクセスすることが
できる。ミッドレンジ・サーバのシステム・ボード上の
すべてのメモリがまとまって分散共用メモリ(DSM)
を構成する。
【0005】システム内の他のシステム・ボードのデー
タにアクセスする方法として、共通バス上でメモリ要求
をブロードキャストすることが挙げられる。たとえば、
要求側システム・ボードは、他のシステム・ボードのメ
モリに存在するメモリ・ラインに格納されている情報に
アクセスする必要がある場合、通常、共通バス上でメモ
リ・アクセス要求をブロードキャストする。システム内
のすべてのシステム・ボードが同じ要求を受け取ること
ができ、次いで、メモリ・アクセス要求に与えられてい
るメモリ・アドレスに自身のメモリ・アドレス範囲が一
致するシステム・ボードが応答することができる。
【0006】
【発明が解決しようとする課題】他のシステム・ボード
内のメモリのコンテンツにアクセスするブロードキャス
ト手法は、比較的少数のシステム・ボードがシステム内
に存在するときにはうまく働くことができる。しかし、
このような手法は、システム・ボードの数が増えるにつ
れて不適切なものになっていく。システム・ボードの数
が多くなるにつれて、メモリ・アクセス要求の数も増え
ていき、したがって、この増大したトラフィックに対処
するには、メモリ・アクセスを適切なタイミングで完了
できるようにより大きく、より高速のバスが必要であ
る。大きなバスを高速で動作させると、1つにはキャパ
シタンス、インダクタンスなどが大きいことによる電気
的な欠点によって問題が生じる。さらに、システム内の
ボードの数が多くなると余分のブロードキャストが必要
になり、望ましくない遅延がさらに長くなり、余分のブ
ロードキャストに対処するための追加の処理能力が必要
になる。
【0007】メモリ要求をグローバルにブロードキャス
トしなくてもよいように、設計者は分散共用メモリ・シ
ステムでディレクトリ・キャッシュを用いることを提案
している。通常、各システム・ボードは、選択されたメ
モリ・アドレス範囲内のメモリ・ラインに対してホーム
・ボードとして働き、各システム・ボードは、そのメモ
リ・アドレス範囲をシステム内の他のシステム・ボード
に属すると認識する。各ホーム・ボードは一般に、アド
レス範囲に入るメモリ・ライン用の独自のディレクトリ
・キャッシュを維持する。したがって、要求側ボードが
他のボードのメモリ・コンテンツにアクセスする必要が
あるとき、メモリ要求をシステム内で全体的にブロード
キャストする代わりに、その要求を適切なホーム・ボー
ドに送る。ホーム・ボードは、そのディレクトリ・キャ
ッシュを調べ、どのシステム・ボードがメモリ要求に応
答できるかを判定する。
【0008】ディレクトリ・キャッシュは一般に、メモ
リ・アクセス中にメモリ要求をグローバルにブロードキ
ャストしなくても済むようにするのには有効である。し
かし、システム・ボード内のあらゆるメモリ位置をマッ
ピングすることのできるディレクトリ・キャッシュを実
装することは、大きいメモリ・オーバヘッドをもたら
す。そのため、ディレクトリ・キャッシュは、全メモリ
のサブセットのみを保持するように設計されることが多
い。特定のディレクトリ・キャッシュが満杯になると、
古いエントリを破棄するかまたは古いエントリに上書き
して新しいエントリ用の空きを設けることができる。し
かし、ディレクトリ・キャッシュを更新して古いエント
リを新しいエントリで置きかえると、特に、置きかえら
れたエントリに近い将来アクセスできることが望ましい
ときには、計算費用が高くなることがわかるであろう。
【0009】
【課題を解決するための手段】本発明の一態様はディレ
クトリ・キャッシュを更新する装置を提供する。この装
置は、メモリ・アクセス・トランザクションを検出し、
メモリ・アクセス・トランザクションの種類に基づいて
保持値を求め、この保持値を、このメモリ・アクセス・
トランザクションに関連するエントリに格納するように
適合されている制御ユニットを備える。
【0010】本発明の他の態様はディレクトリ・キャッ
シュを更新する方法を提供する。この方法は、メモリ・
アクセス・トランザクションを検出し、メモリ・アクセ
ス・トランザクションの種類に基づいて保持値を求め、
このメモリ・アクセス・トランザクションに関連するこ
の保持値をディレクトリ・キャッシュに格納することを
含む。
【0011】本発明のさらに他の態様は、ディレクトリ
・キャッシュを更新する命令を含む1つまたは複数のマ
シン可読格納媒体を備える製品が提供される。この命令
が実行されると、プロセッサは、第1のコヒーレンス方
式を使用して第1のシステム・ボード・セット内のメモ
リ・トランザクションに対するコヒーレンスを実行する
ことができる。命令が実行されると、プロセッサはさら
に、第2のコヒーレンス方式を使用して第1のシステム
・ボード・セットと第2のシステム・ボード・セットと
の間のメモリ・トランザクションに対するコヒーレンス
を実行することができる。この場合、第2のコヒーレン
ス方式では、新しいエントリを格納するときにどのエン
トリを犠牲にするかを示すのに、ディレクトリ・キャッ
シュに格納されている1つまたは複数のエントリに関連
する保持値を用いる。
【0012】本発明は、添付の図面と共に以下の説明を
参照することによって理解することができる。各図にお
いて、同じ参照番号は同じ要素を示す。
【0013】
【発明の実施の形態】本発明の例示的な実施形態につい
て以下に説明する。話を明確にするために、本明細書で
は、実際の実装のすべての特徴については説明しない。
もちろん、このような実際の実施形態を開発する際に、
開発者の特定の目標を実現するうえで実装ごとに異な
る、システムおよび企業に関係する制約に従うことのよ
うな、多数の実装特有の決定を下さなければならないこ
とが理解されよう。さらに、このような開発作業は複雑
で時間がかかるが、それにもかかわらず、本開示の利益
を有する当業者はそれを日常的に行わなければならない
ことが理解されよう。
【0014】以下に詳しく説明するように、本発明の1
つまたは複数の実施形態は、キャッシュ・ミスの数を削
減するようにディレクトリ・キャッシュを更新する。そ
のため、プロセッサ・ベースのシステムの全体的な性能
効率を向上させることができる。
【0015】次に、図1を参照すると、本発明の一実施
形態によるシステム10のブロック図が示されている。
システム10は、一実施形態において、スイッチ20に
結合された複数のシステム制御ボード15(1〜2)を
含んでいる。図示の都合上、システム制御ボード15
(1〜2)がスイッチ20に結合されていることを示す
のに線21(1〜2)が用いられている。ただし、他の
実施形態では、エッジ・コネクタ、ケーブル、または他
の利用可能なインタフェースを含む、様々な方法のうち
のどれかでボード15(1〜2)をスイッチ20に結合
してよいことを理解されたい。
【0016】図示の実施形態において、システム10
は、一方はシステム10の全体的な動作を管理し、他方
は、他方の制御ボードが故障した場合に冗長性および自
動フェールオーバを行う2つの制御ボード15(1〜
2)を含んでいる。制限するわけではないが、図示の実
施形態において、第1のシステム制御ボード15(1)
は「メイン」システム制御ボードとして働き、一方、第
2の制御ボード15(2)は代替のホット・スワップ交
換可能なシステム制御ボードとして働く。一実施形態で
は、任意の瞬間に、2つのシステム制御ボード15(1
〜2)のうちの一方がシステム10の全体的な動作を能
動的に制御する。
【0017】メイン・システム制御ボード15(1)上
でハードウェアまたはソフトウェアの障害が起こるか、
またはメイン・システム制御ボード15(1)から他の
システム・デバイスへのハードウェア制御経路上で障害
が起こった場合、システム・コントローラ・フェールオ
ーバ・ソフトウェア22は自動的に、代替制御ボード1
5(2)へのフェールオーバをトリガする。その代替シ
ステム制御ボード15(2)が、メイン・システム制御
ボード15(1)の役割を引き受け、メイン・システム
・コントローラの責任を請け負う。メイン・システム制
御ボード15(1)から代替システム制御ボード15
(2)に移るには、両方のシステム制御ボード15(1
〜2)上でシステム・コントローラのデータ、構成、お
よび/またはログ・ファイルを模倣することが望まし
い。
【0018】システム10は、一実施形態において、線
50(1〜n)で示されているようにスイッチ20に結
合された複数のシステム・ボード・セット29(1〜
n)を含んでいる。システム・ボード・セット29(1
〜n)は、エッジ・コネクタまたは他の利用可能なイン
タフェースを含むいくつかの方法のうちの1つでスイッ
チ20に結合することができる。スイッチ20は、複数
のシステム・ボード・セット29(1〜n)用の通信コ
ンジットとして働くことができ、複数のシステム・ボー
ド・セット29(1〜n)のうちの半分はスイッチ20
の一方の側に接続され、残りの半分はスイッチ20の反
対側に接続されている。
【0019】スイッチ20は、一実施形態において、1
8×18クロスバー・スイッチであってよく、システム
・ボード・セット29(1〜n)およびシステム制御ボ
ード15(1〜2)が通信するのを必要に応じて可能に
する。したがって、スイッチ20は、2つのシステム制
御ボード15(1〜2)が互いに通信するか、または他
のシステム・ボード・セット29(1〜n)と通信する
と共に、システム・ボード・セット29(1〜n)が互
いに通信することができる。
【0020】システム・ボード・セット29(1〜n)
は、一実施形態において、システム・ボード30、入出
力ボード35、および拡張ボード40を含む1つまたは
複数のボードを備える。システム・ボード30は、一実
施形態において、オペレーティング・システムの一部を
含むアプリケーションを実行するプロセッサおよび関連
するメモリを含む。入出力ボード35は、システム10
に設置された周辺構成要素インタフェース・カードや光
学カードなどの入出力カードを管理する。拡張ボード4
0は、一実施形態において、一般にマルチプレクサ(た
とえば、2:1マルチプレクサ)として働き、システム
・ボード30と入出力ボード35の両方のスイッチ20
に対するインタフェースとなっている。スイッチ20
は、いくつかの例では、両方のボード30、35とイン
タフェースするための1つのスロットのみを有してよ
い。
【0021】一実施形態では、システム10を動的に複
数のシステム・ドメインに細分してよく、各ドメインは
別々のブート・ディスク(たとえば、オペレーティング
・システムの特定のインスタンスを実行する)、別々の
ディスク格納装置、ネットワーク・インタフェース、お
よび/または入出力インタフェースを有してよい。各ド
メインはたとえば、ユーザによって構成された様々なサ
ービスを実行する独立のマシンとして動作することがで
きる。たとえば、1つまたは複数のドメインをアプリケ
ーション・サーバ、webサーバ、データベース・サー
バなどとして指定することができる。一実施形態におい
て、各ドメインは独自のオペレーティング・システム
(たとえば、Solarisオペレーティング・システ
ム)を実行し、他のドメインの動作に割り込まずに再構
成することができる。
【0022】図2には、システム10内に少なくとも2
つのドメインが定義された例示的な構成が示されてい
る。第1のドメインは、垂直線で識別されており、シス
テム・ボード・セット29(n/2+2)と、システム
・ボード・セット29(1)のシステム・ボード30
と、システム・ボード・セット29(2)の入出力ボー
ド35とを含んでいる。図示の実施形態の第2のドメイ
ンは、システム・ボード・セット29(3)、29(n
/2+1)、29(n/2+3)と、システム・ボード
・セット29(1)の入出力ボード35およびシステム
・ボード・セット29(2)のシステム・ボード30と
を含んでいる。
【0023】図示のように、ドメインは、システム・ボ
ード・セット29(1〜n)全体、選択されたシステム
・ボード・セット29(1〜n)の1つまたは複数のボ
ード(たとえば、システム・ボード30、入出力ボード
35)、またはそれらの組合せで形成してよい。必ずし
も必要ではないが、各システム・ボード・セット29
(1〜n)を独立のドメインとして定義することが可能
である。たとえば、各システム・ボード・セット29
(1〜n)がそれ自体のドメインである場合、システム
10はおそらく最大で「n」(すなわち、システム・ボ
ード・セットの数)個の異なるドメインを有することに
なるであろう。同じシステム・ボード・セット29(1
〜n)の2つのボード(たとえば、システム・ボード3
0、入出力ボード35)がそれぞれの異なるドメインに
あるとき、このような構成を「分割拡張」と呼ぶ。シス
テム・ボード・セット29(1〜n)の拡張ボード40
は、一実施形態において、トランザクションを各ドメイ
ンごとに別々に維持する。各ボードがドメイン内で物理
的に近くに位置する必要はない。
【0024】スイッチ20を使用してドメイン間通信が
可能である。たとえば、スイッチ20は、図2の第1の
ドメインと第2のドメインとの間でデータを交換できる
ように高速通信路を形成することができる。一実施形態
では、スイッチ20を通るデータおよびアドレス用の独
立の経路をドメイン間通信に用いることができる。
【0025】次に図3を参照すると、本発明の一実施形
態による、スイッチ20に結合されたシステム・ボード
・セット29(1〜n)のブロック図が示されている。
図示の実施形態における各システム・ボード・セット2
9(1〜n)のシステム・ボード30は、4つのプロセ
ッサ360(1〜4)を含んでおり、各プロセッサ36
0(1〜4)は関連するメモリ361(1〜4)を有し
ている。一実施形態では、各プロセッサ360(1〜
4)はをそれぞれのキャッシュ・メモリ362(1〜
4)に結合されている。他の実施形態では、各プロセッ
サ360(1〜4)が複数の関連するメモリを有してよ
く、1つまたは複数のキャッシュ・メモリのうちのいく
つかまたはすべてがプロセッサ360(1〜4)内に存
在していてもよい。一実施形態において、各キャッシュ
・メモリ362(1〜4)は分割キャッシュであってよ
く、キャッシュ・メモリ362(1〜4)の格納部分が
プロセッサの外部に位置し、制御部分(たとえば、タグ
やフラグ)がプロセッサ360(1〜4)内に存在して
よい。
【0026】プロセッサ360(1〜4)は、一実施形
態において、それぞれのメモリ361(1〜4)および
362(1〜4)にアクセスすると共に、他のプロセッ
サに関連するメモリにアクセスすることができる。一実
施形態では、異なる数のプロセッサおよびメモリを、実
装に応じて、任意の望ましい組合せで使用することがで
きる。一実施形態では、2つの5ポート・デュアル・デ
ータ・スイッチ365(1〜2)がプロセッサ/メモリ
対(たとえば、プロセッサ360(1〜2)/メモリ3
61(1〜2)およびプロセッサ360(3〜4)/メ
モリ361(3〜4))をボード・データ・スイッチ3
67に接続する。
【0027】制限するわけではないが、図示の実施形態
における各システム・ボード・セット29(1〜n)の
入出力ボード35は、1つまたは複数のPCIスロット
372(1〜p)に設置できる1つまたは複数のPCI
カードを管理するコントローラ370を含んでいる。図
示の実施形態において、入出力ボード35は、1つまた
は複数の入出力スロット376(1〜o)に設置できる
1つまたは複数の入出力カードを管理する第2のコント
ローラ374も含んでいる。入出力スロット376(1
〜o)は光学カード、ネットワーク・カードなどを受け
入れることができる。入出力ボード35は、一実施形態
において、内部ネットワーク(不図示)上でシステム制
御ボード15(1〜2)と通信することができる。
【0028】入出力ボード35の2つのコントローラ3
70、374は、一実施形態において、データ・スイッ
チ378に結合されている。拡張ボード40内のスイッ
チ380は、入出力ボード35のスイッチ378および
システム・ボード・セット29(1〜n)のスイッチ3
67から出力信号を受け取り、一実施形態ではコヒーレ
ンス・モジュール382に供給する。図示の実施形態に
は(たとえば、スイッチ380を介する)データ経路し
か示されていないが、各システム・ボード・セット29
(1〜n)は、一実施形態において、システム・ボード
30および入出力ボード35から拡張ボード40のコヒ
ーレンス・モジュール382までの別々のデータ経路、
アドレス経路、および制御(または「応答」)経路を含
んでもよい。
【0029】一実施形態において、スイッチ20は、シ
ステム・ボード・セット29(1〜n)の各拡張ボード
40のコヒーレンス・モジュール382から供給される
それぞれのデータ信号、アドレス信号、および制御信号
を送るデータ・スイッチ384と、アドレス・スイッチ
386と、応答スイッチ388とを含んでいる。したが
って、一実施形態において、各スイッチ20は、ドメイ
ン内通信およびドメイン間通信を可能にする別々のデー
タ経路、アドレス経路、および制御経路を形成する3つ
の18×18クロスバー・スイッチを含んでいる。デー
タ信号、アドレス信号、および制御信号用に別々の経路
を使用すると、データ・トラフィックとアドレス・トラ
フィックと制御信号トラフィックとの間の干渉を低減さ
せることができる。一実施形態において、スイッチ20
は、毎秒約43ギガバイトの帯域幅を与えることができ
る。他の実施形態では、スイッチ20を使用してこれよ
りも大きなまたは小さな帯域幅を実現することができ
る。
【0030】各システム・ボード・セット29(1〜
4)内の様々な構成要素(たとえば、コヒーレンス・モ
ジュール382、プロセッサ360(1〜4)、コント
ローラ370、374)の配置および/または位置が設
計上の選択の問題であり、したがって、実装ごとに異な
ってよいことに留意されたい。さらに、本発明の範囲か
ら逸脱せずにこれよりも多いかまたは少ない構成要素を
使用してよい。
【0031】本発明の一実施形態によれば、1つはシス
テム・ボード・セット29(1〜n)内レベル、1つは
システム・ボード・セット29(1〜n)間レベルの2
つの異なるレベルでキャッシュ・コヒーレンスが実行さ
れる。第1のレベルに関しては、一実施形態では、ME
SI(modified,exclusive,shared,and invalid)キャ
ッシュ・コヒーレンス・プロトコルのような、従来のキ
ャッシュ・コヒーレンス・スヌーピング技術を使用し
て、各システム・ボード・セット29(1〜n)内のキ
ャッシュ・コヒーレンスが実行される。そのため、プロ
セッサ360(1〜n)はシステム・ボード・セット2
9(1〜n)内の他の装置にトランザクションをブロー
ドキャストし、次いで、適切な装置が所望の結果または
データで応答する。
【0032】システム・ボード・セット29(1〜n)
内の装置の数は比較的少ないので、要求が他の装置に共
通的にブロードキャストされる従来のコヒーレンス・ス
ヌーピング技術によって、所望の目的を十分に実現する
ことができる。しかし、システム10は、各々が1つま
たは複数のプロセッサを有する多数のシステム・ボード
・セット29(1〜n)を含んでいるので、このような
要求を満たすにはメモリ・アクセスに多数のブロードキ
ャストが必要である。したがって、各拡張ボード40の
コヒーレンス・モジュール382により、一実施形態で
はスケーラブル共用メモリ(SSM)プロセッサを使用
して、(拡張ボード40間の)システム・レベルで第2
レベルのコヒーレンスを実行することができる。
【0033】コヒーレンス・モジュール382は、一実
施形態において、ホーム・エージェント390、要求エ
ージェント392、およびスレーブ・エージェント39
4に結合された制御ユニット389を含んでいる。エー
ジェント390、392、394は、システム全体のコ
ヒーレンスを維持するようにまとまって動作することが
できる。図示の実施形態において、コヒーレンス・モジ
ュール382の制御ユニット389は、システム・ボー
ド30と入出力ボード40を相互接続すると共に、コヒ
ーレンス・モジュール382内のホーム・エージェント
390と要求エージェント392とスレーブ・エージェ
ント394を相互接続する。一実施形態において、拡張
ボード40を2つのドメイン間で分割した場合(すなわ
ち、1つのシステム・ボード・セット29(1〜n)の
システム・ボード30と入出力ボード35はそれぞれの
異なるドメインにある)、コヒーレンス・モジュール3
82の制御ユニット389は、システム・ボード30お
よび入出力ボード35を、一方を奇数サイクルで、他方
を偶数サイクルで別々に調停することができる。
【0034】SSMプロトコルは、各拡張ボード40の
制御を受けたデバイスがキャッシュ・ラインに対して実
行できることを制御するためにデータに埋め込まれたM
タグを用いる。Mタグは、各システム・ボード・セット
29(1〜n)のキャッシュ362(1〜4)に格納す
ることができる。以下の表1にはMタグに関連付けるこ
とができる3種類の値が示されている。
【表1】
【0035】前述のように、図示の実施形態では、従来
のMESIキャッシュ・コヒーレンス・プロトコルだけ
でなく、Mタグ状態が使用される。たとえば、書込みを
行う場合、デバイスは、MとgMの双方であるラインの
コピーを持つ必要がある。ラインがgMでありMではな
い場合、拡張ボード40内のトランザクションによって
ラインのステータスをMにプロモートすることができ
る。ラインgMでない場合、前述のように、一実施形態
ではSSMプロトコルを使用するキャッシュ・コヒーレ
ンス・モジュール382によってリモート・トランザク
ションを実行する必要がある。
【0036】コヒーレンス・モジュール382は、一実
施形態において、SSMプロトコルを用いて最も最近に
参照されたメモリのラインに関する情報を保持するディ
レクトリ・キャッシュ(DC)396を制御する。DC
396は、一実施形態において、スタティック・ランダ
ム・アクセス・メモリ(SRAM)などの揮発性メモリ
に格納することができる。DC396は、所与の拡張ボ
ード40に関連するキャッシュ可能なラインを保持する
のに十分なエントリ・スロットを有していないという点
で部分的なディレクトリである。後で詳しく説明するよ
うに、コヒーレンス・モジュール382は、一実施形態
において、たとえば、ディレクトリ・キャッシュ396
内の選択されたエントリのステータスが更新されている
ときに、このエントリへのアクセスを妨げるロッキング
・モジュール398を制御する。
【0037】DC396は、所与のシステム・ボード3
0のキャッシュ362(1〜4)のキャッシュ・ライン
に対応する所定数のディレクトリ・エントリをキャッシ
ュすることができる。DC396としては、合理的な数
の一般に使用されているメモリ・ブロックをキャッシュ
できるように適切なサイズのものを選択してよい。制限
するわけではないが、図示の実施形態において、DC3
96は3ウェイ・セット・アソシエティブ・キャッシュ
であり、並列に読み取ることのできる3つのSRAMで
形成されている。例示的な3ワイドDCエントリ410
が図4Aに示されている。DC39612、一実施形態
では、複数の3ワイドDCエントリを含む。(集合的に
「セット」と呼ぶ)410。所与のセット410内の各
DCエントリは、アドレスのハッシュによってインデッ
クス付けすることができる。
【0038】図4Aに示すように、一実施形態におい
て、3つのDCエントリ・フィールド415(0〜2)
の各々が、関連するアドレス・パリティ・フィールド4
20(0〜2)およびエラー訂正符号(ECC)フィー
ルド425(0〜1)を有している。エラーの場合、い
くつかの例では、ECCフィールド425(0〜1)に
よってエラーを修正することができる。各3ワイドDC
エントリ410は、3つのDCエントリ・フィールド4
15(0〜2)のうちのどれが最も早く修正されたかを
示すことのできるLRMフィールド430を含む。他の
符号化技術を使用してよいが、図示の実施形態では、L
RMエントリを識別するのに3ビットが使用されてい
る。図示の実施形態で使用されるLRM符号の例示的な
リストを、以下の表2に示す。
【表2】
【0039】表2の例示的な符号化LRM方式に示すよ
うに、LRMフィールド430内のビットの様々な組合
せは、DC396内の3つのエントリ・フィールド41
5(0〜2)が修正された順序を示している。たとえ
ば、数字「000」(すなわち、表2の最初のエント
リ)は、エントリ・フィールド415(2)が最も早く
修正され、その後中間エントリ・フィールド415
(1)が修正され、次いで第1のエントリ・フィールド
415(0)が修正され、すなわち、エントリ・フィー
ルド415(0)が最も遅く修正されたことを示してい
る。他の例として、数字「101」は、エントリ・フィ
ールド415(0)が最も早く修正され、その後エント
リ・フィールド415(2)が修正され、次いでエント
リ・フィールド415(1)が修正され、すなわち、エ
ントリ・フィールド415(1)が最も遅く修正された
ことを示している。後述のように、LRMフィールド4
30は、一実施形態において、1つには、セット410
が満杯になったときに、DC396の特定のセット41
0のうちでどのDCエントリ・フィールド415(0〜
2)を犠牲にするかを判定するのに用いられる。
【0040】本発明の一実施形態によれば、図4B〜4
Cに示すように、2つの異なる種類のエントリ、共用エ
ントリ435および所有済みエントリ437をDC39
6のエントリ・フィールド415(0〜2)に格納する
ことができる。所有済みエントリ437は、一実施形態
において、特定の拡張ボード40がこの特定のエントリ
に対して読取りアクセスと書込みアクセスの両方を行う
ことができることを示す。共用エントリ435は、一実
施形態において、1つまたは複数の拡張ボード40が、
この特定のエントリに対して読取りアクセスを行うこと
はできるが、書込みアクセスを行うことはできないこと
を示す。
【0041】共用メモリ435は、一実施形態におい
て、識別子フィールド440と、マスク・フィールド4
45と、アドレス・タグ・フィールド450とを含む。
識別子フィールド440は、図示の実施形態では、単一
ビット・フィールド440であり、ビット1に等しい場
合、格納されているキャッシュ・ラインがシステム10
内のシステム・ボード・セット29(1〜n)の1つま
たは複数のプロセッサ360(1〜4)によって共用さ
れていることを示す。マスク・フィールド445は、最
大で「n」ビットを有してよく(すなわち、各システム
・ボード・セット29(1〜n)ごとに1ビット)、シ
ステム・ボード・セット29(1〜n)のうちのどのシ
ステム・ボード30がキャッシュ・ラインの共用コピー
を有しているかを一連のビットによって示す。アドレス
・タグ・フィールド450は、一実施形態において、対
応するキャッシュ・ラインのアドレス・フィールドの少
なくとも一部を格納することができる。
【0042】所有済みエントリ437は、一実施形態に
おいて、識別子フィールド455と、所有者フィールド
460と、アドレス・タグ・フィールド465と、有効
フィールド470と、保持ビット・フィールド475と
を含む。識別子フィールド455は、一実施形態におい
て、単一ビット・フィールド440であり、ビット0に
等しい場合、格納されているキャッシュ・ラインがシス
テム10内のシステム・ボード・セット29(1〜n)
の1つのプロセッサ360(1〜4)によって所有され
ていることを示す。所有者フィールド460は、キャッ
シュ・ラインの有効なコピーを保持するシステム・ボー
ド・セット29(1〜n)の特定の拡張ボード40のI
Dを格納するように適合されている。アドレス・タグ・
フィールド465は、一実施形態において、対応するキ
ャッシュ・ラインのアドレス・フィールドの少なくとも
識別部分を格納するようになっている。たとえば、タグ
・フィールド465は、アドレスの上位ビットで構成す
ることができる。有効フィールド470は、一実施形態
において、DC396内の対応するエントリが有効であ
るかどうかを示す。DC396内のエントリは、スター
トアップ時、たとえば、システム10またはシステム1
0内のドメインが最初に初期設定されるときには無効で
あってよい。以下に詳しく説明するように、保持ビット
・フィールド475は、一実施形態において、DC39
6内の特定のセット410(図4A参照)が満杯になっ
たときにこのセット410内のどのエントリを置きかえ
るかを決定する際にDC396内の対応するエントリを
保持することが望ましいことを示すようになっている。
他の実施形態では、DC396がフル・アソシエーティ
ブ・ディレクトリ・キャッシュである場合、ディレクト
リ・キャッシュ・レベル(すなわち、セット・レベルに
対するレベル)でエントリを犠牲にすることができる。
【0043】次に、図5を参照すると、本発明の1つま
たは複数の実施形態による、メモリ・アクセス要求を満
たす際の要求側ボード510とホーム・ボード520と
スレーブ・ボード530との間の様々な通信路を含む状
態図が示されている。ボード510、520、530
は、一実施形態において、1つまたは複数の制御ボード
・セットのうちの1つまたは複数のボード(たとえば、
拡張ボード40、システム・ボード30、入出力ボード
35)を含んでよい。本明細書で使用される語「メモリ
・アクセス要求」は、一実施形態において、システム1
0内の1つまたは複数のキャッシュ362(1〜4)ま
たはメモリ361(1〜4)にアクセスする所与のシス
テム・ボード・セット29(1〜n)の1つまたは複数
のプロセッサ360(1〜4)(図3参照)を含んでよ
い。
【0044】制限するわけではないが、この議論では、
1つまたは複数の完全な(すなわち、分割されていない
拡張)システム・ボード・セット29(1〜n)で形成
されたシステム10内に1つのドメインが構成されると
仮定する。一般に、システム10内の所与のキャッシュ
・ラインは1つのホーム・ボード520に関連付けされ
る。図示の実施形態の要求側ボード510は、選択され
たキャッシュ・ラインへのアクセスを試みるボードを表
す。図示の実施形態のスレーブ・ボード530は、要求
側ボード510がアクセスを試みているキャッシュ・ラ
インのコピーを現在有しているボードを表す。要求され
たキャッシュ・ラインの現在のコピーがホーム・ボード
520内に存在する場合、ホーム・ボード520はその
トランザクションのスレーブ・ボード530でもある。
【0045】要求側ボード510は、所有要求(RT
O)トランザクション、共用要求(RTS)トランザク
ション、ライトストリーム・トランザクション、ライト
バック・トランザクション、およびリードストリーム・
トランザクションを含む、様々なメモリ・アクセス・ト
ランザクションのうちの1つを開始することができる。
前述のメモリ・アクセス・トランザクションのうちの1
つまたは複数はローカル・トランザクションまたはリモ
ート・トランザクションであってよく、ローカル・トラ
ンザクションは、システム・ボード・セット29(1〜
n)内でローカルにブロードキャストされるトランザク
ションを含んでよく、リモート・トランザクションは、
他のシステム・ボード・セット29(1〜n)からのキ
ャッシュ・ラインへのアクセスに関するトランザクショ
ンを含んでよい。制限するわけではないが、一実施形態
において、RTO要求を発行してキャッシュ・ラインの
排他的コピーを得ることができ、RTS要求を発行して
キャッシュ・ラインの共用コピーを得ることができ、ラ
イトバック・トランザクションを発行して、キャッシュ
されたラインをホーム・ボードに書き直すことができ、
リードストリーム要求を発行してキャッシュ・ラインの
スナップショット・コピーを得ることができ、ライトス
トリーム要求を発行してキャッシュ・ラインのコピーを
書き込むことができる。
【0046】例示の都合上、ボード510、520、お
よび530間の例示的なRTOトランザクションについ
て以下に説明する。この例では、要求側ボード510
が、ホーム・ボード520によって所有されているキャ
ッシュ・ラインへの書込みアクセスを行うことを試み、
要求されたキャッシュ・ラインの最新のコピーがスレー
ブ・ボード530上に存在すると仮定する。要求側ボー
ド510からのRTO要求は経路540を介してホーム
・ボード520に転送される。要求側ボード510から
ホーム・ボード520へのRTOトランザクションの転
送は通常、要求側ボード510のコヒーレンス・モジュ
ール382(図3参照)により、RTO要求を備えたア
ドレスを利用して処理される。
【0047】要求側ボード510は、たとえば、キャッ
シュ・ラインのアドレスを、システム10内の様々な拡
張ボード40に関連するキャッシュのアドレス範囲にマ
ッピングすることにより、どのホーム・ボード520が
要求されたキャッシュ・ラインを有しているかを判定す
る。ホーム・ボード520が経路540上でRTOメッ
セージを受け取ると、ホーム・ボード520のコヒーレ
ンス・モジュール382は、ディレクトリ・キャッシュ
396(図3参照)を検査し、要求されたキャッシュ・
ラインに対応するエントリがあるかどうかを判定する。
ホーム・ボード520は、ディレクトリ・キャッシュ3
96内にエントリが存在すると仮定して、そのエントリ
に格納されている情報を参照し、スレーブ・ボード53
0が現在、要求されたキャッシュ・ラインの排他的コピ
ーを有していると判定する。一実施形態において、ホー
ム・ボード520のディレクトリ・キャッシュ396が
参照されている間、コヒーレンス・モジュール382
が、ロッキング・モジュール398を用いて、他の拡張
ボード40がディレクトリ・キャッシュ396内のこの
エントリにアクセスするのを一時的に妨げることができ
ることに留意されたい。
【0048】ホーム・ボード520は、ディレクトリ・
キャッシュ396に格納されている情報に基づいて、一
実施形態において、スレーブ・ボード530が現在キャ
ッシュ・ラインの排他的コピーを有していることを確認
することができる。したがって、ホーム・ボード520
は、一実施形態において、要求されたキャッシュ・ライ
ンのコピーを要求側ボード510に転送させるために、
その要求を経路545上でスレーブ・ボード530に送
る。一実施形態において、スレーブ・ボード530は、
コピーを排他的コピー(すなわち、Mタイプ)から無効
コピー(すなわち、Iタイプ)にダウングレードする。
これは定義上、システム10内の1つのボードが排他的
Mコピー(すなわち、この場合は要求側ボード510)
を有する場合、他のすべてのノードが無効Iコピーを有
すべきであるからである。
【0049】要求側ボード510は、経路550でキャ
ッシュ・ラインのコピーを受け取ると、排他的Mコピー
を得たことを内部で認識し、経路555上で肯定応答す
る。ホーム・ボード520は、経路555上で要求側ボ
ード510から肯定応答メッセージを受け取ると、要求
側ボード510がここでキャッシュ・ラインに書込みア
クセスを行えるようになったことを反映するようにディ
レクトリ・キャッシュ396を更新し、ロッキング・モ
ジュール398を用いて、このキャッシュ・ラインを伴
う他のトランザクションを実行できるようにすることが
できる。経路540、545、550、および555
は、一実施形態において、スイッチ20を通る経路であ
る(図1および図3参照)。
【0050】ホーム・ボード520内のキャッシュ・ラ
インにアクセスする他のトランザクションが行われる
と、たとえば、ホーム・ボード520のコヒーレンス・
モジュール382は通常、参照されたキャッシュ・ライ
ンのステータスを反映するようにディレクトリ・キャッ
シュ396を更新することができる。参照されたキャッ
シュ・ラインのステータスは、キャッシュ396の状態
(たとえば、M、I、S)、所有権などに関する情報を
含んでいる。ディレクトリ・キャッシュ396のサイズ
が有限であるため、任意の所与の時間に、ディレクトリ
・キャッシュ396内の特定のセット410が満杯にな
る可能性がある。ディレクトリ・キャッシュ396内の
特定のセット410が満杯になったときは、古いエント
リを破棄するかまたは古いエントリに上書きして新しい
エントリを格納することが望ましい。あるエントリは、
他のエントリと比べてディレクトリ・キャッシュ396
内に保持することが望ましいので、他のエントリと比べ
て保持することが望ましいエントリを識別する本発明の
一実施形態による方法を図6に示す。
【0051】図6の方法では、コヒーレンス・モジュー
ル382が、一実施形態において、メモリ・アクセス・
トランザクションを(605で)検出する。上述のよう
に、メモリ・アクセス・トランザクションは、RTO、
RTS、ライトストリーム、ライトバック、およびリー
ドストリームを含むが、これらに限らない。コヒーレン
ス・モジュール382は、一実施形態において、あるエ
ントリをディレクトリ・キャッシュ396内に格納(ま
たは更新)すべきかどうかを(610で)判定する。た
とえば、要求側ボード510によって開始されたメモリ
・アクセス・トランザクション(たとえば、RTO、R
TS)を受け取ったことに応答して、ディレクトリ・キ
ャッシュ396にエントリを格納する(図5参照)。し
かし、一実施形態では、すべてのメモリ・アクセス・ト
ランザクションによってディレクトリ・キャッシュ39
6内にエントリが作成できるとは限らない。ディレクト
リ・キャッシュ396にエントリを格納すべきではない
と(610で)判定された場合、図6の方法によって
(612で)引き続き通常の動作が行われる。
【0052】しかし、ディレクトリ・キャッシュ396
にエントリを格納することが望ましいと(610で)判
定された場合、コヒーレンス・モジュール382は、
(605で)検出されたトランザクションがRTOトラ
ンザクションであるか、それともライトストリーム・ト
ランザクションであるか、それともライトバック・トラ
ンザクションであるかを(615で)判定する。トラン
ザクションが上記の3つのトランザクションの1つであ
る場合、一実施形態において、コヒーレンス・モジュー
ル382は、ディレクトリ・キャッシュ396に格納す
べきエントリの保持値を(630で)算出する。保持値
は、一実施形態において、たとえば、ディレクトリ・キ
ャッシュ396内の対応するセット410が満杯である
ときにあるエントリを犠牲にすることが望ましいかどう
かを示す。保持値を算出する1つの方法を図7に示し、
以下に詳しく説明する。前述のように、ディレクトリ・
キャッシュ396に格納されているエントリの保持値
は、たとえば、保持ビット・フィールド475に保持す
ることができる(図4参照)。
【0053】コヒーレンス・モジュール382は、一実
施形態において、エントリとそれに関連する保持値をデ
ィレクトリ・キャッシュ396に(635で)格納す
る。一実施形態において、ディレクトリ・キャッシュ3
96に(635で)格納されたエントリに関連するLR
U値が判定され、(640で)格納される。その後、一
実施形態では、図6の方法によって(612で)引き続
き通常の動作が実行される。
【0054】メモリ・アクセス・トランザクションがR
TOトランザクション、ライトストリーム・トランザク
ション、およびライトバック・トランザクションのうち
の少なくとも1つではないと(615で)判定された場
合、コヒーレンス・モジュール382は、一実施形態に
おいて、ディレクトリ・キャッシュ396にエントリを
(645で)格納する。したがって、制限するわけでは
ないが、図示の実施形態において、たとえば、RTSト
ランザクションの場合、保持値は算出されない。コヒー
レンス・モジュール382は、一実施形態において、
(645で)格納されたエントリのLRU値を判定し
(640で)、ディレクトリ・キャッシュ396に格納
する。その後、一実施形態では、図6の方法によって
(612で)引き続き通常の動作が行われる。
【0055】次に図7を参照すると、本発明による、図
6のブロック630の保持値を算出する方法の一実施形
態が示されている。コヒーレンス・モジュール382
は、一実施形態において、検出されたメモリ・アクセス
・トランザクション(605で(図6参照))がライト
ストリーム・トランザクションであるかそれともライト
バック・トランザクションであるか(すなわち、RTO
トランザクションではないトランザクション)を(71
0で)判定する。検出されたトランザクションがライト
ストリーム・トランザクションであるか、ライトバック
・トランザクションである場合、コヒーレンス・モジュ
ール382は保持値を零に設定する。
【0056】制限するわけではないが、図示の実施形態
において、保持値が零であるDCエントリは、保持値が
1であるDCエントリよりも犠牲になる可能性が高い。
ライトストリーム・トランザクションまたはライトバッ
ク・トランザクションに関連するDCエントリについて
は、図示の実施形態では、このようなエントリが、以下
に詳しく説明するように、他の種類のエントリと比べて
保持に値しないので保持値零が割り当てられる。保持値
が算出された後、一実施形態では、図7の方法によって
引き続き図6のステップ635が実行される。
【0057】コヒーレンス・モジュール382は、一実
施形態において、(610で(図6参照))格納するこ
とが望ましいエントリの前の対応するエントリがディレ
クトリ・キャッシュ396にすでに格納されているかど
うかを(720で)判定する。ディレクトリ・キャッシ
ュ396が前の対応するエントリを含んでいない場合、
一実施形態において、コヒーレンス・モジュール396
は(715で)保持値を零に設定する。この例では、
(610で(図6参照))格納することが望ましいエン
トリが新しいエントリであるので、このエントリには、
他のエントリと比べて低い保持優先順位が割り当てられ
る。なぜなら、この新しいエントリは、ディレクトリ・
キャッシュ396内の他のエントリで上書きされた後再
び参照される可能性が低いため、他のエントリと比べて
保持に値しないからである。
【0058】前の対応するエントリが存在すると(72
0で)判定された場合、一実施形態において、コヒーレ
ンス・モジュール382は、すでに格納されているエン
トリがホーム・ボード520によって所有されているか
どうかを(725で)判定する。すでに格納されている
エントリがホーム・ボード520によって所有されてい
る場合、コヒーレンス・モジュール382は、一実施形
態において、保持値を(715で)零に設定する。
【0059】前の対応するエントリが存在すると(72
0で)判定された場合、一実施形態において、コヒーレ
ンス・モジュール382は、すでに格納されているエン
トリがホーム・ボード520以外のボードによって共用
または所有されているかどうかを(730で)判定す
る。そうである場合、コヒーレンス・モジュール382
は、一実施形態において、(740で)保持値を零に設
定する。制限するわけではないが、図示の実施形態にお
いて、共用ステータス(または「他のボードによって所
有されている」ステータス)を有するすでに格納されて
いるエントリには高い保持値(すなわち、1)が割り当
てられる。というのは、このようなエントリに関連する
キャッシュ・ラインは、近い将来に再びアクセスされる
可能性が高いからである。すでに格納されているエント
リがホーム・ボード520以外のボードによって共用ま
たは所有されていない場合、一実施形態において、保持
ビット値は(715で)零に設定され、その後、図7の
方法によって引き続き図6のブロック635に進む。
【0060】図7の方法が保持値を算出する一例を構成
するものであり、他の実施形態では、実装に応じて異な
る方式を使用できることを理解されたい。さらに、他の
実施形態において、選択されたメモリ・アクセス・トラ
ンザクションに与えられる優先順位は、前述の実施形態
とは異なる優先順位であってもよい。
【0061】次に図8および図9A〜9Cを参照する
と、ディレクトリ・キャッシュ396の特定のセット4
10内の1つまたは複数のエントリを犠牲にする方法の
一実施形態が示されている。図9A〜9Cには、複数の
例示的なエントリ910(1〜3)、920(1〜
3)、940(1〜3)がセット410内に格納されて
いるディレクトリ・キャッシュ396の模式的な実施形
態が示されている。以下の説明では、図8の方法の図示
の実施形態を理解するうえで有用なときはいつでも図9
A〜9Cのうちの1つまたは複数を参照する。例示を容
易にするために、いくつかの仮定を行う。特に、本明細
書では、図9A〜9Cのディレクトリ・キャッシュ39
6の関連するセット410が満杯であり、ディレクトリ
・キャッシュ396がホーム・ボード520に関連付け
されており(図2参照)、ディレクトリ・キャッシュ3
96の満杯のセット410に新しいエントリを格納する
ことが望ましいトランザクションをホーム・ボード52
0が受け取りていると仮定する。
【0062】本発明の一実施形態によれば、以下に詳し
く説明するように、ディレクトリ・キャッシュ396の
セット410に格納されているエントリを、以下の順序
で犠牲にすることができる。(1)ディレクトリ・キャ
ッシュ396のセット410内の無効なエントリ、
(2)ホーム・ボード520によって所有されている、
保持値が零のエントリ、(3)ホーム・ボード520以
外の所有者を有するか、または共用エントリである、保
持値が零であるエントリ、(4)保持値が1であるエン
トリ。複数のエントリが上記の範疇のうちの1つに入る
場合、一実施形態では、犠牲にすべき少なくとも1つの
エントリを選択するのにLRMフィールド430内のL
RM値を用いることができる(図4参照)。上記に示し
た犠牲順序は本質的に例示的な順序であり、他の実施形
態では、実装に応じて順序を変えてよいことを理解され
たい。
【0063】一実施形態において、ディレクトリ・キャ
ッシュ396内のエントリにアクセスする際、コヒーレ
ンス・モジュール382は、このエントリが属するセッ
ト410を読み取ることができる。あるいは、他の実施
形態において、コヒーレンス・モジュール382は、エ
ントリごとにディレクトリ・キャッシュ396にアクセ
スすることができる。ディレクトリ・キャッシュ396
にアクセスする方法は実装固有の方法であってよい。
【0064】再び図8を参照するとわかるように、ホー
ム・ボード520のコヒーレンス・モジュール382
は、一実施形態において、ディレクトリ・キャッシュ3
96のセット410が無効な1つまたは複数のエントリ
910(1〜m)を含むかどうかを(810で)判定す
る。前述のように、図示の実施形態では、ディレクトリ
・キャッシュ396に2種類のエントリ、すなわち共用
エントリ910(1)または所有済みエントリ910
(2〜3)を格納することができる。一実施形態におい
て、所有済みエントリ437(図4参照)の有効フィー
ルド470(図4参照)は、ディレクトリ・キャッシュ
396内のエントリのうちのどれが無効であるかを示す
ことができる。ディレクトリ・キャッシュ396は、リ
セットまたは再初期設定の後、最初は、たとえば無効な
エントリを含む可能性がある。ホーム・ボード520の
コヒーレンス・モジュール382が、ディレクトリ・キ
ャッシュ396に1つまたは複数の無効なエントリが存
在すると(810で)判定した場合、1つまたは複数の
無効なエントリによって占有されているスロットに新し
いエントリを(815で)格納することができる。
【0065】たとえば、図9Aにおいて、有効フィール
ド470内の文字「I」で示されているように、ディレ
クトリ・キャッシュ396のエントリ910(2)は無
効なエントリである。そのため、一実施形態では、この
無効なエントリ920(3)に新しいエントリを上書き
することができる。図9Aの例示的なディレクトリ・キ
ャッシュ396において、エントリ910(3)の有効
フィールド470内の文字「V」で表されているよう
に、他方の所有済みエントリ910(3)は有効なエン
トリである。
【0066】図9Bの例示的なディレクトリ・キャッシ
ュ396の場合と同様に、ディレクトリ・キャッシュ3
96のセット410内に無効なエントリがない場合、コ
ヒーレンス・モジュール382は、一実施形態におい
て、ディレクトリ・キャッシュ396に格納されている
エントリのうちのどれかが保持値零を有するかどうかを
(825で)判定する。たとえば、図9Bのディレクト
リ・キャッシュ396において、保持フィールド465
に格納されている「0」で示されるように、エントリ9
20(1〜2)の保持値は零である。上述のように、図
示の実施形態において、保持値が零であるエントリは、
所与のセット410内の保持値を有するエントリと比べ
て保持に値しない。
【0067】1つまたは複数のエントリの保持値が零で
ある場合、コヒーレンス・モジュール382は、一実施
形態において、このような(1つまたは複数の)エント
リの所有者がホーム・ボード520であるかどうかを
(830で)判定する。所有者がホーム・ボード520
である場合、コヒーレンス・モジュール582は、所有
者がホーム・ボード520である保持値が零のエントリ
が複数あるかどうかを(835で)判定する。図9Bに
おいて、保持値が零のエントリ920(1〜2)は共
に、所有者がホーム・ボード520である。
【0068】コヒーレンス・モジュール382は、図9
Bのディレクトリ・キャッシュ396の場合と同様に、
所有者がホーム・ボード520である保持値が零のエン
トリが複数あると(835で)判定した場合、一実施形
態において、エントリに関連するLRM値に基づいてこ
れらのエントリのうちの1つを(840で)識別し、こ
のエントリに新しいエントリを上書きする。たとえば、
図9Bで、各エントリ920(1〜2)の保持値は零で
あり、各エントリの所有者はホーム・ボード520であ
る。2つのエントリ920(1〜2)のうちのどちらを
新しいエントリで置き換えるべきかを判定するため、最
も早く修正されたのは2つのエントリ920(1〜2)
のうちのどちらかであるかが、LRMフィールド430
内のLRMビット(「100」)を用いて判定される。
上記の表2に示すように、LRMビット「100」のシ
ーケンスにより、図示の実施形態では、最も遅く修正さ
れたフィールドが920(1)であり、最も早く修正さ
れたフィールドが920(2)であることがわかる。こ
のため、図9Bに示された例におけるフィールド920
(2)が犠牲にされ、新しいエントリ用の空間がもうけ
られる。
【0069】(835で)複数のエントリがない(すな
わち、R=0でありHome=Home Boardで
あるエントリが1つだけである)場合、コヒーレンス・
モジュール382は、一実施形態において、保持値が零
であり所有者がホーム・ボード520である1つのエン
トリを(837で)新しいエントリで置きかえる。
【0070】保持値が零である(1つまたは複数の)エ
ントリの所有者がホーム・ボード520ではないと(8
30で)判定された場合、一実施形態において、コヒー
レンス・モジュール382は、所有者がホーム・ボード
520ではない(すなわち、ホーム・ボード520以外
のあるボードがこのエントリの所有者である)保持値が
零のエントリが1つまたは複数あるかどうかを(845
で)判定する。保持値が零に等しく所有者がホーム・ボ
ード520ではないエントリが1つだけあると(845
で)判定された場合、このエントリに新しいエントリが
(837で)上書きされる。
【0071】コヒーレンス・モジュール382は、所有
者がホーム・ボード520ではない保持値が零のエント
リが複数あると(845で)判定した場合、一実施形態
において、エントリに関連するLRM値に基づいてこれ
らのエントリのうちの1つを(840で)識別し、この
エントリに新しいエントリを上書きする。
【0072】コヒーレンス・モジュール382は、一実
施形態において、ディレクトリ・キャッシュ396に格
納されているエントリのうちで共用ステータス(すなわ
ち、「所有済み」ステータスではないステータス)を有
するエントリがあるかどうか(855で)を判定する。
たとえば、図9Bを参照するとわかるように、識別子フ
ィールド440の「1」で示されているように、エント
リ920(3)は共用エントリである。「共用ステータ
ス」は、前述のように、エントリがシステム10内のボ
ード・セット29(1〜n)内の1つまたは複数のボー
ド40によって共用されていることを示す。共用ステー
タスを有するエントリが少なくとも1つあると(855
で)判定された場合、コヒーレンス・モジュール382
は、一実施形態において、ディレクトリ・キャッシュ3
96が複数の共用エントリを含んでいるかどうかを(8
60で)判定する。1つの共用エントリのみが存在する
場合、コヒーレンス・モジュール382は共用エントリ
に新しいエントリを(865で)上書きする。図9Bに
示されている例には、1つの共用エントリ920(1)
のみが存在する。このため、図示の例では、共用エント
リ920(3)に新しいエントリを上書きすることがで
きる。しかし、ディレクトリ・キャッシュ396に複数
の共用エントリが存在する場合、コヒーレンス・モジュ
ール382は、一実施形態において、関連するLRM値
に基づいてこれらのエントリのうちの1つを(840
で)識別し、識別されたエントリに新しいエントリを上
書きする。
【0073】コヒーレンス・モジュール382は、一実
施形態において、保持値が1であるエントリが複数存在
するかどうかを(870で)判定する。保持値が1のエ
ントリがディレクトリ・キャッシュ内に複数は存在しな
い(すなわち、そのようなエントリが1つだけである)
場合、コヒーレンス・モジュール382は、そのエント
リに新しいエントリを(865で)上書きする。しか
し、保持値が1に等しいエントリが複数あると(870
で)判定された場合、コヒーレンス・モジュール382
は、一実施形態において、格納されているエントリに関
連するLRM値に基づいてこれらのエントリのうちの1
つを(840で)識別し、識別されたエントリに新しい
エントリを上書きする。
【0074】たとえば、図9Cに示すように、各エント
リ940(1〜3)の保持ビット・フィールド475に
格納されている数字「1」で示されるように、エントリ
940(1〜3)の保持値は1である。保持値が1のエ
ントリが複数存在するので、図示の例では、LMRフィ
ールド430内のLRMビット(「010」)を用いて
3つのエントリ940(1〜3)のうちの、犠牲にすべ
き1つのエントリが選択される。図示の実施形態におい
て、LRMビット「010」は、エントリ940(2)
が最も早く修正されたエントリであり(表2参照)、し
たがって、エントリ940(2)に新しいエントリが上
書きされることを示している。
【0075】様々なシステム・レイヤ、ルーチン、また
はモジュールは、実行可能な制御ユニット(制御ユニッ
ト389(図3参照)など)であってよい。各制御ユニ
ットは、マイクロプロセッサ、マイクロコントローラ、
デジタル信号プロセッサ、プロセッサ・カード(1つま
たは複数のマイクロプロセッサまたはコントローラを含
む)、あるいは他の制御デバイスまたは計算デバイスを
含んでよい。
【0076】この議論で参照した格納デバイスは、デー
タおよび命令を格納する1つまたは複数の機械読取り可
能な格納媒体を含んでいる。この格納媒体は、ダイナミ
ック・ランダム・アクセス・メモリまたはスタティック
・ランダム・アクセス・メモリ(DRAMまたはSRA
M)、消去且つプログラム可能な読取り専用メモリ(E
PROM)、電気的に消去且つプログラム可能な読取り
専用メモリ(EEPROM)、フラッシュ・メモリなど
の半導体メモリデバイス、固定ディスク、フロッピィ・
ディスク、取外し可能なディスクなどの磁気ディスク、
テープを含む他の磁気媒体、ならびにコンパクト・ディ
スク(CD)やデジタル・ビデオ・ディスク(DVD)
などの光学媒体を含む様々な形態のメモリを含んでよ
い。様々なシステムにおける様々なソフトウェア・レイ
ヤ、ルーチン、またはモジュールを構成する命令をそれ
ぞれの格納デバイスに格納することができる。このよう
な命令がそれぞれの制御ユニットによって実行される
と、対応するシステムが、プログラムされた動作を実行
する。
【0077】上記に開示した特定の実施形態は例示的な
実施形態に過ぎず、本発明は、本明細書内の教示の利益
を有する当業者に明らかな、それぞれ異なるが同等の方
法で修正し実施してよい。さらに、特許請求の範囲に記
載された制限を除いて、本明細書で図示した構造または
設計の詳細に対する制限は意図されていない。したがっ
て、上記に開示した特定の実施形態を変更または修正し
てよく、かつそのようなすべての変形が本発明の範囲お
よび趣旨の範囲内であるとみなされることは明白であ
る。したがって、本明細書で求められる保護は特許請求
の範囲に記載されているとおりである。
【図面の簡単な説明】
【図1】本発明の一実施形態によるシステムの模式的な
ブロック図である。
【図2】本発明の一実施形態による、図1のシステムで
使用できる例示的なドメイン構成のブロック図である。
【図3】本発明の一実施形態による、図1のシステムで
使用できる1つのシステム・ボード・セットの模式的な
ブロック図である。
【図4】本発明の一実施形態による、図1のシステムで
使用できる例示的なディレクトリ・キャッシュを示す図
である。
【図5】本発明の一実施形態による、図1のシステムの
1つまたは複数のボード間の様々な通信経路を含む状態
図である。
【図6】本発明の一実施形態による、図1のシステムの
ディレクトリ・キャッシュに保持するのに有用な1つま
たは複数のディレクトリ・キャッシュ・エントリを識別
する方法の流れ図である。
【図7】本発明の一実施形態による、図1のシステムの
ディレクトリ・キャッシュに格納されている1つまたは
複数のエントリに関連する保持値を求める方法の流れ図
である。
【図8】本発明の一実施形態による、図1のシステムの
ディレクトリ・キャッシュ内の1つまたは複数のエント
リを犠牲にする方法の流れ図である。
【図9A】本発明による、例示的なエントリを含む図1
のシステムのディレクトリ・キャッシュの模式的な実施
形態を示す図である。
【図9B】本発明による、例示的なエントリを含む図1
のシステムのディレクトリ・キャッシュの模式的な実施
形態を示す図である。
【図9C】本発明による、例示的なエントリを含む図1
のシステムのディレクトリ・キャッシュの模式的な実施
形態を示す図である。
【符号の説明】
10 システム 15(1〜2) システム制御ボード 20、367、380 スイッチ 21(1〜2)、50(1〜n) ライン 22 システム・コントローラ・フェールオーバ・ソフ
トウェア 29(1〜n) システム・ボード・セット 30 システム・ボード 35 入出力ボード 40 拡張ボード 360(1〜4) プロセッサ 361(1〜2) メモリ 362(1〜4) キャッシュ・メモリ 365(1〜2) 5ポート・デュアル・データ・スイ
ッチ 370 コントローラ 372(1〜p) PCIスロット 374 第2のコントローラ 376(1〜o) 入出力スロット 382 コヒーレンス・モジュール 384 データ・スイッチ 386 アドレス・スイッチ 388 応答スイッチ 390 ホーム・エージェント 392 要求エージェント 394 スレーブ・エージェント 396 ディレクトリ・キャッシュ 410 3ワイドDCエントリ 415(0〜2) DCエントリ・フィールド 420(0〜2) アドレス・パリティ・フィールド 430 LRMフィールド 435 共用エントリ 437 所有済みエントリ 440、455 識別子フィールド 445 マスク・フィールド 450 アドレス・タグ・フィールド 460 所有者フィールド 465 タグ・フィールド 470 有効フィールド 475 保持ビット・フィールド 510 要求側ボード 520 ホーム・ボード 530 スレーブ・ボード 540 経路
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 15/167 G06F 15/167 B 15/177 682 15/177 682J (72)発明者 パトリシア・シャナハン アメリカ合衆国・92126・カリフォルニア 州・サン ディエゴ・ステンウェル コー ト・10662 (72)発明者 アンドリュー・イー・フェルプス アメリカ合衆国・92024・カリフォルニア 州・エンシニタス・オータム プレイス・ 1811 Fターム(参考) 5B005 KK13 MM01 PP11 QQ00 5B045 DD01 DD12 KK07 5B060 KA02 KA06 KA08

Claims (26)

    【特許請求の範囲】
  1. 【請求項1】 メモリ・アクセス・トランザクションを
    検出すること、 メモリ・アクセス・トランザクションの種類に基づいて
    保持値を求めること、 メモリ・アクセス・トランザクションに関連するエント
    リに保持値を格納することを含む方法。
  2. 【請求項2】 メモリ・アクセス・トランザクションを
    検出することが、システム内のキャッシュ・ラインにア
    クセスするトランザクションを検出することを含む請求
    項1に記載の方法。
  3. 【請求項3】 保持値を格納することが、ディレクトリ
    ・キャッシュにエントリを格納することを含む請求項1
    に記載の方法。
  4. 【請求項4】 保持値を求めることが、保持値に関連す
    るエントリを保持することが望ましいかどうかを示す少
    なくとも1つのビット値を求めることを含む請求項3に
    記載の方法。
  5. 【請求項5】 複数のエントリおよび該複数のエントリ
    のそれぞれに関連する保持値をディレクトリ・キャッシ
    ュに格納することをさらに含む請求項4に記載の方法。
  6. 【請求項6】 ディレクトリ・キャッシュがアソシエテ
    ィブ・キャッシュであり、ディレクトリ・キャッシュ
    の、満杯のセットに格納すべき新しいエントリを受け取
    ることをさらに含む請求項5に記載の方法。
  7. 【請求項7】 格納されているエントリに関連する保持
    値に基づいてディレクトリ・キャッシュに格納されてい
    るエントリのうちの少なくとも1つを選択し、選択され
    たエントリにディレクトリ内の新しいエントリを上書き
    することをさらに含む請求項6に記載の方法。
  8. 【請求項8】 格納されているエントリが関連する最近
    修正が最も少ないLRM値を有し、2つ以上の格納され
    ているエントリが同じ保持値を有するとき、LRM値に
    基づいて、置きかえるべき同じ保持値を有する少なくと
    も1つの格納されているエントリを選択することをさら
    に含む請求項6に記載の方法。
  9. 【請求項9】 命令を含む1つまたは複数の機械読取り
    可能な格納媒体を備える製品であって、前記命令によっ
    てプロセッサが、 第1のコヒーレンス方式を使用して第1のシステム・ボ
    ード・セット内のメモリ・トランザクションのコヒーレ
    ンスを実行し、 第2のコヒーレンス方式を使用して第1のシステム・ボ
    ード・セットと第2のシステム・ボード・セットとの間
    のメモリ・トランザクションのコヒーレンスを実行する
    ことができ、第2のコヒーレンス方式において、新しい
    エントリを格納する際にどのエントリを犠牲にするかを
    示す、ディレクトリ・キャッシュに格納されている1つ
    または複数のエントリに関連する保持値を用いて示され
    る製品。
  10. 【請求項10】 命令が実行されたときに、プロセッサ
    が、システム・スケーラブル共用メモリ・プロトコルを
    使用して第1のシステム・ボード・セットと第2のシス
    テム・ボード・セットとの間のメモリ・トランザクショ
    ンのコヒーレンスを実行することができる請求項9に記
    載の製品。
  11. 【請求項11】 命令が実行されたときに、プロセッサ
    が、MESIキャッシュ・コヒーレンス・プロトコルを
    使用して第1のシステム・ボード・セット内のメモリ・
    トランザクションのコヒーレンスを実行することができ
    る請求項9に記載の製品。
  12. 【請求項12】 命令が実行されたときに、プロセッサ
    が、1つまたは複数のエントリが同じ保持値を有する際
    にLRM値を使用して新しいエントリを格納するときに
    どのエントリを犠牲にすべきかを示すことができる請求
    項9に記載の製品。
  13. 【請求項13】 命令が実行されたときに、プロセッサ
    が、ディレクトリ・キャッシュ内の1つまたは複数のエ
    ントリに関連する保持値を格納することができる請求項
    9に記載の製品。
  14. 【請求項14】 ディレクトリ・キャッシュであって、 エントリに関連するアドレスを格納するアドレス・フィ
    ールドと、 エントリが、少なくとも1つの他のエントリに対して修
    正された順序を示す修正状態フィールドと、 エントリをディレクトリ・キャッシュ内に保持するのが
    望ましいかどうかを示す、エントリに関連する保持値を
    格納する保持フィールドとを備えるディレクトリ・キャ
    ッシュ。
  15. 【請求項15】 エントリが有効であるかどうかを示す
    有効フィールドをさらに備える請求項14に記載のディ
    レクトリ・キャッシュ。
  16. 【請求項16】 エントリに対応するキャッシュ・ライ
    ンの有効なコピーを現在保持しているデバイスを識別す
    る所有者フィールドをさらに備える請求項14に記載の
    ディレクトリ・キャッシュ。
  17. 【請求項17】 エントリに対応するキャッシュ・ライ
    ンに対して読取りアクセスを行えるのはどのデバイスか
    を示すマスク・フィールドをさらに備える請求項14に
    記載のディレクトリ・キャッシュ。
  18. 【請求項18】 複数のアドレス・フィールドをさらに
    備える請求項14に記載のディレクトリ・キャッシュ。
  19. 【請求項19】 ディレクトリ・キャッシュと、 メモリ・アクセス・トランザクションを検出し、メモリ
    ・アクセス・トランザクションの種類に基づいて保持値
    を求め、メモリ・アクセス・トランザクションに関連す
    る保持値をディレクトリ・キャッシュに格納するように
    適合されている制御ユニットとを備える装置。
  20. 【請求項20】 ディレクトリ・キャッシュがスリーウ
    ェイ・アソシエティブ・キャッシュである請求項19に
    記載の装置。
  21. 【請求項21】 制御ユニットが、キャッシュされたエ
    ントリにアクセスするトランザクションを検出するよう
    に適合されている請求項19に記載の装置。
  22. 【請求項22】 制御ユニットが、メモリ・アクセス・
    トランザクションが書込みアクセスおよび読取りアクセ
    スを求める少なくとも1つのメモリ要求であるかどうか
    に基づいて保持値を求めるように適合されている請求項
    19に記載の装置。
  23. 【請求項23】 保持値が、保持値に関連するエントリ
    を保持することが望ましいかどうかを示す請求項19に
    記載の装置。
  24. 【請求項24】 請求項ユニットが、複数のエントリお
    よび該複数のエントリのそれぞれに関連する保持値をデ
    ィレクトリ・キャッシュに格納するように適合されてい
    る請求項19に記載の装置。
  25. 【請求項25】 制御ユニットが、ディレクトリ・キャ
    ッシュに格納される新しいエントリを受け取り、格納さ
    れているエントリに関連する保持値に基づいてディレク
    トリ・キャッシュから少なくとも1つの格納されている
    エントリを選択し、選択されたエントリにディレクトリ
    ・キャッシュ内の新しいエントリを上書きするように適
    合されている請求項24に記載の装置。
  26. 【請求項26】 格納されているエントリが、関連する
    LRM値を有し、2つ以上の格納されているエントリが
    同じ保持値を有し、制御ユニットが、LRM値に基づい
    て、格納されているエントリから、新しいエントリで置
    きかえるべき同じ保持値を有する少なくとも1つの格納
    されているエントリを選択するように適合されている請
    求項25に記載の装置。
JP2002300016A 2001-10-17 2002-10-15 ディレクトリ・キャッシュの更新 Pending JP2003186742A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/981,532 US6721852B2 (en) 2001-10-17 2001-10-17 Computer system employing multiple board sets and coherence schemes
US09/981532 2001-10-17

Publications (1)

Publication Number Publication Date
JP2003186742A true JP2003186742A (ja) 2003-07-04

Family

ID=25528440

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002300016A Pending JP2003186742A (ja) 2001-10-17 2002-10-15 ディレクトリ・キャッシュの更新

Country Status (3)

Country Link
US (1) US6721852B2 (ja)
EP (1) EP1304621A3 (ja)
JP (1) JP2003186742A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010052799A1 (ja) * 2008-11-10 2010-05-14 富士通株式会社 情報処理装置及びメモリ制御装置
WO2010100679A1 (ja) * 2009-03-06 2010-09-10 富士通株式会社 コンピュータシステム、制御方法、記録媒体及び制御プログラム
JP2015530651A (ja) * 2012-12-17 2015-10-15 インスパー・エレクトロニック・インフォメーション・インダストリー・コーポレーション・リミテッド マルチプロセサシステムおよびマルチプロセサシステムの構成方法
US9430397B2 (en) 2011-03-11 2016-08-30 Fujitsu Limited Processor and control method thereof

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040008213A1 (en) * 2002-07-11 2004-01-15 Sun Microsystems, Inc., A Delaware Corporation Tagging multicolor images for improved compression
US20040008214A1 (en) * 2002-07-11 2004-01-15 Sun Microsystems, Inc., A Delaware Corporation Tagging repeating images for improved compression
US20040008205A1 (en) * 2002-07-11 2004-01-15 Sun Microsystems, Inc., A Delaware Corporation Tagging single-color images for improved compression
US7046250B1 (en) 2002-07-11 2006-05-16 Sun Microsystems, Inc. Caching fonts for improved bandwidth of transmitted text
CA2645927A1 (en) * 2005-11-09 2008-05-02 Sapias, Inc. Geospatially aware vehicle security
US8244983B2 (en) 2006-10-30 2012-08-14 Hewlett-Packard Development Company, L.P. Memory control systems with directory caches and methods for operation thereof
US20090193195A1 (en) * 2008-01-25 2009-07-30 Cochran Robert A Cache that stores data items associated with sticky indicators
US8417892B1 (en) * 2009-08-28 2013-04-09 Google Inc. Differential storage and eviction for information resources from a browser cache
US9720829B2 (en) 2011-12-29 2017-08-01 Intel Corporation Online learning based algorithms to increase retention and reuse of GPU-generated dynamic surfaces in outer-level caches
WO2013101092A1 (en) * 2011-12-29 2013-07-04 Intel Corporation Data control using last accessor information
US9372811B2 (en) * 2012-12-13 2016-06-21 Arm Limited Retention priority based cache replacement policy
GB2539383B (en) * 2015-06-01 2017-08-16 Advanced Risc Mach Ltd Cache coherency
GB2539382B (en) * 2015-06-01 2017-05-24 Advanced Risc Mach Ltd Cache coherency
US11188480B1 (en) * 2020-05-12 2021-11-30 Hewlett Packard Enterprise Development Lp System and method for cache directory TCAM error detection and correction

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5664121A (en) * 1995-11-07 1997-09-02 Sun Microsystems, Inc. Dual mode arbitration apparatus and method for reducing latency by allowing the possibility of simultaneous request and access for a shared bus
US5829033A (en) * 1996-07-01 1998-10-27 Sun Microsystems, Inc. Optimizing responses in a coherent distributed electronic system including a computer system
US5911052A (en) * 1996-07-01 1999-06-08 Sun Microsystems, Inc. Split transaction snooping bus protocol
US5864671A (en) * 1996-07-01 1999-01-26 Sun Microsystems, Inc. Hybrid memory access protocol for servicing memory access request by ascertaining whether the memory block is currently cached in determining which protocols to be used
US5897657A (en) * 1996-07-01 1999-04-27 Sun Microsystems, Inc. Multiprocessing system employing a coherency protocol including a reply count
US5802563A (en) * 1996-07-01 1998-09-01 Sun Microsystems, Inc. Efficient storage of data in computer system with multiple cache levels
EP0908825B1 (en) * 1997-10-10 2002-09-04 Bull S.A. A data-processing system with cc-NUMA (cache coherent, non-uniform memory access) architecture and remote access cache incorporated in local memory
US6542966B1 (en) * 1998-07-16 2003-04-01 Intel Corporation Method and apparatus for managing temporal and non-temporal data in a single cache structure
US6490654B2 (en) * 1998-07-31 2002-12-03 Hewlett-Packard Company Method and apparatus for replacing cache lines in a cache memory
US6532520B1 (en) * 1999-09-10 2003-03-11 International Business Machines Corporation Method and apparatus for allocating data and instructions within a shared cache
WO2002003207A1 (en) * 2000-06-30 2002-01-10 Koninklijke Philips Electronics N.V. Data processing apparatus with a cache memory and method of using such an apparatus

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010052799A1 (ja) * 2008-11-10 2010-05-14 富士通株式会社 情報処理装置及びメモリ制御装置
JP5136652B2 (ja) * 2008-11-10 2013-02-06 富士通株式会社 情報処理装置及びメモリ制御装置
US8725954B2 (en) 2008-11-10 2014-05-13 Fujitsu Limited Information processing apparatus and memory control apparatus
WO2010100679A1 (ja) * 2009-03-06 2010-09-10 富士通株式会社 コンピュータシステム、制御方法、記録媒体及び制御プログラム
US8700863B2 (en) 2009-03-06 2014-04-15 Fujitsu Limited Computer system having a cache memory and control method of the same
US9430397B2 (en) 2011-03-11 2016-08-30 Fujitsu Limited Processor and control method thereof
JP2015530651A (ja) * 2012-12-17 2015-10-15 インスパー・エレクトロニック・インフォメーション・インダストリー・コーポレーション・リミテッド マルチプロセサシステムおよびマルチプロセサシステムの構成方法

Also Published As

Publication number Publication date
US20030079086A1 (en) 2003-04-24
EP1304621A2 (en) 2003-04-23
EP1304621A3 (en) 2007-07-11
US6721852B2 (en) 2004-04-13

Similar Documents

Publication Publication Date Title
US6088769A (en) Multiprocessor cache coherence directed by combined local and global tables
US6647453B1 (en) System and method for providing forward progress and avoiding starvation and livelock in a multiprocessor computer system
JP2003162447A (ja) エラー回復
US7613884B2 (en) Multiprocessor system and method ensuring coherency between a main memory and a cache memory
US5893149A (en) Flushing of cache memory in a computer system
US5897664A (en) Multiprocessor system having mapping table in each node to map global physical addresses to local physical addresses of page copies
EP1311955B1 (en) Method and apparatus for centralized snoop filtering
JP2003186742A (ja) ディレクトリ・キャッシュの更新
US6826653B2 (en) Block data mover adapted to contain faults in a partitioned multiprocessor system
US6654858B1 (en) Method for reducing directory writes and latency in a high performance, directory-based, coherency protocol
US7386680B2 (en) Apparatus and method of controlling data sharing on a shared memory computer system
US6772298B2 (en) Method and apparatus for invalidating a cache line without data return in a multi-node architecture
US20080270708A1 (en) System and Method for Achieving Cache Coherency Within Multiprocessor Computer System
CN103294611A (zh) 一种基于有限数据一致性状态的服务器节点数据缓存方法
TWI428754B (zh) 以主動式預取寬度執行加強式停懸狀態之系統及方法
CN107368435B (zh) 一种精简目录及利用该精简目录实现Cache一致性监听的方法
US6671792B1 (en) Share masks and alias for directory coherency
CA2665057A1 (en) Enhanced coherency tracking with implementation of region victim hash for region coherence arrays
EP1490765A2 (en) Shared resource domains
US9667735B2 (en) Content centric networking
US7669013B2 (en) Directory for multi-node coherent bus
US20090031086A1 (en) Directory For Multi-Node Coherent Bus
US6961827B2 (en) Victim invalidation
US6895476B2 (en) Retry-based late race resolution mechanism for a computer system
US8028130B1 (en) Pipeline structure for a shared memory protocol