(57)【特許請求の範囲】
【請求項１】
情報を記憶する複数のメモリセルと、
上記複数のメモリセルに記憶されたｎビットの情報と、それに対応するｎビットの比較入力情報を比較し、不一致検出出力と一致検出出力を出力するｎ個の１ビット比較回路とから構成される半導体メモリ装置であって、
ｍ（１≦ｍ≦ｎ）ビット目の１ビット比較回路は、ｍビット目以外の少なくとも一つの１ビット比較回路の比較結果に一致検出が含まれているときに比較動作を開始するとともにセンスアンプを活性化させることを特徴とする半導体メモリ装置。
【請求項２】
請求項１記載の半導体メモリ装置において、
前記半導体メモリ装置を構成するｉビット目からｊビット目までの間にあるｍビット目（ｉ,ｊは１≦ｉ＜ｊ≦ｎを満足する所定の整数、ｍは、ｉ＜ｍ≦ｊを満足する整数）の１ビット比較器は、ｍ−１ビット目の１ビット比較器の比較結果が一致検出した場合に比較動作を開始し、不一致検出した場合には比較動作を開始しないことを特徴とする半導体メモリ装置。
【請求項３】
請求項１記載の半導体メモリ装置において、
前記半導体メモリ装置を構成するｉビット目からｊビット目までの間にあるｍビット目（ｉ,ｊは１≦ｉ＜ｊ≦ｎを満足する所定の整数、ｍは、ｉ≦ｍ＜ｊを満足する整数）の１ビット比較器は、ｍ＋１ビット目の１ビット比較器の比較結果が一致検出した場合に比較動作を開始し、不一致検出した場合には比較動作を開始しないことを特徴とする半導体メモリ装置。
【請求項４】
請求項１ないし請求項３のいずれか１項に記載された半導体メモリ装置において、
前記ｎ個の１ビット比較回路からの不一致検出出力の少なくとも２つは、ワイヤード論理によって不一致検出線に接続され、少なくとも２つの１ビット比較回路の比較結果に従ったミス信号が該不一致検出線に出力されることを特徴とする半導体メモリ回路。
【請求項５】
請求項４記載の半導体メモリ装置において、
予め決められた設定時間内にミス信号が出力されない場合には、該設定時間になったら、ｎ個の該１ビット比較器のうち、比較動作が開始していない少なくとも２つの１ビット比較器の動作を同時に開始させることを特徴とする半導体メモリ装置。
【請求項６】
請求項５記載の半導体メモリ装置において、
前記設定時間に動作させた該１ビット比較器によって、該ミス信号が出力されることを特徴とする半導体メモリ装置。
【請求項７】
請求項４ないし請求項６のいずれか１項に記載の半導体メモリ装置において、
複数のメモリセルはキャッシュメモリのアドレスを格納するタグ・アレイを構成していることを特徴とする半導体メモリ装置。
【請求項８】
請求項７記載の半導体メモリ装置をｋ（ｋ≧２）個具備したｋウェイ・セット・アソシアティブ構造の半導体メモリ装置において、
前記タグ・アレイから出力される少なくとも一つのミス信号によって一つのウエイを選択し、それによってキャッシュメモリの一つのデータアレイからの出力を選択することを特徴とする半導体メモリ装置。
【請求項９】
請求項４ないし請求項６のいずれか１項に記載の半導体メモリ装置において、
前記複数のメモリセルは仮想記憶装置におけるトランスレーション・ルックアサイド・バッファ（ＴＬＢ）の論理アドレスを格納するタグ・アレイを構成していることを特徴とする半導体メモリ装置。
【請求項１０】
請求項９の半導体メモリ装置をｋ（ｋ≧２）個具備したｋウェイ・セット・アソシアティブ構造の半導体メモリ装置において、
前記タグ・アレイから出力される少なくとも一つのミス信号によって一つのウエイを選択し、それによってトランスレーション・ルックアサイド・バッファ（ＴＬＢ）の一つの物理アドレスアレイからの出力を選択することを特徴とする半導体メモリ装置。
【請求項１１】
請求項７ないし請求項１０のいずれか１項に記載された少なくとも一つの半導体メモリ装置と、少なくとも１つの不一致検出助長信号発生装置から構成されるマイクロコンピュータであって、
前記不一致検出助長信号発生装置は、該マイクロコンピュータ外部からのシステムクロックまたは該マイクロコンピュータ内部で生成されるシステムクロックに依存した設定時間を決定するとともに、該設定時間になったら不一致検出助長信号を発生して１ビット比較器に与え、まだ比較動作を行っていない１ビット比較器の動作を開始させるものであることを特徴とするマイクロコンピュータ。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は半導体メモリ装置およびそれを用いたマイクロコンピュータに関し、特に、高速かつ低消費電力動作が可能な比較機能を有する半導体メモリ装置およびそれを用いたマイクロコンピュータに関する。
【０００２】
【従来の技術】
従来、マイクロコンピュータ等のコンピュータシステムにおいては、その高速化のために、中央処理装置（ＣＰＵ）と主記憶との間に主記憶装置中の命令あるいはデータの一部を格納するキャッシュメモリを用いることが一般的に行われている。このキャッシュメモリとしては、比較機能を有する半導体メモリ装置が用いられている。この種の半導体メモリ装置では、外部から入力される比較データと第１のメモリセルアレイ（タグメモリ）に記憶されたデータとが一致しているか否かを判定して、この判断結果により別に設けられた第２のメモリセルアレイをアクセスするようにしている。マイクロコンピュータの扱うデータ量、情報処理量の増大から、この比較データのビット幅は増加しており、上記比較に要する時間、消費電力は増加する傾向にある。
【０００３】
この比較機能を実現する手段としては、従来より例えば、アイ・イー・イー・イー，ジャーナル・オブ・ソリッド・ステート・サーキット，第１４４０頁から第１４５４頁，１９９４年１２月号(IEEE JOURNAL OF SOLID-STATE CIRCUITS,VOL 29,NO 12,DECEMBER 1994)に記載されているように、比較データを第１のメモリセルアレイからセンスアンプを用いて全て読みだし、ワイヤード論理をとり、一致しているかどうかを調べている。
【０００４】
また、アイ・イー・イー・イー，トランザクション・オブ・ベリー・ラージ・スケール・インテグレーション（ブイ・エル・エス・アイ）システムズ，第２２６頁から第２４０頁，１９９４年６月号(IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS,VOL 2,NO 2,JUNE 1994)に記載されているように、比較データを第１のメモリセルアレイからセンスアンプを用いて一部分だけ読みだして比較し、後に全比較データを第１のメモリセルアレイから読みだして一致しているかどうかを調べる方法もある。最初の一部分の比較は比較データ幅が小さいので高速に処理することができる。
【０００５】
【発明が解決しようとする課題】
上記のアイ・イー・イー・イー，ジャーナル・オブ・ソリッド・ステート・サーキット，第１４４０頁から第１４５４頁，１９９４年１２月号(IEEE JOURNAL OF SOLID-STATE CIRCUITS,VOL 29,NO 12,DECEMBER 1994)に記載された従来技術においては、比較データをメモリセルアレイから全て読みだしているため、消費電力が大くなるという欠点がある。例えば、４ウェイ・セット・アソシアティブ構造を取るキャッシュメモリで、比較データ幅が２０ビット有ったとすると、少なくとも８０ビット（２０×４）のデータをメモリセルから読み出さなくてはならず、電力を多く消費するという問題があった。
【０００６】
また、アイ・イー・イー・イー，トランザクション・オブ・ベリー・ラージ・スケール・インテグレーション（ブイ・エル・エス・アイ）システムズ，第２２６頁から第２４０頁，１９９４年６月号(IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS,VOL 2,NO 2,JUNE 1994)に記載されている方法では最初に読みだし比較する比較データ幅を制限しているので、比較に要する消費電力は幾分小さくなり、高速に仮の比較結果が得られる。ここで、仮の比較データというのは、比較を全ビットに対して行っていないので完全な比較結果ではないという意味で仮である。この方法では、最初に比較する比較データ幅を固定しているので、最初の比較では十分な比較結果が得られない場合が多い。これを避けるために最初の比較する比較データ幅を広くすると、この方法の利点が損なわれるという問題があった。
本発明の目的は、上記したような従来回路における問題点を解決し、比較動作に要する消費電力の低減化と比較動作の高速化という背反する要求に対し両者を最適な値にすることが可能な半導体メモリ装置およびそれを用いたマイクロコンピュータを提供することにある。
【０００７】
【課題を解決するための手段】
本発明は、上記目的を達成するために、情報を記憶する複数のメモリセルＭと、該複数のメモリセルＭに記憶されたｎビットの情報と、それに対応するｎビットの比較入力情報Ａｉ（ｉ＝１〜ｎ）を比較し、不一致検出出力ＭＩＳＳｉ（ｉ＝１〜ｎ）と一致検出出力ＨＩＴｉ（ｉ＝１〜ｎ）を出力するｎ個の１ビット比較回路Ｃｉ（ｉ＝１〜ｎ）とから構成されている半導体メモリ装置であって、ｍ（１≦ｍ≦ｎ）ビット目の１ビット比較回路は、ｍビット目以外の少なくとも一つの１ビット比較回路の比較結果に一致検出が含まれているときに比較動作を開始するとともにセンスアンプを活性化させることを特徴としている。
【０００８】
また、半導体メモリ装置を構成するｉビット目からｊビット目までの間にあるｍビット目（ｉ,ｊは１≦ｉ＜ｊ≦ｎを満足する所定の整数、ｍは、ｉ＜ｍ≦ｊを満足する整数）の１ビット比較器は、ｍ−１ビット目の１ビット比較器の比較結果が一致検出した場合に比較動作を開始し、不一致検出した場合には比較動作を開始しない構成、半導体メモリ装置を構成するｉビット目からｊビット目までの間にあるｍビット目（ｉ,ｊは１≦ｉ＜ｊ≦ｎを満足する所定の整数、ｍは、ｉ≦ｍ＜ｊを満足する整数）の１ビット比較器は、ｍ＋１ビット目の１ビット比較器の比較結果が一致検出した場合に比較動作を開始し、不一致検出した場合には比較動作を開始しない構成を有する。
さらに、予め決められた設定時間内にミス信号が出力されない場合には、該設定時間になったら不一致検出助長信号をｎ個の該１ビット比較器のうち比較動作を開始していない少なくとも２つの１ビット比較器に与えて比較動作を開始させるようにしている。
【０００９】
また、本発明のマイクロコンピュータは、前記半導体メモリ装置と不一致検出助長信号発生装置から構成され、不一致検出助長信号発生装置は、マイクロコンピュータ外部からのシステムクロックまたはマイクロコンピュータ内部で生成されるシステムクロックに依存した設定時間を決定するとともに、該設定時間になったら不一致検出助長信号を発生して１ビット比較器に与え、まだ比較動作を行っていない１ビット比較器の動作を開始させることを特徴としている。
【００１０】
【作用】
本発明は上記構成により具体的に次のように作用する。
比較動作を１ビット目からｎビット目までの１ビットづつの比較を逐次実行する。ｍビット目の比較はｍ−１（またはｍ＋１）ビット目の比較結果が一致している場合に行う。一致している限り１ビットづつ比較が実行する。不一致検出したビット位置以降のビットの比較は行わない。従って、比較データをメモリセルアレイから全て読みだす必要がなく、比較に要する消費電力を削減できる。
また、設定時間までに比較結果が確定できるように、比較動作を並列化し、高速化してもよい。たとえば、上記１ビットづつの逐次動作の代わりに、一度に２ビットづつ比較する。３ビットづつでもいいし、４ビットづつでもよい。また、途中までは１ビットづつの逐次動作で、途中から２ビットづつの逐次動作にしてもよい。要は設定時間内に一致・不一致の結果が確定するような１ビット比較器の接続形態にすればよい。これにより、搭載される半導体メモリ装置システムなどに適合した比較器の設計が可能になる。
さらに、設定時間までに上記不一致検出結果が得るためには、設定時間に比較結果が確定するように、比較を開始していない残りのビットの比較を一度に行い、強制的に比較動作を行わせることもできる。
【００１１】
また、本発明のマイクロコンピュータによれば、設定時間に比較結果が確定するように、比較を開始していない残りのビットの比較を一度に行い、強制的に比較動作を行わせる構成、すなわち不一致検出助長信号発生装置を設けたことにより、設定時間をシステムの動作速度（システムクロック）に応じて変化させることができ、少ない消費電力での比較動作が可能になる。すなわち、システムの動作速度が速いときには前記設定時間は早くなって比較動作が早く終了する。逆にシステムの動作速度が遅いときには前記設定時間は遅くなり逐次比較動作内で比較動作が完了する確率が高くなり、消費電力が低減する。
【００１２】
【実施例】
以下、図を参照して本発明の具体的な実施例を説明する。
図１は、本発明の半導体メモリ装置の一実施例を示す図である。同図において、ＭＡ０はメモリセルアレイ、ＣＡ０はｎビットの比較器、Ｃ１からＣｎは１ビット比較器、Ｇ０はワイヤード論理回路、Ｇ３は不一致検出線、Ｇ１は不一致検出線Ｇ３の電位を増幅する増幅器、Ｍはメモリセルである。Ｗ１〜Ｗｍはワード線、ＢＬ１／ＢＬＢ１〜ＢＬｎ／ＢＬＢｎはビット線対、Ａ１〜Ａｎはｎビットの比較データ列、ＨＩＴ１〜ＨＩＴｎは各比較器からの一致検出出力、ＭＩＳＳ１〜ＭＩＳＳｎは各比較器からの不一致検出出力、ＭＩＳＳはミス信号、ＨＩＴはヒット信号、ＳＴＡＲＴは比較開始信号を示している。
【００１３】
以下、図１の動作を図１１のタイミングチャートを用いて説明する。
ワード線Ｗ１〜ＷｍによってメモリセルＭのアレイのうちの一行を選択し、その一行の情報をビット線対ＢＬ１／ＢＬＢ１〜ＢＬｎ／ＢＬＢｎに読み出す。その後、比較開始信号ＳＴＡＲＴによって１ビット比較器Ｃ１が比較動作を開始し、ビット線対ＢＬ１／ＢＬＢ１のデータと比較データＡ１を比較する。比較の結果、両者が一致していれば一致検出出力ＨＩＴ１をアサートする。一致検出出力ＨＩＴ１は次段の１ビット比較器Ｃ２の起動信号（１ビット比較器Ｃ１の比較開始信号ＳＴＡＲＴに相当する）となり、１ビット比較器Ｃ２を起動する。１ビット比較器Ｃ２はビット線対ＢＬ２／ＢＬＢ２のデータと比較データＡ２とを比較し、両者が一致していれば一致検出出力ＨＩＴ２をアサートして、次段の１ビット比較器Ｃ３を起動する。これらの動作を不一致が検出されるまで逐次繰り返す。全ｎビットが一致していれば、ミス信号はアサートされず、ヒット信号ＨＩＴがアサートされる（図１１（ａ））。一方、ｎ個の１ビット比較器のうちの少なくとも一つの１ビット比較器Ｃｋ（１≦ｋ≦ｎ）で不一致が検出され場合、１ビット比較器Ｃｋは不一致検出出力ＭＩＳＳｋをアサートし、不一致検出線Ｇ３が”０”になり、ワイヤード論理回路Ｇ０によってミス信号ＭＩＳＳがアサートされる（図１１（ｂ））。
【００１４】
比較回路の消費電力はセンスアンプ等が含めれるため、一般に大きく、本発明のように一致している場合にのみ次の比較動作を開始することにより、比較回路の動作割合を削減でき、消費電力を低減できる。したがって、比較すべきビット数（Ａ１〜Ａｎ）が多いほど本発明の効果は大きい。
【００１５】
本発明をキャッシュメモリやトランスレーション・ルックアサイド・バッファ（ＴＬＢ）のタグ部分の比較回路に用いればより効果がある。なぜなら、キャッシュメモリやトランスレーション・ルックアサイド・バッファ（ＴＬＢ）のタグ部分の比較は一般にタグアドレス下位６〜８ビット程度で確定することが知られている（例えば、日経エレクトロニクス，１９９５年１-３０号，１２１頁〜１３２頁，日経ＢＰ社）。それらのタグ部分の比較ビット数（ｎ）は２０ビット以上にもなり、すべての比較器を動作させる従来方法では消費電力が大きくなる。したがって、図１の実施例でA1を比較アドレスの下位ビット側に、Anを上位アドレス側に設定すればより効果がある。さらに、キャッシュメモリではそのウェイに有効データが入っているかを記憶しているバリッドビット等があり、比較アドレスの比較と同時にそれが有効になっているかを比較しているが、それらのビットは常に比較を必要とするので、図１の実施例でA1側に割り当てるとよい。
【００１６】
図１に示した実施例では多数の比較器が逐次的に動作するので、一致あるいは不一致検出が得られるまでの時間が一義的に確定できない。すなわち、１ビット比較器Ｃ１で不一致検出が得られれば高速にミス信号ＭＩＳＳが得られるが、１ビット比較器Ｃ１から１ビット比較器Ｃｎ−１まで全て一致検出が得られ、最後の１ビット比較器Ｃｎで不一致検出が得られる場合にはミス信号ＭＩＳＳの検出が遅くなる。また、全て一致する場合にもヒット信号ＨＩＴが得られるまで多くの時間を要する。
図２〜図５はこのような問題を解決するための実施例である。
【００１７】
図２は図１の１ビット比較器Ｃ１〜Ｃｎの接続方法を変え、１ビット比較器を２つづつ同時に動作させるようにして高速化を図ったものである。
ワード線Ｗ１からＷｍでメモリセルＭの一行を選択し、その情報をビット線対ＢＬ１／ＢＬＢ１〜ＢＬＢｎ／ＢＬＢｎに読み出す。その後、比較開始信号ＳＴＡＲＴによって１ビット比較器Ｃ１と１ビット比較器Ｃ２が比較動作を同時に開始し、ビット線対ＢＬ１／ＢＬＢ１のデータと比較データＡ１を１ビット比較器Ｃ１で、ビット線対ＢＬ２／ＢＬＢ２のデータと比較データＡ２を１ビット比較器Ｃ２で比較する。一致していればそれぞれ一致検出出力ＨＩＴ３，ＨＩＴ４をアサートして、次段の１ビット比較器Ｃ３，Ｃ４を起動する。１ビット比較器Ｃ３はビット線対ＢＬ３／ＢＬＢ３のデータと比較データＡ３を比較し、１ビット比較器Ｃ４はビット線対ＢＬ４／ＢＬＢ４のデータと比較データＡ４を比較し、一致していればそれぞれ一致検出出力ＨＩＴ３，ＨＩＴ４をアサートして、次段の１ビット比較器を起動する。
【００１８】
これらの動作が不一致が検出されるまで逐次繰り返される。不一致が検出された１ビット比較器Ｃｋ（１≦ｋ≦ｎ）は不一致検出出力ＭＩＳＳｋをアサートし、ワイヤード論理回路Ｇ０によってミス信号ＭＩＳＳをアサートする。
全ｎビットが一致していれば、ミス信号はアサートされず、ヒット信号ＨＩＴがアサートされる。
【００１９】
図２の実施例は、図１の実施例に比較して一度に１ビット比較器が２個づつ動作するので高速に不一致あるいはヒット信号が得られる。図２のようにして同時に動作する１ビット比較器３個，４個と増やしていけばより高速に動作できる。しかし、この場合、無駄に動作する１ビット比較器の数が増加するので消費電力が大きくなる。同時に動作する１ビット比較器をｎ個にした場合が従来例に近くなるが、その時の消費電力が最大になる。
要求される時間内に不一致、ヒット信号が得られるように同時に動作する１ビット比較器の数を最適化すれば、必要最低限の消費電力で比較動作を行える。
【００２０】
次に、図１の実施例と図２の実施例を組み合わせた実施例を説明する。
図３は、上記した一般にキャッシュメモリやトランスレーション・ルックアサイド・バッファ（ＴＬＢ）のタグ部分の比較はタグアドレス下位６〜８ビット程度で確定することを利用した高速化の例である。１ビット比較器Ｃ４までは同時に動作する１ビット比較器を１個にし、１ビット比較器Ｃ５以降は２個づつ同時に動作するように接続している。ほとんどのタグ比較が１ビット比較器１個の逐次動作で確定するので、低消費電力になり、一致検出は１ビット比較器Ｃ５以降が１ビット比較器２個づつの逐次動作なので高速に得られる。本実施例では図１の実施例の利点と、図２の実施例の利点を兼ね備えている。
【００２１】
図３では１ビット比較器Ｃ５以降を１ビット比較器２個の逐次動作にしているが１ビット比較器３個、あるいは１ビット比較器４個の逐次動作にしてもよい。極端な例では１ビット比較器Ｃ５以降全てを一度に比較実行してもよい。すなわち、１ビット比較器Ｃ４で一致検出が検出されれば、１ビット比較器Ｃ５以降を一度に全て比較するわけである。この構成によってさらに高速な比較が可能になる。
また、図３では１ビット比較器Ｃ１〜Ｃ４については比較器を１つづつ逐次的に動作させ、１ビット比較器Ｃ５以降についてのみ複数比較器の逐次動作させているが、どの位置の比較器から複数の比較器にするかは、図３の半導体メモリ装置を含むシステムの性質によって、最適な位置に選べばよい。設定時間以内にミス信号あるいはヒット信号が得られ、なおかつその時の動作する比較器の数が最小になるようにすればよい。尚、ここで言う設定時間は本発明の半導体メモリ装置に与えられた、比較開始信号ＳＴＡＲＴをアサートしてから比較が完了するまでの時間である。
【００２２】
図４は１ビット比較器の別の接続形態の実施例である。比較アドレスＡ１から始まって比較アドレスＡ９までの逐次比較と、比較アドレスＡｎから始まって比較アドレスＡ１０までの逐次比較の二つの逐次比較が比較開始信号ＳＴＡＲＴによって同時に動作する。
【００２３】
上記したようにキャッシュメモリやトランスレーション・ルックアサイド・バッファ（ＴＬＢ）のタグ部分の比較はタグアドレス下位６〜８ビット程度で確定し、下位（ＬＳＢ側）６〜８ビットの情報量が大きい。それと同時にタグアドレス上位（ＭＳＢ側）２，３ビットの情報量も大きい。なぜなら、ＯＳが割り当てるアドレスは０番地から始まるものと、ffff0000（１６進）番地など上位の番地に割り当てるものがあるからである。後者は例えばスタックなど、アドレスの上位アドレス（ffffffff）から下位アドレス（00000000）に向かって利用されるメモリ使用方法の場合である。このような場合、図４のように比較アドレスＡｎから始まって比較アドレスＡ１０までの逐次比較を行うことで高速に不一致を検出でき、高速かつ低消費電力な比較が実現できる。
【００２４】
図５は、図１の実施例に比較器における不一致検出を強制的に開始させることにより不一致検出出力を高速に得るための不一致検出助長信号Ｓ０を備えた実施例である。ミス信号ＭＩＳＳが得られないときに、不一致検出助長信号Ｓ０によって各比較器Ｃ１からＣｎの比較動作において未だ開始していない１ビット比較器の比較を不一致検出助長信号Ｓ０によって強制的に開始させる。このように、設定時間にミス信号ＭＩＳＳが得られないとき、不一致検出助長信号Ｓ０をアサートすることによって強制的に比較を開始して不一致の場合にミス信号ＭＩＳＳを高速に得ることができる。
【００２５】
さらに、図５の実施例では不一致検出助長信号Ｓ０をアサートする時間を設定時間を変えることで変化させることが可能である。一般に、不一致検出助長信号Ｓ０をアサートする時間を遅くすればそれだけ少ない数の比較器の動作で不一致検出できる可能性があることを意味し、低消費電力化できる。したがって、本発明の半導体メモリ装置を使ったシステムの動作速度に応じて不一致検出助長信号Ｓ０をアサートする時間を変化させればシステムの動作速度に応じた最低限の消費電力での比較が可能になる。
【００２６】
システムの動作速度が速いときには不一致検出助長信号Ｓ０をアサートする時間を早くする。その場合、正規の不一致検出が不一致検出助長信号Ｓ０をアサートするまでに完了する確率は低くなり、消費電力が増加するが、高速にミス信号を得ることができる。システムの動作速度が遅いときには不一致検出助長信号Ｓ０をアサートする時間を遅くする。その場合、不一致検出が不一致検出助長信号Ｓ０をアサートするまでに完了する確率は高くなり、消費電力が低減する。システムの動作速度はシステムクロックの周波数によって決められる。
【００２７】
図１０は図５で説明した半導体メモリ装置を用いたマイクロコンピュータの実施例である。
同図において、４００はマイクロコンピュータ、４０１は図５に示した半導体メモリ装置、４０２は不一致検出助長信号発生装置、Ｓ０は不一致検出助長信号、４０３はマイクロコンピュータのシステムクロックを示している。
不一致検出助長信号発生装置４０２によって、システムクロック４０３から不一致検出助長信号Ｓ０を発生している。不一致検出助長信号Ｓ０は半導体メモリ装置４０１に入力される。
【００２８】
図５の実施例の説明で詳述したように、システムクロックが速いときには不一致検出助長信号Ｓ０をアサートする時間を早くすることで、半導体メモリ装置４０１の消費電力が増加するが、高速にミス信号ＭＩＳＳを得ることができる。システムシステムの動作速度が遅いときには不一致検出助長信号Ｓ０をアサートする時間を遅くすることで、半導体メモリ装置４０１の消費電力が低減する。
【００２９】
図１〜図５で説明した実施例以外にも、１ビット比較器の接続形態はさまざまなものが考えられるが、要は設定時間以内にミス信号あるいはヒット信号が得られ、なおかつその時の動作する比較器の数が最小になるようにすればよい。
また、ｎ個の１ビット比較器の不一致検出出力ＭＩＳＳ１からＭＩＳＳｎはすべて同一のワイヤード論理Ｇ０に接続されているが、これらを何個かに分割してもよい。すなわち、ＭＩＳＳ１からＭＩＳＳ５までと、ＭＩＳＳ６からＭＩＳＳｎまでを分けて論理和をとり、２つのぞれぞれの出力を最後に再び論理和をとるようにする。これにより、不一致検出からミス信号出力までを幾分高速にすることができる。
【００３０】
図６は、図１〜図５で説明した本発明の実施例の構成を２つ組み合わせ、２ウェイ・セット・アソシアティブ構造にしたキャッシュメモリの実施例である。
同図において、ＴＡはタグアドレス、ＩＡはインデックスアドレス、ＭＡ１,ＭＡ２はタグメモリセルアレイ、ＭＡ３,ＭＡ４はデータメモリセルアレイ、１０１,１０２,１０３,１０４はワードデコーダ、ＣＡ１,ＣＡ２は図１〜図５で記述した本発明の比較器、ＭＩＳＳ１０,ＭＩＳＳ２０はミス信号、ＨＩＴ１０,ＨＩＴ２０はヒット信号、ＡＭＰ１,ＡＭＰ２はセンスアンプ（増幅器）、ＳＥＬ０はウェイセレクタ、ＷＳＥＬ０はウェイ予測器を示している。
タグアドレスＴＡが入力されると、比較器ＣＡ１,ＣＡ２の比較が始まる。本発明の比較器ではミス信号がヒット信号よりも速く出力される。このミス信号を用いて、一致可能性のあるウェイをウェイ予測器ＷＳＥＬ０によって予測する。例えば、図６のような２ウェイ・セット・アソシアティブ構造の場合、ミス信号が得られたウェイと逆のウェイを、ヒットするウェイと予測する。また、４ウェイ・セット・アソシアティブ構造の場合には３個の比較器からミス信号が得られた時点で、残りの一つのウェイを、ヒットするウェイと予測する。
【００３１】
このウェイ予測器ＷＳＥＬ０によって一つのウェイ選択信号ＷＳ０を選択し、ウェイセレクタＳＥＬ０によってデータメモリセルアレイＭＡ３,ＭＡ４のセンスアンプＳＭＰ１,ＳＭＰ２の出力を選び、データ出力１００を出力する。最後にヒット信号ＨＩＴ１０,ＨＩＴ２０を用いて、ウェイ予測器ＷＳＥＬ０で選択したウェイがヒットしたことを最終的に確認する。すなわち、ウェイ予測器ＷＳＥＬ０で選択したウェイは、あくまでもヒット信号より早く出力されるミス信号から予測したものであり確実なものではなく、最終的にはヒット信号によってそのウエイが正しいもの（ヒットされたもの）か否かを判定し、正しいものでなければウェイ予測器ＷＳＥＬ０で選択されたウェイは破棄される。ミス信号がヒット信号より速く決定するような用途では従来のヒット信号によるウェイ選択方法のときよりもウェイ選択を速くできる。また、図１から図５の実施例で説明したように起動する比較器の数を最低限にできるので消費電力を削減できる。
【００３２】
図６はキャッシュメモリの実施例であるが、仮想記憶装置において使用されるトランスレーション・ルックアサイド・バッファ（ＴＬＢ）の場合でも同様である。トランスレーション・ルックアサイド・バッファ（ＴＬＢ）の場合は、図６においてタグアドレス、インデックスアドレスを論理アドレスとし、データ出力１００を物理アドレスにすればよい。図６のキャッシュメモリの実施例と全く同様の効果が得られる。トランスレーション・ルックアサイド・バッファ（ＴＬＢ）に入力される論理アドレスは、キャッシュメモリに入力されるアドレスよりもビット幅が広い。したがって、比較器で比較しなければならないアドレス幅が多く、本発明の効果が大きい。
【００３３】
図６は２ウェイ・セット・アソシアティブ構造の場合を図示したが、４ウェイ・セット・アソシアティブ構造や８ウェイ・セット・アソシアティブ構造、あるいはダイレクトマップ構造や他のキャッシュメモリ構造の場合でも同様にして実現できることは明かである。
【００３４】
以下、図を参照して本発明のより具体的な回路実施例を説明する。
図７は図１〜図６の実施例で使用した比較器の具体的回路例である。同図において、ＣＭＰ１は比較回路であり、ＰＭＯＳトランジスタＭＰ１,ＭＰ２,ＭＰ３,ＭＰ４によって構成され、ビット線対ＢＬ１／ＢＬＢ１のデータと比較データＡ１を比較するものである。ビット線対ＢＬ１／ＢＬＢ１のデータと比較データＡ１が一致している場合に一致出力ＨＩＴ１が”１”、不一致検出出力ＭＩＳＳ１が”０”になる。すなわち、比較データＡ１が”１”のときＰＭＯＳトランジスタＭＰ１とＭＰ３がオン状態、ＭＰ２とＭＰ４がオフ状態になり、ビット線ＢＬ１の信号をＰＭＯＳトランジスタＭＰ５を介してノード２００に、ビット線ＢＬＢ１の信号をＰＭＯＳトランジスタＭＰ６を介してノード２０１に伝え、逆に、比較データＡ１が”０”のときＰＭＯＳトランジスタＭＰ１とＭＰ３がオフ状態、ＭＰ２とＭＰ４がオン状態になり、ビット線ＢＬ１の信号をＰＭＯＳトランジスタＭＰ６を介してノード２０１に、ビット線ＢＬＢ１の信号をＰＭＯＳトランジスタＭＰ５を介してノード２００に伝える。ＰＭＯＳトランジスタＭＰ５およびＭＰ６は比較開始信号ＳＴＡＲＴがまだアサートされていないためオン状態にある。
ＳＡ１はセンスアンプであり、上記比較結果を増幅し、インバータＩＮＶ１,ＩＮＶ２によって一致検出出力ＨＩＴ１,不一致検出出力ＭＩＳＳ１を出力するものである。なお、図７では、簡単のためにイコライズ回路等は省略している。
【００３５】
次に、図１２のタイミングチャートを用いて図７における比較動作を詳細に説明する。
１つのワード線が選択され（図１２ではワード線Ｗ１）、ビット線対ＢＬ１／ＢＬＢ１にメモリセルから読み出された微小振幅の電圧差（例えば０．１Ｖ）が生じているとする。ここで、電源電圧を１．０Ｖとし、メモリセルに”０”が記憶されており、ビット線ＢＬ１の電位が０．９Ｖ，ビット線ＢＬＢ１の電位が１．０Ｖであるとする。比較データＡ１が”０”の時（比較データがメモリセルに記憶されていたものと一致していた時、図１２（ａ））、ＰＭＯＳトランジスタＭＰ２とＭＰ４がオン状態になるので、ノード２００，２０１の電位はそれぞれ１．０Ｖ，０．９Ｖとなる。この状態で、比較開始信号ＳＴＡＲＴをアサートすると、ＰＭＯＳトランジスタＭＰ５およびＭＰ６がオフするとともに、センスアンプＳＡ１が起動し、上記電位差（０．１Ｖ＝１．０Ｖ−０．９Ｖ）を増幅し、ノード２００，２０１の電位はそれぞれ１．０Ｖ，０．０Ｖとなる。したがって、一致検出出力ＨＩＴ１は”１”、不一致検出出力ＭＩＳＳ１は”０”となり一致検出ができる。
【００３６】
逆に、比較データＡ１が”１”の時（比較データがメモリセルに記憶されていたものと不一致していた時、図１２（ｂ））、ＰＭＯＳトランジスタＭＰ１とＭＰ３がオン状態になるので、ノード２００，２０１の電位はそれぞれ０．９Ｖ，１．０Ｖとなる。この状態で、比較開始信号ＳＴＡＲＴをアサートすると、ＰＭＯＳトランジスタＭＰ５およびＭＰ６がオフするとともに、センスアンプＳＡ１が起動し、上記電位差（０．１Ｖ＝１．０Ｖ−０．９Ｖ）を増幅し、ノード２００，２０１の電位はそれぞれ０．０Ｖ，１．０Ｖとなる。したがって、一致検出出力ＨＩＴ１は”０”、不一致検出出力ＭＩＳＳ１は”１”となり不一致検出ができる。一致検出出力ＨＩＴ１は次段の１ビット比較器Ｃ２の起動信号となり１ビット比較器Ｃ２を起動する。
【００３７】
図７に示した比較器の実施例ではセンスアンプＳＡ１が比較回路ＣＭＰ１のデータを増幅するようにしている。したがって、比較回路が小振幅で動作するので、従来のようにアイ・イー・イー・イー，ジャーナル・オブ・ソリッド・ステート・サーキット，第１４４０頁から第１４５４頁，１９９４年１２月号(IEEE JOURNAL OF SOLID-STATE CIRCUITS,VOL 29,NO 12,DECEMBER 1994)に記載されているようなセンスアンプ後に比較回路を配置する従来例よりも、比較回路の動作に要する消費電力を小さくすることができる。また、比較開始信号ＳＴＡＲＴがアサートされてからヒット信号が得られるまでの時間を短縮することができる。図１〜図５で説明した実施例のように比較器を逐次動作させる場合、図７の実施例ではセンスアンプ（ＳＡ１，・・・）の部分だけが逐次動作に関与するので高速に一致検出出力を伝搬させることができる。
【００３８】
図８は図１〜図６で説明した実施例における比較器の別の回路例である。
図８の回路は、図７の回路と比較した場合、比較回路ＣＭＰ１とセンスアンプＳＡ１の位置が逆になっており、アイ・イー・イー・イー，ジャーナル・オブ・ソリッド・ステート・サーキット，第１４４０頁から第１４５４頁，１９９４年１２月号(IEEE JOURNAL OF SOLID-STATE CIRCUITS,VOL 29,NO 12,DECEMBER 1994)に開示された構成に近い。図８の構成では、比較開始信号ＳＴＡＲＴにより増幅を行い、その後、比較データＡ１と増幅されたビット線対のデータとを比較するようにしている。そのため、図７の回路と比較して、比較回路ＣＭＰ１が電源電圧振幅で動作するので消費電力が増加してしまう。また、比較開始信号ＳＴＡＲＴがアサートされてから一致検出出力ＨＩＴ１が得られるまでの時間が比較回路ＣＭＰ１の動作分だけ長くなってしまう。
【００３９】
しかし、比較データＡ１が確定しなければならない時間を図７の回路例の場合よりも遅らせることができる。すなわち、図７の回路構成では比較開始信号ＳＴＡＲＴがアサートされるよりも前に比較データＡ１を確定しなければならないが、図８の実施例の構成では比較開始信号ＳＴＡＲＴがアサートした後に確定してもよくなるという効果がある。
【００４０】
図９は図６におけるウェイ予測器ＷＳＥＬ０の回路構成例である。
図６では２ウェイ・セット・アソシアティブ構造の場合を示したが、図９は４ウェイ・セット・アソシアティブ構造の場合に適用するウエイ予測器ＷＳＥＬ０の構成例である。２ウェイ・セット・アソシアティブ構造の場合には図９の構成より簡単に実現できることは明かである。図９において、３００,３０１,３０２,３０３は３入力のＡＮＤゲートである。ＭＩＳＳ１０,ＭＩＳＳ２０,ＭＩＳＳ３０,ＭＩＳＳ４０は図６でも示したミス信号であり、ここでは４ウェイ・セット・アソシアティブ構造の場合に拡張してある。ＷＳ１,ＷＳ２,ＷＳ３,ＷＳ４はウェイセレクタＳＥＬ０へ接続されるウェイ選択信号で、選択されると予測されるウェイ選択信号がアサートされる。
【００４１】
例えば、ミス信号ＭＩＳＳ２０,ＭＩＳＳ３０,ＭＩＳＳ４０がアサートされたときにはウェイ選択信号ＷＳ１がアサートされる。すなわち、不一致検出されていないウェイはＨＩＳＳ１０のウェイだけであるので、それを選択すべきウェイであるとし、ウェイ選択信号ＷＳ１をアサートする。まったく同様に、ミス信号ＭＩＳＳ１０,ＭＩＳＳ３０,ＭＩＳＳ４０がアサートされたときにはウェイ選択信号ＷＳ２がアサートされ、ミス信号ＭＩＳＳ１０,ＭＩＳＳ２０,ＭＩＳＳ４０がアサートされたときにはウェイ選択信号ＷＳ３がアサートされ、ミス信号ＭＩＳＳ１０,ＭＩＳＳ２０,ＭＩＳＳ３０がアサートされたときにはウェイ選択信号ＷＳ４がアサートされる。
このように本発明の比較器（図１〜図５）と図９のウェイ予測器を用いることにより不一致検出出力から容易にウェイ選択を行うことができる。
【００４２】
【発明の効果】
本発明によれば、ｍ（１≦ｍ≦ｎ）ビット目の比較回路が、ｍビット目以外の少なくとも一つの１ビット比較回路の比較結果に一致検出が含まれているときに動作するようにしているため、消費電力は少なくて済む。また、設定時間までに比較結果が確定できない場合には、消費電力の低減化を少し犠牲にして、高速化のために、残りの比較動作をハード的に並列化したり、設定時間に比較結果を確定するように設定時間で比較を開始していない残りのビットの比較を強制的に開始させる。これにより、比較動作に要する消費電力の低減化と比較動作の高速化という背反する要求に対し両者を最適な値にすることが可能になる。
【図面の簡単な説明】
【図１】本発明の最も基本的な実施例を説明するための図である。
【図２】図１において１ビット比較器を２個づつ並列動作させた場合の実施例を示す図である。
【図３】図１において１ビット比較器を途中から並列動作させた場合の実施例を示す図である。
【図４】図１において１ビット比較器を２組に分けて並列動作させた場合の実施例を示す図である。
【図５】本発明の不一致検出助長信号を備えた実施例を示す図である。
【図６】本発明をキャッシュメモリへ適用した場合の実施例を示す図である。
【図７】本発明の基本的な実施例の具体的回路構成図である。
【図８】本発明の他の実施例の具体的回路構成図である。
【図９】本発明の実施例におけるウェイ予測器の実施例の回路構成図である。
【図１０】本発明のマイクロコンピュータの実施例の図である。
【図１１】図１の動作の一例を示したタイミングチャートの図である。
【図１２】図７の動作の一例を示したタイミングチャートの図である。
【符号の説明】
Ｗ１,Ｗ２,Ｗｍ：ワード線、
Ｍ：メモリセル、
ＭＡ０：メモリセルアレイ、
ＢＬ１,ＢＬＢ１,ＢＬ２,ＢＬＢ２,ＢＬ３,ＢＬＢ３,ＢＬ４,ＢＬＢ４,ＢＬ５,ＢＬＢ５,ＢＬ６,ＢＬＢ６,ＢＬ９,ＢＬＢ９,ＢＬ１０,ＢＬＢ１０,ＢＬｎ−１,ＢＬＢｎ−１,ＢＬｎ,ＢＬＢｎ：ビット線、
Ｇ０：ワイヤード論理、
Ｇ１：増幅器、
Ｇ３：不一致検出線、
ＭＩＳＳ１,ＭＩＳＳ２,ＭＩＳＳ３,ＭＩＳＳ４,ＭＩＳＳ５,ＭＩＳＳ６,ＭＩＳＳ７,ＭＩＳＳ９,ＭＩＳＳ１０,ＭＩＳＳｎ−１,ＭＩＳＳｎ：不一致検出出力、
ＭＩＳＳ,ＭＩＳＳ１０,ＭＩＳＳ２０,ＭＩＳＳ３０,ＭＩＳＳ４０：ミス信号、
ＨＩＴ１,ＭＩＴ２,ＭＩＴ３,ＭＩＴ４,ＭＩＴ５,ＭＩＴ６,ＭＩＴ７,ＭＩＴ９,ＭＩＴ１０,ＭＩＴｎ−１,ＭＩＴｎ：一致検出出力、
ＨＩＴ,ＨＩＴ１０,ＨＩＴ２０：ヒット信号、
ＳＴＡＲＴ：比較開始信号
ＣＡ０,ＣＡ１,ＣＡ２：ｎビット比較器、
Ｃ１,Ｃ２,Ｃ３,Ｃ４,Ｃ５,Ｃ６,Ｃ７,Ｃ９,Ｃ１０,Ｃｎ−１,Ｃｎ：１ビット比較器、
Ａ１,Ａ２,Ａ３,Ａ４,Ａ５,Ａ６,Ａ７,Ａ９,Ａ１０,Ａｎ−１,Ａｎ：比較データ、
Ｓ０：不一致検出助長信号、
ＴＡ：タグアドレス、
ＩＡ：インデックスアドレス、
ＭＡ１,ＭＡ２：タグメモリセルアレイ、
ＭＡ３,ＭＡ４：データメモリセルアレイ、
ＳＥＬ０：ウェイセレクタ、
ＷＳＥＬ０：ウェイ予測器、
ＷＳ０,ＷＳ１,ＷＳ２,ＷＳ３,ＷＳ４：ウェイ選択信号、
ＡＭＰ１,ＡＭＰ２：センスアンプ、
１０１,１０２,１０３,１０４：ワードデコーダ、
１００：データ出力、
ＭＰ１,ＭＰ２,ＭＰ３,ＭＰ４,ＭＰ５,ＭＰ６：ＰＭＯＳトランジスタ、
ＰＲ１：イコライザ、
ＳＡ１：ラッチ型センスアンプ、
ＩＮＶ１,ＩＮＶ２,ＩＮＶ３：インバータ、
ＣＭＰ１：比較回路、
３００,３０１,３０２,３０３：３入力のＡＮＤゲート、
４００：マイクロコンピュータ、
４０１：半導体メモリ装置、
４０２：不一致検出助長信号発生装置、
４０３：システムクロック
【図１】
0003769784.tif 000002
【図２】
0003769784.tif 000003
【図３】
0003769784.tif 000004
【図４】
0003769784.tif 000005
【図５】
0003769784.tif 000006
【図６】
0003769784.tif 000007
【図７】
0003769784.tif 000008
【図８】
0003769784.tif 000009
【図９】
0003769784.tif 000010
【図１０】
0003769784.tif 000011
【図１１】
0003769784.tif 000012
【図１２】
0003769784.tif 000013