(57)【特許請求の範囲】
【請求項１】
複数のブロックを有する記憶装置であって、
該複数のブロックはそれぞれ、複数のワード線と該ワード線に接続される複数のメモリセルを有するメモリアレイと、
第１のアドレスが入力されて内部のデータと比較されヒット信号を出力する連想セルアレイと、
第２のアドレスをデコードして１つのラインを選択するデコーダ回路とを有し、
該デコーダ回路により選択されたラインと上記ヒット信号に基づいて上記ワード線の一つを選択する記憶装置。
【請求項２】
デコーダとワードドライバと連想セルアレイとメモリアレイにより構成されているウエイを複数有し、上記メモリアレイ内の複数のワード線のうちの一つを選択する記憶装置のアクセス方法であって、
上記デコーダが論理アドレスのオフセットアドレス信号をデコードして１つのラインを選択し、
上記連想セルアレイが仮想ページ番号を入力して内部のデータと比較して一致信号を出力し、
上記メモリアレイのワード線は上記デコーダにより選択されたラインと、連想セルアレイの一致信号によって各ウエイにつき１本選択される記憶装置のアクセス方法。
【請求項３】
複数のワード線と、複数のビット線と、該複数のワード線と複数のビット線との交点に配置される複数のメモリセルを有するメモリアレイと、
複数のワード線と、複数のデータ線と、複数のヒット線と、複数の比較アドレス線と、上記複数のワード線と複数のデータ線との交点に配置される複数の連想セルを有する連想セルアレイと、
１つのラインを活性化するデコーダ回路を有するデコーダアレイと、
上記メモリアレイのワード線を活性化させるワードドライバ回路を有するワードドライバアレイとからなるウエイを複数具備してなり、
上記デコーダにはページ内オフセットアドレスが入力されて１つのラインが選択され、前記連想セルアレイには仮想ベージ番号が入力されて連想セルのデータと比較されウエイが選択され、ライン選択とウエイ選択の論理積により、上記メモリアレイの１つのワード線が選択されることを特徴とする半導体装置。
【請求項４】
比較アドレス線を所定の電位に固定することにより、連想セルに記憶されるデータに関係なく任意のウエイのメモリアレイの任意のアドレスにページ内オフセットアドレスのみを用いてアクセスできることを特徴とする請求項３に記載の半導体装置。
【請求項５】
前記連想セルアレイには、仮想ページ番号の一部のビットのアドレスが記憶されることを特徴とする請求項３に記載の半導体装置。
【請求項６】
同一ページ内オフセットアドレスでアクセスされる連想セルアレイに保持されるデータが、異なるウエイで一致しないように論理的に制御することによって同時に複数のウエイのデータが選択されないようにすることを特徴とする請求項３に記載される半導体装置。
【請求項７】
仮想ページ番号の一部を使って、ウエイを選択してからメモリセルアレイにアクセスすることを特徴とする請求項６に記載される半導体装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は半導体記憶装置にかかわり、特にマイクロプロセッサやマイクロコンピュータ等のデータ処理装置に内蔵されるキャッシュメモリに適用して有効な技術に関する。
【０００２】
【従来の技術】
近年、低電力マイクロプロセッサの性能向上に伴い、オンチップキャッシュメモリの性能向上（高速化および低電力化）が重要となっている。一般に物理アドレスキャッシュの構成方法は３つに分類することができる。すなわち、ダイレクトマップ方式、フルアソシアティブ方式、セットアソシアティブ方式である。近年のマイクロプロセッサでは、ハードの複雑さ、ヒット率およびアクセス時間等を考慮して、セットアソシアティブ方式が採用されることが多い。
【０００３】
図１２を用いて、セットアソシアティブ方式について、２ウエイセットアソシアティブ方式を例にとって説明する。
【０００４】
論理アドレス内の、ページ内オフセットアドレスを用いて、キャッシュデータアレイにアクセスし、それぞれのウエイから２つのデータをバスの手前まで読みだす。それと同時に、キャッシュタグアレイにアクセスし、読み出されたデータに対応する２つのタグを読みだして、論理アドレス内の仮想ページ番号をＴＬＢ（トランスレイション・ルックアサイド・バッファー）によって変換した物理アドレスと比較する。物理アドレスとタグの値が一致（ヒット）した場合、そのウエイのデータをバスに出力する。
【０００５】
通常ＴＬＢをアクセスして、ヒットを検出するまでの時間のほうが、データアレイからデータを読みだす時間より長いため、ヒット信号が確定するまでは、データアレイから読み出したデータをバスに出力できず、アクセス時間が大きくなる。また、２つのデータを読みだす必要があるため消費電力も大きくなる。
【０００６】
この問題を解決する方法として、仮想ページ番号を用いて、ウェイを先に選択してからデータアレイにアクセスする方法が提案されている。この例として、アイ・エス・エス・シー・シー  ダイジェスト  オブ  テクニカル  ペーパーズ  第１７４頁から第１７５頁（１９９５年）（ISSCC Digest of Technical Papers, pp. 174-175, Feb., 1995.)の回路がある。
【０００７】
この従来技術は、仮想ページ番号をもつＣＡＭアレイ（ＥＣＡＭ）と物理アドレスをもつＣＡＭアレイ（ＲＣＡＭ）と、データを保持するメモリセルアレイからなる。データを読み出す時は、８つのデータ（８ウエイ）からなる１つのセットをページ内オフセットアドレスを用いて選択し、さらに、その内の１つのウエイをＥＣＡＭによって選択する。その結果をもとに、メモリアレイにアクセスし、データを読みだす。同時に対応するＲＣＡＭの値も読み出し、選択されたウエイが正しいかチェックする。一方データの書き込みは、１つのセットを選択し、ＲＣＡＭを用いて選択されたウエイにデータを書き込む。つまり、この方法は、論理アドレスを用いてウエイをあらかじめ選択し、後で物理アドレスを用いて選択が正しかったか検証する方式である。
【０００８】
【発明が解決しようとする課題】
しかし、ＲＣＡＭは一般的にビット幅が大きく各セット毎にビット幅のＣＡＭを必要とするため、ビット幅×セット数のＣＡＭセルを必要とする。したがってＲＣＡＭを持つことは、面積増大を招き、またアクセス時間を大きくしていた。また、ＣＡＭを用いた回路の一般的な問題でもあるが、ＣＡＭによるウエイセレクト（ヒット判定）が完全に終了してから、データアレイをアクセスしないと、誤ったデータを選択してしまう可能性があるため、多くのタイミングマージンを必要としていた。
【０００９】
つまり、ＣＡＭでは、複数のエントリーをはじめヒットの状態にして比較を開始し、ヒットする一つのエントリーのみを残して、他のエントリーをミス状態にする。この比較が完全に完了したら、ヒット信号をワードドライバに伝えワード線を立ち上げる。比較が完全に終了しないうちにヒット信号をワードドライバに伝えると間違ったワード線が複数立ち上がってしまうため、比較が終了してからヒット信号をワードドライバに伝える時に、多くのタイミングマージンが必要となる。このためアクセス時間が長くなっていた。
【００１０】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１１】
すなわち、各ウエイはデコーダとワードドライバと連想セルアレイとメモリアレイにより構成されている。デコーダが論理アドレスのオフセットアドレス信号をデコードして１つのラインを選択し、連想セルアレイには一部の仮想ページ番号を入力して連想セルのデータと比較して一致信号を出力する。メモリアレイのワード線はデコーダにより選択されたラインと、連想セルアレイによって選択されたウエイの論理積によって選択されるようにすることである。
【００１２】
本方式では、１つのウエイ（ＷＡＹ）内では、１ラインのみ活性化されるために、同一ウエイであやまって複数のワード線が同時に活性化されるおそれがないため、連想セル（ＣＡＭＣＥＬＬ）の比較が終わってからワード線を活性化させる時にタイミングマージンが必要ない。このため従来に比べ、アクセス時間を高速化することができる。
【００１３】
選択されたウエイが正しいかどうかは、本回路と全く別の回路によって、物理アドレスを用いて並行して確認する。
【００１４】
【発明の実施の形態】
以下、本発明に係わる半導体記憶装置の好適ないくつかの事例につき、図面を用いて説明する。
【００１５】
〈実施例１〉
図１は、本発明に係わる半導体記憶装置の一実施例を示す回路図である。半導体装置１００は、半導体集積回路製造技術を用いて単結晶シリコンのような半導体基板に形成される。複数のメモリセルＣＥＬＬおよび複数の連想セルＣＡＭＣＥＬＬがそれぞれマトリックス状（行列状）に配置され、メモリアレイ（ＭＡＴ）および連想セルアレイ（１０１、１０２）を構成する。またライン（ＬＩＮＥ）を選択するデコーダ回路９８が列状に並んだデコーダアレイ（１０３、１０４）およびヒット信号（ＨＩＴ）とライン信号（ＬＩＮＥ）の論理積をとってワード線（ＷＬ）を活性化するワードドライバ回路（ＡＮＤ）９９が列状に並んだワードドライバアレイ（１０５、１０６）が配置される。また、複数のセンスアンプとライトアンプが行状に並んだセンスアンプ、ライトアンプアレイ（１０８、１０９）と、読み出しデータ用バスＲＢＵＳおよび書き込みデータ用バスＷＢＵＳが配置される。
【００１６】
メモリアレイ（ＭＡＴ）、連想セルアレイ（１０１、１０２）、デコーダアレイ（１０３、１０４）、ワードドライバアレイ（１０５、１０６）、センスアンプ、ライトアンプアレイ（１０８、１０９）から構成されるウエイ（ＷＡＹ）が、ここでは２つ（ＷＡＹ０、ＷＡＹ１）配置されており、２ウエイセットアソシアティブキャッシュのデータアレイとなっている。ウエイ（ＷＡＹ）がｎ個配置された場合は、ｎウエイセットアソシアティブキャッシュのデータアレイとなる。
【００１７】
動作について説明する。デコーダ回路９８によって論理アドレスのオフセットアドレス９７がデコードされて１つのウエイにつき１つのライン（ＬＩＮＥ）が選択され、連想セルアレイ（１０５、１０６）には一部の仮想ページ番号９６が入力されて連想セルＣＡＭＣＥＬＬのデータと比較してヒット信号（ＨＩＴ）が出力される。メモリアレイのワード線はデコーダにより選択されたラインＬＩＮＥと、選択されたウエイ（ＷＡＹ）を示すヒット信号（ＨＩＴ）の論理積によって選択され、メモリセルＣＥＬＬへのデータの読み出しおよび書き込みが行なわれる。
【００１８】
図２はメモリアレイ（ＭＡＴ）、連想セルアレイ（１０１、１０２）、デコーダアレイ（１０３、１０４）、ワードドライバアレイ（１０５、１０６）の詳細な回路図である。
【００１９】
メモリセルＣＥＬＬは、１対のＣＭＯＳインバータ回路の入力と出力が互いに接続されて構成されるフリップ・フロップ（Ｐチャネル型ＭＯＳトランジスタＭＰ１、ＭＰ２、Ｎチャネル型ＭＯＳトランジスタＭＮ１、ＭＮ２で構成される）と、前記フリップ・フロップのノードＮ１とノードＮ１Ｂとをビット線（ＢＬ、ＢＬＢ）に選択的に接続するＮチャネル型ＭＯＳトランジスタＭＮ３、ＭＮ４で構成される。Ｎチャネル型ＭＯＳトランジスタＭＮ３、ＭＮ４のゲートは、ワード線ＷＬに接続される。
【００２０】
連想セルＣＡＭＣＥＬＬは、１対のＣＭＯＳインバータ回路の入力と出力が互いに接続されて構成されるフリップ・フロップ（ＩＮＶ１、ＩＮＶ２）と、前記フリップ・フロップのノードＮ２とノードＮ２Ｂとをビット線（ＣＢＬ、ＣＢＬＢ）に選択的に接続するＮチャネル型ＭＯＳトランジスタＭＮ５、ＭＮ６と、ノードＮ２とノードＮ２Ｂに蓄積されるデータと比較アドレス線（ＣＣＢＬ、ＣＣＢＬＢ）のデータを比較するＮチャネル型ＭＯＳトランジスタ（ＭＮ７、ＭＮ８、ＭＮ９）およびＰチャネル型ＭＯＳトランジスタ（ＭＰ３、ＭＰ４）から構成される。Ｎチャネル型ＭＯＳトランジスタＭＮ５、ＭＮ６のゲートには、ワード線ＣＷＬが、Ｎチャネル型ＭＯＳトランジスタＭＮ９のドレインには、ヒット線ＨＩＴがそれぞれ接続される。連想セルＣＡＭＣＥＬＬには仮想ページ番号の値が記憶される。
【００２１】
デコーダ回路９８は、アドレス信号ａ０、ａ１、ａ２を受けてラインＬＩＮＥを選択するナンド回路ＮＡＮＤ０、連想セルＣＡＭＣＥＬＬの比較器部分を活性化させるインバータ回路（Ｐチャネル型ＭＯＳトランジスタＭＰ６およびＮチャネル型ＭＯＳトランジスタＭＮ１３から構成される。）から構成される。
【００２２】
ワードドライバ回路９９は、デコーダ回路９８のライン選択信号ＬＩＮＥと連想セルアレイ（１０１、１０２）のヒット信号ＨＩＴの論理積を取ってワード線ＷＬを活性化させる回路であり、インバータ回路ＩＮＶ３、ＩＮＶ４およびナンド回路ＮＡＮＤ１から構成される。
【００２３】
図２の回路において、Ｎチャネル型ＭＯＳトランジスタＭＮ１３およびＰチャネル型ＭＯＳトランジスタＭＰ６を、ゲートが接地電位に接続されているＰチャネル型ＭＯＳトランジスタと代えることも可能である。また、ＩＮＶ３を取りＮＡＮＤ１をインバータと代えることも可能である。また、Ｐチャネル型ＭＯＳトランジスタＭＰ３およびＭＰ４を取ることも可能である。
【００２４】
図３に本実施例の読み出しおよび書き込みの動作波形を示す。それぞれの動作を開始する前に、メモリアレイ（ＭＡＴ）のビット線（ＢＬ、ＢＬＢ）は、“Ｈ”（“ＨＩＧＨ”レベル）にプリチャージされる。また、クロックが立ち上がる前に、ページ内オフセットアドレス９７は、デコード回路（１０１、１０２）に入力され、また、仮想ページ番号９６の数ビットが、比較アドレス線（ＣＣＢＬ、ＣＣＢＬＢ）に入力され、ノードＮ２とノードＮ２Ｂに蓄積されるアドレスとの比較を開始する。
【００２５】
クロックが立ち上がると、デコーダ回路（１０１、１０２）により、それぞれのウエイ（ＷＡＹ０、ＷＡＹ１）で、必ず１つのラインＬＩＮＥが選択され、“Ｌ”（“ＬＯＷ”レベル）となる。この信号によりそれぞれのウエイの連想セルアレイ（１０１、１０２）の１エントリ（ＣＡＭＣＥＬＬ０〜ＣＡＭＣＥＬＬｎ）の比較回路が活性化され、比較が一致した場合ヒット信号ＨＩＴが“Ｈ”となる。ヒット信号ＨＩＴが“Ｈ”で、ライン信号ＬＩＮＥが“Ｌ”のとき、ワード線ＷＬが“Ｈ”となる。
【００２６】
読み出しの場合は、プリチャージされたビット線（ＢＬ、ＢＬＢ）の電荷がメモリセルＣＥＬＬにより放電され電位差が生る。この電位差をセンスアンプ（１０８、１０９）で増幅して読み出し用バスＲＢＵＳに出力する。
【００２７】
書き込みの場合は、書き込み用バスＷＢＵＳのデータがビット線（ＢＬ、ＢＬＢ）に入力され、ワード線ＷＬが“Ｈ”になるとメモリセルＣＥＬＬへの書き込みが行なわれる。
【００２８】
この方式では、１つのウエイ（ＷＡＹ）で、１ラインＬＩＮＥのみが活性化されるため、１つのウエイ（ＷＡＹ）で、ワード線ＷＬが“Ｈ”になるのは、１本以下となり、同じメモリマット内の複数のワード線が誤って“Ｈ”となることはない。このため、ヒット信号ＨＩＴとワードドライバ回路９９の間にタイミングを取るための論理ゲート等を入れる必要がなくアクセスを高速化できる。
【００２９】
図４は、図２の詳細図である。ワードドライバ回路９９はワードドライバ回路９５と、デコーダ回路９８はデコーダ回路９４と変わっている。連想セルのワード線ＣＷＬを選択するためのノア回路ＮＯＲ１およびウエイでヒットがあったことを検出するＮチャネルＭＯＳトランジスタＭＮ１４が付け加えられている。信号ＨＩＴ_ＯＵＴをあらかじめプリチャージしておくことによって、選択されたウエイＷＡＹのＨＩＴ_ＯＵＴ信号のみが“Ｌ”となり、選択されたＷＡＹを認識できる。連想セルＣＡＭＣＥＬＬへのデータの書き込みは、信号ＣＡＭ_ＷＬ_ＥＮを“Ｈ”にすることにより、ページ内オフセットアドレスを用いて直接任意のアドレスにアクセスできる。
【００３０】
メモリセルへの書き込みおよび読み出しは連想セルＣＡＭＣＥＬＬを使わずにページ内オフセットアドレス９７のみを使って行なうこともできる。
【００３１】
図５にこのときの動作波形を示した。まず、クロックが立ち上がる前に、ページ内オフセットアドレス９７をデコーダ回路（１０３、１０４）に入力し、それと同時に、アクスセスしたいウエイ（ＷＡＹ）の比較アドレス線（ＣＣＢＬ、ＣＣＢＬＢ）を“Ｌ”にし、その他のウエイ（ＷＡＹ）の比較アドレス線（ＣＣＢＬ、ＣＣＢＬＢ）を“Ｈ”にする。
【００３２】
クロックが立ち上がると、デコーダ回路（１０１、１０２）により、それぞれのウエイ（ＷＡＹ０、ＷＡＹ１）で、１つのラインＬＩＮＥが選択され“Ｌ”となる。比較アドレス線（ＣＣＢＬ、ＣＣＢＬＢ）を“Ｌ”にしたウエイ（ＷＡＹ）のヒット信号ＨＩＴは必ず“Ｈ”となるので、ラインＬＩＮＥが“Ｌ”になったエントリーのワード線ＷＬが“Ｈ”となる。これにより書き込みおよび読み出し動作を実行できる。この方法を用いると、連想セルＣＡＭＣＥＬＬの比較動作を無効とすることによって、連想セルの値に関係なく、任意のウエイ（ＷＡＹ）の任意のワードにアクセスできる。
【００３３】
この方法は連想セルＣＡＭＣＥＬＬを使ったアクセスと全く同じタイミングで行なえばよく、また、この動作のために余分な回路も必要ない。本方法では、従来の直接アクセスで必要となっていた物理アドレスをもつ連想セルアレイ（ＲＣＡＭ）が必要なくなり面積を小さくすることができまた、アクセスも高速化できる。
【００３４】
〈実施例２〉
図６は、実施例１で述べた本発明に係わる半導体記憶装置１００をキャッシュメモリのデータアレイとして用いた２ウエイセットアソシアティブキャシュメモリのブロック図である。動作の概略は、はじめに仮想ページ番号９６を使ってウエイの選択をしてからキャッシュデータアレイにアクセスをし、後でウエイ選択が正しかったか物理アドレスを用いて検証する方式である。
【００３５】
キャッシュデータアレイは実施例１で述べた回路１００である。２つのウエイ（１２０、１２１）から構成されている。連想セルアレイ（１０１、１０２）はここでは、４ビットの幅を持ち、仮想ページ番号の下位４ビットの値が記憶される。ＴＬＢ回路１２４は仮想ページ番号９６を受け取って、物理アドレス１２７に変換するアドレス変換器である。キャッシュタグアレイはウエイ０（１２２）、ウエイ１（１２３）から構成されており、ページ内オフセットアドレス９７を受け取って、２つの物理アドレス（１２５、１２６）を比較器に出力する。比較器は、ＣＯＭ０（１２８）、ＣＯＭ１（１２９）から構成されており、物理アドレス１２７と物理アドレス（１２５、１２６）が一致しているかどうかを検出する回路である。キャッシュコントローラー１３０はキャッシュメモリの制御を行なう回路である。
【００３６】
以下に、動作を説明する。通常の読み出しでは、キャッシュデータアレイは、ページ内オフセットアドレス９７を受け取ってアクセスを開始する。同時に、仮想ページ番号９６の下位４ビットを連想セルアレイ（１０１、１０２）に入力してウエイを選択し、２つのうちのどちらか一方のウエイ（１２０、１２１）のメモリアレイ（ＭＡＴ）にのみアクセスし、データをＲＢＵＳに出力する。また、同時にどちらのウエイ（１２０、１２１）にアクセスしたかをキャッシュコントローラー１３０に伝える（信号１３１）。一方、キャッシュタグアレイは、ページ内オフセットアドレス９７を受け取ってそれぞれのウエイ（１２２、１２３）から１つの物理アドレス（１２５、１２６）を比較器（１２８、１２９）に出力する。ウエイ０（１２２）から読み出される物理アドレス１２５は、キャッシュデータアレイの ウエイ０（１２０）から読み出されるデータに対応しており、ウエイ１（１２３）から読み出される物理アドレス１２６は、キャッシュデータアレイの ウエイ１（１２１）から読み出されるデータに対応する。ＣＯＭ０（１２８）はＴＬＢ１２４からの物理アドレス１２７とウエイ０（１２２）からの物理アドレス１２５が一致しているか検出する。ＣＯＭ１（１２９）はＴＬＢ１２４からの物理アドレス１２７とウエイ１（１２３）からの物理アドレス１２６が一致しているか検出する。どちらのウエイが一致したかをキャッシュコントローラー１３０に伝える（信号１３３）。
【００３７】
信号１３３が示すウエイと、信号１３１が指すウエイが一致した場合は、問題なく次の処理に進むことが出きる。しかし信号１３３が指すウエイと、信号１３１が示すウエイが一致しないときは、次のサイクルでキャッシュデータアレイのアクセスしなかったウエイにアクセスをしデータをＲＢＵＳに出力しなければならない。
【００３８】
また、信号１３１がどちらのウエイも指さず、“ミス”で、あるが、信号１３３がどちらかのウエイを指した場合は、キャッシュデータアレイはそのさされたウエイにアクセスしデータをＲＢＵＳに出力する。
【００３９】
また、信号１３３がどちらのウエイも指さない場合は、完全なミスであり、キャッシュのデータを入れ替えなければならない。
【００４０】
この方法では、キャッシュデータアレイの両方のウエイのデータを同時に読みだすことは、禁止しなければならない。これを避けるには、ＬＲＵ（リーストーリーセントリ・ユーズト）ビットを新たに付け加えるか、データを入れ替えるときに、同一ページ内オフセットアドレス９７で活性化される連想セル行の値が揃わないようにすればよい。
【００４１】
キャッシュデータアレイの指定したウエイへのアクセスは、実施例１で述べたように連想セルＣＡＭＣＥＬＬの比較動作を無効化することによっておこなう。
【００４２】
本方法ではウエイを選択してから、高速にデータにアクセスするため、高速化、低電力化に効果がある。
【００４３】
図１３に示すように同様の方法で４ウエイとすることができ、さらに、８ウエイあるいはｎウエイ(ｎは２以上の整数)とすることも可能である。
【００４４】
〈実施例３〉
実施例２では、データ読み出しについて説明した。しかし、データの書き込みについては、同一の方法で行なうことはできない。なぜなら仮想ページ番号９７を使ったウエイ選択は間違っている場合があるため、もし、間違ったウエイに書き込みを行なった場合、もとに戻すことができなくなってしまうからである。また、物理アドレスを使ったウエイ選択が終わってから書き込みを行なう方法もあるが、物理アドレスを使ったウエイ選択は通常１サイクルかかるので、データを書き込むのに２サイクルかかりプロセッサの性能を低下させてしまう。この問題に関しては、読み出しと書き込みが同時に１サイクルでできるメモリマットと図１に示した回路を組み合わせて、図１に示した回路のワードドライバ回路９９を図７のように変えることにより解決できる。
【００４５】
まず、概略的な動作について説明する。図８は図７の回路図の書き込み動作の概略図である。第１サイクルで書き込み命令を受けると、そのアドレスＡをラッチしておき、それと同時に、ヒット検出回路を用いて書き込みを行なうウエイを選択しておく。第２サイクルでは、まず、別のアドレスＢにアクセスし、その後続けて、第１サイクルで選択されたウエイに第１サイクルでラッチされたアドレスＡをもとに書き込みを行なう。この方法では、２サイクルで２つのアドレスにアクセスできることになるため、実質的に書き込みが１サイクルで終了したことになる。以下に詳細な回路および動作について説明する。
【００４６】
図７のワードドライバ１４３は、図１のワードドライバ回路９９と比べて、インバータ回路ＩＮＶ４が、ナンド回路ＮＡＮＤ２にかわり、ノア回路ＮＯＲ２とラッチ（１４１、１４２）が加わっている。
【００４７】
ラッチ１４１は、１対のＣＭＯＳインバータの入力と出力が互いに接続されて構成されるフリップ・フロップ（ＩＮＶ５、ＩＮＶ６）と、前記フリップ・フロップのノードＮ３とノードＮ３Ｂとを接地電位に選択的に接続するＮチャネル型ＭＯＳトランジスタ（ＭＮ１７、ＭＮ１８）と、ノードＮ３とノードＮ３Ｂの値によってオンオフするトランジスタ（ＭＮ２３、ＭＮ２４、ＭＰ９、ＭＰ１０）と、ノードＮ３とノードＮ３Ｂの値がそれぞれ“Ｌ”と“Ｈ”のときオフとなり、ノードＮ３とノードＮ３がそれぞれ“Ｈ”と“Ｌ”のとき信号ＨＥＮ１の値によってオンオフするＮチャネル型ＭＯＳトランジスタＭＮ２１と、ノードＮ３Ｂの値によってオンオフするＰチャネル型ＭＯＳトランジスタＭＰ１１およびＮチャネル型ＭＯＳトランジスタＭＮ２９と、Ｎチャネル型ＭＯＳトランジスタＭＮ１８のオンオフを制御する信号を選択するトランジスタ（ＭＮ１５、ＭＰ７）によって構成される。Ｎチャネル型ＭＯＳトランジスタＭＮ１５およびのＰチャネル型ＭＯＳトランジスタＭＰ７のゲートには、選択信号ＳＥＬ１が、Ｐチャネル型ＭＯＳトランジスタＭＰ７のドレインには信号ＰＷＬが、Ｎチャネル型ＭＯＳトランジスタＭＮ１７のゲートには、リセット信号ＲＥＳ１が、Ｎチャネル型ＭＯＳトランジスタ（ＭＮ２１、ＭＮ２９）およびＰチャネル型ＭＯＳトランジスタＭＰ１１のドレインには信号ＨＡＤ１がそれぞれ接続される。
【００４８】
ラッチ１４２は、１対のＣＭＯＳインバータの入力と出力が互いに接続されて構成されるフリップ・フロップ（ＩＮＶ７、ＩＮＶ８）と、前記フリップ・フロップのノードＮ４とノードＮ４Ｂとを接地電位に選択的に接続するＮチャネル型ＭＯＳトランジスタ（ＭＮ１９、ＭＮ２０）と、ノードＮ４とノードＮ４Ｂの値によって制御されるトランジスタ（ＭＮ２５、ＭＮ２６、ＭＰ１２、ＭＰ１３）と、ノードＮ４とノードＮ４Ｂの値がそれぞれ“Ｌ”と“Ｈ”のときオフとなり、ノードＮ４とノードＮ４がそれぞれ“Ｈ”と“Ｌ”のとき信号ＨＥＮ２の値によってオンオフするＮチャネル型ＭＯＳトランジスタＭＮ２２と、ノードＮ４Ｂの値によってオンオフするＰチャネル型ＭＯＳトランジスタＭＰ１４およびＮチャネル型ＭＯＳトランジスタＭＮ３０と、Ｎチャネル型ＭＯＳトランジスタＭＮ２０のオンオフを制御する信号を選択するトランジスタ（ＭＮ１６、ＭＰ８）によって構成される。Ｎチャネル型ＭＯＳトランジスタＭＮ１６およびＰチャネル型ＭＯＳトランジスタＭＰ８のゲートには、選択信号ＳＥＬ２が、Ｐチャネル型ＭＯＳトランジスタＭＰ８のドレインには信号ＰＷＬが、Ｎチャネル型ＭＯＳトランジスタＭＮ１９のゲートには、リセット信号ＲＥＳ２が、Ｎチャネル型ＭＯＳトランジスタ（ＭＮ２２、ＭＮ３０）およびＰチャネル型ＭＯＳトランジスタＭＰ１４のドレインには信号ＨＡＤ２がそれぞれ接続される。
【００４９】
図９に第１サイクルで書き込み命令を受けて、第２サイクルの後半で書き込みを行なう場合の動作波形を示した。
【００５０】
まず、第１サイクルが始まる前に、ＲＥＳ１を“Ｈ”にして、すべてのラッチ１４１をリセットしノードＮ３を“Ｌ”にノードＮ３Ｂを“Ｈ”にしておく。第１サイクルでクロックが立ち上がると、１つのウエイについて１つのラインＬＩＮＥが選択され、信号ＰＷＬが“Ｈ”になる。それと同時にラッチ選択信号ＳＥＬ１を“Ｌ”にしてトランジスタＭＮ１８をオンしノードＮ３を“Ｈ”、ノードＮ３Ｂを“Ｌ”にし、このエントリーをラッチしておく。またこれと並行して、実施例２で示したように物理アドレスを用いてウエイを選択しておく。
【００５１】
第２サイクルの前半では他のアドレスにアクセスを行ない、後半で、物理アドレスを用いて選択されたウエイの信号ＨＥＮ１を“Ｌ”にして、トランジスタＭＮ２１をオフし、信号ＨＡＤ１を“Ｈ”にすることによって、ワード線ＷＬを“Ｈ”にし、書き込みを行なう。
【００５２】
また、図１０、図１１に示す方法によっても書き込みを１サイクルで行なうことができる。すなわち、連想セルＣＡＭＣＥＬＬによって指定されるウエイのデータをまず読み出してから書き込みデータを１サイクル内に書き込む。第一サイクル終了後ヒット検出回路により選択されたウエイと書き込みを行なったウエイが一致した場合は、書き込みは問題なく終了したことになる（図１０）。もし、一致しなかった場合は、読み出したデータをもとに戻し、ヒット検出回路が指定したウエイにデータを書き込む（図１１）。
【００５３】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００５４】
すなわち、連想セルの比較結果を、タイミングマージンなしに直接ワード線に伝えることができ、高速なアクセスが可能となる。
【図面の簡単な説明】
【図１】実施例１に係わる半導体記憶装置の回路図。
【図２】実施例１の詳細な回路図。
【図３】実施例１の半導体記憶装置の動作波形。
【図４】実施例１の詳細な回路図。
【図５】実施例１の半導体記憶装置の動作波形。
【図６】実施例２に係わるキャッシュメモリを用いたコンピュータシステム。
【図７】実施例３の詳細な回路図。
【図８】実施例３のキャッシュメモリの動作概略図。
【図９】実施例３のキャッシュメモリの動作波形。
【図１０】実施例３のキャッシュメモリの動作概略図。
【図１１】実施例３のキャッシュメモリの動作概略図。
【図１２】従来のセットアソシアティブキャッシュの概略図。
【図１３】実施例２に係わる半導体記憶装置の回路図。
【符号の説明】
９６……仮想ページ番号
９７……ページ内オフセットアドレス
９４、９８……デコーダ回路
９５、９９、１４３……ワードドライバ回路
１００……半導体装置
１０１、１０２、１５５、１５６……連想セルアレイ
１０３、１０４、１５１、１５２……デコーダアレイ
１０５、１０６、１５３、１５４……ワードドライバアレイ
１０８、１０９、１５７、１５８……センスアンプ、ライトアンプアレイ
１２０、１２１……キャッシュメモリのウエイ
１２２、１２３……キャッシュタグアレイのウエイ
１２４……ＴＬＢ
１２５、１２６、１２７……物理アドレス
１２８、１２９……比較器
１３０……キャッシュコントローラー
１３１、１３３……ウエイ選択信号
１３２……制御信号
１３５……ヒット検出回路
１４１、１４２……アドレスラッチ回路
ＲＢＵＳ……読み出しデータ用バス
ＷＢＵＳ……書き込みデータ用バス
ＭＮ……Ｎチャネル型ＭＯＳトランジスタ
ＭＰ……Ｐチャネル型ＭＯＳトランジスタ
Ｎ、ＮＢ……メモリセル記憶ノード
ＩＮＶ……インバータ回路
ＮＡＮＤ……ナンド回路
ＡＮＤ……論理積
ＮＯＲ……ノア回路
ＣＥＬＬ……メモリセル
ＣＡＭＣＥＬＬ……連想セル
ＭＡＴ……メモリアレイ
ＷＡＹ……ウエイ
ａ０、ａ１、ａ２……アドレス信号
ＢＬ、ＢＬＢ、ＣＢＬ、ＣＢＬＢ……ビット線
ＷＬ、ＣＷＬ……ワード線
ＣＣＢＬ、ＣＣＢＬＢ……比較アドレス線
ＨＩＴ……ヒット信号
ＬＩＮＥ……ライン選択信号
ＨＩＴ_ＯＵＴ……ヒット検出信号
ＣＡＭ_ＷＬ_ＥＮ……連想セル読み出し制御信号
ＰＷＬ……エントリー指定信号
ＳＥＬ……ラッチ選択信号
ＲＥＳ……リセット信号
ＨＥＮ……エントリー活性信号
ＨＡＤ……エントリー選択信号。
【図１】
0003732637.tif 000002
【図２】
0003732637.tif 000003
【図３】
0003732637.tif 000004
【図４】
0003732637.tif 000005
【図５】
0003732637.tif 000006
【図６】
0003732637.tif 000007
【図７】
0003732637.tif 000008
【図８】
0003732637.tif 000009
【図９】
0003732637.tif 000010
【図１０】
0003732637.tif 000011
【図１１】
0003732637.tif 000012
【図１２】
0003732637.tif 000013
【図１３】
0003732637.tif 000014