(57)【要約】【課題】複数のプロセスを切り替えて実行する場合に、優先度の低いプロセスが優先度の高いプロセスのキャッシュメモリ中のデータを追い出してしまうことにより、優先度の高いプロセスの実行時間の予測が困難になる。【解決手段】ＣＰＵ１により実行されるプロセスのキャッシュメモリ使用優先レベルを保持するプロセス優先レベルレジスタ１００と、キャッシュメモリ２のそれぞれのバンクの使用優先レベルを保持するバンク優先レベルレジスタ２０４、２１４，２２４，２３４と、キャッシュミスのとき、前記複数のバンクから置き換えバンクを選択する置き換え判定部とを備え、前記置き換え判定部は、プロセス優先レベルレジスタ１００より低い優先レベルを保持するバンク優先レベルレジスタをもつバンクから、置き換え対象バンクを選択するように構成した。【選択図】      図１
2004326187.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュメモリを有する情報処理装置において、
１つ以上のプログラムを実行し、前記各プログラムのキャッシュメモリの使用優先レベルを決定するＣＰＵと、
前記ＣＰＵ内に設けられ、前記決定された各プログラムのキャッシュメモリの使用優先レベルを保持する優先レベル保持手段と、
前記ＣＰＵ内に設けられ、該ＣＰＵで実行されているプログラムの、前記キャッシュメモリの使用優先レベルを保持するプロセス優先レベルレジスタと、
複数のバンクを備えたセットアソシアティブ方式のキャッシュメモリと、
前記キャッシュメモリ内に設けられ、該キャッシュメモリの各バンクのそれぞれの使用優先レベルをそれぞれ保持する複数のバンク優先レベルレジスタと、
前記キャッシュメモリ内に設けられ、前記ＣＰＵから該キャッシュメモリへのアクセスに際し、該キャッシュメモリ上にアクセスデータが存在しないキャッシュミスのとき、前記プロセス優先レベルレジスタの保持する使用優先レベルより低い優先レベルを保持する前記バンク優先レベルレジスタに対応するバンクから、置き換えバンクを選択する置き換え判定部と、を備えた、
ことを特徴とする情報処理装置。
【請求項２】
請求項１記載の情報処理装置において、
前記ＣＰＵは、
前記キャッシュメモリの使用優先レベルを保持する特権優先レベルレジスタと、
前記特権優先レベルレジスタと、プロセス優先レベルレジスタとのいずれかを選択する選択器と、を備え、
前記ＣＰＵが特権レベルのプログラムを実行している場合のキャッシュミス時、
前記選択器は、前記特権優先レベルレジスタを選択し、
前記置き換え判定部は、選択された特権優先レベルレジスタの保持する使用優先レベルより低い優先レベルを保持するバンク優先レベルレジスタに対応するバンクから、前記置き換えバンクを選択する、
ことを特徴とする情報処理装置。
【請求項３】
請求項１記載の情報処理装置において、
前記ＣＰＵは、
それぞれの割り込み処理の種類に対応するキャッシュメモリの使用優先レベルを保持する複数の割り込み優先レベルレジスタと、
前記複数の割り込み優先レベルレジスタ、及び前記プロセス優先レベルレジスタの中のいずれかを選択する選択器と、を備え、
前記それぞれの割り込み処理中のキャッシュミス時に、
前記選択器は、前記複数の割り込み優先レベルレジスタから処理中の割り込み処理に対応する割り込み優先レベルレジスタを選択し、
前記置き換え判定部は、前記選択された割り込み優先レベルレジスタの保持する使用優先レベルより低い優先レベルを保持するバンク優先レベルレジスタに対応するバンクから、前記置き換えバンクを選択する、
ことを特徴とする情報処理装置。
【請求項４】
請求項１記載の情報処理装置において、
前記ＣＰＵは、複数のスレッドを並列に実行するものであって、
前記各スレッドに対応するそれぞれのキャッシュメモリの使用優先レベルを保持する複数のプロセス優先レベルレジスタと、
前記スレッドを切り替え、前記複数のプロセス優先レベルレジスタから、切替えたプロセスに対応するプロセス優先レベルレジスタを選択するプロセス切り替え部と、を備え、
前記各スレッド実行中のキャッシュミス時に、
前記置き換え判定部は、前記選択されたプロセス優先レベルレジスタの保持する使用優先レベルより低い優先レベルを保持するバンク優先レベルレジスタに対応するバンクから、前記置き換えバンクを選択する、
ことを特徴とする情報処理装置。
【請求項５】
請求項１記載の情報処理装置において、
仮想記憶空間を識別するプロセスＩＤレジスタの一部を、プロセス優先レベルとして使用する、ことを特徴とする情報処理装置。
【請求項６】
キャッシュメモリを有する情報処理装置の制御方法であって、
１つ以上のプログラムを実行し、前記各プログラムのキャッシュメモリの使用優先レベルを決定するＣＰＵと、
前記ＣＰＵ内に設けられ、前記決定された各プログラムのキャッシュメモリの使用優先レベルを保持する優先レベル保持手段と、
前記ＣＰＵ内に設けられ、該ＣＰＵで実行されているプログラムの、前記キャッシュメモリの使用優先レベルを保持するプロセス優先レベルレジスタと、
複数のバンクを備えたセットアソシアティブ方式のキャッシュメモリと、
前記キャッシュメモリ内に設けられ、前記バンクのそれぞれの使用優先レベルをそれぞれ保持する複数のバンク優先レベルレジスタと、
前記キャッシュメモリ内に設けられ、前記ＣＰＵから該キャッシュメモリへのアクセスに際してキャッシュミスのあったとき、前記プロセス優先レベルレジスタの保持する使用優先レベルより低い優先レベルを保持する前記バンク優先レベルレジスタに対応するバンクから、置き換えバンクを選択する置き換え判定部とを備え、
少なくとも、すべてのプロセスのキャッシュメモリの使用優先レベルを決定するステップと、
前記決定された使用優先レベルを前記優先レベル保持手段に保持させるステップと、
プロセス切り替えの際に、そのプロセスに対応する使用優先レベルを前記優先レベル保持手段から取り出し、前記キャッシュメモリの使用優先レベルとして前記プロセス優先レベルレジスタに設定するステップと、を有する、
ことを特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置に関し、特にキャッシュメモリを有する情報処理装置に関するものである。
【０００２】
【従来の技術】
キャッシュメモリはメインメモリへのアクセスを高速化するために使用される階層化メモリ技術である。キャッシュメモリにはメインメモリのコピーが置かれ、処理装置はメインメモリをアクセスする代わりに、このキャッシュメモリをアクセスすることによって高速化される。
【０００３】
通常、キャッシュメモリは、メインメモリに対して小さい記憶領域しか持たないためにキャッシュメモリ上に効率良くメインメモリの一部の領域を保持することが情報処理装置全体の高速化につながる。
【０００４】
また、キャッシュメモリ上にアクセスデータが存在しない場合、つまりキャッシュミスの時に、キャッシュメモリの複数の置き換え候補となるブロックから置き換え対象となるブロックを選択し、そのブロックを必要に応じてライトバックし、メインメモリからのデータをキャッシュメモリにコピーすることによって動作する。そして、この置き換え対象となるブロックを選択する方法としては、ＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）や、ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）などの方法がある。これらは、プログラムの振舞に基づいて決定されるものである。
【０００５】
さらに、従来の情報処理装置におけるキャッシュメモリは、データアクセスを行なう処理装置の種別や、データアクセスのアドレス範囲などで置き換えるブロックを選択するなどしている（例えば、特許文献１参照。）。これは、情報処理装置として、複数のプログラムが動作する場合に、特定のプログラムや、例えばＤＭＡなどの特定の処理に対してキャッシュメモリの優先度を変えることにより、情報処理装置全体での効率を向上させるものである。
【０００６】
【特許文献１】
特開平１０−１９８６０４号公報（請求項３、請求項４）
【０００７】
【発明が解決しようとする課題】
従来の情報処理装置におけるキャッシュメモリの構成では、ＣＰＵの実行するプログラムについて、ＤＭＡなどのＩ／Ｏ処理によりそのキャッシュの使用優先度を上げることとした。
【０００８】
一方、ＣＰＵの処理性能が向上し、複数の処理／プロセスを切替えながら同時に実行することが求められているシステムにおいては、プロセスの切替を頻繁に行なう必要があるので、実行中のプロセスが他のプロセスのデータをキャッシュから追い出してしまう。そのため、各プロセスの実行時間の予測および制御が困難になり、情報処理装置全体の効率を落してしまうという課題がある。
【０００９】
従来のキャッシュの使用優先度の制御方法のように、アドレス空間をプロセス毎に切り分けることによってこの課題に対応する場合、プロセス毎にアドレス空間を切り分けなければならないため、プログラム設計が非常に複雑になるという課題がある。近年のプログラム規模の増大により、これは一層大きな課題となっている。
【００１０】
本発明は、上記の課題に鑑みてなされたもので、ＣＰＵが複数のプロセスを切替えながら同時に実行する場合にも、プロセスに対するキャッシュメモリの使用効率を柔軟に制御できる置き換えを行なうことのできる情報処理装置、及びその制御方法を提供することを目的とするものである。
【００１１】
【課題を解決するための手段】
上記の課題を解決するために、本発明の請求項１に記載の情報処理装置は、キャッシュメモリを有する情報処理装置において、１つ以上のプログラムを実行し、前記プログラムのキャッシュメモリの使用優先レベルを決定するＣＰＵと、前記ＣＰＵ内に設けられ、前記決定された各プログラムのキャッシュメモリの使用優先レベルを保持する優先レベル保持手段と、前記ＣＰＵ内に設けられ、該ＣＰＵで実行されているプログラムの、前記キャッシュメモリの使用優先レベルを保持するプロセス優先レベルレジスタと、複数のバンクを備えたセットアソシアティブ方式のキャッシュメモリと、前記キャッシュメモリ内に設けられ、該キャッシュメモリの各バンクのそれぞれの使用優先レベルをそれぞれ保持する複数のバンク優先レベルレジスタと、前記キャッシュメモリ内に設けられ、前記ＣＰＵから該キャッシュメモリへのアクセスに際し、該キャッシュメモリ上にアクセスデータが存在しないキャッシュミスのとき、前記プロセス優先レベルレジスタの保持する使用優先レベルより低い優先レベルを保持する前記バンク優先レベルレジスタに対応するバンクから、置き換えバンクを選択する置き換え判定部とを備えたものである。
【００１２】
この構成によれば、キャッシュミスを起こしたプログラムのアクセスによって、そのプログラムのキャッシュ使用優先レベルより高い優先レベルをもつプログラムのキャッシュメモリは置き換え対象とならないので、プロセス切替えによるキャッシュメモリの置き換えを制御可能とし、キャッシュ使用優先レベルの高いプログラムのデータが、低いキャッシュ使用優先レベルをもつプログラムの実行によって追い出されないことになる。
【００１３】
本発明の請求項２に記載の情報処理装置は、請求項１記載の情報処理装置において、前記ＣＰＵは、前記キャッシュメモリの使用優先レベルを保持する特権優先レベルレジスタと、前記特権優先レベルレジスタと、プロセス優先レベルレジスタとのいずれかを選択する選択器と、を備え、前記ＣＰＵが特権レベルのプログラムを実行している場合のキャッシュミス時、前記選択器は、前記特権優先レベルレジスタを選択し、前記置き換え判定部は、前記選択された特権優先レベルレジスタの保持する使用優先レベルより低い優先レベルを保持するバンク優先レベルレジスタに対応するバンクから、前記置き換えバンクを選択するものである。
【００１４】
この構成によれば、通常レベルで実行中のプログラムに対して発生する例外処理や割り込み処理において、その処理ハンドラを実行するために特権レベルに遷移する場合、例えば、特権レベルのスタックなどがキャッシュメモリから追い出されないようにすることができる。
【００１５】
本発明の請求項３に記載の情報処理装置は、請求項１記載の情報処理装置において、前記ＣＰＵは、それぞれの割り込み処理の種類に対応するキャッシュメモリの使用優先レベルを保持する複数の割り込み優先レベルレジスタと、前記複数の割り込み優先レベルレジスタ、及び前記プロセス優先レベルレジスタの中のいずれかを選択する選択器と、を備え、前記それぞれの割り込み処理中のキャッシュミス時に、前記選択器は、前記複数の割り込み優先レベルレジスタから処理中の割り込み処理に対応する割り込み優先レベルレジスタを選択し、前記置き換え判定部は、前記選択された割り込み優先レベルレジスタの保持する使用優先レベルより低い優先レベルを保持するバンク優先レベルレジスタに対応するバンクから、前記置き換えバンクを選択するものである。
【００１６】
この構成によれば、ＣＰＵが割り込み処理中である場合に、その割り込みの種類に対応したキャッシュメモリの使用優先レベルを設定することが可能になるので、例えば、非常に処理時間のタイミングに厳しい割り込み処理に対して前記優先レベルを高く設定することにより、情報処理装置のリアルタイム性の保証を可能にするものである。
【００１７】
本発明の請求項４に記載の情報処理装置は、請求項１記載の情報処理装置において、前記ＣＰＵは、複数のスレッドを並列に実行するものであって、前記各スレッドに対応するそれぞれのキャッシュメモリの使用優先レベルを保持する複数のプロセス優先レベルレジスタと、前記スレッドを切り替え、前記複数のプロセス優先レベルレジスタから、切替えたプロセスに対応するプロセス優先レベルレジスタを選択するプロセス切り替え部と、を備え、前記各スレッド実行中のキャッシュミス時に、前記置き換え判定部は、前記選択されたプロセス優先レベルレジスタの保持する使用優先レベルより低い優先レベルを保持するバンク優先レベルレジスタに対応するバンクから、前記置き換えバンクを選択するものである。
【００１８】
この構成によれば、並列実行されるスレッド毎にキャッシュメモリの使用優先レベルを設定することが可能になり、複数のスレッド間においても、キャッシュメモリの使用優先レベルの高いスレッドのデータは、優先レベルの低いスレッドで発生するキャッシュミスによって置き換わらないように制御可能となる。
【００１９】
本発明の請求項５に記載の情報処理装置は、請求項１記載の情報処理装置において、仮想記憶空間を識別するプロセスＩＤレジスタの一部を、プロセス優先レベルとして使用するものである。
【００２０】
この構成によれば、プロセスＩＤレジスタの一部をプロセス優先レベルとして使用することにより、ハードウェア量の増加を削減することが可能となる。
【００２１】
本発明の請求項６に記載の情報処理装置の制御方法は、キャッシュメモリを有する情報処理装置の制御方法であって、１つ以上のプログラムを実行し、前記各プログラムのキャッシュメモリの使用優先レベルを決定するＣＰＵと、前記ＣＰＵ内に設けられ、前記決定された各プログラムのキャッシュメモリの使用優先レベルを保持する優先レベル保持手段と、前記ＣＰＵ内に設けられ、該ＣＰＵで実行されているプログラムの、前記キャッシュメモリの使用優先レベルを保持するプロセス優先レベルレジスタと、複数のバンクを備えたセットアソシアティブ方式のキャッシュメモリと、前記キャッシュメモリ内に設けられ、前記バンクのそれぞれの使用優先レベルをそれぞれ保持する複数のバンク優先レベルレジスタと、前記キャッシュメモリ内に設けられ、前記ＣＰＵから該キャッシュメモリへのアクセスに際してキャッシュミスのあったとき、前記プロセス優先レベルレジスタの保持する使用優先レベルより低い優先レベルを保持する前記バンク優先レベルレジスタに対応するバンクから、置き換えバンクを選択する置き換え判定部とを備え、少なくとも、すべてのプロセスのキャッシュメモリの使用優先レベルを決定するステップと、前記決定された使用優先レベルを前記優先レベル保持手段に保持させるステップと、プロセス切り替えの際に、そのプロセスに対応する使用優先レベルを前記優先レベル保持手段から取り出し、前記キャッシュメモリの使用優先レベルとして前記プロセス優先レベルレジスタに設定するステップと、を有することを特徴とする制御方法である。
この構成によれば、情報処理装置を容易に制御することができる。
【００２２】
【発明の実施の形態】
以下、本発明の実施の形態について図面を用いて説明する。
（実施の形態１）
図１は、本発明の実施の形態１による情報処理装置の概略構成を示す図であって、図において、１はＣＰＵ、１００はＣＰＵ１の実行するプログラムのキャッシュメモリ使用優先レベルを保持するプロセス優先レベルレジスタ、３はメモリである。
【００２３】
２はキャッシュメモリで、バンク２００、２１０、２２０、２３０と、キャッシュミスのとき、前記複数のバンクから置き換えバンクを選択する置き換え判定部２０５と、キャッシュメモリ２の統括的な制御を行う制御部２０３とを含んで構成されている。
【００２４】
バンク２００は、メモリ３から読み出したデータを格納するデータメモリ２０２と、データメモリ２０２に格納されているデータが記憶されていたメモリ３上の領域のアドレスを格納するタグメモリ２０１と、バンク２００の使用優先レベルを保持するバンク優先レベルレジスタ２０４とから構成される。バンク２００、２１０、２２０、２３０は同じ構成を有するものである。即ち、キャッシュメモリ２は４ウェイセットアソシアティブ方式のメモリである。
【００２５】
次に、上記のように構成されている本実施の形態１による情報処理装置の動作について、説明する。
ＣＰＵ１からアクセスがあった場合に、制御部２０３は、バンク２００〜２３０をアクセスし、キャッシュヒットした場合は、そのヒットしたバンクに対してアクセスを完了させる。
【００２６】
キャッシュミスの場合、置き換え判定部２０５は、以下のように動作する。
（ステップ１）  プロセス優先レベルレジスタ１００と、バンク２００〜２３０のそれぞれのバンク優先レベルレジスタ２０４、２１４、２２４、２３４とを比較し、プロセス優先レベルレジスタ１００より低い前記バンク優先レベルレジスタをもつバンクを抽出する。
【００２７】
（ステップ２）  ステップ１で抽出されたバンクが無い場合、制御部２０３に置き換え対象バンクが無いことを通知して終了する。ステップ１で抽出されたバンクがある場合は、ステップ３に進む。
【００２８】
（ステップ３）  ステップ１で抽出されたバンクの中に無効なデータを保持するバンクがある場合は、その無効なデータを保持するバンクの中から一つのバンクを選択し、置き換え対象として制御部２０３に通知する。ステップ１で抽出されたバンクの中に無効なデータを保持するバンクが無い場合は、ステップ４に進む。
【００２９】
（ステップ４）  ステップ１で抽出されたバンクの中から一つのバンクを選択し、置き換え対象として制御部２０３に通知する。
【００３０】
置き換え対象バンクが通知された場合は、制御部２０３は、メモリ３からアクセス対象のブロックを読み出して、置き換え対象のバンクに書き込み、ＣＰＵ１にアクセス対象のデータを供給するか、あるいは、前記ＣＰＵ１からのアクセス対象のデータを前記置き換え対象のバンクに対して更新することによりアクセスを完了させる。この一連の動作を置き換え動作とする。
【００３１】
また、置き換え対象バンクが無いことを通知された場合は、制御部２０３は、メモリ３に対してアクセスを行ない結果をＣＰＵ１に通知してアクセスを完了する。
【００３２】
もちろん、置き換え対象となるデータに対してメモリ３への書き戻し動作が必要な場合は、制御部２０３がそれを行なうのは、一般のキャッシュメモリの動作と同様である。
【００３３】
なお、プロセス優先レベルレジスタ１００の保持する優先レベルより低い優先レベルを保持するバンク優先レベルレジスタに対応するバンクが複数ある場合に、それらから一つのバンクを選択する方式は、ＬＲＵ方式やＦＩＦＯ方式などを用いると良く、本発明はこれを限定するものではない。
【００３４】
以上のように、本実施の形態１による情報処理装置では、ＣＰＵ１で実行中のプログラムのキャッシュメモリの使用優先レベルをプロセス優先レベルレジスタ１００に設定し、キャッシュメモリ２の各バンクの使用優先レベルを、各バンク２００〜２３０のバンク優先レベルレジスタ２０４、２１４、２２４、２３４に適当に設定することにより、ＣＰＵ１で実行中のプログラムがキャッシュミスを起こした場合に、ＣＰＵ１で実行中のプログラムのキャッシュメモリの使用優先レベルより高い優先レベルをもつプログラムの、キャッシュメモリにあるデータが、置き換えの対象になるのを避けることができる。これにより、キャッシュメモリの使用優先レベルの高いプログラムの実行時間が、キャッシュメモリの使用優先レベルの低いプログラムの影響を受けずにすむために、効率良いシステム設計を行なうことができる。
【００３５】
（実施の形態２）
図２は、本実施の形態２による情報処理装置の概略構成を示す図であって、図２において、図１と同一物には同一符号を付しており、その説明を省略する。
図２において、特権優先レベルレジスタ１２０は、ＣＰＵ１が特権レベルのプログラムを実行しているときの、該特権レベルのプログラムのキャッシュメモリの使用優先レベルを保持するレジスタである。セレクタ１１０は、ＣＰＵ１が特権レベルのときは、特権優先レベルレジスタ１２０を選択して、キャッシュメモリ２に供給し、ＣＰＵ１が特権レベルでないときは、前記プロセス優先レベルレジスタ１００を選択して、キャッシュメモリ２に供給する。
【００３６】
この構成によれば、ＣＰＵ１が特権レベルでないプログラムを実行しているときには、実施の形態１に示した情報処理装置と同様の動作を行なうが、割り込みの発生などによってＣＰＵ１が特権レベルに遷移した場合には、制御プログラムの介在無く、ただちに特権優先レベルレジスタ１２０の保持する優先レベルが、キャッシュメモリの使用優先レベルとして使用されることになる点のみが異なる。
【００３７】
このように、本実施の形態２による情報処理装置では、前述実施の形態１に説明した情報処理装置に加え、ＣＰＵ１が特権レベルのときに使用する特権優先レベルレジスタ１２０及びそれを選択する選択器１１０を備えるようにしたので、たとえば、特権レベル優先レベルレジスタ１２０に高い優先レベルを設定することにより、プロセス優先レベルレジスタ１００に低い優先レベルが設定されている状態から、割り込みなどの発生により、ＣＰＵ１が特権レベルに遷移した場合においても、一般的にクリティカルな処理である特権レベルの処理を高いキャッシュメモリの使用優先レベルで実行することが可能となる。
【００３８】
（実施の形態３）
図３は、本実施の形態３による情報処理装置の概略構成図であり、図３において図１、図２と同一物には同一符号を付してあり、その説明を省略する。
前述実施の形態２で説明したように、一般に割り込み処理などで特権レベルに遷移した場合は、処理がクリティカルであるために、キャッシュメモリ２の使用優先レベルが高い方が好ましいが、割り込み処理の種類によっては、クリティカルである度合が違うために、全ての割り込み処理の優先レベルを高くする必要が無いこともある。そのような場合は、あまりクリティカルでない割り込み処理によってキャッシュメモリ２のデータが置き換えられてしまうために情報処理装置としての効率を落すこともある。本実施の形態３による情報処理装置は、この問題を解決するものである。
【００３９】
図３において、図１と異なる点は、ＣＰＵ１が割り込み処理０を実行中にキャッシュメモリ２の使用優先レベルとして選択される割り込み優先レベルレジスタ１３０と、ＣＰＵ１が割り込み処理１を実行中にキャッシュメモリ２の使用優先レベルとして選択される割り込み優先レベルレジスタ１３１と、及びそれらを選択する選択器１１０とを備えたところである。
【００４０】
このように、本実施の形態３による情報処理装置では、割り込み処理の種類に応じてそれぞれキャッシュメモリの使用優先レベルを設定できる割り込み優先レベルレジスタ１３０、１３１を設けるようにしたことにより、割り込み処理のクリティカルの度合に合わせてキャッシュメモリ２の使用効率を制御することが可能である。
【００４１】
（実施の形態４）
図４は、本実施の形態４による情報処理装置の概略構成図であり、図１、図２と同一物には同一符号を付してあり、その説明を省略する。
図４において、ＣＰＵ１は、２つのスレッドを同時に切替えながら実行する、いわゆるマルチスレッド型のＣＰＵであり、１４０は、そのスレッドを切替えるプロセス切替部である。また、図１に示した情報処理装置の構成に加えて、第２のプロセス優先レベルレジスタ１０１を備えている。これは、ＣＰＵ１で同時に実行される第１のスレッドに対応するプロセス優先レベルレジスタ１００と、第２のスレッドに対応するプロセス優先レベルレジスタ１０１として構成され、それぞれのスレッドのキャッシュメモリの使用優先レベルを保持するものである。また、前記プロセス切替部１４０によって、ＣＰＵ１からのキャッシュメモリ２に対するアクセスには、第１のスレッドの実行によるものであればプロセス優先レベルレジスタ１００が、第２のスレッドの実行によるものであればプロセス優先レベルレジスタ１０１が選択されキャッシュメモリ２に与えられるよう構成し、その他は、実施の形態１に説明したものと同様に動作するものである。
【００４２】
このように、本実施の形態４による情報処理装置では、ＣＰＵ１を２つのスレッドを同時に切替えながら実行するマルチスレッド型のＣＰＵとし、第１のスレッドの実行時に選択される第１のプロセス優先レベルレジスタ１００と、第２のスレッドの実行時に選択される第２のプロセス優先レベルレジスタ１０１を、プロセス切替部１４０によって切替えてキャッシュメモリ２へキャッシュメモリの使用優先レベルとして供給する構成とすることにより、ＣＰＵがマルチスレッド型の場合でも、同時に実行される複数のプロセスのキャッシュメモリの使用優先レベルを制御することを可能にし、高いキャッシュメモリ使用優先レベルをもつプロセスのデータが、低いキャッシュメモリ使用優先レベルをもつプロセスの実行時に発生するキャッシュミスにより置き換えの対象になるのを回避することができる。
【００４３】
なお、実施の形態４では、ＣＰＵ１の同時実行可能なスレッド数は２としたが、本発明はこれを限定するものでないことは明らかである。
【００４４】
（実施の形態５）
図５は、本実施の形態５による情報処理装置の制御方法を示すフローチャートである。ここでは、説明のために実施の形態１で説明した情報処理装置を制御するものとして説明する。
図５において、５０１は各プロセスの使用優先レベルを決定する優先レベル決定ステップ、５０２はプロセス切り替えを判断するステップ、５０３は切り替えるプロセスを選択するステップ、５０４は現在実行中のプロセスのコンテキストを退避するステップ、５０５は前記キャッシュメモリの使用優先レベルを優先レベル保持手段５１０から読み出すステップ、５０６は前記優先レベル読み出しステップ５０５で読み出した前記キャッシュメモリの使用優先レベルを設定するステップ、５０７は選択されたプロセスのコンテキストを復帰するステップをそれぞれ表す。なお、５１０は、優先レベル決定ステップ５０１では決定された各プロセスの使用優先レベルを保持する優先レベル保持手段を示している。
【００４５】
以下、各ステップにおいて実行する処理についてそれぞれ説明する。
ステップ５０１：  システムのすべてのプロセスに対して、キャッシュメモリの使用優先レベルを決定する。決定したプロセス毎のキャッシュメモリの使用優先レベルは、優先レベル保持手段５１０に格納する。また、キャッシュメモリのバンクの優先レベルをプロセスの優先度に合わせてバンク優先レベルレジスタ２０４、２１４、２２４、２３４に適切に設定する。ステップ５０２に進む。
ステップ５０２：プロセスを切り替えるかどうかを判断する。切り替えを行う場合は、ステップ５０３に進む。
ステップ５０３：次に切り替えるプロセスＡを選択する。ステップ５０４に進む。
ステップ５０４：現在実行中のプロセスＢのコンテキストを退避する。ステップ５０５に進む。
ステップ５０５：ステップ５０３で選択されたプロセスＡに対応する、キャッシュメモリの使用優先レベルを優先レベル保持手段５１０から読み出す。ステップ５０６に進む。
ステップ５０６：ステップ５０５で読み出した使用優先レベルをプロセス優先レベルレジスタ１００に設定する。ステップ５０７に進む。
ステップ５０７：ステップ５０３で選択したプロセスＡのコンテキストを復帰する。
【００４６】
このように、本実施の形態５による情報処理装置の制御方法によれば、プロセスに対するキャッシュメモリの使用優先レベルを決定して優先レベル保持手段５１０に格納し、プロセス切り替えの際に、前記優先レベル保持手段５１０から次に切り替えるプロセスに対応する使用優先レベルを読み出して、プロセス優先レベルレジスタに設定し、該使用優先レベルをもとに、置換えバンクを選択するようにしたので、実施の形態１に説明した情報処理装置を容易に制御することが可能となる。
【００４７】
なお、実施の形態の説明では、データキャッシュの動作をもって説明したが、本発明は、これをデータキャッシュに限定するものではなく、命令キャッシュや、共用キャッシュに対しても実施可能であることは明らかである。
【００４８】
また、情報処理装置がたとえば、仮想記憶をサポートしていて、その仮想記憶を識別するためにプロセスＩＤレジスタを備えている場合は、これの一部を本発明のプロセス優先レベルレジスタとして使用することにより、追加のハードウェア量を削減することが可能である。また、この場合、異なるプロセスに対して、同じキャッシュメモリの使用優先レベルを割り当てるために、プロセスＩＤレジスタの上位から複数ビットをプロセス優先レベルレジスタとして使用することが好ましい。
【００４９】
【発明の効果】
以上のように、本発明の請求項１に係る情報処理装置によれば、キャッシュメモリの使用優先レベルが高いプログラムのデータが、キャッシュメモリの使用優先レベルの低いプログラムのキャッシュミスにより置き換えられることを防ぐことが可能となり、キャッシュメモリの使用優先レベルの高いプログラムは、優先レベルの低いプログラムの影響を受けずに実行するのが可能になるため、優先度の高いプログラムの実行時間を予測可能とする前提でシステム設計をすることができるという効果が得られる。
【００５０】
また、本発明の請求項２に係る情報処理装置によれば、ＣＰＵが特権レベルのプロセスを実行しているときのキャッシュメモリの使用優先レベルを保持する特権優先レベルレジスタを備え、特権レベルであるときは、プロセス優先レベルレジスタの代わりに特権優先レベルレジスタを選択してキャッシュメモリの置換えバンクを選択することにより、例外処理などのタイミングが厳しい処理におけるキャッシュメモリの使用優先レベルを高くして、キャッシュメモリの使用優先レベルが低いプログラムの実行中に割り込みが入った場合でも、キャッシュメモリの使用優先レベルをただちに変更可能とすることができ、キャッシュメモリを効率良く使用することが可能になるという効果が得られる。
【００５１】
本発明の請求項３に係る情報処理装置によれば、割り込み処理の種類に対応する、キャッシュメモリの使用優先レベルを保持する割り込み優先レベルレジスタを備えることにより、割り込み処理のうち実行タイミング制約の厳しいものに対するキャッシュメモリの使用優先レベルを高くすることを可能にし、さらに効率良くキャッシュメモリの使用を制御することができるという効果が得られる。
【００５２】
本発明の請求項４に係る情報処理装置によれば、ＣＰＵがマルチスレッド型の場合においても、同時に実行するスレッドのそれぞれに対応する前記プロセス優先レベルレジスタから、プロセス切替部によって、実行状態のスレッドに対応するものを選択してキャッシュメモリに供給することにより、プロセス毎のキャッシュメモリの使用優先レベルに基づいてキャッシュメモリの置き換え対象のバンクを選択することを可能とするという効果が得られる。
【００５３】
本発明の請求項５に係る情報処理装置によれば、請求項１記載の情報処理装置において、仮想記憶空間を識別するプロセスＩＤレジスタの一部を、プロセス優先レベルとして使用するようにしたので、追加のハードウェア量を削減することができるという効果が得られる。
【００５４】
本発明の請求項６に係る情報処理装置の制御方法によれば、最初にプロセスに対するキャッシュメモリの使用優先レベルを決定して、優先レベル保持手段に格納し、プロセス切り替えの際に前記優先レベル保持手段から優先レベルを読み出して設定することによって、請求項１に記載の情報処理装置を容易に制御することができるという効果が得られる。
【図面の簡単な説明】
【図１】本発明の実施の形態１による情報処理装置の概略構成図である。
【図２】本発明の実施の形態２による情報処理装置の概略構成図である。
【図３】本発明の実施の形態３による情報処理装置の概略構成図である。
【図４】本発明の実施の形態４による情報処理装置の概略構成図である。
【図５】本発明の実施の形態５による情報処理装置の制御方法を説明するフローチャートである。
【符号の説明】
１  ＣＰＵ
２  キャッシュメモリ
３  メモリ
１００、１０１  プロセス優先レベルレジスタ
１１０  選択器
１２０  特権優先レベルレジスタ
１３０、１３１  割り込み優先レベルレジスタ
１４０  プロセス切り替え部
２００、２１０、２２０、２３０  バンク
２０１  タグメモリ
２０２  データメモリ
２０３  制御部
２０４  バンク優先レベルレジスタ
２０５  置き換え判定部
５１０  優先レベル保持手段
【図１】
2004326187.tif 000003
【図２】
2004326187.tif 000004
【図３】
2004326187.tif 000005
【図４】
2004326187.tif 000006
【図５】
2004326187.tif 000007