(57)【特許請求の範囲】
【請求項１】
第１記憶回路と、
前記第１記憶回路よりも記憶容量が小さい第２記憶回路と、
アドレス記憶回路と、
第１コントローラ回路とを備えた情報処理装置であって、
前記アドレス記憶回路は、
前記第１記憶回路のアドレスである第１アドレス群および第２アドレス群と、
前記第２記憶回路のアドレスであり、前記第１アドレス群および前記第２アドレス群に含まれる複数のアドレスにそれぞれ対応して設けられた複数のポインタアドレスとを記憶し、
前記第１コントローラ回路は、前記第１記憶回路にアクセスするための入力アドレスが前記第１アドレス群および前記第２アドレス群のいずれか又は両方に含まれている場合に、前記複数のポインタアドレスの中の対応するポインタアドレスを用いて前記第２記憶回路にアクセスし、
前記第１アドレス群は、前記第１記憶回路に対するキャッシュアドレスで構成され、
前記第２アドレス群は、前記第１記憶回路の欠陥アドレスを救済する欠陥救済アドレスで構成され、
前記第１コントローラ回路は、前記第１記憶回路にアクセスするための入力アドレスが前記第２アドレス群のみに含まれている場合に、前記第２記憶回路の読み出しアクセスのタイミングを、前記第１記憶回路の読み出しアクセスのタイミングと同等レベルに遅延させる機能を備えることを特徴とする情報処理装置。
【請求項２】
請求項１記載の情報処理装置において、
前記第１アドレス群に含まれる複数のアドレスのそれぞれは、第１インデックスアドレスと第１タグアドレスで構成され、
前記第２アドレス群に含まれる複数のアドレスのそれぞれは、第２インデックスアドレスと第２タグアドレスで構成され、
前記アドレス記憶回路は、
前記第１インデックスアドレスに前記第１タグアドレスと前記第１タグアドレスに対応する第１ポインタアドレスとを記憶する第１アドレス記憶回路と、
前記第２インデックスアドレスに前記第２タグアドレスと前記第２タグアドレスに対応する第２ポインタアドレスとを記憶する第２アドレス記憶回路とによって構成され、
前記第１コントローラ回路は、
前記入力アドレスから前記第１インデックスアドレスを抽出して前記第１アドレス記憶回路をアクセスし、前記アクセスで得た前記第１タグアドレスと前記入力アドレスから抽出した第１入力タグアドレスとを比較する第１比較機能と、
前記入力アドレスから前記第２インデックスアドレスを抽出して前記第２アドレス記憶回路をアクセスし、前記アクセスで得た前記第２タグアドレスと前記入力アドレスから抽出した第２入力タグアドレスとを比較する第２比較機能と、
前記第１および前記第２比較機能の結果に応じて、前記第１ポインタアドレスか前記第２ポインタアドレスかを選択して前記第２記憶回路に出力する選択機能とを有することを特徴とする情報処理装置。
【請求項３】
請求項１記載の情報処理装置において、
前記第１記憶回路は、ＤＲＡＭであり、
前記第２記憶回路は、ＳＲＡＭであることを特徴とする情報処理装置。
【請求項４】
請求項１記載の情報処理装置において、
前記情報処理装置は、さらに、
前記第１記憶回路のデータを用いて各種情報処理を行う情報処理ユニットと、
前記第１コントローラ回路において、前記入力アドレスが前記第１アドレス群および前記第２アドレス群の両方に含まれていない場合に前記第１記憶回路へのアクセス制御を行う第２コントローラ回路とを備え、
前記情報処理ユニットは、前記第１コントローラ回路と前記第２コントローラ回路を介して前記第１記憶回路に接続され、
前記アドレス記憶回路と前記第２記憶回路は、前記第１コントローラ回路に接続されることを特徴とする情報処理装置。
【請求項５】
請求項１記載の情報処理装置において、
前記第１アドレス群は、前記第１記憶回路に対する２次以降のキャッシュアドレスで構成されることを特徴とする情報処理装置。
【請求項６】
請求項２記載の情報処理装置において、
前記第１インデックスアドレスと前記第２インデックスアドレスは、それぞれ対応する前記入力アドレスのビットが異なることを特徴とする情報処理装置。
【請求項７】
請求項４記載の情報処理装置において、
前記情報処理ユニット、前記第１および前記第２コントローラ回路、前記アドレス記憶回路、ならびに前記第２記憶回路は、１つの半導体基板上に形成されることを特徴とする情報処理装置。
【請求項８】
複数の第１メモリチップと、第２記憶回路と、アドレス記憶回路と、モジュールコントローラ回路とが実装されたメモリモジュールを含む情報処理装置であって、
前記アドレス記憶回路は、
前記複数の第１メモリチップのアドレスである第１アドレス群および第２アドレス群と、
前記第２記憶回路のアドレスであり、前記第１アドレス群および前記第２アドレス群に含まれる複数のアドレスにそれぞれ対応して設けられた複数のポインタアドレスとを記憶し、
前記モジュールコントローラ回路は、
前記複数の第１メモリチップに対する送受信信号のバッファ機能と、
前記複数の第１メモリチップにアクセスするための入力アドレスが前記第１アドレス群および前記第２アドレス群のいずれか又は両方に含まれている場合に、前記複数のポインタアドレスの中の対応するポインタアドレスを用いて前記第２記憶回路にアクセスする機能とを有し、
前記複数の第１メモリチップのそれぞれは、ＤＲＡＭチップであり、
前記第１アドレス群は、前記複数の第１メモリチップに対するキャッシュアドレスで構成され、
前記第２アドレス群は、前記複数の第１メモリチップの欠陥アドレスを救済する欠陥救済アドレスで構成され、
前記モジュールコントローラ回路は、前記複数の第１メモリチップにアクセスするための入力アドレスが前記第２アドレス群のみに含まれている場合に、前記第２記憶回路の読み出しアクセスのタイミングを、前記複数の第１メモリチップの読み出しアクセスのタイミングと同等レベルに遅延させる機能を備えることを特徴とする情報処理装置。
【請求項９】
請求項８記載の情報処理装置において、
前記第１アドレス群に含まれる複数のアドレスのそれぞれは、第１ロウインデックスアドレスと、第１ロウタグアドレスと、第１カラムインデックスアドレスと、第１カラムタグアドレスで構成され、
前記アドレス記憶回路は、
前記第１ロウインデックスアドレスに前記第１ロウタグアドレスと前記第１カラムインデックスアドレスとを記憶する第１ロウアドレス記憶回路と、
前記第１カラムインデックスアドレスに前記第１カラムタグアドレスと前記第１カラムタグアドレスに対応する第１ポインタアドレスとを記憶する第１カラムアドレス記憶回路とを含み、
前記モジュールコントローラ回路は、
前記入力アドレスの一方となる入力ロウアドレスから前記第１ロウインデックスアドレスを抽出して前記第１ロウアドレス記憶回路をアクセスし、前記アクセスから得た前記第１ロウタグアドレスと前記入力ロウアドレスから抽出した第１入力ロウタグアドレスとを比較する第１比較機能と、
前記入力アドレスの他方となる入力カラムアドレスから抽出した第１入力カラムインデックスアドレスと、前記第１ロウアドレス記憶回路へのアクセスから得た前記第１カラムインデックスアドレスとを比較する第２比較機能と、
前記第１カラムインデックスアドレスで前記第１カラムアドレス記憶回路をアクセスすることで得た前記第１カラムタグアドレスと、前記入力カラムアドレスから抽出した第１入力カラムタグアドレスとを比較する第３比較機能とを含むことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関するもので、特に情報処理装置を構成する記憶装置の信頼性の向上に関するものである。
【背景技術】
【０００２】
情報処理装置を構成する記憶装置として、ダイナミック型ランダムアクセスメモリ（以下、ＤＲＡＭと記載）が広く使われている。そのＤＲＡＭの信頼性を向上する技術として不良ビットを救済する方法が、例えば以下の文献に記載されている。
【０００３】
特許文献１には、ＤＲＡＭのポーズ不良のセルのデータを同一チップ上のＳＲＡＭアレイ内部のセルのデータで代用することによってビット単位で救済する方法が記載されている。特許文献２には、複数のＤＲＡＭチップからなるＤＲＡＭモジュールに、ＤＲＡＭの不良ビットを救済するための専用チップを設け、ＤＲＡＭチップの論理ワード線単位で、データを代用する方法が記載されている。特許文献３には、ＤＲＡＭチップ内部にＳＲＡＭを搭載し、ＤＲＡＭあるいはそのＳＲＡＭ自体の不良ワード線を、ＳＲＡＭ内の正常なワード線で代用する方法が記載されている。
【特許文献１】特開２０００−２８５６９５号公報
【特許文献２】特開平８−１６４８６号公報
【特許文献３】国際公開第０２／４５０９３号パンフレット
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記の従来技術には、ＤＲＡＭの不良ビットの救済方法が述べられているが、高温時のリテンション不良をなくすには、これだけでは不十分である。ＤＲＡＭのリテンション特性は、一般に温度上昇に敏感であり、チップ温度が、１０℃から２０℃も上昇すると急激に不良ビット数が増大する。ＤＲＡＭの接合温度Ｔｊは、設置された周囲環境の温度Ｔａと、チップ自体の消費電力に比例する温度上昇ΔＴとの和となる。したがって、より高いＴａにおいて信頼性を持って動作させるには、リテンション特性の改善とともに消費電力の低減が欠かせない。
【０００５】
特に、最近のＤＲＡＭでは、モジュールの高密度実装や、積層技術の開発が進んでおり消費電力あたりの温度上昇率である熱抵抗を下げることが困難になりつつある。このような事情から、本来のＤＲＡＭの速度やコストへの影響をできるだけ損なわずに、ＤＲＡＭの消費電力の削減とリテンション不良セルの救済を同時に実現する方法が求められる。そうすることによって、例えば周囲温度の高い環境においてもＤＲＡＭなどを含む情報処理装置の信頼性を向上させることが可能となる。
【０００６】
また、救済方法のみを考えた場合にも、上記従来技術では、以下のような実用上の問題が残っている。
【０００７】
特許文献１では、ポーズ特性、つまりリテンション特性の悪いＤＲＡＭセルを救済するために、ランダムに分布する不良ビットをビット単位で救済する方法が述べられている。この方法は、特許文献２および３のように不良ビットの置換単位が、論理ワード単位であるものと比較して、ランダムな不良の救済データを少ない容量のＳＲＡＭに記憶することができる。しかしながら、比較すべきアドレスが、ＤＲＡＭのロウアドレスとカラムアドレスを合わせた全アドレスとなるため、比較にかかる時間や回路規模の増大が懸念される。特許文献１には、アドレスをインデックスとタグに分けて比較する方法が記載されているが、最近のＤＲＡＭでは、アドレスが全部で３０ビット近くあり、しかもロウアドレスとカラムアドレスとが時間差をおいて入力されるため、記載されている方法のみでは、比較によるアクセス時間のペナルティが問題となる。
【０００８】
特許文献２では、上記のように置換の単位が論理ワード単位であるために救済データを記憶する大きな要領のＳＲＡＭが必要となるという問題の他に、もうひとつの問題がある。すなわち、ＤＲＡＭチップと救済のための専用チップが、同じデータバスに接続されているため、アクセス対象が不良であることがわかった場合に、ＤＲＡＭの出力をハイインピーダンス状態にして止める必要がある。最近のＤＲＡＭは高速であり、アクセス途中で出力を止めるコマンドを入れても出力のうちのはじめのビットが出てしまう場合がある。また、最近の仕様では、出力を止めるための適当なコマンドがないものもある。
【０００９】
特許文献３では、ＤＲＡＭ内部に設けたＳＲＡＭの特定領域を不良ビットのデータ記憶に使い、余った領域をメモリ領域として利用する方法が記載されている。これによると、ＣＰＵ側から見た使用可能なアドレス空間は、ＤＲＡＭのメモリ領域とこのＳＲＡＭ内の余ったメモリ領域とを合計したものとなる。しかしながら、不良ビットの数は、ＤＲＡＭチップ毎に異なる。このため、ＳＲＡＭ内の救済用の領域を欠陥の多いチップに合わせて大きめに確保するか、チップ毎にその領域を変えなくてはならない。そうすると、ＣＰＵのプログラムから見た使用可能なアドレス空間が小さくなったり、あるいはチップ毎に変化してしまい、非常に使いにくい。
【００１０】
本発明は、このような問題を鑑みてなされたものであり、本発明の前記ならびにその他の目的や新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１２】
本発明では、情報処理装置を構成するＤＲＡＭなど大容量の第１記憶回路に対して、ＳＲＡＭなどのような容量が小さく消費電力の低い第２記憶回路と、アドレス比較機能を含む第１コントローラ回路を設ける。そして、第２記憶回路を、第１記憶回路のキャッシュ兼救済データの記憶に使用する。
【００１３】
第１記憶回路へのアクセスが発生すると、アドレス比較機能により、そのアドレスに対応したデータが第２記憶回路に既にキャッシュされていないかをチェックする。記憶されていれば、すなわちヒットすれば、第２記憶回路にアクセスする。一方、記憶されていなければ、すなわちミスであれば、第１記憶回路をアクセスする。また、アドレスを比較する際に、そのアドレスに対応する第１記憶回路のセルが、不良セルであるかどうかについても判断し、不良セルであれば、第２記憶回路に記憶されている救済データをアクセスする。
【００１４】
これによって、キャッシュへのヒット率に応じて第１記憶回路へのアクセス頻度が減少して動作電力が減少し、第１記憶回路の温度上昇が抑制される。また、救済機能により、高温時の不良を救済できるので、高温時の信頼性が高くなる。すなわち、より高い周囲温度でも確実なメモリ動作が可能となり、信頼性が高い情報処理装置を実現できる。また、ＤＲＡＭなどのように大気時にリフレッシュ動作が必要な記憶回路を第１記憶回路に用いた場合には、リテンション特性の改善による待機電流の削減も可能となる。
【００１５】
また、第２記憶回路には、第１記憶回路のアドレス空間の一部を重畳して割り当てることになるため、チップの状態によって救済データの量が変化しても、プログラム側からみて使用可能なアドレス空間の変化がなく使いやすい。
【発明の効果】
【００１６】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、信頼性が高い情報処理装置を実現可能となる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１８】
なお、以下の説明では、記憶装置として半導体メモリを想定し、記憶装置をメモリと書くこととするが、本発明は、半導体記憶装置を用いた情報処理装置に限定されるものではなく、ハードディスクなどの記憶装置を含んだ情報処理装置などにも有効である。また、以下では、説明を簡単にするため、キャッシュメモリとしてデータキャッシュと命令キャッシュを独立して設けた例や、マルチウエイ方式、フルアソシアティブ方式などの検索方式も示さないが、本発明はそのようなキャッシュの構成や検索方式あるいは、ライトバック、ライトスルーなどの書き込み時の方式のバリエーションによらず適用可能である。
【００１９】
（実施の形態１）
図１は、本発明による実施の形態１の情報処理装置において、その構成の一例を示すブロック図である。図１において、ＣＨＩＰ１は、マイクロプロセッサチップ、Ｍ３は外部メモリである。マイクロプロセッサチップＣＨＩＰ１内には、その主要な構成部品が示されている。ＣＰＵは、中央情報処理装置であり、Ｍ１、ＴＭ１、Ｍ１Ｃは、それぞれ１次キャッシュメモリ、メモリＭ１用のタグメモリ、１次キャッシュコントローラである。また、Ｍ２は、第２メモリであり、ＴＭ２−１、ＴＭ２−２は、Ｍ２用の２つのタグメモリ、Ｍ２Ｃは、第２メモリコントローラである。Ｍ３Ｃは、外部メモリＭ３のコントローラである。Ｍ１およびＭ２は、外部メモリＭ３のキャッシュメモリとして動作し、Ｍ２は、同時にＭ３の欠陥ビットを救済するためのデータの記憶も行う。
【００２０】
上記のようにＭ２には、２つのタグメモリがあり、ＴＭ２−１は、Ｍ２に記憶されているキャッシュデータのアドレスを記憶するもので、ＴＭ２−２は、Ｍ２に記憶されている救済用データのアドレスを記憶するためのものである。このように、Ｍ２用のタグメモリをキャッシュ用と救済用に独立して設けることにより、インデックスとタグの割り当てをそれぞれに最適化できる効果が得られる。すなわち、キャッシュ用のインデックス、タグを、ＣＰＵからのアドレスのどこに割り当てるかは、ＣＰＵの都合で最適化するが、救済用のインデックスとタグの割り当ては、Ｍ３に固有の不良ビットの分布から決めないと限られたＭ２の容量ですべてを救済することができない。したがって独立に最適化することによりキャッシュのヒット率の向上と救済ビット数の向上とが両立できる。
【００２１】
また、本実施の形態では、救済データがキャッシュメモリに記憶されているため、特許文献３のようにチップ毎の救済データの増減によりプログラムが利用できるメモリ空間が変化することがなく、使いやすい。また、第２メモリＭ２に記憶される救済データやキャッシュデータがヒットすることにより、外部メモリＭ３自体の消費電力が減少する。これにより、外部メモリＭ３の発熱量が減少し、特に周囲温度が高い場合の信頼性が向上する。また、Ｍ２はマイクロプロセッサチップ内部にあるために、Ｍ２にアクセスする際の消費電力は、外部メモリＭ３にアクセスする場合よりも少ない。したがって２次キャッシュにヒットすると、情報処理装置全体の消費電力が低減できる。さらに、特許文献２のように同じデータバスに救済データを記憶するメモリと救済対象のメモリが接続されておらず、Ｍ３は、コントローラＭ３Ｃを介してアクセスされるので、アクセス対象がＭ３の不良ビットであった場合、Ｍ３Ｃからのアクセスコマンドの発行を止めることによって容易にＭ３の動作をキャンセルできるという利点もある。
【００２２】
次に図２および図３を用いて、図１の構成例の動作を説明する。図２は、図１のマイクロプロセッサチップＣＨＩＰ１内の各メモリに入力されるアドレスと、各メモリが記憶している内容を示している。タグメモリＴＭ１には、インデックスＩＮＤＥＸ１が、アドレスとして入力される。そして、ひとつのＩＮＤＥＸ１で指定されるＴＭ１の記憶領域の内容は、記憶されているタグが有効であるかどうかを示すためのフラグＦＬＡＧ１と、タグＴＡＧ１である。ＩＮＤＥＸ１およびＴＡＧ１は、通常のセットアソシアティブ方式のキャッシュメモリで行われるようにＣＰＵから発行されるアドレスの一部を使用する。つまり、ＣＰＵからのアドレスのうち、キャッシュのラインサイズに相当する部分を除き、１次キャッシュメモリＭ１のエントリ数で決まるビット数をＩＮＤＥＸ１に、残りをＴＡＧ１に割り当てる。通常は、ＣＰＵからのアドレスの下位から、ライン、インデックス、タグに割り当てる。
【００２３】
１次キャッシュメモリＭ１には、上記のＩＮＤＥＸ１がアドレスとして与えられる。そして、ＩＮＤＥＸ１で指定されるＭ１の領域には、キャッシュされているデータＤＡＴＡ−Ｍ１が記憶されている。
【００２４】
タグメモリＴＭ２−１には、ＩＮＤＥＸ２−１がアドレスとして与えられる。そして、ひとつのＩＮＤＥＸ２−１で指定されるＴＭ２−１の記憶領域の内容は、フラグＦＬＡＧ２−１とタグＴＡＧ２−１および対応するキャッシュデータが記憶されているメモリＭ２のアドレス（ポインタアドレス）ＡＤＤ−Ｍ２となっている。ここで、ＦＬＡＧ２−１は、記憶されているＴＡＧ２−１が有効かどうかを示すためのものである。ＩＮＤＥＸ２−１およびＴＡＧ２−１は、１次キャッシュコントローラＭ１Ｃから与えられるアドレスの一部を使用して割り当てる。Ｍ１Ｃから与えられるアドレスは、マイクロプロセッサの構成により、ＣＰＵからの論理アドレスの場合あるいは、それから変換された物理アドレスの場合もある。ここで、ＩＮＤＥＸ２−１やＴＡＧ２−１のビット数は、メモリＭ２のエントリ数やラインサイズで決めることは上記の１次キャッシュの場合と同様である。ＴＭ１の場合と異なるのは、タグメモリＴＭ２−１では、フラグとタグに加えて、対応するＭ２のアドレスＡＤＤ−Ｍ２が記憶されることである。
【００２５】
タグメモリＴＭ２−２には、ＩＮＤＥＸ２−２がアドレスとして与えられる。そして、ひとつのＩＮＤＥＸ２−２で指定されるＴＭ２−２の記憶領域の内容は、フラグＦＬＡＧ２−２とタグＴＡＧ２−２および対応する救済用のデータが記憶されているメモリＭ２のアドレス（ポインタアドレス）ＡＤＤ−Ｍ２となっている。ここで、ＦＬＡＧ２−２は、記憶されているＴＡＧ２−２が有効かどうかを示すためのものである。ＩＮＤＥＸ２−２およびＴＡＧ２−２は、上記のＩＮＤＥＸ２−１およびＴＡＧ２−１と同様に１次キャッシュコントローラＭ１Ｃから与えられるアドレスの一部を割り当てて用いる。
【００２６】
メモリＭ２には、ＴＭ２−１もしくはＴＭ２−２に記憶されたＡＤＤ−Ｍ２がアドレスとして与えられる。そして、ひとつのＡＤＤ−Ｍ２で指定される領域には、キャッシュデータもしくは救済用のデータであるＤＡＴＡ−Ｍ２が記憶されている。
【００２７】
このように、本実施の形態では、メモリＭ２のタグメモリを２つ設けて、さらにＭ２のアドレスの管理をタグメモリ毎に独立にしたことが特徴である。これにより、ＴＭ２−１ではキャッシュデータの記憶に最適なインデックスとタグの割り当てが可能であり、一方ＴＭ２−２では、使用する外部メモリＭ３の欠陥ビットの分布に合わせたインデックスとタグの割り当てが可能となる。なお、欠陥ビットの分布は、Ｍ３の製造時のテスト結果から算出してもよいし、図１の情報処理装置において、例えば、電源投入時などでマイクロプロセッサチップＣＨＩＰ１によってＭ３のテストを行い、その結果を用いてもよい。後者の場合、経時的に生じた欠陥にも対応できるというメリットがある。
【００２８】
次に、図２の各メモリを備えた図１の情報処理装置の全体動作について説明する。これまで説明したように、図１の構成例では、１次キャッシュメモリＭ１と、２次キャッシュメモリ兼救済データメモリとして動作するメモリＭ２を設けている。それぞれのメモリＭ１，Ｍ２に向けたアドレスは、タグメモリに記憶されたアドレスと比較され、対象データがＭ１，Ｍ２に記憶されているかどうか、つまりヒットかミスかが判断される。図３は、上記の比較結果によって場合分けをした図１の動作の説明図である。
【００２９】
内容を説明する前に、図３の４列目の標記について注釈を与えておく。たとえば、「ＴＡＧ２−１，ＡＤＤ−Ｍ２→ＩＮＤＥＸ２−１：ＴＭ２−１」とある場合の意味は、ＴＡＧ２−１とＡＤＤ−Ｍ２をタグメモリＴＭ２−１のアドレスＩＮＤＥＸ２−１に書き込むという意味である。
【００３０】
図３で、ケース１は、ＴＭ１にヒットした場合である。すなわち、ＣＰＵから与えられたアドレスからインデックスとタグが生成され、そのインデックスＩＮＤＥＸ１がアドレスとしてＴＭ１に与えられる。その結果読み出されたフラグＦＬＡＧ１が有効で、なおかつ読み出されたＴＡＧ１と、ＣＰＵからのアドレスから生成されたタグとが一致した場合である。この場合、データは、アドレスＩＮＤＥＸ１を用いて１次キャッシュＭ１から読み出される。なお、以下のケースでは、ヒットの場合、フラグは有効であることを前提として説明する。
【００３１】
ケース２は、ＴＭ１、ＴＭ２−１、ＴＭ２−２のいずれにおいても読み出したタグが、生成されたタグと一致しなかった、つまりすべてでミスとなった場合である。この場合は、１次キャッシュにも２次キャッシュにもヒットせず、なおかつＭ３の欠陥ビットを含む領域でもないため、Ｍ３コントローラＭ３Ｃを通じて外部メモリＭ３をアクセスする。このとき、Ｍ３から読み出したデータをＭ１、Ｍ２にキャッシュデータとして記憶するために３行４列目に記したような動作を行う。まず、タグメモリの更新として、ＴＡＧ１をＩＮＤＥＸ１をアドレスとしてタグメモリＴＭ１に書き込む。また、ＴＡＧ２−１と、Ｍ２におけるデータの記憶場所のアドレスであるＡＤＤ−Ｍ２を、ＩＮＤＥＸ２−１をアドレスとしてタグメモリＴＭ２−１に書き込む。また、Ｍ１とＭ２のデータの更新も行う。すなわち、Ｍ３から読み出したデータＤＡＴＡ−Ｍ３を、ＩＮＤＥＸ１をアドレスとしてＭ１に書き込み、さらに、このデータＤＡＴＡ−Ｍ３を、ＡＤＤ−Ｍ２をアドレスとしてＭ２にも書き込む。
【００３２】
ケース３は、ＴＭ１でミス、ＴＭ２−１およびＴＭ２−２でヒットした場合である。これは１次キャッシュではミスであるが、２次キャッシュにヒットし、さらに該当するＭ３の領域に欠陥ビットが含まれる場合である。この場合、データとして、ＴＭ２−１から読み出したアドレスＡＤＤ−Ｍ２でメモリＭ２をアクセスしたデータＤＡＴＡ−Ｍ２を用いる。そして、次のように１次キャッシュのタグとデータが更新される。すなわち、タグＴＡＧ１をＩＮＤＥＸ１をアドレスとしてＴＭ１に書き込み、データＤＡＴＡ−Ｍ２をＩＮＤＥＸ１をアドレスとしてメモリＭ１に書き込む。
【００３３】
ケース４は、ＴＭ１でミス、ＴＭ２−１でヒット、ＴＭ２−２でミスした場合である。この場合は、２次キャッシュがヒットしているので、データは、ＴＭ２−１から読み出したアドレスＡＤＤ−Ｍ２でＭ２をアクセスすることで読み出す。さらに１次キャッシュのタグとデータを更新する。すなわち、ＴＡＧ１を、ＩＮＤＥＸ１をアドレスとしてＴＭ１に書き込み、データＤＡＴＡ−Ｍ２をＩＮＤＥＸ１をアドレスとしてＭ１に書き込む。
【００３４】
ケース５は、ＴＭ１とＴＭ２−１がミス、ＴＭ２−２がヒットした場合である。つまり、１次キャッシュ、２次キャッシュともにミスであるが、アクセス対象にＭ３の欠陥ビットが含まれる場合である。この場合は、ＴＭ２−２から読み出したＡＤＤ−Ｍ２をアドレスとしてＭ２をアクセスしてデータを読み出す。さらに、１次キャッシュのタグとデータ、および２次キャッシュのタグを更新する。つまり、ＴＡＧ１をＩＮＤＥＸ１をアドレスとしてＴＭ１に書き込み、ＴＡＧ２−１とＡＤＤ−Ｍ２をＩＮＤＥＸ２−１をアドレスとしてＴＭ２−１に書き込む。さらに、Ｍ２から読み出したデータＤＡＴＡ−Ｍ２をＩＮＤＥＸ１をアドレスとしてＭ１に書き込む。
【００３５】
ケース５において、ＴＭ２−１に書き込むＡＤＤ−Ｍ２は、ＴＭ２−２から読み出したものを使用する。これによって対象となるデータのＭ２でのアドレスをＴＭ２−１とＴＭ２−２とで一致させることができる。その結果、ひとつのメモリＭ２に対して２つのタグメモリＴＭ２−１とＴＭ２−２でインデックスとタグの割り当てを独立して最適化することが可能となる。また、ＴＭ２−２と同一のメモリＭ２に対応するＴＭ２−１を更新しているのは、ＣＰＵ側はＴＭ２−１がヒットした場合を２次キャッシュのヒットとみなすため、以降のキャッシュヒットによる当該アドレスのアクセスを高速化するためである。
【００３６】
なお、このケースでは、２次キャッシュ（すなわちＴＭ２−１）にヒットしていないにもかかわらず、実際にはメモリＭ２からデータを読み出すので、Ｍ３より読み出す場合のアクセス時間よりも短い時間での読み出しが可能である。しかし、ＣＰＵ側から見て２次キャッシュがミスした場合は、Ｍ３のアクセス時間に合わせてデータを読み出した方が制御が楽になる場合が考えられる。その場合には、コントローラＭ２Ｃによって、あたかもＭ３からのアクセスのように時間を調整してデータを読み出すようにするとよい。さらに、２次キャッシュ機能による高速化よりも外部メモリのアクセス頻度が減ることによる電力の削減を重視するのであれば、Ｍ２からデータを読み出す際には、キャッシュデータであってもＭ３のアクセス時間に合わせて、ゆっくりと読み出すことも可能である。
【００３７】
図４は、図１における第２メモリコントローラＭ２Ｃの構成例を示すブロック図である。Ｍ２Ｃは、例えば、ＴＭ２−１，ＴＭ２−２にそれぞれ対応する２つの比較回路ＣＯＭＰ１，ＣＯＭＰ２と、この比較結果に応じてＭ２に対するアドレスを選択するセレクタ回路ＳＥＬと、Ｍ２への制御信号を生成する制御回路ＣＯＮＴと、Ｍ２からの出力データを調整するマルチプレクサＭＵＸおよび遅延回路ＤＬＹなどから構成される。ＣＯＭＰ１は、ＴＭ２−１から出力されるＴＡＧ２−１と、図１の１次キャッシュコントローラＭ１ＣからアドレスバスＡＤＤＢを介して与えられるＴＭ２−１用のタグとを比較する。一致すれば一致信号を出力し、不一致であれば不一致信号を出力する。ＣＯＭＰ２は、ＴＭ２−２から出力されるＴＡＧ２−２と、Ｍ１ＣからアドレスバスＡＤＤＢを介して与えられるＴＭ２−２用のタグとを比較する。一致すれば一致信号を出力し、不一致であれば不一致信号を出力する。
【００３８】
セレクタ回路ＳＥＬは、ＣＯＭＰ１／ＣＯＭＰ２の比較結果が、一致／一致または一致／不一致の場合にはＴＭ２−１から読み出したアドレスＡＤＤ−Ｍ２をメモリＭ２に出力し、不一致／一致の場合にはＴＭ２−２から読み出したＡＤＤ−Ｍ２をＭ２に出力する。また、ＣＯＭＰ１／ＣＯＭＰ２の比較結果が、不一致／不一致の場合には、ＴＭ２−１およびメモリＭ２からなる２次キャッシュを更新するため、ＴＭ２−１から読み出したＡＤＤ−Ｍ２をメモリＭ２に出力する。制御回路ＣＯＮＴは、ＣＯＭＰ１／ＣＯＭＰ２の比較結果が、一致／一致、一致／不一致、および不一致／一致の場合には、２次キャッシュおよび／または救済がヒットであるため、Ｍ２に読み出し（Ｒｅａｄ）信号を出力する。一方、ＣＯＭＰ１／ＣＯＭＰ２の比較結果が、不一致／不一致の場合には、２次キャッシュの更新のため、Ｍ２に書き込み（Ｗｒｉｔｅ）信号を出力する。
【００３９】
マルチプレクサＭＵＸは、比較回路ＣＯＭＰ１，ＣＯＭＰ２の結果を受けて、Ｍ２からの出力データＤＡＴＡ−Ｍ２をそのままデータバスＤＡＴＢに出力するか、遅延回路ＤＬＹを介してデータバスＤＡＴＢに出力するかを切り分ける。ＣＯＭＰ１／ＣＯＭＰ２の比較結果が、一致／一致または一致／不一致の場合には、２次キャッシュがヒットのため、ＤＡＴＡ−Ｍ２をそのままデータバスＤＡＴＢに出力する。一方、ＣＯＭＰ１／ＣＯＭＰ２の比較結果が、不一致／一致の場合には、救済のみがヒットのため、上記で述べたように擬似的にＭ３からのアクセスに見せるため、ＤＡＴＡ−Ｍ２を遅延回路ＤＬＹを介してデータバスＤＡＴＢに出力する。なお、ＣＯＭＰ１／ＣＯＭＰ２の比較結果が、不一致／不一致の場合には、逆にデータバスＤＡＴＢからデータ入力を行う必要があるため、図４のＭＵＸの場合には、Ｍ２からデータバスＤＡＴＢに向けた出力パスを遮断するように機能する。
【００４０】
つぎに、図４の構成例の動作について説明する。まず、ＴＭ２−１が、アドレスバスＡＤＤＢを介して与えられたインデックスＩＮＤＥＸ２−１を取り込み、対応するタグＴＡＧ２−１およびアドレスＡＤＤ−Ｍ２を出力する。ＣＯＭＰ１は、ＡＤＤＢを介して与えられたＴＭ２−１用のタグＴＡＧとＴＡＧ２−１とを比較する。同様に、ＴＭ２−２も、ＡＤＤＢを介して与えられたインデックスＩＮＤＥＸ２−２を取り込み、対応するタグＴＡＧ２−２およびアドレスＡＤＤ−Ｍ２を出力する。ＣＯＭＰ２は、ＡＤＤＢを介して与えられたＴＭ２−２用のタグＴＡＧとＴＡＧ２−２とを比較する。続いて、このＣＯＭＰ１，ＣＯＭＰ２による４通りの比較結果に応じて、以下の動作が行われる。
【００４１】
［１］ＣＯＭＰ１／ＣＯＭＰ２が一致／一致（２次キャッシュヒット、救済ヒット）の場合
選択回路ＳＥＬが、ＴＭ２−１から出力されたＡＤＤ−Ｍ２を選択し、Ｍ２に対して出力する。制御回路ＣＯＮＴが、Ｍ２に対してＲｅａｄ信号を出力する。これによってＭ２から出力されたデータＤＡＴＡ−Ｍ２は、マルチプレクサＭＵＸでの選択によって、そのままデータバスＤＡＴＢに出力される。なお、ここではＳＥＬがＴＭ２−１から出力されたＡＤＤ−Ｍ２を選択したが、ＴＭ２−２から出力されたＡＤＤ−Ｍ２を選択することも可能である。
【００４２】
［２］ＣＯＭＰ１／ＣＯＭＰ２が一致／不一致（２次キャッシュヒット、救済ミス）の場合
ＳＥＬが、ＴＭ２−１から出力されたＡＤＤ−Ｍ２を選択し、Ｍ２に対して出力する。ＣＯＮＴが、Ｍ２に対してＲｅａｄ信号を出力する。これによってＭ２から出力されたデータＤＡＴＡ−Ｍ２は、マルチプレクサＭＵＸでの選択によって、そのままデータバスＤＡＴＢに出力される。
【００４３】
［３］ＣＯＭＰ１／ＣＯＭＰ２が不一致／一致（２次キャッシュミス、救済ヒット）の場合
ＳＥＬが、ＴＭ２−２から出力されたＡＤＤ−Ｍ２を選択し、Ｍ２に対して出力する。ＣＯＮＴが、Ｍ２に対してＲｅａｄ信号を出力する。これによってＭ２から出力されたデータＤＡＴＡ−Ｍ２は、マルチプレクサＭＵＸでの選択によって、遅延回路ＤＬＹを介してデータバスＤＡＴＢに出力される。一方、ＴＭ２−１は、ＣＯＭＰ１から不一致信号を、ＣＯＭＰ２から一致信号を受け取る。これを受けて、ＴＭ２−１は、インデックスＩＮＤＥＸ２−１に記憶されたＴＡＧ２−１を、ＡＤＤＢを介して伝達されているＴＭ２−１用のタグＴＡＧに置き換える。また、ＴＭ２−１は、ＩＮＤＥＸ２−１に記憶されたＡＤＤ−Ｍ２を、ＴＭ２−２から出力されたＡＤＤ−Ｍ２に置き換える。
【００４４】
［４］ＣＯＭＰ１／ＣＯＭＰ２が不一致／不一致（２次キャッシュミス、救済ミス）の場合
ＳＥＬが、ＴＭ２−１から出力されたＡＤＤ−Ｍ２を選択し、Ｍ２に対して出力する。ＣＯＮＴが、Ｍ２に対してＷｒｉｔｅ信号を出力する。Ｍ２は、このＡＤＤ−Ｍ２に書き込むデータをデータバスＤＡＴＢから受け取り、書き込み動作を行う。また、ＴＭ２−１は、ＣＯＭＰ１から不一致信号を、ＣＯＭＰ２から不一致信号を受け取る。これを受けて、ＴＭ２−１は、インデックスＩＮＤＥＸ２−１に記憶されたＴＡＧ２−１を、ＡＤＤＢを介して伝達されているＴＭ２−１用のタグＴＡＧに置き換える。
【００４５】
以上のような第２メモリコントローラＭ２Ｃの構成および動作によって、２次キャッシュと救済データの記憶機能を兼ね備えた第２メモリＭ２の制御が実現可能となる。なお、図４では、救済のみがヒットした場合に、遅延回路ＤＬＹによって出力データを遅らせる例を示したが、その代わりに、制御回路ＣＯＮＴからのＲｅａｄ信号を遅らせることで出力データを遅らせるようなことも勿論可能である。
【００４６】
また、これまでの説明では、読み出し動作を例としたが、書き込み動作においても、ライトスルーの場合なら、アドレス比較結果にかかわらずＭ１，Ｍ２，Ｍ３に同時に書き込めばよいため、容易に書き込みの制御は可能である。この場合、ＴＡＧ２−２にヒットした場合は、Ｍ３の対象領域に欠陥ビットがあるが、読み出しでは使わないので、構わずＭ３にも書き込みを行ってもよいし、欠陥の種類によって、アクセスすると過大な電流が流れるなどの不具合があるときにはＭ３へのアクセスを避ければよい。ライトバック方式を採用する場合には、通常のキャッシュシステムと同様にキャッシュしているデータがダーティであることを示すフラグを設ければ容易にこれまでの構成例を適用可能である。
【００４７】
さらに、第２メモリＭ２は、２次キャッシュと救済データの記憶機能を兼用する例で説明を行ったが、２次キャッシュ機能に限定されるものではなく、他の次数のキャッシュ機能を持たせてもよいことはもちろんである。ただし、例えば、１次キャッシュに対して、キャッシュ機能と救済機能を兼用させた場合、通常、１次キャッシュは、容量が小さく、ＣＰＵと同等の高速性が求められるため、この観点からは２次キャッシュ以降に適用することが望ましい。また、１次キャッシュが救済機能に伴って容量が変化した場合、システム全体のヒット率に大きく影響する恐れがあるが、２次キャッシュ以降に適用した場合、若干容量が変化してもさほどヒット率には影響を与えないため、システムの高速性を維持したまま、信頼性を向上させることができる。
【００４８】
（実施の形態２）
前述した実施の形態１では、外部メモリコントローラを内蔵したマイクロプロセッサチップを含む情報処理装置の一例を示した。このような情報処理装置は、例えば携帯電話機など、いわゆるモバイル機器に対して特に適した構成例となっている。本実施の形態２では、例えば、パーソナルコンピュータやワークステーションなどに適した情報処理装置の一例を説明する。
【００４９】
図５は、本発明による実施の形態２の情報処理装置において、その構成の一例を示すブロック図である。図５において、ＭＯＤＵＬＥ−１からＭＯＤＵＬＥ−ｎは、複数のメモリＭ３とキャッシュメモリ兼救済データの記憶を行うメモリＭ２などを搭載したメモリモジュールである。以下ではメモリＭ３としてダイナミックメモリＤＲＡＭを想定するが、本実施の形態ではそれに限定されるものではない。これらのメモリモジュールは、メモリコントローラＭ３Ｃからのコマンドやアドレスによって制御される。アドレスやコマンドならびに入出力データは、一旦メモリモジュール内部のモジュールコントローラＭＣでバッファされ、隣接のメモリモジュール内部のＭＣとの間で授受される。この構成例によれば、メモリモジュールがシリアルに接続されており、なおかつモジュール毎にコマンド、アドレスや入出力データがＭＣでバッファリングされるので信号伝達によるノイズの影響が少なく高速のクロックに同期して動作させることが可能である。
【００５０】
さらに、ＭＣは、入力されたアドレスとタグメモリＴＭ２−１やＴＭ２−２に記憶されたアドレスとの比較を行い、その結果に基づいてＭ２もしくはＭ３をアクセスする。アドレスの一致、不一致によるアクセス先やメモリ内容の更新の方法は、前述した図３と同様である。なお、図３では、Ｍ２を２次キャッシュメモリとして利用したが、パーソナルコンピュータやワークステーションなどでは、プロセッサ側に既に２次あるいは３次キャッシュが設けられている場合がある。その場合は、既存のキャッシュよりひとつ高次のキャッシュとして利用すればよい。その場合、図３のＭ１を既存のキャッシュの最高次のものとして扱うことはもちろんである。
【００５１】
なお、本実施の形態では、メモリモジュール内部にＭ２を設置した。この場合、従来のメモリモジュールとの互換性を持たせることができれば、既存の情報処理装置へこのメモリモジュールを適用することが容易となる。このためには、メモリＭ２のアクセスにおいて、キャッシュにヒットした場合でも、救済データにヒットした場合でも、ＭＣによって、Ｍ３のアクセス速度に合わせて制御すればよい。また、図５では、メモリモジュールにＭ２やＭ３を実装する構成例とした。この場合、たとえばＭ２、ＴＭ２−１、ＴＭ２−２、ＭＣを一つの半導体チップに集積して、ｍ個のＭ３チップと共にモジュール基板に実装することが可能である。あるいは、チップの積層技術を用いて、ひとつのパッケージに、複数のＭ３チップと、Ｍ２、ＴＭ２−１、ＴＭ２−２、ＭＣを集積したチップとを収納し、複数個のそのようなパッケージと、Ｍ３Ｃとをひとつのモジュール基板上に実装するなどのバリエーションが可能である。
【００５２】
以上のような構成を用いると、キャッシュ効果による電力削減によってチップの発熱が抑えられ、さらに救済により高温時の不良も救済できるため、上記のような高密度実装を行っても信頼性の高い情報処理装置を実現できる。さらに、特許文献２のように同じデータバスに救済データを記憶するメモリと救済対象のメモリが接続されておらず、Ｍ２とＭ３は、コントローラＭＣを介してアクセスされるので、アクセス対象がＭ３の不良ビットであった場合、Ｍ３のアクセスコマンドの発行を止めることによって容易にＭ３の動作をキャンセルできるという利点もある。また、図５の構成例では、メモリモジュール内部にメモリＭ２や、ＴＭ２−１およびＴＭ２−２を設置した。このようにすると、メモリＭ３の生産時のテスト結果を不揮発メモリで構成したＴＭ２−２やモジュール上に別途設けた不揮発メモリにあらかじめ記憶させてモジュールを出荷することが可能である。
【００５３】
ところで、図５においては、Ｍ２に対してＭ３Ｃから送られてくるアドレスは、メモリＭ３の仕様に合わせた構成やタイミングとなる。メモリＭ３としてＤＲＡＭなどを使用した場合、ロウアドレスとカラムアドレスとが時間差をおいて発行される場合がある。そのような場合には、Ｍ２のタグメモリＴＭ２−１，ＴＭ２−２をそれぞれロウアドレス用とカラムアドレス用との二つに分割するとよい。分割することによって、ロウアドレスが入力されたときにアドレス比較を開始できるので、カラムアドレスが入力されてから、一度に行うのと比較して速度と回路規模の点で有利となる。このような場合に適した情報処理装置の一例について図６を用いて説明する。
【００５４】
図６は、図５の情報処理装置において、その各タグメモリを更に分割した場合の構成例を示す説明図である。図６において、ＴＭ２−１ｒ、ＴＭ２−１ｃ、ＴＭ２−２ｒ、ＴＭ２−２ｃは、それぞれ、ロウアドレス比較のためのキャッシュ用タグメモリ、カラムアドレス比較のためのキャッシュ用タグメモリ、ロウアドレス比較のための救済用タグメモリ、カラムアドレス比較のための救済用タグメモリである。
【００５５】
タグメモリＴＭ２−１ｒでは、モジュールコントローラＭＣからロウアドレス用のインデックスＩＮＤＥＸ２−１ｒが入力される。その結果、読み出される内容は、記憶されているタグが有効かどうかを示すフラグＦＬＡＧ２−１と、ロウアドレスから生成されるタグＴＡＧ２−１ｒ、ならびにカラムアドレス用のインデックスＩＮＤＥＸ２−１ｃである。ＴＭ２−１ｃでは、ＴＭ２−１ｒから読み出したインデックスＩＮＤＥＸ２−１ｃがアドレスとして入力され、読み出される内容は、タグＴＡＧ２−１ｃとメモリＭ２におけるアドレス（ポインタアドレス）ＡＤＤ−Ｍ２である。一方、救済用のタグメモリＴＭ２−２ｒでは、モジュールコントローラＭＣからロウアドレス用のインデックスＩＮＤＥＸ２−２ｒが入力され、読み出される内容は、フラグＦＬＡＧ２−２とＴＡＧ２−２ｒならびにＩＮＤＥＸ２−２ｃである。また、タグメモリＴＭ２−２ｃでは、ＴＭ２−２ｒから読み出したインデックスＩＮＤＥＸ２−２ｃがアドレスとして入力され、読み出される内容はＴＡＧ２−２ｃとＡＤＤ−Ｍ２である。Ｍ２では、アドレスとしてＴＭ２−１ｃもしくはＴＭ２−２ｃから読み出されたＡＤＤ−Ｍ２が入力され、読み出されるデータＤＡＴＡは、キャッシュまたは救済用のデータである。
【００５６】
動作の概要は以下のように記述される。キャッシュ用のタグメモリと救済用のタグメモリで同様なので、キャッシュ用のタグメモリの動作を説明する。まず、Ｍ３Ｃからロウアドレスが発行される。すると、該当モジュールのＭＣでは、受け取ったロウアドレスから、あらかじめ設定した割り当てにしたがって、キャッシュ用と救済用のインデックスとタグが生成される。次に、生成されたＩＮＤＥＸ２−１ｒをアドレスとしてＴＭ２−１ｒをアクセスして内容を読み出す。その結果、フラグが有効であり、なおかつ読み出したタグＴＡＧ２−１ｒが、ＭＣで生成したタグと一致したら、読み出したＩＮＤＥＸ２−１ｃをアドレスとしてＴＭ２−１ｃをアクセスし、その内容を予め読み出しておく。
【００５７】
つづいて、カラムアドレスがＭ３Ｃから発行されると、ＭＣは、ロウアドレスの場合と同様にインデックスとタグを生成する。そして、生成したインデックスが、先にＴＭ２−１ｒから読み出しておいたＩＮＤＥＸ２−１ｃと一致するかを調べる。また、ＴＭ２−１ｃから読み出しておいたＴＡＧ２−１ｃと、ＭＣで生成したタグが一致するかを調べる。このインデックスＩＮＤＥＸ２−１ｃとタグＴＡＧ２−１ｃの両方が一致すれば、キャッシュにヒットしたことになる。その場合、ＴＭ２−１ｃから予めタグと同時に読み出しておいたＡＤＤ−Ｍ２をアドレスとしてメモリＭ２をアクセスしてデータを読み出す。また、タイミングによっては、さらに、ＡＤＤ−Ｍ２をアドレスとして予めメモリＭ２からデータを読み出しておき、キャッシュがヒットした場合に、この予め読み出しておいたデータを有効データとして扱うことも可能である。
【００５８】
なお上記において、比較を高速に行うには、Ｍ２をＳＲＡＭなどアクセスの早いメモリで構成することが有効である。Ｍ２の容量は、インデックスのビット数をｉｎとして、２のｉｎ乗であるので、メモリＭ３のアドレス空間よりもタグのビット数だけ小さくできる。したがってＳＲＡＭで構成しても面積の増大の影響は少ない。また、図５の構成例においてモジュール間あるいはモジュールとＭ３Ｃの間をモジュール内部のバス幅より少ない幅のバスで結合して、モジュール外部のデータの転送を内部より高速のクロックに同期させて行うこともできる。その場合、ＭＣに加えてＭ２やＭ２のタグメモリを高速のクロックで動作させれば、比較を高速に行うために有効である。このようにすれば、図５のＭ３としてレイテンシの小さいＤＲＡＭを用いた場合でも、その実力が損われることがない。
【００５９】
以上、実施の形態１および２の情報処理装置を用いた場合の主な効果を纏めると以下のようになる。
【００６０】
（１）Ｍ２を制御するキャッシュ用のタグメモリと救済用のタグメモリを設けたため、インデックスとタグの割り当てを独立して最適化することが可能となる。
【００６１】
（２）その結果、キャッシュのヒット率に対応して第１の記憶装置の温度上昇が抑制され、またチップによって異なる分布を示す不良のビットを効率よく救済することができる。
【００６２】
（３）これによって、仮に周囲温度が高い状況においても情報処理装置の信頼性を上げることが可能となる。
【００６３】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００６４】
例えば、これまで述べた実施の形態では、通常のキャッシュ機能をＭ２に持たせていた。しかし、通常のキャッシュ機能に限らず、例えばＭ２にビクティムキャッシュ機能と救済データの記憶とを兼用させることも可能である。ビクティムキャッシュとは、低次のキャッシュから追い出されたデータを一時的に保管することにより、追い出されたデータに再度アクセスが来た場合にメインメモリまでアクセスしないで済むようにするものである。この機能は、図１の構成例のような場合にも、図５の構成例のような場合にも容易に実現できる。特に２次や３次のキャッシュが既に別途設置されている場合は、キャッシュとしてのヒット率の向上が困難な場合があり、そのような場合に適している。なお、ビクティムキャッシュでは、低次のキャッシュから追い出されたデータを書き込んでおく点が通常のキャッシュと異なる。そのために、例えば図１のＭ２Ｃに送られてきた書き込みデータが、低次キャッシュから追い出されたデータであることを知らせる必要がある。このためには、専用の信号線を設けてもよいし、通常の信号線を使って専用のコマンドを定義してもよいことはもちろんである。
【００６５】
また、本実施の形態では、Ｍ２をメモリＭ３の救済データの記憶用に用いたが、Ｍ２の容量によってはＭ２自体の救済が必要なことがありえる。そのような場合は、Ｍ２自体にスペアのビットを設けて救済すればよいことはもちろんである。また、Ｍ２としてＳＲＡＭ、Ｍ３としてＤＲＡＭを使う場合などでは、ＳＲＡＭがＤＲＡＭよりもソフトエラーが起きやすく、その対策が必要な場合がある。そのような場合には、ＳＲＡＭにエラー訂正回路、いわゆるＥＣＣを設けるとよい。特に物理的に離れたセルの情報に対してＥＣＣを施すことによりマルチビットエラーに強くできる。
【産業上の利用可能性】
【００６６】
本発明の情報処理装置は、ＤＲＡＭ等の半導体メモリとＣＰＵなどを含んだシステムに適用して特に有益な技術であり、これに限らず、例えばハードディスクなどの記憶装置を含んだシステムなどのように各種記憶装置を含んだシステム全般に対して広く適用可能である。
【図面の簡単な説明】
【００６７】
【図１】本発明による実施の形態１の情報処理装置において、その構成の一例を示すブロック図である。
【図２】図１の情報処理装置において、その各メモリの仕様の一例を示す説明図である。
【図３】図１の情報処理装置において、その動作の一例を示す説明図である。
【図４】図１の情報処理装置において、その第２メモリコントローラの詳細な構成例を示すブロック図である。
【図５】本発明による実施の形態２の情報処理装置において、その構成の一例を示すブロック図である。
【図６】図５の情報処理装置において、その各タグメモリを更に分割した場合の構成例を示す説明図である。
【符号の説明】
【００６８】
ＡＤＤＢ  アドレスバス
ＣＨＩＰ１  マイクロプロセッサチップ
ＣＯＭＰ  比較回路
ＣＯＮＴ  制御回路
ＣＰＵ  中央情報処理装置
ＤＡＴＢ  データバス
ＤＬＹ  遅延回路
Ｍ１  １次キャッシュメモリ
Ｍ１Ｃ  １次キャッシュコントローラ
Ｍ２Ｃ，Ｍ３Ｃ  メモリコントローラ
Ｍ２  第２メモリ
Ｍ３  外部メモリ
ＭＣ  モジュールコントローラ
ＭＯＤＵＬＥ  メモリモジュール
ＳＥＬ  セレクタ回路
ＴＭ１，ＴＭ２−１，ＴＭ２−２，ＴＭ２−１ｒ，ＴＭ２−２ｒ，ＴＭ２−１ｃ，ＴＭ２−２ｃ  タグメモリ
【図１】
0004846383.tif 000002
【図２】
0004846383.tif 000003
【図３】
0004846383.tif 000004
【図４】
0004846383.tif 000005
【図５】
0004846383.tif 000006
【図６】
0004846383.tif 000007