(57)【特許請求の範囲】
【請求項１】
Ｎウェイのセットアソシアティブ方式に基づいてキャッシュデータを格納するよう設定され、複数のキャッシュデータにそれぞれ対応する複数の格納位置を有する複数のデータメモリマクロユニットを備え、
各前記格納位置は、前記Ｎウェイの１つを識別するために用いられるウェイ番号と、
メインメモリの前記キャッシュデータのそれぞれが格納されているアドレスに対応する部分によって決定されるインデックス番号と、
前記メインメモリの前記対応するアドレスの他の部分によって決定されるワード番号によって指定され、
前記複数のデータメモリマクロユニットは、それぞれ同時にアクセス可能なキャッシュメモリにおいて、
前記複数のデータメモリマクロユニットに対しＮ個のキャッシュデータを同時書き込み許可するべく、前記複数のデータメモリマクロユニットのいずれか１つのデータ入力端子にそれぞれ接続されている複数のマルチプレクサを備え、
同一のインデックス番号及び相違するワード番号によって指定された前記それぞれのキャッシュデータは、前記各データメモリマクロユニットに共通に格納され、同一のインデックス番号及び相違するウェイ番号によって指定された前記それぞれのキャッシュデータは、相違するデータメモリマクロユニットに格納され、
物理的キャッシュメモリアドレスは、前記各データメモリマクロユニットにおける前記各格納位置のために決定され、同一のインデックス番号及び同一のウェイ番号によって指定されたそれぞれのキャッシュデータが、前記各データメモリマクロユニットにおいて同一のキャッシュメモリアドレスに格納されることを特徴とするキャッシュメモリ。
【請求項２】
前記同一のインデックス番号及び同一のワード番号によって指定されたそれぞれのキャッシュデータが、前記各データメモリマクロユニットにおける相違するキャッシュメモリアドレスに格納されることを特徴とする請求項１記載のキャッシュメモリ。
【請求項３】
前記各データメモリマクロユニットに格納されている前記キャッシュデータの部分を構成する前記同一のインデックス番号によって指定された各キャッシュデータは、相違するウェイ番号及び相違するワード番号によって指定されることを特徴とする請求項１記載のキャッシュメモリ。
【請求項４】
前記複数のデータメモリマクロユニットに書き込むための前記メインメモリからの前記Ｎ個のデータを受信するために、複数のマルチプレクサに接続されているラインバッファを更に備えることを特徴とする請求項１記載のキャッシュメモリ。
【請求項５】
ウェイＮの数は４であることを特徴とする請求項１記載のキャッシュメモリ。
【請求項６】
前記各データメモリマクロユニットに格納されている複数の前記それぞれのキャッシュデータは、同一のインデックス番号によって指定されている前記各キャッシュデータのグループに設定され、前記グループは、前記キャッシュメモリアドレスの設定に対応させる方式で、インデックス番号が順次増加する順序で設定されており、前記各グループを構成する前記各キャッシュデータは、ワード番号が順次増加する順序で周期的に設定されることを特徴とする請求項１記載のキャッシュメモリ。
【請求項７】
前記キャッシュデータの前記グループを構成する各キャッシュデータを指定する前記ワード番号の前記周期的なシーケンスにおけるイニシャルウェイ番号が、前記データメモリマクロユニット間で相違することを特徴とする請求項６記載のキャッシュメモリ。
【請求項８】
前記それぞれのキャッシュデータは、前記Ｎの倍数であるメインメモリからのワード番号を備えることを特徴とする請求項１記載のキャッシュメモリ。
【請求項９】
前記データメモリマクロユニットの数は、前記Ｎの倍数であることを特徴とする請求項１記載のキャッシュメモリ。
【請求項１０】
前記複数のデータメモリマクロユニットからＮ個のキャッシュデータを同時読み込み許可するべく、前記各データメモリマクロユニットのデータ出力端子に接続されているマルチプククサを備えることを特徴とする請求項１記載のキャッシュメモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、
本発明は、マイクロプロセッサに接続するキャッシュメモリに関し、特にそのデータメモリの構成に関する。
【背景技術】
【０００２】
一般にキャッシュのデータメモリは１サイクルでリードおよびライトすることによりＭＰＵ（マイクロプロセッサ）の待ちサイクルを減らして高速動作を実現する。
【０００３】
図２は、従来のセットアソシアティブのキャッシュメモリの構成図である。
図示例は、４ウェイのセットアソシアティブの構成であり、図中のウェイ１のデータメモリマクロ（ユニット）２０〜２３、ウェイ２のデータメモリマクロ３０〜３３、ウェイ３のデータメモリマクロ４０〜４３は、ウェイ０のデータメモリマクロ１０〜１３と同様の構成である。また、ライトデータＤ０〜Ｄ３は、それぞれセレクタ５０〜５３によりラインバッファ１のデータまたはＭＰＵライトデータを選択した値で各データメモリマクロ１０〜４３に入力されるよう構成され、各データメモリマクロ１０〜４３からのリードデータは、セレクタ６０〜６３、７０を介して出力されるようになっている。
【０００４】
キャッシュメモリでは、１サイクルでリードデータを出力するために、全ウェイの全ワード（図では４ワード）毎にデータメモリマクロ１０〜４３を用意する。全てのデータメモリマクロ１０〜４３のアドレス入力端子Ａにアドレスを入力し、チップイネーブル入力端子ＣＥにチップイネーブル０〜３［０：３］をアサートすることで、同時にリードすることができる。尚、［０：３］は、［０］〜［３］を表している。リードしたデータはワードアドレスとキャッシュヒットしたウェイ番号から必要なデータ一つを選択し、ＭＰＵに返送する。
【０００５】
各データメモリマクロ１０〜４３へのライトはＭＰＵからのライト要求またはキャッシュミスにより発生する。キャッシュミスによる場合、メモリシステムから読み出したデータがラインバッファ１に格納された後に発生する。全てのワードデータが揃うと、いずれか一つのウェイの全ワードのデータメモリマクロ１０〜４３に書き込みを行う。例えば、ウェイ０に書き込みを行う場合、１サイクルで全ワードを同時に書き込むために、データメモリマクロ１０〜１３のアドレス入力端子Ａにアドレスを入力し、データ入力端子ＤにライトデータＤ０〜Ｄ３をそれぞれ入力し、ウェイ０の全ワードのチップイネーブル入力端子ＣＥにチップイネーブル０［０：３］を、ライトイネーブル入力端子ＷＥにライトイネーブル０［０：３］をアサートすることで、全ワード同時にライトすることができる。
【０００６】
図３は、アドレスフォーマットの説明図である。
ＭＰＵが出力するアドレスをキャッシュではタグデータ部Ｘ１、インデックスアドレス部Ｘ２、ワードアドレス部Ｘ３、バイトアドレス部Ｘ４に分けて使用する。タグデータ部Ｘ１はキャッシュのタグメモリに格納するデータである。ＭＰＵからのアクセス要求アドレスと有効なタグメモリのデータを比較して一致した時キャッシュヒットとなる。インデックスアドレス部Ｘ２はキャッシュの一つのウェイに登録できるライン数を示すビット数である。ワードアドレス部Ｘ３は１ラインのワード数を示すビット数であり、バイトアドレス部Ｘ４は１ワードのバイト数を示すビット数となる。
【０００７】
図４は、ウェイ０〜３の各データメモリマクロ１０〜４３のデータ格納位置の説明図である。
例えば、データメモリマクロ１０〜１３は、それぞれ図３のワードアドレス部Ｘ３における０〜３のデータに対応したデータを格納する。メモリアドレスはインデックスアドレス部Ｘ２と等しくする。ウェイ１〜ウェイ３のデータメモリマクロ２０〜４３も同様である。例として、リード／ライト時のデータ格納位置を網掛け部分で示す。ＭＰＵのリード要求アドレスがインデックスアドレス＝０、ワードアドレス＝２の場合、図４中の（ｘ，０，ｚ）のデータが読み出される。また、リードミスアドレスのインデックスアドレス＝５１１、書き込みウェイ＝０の場合は、図４中の（０，５１１，ｚ）の箇所にラインバッファのデータが書き込まれる。
【０００８】
図５は、従来のフロアプラン例の説明図である。
ここでは、キャッシュのＴＡＧメモリ部８１、ＭＰＵ８２、制御部８３、データメモリ部８４のみ示している。また、８０はＬＳＩのダイサイズを示している。データメモリ部８４にはデータメモリマクロ８５を１６個配置する。これらのデータメモリマクロ８５は、図２におけるデータメモリマクロ１０〜１３、２０〜２３、３０〜３３、４０〜４３を示している。
【０００９】
図６は、データメモリマクロ１０〜４３のリード／ライト時のタイムチャートである。
データメモリマクロ１０〜４３はクロックに同期して動作する。リード時はクロックのエッジＴ２に対してアドレスＲＡ１およびチップイネーブル０〜３［０：３］をアサートして入力する。リードデータＲＤ１はクロックのエッジＴ３でＭＰＵがラッチできるように出力される。ライト時（この例ではウェイ０へのライト）はクロックのエッジＴ４に対してアドレスＷＡ２、ライトデータ０〜３ＷＤ２、チップイネーブル０［０：３］をアサート、ライトイネーブル０［０：３］をアサートして入力する。これによりライトデータ０〜３ＷＤ２の値がデータメモリマクロに書き込まれる。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上記従来の構成ではデータメモリマクロ１０〜４３をウェイ数×ワード数（上記例では１６個）だけ用意して接続する必要があり、図５のフロアプラン例のようにＭＰＵ８２とデータメモリマクロ８５間の配線が長くなる箇所ができてしまい、その結果遅延が発生し高速動作の妨げとなっていた。またＬＳＩの面積増によるＬＳＩ単価の上昇という問題点があった。
【課題を解決するための手段】
【００１１】
本発明は、前述の課題を解決するため次の構成を採用する。
〈構成１〉
Ｎウェイのセットアソシアティブ方式に基づいてキャッシュデータを格納するよう設定され、複数のキャッシュデータにそれぞれ対応する複数の格納位置を有する複数のデータメモリマクロユニットを備え、各格納位置は、Ｎウェイの１つを識別するために用いられるウェイ番号と、メインメモリのキャッシュデータのそれぞれが格納されているアドレスに対応する部分によって決定されるインデックス番号と、メインメモリの対応するアドレスの他の部分によって決定されるワード番号によって指定され、複数のデータメモリマクロユニットは、それぞれ同時にアクセス可能なキャッシュメモリにおいて、複数のデータメモリマクロユニットに対しＮ個のキャッシュデータを同時書き込み許可するべく、複数のデータメモリマクロユニットのいずれか１つのデータ入力端子にそれぞれ接続されている複数のマルチプレクサを備え、同一のインデックス番号及び相違するワード番号によって指定されたそれぞれのキャッシュデータは、各データメモリマクロユニットに共通に格納され、同一のインデックス番号及び相違するウェイ番号によって指定されたそれぞれのキャッシュデータは、相違するデータメモリマクロユニットに格納されることを特徴とするキャッシュメモリ。
【００１２】
〈構成２〉
他の発明は、Ｎウェイのセットアソシアティブ方式に基づいてメインメモリからのデータを格納するよう設定されている多数のデータメモリマクロユニットを備え、データメモリマクロユニットの数がウェイＮの数と等しく、データメモリマクロユニットがデータを格納可能に複数の格納位置が割り当てられているキャッシュメモリにおいて、各格納位置は、データのそれぞれの一部を格納するように設定され、Ｎウェイの１つを識別するために用いられるウェイ番号と、データの一部が格納されているメインメモリのアドレスに対応する部分によって決定されているインデックス番号と、メインメモリ内の対応するアドレスの他の部分によって決定されているワード番号とによって指定され、同一のインデックス番号及び相違するワード番号によって指定された各データは、各データメモリマクロユニットに共通に格納され、同一のインデックス番号及び相違するウェイ番号によって指定された各データは、相違するデータメモリマクロユニットに格納されることを特徴とするキャッシュメモリ。
【００１３】
〈構成３〉
また、他の発明は、マイクロプロセッシングユニット（ＭＰＵ）と、ＭＰＵと組み合わされているメインメモリと、ＭＰＵによるデータ処理可能にメインメモリからのデータを格納するよう設定されているキャッシュメモリとを含み、該キャッシュメモリは、Ｎウェイのセットアソシアティブ方式に基づいてデータを格納する複数のデータメモリマクロユニットを備え、複数のデータメモリマクロユニットの数は、ウェイＮの数と等しいことを特徴とするキャッシュメモリ装置。
【００１４】
〈構成４〉
更に他の発明は、複数のデータメモリマクロユニットを有するキャッシュメモリに格納位置を割り当てる方法であって、複数のデータメモリマクロユニットの数が、ウェイＮの数と等しく、各格納位置は、キャッシュデータのそれぞれの一部を格納するように設定され、Ｎウェイの１つを識別するために用いられるウェイ番号と、キャッシュデータの各一部が格納されているメインメモリのアドレスに対応する部分によって決定されているインデックス番号と、メインメモリ内の対応するアドレスの他の部分によって決定されているワード番号とによって指定され、割り当てられた格納位置に対応させて、メインメモリからのデータをキャッシュメモリに格納することを特徴とする割当て方法。
【発明の効果】
【００１５】
本発明によれば、Ｎウェイのセットアソシアティブ方式のキャッシュメモリであっても最少としてＮ個のデータメモリマクロを設ければよいので、高速にアクセスすることができる上に配置空間を小さくすることができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態を具体例を用いて詳細に説明する。
《具体例》
図１は、本発明のキャッシュメモリにおけるデータ格納位置の説明図であるが、これに先立ち、キャッシュメモリの構成について説明する。
【００１７】
図７は、具体例のキャッシュメモリの構成図である。
図示のキャッシュメモリは、ラインバッファ１、データメモリマクロ１００〜１０３、セレクタ２００〜２０３、３００〜３０３、４００からなる。ラインバッファ１は、従来と同様に、複数のワードデータを格納するラインバッファであり、本具体例では４ワードを格納するよう構成されている。データメモリマクロ１００〜１０３は、それぞれが同時にアクセス可能なメモリブロックで、そのキャッシュメモリのウェイ数以上設けられるもので、本具体例ではウェイ数と等しい４個が設けられている。これらのデータメモリマクロ１００〜１０３は、それぞれ図４に示した従来のデータメモリマクロの一つ分と比べて、ワード数４の場合、４倍の容量となる。但し、データメモリマクロの個数は１／４であるためメモリの総容量は変わらない。
【００１８】
各データメモリマクロ１００〜１０３には、そのアドレス入力端子Ａにアドレス０〜３が、データ入力端子Ｄにはセレクタ３００〜３０３の出力が、チップイネーブル入力端子ＣＥにはチップイネーブル０〜３が、ライトイネーブル入力端子ＷＥにはライトイネーブル０〜３が入力されるよう構成され、その出力Ｑはセレクタ４００に入力されるよう構成されている。尚、これらのデータ格納位置の詳細については図１を参照して後述する。
【００１９】
セレクタ２００〜２０３は、それぞれラインバッファ１から出力された各ワードのライトデータＤ０〜Ｄ３を選択するためのセレクタであり、その選択出力はセレクタ３００〜３０３に入力されるようになっている。セレクタ３００〜３０３は、それぞれ、ＭＰＵライトデータと、セレクタ２００〜２０３の出力を選択するためのセレクタであり、その選択出力は各データメモリマクロ１００〜１０３のデータ入力端子Ｄに入力されるようになっている。セレクタ４００は、各データメモリマクロ１００〜１０３の出力Ｑを入力し、その選択出力をリードデータとして送出するセレクタである。
【００２０】
次に、図１を用いて本具体例の各データメモリマクロ１００〜１０３のデータ格納状態を説明する。
図１に示すように、本具体例の各データメモリマクロ１００〜１０３は、同一インデックスアドレスのワードアドレス毎に異なるウェイ番号となり、かつ、各ウェイの同一インデックスで同一ワードアドレスのデータは各データメモリマクロ１００〜１０３に格納されるよう構成されている。例えば、データメモリマクロ１００のメモリアドレス０にはウェイ０のインデックスアドレス０、ワードアドレス０のデータを格納する。また、メモリアドレス１には、ウェイ１のインデックスアドレス０、ワードアドレス１のデータを、メモリアドレス２には、ウェイ２のインデックスアドレス０、ワードアドレス２のデータを割り当てるといったように、本具体例では、各データメモリマクロ１００〜１０３のそれぞれにワードアドレスを組み込んで割り付けている。従って、このデータ格納位置に対応するよう、メモリアドレスはインデックスアドレス部Ｘ２とワードアドレス部Ｘ３で構成する。例えば、具体例ではインデックスアドレスが５１２通り、ワードアドレスが４通りであるからメモリアドレスは０〜２０４７となる。
【００２１】
また、各データメモリマクロ１００〜１０３は、同一インデックスアドレスかつ同一ワードアドレスで四つのウェイのデータをリードできるように、各データメモリマクロ１００〜１０３毎に、同一インデックスアドレスおよび同一ワードアドレスのウェイ番号が一つずつずれて割り付けられている。
【００２２】
即ち、本具体例のデータメモリマクロ１００〜１０３は、リード時は、特定のインデックスかつ特定のワードの全てのウェイのデータをリードでき、また、ライト時は、特定インデックスかつ特定のウェイの全ワードのデータをライトできるという構成において、データメモリマクロの個数を最小限にするという目的で構成されているものである。
【００２３】
そして、このように割り付けられたデータメモリマクロ１００〜１０３に対するリード／ライト時のアドレスは次のようになっている。
●リード時のメモリアドレス＝ＭＰＵ要求アドレスのうち、インデックスアドレスとワードアドレス部分
●ライト時のメモリアドレス
インデックス部＝キャッシュミスしたアドレスのインデックスアドレス部
ワード部＝（ライトしたいウェイ番号−データメモリ番号＋４）÷４の剰余
【００２４】
また、リード時にセレクタ４００で選択するデータやライト時にセレクタ２００〜２０３で選択するデータは以下の式に従って操作する。
●各データメモリマクロ１００〜１０３から読み出されるデータのウェイ番号＝（ワードアドレス＋データメモリ番号）÷４の剰余
●各データメモリマクロ１００〜１０３へのライトデータのワード番号＝ライトアドレスのワード部と同じ
【００２５】
〈動作〉
このように構成されたキャッシュメモリでは、上述したメモリアドレスとリード／ライト時のデータ選択操作により、従来と同様に１サイクルで全ウェイからのリードおよび一つのウェイへの全ワードライトが可能となる。
【００２６】
例えば、ＭＰＵのリード要求アドレスがインデックスアドレス＝０、ワードアドレス＝２の場合、図１に示した各データメモリマクロ１００〜１０３の（２，０，２）、（３，０，２）、（０，０，２）、（１，０，２）のデータが読み出される（図中、網掛けＡ部分に示す）。従って、データメモリマクロ１００〜１０３に対応するウェイの順番は、２，３，０，１となっている。また、リードミスアドレスのインデックスアドレス＝５１１、書き込みウェイ＝０であった場合は、各データメモリマクロ１００〜１０３の（０，５１１，０）、（０，５１１，３）、（０，５１１，２）、（０，５１１，１）、の箇所にラインバッファ１のデータ（ライトデータ０〜３）がそれぞれ書き込まれる（図中、網掛けＢ部分に示す）。この時、データメモリマクロ１００〜１０３に対応するワードアドレスの順番は、０，３，２，１となる。
【００２７】
図８は、本具体例のフロアプラン例の説明図である。
従来に比べて、データメモリマクロが４個になったため、データメモリ部９１が小さくなり、従って、従来のＬＳＩのダイサイズ８０に比べて本具体例のダイサイズ９０は小さくすることができる。
【００２８】
図９は、本具体例のリード／ライト時のタイムチャートである。
データメモリマクロ１００〜１０３は、クロックに同期して動作する。リード時はクロックのエッジＴ２に対してアドレス０〜３およびチップイネーブル０〜３をアサートして入力する。この時、アドレス０〜３は同じアドレスでよい。リードデータはクロックのエッジＴ３でサンプルできるタイミングで有効なデータを出力する。この時、各データメモリマクロ１００〜１０３からはアドレスで指定された各ウェイのデータが出力されている。
【００２９】
ライト時はクロックのエッジＴ４に対してアドレス０〜３およびライトデータ０〜３を入力する。この時のアドレス０〜３のインデックスアドレスは同一で、ワードアドレスは書き込みたいウェイ番号により決められた値を供給する。また、この決められたワードアドレスに対応するライトデータ０〜３の一つが選択されてデータメモリマクロ１００〜１０３へのライトデータとなる。同じタイミングでチップイネーブル０〜３およびライトイネーブル０〜３がアサートされる。これによりデータメモリマクロ１００〜１０３にデータが書き込まれる。
【００３０】
〈効果〉
以上のように、具体例によれば、各データメモリマクロにおけるデータ格納位置を、同一インデックスのワードアドレス毎に別のウェイ番号とし、かつ、各ウェイの同一インデックスで同一ワードアドレスのデータは各データメモリマクロ毎に格納するようにしたので、データメモリマクロの数を従来の１６個から４個に削減することができ、その結果、図８に示すように、例えばＭＰＵとデータメモリマクロ１００〜１０３間の配線を短くすることができる。これにより配線遅延、リピータによる遅延も小さく抑えることができ、性能向上を図ることができる。また、一般にデータメモリマクロは同じ容量を複数個で実現するより１個で実現する方が面積は小さくなる。これは１個にまとめることで共有できる部分（信号、電源の配線など）が増え、その分面積は小さくすることができるからである。これによりＬＳＩの面積も削減することができ、ＬＳＩ単価を抑えることができる。また、同一メモリアドレスで特定のワードの全てのウェイのデータをリードすることができるため、キャッシュメモリとしての高速性を損なうことがない。
【００３１】
《利用形態》
具体例のデータメモリマクロ１００〜１０３のデータ格納位置ではワードアドレスをメモリアドレスのＬＳＢ側に割り当てたがその他のビットに割り当ててもよい。
また、具体例のデータメモリマクロはＬＳＩ内部で使用することを例として説明したが、これに限定されるものではなく、例えばＳＲＡＭのＩＣ部品としてＬＳＩ外部で使用しても適用可能である。この場合は、ＩＣの数を減らすことができる。
【００３２】
上記具体例では、ウェイ数４、ワード数４で説明したが、他のウェイ数、ワード数でも適用可能である。この場合、データメモリマクロの数はウェイ数と同じかそれ以上とし、ウェイ数よりワード数が多い場合は、一つのデータメモリマクロのビット幅を２ワード以上とする。そして、これらのワードは同一のウェイとする。例えば、ウェイ数４、ワード数８の場合は、データメモリマクロを４として、一つのデータメモリマクロのビット幅を２ワードとする。
【００３３】
図１０は、ウェイ数４、ワード数８の場合のデータ格納位置の説明図である。
図示のように、各データメモリマクロ１００〜１０３の同一メモリアドレスに対してそれぞれ２ワードが割り当てられている。これにより、リード時は、各ウェイの同一の２ワード単位でリードし、ライト時は、対象となるウェイの全ワード（０〜７）をライトする。
【００３４】
また、上記具体例では、図１に示すようなデータ格納状態としたが、各データメモリブロックにおけるデータ格納位置を、（同一インデックスの）ワードアドレス毎に別のウェイ番号とし、かつ、各ウェイの同一インデックスで同一ワードアドレスのデータは各データメモリ毎に別に格納する構成であれば、このような割付に限定されるものではない。
【００３５】
図１１は、データ格納位置の変形例を示す説明図である。
この例は、ライト時（図中、Ｂで示す）に各データメモリマクロ１００〜１０３の同一メモリアドレスでアクセスするように配置したものである。この場合のデータメモリマクロ１００〜１０３に対するリード／ライト時のアドレスは次のようになる。
●リード時のメモリアドレス
インデックス部＝ＭＰＵ要求アドレスのインデックスアドレスと同じ
ワード部＝（ＭＰＵ要求アドレスのワードアドレス−データメモリ番号＋４）÷４の剰余
●ライト時のメモリアドレス
インデックス部＝キャッシュミスしたアドレスのインデックスアドレス
ワード部＝ウェイ番号
【００３６】
また、リード時にセレクタ４００で選択するデータやライト時にセレクタ２００〜２０３で選択するデータは以下の式に従って操作する。
●各データメモリマクロ１００〜１０３から読み出されるデータのウェイ番号＝（ＭＰＵ要求アドレスのワードアドレス−データメモリ番号＋４）÷４の剰余
●各データメモリマクロ１００〜１０３へのライトデータのワード番号＝（ウェイ番号＋データメモリ番号）÷４の剰余
【００３７】
例えば、ＭＰＵのリード要求アドレスがインデックスアドレス＝０、ワードアドレス＝２の場合、図１に示した各データメモリマクロ１００〜１０３の（２，０，２）、（１，０，２）、（０，０，２）、（３，０，２）のデータが読み出される（図中、網掛けＡ部分に示す）。従って、データメモリマクロ１００〜１０３に対応するウェイの順番は、２，１，０，３となっている。また、リードミスアドレスのインデックスアドレス＝５１１、書き込みウェイ＝０であった場合は、各データメモリマクロ１００〜１０３の（０，５１１，０）、（０，５１１，１）、（０，５１１，２）、（０，５１１，３）の箇所にラインバッファ１のデータ（ライトデータ０〜３）がそれぞれ書き込まれる（図中、網掛けＢ部分に示す）。この時、データメモリマクロ１００〜１０３に対応するワードアドレスの順番は、０，１，２，３となる。
【図面の簡単な説明】
【００３８】
【図１】本発明のキャッシュメモリにおけるデータ格納位置の説明図である。
【図２】従来のキャッシュメモリの構成図である。
【図３】アドレスフォーマットの説明図である。
【図４】従来のデータ格納位置の説明図である。
【図５】従来のフロアプラン例の説明図である。
【図６】従来例のリード／ライト時のタイムチャートである。
【図７】具体例のキャッシュメモリの構成図である。
【図８】具体例のフロアプラン例の説明図である。
【図９】具体例のリード／ライト時のタイムチャートである。
【図１０】ウェイ数４、ワード数８の場合のデータ格納位置の説明図である。
【図１１】データ格納位置の変形例を示す説明図である。
【符号の説明】
【００３９】
１００〜１０３  データメモリマクロ
【図１】
0004918535.tif 000002
【図２】
0004918535.tif 000003
【図３】
0004918535.tif 000004
【図４】
0004918535.tif 000005
【図５】
0004918535.tif 000006
【図６】
0004918535.tif 000007
【図７】
0004918535.tif 000008
【図８】
0004918535.tif 000009
【図９】
0004918535.tif 000010
【図１０】
0004918535.tif 000011
【図１１】
0004918535.tif 000012