JP2003162447A - エラー回復 - Google Patents

エラー回復

Info

Publication number
JP2003162447A
JP2003162447A JP2002300027A JP2002300027A JP2003162447A JP 2003162447 A JP2003162447 A JP 2003162447A JP 2002300027 A JP2002300027 A JP 2002300027A JP 2002300027 A JP2002300027 A JP 2002300027A JP 2003162447 A JP2003162447 A JP 2003162447A
Authority
JP
Japan
Prior art keywords
error
directory cache
storage device
cache
board
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
JP2002300027A
Other languages
English (en)
Inventor
Donald Kane
ドナルド・ケイン
Daniel P Drogichen
ダニエル・ピイ・ドロギチェン
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 JP2003162447A publication Critical patent/JP2003162447A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories

Abstract

(57)【要約】 【課題】 システムにおけるエラーを回復する方法およ
び装置を提供すること。 【解決手段】 この装置は、少なくとも1つのエントリ
を格納するように適合されているディレクトリ・キャッ
シュと、制御ユニットとを備える。制御ユニットは、デ
ィレクトリ・キャッシュ内に少なくとも1つの修正不能
なエラーが存在するかどうかを判定し、エラーが修正不
能であると判定されたことに応答してディレクトリ・キ
ャッシュをオフラインにするように適合されている。こ
の方法は、システム内の格納デバイスに格納されている
データのエラーを検出し、検出されたエラーが修正可能
であるかどうかを判定することを含む。この方法は、エ
ラーが修正不能であると判定されたことに応答して、シ
ステム内の1つまたは複数のリソースが格納デバイスの
少なくとも一部を利用できなくなるようにすることをさ
らに含む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、全体として、プロ
セッサ・ベースのシステムに関し、より詳細には、分散
共用メモリ・プロセッサ・ベースのシステムのディレク
トリ・キャッシュにおけるエラー回復に関する。
【0002】
【従来の技術】企業は通常、他の企業に対する競争上の
利点を維持するうえでネットワーク・コンピューティン
グを利用する。そのため、ネットワーク中心の環境で使
用されるプロセッサ・ベースのシステムを設計する際、
顧客の期待にかなうように、開発者はシステムの機能、
信頼、スケーラビリティ、性能などいくつかの因子を考
慮する。
【0003】ネットワーク中心の環境で使用されるプロ
セッサ・ベースのシステムの一例として、ミッドレンジ
・サーバ・システムがある。単一のミッドレンジ・サー
バ・システムは、たとえば、1つまたは複数のドメイン
として構成できる複数のシステム・ボードを有してい
る。ドメインは、たとえば、オペレーティング・システ
ムのドメイン自体のインスタンスを動作させて1つまた
は複数の構成済みのタスクを実行することによって独立
のマシンとして働くことができる。
【0004】ミッドレンジ・サーバは、一実施形態にお
いて、分散共用メモリ・システムを使用することがで
き、1つのシステム・ボードのプロセッサが他のシステ
ム・ボードのメモリ・コンテンツにアクセスすることが
できる。ミッドレンジ・サーバのシステム・ボード上の
すべてのメモリがまとまって分散共用メモリ(DSM)
を構成する。
【0005】システム内の他のシステム・ボードのデー
タにアクセスする方法として、共通バス上でメモリ要求
をブロードキャストすることが挙げられる。たとえば、
要求側システム・ボードは、他のシステム・ボードのメ
モリに存在するメモリ・ラインに格納されている情報に
アクセスする必要がある場合、通常、共通バス上でメモ
リ・アクセス要求をブロードキャストする。システム内
のすべてのシステム・ボードが同じ要求を受け取ること
ができ、次いで、メモリ・アクセス要求に与えられたメ
モリ・アドレスにメモリ・アドレス範囲が一致するシス
テム・ボードが応答することができる。
【0006】
【発明が解決しようとする課題】他のシステム・ボード
内のメモリにコンテンツにアクセスするブロードキャス
ト手法は、比較的少数のシステム・ボードがシステム内
に存在するときにはうまく働くことができる。しかし、
このような手法は、システム・ボードの数が増えるにつ
れて不適切なものになっていく。システム・ボードの数
が多くなるにつれて、メモリ・アクセス要求の数も増え
ていき、したがって、この増大したトラフィックに対処
するには、メモリ・アクセスを適切なタイミングで完了
できるようにより大きく、より高速のバスが必要であ
る。大きなバスを高速で動作させると、1つにはキャパ
シタンス、インダクタンスなどが大きいことによる電気
的な欠点によって問題が生じる。さらに、システム内の
ボードの数が多くなると余分のブロードキャストが必要
になり、望ましくない遅延がさらに長くなり、余分のブ
ロードキャストに対処するための追加の処理能力が必要
になる。
【0007】メモリ要求をグローバルにブロードキャス
トしなくても済むようにするのに、設計者は、分散共用
メモリ・システムでディレクトリ・キャッシュを用いる
ことを提案している。通常、各システム・ボードは、選
択されたメモリ・アドレス範囲内のメモリ・ライン用の
ホーム・ボードとして働き、各システム・ボードはシス
テム内の他のシステム・ボードに属するメモリ・アドレ
ス範囲と認識する。各ホーム・ボードは一般に、アドレ
ス範囲に入るメモリ・ライン用の独自のディレクトリ・
キャッシュを維持する。したがって、要求側ボードが他
のボードのメモリ・コンテンツにアクセスする必要があ
るとき、メモリ要求をシステム内で全体的にブロードキ
ャストする代わりに、要求が適切なホーム・ボードに送
られる。ホーム・ボードは、そのディレクトリ・キャッ
シュに問い合わせ、どのシステム・ボードがメモリ要求
に応答できるかを判定する。
【0008】ディレクトリ・キャッシュは一般に、メモ
リ・アクセス中にメモリ要求をグローバルにブロードキ
ャストしなくても済むようにするには有効である。しか
し、予期されるように、ディレクトリ・キャッシュの効
果は1つには、システムが動作している間ディレクトリ
・キャッシュが適切に動作するかどうかに依存する。動
作不能なディレクトリ・キャッシュまたは部分的に動作
不能な(すなわち、機能するが、1つまたは複数のエラ
ーが起こる)ディレクトリ・キャッシュは、長期間にわ
たって検出されないことがあり、それによってシステム
の全体的な動作に影響を与える可能性がある。
【0009】
【課題を解決するための手段】本発明の一態様はシステ
ムにおけるエラーを回復する装置を提供する。この装置
は、少なくとも1つのエントリを格納するように適合さ
れているディレクトリ・キャッシュと制御ユニットとを
備える。制御ユニットは、少なくとも1つの修正不能な
エラーがディレクトリ・キャッシュに存在するかどうか
を判定し、エラーが修正不能であると判定されたことに
応答してディレクトリ・キャッシュをオフラインにする
ように適合されている。
【0010】本発明の他の態様は、システムにおいてエ
ラーを回復する方法を提供する。この方法は、システム
内の格納デバイスに格納されているデータのエラーを検
出し、検出されたエラーが修正可能であるかどうかを判
定することを含む。この方法は、エラーが修正不能であ
ると判定されたことに応答して、システム内の1つまた
は複数のリソースが格納デバイスの少なくとも一部を利
用できなくなるようにすることをさらに含む。
【0011】本発明のさらに他の態様は、エラーを回復
する命令を含む1つまたは複数のマシン可読記憶媒体を
備える製品を提供する。命令が実行されると、プロセッ
サは、ドメインの格納デバイスに格納されているデータ
の多重ビット・エラーを判定し、多重ビット・エラーが
判定されたことに応答して、ドメインがアクティブであ
る間にドメイン内の1つまたは複数のリソースから格納
デバイスの少なくとも一部を分離することができる。
【0012】本発明は、添付の図面と共に以下の説明を
参照することによって理解することができる。各図にお
いて、同じ参照番号は同じ要素を示す。
【0013】本発明には様々な修正形態および代替形態
が可能であるが、一例として特定の実施形態を図示し、
詳しく説明する。しかし、特定の実施形態の説明が、本
発明を、開示される特定の形態に制限するものではな
く、逆に、本発明が、添付の特許請求の範囲によって定
義される本発明の趣旨および範囲内のすべての修正、均
等物、および代替物をカバーするものであることを理解
されたい。
【0014】
【発明の実施の形態】本発明の例示的な実施形態につい
て以下に説明する。話を明確にするために、本明細書で
は、実際の実装のすべての特徴については説明しない。
もちろん、このような実際の実施形態を開発する際に、
開発者の特定の目標を実現するうえで、実装ごとに異な
るシステムおよび企業に関係する制約に従うことのよう
な、多数の実装特有の決定を下さなければならないこと
が理解されよう。さらに、このような開発作業は複雑で
時間がかかるが、それにもかかわらず、本開示の利益を
有する当業者はそれを日常的に行わなければならないこ
とが理解されよう。
【0015】以下に詳しく説明するように、本発明の1
つまたは複数の実施形態によれば、動作不能または部分
的に動作不能なディレクトリ・キャッシュを論理的に分
離して修理し、次いでプロセッサ・ベースのシステム内
のドメインとして動的に一体化することができる。した
がって、プロセッサ・ベースのシステムの全体的な効率
を向上させることができる。
【0016】次に、図1を参照すると、本発明の一実施
形態によるシステム10のブロック図が示されている。
システム10は、一実施形態において、スイッチ20に
結合された複数のシステム制御ボード15(1〜2)を
含んでいる。図示の都合上、システム制御ボード15
(1〜2)がスイッチ20に結合されていることを示す
のに線21(1〜2)が用いられている。ただし、他の
実施形態では、エッジ・コネクタ、ケーブル、または他
の利用可能なインタフェースを含む、様々な方法のうち
のどれかでボード15(1〜2)をスイッチ20に結合
してよいことを理解されたい。
【0017】図示の実施形態において、システム10
は、一方はシステム10の全体的な動作を管理し、他方
は、他方の制御ボードが故障した場合に冗長となりおよ
び自動フェールオーバを行う2つの制御ボード15(1
〜2)を含んでいる。制限するわけではないが、図示の
実施形態において、第1のシステム制御ボード15
(1)は「メイン」システム制御ボードとして働き、一
方、第2の制御ボード15(2)は代替のホット・スワ
ップ交換可能なシステム制御ボードとして働く。一実施
形態では、任意の瞬間に、2つのシステム制御ボード1
5(1〜2)のうちの一方がシステム10の全体的な動
作を能動的に制御する。
【0018】メイン・システム制御ボード15(1)で
ハードウェアまたはソフトウェアの障害が起こるか、ま
たはメイン・システム制御ボード15(1)から他のシ
ステム・デバイスへのハードウェア制御経路上で障害が
起こった場合、システム・コントローラ・フェールオー
バ・ソフトウェア22は自動的に、代替制御ボード15
(2)へのフェールオーバをトリガする。代替システム
制御ボード15(2)は、一実施形態において、メイン
・システム制御ボード15(1)の役割を引き受け、メ
イン・システム・コントローラの責任を請け負う。メイ
ン・システム制御ボード15(1)から代替システム制
御ボード15(2)に移るには、両方のシステム制御ボ
ード15(1〜2)でシステム・コントローラのデー
タ、構成、および/またはログ・ファイルを模倣するこ
とが望ましい。図示の実施形態の各システム制御ボード
15(1〜2)はそれぞれの制御ユニット23(1〜
2)を含んでいる。
【0019】システム10は、一実施形態において、線
50(1〜n)で示されているようにスイッチ20に結
合された複数のシステム・ボード・セット29(1〜
n)を含んでいる。システム・ボード・セット29(1
〜n)は、エッジ・コネクタまたは他の利用可能なイン
タフェースを含むいくつかの方法のうちの1つでスイッ
チ20に結合することができる。スイッチ20は、複数
のシステム・ボード・セット29(1〜n)用の通信コ
ンジットとして働くことができ、複数のシステム・ボー
ド・セット29(1〜n)のうちの半分はスイッチ20
の一方の側に接続され、残りの半分はスイッチ20の反
対側に接続されている。
【0020】スイッチ20は、一実施形態において、1
8×18クロスバー・スイッチであってよく、システム
・ボード・セット29(1〜n)およびシステム制御ボ
ード15(1〜2)が通信するのを必要に応じて可能に
する。したがって、スイッチ20によって、2つのシス
テム制御ボード15(1〜2)が互いに通信するか、ま
たは他のシステム・ボード・セット29(1〜n)と通
信すると共に、システム・ボード・セット29(1〜
n)が互いに通信することができる。
【0021】システム・ボード・セット29(1〜n)
は、一実施形態において、システム・ボード30、入出
力ボード35、および拡張ボード40を含む1つまたは
複数のボードを備える。システム・ボード30は、一実
施形態において、オペレーティング・システムの一部を
含むアプリケーションを実行するプロセッサおよび関連
するメモリを含んいる。入出力ボード35は、システム
10に設置された周辺構成要素インタフェース・カード
や光学カードなどの入出力カードを管理することができ
る。拡張ボード40は、一実施形態において、一般にマ
ルチプレクサ(たとえば、2:1マルチプレクサ)とし
て働き、システム・ボード30と入出力ボード35の両
方とスイッチ20とのインタフェースである。スイッチ
20は、いくつかの例では、両方のボード30、35と
インターフェースするための1つのスロットのみを有し
てよい。
【0022】一実施形態では、システム10を動的に複
数のシステム・ドメインに細分してよく、各ドメインは
別々のブート・ディスク(たとえば、オペレーティング
・システムの特定のインスタンスを実行する)、別々の
ディスク格納装置、ネットワーク・インタフェース、お
よび/または入出力インタフェースを有してよい。各ド
メインはたとえば、ユーザによって構成された様々なサ
ービスを実行する独立のマシンとして動作することがで
きる。たとえば、1つまたは複数のドメインをアプリケ
ーション・サーバ、webサーバ、データベース・サー
バなどとして指定することができる。一実施形態におい
て、各ドメインは独自のオペレーティング・システム
(たとえば、Solarisオペレーティング・システ
ム)を実行し、他のドメインの動作に割り込まずに再構
成することができる。
【0023】図2には、システム10内に少なくとも2
つのドメインが定義された例示的な構成が示されてい
る。第1のドメインは、垂直断面線で識別されており、
システム・ボード・セット29(n/2+2)と、シス
テム・ボード・セット29(1)のシステム・ボード3
0と、システム・ボード・セット(2)の入出力ボード
35とを含んでいる。図示の実施形態の第2のドメイン
は、システム・ボード・セット29(3)、29(n/
2+1)、および29(n/2+3)と、システム・ボ
ード・セット29(1)の入出力ボード35およびシス
テム・ボード・セット29(2)のシステム・ボード3
0とを含んでいる。
【0024】図示のように、ドメインは、システム・ボ
ード・セット29(1〜n)全体、選択されたシステム
・ボード・セット29(1〜n)の1つまたは複数のボ
ード(たとえば、システム・ボード30、入出力ボード
35)、またはそれらの組合せで形成してよい。必ずし
も必要ではないが、各システム・ボード・セット29
(1〜n)を独立のドメインとして定義することが可能
である。たとえば、各システム・ボード・セット29
(1〜n)がそれ自体のドメインである場合、システム
10はおそらく最大で「n」(すなわち、システム・ボ
ード・セットの数)個の異なるドメインを持つことにな
る。同じシステム・ボード・セット29(1〜n)の2
つのボード(たとえば、システム・ボード30、入出力
ボード35)がそれぞれの異なるドメインにあるとき、
このような構成を「分割拡張」と呼ぶ。システム・ボー
ド・セット29(1〜n)の拡張ボード40は、一実施
形態において、トランザクションを各ドメインごとに別
々に維持する。各ボードがドメイン内で物理的に近くに
位置する必要はない。
【0025】スイッチ20を使用してドメイン間通信が
可能である。たとえば、スイッチ20は、図2の第1の
ドメインと第2のドメインとの間でデータを交換できる
ように高速通信路を形成することができる。一実施形態
では、スイッチ20を通るデータおよびアドレス用の独
立の経路をドメイン間通信に用いることができる。
【0026】次に図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)
に結合されている。他の実施形態では、各プロセッサ3
60(1〜4)が複数の関連するメモリを有してよく、
1つまたは複数のキャッシュ・メモリのうちのいくつか
またはすべてがプロセッサ360(1〜4)内に存在し
てよい。一実施形態において、各キャッシュ・メモリ3
62(1〜4)は分割キャッシュであってよく、キャッ
シュ・メモリ362(1〜4)の格納部分がプロセッサ
の外部に位置し、制御部分(たとえば、タグやフラグ)
がプロセッサ360(1〜4)内に存在してよい。
【0027】プロセッサ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に接続する。
【0028】制限するわけではないが、図示の実施形態
における各システム・ボード・セット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)と通信することができる。
【0029】入出力ボード35の2つのコントローラ3
70、374は、一実施形態において、データ・スイッ
チ378に結合されている。拡張ボード40内のスイッ
チ380は、一実施形態において、入出力ボード35の
スイッチ378およびシステム・ボード・セット29
(1〜n)のスイッチ367から出力信号を受け取り、
システム・データ・インタフェース(SDI)383に
供給する。SDI383は、スイッチ20ならびにシス
テム・ボード30および入出力ボード35との間のデー
タ・トランザクションを処理することができる。プロセ
ッサ360(1〜4)およびコントローラ370、37
4からアドレス拡張キュー(AXQ)モジュール382
への独立のアドレス経路(点線で示されている)が図示
されている。図示の実施形態において、SDI383
は、以下に詳しく説明するバッファ384を含んでい
る。AXQモジュール382はスイッチ20ならびにシ
ステム・ボード30および入出力ボード35との間のア
ドレス・トランザクションおよび応答トランザクション
を処理することができる。
【0030】一実施形態において、スイッチ20は、シ
ステム・ボード・セット29(1〜n)の各拡張ボード
40のAXQモジュール382から供給されるそれぞれ
のデータ信号、アドレス信号、および制御信号を送信す
るデータ・スイッチ384と、アドレス・スイッチ38
6と、応答スイッチ388とを含んでよい。したがっ
て、一実施形態において、各スイッチ20は、ドメイン
内通信およびドメイン間通信を可能にする別々のデータ
経路、アドレス経路、および制御経路を形成する3つの
18×18クロスバー・スイッチを含んでよい。データ
信号、アドレス信号、および制御信号用に別々の経路を
使用すると、データ・トラフィックとアドレス・トラフ
ィックと制御信号トラフィックとの間の干渉を低減させ
ることができる。一実施形態において、スイッチ20
は、毎秒約43ギガバイトの帯域幅を与えることができ
る。他の実施形態では、スイッチ20を使用してこれよ
りも大きなまたは小さな帯域幅を実現することができ
る。
【0031】各システム・ボード・セット29(1〜
4)内の様々な構成要素(たとえば、AXQモジュール
382、プロセッサ360(1〜4)、コントローラ3
70、374)の配置および/または位置が設計上の選
択の問題であり、したがって、実装ごとに異なってよい
ことに留意されたい。さらに、本発明の範囲から逸脱せ
ずにこれよりも多いかまたは少ない構成要素を使用して
よい。
【0032】1つはシステム・ボード・セット29(1
〜n)内レベル、1つはシステム・ボード・セット29
(1〜n)間レベルの2つの異なるレベルでキャッシュ
・コヒーレンスが実行されることがある。第1のレベル
に関しては、一実施形態では、MESI(modified,exc
lusive,shared,and invalid)キャッシュ・コヒーレン
ス・プロトコルのような、従来のキャッシュ・コヒーレ
ンス・スヌーピング技術を使用して、各システム・ボー
ド・セット29(1〜n)内のキャッシュ・コヒーレン
スが実行される。そのため、プロセッサ360(1〜
n)はシステム・ボード・セット29(1〜n)内の他
の装置にトランザクションをブロードキャストし、次い
で、適切な装置が所望の結果またはデータで応答する。
【0033】システム・ボード・セット29(1〜n)
内の装置の数は比較的少ないので、要求が他の装置に共
通的にブロードキャストされる従来のコヒーレンス・ス
ヌーピング技術によって、所望の目的を十分に実現する
ことができる。しかし、システム10は、各々が1つま
たは複数のプロセッサを有する多数のシステム・ボード
・セット29(1〜n)を含んでよいので、このような
要求を満たすにはメモリ・アクセスに多数のブロードキ
ャストが必要である。したがって、各拡張ボード40の
AXQモジュール382により、一実施形態ではスケー
ラブル共用メモリ(SSM)プロセッサを使用して、
(拡張ボード40間の)システム・レベルで第2レベル
のコヒーレンスを実行することができる。
【0034】AXQモジュール382は、一実施形態に
おいて、ホーム・エージェント390、要求エージェン
ト392、およびスレーブ・エージェント394に結合
された制御ユニット389を含んでいる。エージェント
390、392、394は、システム全体のコヒーレン
スを維持するようにまとまって動作することができる。
図示の実施形態において、AXQモジュール382の制
御ユニット389は、システム・ボード30と入出力ボ
ード35を相互接続すると共に、AXQモジュール38
2内のホーム・エージェント390と要求エージェント
392とスレーブ・エージェント394を相互接続す
る。一実施形態において、拡張ボード40を2つのドメ
イン間で分割した場合(すなわち、システムと1つのシ
ステム・ボード・セット29(1〜n)の入出力ボード
30および35はそれぞれの異なるドメインにある)、
AXQモジュール382の制御ユニット389は、シス
テム・ボード30および入出力ボード35を、一方を奇
数サイクルで、他方を偶数サイクルで別々に調停するこ
とができる。
【0035】SSMプロセッサは、各拡張ボード40の
制御を受けたデバイスがキャッシュ・ラインに対して実
行できることをデータに埋め込まれたMタグを用いて制
御する。Mタグは、各システム・ボード・セット29
(1〜n)のキャッシュ362(1〜4)に格納するこ
とができる。以下の表1にはMタグに関連付けることが
できる3種類の値が示されている。
【表1】
【0036】前述のように、図示の実施形態では、従来
のMESIキャッシュ・コヒーレンス・プロトコルだけ
でなく、Mタグ状態が使用される。たとえば、書込みを
行う場合、デバイスは、Mであると共にgMであるライ
ンのコピーを有する必要がある。ラインがgMでありM
ではない場合、拡張ボード40内のトランザクションに
よってラインのステータスをMにプロモートすることが
できる。ラインgMでない場合、前述のように、一実施
形態ではSSMプロトコルを使用するキャッシュAXQ
モジュール382によってリモート・トランザクション
を実行する必要がある。
【0037】AXQモジュール382は、一実施形態に
おいて、SSMプロトコルを用いて最も最近に参照され
たメモリのラインに関する情報を保持するディレクトリ
・キャッシュ(DC)396を制御する。DC396
は、一実施形態において、スタティック・ランダム・ア
クセス・メモリ(SRAM)などの揮発性メモリに格納
することができる。DC396は、所与の拡張ボード4
0に関連するキャッシュ可能なラインを保持するのに十
分なエントリ・スロットを有していないという点で部分
的なディレクトリである。後で詳しく説明するように、
AXQモジュール382は、ディレクトリ・キャッシュ
396内の選択されたエントリのステータスがたとえ
ば、更新されているときに、このエントリへのアクセス
を妨げるロッキング・モジュール398を制御する。
【0038】DC396は、所与のシステム・ボード3
0のキャッシュ362(1〜4)のキャッシュ・ライン
に対応する所定数のディレクトリ・エントリをキャッシ
ュすることができる。DC396としては、合理的な数
の一般に使用されているメモリ・ブロックを概ねキャッ
シュできるように適切なサイズのものを選択してよい。
制限するわけではないが、図示の実施形態において、D
C396は3ウェイ・アソシエーティブ・キャッシュで
あり、並列に読み取ることのできる3つのSRAMで形
成されている。例示的な3ワイドDCエントリ410が
図4Aに示されている。DC39612、一実施形態で
は、複数の3ワイドDCエントリを含む。(集合的に
「セット」の一部と呼ぶ)410。所与のセット410
内の各DCエントリは、アドレスのハッシュによってイ
ンデックス付けすることができる。
【0039】図4Aに示すように、一実施形態におい
て、3つのDCエントリ・フィールド415(0〜2)
の各々が、関連するアドレス・パリティ・フィールド4
20(0〜2)を有する。図示の実施形態におけるアド
レス・パリティ・フィールド420(0〜2)は1ビッ
ト・フィールドであり、AXQモジュール382からデ
ィレクトリ・キャッシュ396に送られるアドレスにお
けるエラー検出を可能にする。AXQモジュール382
からディレクトリ・キャッシュ396に送られるアドレ
スにおけるエラーは、AXQモジュール382とディレ
クトリ・キャッシュ396との間の配線接続の障害、A
XQモジュール382またはディレクトリ・キャッシュ
396上のピンの障害などを含む、様々な理由のうちの
1つのために起こる。
【0040】ディレクトリ・キャッシュのセット410
は、各々が図示の実施形態では4ビット・フィールドで
ある2つのエラー訂正符号(ECC)フィールド425
(0〜1)を含む。エラーの場合、ECCフィールド4
25(0〜1)により、ビット・エラーの数に応じて、
セット410に格納されているデータにおけるエラーを
補正することができる。たとえば、一実施形態では、E
CCフィールド425(0〜1)のコンテンツを利用し
て単一ビット・エラーを検出し補正することができる。
【0041】各3ワイドDCエントリ410は、3つの
DCエントリ・フィールド415(0〜2)のうちのど
れが最も早く修正されたかを示すことのできるLRMフ
ィールド430を含む。他の符号化技術を使用してよい
が、図示の実施形態では、LRMエントリを識別するの
に3ビットが使用されている。図示の実施形態で使用さ
れるLRM符号の例示的なリストを、以下の表2に示
す。
【表2】
【0042】表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フィ
ールド430は、一実施形態において、1つには、セッ
ト410が満杯になったときに、DC396の特定のセ
ット410のうちでどのDCエントリ・フィールド41
5(0〜2)を犠牲にするかを判定するのに用いられ
る。
【0043】そのように制限されないが、図示の実施形
態において、ディレクトリ・キャッシュ396内の各セ
ット410は、合計で108ビット、すなわち、94ビ
ットのデータと、3LRMビットと、3アドレス・パリ
ティ・ビットと、8ECCビットとを含む。
【0044】一実施形態では、図4B〜4Cに示すよう
に、2つの異なる種類のエントリ、共用エントリ435
および所有済みエントリ437をDC396のエントリ
・フィールド415(0〜2)に格納することができ
る。所有済みエントリ437は、一実施形態において、
特定の拡張ボード40がこの特定のエントリに対して読
取りアクセスと書込みアクセスの両方を行うことができ
ることを示す。共用エントリ435は、一実施形態にお
いて、1つまたは複数の拡張ボード40が、この特定の
エントリに対して読取りアクセスを行うことはできる
が、書込みアクセスを行うことはできないことを示す。
【0045】共用メモリ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は、一実施形態において、対
応するキャッシュ・ラインのアドレス・フィールドの少
なくとも一部を格納することができる。
【0046】所有済みエントリ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または
システム10内のドメインが最初に初期設定されるとき
には無効であってよい。
【0047】次に、図5を参照すると、本発明の一実施
形態による、ディレクトリ・キャッシュ396(図3参
照)の各セット410(図4参照)にデータを格納する
方法の流れ図が示されている。AXQモジュール382
(図3参照)は、ディレクトリ・キャッシュ396のセ
ット410のエントリ415(0〜2)に格納すべきデ
ータを(510で)受け取る。データは、たとえば、1
つまたは複数のエントリをディレクトリ・キャッシュ3
96に格納することが望ましいときに(510で)受け
取ることができる。本明細書で使用される「データ」の
語は、各セット410の1つまたは複数のエントリ・フ
ィールド415(1〜2)(図4A参照)に格納されて
いる情報を指す。
【0048】AXQモジュール382は、(520で)
受け取ったデータをどこに格納すべきかを示すディレク
トリ・キャッシュ・アドレスに基づいてこのデータの1
つまたは複数のアドレス・パリティ・ビットを(520
で)算出する。たとえば、AXQモジュール382は、
受け取ったデータをディレクトリ・キャッシュ396内
のどこに格納すべきかを示すアドレス位置に基づいて、
セット410のアドレス・パリティ・フィールド420
(0〜2)(図4参照)に格納するのに適切なアドレス
・パリティ・ビットを算出する。一実施形態において、
ディレクトリ・キャッシュ396のセット410のエン
トリ415(0〜2)に格納されているデータは、この
セット410内の他のエントリ415(0〜2)と同じ
アドレス・パリティ・ビットを有する。
【0049】図示の実施形態におけるAXQモジュール
382は、(510で)受け取ったデータおよびすでに
(520で)算出された1つまたは複数のアドレス・パ
リティ・ビットに基づいてECC値を(530で)算出
する。一実施形態において、(530で)算出されるE
CC値は8ビットECC値であってよく、このうちの4
ビットがECCフィールド425(0)に格納され、他
の4ビットがECCフィールド425(1)に格納され
る。
【0050】AXQモジュール382は、ECC値を
(530で)算出すると、データをフィールド415
(0〜2)に、アドレス・パリティ・ビットをアドレス
・パリティ・フィールド420(0〜2)に、ECC値
をディレクトリ・キャッシュ396のセット410のE
CCフィールド425(0〜1)を(540で)格納す
る。
【0051】次に、図6A〜6Bを参照すると、本発明
の一実施形態による、ディレクトリ・キャッシュ396
内の1つまたは複数のエラーを補正する方法の流れ図が
示されている。AXQモジュール382は、ディレクト
リ・キャッシュ396のセット410に格納されている
1つまたは複数のエントリに(605で)アクセスす
る。一実施形態において、格納されているエントリに
(605で)アクセスすることは、LRMビットと、ア
ドレス・パリティ・ビットと、ECC値と、エントリ・
フィールド415(0〜2)に格納されているデータと
を含む、セット410の様々なフィールドのコンテンツ
を読み取ることを含んでよい。一実施形態において、セ
ット410全体のコンテンツに(605で)アクセスす
ることができる。いくつかのエントリ・フィールド41
5(0〜2)には有効なデータが格納されておらず、し
たがって、単に0、1、またはそれらの無視できない何
らかの組合せを含む可能性があることを理解されたい。
【0052】AXQモジュール382は、(605で)
アクセスされた1つまたは複数のエントリのコンテンツ
に基づいてECC値を(610で)算出する。したがっ
て、一実施形態において、AXQモジュール382は、
エントリ・フィールド415(0〜2)、LRMフィー
ルド430、アドレス・パリティ・フィールド420
(0〜2)のコンテンツに基づいてECC値を算出する
ことができる。
【0053】AXQモジュール382は、(610で)
算出されたECC値を、ECCフィールド425(0〜
1)に格納されているECC値と(615で)比較す
る。ECC値の(615での)比較に基づいて、AXQ
モジュール382は、ディレクトリ・キャッシュ396
において(605で)アクセスされたコンテンツに1つ
または複数のエラーが存在するかどうかを(620で)
判定する。アドレス・パリティ・ビット、LRMビッ
ト、またはディレクトリ・キャッシュ396のセット4
10のエントリ415(0〜2)に格納されているデー
タにエラーが存在する可能性があることに留意された
い。
【0054】エラーは存在しないと(620で)判定さ
れた場合、AXQモジュール382は、(605で)ア
クセスされたコンテンツにアドレス・パリティ・ビット
・エラーが存在するかどうかを(625で)判定する。
(610で)算出されたアドレス・ビットが、AXQモ
ジュール382によって(605で)エントリがアクセ
スされたアドレスに関連するパリティ・ビットに対応す
る場合、(625で)アドレス・パリティ・ビット・エ
ラーを判定することができる。アドレス・パリティ・ビ
ット・エラーは存在しないと(625で)判定された場
合、一実施形態において、AXQモジュール382は
(630で)他のオペレーションを継続することができ
る。
【0055】AXQモジュール382は、セット410
において(605で)アクセスされたコンテンツにエラ
ーが存在すると(620で)判定した場合、そのエラー
が修正可能であると(635で)判定する。ECCビッ
トやパリティ・ビットなどの誤り検出技術および誤り補
正技術によってエラーを検出し補正することができない
場合、エラーを「補正できない」可能性がある。一実施
形態において、特定のエラーが「補正できる」かどうか
は、エラーが発見された後に補正する必要のあるエラー
・ビットの数に依存する。たとえば、図示の実施形態に
おいて、1ビット・エラーはECC値を使用して修正可
能であるが、2ビット・エラーを補正することはできな
い(すなわち、8ビットECC値を用いて単一ビット・
エラーを補正することはできるが、2ビット・エラーを
補正することはできない)。(640で)エラーが修正
可能であると判定されたと仮定すると、AXQモジュー
ル382はECC値に基づいてエラーを補正する。(6
45で)補正されたエラーは次いで、ディレクトリ・キ
ャッシュ396内の、AXQモジュール382によって
(605で)アクセスされた位置に(645で)再び格
納することができる。(625で)データを格納した
後、一実施形態において、AXQモジュール382は、
(605で)アクセスされたコンテンツにアドレス・パ
リティ・ビット・エラーが存在するかどうかを(625
で)判定する。
【0056】アドレス・パリティ・ビット・エラーが存
在すると(625で)判定されるか、またはエラーが修
正不能であると(635で)判定された場合、AXQモ
ジュール382は、ディレクトリ・キャッシュ396に
おいて(605で)アクセスされたコンテンツを(65
0で(図6B参照))無効化する。コンテンツを(65
0で)無効化することは、一実施形態において、ディレ
クトリ・キャッシュ396から得たコンテンツを無視
し、情報を要求しているデバイスにキャッシュ・ミスを
示すことを含む。
【0057】AXQモジュール382は、ディレクトリ
・キャッシュ396が様々な理由のうちの1つで動作不
能であるかまたは部分的に動作不能であるため、ディレ
クトリ・キャッシュ396を(655で)オフラインに
する。ディレクトリ・キャッシュ396は、一実施形態
において、ディレクトリ・キャッシュ396が利用不能
であることを示すビットをAXQモジュール382にセ
ットすることによって(655で)オフラインにするこ
とができる。ディレクトリ・キャッシュ396がオフラ
インである間にドメインの性能が悪影響を受ける可能性
があるが、一実施形態において、ドメインはそれにもか
かわらず動作を継続することができる。ディレクトリ・
キャッシュ396が(655で)オフラインになった
後、ディレクトリ・キャッシュ396へのその後のアク
セスはすべて、ミスとみなされる。一実施形態では、デ
ィレクトリ・キャッシュ396が属するドメインまたは
拡張ボード40(図3参照)がアクティブであるか、ま
たは動作している間、ディレクトリ・キャッシュ396
を(655で)動的にオフラインにすることができる。
【0058】図示の実施形態において、AXQモジュー
ル382は、システム制御ボード15(1〜2)(図1
参照)にエラー情報を(660で)供給する。エラー情
報には、障害の原因を示す情報を含めてよい。たとえ
ば、一実施形態において、AXQモジュール382は、
ディレクトリ・キャッシュ396の選択された部分に関
してアドレス・パリティ・ビットに障害があることを示
し、それによって、アドレスに関係する問題が存在する
可能性があることを示すことができる。他の例として、
AXQモジュール382は、ディレクトリ・キャッシュ
396の選択された部分に修正不能なエラーが存在する
ことを示し、それによって、たとえば、格納RAMに問
題があることを示すことができる。
【0059】システム制御ボード15(1〜2)は、A
XQモジュール382から(660で)供給されたエラ
ー情報に基づいてディレクトリ・キャッシュ396に対
する診断を(670で)実行することができる。この診
断試験は、ディレクトリ・キャッシュ396に関する1
つまたは複数の問題を解決するうえで助けになる。(6
70で)実行された診断に基づいて(675で)ディレ
クトリ・キャッシュ396を修理することができる。い
くつかの例では、システム制御ボード15(1〜2)は
識別された問題を解決することができる。他の例では、
システム制御ボード15(1〜2)は、ディレクトリ・
キャッシュ396に関する問題の性質をシステム管理者
に示すことができる。この場合、システム管理者は、デ
ィレクトリ・キャッシュ396に関する未解決の問題を
解決することができる。
【0060】一実施形態では、ディレクトリ・キャッシ
ュ396が属するドメインまたは拡張ボード40がアク
ティブであるか、または動作している間、ディレクトリ
・キャッシュ396を(670で)試験し、(675
で)動的に修理することができる。
【0061】AXQモジュール382は、ディレクトリ
・キャッシュ396を(675での)修理後に(680
で)オンラインにする。一実施形態において、ディレク
トリ・キャッシュ396は、システム10内のドメイン
の他のリソースがディレクトリ・キャッシュ396を利
用できるかどうかを示すAXQモジュール382内のビ
ットをリセットすることによって、オンラインにするこ
とができる。一実施形態では、ディレクトリ・キャッシ
ュ396が属するドメインまたは拡張ボード40(図3
参照)がアクティブであるか、または動作している間、
ディレクトリ・キャッシュ396を(680で)動的に
オンラインにすることができる。
【0062】例示を容易にするために、メモリ・アクセ
スに関する議論では「キャッシュ・ライン」が数回参照
される。この議論で使用される「キャッシュ・ライン」
が、システム10内のキャッシュ362(1〜4)(図
3参照)から引き出される1つまたは複数の情報ビット
を含んでよいことを理解されたい。
【0063】本明細書では1つまたは複数の実施形態を
ディレクトリ・キャッシュ396(図3参照)に関して
説明したが、本発明の1つまたは複数の実施形態が、メ
イン・メモリ、キャッシュ、ハード・ドライブなどを含
む他の格納デバイスに適用することもできることを理解
されたい。
【0064】様々なシステム層、ルーチン、またはモジ
ュールは、実行可能な制御ユニット(制御ユニット38
9(図3参照)など)であってよい。各制御ユニット
は、マイクロプロセッサ、マイクロコントローラ、デジ
タル信号プロセッサ、プロセッサ・カード(1つまたは
複数のマイクロプロセッサまたはコントローラを含
む)、あるいは他の制御デバイスまたは計算デバイスを
含んでよい。
【0065】この議論で参照した格納デバイスは、デー
タおよび命令を格納する1つまたは複数のマシン可読記
憶媒体を含んでよい。この格納媒体は、ダイナミック・
ランダム・アクセス・メモリまたはスタティック・ラン
ダム・アクセス・メモリ(DRAMまたはSRAM)、
消去且つプログラム可能な読取り専用メモリ(EPRO
M)、電気的に消去且つプログラム可能な読取り専用メ
モリ(EEPROM)、フラッシュ・メモリなどの半導
体メモリデバイス、固定ディスク、フロッピィ・ディス
ク、取外し可能なディスクなどの磁気ディスク、テープ
を含む他の磁気媒体、ならびにコンパクト・ディスク
(CD)やデジタル・ビデオ・ディスク(DVD)など
の光学媒体を含む様々な形態のメモリを含んでよい。様
々なシステムにおける様々なソフトウェア層、ルーチ
ン、またはモジュールを構成する命令をそれぞれの格納
デバイスに格納することができる。このような命令がそ
れぞれの制御ユニットによって実行されると、対応する
システムが、プログラムされた動作を実行する。
【0066】上記に開示した特定の実施形態は例示的な
実施形態に過ぎず、本発明は、本明細書内の教示の利益
を有する当業者に明らかな、それぞれ異なるが同等の方
法で修正し実施してよい。さらに、特許請求の範囲に記
載された制限を除いて、本明細書で図示した構造または
設計の詳細に対する制限は意図されていない。したがっ
て、上記に開示した特定の実施形態を変更または修正し
てよく、かつそのようなすべての変形が本発明の範囲お
よび趣旨の範囲内であるとみなされることは明白であ
る。したがって、本明細書で求められる保護は特許請求
の範囲に記載されているとおりである。
【図面の簡単な説明】
【図1】本発明の一実施形態によるシステムの模式的な
ブロック図である。
【図2】本発明の一実施形態による、図1のシステムで
使用できる例示的なドメイン構成のブロック図である。
【図3】本発明の一実施形態による、図1のシステムで
使用できる1つのシステム・ボード・セットの模式的な
ブロック図である。
【図4】本発明の一実施形態による、図1のシステムで
使用できる例示的なディレクトリ・キャッシュを示す図
である。
【図5】本発明の一実施形態による、図1のシステムの
ディレクトリ・キャッシュにエントリを格納する方法の
流れ図である。
【図6A】本発明の一実施形態による、図1のシステム
のディレクトリ・キャッシュにおけるエラーを回復する
方法の流れ図である。
【図6B】本発明の一実施形態による、図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) 入出力スロット 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 保持ビット・フィールド
フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 15/167 G06F 15/167 B 15/177 678 15/177 678A (72)発明者 ドナルド・ケイン アメリカ合衆国・92129・カリフォルニア 州・サン ディエゴ・バーバイン ドライ ブ・9356 (72)発明者 ダニエル・ピイ・ドロギチェン アメリカ合衆国・92024・カリフォルニア 州・リューカディア・ハイメタス アベニ ュ・829 Fターム(参考) 5B005 JJ01 KK14 MM01 PP11 SS12 VV12 VV13 WW12 WW17 5B045 DD12 JJ02 JJ12 JJ38

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】 システム内の格納デバイスに格納されて
    いるデータのエラーを検出し、 検出されたエラーが修正可能であるかどうかを判定し、 エラーが修正不能であると判定されたことに応答して、
    システム内の1つまたは複数のリソースが格納デバイス
    の少なくとも一部を利用できなくなるようにすることを
    含む方法。
  2. 【請求項2】 エラーを検出することが、誤り補正符号
    を使用してエラーを検出することを含む請求項1に記載
    の方法。
  3. 【請求項3】 検出されたエラーが修正可能であるかど
    うかを判定することが、検出されたエラーが多重ビット
    ・エラーであると判定することを含む請求項2に記載の
    方法。
  4. 【請求項4】 検出されたエラーが修正可能であるかど
    うかを判定することが、検出されたエラーがアドレス・
    パリティ・エラーであることを判定することを含む請求
    項1に記載の方法。
  5. 【請求項5】 格納デバイスの少なくとも一部を利用不
    能にすることが、システムが動作している間格納デバイ
    スの少なくとも一部を利用不能にすることを含む請求項
    1に記載の方法。
  6. 【請求項6】 エラーが修正不能であると判定されたこ
    とに基づいて格納デバイスを試験することをさらに含む
    請求項1に記載の方法。
  7. 【請求項7】 格納デバイスの試験に応答して格納デバ
    イスを修理することをさらに含む請求項6に記載の方
    法。
  8. 【請求項8】 格納デバイスが修理されたことに応答し
    て格納ユニットへのアクセスを動的に許可することをさ
    らに含む請求項7に記載の方法。
  9. 【請求項9】 格納デバイスがディレクトリ・キャッシ
    ュを含み、格納デバイスの少なくとも一部を利用不能に
    することが、ディレクトリ・キャッシュへのアクセス要
    求に応答してキャッシュ・ミスを生成することを含む請
    求項1に記載の方法。
  10. 【請求項10】 少なくとも1つのエントリを格納する
    ように適合されているディレクトリ・キャッシュと、 ディレクトリ・キャッシュ内に少なくとも1つの修正不
    能なエラーが存在するかどうかを判定し、 エラーが修正不能であると判定されたことに応答してデ
    ィレクトリ・キャッシュをオフラインにするように適合
    されている制御ユニットとを備える装置。
  11. 【請求項11】 ディレクトリ・キャッシュが3ウェイ
    ・アソシエーティブ・ディレクトリ・キャッシュである
    請求項10に記載の装置。
  12. 【請求項12】 制御ユニットが、エントリが多重ビッ
    ト・エラーを含むかどうかを判定する請求項10に記載
    の装置。
  13. 【請求項13】 エントリがアドレス・ビット・エント
    リであり、制御ユニットが、アドレス・パリティ・ビッ
    ト・エントリがエラーを含むかどうかを判定する請求項
    12に記載の装置。
  14. 【請求項14】 ディレクトリ・キャッシュがドメイン
    に関連付けされており、制御ユニットが、該ドメインが
    アクティブである間ディレクトリ・キャッシュをオフラ
    インにする請求項10に記載の装置。
  15. 【請求項15】 制御ユニットが、ディレクトリ・キャ
    ッシュがオフラインである間にディレクトリ・キャッシ
    ュへのアクセスを要求したデバイスにキャッシュ・ミス
    とする請求項14に記載の装置。
  16. 【請求項16】 制御ユニットが、エラーが修正不能で
    あると判定されたことに応答してディレクトリ・キャッ
    シュを試験する請求項14に記載の装置。
  17. 【請求項17】 制御ユニットが、ディレクトリ・キャ
    ッシュの試験に応答してディレクトリ・キャッシュを修
    理させる請求項15に記載の装置。
  18. 【請求項18】 制御ユニットが、ディレクトリ・キャ
    ッシュを修理させたことに応答してディレクトリ・キャ
    ッシュをオンラインにする請求項15に記載の装置。
  19. 【請求項19】 制御ユニットが、ディレクトリ・キャ
    ッシュを動的にオンラインにする請求項18に記載の装
    置。
  20. 【請求項20】 命令を含む1つまたは複数のマシン可
    読記憶媒体を備える製品であって、その命令が実行され
    たときに、プロセッサが、 ドメインの格納デバイスに格納されているデータの多重
    ビット・エラーを判定し、 多重ビット・エラーが判定されたことに応答して、ドメ
    インがアクティブである間ドメイン内の1つまたは複数
    のリソースから格納デバイスの少なくとも一部を分離す
    ることができる製品。
  21. 【請求項21】 命令が実行されたときに、プロセッサ
    が、データの多重ビット・エラーを判定するためにEC
    C誤り検査を実行することができる請求項20に記載の
    製品。
  22. 【請求項22】 命令が実行されたときに、プロセッサ
    が、格納デバイスが分離されたことに応答して格納デバ
    イスを動的に試験することができる請求項20に記載の
    製品。
  23. 【請求項23】 命令が実行されたときに、プロセッサ
    が、ドメイン内の格納デバイスを動的に復元することが
    できる請求項20に記載の製品。
  24. 【請求項24】 命令が実行されたときに、プロセッサ
    が、多重ビット・エラーの原因を示すことができる請求
    項20に記載の製品。
JP2002300027A 2001-10-19 2002-10-15 エラー回復 Pending JP2003162447A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/043974 2001-10-19
US10/043,974 US7032123B2 (en) 2001-10-19 2001-10-19 Error recovery

Publications (1)

Publication Number Publication Date
JP2003162447A true JP2003162447A (ja) 2003-06-06

Family

ID=21929872

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002300027A Pending JP2003162447A (ja) 2001-10-19 2002-10-15 エラー回復

Country Status (4)

Country Link
US (1) US7032123B2 (ja)
EP (1) EP1310873B1 (ja)
JP (1) JP2003162447A (ja)
KR (1) KR20030033109A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008046701A (ja) * 2006-08-11 2008-02-28 Nec Computertechno Ltd マルチプロセッサシステム及びその動作方法
JP2008052550A (ja) * 2006-08-25 2008-03-06 Nec Computertechno Ltd マルチプロセッサシステム及びメモリコントロール/コヒーレンシ制御装置並びにコヒーレンシ保証方法
WO2012124094A1 (ja) * 2011-03-16 2012-09-20 富士通株式会社 ディレクトリキャッシュ制御装置、ディレクトリキャッシュ制御回路、およびディレクトリキャッシュ制御方法
JP2015530651A (ja) * 2012-12-17 2015-10-15 インスパー・エレクトロニック・インフォメーション・インダストリー・コーポレーション・リミテッド マルチプロセサシステムおよびマルチプロセサシステムの構成方法

Families Citing this family (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6971041B2 (en) * 2002-03-04 2005-11-29 International Business Machines Corporation Cache entry error-correcting code (ECC) based at least on cache entry data and memory address
US7284151B2 (en) 2003-07-21 2007-10-16 Oracle International Corporation Conditional data access after database system failure
US20070022250A1 (en) * 2005-07-19 2007-01-25 International Business Machines Corporation System and method of responding to a cache read error with a temporary cache directory column delete
US7774658B2 (en) * 2007-01-11 2010-08-10 Hewlett-Packard Development Company, L.P. Method and apparatus to search for errors in a translation look-aside buffer
US8533384B2 (en) 2007-12-27 2013-09-10 Sandisk Enterprise Ip Llc Flash memory controller garbage collection operations performed independently in multiple flash memory groups
JP5224038B2 (ja) * 2008-02-27 2013-07-03 日本電気株式会社 コンピュータ装置、コンピュータ装置の運用継続方法及びプログラム
US8356239B2 (en) * 2008-09-05 2013-01-15 Freescale Semiconductor, Inc. Selective cache way mirroring
US8291305B2 (en) * 2008-09-05 2012-10-16 Freescale Semiconductor, Inc. Error detection schemes for a cache in a data processing system
US8145985B2 (en) * 2008-09-05 2012-03-27 Freescale Semiconductor, Inc. Error detection schemes for a unified cache in a data processing system
US8095831B2 (en) * 2008-11-18 2012-01-10 Freescale Semiconductor, Inc. Programmable error actions for a cache in a data processing system
US20110161783A1 (en) * 2009-12-28 2011-06-30 Dinesh Somasekhar Method and apparatus on direct matching of cache tags coded with error correcting codes (ecc)
US8365041B2 (en) 2010-03-17 2013-01-29 Sandisk Enterprise Ip Llc MLC self-raid flash data protection scheme
US8667323B2 (en) * 2010-12-17 2014-03-04 Microsoft Corporation Proactive error scan and isolated error correction
US8621276B2 (en) 2010-12-17 2013-12-31 Microsoft Corporation File system resiliency management
US8910020B2 (en) 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc Intelligent bit recovery for flash memory
US8909982B2 (en) 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc System and method for detecting copyback programming problems
US8793543B2 (en) 2011-11-07 2014-07-29 Sandisk Enterprise Ip Llc Adaptive read comparison signal generation for memory systems
US9048876B2 (en) 2011-11-18 2015-06-02 Sandisk Enterprise Ip Llc Systems, methods and devices for multi-tiered error correction
US8954822B2 (en) 2011-11-18 2015-02-10 Sandisk Enterprise Ip Llc Data encoder and decoder using memory-specific parity-check matrix
US8924815B2 (en) 2011-11-18 2014-12-30 Sandisk Enterprise Ip Llc Systems, methods and devices for decoding codewords having multiple parity segments
US9798623B2 (en) 2012-05-11 2017-10-24 Seagate Technology Llc Using cache to manage errors in primary storage
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9003264B1 (en) 2012-12-31 2015-04-07 Sandisk Enterprise Ip Llc Systems, methods, and devices for multi-dimensional flash RAID data protection
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9009576B1 (en) 2013-03-15 2015-04-14 Sandisk Enterprise Ip Llc Adaptive LLR based on syndrome weight
US9136877B1 (en) 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9043517B1 (en) 2013-07-25 2015-05-26 Sandisk Enterprise Ip Llc Multipass programming in buffers implemented in non-volatile data storage systems
US9235509B1 (en) 2013-08-26 2016-01-12 Sandisk Enterprise Ip Llc Write amplification reduction by delaying read access to data written during garbage collection
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9442670B2 (en) 2013-09-03 2016-09-13 Sandisk Technologies Llc Method and system for rebalancing data stored in flash memory devices
US9519577B2 (en) 2013-09-03 2016-12-13 Sandisk Technologies Llc Method and system for migrating data between flash memory devices
US9158349B2 (en) 2013-10-04 2015-10-13 Sandisk Enterprise Ip Llc System and method for heat dissipation
US9323637B2 (en) 2013-10-07 2016-04-26 Sandisk Enterprise Ip Llc Power sequencing and data hardening architecture
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9280429B2 (en) 2013-11-27 2016-03-08 Sandisk Enterprise Ip Llc Power fail latching based on monitoring multiple power supply voltages in a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9122636B2 (en) 2013-11-27 2015-09-01 Sandisk Enterprise Ip Llc Hard power fail architecture
US9250676B2 (en) 2013-11-29 2016-02-02 Sandisk Enterprise Ip Llc Power failure architecture and verification
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9092370B2 (en) 2013-12-03 2015-07-28 Sandisk Enterprise Ip Llc Power failure tolerant cryptographic erase
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9129665B2 (en) 2013-12-17 2015-09-08 Sandisk Enterprise Ip Llc Dynamic brownout adjustment in a storage device
US9549457B2 (en) 2014-02-12 2017-01-17 Sandisk Technologies Llc System and method for redirecting airflow across an electronic assembly
US9497889B2 (en) 2014-02-27 2016-11-15 Sandisk Technologies Llc Heat dissipation for substrate assemblies
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9348377B2 (en) 2014-03-14 2016-05-24 Sandisk Enterprise Ip Llc Thermal isolation techniques
US9485851B2 (en) 2014-03-14 2016-11-01 Sandisk Technologies Llc Thermal tube assembly structures
US9519319B2 (en) 2014-03-14 2016-12-13 Sandisk Technologies Llc Self-supporting thermal tube structure for electronic assemblies
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US9070481B1 (en) 2014-05-30 2015-06-30 Sandisk Technologies Inc. Internal current measurement for age measurements
US9645749B2 (en) 2014-05-30 2017-05-09 Sandisk Technologies Llc Method and system for recharacterizing the storage density of a memory device or a portion thereof
US9093160B1 (en) 2014-05-30 2015-07-28 Sandisk Technologies Inc. Methods and systems for staggered memory operations
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US8891303B1 (en) 2014-05-30 2014-11-18 Sandisk Technologies Inc. Method and system for dynamic word line based configuration of a three-dimensional memory device
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0418648A (ja) * 1990-05-11 1992-01-22 Mitsubishi Electric Corp キャッシュを有するデータ処理装置及びそのデータアクセス方法
US5379415A (en) * 1992-09-29 1995-01-03 Zitel Corporation Fault tolerant memory system
JP2842809B2 (ja) * 1995-06-28 1999-01-06 甲府日本電気株式会社 キャッシュ索引の障害訂正装置
US5734814A (en) 1996-04-15 1998-03-31 Sun Microsystems, Inc. Host-based RAID-5 and NV-RAM integration
US6078995A (en) * 1996-12-26 2000-06-20 Micro Magic, Inc. Methods and apparatus for true least recently used (LRU) bit encoding for multi-way associative caches
US5867511A (en) * 1997-04-14 1999-02-02 International Business Machines Corporation Method for high-speed recoverable directory access
US5894487A (en) * 1997-07-15 1999-04-13 International Business Machines Corporation Error detection of directory arrays in dynamic circuits
US6480975B1 (en) * 1998-02-17 2002-11-12 International Business Machines Corporation ECC mechanism for set associative cache array
US6622267B1 (en) * 1999-12-08 2003-09-16 Intel Corporation Method and apparatus for detecting multi-hit errors in cache
US6725343B2 (en) * 2000-10-05 2004-04-20 Hewlett-Packard Development Company, L.P. System and method for generating cache coherence directory entries and error correction codes in a multiprocessor system
US6996674B2 (en) * 2001-05-07 2006-02-07 International Business Machines Corporation Method and apparatus for a global cache directory in a storage cluster

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008046701A (ja) * 2006-08-11 2008-02-28 Nec Computertechno Ltd マルチプロセッサシステム及びその動作方法
JP2008052550A (ja) * 2006-08-25 2008-03-06 Nec Computertechno Ltd マルチプロセッサシステム及びメモリコントロール/コヒーレンシ制御装置並びにコヒーレンシ保証方法
WO2012124094A1 (ja) * 2011-03-16 2012-09-20 富士通株式会社 ディレクトリキャッシュ制御装置、ディレクトリキャッシュ制御回路、およびディレクトリキャッシュ制御方法
JPWO2012124094A1 (ja) * 2011-03-16 2014-07-17 富士通株式会社 ディレクトリキャッシュ制御装置、ディレクトリキャッシュ制御回路、およびディレクトリキャッシュ制御方法
JP2015530651A (ja) * 2012-12-17 2015-10-15 インスパー・エレクトロニック・インフォメーション・インダストリー・コーポレーション・リミテッド マルチプロセサシステムおよびマルチプロセサシステムの構成方法

Also Published As

Publication number Publication date
KR20030033109A (ko) 2003-04-30
US20030084369A1 (en) 2003-05-01
US7032123B2 (en) 2006-04-18
EP1310873A1 (en) 2003-05-14
EP1310873B1 (en) 2014-03-19

Similar Documents

Publication Publication Date Title
JP2003162447A (ja) エラー回復
US5319766A (en) Duplicate tag store for a processor having primary and backup cache memories in a multiprocessor computer system
US7343515B1 (en) System and method for performing error recovery in a data processing system having multiple processing partitions
JP3501357B2 (ja) キャッシュ・コヒーレントな対称型マルチプロセッサ・システムで区画化されたメモリを制御する方法及び装置
US5553266A (en) Update vs. invalidate policy for a snoopy bus protocol
US5629950A (en) Fault management scheme for a cache memory
US7650467B2 (en) Coordination of multiprocessor operations with shared resources
US20030028819A1 (en) Method and apparatus for a global cache directory in a storage cluster
US7783843B2 (en) Bus interface adapted to coalesce snoop responses
US20020138695A1 (en) Method and system for recovery of meta data in a storage controller
US6012127A (en) Multiprocessor computing apparatus with optional coherency directory
CN111742301A (zh) 通过请求来日志记录对更高级别的缓存的缓存流入量
JP3693555B2 (ja) アドレスエラーから回復するためのシステムおよび方法
US20160350219A1 (en) Cache coherency
JP2006155623A (ja) データベースクラスタリカバリ方法及び装置
US7574566B2 (en) System and method for efficient software cache coherence
US6721852B2 (en) Computer system employing multiple board sets and coherence schemes
JP3851093B2 (ja) データ転送方法及びデータ処理システム
CN107368435B (zh) 一种精简目录及利用该精简目录实现Cache一致性监听的方法
US7363531B2 (en) Data synchronization for system controllers
WO2003060713A2 (en) Shared resource domains
US6961827B2 (en) Victim invalidation
US8028130B1 (en) Pipeline structure for a shared memory protocol
WO2003060725A2 (en) Inter-domain data transfer
JPH09325912A (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051017

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090217

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090714