(57)【要約】【課題】ワードライン故障を適切に救済可能な演算処理装置を提供する。【解決手段】演算処理装置は、キャッシュラインに発生したエラーを検出するエラー検出部と、第１のエラーが発生したキャッシュラインのエラーウェイ識別情報、エラーワードアドレス、及びエラーカラムアドレスを保持するレジスタと、アクセス対象のキャッシュラインのウェイ識別情報をエラーウェイ識別情報と比較するウェイ比較部と、アクセス対象のキャッシュラインのワードアドレスをエラーワードアドレスと比較するワード比較部と、アクセス対象のキャッシュラインのカラムアドレスをエラーカラムアドレスと比較するカラム比較部と、第１のエラー発生後にエラー検出部が第２のエラーを検出した場合、ウェイ比較部、ワード比較部及びカラム比較部のそれぞれの比較結果に応じて、故障が発生したワードラインを共有するキャッシュラインを全て無効化する制御部とを有する。【選択図】図１
2013196393.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する主記憶装置に接続された演算処理装置において、
メモリアクセス要求を出力する命令処理部と、
前記記憶装置に記憶されたデータの一部を、複数のウェイ毎に設けられた複数のキャッシュラインに保持するキャッシュメモリ本体部と、
前記複数のキャッシュラインのいずれかに発生したエラーを検出するエラー検出部と、
前記エラー検出部が、前記複数のキャッシュラインのいずれかに発生した第１のエラーを検出した場合、前記第１のエラーが発生したキャッシュラインのウェイを特定するエラーウェイ識別情報を保持するエラーウェイレジスタと、
前記第１のエラーが発生したキャッシュラインのワードアドレスを保持するエラーワードアドレスレジスタと、
前記第１のエラーが発生したキャッシュラインのカラムアドレスを保持するエラーカラムアドレスレジスタと、
アクセス対象のキャッシュラインのウェイ識別情報を、前記エラーウェイ識別情報と比較するウェイ比較部と、
前記アクセス対象のキャッシュラインのワードアドレスを、前記エラーワードアドレスと比較するワード比較部と、
前記アクセス対象のキャッシュラインのカラムアドレスを、前記エラーカラムアドレスと比較するカラム比較部と、
前記第１のエラーが発生した後、前記エラー検出部が、前記メモリアクセス要求により、前記複数のキャッシュラインのいずれかに発生した第２のエラーを検出した場合、前記ウェイ比較部、前記ワード比較部及び前記カラム比較部のそれぞれの比較結果に応じて、故障が発生したワードラインを共有するキャッシュラインを全て無効化する制御部と
を有することを特徴とする演算処理装置。
【請求項２】
前記制御部はさらに、前記ウェイ比較部、前記ワード比較部及び前記カラム比較部のそれぞれの比較結果に応じて、ビット故障が発生したキャッシュラインを無効化することを特徴とする請求項１記載の演算処理装置。
【請求項３】
前記制御部はさらに、前記ウェイ比較部、前記ワード比較部及び前記カラム比較部のそれぞれの比較結果に応じて、前記検出部が最後にエラーを検出したキャッシュラインのみを無効化することを特徴とする請求項１又は２記載の演算処理装置。
【請求項４】
前記演算処理装置はさらに、前記複数のキャッシュラインのいずれかに発生し前記エラー検出部により検出されたエラーの回数であるエラー回数を計数する計数部を有し、前記制御部はさらに、前記計数部が計数したエラー計数が所定値を超えた場合において、前記制御部は、前記ウェイ比較部、前記ワード比較部及び前記カラム比較部のそれぞれの比較結果に応じて、前記複数のウェイのうち前記エラーウェイ識別情報で特定されるウェイ以外のウェイをリプレースすることを特徴とする請求項１乃至３何れか一項記載の演算処理装置。
【請求項５】
前記演算処理装置はさらに、前記複数のキャッシュラインの同一のキャッシュラインに発生し前記エラー検出部により検出されたエラーの回数であるエラー回数を計数する計数部を有し、前記制御部はさらに、前記計数部が計数したエラー計数が所定値を超えた場合において、前記制御部は、前記ウェイ比較部、前記ワード比較部及び前記カラム比較部のそれぞれの比較結果に応じて、前記複数のウェイのうち前記エラーウェイ識別情報で特定されるウェイ以外のウェイをリプレースすることを特徴とする請求項１乃至３何れか一項記載の演算処理装置。
【請求項６】
メモリアクセス要求を出力する命令処理部と、主記憶装置に記憶されたデータの一部を複数のウェイ毎に設けられた複数のキャッシュラインに保持するキャッシュメモリ本体部とを含み、データを記憶する前記主記憶装置に接続された演算処理装置において、
前記複数のキャッシュラインのいずれかに発生した第１のエラーを検出し、
前記第１のエラーの検出に応答して、前記第１のエラーが発生したキャッシュラインのウェイを特定するエラーウェイ識別情報をエラーウェイレジスタに格納し、
前記第１のエラーの検出に応答して、前記第１のエラーが発生したキャッシュラインのワードアドレスをエラーワードアドレスレジスタに格納し、
前記第１のエラーの検出に応答して、前記第１のエラーが発生したキャッシュラインのカラムアドレスをエラーカラムアドレスレジスタに格納し、
前記複数のキャッシュラインのいずれかに発生した第２のエラーを検出し、
前記第２のエラーの検出に応答し、アクセス対象のキャッシュラインのウェイ識別情報を前記エラーウェイ識別情報と比較した第１の結果と、前記アクセス対象のキャッシュラインのワードアドレスを前記エラーワードアドレスと比較した第２の結果と、前記アクセス対象のキャッシュラインのカラムアドレスを前記エラーカラムアドレスと比較した第３の結果とに応じて、故障が発生したワードラインを共有するキャッシュラインを全て無効化する
各段階を含むことを特徴とする演算処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算処理装置及び演算処理装置の制御方法に関する。
【背景技術】
【０００２】
半導体技術の微細化に伴い、キャッシュＲＡＭ（Random Access Memory）内部でのエラー発生率が上昇している。ＲＡＭには、縦方向に延びる複数のビットライン及び横方向に延びる複数のワードラインが設けられており、各交点に1ビットのメモリセルが配置される。ＲＡＭからデータを読み出す際は、ワードラインのアドレス(ワードアドレス)とビットラインのアドレス(カラムアドレス)とを指定し、指定された交点位置のデータを読み出す。
【０００３】
半導体の微細化が進みワードライン間の距離が縮小した結果、ショート等を原因としたＲＡＭのワードライン故障が発生するようになっている。ワードライン故障が発生すると、このワードラインによって読み書きされる全てのメモリセルに対するアクセスが誤動作となる。例えば、４カラム構成のキャッシュＲＡＭであり１つのRAMアクセスアドレスが１つのキャッシュラインに相当する場合、ワードラインが一致しカラムアドレスが異なる４つのＲＡＭアクセスアドレスが１つのワードラインを共有しており、結果４つのキャッシュラインが１つのワードラインを共有している。このようなキャッシュＲＡＭにおいてワードライン故障が発生すると、故障したワードラインを共有する４つのＲＡＭアクセスアドレスが指す全ビットについて、アクセス動作が誤動作となる。従って、これら４つのＲＡＭアクセスアドレスに対応する４つのキャッシュラインが使用できなくなる。
【０００４】
キャッシュＲＡＭのエラー救済方法として、幾つかの技術が存在する。特許文献１に記載の構成において、キャッシュ制御部には複数の動作ビットが設けられており、キャッシュメモリの各ラインにそれぞれ対応付けられている。この動作ビットは、キャッシュメモリが正常に動作しているか否かを示すビットであり、正常時は「有効」を示している。故障が見つかった場合、故障したラインに対応する動作ビットが「無効」に設定される。キャッシュへのアクセスの際は、アクセス対象のデータが含まれるラインの動作ビットが「有効」を示しているか否かを判断する。動作ビットが「有効」を示す場合は、キャッシュメモリへのアクセスが行われ、「無効」を示す場合は、キャッシュメモリではなく外部メモリへのアクセスが行われる。
【０００５】
特許文献２に記載の構成においては、故障したキャッシュラインアドレス及びキャッシュウェイを記憶する監視レジスタが設けられる。故障検出時、監視レジスタが故障アドレスと故障ウェイとを記憶し、同時に、該当キャッシュラインが無効化される。キャッシュメモリへのアクセスの際は、アクセス対象のキャッシュラインアドレスと監視レジスタのキャッシュラインアドレスとが比較される。両アドレスが一致した場合、当該アクセスは故障キャッシュラインへのアクセスであると判定される。故障キャッシュラインへのアクセスの場合、監視レジスタに記憶されている故障ウェイ以外にデータが登録されるように、制御が実行される（ブロックデリート）。また、監視レジスタに記憶されているウェイにおいて、異なるキャッシュラインでも故障が生じた場合には、該当ウェイ全体を縮退させ（ウェイデリート）、残りのウェイのみを用いて動作が継続される。
【０００６】
特許文献１に示す構成では、キャッシュラインごとの縮退が可能であるため、ワードライン故障を救済可能である。しかしながら、キャッシュライン毎に動作ビットが必要であり、回路サイズが大きくなるという問題がある。
【０００７】
特許文献２に示す構成では、ブロックデリートは、１つのキャッシュラインの故障のみを救済可能であり、複数キャッシュラインが同時に故障するワードライン故障を救済することはできない。またウェイデリートは、ワードライン故障を救済することができるが、必要以上に大きな領域（１つのウェイ全体）を縮退させてしまうために、無駄な性能低下が大きい。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１１−８４９１号公報
【特許文献２】特許４３９２０４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ワードライン故障を適切に救済可能な演算処理装置が望ましい。
【課題を解決するための手段】
【００１０】
データを記憶する主記憶装置に接続された演算処理装置は、メモリアクセス要求を出力する命令処理部と、前記記憶装置に記憶されたデータの一部を、複数のウェイ毎に設けられた複数のキャッシュラインに保持するキャッシュメモリ本体部と、前記複数のキャッシュラインのいずれかに発生したエラーを検出するエラー検出部と、前記エラー検出部が、前記複数のキャッシュラインのいずれかに発生した第１のエラーを検出した場合、前記第１のエラーが発生したキャッシュラインのウェイを特定するエラーウェイ識別情報を保持するエラーウェイレジスタと、前記第１のエラーが発生したキャッシュラインのワードアドレスを保持するエラーワードアドレスレジスタと、前記第１のエラーが発生したキャッシュラインのカラムアドレスを保持するエラーカラムアドレスレジスタと、アクセス対象のキャッシュラインのウェイ識別情報を、前記エラーウェイ識別情報と比較するウェイ比較部と、前記アクセス対象のキャッシュラインのワードアドレスを、前記エラーワードアドレスと比較するワード比較部と、前記アクセス対象のキャッシュラインのカラムアドレスを、前記エラーカラムアドレスと比較するカラム比較部と、前記第１のエラーが発生した後、前記エラー検出部が、前記メモリアクセス要求により、前記複数のキャッシュラインのいずれかに発生した第２のエラーを検出した場合、前記ウェイ比較部、前記ワード比較部及び前記カラム比較部のそれぞれの比較結果に応じて、故障が発生したワードラインを共有するキャッシュラインを全て無効化する制御部とを有することを特徴とする。
【００１１】
メモリアクセス要求を出力する命令処理部と、主記憶装置に記憶されたデータの一部を複数のウェイ毎に設けられた複数のキャッシュラインに保持するキャッシュメモリ本体部とを含み、データを記憶する前記主記憶装置に接続された演算処理装置の制御方法は、前記複数のキャッシュラインのいずれかに発生した第１のエラーを検出し、前記第１のエラーの検出に応答して、前記第１のエラーが発生したキャッシュラインのウェイを特定するエラーウェイ識別情報をエラーウェイレジスタに格納し、前記第１のエラーの検出に応答して、前記第１のエラーが発生したキャッシュラインのワードアドレスをエラーワードアドレスレジスタに格納し、前記第１のエラーの検出に応答して、前記第１のエラーが発生したキャッシュラインのカラムアドレスをエラーカラムアドレスレジスタに格納し、前記複数のキャッシュラインのいずれかに発生した第２のエラーを検出し、前記第２のエラーの検出に応答し、アクセス対象のキャッシュラインのウェイ識別情報を前記エラーウェイ識別情報と比較した第１の結果と、前記アクセス対象のキャッシュラインのワードアドレスを前記エラーワードアドレスと比較した第２の結果と、前記アクセス対象のキャッシュラインのカラムアドレスを前記エラーカラムアドレスと比較した第３の結果とに応じて、故障が発生したワードラインを共有するキャッシュラインを全て無効化する各段階を含むことを特徴とする。
【発明の効果】
【００１２】
少なくとも１つの実施形態によれば、ワードライン故障を適切に救済可能な演算処理装置が提供される。
【図面の簡単な説明】
【００１３】
【図１】演算処理装置の構成の一例を示す図である。
【図２】キャッシュＲＡＭの具体的な構成の一例を示す図である。
【図３】エラー監視レジスタ、Ｄｅｌ−Ｆｌａｇレジスタ、及びワードライン故障フラグの制御、並びにリプレース対象のウェイの指定のための構成を示す図である。
【図４】ＬＲＵユニットの構成の一例を示す図である。
【図５】ＴＡＧ−ＲＡＭの出力とＬＲＵユニットの出力とに基づいてキャッシュＲＡＭに供給するウェイＩＤを生成する構成の一例を示す図である。
【図６】キャッシュＲＡＭ＆エラー検出部の構成の一例を示す図である。
【図７】故障キャッシュラインを誤りなく縮退させることが可能な構成の一例を示す図である。
【発明を実施するための形態】
【００１４】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００１５】
図１は、演算処理装置の構成の一例を示す図である。演算処理装置は、命令発行部１０及びキャッシュメモリ１１を含み、外部記憶装置１２に接続される。命令発行部１０は、キャッシュメモリ１１に対してメモリアクセス要求を出力する。メモリアクセス要求がデータ書き込み要求の場合、命令発行部１０は、書き込みデータと当該データの書き込み先を示す書き込みアドレスとをキャッシュメモリ１１に供給する。メモリアクセス要求がデータ読み出し要求の場合、命令発行部１０は、データの読み出し先を示す読み出しアドレスをキャッシュメモリ１１に供給する。
【００１６】
キャッシュメモリ１１は、キャッシュ制御部１５及びキャッシュＲＡＭ＆エラー検出部１６を含む。キャッシュ制御部１５は、ＴＡＧ−ＬＲＵユニット２０、ワードライン故障検出装置２１、エラー監視レジスタ２２、及びＤｅｌ−Ｆｌａｇレジスタ２３を含む。キャッシュＲＡＭ＆エラー検出部１６は、キャッシュＲＡＭ２５及びエラー検出部２６を含む。
【００１７】
ワードライン故障検出装置２１は、ウェイＩＤマッチ回路３１、ワードアドレスマッチ回路３２、カラムアドレスマッチ回路３３、及びワードライン故障フラグ（WORDLINE-FAIL Flag）３４を含む。エラー監視レジスタ２２は、エラーウェイレジスタ３５、エラーアドレスレジスタ３６、及びエラーカウンタ３７を含む。ＴＡＧ−ＬＲＵユニット２０は、ＴＡＧ−ＲＡＭ３８及びＬＲＵユニット３９を含む。
【００１８】
キャッシュメモリ１１は、複数のキャッシュラインを含み、外部記憶装置１２からキャッシュメモリ１１への情報のコピーはキャッシュライン単位で実行される。主記憶である外部記憶装置１２のメモリ空間はキャッシュライン単位で分割され、分割されたメモリ領域を順番にキャッシュラインに割当てておく。キャッシュメモリ１１の容量は主記憶の容量よりも小さいので、主記憶のメモリ領域を繰り返して同一のキャッシュラインに割当てることになる。
【００１９】
一般に、アドレスの全ビットのうちで、所定数の下位ビットがキャッシュメモリのインデックスとなり、それより上位に位置する残りのビットがキャッシュメモリのタグとなる。ＴＡＧ−ＲＡＭ３８が、これらのインデックスに対応するタグを格納している。なお図１に示すキャッシュメモリ１１では、ウェイが４つ存在する４ウェイ構成を想定している。従って、各インデックスに対して、４つのウェイに対応する４つのタグが格納される。キャッシュメモリ１１は、外部記憶装置１２に記憶されたデータの一部を、複数のウェイ毎に設けられた複数のキャッシュラインに保持することになる。
【００２０】
データをアクセスする場合には、アクセス先を示すアドレス中のインデックス部分を用いて、ＴＡＧ−ＲＡＭ３８中の対応するインデックスのタグを読み出す。読み出したタグと、アドレス中のタグ部分のビットパターンとが一致するか否かを判断する。読み出した何れかのタグが一致する場合には、当該アクセスはキャッシュヒットとなる。読み出した何れのタグについても一致しない場合には、当該アクセスはキャッシュミスとなる。
【００２１】
キャッシュヒットの場合、該当インデックスの該当ウェイ（タグが一致したウェイ）に対応するキャッシュデータ（１キャッシュライン分の所定ビット数のデータ）が、キャッシュＲＡＭ２５においてアクセスされる。キャッシュミスの場合には、外部記憶装置１２に格納されている当該アクセスの対象であるデータを、キャッシュＲＡＭ２５の該当するキャッシュラインに転送する。この際、該当インデックスの全てのウェイにおいて有効なキャッシュデータが存在する場合には、最も必要性の低いデータ（例えば最後にアクセスされてから最も時間が経過しているデータ）を、アクセス対象のデータで置き換えるリプレースが実行される。
【００２２】
図２は、キャッシュＲＡＭ２５の具体的な構成の一例を示す図である。キャッシュＲＡＭ２５は、例えば、全体の容量が６４ＫＢ（キロバイト）であり、4−ＷＡＹセットアソシアティブ方式であり、１キャッシュラインが６４Ｂ（バイト）であってよい。図２において、１Ｋ×８Ｂ（１０２４×８バイト）のＲＡＭがメモリＲＡＭ０乃至ＲＡＭ７の８個設けられ、各ＲＡＭが例えば４カラム×２５６ワードラインの構成を有してよい。
【００２３】
図２に示されるように、各ＲＡＭは４つのウェイに４等分される。０〜６３番目のワードラインがウェイ０として使用され、６４〜１２７番目のワードラインがウェイ１として使用され、１２８〜１９１番目のワードラインがウェイ２として使用され、１９２〜２５５番目のワードラインがウェイ３として使用される。１つのキャッシュラインの６４Ｂのデータは８Ｂずつ８個のＲＡＭに分けて配置されている。各ＲＡＭの１つのワードラインは４つのカラムに分かれており、これら４つのカラムが４つのキャッシュラインに対応する。例えば、第１番目のワードラインは、４つのキャッシュラインｌｉｎｅ０〜ｌｉｎｅ３に対応する。従って、インデックスとウェイＩＤとから、アクセス対象のワードラインが一意に決まる。
【００２４】
エラー検出部２６は、キャッシュＲＡＭ２５の複数のキャッシュラインのいずれかに発生したエラーを検出する。具体的には、エラー検出部２６は例えばパリティチェッカを有し、キャッシュＲＡＭ２５からの読み出しデータに対しエラーチェックを行う。エラー検出部２６は、エラーチェック結果をキャッシュ制御部１５に送る。即ち、エラー検出部２６は、エラーを検出した場合、エラー検出を示す信号をキャッシュ制御部１５に供給する。具体的には、キャッシュ制御部１５に印加されるエラー検出信号がアサート状態（例えば論理値１の状態）になると、エラー検出信号が供給されたことになる。
【００２５】
エラーウェイレジスタ３５は、エラー検出部２６が複数のキャッシュラインのいずれかに発生した第１のエラーを検出した場合、第１のエラーが発生したキャッシュラインのウェイを特定するエラーウェイ識別情報を保持する。即ち、エラー検出部２６から供給されるエラー検出を示す信号に応答し、キャッシュ制御部１５が、エラーの発生したウェイを識別するウェイＩＤをエラーウェイレジスタ３５に格納する。このウェイＩＤは、ＴＡＧ−ＲＡＭ３８から出力される、タグが一致したウェイＩＤである。
【００２６】
エラーアドレスレジスタ３６は、エラーワードアドレスレジスタとエラーカラムアドレスレジスタとを含む。エラーワードアドレスレジスタは、上記第１のエラーが発生したキャッシュラインのワードアドレスを保持する。即ち、エラー検出部２６から供給されるエラー検出を示す信号に応答し、キャッシュ制御部１５が、エラーの発生したワードアドレスをエラーワードアドレスレジスタに格納する。このワードアドレスは、命令発行部１０から供給されるアドレスの一部である。エラーカラムアドレスレジスタは、上記第１のエラーが発生したキャッシュラインのカラムアドレスを保持する。即ち、エラー検出部２６から供給されるエラー検出を示す信号に応答し、キャッシュ制御部１５が、エラーの発生したカラムアドレスをエラーカラムアドレスレジスタに格納する。このカラムアドレスは、命令発行部１０から供給されるアドレスの一部である。
【００２７】
ウェイＩＤマッチ回路３１は、アクセス対象のキャッシュラインのウェイ識別情報を、エラーウェイレジスタ３５に格納されているエラーウェイ識別情報と比較する。なおアクセス対象のキャッシュラインのウェイ識別情報は、ＴＡＧ−ＲＡＭ３８からタグが一致したウェイのＩＤとして提供される。またワードアドレスマッチ回路３２は、アクセス対象のキャッシュラインのワードアドレスを、エラーアドレスレジスタ３６のエラーワードアドレスレジスタに格納されているエラーワードアドレスと比較する。またカラムアドレスマッチ回路３３は、アクセス対象のキャッシュラインのカラムアドレスを、エラーアドレスレジスタ３６のエラーカラムアドレスレジスタに格納されているエラーカラムアドレスと比較する。
【００２８】
上記第１のエラーが発生した後、エラー検出部２６が、メモリアクセス要求により複数のキャッシュラインのいずれかに発生した第２のエラーを検出する。この場合、キャッシュ制御部１５は、ウェイＩＤマッチ回路３１、ワードアドレスマッチ回路３２、及びカラムアドレスマッチ回路３３のそれぞれの比較結果に応じて、故障が発生したワードラインを共有するキャッシュラインを全て無効化する。即ち、故障が発生したワードラインを共有する複数の全てのキャッシュラインが無効化される。
【００２９】
上記無効化動作について更に詳細に説明する。第２のエラー検出時、ウェイＩＤマッチ回路３１及びワードアドレスマッチ回路３２が一致を示し、且つカラムアドレスマッチ回路３３が不一致を示す場合、同一ワードライン上の異なるキャッシュラインで故障が発生したことが分かる。この場合、ワードライン故障フラグ３４に所定の値（例えば１）が格納される。ワードライン故障フラグ３４には初期状態で所定の値（例えば０）が格納されている。ワードライン故障フラグ３４に１が一旦格納されると、その後ワードライン故障フラグ３４が０を格納する状態に戻ることはない。ワードライン故障フラグ３４に１が格納されている場合、エラーが所定回数以上発生してエラー縮退モードが指定されると、キャッシュ制御部１５は、故障が発生したワードラインを共有するキャッシュラインを全て無効化する。この無効化の作業においては、ＴＡＧ−ＲＡＭ３８に設けられるフラグであって、各キャッシュデータの有効又は無効の状態を示す有効フラグを、無効を示す値に設定すればよい。無効化されたキャッシュラインは、その後、命令発行部１０からのアクセス要求に対してヒットすることはなくなる。またワードライン故障フラグ３４に０が格納されている場合、エラーが所定回数以上発生してエラー縮退モードが指定されると、キャッシュ制御部１５は、ビット故障が発生したキャッシュラインを無効化する。即ち、キャッシュ制御部１５は、故障した１ビットを含む１つのキャッシュラインのみを無効化する。無効化されたキャッシュラインは、その後、命令発行部１０からのアクセス要求に対してヒットすることはなくなる。
【００３０】
エラーが所定回数以上発生してエラー縮退モードが指定される動作について、以下に詳細に説明する。エラーカウンタ３７は、複数のキャッシュラインのいずれかに発生しエラー検出部２６により検出されたエラーの回数であるエラー回数を計数する。即ちエラーカウンタ３７は、エラー検出部２６からエラー検出を示す信号が供給される毎に、計数値を１増加させる。エラーカウンタ３７が計数したエラー計数が所定値を超えると、Ｄｅｌ−Ｆｌａｇレジスタ２３に所定の値（例えば１）が格納される。Ｄｅｌ−Ｆｌａｇレジスタ２３に格納される値"１"により、エラー縮退モードが指定されると共に、前記の無効化動作が実行される。
【００３１】
エラー縮退モードの動作について、以下に詳細に説明する。Ｄｅｌ−Ｆｌａｇレジスタ２３に１が格納されている場合、エラー縮退モードが指定され、キャッシュミスが発生したときに故障キャッシュラインが縮退される。この場合、キャッシュ制御部１５は、ウェイＩＤマッチ回路３１、ワードアドレスマッチ回路３２、及びカラムアドレスマッチ回路３３のそれぞれの比較結果に応じて、複数のウェイのうちエラーウェイ識別情報で特定されるウェイ以外のウェイをリプレースする。即ちキャッシュミスが発生した場合において、エラーウェイレジスタ３５に格納されているエラーウェイ識別情報により特定される故障ウェイは、外部記憶装置１２からのデータを格納する対象としては用いない。なおワードライン故障フラグ３４に１が格納されている場合、キャッシュ制御部１５は、故障ワードラインを共有する複数のキャッシュラインの何れにもデータを登録しないように、ウェイのリプレース制御を行う。ワードライン故障フラグ３４に０が格納されている場合、キャッシュ制御部１５は、１つの故障キャッシュラインにデータを登録しないように、ウェイのリプレース制御を行う。
【００３２】
図１に示す構成では、ワードライン故障を適切に救済するために、検出エラー回数、エラーウェイＩＤ、及びエラーアドレスを記憶しておけばよい。これら３つのレジスタを使用する構成により、回路増加量を抑えながらも、ワードライン故障発生時に故障ワードラインを共有するキャッシュラインを全て同時に縮退することが可能となる。また更に、ワードライン故障か１ビット故障かの判定が可能であり、故障の種類に応じた縮退が可能である。それにより、正常に動作するキャッシュラインを無駄に縮退することがなく、性能低下が必要最低限に抑えられる。
【００３３】
図３は、エラー監視レジスタ２２、Ｄｅｌ−Ｆｌａｇレジスタ２３、及びワードライン故障フラグ３４の制御、並びにリプレース対象のウェイの指定のための構成を示す図である。図３において、図１と同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。
【００３４】
図３において、キャッシュＲＡＭ＆エラー検出部１６からのエラー検出信号がＡＮＤ回路４２乃至４４に供給されると共に、エラーカウンタ３７に供給される。エラーカウンタ３７においては、エラー検出信号が供給される毎に、即ちエラー検出信号がアサートされる毎に、計数値が１だけ増加する。ＡＮＤ回路４２は、ＴＡＧ−ＲＡＭ３８から供給されるタグが一致したウェイのＩＤ（ＴＡＧ−ｍｃｈ−Ｗａｙ−ＩＤ）とエラー検出信号とのＡＮＤをとる。エラー検出信号がエラー検出を示す値１の場合、ＡＮＤ回路４２の出力である故障ウェイのＩＤが、エラーウェイレジスタ３５に格納される。ＡＮＤ回路４３は、アクセス対象のアドレスＡＤＲＳと、エラー検出信号とのＡＮＤをとる。エラー検出信号がエラー検出を示す値１の場合、ＡＮＤ回路４３の出力である故障アドレスのアドレス値（即ちワードアドレス＋カラムアドレス）が、エラーアドレスレジスタ３６に格納される。
【００３５】
ＡＮＤ回路４４は、ワードアドレスマッチ回路３２の出力、カラムアドレスマッチ回路３３の出力の反転値、ウェイＩＤマッチ回路３１の出力、及びエラー検出信号を受け取り、これらの信号のＡＮＤをとる。ＡＮＤ回路４４の出力が１になると、それに応答してワードライン故障フラグ３４に１が格納される。
【００３６】
比較器４７は、エラーカウンタ３７の出力する計数値と所定の閾値ＣＮＴＴＨを比較する。比較器４７は、計数値が所定の閾値よりも大きくなると、その出力をアサートする。比較器４７の出力のアサートに応じて、Ｄｅｌ−Ｆｌａｇレジスタ２３には１が格納される。またＤｅｌ−Ｆｌａｇレジスタ２３に１が格納されると、同時に、前述の無効化動作が実行される。なお図３に示す構成の場合、ウェイＩＤマッチ回路３１、ワードアドレスマッチ回路３２、及びカラムアドレスマッチ回路３３のそれぞれの比較結果に応じて、エラー検出部２６が最後にエラーを検出したキャッシュラインのみが無効化されることになる。即ち、エラーウェイレジスタ３５及びエラーアドレスレジスタ３６に格納されているのは最後に検出されたエラーに関するデータであり、このデータに基づいて無効化が実行されるので、無効化は最後にエラーを検出したキャッシュラインのみとなる。なおこれはワードライン故障が検出されていない場合についての動作である。ワードライン故障が検出されている場合には、最後にエラーを検出したワードラインを共有するキャッシュライン全てが無効化される。
【００３７】
ワードライン故障フラグ３４の格納値は、セレクタ４６に選択信号として供給される。選択信号が１の場合、セレクタ４６は、ワードアドレスマッチ回路３２の出力を選択する。選択信号が０の場合、セレクタ４６は、ＡＮＤ回路４１の出力を選択する。ＡＮＤ回路４１は、ワードアドレスマッチ回路３２の出力とカラムアドレスマッチ回路３３の出力とのＡＮＤ演算の結果を出力する。セレクタ４５は、選択した値をＡＮＤ回路４５に供給する。ＡＮＤ回路４５は、Ｄｅｌ−Ｆｌａｇレジスタ２３の格納値が１である場合、セレクタ４６の出力を、故障ウェイ回避信号ｅｎｔｒｙ−ｄｅｌとしてＬＲＵユニット３９に供給する。故障ウェイ回避信号ｅｎｔｒｙ−ｄｅｌが供給されると、ＬＲＵユニット３９は、エラーウェイレジスタ３５から供給される故障ウェイＩＤの示すウェイを回避してリプレース対象ウェイを選択する。
【００３８】
このようにして、エラーカウンタ３７が計数したエラー計数が所定値を超えると、Ｄｅｌ−Ｆｌａｇレジスタ２３に所定の値（例えば１）が格納され、エラー縮退モードが指定される。Ｄｅｌ−Ｆｌａｇレジスタ２３に１が格納されている場合、エラー縮退モードが指定され、キャッシュミスが発生した場合において故障キャッシュラインが縮退される。ワードライン故障フラグ３４に１が格納されている場合、ワードアドレスマッチ回路３２の出力が、故障ウェイ回避信号ｅｎｔｒｙ−ｄｅｌとしてＬＲＵユニット３９に供給される。従って、ワードライン故障の場合には、アクセス対象のワードアドレスが故障ワードアドレスに一致するか否かの結果に応じて、故障ウェイＩＤの示すウェイを回避するか否かが決定される。ワードライン故障フラグ３４に０が格納されている場合、ワードアドレスマッチ回路３２の出力とカラムアドレスマッチ回路３３の出力とのＡＮＤが、故障ウェイ回避信号ｅｎｔｒｙ−ｄｅｌとしてＬＲＵユニット３９に供給される。従って、ワードライン故障ではない場合には、アクセス対象のワードアドレス及びカラムアドレスが故障ワードアドレス及び故障カラムアドレスに一致するか否かの結果に応じて、故障ウェイＩＤの示すウェイを回避するか否かが決定される。
【００３９】
図４は、ＬＲＵユニット３９の構成の一例を示す図である。図４に示すＬＲＵユニット３９は、ＬＲＵテーブル５０及びリプレースウェイＩＤ生成器５１を含む。ＬＲＵテーブル５０は、各ウェイが過去にアクセスされた順番を、インデックス毎（即ちキャッシュライン毎）に保持している。例えば２５４番目のキャッシュラインｌｉｎｅ−２５４について、「３，０，２，１」等のＬＲＵデータが格納されている。このＬＲＵデータは例えば、ウェイ３が最後にアクセスされ、ウェイ３以外ではウェイ０が最後にアクセスされ、ウェイ３，０以外ではウェイ２が最後にアクセスされ、ウェイ１が最も昔にアクセスされたことを示す。ＬＲＵテーブル５０は、アクセス対象のアドレスＡＤＲＳを入力として、そのアドレスに対応するインデックスのＬＲＵデータを出力する。リプレースウェイＩＤ生成器５１は、ＬＲＵテーブル５０から供給されたＬＲＵデータに基づいて、リプレース対象となるウェイのＩＤを出力する。具体的には、故障ウェイ回避信号ｅｎｔｒｙ−ｄｅｌが０の場合、リプレースウェイＩＤ生成器５１は、最も昔にアクセスされたウェイ（即ち最後にアクセスされてから最も時間が経っているウェイ）のウェイＩＤを出力する。故障ウェイ回避信号ｅｎｔｒｙ−ｄｅｌが１の場合、リプレースウェイＩＤ生成器５１は、ＥＲＲ＿ＷＡＹ＿ＩＤが示す故障ウェイを避けて、それ以外のウェイの中から最も昔にアクセスされたウェイのウェイＩＤを出力する。
【００４０】
図５は、ＴＡＧ−ＲＡＭ３８の出力とＬＲＵユニット３９の出力とに基づいてキャッシュＲＡＭ２５に供給するウェイＩＤを生成する構成の一例を示す図である。図５において、図１と同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。
【００４１】
図５に示す構成は、ＴＡＧ−ＲＡＭ３８、ＬＲＵユニット３９、ＡＮＤ回路６１及び６２、及びＯＲ回路６３を含む。ＴＡＧ−ＲＡＭ３８において、アクセス対象のアドレスのタグと登録されているタグとが一致すると、一致信号ｍａｔｃｈが１になると共に、タグが一致したウェイのＩＤであるＴＡＧ−ｍｃｈ−Ｗａｙ−ＩＤが出力される。一致信号ｍａｔｃｈが１であるので、ＴＡＧ−ｍｃｈ−Ｗａｙ−ＩＤがＡＮＤ回路６１を通過し、ＯＲ回路６３を介してキャッシュＲＡＭ２５に供給される。即ちキャッシュヒットの場合には、タグが一致したウェイのＩＤがキャッシュＲＡＭ２５に供給される。
【００４２】
アクセス対象のアドレスのタグと登録されているタグとが一致しない場合、一致信号ｍａｔｃｈが０になる。またＬＲＵユニット３９は、リプレース対象となるウェイのＩＤであるＲｅｐｌａｃｅ−Ｗａｙ−ＩＤを出力する。一致信号ｍａｔｃｈが０であるので、Ｒｅｐｌａｃｅ−Ｗａｙ−ＩＤがＡＮＤ回路６２を通過し、ＯＲ回路６３を介してキャッシュＲＡＭ２５に供給される。即ちキャッシュミスの場合には、リプレース対象となるウェイのＩＤがキャッシュＲＡＭ２５に供給される。
【００４３】
図６は、キャッシュＲＡＭ＆エラー検出部１６の構成の一例を示す図である。図６において、図１と同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。キャッシュＲＡＭ＆エラー検出部１６は、キャッシュＲＡＭ２５及びエラー検出部２６を含む。キャッシュＲＡＭ２５は、図２に示すメモリＲＡＭ０乃至ＲＡＭ７に相当するメモリＲＡＭ０乃至ＲＡＭ７を含む。エラー検出部２６は、パリティチェック部７１乃至７４及びセレクタ７５を含む。キャッシュＲＡＭ２５は、読み出しアクセスの場合、アクセス対象のアドレスを受け取り、当該アドレスに対応するデータを４つのウェイのそれぞれについて出力する。パリティチェック部７１乃至７４は、読み出した４個のデータそれぞれに対するパリティチェックを行う。パリティチェック結果は、セレクタ７５に供給される。セレクタ７５は、タグが一致したウェイのＩＤであるＴＡＧ−ｍｃｈ−Ｗａｙ−ＩＤを選択信号として受け取り、この選択信号が示すウェイのパリティチェック結果を選択する。このパリティチェック結果が、エラー検出信号としてキャッシュ制御部１５（図１参照）に供給される。
【００４４】
上記説明した演算処理装置においては、最後にエラーが発生したキャッシュラインを縮退対象としている。しかしながら、最後に発生したエラーが、宇宙線の入来に起因する記憶データのビット反転であるソフトエラーである可能性もある。そのような確率は非常に低く、上記説明した演算処理装置においても、ワードライン故障を適切に縮退させることができる、と考えてよい。但し、仮にそのようなソフトエラーが発生したとすると、本来のワードライン故障箇所とは異なるキャッシュラインについて縮退が実行されることになり、故障キャッシュラインを縮退させることができない。そこで、故障キャッシュラインを誤りなく縮退させることが好ましい。
【００４５】
図７は、故障キャッシュラインを誤りなく縮退させることが可能な構成の一例を示す図である。図７において、図３と同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。図７に示す構成では、キャッシュＲＡＭ＆エラー検出部１６からのエラー検出信号をエラーカウンタ３７に供給する経路に、ＡＮＤ回路４８が設けられている。ＡＮＤ回路４８は、ワードアドレスマッチ回路３２の出力とキャッシュＲＡＭ＆エラー検出部１６からのエラー検出信号とのＡＮＤ演算を行い、ＡＮＤ演算の結果を出力する。ＡＮＤ回路４８の出力がエラーカウンタ３７に供給されており、ＡＮＤ回路４８の出力がアサート状態になる度に、エラーカウンタ３７の計数値が１増加する。従って、エラーカウンタ３７の計数値は、アクセス対象のワードアドレスがエラーアドレスレジスタ３６に格納されている故障ワードアドレスに一致し且つエラーが検出された場合にのみ、増加することになる。つまり、エラーカウンタ３７が計数するのは、同一のワードアドレスにおいて発生し検出されたエラーの数であり、他のワードアドレスにおいて発生したソフトエラーは計数されない。従って、計数値が所定の閾値ＣＮＴＴＨを超えて縮退モードが有効になる場合、最後に発生したエラーが故障ワードアドレスとは異なるワードアドレスに対するソフトエラーとして検出されることはない。
【００４６】
なお縮退モードに遷移した後、ソフトエラーが発生した場合、そのエラーの検出により、エラーウェイレジスタ３５やエラーアドレスレジスタ３６の内容が書き換えられてしまう。これを避けたいのであれば、例えば、ＡＮＤ回路４２及び４３の各々を３入力とし、Ｄｅｌ−Ｆｌａｇレジスタ２３の出力の反転信号を第３の入力に印加すればよい。これにより、Ｄｅｌ−Ｆｌａｇレジスタ２３に１が格納され一旦縮退モードが有効になると、その後エラーウェイレジスタ３５及びエラーアドレスレジスタ３６が更新されることはない。即ち、その後ソフトエラーが発生しても、引き続き故障ワードラインを適切に縮退し続けることができる。
【００４７】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【符号の説明】
【００４８】
１０  命令発行部
１１  キャッシュメモリ
１２  外部記憶装置
１５  キャッシュ制御部
１６  キャッシュＲＡＭ＆エラー検出部
２０  ＴＡＧ−ＬＲＵユニット
２１  ワードライン故障検出装置
２２  エラー監視レジスタ
２３  Ｄｅｌ−Ｆｌａｇレジスタ
２５  キャッシュＲＡＭ
２６  エラー検出部２６
３１  ウェイＩＤマッチ回路
３２  ワードアドレスマッチ回路
３３  カラムアドレスマッチ回路
３４  ワードライン故障フラグ
３５  エラーウェイレジスタ
３６  エラーアドレスレジスタ
３７  エラーカウンタ
３８  ＴＡＧ−ＲＡＭ
３９  ＬＲＵユニット
【図１】
2013196393.tif 000003
【図２】
2013196393.tif 000004
【図３】
2013196393.tif 000005
【図４】
2013196393.tif 000006
【図５】
2013196393.tif 000007
【図６】
2013196393.tif 000008
【図７】
2013196393.tif 000009