JP2000347941A - キャッシュメモリ装置 - Google Patents
キャッシュメモリ装置Info
- Publication number
- JP2000347941A JP2000347941A JP11155286A JP15528699A JP2000347941A JP 2000347941 A JP2000347941 A JP 2000347941A JP 11155286 A JP11155286 A JP 11155286A JP 15528699 A JP15528699 A JP 15528699A JP 2000347941 A JP2000347941 A JP 2000347941A
- Authority
- JP
- Japan
- Prior art keywords
- data
- priority
- cache memory
- lru
- processor
- 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.)
- Withdrawn
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【課題】LRU優先度が適当な優先度になるように設定
することを可能にすることにより,キャッシュメモリの
有効性を高めることを目的とする。 【解決手段】キャッシュメモリ装置1は,キャッシュメ
モリ20にデータを記録または再記録する際に,そのデ
ータのLRU優先度を無条件に最高にするのではなく,
データの現在のLRU優先度,そのデータの属性,その
データへのアクセス手段,プロセッサの状態,またはこ
れらのすべてもしくは一部の情報を用いて,次のLRU
優先度を導出するLRU優先度決定手段13を備え,キ
ャッシュ制御手段11は,このLRU優先度決定手段1
3が決定したLRU優先度を持つデータとして,キャッ
シュメモリ20にデータを記録または再記録する。
することを可能にすることにより,キャッシュメモリの
有効性を高めることを目的とする。 【解決手段】キャッシュメモリ装置1は,キャッシュメ
モリ20にデータを記録または再記録する際に,そのデ
ータのLRU優先度を無条件に最高にするのではなく,
データの現在のLRU優先度,そのデータの属性,その
データへのアクセス手段,プロセッサの状態,またはこ
れらのすべてもしくは一部の情報を用いて,次のLRU
優先度を導出するLRU優先度決定手段13を備え,キ
ャッシュ制御手段11は,このLRU優先度決定手段1
3が決定したLRU優先度を持つデータとして,キャッ
シュメモリ20にデータを記録または再記録する。
Description
【0001】
【発明の属する技術分野】本発明は,キャッシュメモリ
を制御する装置に関するものである。特に,キャッシュ
メモリから追い出すデータを決定する際に使用される,
LRU (Least Recently Used)方式によるLRU優先度
を積極的に操作することにより,キャッシュメモリの有
効性を高めることに貢献する装置に関する。
を制御する装置に関するものである。特に,キャッシュ
メモリから追い出すデータを決定する際に使用される,
LRU (Least Recently Used)方式によるLRU優先度
を積極的に操作することにより,キャッシュメモリの有
効性を高めることに貢献する装置に関する。
【0002】
【従来の技術】一般に,キャッシュメモリはプロセッサ
と主記憶との間に位置し,主記憶に記録されているデー
タのうち,過去にプロセッサが使用したデータを記録し
ておき,プロセッサが再度そのデータを使用するとき
に,主記憶に代わってプロセッサへデータを転送する。
キャッシュメモリは,動作が高速であるため,プロセッ
サへのデータ転送を短時間で済ませることができるが,
主記憶に比べ小容量である。したがって,データがキャ
ッシュメモリに記録されており,キャッシュメモリから
データを転送できれば,主記憶からデータを転送する場
合と比べて,プロセッサのデータ待ち時間を短縮するこ
とができ,処理時間を短縮し,処理性能を向上すること
ができる。
と主記憶との間に位置し,主記憶に記録されているデー
タのうち,過去にプロセッサが使用したデータを記録し
ておき,プロセッサが再度そのデータを使用するとき
に,主記憶に代わってプロセッサへデータを転送する。
キャッシュメモリは,動作が高速であるため,プロセッ
サへのデータ転送を短時間で済ませることができるが,
主記憶に比べ小容量である。したがって,データがキャ
ッシュメモリに記録されており,キャッシュメモリから
データを転送できれば,主記憶からデータを転送する場
合と比べて,プロセッサのデータ待ち時間を短縮するこ
とができ,処理時間を短縮し,処理性能を向上すること
ができる。
【0003】キャッシュメモリの容量を有効に活用する
ため,キャッシュメモリに記録されるデータはLRU方
式により管理されることが多い。LRU方式は,「最近
使用されたデータは,そうでないデータに比べ近い将来
再度使用される確率が高い」という経験則に基づく方式
である。
ため,キャッシュメモリに記録されるデータはLRU方
式により管理されることが多い。LRU方式は,「最近
使用されたデータは,そうでないデータに比べ近い将来
再度使用される確率が高い」という経験則に基づく方式
である。
【0004】キャッシュメモリは,主記憶より小容量で
あるため,既に記録されているデータを削除しないと新
たにデータを記録することができない場合がよく発生す
る。図17に,キャッシュメモリに新たにデータを記録
する場合の例を示す。新たにデータEをキャッシュメモ
リに記録する場合に,LRU優先度が最も低いデータA
がキャッシュメモリから追い出され,新データEはLR
U優先度が最高のデータとしてキャッシュメモリに記録
される。
あるため,既に記録されているデータを削除しないと新
たにデータを記録することができない場合がよく発生す
る。図17に,キャッシュメモリに新たにデータを記録
する場合の例を示す。新たにデータEをキャッシュメモ
リに記録する場合に,LRU優先度が最も低いデータA
がキャッシュメモリから追い出され,新データEはLR
U優先度が最高のデータとしてキャッシュメモリに記録
される。
【0005】近年では,このキャッシュメモリに,これ
までプロセッサが使用したデータだけではなく,これか
らプロセッサが使用するであろうデータを記録すること
で,キャッシュメモリからプロセッサへデータを転送で
きる機会をさらに増やす方法が採用されている。
までプロセッサが使用したデータだけではなく,これか
らプロセッサが使用するであろうデータを記録すること
で,キャッシュメモリからプロセッサへデータを転送で
きる機会をさらに増やす方法が採用されている。
【0006】この方法の代表的なものがプリフェッチで
ある。プリフェッチとは,プロセッサが実際にデータを
使用するよりも前に,主記憶からデータをキャッシュメ
モリに転送させ,そのデータをキャッシュメモリに記録
する方式のことである。
ある。プリフェッチとは,プロセッサが実際にデータを
使用するよりも前に,主記憶からデータをキャッシュメ
モリに転送させ,そのデータをキャッシュメモリに記録
する方式のことである。
【0007】プリフェッチを行わない場合には,プロセ
ッサがこれまでに使用したことのないデータを使用する
ときには,キャッシュメモリにデータが記録されている
ことはなく,主記憶からデータが転送されるのを待つほ
かない。しかし,プリフェッチを用いれば,このような
ときでも,キャッシュメモリにデータを記録させておく
ことが可能となる。このプリフェッチにより事前にキャ
ッシュメモリにデータを記録させておけば,主記憶から
データが転送されるのを待つ必要がなくなるので,プロ
セッサのデータ待ち時間をさらに短縮し,性能を向上さ
せることができる。
ッサがこれまでに使用したことのないデータを使用する
ときには,キャッシュメモリにデータが記録されている
ことはなく,主記憶からデータが転送されるのを待つほ
かない。しかし,プリフェッチを用いれば,このような
ときでも,キャッシュメモリにデータを記録させておく
ことが可能となる。このプリフェッチにより事前にキャ
ッシュメモリにデータを記録させておけば,主記憶から
データが転送されるのを待つ必要がなくなるので,プロ
セッサのデータ待ち時間をさらに短縮し,性能を向上さ
せることができる。
【0008】
【発明が解決しようとする課題】しかし,従来の技術に
は,以下のような問題がある。
は,以下のような問題がある。
【0009】(1)プリフェッチによる問題 例えばプリフェッチなどのように,プロセッサが実際に
使用する際にキャッシュメモリにデータを記録するので
はなく,使用の可能性に基づいてデータをキャッシュメ
モリに記録する方式では,プロセッサが実際にはそのデ
ータを使用しない可能性もあり,このような場合には,
キャッシュメモリに記録されたデータは,キャッシュメ
モリの容量を無駄に使用することになる。
使用する際にキャッシュメモリにデータを記録するので
はなく,使用の可能性に基づいてデータをキャッシュメ
モリに記録する方式では,プロセッサが実際にはそのデ
ータを使用しない可能性もあり,このような場合には,
キャッシュメモリに記録されたデータは,キャッシュメ
モリの容量を無駄に使用することになる。
【0010】図18に,プリフェッチによりキャッシュ
メモリの有効性が損なわれる例を示す。図18では,キ
ャッシュメモリに,LRU優先度の高い順に,データ
D,データC,データB,データAが記録されている状
態で,データEをプリフェッチした後,プロセッサが順
番にデータA,データB,データC,データDを操作し
た場合の様子を示している。
メモリの有効性が損なわれる例を示す。図18では,キ
ャッシュメモリに,LRU優先度の高い順に,データ
D,データC,データB,データAが記録されている状
態で,データEをプリフェッチした後,プロセッサが順
番にデータA,データB,データC,データDを操作し
た場合の様子を示している。
【0011】データEのプリフェッチにより,LRU優
先度が最も低いデータAがキャッシュメモリから追い出
されてしまい,次のデータAの操作では,データAはキ
ャッシュミスヒットしてしまう。さらに,この操作のた
めのデータAのフェッチの際に,LRU優先度の最も低
いデータBをキャッシュから追い出すことになり,次の
データBの操作においても,キャッシュミスヒットが生
じてしまう。このようにして,データC,データDの操
作も,キャッシュミスヒットを発生させる結果となって
しまう。これは,データEのプリフェッチにより,次に
操作されるべきデータが次々と追い出されて,キャッシ
ュメモリが汚されてしまったからである。
先度が最も低いデータAがキャッシュメモリから追い出
されてしまい,次のデータAの操作では,データAはキ
ャッシュミスヒットしてしまう。さらに,この操作のた
めのデータAのフェッチの際に,LRU優先度の最も低
いデータBをキャッシュから追い出すことになり,次の
データBの操作においても,キャッシュミスヒットが生
じてしまう。このようにして,データC,データDの操
作も,キャッシュミスヒットを発生させる結果となって
しまう。これは,データEのプリフェッチにより,次に
操作されるべきデータが次々と追い出されて,キャッシ
ュメモリが汚されてしまったからである。
【0012】一方,図19は,プリフェッチなしでキャ
ッシュメモリが有効に利用される例を示す。図19の例
では,LRU優先度の高い順に,データD,データC,
データB,データAがキャッシュメモリに記録されてい
る状態で,データEをプリフェッチすることなく,プロ
セッサが順番にデータA,データB,データC,データ
Dを操作した場合の様子を示している。データA,デー
タB,データC,データDを操作した結果は,すべてキ
ャッシュヒットを発生させる結果となっている。
ッシュメモリが有効に利用される例を示す。図19の例
では,LRU優先度の高い順に,データD,データC,
データB,データAがキャッシュメモリに記録されてい
る状態で,データEをプリフェッチすることなく,プロ
セッサが順番にデータA,データB,データC,データ
Dを操作した場合の様子を示している。データA,デー
タB,データC,データDを操作した結果は,すべてキ
ャッシュヒットを発生させる結果となっている。
【0013】このように,プリフェッチ等で得たデータ
を単純にキャッシュメモリに記録すると,キャッシュメ
モリの容量を無駄使いするだけでなく,キャッシュメモ
リの有効性をも損ねてしまうことがある。
を単純にキャッシュメモリに記録すると,キャッシュメ
モリの容量を無駄使いするだけでなく,キャッシュメモ
リの有効性をも損ねてしまうことがある。
【0014】これを回避する方法としては,キャッシュ
メモリに記録するデータを厳選し,プロセッサが使用す
る可能性の低いデータを記録しないという方法がある。
この方法によれば,キャッシュメモリの有効性を損ねる
可能性は低くなるものの,投機処理による性能向上の機
会を逃すことになる。
メモリに記録するデータを厳選し,プロセッサが使用す
る可能性の低いデータを記録しないという方法がある。
この方法によれば,キャッシュメモリの有効性を損ねる
可能性は低くなるものの,投機処理による性能向上の機
会を逃すことになる。
【0015】また,キャッシュメモリに直接データを記
録するのではなく,いったん小容量の専用バッファに記
録しておき,実際にプロセッサがそのデータを使った段
階でキャッシュメモリにデータを記録する方式もある。
この方式によれば,キャッシュメモリの容量を無駄にす
ることはなくなるものの,キャッシュメモリの制御が複
雑になるという問題がある。
録するのではなく,いったん小容量の専用バッファに記
録しておき,実際にプロセッサがそのデータを使った段
階でキャッシュメモリにデータを記録する方式もある。
この方式によれば,キャッシュメモリの容量を無駄にす
ることはなくなるものの,キャッシュメモリの制御が複
雑になるという問題がある。
【0016】(2)投機的実行による問題 さらに別の状況として,投機的実行を行うプロセッサで
のキャッシュメモリ更新の問題がある。近年のプロセッ
サが実行の高速化のため採用する投機的実行方式は,前
述したプリフェッチの場合と同様の問題が起こる。
のキャッシュメモリ更新の問題がある。近年のプロセッ
サが実行の高速化のため採用する投機的実行方式は,前
述したプリフェッチの場合と同様の問題が起こる。
【0017】投機的実行方式は,実行しないかもしれな
いメモリ操作命令を投機的に実行し,後に実行するべき
ではなかったことが判明した際に,実行結果により生じ
た影響を残さないように元の状態に復帰させるものであ
る。しかし,キャッシュメモリのLRU優先度に関して
は,投機的実行により更新された優先度を復元しなくて
も論理的な間違いが起きるわけではないので,間違った
投機的実行を行なった場合であっても,LRU優先度を
復元しない場合がほとんどである。
いメモリ操作命令を投機的に実行し,後に実行するべき
ではなかったことが判明した際に,実行結果により生じ
た影響を残さないように元の状態に復帰させるものであ
る。しかし,キャッシュメモリのLRU優先度に関して
は,投機的実行により更新された優先度を復元しなくて
も論理的な間違いが起きるわけではないので,間違った
投機的実行を行なった場合であっても,LRU優先度を
復元しない場合がほとんどである。
【0018】その結果,実際に使用しないデータによ
り,不必要にキャッシュメモリ領域が占有される,ある
いは,他の必要なデータのLRU優先度が下がるという
問題がある。
り,不必要にキャッシュメモリ領域が占有される,ある
いは,他の必要なデータのLRU優先度が下がるという
問題がある。
【0019】この問題を解決する方法として,投機的実
行前の状態を保存しておき,投機的実行が誤りであった
と判明したら,状態を投機的実行前に戻す,いわゆるロ
ールバック方式が知られている。しかし,この方式には
状態を元に戻す制御が複雑であるという問題がある。
行前の状態を保存しておき,投機的実行が誤りであった
と判明したら,状態を投機的実行前に戻す,いわゆるロ
ールバック方式が知られている。しかし,この方式には
状態を元に戻す制御が複雑であるという問題がある。
【0020】(3)データの属性による問題 さらに別の状況として,データアクセスの性質として,
キャッシュメモリ制御方式を変更した方がよい場合があ
る。例えば,データ処理の内容によっては,メモリが順
次参照される場合がある。典型的な例としては,メモリ
領域のデータの消去である。消去すべきデータの量がキ
ャッシュメモリの容量を越える場合,LRU方式による
キャッシュメモリでは,消去を開始する前にキャッシュ
メモリに記録されていた他のデータは,この消去が進む
につれてキャッシュメモリから次々と追い出され,最終
的にキャッシュメモリから全て追い出されてしまう。
キャッシュメモリ制御方式を変更した方がよい場合があ
る。例えば,データ処理の内容によっては,メモリが順
次参照される場合がある。典型的な例としては,メモリ
領域のデータの消去である。消去すべきデータの量がキ
ャッシュメモリの容量を越える場合,LRU方式による
キャッシュメモリでは,消去を開始する前にキャッシュ
メモリに記録されていた他のデータは,この消去が進む
につれてキャッシュメモリから次々と追い出され,最終
的にキャッシュメモリから全て追い出されてしまう。
【0021】このような場合に,キャッシュメモリにデ
ータを経由せずにアクセスを行うことで回避する手法も
ある。しかし,小量のデータ消去の場合と,大量のデー
タ消去の場合とでは,キャッシュメモリを使うか使わな
いかの条件を変えた方がよいことが多いにもかかわら
ず,その制御が困難であるという問題がある。
ータを経由せずにアクセスを行うことで回避する手法も
ある。しかし,小量のデータ消去の場合と,大量のデー
タ消去の場合とでは,キャッシュメモリを使うか使わな
いかの条件を変えた方がよいことが多いにもかかわら
ず,その制御が困難であるという問題がある。
【0022】また,このような順次アクセスを認識し,
キャッシュメモリに記録されたデータに特殊な印をつ
け,キャッシュメモリからデータを追い出す際に,LR
U制御と合わせてこの印の情報をもとに,追い出すデー
タを決定する方法も知られているが,印をつけるための
領域が必要であること,単純なLRU制御に比べ制御が
複雑になることが問題となる。
キャッシュメモリに記録されたデータに特殊な印をつ
け,キャッシュメモリからデータを追い出す際に,LR
U制御と合わせてこの印の情報をもとに,追い出すデー
タを決定する方法も知られているが,印をつけるための
領域が必要であること,単純なLRU制御に比べ制御が
複雑になることが問題となる。
【0023】本発明は上記問題点の解決を図り,キャッ
シュメモリから追い出すデータを決めるのに使われるL
RU優先度が,キャッシュメモリへのデータの記録また
は再記録の際に,適当な優先度になるように設定するこ
とを可能にすることにより,キャッシュメモリの有効性
を高めることを目的とする。
シュメモリから追い出すデータを決めるのに使われるL
RU優先度が,キャッシュメモリへのデータの記録また
は再記録の際に,適当な優先度になるように設定するこ
とを可能にすることにより,キャッシュメモリの有効性
を高めることを目的とする。
【0024】
【課題を解決するための手段】図1は,本発明の概要を
説明するためのブロック構成例を示す図である。1は本
発明に係るキャッシュメモリ装置,10はキャッシュコ
ントローラ,20はデータを保持するキャッシュメモ
リ,30はデータを操作(読み書き)するプロセッサ,
40はシステムバスを表す。また,11はキャッシュメ
モリ20へのデータの記録および再記録を制御するキャ
ッシュ制御手段,12は導出方式設定手段,13はLR
U優先度決定手段を表す。
説明するためのブロック構成例を示す図である。1は本
発明に係るキャッシュメモリ装置,10はキャッシュコ
ントローラ,20はデータを保持するキャッシュメモ
リ,30はデータを操作(読み書き)するプロセッサ,
40はシステムバスを表す。また,11はキャッシュメ
モリ20へのデータの記録および再記録を制御するキャ
ッシュ制御手段,12は導出方式設定手段,13はLR
U優先度決定手段を表す。
【0025】キャッシュメモリ装置1は,キャッシュメ
モリ20に新たにデータを記録する際に,もしくは,キ
ャッシュヒットしてデータを再記録する際に,そのデー
タのLRU優先度を無条件に最高にするのではなく,デ
ータの現在のLRU優先度,そのデータの属性,そのデ
ータへのアクセス手段,プロセッサの状態,またはこれ
らのすべてもしくは一部の情報を用いて,次のLRU優
先度を導出するLRU優先度決定手段13を備え,キャ
ッシュ制御手段11は,このLRU優先度決定手段13
が決定したLRU優先度を持つデータとして,キャッシ
ュメモリ20にデータを記録または再記録する。
モリ20に新たにデータを記録する際に,もしくは,キ
ャッシュヒットしてデータを再記録する際に,そのデー
タのLRU優先度を無条件に最高にするのではなく,デ
ータの現在のLRU優先度,そのデータの属性,そのデ
ータへのアクセス手段,プロセッサの状態,またはこれ
らのすべてもしくは一部の情報を用いて,次のLRU優
先度を導出するLRU優先度決定手段13を備え,キャ
ッシュ制御手段11は,このLRU優先度決定手段13
が決定したLRU優先度を持つデータとして,キャッシ
ュメモリ20にデータを記録または再記録する。
【0026】ここで,データのLRU優先度は,キャッ
シュメモリ20からデータを追い出すことが必要になっ
た場合に,どの順番で追い出すかを決めるためのもの
で,最低のLRU優先度を持つデータが最初に追い出さ
れる。また,データの現在のLRU優先度として,キャ
ッシュメモリ20上にないデータは「優先度なし」とい
うLRU優先度を持つデータであるとする。
シュメモリ20からデータを追い出すことが必要になっ
た場合に,どの順番で追い出すかを決めるためのもの
で,最低のLRU優先度を持つデータが最初に追い出さ
れる。また,データの現在のLRU優先度として,キャ
ッシュメモリ20上にないデータは「優先度なし」とい
うLRU優先度を持つデータであるとする。
【0027】通常の場合,データのLRU優先度が最高
であるとは,他のデータに比べて最も最近に使用された
データであることを意味し,データのLRU優先度が最
低であるとは,他のデータに比べて最も過去に使用され
たデータあることを意味するが,ここでは必ずしもそう
ではない。本明細書では,従来技術との対比において説
明をわかりやすくするために,従来技術におけるLRU
優先度と多少意味が異なるが,機能としては同様である
ので,LRU優先度という言葉を用いる。
であるとは,他のデータに比べて最も最近に使用された
データであることを意味し,データのLRU優先度が最
低であるとは,他のデータに比べて最も過去に使用され
たデータあることを意味するが,ここでは必ずしもそう
ではない。本明細書では,従来技術との対比において説
明をわかりやすくするために,従来技術におけるLRU
優先度と多少意味が異なるが,機能としては同様である
ので,LRU優先度という言葉を用いる。
【0028】また,本発明は,LRU優先度決定手段1
3において,次のLRU優先度を導出するのに使用する
方式を任意に変更・設定することができる導出方式設定
手段12を備え,キャッシュメモリ20にデータを記録
する際に,そのデータのLRU優先度が,キャッシュメ
モリ装置1を使用するシステムまたはそのときに動作し
ているプログラムに応じて適当な優先度になるようにす
る。
3において,次のLRU優先度を導出するのに使用する
方式を任意に変更・設定することができる導出方式設定
手段12を備え,キャッシュメモリ20にデータを記録
する際に,そのデータのLRU優先度が,キャッシュメ
モリ装置1を使用するシステムまたはそのときに動作し
ているプログラムに応じて適当な優先度になるようにす
る。
【0029】キャッシュメモリ装置1のキャッシュコン
トローラ10は,具体的には以下のような構成からな
る。
トローラ10は,具体的には以下のような構成からな
る。
【0030】第1の例では,特に,データのアドレスか
らデータのプライオリティを決定するアドレス解析部を
備え,LRU優先度決定手段13は,キャッシュメモリ
にデータを記録(再記録を含む。以下,同様)する際
に,このアドレス解析部が出力するデータのプライオリ
ティと,データの現在のLRU優先度とを用いて,デー
タの次のLRU優先度を決定する。
らデータのプライオリティを決定するアドレス解析部を
備え,LRU優先度決定手段13は,キャッシュメモリ
にデータを記録(再記録を含む。以下,同様)する際
に,このアドレス解析部が出力するデータのプライオリ
ティと,データの現在のLRU優先度とを用いて,デー
タの次のLRU優先度を決定する。
【0031】第2の例では,特に,プロセッサ30がプ
リフェッチ命令を持つプロセッサである場合に,プロセ
ッサ30からキャッシュメモリ20へのアクセスが,プ
リフェッチ命令によるアクセスであるか否かを識別する
プリフェッチ識別部を備え,LRU優先度決定手段13
は,キャッシュメモリ20にデータを記録する際に,こ
のプリフェッチ識別部の識別結果とデータの現在のLR
U優先度とを用いて,データの次のLRU優先度を決定
する。
リフェッチ命令を持つプロセッサである場合に,プロセ
ッサ30からキャッシュメモリ20へのアクセスが,プ
リフェッチ命令によるアクセスであるか否かを識別する
プリフェッチ識別部を備え,LRU優先度決定手段13
は,キャッシュメモリ20にデータを記録する際に,こ
のプリフェッチ識別部の識別結果とデータの現在のLR
U優先度とを用いて,データの次のLRU優先度を決定
する。
【0032】第3の例では,特に,プロセッサ30から
キャッシュメモリ20へのこれまでのアクセス履歴に基
づき,プロセッサ30が使用する可能性の高いデータの
アドレスを予測し,そのアドレスのデータを先読みする
プリフェッチ制御部を備え,LRU優先度決定手段13
は,キャッシュメモリ20にデータを記録する際に,こ
のプリフェッチ制御部がロードしたデータであるか否か
と,データの現在のLRU優先度とを用いて,データの
次のLRU優先度を決定する。
キャッシュメモリ20へのこれまでのアクセス履歴に基
づき,プロセッサ30が使用する可能性の高いデータの
アドレスを予測し,そのアドレスのデータを先読みする
プリフェッチ制御部を備え,LRU優先度決定手段13
は,キャッシュメモリ20にデータを記録する際に,こ
のプリフェッチ制御部がロードしたデータであるか否か
と,データの現在のLRU優先度とを用いて,データの
次のLRU優先度を決定する。
【0033】第4の例では,特に,プロセッサ30から
キャッシュメモリ20へのアクセスを発した命令の種類
を識別する命令識別部を備え,LRU優先度決定手段1
3は,キャッシュメモリ20にデータを記録する際に,
この命令識別部の識別結果とデータの現在のLRU優先
度とを用いて,データの次のLRU優先度を決定する。
キャッシュメモリ20へのアクセスを発した命令の種類
を識別する命令識別部を備え,LRU優先度決定手段1
3は,キャッシュメモリ20にデータを記録する際に,
この命令識別部の識別結果とデータの現在のLRU優先
度とを用いて,データの次のLRU優先度を決定する。
【0034】第5の例では,特に,プロセッサ30が投
機的命令実行機能を持ったものである場合に,プロセッ
サ30からキャッシュメモリ20へのアクセスが,プロ
セッサ30が投機的命令実行中に発したアクセスである
か否かを識別する投機実行識別部を備え,LRU優先度
決定手段13は,キャッシュメモリ20にデータを記録
する際に,この投機実行識別部の識別結果と,データの
現在のLRU優先度とを用いて,データの次のLRU優
先度を決定する。
機的命令実行機能を持ったものである場合に,プロセッ
サ30からキャッシュメモリ20へのアクセスが,プロ
セッサ30が投機的命令実行中に発したアクセスである
か否かを識別する投機実行識別部を備え,LRU優先度
決定手段13は,キャッシュメモリ20にデータを記録
する際に,この投機実行識別部の識別結果と,データの
現在のLRU優先度とを用いて,データの次のLRU優
先度を決定する。
【0035】第6の例では,バス結合された並列計算機
である場合に,LRU優先度決定手段13は,他プロセ
ッサがバスに要求を出した際に,その他プロセッサが出
した要求の種類と,そのスヌーピングの結果と,データ
の現在のLRU優先度とを用いて,データの次のLRU
優先度を決定し,キャッシュメモリ20にデータを記録
する。
である場合に,LRU優先度決定手段13は,他プロセ
ッサがバスに要求を出した際に,その他プロセッサが出
した要求の種類と,そのスヌーピングの結果と,データ
の現在のLRU優先度とを用いて,データの次のLRU
優先度を決定し,キャッシュメモリ20にデータを記録
する。
【0036】以上の例において,LRU優先度決定手段
13がデータの次のLRU優先度を決定する際には,導
出方式設定手段12によって設定された方式によってL
RU優先度を決定するように構成することができる。
13がデータの次のLRU優先度を決定する際には,導
出方式設定手段12によって設定された方式によってL
RU優先度を決定するように構成することができる。
【0037】このように,本発明では,プリフェッチや
投機処理により,使用しないかもしれないデータがキャ
ッシュメモリ20に記録される場合に,本当に必要なデ
ータがキャッシュメモリ20上から追い出されることを
防ぐことが可能となり,キャッシュメモリ20の有効性
が向上する。さらに,キャッシュメモリ20においてL
RU優先度を記録する手法は従来と同様であるため,L
RU優先度を記録するために必要な記憶容量は増加する
ことはない。
投機処理により,使用しないかもしれないデータがキャ
ッシュメモリ20に記録される場合に,本当に必要なデ
ータがキャッシュメモリ20上から追い出されることを
防ぐことが可能となり,キャッシュメモリ20の有効性
が向上する。さらに,キャッシュメモリ20においてL
RU優先度を記録する手法は従来と同様であるため,L
RU優先度を記録するために必要な記憶容量は増加する
ことはない。
【0038】例えば,キャッシュメモリ20に新たにデ
ータを記録する際,従来の手法では,そのデータをLR
U優先度が最高のデータとして記録するが,そのデータ
がプリフェッチにより得られたデータであれば,LRU
優先度が最低のデータとして記録するのである。これに
より,たとえプリフェッチで得たデータをプロセッサ3
0が実際には使用しなかったとしても,データはキャッ
シュメモリ20から追い出され易い状態で記録してある
ため,キャッシュメモリ20の容量を無駄にする割合が
減り,有効性を損ねる可能性も下がる。
ータを記録する際,従来の手法では,そのデータをLR
U優先度が最高のデータとして記録するが,そのデータ
がプリフェッチにより得られたデータであれば,LRU
優先度が最低のデータとして記録するのである。これに
より,たとえプリフェッチで得たデータをプロセッサ3
0が実際には使用しなかったとしても,データはキャッ
シュメモリ20から追い出され易い状態で記録してある
ため,キャッシュメモリ20の容量を無駄にする割合が
減り,有効性を損ねる可能性も下がる。
【0039】あるいは,順次アクセスが行なわれる場合
においては,一度アクセスしたデータは後から参照され
る可能性が低い。しかし,次々と新しいデータをアクセ
スするため,従来のLRU方式による制御では,キャッ
シュメモリ20はこの順次アクセスによって得られたデ
ータで埋め尽くされ,キャッシュメモリ20に記録され
ていた他のデータは追い出されてしまう。したがって,
本発明では,順次アクセスによって得られたはデータ
は,例えばLRU優先度が最低位とその次の優先度のみ
に設定するとして記録することにより,もし4ウェイセ
ットアソシアティブ・キャッシュメモリを用いていると
すると,全キャッシュメモリ容量の2/4を越えない範
囲でのみデータを記録するといった制限を課すこともで
きる。
においては,一度アクセスしたデータは後から参照され
る可能性が低い。しかし,次々と新しいデータをアクセ
スするため,従来のLRU方式による制御では,キャッ
シュメモリ20はこの順次アクセスによって得られたデ
ータで埋め尽くされ,キャッシュメモリ20に記録され
ていた他のデータは追い出されてしまう。したがって,
本発明では,順次アクセスによって得られたはデータ
は,例えばLRU優先度が最低位とその次の優先度のみ
に設定するとして記録することにより,もし4ウェイセ
ットアソシアティブ・キャッシュメモリを用いていると
すると,全キャッシュメモリ容量の2/4を越えない範
囲でのみデータを記録するといった制限を課すこともで
きる。
【0040】図2は,本発明の動作原理を説明するため
の図である。図2には,図18に示す場合と同様に,キ
ャッシュメモリ20に,LRU優先度の高い順に,デー
タD,データC,データB,データAが記録されている
状態で,データEをプリフェッチした後,プロセッサ3
0が順番にデータA,データB,データC,データDを
操作した場合の動作例を示している。図18に示す場合
の動作と違うのは,本発明では,プリフェッチするデー
タEを,LRU優先度が最低のデータとしてキャッシュ
メモリ20に記録することである。
の図である。図2には,図18に示す場合と同様に,キ
ャッシュメモリ20に,LRU優先度の高い順に,デー
タD,データC,データB,データAが記録されている
状態で,データEをプリフェッチした後,プロセッサ3
0が順番にデータA,データB,データC,データDを
操作した場合の動作例を示している。図18に示す場合
の動作と違うのは,本発明では,プリフェッチするデー
タEを,LRU優先度が最低のデータとしてキャッシュ
メモリ20に記録することである。
【0041】図2に示すとおり,本発明では,データE
のLRU優先度を低く設定してプリフェッチを行う。デ
ータEをプリフェッチする際に,データAがキャッシュ
メモリ20から追い出されてしまい,次のデータAの操
作の場合には,データAはキャッシュミスヒットとな
る。しかし,プリフェッチしたデータEのLRU優先度
を低く設定することで,データAの操作の場合にLRU
優先度の低いデータEを追い出すこととなり,次のデー
タBの操作は,キャッシュヒットとなる。続くデータ
C,データDの操作もキャッシュヒットとなる。
のLRU優先度を低く設定してプリフェッチを行う。デ
ータEをプリフェッチする際に,データAがキャッシュ
メモリ20から追い出されてしまい,次のデータAの操
作の場合には,データAはキャッシュミスヒットとな
る。しかし,プリフェッチしたデータEのLRU優先度
を低く設定することで,データAの操作の場合にLRU
優先度の低いデータEを追い出すこととなり,次のデー
タBの操作は,キャッシュヒットとなる。続くデータ
C,データDの操作もキャッシュヒットとなる。
【0042】図18に示す場合には,全操作がキャッシ
ュミスヒットとなっていたのと比較すると,本発明によ
り,キャッシュメモリ20の有効率が改善されることが
わかる。
ュミスヒットとなっていたのと比較すると,本発明によ
り,キャッシュメモリ20の有効率が改善されることが
わかる。
【0043】
【発明の実施の形態】以下に,本発明のいくつかの実施
の形態を順に説明する。
の形態を順に説明する。
【0044】(1)第1の実施の形態 図3は,本発明の第1の実施の形態のブロック構成図で
ある。本例では,キャッシュメモリ装置100のキャッ
シュコントローラ110に,データのアドレスからデー
タのプライオリティを決定するアドレス解析部114
と,データのプライオリティと現LRU優先度から次L
RU優先度を決定するLRU優先度決定部116を備え
る。導出方式設定部118は,レンジレジスタ115お
よびLRU優先度テーブル117に値を設定する手段で
あり,後述するように,これに対する値の設定によって
LRU優先度の導出方式を変えることができる。すなわ
ち,どのような状態のときにLRU優先度をどのような
値にするかを,レンジレジスタ115およびLRU優先
度テーブル117への値の設定によって変更することが
できる。
ある。本例では,キャッシュメモリ装置100のキャッ
シュコントローラ110に,データのアドレスからデー
タのプライオリティを決定するアドレス解析部114
と,データのプライオリティと現LRU優先度から次L
RU優先度を決定するLRU優先度決定部116を備え
る。導出方式設定部118は,レンジレジスタ115お
よびLRU優先度テーブル117に値を設定する手段で
あり,後述するように,これに対する値の設定によって
LRU優先度の導出方式を変えることができる。すなわ
ち,どのような状態のときにLRU優先度をどのような
値にするかを,レンジレジスタ115およびLRU優先
度テーブル117への値の設定によって変更することが
できる。
【0045】キャッシュ制御管理部112は,キャッシ
ュコントローラ110における主な制御を行う部分であ
り,キャッシュメモリ120へのデータの記録(もしく
は再記録)を制御する。キャッシュ制御管理部112の
内部構造は,基本的には従来のものと同様である。プロ
セッサインタフェース(プロセッサIF)111は,プ
ロセッサ130とキャッシュ制御管理部112との間で
データおよび制御信号をやりとりするインタフェースで
あり,バスインタフェース(バスIF)113は,シス
テムバス140を介して主記憶(図示省略)との間でデ
ータおよび制御信号をやりとりするインタフェースであ
る。
ュコントローラ110における主な制御を行う部分であ
り,キャッシュメモリ120へのデータの記録(もしく
は再記録)を制御する。キャッシュ制御管理部112の
内部構造は,基本的には従来のものと同様である。プロ
セッサインタフェース(プロセッサIF)111は,プ
ロセッサ130とキャッシュ制御管理部112との間で
データおよび制御信号をやりとりするインタフェースで
あり,バスインタフェース(バスIF)113は,シス
テムバス140を介して主記憶(図示省略)との間でデ
ータおよび制御信号をやりとりするインタフェースであ
る。
【0046】データをキャッシュメモリ120に記録
(もしくは再記録)する際には,まず,アドレス解析部
114が,データのプライオリティを決定する。具体的
には,アドレス解析部114は,アドレス範囲,および
その範囲のプライオリティを記録するレジスタセットで
あるレンジレジスタ115を備え,レンジレジスタ11
5に記録された値に基づき,データのアドレスからデー
タのプライオリティを導出する。なお,レンジレジスタ
115に記録されている値は,任意に設定することが可
能であり,または,予め定められた値とすることも可能
である。
(もしくは再記録)する際には,まず,アドレス解析部
114が,データのプライオリティを決定する。具体的
には,アドレス解析部114は,アドレス範囲,および
その範囲のプライオリティを記録するレジスタセットで
あるレンジレジスタ115を備え,レンジレジスタ11
5に記録された値に基づき,データのアドレスからデー
タのプライオリティを導出する。なお,レンジレジスタ
115に記録されている値は,任意に設定することが可
能であり,または,予め定められた値とすることも可能
である。
【0047】次に,LRU優先度決定部116が,その
データの次LRU優先度を決定する。具体的には,LR
U優先度決定部116は,図4に示すようなLRU優先
度テーブル117を参照し,LRU優先度テーブル11
7に記録された値に基づき,現LRU優先度とアドレス
解析部114が判定したデータのプライオリティから次
LRU優先度を決定する。ここでは,LRU優先度テー
ブル117は,データのプライオリティが高い(Hig
h)なら,現LRU優先度にかかわらず高いLRU優先
度(=3)を設定し,データのプライオリティが中程度
(Middle)なら,現LRU優先度(3,2,1,
0,なし)に応じて,(3,2,1,1,1)を設定
し,データのプライオリティが低度(Low)なら,現
LRU優先度(3,2,1,0,なし)に応じて,
(3,2,1,0,0)を設定するようにしている。な
お,LRU優先度テーブル117に記録されている値
は,導出方式設定部118によって,任意に設定するこ
とが可能である。または,予め定められた値とすること
も可能である。導出方式設定部118の実現方法として
は,例えばプロセッサ130から初期設定時もしくはプ
ログラムの起動時に値を設定する方法,あるいはキャッ
シュメモリ装置100の実装時にROM等を用いてLR
U優先度テーブル117を組み込む方法などが考えられ
る。
データの次LRU優先度を決定する。具体的には,LR
U優先度決定部116は,図4に示すようなLRU優先
度テーブル117を参照し,LRU優先度テーブル11
7に記録された値に基づき,現LRU優先度とアドレス
解析部114が判定したデータのプライオリティから次
LRU優先度を決定する。ここでは,LRU優先度テー
ブル117は,データのプライオリティが高い(Hig
h)なら,現LRU優先度にかかわらず高いLRU優先
度(=3)を設定し,データのプライオリティが中程度
(Middle)なら,現LRU優先度(3,2,1,
0,なし)に応じて,(3,2,1,1,1)を設定
し,データのプライオリティが低度(Low)なら,現
LRU優先度(3,2,1,0,なし)に応じて,
(3,2,1,0,0)を設定するようにしている。な
お,LRU優先度テーブル117に記録されている値
は,導出方式設定部118によって,任意に設定するこ
とが可能である。または,予め定められた値とすること
も可能である。導出方式設定部118の実現方法として
は,例えばプロセッサ130から初期設定時もしくはプ
ログラムの起動時に値を設定する方法,あるいはキャッ
シュメモリ装置100の実装時にROM等を用いてLR
U優先度テーブル117を組み込む方法などが考えられ
る。
【0048】最後に,キャッシュ制御管理部112が,
上記の手順により求められたLRU優先度を持つデータ
として,そのデータをキャッシュメモリ120に記録
(もしくは再記録)する。
上記の手順により求められたLRU優先度を持つデータ
として,そのデータをキャッシュメモリ120に記録
(もしくは再記録)する。
【0049】(2)第2の実施の形態 図5は,本発明の第2の実施の形態のブロック構成図で
ある。本例では,キャッシュメモリ装置200のキャッ
シュコントローラ210に,データのアドレスからデー
タのプライオリティを決定するアドレス解析部214
と,データのプライオリティと現LRU優先度から次L
RU優先度を決定するLRU優先度決定部216を備え
る。導出方式設定部218は,ページテーブル215の
一部およびLRU優先度テーブル217に値を設定する
手段であり,後述するように,これに対する値の設定に
よってLRU優先度の導出方式を変えることができる。
ある。本例では,キャッシュメモリ装置200のキャッ
シュコントローラ210に,データのアドレスからデー
タのプライオリティを決定するアドレス解析部214
と,データのプライオリティと現LRU優先度から次L
RU優先度を決定するLRU優先度決定部216を備え
る。導出方式設定部218は,ページテーブル215の
一部およびLRU優先度テーブル217に値を設定する
手段であり,後述するように,これに対する値の設定に
よってLRU優先度の導出方式を変えることができる。
【0050】キャッシュ制御管理部212は,キャッシ
ュコントローラ210における主な制御を行う部分であ
り,キャッシュメモリ220へのデータの記録(もしく
は再記録)を制御する。キャッシュ制御管理部212の
内部構造は,基本的には従来のものと同様である。プロ
セッサインタフェース(プロセッサIF)211は,プ
ロセッサ230とキャッシュ制御管理部212との間で
データおよび制御信号をやりとりするインタフェースで
あり,バスインタフェース(バスIF)213は,シス
テムバス240を介して主記憶(図示省略)との間でデ
ータおよび制御信号をやりとりするインタフェースであ
る。
ュコントローラ210における主な制御を行う部分であ
り,キャッシュメモリ220へのデータの記録(もしく
は再記録)を制御する。キャッシュ制御管理部212の
内部構造は,基本的には従来のものと同様である。プロ
セッサインタフェース(プロセッサIF)211は,プ
ロセッサ230とキャッシュ制御管理部212との間で
データおよび制御信号をやりとりするインタフェースで
あり,バスインタフェース(バスIF)213は,シス
テムバス240を介して主記憶(図示省略)との間でデ
ータおよび制御信号をやりとりするインタフェースであ
る。
【0051】データをキャッシュメモリ220に記録
(もしくは再記録)する際には,まず,アドレス解析部
214がデータのプライオリティを決定する。具体的に
は,ページテーブル215の各エントリには,ページの
プライオリティを示すフィールドが付与されており,ア
ドレス解析部214は,ページテーブル215を検索
し,データのアドレスに対応するページエントリのプラ
イオリティ・フィールド値をそのデータのプライオリテ
ィとする。なお,ページエントリのプライオリティ値は
任意に設定することが可能であり,または,予め定めら
れた値とすることも可能である。
(もしくは再記録)する際には,まず,アドレス解析部
214がデータのプライオリティを決定する。具体的に
は,ページテーブル215の各エントリには,ページの
プライオリティを示すフィールドが付与されており,ア
ドレス解析部214は,ページテーブル215を検索
し,データのアドレスに対応するページエントリのプラ
イオリティ・フィールド値をそのデータのプライオリテ
ィとする。なお,ページエントリのプライオリティ値は
任意に設定することが可能であり,または,予め定めら
れた値とすることも可能である。
【0052】次に,LRU優先度決定部216が,その
データの次LRU優先度を決定する。具体的には,LR
U優先度決定部216は,図6に示すようなLRU優先
度テーブル217を参照し,LRU優先度テーブル21
7に記録された値に基づき,現LRU優先度とアドレス
解析部214が判定したデータのプライオリティから次
LRU優先度を決定する。ここでは,LRU優先度テー
ブル217は,データのプライオリティが高い(Hig
h)なら,現LRU優先度にかかわらず高いLRU優先
度を設定し,データのプライオリティが中程度(Mid
dle)なら,現LRU優先度(3,2,1,0,な
し)に応じて,(2,2,1,1,1)を設定し,デー
タのプライオリティが低度(Low)なら,現LRU優
先度(3,2,1,0,なし)に応じて,(1,1,
1,0,0)を設定するようにしている。なお,LRU
優先度テーブル217に記録されている値は,導出方式
設定部218によって,任意に設定することが可能であ
る。または,予め定められた値とすることも可能であ
る。導出方式設定部218の実現方法としては,例えば
プロセッサ230から初期設定時もしくはプログラムの
起動時に値を設定する方法,あるいはキャッシュメモリ
装置200の実装時にROM等を用いてLRU優先度テ
ーブル217を組み込む方法などが考えられる。
データの次LRU優先度を決定する。具体的には,LR
U優先度決定部216は,図6に示すようなLRU優先
度テーブル217を参照し,LRU優先度テーブル21
7に記録された値に基づき,現LRU優先度とアドレス
解析部214が判定したデータのプライオリティから次
LRU優先度を決定する。ここでは,LRU優先度テー
ブル217は,データのプライオリティが高い(Hig
h)なら,現LRU優先度にかかわらず高いLRU優先
度を設定し,データのプライオリティが中程度(Mid
dle)なら,現LRU優先度(3,2,1,0,な
し)に応じて,(2,2,1,1,1)を設定し,デー
タのプライオリティが低度(Low)なら,現LRU優
先度(3,2,1,0,なし)に応じて,(1,1,
1,0,0)を設定するようにしている。なお,LRU
優先度テーブル217に記録されている値は,導出方式
設定部218によって,任意に設定することが可能であ
る。または,予め定められた値とすることも可能であ
る。導出方式設定部218の実現方法としては,例えば
プロセッサ230から初期設定時もしくはプログラムの
起動時に値を設定する方法,あるいはキャッシュメモリ
装置200の実装時にROM等を用いてLRU優先度テ
ーブル217を組み込む方法などが考えられる。
【0053】最後に,キャッシュ制御管理部212が,
上記の手順により求められたLRU優先度を持つデータ
として,そのデータをキャッシュメモリ220に記録
(もしくは再記録)する。
上記の手順により求められたLRU優先度を持つデータ
として,そのデータをキャッシュメモリ220に記録
(もしくは再記録)する。
【0054】なお,ページテーブル215にデータのプ
ライオリティを示すプライオリティ・フィールドを設け
るだけではなく,仮想記憶のメモリマッピングの高速化
に使用するTLB(Translation Lookaside Buffer)にも
プライオリティ・フィールドを設け,これを利用するこ
とで,同様にLRU優先度更新を高速化することが可能
である。
ライオリティを示すプライオリティ・フィールドを設け
るだけではなく,仮想記憶のメモリマッピングの高速化
に使用するTLB(Translation Lookaside Buffer)にも
プライオリティ・フィールドを設け,これを利用するこ
とで,同様にLRU優先度更新を高速化することが可能
である。
【0055】(3)第3の実施の形態 図7は,本発明の第3の実施の形態のブロック構成図で
ある。本例におけるプロセッサ330は,その命令セッ
トにデータプリフェッチ用の命令を備えた装置である。
キャッシュメモリ装置300のキャッシュコントローラ
310は,プリフェッチ命令によるアクセスか否かを識
別するプリフェッチ識別部314と,プリフェッチ識別
部314の識別結果とデータの現在のLRU優先度から
次LRU優先度を決定するLRU優先度決定部316を
備える。導出方式設定部318は,LRU優先度テーブ
ル317に値を設定する手段であり,後述するように,
これに対する値の設定によってLRU優先度の導出方式
を変えることができる。
ある。本例におけるプロセッサ330は,その命令セッ
トにデータプリフェッチ用の命令を備えた装置である。
キャッシュメモリ装置300のキャッシュコントローラ
310は,プリフェッチ命令によるアクセスか否かを識
別するプリフェッチ識別部314と,プリフェッチ識別
部314の識別結果とデータの現在のLRU優先度から
次LRU優先度を決定するLRU優先度決定部316を
備える。導出方式設定部318は,LRU優先度テーブ
ル317に値を設定する手段であり,後述するように,
これに対する値の設定によってLRU優先度の導出方式
を変えることができる。
【0056】キャッシュ制御管理部312は,キャッシ
ュコントローラ310における主な制御を行う部分であ
り,キャッシュメモリ320へのデータの記録(もしく
は再記録)を制御する。キャッシュ制御管理部312の
内部構造は,基本的には従来のものと同様である。プロ
セッサインタフェース(プロセッサIF)311は,プ
ロセッサ330とキャッシュ制御管理部312との間で
データおよび制御信号をやりとりするインタフェースで
あり,バスインタフェース(バスIF)313は,シス
テムバス340を介して主記憶(図示省略)との間でデ
ータおよび制御信号をやりとりするインタフェースであ
る。
ュコントローラ310における主な制御を行う部分であ
り,キャッシュメモリ320へのデータの記録(もしく
は再記録)を制御する。キャッシュ制御管理部312の
内部構造は,基本的には従来のものと同様である。プロ
セッサインタフェース(プロセッサIF)311は,プ
ロセッサ330とキャッシュ制御管理部312との間で
データおよび制御信号をやりとりするインタフェースで
あり,バスインタフェース(バスIF)313は,シス
テムバス340を介して主記憶(図示省略)との間でデ
ータおよび制御信号をやりとりするインタフェースであ
る。
【0057】データをキャッシュメモリ320に記録
(もしくは再記録)する際には,まず,プリフェッチ識
別部314が,そのデータへのアクセスがプロセッサ3
30のプリフェッチ命令によるものなのか否かを識別す
る。具体的には,プロセッサ330からキャッシュメモ
リ装置300へプリフェッチ命令によるアクセスか否か
を通知する信号線が存在し,その信号線のシグナルによ
り,プリフェッチ識別部314は,プリフェッチ命令に
よるアクセスか否かを識別する。
(もしくは再記録)する際には,まず,プリフェッチ識
別部314が,そのデータへのアクセスがプロセッサ3
30のプリフェッチ命令によるものなのか否かを識別す
る。具体的には,プロセッサ330からキャッシュメモ
リ装置300へプリフェッチ命令によるアクセスか否か
を通知する信号線が存在し,その信号線のシグナルによ
り,プリフェッチ識別部314は,プリフェッチ命令に
よるアクセスか否かを識別する。
【0058】次に,LRU優先度決定部316がそのデ
ータの次LRU優先度を決定する。具体的には,LRU
優先度決定部316は,例えば図8に示すようなLRU
優先度テーブル317を参照し,LRU優先度テーブル
317に記録された値に基づき,現LRU優先度とプリ
フェッチ識別部314の識別結果から次LRU優先度を
決定する。
ータの次LRU優先度を決定する。具体的には,LRU
優先度決定部316は,例えば図8に示すようなLRU
優先度テーブル317を参照し,LRU優先度テーブル
317に記録された値に基づき,現LRU優先度とプリ
フェッチ識別部314の識別結果から次LRU優先度を
決定する。
【0059】ここでは,LRU優先度テーブル317
は,プリフェッチ命令のアクセスである場合には,現L
RU優先度に応じたLRU優先度(ただし,優先度なし
の場合,最低レベルの優先度=0)を設定し,プリフェ
ッチ命令のアクセスではない場合には,現LRU優先度
にかかわらず高いLRU優先度を設定するようにしてい
る。なお,LRU優先度テーブル317に記録されてい
る値は,導出方式設定部318によって,任意に設定す
ることが可能である。または,予め定められた値とする
ことも可能である。導出方式設定部318の実現方法と
しては,例えばプロセッサ330から初期設定時もしく
はプログラムの起動時に値を設定する方法,あるいはキ
ャッシュメモリ装置300の実装時にROM等を用いて
LRU優先度テーブル317を組み込む方法などが考え
られる。
は,プリフェッチ命令のアクセスである場合には,現L
RU優先度に応じたLRU優先度(ただし,優先度なし
の場合,最低レベルの優先度=0)を設定し,プリフェ
ッチ命令のアクセスではない場合には,現LRU優先度
にかかわらず高いLRU優先度を設定するようにしてい
る。なお,LRU優先度テーブル317に記録されてい
る値は,導出方式設定部318によって,任意に設定す
ることが可能である。または,予め定められた値とする
ことも可能である。導出方式設定部318の実現方法と
しては,例えばプロセッサ330から初期設定時もしく
はプログラムの起動時に値を設定する方法,あるいはキ
ャッシュメモリ装置300の実装時にROM等を用いて
LRU優先度テーブル317を組み込む方法などが考え
られる。
【0060】最後に,キャッシュ制御管理部312が,
上記の手順により求められたLRU優先度を持つデータ
として,そのデータをキャッシュメモリ320に記録
(もしくは再記録)する。
上記の手順により求められたLRU優先度を持つデータ
として,そのデータをキャッシュメモリ320に記録
(もしくは再記録)する。
【0061】(4)第4の実施の形態 図9は,本発明の第4の実施の形態のブロック構成図で
ある。本例では,キャッシュメモリ装置400のキャッ
シュコントローラ410は,プロセッサ430に先んじ
てデータの先読みを実行するプリフェッチ制御部414
と,プリフェッチするデータのアドレスを決定するアド
レス予測部415と,データの次LRU優先度を決定す
るLRU優先度決定部416とを備える。導出方式設定
部418は,LRU優先度テーブル417に値を設定す
る手段であり,後述するように,これに対する値の設定
によって,LRU優先度の導出方式を変えることができ
る。
ある。本例では,キャッシュメモリ装置400のキャッ
シュコントローラ410は,プロセッサ430に先んじ
てデータの先読みを実行するプリフェッチ制御部414
と,プリフェッチするデータのアドレスを決定するアド
レス予測部415と,データの次LRU優先度を決定す
るLRU優先度決定部416とを備える。導出方式設定
部418は,LRU優先度テーブル417に値を設定す
る手段であり,後述するように,これに対する値の設定
によって,LRU優先度の導出方式を変えることができ
る。
【0062】キャッシュ制御管理部412は,キャッシ
ュコントローラ410における主な制御を行う部分であ
り,キャッシュメモリ420へのデータの記録(もしく
は再記録)を制御する。キャッシュ制御管理部412の
内部構造は,基本的には従来のものと同様である。プロ
セッサインタフェース(プロセッサIF)411は,プ
ロセッサ430とキャッシュ制御管理部412との間で
データおよび制御信号をやりとりするインタフェースで
あり,バスインタフェース(バスIF)413は,シス
テムバス440を介して主記憶(図示省略)との間でデ
ータおよび制御信号をやりとりするインタフェースであ
る。
ュコントローラ410における主な制御を行う部分であ
り,キャッシュメモリ420へのデータの記録(もしく
は再記録)を制御する。キャッシュ制御管理部412の
内部構造は,基本的には従来のものと同様である。プロ
セッサインタフェース(プロセッサIF)411は,プ
ロセッサ430とキャッシュ制御管理部412との間で
データおよび制御信号をやりとりするインタフェースで
あり,バスインタフェース(バスIF)413は,シス
テムバス440を介して主記憶(図示省略)との間でデ
ータおよび制御信号をやりとりするインタフェースであ
る。
【0063】アドレス予測部415は,これまでのプロ
セッサ430のアクセス履歴に基づき,先読みすべきデ
ータのアドレスを決定する。プリフェッチ制御部414
は,このアドレス予測部415が導き出したアドレスの
データを先読みすべきか否かを決定・実行する。
セッサ430のアクセス履歴に基づき,先読みすべきデ
ータのアドレスを決定する。プリフェッチ制御部414
は,このアドレス予測部415が導き出したアドレスの
データを先読みすべきか否かを決定・実行する。
【0064】プロセッサ430のアクセス,もしくは,
プリフェッチ制御部414のアクセスにより,データを
キャッシュメモリ420に記録(もしくは再記録)する
際には,LRU優先度決定部416がデータの次LRU
優先度を決定する。具体的には,LRU優先度決定部4
16は,図10に示すようなLRU優先度テーブル41
7を参照し,LRU優先度テーブル417に記録された
値に基づき,現LRU優先度とプリフェッチ制御部41
4からのプリフェッチによるアクセスか否かを示す情報
とから,次LRU優先度を決定する。ここでは,LRU
優先度テーブル417は,プリフェッチ制御部414に
よるアクセスである場合には,現LRU優先度に応じた
LRU優先度(ただし,優先度なしの場合,最低レベル
の優先度=0)を設定し,プリフェッチ制御部414に
よるアクセスではない場合には,現LRU優先度にかか
わらず高いLRU優先度を設定するようにしている。
プリフェッチ制御部414のアクセスにより,データを
キャッシュメモリ420に記録(もしくは再記録)する
際には,LRU優先度決定部416がデータの次LRU
優先度を決定する。具体的には,LRU優先度決定部4
16は,図10に示すようなLRU優先度テーブル41
7を参照し,LRU優先度テーブル417に記録された
値に基づき,現LRU優先度とプリフェッチ制御部41
4からのプリフェッチによるアクセスか否かを示す情報
とから,次LRU優先度を決定する。ここでは,LRU
優先度テーブル417は,プリフェッチ制御部414に
よるアクセスである場合には,現LRU優先度に応じた
LRU優先度(ただし,優先度なしの場合,最低レベル
の優先度=0)を設定し,プリフェッチ制御部414に
よるアクセスではない場合には,現LRU優先度にかか
わらず高いLRU優先度を設定するようにしている。
【0065】なお,LRU優先度テーブル417に記録
されている値は,導出方式設定部418によって,任意
に設定することが可能である。または,予め定められた
値とすることも可能である。導出方式設定部418の実
現方法としては,例えばプロセッサ430から初期設定
時もしくはプログラムの起動時に値を設定する方法,あ
るいはキャッシュメモリ装置400の実装時にROM等
を用いてLRU優先度テーブル417を組み込む方法な
どが考えられる。
されている値は,導出方式設定部418によって,任意
に設定することが可能である。または,予め定められた
値とすることも可能である。導出方式設定部418の実
現方法としては,例えばプロセッサ430から初期設定
時もしくはプログラムの起動時に値を設定する方法,あ
るいはキャッシュメモリ装置400の実装時にROM等
を用いてLRU優先度テーブル417を組み込む方法な
どが考えられる。
【0066】最後に,キャッシュ制御管理部412が,
上記の手順により求められたLRU優先度を持つデータ
として,そのデータをキャッシュメモリ420に記録
(もしくは再記録)する。
上記の手順により求められたLRU優先度を持つデータ
として,そのデータをキャッシュメモリ420に記録
(もしくは再記録)する。
【0067】(5)第5の実施の形態 図11は,本発明の第5の実施の形態のブロック構成図
である。本例では,プロセッサ530は命令を out-of-
order で実行する投機的命令実行部531を備える。キ
ャッシュメモリ装置500のキャッシュコントローラ5
10は,特に,投機的命令実行中のアクセスか否かを識
別する投機実行識別部514と,次LRU優先度を決定
するLRU優先度決定部516とを備える。導出方式設
定部518は,LRU優先度テーブル517に値を設定
する手段であり,後述するように,これに対する値の設
定によって,LRU優先度の導出方式を変えることがで
きる。
である。本例では,プロセッサ530は命令を out-of-
order で実行する投機的命令実行部531を備える。キ
ャッシュメモリ装置500のキャッシュコントローラ5
10は,特に,投機的命令実行中のアクセスか否かを識
別する投機実行識別部514と,次LRU優先度を決定
するLRU優先度決定部516とを備える。導出方式設
定部518は,LRU優先度テーブル517に値を設定
する手段であり,後述するように,これに対する値の設
定によって,LRU優先度の導出方式を変えることがで
きる。
【0068】キャッシュ制御管理部512は,キャッシ
ュコントローラ510における主な制御を行う部分であ
り,キャッシュメモリ520へのデータの記録(もしく
は再記録)を制御する。キャッシュ制御管理部512の
内部構造は,基本的には従来のものと同様である。プロ
セッサインタフェース(プロセッサIF)511は,プ
ロセッサ530とキャッシュ制御管理部512との間で
データおよび制御信号をやりとりするインタフェースで
あり,バスインタフェース(バスIF)513は,シス
テムバス540を介して主記憶(図示省略)との間でデ
ータおよび制御信号をやりとりするインタフェースであ
る。
ュコントローラ510における主な制御を行う部分であ
り,キャッシュメモリ520へのデータの記録(もしく
は再記録)を制御する。キャッシュ制御管理部512の
内部構造は,基本的には従来のものと同様である。プロ
セッサインタフェース(プロセッサIF)511は,プ
ロセッサ530とキャッシュ制御管理部512との間で
データおよび制御信号をやりとりするインタフェースで
あり,バスインタフェース(バスIF)513は,シス
テムバス540を介して主記憶(図示省略)との間でデ
ータおよび制御信号をやりとりするインタフェースであ
る。
【0069】データをキャッシュメモリ520に記録
(もしくは再記録)する際には,まず,投機実行識別部
514が,そのデータへのアクセスがプロセッサが投機
的命令実行中に出したアクセスか否かを識別する。具体
的には,プロセッサ530からキャッシュメモリ装置5
00へ,投機的命令実行中であるか否かを通知する信号
線が存在し,その信号線のシグナルにより,投機実行識
別部514は,投機的命令実行中に生じたアクセスか否
かを判定する。
(もしくは再記録)する際には,まず,投機実行識別部
514が,そのデータへのアクセスがプロセッサが投機
的命令実行中に出したアクセスか否かを識別する。具体
的には,プロセッサ530からキャッシュメモリ装置5
00へ,投機的命令実行中であるか否かを通知する信号
線が存在し,その信号線のシグナルにより,投機実行識
別部514は,投機的命令実行中に生じたアクセスか否
かを判定する。
【0070】次に,LRU優先度決定部516がそのデ
ータの次LRU優先度を決定する。具体的には,LRU
優先度決定部516は,図12に示すようなLRU優先
度テーブル517を参照し,LRU優先度テーブル51
7に記録された値に基づき,現LRU優先度と投機実行
識別部514の識別結果から次LRU優先度値を決定す
る。ここでは,LRU優先度テーブル517は,投機的
命令実行中のアクセスである場合には,現LRU優先度
に応じたLRU優先度(ただし,優先度なしの場合,最
低レベルの優先度=0)を設定し,投機的命令実行中の
アクセスではない場合には,現LRU優先度にかかわら
ず高いLRU優先度を設定するようにしている。
ータの次LRU優先度を決定する。具体的には,LRU
優先度決定部516は,図12に示すようなLRU優先
度テーブル517を参照し,LRU優先度テーブル51
7に記録された値に基づき,現LRU優先度と投機実行
識別部514の識別結果から次LRU優先度値を決定す
る。ここでは,LRU優先度テーブル517は,投機的
命令実行中のアクセスである場合には,現LRU優先度
に応じたLRU優先度(ただし,優先度なしの場合,最
低レベルの優先度=0)を設定し,投機的命令実行中の
アクセスではない場合には,現LRU優先度にかかわら
ず高いLRU優先度を設定するようにしている。
【0071】なお,LRU優先度テーブル517に記録
されている値は,導出方式設定部518によって,任意
に設定することが可能である。または,予め定められた
値とすることも可能である。導出方式設定部518の実
現方法としては,例えばプロセッサ530から初期設定
時もしくはプログラムの起動時に値を設定する方法,あ
るいはキャッシュメモリ装置500の実装時にROM等
を用いてLRU優先度テーブル517を組み込む方法な
どが考えられる。
されている値は,導出方式設定部518によって,任意
に設定することが可能である。または,予め定められた
値とすることも可能である。導出方式設定部518の実
現方法としては,例えばプロセッサ530から初期設定
時もしくはプログラムの起動時に値を設定する方法,あ
るいはキャッシュメモリ装置500の実装時にROM等
を用いてLRU優先度テーブル517を組み込む方法な
どが考えられる。
【0072】最後に,キャッシュ制御管理部512が,
上記の手順により求められたLRU優先度を持つデータ
として,そのデータをキャッシュメモリ520に記録
(もしくは再記録)する。
上記の手順により求められたLRU優先度を持つデータ
として,そのデータをキャッシュメモリ520に記録
(もしくは再記録)する。
【0073】(6)第6の実施の形態 図13は,本発明の第6の実施の形態のブロック構成図
である。本例では,キャッシュメモリ装置600のキャ
ッシュコントローラ610は,アクセスの発生原因であ
るプロセッサの命令種類を識別する命令識別部614
と,データの次LRU優先度を決定するLRU優先度決
定部616とを備える。導出方式設定部618は,LR
U優先度テーブル617に値を設定する手段であり,後
述するように,これに対する値の設定によって,LRU
優先度の導出方式を変えることができる。
である。本例では,キャッシュメモリ装置600のキャ
ッシュコントローラ610は,アクセスの発生原因であ
るプロセッサの命令種類を識別する命令識別部614
と,データの次LRU優先度を決定するLRU優先度決
定部616とを備える。導出方式設定部618は,LR
U優先度テーブル617に値を設定する手段であり,後
述するように,これに対する値の設定によって,LRU
優先度の導出方式を変えることができる。
【0074】キャッシュ制御管理部612は,キャッシ
ュコントローラ610における主な制御を行う部分であ
り,キャッシュメモリ620へのデータの記録(もしく
は再記録)を制御する。キャッシュ制御管理部612の
内部構造は,基本的には従来のものと同様である。プロ
セッサインタフェース(プロセッサIF)611は,プ
ロセッサ630とキャッシュ制御管理部612との間で
データおよび制御信号をやりとりするインタフェースで
あり,バスインタフェース(バスIF)613は,シス
テムバス640を介して主記憶(図示省略)との間でデ
ータおよび制御信号をやりとりするインタフェースであ
る。
ュコントローラ610における主な制御を行う部分であ
り,キャッシュメモリ620へのデータの記録(もしく
は再記録)を制御する。キャッシュ制御管理部612の
内部構造は,基本的には従来のものと同様である。プロ
セッサインタフェース(プロセッサIF)611は,プ
ロセッサ630とキャッシュ制御管理部612との間で
データおよび制御信号をやりとりするインタフェースで
あり,バスインタフェース(バスIF)613は,シス
テムバス640を介して主記憶(図示省略)との間でデ
ータおよび制御信号をやりとりするインタフェースであ
る。
【0075】データをキャッシュメモリ620に記録
(もしくは再記録)する際には,まず,命令識別部61
4が,データ・アクセスの起因となったプロセッサの命
令種類を識別する。具体的には,プロセッサ630から
キャッシュメモリ装置600へ,プロセッサの命令種類
を通知する信号線が存在し,その信号線のシグナルによ
り,命令識別部614は,プロセッサ630の命令の種
類を識別・判定する。
(もしくは再記録)する際には,まず,命令識別部61
4が,データ・アクセスの起因となったプロセッサの命
令種類を識別する。具体的には,プロセッサ630から
キャッシュメモリ装置600へ,プロセッサの命令種類
を通知する信号線が存在し,その信号線のシグナルによ
り,命令識別部614は,プロセッサ630の命令の種
類を識別・判定する。
【0076】次に,LRU優先度決定部616がデータ
の次LRU優先度を決定する。具体的には,LRU優先
度決定部616は,図14に示すようなLRU優先度テ
ーブル617を参照し,LRU優先度テーブル617に
記録された値に基づき,現LRU優先度と命令識別部6
14の識別結果から次LRU優先度を決定する。
の次LRU優先度を決定する。具体的には,LRU優先
度決定部616は,図14に示すようなLRU優先度テ
ーブル617を参照し,LRU優先度テーブル617に
記録された値に基づき,現LRU優先度と命令識別部6
14の識別結果から次LRU優先度を決定する。
【0077】ここでは,LRU優先度テーブル617
は,命令がプリフェッチであるならば,現LRU優先度
に応じたLRU優先度(ただし,優先度なしの場合,最
低レベルの優先度=0)を設定し,命令がブロック転送
であるならば,比較的低いLRU優先度を設定し,それ
以外の命令であるならば,現LRU優先度にかかわらず
高いLRU優先度を設定するようにしている。
は,命令がプリフェッチであるならば,現LRU優先度
に応じたLRU優先度(ただし,優先度なしの場合,最
低レベルの優先度=0)を設定し,命令がブロック転送
であるならば,比較的低いLRU優先度を設定し,それ
以外の命令であるならば,現LRU優先度にかかわらず
高いLRU優先度を設定するようにしている。
【0078】なお,LRU優先度テーブル617に記録
されている値は,導出方式設定部618が,任意に設定
することが可能である。または,予め定められた値とす
ることも可能である。導出方式設定部618の実現方法
としては,例えばプロセッサ630から初期設定時もし
くはプログラムの起動時に値を設定する方法,あるいは
キャッシュメモリ装置600の実装時にROM等を用い
てLRU優先度テーブル617を組み込む方法などが考
えられる。
されている値は,導出方式設定部618が,任意に設定
することが可能である。または,予め定められた値とす
ることも可能である。導出方式設定部618の実現方法
としては,例えばプロセッサ630から初期設定時もし
くはプログラムの起動時に値を設定する方法,あるいは
キャッシュメモリ装置600の実装時にROM等を用い
てLRU優先度テーブル617を組み込む方法などが考
えられる。
【0079】最後に,キャッシュ制御管理部612が,
上記の手順により求められたLRU優先度を持つデータ
として,そのデータをキャッシュメモリ620に記録
(もしくは再記録)する。
上記の手順により求められたLRU優先度を持つデータ
として,そのデータをキャッシュメモリ620に記録
(もしくは再記録)する。
【0080】なお,公知技術としてプロセッサの命令セ
ットを拡張し,メモリ操作命令にレベルを付与し,その
レベルによりLRU優先度設定方法を変更する方式があ
るが,本発明では,命令セットを拡張することなく,既
存の命令種類によってLRU優先度設定方法を変更する
ものであり,前記公知技術とは異なる。
ットを拡張し,メモリ操作命令にレベルを付与し,その
レベルによりLRU優先度設定方法を変更する方式があ
るが,本発明では,命令セットを拡張することなく,既
存の命令種類によってLRU優先度設定方法を変更する
ものであり,前記公知技術とは異なる。
【0081】(7)第7の実施の形態 図15は,本発明の第7の実施の形態のブロック構成図
である。本例のシステム構成は,システムバス740に
より複数のプロセッサが結合されたバス結合型の並列計
算機であり,バスはスヌーピングバスで,キャッシュの
コヒーレンスプロトコルは無効化型である。キャッシュ
メモリ装置700は,各プロセッサとシステムバス74
0との間に位置し(またはプロセッサ内蔵でもよい),
他プロセッサノード750のバス要求を傍受する他プロ
セッサバス要求傍受部714と,次LRU優先度を決定
するLRU優先度決定部716とを備える。導出方式設
定部718は,LRU優先度テーブル717に値を設定
する手段であり,後述するように,これに対する値の設
定によって,LRU優先度の導出方式を変えることがで
きる。
である。本例のシステム構成は,システムバス740に
より複数のプロセッサが結合されたバス結合型の並列計
算機であり,バスはスヌーピングバスで,キャッシュの
コヒーレンスプロトコルは無効化型である。キャッシュ
メモリ装置700は,各プロセッサとシステムバス74
0との間に位置し(またはプロセッサ内蔵でもよい),
他プロセッサノード750のバス要求を傍受する他プロ
セッサバス要求傍受部714と,次LRU優先度を決定
するLRU優先度決定部716とを備える。導出方式設
定部718は,LRU優先度テーブル717に値を設定
する手段であり,後述するように,これに対する値の設
定によって,LRU優先度の導出方式を変えることがで
きる。
【0082】キャッシュ制御管理部712は,キャッシ
ュコントローラ710における主な制御を行う部分であ
り,キャッシュメモリ720へのデータの記録(もしく
は再記録)を制御する。キャッシュ制御管理部712の
内部構造は,基本的には従来のものと同様である。プロ
セッサインタフェース(プロセッサIF)711は,プ
ロセッサ730とキャッシュ制御管理部712との間で
データおよび制御信号をやりとりするインタフェースで
あり,バスインタフェース(バスIF)713は,シス
テムバス740を介して主記憶(図示省略)または他プ
ロセッサノード750との間でデータおよび制御信号を
やりとりするインタフェースである。
ュコントローラ710における主な制御を行う部分であ
り,キャッシュメモリ720へのデータの記録(もしく
は再記録)を制御する。キャッシュ制御管理部712の
内部構造は,基本的には従来のものと同様である。プロ
セッサインタフェース(プロセッサIF)711は,プ
ロセッサ730とキャッシュ制御管理部712との間で
データおよび制御信号をやりとりするインタフェースで
あり,バスインタフェース(バスIF)713は,シス
テムバス740を介して主記憶(図示省略)または他プ
ロセッサノード750との間でデータおよび制御信号を
やりとりするインタフェースである。
【0083】なお,自プロセッサ730からの要求によ
りキャッシュメモリ720にデータを記録(もしくは再
記録)する場合の処理は,従来行われている一般的なキ
ャッシュ制御と同様であり,通常の動作であるので説明
を省略する。
りキャッシュメモリ720にデータを記録(もしくは再
記録)する場合の処理は,従来行われている一般的なキ
ャッシュ制御と同様であり,通常の動作であるので説明
を省略する。
【0084】他プロセッサノード750がシステムバス
740に出す要求は,他プロセッサバス要求傍受部71
4が読み取る。他プロセッサバス要求傍受部714は,
他プロセッサノード750がシステムバス740に送出
した要求を傍受すると,その結果をLRU優先度決定部
716に送る。
740に出す要求は,他プロセッサバス要求傍受部71
4が読み取る。他プロセッサバス要求傍受部714は,
他プロセッサノード750がシステムバス740に送出
した要求を傍受すると,その結果をLRU優先度決定部
716に送る。
【0085】LRU優先度決定部716は,図16に示
すようなLRU優先度テーブル717を備え,LRU優
先度テーブル717に記録された値に基づき,現LRU
優先度と他プロセッサバス要求傍受部714からの情報
からデータの次LRU優先度を決定する。
すようなLRU優先度テーブル717を備え,LRU優
先度テーブル717に記録された値に基づき,現LRU
優先度と他プロセッサバス要求傍受部714からの情報
からデータの次LRU優先度を決定する。
【0086】ここでは,LRU優先度テーブル717
は,次のように設定されている。説明を簡単にするた
め,データの要求の種類は,データの読み出し(READ)
とする。データの書き込み(WRITE) の場合も基本的に同
様である。自プロセッサ730と他プロセッサノード7
50のどちらからもデータの要求がなければ,もちろん
何もしない。他プロセッサノード750からデータの読
み出し要求があり,そのデータを自プロセッサ730用
のキャッシュメモリ720が保持している場合,現LR
U優先度は元の値のままとする。他プロセッサノード7
50からデータの読み出し要求があり,そのデータを自
プロセッサ730用のキャッシュメモリ720が保持し
ていない場合,そのデータをキャッシュメモリ720に
取り込み,そのデータの現LRU優先度を0にする。こ
の例では,保持するデータが cleanの場合(すなわち主
記憶のデータと値が一致する場合)にもdirty の場合
(すなわち主記憶のデータと値が一致しない可能性があ
る場合)にも,次LRU優先度は同じ値が設定される
が,LRU優先度テーブル717への設定値により区別
することも可能である。データ要求が他プロセッサノー
ド750からではなく,自プロセッサ730からであれ
ば,従来と同様に,次LRU優先度を最も高い値(=
3)に設定する。
は,次のように設定されている。説明を簡単にするた
め,データの要求の種類は,データの読み出し(READ)
とする。データの書き込み(WRITE) の場合も基本的に同
様である。自プロセッサ730と他プロセッサノード7
50のどちらからもデータの要求がなければ,もちろん
何もしない。他プロセッサノード750からデータの読
み出し要求があり,そのデータを自プロセッサ730用
のキャッシュメモリ720が保持している場合,現LR
U優先度は元の値のままとする。他プロセッサノード7
50からデータの読み出し要求があり,そのデータを自
プロセッサ730用のキャッシュメモリ720が保持し
ていない場合,そのデータをキャッシュメモリ720に
取り込み,そのデータの現LRU優先度を0にする。こ
の例では,保持するデータが cleanの場合(すなわち主
記憶のデータと値が一致する場合)にもdirty の場合
(すなわち主記憶のデータと値が一致しない可能性があ
る場合)にも,次LRU優先度は同じ値が設定される
が,LRU優先度テーブル717への設定値により区別
することも可能である。データ要求が他プロセッサノー
ド750からではなく,自プロセッサ730からであれ
ば,従来と同様に,次LRU優先度を最も高い値(=
3)に設定する。
【0087】もし,他プロセッサノード750のデータ
読み出し要求によって,データをキャッシュメモリ72
0に記録 (再記録ではない)するのであれば,他プロセ
ッサバス要求傍受部714は,システムバス740上で
転送されるデータを読み取り,キャッシュ制御管理部7
12は,そのデータをLRU優先度決定部716によっ
て上記の手順により求めたLRU優先度を持つデータと
して,キャッシュメモリ720に記録する。
読み出し要求によって,データをキャッシュメモリ72
0に記録 (再記録ではない)するのであれば,他プロセ
ッサバス要求傍受部714は,システムバス740上で
転送されるデータを読み取り,キャッシュ制御管理部7
12は,そのデータをLRU優先度決定部716によっ
て上記の手順により求めたLRU優先度を持つデータと
して,キャッシュメモリ720に記録する。
【0088】例えば,LRU優先度なし (すなわち,自
キャッシュメモリ720上に持っていない状態)のデー
タに対して,他プロセッサノード750からデータの読
み出し(READ)が送出され,かつ,スヌーピングの結果
が「他 clean」 (他プロセッサがデータをclean で持っ
ていた)もしくは「他 dirty」 (他プロセッサがデータ
をdirty で持っていた)の場合には,図16に示すよう
に,データはLRU優先度が最も低い“0”のデータと
してキャッシュメモリ720に記録される。なお,この
ときキャッシュメモリ720に記録されるデータは,シ
ステムバス740上を転送されているデータを他プロセ
ッサバス要求傍受部714が読み取ったものである。
キャッシュメモリ720上に持っていない状態)のデー
タに対して,他プロセッサノード750からデータの読
み出し(READ)が送出され,かつ,スヌーピングの結果
が「他 clean」 (他プロセッサがデータをclean で持っ
ていた)もしくは「他 dirty」 (他プロセッサがデータ
をdirty で持っていた)の場合には,図16に示すよう
に,データはLRU優先度が最も低い“0”のデータと
してキャッシュメモリ720に記録される。なお,この
ときキャッシュメモリ720に記録されるデータは,シ
ステムバス740上を転送されているデータを他プロセ
ッサバス要求傍受部714が読み取ったものである。
【0089】なお,LRU優先度テーブル717に記録
されている値は,導出方式設定部718が,任意に設定
することが可能である。または,予め定められた値とす
ることも可能である。導出方式設定部718の実現方法
としては,例えばプロセッサ730から初期設定時もし
くはプログラムの起動時に値を設定する方法,あるいは
キャッシュメモリ装置700の実装時にROM等を用い
てLRU優先度テーブル717を組み込む方法などが考
えられる。
されている値は,導出方式設定部718が,任意に設定
することが可能である。または,予め定められた値とす
ることも可能である。導出方式設定部718の実現方法
としては,例えばプロセッサ730から初期設定時もし
くはプログラムの起動時に値を設定する方法,あるいは
キャッシュメモリ装置700の実装時にROM等を用い
てLRU優先度テーブル717を組み込む方法などが考
えられる。
【0090】
【発明の効果】以上説明したように,本発明によれば,
キャッシュメモリから追い出すデータを決めるときに使
用されるLRU優先度の値を積極的に操作することが可
能となる。例えば,使用される可能性の低いデータをキ
ャッシュメモリに記録(もしくは再記録)するときに
は,そのデータのLRU優先度を低く設定することで,
他の必要なデータがキャッシュメモリから追い出される
のを防ぐことができる。この制御は,データにアクセス
したときのLRU優先度の変更を制御することにより実
現しているため,キャッシュメモリにおけるLRU制御
のための情報の記録容量は従来と変わらず実現できる。
したがって,キャッシュメモリの容量をより有効に使う
ことが可能となり,その結果としてシステムの性能を向
上させることができる。
キャッシュメモリから追い出すデータを決めるときに使
用されるLRU優先度の値を積極的に操作することが可
能となる。例えば,使用される可能性の低いデータをキ
ャッシュメモリに記録(もしくは再記録)するときに
は,そのデータのLRU優先度を低く設定することで,
他の必要なデータがキャッシュメモリから追い出される
のを防ぐことができる。この制御は,データにアクセス
したときのLRU優先度の変更を制御することにより実
現しているため,キャッシュメモリにおけるLRU制御
のための情報の記録容量は従来と変わらず実現できる。
したがって,キャッシュメモリの容量をより有効に使う
ことが可能となり,その結果としてシステムの性能を向
上させることができる。
【図1】本発明のブロック構成例を示す図である。
【図2】本発明の動作原理を説明するための図である。
【図3】本発明の第1の実施の形態のブロック構成図で
ある。
ある。
【図4】第1の実施の形態におけるLRU優先度テーブ
ルの例を示す図である。
ルの例を示す図である。
【図5】本発明の第2の実施の形態のブロック構成図で
ある。
ある。
【図6】第2の実施の形態におけるLRU優先度テーブ
ルの例を示す図である。
ルの例を示す図である。
【図7】本発明の第3の実施の形態のブロック構成図で
ある。
ある。
【図8】第3の実施の形態におけるLRU優先度テーブ
ルの例を示す図である。
ルの例を示す図である。
【図9】本発明の第4の実施の形態のブロック構成図で
ある。
ある。
【図10】第4の実施の形態におけるLRU優先度テー
ブルの例を示す図である。
ブルの例を示す図である。
【図11】本発明の第5の実施の形態のブロック構成図
である。
である。
【図12】第5の実施の形態におけるLRU優先度テー
ブルの例を示す図である。
ブルの例を示す図である。
【図13】本発明の第6の実施の形態のブロック構成図
である。
である。
【図14】第6の実施の形態におけるLRU優先度テー
ブルの例を示す図である。
ブルの例を示す図である。
【図15】本発明の第7の実施の形態のブロック構成図
である。
である。
【図16】第7の実施の形態におけるLRU優先度テー
ブルの例を示す図である。
ブルの例を示す図である。
【図17】キャッシュメモリに新たにデータを記録する
場合の例を示す図である。
場合の例を示す図である。
【図18】プリフェッチによりキャッシュメモリの有効
性が損なわれる例を示す図である。
性が損なわれる例を示す図である。
【図19】プリフェッチなしでキャッシュメモリが有効
に利用される例を示す図である。
に利用される例を示す図である。
1 キャッシュメモリ装置 10 キャッシュコントローラ 11 キャッシュ制御手段 12 導出方式設定手段 13 LRU優先度決定手段 20 キャッシュメモリ 30 プロセッサ 40 システムバス
───────────────────────────────────────────────────── フロントページの続き (72)発明者 佐藤 充 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 Fターム(参考) 5B005 JJ11 KK12 MM01 NN22 QQ02 QQ04
Claims (8)
- 【請求項1】 LRU方式により制御されるキャッシュ
メモリ装置において,キャッシュメモリに新たにデータ
を記録する際に,またはキャッシュヒットしてデータを
再記録する際に,前記データの現在のLRU優先度,前
記データの属性,前記データへのアクセス手段,プロセ
ッサの状態,またはこれらのすべてもしくは一部の情報
を用いて,次のLRU優先度を導出するLRU優先度決
定部を備え,前記LRU優先度決定部が決定したLRU
優先度を持つデータとして,キャッシュメモリ内にデー
タを記録または再記録することを特徴とするキャッシュ
メモリ装置。 - 【請求項2】 請求項1に記載するキャッシュメモリ装
置において,前記LRU優先度決定部が次のLRU優先
度を導出するのに使用する方式を,任意に変更し,また
は設定する導出方式設定部を備えることを特徴とするキ
ャッシュメモリ装置。 - 【請求項3】 請求項1または請求項2に記載するキャ
ッシュメモリ装置において,データのアドレスからデー
タのプライオリティを決定するアドレス解析部を備え,
前記LRU優先度決定部は,キャッシュメモリにデータ
を記録または再記録する際に,少なくとも,前記アドレ
ス解析部が出力するデータのプライオリティと,データ
の現在のLRU優先度とを用いて,データの次のLRU
優先度を決定することを特徴とするキャッシュメモリ装
置。 - 【請求項4】 請求項1または請求項2に記載するキャ
ッシュメモリ装置において,プロセッサがプリフェッチ
命令の機能を持つ場合に,前記プロセッサからキャッシ
ュメモリへのアクセスが,プリフェッチ命令によるアク
セスであるか否かを識別するプリフェッチ識別部を備
え,前記LRU優先度決定部は,キャッシュメモリにデ
ータを記録または再記録する際に,少なくとも,前記プ
リフェッチ識別部の識別結果と,データの現在のLRU
優先度とを用いて,データの次のLRU優先度を決定す
ることを特徴とするキャッシュメモリ装置。 - 【請求項5】 請求項1または請求項2に記載するキャ
ッシュメモリ装置において,プロセッサからキャッシュ
メモリへのこれまでのアクセス履歴に基づき,プロセッ
サが使用する可能性の高いデータのアドレスを予測し,
そのアドレスのデータを先読みするプリフェッチ制御部
を備え,前記LRU優先度決定部は,キャッシュメモリ
にデータを記録または再記録する際に,少なくとも,前
記プリフェッチ制御部がロードしたデータであるか否か
と,データの現在のLRU優先度とを用いて,データの
次のLRU優先度を決定することを特徴とするキャッシ
ュメモリ装置。 - 【請求項6】 請求項1または請求項2に記載するキャ
ッシュメモリ装置において,プロセッサからキャッシュ
メモリへのアクセスを発した命令の種類を識別する命令
識別部を備え,前記LRU優先度決定部は,キャッシュ
メモリにデータを記録または再記録する際に,少なくと
も,前記命令識別部の識別結果と,データの現在のLR
U優先度とを用いて,データの次のLRU優先度を決定
することを特徴とするキャッシュメモリ装置。 - 【請求項7】 請求項1または請求項2に記載するキャ
ッシュメモリ装置において,プロセッサが投機的命令実
行機能を持つ場合に,前記プロセッサからキャッシュメ
モリへのアクセスが,プロセッサが投機的命令実行中に
発したアクセスであるか否かを識別する投機実行識別部
を備え,前記LRU優先度決定部は,キャッシュメモリ
にデータを記録または再記録する際に,少なくとも,前
記投機実行識別部の識別結果と,データの現在のLRU
優先度とを用いて,データの次のLRU優先度を決定す
ることを特徴とするキャッシュメモリ装置。 - 【請求項8】 請求項1または請求項2に記載するキャ
ッシュメモリ装置において,プロセッサがバス結合され
た並列計算機である場合に,他プロセッサのバス要求を
傍受する他プロセッサバス要求傍受部を備え,前記LR
U優先度決定部は,他プロセッサがバスに要求を出した
際に,少なくとも,その他プロセッサが出した要求の種
類と,そのスヌーピングの結果と,データの現在のLR
U優先度とを用いて,データの次のLRU優先度を決定
することを特徴とするキャッシュメモリ装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11155286A JP2000347941A (ja) | 1999-06-02 | 1999-06-02 | キャッシュメモリ装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11155286A JP2000347941A (ja) | 1999-06-02 | 1999-06-02 | キャッシュメモリ装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2000347941A true JP2000347941A (ja) | 2000-12-15 |
Family
ID=15602589
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP11155286A Withdrawn JP2000347941A (ja) | 1999-06-02 | 1999-06-02 | キャッシュメモリ装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2000347941A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009059077A (ja) * | 2007-08-30 | 2009-03-19 | Toshiba Corp | キャッシュシステム |
| JP2017097066A (ja) * | 2015-11-19 | 2017-06-01 | ルネサスエレクトロニクス株式会社 | 画像処理装置及び画像処理方法 |
| JP2021175118A (ja) * | 2020-04-28 | 2021-11-01 | 日本電信電話株式会社 | 参照画像キャッシュ、削除先決定方法及びコンピュータプログラム |
| US11704235B2 (en) | 2021-03-18 | 2023-07-18 | Kioxia Corporation | Memory system and storage device |
-
1999
- 1999-06-02 JP JP11155286A patent/JP2000347941A/ja not_active Withdrawn
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009059077A (ja) * | 2007-08-30 | 2009-03-19 | Toshiba Corp | キャッシュシステム |
| JP2017097066A (ja) * | 2015-11-19 | 2017-06-01 | ルネサスエレクトロニクス株式会社 | 画像処理装置及び画像処理方法 |
| JP2021175118A (ja) * | 2020-04-28 | 2021-11-01 | 日本電信電話株式会社 | 参照画像キャッシュ、削除先決定方法及びコンピュータプログラム |
| JP7406206B2 (ja) | 2020-04-28 | 2023-12-27 | 日本電信電話株式会社 | 参照画像キャッシュ、削除先決定方法及びコンピュータプログラム |
| US11704235B2 (en) | 2021-03-18 | 2023-07-18 | Kioxia Corporation | Memory system and storage device |
| US12164420B2 (en) | 2021-03-18 | 2024-12-10 | Kioxia Corporation | Memory system and storage device |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3587591B2 (ja) | キャッシュ・ミスを制御する方法およびその計算機システム | |
| JP5536658B2 (ja) | バッファメモリ装置、メモリシステム及びデータ転送方法 | |
| CN101589374B (zh) | 用于在处理器中设置高速缓存策略的方法和设备 | |
| JP3640355B2 (ja) | キャッシュ制御の命令プリフェッチ方法及びシステム | |
| JP4297968B2 (ja) | コヒーレンシ維持装置およびコヒーレンシ維持方法 | |
| JPH037978B2 (ja) | ||
| US20100217937A1 (en) | Data processing apparatus and method | |
| US6748496B1 (en) | Method and apparatus for providing cacheable data to a peripheral device | |
| US11036639B2 (en) | Cache apparatus and method that facilitates a reduction in energy consumption through use of first and second data arrays | |
| CN101617298B (zh) | 用于dma、任务终止和同步操作的缓存一致保持 | |
| JP3326189B2 (ja) | コンピューターメモリシステムおよびデータエレメント清浄化法 | |
| US6256710B1 (en) | Cache management during cache inhibited transactions for increasing cache efficiency | |
| US20060179173A1 (en) | Method and system for cache utilization by prefetching for multiple DMA reads | |
| CN114450668A (zh) | 电路和方法 | |
| US8214597B2 (en) | Cache tentative read buffer | |
| CN110688155A (zh) | 一种访问不可缓存区域的存储指令的合并方法 | |
| JP4666511B2 (ja) | データ処理におけるメモリキャッシング | |
| JPH08328959A (ja) | ディスクキャッシュ制御装置 | |
| US7328310B2 (en) | Method and system for cache utilization by limiting number of pending cache line requests | |
| JP2000047942A (ja) | キャッシュメモリ制御装置及びその制御方法 | |
| JPH0784879A (ja) | キャッシュメモリ装置 | |
| JP2001222467A (ja) | キャッシュ装置 | |
| KR20040047398A (ko) | 캐쉬 메모리를 이용한 데이터 억세스 방법 | |
| CN111198827A (zh) | 页表预取方法及装置 | |
| KR20240089035A (ko) | 캐시 라인 일관성 상태 업그레이드 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060905 |