JP2004326187A - 情報処理装置およびその制御方法 - Google Patents
情報処理装置およびその制御方法 Download PDFInfo
- Publication number
- JP2004326187A JP2004326187A JP2003116114A JP2003116114A JP2004326187A JP 2004326187 A JP2004326187 A JP 2004326187A JP 2003116114 A JP2003116114 A JP 2003116114A JP 2003116114 A JP2003116114 A JP 2003116114A JP 2004326187 A JP2004326187 A JP 2004326187A
- Authority
- JP
- Japan
- Prior art keywords
- priority level
- cache memory
- bank
- register
- information processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【課題】複数のプロセスを切り替えて実行する場合に、優先度の低いプロセスが優先度の高いプロセスのキャッシュメモリ中のデータを追い出してしまうことにより、優先度の高いプロセスの実行時間の予測が困難になる。
【解決手段】CPU1により実行されるプロセスのキャッシュメモリ使用優先レベルを保持するプロセス優先レベルレジスタ100と、キャッシュメモリ2のそれぞれのバンクの使用優先レベルを保持するバンク優先レベルレジスタ204、214,224,234と、キャッシュミスのとき、前記複数のバンクから置き換えバンクを選択する置き換え判定部とを備え、前記置き換え判定部は、プロセス優先レベルレジスタ100より低い優先レベルを保持するバンク優先レベルレジスタをもつバンクから、置き換え対象バンクを選択するように構成した。
【選択図】 図1
【解決手段】CPU1により実行されるプロセスのキャッシュメモリ使用優先レベルを保持するプロセス優先レベルレジスタ100と、キャッシュメモリ2のそれぞれのバンクの使用優先レベルを保持するバンク優先レベルレジスタ204、214,224,234と、キャッシュミスのとき、前記複数のバンクから置き換えバンクを選択する置き換え判定部とを備え、前記置き換え判定部は、プロセス優先レベルレジスタ100より低い優先レベルを保持するバンク優先レベルレジスタをもつバンクから、置き換え対象バンクを選択するように構成した。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、情報処理装置に関し、特にキャッシュメモリを有する情報処理装置に関するものである。
【0002】
【従来の技術】
キャッシュメモリはメインメモリへのアクセスを高速化するために使用される階層化メモリ技術である。キャッシュメモリにはメインメモリのコピーが置かれ、処理装置はメインメモリをアクセスする代わりに、このキャッシュメモリをアクセスすることによって高速化される。
【0003】
通常、キャッシュメモリは、メインメモリに対して小さい記憶領域しか持たないためにキャッシュメモリ上に効率良くメインメモリの一部の領域を保持することが情報処理装置全体の高速化につながる。
【0004】
また、キャッシュメモリ上にアクセスデータが存在しない場合、つまりキャッシュミスの時に、キャッシュメモリの複数の置き換え候補となるブロックから置き換え対象となるブロックを選択し、そのブロックを必要に応じてライトバックし、メインメモリからのデータをキャッシュメモリにコピーすることによって動作する。そして、この置き換え対象となるブロックを選択する方法としては、LRU(Least Recently Used)や、FIFO(First In First Out)などの方法がある。これらは、プログラムの振舞に基づいて決定されるものである。
【0005】
さらに、従来の情報処理装置におけるキャッシュメモリは、データアクセスを行なう処理装置の種別や、データアクセスのアドレス範囲などで置き換えるブロックを選択するなどしている(例えば、特許文献1参照。)。これは、情報処理装置として、複数のプログラムが動作する場合に、特定のプログラムや、例えばDMAなどの特定の処理に対してキャッシュメモリの優先度を変えることにより、情報処理装置全体での効率を向上させるものである。
【0006】
【特許文献1】
特開平10−198604号公報(請求項3、請求項4)
【0007】
【発明が解決しようとする課題】
従来の情報処理装置におけるキャッシュメモリの構成では、CPUの実行するプログラムについて、DMAなどのI/O処理によりそのキャッシュの使用優先度を上げることとした。
【0008】
一方、CPUの処理性能が向上し、複数の処理/プロセスを切替えながら同時に実行することが求められているシステムにおいては、プロセスの切替を頻繁に行なう必要があるので、実行中のプロセスが他のプロセスのデータをキャッシュから追い出してしまう。そのため、各プロセスの実行時間の予測および制御が困難になり、情報処理装置全体の効率を落してしまうという課題がある。
【0009】
従来のキャッシュの使用優先度の制御方法のように、アドレス空間をプロセス毎に切り分けることによってこの課題に対応する場合、プロセス毎にアドレス空間を切り分けなければならないため、プログラム設計が非常に複雑になるという課題がある。近年のプログラム規模の増大により、これは一層大きな課題となっている。
【0010】
本発明は、上記の課題に鑑みてなされたもので、CPUが複数のプロセスを切替えながら同時に実行する場合にも、プロセスに対するキャッシュメモリの使用効率を柔軟に制御できる置き換えを行なうことのできる情報処理装置、及びその制御方法を提供することを目的とするものである。
【0011】
【課題を解決するための手段】
上記の課題を解決するために、本発明の請求項1に記載の情報処理装置は、キャッシュメモリを有する情報処理装置において、1つ以上のプログラムを実行し、前記プログラムのキャッシュメモリの使用優先レベルを決定するCPUと、前記CPU内に設けられ、前記決定された各プログラムのキャッシュメモリの使用優先レベルを保持する優先レベル保持手段と、前記CPU内に設けられ、該CPUで実行されているプログラムの、前記キャッシュメモリの使用優先レベルを保持するプロセス優先レベルレジスタと、複数のバンクを備えたセットアソシアティブ方式のキャッシュメモリと、前記キャッシュメモリ内に設けられ、該キャッシュメモリの各バンクのそれぞれの使用優先レベルをそれぞれ保持する複数のバンク優先レベルレジスタと、前記キャッシュメモリ内に設けられ、前記CPUから該キャッシュメモリへのアクセスに際し、該キャッシュメモリ上にアクセスデータが存在しないキャッシュミスのとき、前記プロセス優先レベルレジスタの保持する使用優先レベルより低い優先レベルを保持する前記バンク優先レベルレジスタに対応するバンクから、置き換えバンクを選択する置き換え判定部とを備えたものである。
【0012】
この構成によれば、キャッシュミスを起こしたプログラムのアクセスによって、そのプログラムのキャッシュ使用優先レベルより高い優先レベルをもつプログラムのキャッシュメモリは置き換え対象とならないので、プロセス切替えによるキャッシュメモリの置き換えを制御可能とし、キャッシュ使用優先レベルの高いプログラムのデータが、低いキャッシュ使用優先レベルをもつプログラムの実行によって追い出されないことになる。
【0013】
本発明の請求項2に記載の情報処理装置は、請求項1記載の情報処理装置において、前記CPUは、前記キャッシュメモリの使用優先レベルを保持する特権優先レベルレジスタと、前記特権優先レベルレジスタと、プロセス優先レベルレジスタとのいずれかを選択する選択器と、を備え、前記CPUが特権レベルのプログラムを実行している場合のキャッシュミス時、前記選択器は、前記特権優先レベルレジスタを選択し、前記置き換え判定部は、前記選択された特権優先レベルレジスタの保持する使用優先レベルより低い優先レベルを保持するバンク優先レベルレジスタに対応するバンクから、前記置き換えバンクを選択するものである。
【0014】
この構成によれば、通常レベルで実行中のプログラムに対して発生する例外処理や割り込み処理において、その処理ハンドラを実行するために特権レベルに遷移する場合、例えば、特権レベルのスタックなどがキャッシュメモリから追い出されないようにすることができる。
【0015】
本発明の請求項3に記載の情報処理装置は、請求項1記載の情報処理装置において、前記CPUは、それぞれの割り込み処理の種類に対応するキャッシュメモリの使用優先レベルを保持する複数の割り込み優先レベルレジスタと、前記複数の割り込み優先レベルレジスタ、及び前記プロセス優先レベルレジスタの中のいずれかを選択する選択器と、を備え、前記それぞれの割り込み処理中のキャッシュミス時に、前記選択器は、前記複数の割り込み優先レベルレジスタから処理中の割り込み処理に対応する割り込み優先レベルレジスタを選択し、前記置き換え判定部は、前記選択された割り込み優先レベルレジスタの保持する使用優先レベルより低い優先レベルを保持するバンク優先レベルレジスタに対応するバンクから、前記置き換えバンクを選択するものである。
【0016】
この構成によれば、CPUが割り込み処理中である場合に、その割り込みの種類に対応したキャッシュメモリの使用優先レベルを設定することが可能になるので、例えば、非常に処理時間のタイミングに厳しい割り込み処理に対して前記優先レベルを高く設定することにより、情報処理装置のリアルタイム性の保証を可能にするものである。
【0017】
本発明の請求項4に記載の情報処理装置は、請求項1記載の情報処理装置において、前記CPUは、複数のスレッドを並列に実行するものであって、前記各スレッドに対応するそれぞれのキャッシュメモリの使用優先レベルを保持する複数のプロセス優先レベルレジスタと、前記スレッドを切り替え、前記複数のプロセス優先レベルレジスタから、切替えたプロセスに対応するプロセス優先レベルレジスタを選択するプロセス切り替え部と、を備え、前記各スレッド実行中のキャッシュミス時に、前記置き換え判定部は、前記選択されたプロセス優先レベルレジスタの保持する使用優先レベルより低い優先レベルを保持するバンク優先レベルレジスタに対応するバンクから、前記置き換えバンクを選択するものである。
【0018】
この構成によれば、並列実行されるスレッド毎にキャッシュメモリの使用優先レベルを設定することが可能になり、複数のスレッド間においても、キャッシュメモリの使用優先レベルの高いスレッドのデータは、優先レベルの低いスレッドで発生するキャッシュミスによって置き換わらないように制御可能となる。
【0019】
本発明の請求項5に記載の情報処理装置は、請求項1記載の情報処理装置において、仮想記憶空間を識別するプロセスIDレジスタの一部を、プロセス優先レベルとして使用するものである。
【0020】
この構成によれば、プロセスIDレジスタの一部をプロセス優先レベルとして使用することにより、ハードウェア量の増加を削減することが可能となる。
【0021】
本発明の請求項6に記載の情報処理装置の制御方法は、キャッシュメモリを有する情報処理装置の制御方法であって、1つ以上のプログラムを実行し、前記各プログラムのキャッシュメモリの使用優先レベルを決定するCPUと、前記CPU内に設けられ、前記決定された各プログラムのキャッシュメモリの使用優先レベルを保持する優先レベル保持手段と、前記CPU内に設けられ、該CPUで実行されているプログラムの、前記キャッシュメモリの使用優先レベルを保持するプロセス優先レベルレジスタと、複数のバンクを備えたセットアソシアティブ方式のキャッシュメモリと、前記キャッシュメモリ内に設けられ、前記バンクのそれぞれの使用優先レベルをそれぞれ保持する複数のバンク優先レベルレジスタと、前記キャッシュメモリ内に設けられ、前記CPUから該キャッシュメモリへのアクセスに際してキャッシュミスのあったとき、前記プロセス優先レベルレジスタの保持する使用優先レベルより低い優先レベルを保持する前記バンク優先レベルレジスタに対応するバンクから、置き換えバンクを選択する置き換え判定部とを備え、少なくとも、すべてのプロセスのキャッシュメモリの使用優先レベルを決定するステップと、前記決定された使用優先レベルを前記優先レベル保持手段に保持させるステップと、プロセス切り替えの際に、そのプロセスに対応する使用優先レベルを前記優先レベル保持手段から取り出し、前記キャッシュメモリの使用優先レベルとして前記プロセス優先レベルレジスタに設定するステップと、を有することを特徴とする制御方法である。
この構成によれば、情報処理装置を容易に制御することができる。
【0022】
【発明の実施の形態】
以下、本発明の実施の形態について図面を用いて説明する。
(実施の形態1)
図1は、本発明の実施の形態1による情報処理装置の概略構成を示す図であって、図において、1はCPU、100はCPU1の実行するプログラムのキャッシュメモリ使用優先レベルを保持するプロセス優先レベルレジスタ、3はメモリである。
【0023】
2はキャッシュメモリで、バンク200、210、220、230と、キャッシュミスのとき、前記複数のバンクから置き換えバンクを選択する置き換え判定部205と、キャッシュメモリ2の統括的な制御を行う制御部203とを含んで構成されている。
【0024】
バンク200は、メモリ3から読み出したデータを格納するデータメモリ202と、データメモリ202に格納されているデータが記憶されていたメモリ3上の領域のアドレスを格納するタグメモリ201と、バンク200の使用優先レベルを保持するバンク優先レベルレジスタ204とから構成される。バンク200、210、220、230は同じ構成を有するものである。即ち、キャッシュメモリ2は4ウェイセットアソシアティブ方式のメモリである。
【0025】
次に、上記のように構成されている本実施の形態1による情報処理装置の動作について、説明する。
CPU1からアクセスがあった場合に、制御部203は、バンク200〜230をアクセスし、キャッシュヒットした場合は、そのヒットしたバンクに対してアクセスを完了させる。
【0026】
キャッシュミスの場合、置き換え判定部205は、以下のように動作する。
(ステップ1) プロセス優先レベルレジスタ100と、バンク200〜230のそれぞれのバンク優先レベルレジスタ204、214、224、234とを比較し、プロセス優先レベルレジスタ100より低い前記バンク優先レベルレジスタをもつバンクを抽出する。
【0027】
(ステップ2) ステップ1で抽出されたバンクが無い場合、制御部203に置き換え対象バンクが無いことを通知して終了する。ステップ1で抽出されたバンクがある場合は、ステップ3に進む。
【0028】
(ステップ3) ステップ1で抽出されたバンクの中に無効なデータを保持するバンクがある場合は、その無効なデータを保持するバンクの中から一つのバンクを選択し、置き換え対象として制御部203に通知する。ステップ1で抽出されたバンクの中に無効なデータを保持するバンクが無い場合は、ステップ4に進む。
【0029】
(ステップ4) ステップ1で抽出されたバンクの中から一つのバンクを選択し、置き換え対象として制御部203に通知する。
【0030】
置き換え対象バンクが通知された場合は、制御部203は、メモリ3からアクセス対象のブロックを読み出して、置き換え対象のバンクに書き込み、CPU1にアクセス対象のデータを供給するか、あるいは、前記CPU1からのアクセス対象のデータを前記置き換え対象のバンクに対して更新することによりアクセスを完了させる。この一連の動作を置き換え動作とする。
【0031】
また、置き換え対象バンクが無いことを通知された場合は、制御部203は、メモリ3に対してアクセスを行ない結果をCPU1に通知してアクセスを完了する。
【0032】
もちろん、置き換え対象となるデータに対してメモリ3への書き戻し動作が必要な場合は、制御部203がそれを行なうのは、一般のキャッシュメモリの動作と同様である。
【0033】
なお、プロセス優先レベルレジスタ100の保持する優先レベルより低い優先レベルを保持するバンク優先レベルレジスタに対応するバンクが複数ある場合に、それらから一つのバンクを選択する方式は、LRU方式やFIFO方式などを用いると良く、本発明はこれを限定するものではない。
【0034】
以上のように、本実施の形態1による情報処理装置では、CPU1で実行中のプログラムのキャッシュメモリの使用優先レベルをプロセス優先レベルレジスタ100に設定し、キャッシュメモリ2の各バンクの使用優先レベルを、各バンク200〜230のバンク優先レベルレジスタ204、214、224、234に適当に設定することにより、CPU1で実行中のプログラムがキャッシュミスを起こした場合に、CPU1で実行中のプログラムのキャッシュメモリの使用優先レベルより高い優先レベルをもつプログラムの、キャッシュメモリにあるデータが、置き換えの対象になるのを避けることができる。これにより、キャッシュメモリの使用優先レベルの高いプログラムの実行時間が、キャッシュメモリの使用優先レベルの低いプログラムの影響を受けずにすむために、効率良いシステム設計を行なうことができる。
【0035】
(実施の形態2)
図2は、本実施の形態2による情報処理装置の概略構成を示す図であって、図2において、図1と同一物には同一符号を付しており、その説明を省略する。
図2において、特権優先レベルレジスタ120は、CPU1が特権レベルのプログラムを実行しているときの、該特権レベルのプログラムのキャッシュメモリの使用優先レベルを保持するレジスタである。セレクタ110は、CPU1が特権レベルのときは、特権優先レベルレジスタ120を選択して、キャッシュメモリ2に供給し、CPU1が特権レベルでないときは、前記プロセス優先レベルレジスタ100を選択して、キャッシュメモリ2に供給する。
【0036】
この構成によれば、CPU1が特権レベルでないプログラムを実行しているときには、実施の形態1に示した情報処理装置と同様の動作を行なうが、割り込みの発生などによってCPU1が特権レベルに遷移した場合には、制御プログラムの介在無く、ただちに特権優先レベルレジスタ120の保持する優先レベルが、キャッシュメモリの使用優先レベルとして使用されることになる点のみが異なる。
【0037】
このように、本実施の形態2による情報処理装置では、前述実施の形態1に説明した情報処理装置に加え、CPU1が特権レベルのときに使用する特権優先レベルレジスタ120及びそれを選択する選択器110を備えるようにしたので、たとえば、特権レベル優先レベルレジスタ120に高い優先レベルを設定することにより、プロセス優先レベルレジスタ100に低い優先レベルが設定されている状態から、割り込みなどの発生により、CPU1が特権レベルに遷移した場合においても、一般的にクリティカルな処理である特権レベルの処理を高いキャッシュメモリの使用優先レベルで実行することが可能となる。
【0038】
(実施の形態3)
図3は、本実施の形態3による情報処理装置の概略構成図であり、図3において図1、図2と同一物には同一符号を付してあり、その説明を省略する。
前述実施の形態2で説明したように、一般に割り込み処理などで特権レベルに遷移した場合は、処理がクリティカルであるために、キャッシュメモリ2の使用優先レベルが高い方が好ましいが、割り込み処理の種類によっては、クリティカルである度合が違うために、全ての割り込み処理の優先レベルを高くする必要が無いこともある。そのような場合は、あまりクリティカルでない割り込み処理によってキャッシュメモリ2のデータが置き換えられてしまうために情報処理装置としての効率を落すこともある。本実施の形態3による情報処理装置は、この問題を解決するものである。
【0039】
図3において、図1と異なる点は、CPU1が割り込み処理0を実行中にキャッシュメモリ2の使用優先レベルとして選択される割り込み優先レベルレジスタ130と、CPU1が割り込み処理1を実行中にキャッシュメモリ2の使用優先レベルとして選択される割り込み優先レベルレジスタ131と、及びそれらを選択する選択器110とを備えたところである。
【0040】
このように、本実施の形態3による情報処理装置では、割り込み処理の種類に応じてそれぞれキャッシュメモリの使用優先レベルを設定できる割り込み優先レベルレジスタ130、131を設けるようにしたことにより、割り込み処理のクリティカルの度合に合わせてキャッシュメモリ2の使用効率を制御することが可能である。
【0041】
(実施の形態4)
図4は、本実施の形態4による情報処理装置の概略構成図であり、図1、図2と同一物には同一符号を付してあり、その説明を省略する。
図4において、CPU1は、2つのスレッドを同時に切替えながら実行する、いわゆるマルチスレッド型のCPUであり、140は、そのスレッドを切替えるプロセス切替部である。また、図1に示した情報処理装置の構成に加えて、第2のプロセス優先レベルレジスタ101を備えている。これは、CPU1で同時に実行される第1のスレッドに対応するプロセス優先レベルレジスタ100と、第2のスレッドに対応するプロセス優先レベルレジスタ101として構成され、それぞれのスレッドのキャッシュメモリの使用優先レベルを保持するものである。また、前記プロセス切替部140によって、CPU1からのキャッシュメモリ2に対するアクセスには、第1のスレッドの実行によるものであればプロセス優先レベルレジスタ100が、第2のスレッドの実行によるものであればプロセス優先レベルレジスタ101が選択されキャッシュメモリ2に与えられるよう構成し、その他は、実施の形態1に説明したものと同様に動作するものである。
【0042】
このように、本実施の形態4による情報処理装置では、CPU1を2つのスレッドを同時に切替えながら実行するマルチスレッド型のCPUとし、第1のスレッドの実行時に選択される第1のプロセス優先レベルレジスタ100と、第2のスレッドの実行時に選択される第2のプロセス優先レベルレジスタ101を、プロセス切替部140によって切替えてキャッシュメモリ2へキャッシュメモリの使用優先レベルとして供給する構成とすることにより、CPUがマルチスレッド型の場合でも、同時に実行される複数のプロセスのキャッシュメモリの使用優先レベルを制御することを可能にし、高いキャッシュメモリ使用優先レベルをもつプロセスのデータが、低いキャッシュメモリ使用優先レベルをもつプロセスの実行時に発生するキャッシュミスにより置き換えの対象になるのを回避することができる。
【0043】
なお、実施の形態4では、CPU1の同時実行可能なスレッド数は2としたが、本発明はこれを限定するものでないことは明らかである。
【0044】
(実施の形態5)
図5は、本実施の形態5による情報処理装置の制御方法を示すフローチャートである。ここでは、説明のために実施の形態1で説明した情報処理装置を制御するものとして説明する。
図5において、501は各プロセスの使用優先レベルを決定する優先レベル決定ステップ、502はプロセス切り替えを判断するステップ、503は切り替えるプロセスを選択するステップ、504は現在実行中のプロセスのコンテキストを退避するステップ、505は前記キャッシュメモリの使用優先レベルを優先レベル保持手段510から読み出すステップ、506は前記優先レベル読み出しステップ505で読み出した前記キャッシュメモリの使用優先レベルを設定するステップ、507は選択されたプロセスのコンテキストを復帰するステップをそれぞれ表す。なお、510は、優先レベル決定ステップ501では決定された各プロセスの使用優先レベルを保持する優先レベル保持手段を示している。
【0045】
以下、各ステップにおいて実行する処理についてそれぞれ説明する。
ステップ501: システムのすべてのプロセスに対して、キャッシュメモリの使用優先レベルを決定する。決定したプロセス毎のキャッシュメモリの使用優先レベルは、優先レベル保持手段510に格納する。また、キャッシュメモリのバンクの優先レベルをプロセスの優先度に合わせてバンク優先レベルレジスタ204、214、224、234に適切に設定する。ステップ502に進む。
ステップ502:プロセスを切り替えるかどうかを判断する。切り替えを行う場合は、ステップ503に進む。
ステップ503:次に切り替えるプロセスAを選択する。ステップ504に進む。
ステップ504:現在実行中のプロセスBのコンテキストを退避する。ステップ505に進む。
ステップ505:ステップ503で選択されたプロセスAに対応する、キャッシュメモリの使用優先レベルを優先レベル保持手段510から読み出す。ステップ506に進む。
ステップ506:ステップ505で読み出した使用優先レベルをプロセス優先レベルレジスタ100に設定する。ステップ507に進む。
ステップ507:ステップ503で選択したプロセスAのコンテキストを復帰する。
【0046】
このように、本実施の形態5による情報処理装置の制御方法によれば、プロセスに対するキャッシュメモリの使用優先レベルを決定して優先レベル保持手段510に格納し、プロセス切り替えの際に、前記優先レベル保持手段510から次に切り替えるプロセスに対応する使用優先レベルを読み出して、プロセス優先レベルレジスタに設定し、該使用優先レベルをもとに、置換えバンクを選択するようにしたので、実施の形態1に説明した情報処理装置を容易に制御することが可能となる。
【0047】
なお、実施の形態の説明では、データキャッシュの動作をもって説明したが、本発明は、これをデータキャッシュに限定するものではなく、命令キャッシュや、共用キャッシュに対しても実施可能であることは明らかである。
【0048】
また、情報処理装置がたとえば、仮想記憶をサポートしていて、その仮想記憶を識別するためにプロセスIDレジスタを備えている場合は、これの一部を本発明のプロセス優先レベルレジスタとして使用することにより、追加のハードウェア量を削減することが可能である。また、この場合、異なるプロセスに対して、同じキャッシュメモリの使用優先レベルを割り当てるために、プロセスIDレジスタの上位から複数ビットをプロセス優先レベルレジスタとして使用することが好ましい。
【0049】
【発明の効果】
以上のように、本発明の請求項1に係る情報処理装置によれば、キャッシュメモリの使用優先レベルが高いプログラムのデータが、キャッシュメモリの使用優先レベルの低いプログラムのキャッシュミスにより置き換えられることを防ぐことが可能となり、キャッシュメモリの使用優先レベルの高いプログラムは、優先レベルの低いプログラムの影響を受けずに実行するのが可能になるため、優先度の高いプログラムの実行時間を予測可能とする前提でシステム設計をすることができるという効果が得られる。
【0050】
また、本発明の請求項2に係る情報処理装置によれば、CPUが特権レベルのプロセスを実行しているときのキャッシュメモリの使用優先レベルを保持する特権優先レベルレジスタを備え、特権レベルであるときは、プロセス優先レベルレジスタの代わりに特権優先レベルレジスタを選択してキャッシュメモリの置換えバンクを選択することにより、例外処理などのタイミングが厳しい処理におけるキャッシュメモリの使用優先レベルを高くして、キャッシュメモリの使用優先レベルが低いプログラムの実行中に割り込みが入った場合でも、キャッシュメモリの使用優先レベルをただちに変更可能とすることができ、キャッシュメモリを効率良く使用することが可能になるという効果が得られる。
【0051】
本発明の請求項3に係る情報処理装置によれば、割り込み処理の種類に対応する、キャッシュメモリの使用優先レベルを保持する割り込み優先レベルレジスタを備えることにより、割り込み処理のうち実行タイミング制約の厳しいものに対するキャッシュメモリの使用優先レベルを高くすることを可能にし、さらに効率良くキャッシュメモリの使用を制御することができるという効果が得られる。
【0052】
本発明の請求項4に係る情報処理装置によれば、CPUがマルチスレッド型の場合においても、同時に実行するスレッドのそれぞれに対応する前記プロセス優先レベルレジスタから、プロセス切替部によって、実行状態のスレッドに対応するものを選択してキャッシュメモリに供給することにより、プロセス毎のキャッシュメモリの使用優先レベルに基づいてキャッシュメモリの置き換え対象のバンクを選択することを可能とするという効果が得られる。
【0053】
本発明の請求項5に係る情報処理装置によれば、請求項1記載の情報処理装置において、仮想記憶空間を識別するプロセスIDレジスタの一部を、プロセス優先レベルとして使用するようにしたので、追加のハードウェア量を削減することができるという効果が得られる。
【0054】
本発明の請求項6に係る情報処理装置の制御方法によれば、最初にプロセスに対するキャッシュメモリの使用優先レベルを決定して、優先レベル保持手段に格納し、プロセス切り替えの際に前記優先レベル保持手段から優先レベルを読み出して設定することによって、請求項1に記載の情報処理装置を容易に制御することができるという効果が得られる。
【図面の簡単な説明】
【図1】本発明の実施の形態1による情報処理装置の概略構成図である。
【図2】本発明の実施の形態2による情報処理装置の概略構成図である。
【図3】本発明の実施の形態3による情報処理装置の概略構成図である。
【図4】本発明の実施の形態4による情報処理装置の概略構成図である。
【図5】本発明の実施の形態5による情報処理装置の制御方法を説明するフローチャートである。
【符号の説明】
1 CPU
2 キャッシュメモリ
3 メモリ
100、101 プロセス優先レベルレジスタ
110 選択器
120 特権優先レベルレジスタ
130、131 割り込み優先レベルレジスタ
140 プロセス切り替え部
200、210、220、230 バンク
201 タグメモリ
202 データメモリ
203 制御部
204 バンク優先レベルレジスタ
205 置き換え判定部
510 優先レベル保持手段
【発明の属する技術分野】
本発明は、情報処理装置に関し、特にキャッシュメモリを有する情報処理装置に関するものである。
【0002】
【従来の技術】
キャッシュメモリはメインメモリへのアクセスを高速化するために使用される階層化メモリ技術である。キャッシュメモリにはメインメモリのコピーが置かれ、処理装置はメインメモリをアクセスする代わりに、このキャッシュメモリをアクセスすることによって高速化される。
【0003】
通常、キャッシュメモリは、メインメモリに対して小さい記憶領域しか持たないためにキャッシュメモリ上に効率良くメインメモリの一部の領域を保持することが情報処理装置全体の高速化につながる。
【0004】
また、キャッシュメモリ上にアクセスデータが存在しない場合、つまりキャッシュミスの時に、キャッシュメモリの複数の置き換え候補となるブロックから置き換え対象となるブロックを選択し、そのブロックを必要に応じてライトバックし、メインメモリからのデータをキャッシュメモリにコピーすることによって動作する。そして、この置き換え対象となるブロックを選択する方法としては、LRU(Least Recently Used)や、FIFO(First In First Out)などの方法がある。これらは、プログラムの振舞に基づいて決定されるものである。
【0005】
さらに、従来の情報処理装置におけるキャッシュメモリは、データアクセスを行なう処理装置の種別や、データアクセスのアドレス範囲などで置き換えるブロックを選択するなどしている(例えば、特許文献1参照。)。これは、情報処理装置として、複数のプログラムが動作する場合に、特定のプログラムや、例えばDMAなどの特定の処理に対してキャッシュメモリの優先度を変えることにより、情報処理装置全体での効率を向上させるものである。
【0006】
【特許文献1】
特開平10−198604号公報(請求項3、請求項4)
【0007】
【発明が解決しようとする課題】
従来の情報処理装置におけるキャッシュメモリの構成では、CPUの実行するプログラムについて、DMAなどのI/O処理によりそのキャッシュの使用優先度を上げることとした。
【0008】
一方、CPUの処理性能が向上し、複数の処理/プロセスを切替えながら同時に実行することが求められているシステムにおいては、プロセスの切替を頻繁に行なう必要があるので、実行中のプロセスが他のプロセスのデータをキャッシュから追い出してしまう。そのため、各プロセスの実行時間の予測および制御が困難になり、情報処理装置全体の効率を落してしまうという課題がある。
【0009】
従来のキャッシュの使用優先度の制御方法のように、アドレス空間をプロセス毎に切り分けることによってこの課題に対応する場合、プロセス毎にアドレス空間を切り分けなければならないため、プログラム設計が非常に複雑になるという課題がある。近年のプログラム規模の増大により、これは一層大きな課題となっている。
【0010】
本発明は、上記の課題に鑑みてなされたもので、CPUが複数のプロセスを切替えながら同時に実行する場合にも、プロセスに対するキャッシュメモリの使用効率を柔軟に制御できる置き換えを行なうことのできる情報処理装置、及びその制御方法を提供することを目的とするものである。
【0011】
【課題を解決するための手段】
上記の課題を解決するために、本発明の請求項1に記載の情報処理装置は、キャッシュメモリを有する情報処理装置において、1つ以上のプログラムを実行し、前記プログラムのキャッシュメモリの使用優先レベルを決定するCPUと、前記CPU内に設けられ、前記決定された各プログラムのキャッシュメモリの使用優先レベルを保持する優先レベル保持手段と、前記CPU内に設けられ、該CPUで実行されているプログラムの、前記キャッシュメモリの使用優先レベルを保持するプロセス優先レベルレジスタと、複数のバンクを備えたセットアソシアティブ方式のキャッシュメモリと、前記キャッシュメモリ内に設けられ、該キャッシュメモリの各バンクのそれぞれの使用優先レベルをそれぞれ保持する複数のバンク優先レベルレジスタと、前記キャッシュメモリ内に設けられ、前記CPUから該キャッシュメモリへのアクセスに際し、該キャッシュメモリ上にアクセスデータが存在しないキャッシュミスのとき、前記プロセス優先レベルレジスタの保持する使用優先レベルより低い優先レベルを保持する前記バンク優先レベルレジスタに対応するバンクから、置き換えバンクを選択する置き換え判定部とを備えたものである。
【0012】
この構成によれば、キャッシュミスを起こしたプログラムのアクセスによって、そのプログラムのキャッシュ使用優先レベルより高い優先レベルをもつプログラムのキャッシュメモリは置き換え対象とならないので、プロセス切替えによるキャッシュメモリの置き換えを制御可能とし、キャッシュ使用優先レベルの高いプログラムのデータが、低いキャッシュ使用優先レベルをもつプログラムの実行によって追い出されないことになる。
【0013】
本発明の請求項2に記載の情報処理装置は、請求項1記載の情報処理装置において、前記CPUは、前記キャッシュメモリの使用優先レベルを保持する特権優先レベルレジスタと、前記特権優先レベルレジスタと、プロセス優先レベルレジスタとのいずれかを選択する選択器と、を備え、前記CPUが特権レベルのプログラムを実行している場合のキャッシュミス時、前記選択器は、前記特権優先レベルレジスタを選択し、前記置き換え判定部は、前記選択された特権優先レベルレジスタの保持する使用優先レベルより低い優先レベルを保持するバンク優先レベルレジスタに対応するバンクから、前記置き換えバンクを選択するものである。
【0014】
この構成によれば、通常レベルで実行中のプログラムに対して発生する例外処理や割り込み処理において、その処理ハンドラを実行するために特権レベルに遷移する場合、例えば、特権レベルのスタックなどがキャッシュメモリから追い出されないようにすることができる。
【0015】
本発明の請求項3に記載の情報処理装置は、請求項1記載の情報処理装置において、前記CPUは、それぞれの割り込み処理の種類に対応するキャッシュメモリの使用優先レベルを保持する複数の割り込み優先レベルレジスタと、前記複数の割り込み優先レベルレジスタ、及び前記プロセス優先レベルレジスタの中のいずれかを選択する選択器と、を備え、前記それぞれの割り込み処理中のキャッシュミス時に、前記選択器は、前記複数の割り込み優先レベルレジスタから処理中の割り込み処理に対応する割り込み優先レベルレジスタを選択し、前記置き換え判定部は、前記選択された割り込み優先レベルレジスタの保持する使用優先レベルより低い優先レベルを保持するバンク優先レベルレジスタに対応するバンクから、前記置き換えバンクを選択するものである。
【0016】
この構成によれば、CPUが割り込み処理中である場合に、その割り込みの種類に対応したキャッシュメモリの使用優先レベルを設定することが可能になるので、例えば、非常に処理時間のタイミングに厳しい割り込み処理に対して前記優先レベルを高く設定することにより、情報処理装置のリアルタイム性の保証を可能にするものである。
【0017】
本発明の請求項4に記載の情報処理装置は、請求項1記載の情報処理装置において、前記CPUは、複数のスレッドを並列に実行するものであって、前記各スレッドに対応するそれぞれのキャッシュメモリの使用優先レベルを保持する複数のプロセス優先レベルレジスタと、前記スレッドを切り替え、前記複数のプロセス優先レベルレジスタから、切替えたプロセスに対応するプロセス優先レベルレジスタを選択するプロセス切り替え部と、を備え、前記各スレッド実行中のキャッシュミス時に、前記置き換え判定部は、前記選択されたプロセス優先レベルレジスタの保持する使用優先レベルより低い優先レベルを保持するバンク優先レベルレジスタに対応するバンクから、前記置き換えバンクを選択するものである。
【0018】
この構成によれば、並列実行されるスレッド毎にキャッシュメモリの使用優先レベルを設定することが可能になり、複数のスレッド間においても、キャッシュメモリの使用優先レベルの高いスレッドのデータは、優先レベルの低いスレッドで発生するキャッシュミスによって置き換わらないように制御可能となる。
【0019】
本発明の請求項5に記載の情報処理装置は、請求項1記載の情報処理装置において、仮想記憶空間を識別するプロセスIDレジスタの一部を、プロセス優先レベルとして使用するものである。
【0020】
この構成によれば、プロセスIDレジスタの一部をプロセス優先レベルとして使用することにより、ハードウェア量の増加を削減することが可能となる。
【0021】
本発明の請求項6に記載の情報処理装置の制御方法は、キャッシュメモリを有する情報処理装置の制御方法であって、1つ以上のプログラムを実行し、前記各プログラムのキャッシュメモリの使用優先レベルを決定するCPUと、前記CPU内に設けられ、前記決定された各プログラムのキャッシュメモリの使用優先レベルを保持する優先レベル保持手段と、前記CPU内に設けられ、該CPUで実行されているプログラムの、前記キャッシュメモリの使用優先レベルを保持するプロセス優先レベルレジスタと、複数のバンクを備えたセットアソシアティブ方式のキャッシュメモリと、前記キャッシュメモリ内に設けられ、前記バンクのそれぞれの使用優先レベルをそれぞれ保持する複数のバンク優先レベルレジスタと、前記キャッシュメモリ内に設けられ、前記CPUから該キャッシュメモリへのアクセスに際してキャッシュミスのあったとき、前記プロセス優先レベルレジスタの保持する使用優先レベルより低い優先レベルを保持する前記バンク優先レベルレジスタに対応するバンクから、置き換えバンクを選択する置き換え判定部とを備え、少なくとも、すべてのプロセスのキャッシュメモリの使用優先レベルを決定するステップと、前記決定された使用優先レベルを前記優先レベル保持手段に保持させるステップと、プロセス切り替えの際に、そのプロセスに対応する使用優先レベルを前記優先レベル保持手段から取り出し、前記キャッシュメモリの使用優先レベルとして前記プロセス優先レベルレジスタに設定するステップと、を有することを特徴とする制御方法である。
この構成によれば、情報処理装置を容易に制御することができる。
【0022】
【発明の実施の形態】
以下、本発明の実施の形態について図面を用いて説明する。
(実施の形態1)
図1は、本発明の実施の形態1による情報処理装置の概略構成を示す図であって、図において、1はCPU、100はCPU1の実行するプログラムのキャッシュメモリ使用優先レベルを保持するプロセス優先レベルレジスタ、3はメモリである。
【0023】
2はキャッシュメモリで、バンク200、210、220、230と、キャッシュミスのとき、前記複数のバンクから置き換えバンクを選択する置き換え判定部205と、キャッシュメモリ2の統括的な制御を行う制御部203とを含んで構成されている。
【0024】
バンク200は、メモリ3から読み出したデータを格納するデータメモリ202と、データメモリ202に格納されているデータが記憶されていたメモリ3上の領域のアドレスを格納するタグメモリ201と、バンク200の使用優先レベルを保持するバンク優先レベルレジスタ204とから構成される。バンク200、210、220、230は同じ構成を有するものである。即ち、キャッシュメモリ2は4ウェイセットアソシアティブ方式のメモリである。
【0025】
次に、上記のように構成されている本実施の形態1による情報処理装置の動作について、説明する。
CPU1からアクセスがあった場合に、制御部203は、バンク200〜230をアクセスし、キャッシュヒットした場合は、そのヒットしたバンクに対してアクセスを完了させる。
【0026】
キャッシュミスの場合、置き換え判定部205は、以下のように動作する。
(ステップ1) プロセス優先レベルレジスタ100と、バンク200〜230のそれぞれのバンク優先レベルレジスタ204、214、224、234とを比較し、プロセス優先レベルレジスタ100より低い前記バンク優先レベルレジスタをもつバンクを抽出する。
【0027】
(ステップ2) ステップ1で抽出されたバンクが無い場合、制御部203に置き換え対象バンクが無いことを通知して終了する。ステップ1で抽出されたバンクがある場合は、ステップ3に進む。
【0028】
(ステップ3) ステップ1で抽出されたバンクの中に無効なデータを保持するバンクがある場合は、その無効なデータを保持するバンクの中から一つのバンクを選択し、置き換え対象として制御部203に通知する。ステップ1で抽出されたバンクの中に無効なデータを保持するバンクが無い場合は、ステップ4に進む。
【0029】
(ステップ4) ステップ1で抽出されたバンクの中から一つのバンクを選択し、置き換え対象として制御部203に通知する。
【0030】
置き換え対象バンクが通知された場合は、制御部203は、メモリ3からアクセス対象のブロックを読み出して、置き換え対象のバンクに書き込み、CPU1にアクセス対象のデータを供給するか、あるいは、前記CPU1からのアクセス対象のデータを前記置き換え対象のバンクに対して更新することによりアクセスを完了させる。この一連の動作を置き換え動作とする。
【0031】
また、置き換え対象バンクが無いことを通知された場合は、制御部203は、メモリ3に対してアクセスを行ない結果をCPU1に通知してアクセスを完了する。
【0032】
もちろん、置き換え対象となるデータに対してメモリ3への書き戻し動作が必要な場合は、制御部203がそれを行なうのは、一般のキャッシュメモリの動作と同様である。
【0033】
なお、プロセス優先レベルレジスタ100の保持する優先レベルより低い優先レベルを保持するバンク優先レベルレジスタに対応するバンクが複数ある場合に、それらから一つのバンクを選択する方式は、LRU方式やFIFO方式などを用いると良く、本発明はこれを限定するものではない。
【0034】
以上のように、本実施の形態1による情報処理装置では、CPU1で実行中のプログラムのキャッシュメモリの使用優先レベルをプロセス優先レベルレジスタ100に設定し、キャッシュメモリ2の各バンクの使用優先レベルを、各バンク200〜230のバンク優先レベルレジスタ204、214、224、234に適当に設定することにより、CPU1で実行中のプログラムがキャッシュミスを起こした場合に、CPU1で実行中のプログラムのキャッシュメモリの使用優先レベルより高い優先レベルをもつプログラムの、キャッシュメモリにあるデータが、置き換えの対象になるのを避けることができる。これにより、キャッシュメモリの使用優先レベルの高いプログラムの実行時間が、キャッシュメモリの使用優先レベルの低いプログラムの影響を受けずにすむために、効率良いシステム設計を行なうことができる。
【0035】
(実施の形態2)
図2は、本実施の形態2による情報処理装置の概略構成を示す図であって、図2において、図1と同一物には同一符号を付しており、その説明を省略する。
図2において、特権優先レベルレジスタ120は、CPU1が特権レベルのプログラムを実行しているときの、該特権レベルのプログラムのキャッシュメモリの使用優先レベルを保持するレジスタである。セレクタ110は、CPU1が特権レベルのときは、特権優先レベルレジスタ120を選択して、キャッシュメモリ2に供給し、CPU1が特権レベルでないときは、前記プロセス優先レベルレジスタ100を選択して、キャッシュメモリ2に供給する。
【0036】
この構成によれば、CPU1が特権レベルでないプログラムを実行しているときには、実施の形態1に示した情報処理装置と同様の動作を行なうが、割り込みの発生などによってCPU1が特権レベルに遷移した場合には、制御プログラムの介在無く、ただちに特権優先レベルレジスタ120の保持する優先レベルが、キャッシュメモリの使用優先レベルとして使用されることになる点のみが異なる。
【0037】
このように、本実施の形態2による情報処理装置では、前述実施の形態1に説明した情報処理装置に加え、CPU1が特権レベルのときに使用する特権優先レベルレジスタ120及びそれを選択する選択器110を備えるようにしたので、たとえば、特権レベル優先レベルレジスタ120に高い優先レベルを設定することにより、プロセス優先レベルレジスタ100に低い優先レベルが設定されている状態から、割り込みなどの発生により、CPU1が特権レベルに遷移した場合においても、一般的にクリティカルな処理である特権レベルの処理を高いキャッシュメモリの使用優先レベルで実行することが可能となる。
【0038】
(実施の形態3)
図3は、本実施の形態3による情報処理装置の概略構成図であり、図3において図1、図2と同一物には同一符号を付してあり、その説明を省略する。
前述実施の形態2で説明したように、一般に割り込み処理などで特権レベルに遷移した場合は、処理がクリティカルであるために、キャッシュメモリ2の使用優先レベルが高い方が好ましいが、割り込み処理の種類によっては、クリティカルである度合が違うために、全ての割り込み処理の優先レベルを高くする必要が無いこともある。そのような場合は、あまりクリティカルでない割り込み処理によってキャッシュメモリ2のデータが置き換えられてしまうために情報処理装置としての効率を落すこともある。本実施の形態3による情報処理装置は、この問題を解決するものである。
【0039】
図3において、図1と異なる点は、CPU1が割り込み処理0を実行中にキャッシュメモリ2の使用優先レベルとして選択される割り込み優先レベルレジスタ130と、CPU1が割り込み処理1を実行中にキャッシュメモリ2の使用優先レベルとして選択される割り込み優先レベルレジスタ131と、及びそれらを選択する選択器110とを備えたところである。
【0040】
このように、本実施の形態3による情報処理装置では、割り込み処理の種類に応じてそれぞれキャッシュメモリの使用優先レベルを設定できる割り込み優先レベルレジスタ130、131を設けるようにしたことにより、割り込み処理のクリティカルの度合に合わせてキャッシュメモリ2の使用効率を制御することが可能である。
【0041】
(実施の形態4)
図4は、本実施の形態4による情報処理装置の概略構成図であり、図1、図2と同一物には同一符号を付してあり、その説明を省略する。
図4において、CPU1は、2つのスレッドを同時に切替えながら実行する、いわゆるマルチスレッド型のCPUであり、140は、そのスレッドを切替えるプロセス切替部である。また、図1に示した情報処理装置の構成に加えて、第2のプロセス優先レベルレジスタ101を備えている。これは、CPU1で同時に実行される第1のスレッドに対応するプロセス優先レベルレジスタ100と、第2のスレッドに対応するプロセス優先レベルレジスタ101として構成され、それぞれのスレッドのキャッシュメモリの使用優先レベルを保持するものである。また、前記プロセス切替部140によって、CPU1からのキャッシュメモリ2に対するアクセスには、第1のスレッドの実行によるものであればプロセス優先レベルレジスタ100が、第2のスレッドの実行によるものであればプロセス優先レベルレジスタ101が選択されキャッシュメモリ2に与えられるよう構成し、その他は、実施の形態1に説明したものと同様に動作するものである。
【0042】
このように、本実施の形態4による情報処理装置では、CPU1を2つのスレッドを同時に切替えながら実行するマルチスレッド型のCPUとし、第1のスレッドの実行時に選択される第1のプロセス優先レベルレジスタ100と、第2のスレッドの実行時に選択される第2のプロセス優先レベルレジスタ101を、プロセス切替部140によって切替えてキャッシュメモリ2へキャッシュメモリの使用優先レベルとして供給する構成とすることにより、CPUがマルチスレッド型の場合でも、同時に実行される複数のプロセスのキャッシュメモリの使用優先レベルを制御することを可能にし、高いキャッシュメモリ使用優先レベルをもつプロセスのデータが、低いキャッシュメモリ使用優先レベルをもつプロセスの実行時に発生するキャッシュミスにより置き換えの対象になるのを回避することができる。
【0043】
なお、実施の形態4では、CPU1の同時実行可能なスレッド数は2としたが、本発明はこれを限定するものでないことは明らかである。
【0044】
(実施の形態5)
図5は、本実施の形態5による情報処理装置の制御方法を示すフローチャートである。ここでは、説明のために実施の形態1で説明した情報処理装置を制御するものとして説明する。
図5において、501は各プロセスの使用優先レベルを決定する優先レベル決定ステップ、502はプロセス切り替えを判断するステップ、503は切り替えるプロセスを選択するステップ、504は現在実行中のプロセスのコンテキストを退避するステップ、505は前記キャッシュメモリの使用優先レベルを優先レベル保持手段510から読み出すステップ、506は前記優先レベル読み出しステップ505で読み出した前記キャッシュメモリの使用優先レベルを設定するステップ、507は選択されたプロセスのコンテキストを復帰するステップをそれぞれ表す。なお、510は、優先レベル決定ステップ501では決定された各プロセスの使用優先レベルを保持する優先レベル保持手段を示している。
【0045】
以下、各ステップにおいて実行する処理についてそれぞれ説明する。
ステップ501: システムのすべてのプロセスに対して、キャッシュメモリの使用優先レベルを決定する。決定したプロセス毎のキャッシュメモリの使用優先レベルは、優先レベル保持手段510に格納する。また、キャッシュメモリのバンクの優先レベルをプロセスの優先度に合わせてバンク優先レベルレジスタ204、214、224、234に適切に設定する。ステップ502に進む。
ステップ502:プロセスを切り替えるかどうかを判断する。切り替えを行う場合は、ステップ503に進む。
ステップ503:次に切り替えるプロセスAを選択する。ステップ504に進む。
ステップ504:現在実行中のプロセスBのコンテキストを退避する。ステップ505に進む。
ステップ505:ステップ503で選択されたプロセスAに対応する、キャッシュメモリの使用優先レベルを優先レベル保持手段510から読み出す。ステップ506に進む。
ステップ506:ステップ505で読み出した使用優先レベルをプロセス優先レベルレジスタ100に設定する。ステップ507に進む。
ステップ507:ステップ503で選択したプロセスAのコンテキストを復帰する。
【0046】
このように、本実施の形態5による情報処理装置の制御方法によれば、プロセスに対するキャッシュメモリの使用優先レベルを決定して優先レベル保持手段510に格納し、プロセス切り替えの際に、前記優先レベル保持手段510から次に切り替えるプロセスに対応する使用優先レベルを読み出して、プロセス優先レベルレジスタに設定し、該使用優先レベルをもとに、置換えバンクを選択するようにしたので、実施の形態1に説明した情報処理装置を容易に制御することが可能となる。
【0047】
なお、実施の形態の説明では、データキャッシュの動作をもって説明したが、本発明は、これをデータキャッシュに限定するものではなく、命令キャッシュや、共用キャッシュに対しても実施可能であることは明らかである。
【0048】
また、情報処理装置がたとえば、仮想記憶をサポートしていて、その仮想記憶を識別するためにプロセスIDレジスタを備えている場合は、これの一部を本発明のプロセス優先レベルレジスタとして使用することにより、追加のハードウェア量を削減することが可能である。また、この場合、異なるプロセスに対して、同じキャッシュメモリの使用優先レベルを割り当てるために、プロセスIDレジスタの上位から複数ビットをプロセス優先レベルレジスタとして使用することが好ましい。
【0049】
【発明の効果】
以上のように、本発明の請求項1に係る情報処理装置によれば、キャッシュメモリの使用優先レベルが高いプログラムのデータが、キャッシュメモリの使用優先レベルの低いプログラムのキャッシュミスにより置き換えられることを防ぐことが可能となり、キャッシュメモリの使用優先レベルの高いプログラムは、優先レベルの低いプログラムの影響を受けずに実行するのが可能になるため、優先度の高いプログラムの実行時間を予測可能とする前提でシステム設計をすることができるという効果が得られる。
【0050】
また、本発明の請求項2に係る情報処理装置によれば、CPUが特権レベルのプロセスを実行しているときのキャッシュメモリの使用優先レベルを保持する特権優先レベルレジスタを備え、特権レベルであるときは、プロセス優先レベルレジスタの代わりに特権優先レベルレジスタを選択してキャッシュメモリの置換えバンクを選択することにより、例外処理などのタイミングが厳しい処理におけるキャッシュメモリの使用優先レベルを高くして、キャッシュメモリの使用優先レベルが低いプログラムの実行中に割り込みが入った場合でも、キャッシュメモリの使用優先レベルをただちに変更可能とすることができ、キャッシュメモリを効率良く使用することが可能になるという効果が得られる。
【0051】
本発明の請求項3に係る情報処理装置によれば、割り込み処理の種類に対応する、キャッシュメモリの使用優先レベルを保持する割り込み優先レベルレジスタを備えることにより、割り込み処理のうち実行タイミング制約の厳しいものに対するキャッシュメモリの使用優先レベルを高くすることを可能にし、さらに効率良くキャッシュメモリの使用を制御することができるという効果が得られる。
【0052】
本発明の請求項4に係る情報処理装置によれば、CPUがマルチスレッド型の場合においても、同時に実行するスレッドのそれぞれに対応する前記プロセス優先レベルレジスタから、プロセス切替部によって、実行状態のスレッドに対応するものを選択してキャッシュメモリに供給することにより、プロセス毎のキャッシュメモリの使用優先レベルに基づいてキャッシュメモリの置き換え対象のバンクを選択することを可能とするという効果が得られる。
【0053】
本発明の請求項5に係る情報処理装置によれば、請求項1記載の情報処理装置において、仮想記憶空間を識別するプロセスIDレジスタの一部を、プロセス優先レベルとして使用するようにしたので、追加のハードウェア量を削減することができるという効果が得られる。
【0054】
本発明の請求項6に係る情報処理装置の制御方法によれば、最初にプロセスに対するキャッシュメモリの使用優先レベルを決定して、優先レベル保持手段に格納し、プロセス切り替えの際に前記優先レベル保持手段から優先レベルを読み出して設定することによって、請求項1に記載の情報処理装置を容易に制御することができるという効果が得られる。
【図面の簡単な説明】
【図1】本発明の実施の形態1による情報処理装置の概略構成図である。
【図2】本発明の実施の形態2による情報処理装置の概略構成図である。
【図3】本発明の実施の形態3による情報処理装置の概略構成図である。
【図4】本発明の実施の形態4による情報処理装置の概略構成図である。
【図5】本発明の実施の形態5による情報処理装置の制御方法を説明するフローチャートである。
【符号の説明】
1 CPU
2 キャッシュメモリ
3 メモリ
100、101 プロセス優先レベルレジスタ
110 選択器
120 特権優先レベルレジスタ
130、131 割り込み優先レベルレジスタ
140 プロセス切り替え部
200、210、220、230 バンク
201 タグメモリ
202 データメモリ
203 制御部
204 バンク優先レベルレジスタ
205 置き換え判定部
510 優先レベル保持手段
Claims (6)
- キャッシュメモリを有する情報処理装置において、
1つ以上のプログラムを実行し、前記各プログラムのキャッシュメモリの使用優先レベルを決定するCPUと、
前記CPU内に設けられ、前記決定された各プログラムのキャッシュメモリの使用優先レベルを保持する優先レベル保持手段と、
前記CPU内に設けられ、該CPUで実行されているプログラムの、前記キャッシュメモリの使用優先レベルを保持するプロセス優先レベルレジスタと、
複数のバンクを備えたセットアソシアティブ方式のキャッシュメモリと、
前記キャッシュメモリ内に設けられ、該キャッシュメモリの各バンクのそれぞれの使用優先レベルをそれぞれ保持する複数のバンク優先レベルレジスタと、
前記キャッシュメモリ内に設けられ、前記CPUから該キャッシュメモリへのアクセスに際し、該キャッシュメモリ上にアクセスデータが存在しないキャッシュミスのとき、前記プロセス優先レベルレジスタの保持する使用優先レベルより低い優先レベルを保持する前記バンク優先レベルレジスタに対応するバンクから、置き換えバンクを選択する置き換え判定部と、を備えた、
ことを特徴とする情報処理装置。 - 請求項1記載の情報処理装置において、
前記CPUは、
前記キャッシュメモリの使用優先レベルを保持する特権優先レベルレジスタと、
前記特権優先レベルレジスタと、プロセス優先レベルレジスタとのいずれかを選択する選択器と、を備え、
前記CPUが特権レベルのプログラムを実行している場合のキャッシュミス時、
前記選択器は、前記特権優先レベルレジスタを選択し、
前記置き換え判定部は、選択された特権優先レベルレジスタの保持する使用優先レベルより低い優先レベルを保持するバンク優先レベルレジスタに対応するバンクから、前記置き換えバンクを選択する、
ことを特徴とする情報処理装置。 - 請求項1記載の情報処理装置において、
前記CPUは、
それぞれの割り込み処理の種類に対応するキャッシュメモリの使用優先レベルを保持する複数の割り込み優先レベルレジスタと、
前記複数の割り込み優先レベルレジスタ、及び前記プロセス優先レベルレジスタの中のいずれかを選択する選択器と、を備え、
前記それぞれの割り込み処理中のキャッシュミス時に、
前記選択器は、前記複数の割り込み優先レベルレジスタから処理中の割り込み処理に対応する割り込み優先レベルレジスタを選択し、
前記置き換え判定部は、前記選択された割り込み優先レベルレジスタの保持する使用優先レベルより低い優先レベルを保持するバンク優先レベルレジスタに対応するバンクから、前記置き換えバンクを選択する、
ことを特徴とする情報処理装置。 - 請求項1記載の情報処理装置において、
前記CPUは、複数のスレッドを並列に実行するものであって、
前記各スレッドに対応するそれぞれのキャッシュメモリの使用優先レベルを保持する複数のプロセス優先レベルレジスタと、
前記スレッドを切り替え、前記複数のプロセス優先レベルレジスタから、切替えたプロセスに対応するプロセス優先レベルレジスタを選択するプロセス切り替え部と、を備え、
前記各スレッド実行中のキャッシュミス時に、
前記置き換え判定部は、前記選択されたプロセス優先レベルレジスタの保持する使用優先レベルより低い優先レベルを保持するバンク優先レベルレジスタに対応するバンクから、前記置き換えバンクを選択する、
ことを特徴とする情報処理装置。 - 請求項1記載の情報処理装置において、
仮想記憶空間を識別するプロセスIDレジスタの一部を、プロセス優先レベルとして使用する、ことを特徴とする情報処理装置。 - キャッシュメモリを有する情報処理装置の制御方法であって、
1つ以上のプログラムを実行し、前記各プログラムのキャッシュメモリの使用優先レベルを決定するCPUと、
前記CPU内に設けられ、前記決定された各プログラムのキャッシュメモリの使用優先レベルを保持する優先レベル保持手段と、
前記CPU内に設けられ、該CPUで実行されているプログラムの、前記キャッシュメモリの使用優先レベルを保持するプロセス優先レベルレジスタと、
複数のバンクを備えたセットアソシアティブ方式のキャッシュメモリと、
前記キャッシュメモリ内に設けられ、前記バンクのそれぞれの使用優先レベルをそれぞれ保持する複数のバンク優先レベルレジスタと、
前記キャッシュメモリ内に設けられ、前記CPUから該キャッシュメモリへのアクセスに際してキャッシュミスのあったとき、前記プロセス優先レベルレジスタの保持する使用優先レベルより低い優先レベルを保持する前記バンク優先レベルレジスタに対応するバンクから、置き換えバンクを選択する置き換え判定部とを備え、
少なくとも、すべてのプロセスのキャッシュメモリの使用優先レベルを決定するステップと、
前記決定された使用優先レベルを前記優先レベル保持手段に保持させるステップと、
プロセス切り替えの際に、そのプロセスに対応する使用優先レベルを前記優先レベル保持手段から取り出し、前記キャッシュメモリの使用優先レベルとして前記プロセス優先レベルレジスタに設定するステップと、を有する、
ことを特徴とする情報処理装置の制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003116114A JP2004326187A (ja) | 2003-04-21 | 2003-04-21 | 情報処理装置およびその制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003116114A JP2004326187A (ja) | 2003-04-21 | 2003-04-21 | 情報処理装置およびその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004326187A true JP2004326187A (ja) | 2004-11-18 |
Family
ID=33496459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003116114A Pending JP2004326187A (ja) | 2003-04-21 | 2003-04-21 | 情報処理装置およびその制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004326187A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005346168A (ja) * | 2004-05-31 | 2005-12-15 | Matsushita Electric Ind Co Ltd | キャッシュメモリ、システムおよびデータ格納方法 |
JP2010123130A (ja) * | 2008-11-21 | 2010-06-03 | Nvidia Corp | 複数クラスデータキャッシュポリシー |
JP2011048799A (ja) * | 2009-08-28 | 2011-03-10 | Mitsubishi Electric Corp | 制御装置及びデータ処理システム及び制御方法及びデータ処理方法 |
-
2003
- 2003-04-21 JP JP2003116114A patent/JP2004326187A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005346168A (ja) * | 2004-05-31 | 2005-12-15 | Matsushita Electric Ind Co Ltd | キャッシュメモリ、システムおよびデータ格納方法 |
US7904675B2 (en) | 2004-05-31 | 2011-03-08 | Panasonic Corporation | Cache memory, system, and method of storing data |
JP4753549B2 (ja) * | 2004-05-31 | 2011-08-24 | パナソニック株式会社 | キャッシュメモリおよびシステム |
JP2010123130A (ja) * | 2008-11-21 | 2010-06-03 | Nvidia Corp | 複数クラスデータキャッシュポリシー |
JP2011048799A (ja) * | 2009-08-28 | 2011-03-10 | Mitsubishi Electric Corp | 制御装置及びデータ処理システム及び制御方法及びデータ処理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10725992B2 (en) | Indexing entries of a storage structure shared between multiple threads | |
US6957304B2 (en) | Runahead allocation protection (RAP) | |
US11416253B2 (en) | Multiple-table branch target buffer | |
US20070130237A1 (en) | Transient cache storage | |
US20060059317A1 (en) | Multiprocessing apparatus | |
JP2008040606A (ja) | 低消費電力メモリ管理方法及びその方法を用いた計算機 | |
JPH1196074A (ja) | 交換アルゴリズム動的選択コンピュータシステム | |
KR20120070584A (ko) | 데이터 스트림에 대한 저장 인식 프리페치 | |
JP2007011580A (ja) | 情報処理装置 | |
JP7096840B2 (ja) | 能力メタデータを管理するための装置及び方法 | |
US6898671B2 (en) | Data processor for reducing set-associative cache energy via selective way prediction | |
US8266379B2 (en) | Multithreaded processor with multiple caches | |
WO1997034229A9 (en) | Segment descriptor cache for a processor | |
WO1997034229A1 (en) | Segment descriptor cache for a processor | |
WO2006038258A1 (ja) | データプロセッサ | |
JPWO2008155851A1 (ja) | 演算処理装置、エントリ制御プログラムおよびエントリ制御方法 | |
JP2007272681A (ja) | キャッシュメモリ装置及びそのキャッシュラインの入れ替え方法 | |
JP2004326187A (ja) | 情報処理装置およびその制御方法 | |
JP3964821B2 (ja) | プロセッサ、キャッシュシステム及びキャッシュメモリ | |
US8423719B2 (en) | Apparatus, processor and method of controlling cache memory | |
US8065485B2 (en) | Method and apparatus for determining cache storage locations based on latency requirements | |
JP4008946B2 (ja) | キャッシュメモリ及びその制御方法 | |
JPH08328959A (ja) | ディスクキャッシュ制御装置 | |
JP2006285727A (ja) | キャッシュメモリ装置 | |
JPH11143774A (ja) | キャッシュ制御機構 |