(57)【要約】      （修正有）【課題】キャッシュメモリ全体の動作電圧を低減できるキャッシュメモリを提供する。【解決手段】タグにより構成されるデータ格納構造と、複数のメモリセルのブロックから構成されるキャッシュウェイを複数備えるキャッシュメモリにおいて、ブロックは、各々の出力がメモリセルの列に対応して配置される一対のビットラインの各々に至る経路に接続されるクロスカップル接続された一対のインバータと、ビットラインとインバータの出力との間に設けられた一対のスイッチ部と、スイッチ部の導通を制御する１本のワードラインと、から成るメモリセルと、隣接メモリセルのデータ保持ノード間に設けたモード制御スイッチ部の導通を制御するモード制御ラインから成る。ブロック毎に２個のメモリセルを連結して高信頼モードへと切替る回路を備え、ブロックが故障検出された際、検出ブロックを高信頼モードに切替え、故障ブロックの動作マージンを拡大する。【選択図】図６
2014115723.tif 000002
【特許請求の範囲】
【請求項１】
タグにより構成されるデータ格納構造を備え、複数のメモリセルブロックから構成されるキャッシュウェイを複数備えるセットアソシアティブ方式のキャッシュメモリにおいて、
前記メモリセルブロックは、
各々の出力がメモリセルの列に対応して配置される一対のビットラインの各々に至る経路に接続されるクロスカップル接続された一対のインバータと、ビットラインとインバータの出力との間に設けられた一対のスイッチ部と、スイッチ部の導通を制御する１本のワードラインと、から構成されるメモリセルと、隣接するメモリセルのデータ保持ノード間にモード制御スイッチ部と、該モード制御スイッチ部の導通を制御する１本のモード制御ラインと、から成り、
前記メモリセルブロック毎に、
１ビットが１個のメモリセルで構成される通常モードから、隣接する２個のメモリセルを連結して１ビットが２個のメモリセルで構成される高信頼モードへと切り替えできる回路構成であり、
前記メモリセルブロックがオフラインもしくはオンラインで故障検出された場合に、故障検出したメモリセルブロックを高信頼モードに切り替えて、隣接する２つのキャッシュラインのいずれかを使用するメモリセルブロックにしたことを特徴とする低電圧動作キャッシュメモリ。
【請求項２】
故障したメモリセルブロックにおいて、高信頼モードに切り替えて、隣接する２つのキャッシュラインのいずれかを使用する際に、
キャッシュメモリの全てのキャッシュインデックスに、キャッシュウェイの個数の半分の連想度以上でのキャッシュ動作が可能となるように、キャッシュラインの割り当てを行うことを特徴とする請求項１に記載の低電圧動作キャッシュメモリ。
【請求項３】
故障したメモリセルブロックにおいて、高信頼モードに切り替えて、隣接する２つのキャッシュラインのいずれかを使用する際に、偶数番号のキャッシュウェイのメモリセルブロックの場合には偶数インデックスのキャッシュラインが割り当てられ、奇数番号のキャッシュウェイのメモリセルブロックの場合には奇数インデックスのキャッシュラインが割り当てられることを特徴とする請求項２に記載の低電圧動作キャッシュメモリ。
【請求項４】
故障したメモリセルブロックにおいて、高信頼モードに切り替えて、隣接する２つのキャッシュラインのいずれかを使用する際に、偶数番号のキャッシュウェイのメモリセルブロックの場合には奇数インデックスのキャッシュラインが割り当てられ、奇数番号のキャッシュウェイのメモリセルブロックの場合には偶数インデックスのキャッシュラインが割り当てられることを特徴とする請求項２に記載の低電圧動作キャッシュメモリ。
【請求項５】
故障したメモリセルブロックにおいて、高信頼モードに切り替えて、隣接する２つのキャッシュラインのいずれかを使用する際に、キャッシュウェイの個数がＮ（番号は０，１，・・・，Ｎ−１）とした場合に、番号がＮ／２未満のキャッシュウェイのメモリセルブロックの場合には偶数インデックスのキャッシュラインが割り当てられ、番号がＮ／２以上のキャッシュウェイのメモリセルブロックの場合には奇数インデックスのキャッシュラインが割り当てられることを特徴とする請求項２に記載の低電圧動作キャッシュメモリ。
【請求項６】
故障したメモリセルブロックにおいて、高信頼モードに切り替えて、隣接する２つのキャッシュラインのいずれかを使用する際に、キャッシュウェイの個数がＮ（番号は０，１，・・・，Ｎ−１）とした場合に、番号がＮ／２未満のキャッシュウェイのメモリセルブロックの場合には奇数インデックスのキャッシュラインが割り当てられ、番号がＮ／２以上のキャッシュウェイのメモリセルブロックの場合には偶数インデックスのキャッシュラインが割り当てられることを特徴とする請求項２に記載の低電圧動作キャッシュメモリ。
【請求項７】
故障したメモリセルブロックにおいて、
高信頼モード時に、
隣接する２つのキャッシュラインのいずれを使用するかの識別情報として、
使用しない無効キャッシュラインのキャッシュライン状態ビットを、｛Valid bit，Dirty bit｝＝｛０，１｝に設定することを特徴とする請求項１〜６のいずれかに記載の低電圧動作キャッシュメモリ。
【請求項８】
キャッシュメモリのＬＲＵ（Least Recently Used）置換アルゴリズムにおいて、
故障したメモリセルブロックが高信頼モード時、
使用しない無効キャッシュラインのＬＲＵツリービットをＭＲＵ（Most Recently Used）状態に固定することを特徴とする請求項１〜７のいずれかに記載の低電圧動作キャッシュメモリ。
【請求項９】
キャッシュメモリのＬＲＵ（Least Recently Used）置換アルゴリズムにおいて、
故障したメモリセルブロックが高信頼モード時、
使用しない無効キャッシュラインがＭ個存在する場合、
使用しない無効キャッシュラインのＬＲＵツリービットをキャッシュウェイの番号順に０（ＭＲＵ），１，・・・，Ｍ−１にすることを特徴とする請求項１〜７のいずれかに記載の低電圧動作キャッシュメモリ。
【請求項１０】
使用しない無効キャッシュラインがＭ個存在する場合、
キャッシュミスが起きた際に割り当てた新しいデータのキャッシュラインのＬＲＵツリービットをＭとし、
その他の使用するキャッシュラインのＬＲＵツリービットを、キャッシュミスが起きる以前の順番に従って、それぞれＭ＋１から順に１インクリメントすることを特徴とする請求項８又は９に記載の低電圧動作キャッシュメモリ。
【請求項１１】
使用しない無効キャッシュラインがＭ個存在する場合、
キャッシュヒットが起きたキャッシュラインのＬＲＵツリービットをＭとし、
その他の使用するキャッシュラインのＬＲＵツリービットを、キャッシュミスが起きる以前の順番に従って、それぞれＭ＋１から順に１インクリメントすることを特徴とする請求項８又は９に記載の低電圧動作キャッシュメモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、低電圧動作キャッシュメモリに関する技術である。
【背景技術】
【０００２】
近年のＳＲＡＭ（Ｓｔａｔｉｃ Ｒａｎｄｏｍ
Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）等の半導体メモリは、ＳｏＣに搭載されるＣＭＯＳプロセス技術が進展し、集積回路の加工寸法（スケーリングサイズ）が縮小され、より高いチップ密度と低いチップコストが実現され、メモリ容量が増大している。
このようなスケーリングサイズの縮小は、ＳＲＡＭ等のメモリセルを構成するトランジスタの閾値電圧のばらつきを拡大し、メモリセルにおける読み出しや書き込みのノイズマージンを低下させ、メモリセル動作を不安定性化し、ビット誤り率を増大させている。
【０００３】
このようなプロセスばらつきの増大は、マイクロプロセッサの信頼性に大きな影響を及ぼし、低電圧動作の実現を困難にする。プロセスばらつきによるＳＲＡＭ内のトランジスタ間のデバイスミスマッチングは、メモリセルの動作マージンを減少させ、結果としてセルの故障（読み出し故障、書込み故障、アクセスタイム違反）を生じさせる要因となる。また、微細化が進むにつれ、最低動作電圧が上昇する傾向にあり、メモリセルの動作マージンを低下させている。ＳＲＡＭは、プロセッサにおけるトランジスタ数の大部分を占めるため、プロセッサ全体の動作電圧は大きいＳＲＡＭブロックを含んでいるキャッシュメモリによって決まると言える。そのため、メモリセルの動作マージンを増加させ、プロセッサの動作電圧を削減するためには、キャッシュメモリの低電圧化が必須である。
【０００４】
これまで、低電圧動作キャッシュメモリに関する研究が数多く紹介されている（例えば、非特許文献１，２を参照。）。しかし、非特許文献１で提案されている低電圧動作キャッシュメモリでは、故障キャッシュラインの場所を特定するために、ｏｎ−ｃｈｉｐ
ｆｕｓｅを使用するため、コスト高になるといった問題がある。
また、非特許文献２で提案されている低電圧動作キャッシュメモリでは、追加ビットや追加回路を要するため、面積オーバヘッドが大きいといった問題がある。
【０００５】
また一方、ＤＶＳ（Ｄｙｎａｍｉｃ
Ｖｏｌｔａｇｅ Ｓｃａｌｉｎｇ）のような動作電圧を低減し、消費電力を削減する手法があるが、増加し続けるプロセスばらつきの影響による、近年の微細プロセスにおいては、ＳＲＡＭが低電圧領域で十分な動作マージンを確保することは困難である。特に、キャッシュメモリは膨大な数のＳＲＡＭセルを含むため、プロセッサ内の大容量キャッシュメモリは製造ばらつきの影響を受けやすく、低電圧領域での動作信頼性を保つことは困難である。このように、キャッシュメモリは、プロセッサ全体の最低動作電圧の削減を妨害する要因となっている。
特に、ＲＤＦ（Ｒａｎｄｏｍ
Ｄｏｐａｎｔ Ｆｌｕｃｔｕａｔｉｏｎ）のようなランダムばらつきは、ＳＲＡＭセルの信頼性に大きな影響を与える。その結果、製造過程において生成される故障セルは、キャッシュメモリ内でランダムに分布している。キャッシュメモリ内に散在している故障セルを取り除くことにより、キャッシュメモリ全体の最低動作電圧を効果的に削減することが可能である。
しかしながら、故障セルがランダムに分布しているため、故障セルの場所を特定して何らかの制御を行うような細粒度制御は、追加サイクルや複雑な周辺回路が必要となり、コスト高になってしまう。
【０００６】
通常、キャッシュメモリは、下位レベルの記憶装置より小容量で高速なＳＲＡＭを用いて構成される。キャッシュメモリは、データ本体の一部とデータ格納アドレス，フラグなど属性情報のセットを固定容量のメモリに格納する構造を有し、データ格納構造、キャッシュラインの入替え、データ更新方式などに多数のアーキテクチャが存在する。従前は、プロセッサのチップの外部に接続されていたが、近年は、ＬＳＩ集積度の向上や要求速度の上昇に伴い、プロセッサチップ内部に取り込まれる。キャッシュメモリは、データをキャッシュラインと呼ぶある程度まとまった単位（例えば、３２バイト）でデータを格納し管理する。
【０００７】
キャッシュメモリにデータのアクセス要求があった時、そのデータがキャッシュに存在しているか否か、存在するならどのラインに存在するか等を瞬時（例えば、１サイクル）に検索する必要がある。そのために、データ格納アドレスの一部（キャッシュライン単位アドレスの下位数ビット：インデックス）により、ある程度の格納位置を限定することで検索速度を高める。各キャッシュラインには、キャッシュライン単位アドレスの上位ビット（フレームアドレス）を格納しており、キャッシュメモリ検索時には検索アドレスのフレームアドレス部と、キャッシュ内に格納されている検索インデックス位置のキャッシュラインに対応したフレームアドレスとを比較することでキャッシュのヒットを検出する。このフレームアドレスの格納バッファがタグである。複数セットのタグを備えることにより、同じインデックスでも複数データの格納を行うことが可能となる。このタグのセット数（ウェイ数）を連想度という。
【０００８】
複数のタグにより構成される（連想度２以上）データ格納構造のキャッシュメモリをセットアソシアティブ方式（Set Associative）のキャッシュメモリという。セットアソシアティブ方式のキャッシュメモリの場合、同一インデックスに異なるフレームアドレスのデータを複数格納することができる。連想度が上がるほどキャッシュヒット率は上昇する。特に、ｎ個のタグのセット数（ウェイ数）により構成された場合、ｎウェイ・セットアソシアティブ方式のキャッシュメモリという。
【０００９】
一般的に、キャッシュメモリのような大きいメモリ構造は、幾つかのサブブロックで構成される。例えば、図１に示す４ウェイ・セットアソシアティブ方式のキャッシュメモリの場合、全てのキャッシュウェイがそれぞれ４つのＳＲＡＭブロックと周辺回路を備える。このようなキャッシュメモリの場合、ＳＲＡＭブロックレベルでの制御を施し、製造プロセスにおいて生成されるＳＲＡＭセルの欠陥を取り除くことができ、効果的にキャッシュメモリ全体の最低動作電圧を低減することができる。
【００１０】
ここで、図２を用いて、４ウェイ・セットアソシアティブ方式のキャッシュメモリの連想度について説明する。図に示すように、いくつかのＳＲＡＭセルが故障しているとして、故障したＳＲＡＭセルの欠陥を取り除くために、ＳＲＡＭブロックレベルでの制御を施し、故障したＳＲＡＭセルを含むＳＲＡＭブロックを無効にすることを想定する。
無効にしたＳＲＡＭブロックのキャッシュラインは使用できないため、それを含むインデックスにおいて、キャッシュラインの数、すなわち、タグのセット数（ウェイ数）である連想度が減少する。連想度が減少しても、他に割り当てられるキャッシュラインが存在する場合、問題は生じない。例えば、図２のインデックス０，１において、ウェイ０とウェイ１にキャッシュラインが存在しないが、ウェイ２とウェイ３には存在するので、このキャッシュメモリは、インデックス０，１において、連想度２で動作することが可能である。
【００１１】
このように、故障ＳＲＡＭセルを含むＳＲＡＭブロックを無効にしても、同一インデックスに他のキャッシュラインが存在する限り、キャッシュメモリとしての正常な動作が可能である。上述したように、故障ＳＲＡＭセルは、キャッシュメモリ内でランダムに分布することから、無効にするＳＲＡＭブロックの数がインデックス毎に異なることになる。従って、キャッシュメモリの各々のインデックスにおける連想度は、様々な値をとることになる。
図２の場合、キャッシュメモリのインデックス０，１においては連想度２、インデックス２，３においては連想度４、インデックス４〜７においては連想度３で動作する。
【００１２】
しかしながら、図３に示すように、ある特定のインデックスの全てのＳＲＡＭブロックが故障ＳＲＡＭセルを含んでいる場合、そのインデックスにおいてデータを割り当てるキャッシュラインが存在しなくなる。かかる状況では、キャッシュメモリとして適切な動作を行うことができない。そのため、故障ＳＲＡＭセルを含むブロックを無効にし、キャッシュ動作から単純に除外するだけでは、キャッシュの動作ができない場合が生じてしまうという問題がある。
したがって、故障ＳＲＡＭセルを含むＳＲＡＭブロック（故障ＳＲＡＭブロック）を単に無効にして動作から除外するだけでは好ましくなく、できるだけ故障ＳＲＡＭブロックを用いて、特定のインデックスにおいてデータを割り当てるキャッシュラインが存在しなくなるという問題を解決する必要がある。
【００１３】
また、一方で、本発明者らは、アプリケーションやメモリ状況に応じてメモリセルのビット信頼性を動的に変化させることができ、動作の安定性を確保して低消費電力化および高信頼性化を実現できるメモリを提案している。
提案するメモリは、１ビットが１個のメモリセルで構成されるモード（１ビット／１セルモード、以下「通常モード」と称する）と、１ビットがｎ（ｎは２以上）個のメモリセルを連結して構成されるモード（１ビット／ｎセルモード、以下「高信頼モード」と称する）とを動的に切り替えることができ、通常モードから高信頼モードに切り替えることにより、１ビットの動作安定性の増大および読出し動作のセル電流の増大（読出し動作の高速化）を行い、またビットエラーの自己修復が行えるメモリである（特許文献１〜３を参照）。
【００１４】
かかる提案の半導体メモリの一実施例は、図４に示すように、各々の出力がメモリセルの列に対応して配置される一対のビットラインの各々に至る経路に接続されるクロスカップル接続された一対のインバータと、ビットラインとインバータの出力との間に設けられた一対のスイッチ部と、スイッチ部の導通が制御し得る１本のワードラインとから構成されるメモリセルにおいて、隣接する２つのメモリセルのデータ保持ノード間に、１対のＰ型ＭＯＳトランジスタと、該Ｐ型ＭＯＳトランジスタが導通するように制御し得る１本のモード制御ラインを追加した構成とされる。
【００１５】
ここで、図４のメモリセルの回路動作を簡単に説明する。
図４に示すメモリセル（ＭＣ０１）は、電源電位ＶＶＤＤＡおよび接地電位ＶＧＮＤＡの間に直列に接続されるＰ型ＭＯＳトランジスタ（Ｍ００）およびＮ型ＭＯＳトランジスタ（Ｍ０２）と、電源電位ＶＶＤＤＡおよび接地電位ＶＧＮＤＡの間に直列に接続されるＰ型ＭＯＳトランジスタ（Ｍ０１）およびＮ型ＭＯＳトランジスタ（Ｍ０３）とからなるラッチ回路を構成している。メモリセル（ＭＣ０１）自体は、一般的な６トランジスタの構成のメモリセルである。
メモリセル（ＭＣ１０）も同様に、電源電位ＶＶＤＤＢおよび接地電位ＶＧＮＤＢの間に直列に接続されるＰ型ＭＯＳトランジスタ（Ｍ１０）およびＮ型ＭＯＳトランジスタ（Ｍ１２）と、電源電位ＶＶＤＤＢおよび接地電位ＶＧＮＤＢの間に直列に接続されるＰ型ＭＯＳトランジスタ（Ｍ１１）およびＮ型ＭＯＳトランジスタ（Ｍ１３）とからなるラッチ回路を構成している。メモリセル（ＭＣ１０）自体も、一般的な６トランジスタの構成のメモリセルである。
【００１６】
メモリセル（ＭＣ０１）では、Ｐ型ＭＯＳトランジスタ（Ｍ００）およびＮ型ＭＯＳトランジスタ（Ｍ０２）のゲート端子は、共にＰ型ＭＯＳトランジスタ（Ｍ０１）およびＮ型ＭＯＳトランジスタ（Ｍ０３）のノード（Ｎ０１）に接続されている。また、Ｐ型ＭＯＳトランジスタ（Ｍ０１）およびＮ型ＭＯＳトランジスタ（Ｍ０３）のゲート端子は、共にＰ型ＭＯＳトランジスタ（Ｍ００）およびＮ型ＭＯＳトランジスタ（Ｍ０２）のノード（Ｎ００）に接続されている。このようにＭ００〜Ｍ０３のトランジスタはクロスカップル接続されているため、Ｐ型ＭＯＳトランジスタ（Ｍ００，Ｍ０１）は負荷トランジスタとして動作し、Ｎ型ＭＯＳトランジスタ（Ｍ０２，Ｍ０３）は駆動トランジスタとして動作する。メモリセル（ＭＣ１０）も同様である。
【００１７】
またメモリセル（ＭＣ０１）は、相補なビットライン（ＢＬ，／ＢＬ）と、ノード（Ｎ００，Ｎ０１）との間にそれぞれ接続されたＮ型ＭＯＳトランジスタ（Ｍ０４、Ｍ０５）のスイッチ部を備える。Ｎ型ＭＯＳトランジスタ（Ｍ０４，Ｍ０５）のゲート端子は、共に共通のワードライン（ＷＬＡ）に接続されており、Ｎ型ＭＯＳトランジスタ（Ｍ０４，Ｍ０５）のゲート電位はワードライン（ＷＬＡ）により制御される。すわなち、メモリセル（ＭＣ０１）においては、Ｐ型ＭＯＳトランジスタ（Ｍ００，Ｍ０１）を負荷トランジスタとし、Ｎ型ＭＯＳトランジスタ（Ｍ０２，Ｍ０３）を駆動トランジスタし、Ｎ型ＭＯＳトランジスタ（Ｍ０４，Ｍ０５）をスイッチ部として動作するのである。
また、メモリセル（ＭＣ１０）も、相補なビットライン（ＢＬ，／ＢＬ）と、ノード（Ｎ１０，Ｎ１１）との間にそれぞれ接続されたＮ型ＭＯＳトランジスタ（Ｍ１４、Ｍ１５）のスイッチ部を備える。Ｎ型ＭＯＳトランジスタ（Ｍ１４，Ｍ１５）のゲート端子は、共に共通のワードライン（ＷＬＡ）に接続されており、Ｎ型ＭＯＳトランジスタ（Ｍ１４，Ｍ１５）のゲート電位はワードライン（ＷＬＡ）により制御される。
【００１８】
そして、メモリセル（ＭＣ０１，ＭＣ１０）のデータ保持ノード間（Ｎ００とＮ１０の間、Ｎ０１とＮ１１の間）に、モード制御スイッチ部となる１対のＰ型ＭＯＳトランジスタ（Ｍ２０、Ｍ２１）が設けられ、このＰ型ＭＯＳトランジスタ（Ｍ２０、Ｍ２１）の導通を制御する１本のモード制御ライン（／ＣＴＲＬ）が設けられている。
【００１９】
以上のような回路構成のメモリセルでは、１ビットのデータをメモリセル（ＭＣ０１）に記憶する場合と、１ビットのデータをメモリセル（ＭＣ０１）とメモリセル（ＭＣ１０）の２つのメモリセルに記憶する場合とを、モード制御ライン（／ＣＴＲＬ）を用いて、使い分けることが可能である。上記回路構成のメモリセルは、１ビットが１個のメモリセルで構成されるモード（通常モード）と、１ビットが２個のメモリセルを連結して構成されるモード（高信頼モード）の２つの状態を有し、アプリケーションやメモリ状況に応じてメモリセルのビット信頼性を動的に変化させることができ、動作の安定性を確保して低消費電力化および高信頼性化を実現する。
【先行技術文献】
【特許文献】
【００２０】
【特許文献１】国際公開パンフレットＷＯ２００９／０８８０２０
【特許文献２】国際公開パンフレットＷＯ２０１２／０２１２７７
【特許文献３】特開２０１１−０４００１０号公報
【非特許文献】
【００２１】
【非特許文献１】C. Wilkerson,H. Gao, A. R. Alameldeen,Z. Chishti, M. Khellah, andS. -L. Lu, “Trading Off Cache Capacity for Reliability to Enable Low VoltageOperation,” IEEE International Symposium Computer Architecture, pp 203-214,2008
【非特許文献２】J. Kim, N. Hardavellas, K. Mai, B. Falasafi,and J. C. Hoe, “Multi-Bit Error Tolerant Caches Using Two-Dimensional ErrorCoding,” ACM/IEEE International Symposium MicroArchitecture,pp. 197-209, 2007
【発明の概要】
【発明が解決しようとする課題】
【００２２】
上述したように、故障ＳＲＡＭセルを含むＳＲＡＭブロックを単に無効にするだけでは、セットアソシアティブ方式のキャッシュメモリは適切な動作をすることはできない。
上記状況に鑑みて、本発明は、特定のインデックスにおいてデータを割り当てるキャッシュラインが存在しなくなるという問題を解決すると共に、キャッシュメモリ全体の動作電圧を効果的に低減できる低電圧動作キャッシュメモリを提供することを目的とする。
【課題を解決するための手段】
【００２３】
上記目的を達成するため、本発明の低電圧動作キャッシュメモリは、タグにより構成されるデータ格納構造を備え、複数のメモリセルブロックから構成されるキャッシュウェイを複数備えるセットアソシアティブ方式のキャッシュメモリにおいて、以下の構成とされる。
先ず、メモリセルブロックは、各々の出力がメモリセルの列に対応して配置される一対のビットラインの各々に至る経路に接続されるクロスカップル接続された一対のインバータと、ビットラインとインバータの出力との間に設けられた一対のスイッチ部と、スイッチ部の導通を制御する１本のワードラインと、から構成されるメモリセルと、隣接するメモリセルのデータ保持ノード間にモード制御スイッチ部と、該モード制御スイッチ部の導通を制御する１本のモード制御ラインと、から構成される。
【００２４】
そして、メモリセルブロック毎に、１ビットが１個のメモリセルで構成される通常モードから、隣接する２個のメモリセルを連結して１ビットが２個のメモリセルで構成される高信頼モードへと切り替えできる回路構成を備え、メモリセルブロックがオフラインもしくはオンラインで故障検出された場合に、故障検出したメモリセルブロックを高信頼モードに切り替えて、隣接する２つのキャッシュラインのいずれかを使用するメモリセルブロックにする。これにより、故障したメモリセルブロックの動作マージンを拡大して、キャッシュメモリ全体の最低動作電圧を低減する。
【００２５】
本発明の低電圧動作キャッシュメモリのメモリセルブロックは、上記の構成とすることにより、隣接する２つのメモリセルのデータ保持ノード間のモード制御スイッチ部をオン状態（高信頼モード）にすると、１ビットのデータを２つのメモリセルで共有でき、これにより高信頼性を実現できる。すなわち、書き込み時には２本のワードラインを同時に立ち上げ、２つのメモリセルに同時に書き込む。それにより、ペア構造の上下メモリセルにおける書き込みマージンの劣化が緩和される。また、読み出し時にはワードラインを１本のみ立ち上げ、ビットラインを介してデータを読み出す。読み出し時には、読み出し動作マージンＳＮＭ（Static noise margin）の小さいメモリセルが他方のメモリセルによって強化される。さらに、内部ノードのキャパシタンスが大きくなる効果が得られるので、ソフトエラー耐性も向上できる。
【００２６】
メモリセルブロックは、オフラインもしくはオンラインで故障検出された場合に、どのメモリセルが故障したかを特定することなく、故障検出したメモリセルブロックを高信頼モードに切り替えて、上下に隣接する２つのキャッシュラインのいずれかを使用するメモリセルブロックにする。上述の通り、高信頼モードでは、メモリセルの動作マージンが増大するので、当該メモリセルブロックの動作マージンを拡大できるのである。
また、メモリセルブロック単位で高信頼モードに切り替えすることで、周辺回路（ＸＹデコーダ回路、センスアンプ回路など）の面積オーバヘッドを小さくする。
【００２７】
ここで、本発明の低電圧動作キャッシュメモリの故障したメモリセルブロックにおいて、高信頼モードに切り替えて、隣接する２つのキャッシュラインのいずれかを使用する際に、キャッシュメモリの全てのキャッシュインデックスに、キャッシュウェイの個数の半分の連想度以上でのキャッシュ動作が可能となるように、キャッシュラインの割り当てを行うことが好ましい。
【００２８】
キャッシュメモリの全てのキャッシュインデックスに対して、キャッシュウェイの個数の半分の連想度以上でのキャッシュ動作を可能にすることで、キャッシュインデックス毎の連想度のばらつきを最小限にし、キャッシュヒット率を高く維持できる。
例えば、４ウェイ・セットアソシアティブ方式のキャッシュメモリの場合、連想度２以上でのキャッシュ動作を可能とするように、キャッシュラインの割り当てを行う。また、８ウェイ・セットアソシアティブ方式のキャッシュメモリの場合、連想度４以上でのキャッシュ動作を可能とするように、キャッシュラインの割り当てを行う。
【００２９】
４ウェイ・セットアソシアティブ方式のキャッシュメモリにおいて、上述の図３に示すような、ある特定のインデックスの４つ全てのＳＲＡＭブロックが故障ＳＲＡＭセルを含んでいる場合、４つ全てのＳＲＡＭブロックを高信頼モードに切り替えて、連想度２以上でのキャッシュ動作を可能とするように、それぞれのＳＲＡＭブロックは、隣接する２つのキャッシュラインのいずれかを使用するように割り当てを行う。図５に示すように、例えば、ウェイ０とウェイ２が上のキャッシュライン、ウェイ１とウェイ３が下のキャッシュラインに割り当てると、連想度は２を維持できる。
【００３０】
具体的には、キャッシュラインの割り当ては、以下のようにすることで、キャッシュウェイの個数の半分の連想度以上でのキャッシュ動作が可能となる。
まず、本発明の低電圧動作キャッシュメモリの故障したメモリセルブロックにおいて、高信頼モードに切り替えて、隣接する２つのキャッシュラインのいずれかを使用する際に、偶数番号のキャッシュウェイのメモリセルブロックの場合には偶数インデックスのキャッシュラインが割り当てられ、奇数番号のキャッシュウェイのメモリセルブロックの場合には奇数インデックスのキャッシュラインが割り当てられる。
【００３１】
また、本発明の低電圧動作キャッシュメモリの故障したメモリセルブロックにおいて、高信頼モードに切り替えて、隣接する２つのキャッシュラインのいずれかを使用する際に、偶数番号のキャッシュウェイのメモリセルブロックの場合には奇数インデックスのキャッシュラインが割り当てられ、奇数番号のキャッシュウェイのメモリセルブロックの場合には偶数インデックスのキャッシュラインが割り当てられる。
【００３２】
また、本発明の低電圧動作キャッシュメモリの故障したメモリセルブロックにおいて、高信頼モードに切り替えて、隣接する２つのキャッシュラインのいずれかを使用する際に、キャッシュウェイの個数がＮ（番号は０，１，・・・，Ｎ−１）とした場合に、番号がＮ／２未満のキャッシュウェイのメモリセルブロックの場合には偶数インデックスのキャッシュラインが割り当てられ、番号がＮ／２以上のキャッシュウェイのメモリセルブロックの場合には奇数インデックスのキャッシュラインが割り当てられる。
【００３３】
また、本発明の低電圧動作キャッシュメモリの故障したメモリセルブロックにおいて、高信頼モードに切り替えて、隣接する２つのキャッシュラインのいずれかを使用する際に、キャッシュウェイの個数がＮ（番号は０，１，・・・，Ｎ−１）とした場合に、番号がＮ／２未満のキャッシュウェイのメモリセルブロックの場合には奇数インデックスのキャッシュラインが割り当てられ、番号がＮ／２以上のキャッシュウェイのメモリセルブロックの場合には偶数インデックスのキャッシュラインが割り当てられる。
【００３４】
また、本発明の低電圧動作キャッシュメモリの故障したメモリセルブロックにおいて、高信頼モード時に、隣接する２つのキャッシュラインのいずれを使用するかの識別情報として、使用しない無効キャッシュラインのキャッシュライン状態ビットを、｛Valid bit，Dirty bit｝＝｛０，１｝に設定することが好ましい。
一般的なＷｒｉｔｅ−ｂａｃｋキャッシュメモリにおいて、｛Valid bit，Dirty bit｝＝｛０，１｝の状態は取り得ない。よって、上記のように、無効キャッシュラインのValid bit，Dirty bitをそれぞれ０，１にして、無効キャッシュラインを判別することに利用できる。
【００３５】
次に、本発明の低電圧動作キャッシュメモリのＬＲＵ（Least Recently Used）置換アルゴリズムについて説明する。
本発明の低電圧動作キャッシュメモリのＬＲＵ置換アルゴリズムにおいて、故障したメモリセルブロックが高信頼モード時、使用しない無効キャッシュラインのＬＲＵツリービットをＭＲＵ（Most Recently Used）状態に固定する。
ＬＲＵ置換アルゴリズムでは、ＬＲＵキャッシュラインが置換対象になるが、無効キャッシュラインを常にＭＲＵ状態に固定することにより、無効キャッシュラインが置換対象のキャッシュラインになることを回避できる。
【００３６】
また、本発明の低電圧動作キャッシュメモリのＬＲＵ（Least
Recently Used）置換アルゴリズムにおいて、故障したメモリセルブロックが高信頼モード時、使用しない無効キャッシュラインがＭ個存在する場合、使用しない無効キャッシュラインのＬＲＵツリービットをキャッシュウェイの番号順に０（ＭＲＵ），１，・・・，Ｍ−１にする。
上記の構成にすることで、プロセッサがＤＶＳ制御において、Low voltage modeからHigh voltage modeへ切り替える場合、低電圧領域で故障し、高信頼モードで動作していたＳＲＡＭブロックを通常モードへ切り替える必要がある場合に、ＬＲＵツリービットの再設定を行う必要がなく、隣接するメモリセルのデータ保持ノード間に設けられたモード制御スイッチ部をオフにするだけでよい。
【００３７】
また、本発明の低電圧動作キャッシュメモリのＬＲＵ置換アルゴリズムにおいて、使用しない無効キャッシュラインがＭ個存在する場合、キャッシュミスが起きた際に割り当てた新しいデータのキャッシュラインのＬＲＵツリービットをＭとし、その他の使用するキャッシュラインのＬＲＵツリービットを、キャッシュミスが起きる以前の順番に従って、それぞれＭ＋１から順に１インクリメントする。
【００３８】
例えば、４ウェイ・セットアソシアティブ方式のキャッシュメモリにおいて、あるインデックスに無効キャッシュラインが１個存在する場合、無効キャッシュラインのＬＲＵ状態ビットは上述の通りＭＲＵ状態（例えば、０）に固定し、キャッシュミスが起きた際に割り当てた新しいデータのキャッシュラインのＬＲＵツリービットを１とし、他の使用するキャッシュラインのＬＲＵツリービットを、キャッシュミスが起きる以前の順番に従って、それぞれ２，３にする。
【００３９】
また、例えば、４ウェイ・セットアソシアティブ方式のキャッシュメモリにおいて、あるインデックスに無効キャッシュラインが２個存在する場合、無効キャッシュラインのＬＲＵツリービットは上述の通り０（ＭＲＵ）に固定し、或いは、無効キャッシュラインのＬＲＵツリービットをキャッシュウェイの番号順に０（ＭＲＵ），１に固定する。キャッシュミスが起きた際に割り当てた新しいデータのキャッシュラインのＬＲＵツリービットを２とし、他の使用するキャッシュラインのＬＲＵツリービットを３にする。
【００４０】
また、本発明の低電圧動作キャッシュメモリのＬＲＵ置換アルゴリズムにおいて、使用しない無効キャッシュラインがＭ個存在する場合、キャッシュヒットが起きたキャッシュラインのＬＲＵツリービットをＭとし、その他の使用するキャッシュラインのＬＲＵツリービットを、キャッシュミスが起きる以前の順番に従って、それぞれＭ＋１から順に１インクリメントする。
【００４１】
例えば、４ウェイ・セットアソシアティブ方式のキャッシュメモリにおいて、あるインデックスに無効キャッシュラインが１個存在する場合、無効キャッシュラインのＬＲＵツリービットは上述の通り０（ＭＲＵ）に固定し、或いは、無効キャッシュラインのＬＲＵツリービットをキャッシュウェイの番号順に０（ＭＲＵ），１に固定し、キャッシュヒットが起きたキャッシュラインのＬＲＵツリービットを１とし、他の使用するキャッシュラインのＬＲＵツリービットを、キャッシュミスが起きる以前の順番に従って、それぞれ２，３にする。
【００４２】
また、例えば、４ウェイ・セットアソシアティブ方式のキャッシュメモリにおいて、あるインデックスに無効キャッシュラインが２個存在する場合、無効キャッシュラインのＬＲＵツリービットは上述の通りＭＲＵ状態（例えば、０）に固定し、キャッシュヒットが起きたキャッシュラインのＬＲＵツリービットを２とし、他の使用するキャッシュラインのＬＲＵツリービットを３にする。
【発明の効果】
【００４３】
本発明の低電圧動作キャッシュメモリによれば、故障ＳＲＡＭセルを含むＳＲＡＭブロック（故障ＳＲＡＭブロック）を単に無効にするのではなく、故障ＳＲＡＭブロックを高信頼モードに切り替え、故障ＳＲＡＭブロックを動作マージンが拡大された元の半分のキャッシュラインを有するＳＲＡＭブロックに再構成できる。
また、本発明の低電圧動作キャッシュメモリによれば、故障ＳＲＡＭブロックが存在した場合でも、連想度が２以上で、適切なキャッシュ動作を行うことができる。
すなわち、本発明の低電圧動作キャッシュメモリによれば、特定のインデックスにおいてデータを割り当てるキャッシュラインが存在しなくなるという問題を解決すると共に、キャッシュメモリ全体の動作電圧を効果的に低減できる。
【図面の簡単な説明】
【００４４】
【図１】４ウェイ・セットアソシアティブ方式のキャッシュメモリの回路構成図
【図２】４ウェイ・セットアソシアティブ方式のキャッシュメモリのデータ構造図
【図３】従来の問題点の説明図
【図４】メモリセルのビット信頼性を向上するメモリセルペアの回路構成図
【図５】従来の問題に関してメモリセルペアを使用した場合の説明図
【図６】実施例１のセットアソシアティブ方式のキャッシュメモリのデータ構造図
【図７】実施例１のセットアソシアティブ方式のキャッシュメモリのキャッシュラインの選定パターン例
【図８】偶数番号のキャッシュウェイのメモリセルブロックの場合には偶数インデックスのキャッシュラインが割り当てられ、奇数番号のキャッシュウェイのメモリセルブロックの場合には奇数インデックスのキャッシュラインが割り当てられる様子を示した回路図
【図９】８ウェイ・セットアソシアティブ方式のキャッシュメモリのデータ構造図
【図１０】キャッシュラインの状態ビットの説明図
【図１１】キャッシュメモリのブロック図
【図１２】実施例１のセットアソシアティブ方式のキャッシュメモリのＬＲＵ置換アルゴリズムの説明図（キャッシュミスが生じたケース）
【図１３】実施例１のセットアソシアティブ方式のキャッシュメモリのＬＲＵ置換アルゴリズムの説明図（キャッシュヒットが生じたケース）
【図１４】ＳＲＡＭブロックにおける最低動作電圧実測結果グラフ
【図１５】８ウェイ・セットアソシアティブ方式のキャッシュメモリのＬＲＵ置換アルゴリズム（通常モードから高信頼モードへ切替）の説明図（１）
【図１６】８ウェイ・セットアソシアティブ方式のキャッシュメモリのＬＲＵ置換アルゴリズム（通常モードから高信頼モードへ切替）の説明図（２）
【図１７】８ウェイ・セットアソシアティブ方式のキャッシュメモリのＬＲＵ置換アルゴリズム（高信頼モードから通常モードへ切替）の説明図（１）
【図１８】８ウェイ・セットアソシアティブ方式のキャッシュメモリのＬＲＵ置換アルゴリズム（高信頼モードから通常モードへ切替）の説明図（２）
【図１９】８ウェイ・セットアソシアティブ方式のキャッシュメモリのＬＲＵ置換アルゴリズム（キャッシュミス）の説明図（１）
【図２０】８ウェイ・セットアソシアティブ方式のキャッシュメモリのＬＲＵ置換アルゴリズム（キャッシュミス）の説明図（２）
【図２１】８ウェイ・セットアソシアティブ方式のキャッシュメモリのＬＲＵ置換アルゴリズム（キャッシュヒット）の説明図（１）
【図２２】８ウェイ・セットアソシアティブ方式のキャッシュメモリのＬＲＵ置換アルゴリズム（キャッシュヒット）の説明図（２）
【図２３】８ウェイ・セットアソシアティブ方式のキャッシュメモリのＬＲＵ置換アルゴリズム（無効キャッシュラインが複数の場合のキャッシュミス）の説明図（１）
【図２４】８ウェイ・セットアソシアティブ方式のキャッシュメモリのＬＲＵ置換アルゴリズム（無効キャッシュラインが複数の場合のキャッシュミス）の説明図（２）
【図２５】８ウェイ・セットアソシアティブ方式のキャッシュメモリのＬＲＵ置換アルゴリズム（無効キャッシュラインが複数の場合のキャッシュヒット）の説明図（１）
【図２６】８ウェイ・セットアソシアティブ方式のキャッシュメモリのＬＲＵ置換アルゴリズム（無効キャッシュラインが複数の場合のキャッシュヒット）の説明図（２）
【図２７】８ウェイ・セットアソシアティブ方式のキャッシュメモリのＬＲＵ置換アルゴリズム（無効キャッシュラインが複数の場合のキャッシュミス）の説明図（３）
【図２８】８ウェイ・セットアソシアティブ方式のキャッシュメモリのＬＲＵ置換アルゴリズム（無効キャッシュラインが複数の場合のキャッシュミス）の説明図（４）
【図２９】８ウェイ・セットアソシアティブ方式のキャッシュメモリのＬＲＵ置換アルゴリズム（無効キャッシュラインが複数の場合のキャッシュヒット）の説明図（３）
【図３０】８ウェイ・セットアソシアティブ方式のキャッシュメモリのＬＲＵ置換アルゴリズム（無効キャッシュラインが複数の場合のキャッシュヒット）の説明図（４）
【発明を実施するための最良の形態】
【００４５】
以下、本発明の実施形態について、図面を参照しながら詳細に説明していく。なお、本発明の範囲は、以下の実施例や図示例に限定されるものではなく、幾多の変更及び変形が可能である。
【実施例１】
【００４６】
図６は、実施例１の４ウェイ・セットアソシアティブ方式のキャッシュメモリのデータ構造図を示している。
各ウェイは、４つのＳＲＡＭブロックで構成されている。また、各ＳＲＡＭブロックの個々のメモリセルは、上下に隣接したメモリセルペアとなっており、図４に示すように、６トランジスタで構成される１ビットのメモリセルペア（ＭＣ０１，ＭＣ１０）のデータ保持ノード間に、モード制御スイッチ部として１対のＰ型ＭＯＳトランジスタ（Ｍ２０，Ｍ２１）と、このＰ型ＭＯＳトランジスタの導通を制御する１本のモード制御ライン（／ＣＴＲＬ）とが設けられている。そして、上下に隣接したメモリセルペアは、通常モードと動作マージンが拡大される高信頼モードの２つのモードを実現する。
通常モードは、１ビットが１個のメモリセル（ＭＣ０１、或いは、ＭＣ１０）で構成される。一方、高信頼モードは、１ビットが２個のメモリセルのペア（ＭＣ０１，ＭＣ１０）で構成される。２つの動作モードの切り替えは、メモリセルのペア（ＭＣ０１，ＭＣ１０）の間にあるＰ型ＭＯＳトランジスタの導通を制御する１本のモード制御ライン（／ＣＴＲＬ）で行う。
このようなメモリセルペアをマトリックス状に配置したＳＲＡＭブロックによって、ウェイを構成し、図６に示すようにキャッシュメモリのデータ構造になっている。
【００４７】
図６に示すデータ構造図では、図２のデータ構造で、ウェイ０の１段目とウェイ１の１段目，３段目とウェイ３の４段目のそれぞれのＳＲＡＭブロックに故障（ｄｅｆｅｃｔ）が生じた際に、ウェイ０の１段目とウェイ１の１段目，３段目とウェイ３の４段目のそれぞれの故障ＳＲＡＭブロックは、動作マージンが拡大される高信頼モードに切り替わる。その際、どのメモリセルに故障が生じたかは探索とせず、故障ＳＲＡＭブロック全体が高信頼モードになる。高信頼モードになった故障ＳＲＡＭブロックでは、動作マージンが拡大された半分のキャッシュラインが生成できる。そのため、故障ＳＲＡＭブロックを単にキャッシュ動作から除外するのではなく、故障ＳＲＡＭブロックを使用し続けることが可能になる。
【００４８】
従って、故障ＳＲＡＭブロックを単に動作から除外する場合と比べて、平均連想度が向上する。これについて詳細に述べる。図２のデータ構造の場合、インデックス０〜７について、それぞれ故障していないＳＲＡＭブロック数は、３，３，４，４，３，４，３，４である。ここで、故障ＳＲＡＭブロックを単にキャッシュ動作から除外すると、インデックス０〜７について、故障していないＳＲＡＭブロック数は、２，２，４，４，３，３，３，３になる。従って、キャッシュメモリ全体の平均連想度は（２＋２＋４＋４＋３＋３＋３＋３）÷８＝３になる。
【００４９】
一方、図６のデータ構造図の場合、インデックス０〜７について、それぞれ故障していないＳＲＡＭブロック数は、３，３，４，４，３，４，３，４である。図６の場合、故障ＳＲＡＭブロックを高信頼モードに切り替えて、動作マージンを拡大してそのままキャッシュ動作を継続するので、インデックス０〜７について、故障していないＳＲＡＭブロック数は、３，３，４，４，３，４，３，４になる。従って、キャッシュメモリ全体の平均連想度は（３＋３＋４＋４＋３＋４＋３＋４）÷８＝３．５に向上される。
【００５０】
図７は、実施例１のセットアソシアティブ方式のキャッシュメモリのキャッシュラインの選定パターン例を示している。図７（Ａ）は、隣接する２つキャッシュラインのインデックスをＮ，Ｎ＋１とした場合に、偶数番号のキャッシュウェイ（ウェイ０，２，・・・，６）のメモリセルブロックの場合にはインデックス番号Ｎのキャッシュラインが割り当てられ（ＥＮＡＢＬＥ
ＣＡＣＨＥ ＬＩＮＥを割り当て）、奇数番号のキャッシュウェイ（ウェイ１，３，・・・，７）のメモリセルブロックの場合にはインデックス番号Ｎ＋１のインデックスのキャッシュラインが割り当てられる選定パターンを示している。例えば、Ｎが偶数の場合、偶数番号のキャッシュウェイのメモリセルブロックの場合には偶数インデックスのキャッシュラインが割り当てられ、奇数番号のキャッシュウェイのメモリセルブロックの場合には奇数インデックスのキャッシュラインが割り当てられる。また、Ｎが奇数の場合、偶数番号のキャッシュウェイのメモリセルブロックの場合には奇数インデックスのキャッシュラインが割り当てられ、奇数番号のキャッシュウェイのメモリセルブロックの場合には偶数インデックスのキャッシュラインが割り当てられる。
【００５１】
また、図７（Ｂ）は、隣接する２つキャッシュラインのインデックスをＮ，Ｎ＋１とした場合に、キャッシュウェイ（ウェイ０，１，６，７）のメモリセルブロックの場合にはインデックス番号Ｎのキャッシュラインが割り当てられ（ＥＮＡＢＬＥ
ＣＡＣＨＥ ＬＩＮＥを割り当て）、その他のキャッシュウェイ（ウェイ２，３，４，５）のメモリセルブロックの場合にはインデックス番号Ｎ＋１のインデックスのキャッシュラインが割り当てられる選定パターンを示している。
【００５２】
また、図７（Ｃ）は、隣接する２つキャッシュラインのインデックスをＮ，Ｎ＋１とした場合に、キャッシュウェイ（ウェイ０，１，６，７）のメモリセルブロックの場合にはインデックス番号Ｎ＋１のキャッシュラインが割り当てられ（ＥＮＡＢＬＥ
ＣＡＣＨＥ ＬＩＮＥを割り当て）、その他のキャッシュウェイ（ウェイ２，３，４，５）のメモリセルブロックの場合にはインデックス番号Ｎのインデックスのキャッシュラインが割り当てられる選定パターンを示している。
【００５３】
このように、故障ＳＲＡＭブロックにおいて、高信頼モードに切り替えて、隣接する２つのキャッシュラインのいずれかを使用する際に、キャッシュメモリの全てのキャッシュインデックスに、キャッシュウェイの個数の半分の連想度以上でのキャッシュ動作が可能となるようにキャッシュラインの割り当てを行う。
【００５４】
図８は、図７（Ａ）の選定パターンの回路図であり、偶数番号のキャッシュウェイのメモリセルブロックの場合にはインデックス番号Ｎ，Ｎ＋２，・・・，Ｎ＋６２のキャッシュラインが割り当てられ、奇数番号のキャッシュウェイのメモリセルブロックの場合にはインデックス番号Ｎ＋１，Ｎ＋３，・・・，Ｎ＋６３のキャッシュラインが割り当てられる様子を示した回路図を示している。図８（１）は、偶数番号のキャッシュウェイのメモリセルブロックのメモリセル回路構造であり、上下に隣接するメモリセルペアの下側のメモリセルが無効とされ（ＤＩＳＡＢＬＥ）、インデックス番号Ｎ，Ｎ＋２，・・・，Ｎ＋６２のキャッシュラインが割り当てられている。図８（２）は、奇数番号のキャッシュウェイのメモリセルブロックのメモリセル回路構造であり、上下に隣接するメモリセルペアの上側のメモリセルが無効とされ（ＤＩＳＡＢＬＥ）、インデックス番号Ｎ＋１，Ｎ＋３，・・・，Ｎ＋６３のキャッシュラインが割り当てられている。
【００５５】
図９は、８ウェイ・セットアソシアティブ方式のキャッシュメモリのデータ構造図である。各ウェイは１６ＫｂｉｔのＳＲＡＭブロックを４個備え、キャッシュメモリ全体で３２個のＳＲＡＭブロックを備えた５１２Ｋｂｉｔの８ウェイ・セットアソシアティブ方式のキャッシュメモリである。
奇数番号のキャッシュウェイのメモリセルブロックの場合には奇数インデックスのキャッシュラインが割り当てられるとする（偶数インデックスのキャッシュラインは無効）。
図９に示すように、ウェイ１の２段目のＳＲＡＭブロックが故障ブロックであると、高信頼モードに切り替えた場合に、偶数インデックスのキャッシュラインは無効となり、奇数インデックス（インデックス６５，６７，・・・，１２５，１２７）のキャッシュラインのみ割り当てられる。その結果、インデックス番号６４〜１２７の連想度は、７，８，７，８，・・・，７，８となる。
【００５６】
図１０は、キャッシュラインの状態ビットの説明図である。故障ＳＲＡＭブロックにおいて、高信頼モード時に、隣接する２つのキャッシュラインのいずれを使用するかの識別情報として、使用しない無効状態（ＩＮＶＡＬＩＤ）のキャッシュラインのキャッシュライン状態ビットを｛Valid bit，Dirty bit｝＝｛０，１｝に設定する。
このように、無効キャッシュラインは、キャッシュの状態ビットの性質を利用することで容易に判別することが可能である。
一般的なＷｒｉｔｅ−ｂａｃｋキャッシュメモリにおいて｛Valid bit，Dirty bit｝＝｛０，１｝の状態は取り得ない。よって、上記のように、無効キャッシュラインのValid bit，Dirty bitをそれぞれ０，１にして、無効キャッシュラインを判別することに利用する。その他のキャッシュライン状態（ＥＭＰＴＹ，ＣＬＥＡＮ，ＤＩＲＴＹ）は、予め使用されているものであり、本発明では特に変更しない。
【００５７】
図１１は、キャッシュメモリのブロック図である。図１１に示すキャッシュメモリは、６４ＫＢの８ウェイ・セットアソシアティブ方式のキャッシュメモリ（３２バイトキャッシュライン）であり、データアレーを４つのＳＲＡＭバンクで構成している。図に示すように、データアレーに合わせてタグアレーも４つのＳＲＡＭブロックで構成している。データアレーとタグアレーのＳＲＡＭセルとして、図４に示すような、６トランジスタで構成される１ビットのメモリセルペア（ＭＣ０１，ＭＣ１０）のデータ保持ノード間に、モード制御スイッチ部として１対のＰ型ＭＯＳトランジスタ（Ｍ２０，Ｍ２１）と、このＰ型ＭＯＳトランジスタの導通を制御する１本のモード制御ライン（／ＣＴＲＬ）とが設けられているセルを用いる。そして、上下に隣接したメモリセルペアは、通常モードと動作マージンが拡大される高信頼モードの２つのモードを実現する。ＳＲＡＭブロック単位で通常モードと高信頼モードの２つのモードの切替制御を行えるようにする。キャッシュステータスＲＡＭは、１つのブロックの６トランジスタで構成される１ビットのメモリセルで構成する。キャッシュステータスＲＡＭには、一般的なキャッシュと同様に、ＶＡＬＩＤ，ＤＩＲＴＹ，キャッシュのブロック置換アルゴリズム情報（ＬＲＵなど）などが格納されている。
【００５８】
次に、本発明のキャッシュメモリのＬＲＵ（Least Recently Used）置換アルゴリズムについて説明する。
図１２は、実施例１の４ウェイ・セットアソシアティブ方式のキャッシュメモリのＬＲＵ置換アルゴリズムの説明図（キャッシュミスが生じたケース）である。図１２（１）は従来のＬＲＵ置換アルゴリズムによるキャッシュ動作の一例を示しており、図１２（２）が本発明のキャッシュメモリに適用するように改良されたＬＲＵ置換アルゴリズムによるキャッシュ動作の一例を示している。説明を簡単にするため、ウェイを構成するいずれかのＳＲＡＭブロックが高信頼モードに切り替わるという状態を、図１２のようにウェイが高信頼モードに切り替わったように図示する。
【００５９】
まず、図１２（１）の従来のＬＲＵ置換アルゴリズムによるキャッシュ動作を説明する。４つのキャッシュウェイ（ＷＡＹ０〜３）のＬＲＵツリービットが、ある順番になっているとして、キャッシュウェイ２（ＷＡＹ２）に高信頼モードを適用する。無効キャッシュラインをキャッシュ動作から外すために、高信頼モードで動作するＳＲＡＭブロックにおいて、論理上で無効化されたインデックスのＬＲＵ状態をＭＲＵ（Most
Recently Used)、すなわちＬＲＵツリービットを０に固定する。これにより、無効キャッシュラインにデータが割り当てられることを避ける。
従来のＬＲＵ置換アルゴリズムでは、キャッシュウェイ２が論理上で無効化されている状態で、キャッシュミスが起きた場合、ＬＲＵツリー上のＬＲＵ（ＬＲＵツリービットが３）のキャッシュライン（キャッシュウェイ０）に新しいデータを割り当て、そのキャッシュラインをＭＲＵ（ＬＲＵツリービットが０）とする。他のキャッシュラインのＬＲＵツリービットをそれぞれ１インクリメントする（ＷＡＹ１：２−＞３，ＷＡＹ２：０−＞１，ＷＡＹ３：１−＞２）。
【００６０】
次に、図１２（２）の改良されたＬＲＵ置換アルゴリズムによるキャッシュ動作を説明する。改良されたＬＲＵ置換アルゴリズムでは、キャッシュミスが起きた場合、ＬＲＵ状態のキャッシュラインに新しいデータを割り当てる際に、もし、高信頼モードが適用された無効キャッシュラインがＮ個存在すれば、新しいデータを割り当てたキャッシュラインのＬＲＵツリービットをＭＲＵ＋Ｎ、すなわち、図１２のように高信頼モードが適用された無効キャッシュラインが１個存在するならば、新しいデータを割り当てたキャッシュライン（キャッシュウェイ０）のＬＲＵツリービットを０＋１＝１とする。無効でない他の有効なキャッシュラインのＬＲＵツリービットをそれぞれ１インクリメントする（ＷＡＹ１：２−＞３，ＷＡＹ３：１−＞２）。
なお、無効キャッシュラインが存在しなければ、従来のＬＲＵ置換アルゴリズムと同じ動作をする。
【００６１】
また、図１３は、実施例１の４ウェイ・セットアソシアティブ方式のキャッシュメモリのＬＲＵ置換アルゴリズムの説明図（キャッシュヒットが生じたケース）である。図１３（１）は従来のＬＲＵ置換アルゴリズムによるキャッシュ動作の一例を示しており、図１３（２）が本発明のキャッシュメモリに適用するように改良されたＬＲＵ置換アルゴリズムによるキャッシュ動作の一例を示している。図１３においても、図１２と同様に、説明を簡単にするため、ウェイを構成するいずれかのＳＲＡＭブロックが高信頼モードに切り替わるという状態を、ウェイが高信頼モードに切り替わったように図示する。
【００６２】
まず、図１３（１）の従来のＬＲＵ置換アルゴリズムによるキャッシュ動作を説明する。４つのキャッシュウェイ（ＷＡＹ０〜３）のＬＲＵツリービットが、ある順番になっているとして、キャッシュウェイ２（ＷＡＹ２）に高信頼モードを適用する。無効キャッシュラインをキャッシュ動作から外すために、高信頼モードで動作するＳＲＡＭブロックにおいて、論理上で無効化されたインデックスのＬＲＵ状態をＭＲＵ（Most Recently Used)、すなわちＬＲＵツリービットを０に固定する。これにより、無効キャッシュラインにデータが割り当てられることを避ける。
【００６３】
従来のＬＲＵ置換アルゴリズムでは、キャッシュウェイ２が論理上で無効化されている状態で、キャッシュウェイ１でキャッシュヒットが起きた場合、キャッシュヒットが起きたキャッシュウェイ１のキャッシュラインをＭＲＵ（ＬＲＵツリービットが０）とする。他のキャッシュラインのうち、ＬＲＵツリービットの状態がキャッシュヒットしたキャッシュラインより小さいキャッシュラインのＬＲＵツリービットを１インクリメントする。図１３に示す例では、キャッシュウェイ１（ＬＲＵツリービットが２）よりＬＲＵツリービットの値が小さい、キャッシュウェイ２（ＬＲＵツリービットが０），キャッシュウェイ３（ＬＲＵツリービットが１）のＬＲＵツリービットを１インクリメントする。
【００６４】
次に、図１３（２）の改良されたＬＲＵ置換アルゴリズムによるキャッシュ動作を説明する。改良されたＬＲＵ置換アルゴリズムでは、高信頼モードが適用された無効キャッシュラインがＮ個存在すれば、キャッシュウェイ１でキャッシュヒットが起きた場合、キャッシュヒットが起きたキャッシュウェイ１のＬＲＵツリービットをＭＲＵ＋Ｎ、すなわち、図１３のように高信頼モードが適用された無効キャッシュラインが１個存在するならば、キャッシュヒットが起きたキャッシュウェイ１のＬＲＵツリービットを０＋１＝１とする。無効でない他の有効なキャッシュライン以外で、ＬＲＵツリービットの状態がキャッシュヒットしたキャッシュライン１のＬＲＵツリービットの状態（図１３では２の状態）より小さいもののＬＲＵツリービットを１インクリメントする。図１３の例では、キャッシュウェイ３が、キャッシュライン１のＬＲＵツリービットの状態より小さいもののＬＲＵツリービットを有し、キャッシュウェイ３のＬＲＵツリービットを１インクリメントする（ＷＡＹ３：１−＞２）。
なお、無効キャッシュラインが存在しなければ、従来のＬＲＵ置換アルゴリズムと同じ動作をする。
【００６５】
図１４は、ＳＲＡＭブロックにおける最低動作電圧実測結果グラフである。実測対象のキャッシュメモリは、６５ｎｍＣＭＯＳプロセスで試作した５１２Ｋｂｉｔの８ウェイ・セットアソシアティブ方式のキャッシュメモリである。３２個の１６ＫｂｉｔのＳＲＡＭブロックで構成され、各ウェイは４個のＳＲＡＭブロックから成る。
このキャッシュメモリは、高信頼モードで０．５７（Ｖ）で動作可能であることがわかっている。従って、通常モードにおいて０．５７（Ｖ）で動作できないＳＲＡＭブロックのみ高信頼モードを適用することで、全体の動作電圧を低減することができる。
図１４のグラフにおいて、左側が通常モード、右側が高信頼モードの場合を示しており、それぞれ３２個のＳＲＡＭブロック（０〜３１）の動作電圧を実測している。通常モードでは、図中に丸印を付記した５つのＳＲＡＭブロック（６，８，１６，２５，２８）に高信頼モードを適用することにより、０．６５（Ｖ）から０．５７（Ｖ）へと８０（ｍＶ）の動作電圧の削減効果を得ることができる。この場合、１６Ｋｂｉｔの５つのブロックにおいて、それぞれメモリ容量が半減することから、全体のメモリ容量は、１６×５×０．５＝４０Ｋｂｉｔ減少し、５１２−４０＝４７２Ｋｂｉｔになる。従って、キャッシュメモリの容量オーバヘッドは、４０÷５１２×１００＝７．８１（％）になる。
【００６６】
次に、キャッシュメモリの面積オーバヘッドについて説明する。面積オーバヘッドの評価には、ＣＡＣＴＩ（詳細は、N. Muralimanohar, R. Balasubramonian,
and N. P. Jouppi, “CACTI
6.0,” Technical Report HPL-2009-85, Hewlett Packard Labs, 2009を参照。）を用いた。
本発明のキャッシュメモリに用いるメモリセルペア（１４トランジスタで構成）を用いたＳＲＡＭセル（Ｐｒｏｐｏｓｅｄ）の面積は、通常の６トランジスタで構成されるＳＲＡＭセルペア（６Ｔ
ＳＲＡＭ）の面積より１１％大きい（詳細は、H. Fujiwara, S. Okumura, Y. Iguchi, H.
Noguchi, H. Kawaguchi and M. Yoshimoto, “A
7T/14T Dependable SRAM and Its Array Structure to Avoid Half Selection,” IEEE
International Conference on VLSI Design, pp. 295-300, 2009.を参照。）。
また、評価対象である、３２バイトのキャッシュラインを持つ５１２Ｋｂｉｔ（６４ＫＢ）の８ウェイ・セットアソシアティブ方式の場合、タグアレーの容量は４．７５ＫＢと小さく、ばらつきの影響が比較的小さいと考えられることから、面積オーバヘッドの評価においてはＳＴＡＴＵＳ
ＲＡＭと同様に６トランジスタのＳＲＡＭで構成することにした。そして、タグアレーには、０．５（Ｖ）で動作可能な、最小面積より１．３倍大きい６トランジスタのＳＲＡＭを使用すると仮定した。
【００６７】
下記表１に、５１２Ｋｂｉｔ（６４ＫＢ）の８ウェイ・セットアソシアティブ方式のキャッシュメモリの面積オーバヘッドを見積もった結果を示す。６５ｎｍプロセスにおいて、本発明のキャッシュメモリは、５．２２％の面積オーバヘッドであった。
【００６８】
【表１】
2014115723.tif 000003
【実施例２】
【００６９】
図１５〜３０を参照して、８ウェイ・セットアソシアティブ方式のキャッシュメモリについて、故障ＳＲＡＭブロックが複数（Ｍ個）存在し、無効キャッシュラインが複数（Ｍ個）存在する場合について、例を挙げて説明する。
ここで、ＭＲＵを０，ＬＲＵを７とする。また、実施例１と同様、説明を簡単にするため、ウェイを構成するいずれかのＳＲＡＭブロックが高信頼モードに切り替わるという状態を、ウェイが高信頼モードに切り替わったように図示する。
図１５は、オンラインで高信頼モードに切り替え、無効キャッシュラインがＭ個（Ｍ＝３）存在する場合に、Ｍ個の無効キャッシュラインのＬＲＵ状態をＭＲＵ（＝０）に設定する様子を示している。また、他の無効でないキャッシュラインは、ＬＲＵツリービットの順番に従って、Ｍ（＝３）からＮ−１（＝７）にする。ここで、Ｎはウェイ数の８である。
図１５では、キャッシュウェイ２，４，６が、高信頼モードで動作するＳＲＡＭブロックであり、論理上で無効にしたインデックスのキャッシュラインである（Ｍ＝３）。キャッシュウェイ２，４，６のＬＲＵ状態を全てＭＲＵ（＝０）に固定し、他のキャッシュラインのＬＲＵ状態は、ＬＲＵツリービットの順番で３から７までとなる。
【００７０】
また、図１６は、オンラインで高信頼モードに切り替え、無効キャッシュラインがＭ個（Ｍ＝３）存在する場合に、Ｍ個の無効キャッシュラインのＬＲＵ状態をＭＲＵ（＝０）からウェイ番号順にＭ−１（＝２）までに設定する。また、他の無効でないキャッシュラインは、ＬＲＵツリービットの順番に従って、Ｍ（＝３）からＮ−１（＝７）にする。ここで、Ｎはウェイ数の８である。
図１６では、キャッシュウェイ２，４，６が、高信頼モードで動作するＳＲＡＭブロックであり、論理上で無効にしたインデックスのキャッシュラインである（Ｍ＝３）。キャッシュウェイ２，４，６のＬＲＵ状態を順番に、ＭＲＵ（＝０），１，２に固定し、他のキャッシュラインのＬＲＵ状態は、ＬＲＵツリービットの順番で３から７までとなる。
【００７１】
例えば、プロセッサがＤＶＳ制御において、Low
voltage modeからHigh voltage modeへ切り替える場合、低電圧領域で故障し、高信頼モードで動作していたＳＲＡＭブロックを通常モードへ切り替える必要がある。その時、図１６に示すように、高信頼モードで動作しているキャッシュウェイ２，４，６のＬＲＵ状態を順番に、ＭＲＵ（＝０），１，２に固定しておけば、ＬＲＵツリービットの再設定を行う必要がなく（図１７を参照）、データアレーとタグアレーにおけるメモリセルペアのモード制御スイッチ部（ＰＭＯＳスイッチ）をオフにするだけでよい。
【００７２】
一方、図１５に示すように、高信頼モードで動作しているキャッシュウェイ２，４，６のＬＲＵ状態を全てＭＲＵ（＝０）に固定した場合には、無効キャッシュラインのＬＲＵツリービットが全てＭＲＵ（＝０）になっているので、ＳＲＡＭブロックを通常モードへ切り替える際には、キャッシュウェイ２，４，６のＬＲＵ状態を０，１，２というようにＬＲＵツリービットの再設定を行う必要がある（図１８を参照）。
【００７３】
次に、図１９〜２２を参照して、使用しない無効キャッシュラインが１つの場合の８ウェイ・セットアソシアティブ方式のキャッシュメモリのＬＲＵ置換アルゴリズムについて説明する。図１９，２０はキャッシュミスの説明図であり、図２１，２２はキャッシュヒットの説明図である。
図１９〜２２では、キャッシュウェイ２（ＷＡＹ２）だけが高信頼モードとなり、使用しない無効キャッシュライン数が１つの場合を示している。
図１９は、従来のＬＲＵ置換アルゴリズムを適用した場合を示しており、キャッシュミスが起きて、ＬＲＵツリービットでＬＲＵ（＝７）のキャッシュウェイ１がデータ更新されてＭＲＵ（＝０）となり、他のキャッシュウェイのＬＲＵツリービットの状態が１インクリメントされた様子を示している。
【００７４】
一方、図２０は、改良されたＬＲＵ置換アルゴリズムを適用した場合を示しており、キャッシュミスが起きて、ＬＲＵツリービットでＬＲＵ（＝７）のキャッシュウェイ１がデータ更新されてＭＲＵ＋１＝１となり、他の有効なキャッシュウェイのＬＲＵツリービットの状態が１インクリメントされた様子を示している。キャッシュウェイ２（ＷＡＹ２）のＬＲＵツリービットの状態は、ＭＲＵ（＝０）に固定されている。
【００７５】
また、図２１は、従来のＬＲＵ置換アルゴリズムを適用した場合を示しており、キャッシュウェイ３でキャッシュヒットが起きて、ＬＲＵツリービットの状態がＭＲＵ（＝０）となり、キャッシュヒットが起きたキャッシュウェイ３のＬＲＵツリービットの状態より小さい状態（０〜５）の他のキャッシュウェイのＬＲＵツリービットの状態が１インクリメントされた様子を示している。
【００７６】
一方、図２２は、改良されたＬＲＵ置換アルゴリズムを適用した場合を示しており、キャッシュウェイ３でキャッシュヒットが起きて、ＬＲＵツリービットの状態がＭＲＵ＋１＝１となり、キャッシュヒットが起きたキャッシュウェイ３のＬＲＵツリービットの状態より小さい状態で、かつ、ＬＲＵツリービットの状態がＭＲＵ（＝０）の無効キャッシュラインでない他の有効なキャッシュウェイのＬＲＵツリービットの状態が１インクリメントされた様子を示している。
【００７７】
次に、図２３〜２６を参照して、使用しない無効キャッシュラインが３つの場合の８ウェイ・セットアソシアティブ方式のキャッシュメモリのＬＲＵ置換アルゴリズムについて説明する。図２３，２４はキャッシュミスの説明図であり、図２５，２６はキャッシュヒットの説明図である。
図２３〜２６では、３つのキャッシュウェイ２，４，６（ＷＡＹ２、ＷＡＹ４，ＷＡＹ６）が高信頼モードとなり、使用しない無効キャッシュライン数が３つの場合を示している。
図２３は、従来のＬＲＵ置換アルゴリズムを適用した場合を示しており、キャッシュミスが起きて、ＬＲＵツリービットでＬＲＵ（＝７）のキャッシュウェイ１がデータ更新されてＭＲＵ（＝０）となり、他のキャッシュウェイのＬＲＵツリービットの状態が１インクリメントされた様子を示している。ここで、３つのキャッシュウェイ２，４，６（ＷＡＹ２、ＷＡＹ４，ＷＡＹ６）のＬＲＵツリービットの状態は、高信頼モードが切り替わった際に、全てＭＲＵ（＝０）が設定されており、キャッシュミスが起きた際に１インクリメントされて全て１となっている。
【００７８】
一方、図２４は、改良されたＬＲＵ置換アルゴリズムを適用した場合を示しており、キャッシュミスが起きて、ＬＲＵツリービットでＬＲＵ（＝７）のキャッシュウェイ１がデータ更新されてＭＲＵ＋３（使用しない無効キャッシュライン数）＝３となり、他の有効なキャッシュウェイのＬＲＵツリービットの状態が１インクリメントされた様子を示している。３つのキャッシュウェイ２，４，６（ＷＡＹ２、ＷＡＹ４，ＷＡＹ６）のＬＲＵツリービットの状態は、ＭＲＵ（＝０）に固定されている。
【００７９】
また、図２５は、従来のＬＲＵ置換アルゴリズムを適用した場合を示しており、キャッシュウェイ３でキャッシュヒットが起きて、ＬＲＵツリービットの状態がＭＲＵ（＝０）となり、キャッシュヒットが起きたキャッシュウェイ３のＬＲＵツリービットの状態より小さい状態（０〜５）の他のキャッシュウェイのＬＲＵツリービットの状態が１インクリメントされた様子を示している。３つのキャッシュウェイ２，４，６（ＷＡＹ２、ＷＡＹ４，ＷＡＹ６）のＬＲＵツリービットの状態も１インクリメントされて全て１となっている。
【００８０】
一方、図２６は、改良されたＬＲＵ置換アルゴリズムを適用した場合を示しており、キャッシュウェイ３でキャッシュヒットが起きて、ＬＲＵツリービットの状態がＭＲＵ＋３＝３となり、キャッシュヒットが起きたキャッシュウェイ３のＬＲＵツリービットの状態より小さい状態で、かつ、ＬＲＵツリービットの状態がＭＲＵ（＝０）の無効キャッシュラインでない他の有効なキャッシュウェイのＬＲＵツリービットの状態が１インクリメントされた様子を示している。３つのキャッシュウェイ２，４，６（ＷＡＹ２、ＷＡＹ４，ＷＡＹ６）のＬＲＵツリービットの状態は、ＭＲＵ（＝０）に固定されている。
【００８１】
次に、図２７〜３０を参照して、使用しない無効キャッシュラインが３つの場合の８ウェイ・セットアソシアティブ方式のキャッシュメモリの他のＬＲＵ置換アルゴリズムについて説明する。図２７，２８はキャッシュミスの説明図であり、図２９，３０はキャッシュヒットの説明図である。
図２７〜３０では、３つのキャッシュウェイ２，４，６（ＷＡＹ２、ＷＡＹ４，ＷＡＹ６）が高信頼モードとなり、使用しない無効キャッシュライン数が３つの場合を示している。
図２７は、従来のＬＲＵ置換アルゴリズムを適用した場合を示しており、キャッシュミスが起きて、ＬＲＵツリービットでＬＲＵ（＝７）のキャッシュウェイ１がデータ更新されてＭＲＵ（＝０）となり、他のキャッシュウェイのＬＲＵツリービットの状態が１インクリメントされた様子を示している。ここで、３つのキャッシュウェイ２，４，６（ＷＡＹ２、ＷＡＹ４，ＷＡＹ６）のＬＲＵツリービットの状態は、高信頼モードが切り替わった際に、ウェイ番号の小さい順番から０，１，２と設定されており、キャッシュミスが起きた際に１インクリメントされてそれぞれ１，２，３となっている。
【００８２】
一方、図２８は、改良されたＬＲＵ置換アルゴリズムを適用した場合を示しており、キャッシュミスが起きて、ＬＲＵツリービットでＬＲＵ（＝７）のキャッシュウェイ１がデータ更新されてＭＲＵ＋３（使用しない無効キャッシュライン数）＝３となり、他の有効なキャッシュウェイのＬＲＵツリービットの状態が１インクリメントされた様子を示している。ここで、３つのキャッシュウェイ２，４，６（ＷＡＹ２、ＷＡＹ４，ＷＡＹ６）のＬＲＵツリービットの状態は、高信頼モードが切り替わった際に、ウェイ番号の小さい順番から０，１，２と設定されたまま固定されている。
すなわち、使用しない無効キャッシュラインがＭ個存在する場合、Ｍ個の無効キャッシュラインのＬＲＵ状態は、ＭＲＵ（＝０）からウェイ番号順にＭ−１までに設定され、キャッシュミスが起きた際に割り当てた新しいデータのキャッシュラインのＬＲＵツリービットをＭとし、
他の使用するキャッシュラインのＬＲＵツリービットを、キャッシュミスが起 きる以前の順番に従って、それぞれＭ＋１から順に１インクリメントする。
【００８３】
また、図２９は、従来のＬＲＵ置換アルゴリズムを適用した場合を示しており、キャッシュウェイ３でキャッシュヒットが起きて、ＬＲＵツリービットの状態がＭＲＵ（＝０）となり、キャッシュヒットが起きたキャッシュウェイ３のＬＲＵツリービットの状態より小さい状態（０〜５）の他のキャッシュウェイのＬＲＵツリービットの状態が１インクリメントされた様子を示している。３つのキャッシュウェイ２，４，６（ＷＡＹ２、ＷＡＹ４，ＷＡＹ６）のＬＲＵツリービットの状態も１インクリメントされて０，１，２から１，２，３となっている。
【００８４】
一方、図３０は、改良されたＬＲＵ置換アルゴリズムを適用した場合を示しており、キャッシュウェイ３でキャッシュヒットが起きて、ＬＲＵツリービットの状態がＭＲＵ＋３（使用しない無効キャッシュライン数）＝３となり、キャッシュヒットが起きたキャッシュウェイ３のＬＲＵツリービットの状態より小さい状態で、かつ、ＬＲＵツリービットの状態がＭＲＵ（＝０）の無効キャッシュラインでない他の有効なキャッシュウェイのＬＲＵツリービットの状態が１インクリメントされた様子を示している。３つのキャッシュウェイ２，４，６（ＷＡＹ２、ＷＡＹ４，ＷＡＹ６）のＬＲＵツリービットの状態は、高信頼モードが切り替わった際に、ウェイ番号の小さい順番から０，１，２と設定されたまま固定されている。
すなわち、使用しない無効キャッシュラインがＭ個存在する場合、Ｍ個の無効キャッシュラインのＬＲＵ状態は、ＭＲＵ（＝０）からウェイ番号順にＭ−１までに設定され、キャッシュヒットが起きたキャッシュラインのＬＲＵツリービットをＭとし、
他の使用するキャッシュラインのＬＲＵツリービットを、キャッシュヒットが起きる以前の順番に従って、それぞれＭ＋１から順に１インクリメントする。
【産業上の利用可能性】
【００８５】
本発明は、コンピュータのキャッシュメモリに有用である。
【符号の説明】
【００８６】
ＭＣ，ＭＣ０１，ＭＣ１０  メモリセル
【図１】
2014115723.tif 000004
【図２】
2014115723.tif 000005
【図３】
2014115723.tif 000006
【図４】
2014115723.tif 000007
【図５】
2014115723.tif 000008
【図６】
2014115723.tif 000009
【図７】
2014115723.tif 000010
【図８】
2014115723.tif 000011
【図９】
2014115723.tif 000012
【図１０】
2014115723.tif 000013
【図１１】
2014115723.tif 000014
【図１２】
2014115723.tif 000015
【図１３】
2014115723.tif 000016
【図１４】
2014115723.tif 000017
【図１５】
2014115723.tif 000018
【図１６】
2014115723.tif 000019
【図１７】
2014115723.tif 000020
【図１８】
2014115723.tif 000021
【図１９】
2014115723.tif 000022
【図２０】
2014115723.tif 000023
【図２１】
2014115723.tif 000024
【図２２】
2014115723.tif 000025
【図２３】
2014115723.tif 000026
【図２４】
2014115723.tif 000027
【図２５】
2014115723.tif 000028
【図２６】
2014115723.tif 000029
【図２７】
2014115723.tif 000030
【図２８】
2014115723.tif 000031
【図２９】
2014115723.tif 000032
【図３０】
2014115723.tif 000033