(57)【要約】【課題】キャッシュメモリの耐障害性を高めること。【解決手段】キャッシュメモリに誤り訂正符号（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ：以下ＥＣＣ）でも訂正不可能な障害が発生した場合、キャッシュヒット回数が多いデータの複製をキャッシュメモリに持つことにより、メモリを増設することなくデータの冗長性を高め、耐障害性を高める。【効果】キャッシュメモリの空間的局所性と、時間的局所性を利用して複製データを作成することにより、キャッシュメモリを増設することなくキャッシュメモリの冗長性を高め、耐障害性を高められる。【選択図】  図１
2005004290.tif 000002
【特許請求の範囲】
【請求項１】
データを保持するメインメモリないしはディスクとＣＰＵとの間に、障害検出と訂正を行う機能部を具備するキャッシュメモリ制御部を介在させ、ＣＰＵからデータへのアクセスはキャッシュメモリ制御部を中継し、ＣＰＵからデータへのアクセスを制御するキャッシュアクセス制御方式に適用するキャッシュメモリにおけるデータの訂正不可能障害の救出方法であって、前記キャッシュメモリ制御部は、アドレス部と、データ部と、障害の検出および訂正を行う機能部と、メインメモリまたはディスクに対するコヒーレンシ状態を保持する状態フラグと、キャッシュヒット回数を保持するキャッシュヒットカウンタと、複製データの有無を示すインデクスを格納するタグ部と、を有し、アクセス要求のあるデータが、キャッシュメモリに登録されており、予め定めたキャッシュヒット回数よりも多くヒットした場合には、定められたエントリが空きエントリであればそこに当該データの複製データを作成し、定められたエントリが空きエントリでなく複製データがあれば複製データを消去したそのエントリに当該データの複製データを作成し、
定められたエントリが空きエントリでなく複製データでもない場合は、当該データの複製データを作成しないことを特徴とするキャッシュメモリにおけるデータの訂正不可能障害の救出方法。
【請求項２】
アクセス要求のあったデータに対しエラーチェックし、障害がなければそのまま当該データを使用し、当該データに障害があり訂正可能ならば訂正して使用し、当該データの障害が訂正不可能ならば当該データの複製データがあるかどうかを調べ複製データがあれば複製データを読み出し、複製データがなければ当該データの状態フラグからメインメモリまたはディスクのデータと同一であるかどうかを調べ、同一であればメインメモリまたディスクから当該データを再度読み出し、同一でなければプロセスを終了させることを特徴とする請求項１の障害救出方法。
【請求項３】
アクセス要求のあったデータを更新する場合は、更新対象が当該データであり障害がないか訂正可能な障害があり複製データがあれば当該データと複製データを同時に更新し、更新対象が当該データであり障害がないか訂正可能な障害があり複製データがなければ当該データを更新し、当該データに訂正不可能な障害があり複製データを読み出してエラーチェックし複製データに障害がないか訂正可能な障害があれば当該データと複製データを同時に更新し、当該データに訂正不可能な障害があり複製データがないまたは当該データと複製データに訂正不可能な障害がある場合にはプロセスを終了することを特徴とする請求項１または請求項２の障害救出方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は障害検出および訂正能力を有するキャッシュメモリの訂正不可能障害の救出方法に関する。
【０００２】
【従来の技術】
メモリシステムのサイズが増大し、メモリセルのサイズが小さくなるにつれ、α粒子によりメモリシステムの一時的な障害が発生する確率が増大する。一時的な障害は通常、ＥＣＣを用いて障害を検出、訂正する。しかしＥＣＣを用いた障害検出では１ビットないし隣接する数ビットの障害を検出、訂正できるが、隣接しない複数ビット、またはＥＣＣで訂正できるビット以上の隣接するビットの障害が発生した場合には訂正できない。メインメモリの訂正不可能な障害については、米国特許６，３７０，６１６号のようにメインメモリをＲＡＩＤにしてホットスワップできる。キャッシュメモリの訂正不可能な障害については、特開平５−１６５７２２号公報に記載のようにキャッシュメモリを閉塞しメインメモリにアクセスする方式や、特開平２００２−３５８２３４号公報に記載のようにＥＣＣを用いて障害検出し、訂正不可能ならメインメモリにアクセスする方式が知られている。
【０００３】
【特許文献１】
米国特許６，３７０，６１６号
【特許文献２】
特開平２００２−３５８２３４号公報
【０００４】
【発明が解決しようとする課題】
メモリの耐障害性を高める技術としては、ＲＡＩＤメモリ（公知例：米国特許６，３７０，６１６号）があるが、この技術をキャッシュメモリに適用すると、回路規模が大きくなり、物理的実装スペースとそれに伴うコスト増大と言った問題に直面することになる。
【０００５】
また、キャッシュメモリの訂正不可能な障害を検出した場合、ライトスルー方式では、メインメモリやディスクのデータとキャッシュメモリに格納されたデータが等しいことが保証されているので問題ないが、ライトバック方式でメインメモリやディスクのデータとキャッシュメモリに格納されたデータが異なる場合にはデータの整合性が失われてシステムダウンや誤った結果になる可能性がある。
【０００６】
特開平５−１６５７２２号公報や特開２００２−３５８２３４号公報では、ＥＣＣを用いても訂正不可能でＭＥＳＩプロトコルでメインメモリと一致していることが判明しているデータならばメインメモリにアクセスし、メインメモリとデータが一致していないことが判明していれば訂正不可能障害の検出報告をする技術が提案されている。しかし、いずれも障害発生時に著しい性能劣化を招くことになり、ライトバック方式でメインメモリやディスクのデータとキャッシュメモリに格納されたデータが異なる場合には訂正不可能なメモリ障害を訂正できない。
【０００７】
【課題を解決するための手段】
前記課題を解決するために本発明は、キャッシュメモリの空間的局所性と時間的局所性を利用して、キャッシュヒット回数の多い当該データの複製データをキャッシュメモリ上の空きエントリに持たせることにより、メモリ容量を増やすことなく冗長性を高めることによって、メインメモリまたはディスクに対して一致していないデータに訂正不可能な障害が発生した場合でも、複製データを作成していればデータを不正に破壊することなく動作継続が可能となることを特徴とするものである。
【０００８】
【発明の実施の形態】
以下、本発明の実施形態を図を参照して説明する。
【０００９】
図２はキャッシュメモリの構成図を示す。キャッシュメモリはアドレス部、複製データの有無を示すインデクス（ｉｘ２）、ＭＥＳＩ（Ｍｏｄｉｆｉｅｄ  Ｅｘｃｌｕｓｉｖｅ  Ｓｈａｒｅｄ  Ｉｎｖａｌｉｄ）プロトコルに従う状態フラグ（ｆ１）、キャッシュヒットカウンタ（ｃｎｔ１）、データ部を有する。アドレス部のインデクス（ｉｘ１）と複製データのインデクス（ｉｘ２）が等しい場合には、複製データがないことを示す。エントリ数以下でアドレス部のインデクス（ｉｘ１）と複製データのインデクス（ｉｘ２）が等しくない場合は、複製データがあることを示す。複製データのインデクス（ｉｘ２）がエントリ数よりも大きい場合は、複製データ自身を示す。
【００１０】
図３に示すような実施形態において、キャッシュメモリはプロセッサとディスクに接続されており、プロセッサからのライト要求に対しては、データをキャッシュメモリに書き込み、フラッシュ時またはデータ消去時にディスクに書き戻す（ライトバック方式）。キャッシュメモリ制御部は、機能部を有する。
【００１１】
図４はデータの読込み処理を示したものである。ディスクからキャッシュメモリ上にデータを読み込む場合、キャッシュメモリのエントリの状態フラグがＭＯＤＩＦＩＥＤであるかどうか調べる（ステップＳ１）。状態フラグがＭＯＤＩＦＩＥＤであれば、当該データまたは複製データを削除する（ステップＳ２）。当該エントリの状態フラグがＳＨＡＲＥＤの場合、ＳＨＡＲＥしている他のキャッシュメモリの状態フラグをＳＨＡＲＥＤからＭＯＤＩＦＩＥＤまたはＥＸＣＬＵＳＩＶＥに書き換える（ステップ３）。
【００１２】
キャッシュメモリ上のデータがキャッシュヒットすると、キャッシュヒットカウンタを更新する。図５のようにこのカウンタが予め定めたしきい値を超えた場合（ステップＳ４）、定められたエントリの状態フラグがＩＮＶＡＬＩＤまたは複製データであれば当該データの複製データをそのエントリに作成する（ステップＳ５）。定められたエントリの状態フラグがＩＮＶＡＬＩＤでもなく複製データでもない場合には、当該データの複製データを作成しない（ステップＳ６）。
【００１３】
図１および図６および図７に示すように、当該データにアクセスする場合、まずキャッシュメモリ上に当該データがあるかどうかアドレスの比較を行う（ステップＳ７）。アドレスが一致すればデータの状態フラグとキャッシュヒットカウンタを更新し、当該データにアクセスする。
【００１４】
この時、ＥＣＣを用いてエラーチェックを行い（ステップＳ８）、当該データに障害がない場合はそのまま使用する。当該データに訂正可能な障害が検知されると障害を修正してそのまま使用する（ステップＳ９）。当該データに訂正不可能な障害が検知されると、当該データの複製データが存在するかを調べる（ステップＳ１０）。当該データの複製データが存在すれば複製データについて当該データと同様にＥＣＣを用いてエラーチェックを行う（ステップＳ１１）。複製データにも訂正不可能な障害が検知され、状態フラグがＭＯＤＩＦＩＥＤのデータであれば、プロセスを異常終了する（ステップＳ１２）。複製データにも訂正不可能な障害が検知され、状態フラグがＳＨＡＲＥＤであれば、メインメモリまたはディスクにアクセスし、当該データを再度読み込む（ステップＳ１３）。複製データに訂正可能な障害が検知されれば訂正し、当該データに訂正内容を同時に反映する（ステップＳ１４）。当該データの複製データが存在し、当該データかその複製データのどちらかにアクセスする場合、キャッシュヒットカウンタや状態フラグの情報を同時に変更する（ステップＳ１５）。
【００１５】
図８に示すように、作成した複製データまたは当該データを削除する場合は、メインメモリまたはディスクに書き戻す（ステップＳ１６）。複製データのみを削除する場合は、当該データの複製データへのインデクスを削除時に訂正する（ステップＳ１７）。当該データを削除する場合は、複製データの有無に関わらず削除する（ステップＳ１８）。
【００１６】
【発明の効果】
以上、本発明により前記情報処理装置において、キャッシュメモリ上のデータにＥＣＣを用いても訂正不可能な障害を検出した場合、当該データの複製データを作成することによって障害訂正が可能になる確率が上がり、当該情報処理装置の耐障害性と信頼性が向上する。
【図面の簡単な説明】
【図１】キャッシュメモリの構成を示す図。
【図２】本発明の実施例のブロック図。
【図３】データの読込み処理を説明する図。
【図４】複製データ作成処理を説明する図。
【図５】データアクセス処理を説明する図。
【図６】データアクセスのブロック図。
【図７】キャッシュメモリのブロック図。
【図８】データ削除処理を説明する図。
【符号の説明】
Ｓ１〜Ｓ１８…処理ステップ通番、ａｄｄ１…アドレス、ｉｘ１〜ｉｘ２…インデクス、ｆ１…状態フラグ、ｃｎｔ１…キャッシュヒットカウンタ。
【図１】
2005004290.tif 000003
【図２】
2005004290.tif 000004
【図３】
2005004290.tif 000005
【図４】
2005004290.tif 000006
【図５】
2005004290.tif 000007
【図６】
2005004290.tif 000008
【図７】
2005004290.tif 000009
【図８】
2005004290.tif 000010