(57)【特許請求の範囲】
【請求項１】
アクセス対象であるメモリ空間の任意の一部のデータとそのデータに対応するメモリアドレス情報とをキャッシュライン単位で格納する本体部を備え、前記メモリ空間は複数のメモリ領域に区分され、
外部からアクセス要求のあったメモリアドレスが前記複数のメモリ領域のいずれに対応しているかに基づいて、前記アクセス要求のあったメモリアドレスからキャッシュメモリアドレスを生成するアドレス生成部をさらに備え、
前記アドレス生成部は、
各前記メモリ領域のメモリアドレスの範囲とキャッシュラインの範囲との対応関係を表すアドレス変換情報を格納するアドレス変換情報格納部と、
前記アドレス変換情報に基づいて、前記アクセス要求のあったメモリアドレスからキャッシュメモリアドレスを生成するアドレス変換部とを含み、
前記キャッシュメモリアドレスに従って前記本体部に対する検索が行われることによって、前記メモリ領域ごとに異なる範囲のキャッシュラインが検索および入れ替えの対象となる、キャッシュメモリ。
【請求項２】
前記アドレス変換部は、前記アドレス変換情報に基づいて、前記アクセス要求のあったメモリアドレスの一部を変換するか又は前記アクセス要求のあったメモリアドレスに付加情報を追加することによって前記キャッシュメモリアドレスを生成する、請求項１に記載のキャッシュメモリ。
【請求項３】
前記キャッシュメモリのマッピング方式はセットアソシアティブ方式またはダイレクトマップ方式であり、
各メモリアドレスは、上位ビットのタグと中位ビットのインデックスと下位ビットのオフセットに区分され、
前記アドレス変換部は、前記アドレス変換情報に基づいて、アクセス要求のあったメモリアドレスのインデックスを変換することによって前記キャッシュメモリアドレスを生成する、請求項２に記載のキャッシュメモリ。
【請求項４】
前記キャッシュメモリのマッピング方式はフルアソシアティブ方式であり、
各メモリアドレスは、上位ビットのタグと下位ビットのオフセットに区分され、
前記アドレス変換部は、前記アドレス変換情報に基づいて、アクセス要求のあったメモリアドレスに付加情報を追加することによって前記キャッシュメモリアドレスを生成する、請求項２に記載のキャッシュメモリ。
【請求項５】
前記本体部は、
キャッシュライン単位でデータを格納するデータ格納部と、
前記データ格納部に格納されているデータに対応するメモリアドレスに含まれるタグ情報を格納するタグ格納部と、
前記キャッシュメモリアドレスのインデックスまたは前記付加情報に基づいて、１つ以上のキャッシュラインを選択するライン選択部と、
前記キャッシュメモリアドレスのタグと前記選択された１つ以上のキャッシュラインのタグとを比較することによってキャッシュヒットか否かを判定し、キャッシュヒットの場合に前記キャッシュメモリアドレスのオフセットに基づいてデータを選択する、タグ比較およびデータ選択部とを備える、請求項３または４に記載のキャッシュメモリ。
【請求項６】
アクセス対象であるメモリ空間を区分する複数のメモリ領域の各々とキャッシュラインの範囲との対応関係を表すアドレス変換情報を、アドレス変換情報格納部に格納するステップと、
前記複数のメモリ領域のうちで、アクセス要求のあったメモリアドレスに対応するメモリ領域を判定するステップと、
前記アドレス変換情報に基づいて、前記判定されたメモリ領域に対応するキャッシュメモリアドレスを生成するステップと、
前記キャッシュメモリアドレスに従って１つ以上のキャッシュラインを選択するステップと、
前記選択された１つ以上のキャッシュラインに格納されたメモリアドレス情報に基づいて、キャッシュヒットか否かを判定するステップとを備えた、キャッシュメモリの制御方法。
【請求項７】
前記キャッシュメモリアドレスを生成するステップは、前記アクセス要求のあったメモリアドレスの一部を変換するか又は前記アクセス要求のあったメモリアドレスに付加情報を追加することによって、前記キャッシュメモリアドレスを生成するステップを含む、請求項６に記載のキャッシュメモリの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この開示は、キャッシュメモリおよびその制御方法に関する。
【背景技術】
【０００２】
プロセッサの動作速度と比較してメモリアクセスの処理速度が遅いために、メモリアクセスの遅延時間はプロセッサの性能のボトルネックとなる。メモリアクセスの遅延時間を隠蔽するために、再利用性の高いデータを蓄積する、キャッシュメモリと呼ぶ小容量の高速メモリが用いられる。【０００３】
キャッシュメモリは、ラインと呼ぶ単位ごとにデータを格納する。メモリアドレスとキャッシュメモリの各ラインとを対応付けるマッピング方式は、ダイレクトマップ方式、セットアソシアティブ方式、フルアソシアティブ方式などに分類される。【０００４】
キャッシュミスしたとき、キャッシュラインに格納されたデータはメモリ装置のデータと入れ替えられる。この入替え方式として、最近最も使われていないラインに格納されたデータを最初に入れ替える方式であるＬＲＵ（Least  Recently  Used）と称するアルゴリズムが一般に用いられる。【０００５】
ところで、科学技術計算および画像処理などのアプリケーションでは、データは逐次処理されるために、データの再利用性は低い。ＬＲＵによるデータ入れ替えはデータの再利用性に関係なく行われるので、再利用性の高いデータのアクセス頻度より再利用性の低いデータのアクセス頻度が高い場合、再利用性の高いデータを格納しているキャッシュラインが再利用性の低いデータで入れ替えられてしまう場合がある。この結果、キャッシュ効率が低下するという問題が生じる。【０００６】
非特許文献１（浅見他４名、SACSIS2013論文集、pp.65-69）は、キャッシュ・パーティショニングを利用してキャッシュ効率を改善する手法を提案している。具体的には、メモリアクセス命令群をまとめた命令グループという概念を導入することにより、命令グループごとに利用できるキャッシュ領域が制限される。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】浅見他４名、「命令グループごとのキャッシュ・パーティショニング」、一般社団法人情報処理学会、先進的計算基盤システムシンポジウム（SACSIS2013）論文集、2013年5月22日、pp.65-69
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本開示は、再利用性が高いデータを格納しているキャッシュラインが再利用性の低いデータによって入れ替えられることを抑制することが可能なキャッシュメモリおよびその制御方法を提供することを目的とする。上記の非特許文献１と異なり、本開示のキャッシュメモリの制御方法は命令グループという概念を利用したものでない。したがって、非特許文献１の技術が適用困難な場合であっても本開示の技術は適用可能である。
【課題を解決するための手段】
【０００９】
一実施形態によるキャッシュメモリは本体部とアドレス生成部を備える。本体部は、アクセス対象であるメモリ空間の任意の一部のデータとそのデータに対応するメモリアドレス情報とをキャッシュライン単位で格納する。メモリ空間は複数のメモリ領域に区分される。アドレス生成部は、外部からアクセス要求のあったメモリアドレスが上記の複数のメモリ領域のいずれに対応しているかに基づいて、アクセス要求のあったメモリアドレスからキャッシュメモリアドレスを生成する。このキャッシュメモリアドレスに従って本体部に対する検索が行われることによって、メモリ領域ごとに異なる範囲のキャッシュラインが検索および入れ替えの対象となる。
【発明の効果】
【００１０】
上記の実施形態によれば、再利用性が高いデータを格納するメモリ領域を他のデータを格納するメモリ領域と分離することによって、再利用性の高いデータによって使用されるキャッシュラインも他のキャッシュラインと分離することができる。この結果、再利用性が高いデータを格納しているキャッシュラインが再利用性の低いデータによって入れ替えられることを抑制することができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１のキャッシュメモリが実装された情報処理装置の構成の一例を示すブロック図である。
【図２】実施の形態１によるキャッシュメモリの構成の一例を示すブロック図である。
【図３】メモリ空間の複数のメモリ領域とキャッシュラインとの対応付けについて説明するための図である。
【図４】アドレス変換情報について説明するための図である。
【図５】図３に対応するアドレス変換情報の具体例を示す図である。
【図６】図３の例において、入力されたメモリアドレスのタグ、インデックス、およびオフセットのビット長の判定結果を表形式で示す図である。
【図７】図３の例において、入力されたメモリアドレスのインデックス部分の変換について説明するための図である。
【図８】図２のキャッシュメモリ動作の動作を示すフローチャートである。
【図９】実施の形態２によるキャッシュメモリの構成の一例を示すブロック図である。
【図１０】図９のキャッシュメモリの動作を示すフローチャートである。
【図１１】実施の形態３によるキャッシュメモリの構成の一例を示すブロック図である。
【図１２】図３の例において、入力されたメモリアドレスのタグおよびオフセットのビット長を示す図である。
【図１３】図３の例において、入力されたメモリアドレスに付加される付加情報について説明するための図である。
【図１４】図１１のキャッシュメモリの動作を示すフローチャートである。
【図１５】フィルタ処理の動作を説明するための図である。
【発明を実施するための形態】
【００１２】
以下、各実施の形態について図面を参照して詳しく説明する。なお、同一または相当する部分には同一の参照符号を付して、その説明を繰返さない。
【００１３】
［キャッシュメモリのマッピング方式について］
最初に、キャッシュメモリのマッピング方式について簡単に説明する。代表的なマッピング方式には、フルアソシアティブ方式とダイレクトマップ方式とセットアソシアティブ方式とがある。
【００１４】
以下の説明では、メモリアドレスの長さを１６ビットとし、各メモリアドレスに１バイトのデータが対応している、すなわち、バイトアドレッシング（byte  addressing）がサポートされているとする。キャッシュメモリのライン数を４ビット（＝１６個）とし、ラインサイズを４バイトとする。すなわち、各ラインには４個（＝２ビット）のメモリアドレスが対応している。なお、上記の数値例等は一例であって、これに限定されるものではない。バイトアドレッシングに代えてワードアドレッシング（word  addressing）がサポートされていても構わない。
【００１５】
まず、フルアソシアティブ方式では、任意のメモリアドレスのデータが全キャッシュラインに格納可能である。具体的に上記の数値例の場合、各メモリアドレスは、上位の１４ビットからなるタグ（tag）と下位の２ビットからなるオフセット（offset）とに区分される。キャッシュメモリの各ラインには、メモリアドレスのうちタグを格納するタグ格納部と、タグに対応する４バイトのラインデータを格納するデータ格納部とが設けられる。２ビットのビット長のオフセットは、ラインデータのうち検索対象のメモリアドレスに対応するデータを指定するために用いられる。
【００１６】
上記のフルアソシアティブ方式の場合には、キャッシュメモリ内で空いている任意のラインにデータを格納することができるので、ヒット率は他のマッピング方式に比べて高くなる。しかしながら、データ読み出しの際には、メモリアドレスのタグの部分と全てのキャッシュラインのタグ格納部とを比較しなければならない。タグの比較を高速に行うためには連想メモリ（ＣＡＭ：Content  Addressable  Memory）を実装する必要があり、回路規模が大きくなる。また、キャッスミスの場合には、最近最も使われていない（ＬＲＵの）ラインデータが入れ替えられる。
【００１７】
次に、ダイレクトマップ方式は、メモリアドレスごとにデータが格納可能なキャッシュラインを１箇所に限定したものである。具体的に上記の数値例の場合、各メモリアドレスは、上位の１０ビットからなるタグと、中位の４ビットからなるインデックス（index）と、下位の２ビットからなるオフセットに区分される。４ビットのビット長のインデックスによってデータが格納可能なキャッシュラインが指定される。キャッシュメモリには、メモリアドレスのタグを格納するタグ格納部と、４バイトのラインデータを格納するデータ格納部とが設けられる。
【００１８】
上記のダイレクトマップ方式のキャッシュメモリにおいてデータ読み出しの際には、メモリアドレスのインデックス部分によって特定された１箇所キャッシュラインのタグ格納部とメモリアドレスのタグ部分とが比較される。したがって、データ比較は１回のみでよいが、ヒット率が低く、頻繁にキャッシュラインの入れ替えが発生するという問題がある。
【００１９】
セットアソシアティブ方式は、フルアソシアティブ方式とダイレクトマップ方式との中間の方式である。ダイレクトマップ方式との違いは、インデックスごとに複数のキャッシュラインが設けられている点にある。各インデックスごとのキャッシュライン数をウェイ（way）と称する。たとえば、ｎウェイの場合には、各アドレスのデータは、ｎ個のキャッシュラインに格納可能である。
【００２０】
上記のセットアソシアティブ方式のキャッシュメモリにおいてデータ読み出しの際には、メモリアドレスのインデックス部分に対応するｎ個のウェイのタグ格納部とメモリアドレスのタグとが比較される。したがって、データ比較は最大でｎ回である。また、キャッシュミスの場合には、メモリアドレスのインデックス部分に対応するｎ個のウェイのうち、ＬＲＵのウェイのデータが入れ替えられる。
【００２１】
［本開示のキャッシュメモリの制御方法の特徴］
本開示のキャッシュメモリでは、アクセス対象であるメモリ装置４のメモリ空間が複数の領域に区分される。そして、メモリ空間に設けられた領域ごとに使用するキャッシュメモリの領域（具体的には、キャッシュラインを識別するインデックス）が異なるようにキャッシュメモリが制御される。これにより、再利用性の高いデータが格納されるキャッシュメモリの領域と再利用性の低いデータが格納されるキャッシュメモリの領域とを分離することができる。結果として、再利用性が高いけれどもアクセス頻度の低いデータを格納しているキャッシュラインが再利用性の低いデータによって入れ替えられることを防止できるので、キャッシュ効率を高めることができる。
【００２２】
上記のキャッシュメモリの制御方法は、セットアソシアティブ方式、ダイレクトマップ方式、およびフルアソシアティブ方式のいずれにも適用可能である。以下、実施の形態１では、セットアソシアティブ方式のキャッシュメモリに本開示の制御方法を適用した例について説明する。実施の形態２では、ダイレクトマップ方式のキャッシュメモリに本開示の制御方法を適用した例について説明し、実施の形態３では、フルアソシアティブ方式のキャッシュメモリンに本開示の制御方法を適用した例について説明する。
【００２３】
実施の形態１．
［情報処理装置の一例］
図１は、実施の形態１のキャッシュメモリが実装された情報処理装置の構成の一例を示すブロック図である。図１の情報処理装置の構成は、実施の形態２および実施の形態３にも適用可能である。図１を参照して、情報処理装置は、演算装置１と、キャッシュメモリ２と、メモリアクセス制御部３と、メモリ装置４とを備える。
【００２４】
演算装置１は、プログラムされた命令を実行するプロセッサの一部であってもよいし、ＡＳＩＣ（Application  Specific  Integrated  Circuit）またはＦＰＧＡ（Field  Programmable  Gate  Array）によって構築された回路であってもよい。
【００２５】
メモリ装置４は、演算装置１による処理のためのデータを保持する。メモリ装置４は、マイクロコンピュータのメインメモリに相当するものである。メモリ装置４は、たとえば、汎用的なＤＲＡＭ（Dynamic  Random  Access  Memory）によって構成される。
【００２６】
キャッシュメモリ２は、演算装置１に比べて低速なメモリ装置４へのアクセスレイテンシを隠蔽するために設けられた高速メモリである。キャッシュメモリ２は、たとえば、ＳＲＡＭ（Static  Random  Access  Memory）によって構成される。
【００２７】
キャッシュメモリ２は、あるメモリアドレスに対するアクセス要求を演算装置１から受けると、当該メモリアドレスのデータがキャッシュメモリ２に配置されていれば、キャッシュメモリ２は演算装置１にアクセス応答を返す。一方、当該メモリアドレスのデータがキャッシュメモリ２に配置されていない場合には、キャッシュメモリ２は、メモリ装置４に対してアクセス要求を発行する。
【００２８】
メモリアクセス制御部３は、キャッシュメモリ２からアクセス要求が発行された場合、当該アクセス要求をメモリ装置４のプロトコルに従ったコマンドに変換し、変換されたコマンドをメモリ装置４に出力する。これによって、メモリ装置４に対してデータ取得等を実行し、実行結果に基づいてキャッシュメモリ２にデータ等を出力する。
【００２９】
キャッシュメモリ２は、メモリアクセス制御部３を介してメモリ装置４から、キャッシュミスとなったメモリアドレスに対応するデータを取得すると、取得したデータによってＬＲＵのキャッシュラインのデータおよびメモリアドレス情報のリプレースを行う。このとき、リプレースされる前のデータをメモリ装置４に書込む、いわゆる、ライトバック動作が行われる。キャッシュメモリ２は、メモリ装置４から取得したデータを演算装置１に出力する。
【００３０】
なお、図１の情報処理装置の構成は一例であって、この構成に限定されるものでない。たとえば、演算装置１、キャッシュメモリ２、メモリアクセス制御部３、およびメモリ装置４は、それぞれ複数個設けられていてもよい。キャッシュメモリ２は階層的に構成されていてもよい。
【００３１】
［キャッシュメモリの概略構成］
図２は、実施の形態１によるキャッシュメモリの構成の一例を示すブロック図である。図２のキャッシュメモリ２のマッピング方式は、セットアソシアティブ方式である。インデックスを表す番号を０〜ｍとし、各インデックスに対応するウェイを表す番号を０〜ｎとしている。図２では、主として、演算装置１が発行した命令が読出し命令の場合における、データの流れを矢印で示している。
【００３２】
図２を参照して、キャッシュメモリ２は、アドレス生成部１０と本体部２０とを備える。本体部２０は、アクセス対象であるメモリ装置４のメモリ空間の任意の一部のデータとそのデータに対応するメモリアドレス情報とをキャッシュライン単位で格納する。ここで、メモリ空間は複数のメモリ領域に区分され、各メモリ領域が異なる範囲のキャッシュラインに対応している。
【００３３】
アドレス生成部１０は、図１の演算装置１等からアクセス要求のあったメモリアドレスＭＡからキャッシュメモリアドレスＣＭＡを生成する。生成されたキャッシュメモリアドレスＣＭＡに従って本体部２０に対する検索が行われることによって、メモリ領域ごとに異なる範囲のキャッシュラインが検索および入れ替えの対象となる。
【００３４】
より詳細には、アドレス生成部１０は、アドレス変換情報格納部１４と、アドレス変換部１２とを備える。アドレス変換部１２は、アドレス変換情報格納部１４に格納されているアドレス変換情報を参照することにより、入力されたメモリアドレスＭＡからキャッシュメモリアドレスＣＭＡを生成する。アドレス変換情報は、演算装置１等によって書き換え可能である。
【００３５】
本体部２０は、タグ格納部２４と、データ格納部２６と、ＬＲＵフラグ格納部２８と、ライン選択部２２と、選択タグ格納部３０と、選択データ格納部３２と、タグ比較およびデータ選択部３４とを備える。
【００３６】
以下、上記の各要素の動作について説明する。
［アドレス変換情報格納部］
図３は、メモリ空間の複数のメモリ領域とキャッシュラインとの対応付けについて説明するための図である。なお、一例として、キャッシュメモリ２のインデックス数を１６（すなわち、図２でｍ＝１５）とする。セットアソシアティブ方式の場合、各インデックスごとに複数のウェイ（図２の例では、ｎ＋１個のウェイｗａｙ（０）〜ｗａｙ（ｎ））が設けられている。
【００３７】
まず、アクセス対象であるメモリ装置４のメモリ空間は複数のメモリ領域に区分される。図３の具体例では、メモリ装置４のメモリ空間は、メモリ領域Ｒ１とメモリ領域Ｒ２とその他のメモリ領域とに区分される。
【００３８】
キャッシュメモリ２に関しては、上記の各メモリ領域に対して異なる範囲のキャッシュラインが対応する。図３の具体例では、メモリ領域Ｒ１はキャッシュメモリのインデックス８〜１１に対応する。たとえば、メモリ領域Ｒ１に対応するメモリアドレスＭＡに対してアクセス要求があった場合には、キャッシュメモリのインデックス８〜１１のうちで該当するインデックスを有するキャッシュラインが検索対象になる。同様に、メモリ領域Ｒ２は、キャッシュメモリのインデックス１２〜１５に対応する。その他のメモリ領域は、キャッシュメモリのインデックス０〜７に対応する。
【００３９】
上記において、たとえば、再利用性が高いけれどもアクセス頻度の低いデータをメモリ装置４のメモリ領域Ｒ１，Ｒ２に格納し、その他の再利用性の低いデータをその他のメモリ領域に格納するようにする。そうすると、キャッシュメモリの使用領域もデータの再利用性に応じて分離されるので、キャッシュ効率を高めることができる。
【００４０】
図４は、アドレス変換情報について説明するための図である。図４を参照して、アドレス変換情報は、図３で説明したメモリ領域ごとに図１の演算装置１等によって生成され、図２のアドレス変換情報格納部１４に格納される。具体的に、アドレス変換情報は、メモリ領域の開始アドレスと、メモリ領域のメモリサイズと、対応するキャッシュラインの開始インデックスと、対応するキャッシュラインの全インデックス数とを含む。実行するアプリケーションに応じて上記したアドレス変換情報（すなわち、キャッシュメモリの割り当て構成）が異なる場合には、演算装置１は、実行するアプリケーションに応じてアドレス変換情報を予め書き換える。
【００４１】
図５は、図３に対応するアドレス変換情報の具体例を示す図である。図３および図５を参照して、メモリ領域Ｒ１に対応するキャッシュラインの開始インデックスは８であり、対応する全インデックス数は４である。メモリ領域Ｒ２に対応するキャッシュラインの開始インデックスは１２であり、対応する全インデックス数は４である。
【００４２】
図５では、領域Ｒ１および領域Ｒ２以外を、メモリ全体を表すデフォルト領域としている。デフォルト領域に対応するキャッシュラインの開始インデックスは０であり、対応する全インデックス数は８である。
【００４３】
［アドレス変換部］
図２を参照して、アドレス変換部１２は、アドレス変換情報格納部１４に格納されたアドレス変換情報を参照することにより、入力されたメモリアドレスＭＡからキャッシュメモリアドレスＣＭＡを生成する。
【００４４】
ここで、セットアソシアティブ方式の場合、メモリアドレスＭＡおよびキャッシュメモリアドレスＣＭＡは、上位ビットのタグと中位ビットのインデックスと下位ビットのオフセットとによって構成される。オフセットのビット長は、キャッシュメモリのラインサイズによって決まる。以下の説明では、一例として、バイトアドレッシングの場合においてラインサイズを４バイトであるとする。この場合、オフセットのビット長は２ビットである。また、以下の説明では、メモリアドレスＭＡの長さを１６ビットとし、キャッシュメモリ全体でのインデックス数を１６個（＝４ビット）とする。
【００４５】
以下、図３および図５に示す具体例の場合ついてアドレス変換部の動作を説明する。アドレス変換部１２は以下の手順１〜３に従って入力されたメモリアドレスＭＡからキャッシュメモリアドレスＣＭＡを生成する。
【００４６】
（手順１）
アドレス変換部１２は、アドレス変換情報格納部１４に格納されたアドレス変換情報の各メモリ領域の開始アドレスおよびメモリサイズを参照することによって、入力されたメモリアドレスＭＡが対応するメモリ領域を判定する。図３の例では、メモリ領域Ｒ１、メモリ領域Ｒ２の順に判定し、該当しない場合はメモリ全体を示すデフォルト領域に対応すると判定される。
【００４７】
（手順２）
次に、アドレス変換部１２は、手順１で判定されたメモリ領域に対応するキャッシュラインの全インデックス数をアドレス変換情報格納部１４から参照することにより、入力されたメモリアドレスＭＡのタグのビット長およびインデックスのビット長を判定する。なお、オフセットのビット長は２ビットであるとし、メモリアドレスＭＡのビット長は１６ビットであるとしている。オフセットのビット長はラインサイズに応じて決まる固定値であり、メモリアドレスＭＡのビット長はハードウェアの制約等によって決まる固定値である。
【００４８】
図６は、図３の例において、入力されたメモリアドレスＭＡのタグ、インデックス、およびオフセットのビット長の判定結果を表形式で示す図である。
【００４９】
図６と、アドレス変換情報を示す図５とを参照して、メモリ領域Ｒ１の場合、対応するキャッシュラインの全インデックス数は４（＝２ビット）であるので、タグのビット長が１２ビット（すなわち、１６−２−２＝１２）になり、インデックスのビット長が２ビットになり、オフセットのビット長が２ビットになる。
【００５０】
メモリ領域Ｒ２の場合も同様に、対応するキャッシュラインの全インデックス数は４（＝２ビット）であるので、タグのビット長が１２ビットになり、インデックスのビット長が２ビットになり、オフセットのビット長が２ビットになる。
【００５１】
デフォルト領域の場合、対応するキャッシュラインの全インデックス数は８（＝３ビット）であるので、タグのビット長が１１ビット（すなわち、１６−３−２＝１１）になり、インデックスのビット長が３ビットになり、オフセットのビット長が２ビットになる。
【００５２】
（手順３）
次に、アドレス変換部１２は、手順１で判定されたメモリ領域に対応するキャッシュラインの開始インデックスをアドレス変換情報格納部１４から参照することにより、キャッシュメモリアドレスＣＭＡのタグ、インデックス、およびオフセットを生成する。具体的に、キャッシュメモリアドレスＣＭＡのタグの値およびオフセットの値は入力されたメモリアドレスＭＡのものと同じであるが、キャッシュメモリアドレスＣＭＡのインデックスの値は入力されたメモリアドレスＭＡのインデックスの値から変換される。なお、キャッシュメモリアドレスＣＭＡのインデックスのビット長は、キャッシュメモリ全体のインデックス数である４ビット（＝１６個）に等しくなる。
【００５３】
図７は、図３の例において、入力されたメモリアドレスＭＡのインデックス部分の変換について説明するための図である。
【００５４】
図７（Ａ）と、アドレス変換情報を示す図５とを参照して、メモリ領域Ｒ１の場合、対応するキャッシュラインの開始インデックスは８であるので、入力されたメモリアドレスＭＡの２ビットのインデックス０〜３（２進数で“００”〜“１１”）がそれぞれ４ビットのインデックス８〜１１（２進数で“１０００”〜“１０１１”）に変換される。すなわち、入力されたメモリアドレスＭＡのインデックスに８（２進数で“１０００”）が加算されることによって、キャッシュメモリアドレスＣＭＡのインデックスが生成される。
【００５５】
メモリ領域Ｒ２の場合、対応するキャッシュラインの開始インデックスは１２であるので、入力されたメモリアドレスＭＡの２ビットのインデックス０〜３（２進数で“００”〜“１１”）がそれぞれ４ビットのインデックス１２〜１５（２進数で“１１００”〜“１１１１”）に変換される。すなわち、入力されたメモリアドレスＭＡのインデックスに１２（２進数で“１１００”）が加算されることによって、キャッシュメモリアドレスＣＭＡのインデックスが生成される。
【００５６】
デフォルト領域の場合、対応するキャッシュラインの開始インデックスは０であるので、入力されたメモリアドレスＭＡの３ビットのインデックス０〜７（２進数で“０００”〜“１１１”）がそれぞれ４ビットのインデックス０〜７（２進数で“００００”〜“０１１１”）に変換される。すなわち、キャッシュメモリアドレスＣＭＡのインデックスの値は、入力されたメモリアドレスＭＡのインデックスの値に等しい。
【００５７】
図７（Ｂ）を参照して、本実施の形態のキャッシュメモリアドレスＣＭＡのビット長に関して、タグ部分のビット長は１４ビットに設定され、インデックス部分のビット長は４ビットに設定され、オフセット部分のビット長は２ビットに設定される。オフセット部分のビット長は、ラインサイズに応じて決まる固定値である。タグ部分のビット長およびインデックス部分のビット長は、キャッシュメモリ２の全インデックス数を変更した場合を考慮して、取り得る最大値に設定している。
【００５８】
たとえば、キャッシュメモリサイズに応じた全インデックス数の最大値を１６（４ビット）に仮定した場合、キャッシュメモリ２の全インデックス数は、１６、８、４、２、１の各値をとり得る。全インデックス数が１６の場合、インデックス部分のビット数は４ビットであり、タグ部分のビット数は１０ビットである。同様に、全インデックス数が８、４、２、１の場合、インデックス部分のビット数はそれぞれ３、２、１、０ビットであり、タグ部分のビット数はそれぞれ１１、１２、１３、１４ビットである。したがって、インデックス部分のビット数の最大値は４ビットであり、タグ部分のビット数の最大値は１４ビットである。
【００５９】
なお、図６に示すメモリアドレスＭＡをキャッシュメモリアドレスＣＭＡに変換する場合、デフォルト領域に対応するタグ部分のビット長は、先頭に２進数で“０００”が追加されることによって１１ビットから１４ビットに変換される。領域Ｒ１，Ｒ２に対応するタグ部分のビット長は、先頭に２進数で“００”が追加されることによって１２ビットから１４ビットに変換される。
【００６０】
［タグ格納部］
タグ格納部２４はタグと有効フラグとを格納する。有効フラグは各ラインが有効か否かを示すものである。初期状態では有効フラグは無効になっており、メモリ装置からデータおよびメモリアドレス情報が書き込まれると有効フラグが有効に書き換えられる。
【００６１】
［データ格納部］
データ格納部２６は、キャッシュラインごとに、タグおよびインデックスに対応する複数のデータを格納する。具体的には、オフセットのビット数に対応する個数分のデータがデータ格納部２６に格納される。
【００６２】
［ＬＲＵフラグ格納部］
ＬＲＵフラグ格納部２８は、キャッシュラインごとにアクセスされた順序を表すＬＲＵフラグを格納する。
【００６３】
［ライン選択部］
ライン選択部２２は、キャッシュメモリアドレスＣＭＡに含まれるインデックスが示す複数のキャッシュライン、すなわち、ｍ＋１個のウェイｗａｙ（０）〜ｗａｙ（ｎ）を選択する。選択された複数のラインのタグおよび有効フラグは、選択タグ格納部３０に格納される。また、選択された複数のラインのデータは、選択データ格納部３２に格納される。
【００６４】
［タグ比較およびデータ選択部］
タグ比較およびデータ選択部３４は、キャッシュメモリアドレスＣＭＡに含まれるタグと選択タグ格納部３０に格納されている複数の選択ラインのタグとを比較する。この結果、キャッシュヒットの場合（すなわち、有効フラグが有効でありかつタグが一致するラインがあった場合）に、タグ比較およびデータ選択部３４は、キャッシュメモリアドレスＣＭＡに含まれるオフセットに基づいてデータを選択する。演算装置１が発行した命令が読出し命令の場合には、タグ比較およびデータ選択部３４は、オフセットに基づいて選択されたデータを演算装置１に出力し、ＬＲＵフラグを更新する。
【００６５】
一方、演算装置１が発行した命令が書き込み命令の場合でありかつキャッシュヒットの場合には、タグ比較およびデータ選択部３４は、データ格納部２６に格納されているキャッシュヒットしたラインデータのうち、入力されたメモリアドレスＭＡのオフセット（キャッシュメモリアドレスＣＭＡのオフセットと同じ）に対応するデータを書き換える。さらに、タグ比較およびデータ選択部３４は、ＬＲＵフラグを更新する。
【００６６】
上記の比較の結果、タグが一致するラインが無く（すなわち、キャッシュミスであり）、有効フラグが無効のキャッシュラインがある場合、タグ比較およびデータ選択部３４は、入力されたメモリアドレスＭＡに対応するラインデータをメモリ装置４から読出し、タグ格納部２４にタグおよび有効フラグを格納し、データ格納部２６に読出したデータを格納し、ＬＲＵフラグ格納部２８の該当するラインのＬＲＵフラグを更新する。タグ比較およびデータ選択部３４は、読出し命令の場合に、読み出したデータを演算装置１に出力する。一方、タグ比較およびデータ選択部３４は、書き込み命令の場合に、データ格納部２６に新たに格納されたラインデータにおいて、入力されたメモリアドレスＭＡのオフセット(キャッシュメモリアドレスＣＭＡのオフセットと同じ）に対応するデータを書き換える。
【００６７】
上記の比較の結果、タグの一致するラインが無く、有効フラグが無効のキャッシュラインが無い場合（すなわち、有効フラグが全て有効の場合）、タグ比較およびデータ選択部３４は、最近最も使われていない（すなわち、ＬＲＵの）ラインを選択し、このＬＲＵのラインデータをメモリ装置４に書込む（すなわち、ライトバックを行う）。次に、タグ比較およびデータ選択部３４は、入力されたメモリアドレスＭＡに対応するラインデータをメモリ装置４から読出し、タグ格納部２４の該当するＬＲＵラインにタグおよび有効フラグを格納し、データ格納部２６の該当するＬＲＵラインに読み出したデータを格納し、ＬＲＵフラグ格納部２８のＬＲＵフラグを更新する。タグ比較およびデータ選択部３４は、読出し命令の場合に、入力されたメモリアドレスＭＡのオフセットに対応するデータを演算装置１に出力する。一方、タグ比較およびデータ選択部３４は、書き込み命令の場合に、データ格納部２６に新たに格納されたラインデータにおいて、入力されたメモリアドレスＭＡのオフセット（キャッシュメモリアドレスＣＭＡのオフセットと同じ）に対応するデータを書き換える。
【００６８】
［キャッシュメモリの動作のまとめ］
図８は、図２のキャッシュメモリ動作の動作を示すフローチャートである。以下、図２および図８を主として参照してこれまでの説明を総括する。
【００６９】
ステップＳ１００において、アドレス変換部１２にアクセス対象のメモリアドレスＭＡが入力される。次のステップＳ１０５において、アドレス変換部１２は、アドレス変換情報に基づいて、入力されたメモリアドレスＭＡに対応するメモリ領域を判定する。次のステップＳ１１０において、アドレス変換部１２は、アドレス変換情報に基づいて、入力されたメモリアドレスＭＡのタグ、インデックス、およびオフセットの各々のビット数を決定した上で、対応のメモリ領域のアドレス変換情報に基づいてインデックス部分を変換する。これによって、キャッシュメモリアドレスＣＭＡが生成される。
【００７０】
次のステップＳ１１５において、ライン選択部２２は、キャッシュメモリアドレスＣＭＡに含まれるインデックスが示す複数のキャッシュライン、すなわち、ｍ＋１個のウェイｗａｙ（０）〜ｗａｙ（ｎ）を選択する。次のステップＳ１２０において、タグ比較およびデータ選択部３４は、キャッシュメモリアドレスＣＭＡに含まれるタグと各選択ラインのタグとを比較する。
【００７１】
上記の比較の結果、有効フラグが有効でありかつタグが一致している選択ラインがある場合には（ステップＳ１２５でＹＥＳ）、次のステップＳ１３０においてタグ比較およびデータ選択部３４は、キャッシュメモリアドレスＣＭＡに含まれるオフセットに基づいてデータを選択し、選択したデータに対して演算装置１からのアクセス要求に応じた処理を行う。さらに、ステップＳ１３５において該当するラインのＬＲＵフラグが更新される。
【００７２】
上記の比較の結果、タグが一致しているラインはないが、無効のラインがある場合には（ステップＳ１２５でＮＯ、ステップＳ１４０でＹＥＳ）、次のステップＳ１４５においてタグ比較およびデータ選択部３４は、入力されたメモリアドレスＭＡに対応するラインデータをメモリ装置４から読み出す。次のステップＳ１５０においてタグ比較およびデータ選択部３４は、当該無効ラインに対してタグおよび読出したデータを格納し、有効フラグを有効にし、演算装置１からのアクセス要求に応じた処理を行う。さらにステップＳ１５５においてタグ比較およびデータ選択部３４は、該当するキャッシュラインのＬＲＵフラグの更新を行う。
【００７３】
上記の比較の結果、タグが一致しているラインがなく、無効のラインもない場合には（ステップＳ１２５でＮＯ、ステップＳ１４０でＮＯ）、次のステップＳ１６０においてタグ比較およびデータ選択部３４は、選択ラインの中で最近最も使われていないラインを選択し、当該ＬＲＵラインのラインデータをメモリ装置にライトバックする。次のステップＳ１６５においてタグ比較およびデータ選択部３４は、入力されたメモリアドレスＭＡに対応するラインデータをメモリ装置４から読み出す。次のステップＳ１７０においてタグ比較およびデータ選択部３４は、当該ＬＲＵラインに対してタグおよび読出したデータを格納し、有効フラグを有効にし、演算装置１からのアクセス要求に応じた処理を行う。さらにステップＳ１７５においてタグ比較およびデータ選択部３４は、該当するキャッシュラインのＬＲＵフラグの更新を行う。
【００７４】
［効果］
上記の構成のキャッシュメモリ２によれば、アプリケーションが扱うデータの種類に応じてキャッシュメモリにおいて使用するラインを分離することができる。これにより、再利用性の高いデータを格納するキャッシュメモリの領域と再利用性の低いデータを格納するキャッシュメモリの領域を分離することができるので、再利用性の高いデータを格納しているキャッシュラインが再利用性の低いデータによって置き替えられるのを抑制することがでる。この結果、キャッシュ効率を向上させることができる。
【００７５】
実施の形態２．
実施の形態２では、キャッシュメモリのマッピング方式がダイレクトマップ方式である場合について説明する。
【００７６】
図９は、実施の形態２によるキャッシュメモリの構成の一例を示すブロック図である。図９のキャッシュメモリ２Ａが図２のキャッシュメモリ２と異なる点は、本体部２０Ａの構成である。具体的に、本体部２０Ａのキャッシュラインには各インデックスに対応するウェイが設けられておらず、さらに本体部２０ＡはＬＲＵフラグ格納部２８を有していない。図９のキャッシュメモリ２Ａのその他の点は、図２のキャッシュメモリ２と同様であるので同一または相当する部分には同一の参照符号を付して説明を繰返さない。
【００７７】
図１０は、図９のキャッシュメモリの動作を示すフローチャートである。図９のフローチャートにおいて、実施の形態１の場合のフローチャートと同一または相当するステップには同一の参照符号を付して説明を繰返さない。
【００７８】
図１０を参照して、ステップＳ１１０において、キャッシュメモリアドレスＣＭＡが生成される。このステップＳ１１０までの各ステップについては、本実施の形態のダイレクトマップ方式のキャッシュメモリ２Ａの場合とセットアソシアティブ方式のキャッシュメモリ２の場合とで違いはない。
【００７９】
次のステップＳ１１５において、ライン選択部２２は、キャッシュメモリアドレスＣＭＡに含まれるインデックスが示すラインを選択する。ダイレクトマップ方式のキャッシュメモリ２Ａの場合には、このキャッシュラインは１個に限られる。次のステップＳ１２０において、タグ比較およびデータ選択部３４は、キャッシュメモリアドレスＣＭＡに含まれるタグと選択ラインのタグとを比較する。
【００８０】
上記の比較の結果、有効フラグが有効でありかつタグが一致している場合には（ステップＳ１２５でＹＥＳ）、次のステップＳ１３０においてタグ比較およびデータ選択部３４は、キャッシュメモリアドレスＣＭＡに含まれるオフセットに基づいてデータを選択し、選択したデータに対して演算装置１からのアクセス要求に応じた処理を行う。
【００８１】
上記の比較の結果、タグが一致しておらず、選択ラインの有効フラグが無効の場合には（ステップＳ１２５でＮＯ、ステップＳ１４０でＹＥＳ）、次のステップＳ１４５においてタグ比較およびデータ選択部３４は、入力されたメモリアドレスＭＡに対応するラインデータをメモリ装置４から読み出す。次のステップＳ１５０においてタグ比較およびデータ選択部３４は、当該無効ラインに対してタグおよび読出したデータを格納し、有効フラグを有効にし、演算装置１からのアクセス要求に応じた処理を行う。
【００８２】
上記の比較の結果、タグが一致しておらず、選択ラインの有効フラグが有効の場合には（ステップＳ１２５でＮＯ、ステップＳ１４０でＮＯ）、次のステップＳ１６０においてタグ比較およびデータ選択部３４は、当該選択ラインのラインデータをメモリ装置にライトバックする。次のステップＳ１６５においてタグ比較およびデータ選択部３４は、入力されたメモリアドレスＭＡに対応するラインデータをメモリ装置４から読み出す。次のステップＳ１７０においてタグ比較およびデータ選択部３４は、当該選択ラインに対してタグおよび読出したデータを格納し、有効フラグを有効にし、演算装置１からのアクセス要求に応じた処理を行う。
【００８３】
上記のように、ダイレクトマップ方式の場合には選択ラインが１個に限られるのでＬＲＵのラインを選択する必要はない。したがって、キャッシュメモリアドレスＣＭＡに含まれるタグの値と選択ラインのタグの値との比較の結果、タグの値が一致していない場合には（すなわち、キャッシュミスの場合には）、当該選択ラインに対してデータのリプレースが行われる。
【００８４】
上記の実施の形態２のキャッシュメモリ２Ａにおいても、アプリケーションが扱うデータの種類に応じてキャッシュメモリにおいて使用するラインを分離することができる。これにより、再利用性の高いデータを格納するキャッシュメモリの領域と再利用性の低いデータを格納するキャッシュメモリの領域を分離することができるので、再利用性の高いデータを格納しているキャッシュラインが再利用性の低いデータによって置き替えられるのを抑制することができる。この結果、キャッシュ効率を向上させることができる。
【００８５】
実施の形態３．
［キャッシュメモリ装置の概略構成］
実施の形態３では、キャッシュメモリのマッピング方式がフルアソシアティブ方式である場合について説明する。図１１は、実施の形態３によるキャッシュメモリの構成の一例を示すブロック図である。
【００８６】
図１１を参照して、フルアソシアティブ方式の場合、入力されたメモリアドレスＭＡは、上位ビットのタグと下位ビットのオフセットに区分され、インデックスが設けられていない。アドレス変換部１２によって変換後のキャッシュメモリアドレスＣＭＡには、インデックスに相当する付加情報がタグとオフセットとの間に追加される。この付加情報は１つのインデックスを指定するものでなく、インデックスの範囲（上限と下限）を指定するものである。このインデックスの範囲内の任意のキャッシュラインにデータおよびタグを格納することができる。これによって、アクセス対象であるメモリアドレスＭＡに対応するメモリ領域に応じて、使用するキャッシュラインの範囲を限定することができるので、再利用性の高いデータを格納しているキャッシュラインが再利用性の低いデータによって置き替えられることを抑制することができる。
【００８７】
また、図１１のキャッシュメモリ２Ｂの場合、本体部２０Ｂにウェイが設けられていない点で図２の実施の形態１の場合と異なる。さらに図１１の場合には、選択タグ格納部３０および選択データ格納部３２が設けられていない。図１１のその他の構成は図２の場合と同様であるので、同一または相当する部分には同一の参照符号を付して説明を繰返さない場合がある。
【００８８】
［アドレス変換部の動作］
以下、実施の形態１の場合と同じ具体例を用いて、アドレス変換部１２の動作について説明する。メモリ領域とキャッシュラインの対応付けは図３に示され、アドレス変換情報は図５に示されている。また、メモリアドレスＭＡの長さを１６ビットとし、キャッシュメモリ全体でのインデックス数を１６個（＝４ビット）とする（すなわち、図１１においてｍ＝１５）。オフセットのビット長は２ビットであるとする。
【００８９】
上記の場合において、アドレス変換部１２は以下の手順１および手順２に従って入力されたメモリアドレスＭＡからキャッシュメモリアドレスＣＭＡを生成する。
【００９０】
（手順１）
アドレス変換部１２は、アドレス変換情報格納部１４に格納されたアドレス変換情報の各メモリ領域の開始アドレスおよびメモリサイズを参照することによって、入力されたメモリアドレスＭＡが対応するメモリ領域を判定する。図３の例では、メモリ領域Ｒ１、メモリ領域Ｒ２の順に判定し、該当しない場合はメモリ全体を示すデフォルト領域に対応すると判定される。
【００９１】
図１２は、図３の例において、入力されたメモリアドレスＭＡのタグおよびオフセットのビット長を示す図である。フルアソシアティブ方式の場合、入力されたメモリアドレスＭＡは上位ビットのタグと下位ビットのオフセットに区分される。したがって、判定されたメモリ領域によらず、タグのビット長は１４ビットであり、オフセットのビット長は２ビットである。
【００９２】
（手順２）
次に、アドレス変換部１２は、手順１で判定されたメモリ領域に対応するキャッシュラインの開始インデックスおよび全インデックス数をアドレス変換情報格納部１４から参照することにより、入力されたメモリアドレスＭＡに付加する付加情報を生成する。
【００９３】
図１３は、図３の例において、入力されたメモリアドレスＭＡに付加される付加情報について説明するための図である。
【００９４】
図１３（Ａ）と、アドレス変換情報を示す図５とを参照して、メモリ領域Ｒ１の場合、対応するキャッシュラインの開始インデックスは８であり、全インデックス数は４であるので、インデックスの下限８と上限１１とを示す８ビットの情報（２進数で“１０００１０１１”）が付加情報として生成される。
【００９５】
領域Ｒ２の場合、対応するキャッシュラインの開始インデックスは１２であり、全インデックス数は４であるので、インデックスの下限１２と上限１５とを示す８ビットの情報（２進数で“１１００１１１１”）が付加情報として生成される。
【００９６】
デフォルト領域の場合、対応するキャッシュラインの開始インデックスは０であり、全インデックス数は８であるので、インデックスの下限０と上限７とを示す８ビットの情報（２進数で“０００００１１１”）が付加情報として生成される。
【００９７】
図１３（Ｂ）を参照して、生成された８ビットの付加情報が１４ビットのタグと２ビットのオフセットの間に挿入されることによって、キャッシュメモリアドレスＣＭＡが生成される。
【００９８】
［キャッシュメモリの動作］
図１４は、図１１のキャッシュメモリの動作を示すフローチャートである。
【００９９】
図１１および図１４を参照して、ステップＳ１００において、アドレス変換部１２にアクセス対象のメモリアドレスＭＡが入力される。次のステップＳ１０５において、アドレス変換部１２は、アドレス変換情報に基づいて、入力されたメモリアドレスＭＡに対応するメモリ領域を判定する。次のステップＳ１１０において、アドレス変換部１２は、判定されたメモリ領域に対応するアドレス変換情報に基づいて、入力されたメモリアドレスＭＡに付加すべき付加情報を決定する。付加情報は判定されたメモリ領域に対応するキャッシュラインの範囲を示している。入力されたメモリアドレスＭＡのタグとオフセットとの間に付加情報が挿入されることによって、キャッシュメモリアドレスＣＭＡが生成される。
【０１００】
次のステップＳ１１５Ａにおいて、ライン選択部２２は、キャッシュメモリアドレスＣＭＡに含まれる付加情報が示す上限および下限の範囲内の複数のキャッシュラインを選択する。次のステップＳ１２０において、タグ比較およびデータ選択部３４は、キャッシュメモリアドレスＣＭＡに含まれるタグと各選択ラインのタグとを比較する。
【０１０１】
続くステップＳ１２５以降の手順は、図８に示す実施の形態１の場合と同様である。したがって、同一または相当するステップには同一の参照符号を付して説明を繰返さない。
【０１０２】
［効果］
上記の実施の形態３のキャッシュメモリ２Ｂにおいても、アプリケーションが扱うデータの種類に応じてキャッシュメモリにおいて使用するラインを分離することができる。これにより、再利用性の高いデータを格納するキャッシュメモリの領域と再利用性の低いデータを格納するキャッシュメモリの領域を分離することができるので、再利用性の高いデータを格納しているキャッシュラインが再利用性の低いデータによって置き替えられるのを抑制することができる。この結果、キャッシュ効率を向上させることができる。
【０１０３】
実施の形態４．
実施の形態４では、実施の形態３の構成のキャッシュメモリ２Ｂを備えた情報処理装置によって２次元画像データに対するフィルタ処理を行った例について説明する。
【０１０４】
図１５は、フィルタ処理の動作を説明するための図である。図１５を参照して、２次元画像データは２次元配列４０上に展開されているとする。アドレスは左から右に、上から下に増加する。図１５の長方形４２の枠内に４個のアドレスで表される横方向に並ぶ４ピクセル分のデータが格納されている。
【０１０５】
フィルタ処理は、図１５の縦３ピクセル、横３ピクセルの９個のデータ４１の平均化処理を行うものである。フィルタ処理は２次元配列４０の左上から開始され、左から右の方向に処理が進行する。右端まで処理が達すると、１ピクセル下の左端のデータから処理が開始される。以下同様に処理が繰り返される。
【０１０６】
メモリ空間において上記の２次元配列４０を格納する領域が１つの特定メモリ領域として設定されているものとする。さらに、この特定メモリ領域に対応してキャッシュメモリには１２ライン分のデータ領域が確保されているものとする。各ラインには長方形４２の枠内の４ピクセル分のデータが格納される。
【０１０７】
上記の構成の場合において図１５（Ａ）に示す２次元配列４０の右端の位置までフィルタ処理が進行したとする。このとき、ドットのハンチングを付した１２個の長方形の枠内のデータが特定メモリ領域に対応する１２個のキャッシュラインに格納されている。ドットを付した領域の番号０〜１１はＬＲＵフラグを表しており、キャッシュラインへのアクセス時刻を示す。キャッシュメモリのラインデータは番号順にアクセスされている。
【０１０８】
図１５（Ｂ）は、図１５（Ａ）の次のステップの状態を示すものである。図１５（Ｂ）に示すようにフィルタ処理は、１ピクセル下の左端に移行する。このとき、最近最も使われていないＬＲＵフラグ＝０のラインが選択され、当該ラインに格納されているデータが、ＬＲＵフラグ＝１４で表されるデータに入れ替えられる。
【０１０９】
実施の形態３で説明したように、２次元画像データを格納する特定メモリ領域に対応する１２個のキャッシュラインはフィルタ処理専用であるので、これらの１２個のキャッシュラインのデータが他の処理のためのデータで書き換えられることはない。これによって、キャッシュ効率を向上させることができる。
【０１１０】
今回開示された実施の形態はすべての点で例示であって制限的なものでないと考えられるべきである。この発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１１１】
１  演算装置、２，２Ａ，２Ｂ  キャッシュメモリ、３  メモリアクセス制御部、４  メモリ装置、１０  アドレス生成部、１２  アドレス変換部、１４  アドレス変換情報格納部、２０，２０Ａ，２０Ｂ  本体部、２２  ライン選択部、２４  タグ格納部、２６  データ格納部、２８  フラグ格納部、３０  選択タグ格納部、３２  選択データ格納部、３４  タグ比較およびデータ選択部、ＣＭＡ  キャッシュメモリアドレス、ＭＡ  メモリアドレス、Ｒ１，Ｒ２  メモリ領域。
【図１】
0006800312.tif 000002
【図２】
0006800312.tif 000003
【図３】
0006800312.tif 000004
【図４】
0006800312.tif 000005
【図５】
0006800312.tif 000006
【図６】
0006800312.tif 000007
【図７】
0006800312.tif 000008
【図８】
0006800312.tif 000009
【図９】
0006800312.tif 000010
【図１０】
0006800312.tif 000011
【図１１】
0006800312.tif 000012
【図１２】
0006800312.tif 000013
【図１３】
0006800312.tif 000014
【図１４】
0006800312.tif 000015
【図１５】
0006800312.tif 000016