(57)【要約】  集積回路には、少なくとも１つの処理ユニット（ＴＭ）と、複数のメモリ・モジュールを有するキャッシュ・メモリ（Ｌ２バンク）と、前記複数のメモリ・モジュール内で制限のないリマッピングを実施するためのリマッピング手段（ＲＭ）とが設けられている。したがって、故障モジュールを制限なしにリマッピングして、これらの故障モジュールの一様な分布を実現することにより、これらのメモリ・モジュールの利用を最適化することができる。
2007504548.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つの処理ユニットと、
データをキャッシュするための複数のメモリ・モジュールを有するキャッシュ・メモリと、
前記複数のメモリ・モジュール内で制限されないリマッピングを実施するためのリマッピング手段と
を備える集積回路。
【請求項２】
前記キャッシュ・メモリが、セット・アソシエイティブ方式キャッシュである、請求項１に記載の集積回路。
【請求項３】
前記リマッピング手段が、プログラム可能置換機能に基づいて前記リマッピングを実施するように適合されている、請求項１または２に記載の集積回路。
【請求項４】
前記リマッピング手段が、低減マッピングに基づいて前記リマッピングを実施するように適合されている、請求項１または２に記載の集積回路。
【請求項５】
どのデータが前記キャッシュ・メモリにキャッシュされるかを識別するための、前記キャッシュに関連するタグＲＡＭユニットをさらに備え、
前記リマッピング手段が、前記タグＲＡＭユニットと直列に構成される、請求項１に記載の集積回路。
【請求項６】
どのデータが前記キャッシュ・メモリにキャッシュされるかを識別するための、前記キャッシュに関連するタグＲＡＭユニットをさらに備え、
前記リマッピング手段が、前記タグＲＡＭユニットと並列に構成される、請求項１に記載の集積回路。
【請求項７】
故障メモリ・モジュールをマーク付けするためのルックアップ・テーブルをさらに含む、請求項５または６に記載の集積回路。
【請求項８】
少なくとも１つの処理ユニットと、データを記憶するための主記憶装置と、データをキャッシュするための複数のメモリ・モジュールを有するキャッシュ・メモリとを有する集積回路におけるキャッシュ・リマッピングの方法であって、
前記複数のメモリ・モジュール内で制限されないリマッピングを実施するステップを含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路およびキャッシュ・リマッピングの方法に関する。
【背景技術】
【０００２】
最近の高性能ＶＬＳＩプロセッサにおけるメモリ帯域幅に対するますます増大する要求は、既存のメモリ技術によっては、満たされない。Ｌｕ等による「Fault-Tolerant Interleaved Memory Systems with Two-Level Redundancy」、IEEE Transactions on Computers、４６巻、Ｎｏ．９、１９９７年９月においては、主記憶装置のいくつかのメモリ・バンクまたはモジュールが、インターリーブ化された方式でプロセッサによってアクセスされて、広帯域を有するメモリを実現している。しかし、複数のメモリ・モジュールが使用される場合には、これらのモジュールの一部が故障している可能性がある。これらの故障モジュールに対処するために、Ｌｕ等は、複数のモジュールを含むメモリを使用すると共に、前記メモリ中にいくつかの予備モジュールを設けることを意図している。これらの予備モジュールは、同じバンクに属していてもよいし、グローバル予備モジュールを構成してもよい。故障モジュールが発生する場合に、このメモリ管理は、これらの予備モジュールのうちの１つによってこの故障モジュールの置換を開始することができる。モジュール・マップ・テーブルが、１つの予備モジュールを選択して、１つの故障モジュールを置換するために提供され、バンク・マップ・テーブルが、予備バンクを選択して故障バンクを置換するために提供される。それにもかかわらず、このＬｕ等の教示は、これらのプロセッサと、この主記憶装置の間にどのようなキャッシュも有さない、プロセッサと、冗長メモリ・モジュールを有する主記憶装置の間の通信に関するものであり、これは、レイテンシと帯域幅の観点から有利であるようには見えない。
【０００３】
上記とは対照的に、オンチップ・キャッシュ・メモリの幅広い使用が、ＣＰＵのメモリ帯域幅要求に耐えるためには不可欠になってきている。半導体技術の進歩と、フィーチャ・サイズ（ｆｅａｔｕｒｅ  ｓｉｚｅ）の絶え間ないダウンスケーリングが、単一チップ上の追加機能のための余分なスペースをもたらす。この余分なスペースを使用する最もよく知られている方法は、より大きなサイズのキャッシュを集積化することであり、その結果、マイクロプロセッサは、より高い性能を達成することが可能になっている。しかし、この回路密度の増大は、欠陥の起こる可能性の増大と密接に関連している。キャッシュは、このＣＰＵの性能を高めるために使用される冗長構造を構成する。このキャッシュにおいて故障に耐えるための一方法は、予備キャッシュ・ブロックを提供することである。この欠陥のあるブロックは、再構成メカニズムにより、あるいは小型の完全アソシエイティブ方式キャッシュ（ｆｕｌｌｙ  ａｓｓｏｃｉａｔｉｖｅ  ｃａｃｈｅ）を提供して故障ブロックを動的に置換することによって予備ブロックに切り換えられる。
【０００４】
しかし、予備メモリ・モジュールまたは冗長メモリ・モジュールを有するキャッシュを用意することは高価につくので、予備キャッシュ・ブロックなしにキャッシュ性能の悪化を軽減することが可能な新しい技術が、必要とされる。したがって、明確な予備ブロックを使用する代わりに、物理的近傍ブロックまたは論理的近傍ブロックが、予備ブロックの役割を果たす。Ｄｏｎｇ−Ｈｙｕｎ等、「Re-evaluation and Comparison of Fault Tolerant Cache Schemes」、University of Wisconsin Madison ECE Dept.753 Course Project、２００２年、ならびにＳｈｉｒｖａｎｉ等、「PADded Cache:A New Fault-Tolerance Technique for Cache Memories」、Proc.17th IEEE VLSI Test Symposium、１９９９年は、キャッシュについてのプログラム可能アドレス・デコーダＰＡＤについて説明している。ＰＡＤは、プログラム可能なマッピング機能を有するデコーダである。前述のように、キャッシュの目的は、性能を改善することであるので、キャッシュは、固有の冗長度を有する。多数の処理アーキテクチャでは、どのようなキャッシュもなしに、ただし悪化された性能という代償を払って機能することができる。したがって、予備メモリ・ブロックのような追加の冗長度を導入することは、非効率的である。
【０００５】
動作中には、通常、メモリ参照の空間的局所性および時間的局所性のために、キャッシュ中の必ずしもすべてのセットが、同時に使用されるとは限らない。したがって、これらの予備ブロックの代理をすることができる一部の（現在、未使用の）キャッシュのセットが存在するはずである。メモリ参照が行われる時に、デコーダは、これを適切なブロックへとマッピングする。故障ブロックが識別された後に、ＰＡＤは、故障ブロックへのアクセスを同じ一次キャッシュ中の正常な（ｈｅａｌｔｈｙ）ブロックへと自動的にリダイレクトする。ＰＡＤを有するキャッシュが、ｎ個のブロックを有し、１つのブロックが故障である場合には、このキャッシュは、まるでこのキャッシュがｎ−１個のキャッシュ・ブロックを有するかのように動作することになる。このＰＡＤは、このマッピング機能を再構成し、その結果、「正常な」ブロックは、予備ブロックとしての役割を果たす。適切な欠陥のないブロックを見出すための方法は、あらかじめ定義され、ハードウェアで実装される。
【０００６】
このマッピングを実施することができる３つの異なる方法が存在する。このキャッシュをこのシステム・メモリに割り付ける最も簡単な方法である、ダイレクト・マップ方式キャッシュ（Ｄｉｒｅｃｔ  Ｍａｐｐｅｄ  Ｃａｃｈｅ）においては、どれだけ多くのキャッシュ・ライン（ｃａｃｈｅ  ｌｉｎｅ）が存在するかが決定され、このシステム・メモリは、この同じ数の部分に分割される。次いで、各部分は、１つのキャッシュ・ラインによって使用される。完全アソシエイティブ方式キャッシュ（Ｆｕｌｌｙ  Ａｓｓｏｃｉａｔｉｖｅ  Ｃａｃｈｅ）は、キャッシュ・ラインを特定のメモリ・ロケーションにハードで割り付ける代わりに、任意のラインが、任意のメモリ・ロケーションの内容を記憶することができるようにキャッシュを設計することを可能にする。第３のキャッシュ・マッピング・スキームは、Ｎウェイ・セット・アソシエイティブ方式キャッシュ（Ｎ−Ｗａｙ  Ｓｅｔ  Ａｓｓｏｃｉａｔｉｖｅ  Ｃａｃｈｅ）である。このスキームは、ダイレクト・マップ方式設計と完全アソシエイティブ方式設計との折衷案を構成している。このキャッシュは、複数のセットに分割され、ここで各セットは、Ｎ個のキャッシュ・ライン、すなわちＮウェイを含んでいる。次いで、各メモリアドレスが、セットに割り当てられ、各メモリアドレスが割り当てられたセット内のこれらのＮ個のロケーションのうちの任意の１つにキャッシュすることができる。換言すれば、各セット内において、このキャッシュは、アソシエイティブである。したがって、所与のメモリ・ロケーションが、このキャッシュ中に存在し得る「Ｎ」個の可能な場所が存在する。このマッピングは、通常、タグＲＡＭアドレス・デコーダ中に一体化され、このタグＲＡＭアドレス・デコーダは、主記憶装置からのどのデータが、現在では各キャッシュ・ラインに記憶されているかを識別する、Ｌ２キャッシュ中の区域を構成する。このタグＲＡＭに記憶される値は、キャッシュ・ルックアップが、ヒットをもたらすか、ミスをもたらすかを決定する。
【０００７】
例えば、４ウェイ・アソシエイティブ方式キャッシュの各ウェイは、別々のＰＡＤを有することができる。したがって、故障ブロックについてのキャッシュ・アドレスは、前記ウェイ内の正しいブロックにリマッピングされる。すべてのアドレスは、依然としてキャッシュ可能であるが、競合ミスが増大させられる。ダイレクト・マップ方式キャッシュでは、少なくとも１つのアドレス・ビット情報がリマッピングの結果として失われるので、少なくとも１ビットがこれらのタグ・ビットに対して強化されて、同じブロックにマッピングすることができるこれらのアドレスを区別することが可能になる。このキャッシュ・リマッピングは、ブロックごとのベースで実施され、ここで故障ブロックは、「正常な」ブロックへとマッピングされ、この正常なブロックのアドレスは、この故障ブロックのアドレスとはたった１ビットだけしか違わない。通常、セット・アソシエイティブ方式キャッシュでは、別のメモリ・アレイがウェイごとに提供され、その結果、デコーダは、各アレイに関連づけることができる。したがって、このリマッピングは、１つのアレイ中でしか実施されず、あるいはウェイは、他のアレイのマッピングに影響を与えないことになる。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明の一目的は、故障のあるキャッシュについての性能に対する歩留まり（ｙｉｅｌｄ）のトレードオフを可能にすることである。
【課題を解決するための手段】
【０００９】
この目的は、請求項１に記載の集積回路と、請求項８に記載のキャッシュ・リマッピングの方法によって解決される。
【００１０】
したがって、集積回路には、少なくとも１つの処理ユニットＴＭと、複数のメモリ・モジュールを有するキャッシュ・メモリＬ２＿ＢＡＮＫと、前記複数のメモリ・モジュール内で制限されないリマッピングを実施するリマッピング手段ＲＭが設けられる。
【００１１】
その結果、故障モジュールは、制限なしにリマッピングされて、一様な分布を提供することにより、メモリ・モジュールの利用を最適化することができる。
【００１２】
本発明の一態様によれば、このキャッシュ・メモリＬ２＿ＢＡＮＫは、セット・アソシエイティブ方式キャッシュとして実装され、より高速なキャッシュがもたらされる。
【００１３】
本発明のさらなる一態様によれば、前記リマッピング手段は、キャッシュの故障部分を一様分布させることの一実装形態であるプログラム可能置換機能に基づいてこのリマッピングを実施する。
【００１４】
本発明のさらに他の一態様によれば、前記リマッピング手段は、低減マッピングに基づいてこのリマッピングを実施する。その結果、入力に比べて少ないエレメントが出力される。したがって、低減マッピングは、故障モジュールをリマッピングするためのより大きな自由度を実現する。
【００１５】
本発明の好ましい一態様によれば、タグＲＡＭユニットＴａｇＲＡＭは、前記キャッシュに関連づけられ、このタグＲＡＭユニットＴａｇＲＡＭを使用して、どのデータが、前記キャッシュ・メモリＬ２＿ＢＡＮＫにキャッシュされるかを識別する。さらに、前記リマッピング手段は、前記タグＲＡＭユニットＴａｇＲＡＭと直列に構成される。より少ないチップ面積しか必要とされないので、かかる実装形態は、より低価格である。
【００１６】
本発明のさらなる好ましい一態様によれば、タグＲＡＭユニットＴａｇＲＡＭは、前記キャッシュに関連づけられ、このタグＲＡＭユニットＴａｇＲＡＭを使用して、どのデータが、前記キャッシュ・メモリＬ２＿ＢＡＮＫにキャッシュされるかを識別する。さらに、前記リマッピング手段は、前記タグＲＡＭユニットＴａｇＲＡＭと並列に構成される。このリマッピングが、このタグＲＡＭと並列に実施されるので、かかる実装形態は、より高速である。
【００１７】
本発明はまた、少なくとも１つの処理ユニットＰＵと、前記主記憶装置ＭＭからのデータをキャッシュするための複数のメモリ・モジュールを有するキャッシュ・メモリＬ２＿ＢＡＮＫとを有する集積回路中におけるキャッシュ・リマッピングの方法にも関する。制限されないリマッピングが、前記複数のメモリ・モジュール内で実施される。
【００１８】
本発明は、キャッシュ内の冗長度を活用することにより、キャッシュの歩留まりを改善するアイデアに基づいている。キャッシュ中において、全部のメモリ・モジュールは、故障モジュールがもはや使用されないように、交換することができる。この使用可能な作業モジュールは、各メモリ・バンクが、少なくとも１つのウェイを含むように入れ替えることができる。この入れ替えは、これらの故障モジュールが、これらのメモリ・バンク上で一様に分布するように前もって形成され、それによって最高の（保証された）連想性（ａｓｓｏｃｉａｔｉｖｉｔｙ）と、したがって性能とが実現されることが好ましい。
【００１９】
次に、本発明について、図面を参照して詳細に説明することにする。
【発明を実施するための最良の形態】
【００２０】
図１は、本発明の原理を実装することができる全体的なシステム・アーキテクチャを示している。このアーキテクチャは、８個の処理ユニットＴＭ、１つのＭＩＰＳプロセッサｍｉｐｓ、ＤＤＲダブル・データ・レートＤＲＡＭコントローラＤＤＲ＿ｃｔｒｌ、および１２Ｍｂの共有Ｌ２キャッシュＬ２＿ｂａｎｋを含む異種共有メモリシステムを構成することができる。これらのキャッシュＬ２＿ｂａｎｋ、これらの処理ユニットＴＭ、このコントローラＤＤＲ＿ｃｔｒｌ、ならびにこのプロセッサｍｉｐｓは、コヒーレント相互接続ネットワークＣＩＮを介して互いに接続され、このコヒーレント相互接続ネットワークＣＩＮはまた、キャッシュ・コントローラＣＣも含んでいる。ネットワーク・インターフェース・コントローラＮＩＣが設けられて、この全体的な処理システムの他の部分との高速な通信を処理する。この処理ユニットは、４００ＭＨｚで実行されるＴｒｉｍｅｄｉａプロセッサであることが好ましい。
【００２１】
このＬ２キャッシュは、レベル２キャッシュ、すなわちいくつかのプロセッサによって共有されるキャッシュであり、埋め込まれたＤＲＡＭモジュールとして実装されることが好ましい。その設計パラメータは、以下のように、すなわち１２ＭＢの容量であり、その連想性が６ウェイであり、そのセット数が４０９６であり、そのライン・サイズが５１２バイトであり、そのレフィル・サイズ（ｒｅｆｉｌｌ  ｓｉｚｅ）が１ラインであり、これらの同時転送が８バンクに基づいており、バンク・ワード・サイズが６４ビットであり、そのコヒーレント・ポリシーがＭＥＳＩであり、そのタグ・サイズが１１ビットであってもよい。したがって、このＬ２キャッシュは、８バンクに区分され、各バンクは、他のバンクとは独立に、読取り要求または書込み要求にサービスすることができる。各バンクは、６ウェイに区分され、各ウェイは、３２ｋ６４ビット＝２Ｍビットの容量を有する。いかなる時においても１つのバンク中においては、１つのウェイしかアクティブにすることができない。
【００２２】
上記アーキテクチャについては、図１を参照して詳細に説明してきたが、本発明の原理はまた、たった１つのプロセッサおよび１つのキャッシュを有するアーキテクチャの形で実装することもできる。
【００２３】
前述のように、キャッシュ・モジュールのリマッピングは、このキャッシュの性能を改善し、または歩留まりに対して性能をトレードオフして、作業システムを実現することが望ましい。図２は、リマッピング・オペレーションの前後のキャッシュ・モジュールＬ２＿ｂａｎｋを示している。特に、このリマッピングの前のこれらのキャッシュ・モジュールは、左側に示されているが、リマッピングの後のこれらのキャッシュ・モジュールは、この右側に示されている。
【００２４】
起動時に、またこれらの故障モジュールの検出後に、これらのモジュールは、リマッピングする必要がある。このリマッピングは、主として性能の理由のために行われる。これらの故障モジュール／ウェイをこれらのバンク上で一様に分布させることによって、最高の連想性を実現することができる。したがって、この一様分布は、保証された連想性を実現し、それによってこの性能が高められる。バンクのすべてのモジュール／ウェイが故障しており、このキャッシュをバイパスすることができない場合には、バンクごとに少なくとも１つのウェイが使用可能であるようにリマッピングを実施することが正当性の問題であり、その結果、ダイレクト・マップ方式キャッシュが実現される。
【００２５】
図２は、どのようにしてモジュールをリマッピングして、うまくバランス化されたウェイ分布を実現することができるかについて示している。黒で塗りつぶされたボックスは、故障モジュールを示している。リマッピングの前には、ｂａｎｋ０がどのような正しいウェイも有していなかったが、このｂａｎｋ０は、リマッピング後には、４つのウェイを有していることに留意されたい。これは、ｂａｎｋ７のｗａｙ０とｗａｙ１中のモジュールを、ｂａｎｋ０のｗａｙ３、ｗａｙ５に対して、ｂａｎｋ４のｗａｙ５中のモジュールをｂａｎｋ０、ｗａｙ４に対して、ｂａｎｋ２、ｗａｙ５からのモジュールをｂａｎｋ０、ｗａｙ２に対して、またｂａｎｋ３、ｗａｙ４からのモジュールをｂａｎｋ１、ｗａｙ３に対してリマッピングすることによって実現される。リマッピングの後に、あらゆるバンクは、４つの作業ウェイを有している。
【００２６】
図３は、第１の実施形態によるＬ２キャッシュについての選択信号回路を示している。図３において、タグＲＡＭユニットＴａｇＲＡＭ、リマッピング手段ＲＭ、２つのレジスタＲ、および複数のコンパレータＣが、図３に示されている。このパイプライン・レジスタＲは、アドレスＡｄを入力信号として受け取るが、一方のレジスタＲは、タグ・リファレンス信号ｔａｇ＿ｒｅｆを出力として供給し、他方のレジスタは、バンク選択信号ｂａｎｋ＿ｓｅｌｅｃｔおよびワード選択信号ｗｏｒｄ＿ｓｅｌｅｃｔを出力信号として供給する。このタグＲＡＭユニットＴａｇＲＡＭは、アドレスＡｄを入力信号として受け取り、信号ｔａｇ０、．．．、ｔａｇ５を出力する。これらの信号およびこのタグ・リファレンス信号ｔａｇ＿ｒｅｆは、それぞれコンパレータＣの入力信号であり、これらのコンパレータＣは、ヒット信号ｈｉｔ０、．．．、ｈｉｔ５を出力する。これらのヒット信号、バンク選択信号ｂａｎｋ＿ｓｅｌｅｃｔ、およびワード選択信号ｗｏｒｄ＿ｓｅｌｅｃｔは、リマッピング手段ＲＭへと入力され、ここでこのリマッピング・オペレーションが実施され、これらの入力信号は、このキャッシュ・モジュールの新しいリマッピングされた位置を表すｈｉｔ’０、．．．、ｈｉｔ’５、ｂａｎｋ’ｓｅｌｅｃｔ、およびｗｏｒｄ’ｓｅｌｅｃｔへとマッピングされる。このタグＲＡＭユニットの機能およびオペレーションは、当技術分野においてよく知られており、したがって詳細には説明していない。
【００２７】
バンクを選択するための信号ｂａｎｋ＿ｓｅｌｅｃｔを使用して、８つのバンクｂａｎｋ０からｂａｎｋ７のうちの１つを選択する。ヒット信号ｈｉｔ０、．．．、ｈｉｔ５は、バンク選択信号ｂａｎｋ＿ｓｅｌｅｃｔによって選択されるバンク中のウェイを識別する。ワード選択信号ｗｏｒｄ＿ｓｅｌｅｃｔを使用して、この（３２ｋ６４）ウェイ中の１ワードにアクセスする。リマッピング手段ＲＭは、これらのヒット信号およびバンク選択信号の後に、すなわちタグＲＡＭユニットＴａｇＲＡＭに直列に配置される。リマッピング手段ＲＭは、ｂａｎｋ＿ｓｅｌｅｃｔ’およびｈｉｔ０’．．．ｈｉｔ５’選択リマッピング・モジュールをもたらすモジュール置換機能を実装することが好ましい。置換機能は、所与のデータの代替構成を生成するプロセスであり、例えば、（６ウェイの選択に加えて３つの（符号化された）バンク選択を有する）それぞれ９ビットの４８（６＊８）個のレジスタのレジスタ・ファイルで実装することができる。この置換は、入力数を減少させることなく実施される。さらに、これらのｗｏｒｄ＿ｓｅｌｅｃｔ信号をリマッピングすることもできる。これは、ウェイ−バンクの組合せそれ自体が複数のメモリ・モジュールから構成される場合に、望ましい可能性がある。代わりに、このリマッピングを低減マッピングに基づいて、すなわち入力シンボルよりも少ない出力シンボルに基づいて実施することができる。
【００２８】
しかし、これらのレジスタＲと、これらのメモリの出力段におけるレジスタは、このオペレーションにとって絶対不可欠という訳ではなく、単にパイプライン方式の問題にすぎない。
【００２９】
図４は、この第２の実施形態によるリマッピング・モジュールについての代替実装形態を示している。この選択回路は、この第１の実施形態による選択回路に基づいているが、リマッピング手段ＲＭは、マップＲＡＭユニットＭａｐＲＡＭによって置換される。このＭａｐＲＡＭは、そのアドレスがバンク番号であり、６ウェイのそれぞれについて９ビットを出力する通常のＲＡＭとして実装することができる。これらのビットは、（リマッピングされたモジュールを一緒にアドレス指定する）このリマッピングされたウェイ、およびリマッピングされたバンクから構成される。この第１の実施形態によれば、リマッピング・ユニットＲＭは、このタグＲＡＭユニットと直列に実装されるが、このマップＲＡＭユニットは、このタグＲＡＭユニットと並列に実装される。このマップＲＡＭユニットは、入力信号としてアドレスＡｄを受け取り、マッピング信号ｍａｐ０、．．．、ｍａｐ５を出力する。したがって、このアドレス指定されたバンクの各ウェイについてのリマッピングは、このタグ・ルックアップ、すなわちこのタグＲＡＭユニットと並列に調べられる。これらのマッピング信号ｍａｐ０、．．．、ｍａｐ５、ならびにコンパレータＣからのヒット信号ｈｉｔ０、．．．、ｈｉｔ５は、それぞれ６個のＡＮＤゲートＧへの入力信号を構成する。これらのゲートＧの出力は、ＯＲゲートＨに供給される。このゲートＨの出力は、ウェイ選択信号ｗａｙ＿ｓｅｌｅｃｔおよびバンク選択信号ｂａｎｋ＿ｓｅｌｅｃｔを構成する。さらに、このアドレスはレジスタＲに入力され、このレジスタは、このｗｏｒｄ  ｓｅｌｅｃｔを出力する。次いで、このヒットするウェイは、６個のあらかじめ選択されたリマッピングｍａｐ０、．．．、ｍａｐ５のどれを実施すべきかを選択する。
【００３０】
この第２の実施形態中のレジスタＲは、不可欠という訳ではない。これらのＡＮＤゲート、およびＯＲゲートは、それぞれ６＊９回、および９回現れる。しかし、この機能は、例えばマルチプレクサを使用して実装することもできる。
【００３１】
この第１および第２の実施形態による選択回路の性能をさらに改善するためには、これらのキャッシュ・ヒットおよびこれらのキャッシュ・ライン置換は、どのような故障モジュールもターゲットとすべきではない。これを回避するために、ルックアップ・テーブルがタグＲＡＭユニット中に設けられることが好ましいが、このリマッピング・ユニットＲＭまたはこのマップＲＡＭユニット中において実装することもできる。このルックアップ・テーブルの背後にあるアイデアは、故障モジュールのすべてのブロックに対するヒットを回避し、さらに置換ターゲットからかかるモジュールを排除することができるようにすることである。これらの有効なビットおよびロック・ビットが、すでにキャッシュ中に実装されている場合には、図５の実装形態は、基本的に無料となる。
【００３２】
図５は、図２によるリマッピングについてのかかるテーブルの表現を示している。故障モジュールは、これらのロック・ビットならびにこれらの無効ビットを設定することにより、使用不能としてマークされる。
【００３３】
第１の実施形態、すなわちこのタグＲＡＭユニットとこのリマッピング手段ＲＭを直列に配列することに基づいた第３の実施形態によれば、このリマッピングは、より微細な細分性で、例えばこの第１および第２の実施形態によるモジュール・レベルの代わりにブロック／ライン・レベルで実施することもできる。この第３の実施形態は、このタグＲＡＭにインデックスを付けるアドレスを修正する追加回路をもたらす。好ましいマッピングは、この同じインデックスにある種のアドレスをリマッピングすることにより、例えば、最下位アドレス・ビットを無視することによってｂｌｏｃｋ０およびｂｌｏｃｋ１を同じインデックス／ブロックにマッピングすることにより実施される。複数のアドレスが、この同じインデックスにマッピングされる場合、このタグＲＡＭは、この失われているアドレス情報を用いて補強される。拡張されたタグ比較を使用して、このあいまいさを解決することができる。この拡張されたタグ比較には、これがこのアドレス・デコーダと簡単に一体化することができるという利点がある。（より広いタグおよびタグ比較を伴う）このあいまいさの問題を回避すべき時、その場合には、このアドレス・マッピングは、結果としてブロック・レベルでは実用的でない、置換とする必要がある。さらに、アドレス・リマッピングは、一体化されたアドレス・デコーダを有するハードＲＡＭマクロの場合には、あまり魅力的ではなくなる。
【００３４】
第２の実施形態に基づいた第４の実施形態によれば、このモジュール・リマッピングは、ブロックごとにマッピングを追加することにより、ブロック・レベル・リマッピングへと拡張することができる。この第２の実施形態によるマップＲＡＭは、次いでブロックごとに１つのエントリにまで拡張される。したがって、この第２の実施形態によるマップＲＡＭとタグＲＡＭとは、組み合わせることができる。
【００３５】
図６には、この第４の実施形態による組み合わせられたマップＲＡＭとタグＲＡＭのルックアップ・テーブルを表すルックアップ・テーブルが示されている。さらに、図５によるルックアップ・テーブルに対して、図６によるテーブルは、ウェイごとに余分なカラム、すなわちマップ・カラムを含んでいる。これらの値２および５がこの対応するマップ・フィールドに書き込まれているので、このカラムは、このリマッピング情報、例えば（ｉｎｄｅｘ０、ｂａｎｋ０、ｗａｙ２）におけるブロックが、（ｉｎｄｅｘ０、ｂａｎｋ２、ｗａｙ５）に対してリマッピングされるという情報を含んでいる。安価で高速な実装形態を実現するためには、ブロックは、異なるインデックスに対してはリマッピングされず、ただ新しいウェイおよびバンクだけにリマッピングされることが好ましい。しかし、代わりに、このリマッピングは、いくつかのインデックス上で実施されてもよい。
【００３６】
リマッピングする手段として、モジュール・ツー・モジュール・マッピングを示すプログラム可能な置換ユニット、モジュール選択を再計算することによりモジュールを入れ替えるこの置換を使用した回路、および／または（リマッピング後の）故障モジュールに関連するこのタグｒａｍを永続的に無効にするメカニズムを含むことができる。
【００３７】
本発明によるリマッピング・スキームと、故障モジュールを置き換えるための冗長モジュールを有する主記憶装置に関連したリマッピング・スキームとの間の違いは、各モジュールが、その連想性に、したがってその性能に寄与するので、キャッシュ中には、本当に「冗長な」モジュールは存在しないことである。この利点は、予備モジュール、すなわちこれらのモジュールが一部の故障モジュールを置き換えない限りは使用されないモジュールが必要でないことである。
【００３８】
性能上の理由から、このキャッシュの連想性を最大にすることが望ましい。したがって、Ｍ個のセット中にＮ個の故障モジュールが存在する場合にセット当たりにはＮ／Ｍ個の故障モジュールが存在する。したがって、これらの故障モジュールは、Ｎ／Ｍの値が実現され、これらの故障モジュールが一様に分布させられるように分布させるべきである。
【００３９】
本発明の原理は、Ｌ２（レベル２）キャッシュの実装形態を用いて説明してきたが、以上の原理は、Ｌ１（レベル１）キャッシュのような他の任意のキャッシュについて実装することもできる。しかし、望ましくないクリティカル・パスが増大させられる可能性があり、またＬ１キャッシュは、一般的にあまり大容量ではないので、この解決方法は、Ｌ１キャッシュにとっては、魅力的でないかも知れない。
【００４０】
前述の実施形態は、本発明を限定するものではなくて、本発明を例証するものであこと、また当業者なら、添付の特許請求の範囲を逸脱することなく、多数の代替実施形態を設計することが可能になるはずであることに留意されたい。これらの特許請求項において、括弧内に配置されるどのような参照符号も、請求項を限定するものとは解釈すべきではない。単語「含む（ｃｏｍｐｒｉｓｉｎｇ）」は、１つの請求項中にリストアップされた要素またはステップ以外の要素またはステップの存在を除外するものではない。要素に先立つ単語「１つの（ａ）」または「１つの（ａｎ）」は、複数のかかる要素の存在を除外するものではない。いくつかの手段を列挙したデバイス請求項において、これらの手段のうちのいくつかは、ハードウェアのうちの１つまたは同じアイテムによって実施することもできる。ある種の対策が相互に異なる従属請求項中に列挙されるという単なる事実は、これらの対策の組合せを使用して恩恵を得ることができないことを示すものではない。
【００４１】
さらに、これらの請求項中のどのような参照符号もこれらの請求項の範囲を限定するものと解釈すべきではない。
【図面の簡単な説明】
【００４２】
【図１】全体的なシステム・アーキテクチャを示す図である。
【図２】リマッピング・オペレーションの前後のキャッシュ・モジュールを示す図である。
【図３】第１の実施形態によるキャッシュの選択信号回路の一構成を示す図である。
【図４】第２の実施形態によるキャッシュの選択信号回路の一構成を示す図である。
【図５】図２によるリマッピングについてのルックアップ・テーブルを示す図である。
【図６】第４の実施形態によるルックアップ・テーブルを示す図である。
【図１】
2007504548.tif 000003
【図２】
2007504548.tif 000004
【図３】
2007504548.tif 000005
【図４】
2007504548.tif 000006
【図５】
2007504548.tif 000007
【図６】
2007504548.tif 000008
【国際調査報告】
2007504548.tif 000009
2007504548.tif 000010
2007504548.tif 000011