JP2000242557A - キャッシュプリフェッチ装置 - Google Patents
キャッシュプリフェッチ装置Info
- Publication number
- JP2000242557A JP2000242557A JP11047576A JP4757699A JP2000242557A JP 2000242557 A JP2000242557 A JP 2000242557A JP 11047576 A JP11047576 A JP 11047576A JP 4757699 A JP4757699 A JP 4757699A JP 2000242557 A JP2000242557 A JP 2000242557A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- block
- primary
- secondary cache
- sub
- 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
- 230000015654 memory Effects 0.000 claims description 55
- 238000000034 method Methods 0.000 claims description 26
- 230000010365 information processing Effects 0.000 claims description 22
- 230000000717 retained effect Effects 0.000 claims 12
- 101100327917 Caenorhabditis elegans chup-1 gene Proteins 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
プリフェッチを高速に行う。 【解決手段】 2次キャッシュにおいて、各エントリに
対応するブロック中のサブブロックの各々が1次キャッ
シュ中に存在するか否かを示す1次キャッシュ情報22
0を保持する。2次キャッシュは、1次キャッシュに問
い合わせることなく1次キャッシュ側の状態を判断し
て、2次キャッシュ側のリフィル及びプリフェッチの処
理を行う。2次キャッシュのプリフェッチを行うか否か
は現在アクセス中の2次キャッシュブロックにおけるブ
ロック内アドレスにより判断する。さらに通常のケース
においては、1次キャッシュのプリフェッチと2次キャ
ッシュのプリフェッチはオーバラップして行われる。
Description
におけるキャッシュプリフェッチ装置に関し、特に階層
キャッシュメモリにおいてプリフェッチを行うためのキ
ャッシュプリフェッチ装置に関する。
システムでは、プロセッサとメモリとの間に設けるキャ
ッシュメモリの内、プロセッサに近い位置に比較的小容
量で高速な1次キャッシュを配置し、1次キャッシュと
メモリとの間に1次キャッシュよりも速度は劣るが大容
量の2次キャッシュを配置する。この従来の情報処理シ
ステムでは、まずプロセッサに近い1次キャッシュにア
クセスすることにより、1次キャッシュに所望のデータ
が存在する(キャッシュヒット)か否(キャッシュミス
ヒット)かを判断する。そして、1次キャッシュミスヒ
ットの場合には、次に2次キャッシュにアクセスして、
2次キャッシュにおけるキャッシュヒット/ミスを判断
する。
は、1次キャッシュにおいて所望データの属すべきライ
ンに対してアクセスを行い、そのヒット/ミスの結果に
より、プリフェッチモードに応じたプリフェッチ動作を
行うシステムが記載されている。
一旦1次キャッシュにアクセスを試みることにより、そ
の後のキャッシュプリフェッチ動作の要否を判断するこ
ととなるため、処理が逐次化されて高速化が図れないと
いう問題がある。
イズが大きいため、闇雲にプリフェッチを行うことは得
策ではない。上述の従来技術においても、プリフェッチ
は1次キャッシュのみに留めている。
キャッシュヒット/ミスの判断と、2次キャッシュにお
けるプリフェッチ要否の判断とを並行して行うことによ
り、キャッシュプリフェッチのための処理を高速化する
ことにある。
ュのプリフェッチを併せて行う場合の効率的な制御手段
を提供することにある。
に本発明のキャッシュプリフェッチ装置は、プロセッサ
と、メモリと、前記プロセッサと前記メモリとの間に設
けられた2次キャッシュと、この2次キャッシュとプロ
セッサとの間に設けられた1次キャッシュとを含む情報
処理システムにおけるキャッシュプリフェッチ装置であ
って、前記2次キャッシュは、当該キャッシュに保持さ
れるブロック内のサブブロックの各々が前記1次キャッ
シュに保持されているか否かを示す1次キャッシュ情報
を保持し、アクセス中のサブブロックの次サブブロック
が前記1次キャッシュに保持されていないことを前記1
次キャッシュ情報から判断した場合には1次キャッシュ
のプリフェッチを行う。
チ装置において、前記2次キャッシュのブロックにおけ
るアクセス中のブロック内アドレスが所定値を越えた場
合において当該ブロックの次ブロックが2次キャッシュ
に保持されていなければ2次キャッシュのプリフェッチ
を行う。
チ装置において、前記2次キャッシュのブロックサイズ
は前記1次キャッシュのブロックサイズの整数倍であ
り、前記1次キャッシュに保持されている内容は前記2
次キャッシュにも保持されている。
チ装置は、プロセッサと、メモリと、前記プロセッサと
前記メモリとの間に設けられた2次キャッシュと、この
2次キャッシュとプロセッサとの間に設けられた1次キ
ャッシュとを含む情報処理システムにおけるキャッシュ
プリフェッチ装置であって、前記2次キャッシュは、当
該キャッシュに保持されるブロック内のサブブロックの
各々が前記1次キャッシュに保持されているか否かを示
す1次キャッシュ情報を保持し、前記2次キャッシュの
ブロックにおけるアクセス中のサブブロックが当該ブロ
ック内の最終ブロックである場合は、当該ブロックの次
ブロックが2次キャッシュに保持されていなければ2次
キャッシュのプリフェッチを行うという処理と、当該ア
クセス中のサブブロックの次サブブロックが前記1次キ
ャッシュに保持されていないことを前記1次キャッシュ
情報から判断した場合には1次キャッシュのプリフェッ
チを行うという処理とを逐次に行い、当該アクセス中の
サブブロックが当該ブロック内の最終ブロックではなく
且つ当該アクセス中のブロック内アドレスが所定値を越
えた場合には、当該アクセス中のサブブロックの次サブ
ブロックが前記1次キャッシュに保持されていないこと
を前記1次キャッシュ情報から判断した場合には1次キ
ャッシュのプリフェッチを行うという処理と、当該ブロ
ックの次ブロックが2次キャッシュに保持されていなけ
れば2次キャッシュのプリフェッチを行うという処理と
をオーバラップして行うように制御する。
と、メモリと、前記プロセッサと前記メモリとの間に設
けられた2次キャッシュと、この2次キャッシュとプロ
セッサとの間に設けられた1次キャッシュとを含み、前
記2次キャッシュは当該キャッシュに保持されるブロッ
ク内のサブブロックの各々が前記1次キャッシュに保持
されているか否かを示す1次キャッシュ情報を保持し、
アクセス中のサブブロックの次サブブロックが前記1次
キャッシュに保持されていないことを前記1次キャッシ
ュ情報から判断した場合には1次キャッシュのプリフェ
ッチを行う。
前記2次キャッシュのブロックにおけるアクセス中のブ
ロック内アドレスが所定値を越えた場合において当該ブ
ロックの次ブロックが2次キャッシュに保持されていな
ければ2次キャッシュのプリフェッチを行う。
ッサと、メモリと、前記プロセッサと前記メモリとの間
に設けられた2次キャッシュと、この2次キャッシュと
プロセッサとの間に設けられた1次キャッシュとを含
み、前記2次キャッシュは当該キャッシュに保持される
ブロック内のサブブロックの各々が前記1次キャッシュ
に保持されているか否かを示す1次キャッシュ情報を保
持し、前記2次キャッシュのブロックにおけるアクセス
中のサブブロックが当該ブロック内の最終ブロックであ
る場合は、当該ブロックの次ブロックが2次キャッシュ
に保持されていなければ2次キャッシュのプリフェッチ
を行うという処理と、当該アクセス中のサブブロックの
次サブブロックが前記1次キャッシュに保持されていな
いことを前記1次キャッシュ情報から判断した場合には
1次キャッシュのプリフェッチを行うという処理とを逐
次に行い、当該アクセス中のサブブロックが当該ブロッ
ク内の最終ブロックではなく且つ当該アクセス中のブロ
ック内アドレスが所定値を越えた場合には、当該アクセ
ス中のサブブロックの次サブブロックが前記1次キャッ
シュに保持されていないことを前記1次キャッシュ情報
から判断した場合には1次キャッシュのプリフェッチを
行うという処理と、当該ブロックの次ブロックが2次キ
ャッシュに保持されていなければ2次キャッシュのプリ
フェッチを行うという処理とをオーバラップして行うよ
うに制御する。
プロセッサと、メモリと、前記プロセッサと前記メモリ
との間に設けられた2次キャッシュと、この2次キャッ
シュとプロセッサとの間に設けられた1次キャッシュと
を含み、前記2次キャッシュは当該キャッシュに保持さ
れるブロック内のサブブロックの各々が前記1次キャッ
シュに保持されているか否かを示す1次キャッシュ情報
を保持する情報処理システムにおいて、前記2次キャッ
シュのブロックにおけるアクセス中のブロック内アドレ
スが所定値を越え且つ当該ブロックの次ブロックが前記
2次キャッシュに保持されていなければ前記2次キャッ
シュのプリフェッチを行い、当該アクセス中のサブブロ
ックの次サブブロックが前記1次キャッシュに保持され
ていないことを前記1次キャッシュ情報から判断した場
合には1次キャッシュのプリフェッチを行う。
は、プロセッサと、メモリと、前記プロセッサと前記メ
モリとの間に設けられた2次キャッシュと、この2次キ
ャッシュとプロセッサとの間に設けられた1次キャッシ
ュとを含み、前記2次キャッシュは当該キャッシュに保
持されるブロック内のサブブロックの各々が前記1次キ
ャッシュに保持されているか否かを示す1次キャッシュ
情報を保持する情報処理システムにおいて、前記2次キ
ャッシュにミスヒットした場合には前記2次キャッシュ
の当該ブロックをリフィルし、前記1次キャッシュにミ
スヒットした場合には前記1次キャッシュの当該ブロッ
クをリフィルし、前記2次キャッシュのブロックにおけ
るアクセス中のブロック内アドレスが所定値を越え且つ
当該ブロックの次ブロックが前記2次キャッシュに保持
されていなければ前記2次キャッシュのプリフェッチを
行い、当該アクセス中のサブブロックの次サブブロック
が前記1次キャッシュに保持されていないことを前記1
次キャッシュ情報から判断した場合には1次キャッシュ
のプリフェッチを行う。
は、プロセッサと、メモリと、前記プロセッサと前記メ
モリとの間に設けられた2次キャッシュと、この2次キ
ャッシュとプロセッサとの間に設けられた1次キャッシ
ュとを含み、前記2次キャッシュは当該キャッシュに保
持されるブロック内のサブブロックの各々が前記1次キ
ャッシュに保持されているか否かを示す1次キャッシュ
情報を保持する情報処理システムにおいて、前記2次キ
ャッシュのブロックにおけるアクセス中のサブブロック
が当該ブロック内の最終ブロックである場合は、当該ブ
ロックの次ブロックが2次キャッシュに保持されていな
ければ2次キャッシュのプリフェッチを行うという処理
と、当該アクセス中のサブブロックの次サブブロックが
前記1次キャッシュに保持されていないことを前記1次
キャッシュ情報から判断した場合には1次キャッシュの
プリフェッチを行うという処理とを逐次に行い、当該ア
クセス中のサブブロックが当該ブロック内の最終ブロッ
クではなく且つ当該アクセス中のブロック内アドレスが
所定値を越えた場合には、当該アクセス中のサブブロッ
クの次サブブロックが前記1次キャッシュに保持されて
いないことを前記1次キャッシュ情報から判断した場合
には1次キャッシュのプリフェッチを行うという処理
と、当該ブロックの次ブロックが2次キャッシュに保持
されていなければ2次キャッシュのプリフェッチを行う
という処理とをオーバラップして行う。
ッチ装置の実施の形態について図面を参照して詳細に説
明する。
報処理システムは、処理を行うプロセッサ300と、デ
ータを記憶するメモリ400とを備える。この情報処理
システムでは、メモリ400の内容のコピーを保持する
キャッシュメモリとして、大容量の2次キャッシュ20
0がプロセッサ300とメモリ400との間に設けら
れ、2次キャッシュよりも小容量で高速な1次キャッシ
ュ100がプロセッサと2次キャッシュとの間に設けら
れる。
ロックデータは、2次キャッシュ200中に必ず保持さ
れているものとする。また、両キャッシュメモリのプロ
トコルとしては、例えばライトスルーを採用できる。さ
らに、両キャッシュメモリの追い出しアルゴリズムとし
ては、例えばLRU(Least Recently Used)アルゴリ
ズムを採用できる。
うとする場合、1次キャッシュ100と2次キャッシュ
200の両方に所望データを要求し、1次キャッシュ1
00に所望のデータが存在(ヒット)すればそれを使用
する。1次キャッシュ100に所望のデータが存在しな
い場合(ミスヒット)は2次キャッシュ200からの応
答を調べ、2次キャッシュに所望データが存在(ヒッ
ト)すればそれを使用する。各キャッシュメモリでミス
ヒットが生じた場合には、上位の記憶装置にデータの要
求が伝達される。例えば、1次キャッシュ100でミス
ヒットが生じると2次キャッシュ200からブロックデ
ータが転送され、さらに2次キャッシュ200でミスヒ
ットが生じるとメモリ400にブロックデータが要求さ
れる。
おいて、1次キャッシュ100は、複数のエントリによ
り構成され、各エントリは、バリッドビット110と、
アドレスアレイ130と、データメモリ140とを含
む。バリッドビット110は、そのエントリが有効なも
のか否かを示す。アドレスアレイ130は、そのエント
リに対応するアドレスのタグ部分を保持する。データメ
モリ140は、そのエントリに対応するデータを保持す
る。1エントリ分のデータをここではブロックデータと
いう。 本発明の実施の形態において、1次キャッシュ
100で参照されるアドレスは、1次キャッシュタグ1
01と、1次キャッシュインデックス102と、1次キ
ャッシュブロック内アドレス104とに分類される。1
次キャッシュインデックス102は、複数のエントリの
中から所定のエントリを特定するために用いられる。こ
のようにして読み出されたアドレスタグ130が、1次
キャッシュタグ101と比較器150により比較され
る。ここで、アドレスタグ130と1次キャッシュタグ
101が一致すればそのエントリが所望のデータを含む
ことになる。但し、対応するバリッドビット110が
「無効」を示していればそのエントリ自体が無意味なデ
ータを保持していることになるので、その場合にはキャ
ッシュミスとなる。これは、比較器150の出力とバリ
ッドビット110の値の論理積を論理積ゲート160で
求めることにより、キャッシュヒット/ミスヒット信号
161として得られる。アドレスタグ130と1次キャ
ッシュタグ101が一致し、かつ、対応するバリッドビ
ット110が「有効」を示していれば、対応するデータ
メモリ140の値が有効なブロックデータ180として
得られる。このブロックデータの内、1次キャッシュブ
ロック内アドレス104によって指示されるワードが所
望のワードデータ181である。
り64バイトで1024エントリあるとして、32ビッ
トアドレス空間で実現するためには、アドレスタグが1
6ビット必要になる。すなわち、32ビットアドレスの
内、第16乃至31ビット目の16ビットが1次キャッ
シュタグ101、第6乃至15ビット目の10ビットが
1次キャッシュインデックス102となる。この場合、
4バイトのワードデータを特定するためには1次キャッ
シュブロック内アドレス104として第2乃至5ビット
目の4ビットが使用される。
レクトマップキャッシュ構成になっているが、一つの1
次キャッシュインデックス102に複数のエントリが対
応するように構成することによりセットアソシアティブ
キャッシュ構成を採ることができる。これは次に述べる
2次キャッシュについても同様である。
おいて、2次キャッシュ200は、複数のエントリによ
り構成され、各エントリは、バリッドビット210と、
1次キャッシュ情報220と、アドレスアレイ230
と、データメモリ240とを含む。バリッドビット21
0は、そのエントリが有効なものか否かを示す。1次キ
ャッシュ情報220は、対応するブロック中のデータが
1次キャッシュに保持されているか否かを示す。アドレ
スアレイ230は、そのエントリに対応するアドレスの
タグ部分を保持する。データメモリ240は、そのエン
トリに対応するデータを保持する。2次キャッシュのブ
ロックデータの大きさは1次キャッシュのものの整数倍
であるものとする。2次キャッシュのブロックにおい
て、1次キャッシュのブロックに相当する大きさに区切
ったもののそれぞれを、特にサブブロックという。
シュ200で参照されるアドレスは、2次キャッシュタ
グ201と、2次キャッシュインデックス202と、2
次キャッシュサブブロックアドレス203と、2次キャ
ッシュブロック内アドレス204とに分類される。2次
キャッシュインデックス202は、複数のエントリの中
から所定のエントリを特定するために用いられる。この
ようにして読み出されたアドレスタグ230が、2次キ
ャッシュタグ201と比較器250により比較される。
ここで、アドレスタグ230と2次キャッシュタグ20
1が一致すればそのエントリが所望のデータを含むこと
になる。但し、対応するバリッドビット210が「無
効」を示していればそのエントリ自体が無意味なデータ
を保持していることになるので、その場合にはキャッシ
ュミスとなる。これは、比較器250の出力とバリッド
ビット210の値の論理積を論理積ゲート260で求め
ることにより、キャッシュヒット/ミスヒット信号26
1として得られる。アドレスタグ230と2次キャッシ
ュタグ201が一致し、かつ、対応するバリッドビット
210が「有効」を示していれば、対応するデータメモ
リ240の値が有効なブロックデータ280として得ら
れる。このブロックデータの内、セレクタ270におい
て、2次キャッシュサブブロックアドレス203により
サブブロック280が選択される。このサブブロック2
80において、2次キャッシュサブブロック内アドレス
204によって指示されるワードが所望のワードデータ
281である。
内、1次キャッシュ情報220は、対応するサブブロッ
クデータが1次キャッシュ100に保持されているか否
かを示す。1次キャッシュ情報220は、対応するブロ
ック中のサブブロック毎に1ビットずつ割り当てられ、
各ビットは「1次キャッシュに存在する」または「1次
キャッシュに存在しない」の何れかを表す。この1次キ
ャッシュ情報220を2次キャッシュ200中に保持し
ておくことにより、1次キャッシュ100に問い合わせ
ることなく、1次キャッシュ100のヒット/ミス情報
を判断することができる。
り512バイト(64バイト×8サブブロック)で10
24エントリあるとして、32ビットアドレス空間で実
現するためには、アドレスタグは13ビット必要にな
る。すなわち、32ビットアドレスの内、第19乃至3
1ビット目の13ビットが2次キャッシュタグ201、
第9乃至18ビット目の10ビットが2次キャッシュイ
ンデックス202となる。この場合、1ブロック中の8
つのサブブロックの内何れのサブブロックであるかを特
定するためには2次キャッシュサブブロックアドレス2
03として第6乃至8ビット目の3ビットが、サブブロ
ック中の4バイトのワードデータを特定するためには2
次キャッシュサブブロック内アドレス204として第2
乃至5ビット目の4ビットが使用される。また、2次キ
ャッシュの512バイトブロックにおいて32バイトの
サブブロックは8つ存在するので、これらに対応して1
次キャッシュ情報220は8ビット必要である。
において、1次キャッシュ100及び2次キャッシュ2
00のプリフェッチを行う技術について説明する。
でミスヒットが発生した場合には、通常のキャッシュメ
モリと同様に、対応するブロックデータを2次キャッシ
ュ200またはメモリ400から読み出す必要が生じ
る。これをリフィルという。さらに、2次キャッシュ2
00にもミスヒットが生じた場合には、対応するブロッ
クデータをメモリ400から読み出す必要が生じる。
ィルによるブロックデータのリードのみならず、次のよ
うなプリフェッチを行う。まず、1次キャッシュ100
のプリフェッチについては、現在アクセス中のブロック
の次ブロックが1次キャッシュ100に存在するか否か
を調べ、存在しなければ当該次ブロックをプリフェッチ
する。次ブロックが1次キャッシュ100に存在するか
否かは、1次キャッシュ100内のバリッドビット11
0(図2)及び2次キャッシュ200中の1次キャッシ
ュ情報220(図3)により判断できる。
チについては、1次キャッシュ100の場合と同様とし
てしまうと過剰にプリフェッチが発生するおそれがある
ことから、現在アクセス中のブロックにおけるブロック
内アドレスが所定値を越えた場合にのみ動作するものと
する。すなわち、現在アクセス中のブロックにおけるブ
ロック内アドレスが所定値を越えると、その次ブロック
が2次キャッシュ200に存在するか否かを調べ、存在
しなければ当該次ブロックをプリフェッチする。次ブロ
ックが2次キャッシュ200に存在するか否かは、2次
キャッシュ200内のバリッドビット210(図3)に
より判断できる。
のプリフェッチを行うか否かを示す2次キャッシュプリ
フェッチ信号は、2次キャッシュサブブロックアドレス
203を参照することにより決定される。例えば、2次
キャッシュブロック内の最後から2番目のサブブロック
にアクセスがあったときに2次キャッシュプリフェッチ
が動作するようにしたい場合には、図4に示すように2
次キャッシュサブブロックアドレス203が”110”
または”111”のときに2次キャッシュプリフェッチ
信号が”1”(「プリフェッチする」を意味する。)と
なるようにすればよい。本回路はデコーダとして実現で
き、特に上述の例では、32ビットアドレスの中で第7
及び8ビット目の論理和を生成する論理和ゲートにより
実現できる。
ついて説明する。
ッシュ200における動作として、まず、2次キャッシ
ュ200にヒットしたか否かを判断する(ステップS5
01)。2次キャッシュ200にミスヒットした場合に
はメモリ400から2次キャッシュ200へのリフィル
を行い(ステップS502)、その場合には1次キャッ
シュ100にもミスヒットするので1次キャッシュ10
0へのリフィルも行う(ステップS504)。また、2
次キャッシュ200にヒットした場合でも(ステップS
501)、1次キャッシュ100にミスヒットする場合
があるので、その場合には1次キャッシュ100へのリ
フィルを行う(ステップS504)。
におけるブロック内アドレスが所定値を越えると(ステ
ップS505)、その次ブロックが2次キャッシュ20
0に存在するか否かを調べ(ステップS506)、存在
しなければ当該次ブロックをプリフェッチする(ステッ
プS507)。さらに、1次キャッシュ100の次ブロ
ックが1次キャッシュ100に存在するか否かを調べ
(ステップS508)、存在しなければ当該次ブロック
をプリフェッチする(ステップS509)。
キャッシュ200内に設けられた1次キャッシュ情報2
20により、1次キャッシュにヒットするか否かを即座
に判断できるため、1次キャッシュ100における判断
を待つことなく、キャッシュのリフィルやプリフェッチ
処理を高速に行うことができる。
を参照すると、まず、2次キャッシュ200にヒットし
たか否かを判断する(ステップS601)。2次キャッ
シュ200にミスヒットした場合にはメモリ400から
2次キャッシュ200へのリフィルを行い(ステップS
602)、その場合には1次キャッシュ100にもミス
ヒットするので1次キャッシュ100へのリフィルも行
う(ステップS604)。また、2次キャッシュ200
にヒットした場合でも(ステップS601)、1次キャ
ッシュ100にミスヒットする場合があるので、その場
合には1次キャッシュ100へのリフィルを行う(ステ
ップS604)。ここまでは、図5の場合と同様であ
る。
におけるブロック内アドレスを参照して、そのブロック
内アドレスが所定値を越えているか否か、及び、そのサ
ブブロックがブロック内の最後のサブブロックであるか
否かを判断して以下の場合分けに従って動作を行う(ス
テップS605)。
越えていない場合には、1次キャッシュ100内に次ブ
ロックが存在するか否かを判断して(ステップS63
8)、存在しない場合には1次キャッシュ100のプリ
フェッチを行う(ステップS639)。
後のサブブロックである場合には、まず、その次ブロッ
クが2次キャッシュ200に存在するか否かを調べ(ス
テップS616)、存在しなければ当該次ブロックをプ
リフェッチする(ステップS617)。そして、1次キ
ャッシュ100内に次ブロックが存在するか否かを判断
して(ステップS618)、存在しない場合には1次キ
ャッシュ100のプリフェッチを行う(ステップS61
9)。ここでは、2次キャッシュ200に2次キャッシ
ュの次ブロックが存在しない場合には、1次キャッシュ
100に1次キャッシュの次ブロックが存在しないた
め、2次キャッシュのプリフェッチ完了を待って、1次
キャッシュのプリフェッチを行わなければならない。
アドレスが所定値を越えてはいるが、ブロック内の最後
のサブブロックではない場合には、1次キャッシュのプ
リフェッチ処理(ステップS626及びS627)と2
次キャッシュのプリフェッチ処理(ステップS628及
びS629)はオーバラップして行うことができる。
セスのあったブロック内アドレスが所定値を越えてはい
るが、ブロック内の最後のサブブロックではないという
最も多いケースについて、1次キャッシュのプリフェッ
チ処理と2次キャッシュのプリフェッチ処理をオーバラ
ップして行うことができるため、プリフェッチ処理をさ
らに高速に行うことができる。
よると、2次キャッシュにおいて1次キャッシュにおけ
るブロックデータの存在の有無を判断できるため、1次
キャッシュ及び2次キャッシュにおけるリフィルやプリ
フェッチ処理を高速に行うことができる。
れる情報処理システムの構成を示すブロック図である。
形態における1次キャッシュの構成を示すブロック図で
ある。
形態における2次キャッシュの構成を示すブロック図で
ある。
形態における2次キャッシュのプリフェッチ要求信号を
生成するための真理値表の一例である。
る。
ある。
Claims (10)
- 【請求項1】 プロセッサと、メモリと、前記プロセッ
サと前記メモリとの間に設けられた2次キャッシュと、
この2次キャッシュとプロセッサとの間に設けられた1
次キャッシュとを含む情報処理システムにおけるキャッ
シュプリフェッチ装置であって、 前記2次キャッシュは、当該キャッシュに保持されるブ
ロック内のサブブロックの各々が前記1次キャッシュに
保持されているか否かを示す1次キャッシュ情報を保持
し、アクセス中のサブブロックの次サブブロックが前記
1次キャッシュに保持されていないことを前記1次キャ
ッシュ情報から判断した場合には前記1次キャッシュの
プリフェッチを行うことを特徴とするキャッシュプリフ
ェッチ装置。 - 【請求項2】 前記2次キャッシュのブロックにおける
アクセス中のブロック内アドレスが所定値を越えた場合
において当該ブロックの次ブロックが前記2次キャッシ
ュに保持されていなければ前記2次キャッシュのプリフ
ェッチを行うことを特徴とする請求項1記載のキャッシ
ュプリフェッチ装置。 - 【請求項3】 前記2次キャッシュのブロックサイズは
前記1次キャッシュのブロックサイズの整数倍であり、
前記1次キャッシュに保持されている内容は前記2次キ
ャッシュにも保持されていることを特徴とする請求項2
記載のキャッシュプリフェッチ装置。 - 【請求項4】 プロセッサと、メモリと、前記プロセッ
サと前記メモリとの間に設けられた2次キャッシュと、
この2次キャッシュとプロセッサとの間に設けられた1
次キャッシュとを含む情報処理システムにおけるキャッ
シュプリフェッチ装置であって、 前記2次キャッシュは、当該キャッシュに保持されるブ
ロック内のサブブロックの各々が前記1次キャッシュに
保持されているか否かを示す1次キャッシュ情報を保持
し、 前記2次キャッシュのブロックにおけるアクセス中のサ
ブブロックが当該ブロック内の最終ブロックである場合
は、当該ブロックの次ブロックが前記2次キャッシュに
保持されていなければ前記2次キャッシュのプリフェッ
チを行うという処理と、当該アクセス中のサブブロック
の次サブブロックが前記1次キャッシュに保持されてい
ないことを前記1次キャッシュ情報から判断した場合に
は前記1次キャッシュのプリフェッチを行うという処理
とを逐次に行い、 当該アクセス中のサブブロックが当該ブロック内の最終
ブロックではなく且つ当該アクセス中のブロック内アド
レスが所定値を越えた場合には、当該アクセス中のサブ
ブロックの次サブブロックが前記1次キャッシュに保持
されていないことを前記1次キャッシュ情報から判断し
た場合には前記1次キャッシュのプリフェッチを行うと
いう処理と、当該ブロックの次ブロックが前記2次キャ
ッシュに保持されていなければ前記2次キャッシュのプ
リフェッチを行うという処理とをオーバラップして行う
ように制御することを特徴とするキャッシュプリフェッ
チ装置。 - 【請求項5】 プロセッサと、メモリと、前記プロセッ
サと前記メモリとの間に設けられた2次キャッシュと、
この2次キャッシュとプロセッサとの間に設けられた1
次キャッシュとを含む情報処理システムにおいて、 前記2次キャッシュは、当該キャッシュに保持されるブ
ロック内のサブブロックの各々が前記1次キャッシュに
保持されているか否かを示す1次キャッシュ情報を保持
し、アクセス中のサブブロックの次サブブロックが前記
1次キャッシュに保持されていないことを前記1次キャ
ッシュ情報から判断した場合には前記1次キャッシュの
プリフェッチを行うことを特徴とする情報処理システ
ム。 - 【請求項6】 前記2次キャッシュのブロックにおける
アクセス中のブロック内アドレスが所定値を越えた場合
において当該ブロックの次ブロックが前記2次キャッシ
ュに保持されていなければ前記2次キャッシュのプリフ
ェッチを行うことを特徴とする請求項5記載の情報処理
システム。 - 【請求項7】 プロセッサと、メモリと、前記プロセッ
サと前記メモリとの間に設けられた2次キャッシュと、
この2次キャッシュとプロセッサとの間に設けられた1
次キャッシュとを含む情報処理システムにおいて、 前記2次キャッシュは、当該キャッシュに保持されるブ
ロック内のサブブロックの各々が前記1次キャッシュに
保持されているか否かを示す1次キャッシュ情報を保持
し、 前記2次キャッシュのブロックにおけるアクセス中のサ
ブブロックが当該ブロック内の最終ブロックである場合
は、当該ブロックの次ブロックが前記2次キャッシュに
保持されていなければ2次キャッシュのプリフェッチを
行うという処理と、当該アクセス中のサブブロックの次
サブブロックが前記1次キャッシュに保持されていない
ことを前記1次キャッシュ情報から判断した場合には前
記1次キャッシュのプリフェッチを行うという処理とを
逐次に行い、 当該アクセス中のサブブロックが当該ブロック内の最終
ブロックではなく且つ当該アクセス中のブロック内アド
レスが所定値を越えた場合には、当該アクセス中のサブ
ブロックの次サブブロックが前記1次キャッシュに保持
されていないことを前記1次キャッシュ情報から判断し
た場合には前記1次キャッシュのプリフェッチを行うと
いう処理と、当該ブロックの次ブロックが前記2次キャ
ッシュに保持されていなければ前記2次キャッシュのプ
リフェッチを行うという処理とをオーバラップして行う
ように制御することを特徴とする情報処理システム。 - 【請求項8】 プロセッサと、メモリと、前記プロセッ
サと前記メモリとの間に設けられた2次キャッシュと、
この2次キャッシュとプロセッサとの間に設けられた1
次キャッシュとを含み、前記2次キャッシュは当該キャ
ッシュに保持されるブロック内のサブブロックの各々が
前記1次キャッシュに保持されているか否かを示す1次
キャッシュ情報を保持する情報処理システムにおけるキ
ャッシュプリフェッチ方法であって、 前記2次キャッシュのブロックにおけるアクセス中のブ
ロック内アドレスが所定値を越え且つ当該ブロックの次
ブロックが前記2次キャッシュに保持されていなければ
前記2次キャッシュのプリフェッチを行い、 当該アクセス中のサブブロックの次サブブロックが前記
1次キャッシュに保持されていないことを前記1次キャ
ッシュ情報から判断した場合には前記1次キャッシュの
プリフェッチを行うことを特徴とするキャッシュプリフ
ェッチ方法。 - 【請求項9】 プロセッサと、メモリと、前記プロセッ
サと前記メモリとの間に設けられた2次キャッシュと、
この2次キャッシュとプロセッサとの間に設けられた1
次キャッシュとを含み、前記2次キャッシュは当該キャ
ッシュに保持されるブロック内のサブブロックの各々が
前記1次キャッシュに保持されているか否かを示す1次
キャッシュ情報を保持する情報処理システムにおけるキ
ャッシュプリフェッチ方法であって、 前記2次キャッシュにミスヒットした場合には前記2次
キャッシュの当該ブロックをリフィルし、 前記1次キャッシュにミスヒットした場合には前記1次
キャッシュの当該ブロックをリフィルし、 前記2次キャッシュのブロックにおけるアクセス中のブ
ロック内アドレスが所定値を越え且つ当該ブロックの次
ブロックが前記2次キャッシュに保持されていなければ
前記2次キャッシュのプリフェッチを行い、 当該アクセス中のサブブロックの次サブブロックが前記
1次キャッシュに保持されていないことを前記1次キャ
ッシュ情報から判断した場合には前記1次キャッシュの
プリフェッチを行うことを特徴とするキャッシュプリフ
ェッチ方法。 - 【請求項10】 プロセッサと、メモリと、前記プロセ
ッサと前記メモリとの間に設けられた2次キャッシュ
と、この2次キャッシュとプロセッサとの間に設けられ
た1次キャッシュとを含み、前記2次キャッシュは当該
キャッシュに保持されるブロック内のサブブロックの各
々が前記1次キャッシュに保持されているか否かを示す
1次キャッシュ情報を保持する情報処理システムにおけ
るキャッシュプリフェッチ方法であって、 前記2次キャッシュのブロックにおけるアクセス中のサ
ブブロックが当該ブロック内の最終ブロックである場合
は、当該ブロックの次ブロックが前記2次キャッシュに
保持されていなければ前記2次キャッシュのプリフェッ
チを行うという処理と、当該アクセス中のサブブロック
の次サブブロックが前記1次キャッシュに保持されてい
ないことを前記1次キャッシュ情報から判断した場合に
は前記1次キャッシュのプリフェッチを行うという処理
とを逐次に行い、 当該アクセス中のサブブロックが当該ブロック内の最終
ブロックではなく且つ当該アクセス中のブロック内アド
レスが所定値を越えた場合には、当該アクセス中のサブ
ブロックの次サブブロックが前記1次キャッシュに保持
されていないことを前記1次キャッシュ情報から判断し
た場合には前記1次キャッシュのプリフェッチを行うと
いう処理と、当該ブロックの次ブロックが前記2次キャ
ッシュに保持されていなければ前記2次キャッシュのプ
リフェッチを行うという処理とをオーバラップして行う
ことを特徴とするキャッシュプリフェッチ方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11047576A JP2000242557A (ja) | 1999-02-25 | 1999-02-25 | キャッシュプリフェッチ装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11047576A JP2000242557A (ja) | 1999-02-25 | 1999-02-25 | キャッシュプリフェッチ装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2000242557A true JP2000242557A (ja) | 2000-09-08 |
Family
ID=12779084
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP11047576A Pending JP2000242557A (ja) | 1999-02-25 | 1999-02-25 | キャッシュプリフェッチ装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2000242557A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2015122094A (ja) * | 2006-12-08 | 2015-07-02 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | 低複雑性命令プリフェッチシステム |
| JP2015529356A (ja) * | 2012-08-17 | 2015-10-05 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | データキャッシュプリフェッチのヒント |
-
1999
- 1999-02-25 JP JP11047576A patent/JP2000242557A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2015122094A (ja) * | 2006-12-08 | 2015-07-02 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | 低複雑性命令プリフェッチシステム |
| JP2015529356A (ja) * | 2012-08-17 | 2015-10-05 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | データキャッシュプリフェッチのヒント |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5778422A (en) | Data processing system memory controller that selectively caches data associated with write requests | |
| JP4486750B2 (ja) | テンポラリ命令及び非テンポラリ命令用の共用キャッシュ構造 | |
| US6578111B1 (en) | Cache memory system and method for managing streaming-data | |
| JPS61156346A (ja) | 記憶階層の先取り装置 | |
| US20080177952A1 (en) | Method and Apparatus for Setting Cache Policies in a Processor | |
| KR20010101695A (ko) | 가상 메모리 시스템에서의 메모리 접근 개선 기술 | |
| US20040181631A1 (en) | Accessing data values in a cache | |
| US8621152B1 (en) | Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access | |
| CN1093961C (zh) | 增强存储器性能的方法及数据处理系统 | |
| US6715035B1 (en) | Cache for processing data in a memory controller and a method of use thereof to reduce first transfer latency | |
| JP2788836B2 (ja) | ディジタルコンピュータシステム | |
| US6643743B1 (en) | Stream-down prefetching cache | |
| US6598124B1 (en) | System and method for identifying streaming-data | |
| US20010032297A1 (en) | Cache memory apparatus and data processing system | |
| US6643736B1 (en) | Scratch pad memories | |
| WO2002027498A2 (en) | System and method for identifying and managing streaming-data | |
| JP2000242557A (ja) | キャッシュプリフェッチ装置 | |
| US7171540B1 (en) | Object-addressed memory hierarchy that facilitates accessing objects stored outside of main memory | |
| US6601155B2 (en) | Hot way caches: an energy saving technique for high performance caches | |
| KR20040047398A (ko) | 캐쉬 메모리를 이용한 데이터 억세스 방법 | |
| JP3469042B2 (ja) | キャッシュメモリ | |
| US8117393B2 (en) | Selectively performing lookups for cache lines | |
| US20040024970A1 (en) | Methods and apparatuses for managing memory | |
| JPH02301843A (ja) | プリフェッチ制御方法およびプリフェッチ制御装置 | |
| CN111198827A (zh) | 页表预取方法及装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20030812 |
|
| A912 | Removal of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20040423 |
|
| RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20050310 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061127 |
|
| RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20070110 |