(57)【要約】  キャッシュメモリの処理能力性能の低下を抑えつつ、重大な障害に発展する潜在的な要因（例えば、訂正可能なエラーなど）を予め排除することによりコンピュータシステム内の信頼性を維持することを課題とする。この縮退制御装置はまず、例えば、ウェイごとにエラー回数を計数するために備えたエラーカウンタをアップする。そして、エラーカウンタが予め定めた所定の上限回数を超えている場合には、この縮退制御装置は、その上限回数に到達する契機となったエラーを発生させたキャッシュライン（例えば、Ｗａｙ：ｎ，Ｉｎｄｅｘ：ｍ）について、キャッシュタグに縮退フラグ（キャッシュラインが縮退であることを示す縮退情報）を書き込む。
2007097027.tif 000002
【特許請求の範囲】
【請求項１】
アクセス要求に対するエラーの発生に基づいて、複数のウェイで構成されるキャッシュの縮退を制御する縮退制御装置において、
前記複数のウェイのそれぞれを構成するキャッシュラインごとに、当該キャッシュラインが縮退あるかどうかを示すキャッシュライン縮退情報を記憶するキャッシュライン縮退情報記憶手段と、
前記アクセス要求に対して発生したエラーが所定の条件を満たした場合には、前記キャッシュライン縮退情報記憶手段において、当該エラーに係る所定のキャッシュラインについて、当該所定のキャッシュラインが縮退であることを示すキャッシュライン縮退情報を書き込む縮退制御手段と、
を備えたことを特徴とする縮退制御装置。
【請求項２】
前記複数のウェイごとに前記アクセス要求に対するエラーの発生回数を計数するエラー計数手段をさらに備え、
前記縮退制御手段は、前記エラー計数手段により計数された前記エラー回数が所定の上限回数に到達した場合に、当該所定の上限回数到達契機となったエラーに係るキャッシュラインについて、当該キャッシュラインが縮退であることを示すキャッシュライン縮退情報を書き込むことを特徴とする請求項１に記載の縮退制御装置。
【請求項３】
前記縮退制御手段は、前記エラー計数手段に計数された前記エラー回数が前記所定の上限回数以上である他の所定の上限回数に到達した場合に、当該他の所定の上限回数に到達したウェイに含まれる全てのキャッシュラインについて、当該キャッシュラインがウェイ全体として縮退であることを示すウェイ縮退情報を書き込むことを特徴とする請求項２に記載の縮退制御装置。
【請求項４】
前記アクセス要求に対応するデータが前記キャッシュに存在しない場合に、前記キャッシュライン縮退情報記憶手段に記憶されている前記キャッシュライン縮退情報および／またはウェイ縮退情報を参照して、当該アクセス要求に対応するデータがキャッシュされるべきキャッシュラインを選択するウェイ選択手段をさらに備えたことを特徴とする請求項１に記載の縮退制御装置。
【請求項５】
前記ウェイ選択手段は、選択しようとする全てのキャッシュラインが縮退である場合に、前記ウェイ縮退情報でなく前記キャッシュライン縮退情報に係るキャッシュラインの中から前記アクセス要求に対応するデータがキャッシュされるべきキャッシュラインを選択することを特徴とする請求項４に記載の縮退制御装置。
【請求項６】
アクセス要求に対するエラーの発生に基づいて、複数のウェイで構成されるキャッシュの縮退を制御する方法をコンピュータに実行させる縮退制御プログラムにおいて、
前記複数のウェイのそれぞれを構成するキャッシュラインごとに、当該キャッシュラインが縮退あるかどうかを示すキャッシュライン縮退情報を記憶するキャッシュライン縮退情報記憶手順と、
前記アクセス要求に対して発生したエラーが所定の条件を満たした場合には、前記キャッシュライン縮退情報記憶手順において、当該エラーに係る所定のキャッシュラインについて、当該所定のキャッシュラインが縮退であることを示すキャッシュライン縮退情報を書き込む縮退制御手順と、
をコンピュータに実行させることを特徴とする縮退制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、アクセス要求に対するエラーの発生に基づいて、複数のウェイで構成されるキャッシュの縮退を制御する縮退制御装置および縮退制御プログラムに関する。
【背景技術】
【０００２】
従来より、セットアソシアティブマッピング（ｓｅｔ  ａｓｓｏｃｉａｔｉｖｅ  ｍａｐｐｉｎｎｇ）方式を採用するキャッシュメモリを縮退制御（データ格納領域のいずれかを使用不可能な状態に制御）する技術がある。具体的には、キャッシュメモリ内に発生した訂正可能なエラーの回数をキャッシュメモリ内の列位置を示すウェイごとにカウントしておき、そのエラー回数が所定の閾値に達したウェイを縮退制御する（例えば、特許文献１参照）。すなわち、この従来技術は、キャッシュメモリ内において発生する訂正可能なエラーが重大な障害（例えば、訂正不可能なエラー）となる前に縮退制御することにより、コンピュータシステム内の信頼性を高めるものである。【０００３】
【特許文献１】特開平２−３０２８５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記した従来の技術は、キャッシュメモリの処理能力性能が低下するという問題点があった。すなわち、従来の技術では、例えば、図１１に例示するように、キャッシュメモリ内でキャッシュライン（データ格納領域の最小単位）にエラー（例えば、格納されているデータのエラー）が発生した場合に、そのキャッシュラインを含んだウェイ全体を縮退制御するので、縮退制御されたウェイに含まれる正常なキャッシュラインの分だけキャッシュメモリの容量を無駄に減少させることとなり、結果として、キャッシュメモリの処理能力性能が低下するという問題点があった。【０００５】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、キャッシュメモリの処理能力性能の低下を抑えつつ、重大な障害に発展する恐れのある潜在的な要因を予め排除することにより、コンピュータシステム内の信頼性を維持することが可能な縮退制御装置および縮退制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するため、請求項１に係る発明は、アクセス要求に対するエラーの発生に基づいて、複数のウェイで構成されるキャッシュの縮退を制御する縮退制御装置において、前記複数のウェイのそれぞれを構成するキャッシュラインごとに、当該キャッシュラインが縮退あるかどうかを示すキャッシュライン縮退情報を記憶するキャッシュライン縮退情報記憶手段と、前記アクセス要求に対して発生したエラーが所定の条件を満たした場合には、前記キャッシュライン縮退情報記憶手段において、当該エラーに係る所定のキャッシュラインについて、当該所定のキャッシュラインが縮退であることを示すキャッシュライン縮退情報を書き込む縮退制御手段と、を備えたことを特徴とする。【０００７】
また、請求項２に係る発明は、上記の発明において、前記複数のウェイごとに前記アクセス要求に対するエラーの発生回数を計数するエラー計数手段をさらに備え、前記縮退制御手段は、前記エラー計数手段により計数された前記エラー回数が所定の上限回数に到達した場合に、当該所定の上限回数到達契機となったエラーに係るキャッシュラインについて、当該キャッシュラインが縮退であることを示すキャッシュライン縮退情報を書き込むことを特徴とする。【０００８】
また、請求項３に係る発明は、上記の発明において、前記縮退制御手段は、前記エラー計数手段に計数された前記エラー回数が前記所定の上限回数以上である他の所定の上限回数に到達した場合に、当該他の所定の上限回数に到達したウェイに含まれる全てのキャッシュラインについて、当該キャッシュラインがウェイ全体として縮退であることを示すウェイ縮退情報を書き込むことを特徴とする。【０００９】
また、請求項４に係る発明は、上記の発明において、前記アクセス要求に対応するデータが前記キャッシュに存在しない場合に、前記キャッシュライン縮退情報記憶手段に記憶されている前記キャッシュライン縮退情報および／またはウェイ縮退情報を参照して、当該アクセス要求に対応するデータがキャッシュされるべきキャッシュラインを選択するウェイ選択手段をさらに備えたことを特徴とする。【００１０】
また、請求項５に係る発明は、上記の発明において、前記ウェイ選択手段は、選択しようとする全てのキャッシュラインが縮退である場合に、前記ウェイ縮退情報でなく前記キャッシュライン縮退情報に係るキャッシュラインの中から前記アクセス要求に対応するデータがキャッシュされるべきキャッシュラインを選択することを特徴とする。【００１１】
また、請求項６に係る発明は、上記の発明において、アクセス要求に対するエラーの発生に基づいて、複数のウェイで構成されるキャッシュの縮退を制御する方法をコンピュータに実行させる縮退制御プログラムにおいて、前記複数のウェイのそれぞれを構成するキャッシュラインごとに、当該キャッシュラインが縮退あるかどうかを示すキャッシュライン縮退情報を記憶するキャッシュライン縮退情報記憶手順と、前記アクセス要求に対して発生したエラーが所定の条件を満たした場合には、前記キャッシュライン縮退情報記憶手順において、当該エラーに係る所定のキャッシュラインについて、当該所定のキャッシュラインが縮退であることを示すキャッシュライン縮退情報を書き込む縮退制御手順と、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１２】
請求項１または６の発明によれば、複数のウェイのそれぞれを構成するキャッシュラインごとに、キャッシュラインが縮退あるかどうかを示すキャッシュライン縮退情報を記憶し、アクセス要求に対して発生したエラーが所定の条件を満たした場合には、エラーに係る所定のキャッシュラインについて、そのキャッシュラインが縮退であることを示すキャッシュライン縮退情報を書き込むので、ウェイ単位で縮退制御する（使用不可能な状態に制御にする）のではなく、キャッシュライン単位で縮退制御することができ、キャッシュメモリの処理能力性能の低下を抑えつつ、重大な障害に発展する潜在的な要因（例えば、訂正可能なエラーなど）を予め排除することによりコンピュータシステム内の信頼性を維持することが可能となる。【００１３】
また、請求項２の発明によれば、複数のウェイごとにアクセス要求に対するエラーの発生回数を計数し、計数されたエラー回数が所定の上限回数に到達した場合に、その上限回数に到達する契機となったエラーに係るキャッシュラインについて、そのキャッシュラインが縮退であることを示すキャッシュライン縮退情報を書き込むので、キャッシュラインごとにエラー回数を計数するカウンタを備えることなく、キャッシュラインについて実質的なエラー管理をすることができ（すなわち、障害のあるキャッシュラインは頻繁にエラーを発生させることが考えられ、ウェイごとにキャッシュラインのエラー回数を計数することとしても問題は少ない）、キャッシュメモリの処理能力性能の低下を抑えつつ、重大な障害に発展する恐れのある潜在的な要因を予め排除することにより、コンピュータシステム内の信頼性を維持することが可能となる。【００１４】
また、請求項３の発明によれば、計数されたエラー回数が所定の上限回数以上である他の所定の上限回数に到達した場合に、他の所定の上限回数に到達したウェイに含まれる全てのキャッシュラインについて、キャッシュラインがウェイ全体として縮退であることを示すウェイ縮退情報を書き込むので、エラーを頻繁に発生させるキャッシュラインを含むウェイについては、そのウェイ全体を縮退させることができ、キャッシュメモリの処理能力性能の低下を抑えつつ、重大な障害に発展する恐れのある潜在的な要因を予め排除することにより、コンピュータシステム内の信頼性を維持することが可能となる。【００１５】
また、請求項４の発明によれば、アクセス要求に対応するデータがキャッシュに存在しない場合に、キャッシュライン縮退情報および／またはウェイ縮退情報を参照して、アクセス要求に対応するデータがキャッシュされるべきキャッシュラインを選択するので、縮退されているキャッシュラインを使用することがなく、キャッシュメモリの処理能力性能の低下を抑えつつ、重大な障害に発展する恐れのある潜在的な要因を予め排除することにより、コンピュータシステム内の信頼性を維持することが可能となる。【００１６】
また、請求項５の発明によれば、選択しようとする全てのキャッシュラインが縮退である場合に、ウェイ縮退情報でなくキャッシュライン縮退情報に係るキャッシュラインの中からアクセス要求に対応するデータがキャッシュされるべきキャッシュラインを選択するので、アクセス要求に対応するキャッシュラインが全て縮退である場合であっても、データ格納領域に重大な障害が発生している蓋然性の低い（つまり、ウェイ自体が縮退している場合よりもキャッシュライン縮退している場合の方が、エラーの発生回数が少なく、データ格納領域に重大な障害が発生している蓋然性が低い）キャッシュラインを復活させて選択することでアクセス要求に確実に応答することができ、キャッシュメモリの処理能力性能の低下を抑えつつ、重大な障害に発展する恐れのある潜在的な要因を予め排除することにより、コンピュータシステム内の信頼性を維持することが可能となる。
【図面の簡単な説明】
【００１７】
【図１】図１は、実施例１に係る縮退制御装置の概要を説明するための図である。
【図２】図２は、実施例１に係る縮退制御装置の構成を示すブロック図である。
【図３】図３は、キャッシュタグの構成例を示す図である。
【図４】図４は、エラーカウンタの構成例を示す図である。
【図５】図５は、実施例１に係る縮退制御装置のメイン処理の流れを示すフローチャートである。
【図６】図６は、実施例１に係るキャッシュタグ検索処理の流れを示すフローチャートである。
【図７】図７は、実施例１に係る縮退制御処理の流れを示すフローチャートである。
【図８】図８は、実施例１に係る登録ウェイ決定処理の流れを示すフローチャートである。
【図９】図９は、実施例２に係る縮退制御装置のメイン処理の流れを示すフローチャートである。
【図１０】図１０は、縮退制御処理を実行するコンピュータを示す図である。
【図１１】図１１は、従来技術による縮退制御処理を示す図である。
【符号の説明】
【００１８】
１０  縮退制御装置
１１  主記憶部制御ＩＦ部
１２  記憶部
１２ａ  キャッシュタグ記憶部
１２ｂ  キャッシュデータ記憶部
１３  制御部
１３ａ  要求受付部
１３ｂ  縮退制御部
１３ｃ  ウェイ選択部
１３ｄ  データ送出部
２０  コンピュータ
３１  主記憶制御ＩＦ部
２２  ＨＤＤ（Hard  disk  drive）
２３  ＲＡＭ（Random  access  memory）
２４  ＲＯＭ（Read  only  memory）
２５  ＣＰＵ（Central  processing  unit）
３０  バス
【発明を実施するための最良の形態】
【００１９】
以下に添付図面を参照して、この発明に縮退制御装置および縮退制御プログラムの実施例を詳細に説明する。なお、以下では、実施例１に係る縮退制御装置について説明した後に、この発明に含まれる他の実施例について説明する。
【実施例１】
【００２０】
以下の実施例１では、実施例１に係る縮退制御装置の概要および特徴、縮退制御装置の構成および処理を順に説明し、最後に実施例１の効果を説明する。【００２１】
［縮退制御装置の概要および特徴（実施例１）］
まず最初に、図１を用いて、実施例１に係る縮退制御装置の概要および特徴を説明する。図１は、１実施例に係る縮退制御装置の概要を説明するための図である。同図に示すように、実施例１に係る縮退制御装置は、アクセス要求（例えば、リード要求やライト要求）に対するエラーの発生に基づいて、多ウェイ（キャッシュ内の列）で構成されるキャッシュの縮退を制御することを概要とするが、キャッシュメモリの処理能力性能の低下を抑えつつ、重大な障害に発展する恐れのある潜在的な要因を予め排除することにより、コンピュータシステム内の信頼性を維持する点に主たる特徴がある。【００２２】
この主たる特徴について具体的に説明すると、実施例１に係る縮退制御装置は、各ウェイを構成するキャッシュライン（キャッシュ内のデータ格納領域の最小単位）ごとに縮退あるかどうかを示すキャッシュライン縮退情報（例えば、縮退フラグ）を記憶するキャッシュタグを備えている。このキャッシュタグには、キャッシュライン縮退情報のほかに、キャッシュラインに格納されているデータの登録アドレスなどが記憶されている。【００２３】
そして、アクセス要求（例えば、読み出し要求や書き込み要求）を受け付けると、この縮退制御装置は、キャッシュタグ検索処理を開始する（図１の（１）参照）。具体的には、この縮退制御装置は、アクセス要求に対応するデータのアドレスからキャッシュのインデックス（例えば、ｍ行）を把握して、このインデックスに対応するキャッシュタグを検索する。【００２４】
続いて、この縮退制御装置は、検索したキャッシュタグの情報を全ウェイ（全列）について参照して縮退フラグの確認を行う。そして、この縮退制御装置は、縮退ではない（つまり、縮退フラグが書き込まれておらず使用可能な状態である）ことが確認されたキャッシュラインのそれぞれについてヒット検査を行う（図１の（２）参照）。具体的には、この縮退制御装置は、例えば、アクセス要求に対応するデータのアドレスとキャッシュタグに記憶されている登録アドレスとが一致するかどうかによってヒット検査を行う。【００２５】
検査の結果、ヒットするキャッシュライン（以下「該当キャッシュライン」と称する）を検出した場合には、この縮退制御装置は、例えば、該当キャッシュラインのキャッシュデータについてエラー検査を行う。検査の結果、該当キャッシュラインのキャッシュデータについてエラーを検出した場合には、この縮退制御装置は、検出したエラーを訂正するとともに縮退制御処理を開始する（図１の（４）参照）。【００２６】
縮退制御処理について具体的に説明すると、この縮退制御装置はまず、例えば、エラー回数をウェイごとに計数するために備えたエラーカウンタをアップする。そして、エラーカウンタが予め定めた所定の上限回数を超えている場合には、この縮退制御装置は、通常の処理（例えば、アクセス要求に対応するキャッシュデータの転送処理など）を一時中断し、その上限回数に到達する契機となったエラーを発生させたキャッシュライン（例えば、Ｗａｙ：ｎ，Ｉｎｄｅｘ：ｍ）の内容を、図示には示していない主記憶部などへ書き戻し、さらに、そのキャッシュラインについて、キャッシュタグに縮退フラグ（キャッシュラインが縮退であることを示す縮退情報）を書き込む。すなわち、キャッシュタグに縮退フラグが書き込まれることによって、以後、そのキャッシュラインは使用不可な状態に制御（縮退制御）される。縮退制御処理の後、この縮退制御装置は、通常の処理を再開し、エラーを訂正したキャッシュデータを要求元に転送する（図１の（５）参照）。【００２７】
一方、エラーカウンタが予め定めた所定の上限回数を超えていない場合には、この縮退制御装置は、エラーを発生させたキャッシュラインについて、キャッシュタグに縮退フラグを書き込むことなく、エラーを訂正したキャッシュデータをそのまま要求元に転送する（図１の（５）参照）。なお、キャッシュデータがエラーを起こしている場合には、この縮退制御装置は、エラーを訂正したキャッシュデータを転送するだけでなく、ライトバック対象でなければ、図には示していない主記憶部などからアクセス要求に対応するデータのプライマリデータを読み出して、要求元に転送するようにしてもよい。【００２８】
このようなことから、実施例１に係る縮退制御装置は、上述した主たる特徴の如く、キャッシュメモリの処理能力性能の低下を抑えつつ、重大な障害に発展する恐れのある潜在的な要因を予め排除することにより、コンピュータシステム内の信頼性を維持することが可能となる。【００２９】
［縮退制御装置の構成（実施例１）］
次に、図２を用いて、実施例１に係る縮退制御装置の構成を説明する。図２は、実施例１に係る縮退制御装置の構成を示すブロック図である。なお、同図においては、縮退制御装置を実現するうえで必要となる処理部のみを示しており、その他の処理部の記載については省略している。【００３０】
同図に示すように、この縮退制御装置１０は、主記憶制御ＩＦ部１１と、記憶部１２と、制御部１３とから構成される。このうち、主記憶制御ＩＦ部１１は、所定のデータを記憶する格納する格納手段（記憶手段）である。【００３１】
記憶部１２は、制御部１３による各種処理に必要なデータおよびプログラムを格納する格納手段（記憶手段）であり、特に本発明に密接に関連するものとしては、キャッシュタグ記憶部１２ａおよびキャッシュデータ記憶部１２ｂを備える。【００３２】
このうち、キャッシュタグ記憶部１２ａは、キャッシュラインに関する各種の情報を記憶する手段であり、具体的には、図３に例示するように、キャッシュメモリに配置されたウェイ（Ｗａｙ：列）およびインデックス（Ｉｎｄｅｘ：行）に対応づけて、縮退フラグ、登録アドレス、ステータスおよびＥＣＣなどを記憶して構成される。ここで、縮退フラグとは、キャッシュラインまたはウェイが使用可能な状態（縮退ではない状態）であるかどうかを示す情報であり、例えば、１ビットで構成してもよいし、情報の信頼性などを考慮して３ビットあるいは５ビット情報で構成するようにしてもよい。また、登録アドレスとは、キャッシュラインに格納されている主記憶部などのデータを識別する情報である。また、ステータスとは、キャッシュラインの状態を示す情報であり、例えば、主記憶部のデータが格納されているかどうかを示す。また、ＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ）とは、キャッシュタグデータの誤りを訂正するための付加データであり、キャッシュデータの信頼性を担保するものである。【００３３】
キャッシュデータ記憶部１２ｂは、主記憶部などに記憶されている各種の情報を記憶する手段であり、例えば、主記憶部などに記憶されているデータの中から使用頻度の高いものを記憶しておき、主記憶部などからデータの読み出しよりも高速なデータの読み出しを実現する。【００３４】
制御部１３は、所定の制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理（例えば、キャッシュの制御処理、図示を省略した所定の演算実行部や主記憶制御部とのデータの授受に関する制御処理）を実行する処理部であり、特に本発明に密接に関連するものとしては、要求受付部１３ａと、縮退制御部１３ｂと、ウェイ選択部１３ｃと、データ送出部１３ｄとを備える。【００３５】
このうち、要求受付部１３ａは、アクセス要求（例えば、データ読み出し要求やデータ書き込み要求）を受け付ける処理部である。【００３６】
縮退制御部１３ｂは、キャッシュラインを縮退制御する（使用不可な状態にする）処理部である。具体的には、要求受付部１３ａがアクセス要求を受け付けると、この縮退制御部１３ｂは、キャッシュタグ検索処理を開始する。このキャッシュタグ検索処理について具体的に説明すると、この縮退制御部１３ｂは、アクセス要求に対応するデータのアドレスからキャッシュ内のインデックス（以下「該当インデックス」と称する）を把握して、キャッシュタグ記憶部１３ａに記憶されているキャッシュタグの中から該当インデックスに対応するキャッシュタグを検索する。【００３７】
続いて、この縮退制御部１３ｂは、検索したキャッシュタグの情報を全ウェイ（全列）について参照して縮退フラグの確認を行う。そして、この縮退制御部１３ｂは、縮退ではない（つまり、縮退フラグが書き込まれておらず使用可能な状態である）ことが確認されたキャッシュラインのそれぞれについてヒット検査を行う。一方、縮退制御部１３ｂは、縮退であることが確認されたキャッシュラインのそれぞれをマスクする（ヒット検査を行わないようする）。このヒット検査について具体的に説明すると、この縮退制御部１３ｂは、例えば、アクセス要求に対応するデータのアドレスとキャッシュタグに記憶されている登録アドレスとが一致するかどうかの検査（つまり、キャッシュラインに格納されているデータがアクセス要求に対応するデータと一致するかどうかの検査）を行う。【００３８】
検査の結果、ヒットするキャッシュライン（以下、「該当キャッシュライン」と称する）を検出した場合には、この縮退制御部１３ｂは、例えば、該当キャッシュラインのキャッシュデータについてエラー検査を行う。検査の結果、該当キャッシュラインのキャッシュデータについてエラーを検出した場合には、この縮退制御部１３ｂは、検出したエラーを訂正するとともに縮退制御処理を開始する。一方、該当キャッシュラインについてエラーを検出しなかった場合には、この縮退制御部１３ｂは、該当キャッシュラインのキャッシュデータを要求元に転送するように、データ送出部１３ｄに対して指令を出力する。【００３９】
また、縮退制御処理について具体的に説明すると、この縮退制御部１３ｂは、例えば、図４に例示するように、ウェイ（例えば、Ｗａｙ：ｎ）ごとにエラー回数を２進数で計数するためのエラーカウンタを備える。そして、この縮退制御部１３ｂは、エラーが検出された該当キャッシュラインを含むウェイに対応するエラーカウンタをアップさせ、エラーカウンタが予め定めた所定の上限回数（例えば、２のｊ乗回）を超えている場合には、通常の処理（例えば、アクセス要求に対応するキャッシュデータの転送処理など）を一時中断し、その上限回数に到達する契機となったエラーを発生させた縮退予定のキャッシュライン（例えば、Ｗａｙ：ｎ，Ｉｎｄｅｘ：ｍ）の内容を、図示には示していない主記憶部などへ書き戻す。さらに、この縮退制御部１３ｂは、その縮退予定のキャッシュラインについて、キャッシュタグに縮退フラグ（キャッシュラインが縮退であることを示す縮退情報）を書き込む。すなわち、キャッシュタグに縮退フラグが書き込まれることによって、以後、該当キャッシュラインは使用不可な状態に制御（縮退制御）される。縮退制御処理の後、この縮退制御部１３ｂは、通常の処理を再開し、エラーを訂正したキャッシュデータを要求元に転送するように、データ送出部１３ｄに対して指令を出力する。【００４０】
また、先ほど説明した場合とは反対に、エラーカウンタが予め定めた所定の上限回数を超えていない場合には、この縮退制御部１３ｂは、エラーを発生させたキャッシュラインについて、キャッシュタグに縮退フラグの書き込みは行わず、エラーを訂正したキャッシュデータを要求元に転送するように、データ送出部１３ｄに対して指令を出力する。なお、縮退制御部１３ｂは、エラーを訂正したキャッシュデータを転送するようにデータ送出部１３ｄに対して指令を出力するだけでなく、ライトバック対象でなければ、図には示していない主記憶部などからアクセス要求に対応するデータのプライマリデータを読み出して、要求元に転送するようにデータ送出部１３ｄに対して指令を出力してもよい。【００４１】
なお、この縮退制御部１３ｂは、キャッシュラインについてキャッシュタグに縮退フラグを書き込んだ後もエラー回数の計数を続け、エラーカウンタが２のｊ乗回以上の予め定めた上限回数（例えば、２のｉ乗回）を超えている場合には、その上限回数に到達したウェイに含まれる全てのキャッシュラインついて縮退したことを示すウェイ縮退フラグを書き込む。以後、そのウェイは使用不可能な状態に制御（縮退制御）される。このウェイ縮退フラグは、キャッシュタグ記憶部１２ａにおいて記憶するだけでなく、別の記憶部（例えば、レジスタやラッチなど）において記憶するようにしてもよい。【００４２】
ところで、ヒット検査により該当キャッシュラインを検出できなかった場合（つまり、キャッシュ内にアクセス要求に対応するデータが存在しない場合）には、この縮退制御部１３ｂは、アクセス要求に対応するデータをキャッシュ（登録）すべきキャッシュラインを決定するため、ウェイ選択部１３ｃに対してウェイ選択指令を出力する。そして、縮退制御部１３ｂは、ウェイ選択部１３ｃから登録ウェイを受け付けると、キャッシュタグ記憶部１２ａに記憶されているキャッシュタグを、要求データがキャッシュされるキャッシュラインについて更新する（例えば、登録アドレスを更新する）とともに、主記憶制御ＩＦ部１１を介して、主記憶制御部にアクセス要求に対応するデータの要求指令を出力する。また、主記憶制御部から要求データを受け付けると、縮退制御部１３ｂは、そのデータを要求元に転送するようにデータ送出部１３ｄに対して指令を出力するとともにキャッシュデータ記憶部１２ｂに受け付けた要求データを格納する。【００４３】
ウェイ選択部１３ｃは、縮退制御部１３ｂからウェイ選択指令を受け付けて、アクセス要求に対応するデータをキャッシュすべきキャッシュラインを含んだウェイを選択する処理部である。具体的には、このウェイ選択部１３ｃは、例えば、キャッシュラインの最終使用時の情報を記憶しており、その情報に基づいて、最近最も使用されていないキャッシュラインを含んだ候補ウェイを選択する。次に、ウェイ選択部１３ｃは、キャッシュタグ記憶部１２ａに記憶されているキャッシュタグの縮退情報を参照し、アクセス要求にかかるデータのアドレスから把握されるインデックスに対応した候補ウェイ内のキャッシュラインが縮退であるかどうかを確認する。その結果、候補ウェイ内のキャッシュラインが縮退でない場合には、ウェイ選択部１３ｃは、候補ウェイをアクセス要求に対応するデータをキャッシュすべき登録ウェイとして決定し、決定した登録ウェイを縮退制御部１３ｂに出力する。一方、候補ウェイ内のキャッシュラインが縮退である場合には、このウェイ選択部１３ｃは、キャッシュラインの最終使用時の情報に基づいて次候補となるウェイを選択し、登録ウェイを決定するまで上述したのと同様の処理を繰り返し行う。【００４４】
データ送出部１３ｄは、アクセス要求元へ要求データの送出等を行う処理部である。具体的には、データ送出部１３ｄは、縮退制御部１３ｂから受け付けたキャッシュデータ（例えば、訂正されたキャッシュデータなど）を要求元に転送する。【００４５】
［縮退制御装置によるメイン処理（実施例１）］
次に、図５を用いて、実施例１に係る縮退制御装置によるメイン処理を説明する。図５は、実施例１に係る縮退制御装置のメイン処理の流れを示すフローチャートである。同図に示すように、アクセス要求を受け付けると（ステップＳ５０１肯定）、縮退制御部１３ｂは、後に詳述するキャッシュタグ検索処理を行う（ステップＳ５０２）。【００４６】
続いて、この縮退制御部１３ｂは、キャッシュタグ検索処理で検索したキャッシュラインについてヒット検査を行う（ステップＳ５０３）。このヒット検査について具体的に説明すると、この縮退制御部１３ｂは、例えば、アクセス要求にかかるデータのアドレスとキャッシュタグに記憶されている登録アドレスとが一致するかどうかの検査を行う。その結果、ヒットするキャッシュライン（以下、「該当キャッシュライン」と称する）を検出した場合には（ステップＳ５０４肯定）、この縮退制御部１３ｂは、該当キャッシュラインのキャッシュデータについてエラー検査を行う（ステップＳ５０５）。その結果、該当キャッシュラインのキャッシュデータについてエラーを検出した場合には（ステップＳ５０６肯定）、この縮退制御部１３ｂは、検出したエラーを訂正するとともに後に詳述する縮退制御処理を開始する。【００４７】
一方、該当キャッシュラインのキャッシュデータについてエラーを検出しなかった場合には（ステップＳ５０６否定）、この縮退制御部１３ｂは、該当キャッシュラインのキャッシュデータを要求元に転送するようにデータ送出部１３ｄに対して指令を出力し、この指令を受け付けたデータ送出部１３ｄは、要求元にキャッシュデータを転送する（ステップＳ５０８）。【００４８】
ここで、ステップＳ５０４の説明に戻ると、該当キャッシュラインを検出できなかった場合には（ステップＳ５０４否定）、縮退制御部１３ｂは、後に詳述する登録ウェイ決定処理を行う（ステップＳ５０９）。また、主記憶制御ＩＦ部１１を介して、主記憶制御部にアクセス要求に対応するデータの要求指令を出力する（ステップＳ５１０）。なお、上述してきた処理は、縮退制御装置１０の起動中に繰り返し実行される。【００４９】
［キャッシュタグ検索処理（実施例１）］
続いて、図６を用いて、実施例１に係る縮退制御装置のキャッシュタグ検索処理を説明する。図６は、実施例１に係る縮退制御装置のキャッシュタグ検索処理の流れを示すフローチャートである。同図に示すように、アクセス要求を受け付けると（ステップＳ６０１肯定）、縮退制御部１３ｂはキャッシュタグ検索処理を開始する（ステップＳ６０２）。【００５０】
具体的には、縮退制御部１３ｂは、アクセス要求にかかるデータのアドレスからキャッシュ内のインデックス（以下「該当インデックス」と称する）を把握して、キャッシュタグ記憶部１３ａに記憶されているキャッシュタグの中から該当インデックスに対応するキャッシュタグを検索する（ステップＳ６０３）。【００５１】
続いて、縮退制御部１３ｂは、検索したキャッシュタグの情報を全ウェイ（全列）について参照して縮退フラグの確認を行う（ステップＳ６０４）。そして、この縮退制御部１３ｂは、キャッシュラインが縮退ではない（つまり、縮退フラグが書き込まれておらず使用可能な状態である）場合には（ステップＳ６０５否定）、縮退ではないキャッシュラインのそれぞれについてヒット検査（上述のステップＳ５０３）を行う。【００５２】
一方、この縮退制御部１３ｂは、キャッシュラインが縮退である場合には（ステップＳ６０５肯定）、縮退であるキャッシュラインのそれぞれをマスクする（ヒット検査を行わないようする）。【００５３】
［縮退制御処理（実施例１）］
続いて、図７を用いて、実施例１に係る縮退制御装置の縮退制御処理を説明する。図７は、実施例１に係る縮退制御装置の縮退制御処理の流れを示すフローチャートである。縮退制御部１３ｂは、エラー検査（上述のステップＳ５０５）により、例えば、該当キャッシュラインのキャッシュデータについてエラーを検出すると縮退制御処理を開始する（ステップＳ７０１）。【００５４】
具体的には、この縮退制御部１３ｂは、例えば、図４に例示するように、ウェイごとにエラー回数を２進数で計数するためのエラーカウンタを備える。そして、この縮退制御部１３ｂは、エラーが検出された該当キャッシュラインに含むウェイに対応するエラーカウンタをアップさせる（ステップＳ７０２）。そして、エラーカウンタが予め定めた所定の上限回数（例えば、２のｊ乗回）を超えている場合には（ステップＳ７０３肯定）、縮退制御部１３ｂは、通常の処理を一時中断し、その上限回数に到達する契機となったエラーを発生させた縮退予定のキャッシュライン（例えば、Ｗａｙ：ｎ，Ｉｎｄｅｘ：ｍ）の内容を主記憶部などへ書き戻す（ステップＳ７０４）。さらに、この縮退制御部１３ｂは、その縮退予定のキャッシュラインについて、キャッシュタグに縮退フラグ（キャッシュラインが縮退であることを示す縮退情報）を書き込む（ステップＳ７０５）。【００５５】
縮退制御処理の後、この縮退制御部１３ｂは、通常の処理を再開し（ステップＳ７０６）、図には示していないが、訂正したキャッシュデータを要求元に転送するように、データ送出部１３ｄに対して指令を出力して、アクセス要求受け付けへ戻る。一方、エラーカウンタが予め定めた所定の上限回数（例えば、２のｊ乗回）を超えていない場合には（ステップＳ７０３否定）、この縮退制御部１３ｂは、先ほど説明したのと同様に、訂正したキャッシュデータを要求元に転送するように、データ送出部１３ｄに対して指令を出力して、アクセス要求受け付けへ戻る。【００５６】
なお、図には示していないが、この縮退制御部１３ｂは、キャッシュラインについてキャッシュタグに縮退フラグを書き込んだ後もエラー回数の計数を続け、エラーカウンタが２のｊ乗回以上の予め定めた上限回数（例えば、２のｉ乗回）を超えている場合には、その上限回数に到達したウェイに含まれる全てのキャッシュラインついて縮退したことを示すウェイ縮退フラグを書き込む。以後、そのウェイは使用不可能な状態に制御（縮退制御）される。【００５７】
［登録ウェイ決定処理（実施例１）］
続いて、図８を用いて、実施例１に係る縮退制御装置の登録ウェイ決定処理を説明する。図７は、実施例１に係る縮退制御装置の登録ウェイ決定処理の流れを示すフローチャートである。同図に示すように、ヒットする該当キャッシュラインを検出できなかった場合（つまり、キャッシュ内にアクセス要求に対応するデータが存在しない場合）には（ステップＳ８０１否定）、縮退制御部１３ｂは、アクセス要求に対応するデータをキャッシュ（登録）すべきキャッシュラインを決定するため、ウェイ選択部１３ｃに対してウェイ選択指令を出力する。ウェイ選択指令を受け付けたウェイ選択部１３ｃは登録ウェイ決定処理を開始する（ステップＳ８０２）。【００５８】
具体的には、このウェイ選択部１３ｃは、例えば、キャッシュラインの最終使用時の情報を記憶しており、その情報に基づいて、最近最も使用されていないキャッシュラインを含んだ候補ウェイを選択する（ステップＳ８０３）。次に、ウェイ選択部１３ｃは、キャッシュタグ記憶部１２ａに記憶されているキャッシュタグの縮退情報を参照し（ステップＳ８０４）、アクセス要求にかかるデータのアドレスから把握されるインデックスに対応した候補ウェイ内のキャッシュラインが縮退であるかどうかを確認する。【００５９】
その結果、候補ウェイ内のキャッシュラインが縮退でない場合には（ステップＳ８０５否定）、ウェイ選択部１３ｃは、候補ウェイをアクセス要求に対応するデータをキャッシュすべき登録ウェイとして決定し（ステップＳ８０６）、決定した登録ウェイを縮退制御部１３ｂに出力する。そして、ウェイ選択部１３ｃから登録ウェイを受け付けた縮退制御部１３ｂは、主記憶制御ＩＦ部１１を介して、主記憶制御部にアクセス要求に対応するデータの要求指令を出力する（上述のステップＳ５１０）。一方、候補ウェイ内のキャッシュラインが縮退である場合には（ステップＳ８０５肯定）、このウェイ選択部１３ｃは、キャッシュラインの最終使用時の情報に基づいて次候補となるウェイを選択し、登録ウェイを決定するまで上述したのと同様の処理を繰り返し行う。【００６０】
［実施例１の効果］
上述してきたように、実施例１によれば、この縮退制御装置は、複数のウェイのそれぞれを構成するキャッシュラインごとに、キャッシュラインが縮退あるかどうかを示すキャッシュライン縮退情報を記憶し、アクセス要求に対して発生したエラーが所定の条件を満たした場合には、エラーに係る所定のキャッシュラインについて、そのキャッシュラインが縮退であることを示すキャッシュライン縮退情報を書き込むので、ウェイ単位で縮退制御する（使用不可能な状態に制御にする）のではなく、キャッシュライン単位で縮退制御することができ、キャッシュメモリの処理能力性能の低下を抑えつつ、重大な障害に発展する潜在的な要因（例えば、訂正可能なエラーなど）を予め排除することによりコンピュータシステム内の信頼性を維持することが可能となる。【００６１】
また、実施例１によれば、この縮退制御装置は、複数のウェイごとにアクセス要求に対するエラーの発生回数を計数し、計数されたエラー回数が所定の上限回数に到達した場合に、その上限回数に到達する契機となったエラーに係るキャッシュラインについて、そのキャッシュラインが縮退であることを示すキャッシュライン縮退情報を書き込むので、キャッシュラインごとにエラー回数を計数するカウンタを備えることなく、キャッシュラインについて実質的なエラー管理をすることができ（すなわち、障害のあるキャッシュラインは頻繁にエラーを発生させることが考えられ、ウェイごとにキャッシュラインのエラー回数を計数することとしても問題は少ない）、キャッシュメモリの処理能力性能の低下を抑えつつ、重大な障害に発展する恐れのある潜在的な要因を予め排除することにより、コンピュータシステム内の信頼性を維持することが可能となる。【００６２】
また、実施例１によれば、この縮退制御装置は、計数されたエラー回数が所定の上限回数以上である他の所定の上限回数に到達した場合に、他の所定の上限回数に到達したウェイに含まれる全てのキャッシュラインについて、キャッシュラインがウェイ全体として縮退であることを示すウェイ縮退情報を書き込むので、エラーを頻繁に発生させるキャッシュラインを含むウェイについては、そのウェイ全体を縮退させることができ、キャッシュメモリの処理能力性能の低下を抑えつつ、重大な障害に発展する恐れのある潜在的な要因を予め排除することにより、コンピュータシステム内の信頼性を維持することが可能となる。【００６３】
また、実施例１によれば、この縮退制御装置は、アクセス要求に対応するデータがキャッシュに存在しない場合に、キャッシュライン縮退情報および／またはウェイ縮退情報を参照して、アクセス要求に対応するデータがキャッシュされるべきキャッシュラインを選択するので、縮退されているキャッシュラインを使用することがなく、キャッシュメモリの処理能力性能の低下を抑えつつ、重大な障害に発展する恐れのある潜在的な要因を予め排除することにより、コンピュータシステム内の信頼性を維持することが可能となる。
【実施例２】
【００６４】
さて、これまで本発明の実施例１について説明したが、本発明は上述した実施例１以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。【００６５】
（１）キャッシュタグのエラー検査
上記の実施例１では、縮退制御部１３ｂは、例えば、アクセス要求に対応したキャッシュラインのキャッシュデータについてエラー検査を行ってキャッシュラインの縮退を制御する場合を説明したが、本発明はこれに限定されるものではなく、上記の実施例１で説明した縮退制御装置のキャッシュタグ検索処理（図６参照）に続いて、アクセス要求に対応したキャッシュラインの情報を持つキャッシュタグについてさらにエラー検査（例えば、縮退フラグのエラー検査）を行って、その検査結果を加味してキャッシュラインの縮退を制御するようにしてもよい。そこで、以下では、キャッシュタグのエラー検査結果をさらに加味してキャッシュラインの縮退を制御する場合を説明する。【００６６】
この場合の縮退制御装置の構成は、上記の実施例１において説明した縮退制御装置１０と基本的には同様の構成であるが、以下に説明する点が異なる。【００６７】
縮退制御部１３ｂは、キャッシュタグ検索処理により縮退ではないことが確認されたキャッシュラインのそれぞれについてキャッシュタグのエラー検査を行う。検査の結果、エラーを検出した場合には、この縮退制御部１３ｂは、上記の実施例１で説明した場合と同様に、検出したキャッシュタグのエラーを訂正するとともに、上記の実施例１において説明したのと同様の縮退制御処理（図７参照）を行う。【００６８】
すわわち、縮退制御部１３ｂは、そのエラーに対応するキャッシュラインを含むウェイに対応したエラーカウンタをアップさせ、エラーカウンタが予め定めた所定の上限回数を超えている場合には、通常の処理を一時中断し、その上限回数に到達する契機となったエラーを発生させた縮退予定のキャッシュラインの内容を、図示には示していない主記憶部などへ書き戻す。さらに、この縮退制御部１３ｂは、その縮退予定のキャッシュラインについて、キャッシュタグに縮退フラグ（キャッシュラインが縮退であることを示す縮退情報）を書き込む。一方、エラーカウンタが予め定めた所定の上限回数を超えていない場合には、この縮退制御部１３ｂは、キャッシュタグに縮退フラグの書き込みは行わない。なお、このエラーカウンタは上記の実施例１において説明したエラーカウンタと共用するものとする。【００６９】
一方、キャッシュタグのエラー検査の結果、エラーを検出しなかった場合には、この縮退制御部１３ｂは、キャッシュタグ検索処理により縮退ではないことが確認されたキャッシュラインについて、上記の実施例１において説明したヒット検査を行う。【００７０】
続いて、図９を用いて、この場合の縮退制御装置の処理の流れについて説明する。図９は、実施例２に係る縮退制御装置のメイン処理の流れをしめすフローチャートである。同図に示すように、アクセス要求を受け付けると（ステップＳ９０１肯定）、縮退制御部１３ｂは、上記の実施例１において説明したキャッシュタグ検索処理を行う（ステップＳ９０２）。【００７１】
続いて、縮退制御部１３ｂは、キャッシュタグ検索処理により縮退ではないことが確認されたキャッシュラインのそれぞれについてキャッシュタグのエラー検査（タグ部エラー検査）を行う（ステップＳ９０３）。検査の結果、エラーを検出した場合には（ステップＳ９０４肯定）、この縮退制御部１３ｂは、検出したキャッシュタグのエラーを訂正するとともに、そのエラーに対応するキャッシュラインについて、上記の実施例１において説明したのと同様の縮退制御処理（ステップＳ９０５、図７参照）を行う。【００７２】
一方、キャッシュタグのエラー検査の結果、エラーを検出しなかった場合には（ステップＳ９０４）、この縮退制御部１３ｂは、キャッシュタグ検索処理により縮退ではないことが確認されたキャッシュラインについて、上記の実施例１において説明したヒット検査を行う。なお、この後の処理の流れ（ステップＳ９０６〜ステップＳ９１２）は上記の実施例１において説明したのと同様であるので説明を省略する。【００７３】
このようなことから、アクセス要求に対応したキャッシュラインのキャッシュデータについてエラー検査を行ってキャッシュラインの縮退を制御するだけでなく、アクセス要求に対応したキャッシュラインの情報を持つキャッシュタグについてさらにエラー検査を行って、その検査結果を加味してキャッシュラインの縮退を制御するので、例えば、キャッシュタグの中の縮退情報の信頼性を維持しつつ、キャッシュラインの縮退を制御することが可能となる。【００７４】
（２）登録ウェイの選択
上記の実施例１において、キャッシュ内にアクセス要求に対応するデータが存在しない場合に、アクセス要求に対応するデータをキャッシュ（登録）すべきキャッシュラインを決定するために登録ウェイを選択する場合を説明したが、本発明はこれに限定されるものではなく、選択しようとする全てのキャッシュラインが縮退である場合に、ウェイ縮退情報でなくキャッシュライン縮退情報にかかるキャッシュラインの中から、アクセス要求に対応するデータがキャッシュされるべきキャッシュラインを選択するようにしてもよい。【００７５】
これにより、この縮退制御装置は、アクセス要求に対応するキャッシュラインが全て縮退である場合であっても、データ格納領域に重大な障害が発生している蓋然性の低い（つまり、ウェイ自体が縮退している場合よりもキャッシュライン縮退している場合の方が、エラーの発生回数が少なく、データ格納領域に重大な障害が発生している蓋然性が低い）キャッシュラインを復活させて選択することでアクセス要求に確実に応答することができ、キャッシュメモリの処理能力性能の低下を抑えつつ、重大な障害に発展する恐れのある潜在的な要因を予め排除することにより、コンピュータシステム内の信頼性を維持することが可能となる。【００７６】
（３）装置構成等
また、上記の実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。【００７７】
また、図２に示した縮退制御装置１０の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、縮退制御装置１０の分散・統合の具体的形態は図示のものに限られず、縮退制御部１３ｂとウェイ選択部１３ｃとを統合するなど、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、縮退制御装置１０にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。【００７８】
（４）縮退制御プログラム
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、図１０を用いて、上記の実施例１で説明した縮退制御装置１０の処理と同様の機能を有する縮退制御プログラムを実行するコンピュータの一例を説明する。図１０は、縮退制御プログラムを実行するコンピュータを示す図である。【００７９】
同図に示すように、縮退制御装置であるコンピュータ２０は、主記憶制御ＩＦ部２１と、ＨＤＤ２２と、ＲＡＭ２３と、ＲＯＭ２４と、ＣＰＵ２５とを所定のバス３０で接続して構成される。ここで、主記憶制御ＩＦ部２１は、図２に示した主記憶制御ＩＦ部１１に対応する。【００８０】
まず、ＲＯＭ２４には、上記の実施例１に示した縮退制御装置１０と同様の機能を発揮する縮退制御プログラム、つまり、図１０に示すように、要求受付プログラム２４ａ、縮退制御プログラム２４ｂ、ウェイ選択プログラム２４ｃおよびデータ送出プログラム２４ｄがあらかじめ記憶されている。なお、これらのプログラム２４ａ、２４ｂ、２４ｃおよび２４ｄについては、図２に示した縮退制御装置１０の各構成要素と同様、適宜統合または分散してもよい。【００８１】
そして、ＣＰＵ２５が、これらのプログラム２４ａ、２４ｂ、２４ｃおよび２４ｄをＲＯＭ２４から読み出して実行することで、図１０に示すように、各プログラム２４ａ、２４ｂ、２４ｃおよび２４ｄは、要求受付プロセス２５ａ、縮退制御プロセス２５ｂ、ウェイ選択プロセス２５ｃおよびデータ送出プロセス２５ｄとして機能するようになる。なお、各プロセス２５ａ、２５ｂ、２５ｃおよび２５ｄは、図２に示した縮退制御装置１０の要求受付部１３ａ、縮退制御部１３ｂ、ウェイ選択部１３ｃおよびデータ送出部１３ｄにそれぞれ対応する。【００８２】
また、ＨＤＤ２２には、図１０に示すように、キャッシュタグテーブル２２ａおよびキャッシュデータテーブル２２ｂが設けられる。これらのキャッシュタグテーブル２２ａおよびキャッシュデータテーブル２２ｂは、図２に示した縮退制御装置１０のキャッシュタグ記憶部１２ａおよびキャッシュデータ記憶部１２ｂにそれぞれ対応する。そして、ＣＰＵ２５は、キャッシュタグテーブル２２ａおよびキャッシュデータテーブル２２ｂからキャッシュタグデータ２３ａおよびキャッシュデータ２３ｂをそれぞれ読み出してＲＡＭ２３に格納し、ＲＡＭ２３に格納されたキャッシュタグデータ２３ａおよびキャッシュデータ２３ｂに基づいて情報検証処理を実行する。【００８３】
なお、上記した各プログラム２４ａ、２４ｂ、２４ｃおよび２４ｄについては、必ずしも最初からＲＯＭ２４に記憶させておく必要はなく、例えば、コンピュータ２０に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」、または、コンピュータ２０の内外に備えられるＨＤＤなどの「固定用の物理媒体」、さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ２０に接続される「他のコンピュータ（またはサーバ）」などに各プログラムを記憶させておき、コンピュータ２０がこれらから各プログラムを読み出して実行するようにしてもよい。
【産業上の利用可能性】
【００８４】
以上のように、本発明に係る縮退制御装置および縮退制御プログラムは、アクセス要求に対するエラーの発生に基づいて、複数のウェイで構成されるキャッシュの縮退を制御する場合に有用であり、特に、キャッシュメモリの処理能力性能の低下を抑えつつ、重大な障害に発展する潜在的な要因（例えば、訂正可能なエラーなど）を予め排除することによりコンピュータシステム内の信頼性を維持することに適する。
【図１】
2007097027.tif 000003
【図２】
2007097027.tif 000004
【図３】
2007097027.tif 000005
【図４】
2007097027.tif 000006
【図５】
2007097027.tif 000007
【図６】
2007097027.tif 000008
【図７】
2007097027.tif 000009
【図８】
2007097027.tif 000010
【図９】
2007097027.tif 000011
【図１０】
2007097027.tif 000012
【図１１】
2007097027.tif 000013
【手続補正書】
【提出日】平成20年5月1日(2008.5.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
アクセス要求に対するエラーの発生に基づいて、複数のウェイで構成されるキャッシュの縮退を制御する縮退制御装置において、
前記複数のウェイのそれぞれを構成するキャッシュラインごとに、当該キャッシュラインが縮退あるかどうかを示すキャッシュライン縮退情報を記憶するキャッシュライン縮退情報記憶手段と、
前記アクセス要求に対して発生したエラーが所定の条件を満たした場合には、前記キャッシュライン縮退情報記憶手段において、当該エラーに係る所定のキャッシュラインについて、当該所定のキャッシュラインが縮退であることを示すキャッシュライン縮退情報を書き込む縮退制御手段と、
を備えたことを特徴とする縮退制御装置。
【請求項２】
前記複数のウェイごとに前記アクセス要求に対するエラーの発生回数を計数するエラー計数手段をさらに備え、
前記縮退制御手段は、前記エラー計数手段により計数された前記エラー回数が所定の上限回数に到達した場合に、当該所定の上限回数到達契機となったエラーに係るキャッシュラインについて、当該キャッシュラインが縮退であることを示すキャッシュライン縮退情報を書き込むことを特徴とする請求項１に記載の縮退制御装置。
【請求項３】
前記縮退制御手段は、前記エラー計数手段に計数された前記エラー回数が前記所定の上限回数以上である他の所定の上限回数に到達した場合に、当該他の所定の上限回数に到達したウェイに含まれる全てのキャッシュラインについて、当該キャッシュラインがウェイ全体として縮退であることを示すウェイ縮退情報を書き込むことを特徴とする請求項２に記載の縮退制御装置。
【請求項４】
前記アクセス要求に対応するデータが前記キャッシュに存在しない場合に、前記キャッシュライン縮退情報記憶手段に記憶されている前記キャッシュライン縮退情報および／またはウェイ縮退情報を参照して、当該アクセス要求に対応するデータがキャッシュされるべきキャッシュラインを選択するウェイ選択手段をさらに備えたことを特徴とする請求項１に記載の縮退制御装置。
【請求項５】
前記ウェイ選択手段は、選択しようとする全てのキャッシュラインが縮退である場合に、前記ウェイ縮退情報でなく前記キャッシュライン縮退情報に係るキャッシュラインの中から前記アクセス要求に対応するデータがキャッシュされるべきキャッシュラインを選択することを特徴とする請求項４に記載の縮退制御装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、アクセス要求に対するエラーの発生に基づいて、複数のウェイで構成されるキャッシュの縮退を制御する縮退制御装置に関する。
【背景技術】
【０００２】
従来より、セットアソシアティブマッピング（ｓｅｔ  ａｓｓｏｃｉａｔｉｖｅ  ｍａｐｐｉｎｎｇ）方式を採用するキャッシュメモリを縮退制御（データ格納領域のいずれかを使用不可能な状態に制御）する技術がある。具体的には、キャッシュメモリ内に発生した訂正可能なエラーの回数をキャッシュメモリ内の列位置を示すウェイごとにカウントしておき、そのエラー回数が所定の閾値に達したウェイを縮退制御する（例えば、特許文献１参照）。すなわち、この従来技術は、キャッシュメモリ内において発生する訂正可能なエラーが重大な障害（例えば、訂正不可能なエラー）となる前に縮退制御することにより、コンピュータシステム内の信頼性を高めるものである。
【０００３】
【特許文献１】特開平２−３０２８５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記した従来の技術は、キャッシュメモリの処理能力性能が低下するという問題点があった。すなわち、従来の技術では、例えば、図１１に例示するように、キャッシュメモリ内でキャッシュライン（データ格納領域の最小単位）にエラー（例えば、格納されているデータのエラー）が発生した場合に、そのキャッシュラインを含んだウェイ全体を縮退制御するので、縮退制御されたウェイに含まれる正常なキャッシュラインの分だけキャッシュメモリの容量を無駄に減少させることとなり、結果として、キャッシュメモリの処理能力性能が低下するという問題点があった。
【０００５】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、キャッシュメモリの処理能力性能の低下を抑えつつ、重大な障害に発展する恐れのある潜在的な要因を予め排除することにより、コンピュータシステム内の信頼性を維持することが可能な縮退制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するため、請求項１に係る発明は、アクセス要求に対するエラーの発生に基づいて、複数のウェイで構成されるキャッシュの縮退を制御する縮退制御装置において、前記複数のウェイのそれぞれを構成するキャッシュラインごとに、当該キャッシュラインが縮退あるかどうかを示すキャッシュライン縮退情報を記憶するキャッシュライン縮退情報記憶手段と、前記アクセス要求に対して発生したエラーが所定の条件を満たした場合には、前記キャッシュライン縮退情報記憶手段において、当該エラーに係る所定のキャッシュラインについて、当該所定のキャッシュラインが縮退であることを示すキャッシュライン縮退情報を書き込む縮退制御手段と、を備えたことを特徴とする。
【０００７】
また、請求項２に係る発明は、上記の発明において、前記複数のウェイごとに前記アクセス要求に対するエラーの発生回数を計数するエラー計数手段をさらに備え、前記縮退制御手段は、前記エラー計数手段により計数された前記エラー回数が所定の上限回数に到達した場合に、当該所定の上限回数到達契機となったエラーに係るキャッシュラインについて、当該キャッシュラインが縮退であることを示すキャッシュライン縮退情報を書き込むことを特徴とする。
【０００８】
また、請求項３に係る発明は、上記の発明において、前記縮退制御手段は、前記エラー計数手段に計数された前記エラー回数が前記所定の上限回数以上である他の所定の上限回数に到達した場合に、当該他の所定の上限回数に到達したウェイに含まれる全てのキャッシュラインについて、当該キャッシュラインがウェイ全体として縮退であることを示すウェイ縮退情報を書き込むことを特徴とする。
【０００９】
また、請求項４に係る発明は、上記の発明において、前記アクセス要求に対応するデータが前記キャッシュに存在しない場合に、前記キャッシュライン縮退情報記憶手段に記憶されている前記キャッシュライン縮退情報および／またはウェイ縮退情報を参照して、当該アクセス要求に対応するデータがキャッシュされるべきキャッシュラインを選択するウェイ選択手段をさらに備えたことを特徴とする。
【００１０】
また、請求項５に係る発明は、上記の発明において、前記ウェイ選択手段は、選択しようとする全てのキャッシュラインが縮退である場合に、前記ウェイ縮退情報でなく前記キャッシュライン縮退情報に係るキャッシュラインの中から前記アクセス要求に対応するデータがキャッシュされるべきキャッシュラインを選択することを特徴とする。
【発明の効果】
【００１１】
請求項１の発明によれば、複数のウェイのそれぞれを構成するキャッシュラインごとに、キャッシュラインが縮退あるかどうかを示すキャッシュライン縮退情報を記憶し、アクセス要求に対して発生したエラーが所定の条件を満たした場合には、エラーに係る所定のキャッシュラインについて、そのキャッシュラインが縮退であることを示すキャッシュライン縮退情報を書き込むので、ウェイ単位で縮退制御する（使用不可能な状態に制御にする）のではなく、キャッシュライン単位で縮退制御することができ、キャッシュメモリの処理能力性能の低下を抑えつつ、重大な障害に発展する潜在的な要因（例えば、訂正可能なエラーなど）を予め排除することによりコンピュータシステム内の信頼性を維持することが可能となる。
【００１２】
また、請求項２の発明によれば、複数のウェイごとにアクセス要求に対するエラーの発生回数を計数し、計数されたエラー回数が所定の上限回数に到達した場合に、その上限回数に到達する契機となったエラーに係るキャッシュラインについて、そのキャッシュラインが縮退であることを示すキャッシュライン縮退情報を書き込むので、キャッシュラインごとにエラー回数を計数するカウンタを備えることなく、キャッシュラインについて実質的なエラー管理をすることができ（すなわち、障害のあるキャッシュラインは頻繁にエラーを発生させることが考えられ、ウェイごとにキャッシュラインのエラー回数を計数することとしても問題は少ない）、キャッシュメモリの処理能力性能の低下を抑えつつ、重大な障害に発展する恐れのある潜在的な要因を予め排除することにより、コンピュータシステム内の信頼性を維持することが可能となる。
【００１３】
また、請求項３の発明によれば、計数されたエラー回数が所定の上限回数以上である他の所定の上限回数に到達した場合に、他の所定の上限回数に到達したウェイに含まれる全てのキャッシュラインについて、キャッシュラインがウェイ全体として縮退であることを示すウェイ縮退情報を書き込むので、エラーを頻繁に発生させるキャッシュラインを含むウェイについては、そのウェイ全体を縮退させることができ、キャッシュメモリの処理能力性能の低下を抑えつつ、重大な障害に発展する恐れのある潜在的な要因を予め排除することにより、コンピュータシステム内の信頼性を維持することが可能となる。
【００１４】
また、請求項４の発明によれば、アクセス要求に対応するデータがキャッシュに存在しない場合に、キャッシュライン縮退情報および／またはウェイ縮退情報を参照して、アクセス要求に対応するデータがキャッシュされるべきキャッシュラインを選択するので、縮退されているキャッシュラインを使用することがなく、キャッシュメモリの処理能力性能の低下を抑えつつ、重大な障害に発展する恐れのある潜在的な要因を予め排除することにより、コンピュータシステム内の信頼性を維持することが可能となる。
【００１５】
また、請求項５の発明によれば、選択しようとする全てのキャッシュラインが縮退である場合に、ウェイ縮退情報でなくキャッシュライン縮退情報に係るキャッシュラインの中からアクセス要求に対応するデータがキャッシュされるべきキャッシュラインを選択するので、アクセス要求に対応するキャッシュラインが全て縮退である場合であっても、データ格納領域に重大な障害が発生している蓋然性の低い（つまり、ウェイ自体が縮退している場合よりもキャッシュライン縮退している場合の方が、エラーの発生回数が少なく、データ格納領域に重大な障害が発生している蓋然性が低い）キャッシュラインを復活させて選択することでアクセス要求に確実に応答することができ、キャッシュメモリの処理能力性能の低下を抑えつつ、重大な障害に発展する恐れのある潜在的な要因を予め排除することにより、コンピュータシステム内の信頼性を維持することが可能となる。
【発明を実施するための最良の形態】
【００１６】
以下に添付図面を参照して、この発明に係る縮退制御装置の実施例を詳細に説明する。なお、以下では、実施例１に係る縮退制御装置について説明した後に、この発明に含まれる他の実施例について説明する。
【実施例１】
【００１７】
以下の実施例１では、実施例１に係る縮退制御装置の概要および特徴、縮退制御装置の構成および処理を順に説明し、最後に実施例１の効果を説明する。
【００１８】
［縮退制御装置の概要および特徴（実施例１）］
まず最初に、図１を用いて、実施例１に係る縮退制御装置の概要および特徴を説明する。図１は、１実施例に係る縮退制御装置の概要を説明するための図である。同図に示すように、実施例１に係る縮退制御装置は、アクセス要求（例えば、リード要求やライト要求）に対するエラーの発生に基づいて、多ウェイ（キャッシュ内の列）で構成されるキャッシュの縮退を制御することを概要とするが、キャッシュメモリの処理能力性能の低下を抑えつつ、重大な障害に発展する恐れのある潜在的な要因を予め排除することにより、コンピュータシステム内の信頼性を維持する点に主たる特徴がある。
【００１９】
この主たる特徴について具体的に説明すると、実施例１に係る縮退制御装置は、各ウェイを構成するキャッシュライン（キャッシュ内のデータ格納領域の最小単位）ごとに縮退あるかどうかを示すキャッシュライン縮退情報（例えば、縮退フラグ）を記憶するキャッシュタグを備えている。このキャッシュタグには、キャッシュライン縮退情報のほかに、キャッシュラインに格納されているデータの登録アドレスなどが記憶されている。
【００２０】
そして、アクセス要求（例えば、読み出し要求や書き込み要求）を受け付けると、この縮退制御装置は、キャッシュタグ検索処理を開始する（図１の（１）参照）。具体的には、この縮退制御装置は、アクセス要求に対応するデータのアドレスからキャッシュのインデックス（例えば、ｍ行）を把握して、このインデックスに対応するキャッシュタグを検索する。
【００２１】
続いて、この縮退制御装置は、検索したキャッシュタグの情報を全ウェイ（全列）について参照して縮退フラグの確認を行う。そして、この縮退制御装置は、縮退ではない（つまり、縮退フラグが書き込まれておらず使用可能な状態である）ことが確認されたキャッシュラインのそれぞれについてヒット検査を行う（図１の（２）参照）。具体的には、この縮退制御装置は、例えば、アクセス要求に対応するデータのアドレスとキャッシュタグに記憶されている登録アドレスとが一致するかどうかによってヒット検査を行う。
【００２２】
検査の結果、ヒットするキャッシュライン（以下「該当キャッシュライン」と称する）を検出した場合には、この縮退制御装置は、例えば、該当キャッシュラインのキャッシュデータについてエラー検査を行う。検査の結果、該当キャッシュラインのキャッシュデータについてエラーを検出した場合には、この縮退制御装置は、検出したエラーを訂正するとともに縮退制御処理を開始する（図１の（４）参照）。
【００２３】
縮退制御処理について具体的に説明すると、この縮退制御装置はまず、例えば、エラー回数をウェイごとに計数するために備えたエラーカウンタをアップする。そして、エラーカウンタが予め定めた所定の上限回数を超えている場合には、この縮退制御装置は、通常の処理（例えば、アクセス要求に対応するキャッシュデータの転送処理など）を一時中断し、その上限回数に到達する契機となったエラーを発生させたキャッシュライン（例えば、Ｗａｙ：ｎ，Ｉｎｄｅｘ：ｍ）の内容を、図示には示していない主記憶部などへ書き戻し、さらに、そのキャッシュラインについて、キャッシュタグに縮退フラグ（キャッシュラインが縮退であることを示す縮退情報）を書き込む。すなわち、キャッシュタグに縮退フラグが書き込まれることによって、以後、そのキャッシュラインは使用不可な状態に制御（縮退制御）される。縮退制御処理の後、この縮退制御装置は、通常の処理を再開し、エラーを訂正したキャッシュデータを要求元に転送する（図１の（５）参照）。
【００２４】
一方、エラーカウンタが予め定めた所定の上限回数を超えていない場合には、この縮退制御装置は、エラーを発生させたキャッシュラインについて、キャッシュタグに縮退フラグを書き込むことなく、エラーを訂正したキャッシュデータをそのまま要求元に転送する（図１の（５）参照）。なお、キャッシュデータがエラーを起こしている場合には、この縮退制御装置は、エラーを訂正したキャッシュデータを転送するだけでなく、ライトバック対象でなければ、図には示していない主記憶部などからアクセス要求に対応するデータのプライマリデータを読み出して、要求元に転送するようにしてもよい。
【００２５】
このようなことから、実施例１に係る縮退制御装置は、上述した主たる特徴の如く、キャッシュメモリの処理能力性能の低下を抑えつつ、重大な障害に発展する恐れのある潜在的な要因を予め排除することにより、コンピュータシステム内の信頼性を維持することが可能となる。
【００２６】
［縮退制御装置の構成（実施例１）］
次に、図２を用いて、実施例１に係る縮退制御装置の構成を説明する。図２は、実施例１に係る縮退制御装置の構成を示すブロック図である。なお、同図においては、縮退制御装置を実現するうえで必要となる処理部のみを示しており、その他の処理部の記載については省略している。
【００２７】
同図に示すように、この縮退制御装置１０は、主記憶制御ＩＦ部１１と、記憶部１２と、制御部１３とから構成される。このうち、主記憶制御ＩＦ部１１は、所定のデータを記憶する格納する格納手段（記憶手段）である。
【００２８】
記憶部１２は、制御部１３による各種処理に必要なデータおよびプログラムを格納する格納手段（記憶手段）であり、特に本発明に密接に関連するものとしては、キャッシュタグ記憶部１２ａおよびキャッシュデータ記憶部１２ｂを備える。
【００２９】
このうち、キャッシュタグ記憶部１２ａは、キャッシュラインに関する各種の情報を記憶する手段であり、具体的には、図３に例示するように、キャッシュメモリに配置されたウェイ（Ｗａｙ：列）およびインデックス（Ｉｎｄｅｘ：行）に対応づけて、縮退フラグ、登録アドレス、ステータスおよびＥＣＣなどを記憶して構成される。ここで、縮退フラグとは、キャッシュラインまたはウェイが使用可能な状態（縮退ではない状態）であるかどうかを示す情報であり、例えば、１ビットで構成してもよいし、情報の信頼性などを考慮して３ビットあるいは５ビット情報で構成するようにしてもよい。また、登録アドレスとは、キャッシュラインに格納されている主記憶部などのデータを識別する情報である。また、ステータスとは、キャッシュラインの状態を示す情報であり、例えば、主記憶部のデータが格納されているかどうかを示す。また、ＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ）とは、キャッシュタグデータの誤りを訂正するための付加データであり、キャッシュデータの信頼性を担保するものである。
【００３０】
キャッシュデータ記憶部１２ｂは、主記憶部などに記憶されている各種の情報を記憶する手段であり、例えば、主記憶部などに記憶されているデータの中から使用頻度の高いものを記憶しておき、主記憶部などからデータの読み出しよりも高速なデータの読み出しを実現する。
【００３１】
制御部１３は、所定の制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理（例えば、キャッシュの制御処理、図示を省略した所定の演算実行部や主記憶制御部とのデータの授受に関する制御処理）を実行する処理部であり、特に本発明に密接に関連するものとしては、要求受付部１３ａと、縮退制御部１３ｂと、ウェイ選択部１３ｃと、データ送出部１３ｄとを備える。
【００３２】
このうち、要求受付部１３ａは、アクセス要求（例えば、データ読み出し要求やデータ書き込み要求）を受け付ける処理部である。
【００３３】
縮退制御部１３ｂは、キャッシュラインを縮退制御する（使用不可な状態にする）処理部である。具体的には、要求受付部１３ａがアクセス要求を受け付けると、この縮退制御部１３ｂは、キャッシュタグ検索処理を開始する。このキャッシュタグ検索処理について具体的に説明すると、この縮退制御部１３ｂは、アクセス要求に対応するデータのアドレスからキャッシュ内のインデックス（以下「該当インデックス」と称する）を把握して、キャッシュタグ記憶部１３ａに記憶されているキャッシュタグの中から該当インデックスに対応するキャッシュタグを検索する。
【００３４】
続いて、この縮退制御部１３ｂは、検索したキャッシュタグの情報を全ウェイ（全列）について参照して縮退フラグの確認を行う。そして、この縮退制御部１３ｂは、縮退ではない（つまり、縮退フラグが書き込まれておらず使用可能な状態である）ことが確認されたキャッシュラインのそれぞれについてヒット検査を行う。一方、縮退制御部１３ｂは、縮退であることが確認されたキャッシュラインのそれぞれをマスクする（ヒット検査を行わないようする）。このヒット検査について具体的に説明すると、この縮退制御部１３ｂは、例えば、アクセス要求に対応するデータのアドレスとキャッシュタグに記憶されている登録アドレスとが一致するかどうかの検査（つまり、キャッシュラインに格納されているデータがアクセス要求に対応するデータと一致するかどうかの検査）を行う。
【００３５】
検査の結果、ヒットするキャッシュライン（以下、「該当キャッシュライン」と称する）を検出した場合には、この縮退制御部１３ｂは、例えば、該当キャッシュラインのキャッシュデータについてエラー検査を行う。検査の結果、該当キャッシュラインのキャッシュデータについてエラーを検出した場合には、この縮退制御部１３ｂは、検出したエラーを訂正するとともに縮退制御処理を開始する。一方、該当キャッシュラインについてエラーを検出しなかった場合には、この縮退制御部１３ｂは、該当キャッシュラインのキャッシュデータを要求元に転送するように、データ送出部１３ｄに対して指令を出力する。
【００３６】
また、縮退制御処理について具体的に説明すると、この縮退制御部１３ｂは、例えば、図４に例示するように、ウェイ（例えば、Ｗａｙ：ｎ）ごとにエラー回数を２進数で計数するためのエラーカウンタを備える。そして、この縮退制御部１３ｂは、エラーが検出された該当キャッシュラインを含むウェイに対応するエラーカウンタをアップさせ、エラーカウンタが予め定めた所定の上限回数（例えば、２のｊ乗回）を超えている場合には、通常の処理（例えば、アクセス要求に対応するキャッシュデータの転送処理など）を一時中断し、その上限回数に到達する契機となったエラーを発生させた縮退予定のキャッシュライン（例えば、Ｗａｙ：ｎ，Ｉｎｄｅｘ：ｍ）の内容を、図示には示していない主記憶部などへ書き戻す。さらに、この縮退制御部１３ｂは、その縮退予定のキャッシュラインについて、キャッシュタグに縮退フラグ（キャッシュラインが縮退であることを示す縮退情報）を書き込む。すなわち、キャッシュタグに縮退フラグが書き込まれることによって、以後、該当キャッシュラインは使用不可な状態に制御（縮退制御）される。縮退制御処理の後、この縮退制御部１３ｂは、通常の処理を再開し、エラーを訂正したキャッシュデータを要求元に転送するように、データ送出部１３ｄに対して指令を出力する。
【００３７】
また、先ほど説明した場合とは反対に、エラーカウンタが予め定めた所定の上限回数を超えていない場合には、この縮退制御部１３ｂは、エラーを発生させたキャッシュラインについて、キャッシュタグに縮退フラグの書き込みは行わず、エラーを訂正したキャッシュデータを要求元に転送するように、データ送出部１３ｄに対して指令を出力する。なお、縮退制御部１３ｂは、エラーを訂正したキャッシュデータを転送するようにデータ送出部１３ｄに対して指令を出力するだけでなく、ライトバック対象でなければ、図には示していない主記憶部などからアクセス要求に対応するデータのプライマリデータを読み出して、要求元に転送するようにデータ送出部１３ｄに対して指令を出力してもよい。
【００３８】
なお、この縮退制御部１３ｂは、キャッシュラインについてキャッシュタグに縮退フラグを書き込んだ後もエラー回数の計数を続け、エラーカウンタが２のｊ乗回以上の予め定めた上限回数（例えば、２のｉ乗回）を超えている場合には、その上限回数に到達したウェイに含まれる全てのキャッシュラインついて縮退したことを示すウェイ縮退フラグを書き込む。以後、そのウェイは使用不可能な状態に制御（縮退制御）される。このウェイ縮退フラグは、キャッシュタグ記憶部１２ａにおいて記憶するだけでなく、別の記憶部（例えば、レジスタやラッチなど）において記憶するようにしてもよい。
【００３９】
ところで、ヒット検査により該当キャッシュラインを検出できなかった場合（つまり、キャッシュ内にアクセス要求に対応するデータが存在しない場合）には、この縮退制御部１３ｂは、アクセス要求に対応するデータをキャッシュ（登録）すべきキャッシュラインを決定するため、ウェイ選択部１３ｃに対してウェイ選択指令を出力する。そして、縮退制御部１３ｂは、ウェイ選択部１３ｃから登録ウェイを受け付けると、キャッシュタグ記憶部１２ａに記憶されているキャッシュタグを、要求データがキャッシュされるキャッシュラインについて更新する（例えば、登録アドレスを更新する）とともに、主記憶制御ＩＦ部１１を介して、主記憶制御部にアクセス要求に対応するデータの要求指令を出力する。また、主記憶制御部から要求データを受け付けると、縮退制御部１３ｂは、そのデータを要求元に転送するようにデータ送出部１３ｄに対して指令を出力するとともにキャッシュデータ記憶部１２ｂに受け付けた要求データを格納する。
【００４０】
ウェイ選択部１３ｃは、縮退制御部１３ｂからウェイ選択指令を受け付けて、アクセス要求に対応するデータをキャッシュすべきキャッシュラインを含んだウェイを選択する処理部である。具体的には、このウェイ選択部１３ｃは、例えば、キャッシュラインの最終使用時の情報を記憶しており、その情報に基づいて、最近最も使用されていないキャッシュラインを含んだ候補ウェイを選択する。次に、ウェイ選択部１３ｃは、キャッシュタグ記憶部１２ａに記憶されているキャッシュタグの縮退情報を参照し、アクセス要求にかかるデータのアドレスから把握されるインデックスに対応した候補ウェイ内のキャッシュラインが縮退であるかどうかを確認する。その結果、候補ウェイ内のキャッシュラインが縮退でない場合には、ウェイ選択部１３ｃは、候補ウェイをアクセス要求に対応するデータをキャッシュすべき登録ウェイとして決定し、決定した登録ウェイを縮退制御部１３ｂに出力する。一方、候補ウェイ内のキャッシュラインが縮退である場合には、このウェイ選択部１３ｃは、キャッシュラインの最終使用時の情報に基づいて次候補となるウェイを選択し、登録ウェイを決定するまで上述したのと同様の処理を繰り返し行う。
【００４１】
データ送出部１３ｄは、アクセス要求元へ要求データの送出等を行う処理部である。具体的には、データ送出部１３ｄは、縮退制御部１３ｂから受け付けたキャッシュデータ（例えば、訂正されたキャッシュデータなど）を要求元に転送する。
【００４２】
［縮退制御装置によるメイン処理（実施例１）］
次に、図５を用いて、実施例１に係る縮退制御装置によるメイン処理を説明する。図５は、実施例１に係る縮退制御装置のメイン処理の流れを示すフローチャートである。同図に示すように、アクセス要求を受け付けると（ステップＳ５０１肯定）、縮退制御部１３ｂは、後に詳述するキャッシュタグ検索処理を行う（ステップＳ５０２）。
【００４３】
続いて、この縮退制御部１３ｂは、キャッシュタグ検索処理で検索したキャッシュラインについてヒット検査を行う（ステップＳ５０３）。このヒット検査について具体的に説明すると、この縮退制御部１３ｂは、例えば、アクセス要求にかかるデータのアドレスとキャッシュタグに記憶されている登録アドレスとが一致するかどうかの検査を行う。その結果、ヒットするキャッシュライン（以下、「該当キャッシュライン」と称する）を検出した場合には（ステップＳ５０４肯定）、この縮退制御部１３ｂは、該当キャッシュラインのキャッシュデータについてエラー検査を行う（ステップＳ５０５）。その結果、該当キャッシュラインのキャッシュデータについてエラーを検出した場合には（ステップＳ５０６肯定）、この縮退制御部１３ｂは、検出したエラーを訂正するとともに後に詳述する縮退制御処理を開始する。
【００４４】
一方、該当キャッシュラインのキャッシュデータについてエラーを検出しなかった場合には（ステップＳ５０６否定）、この縮退制御部１３ｂは、該当キャッシュラインのキャッシュデータを要求元に転送するようにデータ送出部１３ｄに対して指令を出力し、この指令を受け付けたデータ送出部１３ｄは、要求元にキャッシュデータを転送する（ステップＳ５０８）。
【００４５】
ここで、ステップＳ５０４の説明に戻ると、該当キャッシュラインを検出できなかった場合には（ステップＳ５０４否定）、縮退制御部１３ｂは、後に詳述する登録ウェイ決定処理を行う（ステップＳ５０９）。また、主記憶制御ＩＦ部１１を介して、主記憶制御部にアクセス要求に対応するデータの要求指令を出力する（ステップＳ５１０）。なお、上述してきた処理は、縮退制御装置１０の起動中に繰り返し実行される。
【００４６】
［キャッシュタグ検索処理（実施例１）］
続いて、図６を用いて、実施例１に係る縮退制御装置のキャッシュタグ検索処理を説明する。図６は、実施例１に係る縮退制御装置のキャッシュタグ検索処理の流れを示すフローチャートである。同図に示すように、アクセス要求を受け付けると（ステップＳ６０１肯定）、縮退制御部１３ｂはキャッシュタグ検索処理を開始する（ステップＳ６０２）。
【００４７】
具体的には、縮退制御部１３ｂは、アクセス要求にかかるデータのアドレスからキャッシュ内のインデックス（以下「該当インデックス」と称する）を把握して、キャッシュタグ記憶部１３ａに記憶されているキャッシュタグの中から該当インデックスに対応するキャッシュタグを検索する（ステップＳ６０３）。
【００４８】
続いて、縮退制御部１３ｂは、検索したキャッシュタグの情報を全ウェイ（全列）について参照して縮退フラグの確認を行う（ステップＳ６０４）。そして、この縮退制御部１３ｂは、キャッシュラインが縮退ではない（つまり、縮退フラグが書き込まれておらず使用可能な状態である）場合には（ステップＳ６０５否定）、縮退ではないキャッシュラインのそれぞれについてヒット検査（上述のステップＳ５０３）を行う。
【００４９】
一方、この縮退制御部１３ｂは、キャッシュラインが縮退である場合には（ステップＳ６０５肯定）、縮退であるキャッシュラインのそれぞれをマスクする（ヒット検査を行わないようにする）。
【００５０】
［縮退制御処理（実施例１）］
続いて、図７を用いて、実施例１に係る縮退制御装置の縮退制御処理を説明する。図７は、実施例１に係る縮退制御装置の縮退制御処理の流れを示すフローチャートである。縮退制御部１３ｂは、エラー検査（上述のステップＳ５０５）により、例えば、該当キャッシュラインのキャッシュデータについてエラーを検出すると縮退制御処理を開始する（ステップＳ７０１）。
【００５１】
具体的には、この縮退制御部１３ｂは、例えば、図４に例示するように、ウェイごとにエラー回数を２進数で計数するためのエラーカウンタを備える。そして、この縮退制御部１３ｂは、エラーが検出された該当キャッシュラインに含むウェイに対応するエラーカウンタをアップさせる（ステップＳ７０２）。そして、エラーカウンタが予め定めた所定の上限回数（例えば、２のｊ乗回）を超えている場合には（ステップＳ７０３肯定）、縮退制御部１３ｂは、通常の処理を一時中断し、その上限回数に到達する契機となったエラーを発生させた縮退予定のキャッシュライン（例えば、Ｗａｙ：ｎ，Ｉｎｄｅｘ：ｍ）の内容を主記憶部などへ書き戻す（ステップＳ７０４）。さらに、この縮退制御部１３ｂは、その縮退予定のキャッシュラインについて、キャッシュタグに縮退フラグ（キャッシュラインが縮退であることを示す縮退情報）を書き込む（ステップＳ７０５）。
【００５２】
縮退制御処理の後、この縮退制御部１３ｂは、通常の処理を再開し（ステップＳ７０６）、図には示していないが、訂正したキャッシュデータを要求元に転送するように、データ送出部１３ｄに対して指令を出力して、アクセス要求受け付けへ戻る。一方、エラーカウンタが予め定めた所定の上限回数（例えば、２のｊ乗回）を超えていない場合には（ステップＳ７０３否定）、この縮退制御部１３ｂは、先ほど説明したのと同様に、訂正したキャッシュデータを要求元に転送するように、データ送出部１３ｄに対して指令を出力して、アクセス要求受け付けへ戻る。
【００５３】
なお、図には示していないが、この縮退制御部１３ｂは、キャッシュラインについてキャッシュタグに縮退フラグを書き込んだ後もエラー回数の計数を続け、エラーカウンタが２のｊ乗回以上の予め定めた上限回数（例えば、２のｉ乗回）を超えている場合には、その上限回数に到達したウェイに含まれる全てのキャッシュラインついて縮退したことを示すウェイ縮退フラグを書き込む。以後、そのウェイは使用不可能な状態に制御（縮退制御）される。
【００５４】
［登録ウェイ決定処理（実施例１）］
続いて、図８を用いて、実施例１に係る縮退制御装置の登録ウェイ決定処理を説明する。図７は、実施例１に係る縮退制御装置の登録ウェイ決定処理の流れを示すフローチャートである。同図に示すように、ヒットする該当キャッシュラインを検出できなかった場合（つまり、キャッシュ内にアクセス要求に対応するデータが存在しない場合）には（ステップＳ８０１否定）、縮退制御部１３ｂは、アクセス要求に対応するデータをキャッシュ（登録）すべきキャッシュラインを決定するため、ウェイ選択部１３ｃに対してウェイ選択指令を出力する。ウェイ選択指令を受け付けたウェイ選択部１３ｃは登録ウェイ決定処理を開始する（ステップＳ８０２）。
【００５５】
具体的には、このウェイ選択部１３ｃは、例えば、キャッシュラインの最終使用時の情報を記憶しており、その情報に基づいて、最近最も使用されていないキャッシュラインを含んだ候補ウェイを選択する（ステップＳ８０３）。次に、ウェイ選択部１３ｃは、キャッシュタグ記憶部１２ａに記憶されているキャッシュタグの縮退情報を参照し（ステップＳ８０４）、アクセス要求にかかるデータのアドレスから把握されるインデックスに対応した候補ウェイ内のキャッシュラインが縮退であるかどうかを確認する。
【００５６】
その結果、候補ウェイ内のキャッシュラインが縮退でない場合には（ステップＳ８０５否定）、ウェイ選択部１３ｃは、候補ウェイをアクセス要求に対応するデータをキャッシュすべき登録ウェイとして決定し（ステップＳ８０６）、決定した登録ウェイを縮退制御部１３ｂに出力する。そして、ウェイ選択部１３ｃから登録ウェイを受け付けた縮退制御部１３ｂは、主記憶制御ＩＦ部１１を介して、主記憶制御部にアクセス要求に対応するデータの要求指令を出力する（上述のステップＳ５１０）。一方、候補ウェイ内のキャッシュラインが縮退である場合には（ステップＳ８０５肯定）、このウェイ選択部１３ｃは、キャッシュラインの最終使用時の情報に基づいて次候補となるウェイを選択し、登録ウェイを決定するまで上述したのと同様の処理を繰り返し行う。
【００５７】
［実施例１の効果］
上述してきたように、実施例１によれば、この縮退制御装置は、複数のウェイのそれぞれを構成するキャッシュラインごとに、キャッシュラインが縮退あるかどうかを示すキャッシュライン縮退情報を記憶し、アクセス要求に対して発生したエラーが所定の条件を満たした場合には、エラーに係る所定のキャッシュラインについて、そのキャッシュラインが縮退であることを示すキャッシュライン縮退情報を書き込むので、ウェイ単位で縮退制御する（使用不可能な状態に制御にする）のではなく、キャッシュライン単位で縮退制御することができ、キャッシュメモリの処理能力性能の低下を抑えつつ、重大な障害に発展する潜在的な要因（例えば、訂正可能なエラーなど）を予め排除することによりコンピュータシステム内の信頼性を維持することが可能となる。
【００５８】
また、実施例１によれば、この縮退制御装置は、複数のウェイごとにアクセス要求に対するエラーの発生回数を計数し、計数されたエラー回数が所定の上限回数に到達した場合に、その上限回数に到達する契機となったエラーに係るキャッシュラインについて、そのキャッシュラインが縮退であることを示すキャッシュライン縮退情報を書き込むので、キャッシュラインごとにエラー回数を計数するカウンタを備えることなく、キャッシュラインについて実質的なエラー管理をすることができ（すなわち、障害のあるキャッシュラインは頻繁にエラーを発生させることが考えられ、ウェイごとにキャッシュラインのエラー回数を計数することとしても問題は少ない）、キャッシュメモリの処理能力性能の低下を抑えつつ、重大な障害に発展する恐れのある潜在的な要因を予め排除することにより、コンピュータシステム内の信頼性を維持することが可能となる。
【００５９】
また、実施例１によれば、この縮退制御装置は、計数されたエラー回数が所定の上限回数以上である他の所定の上限回数に到達した場合に、他の所定の上限回数に到達したウェイに含まれる全てのキャッシュラインについて、キャッシュラインがウェイ全体として縮退であることを示すウェイ縮退情報を書き込むので、エラーを頻繁に発生させるキャッシュラインを含むウェイについては、そのウェイ全体を縮退させることができ、キャッシュメモリの処理能力性能の低下を抑えつつ、重大な障害に発展する恐れのある潜在的な要因を予め排除することにより、コンピュータシステム内の信頼性を維持することが可能となる。
【００６０】
また、実施例１によれば、この縮退制御装置は、アクセス要求に対応するデータがキャッシュに存在しない場合に、キャッシュライン縮退情報および／またはウェイ縮退情報を参照して、アクセス要求に対応するデータがキャッシュされるべきキャッシュラインを選択するので、縮退されているキャッシュラインを使用することがなく、キャッシュメモリの処理能力性能の低下を抑えつつ、重大な障害に発展する恐れのある潜在的な要因を予め排除することにより、コンピュータシステム内の信頼性を維持することが可能となる。
【実施例２】
【００６１】
さて、これまで本発明の実施例１について説明したが、本発明は上述した実施例１以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【００６２】
（１）キャッシュタグのエラー検査
上記の実施例１では、縮退制御部１３ｂは、例えば、アクセス要求に対応したキャッシュラインのキャッシュデータについてエラー検査を行ってキャッシュラインの縮退を制御する場合を説明したが、本発明はこれに限定されるものではなく、上記の実施例１で説明した縮退制御装置のキャッシュタグ検索処理（図６参照）に続いて、アクセス要求に対応したキャッシュラインの情報を持つキャッシュタグについてさらにエラー検査（例えば、縮退フラグのエラー検査）を行って、その検査結果を加味してキャッシュラインの縮退を制御するようにしてもよい。そこで、以下では、キャッシュタグのエラー検査結果をさらに加味してキャッシュラインの縮退を制御する場合を説明する。
【００６３】
この場合の縮退制御装置の構成は、上記の実施例１において説明した縮退制御装置１０と基本的には同様の構成であるが、以下に説明する点が異なる。
【００６４】
縮退制御部１３ｂは、キャッシュタグ検索処理により縮退ではないことが確認されたキャッシュラインのそれぞれについてキャッシュタグのエラー検査を行う。検査の結果、エラーを検出した場合には、この縮退制御部１３ｂは、上記の実施例１で説明した場合と同様に、検出したキャッシュタグのエラーを訂正するとともに、上記の実施例１において説明したのと同様の縮退制御処理（図７参照）を行う。
【００６５】
すわわち、縮退制御部１３ｂは、そのエラーに対応するキャッシュラインを含むウェイに対応したエラーカウンタをアップさせ、エラーカウンタが予め定めた所定の上限回数を超えている場合には、通常の処理を一時中断し、その上限回数に到達する契機となったエラーを発生させた縮退予定のキャッシュラインの内容を、図示には示していない主記憶部などへ書き戻す。さらに、この縮退制御部１３ｂは、その縮退予定のキャッシュラインについて、キャッシュタグに縮退フラグ（キャッシュラインが縮退であることを示す縮退情報）を書き込む。一方、エラーカウンタが予め定めた所定の上限回数を超えていない場合には、この縮退制御部１３ｂは、キャッシュタグに縮退フラグの書き込みは行わない。なお、このエラーカウンタは上記の実施例１において説明したエラーカウンタと共用するものとする。
【００６６】
一方、キャッシュタグのエラー検査の結果、エラーを検出しなかった場合には、この縮退制御部１３ｂは、キャッシュタグ検索処理により縮退ではないことが確認されたキャッシュラインについて、上記の実施例１において説明したヒット検査を行う。
【００６７】
続いて、図９を用いて、この場合の縮退制御装置の処理の流れについて説明する。図９は、実施例２に係る縮退制御装置のメイン処理の流れをしめすフローチャートである。同図に示すように、アクセス要求を受け付けると（ステップＳ９０１肯定）、縮退制御部１３ｂは、上記の実施例１において説明したキャッシュタグ検索処理を行う（ステップＳ９０２）。
【００６８】
続いて、縮退制御部１３ｂは、キャッシュタグ検索処理により縮退ではないことが確認されたキャッシュラインのそれぞれについてキャッシュタグのエラー検査（タグ部エラー検査）を行う（ステップＳ９０３）。検査の結果、エラーを検出した場合には（ステップＳ９０４肯定）、この縮退制御部１３ｂは、検出したキャッシュタグのエラーを訂正するとともに、そのエラーに対応するキャッシュラインについて、上記の実施例１において説明したのと同様の縮退制御処理（ステップＳ９０５、図７参照）を行う。
【００６９】
一方、キャッシュタグのエラー検査の結果、エラーを検出しなかった場合には（ステップＳ９０４）、この縮退制御部１３ｂは、キャッシュタグ検索処理により縮退ではないことが確認されたキャッシュラインについて、上記の実施例１において説明したヒット検査を行う。なお、この後の処理の流れ（ステップＳ９０６〜ステップＳ９１２）は上記の実施例１において説明したのと同様であるので説明を省略する。
【００７０】
このようなことから、アクセス要求に対応したキャッシュラインのキャッシュデータについてエラー検査を行ってキャッシュラインの縮退を制御するだけでなく、アクセス要求に対応したキャッシュラインの情報を持つキャッシュタグについてさらにエラー検査を行って、その検査結果を加味してキャッシュラインの縮退を制御するので、例えば、キャッシュタグの中の縮退情報の信頼性を維持しつつ、キャッシュラインの縮退を制御することが可能となる。
【００７１】
（２）登録ウェイの選択
上記の実施例１において、キャッシュ内にアクセス要求に対応するデータが存在しない場合に、アクセス要求に対応するデータをキャッシュ（登録）すべきキャッシュラインを決定するために登録ウェイを選択する場合を説明したが、本発明はこれに限定されるものではなく、選択しようとする全てのキャッシュラインが縮退である場合に、ウェイ縮退情報でなくキャッシュライン縮退情報にかかるキャッシュラインの中から、アクセス要求に対応するデータがキャッシュされるべきキャッシュラインを選択するようにしてもよい。
【００７２】
これにより、この縮退制御装置は、アクセス要求に対応するキャッシュラインが全て縮退である場合であっても、データ格納領域に重大な障害が発生している蓋然性の低い（つまり、ウェイ自体が縮退している場合よりもキャッシュライン縮退している場合の方が、エラーの発生回数が少なく、データ格納領域に重大な障害が発生している蓋然性が低い）キャッシュラインを復活させて選択することでアクセス要求に確実に応答することができ、キャッシュメモリの処理能力性能の低下を抑えつつ、重大な障害に発展する恐れのある潜在的な要因を予め排除することにより、コンピュータシステム内の信頼性を維持することが可能となる。
【００７３】
（３）装置構成等
また、上記の実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００７４】
また、図２に示した縮退制御装置１０の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、縮退制御装置１０の分散・統合の具体的形態は図示のものに限られず、縮退制御部１３ｂとウェイ選択部１３ｃとを統合するなど、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、縮退制御装置１０にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００７５】
（４）縮退制御プログラム
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、図１０を用いて、上記の実施例１で説明した縮退制御装置１０の処理と同様の機能を有する縮退制御プログラムを実行するコンピュータの一例を説明する。図１０は、縮退制御プログラムを実行するコンピュータを示す図である。
【００７６】
同図に示すように、縮退制御装置であるコンピュータ２０は、主記憶制御ＩＦ部２１と、ＨＤＤ２２と、ＲＡＭ２３と、ＲＯＭ２４と、ＣＰＵ２５とを所定のバス３０で接続して構成される。ここで、主記憶制御ＩＦ部２１は、図２に示した主記憶制御ＩＦ部１１に対応する。
【００７７】
まず、ＲＯＭ２４には、上記の実施例１に示した縮退制御装置１０と同様の機能を発揮する縮退制御プログラム、つまり、図１０に示すように、要求受付プログラム２４ａ、縮退制御プログラム２４ｂ、ウェイ選択プログラム２４ｃおよびデータ送出プログラム２４ｄがあらかじめ記憶されている。なお、これらのプログラム２４ａ、２４ｂ、２４ｃおよび２４ｄについては、図２に示した縮退制御装置１０の各構成要素と同様、適宜統合または分散してもよい。
【００７８】
そして、ＣＰＵ２５が、これらのプログラム２４ａ、２４ｂ、２４ｃおよび２４ｄをＲＯＭ２４から読み出して実行することで、図１０に示すように、各プログラム２４ａ、２４ｂ、２４ｃおよび２４ｄは、要求受付プロセス２５ａ、縮退制御プロセス２５ｂ、ウェイ選択プロセス２５ｃおよびデータ送出プロセス２５ｄとして機能するようになる。なお、各プロセス２５ａ、２５ｂ、２５ｃおよび２５ｄは、図２に示した縮退制御装置１０の要求受付部１３ａ、縮退制御部１３ｂ、ウェイ選択部１３ｃおよびデータ送出部１３ｄにそれぞれ対応する。
【００７９】
また、ＨＤＤ２２には、図１０に示すように、キャッシュタグテーブル２２ａおよびキャッシュデータテーブル２２ｂが設けられる。これらのキャッシュタグテーブル２２ａおよびキャッシュデータテーブル２２ｂは、図２に示した縮退制御装置１０のキャッシュタグ記憶部１２ａおよびキャッシュデータ記憶部１２ｂにそれぞれ対応する。そして、ＣＰＵ２５は、キャッシュタグテーブル２２ａおよびキャッシュデータテーブル２２ｂからキャッシュタグデータ２３ａおよびキャッシュデータ２３ｂをそれぞれ読み出してＲＡＭ２３に格納し、ＲＡＭ２３に格納されたキャッシュタグデータ２３ａおよびキャッシュデータ２３ｂに基づいて情報検証処理を実行する。
【００８０】
なお、上記した各プログラム２４ａ、２４ｂ、２４ｃおよび２４ｄについては、必ずしも最初からＲＯＭ２４に記憶させておく必要はなく、例えば、コンピュータ２０に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」、または、コンピュータ２０の内外に備えられるＨＤＤなどの「固定用の物理媒体」、さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ２０に接続される「他のコンピュータ（またはサーバ）」などに各プログラムを記憶させておき、コンピュータ２０がこれらから各プログラムを読み出して実行するようにしてもよい。
【産業上の利用可能性】
【００８１】
以上のように、本発明に係る縮退制御装置は、アクセス要求に対するエラーの発生に基づいて、複数のウェイで構成されるキャッシュの縮退を制御する場合に有用であり、特に、キャッシュメモリの処理能力性能の低下を抑えつつ、重大な障害に発展する潜在的な要因（例えば、訂正可能なエラーなど）を予め排除することによりコンピュータシステム内の信頼性を維持することに適する。
【図面の簡単な説明】
【００８２】
【図１】図１は、実施例１に係る縮退制御装置の概要を説明するための図である。
【図２】図２は、実施例１に係る縮退制御装置の構成を示すブロック図である。
【図３】図３は、キャッシュタグの構成例を示す図である。
【図４】図４は、エラーカウンタの構成例を示す図である。
【図５】図５は、実施例１に係る縮退制御装置のメイン処理の流れを示すフローチャートである。
【図６】図６は、実施例１に係るキャッシュタグ検索処理の流れを示すフローチャートである。
【図７】図７は、実施例１に係る縮退制御処理の流れを示すフローチャートである。
【図８】図８は、実施例１に係る登録ウェイ決定処理の流れを示すフローチャートである。
【図９】図９は、実施例２に係る縮退制御装置のメイン処理の流れを示すフローチャートである。
【図１０】図１０は、縮退制御処理を実行するコンピュータを示す図である。
【図１１】図１１は、従来技術による縮退制御処理を示す図である。
【符号の説明】
【００８３】
１０  縮退制御装置
１１  主記憶部制御ＩＦ部
１２  記憶部
１２ａ  キャッシュタグ記憶部
１２ｂ  キャッシュデータ記憶部
１３  制御部
１３ａ  要求受付部
１３ｂ  縮退制御部
１３ｃ  ウェイ選択部
１３ｄ  データ送出部
２０  コンピュータ
３１  主記憶制御ＩＦ部
２２  ＨＤＤ（Hard  disk  drive）
２３  ＲＡＭ（Random  access  memory）
２４  ＲＯＭ（Read  only  memory）
２５  ＣＰＵ（Central  processing  unit）
３０  バス
【国際調査報告】
2007097027.tif 000014
2007097027.tif 000015
2007097027.tif 000016