(57)【要約】【課題】  従来、レイアウトの占有面積が小さく、高速アクセスが可能なタグメモリを有する半導体記憶装置を実現するのは困難であった。【解決手段】  本発明にかかる半導体記憶装置は、被記憶データをラッチする第１のラッチ回路２３２と、第１のラッチ回路２３２とは反転した論理で動作する複数の第２のラッチ回路２１０を有し、選択信号により選択された第２のラッチ回路２１０により第１のラッチ回路２３２からの被記憶データを受け取り出力する記憶セル部２０２とを有するものである。【選択図】図２
2006293716.tif 000002
【特許請求の範囲】
【請求項１】
被記憶データをラッチする第1のラッチ回路と、
前記第１のラッチ回路とは反転した論理で動作する複数の第２のラッチ回路を有し、選択信号により選択された第２のラッチ回路により前記第1のラッチ回路からの前記第１のデータを受け取り出力する記憶セル部とを有する半導体記憶装置。
【請求項２】
前記選択信号を生成する選択信号生成回路を有することを特徴とする請求項１に記載の半導体記憶装置。
【請求項３】
前記選択信号生成回路は、前記被記憶データを記憶する前記第２ラッチ回路を指定する指定用データと前記第２のラッチ回路の書き込み状態を制御する制御信号とから半導体記憶装置に供給されるクロックとは非同期に変化する前記第２のラッチ回路を選択する非同期選択信号を生成するデコーダと、前記第１のラッチ回路と同一の論理で動作し、前記非同期選択信号を前記クロックに同期させてラッチし、前記選択信号を生成する第３のラッチ回路とを有することを特徴とする請求項１又は２に記載の半導体記憶装置。
【請求項４】
前記選択信号生成回路は、前記第１のラッチ回路と同一の論理で動作し、前記選択された第２ラッチ回路を指定する指定用データをラッチする第４のラッチ回路と、前記第１のラッチ回路と同一の論理で動作し、前記第２のラッチ回路の書き込み状態を制御する制御信号をラッチする第５のラッチ回路と、前記第４のラッチ回路の出力と前記第５のラッチ回路の出力とから前記選択信号を生成するデコーダとを有することを特徴とする請求項１乃至３のいずれか１項に記載の半導体記憶装置。
【請求項５】
前記選択信号と前記第１のラッチ回路に供給される第１のクロック信号とから前記第２のラッチ回路に供給する第２のクロック信号を生成するゲート回路を有することを特徴とする請求項１乃至４のいずれか１項に記載の半導体記憶装置。
【請求項６】
前記指定用データに基づき指定された前記第２のラッチ回路の出力を選択して出力するマルチプレクサを有することを特徴とする請求項１乃至５のいずれか１項に記載の半導体記憶装置。
【請求項７】
書き込みデータをラッチする第1のラッチ回路と、
前記第１のラッチ回路とは反転した論理で動作する複数の第２のラッチ回路を有し、選択信号により選択された第２のラッチ回路により前記第1のラッチ回路からの前記書き込みデータを受け取り出力する記憶セル部とを有する半導体記憶装置。
【請求項８】
データメモリを有するキャッシュメモリであって、
タグデータを記憶する第１のメモリと、
前記データメモリのデータが有効であることを示すデータを記憶する第２のメモリと、
前記データメモリのデータの変更の有無を示すデータを記憶する第３のメモリと、
少なくとも第１乃至第３のメモリのいずれか一つは、
当該メモリに記憶する被記憶データをラッチする第１のラッチ回路と、
前記第１のラッチ回路とは反転した論理で動作する複数の第２のラッチ回路を有し、選択信号により選択された第２のラッチ回路により前記第１のラッチ回路からの前記被記憶データを受け取り出力する記憶セル部とを有する半導体記憶装置からなるキャッシュメモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置及びキャッシュメモリに関し、特に高速動作が可能な半導体記憶装置及びこれを具備するキャッシュメモリに関する。
【背景技術】
【０００２】
近年、マイクロコンピュータ（以下、マイコンと称す）等の半導体装置では、コスト削減のためにチップサイズを小さくする要求が高まってきている。マイコン等は、一般的にプロセッサで使用するデータを一時保存するキャッシュメモリを有している。このキャッシュメモリは、小容量であっても高速アクセスが可能であることが要求されている。
【０００３】
一般的なキャッシュメモリを図６（ａ）に示す。キャッシュメモリ６００はプロセッサ６０１と外部メモリに接続されており、キャッシュコントローラ６１０、データＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）６１１、Ｖａｌｉｄ  Ｂｉｔを記憶するバリットビットメモリ６１２、Ｄｉｒｔｙ  Ｂｉｔを記憶するダーティービットメモリ６１３、タグメモリ６１４、比較器６１５を有している。
【０００４】
プロセッサ６０１は、データの処理を行うものである。キャッシュコントローラ６１０は、外部の主メモリとキャッシュメモリ６００とのデータの書き込みと読み出しとを制御する。データＲＡＭ６１１は、プロセッサ６０１が処理を行うデータを記憶するメモリである。Ｖａｌｉｄ  Ｂｉｔは、データＲＡＭ６１１上のデータが有効か否かを示す１ビットのデータであり、バリットビットメモリ６１２は、この１ビットのデータを記憶するメモリである。Ｄｉｒｔｙ  Ｂｉｔは、データＲＡＭ６１１上のデータがプロセッサ６０１の処理によって変化したか否かを示す１ビットのデータであり、ダーティービットメモリ６１３は、この１ビットのデータを記憶するメモリである。タグメモリ６１４は、データＲＡＭ６１１上に存在するデータが主メモリのどのアドレスに対応するかを記憶するメモリである。タグメモリ６１４についての詳細は後述する。比較器６１５は、データＲＡＭ６１１上にデータが存在するか否かをバリットビットメモリ６１２、タグメモリ６１４及びプロセッサ６０１から入力されるデータによって判断した信号をキャッシュコントローラ６１０に出力する回路である。
【０００５】
すなわち、主メモリは、データの所在を表すアドレスを有しており、主メモリから転送されるデータにはアドレス情報が付加されている。プロセッサ６０１が正しいデータを扱うためには、キャッシュメモリ６００上のデータと主メモリ上のデータとが一致している必要がある。キャッシュメモリ６００は、主メモリ上のデータとキャッシュメモリ上のデータとの一致をアドレスデータとＶａｌｉｄ  ＢｉｔとＤｉｒｔｙ  Ｂｉｔとを用いて確認している。しかし、データの確認に用いる情報をデータＲＡＭ６１１にデータと共に記憶していたのでは、少ない容量のデータＲＡＭ６１１を効率良く使用することができない。そのために、データの確認に用いる情報をアドレスデータの構造に特化させたタグメモリ６１４に記憶する。タグメモリ６１４の構造をアドレスデータの構造に特化させることで、タグメモリ６１４をデータＲＡＭ６１１に比べ少ない占有面積であって、よりアクセス速度の速いものとすることが可能になる。
【０００６】
キャッシュメモリ６００はキャッシュコントローラ６１０を介して、外部の主メモリと接続されている。プロセッサ６０１から要求された主メモリ上のアドレスのデータがデータＲＡＭ６１１上に存在しない場合に、キャッシュコントローラ６１０はデータＲＡＭ６１１に対してデータの書き込みを制御するＷｒｉｔｅ  Ｄａｔａ信号を出力し、データＲＡＭ６１１をデータ書き込み状態にする。その後、キャッシュコントローラ６１０はプロセッサ６０１に要求されたアドレスの主メモリのデータ（Ｃａｃｈｅ  Ｆｉｌｌ  Ｄａｔａ）をキャッシュメモリ６００のデータＲＡＭ６１１に送信するする。このことにより、主メモリとキャッシュメモリ６００内のデータは同じものになり、Ｖａｌｉｄ  Ｂｉｔにフラグが立てられる。
【０００７】
また、データＲＡＭ６１１上にプロセッサ６０１が処理を行うデータが存在していた場合は、プロセッサ６０１はデータＲＡＭ６１１上のデータを用いて処理を行う。プロセッサ６０１で処理されたデータに変更が生じたか否かを判定するために、キャッシュメモリ６００にはＤｉｒｔｙ  Ｂｉｔが設けられている。プロセッサでの処理によりデータＲＡＭ６１１上のデータに変更が生じた場合は、Ｄｉｒｔｙ  Ｂｉｔにフラグが立てられる。キャッシュコントローラ６１０はこのフラグに基づきデータＲＡＭ６１１上の変更が生じたデータ（Ｗｒｉｔｅ  Ｂａｃｋ  Ｄａｔａ）受け取り、そのデータを主メモリに転送する。
【０００８】
プロセッサ６０１は、処理に必要なデータを要求する際に、そのデータの主メモリ上のアドレスを指定するアドレスデータを送信する。プロセッサから出力されるアドレスデータは、タグアドレスデータとＩｎｄｅｘアドレスデータとを有している。タグアドレスデータとは、アドレスデータの上位数ビットである。また、Ｉｎｄｅｘアドレスデータとは、アドレスデータの下位数ビットである。タグメモリ６１４は、キャッシュコントローラ６１０からの書き込み制御信号であるＷｒｉｔｅＴａｇ信号が書き込み状態の時に、Ｉｎｄｅｘアドレスデータと関連付けられたタグアドレスデータを記憶する。また、タグメモリ６１４は、キャッシュコントローラ６１０からのＷｒｉｔｅＴａｇ信号が書き込み不可状態の時には、入力されるＩｎｄｅｘアドレスデータに関連付けられたタグアドレスデータを出力する。
【０００９】
タグメモリ６１４から出力されたタグアドレスデータは、比較器６１５に入力される。比較器６１５はタグメモリ６１４からのタグアドレスデータとプロセッサ６０１からの出力されるタグアドレスデータとが一致している場合であって、Ｖａｌｉｄ  Ｂｉｔにフラグが立っている場合、つまり、データＲＡＭ６１１に目的のデータが存在する場合に比較器６１５はＨｉｔの信号を出力する。この条件以外の場合、比較器６１５はＭｉｓｓ  Ｈｉｔを出力する。
【００１０】
つまり、キャッシュメモリ６００は、内蔵するデータＲＡＭ６１１内のデータと主メモリ上のデータとが一致していた場合には、即座にプロセッサ６０１にデータを渡すことができる。キャッシュメモリ６００はプロセッサ６０１と同一の半導体基板上に形成されているか又は高速インターフェイスでプロセッサ６０１と接続されているため、外部に設置される主メモリよりも速い動作周波数でプロセッサ６０１からアクセスできる。つまり、キャッシュメモリ６００上にプロセッサ６０１が頻繁に使用するデータを蓄積しておくことでシステム全体の処理速度を向上させることが可能になる。
【００１１】
キャッシュメモリにおいてデータのアドレスをタグメモリで記憶し、データＲＡＭのデータを制御する方法はダイレクト・マップ・キャッシュ方式、セット・アソシアティブ方式など様々な方式がある。これらのいずれの方法においてもタグメモリの機能はタグアドレスデータの記憶及び記憶されたタグアドレスデータの出力である。
【００１２】
ここで、ダイレクト・マップ・キャッシュ方式でのアドレスデータ、タグメモリ、データメモリの関係を図６（ｂ）に示す。プロセッサから送信されるアドレスデータは、タグアドレスデータとＩｎｄｅｘアドレスデータを有している。タグアドレスデータはアドレスの上位階層のアドレスを示しており、例えばページを表している。また、Ｉｎｄｅｘアドレスデータはアドレスの下位階層のアドレスを示しており、例えばそのページ中の行を表している。タグメモリ６１４及びデータＲＡＭ６１１はＩｎｄｅｘアドレスの個数分のメモリを有している。タグメモリ６１４のＩｎｄｅｘアドレスとデータＲＡＭ６１１のＩｎｄｅｘアドレスはお互いに関連付けられている。
【００１３】
プロセッサ６０１からアドレスデータが送信されると、タグメモリ６１４は送信されたアドレスデータからＩｎｄｅｘアドレスデータ部分を参照する。タグメモリ６１４は参照されたＩｎｄｅｘアドレスデータ部分に格納されているタグデータを出力する。その後、プロセッサ６０１から送信されたアドレスデータのタグアドレスデータとタグメモリ６１４から出力されたタグアドレスデータとＩｎｄｅｘアドレスデータに関連付けられたＶａｌｉｄ  Ｂｉｔを比較・演算する。その結果、タグメモリ６１４上のタグアドレスデータとプロセッサ６０１から送信されたタグアドレスデータとが一致しており、Ｖａｌｉｄ  Ｂｉｔのフラグがたっている場合にＨｉｔの信号を出力する。キャッシュメモリ６００はこのＨｉｔの信号に基づきデータＲＡＭ６１１よりＩｎｄｅｘアドレスに対応するデータを出力する。
【００１４】
従来、一般的にタグメモリにはＳＲＡＭ（Ｓｔａｔｉｃ  ＲＡＭ）又はフリップフロップを用いたメモリが用いられている。従来例１として、タグメモリにＳＲＡＭを用いた場合を説明する。また、従来例２として、タグメモリにフリップフロップを用いたメモリを用いた場合を説明する。
【００１５】
従来例１にかかるＳＲＡＭ７００ａを用いたタグメモリを図７（ａ）に示す。図７（ａ）に示すＳＲＡＭ７００ａはＩｎｄｅｘアドレスデータ、ＷｒｉｔｅＴａｇ信号、タグアドレスデータ、クロックが入力されており、それらの入力に基づいてタグデータを出力する回路である。
【００１６】
また、従来例１にかかるＳＲＡＭ７００ａを用いたタグメモリの動作を示すタイミングチャートを図８（ａ）に示す。ＳＲＡＭ７００ａを用いたタグメモリは、１サイクルのシステムロックで動作を完了させるために、クロックとは反転したＲＡＭ´ｓクロックで動作している。
【００１７】
まず、タグアドレスデータの書き込み動作について説明する。ＳＲＡＭ７００ａは、ＷｒｉｔｅＴａｇ信号が書き込み状態である場合、ＲＡＭ´ｓクロックの立ち上がりに基づいてタイミングＴ２でタグアドレスを取り込みそのデータを記憶する。
【００１８】
次に、タグアドレスデータの読み出し動作について説明する。ＳＲＡＭ７００ａは、ＷｒｉｔｅＴａｇ信号が書き込み不可状態である場合、ＲＡＭ´ｓクロックが立ち上がりに基づいてタイミングＴ６でタグアドレスデータを読み出し、所定の遅延をもって出力する。そして、このタグアドレスデータとプロセッサ６０１からのタグデータとから得られる判定結果はタイミングＴ７でキャッシュコントローラ６１０に読み込まれる。
【００１９】
従来例２にかかるフリップフロップを用いたタグメモリ７００ｂを図７（ｂ）に示す。フリップフロップを用いたタグメモリ７００ｂは動作周波数はＳＲＡＭ７００ａよりも高速化することが可能である。また、フリップフロップの一例が特許文献１に開示されている。
【００２０】
従来例２にかかるフリップフロップを用いたタグメモリ７００ｂはＤ−ＦＦ（Ｄ−フリップフロップ）７１００から７１０Ｎ（以下、これらをまとめてＤ−ＦＦ７１０と称す）、ＡＮＤゲート７２００から７２０Ｎ（以下、これらをまとめてＡＮＤゲート７２０と称す）、デコーダ７３０、Ｄラッチｎ７３１、マルチプレクサ７３２を有している。
【００２１】
Ｄ−ＦＦ７１０は入力端子Ｄ、出力端子Ｑ、制御端子を有している。Ｄ−ＦＦ７１０は、制御端子に入力される信号の立ち上がり時の入力端子Ｄへの入力を出力として記憶する回路である。この従来例２においては、Ｄ−ＦＦ７１０の制御端子に入力される信号は、クロック信号を接続されるＡＮＤゲート７２０によって制御されたＭａｓｋｅｄクロックである。
【００２２】
Ｄ−ＦＦ７１０は、記憶するタグアドレスデータのビット数と同じ数のＤ−ＦＦが１つのセルとなっており、そのセルがＩｎｄｅｘアドレスデータの個数と同じ個数用意されている。それぞれのＤ−ＦＦ７１０は、Ｉｎｄｅｘアドレスデータに対応したタグアドレスデータを記憶する。
【００２３】
ＡＮＤゲート７２０は第１及び第２の入力端子と出力端子を有している。ＡＮＤゲート７２０は第１及び第２の入力端子への入力が共にＨｉｇｈレベル（例えば、電源電位）の場合、Ｈｉｇｈレベルの出力をする回路である。また、第１及び第２の入力端子への入力が前述の条件以外の時にはＬｏｗレベル（例えば、接地電位）を出力する。
【００２４】
ＡＮＤゲート７２０はＤ−ＦＦ７１０と同じ個数用意されている。それぞれのＡＮＤゲート７２０は対応するＤ−ＦＦ７１０に接続されている。第１の入力端子には、制御信号が入力されており、第２の入力端子にはクロックが入力されている。つまり、制御信号によって指定されたＡＮＤゲート７２０のみがクロックに基づいてＨｉｇｈレベルを出力する。これにより、Ｉｎｄｅｘアドレスデータに基づいたＤ−ＦＦ７１０のみが書き込み状態となる。
【００２５】
デコーダ７３０にはｘ番目のＩｎｄｅｘアドレスを指定するＩｎｄｅｘアドレスデータとＷｒｉｔｅＴａｇ信号が入力されている。デコーダ７３０はこの２つの入力に基づいて、データを書き込むｘ番目のＤ−ＦＦ７１０を選択するＮ＋１ビット幅の信号ＷＥＴａｇ［Ｎ：０］信号を出力する。
【００２６】
Ｄラッチｎ７３１は入力端子Ｄ、出力端子Ｑ、制御端子ＣＬＫを有している。Ｄラッチｎ７３１は制御端子ＣＬＫへの入力がＬｏｗレベルである間、ゲートが開いて入力端子Ｄに入力される信号を出力端子Ｑに出力する回路である。また、制御端子ＣＬＫへの入力がＨｉｇｈレベルである間、ゲートが閉じて制御端子ＣＬＫがＨｉｇｈレベルになる直前の出力を保持する。
【００２７】
Ｄラッチｎ７３１は前述の動作に基づいて、入力されるＷＥＴａｇ［Ｎ：０］信号をラッチした出力を生成する。このラッチされた出力は、Ｎ＋１ビット幅の信号ＬａｔｃｈｅｄＷＥＴａｇ［Ｎ：０］信号として、制御信号となり、Ｉｎｄｅｘアドレスデータに基づいてデータを書き込むＤ−ＦＦ７１０を選択する。
【００２８】
マルチプレクサ７３２はＩｎｄｅｘアドレスデータに基づいて、出力するＤ−ＦＦを選択する回路である。Ｄ−ＦＦ７１０に記憶されているタグアドレスデータはマルチプレクサ７３２を介して出力される。これにより、Ｉｎｄｅｘアドレスデータに基づいて、Ｄ−ＦＦ７１０に記憶されているタグアドレスデータを出力する。
【００２９】
従来例２にかかるタグメモリの動作を示すタイミングチャートを図８（ｂ）に示す。まず、タグアドレスデータの書き込み動作について説明する。フリップフロップを用いたタグメモリ７００ｂはＷｒｉｔｅＴａｇ信号が書き込み状態の区間に、その区間のＩｎｄｅｘアドレスデータとＷｒｉｔｅＴａｇ信号とに基づいてＷＥＴａｇ［Ｎ：０］を生成される。生成されたＷＥＴａｇ［Ｎ：０］はタイミングＴ２からタイミングＴ３のクロックのＬｏｗ区間でＤラッチｎ７３１によってデータの確定が行われる。タイミングＴ２からタイミングＴ４までの間、Ｄラッチｎ７３１はＬａｔｃｈｅｄＷＥＴａｇ［Ｎ：０］信号を出力する。このＬａｔｃｈｅｄＷＥＴａｇ［Ｎ：０］は複数あるＤ−ＦＦ７１０のいずれか１つを選択する。選択されたＤ−ＦＦ７１０にはタイミングＴ３の立ち上がりでその時のタグアドレスデータが保存される。
【００３０】
次に、タグアドレスデータの読み出し動作について説明する。フリップフロップを用いたタグメモリ７００ｂは、Ｉｎｄｅｘアドレスデータが変化すると、Ｉｎｄｅｘアドレスデータに基づき指定されるＤ−ＦＦ７１０に保存されているタグアドレスデータを出力する。
【００３１】
フリップフロップを用いたタグメモリ７００ｂをタグメモリとして用いた場合、クロックの前半部分からデータ読み出しを開始できるために、ＳＲＡＭ７００ａよりも高い周波数のシステムクロックを使用することができる。
【特許文献１】特開平１０−３３５９９２号
【発明の開示】
【発明が解決しようとする課題】
【００３２】
従来、キャッシュメモリでは前述の従来例１または従来例２のようなタグメモリが用いられてきた。しかしながら、従来例１のＳＲＡＭ７００ａでタグメモリ６１４を構成した場合、ＲＡＭ´ｓクロックの立ち上がりは、クロックの立ち下りとなるため、タグアドレスデータの出力はクロックの後半部分で行われることになる。さらに、タグデータ出力がされるまでにはタイミングＴ６から所定の遅延時間が必要となる。この場合、クロックの最高動作周波数はこの遅延時間の２倍以上に制限される。つまり、動作周波数の高速化が困難である問題がある。
【００３３】
また、従来例２のフリップフロップを用いたメモリ７００ｂは、フリップフロップを用いているため、一般的に素子の構成によってＳＲＡＭよりも大きなレイアウト面積が必要となる。レイアウト面積の増加は、直接チップコストの増加となり、チップコスト削減が困難になる問題がある。
【００３４】
このように、従来、レイアウトの占有面積が小さく、高速アクセスが可能な記憶装置を有する半導体記憶装置を実現するのは困難であった。
【課題を解決するための手段】
【００３５】
本発明にかかる半導体記憶装置は、被記憶データをラッチする第1のラッチ回路と、前記第１のラッチ回路とは反転した論理で動作する複数の第２のラッチ回路を有し、選択信号により選択されたいずれか一の前記第２のラッチ回路により前記第1のラッチ回路からの前記被記憶データを受け取り出力する記憶セル部とを有するものである。
【００３６】
本発明においては、第１のラッチ回路と第２のラッチ回路とを反転した論理で動作させることによって、フリップフロップを用いることなく、ラッチ回路による被記憶データの記憶と高速なデータの読み出し動作とが可能である。また、ラッチ回路はフリップフロップに比べ構造が簡単であるため、レイアウト上の占有面積が小さく、チップ面積の削減が可能である。これにより、安価なタグメモリを実現することが可能である。
【発明の効果】
【００３７】
本発明においては、レイアウト上の占有面積が小さく、高速アクセスが可能な記憶装置を有する半導体記憶装置及びこれを有するキャッシュメモリを実現することが可能である。
【発明を実施するための最良の形態】
【００３８】
実施の形態１
【００３９】
本発明の実施の形態１にかかる半導体記憶装置は、例えば、タグメモリ等の小容量で高速動作可能なメモリ、又は、これを用いるキャッシュメモリに好適である。なお、本実施の形態においてはタグメモリ及びこれを有するキャッシュメモリを例にとって説明するが、本発明は、これに限らず、後述するように、ダーティービットメモリ若しくはバリットビットメモリ、又は、これらを有するキャッシュメモリ等にも同様に適用可能である。
【００４０】
実施の形態１にかかるキャッシュメモリを図１（ａ）に示す。キャッシュメモリ１００は、プロセッサ１０１と外部メモリとに接続されており、キャッシュコントローラ１１０、データＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１１、Ｖａｌｉｄ  Ｂｉｔを記憶するバリットビットメモリ１１２、Ｄｉｒｔｙ  Ｂｉｔを記憶するダーティービットメモリ１１３、タグメモリ１１４、比較器１１５を有している。
【００４１】
プロセッサ１０１は、データの処理を行うものである。キャッシュコントローラ１１０は、外部の主メモリとキャッシュメモリ１００とのデータの書き込みと読み出しとを制御する。データＲＡＭ１１１は、プロセッサ１０１が処理を行うデータを記憶するメモリである。Ｖａｌｉｄ  Ｂｉｔは、データＲＡＭ１１１上のデータが有効か否かを示す１ビットのデータであり、バリットビットメモリ１１２は、この１ビットのデータを記憶するメモリである。Ｄｉｒｔｙ  Ｂｉｔは、データＲＡＭ１１１上のデータがプロセッサ１０１の処理によって変化したか否かを示す１ビットのデータであり、ダーティービットメモリ１１３は、この１ビットのデータを記憶するメモリである。タグメモリ１１４は、データＲＡＭ１１１上に存在するデータが主メモリのどのアドレスに対応するかを記憶するメモリである。タグメモリ１１４についての詳細は後述する。比較器１１５は、データＲＡＭ１１１上のデータが存在するか否かをバリットビットメモリ１１２、タグメモリ１１４及びプロセッサ１０１から入力されるデータによって判断した信号をキャッシュコントローラ１１０に出力する回路である。
【００４２】
主メモリは、データの所在を表すアドレスを有しており、主メモリから転送されるデータにはアドレス情報が付加されている。プロセッサ１０１が正しいデータを扱うためには、キャッシュメモリ１００上のデータと主メモリ上のデータとが一致している必要がある。キャッシュメモリ１００は、主メモリ上のデータとキャッシュメモリ上のデータとの一致をアドレスデータとＶａｌｉｄ  ＢｉｔとＤｉｒｔｙ  Ｂｉｔとを用いて確認している。しかし、データの確認に用いる情報をデータＲＡＭ１１１にデータと共に記憶していたのでは、少ない容量のデータＲＡＭ１１１を効率良く使用することができない。そのために、データの確認に用いる情報をアドレスデータの構造に特化させたタグメモリ１１４に記憶する。タグメモリ１１４の構造をアドレスデータの構造に特化させることで、タグメモリ１１４をデータＲＡＭ１１１に比べ少ない占有面積であって、よりアクセス速度の速いものとすることが可能になる。
【００４３】
キャッシュメモリ１００はキャッシュコントローラ１１０を介して、外部の主メモリと接続されている。プロセッサ１０１から要求された主メモリ上のアドレスのデータがデータＲＡＭ１１１上に存在しない場合に、キャッシュコントローラ１１０はデータＲＡＭ１１１に対してデータの書き込みを制御するＷｒｉｔｅ  Ｄａｔａ信号を出力し、データＲＡＭ１１１をデータ書き込み状態にする。その後、キャッシュコントローラ１１０はプロセッサ１０１に要求されたアドレスの主メモリのデータ（Ｃａｃｈｅ  Ｆｉｌｌ  Ｄａｔａ）をキャッシュメモリ１００のデータＲＡＭ１１１に送信する。このことにより、主メモリとキャッシュメモリ１００内のデータは同じものになり、Ｖａｌｉｄ  Ｂｉｔにフラグが立てられる。
【００４４】
また、データＲＡＭ１１１上にプロセッサ１０１が処理を行うデータが存在していた場合は、プロセッサ１０１はデータＲＡＭ１１１上のデータを用いて処理を行う。プロセッサ１０１で処理されたデータに変更が生じたか否かを判定するために、キャッシュメモリ１００にはＤｉｒｔｙ  Ｂｉｔが設けられている。プロセッサでの処理によりデータＲＡＭ１１１上のデータに変更が生じた場合は、Ｄｉｒｔｙ  Ｂｉｔにフラグが立てられる。キャッシュコントローラ１１０はこのフラグに基づきデータＲＡＭ１１１上の変更が生じたデータ（Ｗｒｉｔｅ  Ｂａｃｋ  Ｄａｔａ）受け取り、そのデータを主メモリに転送する。
【００４５】
プロセッサ１０１は、処理に必要なデータを要求する際に、そのデータの主メモリ上のアドレスを指定するアドレスデータを送信する。プロセッサから出力されるアドレスデータは、タグアドレスデータとＩｎｄｅｘアドレスデータとを有している。タグアドレスデータとは、アドレスデータの上位数ビットであって、例えば、被記憶データである。また、Ｉｎｄｅｘアドレスデータとは、アドレスデータの下位数ビットであって、例えば、指定用データである。タグメモリ１１４は、キャッシュコントローラ１１０からの書き込み制御信号であるＷｒｉｔｅＴａｇ信号が書き込み状態の時に、Ｉｎｄｅｘアドレスデータと関連付けられたタグアドレスデータを記憶する。また、タグメモリ１１４は、入力されるＩｎｄｅｘアドレスデータに関連付けられたタグアドレスデータを出力する。
【００４６】
タグメモリ１１４から出力されたタグアドレスデータは、比較器１１５に入力される。比較器１１５はタグメモリ１１４からのタグアドレスデータとプロセッサ１０１からの出力されるタグアドレスデータとが一致している場合であって、Ｖａｌｉｄ  Ｂｉｔにフラグが立っている場合、つまり、データＲＡＭ１１１に目的のデータが存在する場合に比較器１１５はＨｉｔの信号を出力する。この条件以外の場合、比較器１１５はＭｉｓｓ  Ｈｉｔを出力する。
【００４７】
つまり、キャッシュメモリ１００は、内蔵するデータＲＡＭ１１１内のデータと主メモリ上のデータとが一致していた場合には、即座にプロセッサ１０１にデータを渡すことができる。キャッシュメモリ１００はプロセッサ１０１と同一の半導体基板上に形成されているか又は高速インターフェイスでプロセッサ１０１と接続されているため、外部に設置される主メモリよりも速い動作周波数でプロセッサ１０１からアクセスできる。つまり、キャッシュメモリ１００上にプロセッサ１０１が頻繁に使用するデータを蓄積しておくことでシステム全体の処理速度を向上させることが可能になる。
【００４８】
キャッシュメモリにおいてデータのアドレスをタグメモリで記憶し、データＲＡＭのデータを制御する方法はダイレクト・マップ・キャッシュ方式、セット・アソシアティブ方式など様々な方式がある。これらのいずれの方法においてもタグメモリの機能はタグアドレスデータの記憶及び記憶されたタグアドレスデータの出力である。
【００４９】
ここで、ダイレクト・マップ・キャッシュ方式でのアドレスデータ、タグメモリ、データメモリの関係を図１（ｂ）に示す。プロセッサから送信されるアドレスデータは、タグアドレスデータとＩｎｄｅｘアドレスデータを有している。タグアドレスデータはアドレスの上位階層のアドレスを示しており、例えばページを表している。また、Ｉｎｄｅｘアドレスデータはアドレスの下位階層のアドレスを示しており、例えばそのページ中の行を表している。タグメモリ１１４及びデータＲＡＭ１１１はＩｎｄｅｘアドレスの個数分のメモリを有している。タグメモリ１１４のＩｎｄｅｘアドレスとデータＲＡＭ１１１のＩｎｄｅｘアドレスはお互いに関連付けられている。
【００５０】
プロセッサ１０１からアドレスデータが送信されると、タグメモリ１１４は送信されたアドレスデータからＩｎｄｅｘアドレスデータ部分を参照する。タグメモリ１１４は参照されたＩｎｄｅｘアドレスデータ部分に格納されているタグデータを出力する。その後、プロセッサ１０１から送信されたアドレスデータのタグアドレスデータとタグメモリ１１４から出力されたタグアドレスデータとＩｎｄｅｘアドレスデータに関連付けられたＶａｌｉｄ  Ｂｉｔを比較・演算する。その結果、タグメモリ１１４上のタグアドレスデータとプロセッサ１０１から送信されたタグアドレスデータとが一致しており、Ｖａｌｉｄ  Ｂｉｔのフラグがたっている場合にＨｉｔの信号を出力する。キャッシュメモリ１００はこのＨｉｔの信号に基づきデータＲＡＭ１１１よりＩｎｄｅｘアドレスに対応するデータを出力する。
【００５１】
実施の形態１にかかるタグメモリ２００を図２に示す。実施の形態１にかかるタグメモリ２００は、選択信号生成回路２０１、記憶セル部２０２、ラッチ回路２０３、マルチプレクサ２３３を有している。
【００５２】
本発明の実施の形態では、制御信号がＨｉｇｈレベル（例えば、電源電圧）の間はゲートが開いて、入力信号を出力信号とし、制御信号がＬｏｗレベル（例えば、接地電位）の間はゲートが閉じており、ゲートが閉じる直前の入力信号の値を保持し出力するＤラッチをＤラッチｐと称する。また、Ｄラッチｐとは反転論理で動作するＤラッチをＤラッチｎと称する。
【００５３】
選択信号生成回路２０１はデコーダ２３０、Ｄラッチｎ２３１（例えば、第３のラッチ回路）を有している。記憶セル部２０２は、Ｄラッチｐ２１００から２１０Ｎ（以下、これらをまとめてＤラッチｐ２１０と称す）及びＡＮＤゲート２２００から２２０Ｎ（以下、これらをまとめてＡＮＤゲート２２０と称す）を有している。本実施の形態ではＤラッチｐ２１０は、例えば、第２のラッチ回路であって、記憶するタグアドレスデータのビット数と同じ数のＤラッチｐを１つのセルとして、そのセルがＩｎｄｅｘアドレスデータの個数と同じ数用意してある。また、ＡＮＤゲート２２０は、Ｄラッチｐ２１０のセルの数と同じ数用意してある。ラッチ回路２０３はＤラッチｎ２３２（例えば、第１のラッチ回路）を有している。
【００５４】
実施の形態１にかかるタグメモリは、選択信号生成回路２０１にてｘ番目のＩｎｄｅｘアドレスを示すＩｎｄｅｘアドレスデータとＷｒｉｔｅＴａｇ信号とからｘ番目のＤラッチｐ２１０を選択するＮ＋１ビット幅の信号ＷＥＴａｇ［Ｎ：０］信号を生成し、このＷＥＴａｇ［Ｎ：０］信号をラッチしたＮ＋１ビットの信号ＬａｔｃｈｅｄＷＥＴａｇ［Ｎ：０］信号を生成する。ＷＥＴａｇ［Ｎ：０］信号は、タグメモリに供給されるクロックとは非同期に変化する非同期選択信号である。また、ＬａｔｃｈｅｄＷＥＴａｇ［Ｎ：０］信号は、クロックに同期させてラッチされた選択信号である。
【００５５】
ラッチ回路２０３は、タグアドレスデータをラッチしたＬａｔｃｈｅｄタグアドレスデータを生成する。記憶セル部２０２は、ＡＮＤゲート２２０によってクロック信号と前述のＬａｔｃｈｅｄＷＥＴａｇ［Ｎ：０］信号とからＭａｓｋｅｄクロックを生成する。このＭａｓｋｅｄクロックは、ｘ番目のアドレスを示すＩｎｄｅｘアドレスデータに基づいて選択されたｘ番目のＤラッチｐ２１０に送信されるクロック信号である。このＭａｓｋｅｄクロックによって書き込み状態となったＤラッチｐ２１０には、前述のＬａｔｃｈｅｄタグアドレスデータが記憶される。
【００５６】
マルチプレクサ２３３はＩｎｄｅｘアドレスデータによって指定されたＤラッチｐ２１０の信号を選択し、出力する回路である。
【００５７】
実施の形態１にかかるタグメモリ２００の構成要素の接続について更に詳細に説明する。Ｄラッチｎ２３２は入力端子Ｄ、出力端子Ｑ及び制御端子ＣＬＫを有している。Ｄラッチｎ２３２は制御端子ＣＬＫにクロック信号のＬｏｗレベルの信号が入力されている間、入力端子Ｄに入力されるタグアドレスデータを出力端子ＱのＬａｔｃｈｅｄタグアドレスデータとして出力する。また、制御端子ＣＬＫにクロック信号のＨｉｇｈレベルが入力されている時には、クロック信号がＨｉｇｈレベルになる直前に、入力端子Ｄに入力されているタグアドレスデータを出力端子ＱのＬａｔｃｈｅｄタグアドレスデータとして保持する。
【００５８】
Ｄラッチｐ２１０は入力端子Ｄ、出力端子Ｑ及び制御端子ＣＬＫを有している。Ｄラッチｐ２１０は制御端子ＣＬＫにＨｉｇｈレベルの信号が入力されている間、入力端子Ｄに入力されるタグアドレスデータを出力端子Ｑから出力する。また、制御端子ＣＬＫにＬｏｗレベルが入力されている間は、Ｌｏｗレベルになる直前に入力端子Ｄに入力されているタグアドレスデータを出力として記憶する。０番目からＮ番目のＤラッチｐ２１０はＩｎｄｅｘアドレスデータの個数分用意されており、各Ｉｎｄｅｘアドレスに対応したデータを記憶する。タグアドレスデータは、タグメモリに記憶される被記憶データである。
【００５９】
デコーダ２３０には、ＩｎｄｅｘアドレスデータとＷｒｉｔｅＴａｇ信号が入力されている。デコーダ２３０は、Ｉｎｄｅｘアドレスデータに基づき指定されるタグメモリセルを書き込み可能状態にし、指定されないタグメモリセルを書き込み不可状態にするＷＥＴａｇ［Ｎ：０］信号を出力する。ＩｎｄｅｘアドレスデータはアドレスデータのＩｎｄｅｘアドレスを指定する指定用データである。ＷｒｉｔｅＴａｇ信号はＤラッチｐ２１０を書き込み状態とするか否かを制御する制御信号である。
【００６０】
Ｄラッチｎ２３１は入力端子Ｄ、出力端子Ｑ及び制御端子ＣＬＫを有している。Ｄラッチｎ２３１は制御端子ＣＬＫにクロック信号のＬｏｗレベルの信号が入力されている間、入力端子Ｄに入力されるＷＥＴａｇ［Ｎ：０］信号を出力端子ＱからＬａｔｃｈｅｄＷＥＴａｇ［Ｎ：０］を出力する。このＬａｔｃｈｅｄＷＥＴａｇ［Ｎ：０］は、タグアドレスデータの書き込み又は読み出しを行うＤラッチｐ２１０を指定する。また、制御端子ＣＬＫにクロックのＨｉｇｈレベルが入力されている時には、クロックがＨｉｇｈレベルになる直前（Ｌｏｗレベルの時）に、入力端子Ｄに入力されているＷＥＴａｇ［Ｎ：０］信号を出力端子ＱのＬａｔｃｈｅｄＷＥＴａｇ［Ｎ：０］として保持する。
【００６１】
ＡＮＤゲート２２０は第１及び第２の入力端子と出力端子を有している。ＡＮＤゲート２２０は第１の入力端子に入力されるＬａｔｃｈｅｄＷＥＴａｇ［Ｎ：０］がＨｉｇｈレベルであって、第２の入力端子に入力されるクロック信号がＨｉｇｈレベルである間、出力端子からＨｉｇｈレベルの信号を出力する。また、第１及び第２の入力端子が共にＬｏｗレベル、又は、異なるレベルとなる信号が入力されている間には出力端子よりＬｏｗレベルを出力する。また、ＡＮＤゲート２２０はＤラッチｐと同じ個数が用意されており、各ＡＮＤゲート２２０の出力は、対応するＤラッチｐ２１０の制御端子ＣＬＫに接続されている。ｘ番目のアドレスを示すＩｎｄｅｘアドレスデータに基づいて生成されたＬａｔｃｈｅｄＷＥＴａｇ［Ｎ：０］によって選択されたｘ番目のＡＮＤゲート２２０はＭａｓｋｅｄクロックを出力する。すなわち、Ｍａｓｋｅｄクロックは選択されたＤラッチｐ２１０に、選択期間のみ供給されるクロックである。
【００６２】
マルチプレクサ２３３は、Ｄラッチｐ２１０の出力がそれぞれ接続されており、入力されるＩｎｄｅｘアドレスデータに基づいて選択されたＤラッチｐ２１０の出力を選択して出力する回路である。
【００６３】
次に、実施の形態１にかかるタグメモリ２００の動作を示すタイミングチャートを図３に示す。まず、タグアドレスデータの書き込み動作について説明する。図３に示すように、タイミングＴ１からタイミングＴ２の間でＷｒｉｔｅＴａｇ信号が書き込み状態になる。これにより、デコーダ２３０はＩｎｄｅｘアドレスデータとＷｒｉｔｅＴａｇ信号よりＷＥＴａｇ［Ｎ：０］信号を生成する。このＷＥＴａｇ［Ｎ：０］信号はタイミングＴ２のクロックの立ち下がりで、Ｄラッチｎ２３１からＬａｔｃｈｅｄＷＥＴａｇ［Ｎ：０］として出力される。このＬａｔｃｈｅｄＷＥＴａｇ［Ｎ：０］は、タイミングＴ２からタイミングＴ４のクロックの立ち下がりがあるまで保持される。
【００６４】
また、入力されるタグアドレスデータは、タイミングＴ２のクロックの立ち下がりでＤラッチｎ２３２の出力となる。この出力はＬａｔｃｈｅｄタグアドレスデータとしてＤラッチｐ２１０に入力される。このＬａｔｃｈｅｄタグアドレスデータは、タイミングＴ２からタイミングＴ４のクロックの立ち下がりまでの間保持される。
【００６５】
タイミングＴ３でクロックが立ち上がると、ＬａｔｃｈｅｄＷＥＴａｇ［Ｎ：０］で指定されたＡＮＤゲート２２０はＭａｓｋｅｄクロックを出力する。このＭａｓｋｅｄクロックの立ち上がりで指定されたＡＮＤゲート２２０に接続されるＤラッチｐ２１０は、タイミングＴ３で確定しているＬａｔｃｈｅｄタグアドレスデータの出力を開始し、タイミングＴ４でクロックの立ち下がり直前のＬａｔｃｈｅｄタグアドレスデータを記憶する。
【００６６】
次に、タグアドレスデータの読み出し動作について説明する。タイミングＴ５からタイミングＴ６の間でＩｎｄｅｘアドレスデータが変化すると、Ｉｎｄｅｘアドレスデータに基づいてマルチプレクサ２３３が選択するＤラッチｐ２１０が切り替わる。この時、ＷｒｉｔｅＴａｇ信号は書き込み不可状態であるため、Ｄラッチｐ２１０はデータ記憶動作を行わない。これにより、Ｉｎｄｅｘアドレスデータの変化後、マルチプレクサ２３３の出力は、Ｉｎｄｅｘアドレスデータに基づいたタグアドレスデータとなる。つまり、Ｉｎｄｅｘアドレスデータの変化からマルチプレクサ２３３の出力が変化するまでの時間は、マルチプレクサ２３３の遅延時間であって、クロックの変化には依存しない。
【００６７】
実施の形態１のタグメモリ２００によれば、従来のＤ−ＦＦで構成されるタグメモリ同様にクロックの前半部分からデータの読み出しを開始できるために、タグメモリ２００からタグアドレスデータを高速に読み出すことができる。
【００６８】
さらに、一般的にＳＲＡＭでは所定の容量をひとまとめにしてレイアウトする必要があるが、Ｄラッチｐ及びＤラッチｎはそれぞれの素子を個別にレイアウトできるため、ＳＲＡＭと比べてレイアウトの自由度が高い。つまり、チップ上のブロックの隙間にレイアウトすることができるため、チップ面積を考慮した自由度の高い設計が可能である。
【００６９】
また、Ｄラッチｐ及びＤラッチｎのトランジスタ数は、Ｄ−ＦＦのトランジスタ数に比べて少ないため、１つの素子を小さくレイアウトすることが可能である。例えば、タグメモリをＤ−ＦＦで構成した場合の占有面積を１００とした場合、同容量のタグメモリをＤラッチｐ及びＤラッチｎで構成した場合、占有面積は例えば、７０程度となる。
【００７０】
実施の形態１にかかるタグメモリの構成によれば、高速アクセスが可能でありながら、占有面積の小さなタグメモリを実現することが可能である。
【００７１】
実施の形態２
【００７２】
実施の形態２にかかるタグメモリも実施の形態１にかかるタグメモリと同様に、例えば、上述のキャッシュメモリに用いられるタグメモリである。実施の形態２にかかるタグメモリ４００を図４に示す。図４を参照して、実施の形態２にかかるタグメモリ４００について説明する。実施の形態２にかかるタグメモリ４００は、実施の形態１にかかるタグメモリ２００と同じ入力から同じ出力を生成する構成となっている。つまり、実施の形態１にかかるタグメモリ２００と実施の形態２にかかるタグメモリ４００とでは選択信号生成回路の構成が異なるのみである。よって、実施の形態１と同一の要素については同一の符号を付して説明を省略する。
【００７３】
実施の形態２にかかるタグメモリ４００の選択信号生成回路４０１は、第４のラッチ回路としてのＤラッチｎ４１０、第５のラッチ回路としてのＤラッチｎ４１１及びデコーダ４１２を有している。Ｄラッチｎ４１０は、ＩｎｄｅｘアドレスデータをラッチしたＬａｔｃｈｅｄＩｎｄｅｘアドレス信号を生成する。Ｄラッチｎ４１１はＷｒｉｔｅＴａｇ信号からラッチされたＬａｔｃｈｅｄＷｒｉｔｅＴａｇ信号を生成する。デコーダ４１２は、ＬａｔｃｈｅｄＩｎｄｅｘアドレスデータとＬａｔｃｈｅｄＷｒｉｔｅＴａｇ信号とからＬａｔｃｈｅｄＷＥＴａｇ［Ｎ：０］信号を生成する。ＬａｔｃｈｅｄＷＥＴａｇ［Ｎ：０］信号は、ｘ番目のＩｎｄｅｘアドレスを示すＩｎｄｅｘアドレスデータに基づいて、タグデータの書き込みを行うＤラッチｐ２１０を選択する選択信号である。
【００７４】
つまり、選択信号生成回路４０１は、ＩｎｄｅｘアドレスデータとＷｒｉｔｅＴａｇ信号とから選択信号であるＮ＋１ビット幅の信号ＬａｔｃｈｅｄＷＥＴａｇ［Ｎ：０］信号を生成する。この動作より、実施の形態２の選択信号生成回路４０１の動作は、実施の形態１の選択信号生成回路２０１と同様である。
【００７５】
また、選択信号生成回路４０１は、ＩｎｄｅｘアドレスデータとＷｒｉｔｅＴａｇ信号とが入力され、選択信号を生成し、記憶セル部２０２のＡＮＤゲート２２０に入力する点は、実施の形態１と同様である。
【００７６】
実施の形態２にかかるタグメモリ４００の動作のタイミングチャートを図５に示す。まず、タグアドレスデータの書き込み動作について説明する。図５に示すように、タイミングＴ１からタイミングＴ２の間でＷｒｉｔｅＴａｇ信号が書き込み状態になる。その後、タイミングＴ２とタイミングＴ３の間で、Ｄラッチｎ４１０がＬａｔｃｈｅｄＩｎｄｅｘアドレスデータを出力し、Ｄラッチｎ４１１がＬａｔｃｈｅｄＷｒｉｔｅＴａｇ信号を生成する。ＬａｔｃｈｅｄＩｎｄｅｘアドレスデータ及びＬａｔｃｈｅｄＷＥＴａｇ［Ｎ：０］は、タイミングＴ２からタイミングＴ４のクロックの立ち下がりがあるまで保持される。
【００７７】
また、入力されるタグアドレスデータは、タイミングＴ２のクロックの立ち下がりでＤラッチｎ２３２の出力となる。この出力はＬａｔｃｈｅｄタグアドレスデータとしてＤラッチｐ２１０に入力される。このＬａｔｃｈｅｄタグアドレスデータは、タイミングＴ２からタイミングＴ４のクロックの立ち下がりまでの間保持される。
【００７８】
タイミングＴ３でクロックが立ち上がると、前述のＬａｔｃｈｅｄＷＥＴａｇ［Ｎ：０］で指定されたＡＮＤゲート２２０はＭａｓｋｅｄクロックを出力する。このＭａｓｋｅｄクロックの立ち上がりで指定されたＡＮＤゲート２２０に接続されるＤラッチｐ２１０は、タイミングＴ３で確定しているＬａｔｃｈｅｄタグアドレスデータの出力を開始し、タイミングＴ４でクロックの立ち下がり直前のＬａｔｃｈｅｄタグアドレスデータを記憶する。
【００７９】
また、実施の形態２のタグメモリ４００の読み出し動作は、実施の形態１にかかるタグメモリと同様の動作のため説明を省略する。
【００８０】
実施の形態２にかかるタグメモリにおいても、実施の形態１にかかるタグメモリと同様にＩｎｄｅｘアドレスデータとＷｒｉｔｅＴａｇ信号とから選択信号を生成し、これにより所定のＤラッチｐ２１０を選択し、ラッチ回路２０３に供給されるタグアドレスを出力することができる。よって、実施の形態１にかかるタグメモリと実質的に同じ動作速度が実現可能である。さらに、実施の形態２にかかるタグメモリは、実施の形態１にかかるタグメモリにＤラッチｎ４１０を追加するのみである。よって、実施の形態２にかかるタグメモリのレイアウト上の占有面積は、実施の形態１にかかるタグメモリと略同じ占有面積で実現することができる。
【００８１】
本発明は上記実施の形態に限られたものではなく、適宜変形することが可能である。本発明はタグメモリをＤラッチｐとＤラッチｎのペアによって構成するものである。そのため、適応するメモリの大小は、問題とはならない。例えば、１ビットデータを記憶するバリットビットメモリ、又は、ダーティービットメモリに適応することも可能であり、主メモリのタグメモリに適応することも可能である。また、本発明は上記実施の形態とは反転した論理であっても実現することが可能である。
【図面の簡単な説明】
【００８２】
【図１】本発明のキャッシュメモリを示す図である。
【図２】本発明の実施の形態１にかかるタグメモリを示す図である。
【図３】本発明の実施の形態１にかかるタグメモリの動作を示すタイミングチャートである。
【図４】本発明の実施の形態２にかかるタグメモリを示す図である。
【図５】本発明の実施の形態２にかかるタグメモリの動作を示すタイミングチャートである。
【図６】一般的なキャッシュメモリを示す図である。
【図７】従来のタグメモリを示す図である。
【図８】従来のタグメモリの動作を示すタイミングチャートである。
【符号の説明】
【００８３】
１１０  キャッシュコントローラ
１１１  データＲＡＭ
１１２  バリットビットメモリ
１１３  ダーティービットメモリ
１１４  タグメモリ
１１５  比較器
２０１  選択信号生成回路
２０２  記憶セル部
２０３  ラッチ回路
２１００、２１０１、・・・、２１０Ｎ  Ｄラッチｐ
２１１０、２１１１、・・・、２１１Ｎ  ＡＮＤゲート
２３０  デコーダ
２３１、１３２  Ｄラッチｎ
２３３  マルチプレクサ
４０１  選択信号生成回路
４１０、４１１、４１２  Ｄラッチｎ
【図１】
2006293716.tif 000003
【図２】
2006293716.tif 000004
【図３】
2006293716.tif 000005
【図４】
2006293716.tif 000006
【図５】
2006293716.tif 000007
【図６】
2006293716.tif 000008
【図７】
2006293716.tif 000009
【図８】
2006293716.tif 000010