(57)【要約】  【課題】キャッシュヒットを向上させるために、常駐させるべき命令コードやデータをキャッシュメモリ３に常駐させる。  【解決手段】システムを動作させるためのプログラムやデータの処理を行うＣＰＵ１と、プログラムの命令コードやデータを格納するための低速でかつ大容量の主記憶装置２と、主記憶装置２より小容量でかつ高速な、命令コードやデータを一時的に格納するためのキャッシュメモリ３と、キャッシュメモリ３の置き換えや読み出し動作を行うキャッシュメモリ制御回路４と、キャッシュメモリ３に常駐させた命令コードやデータの領域を置き換え動作時の置き換え対象から除外するための置き換え候補制御回路５とを備えて構成することで、常駐させるべき命令コードやデータが存在しているキャッシュメモリ３の領域を設ける。  【選択図】  図１
2006285727.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも常駐領域を設定するための常駐命令コードを含む、命令コード或いはデータを処理する ＣＰＵと、
前記命令コード或いはデータを一時的に記憶する２つ以上のウエイを有するキャッシュメモリと、
前記キャッシュメモリの置き換え制御及び読み出し制御を行うためのキャッシュメモリ制御回路と、
前記常駐命令コードにより、予め定められた領域に常駐領域を設定する置き換え候補制御手段を備えたことを特徴とするキャッシュメモリ装置。
【請求項２】
前記置き換え候補制御手段は、前記常駐命令コードにより常駐領域を設定する常駐領域設定手段と、置き換え動作を行うためのウエイを選択するウエイ選択手段とを有することを特徴とする請求項１に記載のキャッシュメモリ装置。
【請求項３】
前記ウエイ選択手段は、前記常駐命令コード実行時には前記常駐領域候補のウエイが回路的に予め一意に決まっており、前記常駐命令コード非実行時で置き換え動作時には前記常駐領域を除外したウエイを選択することを特徴とする請求項２に記載のキャッシュメモリ装置。
【請求項４】
前記予め定められた常駐領域は、前記ウエイ選択手段によって選択されたウエイ上の連続的なラインであることを特徴とする請求項１から請求項３のいずれかに記載のキャッシュメモリ装置。
【請求項５】
前記常駐領域設定手段が、常駐領域を決定するための先頭アドレス、及び領域のサイズ指定することである特徴とする請求項２から請求項４のいずれかに記載のキャッシュメモリ装置。
【請求項６】
前記常駐領域設定手段が、常駐領域を決定するための先頭アドレス、及び終了アドレスを指定することである特徴とする請求項２から請求項４のいずれかに記載のキャッシュメモリ装置。
【請求項７】
前記置き換え候補制御手段内に、前記キャッシュメモリに常駐させる命令コード又はデータを格納されている領域設定の有効、無効を決定する設定手段を備え、前記設定手段を非アクティブにしたときに前記常駐領域設定手段による常駐設定が無効になることを特徴とする請求項５又は請求項６に記載のキャッシュメモリ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリアクセスを高速に行うためのキャッシュメモリ装置に関する。
【背景技術】
【０００２】
従来の一般的なキャッシュメモリ装置について、簡単に説明する。キャッシュメモリ装置は、図１０に示すようにシステムを動作させるためのプログラムやデータの処理を行うＣＰＵ１と、プログラムの命令コードやデータを格納するための低速でかつ大容量の主記憶装置２と、主記憶装置２よりは小容量であるが高速なキャッシュメモリ３と、これらの動作制御を行うキャッシュメモリ制御回路４から構成される。
【０００３】
キャッシュメモリ３は、ＣＰＵ１と主記憶装置２とのアクセス時の待ち時間に相当する時間を減らし、処理速度を向上させるための緩衝メモリの一種である。通常、キャッシュメモリ３は、主記憶装置２に比べて小容量であるが、ＣＰＵ１からのアクセスに対して高速応答可能なメモリを用い、時間的局所性（読み書きされたデータは近いうちにまた使われる可能性が高い）と、空間的局所性（読み書きされたデータの近くにあるデータは近いうちに使われる可能性が高い）という性質を利用し、システム全体としての処理速度の向上を可能とする。
【０００４】
命令コードやデータは、予め主記憶装置２に記憶されているが、初期状態（キャッシュメモリ３に何も記憶されていない状態）から任意のアドレスをＣＰＵ１がアクセスした場合、キャッシュメモリ３上にデータが存在しないため、初回のアクセスは低速な主記憶装置２に対して行われる。この時、同時にキャッシュメモリ３には、ＣＰＵ１にアクセスされた主記憶装置２のアドレスとこのアドレスによって主記憶装置２から出力された命令コードやデータを記憶する。キャッシュメモリ制御装置４はＣＰＵ１が実行する記憶装置へのアクセスを常に監視しており、２回目以降の同一アドレス（記憶されたアドレス）へのアクセスが行われるとキャッシュメモリ制御回路４は低速な主記憶装置２へのアクセスをやめ（主記憶装置２への制御信号の出力はしない）、高速なキャッシュメモリ３から該当するアドレスに対応する命令コード又はデータをＣＰＵ１へ渡す。このことにより、ＣＰＵ１の主記憶装置２へのアクセス時の待ち時間に相当する時間を減らし、処理速度を向上させる。以上のように、小容量ながらも高速なキャッシュメモリ３を持つことにより、ＣＰＵ１が必要とするデータがキャッシュメモリ上に存在すれば低速な主記憶装置２にアクセスすることなく、高速に命令コードとデータを読み書きすることが可能である。
【０００５】
最高速のシステムを実現しようとすれば、低速安価な主記憶装置２と、高速高価なキャッシュメモリ３を同じサイズにすることにより実現できる。しかしながらこれはコストの面から現実的でないため、主記憶装置２に比べるとキャッシュメモリ３は小さなサイズのものが搭載されることが一般的である。
【０００６】
このようにキャッシュメモリ３が主記憶装置２に比べ小さいサイズであるため、主記憶装置２の中の一部のデータのみがキャッシュメモリ３上に記憶されることになる。
【０００７】
理想的なキャッシュメモリ３の動作としては、これからＣＰＵ１が必要とする確率の高い命令コードやデータを、ＣＰＵ１が実際に使用する前にキャッシュメモリ３に記憶しておくことが望ましい。キャッシュメモリ３上に空きが無い場合には、ＣＰＵ１が必要とする命令コードやデータと、最も必要でないと思われる命令コードやデータとを置き換える処理が取られる。しかしながら実際に、どの命令コードやデータをキャッシュメモリ３上に記憶あるいは置き換えするかは、キャッシュメモリ制御回路４の置き換え制御回路に依存しており、制御方法として代表的なものには、未使用の時間がもっとも長いブロックを置き換えの対象として選択するＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）方式や、置き換えの対象を順番に変えていくＲｏｕｎｄ−Ｒｏｂｉｎ方式、置き換えの対象がランダムなランダム方式といった方法が良く用いられている。キャッシュメモリ３は、通常、複数セットのタグ（キャッシュメモリ３の１ラインごとに記憶されている主記憶装置２のアドレスなどの情報）を持たせることで、同じエントリアドレスでも複数命令コード、或いはデータの格納を行うことが可能となる。このタグのセット（以下、ウエイ）の数を連想度と呼ぶ。
【０００８】
キャッシュメモリ３にＣＰＵ１が必要とする命令コード又はデータが格納されていない場合には、主記憶装置２からキャッシュメモリ３のラインに新しい命令コードやデータを主記憶装置２から転送する置き換え動作（ラインフェッチと呼ばれている）が必要である。キャッシュメモリ３上で選択されるラインは、パターソン＆ヘネシー著の「コンピュータの構成と設計」に記載されている通り、一般的にＣＰＵ１が主記憶装置２にアクセスするアドレスの一部分をデコードすることによって決まる。このことについて、図１１を用いて説明する。図１１は、キャッシュメモリ内で置き換え動作が行われる際の置き換え候補のウエイを示す図である。置き換え動作が行われる際の置き換え候補１２は、ウエイ０からウエイ３の全てが対象となり、この中から置き換え制御回路で選択されたウエイのラインに置き換えを行うことができる。
【０００９】
前述の通り必要な命令コードやデータはキャッシュメモリ３に常駐させておく方が効率的なことが多い。そのため、キャッシュメモリに常駐させるプログラムをライン上のタグ中のフラグビットに常駐フラグを付加することによりラインのデータ置き換えを禁止し、ヒット率を向上させる技術が提案され、特開平６−１９５２６７号公報に開示されている。この技術は、キャッシュメモリのラインごとに常駐フラグを設け、キャッシュヒット、ミスの判定時に常駐フラグを参照して、常駐フラグの状態に応じてキャッシュメモリ３の置き換えを制御する技術である。
【特許文献１】特開平６−１９５２６７号公報
【非特許文献１】パターソン＆ヘネシー著「コンピュータの構成と設計」日経ＢＰ出版、１９９８年９月２５日、ｐ４２１
【発明の開示】
【発明が解決しようとする課題】
【００１０】
このような従来のキャッシュメモリ３の置き換え動作は、高速アクセスが要求される命令コードやデータであるか否かに関わらずプログラムやキャッシュメモリ制御回路４の置き換え制御回路に依存して行われるため、高速アクセスが要求される前記命令コードや前記データが常にキャッシュメモリ３に格納されている保証がない。その結果、キャッシュメモリ３の効果が期待するほど得られない場合があるという問題点があった。例えば、いずれか１つのウエイに追い出したくないプログラムが格納されていても、キャッシュメモリ制御回路４の置き換え制御回路に従って前記ウエイの該当ラインも置き換え候補になってしまうという問題点があった。
【００１１】
また、異なる方法として、プログラミングによって、キャッシュのヒット率（必要な命令コード及びデータがキャッシュメモリ３になるべく存在するようにする）を向上させる方法もあるが、その際には、キャッシュメモリ３の仕様や動作を考慮したオブジェクトコードの生成が必要となり、現状のコンパイラやアセンブラではその部分の対策ができていないことが多い。加えて、キャッシュメモリ３を効果的に使うことができない場合には、その結果として主記憶装置２へのアクセスが多くなり、処理の高速化という観点から影響があるだけでなく、主記憶装置２への経路のパスが頻繁に活性化されるために状態変化が増加し、その結果、消費電力が増加するという問題点もあった。
【００１２】
また、特開平６−１９５２６７号公報の発明では、キャッシュヒット、ミスの判定に常駐フラグをキャッシュメモリ３の１ラインずつ常に参照する必要があるため、その部分で回路の動作速度を減じてしまう可能性があり、高速アクセスが要求される命令コードやデータが常にキャッシュメモリ３に格納されていることは保証されるが、キャッシュメモリ３の性能が期待するほど得られない場合があるという問題点があった。
【課題を解決するための手段】
【００１３】
本発明のキャッシュメモリ装置は、少なくとも常駐領域を設定するための常駐命令コードを含む、命令コード或いはデータを処理するCPUと、前記命令コード或いはデータを一時的に記憶する２つ以上のウエイを有するキャッシュメモリと、前記キャッシュメモリの置き換え制御及び読み出し制御を行うためのキャッシュメモリ制御回路と、前記常駐命令コードにより、予め定められた領域に常駐領域を設定する置き換え候補制御手段を備えて構成する。
【００１４】
また、前記置き換え候補制御手段は、前記常駐命令コードにより常駐領域を設定する常駐領域設定手段と、置き換え動作を行うためのウエイを選択するウエイ選択手段とを有する。
【００１５】
また、前記ウエイ選択手段は、前記常駐命令コード実行時には前記常駐領域候補のウエイが回路的に予め一意に決まっており、前記常駐命令コード非実行時で置き換え動作時には前記常駐領域を除外したウエイを選択する。
【００１６】
また、前記予め定められた常駐領域は、前記ウエイ選択手段によって選択されたウエイ上の連続的なラインである。
【００１７】
また、前記常駐領域設定手段が、常駐領域を決定するための先頭アドレス、及び領域のサイズ指定することである特徴とする。あるいは、前記常駐領域設定手段が、常駐領域を決定するための先頭アドレス、及び終了アドレスを指定する。
【００１８】
また、前記置き換え候補制御手段内に、前記キャッシュメモリに常駐させる命令コード又はデータを格納されている領域設定の有効、無効を決定する設定手段を備え、前記設定手段を非アクティブにしたときに前記常駐領域設定手段による常駐設定が無効になる。
【発明の効果】
【００１９】
本発明により、常駐させる命令コードやデータを予め定められた領域に常駐させることで常駐させた命令コードやデータへのアクセス速度を向上させることができる。また、キャッシュメモリに常駐させる命令コードやデータを置き換え候補から除外することで、前記キャッシュメモリ上に常駐させることが可能となり、結果、キャッシュのヒット率が向上し、ＣＰＵが実行する命令コード、データ処理の高速化が達成される。更に主記憶装置へのアクセスを減ずることによりデータバス等の状態変化を低減することができる。結果、消費電力の低減に関しても良好な効果が期待できる。また予め回路的に決まったウエイから順番に置き換え候補を除外するため、実装に要する回路資源の簡素化も併せて達成することができる。
【発明を実施するための最良の形態】
【００２０】
図１は本実施形態のキャッシュメモリ装置の基本構成を示す。本実施形態のキャッシュメモリ装置は、システムを動作させるためのプログラムやデータの処理を行うＣＰＵ１と、プログラムの命令コードやデータを格納するための低速でかつ大容量の主記憶装置２と、主記憶装置２より小容量でかつ高速な、命令コードやデータを一時的に格納するためのキャッシュメモリ３と、キャッシュメモリ３の置き換えや読み出し動作を行うキャッシュメモリ制御回路４と、キャッシュメモリ３に常駐させた命令コードやデータの領域を置き換え動作時の置き換え対象から除外するための置き換え候補制御回路５とを備えて構成される。
【００２１】
キャッシュメモリ制御回路４に内蔵された置き換え制御回路は、置き換え動作時に、ＬＲＵ方式，Ｒｏｕｎｄ−Ｒｏｂｉｎ方式、ランダム方式といった置き換え制御を行っている。
【００２２】
さらに図２に本実施形態の置き換え候補制御回路５の構成図を示す。本実施形態の置き換え候補制御回路５は、常駐させる領域を設定する常駐領域設定レジスタ５０と、ＣＰＵ１から出力されたアドレス（以下、ＣＰＵアドレスと記す。）が前記常駐領域か否かを判定する比較器５３と、ウエイ選択を制御するウエイ選択回路５４で構成されている。
【００２３】
本実施形態では、常駐領域を設定する際に、ＣＰＵ１が常駐領域の設定を行うための命令コード（以下、常駐命令コード）を実行すると、ＣＰＵ１が常駐領域設定レジスタ５０に設定値を書き込まれ、更にその命令コードの実行がキャッシュミスであった場合は、主記憶装置２から常駐命令コードが読み出され、キャッシュメモリ３に置かれる。
【００２４】
常駐領域設定レジスタ５０は、常駐させる領域の先頭アドレスを設定するための常駐領域先頭アドレスレジスタ５１と、常駐領域のサイズを設定するための常駐領域サイズレジスタ５２で構成される。この２つのレジスタに設定値を書き込むことで、常駐領域を設定するための先頭アドレスとサイズが決まるため、常駐領域が設定される。
【００２５】
比較器５３は、常駐領域先頭アドレス５１の常駐領域先頭アドレスと常駐領域サイズレジスタ５２の常駐領域サイズとＣＰＵアドレスを比較し、常駐領域と同一ラインかどうか否かを判定する。
【００２６】
ウエイ選択回路５４は、比較器５３での判定結果に基づいて、常駐命令コード実行時には特定のウエイを選択し、常駐命令コード非実行時で置き換え動作時には前記常駐領域を除外し、キャッシュメモリ制御回路４の置き換え制御回路に従ってウエイを選択する。
【００２７】
キャッシュメモリ３に常駐領域が設定された後の常駐命令コード非実行時の置き換え動作は、常駐領域を除外した領域に対してキャッシュメモリ制御回路４の置き換え制御回路での置き換え動作が行われる。
【００２８】
つまり、常駐命令コード実行時の置き換え動作では、現状のキャッシュメモリの状態の如何に関わらず、予め回路的に決まったウエイから順番に常駐させる領域が割り当てられる。また、常駐命令コード非実行時で置き換え動作時には、常駐領域を置き換え候補から除外して、キャッシュメモリ制御回路４の置き換え制御回路での置き換え動作が行われる。
【００２９】
ここで、図１および図２を用いて、本実施形態のキャッシュメモリ装置の動作説明を行う。ここでは説明を簡単にするため、キャッシュメモリの連想度を４とし、常駐させる領域が割り当てられるウエイの順番がウエイ０、１、２、３の順となるようにウエイ選択回路５４が構成されている場合について述べる。
【００３０】
常駐領域を複数設定する場合には、常駐領域設定レジスタ５０の数は複数個必要になると想定できるが、ここではその数が１つの場合についてまず説明する。
【００３１】
ＣＰＵ１がプログラム実行中に常駐命令コードを実行すると、常駐領域設定レジスタ５０に書き込みが行われる。ここでは、常駐される前の命令コードやデータがキャッシュメモリ３に書き込まれる前であるため、まだ物理的な常駐領域は設定されない。常駐命令コードを実行後、常駐される命令コードやデータをＬＲＵ方式，Ｒｏｕｎｄ−Ｒｏｂｉｎ方式、ランダム方式といった、キャッシュメモリ制御回路４の置き換え制御回路とは無関係にウエイ０への置き換え動作が生じる。
【００３２】
置き換え動作終了後、終了状態を回路的に判断して常駐領域の設定を反映する。常駐領域設定レジスタ５０が設定されると、次回の置き換えからはＣＰＵアドレスがキャッシュメモリ３内の常駐領域内と同一のラインを指した場合はウエイ０を除くウエイのみが置き換え候補となり、ウエイ１からウエイ３のうちから、キャッシュメモリ制御回路４の置き換え制御回路によってウエイの選択が行われ、そのウエイのライン上に置き換えした命令コードやデータを格納する。
【００３３】
以上のようにウエイ０に常駐領域が設定されると、キャッシュメモリ３内に常駐設定を行った領域に格納された命令コードやデータは、置き換え動作から除外することが可能となり、結果命令コードやデータのキャッシュメモリへの常駐が可能となる。これとは逆に前記常駐領域内と同一のライン以外を指した場合は、全てのウエイが置き換え候補となる。
【００３４】
キャッシュメモリ３での前記置き換え候補を図で表したのが図３である。図３（ａ）は置き換え動作時にＣＰＵアドレスが、常駐設定が既になされているウエイ０の領域と同一のラインを指す場合で、且つ常駐させるウエイを選択するウエイの順番がウエイ０、１、２、３の順であった場合の動作である。常駐領域１１のあるウエイ０は置き換え候補から除外されているため置き換え候補１２はウエイ１、２、３のいずれかになる。ウエイ１、２、３のいずれが選択されるかはウエイ０が選択されないことを除けば、ＬＲＵ方式、Ｒｏｕｎｄ  Ｒｏｂｉｎ方式、ランダム方式といったキャッシュメモリ制御回路４の置き換え制御回路に従って選択される。
【００３５】
図３（ｂ）は、ＣＰＵアドレスが、前記常駐領域とは異なるラインを指す場合である。置き換え候補１２はウエイ０、１、２、３のいずれでもよく、キャッシュメモリ制御回路４の置き換え制御回路に依存して選択される。こうして、キャッシュメモリ３内に常駐設定を行った領域に格納された命令コードやデータの通常の置き換え動作から除外することが可能となり、結果命令コードやデータのキャッシュメモリへの常駐が可能となる。
【００３６】
上記実施形態のキャッシュメモリ装置を使用したシステムを動作させるためのプログラムの流れを図４に示す。図４に示すようにプログラムは、常駐命令コード１３と、その後に続く常駐させたい命令コードやデータで構成されている常駐領域１４とを有している。ＣＰＵ１は基本的にまず上から順番にプログラムを実行していくが、その途中で常駐命令コード１３が実行されると常駐設定レジスタ５０に常駐領域の先頭アドレスと領域サイズが書き込まれるが、この時点では常駐領域は形成されない。常駐命令コード１３が実行後、常駐されるべきラインの命令コードやデータを有するプログラムがキャッシュメモリの予め回路的に一意に決められたウエイの連続的なラインに置き換えられるが、常駐領域設定レジスタが１つの場合は、常にウエイ０に置き換えられる。その置き換え動作の終了後は、常駐設定レジスタ５０の設定が反映され、常駐領域１４が形成される。以後、この常駐領域は、置き換え候補の対象から外れる。
【００３７】
図５に常駐領域を複数設定できる場合の実施形態を示す。
常駐領域の設定を行える常駐領域設定レジスタ５０を複数個持つ常駐領域設定レジスタ５０１と、複数個の常駐領域設定レジスタ５０に対応させて比較器５３が同数設けられた比較器５３１と、比較器５３１での判定結果に基づいてウエイを選択するウエイ選択回路５４１で構成されている。常駐領域設定レジスタ５０１は、常駐領域設定レジスタ５０が複数個設けられ、比較器５３１も、比較器５３が常駐領域設定レジスタ５０に対応して同数設けられている。
【００３８】
ウエイ選択回路５４１は、比較器５３１での判定結果に基づいて、選択常駐命令コード実行時には特定のウエイを選択し、常駐命令コード非実行時で置き換え動作時には常駐領域を除外し、キャッシュメモリ制御回路４の置き換え制御回路に従ってウエイを選択するものである。
【００３９】
常駐領域設定レジスタ５０１からそれぞれ出力される常駐領域先頭アドレスおよび常駐領域サイズにより、比較器５３１によってＣＰＵアドレスが前記常駐領域か否かを判定し、その結果に基づいてウエイ選択回路５４１が置き換え候補を決定する。以上により常駐領域設定レジスタ５０１内のレジスタの数だけ常駐領域の設定が可能となる。
【００４０】
次に、前記実施形態を元に、複数の常駐領域を設定する例について説明する。図６（ａ）はラインが重なった場合の常駐ウエイの選択方法の例を示す図である。この場合、ウエイ０に常駐領域があるとした時に、新たな常駐領域を設定して、ウエイ０の常駐領域と同一ラインが１ラインでも重なった場合にはウエイ１が選択される。この方法はウエイ選択回路の実装が容易になるという利点がある。これら複数の常駐領域の排他的な制御は比較器５３１の出力結果に基づきウエイ選択回路５４１によって行われる。
【００４１】
図６（ｂ）は、キャッシュの物理的な領域を効率的に使用するために、新たに常駐させたい領域がウエイ０の既に常駐設定がなされているラインに重なる例を示す図である。この場合、既に常駐設定がなされているラインに関してはウエイ１を選択し、常駐設定がなされていないラインはウエイ０を選択する方法も考えられる。もちろんどちらの方法を選択するかは実現すべき応用などに応じて回路設計時に決定すれば良い。さらに新たな常駐領域が設定された際にＣＰＵアドレスが常駐領域内と同一のラインを指した場合で、且つウエイ０、１に既に常駐設定がなされている場合、次はウエイ２、さらにその次はウエイ３の順番になる。
【００４２】
図６（ｃ）は、ＣＰＵアドレスが指すラインが全ウエイにある常駐領域に重なる例を示す図である。この場合、キャッシュメモリ装置の動作は、キャッシュオフ時と同様の動作となり、主記憶装置２へのアクセスとなる。
【００４３】
また、キャッシュの置き換えの自由度を持たせたい場合は常駐可能なウエイの数を制限するという方法も考えられる。常駐可能な領域の数は、実現すべき応用などに応じて回路設計時に決定すれば良い。もちろん常駐設定の際にどのウエイが選択されるかの順番は、予め一意に決まっていればどこから始まってもどういった順番でも良い。
【００４４】
次に、図７に示すフローチャートに基づいて本発明のキャッシュメモリ装置の置き換えフローについて説明する。
【００４５】
ＣＰＵ１から与えられる主記憶装置２へのアクセス要求により処理を開始し、最初にキャッシュメモリ制御回路４にてタグメモリの内容のチェックが行なわれ(Ｓ１)、アクセス要求のあった命令コードまたはデータがキャッシュメモリ３に存在するか否か、つまりキャッシュがヒットしているかミスをしているかを判別する(Ｓ２)。
【００４６】
アクセス要求のあった命令コードまたはデータがキャッシュメモリ３に存在する(ヒット) 場合は、キャッシュメモリ３からＣＰＵ１に所望の命令コードまたはデータの転送を行い、(Ｓ３)本処理を終了する。
【００４７】
アクセス要求のあった命令コードやデータがキャッシュメモリ３に存在しない(ミス)場合は、キャッシュメモリ制御回路４が命令コードやデータを主記憶装置２から読み出してキャッシュメモリ３に格納する。このとき主記憶装置２から読み出されキャッシュメモリ３に格納する命令コードまたはデータをキャッシュメモリ３に常駐させるための常駐命令コードが実行されているか否かで次の処理が異なり(Ｓ４)、図４のような常駐命令コード１３の有無によって決定される。
【００４８】
キャッシュメモリ３に格納する命令コードまたはデータで常駐させる必要がない場合は、ウエイ選択回路５４にて常駐領域を除外した領域のうちから、ＬＲＵ方式、Ｒｏｕｎｄ  Ｒｏｂｉｎ方式、ランダム方式といった、キャッシュメモリ制御回路４での置き換え制御回路に従い、選択されたウエイのラインへの置き換え動作が行われる(Ｓ７)。
【００４９】
次に常駐命令コード１３によりキャッシュメモリ３に格納する命令コードまたはデータがキャッシュメモリに常駐させるものであることが示された場合は、ウエイ選択回路５４によって、ＬＲＵ方式、Ｒｏｕｎｄ  Ｒｏｂｉｎ方式、ランダム方式といった置き換え制御回路とは無関係に、予め順番が決められているウエイへの常駐領域分の置き換え動作が行われ(Ｓ５)、前記置き換え動作の後、常駐領域設定レジスタ５０の設定値が反映され、その設定された領域を次回の置き換え候補から除外し、結果その箇所が常駐領域となる（Ｓ６）。
【００５０】
キャッシュメモリの置き換えウエイを決めるキャッシュメモリ制御回路４の置き換え制御回路が採用している制御方式は、代表的なものにＬＲＵ方式、Ｒｏｕｎｄ  Ｒｏｂｉｎ方式、ランダム方式があることを従来の技術に示した通りであるが、本発明はいずれの方式においても適用可能である。
【００５１】
上記実施形態では、キャッシュメモリ装置によって設定される常駐領域は、常駐領域の先頭アドレスとサイズで決定されているが、常駐領域の先頭アドレスと最終アドレスで設定することでも実現できる。その実施形態を図８に示す。
【００５２】
図８に示されている置き換え候補制御回路５は、常駐する領域を設定する常駐領域設定レジスタ５０と、ＣＰＵアドレスが前記常駐領域か否かを判定する比較器５３と、ウエイ選択を制御するウエイ選択回路５４で構成されている。
【００５３】
本実施形態では、図２の実施形態の常駐領域設定レジスタ５０内にある常駐領域サイズレジスタ５２の代わりに、常駐領域の最終アドレスを設定できる常駐領域最終アドレスレジスタ５５に置き換えていることが特徴である。
【００５４】
次に常駐設定を解除したい場合のその解除手段について述べる。常駐設定の解除手段としては様々な方法が考えられるが、その一例として図２の実施形態では常駐領域サイズレジスタ５２の設定を‘０’、または図８の実施形態では常駐領域最終アドレスレジスタの設定と常駐領域先頭アドレスレジスタの設定と同じにするなどの方法で容易に実現可能である。また常駐領域の有効か無効の判別手段を設けることによっても実施可能である。
【００５５】
そこで、図２の実施形態に常駐領域有効レジスタを加えた実施形態を示す構成図を図９に示す。図９の実施形態に示されている置き換え候補制御回路５は、常駐させる領域を設定する常駐領域設定レジスタ５０と、ＣＰＵアドレスが前記常駐領域か否かを判定する比較器５３と、ウエイ選択を制御するウエイ選択回路５４、常駐領域設定レジスタ５０の設定を有効にするか無効にするかを設定する常駐領域有効レジスタ５６、常駐領域設定レジスタ５０の設定と常駐領域有効レジスタ５６の設定の積をとるためのＡＮＤ回路５７で構成されている。
【００５６】
本実施形態では、図２の実施形態に常駐領域有効レジスタ５６を付加することで実現でき、常駐領域を有効にするか無効にするかは常駐領域有効レジスタ５６の値によって決まる。常駐領域有効レジスタ５６の設定が非アクティブ状態の時、つまり‘０’に設定されている時に常駐領域設定レジスタ５０の設定が無効となる。また常駐領域有効レジスタ５６の設定がアクティブ状態の時、つまり‘１’に設定されている時に常駐領域設定レジスタ５０の設定が有効となる。
【００５７】
以上のように、本発明において、キャッシュメモリ３に常駐させる命令コードやデータを置き換え候補から除外し、常駐可能とすることで、キャッシュヒット率の向上につながり、命令、データ処理の高速化が達成される。更に主記憶装置２へのアクセスを減ずることによるデータバスの状態変化の低減、及び主記憶装置２へのアクセスの低減により、消費電力の低減に関しても良好な効果が期待できる。また、回路的に予め決まったウエイから順番に常駐領域を設定し、置き換え候補から除外することを特長とするため実装に要する回路資源の簡素化も併せて達成することができる。
【図面の簡単な説明】
【００５８】
【図１】本発明のキャッシュメモリ装置の構成図である。
【図２】本発明の置き換え候補制御回路の実施形態を示す構成図である。
【図３】本発明のキャッシュメモリ装置におけるキャッシュメモリの常駐領域を示す図である。
【図４】本発明のキャッシュメモリ装置を使用したシステムを動作させるためのプログラムの流れを示す図である。
【図５】複数の常駐領域の設定を可能にする実施形態を示す構成図である。
【図６】本発明のキャッシュメモリ装置におけるキャッシュメモリの常駐領域が重なった場合の動作を示す図である。
【図７】本発明のキャッシュメモリ装置の動作フローチャートである。
【図８】図２の実施形態から、常駐領域の末端を最終アドレス指定とした場合の実施形態を示す構成図である。
【図９】図２の実施形態に常駐領域有効レジスタを加えた実施形態を示す構成図である。
【図１０】従来のキャッシュメモリ装置の構成図である。
【図１１】従来のキャッシュメモリ装置におけるキャッシュメモリの置き換え候補を示す図である。
【符号の説明】
【００５９】
１  ＣＰＵ
２  主記憶装置
３  キャッシュメモリ
４  キャッシュメモリ制御回路
５  置き換え候補制御回路
１１  キャッシュメモリ上の常駐領域
１２  キャッシュメモリ上の置き換え候補
１１１  キャッシュメモリ上の1番目の常駐領域
１１２  キャッシュメモリ上の２番目の常駐領域
１１３  キャッシュメモリ上の３番目の常駐領域
１１４  キャッシュメモリ上の４番目の常駐領域
５０  常駐領域設定レジスタ
５１  常駐領域先頭アドレスレジスタ
５２  常駐領域サイズレジスタ
５３  比較器
５４  ウエイ選択回路
５５  常駐領域最終アドレスレジスタ
５６  常駐領域有効レジスタ
５７  ＡＮＤ回路
５０１  複数個の常駐領域設定レジスタ
５３１  複数個の比較器
５４１  ウエイ選択回路
【図１】
2006285727.tif 000003
【図２】
2006285727.tif 000004
【図３】
2006285727.tif 000005
【図４】
2006285727.tif 000006
【図５】
2006285727.tif 000007
【図６】
2006285727.tif 000008
【図７】
2006285727.tif 000009
【図８】
2006285727.tif 000010
【図９】
2006285727.tif 000011
【図１０】
2006285727.tif 000012
【図１１】
2006285727.tif 000013