(57)【特許請求の範囲】
【請求項１】
二次元データのメモリアドレスによって指定されるインデックスを、前記メモリアドレスから抽出される前記二次元データの行に応じて異なるインデックスに変換するインデックス変換手段と、
前記二次元データ１行分のデータを格納するのに必要なキャッシュラインの総数が、当該キャッシュラインの個数の倍数であった場合、前記インデックス変換手段で変換されたインデックスで格納するキャッシュラインを決定するキャッシュライン決定手段と、
前記キャッシュメモリのタグとインデックスから、元のインデックスを復元するインデックス逆変換手段とを備えたキャッシュメモリ制御装置。
【請求項２】
二次元データのメモリアドレスによって指定されるインデックスを、前記二次元データの行に応じて異なるインデックスに変換するインデックス変換手段と、
前記二次元データ１行分のデータを格納するのに必要なキャッシュラインの総数が、当該キャッシュラインの個数の倍数であった場合、前記インデックス変換手段で変換されたインデックスで格納するキャッシュラインを決定するキャッシュライン決定手段と、
キャッシュメモリのタグと、前記二次元データとともに前記キャッシュラインに対応して格納されている前記二次元データの行数を示す値とから、元のインデックスを復元するインデックス逆変換手段とを備えたキャッシュメモリ制御装置。
【請求項３】
二次元データ１行分のデータを格納するのに必要なキャッシュラインの総数が、当該キャッシュラインの個数の倍数でない場合、インデックス変換手段を無効化し、キャッシュライン決定手段は、メモリアドレスで指定されたインデックスをキャッシュメモリにアクセスするキャッシュラインと決定することを特徴とする請求項１または請求項２記載のキャッシュメモリ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、二次元データを格納するキャッシュメモリの制御を行うキャッシュメモリ制御装置に関するものである。
【背景技術】
【０００２】
一般的に、二次元データは行方向順にメモリに格納される。例えば、二次元データの典型例であるフレームバッファデータは、行方向、すなわちスキャンライン方向の順番でメモリに格納されることが多い。
メモリ上に格納されたこれらのデータの一部をキャッシュに格納する際、キャッシュ制御装置はキャッシュのどのラインにデータを格納するかを決定する。ダイレクトマップ方式やセットアソシアティブ方式といった一般的なキャッシュ制御方式では、メモリアドレスの一部分のビット列をインデックス値として抜き出し、そのインデックス値と等しいライン番号をもつキャッシュラインにデータを格納している。
【０００３】
二次元データは、キャッシュラインに格納できるデータ量（キャッシュライン容量）の単位に分割されキャッシュに格納される。分割されたデータの先頭アドレスからインデックス値が決まり、そのインデックス値から格納するキャッシュラインが決まる。
二次元データ１行分のデータを格納するのに必要なキャッシュラインの総数がキャッシュラインの個数の倍数である場合、分割されたデータそれぞれに割り振られるインデックス値の順番が各行で同じになる（後述する図４参照）。よって、列が同じデータには同じインデックス値が割り振られ、列方向（縦方向）に連続するデータアクセスを行えば、同じキャッシュラインに格納されるデータを連続してアクセスすることになる。特定のキャッシュラインに対するアクセスに偏りがあると、キャッシュの競合状態が発生し、キャッシュ性能が低下してしまう。
従来、このようなキャッシュラインに対するアクセスに偏りがあるかを判定するカウンタを設け、それを元にインデックス変換テーブルを構築するようにしたものがあった（例えば、特許文献１参照）。
【０００４】
【特許文献１】特開２０００−１８１７９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来のキャッシュメモリ制御装置では、二次元データに対しても一次元データと同様の方式でキャッシュ格納ラインの決定を行っていたため、キャッシュの競合が発生してキャッシュ利用効率が低下する可能性があるという問題点があった。
例えば、二次元データの場合、
●二次元データは縦横どちらの方向にも関連するデータが並ぶことが多い
●行方向（横方向）の幅が固定されている
●二次元データは一次元的に並べて格納する
といったことから、列方向（縦方向）に連続するデータアクセスのように、一定間隔で飛び飛びになったデータアクセスを行うことが一次元データより発生しやすい。このような列方向（縦方向）に連続するデータアクセスとしては、フレームバッファに縦線を一本書き込むといった処理や行列データの縦データへの連続アクセスといったものがある。従って、このようなデータアクセスに対して一次元データと同様の方式を適用しても、必ずしもキャッシュ利用効率を向上させることができるとは限らなかった。
【０００６】
この発明は上記のような問題点を解決するためになされたもので、二次元データに最適なキャッシュ格納ラインの決定を行うことのできるキャッシュ制御装置の実現を目的とする。
【課題を解決するための手段】
【０００７】
この発明に係るキャッシュメモリ制御装置は、二次元データのメモリアドレスによって指定されるインデックスを、前記メモリアドレスから抽出される前記二次元データの行に応じて異なるインデックスに変換するインデックス変換手段と、
前記二次元データ１行分のデータを格納するのに必要なキャッシュラインの総数が、当該キャッシュラインの個数の倍数であった場合、前記インデックス変換手段で変換されたインデックスで格納するキャッシュラインを決定するキャッシュライン決定手段と、
前記キャッシュメモリのタグとインデックスから、元のインデックスを復元するインデックス逆変換手段とを備えたものである。
【発明の効果】
【０００８】
この発明のキャッシュメモリ制御装置は、キャッシュメモリに書き込むためのインデックスを、二次元データのメモリアドレスから抽出される二次元データの行に応じて他の値に変換するようにしたので、二次元データに最適なキャッシュ格納ラインの決定を行うことができる。
【発明を実施するための最良の形態】
【０００９】
実施の形態１．
図１は、この発明の実施の形態１によるキャッシュメモリ制御装置を示す構成図である。
図示のように、メモリ上のデータをキャッシュメモリ１０に格納する際、そのデータのアドレスを三分割し、タグとインデックスとオフセットに分ける。図１では、タグ／インデックス／オフセットの順に分割しているが、必ずしもこのように分割する必要はない。図２の様に、アドレスビットの連続していないビットを連結させタグやインデックスを生成する場合もある。尚、キャッシュメモリ１０の構成によってはオフセットがない場合もある。
【００１０】
キャッシュメモリ制御装置は、ルックアップテーブル（インデックス変換手段）１、デコーダ（キャッシュライン決定手段）２、エンコーダ３、逆ルックアップテーブル（逆インデックス変換手段）４、キャッシュヒット判定手段５を備えている。ルックアップテーブル１は、図３に示すように、メモリアドレスによって指定されるインデックスと、メモリアドレスから抽出される行判定ビットとの対応関係を示す変換テーブルである。デコーダ２は、ルックアップテーブル１で変換されたインデックスをキャッシュメモリ１０にアクセスするキャッシュライン番号として決定するものである。即ち、デコーダ２は、インデックスとキャッシュライン番号が一致するキャッシュラインを検出し、そのキャッシュラインをデータ格納に使用するキャッシュラインとする。キャッシュラインの総数は２の（インデックスビット数）乗と一致する。また、エンコーダ３は、キャッシュメモリ１０のキャッシュライン番号からインデックスを生成するものである。逆ルックアップテーブル４は、ルックアップテーブル１との逆変換を行うためのルックアップテーブルである。キャッシュヒット判定手段５は、メモリアドレスから抽出されるタグとキャッシュメモリ１０のタグとを比較してキャッシュヒット／ミスヒットを判定する手段である。
【００１１】
オフセットは、キャッシュライン内のオフセットアドレスである。タグは、キャッシュヒット判定手段５によってデータ格納に使用するキャッシュメモリ１０のタグと比較され、一致した場合はキャッシュヒットと判定される。不一致だった場合はキャッシュミスヒットと判定され、キャッシュメモリ１０の更新を行う。
【００１２】
行判定ビットはアドレスから抜き出したビット列であり、１ビット以上で構成される。アドレスのタグもしくはインデックスに分割されるビットから抜き出す。
ルックアップテーブル１は、行判定ビットを用いて、インデックスを異なるインデックスとする変換を行う。
図３は、行判定ビットとインデックスが共に２ビットであった場合におけるルックアップテーブルの具体例である。
インデックス変換用のルックアップテーブル１は、列の数が２の（インデックスビット数）乗、行の数が２の（行判定ビット数）乗のテーブルである。列と行が逆になっていてもよい。インデックスビットと行判定ビットを入力すると、変換後インデックスビットが出力される。ここで、変換後インデックスビットのビット幅は元のインデックスビットのビット幅に等しい。
ルックアップテーブル１は、行判定ビットが同じでインデックスが異なる場合に、出力される変換後インデックスに重複がないように構築するのが望ましい。また、ルックアップテーブル１は、インデックスが同じで行判定ビットが異なる場合に、出力される変換後インデックスに重複がないように構築するのが望ましい。
【００１３】
キャッシュに格納したデータをメモリに書き戻す際には、タグとインデックスから元のアドレスを生成する必要がある。タグはキャッシュにそのまま保管されているのでそれを利用する。インデックスは、逆ルックアップテーブル４を用いてキャッシュライン番号（＝変換後インデックス）を逆変換し、元のインデックスを求める必要がある。このように、ルックアップテーブル１によるインデックス変換を行うと、データ書き戻しの際にインデックス逆変換が必要となる。但し、インデックス逆変換に必要な行判定ビットはキャッシュメモリ１０のタグやキャッシュライン番号から割り出せるため、行判定ビット用のメモリをキャッシュメモリ１０に追加する必要はない。
【００１４】
次に、実施の形態１の動作について説明する。
図１に示すように、アドレスを、タグ／インデックス／オフセットの順番に分割したとする。二次元データ１行分のデータを格納するのに必要なキャッシュラインの総数がキャッシュラインの個数の倍数である場合、図４のように、データを格納するキャッシュライン番号の順番が各行で同じになる。列方向（縦方向）に連続アクセスを行うと同じキャッシュラインに格納されるデータを連続してアクセスすることになる。特定のキャッシュラインに対するアクセスに偏りがあると、キャッシュの競合状態が発生し、キャッシュ性能が低下してしまう。
【００１５】
１行分のデータ容量が２のべき乗で表せる数である場合、アドレスビットの中に行毎に変化するビットがある。変化するビット、もしくは変化するビットとその上位ビットの連結ビットを行判定ビットとする。
例えば、１行分のデータ容量が５１２バイトである場合、図５に示すように、アドレスの下位から数えて１０ビット目が行ごとに変化する（尚、図５のアドレスはバイトアドレスである）。１０ビット目を行判定ビットとすると、行判定ビットは１行目では「０」、２行目では「１」、３行目では「０」、４行目では「１」、５行目では「０」となる。このように、行判定ビットを１ビットで構成すると、奇数行か偶数行のいずれかであるかを判定できる。
【００１６】
１０ビット目とその上位ビットの１１ビット目の連結ビットを行判定ビットとした場合、行判定ビットは１行目では「００」、２行目では「０１」、３行目では「１０」、４行目では「１１」、５行目では「００」となる。このように、行判定ビットを２ビットで構成すると、４行単位で行判定が行うことができる。つまり、行判定ビットをＮビットで構成すると、（２のＮ乗）行単位で行判定を行うことができる。
【００１７】
このような行判定ビットは自動的に検出することができる。一行目先頭のアドレスと二行目先頭のアドレスとを比較して、変化するビットが１ビットであれば（即ち、一行分のデータ容量が２のべき乗で表せる場合であれば）、行変化ビットを特定することができる。ここで、アドレスは、Ｙ座標＊横幅＋Ｘ座標で計算するため、二次元データの横幅さえ与えれば求めることができる。
【００１８】
行判定ビットを２ビットとし、図３に示したルックアップテーブル１を用いると、図６に示すようにインデックス番号が変換される。図３のインデックス変換ルックアップテーブルは、入力される元のインデックスが同じで行変換ビットが異なる場合に出力される変換後インデックスに重複がないように構築されている。従って、列方向（縦方向）に連続アクセスを行っても、同じキャッシュラインに格納されるデータを連続してアクセスすることにならない。
【００１９】
また、データを書き戻す場合は、エンコーダ３でキャッシュライン番号をエンコードして変換後インデックスを出力し（例えば、キャッシュライン番号が３であれば３を出力し）、この変換後インデックスと、キャッシュメモリ１０のタグに含まれる行判定ビットから逆ルックアップテーブル４でインデックスを復元する。
【００２０】
このように、二次元データ１行分のデータを格納するのに必要なキャッシュラインの総数がキャッシュラインの個数の倍数で、１行分のデータ容量が２のべき乗で表せる数である場合、アドレスの特定のビット（行判定ビット）によって行を判定できる。判定した行毎に異なったインデックス変換を実施する。キャッシュメモリ１０に何ら変更を加えずとも、列方向連続アクセス時のキャッシュラインに対するアクセスが偏りなく均一になる。
【００２１】
以上のように、実施の形態１のキャッシュメモリ制御装置によれば、二次元データのメモリアドレスによって指定されるインデックスを、メモリアドレスから抽出される二次元データの行に応じて異なるインデックスに変換するインデックス変換手段と、二次元データ１行分のデータを格納するのに必要なキャッシュラインの総数が、キャッシュラインの個数の倍数であった場合、インデックス変換手段で変換されたインデックスで格納するキャッシュラインを決定するキャッシュライン決定手段とを備えたので、二次元データに最適なキャッシュ格納ラインの決定を行うことができ、キャッシュ利用効率を向上させることができる。
【００２２】
また、実施の形態１のキャッシュメモリ制御装置によれば、キャッシュメモリのタグとインデックスから、元のインデックスを復元するインデックス逆変換手段を備えたので、キャッシュメモリに何ら変更を加えずとも元のインデックスを復元することができる。
【００２３】
実施の形態２．
実施の形態１では、二次元データ１行分のデータを格納するのに必要なキャッシュラインの総数がキャッシュラインの個数の倍数である場合について説明したが、実施の形態２は、二次元データ１行分のデータを格納するのに必要なキャッシュラインの総数がキャッシュラインの個数の倍数でない場合についての実施の形態である。図面上の構成は、図１と同様であるため、図１を援用して説明する。
【００２４】
実施の形態２では、二次元データ１行分のデータを格納するのに必要なキャッシュラインの総数が、キャッシュラインの個数の倍数でない場合、ルックアップテーブル１を無効化し、デコーダ２は、メモリアドレスで指定されたインデックスをキャッシュメモリ１０にアクセスするキャッシュラインとして決定するよう構成されている。また、データ書き戻しも同様に、キャッシュメモリ１０から求めたインデックスをメモリアドレスを求める場合の元のインデックスとする。尚、キャッシュヒット判定手段５におけるキャッシュヒット／ミスヒットの判定処理については実施の形態１と同様である。
【００２５】
次に、実施の形態２のキャッシュメモリ制御装置の動作について説明する。
図７は、二次元データ１行分のデータを格納するのに必要なキャッシュラインの総数がキャッシュラインの個数の倍数になっていない場合のメモリ構成図である。
図７に示すように、データを格納するキャッシュライン番号の順番が各行で同じになっていない。図７において、キャッシュライン番号は１行目では０から始まり、２行目では３から始まり、３行目では２から始まり、４行目では１から始まっている。列方向（縦方向）に連続アクセスを行っても、同じキャッシュラインに格納されるデータを連続してアクセスすることにならない。
【００２６】
この場合、ルックアップテーブル１は無効化し、デコーダ２は、アドレスから抜き出したインデックスビットをそのままデータを格納するキャッシュライン決定に用いる。尚、このようなルックアップテーブル１を無効化するか否かは、例えば、上記実施の形態１で説明した行判定ビットの検出ができなかった場合に無効化するようにしてもよい。また、これ以外の理由でルックアップテーブル１を無効化してもよい。データの書き戻しは、逆ルックアップテーブル４を無効化し、エンコーダ３で求めたインデックスを元のインデックスとして出力する。これ以外の動作は、実施の形態１と同じである。
【００２７】
このように、二次元データ１行分のデータ容量とキャッシュライン総数の関係により、インデックス変換が不要になった場合でも、ルックアップテーブル１を無効化できるようにすることで、従来のキャッシュ制御装置と同様の機構とすることができる。
【００２８】
以上のように、実施の形態２のキャッシュメモリ制御装置によれば、二次元データ１行分のデータを格納するのに必要なキャッシュラインの総数が、キャッシュラインの個数の倍数でない場合、インデックス変換手段を無効化し、キャッシュライン決定手段は、メモリアドレスで指定されたインデックスをキャッシュメモリにアクセスするキャッシュラインと決定するようにしたので、インデックス変換が不要な場合でも、二次元データに最適なキャッシュ格納ラインの決定を行うことができる。
【００２９】
実施の形態３．
実施の形態１では、１行分のデータ容量が２のべき乗で表せる数である場合について説明したが、実施の形態３では、１行分のデータ容量が２のべき乗で表せる数でない場合について説明する。尚、この実施の形態においても図面上の構成は図１と同様であるため、図１を援用して説明する。
図８は、１行分のデータ容量が２のべき乗で表せる数でない場合のメモリ構成図である。
実施の形態１と同様に、二次元データ１行分のデータを格納するのに必要なキャッシュラインの総数がキャッシュラインの個数の倍数になっているため、データを格納するキャッシュライン番号の順番が各行で同じになる。列方向（縦方向）に連続アクセスを行うと同じキャッシュラインに格納されるデータを連続してアクセスすることになる。
【００３０】
一方、実施の形態１とは異なり、１行分のデータ容量が２のべき乗で表せる数でないため、アドレスビットの中に行ごとに変化するビットが一つではない。例えば、１行分のデータ容量が６４０バイトである場合、図８に示すように、１行目から２行目に行が繰り上がるときに、アドレスの下位から数えて１０ビット目と８ビット目が変化する（図８のアドレスはバイトアドレスで表している）。
【００３１】
この場合、実施の形態１とは異なり、行を判定できるビットをアドレスから一意に抜き出すことはできない。図８において、１０ビット目を行判定ビットとすると、行判定ビットは１行目では「０」、２行目では「１」、３行目では「０」、４行目では「１」、５行目では「１」となる。よって、行判定ビットで奇数行か偶数行のいずれかであるかを判定することはできない。一方、８ビット目を行判定ビットとすると、行判定ビットは１行目では「０」、２行目では「１」、３行目では「０」、４行目では「１」、５行目では「０」となる。よって、行判定ビットで奇数行か偶数行のいずれかであるかを判定することができる。これにより、８ビット目を行判定ビットにすれば奇数行か偶数行を判定できることがわかる。行判定後のルックアップテーブル１〜逆ルックアップテーブル４における動作については実施の形態１と同様である。
【００３２】
以上のように、実施の形態３のキャッシュメモリ制御装置によれば、１行分のデータ容量に応じて、行を判定可能なアドレスビットを見つけ、それを行判定ビットに割り当てるようにしたので、１行分のデータ容量が２のべき乗で表せる数でない場合も、ルックアップテーブル１を用いて、列方向連続アクセス時のキャッシュラインに対するアクセスの偏りをなくすことができる。
【００３３】
実施の形態４．
実施の形態３では、１行分のデータ容量が２のべき乗で表せる数である場合に、行を判定できるビットをアドレスから抜き出すことができた場合についての実施の形態であるが、次に、実施の形態４として、行を判定できるビットをアドレスから抜き出すことができなかった場合について説明する。
【００３４】
１行分のデータ容量によっては、行を判定可能なアドレスビットがない場合がある。その場合は、行判定ビットをアドレスから抜き出すのではなく、行数を使用する。メモリアドレスを計算するときに行数を使用する。その行数の下位ビット（１ビット以上）を行判定ビットとする。
【００３５】
図９は、実施の形態４のキャッシュメモリ制御装置の構成図である。
図示のキャッシュメモリ制御装置は、ルックアップテーブル（インデックス変換手段）１ａ、デコーダ（キャッシュライン決定手段）２、エンコーダ３、逆ルックアップテーブル（インデックス逆変換手段）４ａ、キャッシュヒット判定手段５を備えている。ルックアップテーブル１ａおよび逆ルックアップテーブル４ａの基本的な構成は実施の形態１と同様であるが、ルックアップテーブル１ａは、行数の下位ビットとインデックスとに対応した変換値を持ち、逆ルックアップテーブル４ａは、この逆変換を行うよう構成されている。その他の構成は実施の形態１と同様である。
【００３６】
また、キャッシュメモリ１０ａには、キャッシュライン毎に行判定ビットを格納するためのメモリ領域が設けられている。これは実施の形態４の場合、インデックス逆変換に必要な行判定ビットをキャッシュメモリ１０ａのタグやキャッシュライン番号から割り出すことはできない。そこでキャッシュメモリ１０ａにメモリを追加して、インデックス逆変換に備えて行判定ビットを保存しておく必要があるからである。
【００３７】
このように構成された実施の形態４では、行数の下位ビットを行判定ビットとしてルックアップテーブル１ａで変換後インデックスを求め、デコーダ２は、この変換後インデックスでキャッシュメモリ１０ａのキャッシュラインを決定する。また、決定されたキャッシュラインにデータを書き込んだ場合、図示しないキャッシュメモリ書き込み手段は、行判定ビットをそのキャッシュラインに対応して書き込む。
【００３８】
キャッシュメモリ１０ａに格納したデータをメモリに書き戻す際には、タグとインデックスから元のアドレスを生成する必要がある。タグはキャッシュメモリ１０ａにそのまま保管されているのでそれを利用する。インデックスは、逆ルックアップテーブル４ａを用いてキャッシュライン番号を逆変換し、元のインデックスを求める必要がある。実施の形態４では、キャッシュメモリ１０ａに格納されている行判定ビットから読み出し、この行判定ビットを用いて逆ルックアップテーブル４ａで元のインデックスを復元する。
【００３９】
このように、行を判定できるビットをアドレスから抜き出すことができなかった場合でも、キャッシュメモリ１０ａに行判定ビット保存用のメモリを追加すれば、ルックアップテーブル１ａ及び逆ルックアップテーブル４ａを用いて、列方向連続アクセス時のキャッシュラインに対するアクセスの偏りをなくすことができる。
【００４０】
以上のように、実施の形態４のキャッシュメモリ制御装置によれば、二次元データのメモリアドレスによって指定されるインデックスを、二次元データの行に応じて異なるインデックスに変換するインデックス変換手段と、二次元データ１行分のデータを格納するのに必要なキャッシュラインの総数が、キャッシュラインの個数の倍数であった場合、インデックス変換手段で変換されたインデックスで格納するキャッシュラインを決定するキャッシュライン決定手段とを備え、かつ、二次元データをキャッシュラインに格納した場合は、キャッシュラインに対応して二次元データの行数を示す値をキャッシュメモリに格納するようにしたので、メモリアドレスから行判定ビットを特定できない場合でも、二次元データに最適なキャッシュ格納ラインの決定を行うことのでき、キャッシュ利用効率を向上させることができる。
【００４１】
また、実施の形態４のキャッシュメモリ制御装置によれば、キャッシュメモリのタグと、キャッシュメモリに記憶されている行数を示す値から、元のインデックスを復元するインデックス逆変換手段を備えたので、メモリアドレスから行判定ビットを特定できない場合でも、キャッシュメモリに行数を記憶させる構成を付加するだけで元のインデックスを復元することができる。
【００４２】
尚、実施の形態２は、実施の形態１に適用した場合を説明したが、実施の形態３、４に適用してもよい。即ち、実施の形態３、４においてもルックアップテーブル１，１ａや逆ルックアップテーブル４，４ａを無効化するようにしてもよい。
【図面の簡単な説明】
【００４３】
【図１】この発明の実施の形態１によるキャッシュメモリ制御装置を示す構成図である。
【図２】この発明の実施の形態１によるキャッシュメモリ制御装置に関するタグとインデックス生成の他の例を示す説明図である。
【図３】この発明の実施の形態１によるキャッシュメモリ制御装置のルックアップテーブルの説明図である。
【図４】この発明の実施の形態１によるキャッシュメモリ制御装置の二次元データの行とキャッシュラインとの関係を示す説明図である。
【図５】この発明の実施の形態１によるキャッシュメモリ制御装置の二次元データのアドレスとキャッシュラインとの関係を示す説明図である。
【図６】この発明の実施の形態１によるキャッシュメモリ制御装置のインデックス変換後のキャッシュラインへの格納状態を示す説明図である。
【図７】この発明の実施の形態２によるキャッシュメモリ制御装置の二次元データの行とキャッシュラインとの関係を示す説明図である。
【図８】この発明の実施の形態３によるキャッシュメモリ制御装置の二次元データのアドレスとキャッシュラインとの関係を示す説明図である。
【図９】この発明の実施の形態４によるキャッシュメモリ制御装置の構成図である。
【符号の説明】
【００４４】
１，１ａ  ルックアップテーブル（インデックス変換手段）、２  デコーダ（キャッシュライン決定手段）、３  エンコーダ、４，４ａ  逆ルックアップテーブル（インデックス逆変換手段）、１０，１０ａ  キャッシュメモリ。
【図１】
0005164505.tif 000002
【図２】
0005164505.tif 000003
【図３】
0005164505.tif 000004
【図４】
0005164505.tif 000005
【図５】
0005164505.tif 000006
【図６】
0005164505.tif 000007
【図７】
0005164505.tif 000008
【図８】
0005164505.tif 000009
【図９】
0005164505.tif 000010