(57)【要約】  キャッシュ制御装置１０は、キャッシュメモリへのアクセスを制御するアクセス制御部２０と、各種データなどを記憶する主記憶部４０と、利用頻度の高いデータを記憶し複数のウェイから構成されるキャッシュメモリ２５と、複数のウェイを構成するキャッシュラインのうち所定のキャッシュラインが縮退していることを示すキャッシュライン縮退情報を記憶する監視レジスタ３０と、キャッシュメモリ２５へのアクセス要求に対して発生したエラーの回数を、当該エラーがいずれのウェイで発生したかを問わず一括で計数するエラー計数するエラーカウンタ３５とから構成される。
2007097026.tif 000002
【特許請求の範囲】
【請求項１】
アクセス要求に基づいて、複数のウェイで構成されるキャッシュメモリを制御するキャッシュ制御装置であって、
前記アクセス要求に対して発生したエラーの回数を、当該エラーがいずれのウェイで発生したかを問わず一括で計数するエラー計数記憶手段と、
前記複数のウェイを構成するキャッシュラインのうち所定のキャッシュラインが縮退していることを示すキャッシュライン縮退情報を記憶する縮退情報記憶手段と、
前記エラー計数記憶手段により計数された前記エラーの発生回数が所定の上限回数に到達した場合に、当該所定の上限回数に到達する契機となったエラーに係るキャッシュラインについて、当該キャッシュラインが縮退していることを示すキャッシュライン縮退情報を前記縮退情報記憶手段に書き込む縮退情報書込手段と、
前記縮退情報記憶手段に記憶されているキャッシュライン縮退情報に対応したキャッシュラインに対してリプレース要求があった場合に、前記キャッシュラインをリプレース候補から除外してリプレース制御を行うリプレース制御手段と、
を備えたことを特徴とするキャッシュ制御装置。
【請求項２】
前記縮退情報書込手段は、前記エラー計数手段により計数された前記エラーの発生回数が所定の上限回数に到達した後において、前記エラー計数手段に計数された前記エラー回数が前記所定の上限回数以上である他の所定の上限回数に到達した場合には、当該所定の上限回数に到達する契機となったエラーに係るキャッシュラインを含んだウェイ全体について、当該ウェイが縮退していることを示すウェイ縮退情報を前記縮退情報記憶手段にさらに書き込み、
前記リプレース制御手段は、前記縮退情報記憶手段に記憶されているウェイ縮退情報に対応するウェイに対してリプレース要求があった場合に、前記ウェイをリプレース要求候補から除外してリプレース制御を行うことを特徴とする請求項１に記載のキャッシュ制御装置。
【請求項３】
前記縮退情報書込手段によって前記ウェイ縮退情報が前記縮退情報記憶手段にさらに書き込まれた際に、前記複数のウェイのうち所定の一つのウェイを除いて他の全てのウェイが縮退していることになり、かつ、当該所定のウェイに係るキャッシュライン縮退情報が前記縮退情報記憶手段に記憶されている場合には、当該キャッシュライン縮退情報を前記縮退情報記憶手段から削除する縮退情報削除手段をさらに備えたことを特徴とする請求項２に記載のキャッシュ制御装置。
【請求項４】
前記縮退情報書込手段は、所定の検査用データを受け付けた場合に、当該検査用データの受け付けに伴って指定された所定のキャッシュラインについて、当該キャッシュラインが縮退していることを示すキャッシュライン縮退情報を前記縮退情報記憶手段に書き込むことを特徴とする請求項１に記載のキャッシュ制御装置。
【請求項５】
アクセス要求に基づいて、複数のウェイで構成されるキャッシュメモリを制御することをコンピュータに実行させるキャッシュ制御プログラムであって、
前記アクセス要求に対して発生したエラーの回数を、当該エラーがいずれのウェイで発生したかを問わず一括で計数するエラー計数記憶手段と、
前記複数のウェイを構成するキャッシュラインのうち所定のキャッシュラインが縮退していることを示すキャッシュライン縮退情報を記憶する縮退情報記憶手段と、
前記エラー計数記憶手段により計数された前記エラーの発生回数が所定の上限回数に到達した場合に、当該所定の上限回数に到達する契機となったエラーに係るキャッシュラインについて、当該キャッシュラインが縮退していることを示すキャッシュライン縮退情報を前記縮退情報記憶手段に書き込む縮退情報書込手順と、
前記縮退情報記憶手段に記憶されているキャッシュライン縮退情報に対応したキャッシュラインに対してリプレース要求があった場合に、前記キャッシュラインをリプレース候補から除外してリプレース制御を行うリプレース制御手順と、
をコンピュータに実行させることを特徴とするキャッシュ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、アクセス要求に基づいて、複数のウェイで構成されるキャッシュメモリを制御するキャッシュ制御装置およびキャッシュ制御プログラムに関する。
【背景技術】
【０００２】
従来より、半導体技術の微細化に伴い、プロセッサに搭載されるＲＡＭ（例えば、キャッシュメモリ）を構成する記憶素子も微細化し、記憶情報の反転が発生しやすくなってきた。また、ＲＡＭ内部の回路については、動作周波数の向上を目指して内部動作タイミングの調整値のマージンを削るようになってきており、動作可能な電圧・温度が制限されるため、電圧変動・温度変動に対する耐性が低くなってきている。こうした事情により、ＲＡＭにおいてエラーの発生率が上がり、また、エラーは特定のビット位置に発生しやすくなっている。【０００３】
そこで、このようなエラーを検出し、キャッシュラインを縮退制御する技術（データ格納領域のいずれかを使用不可能な状態に制御）が開示されている。例えば、特許文献１（特開平４−２４３４４６）では、キャッシュメモリ内の列位置を示すウェイごとに、発生したエラーを計数し記憶するエラーカウンタを備え、所定の閾値に達成した場合に、当該ウェイを縮退させてエラーによる被害を回避する技術が開示されている。【０００４】
また、特許文献２（特開平１０−３３４６９５）では、キャッシュメモリ内の行位置を示すキャッシュラインごとに、発生したエラーを計数し記憶するエラーカウンタを備え、所定の閾値に達成した場合に、当該キャッシュラインを縮退させる技術が開示されている。【０００５】
【特許文献１】特開平４−２４３４４６号公報
【特許文献２】特開平１０−３３４６９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、上記した特許文献１では、エラーが発生したキャッシュラインを含むウェイ全体を縮退制御していたので、正常動作しているキャッシュラインの多くを無駄に縮退制御させていることになるという課題があり、また、ウェイごとにエラーカウンタが必要であるので、エラーによる被害を回避するために必要な領域が大きくなるという課題があった。【０００７】
また、上記した特許文献２では、ウェイを構成するキャッシュライン（キャッシュ内のデータ格納領域の最小単位）ごとに、発生したエラーを計数し記憶するエラーカウンタが必要であるので、特許文献１と同様に、エラーによる被害を回避するために必要な領域が大きくなるという課題があった。【０００８】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、エラー発生時の影響を極小化することが可能であるとともに、エラー対策に必要な領域を最小限に抑えることが可能であるキャッシュ制御装置およびキャッシュ制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、請求項１に係る発明は、アクセス要求に基づいて、複数のウェイで構成されるキャッシュメモリを制御するキャッシュ制御装置であって、前記アクセス要求に対して発生したエラーの回数を、当該エラーがいずれのウェイで発生したかを問わず一括で計数するエラー計数記憶手段と、前記複数のウェイを構成するキャッシュラインのうち所定のキャッシュラインが縮退していることを示すキャッシュライン縮退情報を記憶する縮退情報記憶手段と、前記エラー計数記憶手段により計数された前記エラーの発生回数が所定の上限回数に到達した場合に、当該所定の上限回数に到達する契機となったエラーに係るキャッシュラインについて、当該キャッシュラインが縮退していることを示すキャッシュライン縮退情報を前記縮退情報記憶手段に書き込む縮退情報書込手段と、前記縮退情報記憶手段に記憶されているキャッシュライン縮退情報に対応したキャッシュラインに対してリプレース要求があった場合に、前記キャッシュラインをリプレース候補から除外してリプレース制御を行うリプレース制御手段と、を備えたことを特徴とする。【００１０】
また、請求項２に係る発明は、上記の発明において、前記縮退情報書込手段は、前記エラー計数手段により計数された前記エラーの発生回数が所定の上限回数に到達した後において、前記エラー計数手段に計数された前記エラー回数が前記所定の上限回数以上である他の所定の上限回数に到達した場合には、当該所定の上限回数に到達する契機となったエラーに係るキャッシュラインを含んだウェイ全体について、当該ウェイが縮退していることを示すウェイ縮退情報を前記縮退情報記憶手段にさらに書き込み、前記リプレース制御手段は、前記縮退情報記憶手段に記憶されているウェイ縮退情報に対応するウェイに対してリプレース要求があった場合に、前記ウェイをリプレース要求候補から除外してリプレース制御を行うことを特徴とする。【００１１】
また、請求項３に係る発明は、上記の発明において、前記縮退情報書込手段によって前記ウェイ縮退情報が前記縮退情報記憶手段にさらに書き込まれた際に、前記複数のウェイのうち所定の一つのウェイを除いて他の全てのウェイが縮退していることになり、かつ、当該所定のウェイに係るキャッシュライン縮退情報が前記縮退情報記憶手段に記憶されている場合には、当該キャッシュライン縮退情報を前記縮退情報記憶手段から削除する縮退情報削除手段をさらに備えたことを特徴とする。【００１２】
また、請求項４に係る発明は、上記の発明において、前記縮退情報書込手段は、所定の検査用データを受け付けた場合に、当該検査用データの受け付けに伴って指定された所定のキャッシュラインについて、当該キャッシュラインが縮退していることを示すキャッシュライン縮退情報を前記縮退情報記憶手段に書き込むことを特徴とする。【００１３】
また、請求項５に係る発明は、上記の発明において、アクセス要求に基づいて、複数のウェイで構成されるキャッシュメモリを制御することをコンピュータに実行させるキャッシュ制御プログラムであって、前記アクセス要求に対して発生したエラーの回数を、当該エラーがいずれのウェイで発生したかを問わず一括で計数するエラー計数記憶手段と、前記複数のウェイを構成するキャッシュラインのうち所定のキャッシュラインが縮退していることを示すキャッシュライン縮退情報を記憶する縮退情報記憶手段と、前記エラー計数記憶手段により計数された前記エラーの発生回数が所定の上限回数に到達した場合に、当該所定の上限回数に到達する契機となったエラーに係るキャッシュラインについて、当該キャッシュラインが縮退していることを示すキャッシュライン縮退情報を前記縮退情報記憶手段に書き込む縮退情報書込手順と、前記縮退情報記憶手段に記憶されているキャッシュライン縮退情報に対応したキャッシュラインに対してリプレース要求があった場合に、前記キャッシュラインをリプレース候補から除外してリプレース制御を行うリプレース制御手順と、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１４】
請求項１または５の発明によれば、アクセス要求に基づいて、複数のウェイで構成されるキャッシュメモリを制御するキャッシュ制御装置であって、アクセス要求に対して発生したエラーの回数を、当該エラーがいずれのウェイで発生したかを問わず一括で計数し、複数のウェイを構成するキャッシュラインのうち所定のキャッシュラインが縮退していることを示すキャッシュライン縮退情報を記憶し、計数されたエラーの発生回数が所定の上限回数に到達した場合に、当該所定の上限回数に到達する契機となったエラーに係るキャッシュラインについて、当該キャッシュラインが縮退していることを示すキャッシュライン縮退情報を縮退情報記憶手段に書き込み、記憶されているキャッシュライン縮退情報に対応したキャッシュラインに対してリプレース要求があった場合に、キャッシュラインをリプレース候補から除外してリプレース制御を行うので、エラーが発生したキャッシュラインのみを使用不可（縮退）にすることで、エラー発生時の影響を極小化することが可能であるとともに、一つの領域（例えば、エラーカウンタ）でキャッシュメモリ全てのエラーをカウントする（例えば、ウェイ、キャッシュラインに関係なくまとめてカウントする）ことで、エラー対策に必要な領域を最小限に抑えることが可能である。【００１５】
また、請求項２の発明によれば、計数されたエラーの発生回数が所定の上限回数に到達した後において、計数されたエラー回数が所定の上限回数以上である他の所定の上限回数に到達した場合には、当該所定の上限回数に到達する契機となったエラーに係るキャッシュラインを含んだウェイ全体について、当該ウェイが縮退していることを示すウェイ縮退情報を縮退情報記憶手段にさらに書き込み、記憶されているウェイ縮退情報に対応するウェイに対してリプレース要求があった場合に、ウェイをリプレース要求候補から除外してリプレース制御を行うので、エラーを頻繁に発生させるキャッシュラインを含むウェイについては、そのウェイ全体を縮退させることができる結果、キャッシュメモリの信頼性を維持することが可能となる。【００１６】
また、請求項３の発明によれば、ウェイ縮退情報が縮退情報記憶手段にさらに書き込まれた際に、複数のウェイのうち所定の一つのウェイを除いて他の全てのウェイが縮退していることになり、かつ、当該所定のウェイに係るキャッシュライン縮退情報が縮退情報記憶手段に記憶されている場合には、当該キャッシュライン縮退情報を縮退情報記憶手段から削除するので、例えば、キャッシュメモリを構成するウェイ全てが縮退対象になった場合でも、キャッシュメモリを使用不可にするのではなく、使用できるウェイとキャッシュラインを解放する結果、キャッシュメモリの機能を維持することが可能となる。【００１７】
また、請求項４の発明によれば、所定の検査用データを受け付けた場合に、当該検査用データの受け付けに伴って指定された所定のキャッシュラインについて、当該キャッシュラインが縮退していることを示すキャッシュライン縮退情報を縮退情報記憶手段に書き込むので、例えば、製品出荷前に検証用データを用いてキャッシュまたはウェイの縮退動作を検証することができる結果、当該キャッシュ制御装置を含む各種製品の質を向上させることが可能である。
【図面の簡単な説明】
【００１８】
【図１】図１は、実施例１に係るキャッシュ制御装置の全体構成を示すシステム構成図である。
【図２】図２は、実施例１に係るキャッシュ制御処理の流れを示すフローチャートである。
【図３】図３は、実施例１に係るキャッシュ制御装置の回路構成の例を示した図である。
【図４】図４は、実施例２に係るキャッシュ制御装置の検証用データを使用した場合の図である。
【図５】図５は、キャッシュ制御プログラムを実行するコンピュータシステムを示す図である。
【符号の説明】
【００１９】
１０  キャッシュ制御装置
２０  アクセス制御部
２０ａ  エラー検出部
２０ｂ  キャッシュ検索部
２０ｃ  縮退情報書込部
２０ｄ  リプレース制御部
２５  キャッシュメモリ
３０  監視レジスタ
３５  エラーカウンタ
４０  主記憶部
５０  コンピュータシステム
５１  ＲＡＭ
５２  ＨＤＤ
５２ａ  エラー計数記憶テーブル
５２ｂ  縮退情報記憶テーブル
５３  ＲＯＭ
５３ａ  エラー検出プログラム
５３ｂ  キャッシュ検索プログラム
５３ｃ  縮退情報書込プログラム
５３ｄ  リプレース制御プログラム
５４  ＣＰＵ
５４ａ  エラー検出プロセス
５４ｂ  キャッシュ検索プロセス
５４ｃ  縮退情報書込プロセス
５４ｄ  リプレース制御プロセス
５５  主記憶
【発明を実施するための最良の形態】
【００２０】
以下に添付図面を参照して、この発明に係るキャッシュ制御装置の実施例を詳細に説明する。
【実施例１】
【００２１】
以下の実施例１では、本発明に係るキャッシュ制御装置の概要および特徴、キャッシュ制御装置の構成、処理の流れ、および回路構成、実施例１による効果等を順に説明する。【００２２】
［キャッシュ制御装置の概要および特徴］
まず最初に、実施例１に係るキャッシュ制御装置の概要および特徴を説明する。実施例１に係るキャッシュ制御装置１０は、キャッシュメモリ２５へのアクセス要求（例えば、読み込み要求や書込み要求）に対するエラーの発生に基づいて、複数のウェイ（キャッシュ内の列）で構成されるキャッシュメモリを制御することを概要とするものであり、特に、エラー発生時の影響を極小化することが可能であるとともに、エラー対策に必要な領域を最小限に抑えることが可能である点に主たる特徴がある。すなわち、エラーが発生したキャッシュラインのみを使用不可（縮退）にすることで、エラー発生時の影響を極小化することが可能であるとともに、一つの領域（例えば、エラーカウンタ）でキャッシュメモリ全てのエラーをカウントする（例えば、ウェイ、キャッシュラインに関係なくまとめてカウントする）ことで、エラー対策に必要な領域を最小限に抑えることが可能である。【００２３】
［キャッシュ制御装置の構成（実施例１）］
次に、図１を用いて、キャッシュ制御装置を含むシステムの全体構成を説明する。図１は、キャッシュ制御装置を含むシステムの全体構成を示すブロック図である。このキャッシュ制御装置１０は、アクセス制御部２０と、主記憶部４０と、キャッシュメモリ２５と、監視レジスタ３０と、エラーカウンタ３５とから構成される。なお、監視レジスタ３０は、特許請求の範囲に記載の「縮退情報記憶手段」に対応し、エラーカウンタ３５は、同様に、「エラー計数記憶手段」に対応する。【００２４】
このうち、主記憶部４０は、各種処理に必要なデータおよびプログラムを格納する格納手段（記憶手段）であり、具体的に例を挙げれば、ＣＰＵなどによる各種処理に必要なデータであって、アクセス要求の対象となるデータなどを記憶する。【００２５】
キャッシュメモリ２５は、複数のウェイから構成され、主記憶部４０に格納されているデータののうち頻繁に利用されるデータを記憶する手段であり、具体的に例を挙げれば、図１に示したように、Ｎウェイセットアソシアテイブ方式を採用し「ウェイ０」と「ウェイ１」から構成される。【００２６】
また、エラーカウンタ３５は、キャッシュメモリ２５へのアクセス要求に対して発生したエラーの回数を、当該エラーがいずれのウェイで発生したかを問わず一括で計数する手段である。具体的に例を挙げれば、キャッシュメモリ２５の「ウェイ０」または「ウェイ１」において発生したエラーの回数を記憶する。【００２７】
監視レジスタ３０は、複数のウェイを構成するキャッシュラインのうち所定のキャッシュラインが縮退していることを示すキャッシュライン縮退情報を記憶する手段である。具体的に例を挙げれば、キャッシュメモリ２５の「ウェイ０」または「ウェイ１」において、それぞれのウェイを構成するキャッシュラインでエラーが発生した場合、キャッシュライン縮退情報（例えば、ウェイ０、キャッシュラインアドレスＡなど）を記憶する。【００２８】
アクセス制御部２０は、キャッシュメモリ２５に対するアクセスを制御し、キャッシュラインやウェイの縮退制御を行う手段であり、特に本発明に密接に関連するものとしては、エラー検出部２０ａと、キャッシュ検索部２０ｂと、縮退情報書込部２０ｃと、リプレース制御部２０ｄとを備える。なお、縮退情報書込部２０ｃは、特許請求の範囲に記載の「縮退情報書込手段」に対応し、リプレース制御部２０ｄは、同様に、「リプレース制御手段」に対応する。【００２９】
このうち、エラー検出部２０ａは、キャッシュメモリ２５のエラーを検出する手段であり、具体的には、キャッシュメモリ２５へのアクセス要求（例えば、データ読み出し要求）があった場合に、アクセスされるキャッシュメモリ２５のキャッシュラインにエラーが発生したか否かを検出する。【００３０】
また、キャッシュ検索部２０ｂは、アクセス要求を受けて、キャッシュメモリ２５に当該データを検索する手段であり、具体的に例を挙げれば、アクセス要求（例えば、データ読み出し要求）を受けて、当該データをキャッシュメモリ２５から検索し、当該データがキャッシュメモリ２５に存在する場合は、キャッシュメモリ２５から当該データを読み出す。一方、当該データがキャッシュメモリ２５に存在しない場合は、主記憶部４０から当該データを読み出す。そして、後述するリプレース制御部２０ｄにリプレース要求を送信する。【００３１】
縮退情報書込部２０ｃは、エラーカウンタ３５により計数されたエラーの発生回数が所定の上限回数に到達した場合に、当該所定の上限回数に到達する契機となったエラーに係るキャッシュラインについて、当該キャッシュラインが縮退していることを示すキャッシュライン縮退情報を監視レジスタに書き込む手段である。具体的には、キャッシュメモリ２５へのアクセス要求により、エラーが検出され、当該エラーによりあらかじめ設定された上限回数に到達した場合に、契機となったエラーに係るキャッシュラインの情報（例えば、ウェイ０、キャッシュラインアドレスＡ）を監視レジスタ３０に書き込む。【００３２】
例を挙げると、キャッシュメモリ２５へのアクセス要求を受けて、エラー検出部２０ａによりエラーが検出され、当該エラーによりエラーカウンタ３５にエラー回数が１増加され、あらかじめ設定された上限回数（例えば、８回）に到達した場合に、契機となったエラーに係るキャッシュラインの情報（例えば、ウェイ０、キャッシュラインアドレスＡ）を監視レジスタ３０に書き込む。【００３３】
リプレース制御部２０ｄは、監視レジスタ３０に記憶されているキャッシュライン縮退情報に対応したキャッシュラインに対してリプレース要求があった場合に、当該キャッシュラインをリプレース候補から除外してリプレース制御を行う手段である。具体的に例を挙げれば、監視レジスタ３０に記憶されているキャッシュライン縮退情報（例えば、ウェイ０、キャッシュラインアドレス０）に対応したキャッシュライン（例えば、ウェイ０、キャッシュラインアドレス０）に対して、リプレース要求があった場合に、当該キャッシュラインをリプレース候補から除外して、そのキャッシュラインのウェイへの登録を抑止するリプレース制御を行う。【００３４】
［キャッシュ制御装置による処理］
次に、図２を用いて、キャッシュ制御装置による処理を説明する。図２は、キャッシュ制御処理の流れを示すフローチャートである。同図に示すように、キャッシュ制御装置１０は、アクセスを受け付けると（ステップＳ２０１肯定）、エラー検出部２０ａによりエラーが発生した否かを検出する（ステップＳ２０２）【００３５】
そして、エラーが検出されると（ステップＳ２０２肯定）、エラーカウンタ３５の計数（カウンタ）を１増加させる（ステップＳ２０３）。続いて、エラーカウンタ３５にカウントされた計数が規定回数以上か否かを判定する（ステップＳ２０４）。一方、エラーが検出されない場合（ステップＳ２０２否定）、後述するステップＳ２０６の処理を行う。【００３６】
そして、規定回数以上である場合（ステップＳ２０４肯定）、当該規定回数に到達する契機となったエラーに係るキャッシュラインについて、当該キャッシュラインが縮退していることを示すキャッシュライン縮退情報を監視レジスタ３０に書き込み、当該キャッシュラインをブロック縮退（使用不可）させる（ステップＳ２０５）。一方、規定回数以上でない場合（ステップＳ２０４否定）、後述するステップＳ２０６の処理を行う。【００３７】
そして、キャッシュ検索部２０ｂは、アクセス要求を受けたデータがキャッシュメモリ２５にキャッシュメモリ２５に存在する（キャッシュヒットする）か否かを判定する（ステップＳ２０６）。【００３８】
続いて、キャッシュヒットした場合（ステップＳ２０６肯定）、キャッシュ検索部２０ｂは、キャッシュメモリ２５から当該データを読み出す（ステップＳ２０７）。【００３９】
一方、キャッシュヒットしなかった場合（ステップＳ２０６否定）、キャッシュ検索部２０ｂは、主記憶部４０から当該データを読み出す（ステップＳ２０８）。続いて、リプレース制御部２０ｄは、読み出されたデータをキャッシュメモリ２５のキャッシュラインに登録する（ステップＳ２０８）。【００４０】
［キャッシュ制御装置の回路構成］
次に、図３を用いて、図１に示したキャッシュ制御装置１０の回路構成を説明する。図３は、キャッシュ制御装置１０の回路構成の例を示した図である。【００４１】
図３に示すように、ＴＡＧ−ＲＡＭ−ＷＡＹ０、ＴＡＧ−ＲＡＭ−ＷＡＹ１は、Ｎウェイセットアソシアテイブ方式を採用してキャッシュメモリを構成するウェイであり、主記憶部（メインメモリ）に格納されているデータののうち頻繁に利用されるデータを記憶する。【００４２】
ＬＲＵ−ＲＡＭは、監視対象（ＢＬＯＣＫ−ＤＥＬＥＴＥ−ＲＥＧＩＳＴＥＲに登録されている）となっているキャッシュラインに対してリプレース要求があった場合に、当該キャッシュラインをリプレース候補から除外してリプレース制御を行う。また、キャッシュライン縮退中に、キャッシュメモリへの書込みが発生した場合、ＢＬＯＣＫ−ＤＥＬＥＴＥ−ＲＥＧＩＳＴＥＲに登録されている監視対象のキャッシュラインがリプレース対象とならないように制御する。そのために、監視対象のキャッシュラインアドレスへのアクセスが行われた場合に、監視対象となるウェイ番号以外のウェイをリプレース対象として選択するように制御する。【００４３】
また、エラーカウンタは、ＴＡＧ−ＲＡＭ−ＷＡＹ０またはＴＡＧ−ＲＡＭ−ＷＡＹ１にて発生したエラー回数をいずれのウェイで発生したかを問わず一括して計数する。【００４４】
そして、図示しないＢＬＯＣＫ−ＤＥＬＥＴＥ−ＳＴＡＴＥは、キャッシュライン縮退処理中であることを示すＦＬＡＧである。具体的には、キャッシュメモリにエラーが検出されると、エラーカウンタに計数されるとともに、ＷＡＹ−ＤＥＬＥＴＥ−ＦＬＡＧ（ウェイ縮退中であることを示すＦＬＡＧ）が全て０の状態で、キャッシュメモリ・キャッシュタグのエラー検出回数が閾値を超えた時に、本信号を有効にし、ＭＩＢが全て解放される（Ｍｏｖｅ−ｉｎ処理が完了する）のを待つ。【００４５】
そして、図示しないＢＬＯＣＫ−ＤＥＬＥＴＥ−ＦＬＡＧは、キャッシュライン縮退中であることを示すＦＬＡＧである。具体的には、ＢＬＯＣＫ−ＤＥＬＥＴＥ−ＳＴＡＴＥが有効かつＭＩＢが全て無効の場合に有効になり、これによりキャッシュライン縮退が有効となる。また、ＢＬＯＣＫ−ＤＥＬＥＴＥ−ＦＬＡＧが有効になると、ＢＬＯＣＫ−ＤＥＬＥＴＥ−ＳＴＡＴＥを無効にする。【００４６】
また、ＢＬＯＣＫ−ＤＥＬＥＴＥ−ＲＥＧＩＳＴＥＲは、ＴＡＧ−ＲＡＭ−ＷＡＹ０またはＴＡＧ−ＲＡＭ−ＷＡＹ１を構成するキャッシュラインのうち所定のキャッシュラインが縮退していることを示すキャッシュライン縮退情報を記憶する。具体的には、キャッシュラインのインデックスに利用されるキャッシュラインアドレスとキャッシュ上に登録されているキャッシュウェイ番号を保持し、キャッシュメモリやキャッシュタグのエラーを検出する度に登録する。そして、複数のキャッシュラインでエラーが検出されれば、エラーが検出されるたびに登録される内容が変化する。また、キャッシュメモリのエラー検出頻度に応じて制御を変更できるように、エラーカウンタに計数される回数が、規定回数以上に達した場合に、有効になるようにしてもよい。【００４７】
［実施例１による効果］
このように、実施例１によれば、アクセス要求に基づいて、複数のウェイで構成されるキャッシュメモリを制御するキャッシュ制御装置であって、アクセス要求に対して発生したエラーの回数を、当該エラーがいずれのウェイで発生したかを問わず一括で計数し、複数のウェイを構成するキャッシュラインのうち所定のキャッシュラインが縮退していることを示すキャッシュライン縮退情報を記憶し、計数されたエラーの発生回数が所定の上限回数に到達した場合に、当該所定の上限回数に到達する契機となったエラーに係るキャッシュラインについて、当該キャッシュラインが縮退していることを示すキャッシュライン縮退情報を縮退情報記憶手段に書き込み、記憶されているキャッシュライン縮退情報に対応したキャッシュラインに対してリプレース要求があった場合に、キャッシュラインをリプレース候補から除外してリプレース制御を行うので、エラーが発生したキャッシュラインのみを使用不可（縮退）にすることで、エラー発生時の影響を極小化することが可能であるとともに、一つの領域（例えば、エラーカウンタ）でキャッシュメモリ全てのエラーをカウントする（例えば、ウェイ、キャッシュラインに関係なくまとめてカウントする）ことで、エラー対策に必要な領域を最小限に抑えることが可能である。
【実施例２】
【００４８】
さて、これまで実施例１に係るキャッシュ制御装置について説明してきたが、本発明は上記した実施例１以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では実施例２として、種々の異なる形態について説明する。【００４９】
（１）ウェイ縮退
例えば、上記した実施例１では、キャッシュラインの縮退制御について説明したが、本発明はこれに限定されるものではなく、エラーが頻繁に発生すると、ウェイ全体を縮退させてもよい。【００５０】
具体的には、図１に示した縮退情報書込部２０ｃは、エラーカウンタ３５により計数されたエラーの発生回数が所定の上限回数（例えば、８回）に到達した後において、エラーカウンタ３５に計数されたエラー回数が所定の上限回数以上（例えば、８回以上）である他の所定の上限回数（例えば、１５回）に到達した場合には、当該所定の上限回数（例えば、１５回）に到達する契機となったエラーに係るキャッシュライン（例えば、ウェイ０、キャッシュアドレスＢ）を含んだウェイ全体（例えば、ウェイ０）について、当該ウェイが縮退していることを示すウェイ縮退情報（例えば、ウェイ０）を監視レジスタ３０にさらに書き込む。そして、リプレース制御部２０ｄは、監視レジスタ３０に記憶されているウェイ縮退情報に対応するウェイに対してリプレース要求があった場合に、ウェイをリプレース要求候補から除外してリプレース制御を行う。【００５１】
これにより、エラーを頻繁に発生させるキャッシュラインを含むウェイについては、そのウェイ全体を縮退させることができる結果、キャッシュメモリの信頼性を維持することが可能となる。
【００５２】
（２）キャッシュライン縮退の無効化
また、キャッシュメモリを構成する複数のウェイの全てのウェイにおいて縮退が起きた場合、ウェイ縮退しているウェイの縮退を解放するようにしてもよい。具体的には、縮退情報書込部２０ｃによってウェイ縮退情報が監視レジスタ３０にさらに書き込まれた際に、複数のウェイのうち所定の一つのウェイを除いて他の全てのウェイが縮退していることになり、かつ、当該所定のウェイに係るキャッシュライン縮退情報が監視レジスタ３０に記憶されている場合には、当該キャッシュライン縮退情報を監視レジスタ３０から削除する。【００５３】
例えば、ウェイ０とウェイ１から構成されるキャッシュメモリにおいて、監視レジスタ３０の示すウェイ番号（ウェイ０）とは違ったウェイでウェイ縮退が起きた場合、（例えば、ウェイ０のあるキャッシュラインが監視レジスタ３０に登録されて使用できない状態で、他の何らかの理由でウェイ１がウェイ縮退した場合）、キャッシュライン縮退を有効にしておくと、使用できないキャッシュラインが発生してしまうので、当該キャッシュライン縮退情報を監視レジスタ３０から削除する。【００５４】
これにより、キャッシュメモリを構成するウェイ全てが縮退対象になった場合でも、キャッシュメモリを使用不可にするのではなく、使用できるウェイとキャッシュラインを解放する結果、キャッシュメモリの機能を維持することが可能となる。【００５５】
（３）検証用データによる縮退制御
また、検証用データを用いて縮退制御を検証するようにしてもよい。具体的には、図４に示したように、キャッシュメモリから読み出されるアドレス（６ビット〜１５ビット）をあらかじめ用意した擬似用（検証用）アドレスに置き換えて、キャッシュメモリにあらかじめ記憶される擬似用（検証用）データを読み出し、実施例１または２で説明した処理を実行し、正常に実行できるか否かを検証する。【００５６】
これにより、製品出荷前に検証用データを用いてキャッシュまたはウェイの縮退動作を検証することができる結果、当該キャッシュ制御装置を含む各種製品の質を向上させることが可能である。【００５７】
（４）装置構成等
また、実施例１、２において説明したキャッシュ制御装置による処理（図２参照）のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報（例えば、エラーカウンタなど）については、特記する場合を除いて任意に変更することができる。【００５８】
また、図１に図示したキャッシュ制御装置の各構成要素や、図３に図示したキャッシュ制御装置の回路構成は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合、例えば、縮退情報書込部２０ｃとリプレース制御部２０ｄを統合・分散するなど、具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、キャッシュ制御装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。【００５９】
（５）キャッシュ制御プログラム
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。【００６０】
図５は、キャッシュ制御プログラムを実行するコンピュータシステム５０を示す図である。同図に示すように、コンピュータシステム５０は、ＲＡＭ５１と、ＨＤＤ５２と、ＲＯＭ５３と、ＣＰＵ５４と、主記憶５５とから構成される。ここで、ＲＯＭ５３には、上記の実施例と同様の機能を発揮するプログラム、つまり、図５に示すように、エラー検出プログラム５３ａと、キャッシュ検索プログラム５３ｂ、縮退情報書込プログラム５３ｃと、リプレース制御プログラム５３ｄとがあらかじめ記憶されている。【００６１】
そして、ＣＰＵ５４には、これらのプログラム５３ａ〜５３ｄを読み出して実行することで、図５に示すように、エラー検出プロセス５４ａと、キャッシュ検索プロセス５４ｂと、縮退情報書込プロセス５４ｃと、リプレース制御プロセス５４ｄとなる。なお、各プロセス５４ａ〜５４ｄは、図１に示した、エラー検出部２０ａと、キャッシュ検索部２０ｂと、縮退制御書込部２０ｃと、リプレース制御部２０ｄとにそれぞれ対応する。【００６２】
また、ＨＤＤ５２には、アクセス要求に対して発生したエラーの回数を、当該エラーがいずれのウェイで発生したかを問わず一括で計数するエラー計数記憶テーブル５２ａと、複数のウェイを構成するキャッシュラインのうち所定のキャッシュラインが縮退していることを示すキャッシュライン縮退情報を記憶する縮退情報記憶テーブル５２ｂとが設けられる。なお、エラー計数記憶テーブル５２ａと、縮退情報記憶テーブル５２ｂとは、図１に示した、エラーカウンタ３５と、監視レジスタ３０とに対応する。【００６３】
ところで、上記したプログラム５３ａ〜５３ｄは、必ずしもＲＯＭ５３に記憶させておく必要はなく、例えば、コンピュータシステム５０に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」の他に、コンピュータシステム５０の内外に備えられるハードディスクドライブ（ＨＤＤ）などの「固定用の物理媒体」、さらに、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータシステム５０に接続される「他のコンピュータシステム」に記憶させておき、コンピュータシステム５０がこれらからプログラムを読み出して実行するようにしてもよい。
【産業上の利用可能性】
【００６４】
以上のように、本発明に係るキャッシュ制御装置およびキャッシュ制御プログラムプログラムは、アクセス要求に基づいて、複数のウェイで構成されるキャッシュメモリを制御するに有用であり、特に、エラー発生時の影響を極小化することが可能であるとともに、エラー対策に必要な領域を最小限に抑えることが可能であることに適する。
【図１】
2007097026.tif 000003
【図２】
2007097026.tif 000004
【図３】
2007097026.tif 000005
【図４】
2007097026.tif 000006
【図５】
2007097026.tif 000007
【国際調査報告】
2007097026.tif 000008
2007097026.tif 000009