(57)【要約】データ処理システム（１０）は、第１（６４，７２）及び第２（６６，７４）ウェイを有するマルチウェイ・キャッシュを含むプロセッサを有する。第２ウェイは、第１ウェイに対して冗長であり、又は、第１ウェイに対して独立した、マルチウェイ・キャッシュのアソシエイティブウェイとして動作するように構成される。システムは、メモリ（１８）を含み、プロセッサ（１２）は、キャッシュ（６０）におけるリードアドレスのヒットに応答して、リードアドレスをメモリ（１８）に供給する。第２ウェイは、前記プロセッサ（１２）において、エラー検出信号に応答して第１ウェイに対して冗長となるように動的に構成される。一形態では、第２ウェイが冗長に構成される場合、キャッシュ（６０）におけるリードアドレスのヒットに応答して、リードアドレスのインデックス部分によりアドレス指定されたデータが第１および第２ウェイから供給されて互いに比較され、比較エラーが存在するかどうかが検出される。
2011507073.tif 000002
【特許請求の範囲】
【請求項１】
データ処理システムであって、
第１ウェイ及び第２ウェイを有するマルチウェイ・キャッシュを含むプロセッサであって、前記第２ウェイは、前記第１ウェイに対して冗長であるか、又は、前記第１ウェイに対して独立した、前記マルチウェイ・キャッシュのアソシエイティブウェイとして動作するように構成可能である前記プロセッサと、
前記プロセッサに接続されたメモリと
を備え、
前記プロセッサは、前記マルチウェイ・キャッシュにおけるリードアドレスのミスに応答して、前記メモリに前記リードアドレスを供給する、データ処理システム。
【請求項２】
前記第２ウェイは、前記プロセッサの動作中にエラー検出指示に応答して前記第１ウェイに対して冗長となるように動的に構成される、請求項１に記載のデータ処理システム。
【請求項３】
前記第２ウェイが前記第１ウェイに対して冗長となるように構成される場合に、前記マルチウェイ・キャッシュにおける前記リードアドレスのヒットに応答して、前記リードアドレスのインデックス部分によりアドレス指定されたデータが、前記第１ウェイ及び前記第２ウェイから供給されて互いに比較され、比較エラーが存在するかどうかが検出される、請求項１に記載のデータ処理システム。
【請求項４】
前記第２ウェイが前記第１ウェイに対して冗長に構成される場合、パリティ計算は、前記第１ウェイ及び前記第２ウェイの各々からの前記リードアドレスのインデックス部分によりアドレス指定された前記データに対して実行され、前記リードアドレスの前記インデックス部分によりアドレス指定された前記データ内に格納された対応するパリティビットを比較して、パリティエラーが存在するかどうかが検出される、請求項３に記載のデータ処理システム。
【請求項５】
前記第１ウェイは、第１タグアレイ及び第１データアレイを含み、前記第２ウェイは、第２タグアレイ及び第２データアレイを含み、前記第２ウェイが前記第１ウェイに対して冗長に構成される場合、前記第２タグアレイは、前記第１タグアレイに対して冗長であり、前記第２データアレイは、前記第１データアレイに対して冗長であり、
前記マルチウェイ・キャッシュにおける前記リードアドレスのヒットに応答して、前記リードアドレスの前記インデックス部分によりアドレス指定される前記データは、互いに比較される前記第１タグアレイ及び前記第２タグアレイからの前記インデックス部分によりアドレス指定されたタグ情報、および互いに比較される前記第１データアレイ及び前記第２データアレイの両方からのインデックス部分によりアドレス指定されるデータ情報を含む、請求項３に記載のデータ処理システム。
【請求項６】
データ処理システムであって、
第１ウェイ及び第２ウェイを有するマルチウェイ・キャッシュを含み、第１モード及び第２モードにて動作するように構成されるプロセッサであって、前記第１モードの動作において、前記第１ウェイ及び前記第２ウェイは、互いに独立して、前記マルチウェイ・キャッシュのアソシエイティブウェイとしてそれぞれ動作し、前記第２モードの動作において、前記第２ウェイは、前記マルチウェイ・キャッシュにおけるリードアドレスのヒットに応答して、前記リードアドレスのインデックス部分によりアドレス指定されるデータが前記第１ウェイおよび第２ウェイから供給されて互いに比較され、その比較に応答して比較エラーが存在するか否かを示す比較エラー信号を供給するように第１ウェイに対して冗長である、前記プロセッサを含み、前記プロセッサは、前記マルチウェイ・キャッシュにおける前記リードアドレスのミスに応答して、前記プロセッサに対する外部のメモリに前記リードアドレスを供給する、データ処理システム。
【請求項７】
前記マルチウェイ・キャッシュは、キャッシュ制御レジスタを含み、前記キャッシュ制御レジスタのエラー検出イネーブル領域に基づいて、第１モードまたは第２モードにおいて動作するように構成される、請求項６に記載のデータ処理システム。
【請求項８】
前記第１ウェイおよび前記第２ウェイのそれぞれからの前記リードアドレスの前記インデックス部分によりアドレス指定された前記データは、パリティビットを含む、請求項６に記載のデータ処理システム。
【請求項９】
前記第２モードの動作において、パリティ計算は、前記第１ウェイおよび前記第２ウェイのそれぞれからの前記リードアドレスの前記インデックス部分によりアドレス指定された前記データに対して実行されて、そのデータに対応するパリティビットが比較され、その比較に応答してパリティエラーが存在するか否かを示すパリティエラー信号が供給される、請求項８に記載のデータ処理システム。
【請求項１０】
前記第２モードの動作において、前記マルチウェイ・キャッシュは、前記比較エラー信号および前記パリティエラー信号に基づいてエラー信号を供給する、請求項９に記載のデータ処理システム。
【請求項１１】
前記マルチウェイ・キャッシュの前記第１ウェイは、第１タグアレイを含み、前記マルチウェイ・キャッシュの第２ウェイは、第２タグアレイを含み、前記第２モードの動作において、前記第２タグアレイは、前記インデックス部分によりアドレス指定されたタグは、前記第１タグアレイおよび前記第２タグアレイの両方から供給されて互いに比較され、前記比較エラー信号が供給されるように第１タグアレイに対して冗長である、請求項６に記載のデータ処理システム。
【請求項１２】
前記マルチウェイ・キャッシュの第１ウェイは、第１データアレイを含み、前記マルチウェイ・キャッシュの第２ウェイは、第２データアレイを含み、前記第２モードの動作において、前記第２データアレイは、前記インデックス部分によりアドレス指定された前記データが、前記第１データアレイおよび前記第２データアレイから供給されて互いに比較され、前記比較エラー信号が供給されるように前記第１データアレイに対して冗長である、請求項６に記載のデータ処理システム。
【請求項１３】
前記第２モードの動作において、前記第１データアレイおよび前記第２データアレイから供給される前記インデックス部分によりアドレス指定された前記データは、複数のバイトを含み、前記比較エラー信号は、前記複数のバイトの各バイトに比較エラーが存在するか否かを示す複数ビット信号である、請求項１２に記載のデータ処理システム。
【請求項１４】
前記プロセッサに対する外部の前記メモリを含む、請求項６に記載のデータ処理システム。
【請求項１５】
前記マルチウェイ・キャッシュは、前記比較エラー信号に少なくとも部分的に基づいて、前記リードアドレスの前記インデックス部分によりアドレス指定された前記データにおけるエラーを選択的に訂正するエラー訂正論理を含む、請求項６に記載のデータ処理システム。
【請求項１６】
データ処理システムであって、
ｎウェイ・アソシエイティブ・キャッシュを有し、第１モードまたは第２モードにおいて動作するプロセッサであって、前記第１モードの動作において、前記ｎウェイ・アソシエイティブ・キャッシュの各ウェイが、前記ｎウェイ・アソシエイティブ・キャッシュの独立したウェイとして動作し、前記第２モードの動作において、前記ｎウェイ・アソシエイティブ・キャッシュは、ｎ／２ウェイ・キャッシュとして動作し、前記ｎ／２ウェイのそれぞれに対して、前記ｎウェイ・アソシエイティブ・キャッシュの他のウェイが、対応する冗長なウェイとして動作する、前記プロセッサを備える、データ処理システム。
【請求項１７】
前記第２モードの動作において、マルチウェイ・キャッシュにおけるリードアドレスのヒットに応答して、前記リードアドレスのインデックス部分によりアドレス指定された前記データが、前記ｎ／２ウェイおよび該ｎ／２ウェイに対応する冗長なウェイのそれぞれから供給されて互いに比較され、いくつかの比較エラーが存在するかどうかが検出される、請求項１６に記載のデータ処理システム。
【請求項１８】
前記第２モードの動作において、パリティ計算は、前記ｎ／２ウェイおよび該ｎ／２ウェイに対応する冗長なウェイのそれぞれからの前記リードアドレスの前記インデックス部分によりアドレス指定された前記データに対して実行され、いくつかのパリティエラーが存在するかどうかが検出される、請求項１７に記載のデータ処理システム。
【請求項１９】
ｎは、２以上の整数であり、前記第２モードにおいて、ｎが２である場合に、前記ｎウェイ・アソシエイティブ・キャッシュが直接マップドキャッシュとして動作し、ｎが２より大きい場合、前記ｎウェイ・アソシエイティブ・キャッシュがセット・アソシエイティブ・キャッシュとして動作する、請求項１６に記載のデータ処理システム。
【請求項２０】
マルチウェイ・キャッシュは、前記プロセッサの動作中に、プログラム可能なエラー検出指示に応答して、前記第１モードまたは前記第２モードにおける動作をするように動的に構成される、請求項１６に記載のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この開示は、概してメモリに関し、また、この開示は、特にメモリに対するエラー検出及びエラー訂正の少なくとも一方のためのシステムに関する。
【背景技術】
【０００２】
従来のキャッシュメモリは、バイトパリティを有する場合に、バイト毎に１つの欠陥のみを通常検出可能である。このようなキャッシュメモリでは、１バイトのうち２ビットの値を変更すると、欠陥は、検出されない。必要な欠陥許容度のレベルが高いシステムでは、エラーを訂正するように使用されるコードのハミング距離は、４つまで増加させることを要求される。しかしながら、増加されたハミング距離は、このようなキャッシュメモリを複雑にする。さらに、複雑なエラー訂正及びエラー検出は、キャッシュメモリの処理能力を低下させる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
キャッシュメモリのあるユーザは、よりロバストなキャッシュメモリを有する限り、より低い処理能力に対応する不利益を受ける。しかしながら、キャッシュメモリの他のユーザは、キャッシュメモリのロバストネスについて認識せず、キャッシュメモリに関連する低い処理能力を好まない。従って、処理能力及びロバストネスの高いレベルを維持するとともに、両方のタイプのユーザを満足させる設定可能なキャッシュメモリが必要である。
【図面の簡単な説明】
【０００４】
本発明は、例として説明され、付随する図面により制限されず、その図面では、同じ参照が同様な要素を示す。その図面の要素は、簡潔かつ明確に説明され、必ずしも一定の縮尺で描かれていない。
【図１】キャッシュメモリに関連するデータ処理システムを示す。
【図２】例示的なキャッシュメモリを示す。
【図３】図２の例示的なキャッシュメモリ関連する例示的なキャッシュ制御部及び状態レジスタを示す。
【図４】図２の例示的なキャッシュメモリの例示的な部分を示す。
【図５】図２の例示的なキャッシュメモリに関連する例示的なエラー検出論理を示す。
【図６】図２の例示的なキャッシュメモリに関連するエラー検出及びエラー訂正を実行するための例示的な真理値表を示す。
【図７】図２の例示的なキャッシュメモリに関連するエラー検出及びエラー訂正を実行するための例示的な真理値表を示す。
【発明を実施するための形態】
【０００５】
一形態では、プロセッサを含むデータ処理システムは、第１ウェイ及び第２ウェイを有する複数のキャッシュ・ウェイを備え、第２ウェイは、第１ウェイに対して冗長となるように、又は第１ウェイに対して独立したマルチウェイ・キャッシュのアソシエイティブウェイ（associative way）として動作するように構成可能である。さらに、データ処理システムは、プロセッサに接続されたメモリを含み、プロセッサは、マルチウェイ・キャッシュにおけるリードアドレスのミスに応答して、メモリにリードアドレスを供給する。
【０００６】
他の形態では、プロセッサを含むデータ処理システムが提供される。第１ウェイ及び第２ウェイを有するマルチウェイ・キャッシュを含むプロセッサは、第１モード又は第２モードにて動作するように構成可能であり、第１モードの動作では、第１ウェイ及び第２ウェイは、互いに独立してマルチウェイ・キャッシュのアソシエイティブウェイとしてそれぞれ動作し、第２モードの実行では、第２ウェイは、マルチウェイ・キャッシュにおけるリードアドレスのヒットに応答して、リードアドレスのインデックス部分によりアドレス指定されたデータが、第１ウェイ及び第２ウェイの両方から供給されて互いに比較され、比較エラーが存在するか否かの指示に応答して比較エラー信号が供給されるように第１ウェイに対して冗長であり、プロセッサは、マルチウェイ・キャッシュにおけるリードアドレスのミスに応答して、プロセッサ内のメモリにリードアドレスを供給する。
【０００７】
さらに他の形態では、プロセッサを含むデータ処理システムが提供される。プロセッサは、第１モード又は第２モードにおいて動作するように構成可能であるｎ−ウェイ・アソシエイティブ・キャッシュ（n-way associative cache）を有し、第１モードの動作において、ｎ−ウェイ・アソシエイティブ・キャッシュの各ウェイは、ｎ−ウェイ・アソシエイティブ・キャッシュの独立したウェイとして動作し、第２モードの動作において、ｎ−ウェイ・アソシエイティブ・キャッシュは、ｎ／２−ウェイ・アソシエイティブ・キャッシュとして動作し、各ｎ／２ウェイに対応するｎ−ウェイ・アソシエイティブ・キャッシュの他のウェイは、冗長なウェイとして動作する。
【０００８】
本明細書にて用いられる「バス」という用語は、データ、アドレス、コントロール、又は状態等の１つ又はそれ以上の様々な情報を伝達するように使用される複数の信号又は導体について言及するように用いられる。本明細書にて説明される導体は、１つの導体、複数の導体、一方向の導体、又は双方向の導体に関して描写又は記述される。しかしながら、異なる実施形態では、導体の構成が変更されてもよい。例えば、個別の一方向の導体は、双方向の導体よりも使用され、その逆も同様である。また、複数の導体は、シリアルにより、又は時間多重化方式により複数の信号を伝達する単体の導体に置き換えてもよい。同様に、複数の信号を伝達する単体の導体は、これらの信号のサブセットを伝達する様々な異なる導体に分離してもよい。従って、信号伝達のための多くの選択肢が存在する。
【０００９】
「アサート」又は「セット」、及び「ネゲート」（「デアサート」又は「クリア」）という用語は、信号、状態ビット、又は同様な装置を、論理的に「正」、又は論理的に「負」の
状態にそれぞれするときに明細書にて用いられる。論理的に「正」の状態が論理レベル“１”の場合、論理的に「負」の状態が論理レベル“０”となる。論理的に「正」の状態が論理レベル“０”の場合、論理的に「負」の状態が論理レベル“１”となる。
【００１０】
明細書に記載された各信号は、「正」の論理又は「負」の論理として構成され、「負」の論理は、信号名又は以下の名前の全てに対して、バーにより示される。負論理信号の場合では、信号はアクティブ・ローであり、論理的に「正」の状態は、論理レベル“０”に対応する。正論理信号の場合では、信号はアクティブ・ハイであり、論理的に「正」の状態は、論理レベル“１”に対応する。明細書にて記載された各信号は、負論理信号又は正論理信号として構成可能なことに留意されたい。従って、代替的な実施形態では、正論理信号として記載されたこれらの信号は、負論理信号として動作してもよく、負論理信号として記載されたこれらの信号は、正論理信号として動作してもよい。
【００１１】
図１は、キャッシュメモリと連携されたデータ処理システム１０を示す。データ処理システム１０は、１次（Ｌ１）キャッシュメモリ１２を有するプロセッサ１２、２次（Ｌ２）キャッシュメモリ１４、主メモリ１８、及び周辺モジュール２０を含む。プロセッサ１２は、主メモリ１８及び周辺モジュール２０にシステムバス２２を介して接続される。Ｌ２キャッシュメモリ１６は、プロセッサ１２にシステムバス２２又は異なるバスを介して接続される。Ｌ１キャッシュメモリ１４は、プロセッサ１２の一部分として示されるが、Ｌ１キャッシュメモリ１４は、プロセッサ１２にシステムバス２２を介して接続されてもよい。Ｌ１キャッシュメモリ１４及びＬ２キャッシュメモリ１６は、マルチウェイ・アソシエイティブ・キャッシュメモリ又は他の好適なキャッシュメモリに設定されてもよい。図１は構成の特有の数及びこれら構成の特有の装置を示すが、より多く、又はより少ない構成が設けられてもよく、これらは異なって配置されてもよい。
【００１２】
図２は、好適なＬ１キャッシュメモリ１４を示す。Ｌ１キャッシュメモリは、制御回路２４、キャッシュ制御および状態レジスタ（cache control and status register:ＣＣＳＲ）２６、タグアレイ２８、データアレイ３０、キャッシュヒットおよびエラー検出論理３８を含む。Ｌ１キャッシュメモリ１４は、メインメモリ１８へのリード／ライト動作に対応するアドレス及びデータの少なくとも１つを、プロセッサ１２の内部に設けられたバス２１を介して受信する。一実施形態では、タグアドレス等のアドレスは、アドレスバス３２を介してタグアレイ２８に送受信される。一実施形態では、データは、データバス３４を介してデータアレイ３０に送受信される。また、制御回路２４は、タグアドレス及びデータ情報を、バス３６を介して受信する。キャッシュヒットおよびエラー検出論理３８は、バス４４を介して制御回路と送受信する。キャッシュヒットおよびエラー検出論理３８は、バス４０を介してタグアレイ２８と送受信し、バス４２を介してデータアレイ３０と送受信する。制御回路２４は、ＣＣＳＲ２６と連携し、ＣＣＳＲ２６から状態情報を読み出し、又はＣＣＳＲ２６に制御情報を書き込む。図２は構成の特有の数及びこれら構成の特有の装置を示すが、より多く、又はより少ない構成が設けられてもよく、これらは異なって配置されてもよい。
【００１３】
図３は、図２の好適なキャッシュメモリと連携する好適なキャッシュ制御および状態レジスタ（ＣＣＳＲ）２６を示す。ＣＣＳＲ２６は、Ｌ１キャッシュメモリ１４に関する様々な制御情報及び状態情報のための複数の領域を含む。例として、ＣＣＳＲ２６は、ＷＩＤビット４６、ＭＢＥＥビット４８、ＷＤＤビット５０、ＷＡＭビット５２、ＣＷＭビット５４、ＣＰＥビット５６、ＣＯＲＲＥビット５７、及びＣＥビット５８等の様々な制御情報及び状態情報に関するビットを含む。ＷＩＤビット４６は、Ｌ１キャッシュメモリ１４の置換方式に関する。ＷＩＤビット４６の一方は、ウェイ“０”に関し、他方は、ウェイ“１”に関する。ＷＩＤビットが「１」の場合、対応するウェイは、指示ミスラインが埋まることによる置換のために使用可能ではなく、しかし、一方、ＷＩＤビットが「０」の場合、対応するウェイは、指示ミスラインが埋まることによる置換のために使用可能となる。ＭＢＥＥビット４８は、マルチビットのエラー検出及びエラー訂正の少なくとも一方が有効となるか否かに関する。さらに、ＭＢＥＥビット４８の使用は、後述の構成にて説明される。ＷＤＤビット５０は、Ｌ１キャッシュメモリ１４のデータ置換方式に関する。ＷＤＤビットが「０」の場合、対応するウェイは、指示ミスラインが埋まることによる置換のために利用可能ではなく、しかし、一方、ＷＤＤビットが「１」の場合、対応するウェイは、指示ミスラインが埋まることによる置換のために利用可能となる。ＷＡＭビット５２は、特有のアクセスタイプに基づく置換のために、ウェイが有効となるか否かに関する。例として、ＷＡＭビット５２が「０」の場合、特有のアクセスタイプ（「データ」に対する「指示」）の置換が有効ではないウェイは、そのタイプのアクセスに対するキャッシュヒットについてチェックされ、特有のアクセスタイプのアクセスミスにより置換されない。一方、ＷＡＭビット５２が「１」の場合、特有のアクセスタイプの置換が有効ではないウェイは、チェックされない。これにより、低消費電力となる。ＣＷＭビット５４は、キャッシュ書き込みモード、即ちキャッシュメモリがライトスルーモード又はコピースルーモードにて動作するか否かに関する。ＣＰＥビット５６は、キャッシュメモリパリティ検査が有効か否かに関する。ＣＯＲＲＥビット５７は、エラー訂正が有効か否かに関する。ＣＥビット５８は、キャッシュメモリが有効か否かに関する。図３は、ＣＣＳＲ２６の一部として特有のビット数及びビットタイプを示すが、ＣＣＳＲ２６は、追加のビット数又は、より少ないビット数、及びビットの異なるタイプを含んでもよい。
【００１４】
図４は、好適な図２のＬ１キャッシュメモリ１４の一部分６０を示す。図２に関して上述したように、Ｌ１キャッシュメモリ１４は、タグアレイ２８及びデータアレイ３０を含む。タグアレイ２８は、Ａ０  ６４、Ａ１  ６６、Ａ６  ６８、及びＡ７  ７０を含むタグアドレスのアレイを有する。図４は、８つのタグアドレスのアレイのみを示すが、タグアレイ２８は、追加のアレイ又はより少ないアレイを含んでもよい。Ｌ１キャッシュメモリ１４のデータアレイ部分３０は、Ｄ０  ７２、Ｄ１  ７４、Ｄ６  ７６、及びＤ７  ７８を含むデータのアレイを有する。図４は８つのデータのアレイのみを示すが、データアレイ３０は、追加のアレイ又はより少ないアレイを含んでもよい。一実施形態では、Ｌ１キャッシュメモリ１４は、第１ウェイがタグアレイＡ０，Ａ２，Ａ４，Ａ６に対応し、第２ウェイがタグアレイＡ１，Ａ３，Ａ５，Ａ７に対応する２ウェイセット・アソシエイティブ・キャッシュメモリである。しかしながら、第２ウェイに対応するタグアレイは、第１ウェイに対して冗長なタグアレイとして、又は第１ウェイに対応するタグアレイのアソシエイティブウェイとして動作する。即ち、一実施形態では、第２ウェイは、第１ウェイに対して冗長となるように、又は第１ウェイとは独立したマルチウェイ・キャッシュのアソシエイティブウェイとして動作するように構成可能である。例えば、プロセッサがエラー検出に応答して動作する間であっても、第２ウェイは、第１ウェイに対して冗長となるように動的に構成可能である。このように、例えば、タグアレイＡ１  ６６は、タグアレイＡ０  ６４に対して冗長なタグアレイである。加えて、第２ウェイが第１のウェイに対して冗長となるように構成されるとき、Ｌ１キャッシュメモリ１４におけるリードアドレスのヒットに応答して、アドレスのインデックス部分（例えば、アクセスアドレス６２のインデックス部分）によりアドレス指定されたデータが、第１ウェイ及び第２ウェイの両方から供給されて互いに比較され、比較エラーが存在するかどうかが検出される。例として、タグアレイＡ０  ６４及びタグアレイＡ１  ６６の両方からのデータは、タグＭＢＥ比較器８０を用いて比較される。同様に、タグアレイＡ６  ６８及びタグアレイ７０からのデータは、タグＭＢＥ比較器８２を用いて比較される。
【００１５】
さらに図４を参照すると、第２ウェイに対応するデータアレイは、第１ウェイに対する冗長なデータアレイとして、又は第１ウェイに対応するデータアレイのアソシエイティブウェイとして動作可能である。例えば、プロセッサがエラー検出に応答して動作するときであっても、第２のウェイは、第１ウェイに対して冗長となるように動的に構成される。このように、例えば、データアレイＤ１  ７４は、データアレイＤ０  ７２に対して冗長なデータアレイである。さらに、第２ウェイが第１ウェイに対して冗長となるように構成されるとき、Ｌ１キャッシュメモリ１４におけるリードアドレスのヒットに応答して、アドレスのインデックス部分（例えば、アクセスアドレス６２のインデックス部分）によりアドレス指定されるデータは、第１ウェイ及び第２ウェイの両方から供給されて互いに比較され、比較エラーが存在するかどうかが検出される。このように、例えば、データアレイＤ０  ７２及びデータアレイＤ７４からのデータは、データＭＢＥ比較器８４を用いて比較される。同様な機能では、データアレイ７６及びデータアレイ７８からのデータは、データＭＢＥ比較器８６を用いて比較される。１ビット単位の比較によりこれらの２つのアレイのいずれかからの値が互いに異なることを示す場合、エラー検出論理１００は、エラーを示す。一実施形態では、ＭＢＥＥ信号、即ちマルチビットエラーイネーブル（multi-bit error enable）信号がアサートされるときのみ、エラー検出論理１００は、エラーを生成する。プロセッサ１２は、動作する場合にＭＢＥＥ信号をアサートし、プロセッサ１２は、エラー検出論理１００の構成をその場で変更可能である。図４は冗長モードにおいて４ウェイ・キャッシュとして構成可能な８ウェイ・キャッシュを示すが、ウェイはいくつでも使用可能である。さらに、図４は、特有の方式にて配置された特有の数の構成を示すが、異なって配置されたより少ない構成又は追加の構成を使用可能である。
【００１６】
さらに図４に関して、ウェイ選択器８８、ウェイ選択器９０、ウェイ選択器９２、及びウェイ選択器９４は、タグアレイ（例えば、Ａ０，Ａ１，Ａ６，Ａ７）からのデータリードを用いてパリティを計算する。計算されたパリティは、読み出されたタグアドレスに対応する記憶されたパリティと比較されて、パリティエラーが存在するか否かが検出される。ウェイ選択器ブロックの出力は、ウェイ選択器ブロックにより生成されたパリティエラーをさらに処理可能となるようにエラー検出論理に接続される。また、データ選択器９６は、データアレイ（例えば、Ｄ０，Ｄ１，Ｄ６，Ｄ７）から読み出されたデータに基づいてパリティの計算を実行する。生成されたパリティビットは、データパリティバスを介してエラー検出論理１００に送受信される。要するに、第２ウェイが第１ウェイに対して冗長となるように構成されるとき、パリティ計算は、第１のウェイ及び第２のウェイの各々からのリードアドレスのインデックス部分によりアドレス指定されたデータに基づいて実行され、リードアドレスのインデックス部分によりアドレス指定されたデータ内に記憶された対応するパリティビットと比較され、パリティエラーが存在するかどうかが検出される。
【００１７】
図５は、図２のキャッシュメモリに関連する好適なエラー検出論理１００を示す。例として、エラー検出論理１００は、タグパリティエラー、マルチビットエラー、及びデータパリティエラーを検出する。一実施形態では、エラー検出論理１００は、ＯＲゲート１０４，１０６，１１０，１１６を含む。さらに、エラー検出論理１００は、アンドゲート１０８，１１４を含む。さらに、エラー検出論理１００は、ＭＢＥ選択器ブロック１１２を含む。ウェイ選択器モジュール（例えば、８８，９０，９２，９４）により生成されたタグパリティエラーは、タグパリティ０〜７のラインを介してオアゲート１０４の入力に連結される。例として、タグパリティエラーは、各タグパリティライン上にアサートされた論理“１”により示される。タグＭＢＥ比較器モジュール（例えば、８０，８２）により生成されたマルチビットエラーは、タグＭＢＥ０〜３のラインを介してオアゲート１０６の入力に連結される。オアゲート１０６の出力は、アンドゲート１０８の他の入力に連結される。例として、マルチビットエラーは、各タグＭＢＥライン上にアサートされた論理“１”により示される。動作において、タグＭＢＥラインのいずれかに論理“１”がアサートされる場合、オアゲート１０６の出力は論理“１”である。このように、オアゲート１０６の出力が論理“１”、また、ＭＢＥＥ信号が論理“１”の場合、アンドゲート１０８の出力は論理“１”である。オアゲート１０４の出力は、オアゲート１１０の入力に連結され、アンドゲート１０８の出力は、オアゲート１１０の他の入力に連結される。このような構成により、オアゲート１０４の出力又はアンドゲート１０８の出力が論理“１”の場合、タグパリティエラーのライン上に論理“１”がアサートされる。要するに、一実施形態では、エラー検出論理１００は、タグパリティエラーのライン上に論理“１”をアサートする：（１）タグパリティエラーがあるとき、（２）マルチビットエラーがあるとき、（３）タグパリティエラー及びマルチビットエラーの両方があるとき。図５は、タグパリティエラーのライン上に論理“１”をアサートするために特有の方式に基づいて配置された特有の数の構成を示すが、異なる配置により少ない構成又は追加の構成は使用可能である。
【００１８】
さらに図５を参照すると、エラー検出論理１００は、データパリティエラーのライン上にデータパリティエラーを生成する。例として、データＭＢＥ比較器ブロック（例えば、８４，８６）により生成されたマルチビットエラーは、データＭＢＥ０〜３のラインを介してＭＢＥ選択器１１２に連結される。ＭＢＥ選択器１１２は、ウェイ選択器のラインを介して受信された入力に基づいて、４つの入力のうちの１つの入力を選択し、選択した入力を自身の出力に連結する。一実施形態では、ＭＢＥ選択器１１２は、４つから１つを選択するマルチプレクサとして動作する。ＭＢＥ選択器１１２の出力は、アンドゲート１１２の入力に連結される。ＭＢＥＥ信号は、アンドゲート１１４の他の入力に連結される。例として、マルチビットエラーは、各データＭＢＥのライン上に論理“１”がアサートされることにより示される。動作において、データＭＢＥのライン上のいずれかに論理“１”がアサートされる場合、ＭＢＥ選択器１１２の出力は、論理“１”である。このように、ＭＢＥ選択器１１２の出力が、選択されたデータに対応するマルチビットエラーを示す論理“１”、また、ＭＢＥＥ信号が論理“１”の場合、アンドゲート１１４の出力は論理“１”である。アンドゲート１１４の出力は、オアゲート１１６の入力に連結され、データパリティのラインは、オアゲート１１６の他の入力に接続される。このような構成により、アンドゲート１１４の出力が論理“１”の場合、又はデータパリティエラーがある場合、オアゲート１１６の出力は、論理“１”となる。これにより、データパリティエラーのライン上に論理“１”がアサートされるという結果となる。図５は、データパリティエラーのライン上に論理“１”をアサートするために、特有の方式に基づいて配置された特有の数の構成を示すが、異なる配置のより少ない構成又は追加の構成が使用可能である。エラー検出論理１００に検出されたエラーは、エラーのラインを介して外部の構成に送信される。
【００１９】
図６は、図２の好適なキャッシュメモリに関連するエラー訂正を実行するための好適な真理値表１２０を示す。真理値表１２０は、論理値“１”又は論理値“０”を有することができて変更可能なセットに相当する列のセットを含む。真理値表１２０の行は、真理値表１２０の列のセットに対する好適な値を含む。列１２２は、未訂正のウェイ“０”に関する変数ＵＣＷ０に対する値を有する。列１２４は、未訂正のウェイ“１”に関する変数ＵＣＷ１に対する値を有する。列１２６は、エラー訂正が有効か否かに関する変数ＣＯＲＲ＿Ｅに対する値を有する。列１２８は、ウェイ“０”のデータにパリティエラーがあるか否かに関する変数ＰＥ０に対する値を有する。列１３０は、ウェイ“１”のデータにパリティエラーがあるか否かに関する変数ＰＥ１に対する値を有する。列１３２は、訂正されたウェイが選択されたか否かに関する変数ＣＷ０に対する値を有する。真理値表１２０は、この表又は他の表に記憶されたＵＣＷ２〜７等のいくつかの変数及び他の変数に対する好適な値を単に示す。動作において、真理値表１２０の機能は、論理モジュール、ソフトウェア、及びソフトウェアとハードウェアとの組合せの少なくとも１つにより実行される。動作において、変数ＣＯＲＲ＿Ｅ１２６の値を論理“１”に設定することによりエラー訂正モードが有効の場合、訂正ウェイ適合信号は、未訂正のタグウェイビットのパリティチェックエラーに基づいて、２つの未訂正ウェイ適合信号から選択される。ＵＣＷ０が論理“０”の場合、このことは、未訂正のウェイ“０”が選択されたウェイではないことを示す。ＵＣＷ１が論理“０”の場合、このことは、未訂正のウェイ“１”が選択されたウェイではないことを示す。この場合、変数ＰＥ０，ＰＥ１の値に関わらず、訂正されたウェイ“０”は、選択されない。このことは、真理値表１２０においてＵＣＷ０及びＵＣＷ１の両方が論理“０”の場合に変数ＰＥ０，ＰＥ１に対応する「Ｘ」（無関係）及び変数ＣＷ０に対する論理“０”を有することにより示される。ウェイ“０”及びウェイ“１”から１つのウェイが選択される場合、訂正ウェイは、変数ＰＥ０，ＰＥ１の値に基づいて選択される。例として、真理値表１２０の第２行は、未訂正のウェイ“０”が選択されたウェイであることを示す変数ＵＣＷ０が論理“１”である場合を示す。この場合、変数ＵＣＷ１は、「無関係」であり、変数ＣＯＲＲ＿Ｅは、訂正が有効であることを示す論理“１”に設定される。ＰＥ０は、ウェイ“０”にパリティエラーがないことを示す“０”である。従って、ＣＷ０は、訂正されたウェイ“０”が選択されたことを示す論理“１”を有する。真理値表１２０の残りの行は、変数に対する異なる値と訂正されたウェイ“０”に対応する値とを有する追加の条件を示す。当業者は、図６に示された以外の値を用いた真理値表１２０を実行することができる。図６は、特有の方式に基づいて配置された特有の列数の変数及び特有の行数を示すけれども、より少ない列及び追加の列の少なくとも一方、より少ない行及び追加の行の少なくとも一方を異なる構成にて用いてもよい。
【００２０】
図７は、図２の好適なキャッシュメモリに関連するエラー訂正を実行するための他の好適な真理値表を示す。一実施形態では、真理値表１５０の機能は、図４に示されたデータ選択器９６の一部として実装される。データ選択器９６は、２つのウェイのバイトパリティエラー情報に基づいて、２つのウェイのデータのうちの１つのウェイのデータを選択する。例えば、Ｄ０，Ｄ１からのバイト０は、図４に示すように、Ｄ０，Ｄ１のバイト０パリティエラー情報に基づいて選択される。図７は、簡単かつ明確という目的にてＤ０，Ｄ１及びバイト０のみを示す一実施形態を例示する。他の２つのウェイからのデータ選択及び他のバイト数は、同じスキームを用いて処理する。真理値表１５０は、論理値“１”又は論理値“０”を有することが可能な変数のセットに対応する列のセットを含む。真理値表１５０の行は、真理値表１５０の列のセットに対する好適な値を含む。列１５２は、Ｄ０  バイト０（「０」はパリティエラーがないことを意味し、「１」はパリティエラーを意味する）に対するパリティエラーの論理状態を示す変数Ｄ０  バイト０  ＰＥに対応する値を有する。列１５４は、Ｄ１  バイト０（「０」はパリティエラーがないことを意味し、「１」はパリティエラーを意味し、「Ｘ」は、「無関係」を意味する）に対するパリティエラーの論理状態を示す変数Ｄ１  バイト０  ＰＥに対応する値を有する。Ｄ０  バイト０  ＰＥが「０」の場合、バイト０は、Ｄ１  バイト０  ＰＥの状態に関係なく選択される。第２のケースでは、Ｄ０  バイト０  ＰＥがパリティエラーを示す「１」、反対に、Ｄ１  バイト０  ＰＥが「０」の場合、Ｄ１からのバイト０が選択される。この場合、Ｄ１のデータは、Ｄ０のデータと置き換えるように使用される。最後の事例では、Ｄ０  バイト０  ＰＥ及びＤ１  バイト０  ＰＥが両方のウェイのバイトを示す「１」の場合、２つのデータブロックはエラーを有する。この場合、データバイトは、使用されず、エラーフラグがセットされる。この場合は、「Ｘ」としてのテーブルの最後の行を示す。当業者は、図７に示された以外の値を用いた真理値表１５０を実行可能である。図７は、特有の方式に基づいて構成された特有の列数の変数及び特有の行数を示すが、より少ない列及び追加の列の少なくとも一方、より少ない行及び追加の行の少なくとも一方を異なる構成にて用いてもよい。
【００２１】
いくつかの上記の好適な実施形態は、様々な異なる情報処理システムを用いて実行されてもよい。例えば、図１及びそれの説明は好適なデータ処理アーキテクチャを説明するが、この好適なアーキテクチャは、本発明の様々な側面の説明から効果的な参照を単に提供することを示す。勿論、アーキテクチャの説明は、説明の目的のために簡潔となっており、本発明に従って用いられる適切なアーキテクチャの複数の異なるタイプのうち一つのタイプのみである。当業者は、単に例示された論理ブロック間の境界は単に例示しただけであり、代替的な実施形態が、論理ブロック又は回路素子をマージするか又は、様々な論理ブロック又は回路素子に基づいて代替手段への機能分解を強いることを認識するだろう。
【００２２】
このように、本明細書において説明されるアーキテクチャは単なる例示に過ぎず、実際には同じ機能を実現する多くの他のアーキテクチャを用いることができることが理解し得る。要するに、同じ機能を実現するあらゆる構造の構成要素を効果的に「関連付ける」ことにより、所望の機能を実現することができる。従って、本明細書において特定の機能を実現するために組み合わされるいずれの２つの構成要素も、互いに「関連付ける」ことにより、所望の機能を、アーキテクチャまたは中間構成要素にかかわらず実現することができる。同様に、このようにして関連付けたいずれの２つの構成要素も、所望の機能を実現するために、互いに「動作可能に接続される」または「動作可能に連結される」ものとして見なすこともできる。
【００２３】
また例えば、一実施形態では、例示されたデータ処理システム１０の要素は、単体の集積回路又は同じデバイス内に配置される。代替的には、データ処理システム１０では、いくつかに分離された集積回路又は分離したデバイスが、互いに相互に接続される。例えば、メモリ１８は、プロセッサ１２としての同じ集積回路、または分離された集積回路に配置され、またはシステム１０の他の要素から分離された個別の周囲装置又はスレーブに配置される。周辺モジュール２０は、分離された集積回路又はデバイスに配置される。例えば、データ処理システム又はそれの一部は、物質的な回路内の変更可能な論理的な表現を記述されたソフト又はコードである。そのように、データ処理システム１０は、いずれかの適切なタイプのハードウェア記述言語が搭載される。
【００２４】
さらに、当業者は、上記動作の機能境界を単に例示的なものであるとして認識するだろう。複数の動作機能は、追加動作として分配された１つの動作、および１つの動作機能の少なくとも１つが組み合わされる。さらにまた、代替的な実施形態は、特有動作の複数の例を含み、動作順序は、様々な他の実施形態において変更されてもよい。
【００２５】
本発明について本明細書では、特定の実施形態を参照しながら説明してきたが、種々の変形及び変更を、請求項に示す本発明の範囲から逸脱しない限り加えることができる。従って、本明細書及び図面は制限的な意味ではなく例示として捉えられるべきであり、全てのこのような変形は本発明の範囲に包含されるべきものである。特定の実施形態に関して本明細書において説明されるいずれの効果、利点、または問題解決法も、いずれかの請求項または全ての請求項の必須の、必要な、または基本的な特徴または要素であると解釈されるべきではない。
【００２６】
本明細書において用いられた「連結される」という用語は、直接的な連結または機械的な連結に制限されるべきではない。
特に記載がある場合以外は、「第１」、「第２」という用語は、こうした用語によって説明される要素を任意に区別するために使用されている。したがって、これらの用語がこうした要素の一時的あるいはその他の優先順位を必ずしも意味するとは限らない。
【図１】
2011507073.tif 000003
【図２】
2011507073.tif 000004
【図３】
2011507073.tif 000005
【図４】
2011507073.tif 000006
【図５】
2011507073.tif 000007
【図６】
2011507073.tif 000008
【図７】
2011507073.tif 000009
【国際調査報告】
2011507073.tif 000010
2011507073.tif 000011