(57)【特許請求の範囲】
【請求項１】
キャッシュから読み出されたデータに訂正可能障害が検出された場合、前記データの誤り訂正を行い、誤り訂正された訂正後データを訂正後データ記憶手段に格納する誤り訂正手段と、
データ読出要求に対し、要求されるデータが前記訂正後データ記憶手段に記憶されているか否かを判定し、記憶されていると判定した場合、要求されるデータを前記訂正後データ記憶手段から読み出して要求元へ転送する読出要求対応手段と、
前記キャッシュに対するデータ読出要求またはデータ書込要求を処理中か否かを、要求に示されるメモリアドレスを基に前記キャッシュのエントリを決定するセレクタの状態に基づいて判定し、処理中でないと判定した場合、前記訂正後データ記憶手段が記憶している訂正後データを、前記キャッシュに書き込むデータ更新処理手段と
を備えるキャッシュ制御装置。
【請求項２】
前記読出要求対応手段が、要求されるデータが前記訂正後データ記憶手段に記憶されていないと判定した場合、前記誤り訂正手段は、要求されるデータを前記キャッシュから取得して誤り検出を行い、訂正可能誤りを検出した場合、当該データの誤り訂正を行い、誤り訂正された訂正後データを訂正後データ記憶手段に格納し、かつ、当該訂正後データを要求元へ転送する、
請求項１に記載のキャッシュ制御装置。
【請求項３】
前記誤り訂正手段は、誤り訂正を行ったデータのキャッシュプロトコルのステータスが、主記憶手段に記憶されているデータから更新されていることを示す場合、訂正後データを主記憶手段に書き込むよう要求する、
請求項１または請求項２に記載のキャッシュ制御装置。
【請求項４】
キャッシュと、訂正後データ記憶手段と、キャッシュ制御装置とを備え、
前記キャッシュ制御装置は、
前記キャッシュから読み出されたデータに訂正可能障害が検出された場合、前記データの誤り訂正を行い、誤り訂正された訂正後データを前記訂正後データ記憶手段に格納する誤り訂正手段と、
データ読出要求に対し、要求されるデータが前記訂正後データ記憶手段に記憶されているか否かを判定し、記憶されていると判定した場合、要求されるデータを前記訂正後データ記憶手段から読み出して要求元へ転送する読出要求対応手段と、
前記キャッシュに対するデータ読出要求またはデータ書込要求を処理中か否かを、要求に示されるメモリアドレスを基に前記キャッシュのエントリを決定するセレクタの状態に基づいて判定し、処理中でないと判定した場合、前記訂正後データ記憶手段が記憶している訂正後データを、前記キャッシュに書き込むデータ更新処理手段と
を備えるキャッシュシステム。
【請求項５】
キャッシュから読み出されたデータに訂正可能障害が検出された場合、前記データの誤り訂正を行い、誤り訂正された訂正後データを訂正後データ記憶手段に格納する工程と、
データ読出要求に対し、要求されるデータが前記訂正後データ記憶手段に記憶されているか否かを判定し、記憶されていると判定した場合、要求されるデータを前記訂正後データ記憶手段から読み出して要求元へ転送する工程と、
前記キャッシュに対するデータ読出要求またはデータ書込要求を処理中か否かを、要求に示されるメモリアドレスを基に前記キャッシュのエントリを決定するセレクタの状態に基づいて判定し、処理中でないと判定した場合、前記訂正後データ記憶手段が記憶している訂正後データを、前記キャッシュに書き込む工程と、
を含むキャッシュ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュ制御装置、キャッシュシステムおよびキャッシュ制御方法に関する。
【背景技術】
【０００２】
メインメモリ（主記憶部）にキャッシュメモリが設けられた構成で、メインメモリまたはキャッシュメモリから読み出されたデータに訂正可能障害が検出された場合、誤り訂正後のデータがキャッシュメモリまたはメインメモリに書き込まれることがある。
【０００３】
例えば、特許文献１に記載のエラー訂正装置は、メインメモリから読み出したデータに訂正可能なエラーが存在した場合、エラー訂正後のデータをキャッシュメモリに送出する。また、このエラー訂正装置は、訂正後のデータが書き込まれたキャッシュメモリのアドレスを、アドレスアレイのアドレス部に書き込む。アドレスアレイは、アドレス部と書込ビット部とが紐付けられて構成されており、アドレス部にアドレスが書き込まれると、そのアドレス部に紐付けられた書込ビット部の状態が反転する。そして、エラー訂正装置は、書込ビット部が反転しているアドレスに対応したブロックに保持されたキャッシュメモリ内のデータをメインメモリに再書き込みする。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開昭６３−２７８１６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載のエラー訂正装置によれば、誤り訂正後（エラー訂正後）のデータがキャッシュメモリおよびメインメモリに書き込まれることで、訂正可能障害から訂正不可能障害へ遷移することを防止できる。
さらに、誤り訂正後のデータをキャッシュメモリに書き込むことによる処理の遅延を軽減できることが好ましい。
【０００６】
本発明は、上述の課題を解決することのできるキャッシュ制御装置、キャッシュシステムおよびキャッシュ制御方法を提供することを目的としている。
【課題を解決するための手段】
【０００７】
本発明の第１の態様によれば、キャッシュ制御装置は、キャッシュから読み出されたデータに訂正可能障害が検出された場合、前記データの誤り訂正を行い、誤り訂正された訂正後データを訂正後データ記憶手段に格納する誤り訂正手段と、データ読出要求に対し、要求されるデータが前記訂正後データ記憶手段に記憶されているか否かを判定し、記憶されていると判定した場合、要求されるデータを前記訂正後データ記憶手段から読み出して要求元へ転送する読出要求対応手段と、前記キャッシュに対するデータ読出要求またはデータ書込要求を処理中か否かを、要求に示されるメモリアドレスを基に前記キャッシュのエントリを決定するセレクタの状態に基づいて判定し、処理中でないと判定した場合、前記訂正後データ記憶手段が記憶している訂正後データを、前記キャッシュに書き込むデータ更新処理手段とを備える。
【０００８】
本発明の第２の態様によれば、キャッシュシステムは、キャッシュと、訂正後データ記憶手段と、キャッシュ制御装置とを備え、前記キャッシュ制御装置は、前記キャッシュから読み出されたデータに訂正可能障害が検出された場合、前記データの誤り訂正を行い、誤り訂正された訂正後データを前記訂正後データ記憶手段に格納する誤り訂正手段と、データ読出要求に対し、要求されるデータが前記訂正後データ記憶手段に記憶されているか否かを判定し、記憶されていると判定した場合、要求されるデータを前記訂正後データ記憶手段から読み出して要求元へ転送する読出要求対応手段と、前記キャッシュに対するデータ読出要求またはデータ書込要求を処理中か否かを、要求に示されるメモリアドレスを基に前記キャッシュのエントリを決定するセレクタの状態に基づいて判定し、処理中でないと判定した場合、前記訂正後データ記憶手段が記憶している訂正後データを、前記キャッシュに書き込むデータ更新処理手段とを備える。
【０００９】
本発明の第３の態様によれば、キャッシュ制御方法は、キャッシュから読み出されたデータに訂正可能障害が検出された場合、前記データの誤り訂正を行い、誤り訂正された訂正後データを訂正後データ記憶手段に格納する工程と、データ読出要求に対し、要求されるデータが前記訂正後データ記憶手段に記憶されているか否かを判定し、記憶されていると判定した場合、要求されるデータを前記訂正後データ記憶手段から読み出して要求元へ転送する工程と、前記キャッシュに対するデータ読出要求またはデータ書込要求を処理中か否かを、要求に示されるメモリアドレスを基に前記キャッシュのエントリを決定するセレクタの状態に基づいて判定し、処理中でないと判定した場合、前記訂正後データ記憶手段が記憶している訂正後データを、前記キャッシュに書き込む工程と、を含む。
【発明の効果】
【００１０】
この発明によれば、誤り訂正後のデータをキャッシュメモリに書き込むことによる処理の遅延を軽減できる。
【図面の簡単な説明】
【００１１】
【図１】実施形態に係る情報処理システムの構成例を示す概略構成図である。
【図２】実施形態に係るキャッシュシステムを複数備えるコンピュータの構成例を示す図である。
【図３】実施形態に係るキャッシュシステムの構成例を示す図である。
【図４】実施形態に係るデータ読出要求に対するキャッシュシステムにおけるデータの流れの第一例を示す図である。
【図５】実施形態に係るデータ読出要求に対するキャッシュシステムにおけるデータの流れの第二例を示す図である。
【図６】実施形態に係るデータ読出要求に対するキャッシュシステムにおけるデータの流れの第三例を示す図である。
【図７】実施形態に係るデータ読出要求に対するキャッシュシステムにおけるデータの流れの第四例を示す図である。
【図８】実施形態に係るビジーチェック回路が、データ格納レジスタが記憶する誤り訂正後のデータをキャッシュに書き込む場合のデータの流れの例を示す図である。
【図９】実施形態に係るキャッシュシステムが中央処理装置からのデータ読出要求を受けた場合に行う処理の手順の例を示すフローチャートである。
【図１０】実施形態に係るキャッシュのミス時の処理の例を示すフローチャートである。
【図１１】実施形態に係る誤り訂正時の処理の例を示すフローチャートである。
【図１２】実施形態に係るビジーチェック回路が、データ格納レジスタが記憶しているデータをキャッシュに格納する処理手順の例を示すフローチャートである。
【図１３】実施形態に係るキャッシュ制御装置の構成の例を示す図である。
【図１４】実施形態に係るキャッシュシステムの構成の例を示す図である。
【図１５】実施形態に係るキャッシュ制御方法における処理の手順の例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図１は、実施形態に係る情報処理システムの構成例を示す概略構成図である。図１に示す構成で、コンピュータ１００は、プロセッサシステム１１０と、主記憶システム１４０とを備える。プロセッサシステム１１０は、中央処理装置群１２０と、キャッシュシステム１３０とを備える。中央処理装置群１２０は、中央処理装置１２１−１から１２１−４を備える。キャッシュシステム１３０は、キャッシュ制御部１３１と、データ格納部１３２と、キャッシュ２０１とを備える。主記憶システム１４０は、主記憶部１４１と、主記憶制御部１４２とを備える。
【００１３】
中央処理装置１２１−１から１２１−４の各々は、主記憶システム１４０が記憶するプログラムを読み出して実行し、各種処理を行う。中央処理装置１２１−１から１２１−４を総称して中央処理装置１２１とも表記する。
プロセッサシステム１１０が備える中央処理装置１２１の個数は図１に示す４つに限らず、１つ以上であればよい。
主記憶システム１４０は、各種データを記憶する。主記憶部１４１は、記憶領域を形成する。主記憶制御部１４２は、主記憶部１４１を制御して、主記憶部１４１に対するデータの読み書きを行う。
主記憶部１４１は、主記憶手段の例に該当する。
なお、メモリにデータを書き込むことをメモリにデータを格納するとも称する。メモリがデータを記憶することを、メモリがデータを格納するとも称する。メモリがデータを記憶していることを、メモリがデータを有するとも称する。
【００１４】
キャッシュシステム１３０は、主記憶システム１４０のキャッシュとして設けられ、主記憶システム１４０のデータを一時的に記憶する。
キャッシュ２０１は、記憶領域を形成する。
キャッシュ制御部１３１は、キャッシュ２０１を制御して、キャッシュ２０１を制御して、キャッシュ２０１に対するデータの読み書きを行う。また、キャッシュ制御部１３１は、キャッシュ２０１から読み出したデータに対して誤り検出を行い、訂正可能障害（訂正可能なメモリ障害、訂正可能なデータ誤り）を検出した場合、誤り訂正を行う。誤り訂正されたデータを訂正後データとも称する。
キャッシュ制御部１３１は、キャッシュ制御装置の例に該当する。
【００１５】
データ格納部１３２は、キャッシュ制御部１３１がキャッシュ２０１から読み出したデータに対して誤り訂正を行った場合に、誤り訂正後のデータを一時的に記憶する。これにより、キャッシュ制御部１３１は、誤り訂正後のデータを中央処理装置１２１によるキャッシュ２０１へのアクセスが生じていないタイミングでキャッシュ２０１に書き込むことができる。この点で、誤り訂正後のデータをキャッシュ２０１へ書き込むことによる、中央処理装置１２１からのリクエストの実行の遅延を回避できる。
データ格納部１３２は、訂正後データ記憶手段の例に該当する。
【００１６】
キャッシュシステム１３０は、ライトバック方式（Write Back Algorithm）でデータ更新を行う。すなわち、キャッシュ制御部１３１は、中央処理装置１２１からのデータ書込要求に対し、書込対象のデータをキャッシュ２０１に格納しておく。そして、キャッシュ制御部１３１は、所定のデータ書込条件が成立したときに、キャッシュ２０１またはデータ格納部１３２から書込対象のデータを読み出し、読み出したデータを主記憶システム１４０に出力して書込を要求する。
【００１７】
コンピュータがキャッシュシステム１３０を複数備えていてもよい。
図２は、キャッシュシステム１３０を複数備えるコンピュータの構成例を示す図である。図２に示す構成で、コンピュータ１０１は、プロセッサシステム１１０と、主記憶システム１４０とを備える。プロセッサシステム１１０は、中央処理装置群１２０とキャッシュシステム１３０とを備える。
特に、図２に示す構成では、コンピュータ１０１が複数のプロセッサシステム１１０を備え、これによってコンピュータ１０１は複数のキャッシュシステム１３０を備える。複数のキャッシュシステム１３０が１つの主記憶システム１４０に接続されている。
【００１８】
以下では、図２の例のように、複数のキャッシュシステム１３０が１つの主記憶システム１４０に接続されている場合にキャッシュコヒーレンシ（Cache Coherency）を保持する方法として、ＭＥＳＩプロトコルを用いる場合を例に説明する。ただし、キャッシュシステム１３０に適用可能なキャッシュコヒーレンシのプロトロコルは、特定のものに限定されない。また、キャッシュコヒーレンシの問題が生じない構成の場合、キャッシュシステム１３０がキャッシュコヒーレンシのプロトコルを実行する必要は無い。
図２の例では、コンピュータ１０１が複数のプロセッサシステム１１０を備え、キャッシュ制御部１３１がＭＥＳＩプロトコルを実行する点以外は、図１の場合と同様である。
【００１９】
図３は、キャッシュシステム１３０の構成例を示す図である。図３に示す構成で、キャッシュシステム１３０は、キャッシュ２０１と、セレクタ２０２と、エラー検出・訂正回路２０３と、キャッシュ判定回路２０４と、読出制御部２０５と、書込制御部２０６と、ステータスレジスタ２０７と、ビジーチェック回路２０８と、データ格納レジスタ２０９とを備える。
【００２０】
セレクタ２０２は、中央処理装置１２１からのリクエストを受け付け、リクエストに示されるメモリアドレスを基に、アクセスするキャッシュ２０１のエントリを決定する。ここでいうリクエストは、データの読出要求または書込要求である。
ここでいうエントリは、ライン（キャッシュ２０１がデータの単位として扱うデータ長のデータ）と、ラインのメモリアドレスを示すエントリアドレスとを含むデータ、あるいは、かかるデータを格納する記憶領域である。キャッシュシステム１３０がＭＥＳＩプロトコルを実行する場合、さらにエントリ毎に、ＭＥＳＩのステータスの格納領域のビット列が設けられる。
【００２１】
複数の中央処理装置１２１からのリクエストが重なった場合、セレクタ２０２は、何れかのリクエストを選択することで、リクエストを順番に処理する。
読出制御部２０５は、主記憶システム１４０に対してデータ読出要求を行う。
書込制御部２０６は、主記憶システム１４０に対してデータ書込要求を行う。
【００２２】
キャッシュ判定回路２０４は、中央処理装置１２１からのデータ読出要求に対し、要求されたデータがキャッシュ２０１にあるか（ヒットしているか）否かを判定する。要求されたデータがキャッシュ２０１にあると判定した場合、キャッシュ判定回路２０４は、そのデータを取得してエラー検出・訂正回路２０３へ出力する。
一方、要求されたデータがキャッシュ２０１に無いと判定した場合、キャッシュ判定回路２０４は、要求されたデータのメモリアドレスを読出制御部２０５に出力して、要求されたデータを主記憶システム１４０から取得するように指示する。
【００２３】
また、キャッシュ２０１のエントリに空きがない場合、キャッシュ判定回路２０４は、中央処理装置１２１からの新たなリクエストに対応するために、エントリの空きを作る。具体的には、キャッシュ判定回路２０４は、所定のエントリ入れ替え方式に従って何れかのエントリを選択する。そして、キャッシュ判定回路２０４は、選択したエントリのデータ（ライン）およびそのデータのメモリアドレスを書込制御部２０６に出力して、主記憶システム１４０へのデータの書き込みを指示する。また、キャッシュ判定回路２０４は、選択したエントリ（データを主記憶システム１４０に格納したエントリ）を空にする。
【００２４】
エラー検出・訂正回路２０３は、キャッシュ判定回路２０４がキャッシュ２０１から取得したデータに対して誤り検出を行う。誤り検出にて訂正可能障害を検出した場合、エラー検出・訂正回路２０３は、そのデータに対して誤り訂正を行う。データに対して誤り訂正を行った場合、エラー検出・訂正回路２０３は、誤り訂正後のデータをデータ格納レジスタ２０９に書き込み、データを書き込んだエントリの情報をステータスレジスタ２０７に書き込む。
エラー検出・訂正回路２０３は、誤り訂正手段の例に該当する。
【００２５】
さらに、エラー検出・訂正回路２０３は、訂正可能障害を検出されたデータを格納していたキャッシュ２０１のエントリのＭＥＳＩのステータスを参照する。ステータスが「Ｍ」（Modified）であった場合、エラー検出・訂正回路２０３は、誤り訂正後のデータの主記憶システム１４０への書き込みを書込制御部２０６に指示する。また、エラー検出・訂正回路２０３は、訂正可能障害を検出されたデータを格納していたキャッシュ２０１のエントリのＭＥＳＩのステータスを「Ｅ」（Exclusive）に変更する。
【００２６】
ＭＥＳＩのステータスの「Ｍ」は、該当アドレスのデータ（キャッシュライン）が、主記憶システム１４０の記憶するデータから更新されていることを示す。したがって、複数のキャッシュシステム１３０のうちステータスが「Ｍ」になっているキャッシュシステム１３０以外のキャッシュシステム１３０は、更新後のデータを記憶していない。かつ、主記憶システム１４０にも更新後のデータはない。この状態のままでは、他のキャッシュシステム１３０に接続された中央処理装置１２１から該当アドレスのデータの読出要求があった場合、要求元の中央処理装置１２１は、正しいデータを取得できない。
【００２７】
そこで、誤り訂正を行ったキャッシュシステム１３０が、誤り訂正後のデータ（誤り訂正済みの更新後のデータ）を主記憶システム１４０に書き込む。これにより、他のキャッシュシステム１３０からも主記憶システム１４０にアクセスして更新後のデータを取得できる。ＭＥＳＩのステータスの「Ｅ」は、複数のキャッシュシステム１３０のうちそのキャッシュシステム１３０のみが更新後のデータ（キャッシュライン）を記憶するが、更新後のデータを主記憶システム１４０に書き込み済みであることを示す。
【００２８】
なお、この時点では、データ格納レジスタ２０９が記憶する誤り訂正後のデータは、キャッシュ２０１には書き込まれていない。ビジーチェック回路２０８が、データ格納レジスタ２０９に格納されている誤り訂正後のデータをキャッシュ２０１に書き込むまで、中央処理装置１２１からの該当アドレスのデータの読出要求に対し、ステータスレジスタ２０７が、キャッシュ２０１に格納されている誤り訂正前のデータではなく、データ格納レジスタ２０９に格納されている誤り訂正後のデータを要求元の中央処理装置１２１へ返信する。
【００２９】
データ格納レジスタ２０９は、訂正可能障害データを訂正した後のデータを格納するレジスタである。データ格納レジスタ２０９は、エントリ毎に、当該エントリが有効であるかを示す有効ビットを保有する。
データ格納レジスタ２０９は、データ格納部１３２（図１）の例に該当する。また、データ格納レジスタ２０９は、訂正後データ記憶手段の例に該当する。
【００３０】
ステータスレジスタ２０７は、中央処理装置１２１からのデータ読出要求に対し、要求されるデータがデータ格納レジスタ２０９に格納されているか否かを判定する。かかる判定のために、ステータスレジスタ２０７は、データ格納レジスタ２０９のエントリの情報を保持しておく。具体的には上記のように、エラー検出・訂正回路２０３が、誤り訂正後のデータをデータ格納レジスタ２０９に書き込む際に、データを書き込んだエントリの情報をステータスレジスタ２０７に書き込む。ステータスレジスタ２０７がキャッシュ２０１の一部として構成されていてもよい。
ステータスレジスタ２０７は、読出要求対応手段の例に該当する。
【００３１】
要求されるデータがデータ格納レジスタ２０９に格納されていると判定した場合、ステータスレジスタ２０７は、当該データ読出要求の処理に関してキャッシュ２０１内のデータの使用を禁止し、要求されるデータをデータ格納レジスタ２０９から読み出して、要求元の中央処理装置１２１へ転送する。
【００３２】
また、ステータスレジスタ２０７は、中央処理装置１２１からのデータ書込要求に対し、データ格納レジスタ２０９のエントリの情報を参照して、書込要求されたメモリアドレスのデータがデータ格納レジスタ２０９に格納されているか否かを判定する。該当アドレスのデータがデータ格納レジスタ２０９に格納されていると判定した場合、ステータスレジスタ２０７は、ステータスレジスタ２０７自らが記憶しているデータ格納レジスタ２０９の該当エントリの情報をクリアする（削除する）とともに、データ格納レジスタ２０９の該当エントリの有効ビットをクリアする（有効ビットの値を０にする）。
【００３３】
ビジーチェック回路２０８は、キャッシュシステム１３０が中央処理装置１２１からのリクエストを処理中か否かを判定する。例えば、ビジーチェック回路２０８は、セレクタ２０２を監視し、セレクタ２０２が中央処理装置１２１からのリクエストを処理中か否かを判定する。セレクタ２０２が中央処理装置１２１からのリクエストを処理していないと判定した場合、ビジーチェック回路２０８は、データ格納レジスタ２０９にデータが存在するか（有効ビットの値が１（有効）になっているエントリがあるか）を判定する。データ格納レジスタ２０９にデータが存在すると判定した場合、ビジーチェック回路２０８は、そのデータをキャッシュ２０１に書き込む。そして、ビジーチェック回路２０８は、ステータスレジスタ２０７が保持するデータ格納レジスタ２０９の該当エントリの情報をクリアするとともに、データ格納レジスタ２０９の該当エントリの有効ビットをクリアする。
【００３４】
ビジーチェック回路２０８は、データ更新処理手段の例に該当する。また、キャッシュシステム１３０が中央処理装置１２１からのリクエストを処理中か否かを判定することは、キャッシュ制御装置（キャッシュ制御部１３１）が、中央処理装置１２１からのリクエストを処理中か否かを判定することの例に該当する。
【００３５】
セレクタ２０２と、エラー検出・訂正回路２０３と、キャッシュ判定回路２０４と、読出制御部２０５と、書込制御部２０６と、ステータスレジスタ２０７と、ビジーチェック回路２０８との組み合わせは、キャッシュ制御部１３１（図１）の例に該当する。また、セレクタ２０２と、エラー検出・訂正回路２０３と、キャッシュ判定回路２０４と、読出制御部２０５と、書込制御部２０６と、ステータスレジスタ２０７と、ビジーチェック回路２０８との組み合わせは、キャッシュ制御装置の例に該当する。
【００３６】
図４は、データ読出要求に対するキャッシュシステム１３０におけるデータの流れの第一例を示す図である。図４の例では、中央処理装置１２１からのデータ読出要求に対し、データ格納レジスタ２０９が誤り訂正後の該当データ（ここでは、要求されているデータ）を記憶している。
図４の例で、中央処理装置１２１からのデータ読出要求を受けたセレクタ２０２は、データ読出要求からエントリの情報（例えば、エントリアドレス）を取得し、キャッシュ２０１にエントリの情報を示して該当データを出力するよう要求する。ここでは、セレクタ２０２が取得するエントリの情報は、キャッシュ２０１のエントリとデータ格納レジスタ２０９のエントリとに共通に用いられるものとする。
【００３７】
これに対し、ステータスレジスタ２０７が、ステータスレジスタ２０７自らが記憶するデータ格納レジスタ２０９のエントリの情報を参照して、データ格納レジスタ２０９が誤り訂正後の該当データを記憶していると判定する。ステータスレジスタ２０７は、キャッシュ２０１内のデータの使用を一時的に禁止し、データ格納レジスタ２０９を制御して誤り訂正後の該当データを要求元の中央処理装置１２１へ転送させる。
【００３８】
図５は、データ読出要求に対するキャッシュシステム１３０におけるデータの流れの第二例を示す図である。図５の例では、中央処理装置１２１からのデータ読出要求に対し、キャッシュ２０１が該当データを記憶しており、かつ、キャッシュ２０１が記憶する該当データに誤りが生じていない。
図５の例で、中央処理装置１２１からのデータ読出要求を受けたセレクタ２０２は、データ読出要求からエントリの情報を取得し、キャッシュ２０１にエントリの情報を示して該当データを出力するよう要求する。また、ステータスレジスタ２０７は、データ格納レジスタ２０９が誤り訂正後の該当データを記憶していないと判定する。
【００３９】
また、キャッシュ判定回路２０４は、キャッシュ２０１が該当データを記憶していると判定し、エラー検出・訂正回路２０３に該当データの誤り検出を行わせる。
エラー検出・訂正回路２０３は、キャッシュ判定回路２０４の制御に従って、キャッシュ２０１が記憶する該当データを取得し、誤り検出を行う。図５の例では、エラー検出・訂正回路２０３は、誤り無しと判定し、該当データを要求元の中央処理装置１２１へ転送する。
【００４０】
図６は、データ読出要求に対するキャッシュシステム１３０におけるデータの流れの第三例を示す図である。図６の例では、中央処理装置１２１からのデータ読出要求に対し、キャッシュ２０１が該当データを記憶しており、キャッシュ２０１が記憶する該当データに誤りが生じている。また、該当データを記憶するキャッシュ２０１のエントリのＭＥＳＩのステータスは「Ｅ」または「Ｓ」になっている。かつ、データ格納レジスタ２０９は、誤り訂正後の該当データを記憶してない。
【００４１】
図６の例で、中央処理装置１２１からのデータ読出要求を受けたセレクタ２０２は、データ読出要求からエントリの情報を取得し、キャッシュ２０１にエントリの情報を示して該当データを出力するよう要求する。また、ステータスレジスタ２０７は、データ格納レジスタ２０９が誤り訂正後の該当データを記憶していないと判定する。
また、キャッシュ判定回路２０４は、キャッシュ２０１が該当データを記憶していると判定し、エラー検出・訂正回路２０３に該当データの誤り検出を行わせる。
【００４２】
エラー検出・訂正回路２０３は、キャッシュ判定回路２０４の制御に従って、キャッシュ２０１が記憶する該当データを取得し、誤り検出を行う。図６の例では、エラー検出・訂正回路２０３は、訂正可能障害を検出し、該当データの誤り訂正を行う。そして、エラー検出・訂正回路２０３は、誤り訂正後のデータを要求元の中央処理装置１２１へ転送する。
また、エラー検出・訂正回路２０３は、誤り訂正後のデータをデータ格納レジスタ２０９のエントリに書き込み、そのエントリの有効ビットをセットする（有効ビットの値を１にする）。さらに、エラー検出・訂正回路２０３は、誤り訂正後のデータを書き込んだデータ格納レジスタ２０９のエントリの情報をステータスレジスタ２０７に書き込む。
【００４３】
また、エラー検出・訂正回路２０３は、キャッシュ２０１の誤り訂正前のデータを格納していたエントリのＭＥＳＩのステータスを参照する。図６の例では、エラー検出・訂正回路２０３は、ステータスが「Ｅ」または「Ｓ」であることを検出する。この場合、エラー検出・訂正回路２０３は、誤り訂正後のデータの主記憶システム１４０への書き込みは行わない。
【００４４】
図７は、データ読出要求に対するキャッシュシステム１３０におけるデータの流れの第四例を示す図である。図７の例では、中央処理装置１２１からのデータ読出要求に対し、キャッシュ２０１が該当データを記憶しており、キャッシュ２０１が記憶する該当データに誤りが生じている。また、該当データを記憶するキャッシュ２０１のエントリのＭＥＳＩのステータスは「Ｍ」になっている。かつ、データ格納レジスタ２０９は、誤り訂正後の該当データを記憶してない。
【００４５】
図７の例で、中央処理装置１２１からのデータ読出要求を受けたセレクタ２０２は、データ読出要求からエントリの情報を取得し、キャッシュ２０１にエントリの情報を示して該当データを出力するよう要求する。また、ステータスレジスタ２０７は、データ格納レジスタ２０９が誤り訂正後の該当データを記憶していないと判定する。
また、キャッシュ判定回路２０４は、キャッシュ２０１が該当データを記憶していると判定し、エラー検出・訂正回路２０３に該当データの誤り検出を行わせる。
【００４６】
エラー検出・訂正回路２０３は、キャッシュ判定回路２０４の制御に従って、キャッシュ２０１が記憶する該当データを取得し、誤り検出を行う。図７の例では、エラー検出・訂正回路２０３は、訂正可能障害を検出し、該当データの誤り訂正を行う。そして、エラー検出・訂正回路２０３は、誤り訂正後のデータを要求元の中央処理装置１２１へ転送する。
また、エラー検出・訂正回路２０３は、誤り訂正後のデータをデータ格納レジスタ２０９のエントリに書き込み、そのエントリの有効ビットをセットする（有効ビットの値を１にする）。さらに、エラー検出・訂正回路２０３は、誤り訂正後のデータを書き込んだデータ格納レジスタ２０９のエントリの情報をステータスレジスタ２０７に書き込む。
【００４７】
また、エラー検出・訂正回路２０３は、キャッシュ２０１の誤り訂正前のデータを格納していたエントリのＭＥＳＩのステータスを参照する。図７の例では、エラー検出・訂正回路２０３は、ステータスが「Ｍ」であることを検出する。この場合、エラー検出・訂正回路２０３は、誤り訂正後のデータ、およびそのデータのアドレスを書込制御部２０６に通知して、誤り訂正後のデータを主記憶システム１４０へ書き込むよう指示する。
書込制御部２０６は、エラー検出・訂正回路２０３からの指示に従って、主記憶システム１４０に対して誤り訂正後のデータの主記憶部１４１への書き込みを要求する。
【００４８】
図８は、ビジーチェック回路２０８が、データ格納レジスタ２０９が記憶する誤り訂正後のデータをキャッシュ２０１に書き込む場合のデータの流れの例を示す図である。
図８の例で、ビジーチェック回路２０８は、キャッシュシステム１３０が中央処理装置１２１からのリクエストを処理中か否かを判定する。例えば上記のように、ビジーチェック回路２０８は、セレクタ２０２を監視し、セレクタ２０２が中央処理装置１２１からのリクエストを処理中か否かを判定する。
【００４９】
図８の例では、ビジーチェック回路２０８は、キャッシュシステム１３０が中央処理装置１２１からのリクエストを処理していないと判定する。そして、ビジーチェック回路２０８は、誤り訂正後のデータを格納しているデータ格納レジスタ２０９のエントリ（有効ビットの値が１になっているエントリ）から誤り訂正後のデータを読み出し、そのエントリの有効ビットをクリアする。また、ビジーチェック回路２０８は、有効ビットをクリアしたエントリについて、ステータスレジスタ２０７が記憶しているデータ格納レジスタ２０９のエントリの情報をクリアする。そして、ビジーチェック回路２０８は、データ格納レジスタ２０９から読み出した誤り訂正後のデータをキャッシュ２０１に格納する。
【００５０】
図９は、キャッシュシステム１３０が中央処理装置１２１からのデータ読出要求を受けた場合に行う処理の手順の例を示すフローチャートである。
図９の処理で、セレクタ２０２は、中央処理装置１２１から受けたデータ読出要求からエントリの情報を取得し、キャッシュ２０１にエントリの情報を出力して該当データを出力するよう要求する（ステップＳ１０１）。
【００５１】
次に、ステータスレジスタ２０７が、エントリの情報を用いて、データ格納レジスタ２０９に該当データ（要求されているデータの誤り訂正後のデータ）があるか否かを判定する（ステップＳ１０２）。
データ格納レジスタ２０９に該当データがあると判定した場合（ステップＳ１０２：ＹＥＳ）、ステータスレジスタ２０７は、キャッシュ２０１のデータの使用を一時的に禁止し、データ格納レジスタ２０９を制御して該当データを中央処理装置１２１に転送させる（ステップＳ１１１）。
ステップＳ１１１の後、キャッシュシステム１３０は図９の処理を終了する。
【００５２】
一方、ステップＳ１０２で、データ格納レジスタ２０９に該当データが無いとステータスレジスタ２０７が判定した場合（ステップＳ１０２：ＮＯ）、キャッシュ判定回路２０４は、キャッシュ２０１が該当データを記憶しているか否かを判定する（ステップＳ１２１）。例えば、キャッシュ２０１が、該当データを記憶している場合は、ステップＳ１０１でのセレクタ２０２の要求に応じて該当データを出力するようにし、キャッシュ判定回路２０４が、キャッシュ２０１が該当データを出力しているか否かを判定するようにしてもよい。
なお、キャッシュ２０１がデータを記憶している場合でも、そのデータが格納されているエントリのＭＥＳＩのステータスが「Ｉ」（Invalid）の場合は、キャッシュ２０１がそのデータを記憶していない場合と同様に扱う。ＭＥＳＩのステータスの「Ｉ」は、そのデータ（キャッシュライン）が無効であることを示す。
【００５３】
キャッシュ２０１が該当データを記憶していないとキャッシュ判定回路２０４が判定した場合（ステップＳ１２１：ＮＯ）、キャッシュシステム１３０は、ミス時の処理として予め定められている処理を行う（ステップＳ１３１）。
ステップＳ１３１の後、キャッシュシステム１３０は、図９の処理を終了する。
【００５４】
一方、ステップＳ１２１で、キャッシュ２０１が該当データを記憶しているとキャッシュ判定回路２０４が判定した場合（ステップＳ１２１：ＹＥＳ）、エラー検出・訂正回路２０３は、キャッシュ２０１から取得した該当データに誤りがあるか否かを判定する（ステップＳ１４１）。
誤りがないと判定した場合（ステップＳ１４１：ＮＯ）、エラー検出・訂正回路２０３は、該当データを要求元の中央処理装置１２１へ転送する（ステップＳ１５１）。
ステップＳ１５１の後、キャッシュシステム１３０は、図９の処理を終了する。
【００５５】
一方、ステップＳ１４１で、該当データに誤りがあると判定した場合、キャッシュシステム１３０は、該当データを誤り訂正可能か否かを判定する（ステップＳ１６１）。
誤り訂正不可と判定した場合（ステップＳ１６１：ＮＯ）、エラー検出・訂正回路２０３は、要求元の中央処理装置１２１にエラーを通知する（ステップＳ１７１）。
ステップＳ１７１の後、キャッシュシステム１３０は、図９の処理を終了する。
【００５６】
一方、ステップＳ１６１で、該当データを誤り訂正可能と判定した場合（ステップＳ１６１：ＹＥＳ）、キャッシュシステム１３０は、誤り訂正時の処理として予め定められている処理を行う（ステップＳ１８１）。
ステップＳ１８１の後、キャッシュシステム１３０は、図９の処理を終了する。
【００５７】
図１０は、キャッシュ２０１のミス時の処理の例を示すフローチャートである。キャッシュシステム１３０は、図９のステップＳ１３１で図１０の処理を行う。
図１０の処理で、キャッシュ判定回路２０４が、該当データを主記憶システム１４０から取得するように読出制御部２０５に指示し、読出制御部２０５は、キャッシュ判定回路２０４からの指示に従って、主記憶部１４１が記憶している該当データを取得する（ステップＳ２０１）。
そして、読出制御部２０５は、得られた該当データを要求元の中央処理装置１２１に転送し、また、得られた該当データをキャッシュ２０１に書き込む（ステップＳ２０２）。
ステップＳ２０２の後、キャッシュシステム１３０は図１０の処理を終了する。
【００５８】
図１１は、誤り訂正時の処理の例を示すフローチャートである。キャッシュシステム１３０は、図９のステップＳ１８１で図１１の処理を行う。
図１１の処理で、エラー検出・訂正回路２０３は、該当データの誤り訂正を行う（ステップＳ３０１）。
そして、エラー検出・訂正回路２０３は、誤り訂正後のデータを要求元の中央処理装置１２１へ転送する（ステップＳ３０２）。
【００５９】
また、エラー検出・訂正回路２０３は、誤り訂正後のデータをデータ格納レジスタ２０９に格納し、データを格納したエントリの有効ビットをセットする（ステップＳ３０３）。そして、エラー検出・訂正回路２０３は、データを格納したデータ格納レジスタ２０９のエントリの情報を、ステータスレジスタ２０７に登録する（ステップＳ３０４）。
【００６０】
また、エラー検出・訂正回路２０３は、誤り訂正前の該当データを格納しているキャッシュ２０１のエントリにおけるＭＥＳＩのステータスを確認する（ステップＳ３０５）。ステータスに応じて処理が分岐する（ステップＳ３０６）。
ステータスが「Ｅ」または「Ｓ」の場合（ステップＳ３０６：Ｅ，Ｓ）、キャッシュシステム１３０は、図１１の処理を終了する。
【００６１】
一方、ステップＳ３０６でステータスが「Ｍ」の場合（ステップＳ３０６：Ｍ）、エラー検出・訂正回路２０３は、書込制御部２０６を介して主記憶部１４１に訂正後の該当データを書き込む（ステップＳ３１１）。
そして、エラー検出・訂正回路２０３は、誤り訂正前の該当データを格納しているキャッシュ２０１のエントリにおけるＭＥＳＩのステータスを「Ｅ」に更新する（ステップＳ３１２）。
ステップＳ３１２の後、キャッシュシステム１３０は、図１１の処理を終了する。
【００６２】
なお、上記のように、ステップＳ３１２の時点では、データ格納レジスタ２０９が記憶する誤り訂正後のデータは、キャッシュ２０１には書き込まれていない。ビジーチェック回路２０８が、データ格納レジスタ２０９に格納されている誤り訂正後のデータをキャッシュ２０１に書き込むまで、中央処理装置１２１からの該当アドレスのデータの読出要求に対し、ステータスレジスタ２０７が、キャッシュ２０１に格納されている誤り訂正前のデータではなく、データ格納レジスタ２０９に格納されている誤り訂正後のデータを要求元の中央処理装置１２１へ返信する。
【００６３】
図１２は、ビジーチェック回路２０８が、データ格納レジスタ２０９が記憶しているデータをキャッシュ２０１に格納する処理手順の例を示すフローチャートである。
図１２の処理で、ビジーチェック回路２０８は、キャッシュシステム１３０の処理状況を確認し（ステップＳ４０１）、キャッシュシステム１３０が中央処理装置１２１からのリクエストを処理中か否かを判定する（ステップＳ４０２）。
リクエストを処理中であるとビジーチェック回路２０８が判定した場合（ステップＳ４０２：ＹＥＳ）、処理がステップＳ４０１に戻る。
【００６４】
一方、リクエストを処理中でないと判定した場合（ステップＳ４０２：ＮＯ）、ビジーチェック回路２０８は、データ格納レジスタ２０９のデータ格納状況を確認し（ステップＳ４１１）、データ格納レジスタ２０９にデータがあるか否かを判定する（ステップＳ４１２）。具体的には、ビジーチェック回路２０８は、データ格納レジスタ２０９のエントリのうち、有効ビットがセットされているエントリ（有効ビットの値が１になっているエントリ）があるか判定する。
【００６５】
データ格納レジスタ２０９にデータが無いとビジーチェック回路２０８が判定した場合（ステップＳ４１２：ＮＯ）、処理がステップＳ４０１へ戻る。
一方、データ格納レジスタ２０９にデータがあると判定した場合（ステップＳ４１２：ＹＥＳ）、ビジーチェック回路２０８は、データ格納レジスタ２０９からデータを読み出してキャッシュ２０１に書き込む（ステップＳ４２１）。
【００６６】
また、ビジーチェック回路２０８は、データを読み出したデータ格納レジスタ２０９のエントリからデータを削除し、さらに、そのエントリについてステータスレジスタ２０７が記憶しているデータ格納レジスタ２０９のエントリの情報を削除する（ステップ４２２）。データ格納レジスタ２０９のエントリからのデータの削除は、そのエントリの有効ビットをクリアすることで行われる。
ステップＳ４２２の後、処理がステップＳ４０１へ戻る。
【００６７】
以上のように、エラー検出・訂正回路２０３は、キャッシュ２０１から読み出されたデータに訂正可能障害が検出された場合、前記データの誤り訂正を行い、誤り訂正された訂正後データをデータ格納レジスタ２０９に格納する。ステータスレジスタ２０７は、データ読出要求に対し、要求されるデータがデータ格納レジスタ２０９に記憶されているか否かを判定し、記憶されていると判定した場合、要求されるデータをデータ格納レジスタ２０９から読み出して要求元へ転送する。
【００６８】
キャッシュ制御装置（キャッシュ制御部１３１）によれば、エラー検出・訂正回路２０３がキャッシュ２０１から読み出されたデータの誤り訂正を行うことで、訂正可能障害から訂正不可能障害へ遷移することを防止できる。かつ、データ格納レジスタ２０９が訂正後データを記憶しておくことで、キャッシュシステム１３０が中央処理装置１２１からのリクエストを処理していないタイミングで、データ格納レジスタ２０９の訂正後データをキャッシュ２０１に書き込むことができる。キャッシュ制御装置（キャッシュ制御部１３１）によれば、この点で、誤り訂正後のデータをキャッシュ２０１に書き込むことによる処理の遅延を軽減できる。
【００６９】
また、ステータスレジスタ２０７が、要求されるデータがデータ格納レジスタ２０９に記憶されていないと判定した場合、エラー検出・訂正回路２０３は、要求されるデータをキャッシュ２０１から取得して誤り検出を行う。訂正可能誤りを検出した場合、エラー検出・訂正回路２０３は、当該データの誤り訂正を行い、誤り訂正された訂正後データをデータ格納レジスタ２０９に格納し、かつ、当該訂正後データを要求元へ転送する。
【００７０】
これにより、キャッシュ制御装置（キャッシュ制御部１３１）では、誤りを含まないデータを要求元の中央処理装置１２１に転送できる。かつ、エラー検出・訂正回路２０３が、キャッシュ２０１のデータに対して誤り訂正を行ってデータ格納レジスタ２０９に格納する処理を別途行う必要がない点で、エラー検出・訂正回路２０３の処理負荷が比較的軽くて済む。
【００７１】
また、ビジーチェック回路２０８は、キャッシュ制御部１３１がデータ読出要求またはデータ書込要求を処理中か否かを判定し、処理中でないと判定した場合、データ格納レジスタ２０９が記憶している訂正後データを、キャッシュ２０１に書き込む。
これにより、キャッシュ制御装置（キャッシュ制御部１３１）では、キャッシュ制御部１３１がデータ読出要求またはデータ書込要求を処理しているときに、データ格納レジスタ２０９が記憶している訂正後データを、キャッシュ２０１に書き込むことを回避できる。キャッシュ制御装置（キャッシュ制御部１３１）によれば、この点で、誤り訂正後のデータをキャッシュ２０１に書き込むことによる処理の遅延を軽減できる。
【００７２】
また、エラー検出・訂正回路２０３は、誤り訂正を行ったデータのキャッシュプロトコルのステータスが、ＭＥＳＩのステータスの「Ｍ」である場合、訂正後データを主記憶部１４１に書き込むよう要求する。ＭＥＳＩのステータスの「Ｍ」は、キャッシュシステム１３０に記憶されているデータが、主記憶部１４１に記憶されているデータから更新されていることを示すステータスの例に該当する。
【００７３】
これにより、キャッシュ制御装置（キャッシュ制御部１３１）では、キャッシュコヒーレンシを保持することができる。かつ、訂正後データを主記憶部１４１に書き込むタイミングでは、訂正後データをキャッシュ２０１に書き込まなくてもよい点で、誤り訂正後のデータをキャッシュ２０１に書き込むことによる処理の遅延を軽減できる。
【００７４】
ここで、あるキャッシュエントリで訂正可能障害が検出された場合の対応方法として、即時に障害を訂正したデータを当該キャッシュエントリに書き込む方法が考えられる。しかしながら、この方法では、システムは、訂正可能障害を検出するたびに、通常リクエスト（データ書込要求またはデータ読出要求）の処理中であっても割り込みを行い、訂正済みのデータの書き戻すことになり、この点で、システムの性能低下につながる。
【００７５】
あるいは、あるキャッシュエントリで訂正可能障害が検出された場合の対応方法として、システムが、当該キャッシュエントリの有効ビットをクリアすることで、障害を検出したアドレスへの次回アクセス時に、主記憶に直接アクセスすることが考えられる。しかしながら、主記憶へのアクセスでは、キャッシュへのアクセスよりも時間を要し、この点で、システムの性能低下につながる。
【００７６】
これに対し、キャッシュ制御装置（キャッシュ制御部１３１）では、訂正済みのデータを直ちにキャッシュ２０１に書き戻す必要はなく、また、障害を検出したアドレスへの次回アクセス時に、主記憶部１４１に直接アクセスする必要もない。キャッシュ制御装置（キャッシュ制御部１３１）によれば、この点で、システム（コンピュータ１００）の性能低下を回避できる。
キャッシュ制御装置（キャッシュ制御部１３１）を、性能が優先されるシステム、例えば、多少複雑な処理を行う場合、または、処理量が増加する場合でも、性能の低下を軽減したいシステムに適用してもよい。
【００７７】
図１３は、実施形態に係るキャッシュ制御装置の構成の例を示す図である。図１３に示すキャッシュ制御装置５１０は、誤り訂正部５１１と、読出要求対応部５１２とを備える。
かかる構成で、誤り訂正部５１１は、キャッシュから読み出されたデータに訂正可能障害が検出された場合、そのデータの誤り訂正を行い、誤り訂正された訂正後データを訂正後データ記憶部に格納する。読出要求対応部５１２は、データ読出要求に対し、要求されるデータが訂正後データ記憶部に記憶されているか否かを判定し、記憶されていると判定した場合、要求されるデータを訂正後データ記憶手段から読み出して要求元へ転送する。
誤り訂正部５１１は、誤り訂正手段の例に該当する。読出要求対応部５１２は、読出要求対応手段の例に該当する。訂正後データ記憶部は、訂正後データ記憶手段の例に該当する。
【００７８】
キャッシュ制御装置５１０によれば、誤り訂正部５１１がキャッシュから読み出されたデータの誤り訂正を行うことで、訂正可能障害から訂正不可能障害へ遷移することを防止できる。かつ、訂正後データ記憶部に訂正後データを記憶させておくことで、キャッシュ制御装置５１０がリクエストを処理していないタイミングで、訂正後データ記憶部の訂正後データをキャッシュに書き込むことができる。キャッシュ制御装置５１０によれば、この点で、誤り訂正後のデータをキャッシュに書き込むことによる処理の遅延を軽減できる。
【００７９】
図１４は、実施形態に係るキャッシュシステムの構成の例を示す図である。図１４に示すキャッシュシステム５２０は、キャッシュ５２１と、訂正後データ記憶部５２２と、キャッシュ制御装置５２３とを備える。キャッシュ制御装置５２３は、誤り訂正部５２４と、読出要求対応部５２５とを備える。
【００８０】
かかる構成で、誤り訂正部５２４は、キャッシュ５２１から読み出されたデータに訂正可能障害が検出された場合、データの誤り訂正を行い、誤り訂正された訂正後データを訂正後データ記憶部５２２に格納する。読出要求対応部５２５は、データ読出要求に対し、要求されるデータが訂正後データ記憶部５２２に記憶されているか否かを判定し、記憶されていると判定した場合、要求されるデータを訂正後データ記憶部５２２から読み出して要求元へ転送する。
訂正後データ記憶部５２２は、訂正後データ記憶手段の例に該当する。誤り訂正部５２４は、誤り訂正手段の例に該当する。読出要求対応部５２５は、読出要求対応手段の例に該当する。
【００８１】
キャッシュシステム５２０によれば、誤り訂正部５２４がキャッシュ５２１から読み出されたデータの誤り訂正を行うことで、訂正可能障害から訂正不可能障害へ遷移することを防止できる。かつ、訂正後データ記憶部５２２に訂正後データを記憶させておくことで、キャッシュ制御装置５２３がリクエストを処理していないタイミングで、訂正後データ記憶部５２２の訂正後データをキャッシュ５２１に書き込むことができる。キャッシュ制御装置５２３によれば、この点で、誤り訂正後のデータをキャッシュに書き込むことによる処理の遅延を軽減できる。
【００８２】
図１５は、実施形態に係るキャッシュ制御方法における処理の手順の例を示す図である。
図１５に示す処理は、誤り訂正工程（ステップＳ１１）と、読出要求対応工程（ステップＳ１２）とを含む。
誤り訂正工程（ステップＳ１１）では、キャッシュから読み出されたデータに訂正可能障害が検出された場合、データの誤り訂正を行い、誤り訂正された訂正後データを訂正後データ記憶部に格納する。読出要求対応工程（ステップＳ１２）では、データ読出要求に対し、要求されるデータが訂正後データ記憶部に記憶されているか否かを判定し、記憶されていると判定した場合、要求されるデータを前記訂正後データ記憶手段から読み出して要求元へ転送する。
【００８３】
図１５のキャッシュ制御方法によれば、キャッシュから読み出されたデータの誤り訂正を行うことで、訂正可能障害から訂正不可能障害へ遷移することを防止できる。かつ、訂正後データ記憶部に訂正後データを記憶させておくことで、リクエストを処理していないタイミングで、訂正後データ記憶部の訂正後データをキャッシュに書き込むことができる。図１５のキャッシュ制御方法によれば、この点で、誤り訂正後のデータをキャッシュに書き込むことによる処理の遅延を軽減できる。
【００８４】
なお、セレクタ２０２、エラー検出・訂正回路２０３、キャッシュ判定回路２０４、読出制御部２０５、書込制御部２０６、ステータスレジスタ２０７、ビジーチェック回路２０８、データ格納レジスタ２０９、誤り訂正部５１１、読出要求対応部５１２、誤り訂正部５２４、および、読出要求対応部５２５の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。ここでいう「コンピュータシステム」とは、ＯＳ（オペレーティングシステム）や周辺機器等のハードウェアを含む。
「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ（Read Only Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【００８５】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【符号の説明】
【００８６】
１００、１０１  コンピュータ
１１０  プロセッサシステム
１２０  中央処理装置群
１２１  中央処理装置
１３０、５２０  キャッシュシステム
１３１  キャッシュ制御部
１３２  データ格納部
１４０  主記憶システム
１４１  主記憶部
１４２  主記憶制御部
２０１、５２１  キャッシュ
２０２  セレクタ
２０３  エラー検出・訂正回路
２０４  キャッシュ判定回路
２０５  読出制御部
２０６  書込制御部
２０７  ステータスレジスタ
２０８  ビジーチェック回路
２０９  データ格納レジスタ
５１０、５２３  キャッシュ制御装置
５１１、５２４  誤り訂正部
５１２、５２５  読出要求対応部
５２２  訂正後データ記憶部
【要約】
【課題】誤り訂正後のデータをキャッシュメモリに書き込むことによる処理の遅延を軽減できるようにする。
【解決手段】キャッシュ制御装置が、キャッシュから読み出されたデータに訂正可能障害が検出された場合、前記データの誤り訂正を行い、誤り訂正された訂正後データを訂正後データ記憶手段に格納する誤り訂正手段と、データ読出要求に対し、要求されるデータが前記訂正後データ記憶手段に記憶されているか否かを判定し、記憶されていると判定した場合、要求されるデータを前記訂正後データ記憶手段から読み出して要求元へ転送する読出要求対応手段と、を備える。
【選択図】図３【図１】
0006927610.tif 000002
【図２】
0006927610.tif 000003
【図３】
0006927610.tif 000004
【図４】
0006927610.tif 000005
【図５】
0006927610.tif 000006
【図６】
0006927610.tif 000007
【図７】
0006927610.tif 000008
【図８】
0006927610.tif 000009
【図９】
0006927610.tif 000010
【図１０】
0006927610.tif 000011
【図１１】
0006927610.tif 000012
【図１２】
0006927610.tif 000013
【図１３】
0006927610.tif 000014
【図１４】
0006927610.tif 000015
【図１５】
0006927610.tif 000016