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
Application number
JP11047576A
Other languages
English (en)
Inventor
Yoshinori Okura
義典 大倉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP11047576A priority Critical patent/JP2000242557A/ja
Publication of JP2000242557A publication Critical patent/JP2000242557A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 1次キャッシュ及び2次キャッシュにおける
プリフェッチを高速に行う。 【解決手段】 2次キャッシュにおいて、各エントリに
対応するブロック中のサブブロックの各々が1次キャッ
シュ中に存在するか否かを示す1次キャッシュ情報22
0を保持する。2次キャッシュは、1次キャッシュに問
い合わせることなく1次キャッシュ側の状態を判断し
て、2次キャッシュ側のリフィル及びプリフェッチの処
理を行う。2次キャッシュのプリフェッチを行うか否か
は現在アクセス中の2次キャッシュブロックにおけるブ
ロック内アドレスにより判断する。さらに通常のケース
においては、1次キャッシュのプリフェッチと2次キャ
ッシュのプリフェッチはオーバラップして行われる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、情報処理システム
におけるキャッシュプリフェッチ装置に関し、特に階層
キャッシュメモリにおいてプリフェッチを行うためのキ
ャッシュプリフェッチ装置に関する。
【0002】
【従来の技術】従来この種の技術が適用される情報処理
システムでは、プロセッサとメモリとの間に設けるキャ
ッシュメモリの内、プロセッサに近い位置に比較的小容
量で高速な1次キャッシュを配置し、1次キャッシュと
メモリとの間に1次キャッシュよりも速度は劣るが大容
量の2次キャッシュを配置する。この従来の情報処理シ
ステムでは、まずプロセッサに近い1次キャッシュにア
クセスすることにより、1次キャッシュに所望のデータ
が存在する(キャッシュヒット)か否(キャッシュミス
ヒット)かを判断する。そして、1次キャッシュミスヒ
ットの場合には、次に2次キャッシュにアクセスして、
2次キャッシュにおけるキャッシュヒット/ミスを判断
する。
【0003】例えば、特開平9−146835号公報で
は、1次キャッシュにおいて所望データの属すべきライ
ンに対してアクセスを行い、そのヒット/ミスの結果に
より、プリフェッチモードに応じたプリフェッチ動作を
行うシステムが記載されている。
【0004】
【発明が解決しようとする課題】上述の従来技術では、
一旦1次キャッシュにアクセスを試みることにより、そ
の後のキャッシュプリフェッチ動作の要否を判断するこ
ととなるため、処理が逐次化されて高速化が図れないと
いう問題がある。
【0005】また、2次キャッシュは一般にブロックサ
イズが大きいため、闇雲にプリフェッチを行うことは得
策ではない。上述の従来技術においても、プリフェッチ
は1次キャッシュのみに留めている。
【0006】本発明の目的は、1次キャッシュにおける
キャッシュヒット/ミスの判断と、2次キャッシュにお
けるプリフェッチ要否の判断とを並行して行うことによ
り、キャッシュプリフェッチのための処理を高速化する
ことにある。
【0007】また、本発明の他の目的は、2次キャッシ
ュのプリフェッチを併せて行う場合の効率的な制御手段
を提供することにある。
【0008】
【課題を解決するための手段】上記課題を解決するため
に本発明のキャッシュプリフェッチ装置は、プロセッサ
と、メモリと、前記プロセッサと前記メモリとの間に設
けられた2次キャッシュと、この2次キャッシュとプロ
セッサとの間に設けられた1次キャッシュとを含む情報
処理システムにおけるキャッシュプリフェッチ装置であ
って、前記2次キャッシュは、当該キャッシュに保持さ
れるブロック内のサブブロックの各々が前記1次キャッ
シュに保持されているか否かを示す1次キャッシュ情報
を保持し、アクセス中のサブブロックの次サブブロック
が前記1次キャッシュに保持されていないことを前記1
次キャッシュ情報から判断した場合には1次キャッシュ
のプリフェッチを行う。
【0009】また、本発明の他のキャッシュプリフェッ
チ装置において、前記2次キャッシュのブロックにおけ
るアクセス中のブロック内アドレスが所定値を越えた場
合において当該ブロックの次ブロックが2次キャッシュ
に保持されていなければ2次キャッシュのプリフェッチ
を行う。
【0010】また、本発明の他のキャッシュプリフェッ
チ装置において、前記2次キャッシュのブロックサイズ
は前記1次キャッシュのブロックサイズの整数倍であ
り、前記1次キャッシュに保持されている内容は前記2
次キャッシュにも保持されている。
【0011】また、本発明の他のキャッシュプリフェッ
チ装置は、プロセッサと、メモリと、前記プロセッサと
前記メモリとの間に設けられた2次キャッシュと、この
2次キャッシュとプロセッサとの間に設けられた1次キ
ャッシュとを含む情報処理システムにおけるキャッシュ
プリフェッチ装置であって、前記2次キャッシュは、当
該キャッシュに保持されるブロック内のサブブロックの
各々が前記1次キャッシュに保持されているか否かを示
す1次キャッシュ情報を保持し、前記2次キャッシュの
ブロックにおけるアクセス中のサブブロックが当該ブロ
ック内の最終ブロックである場合は、当該ブロックの次
ブロックが2次キャッシュに保持されていなければ2次
キャッシュのプリフェッチを行うという処理と、当該ア
クセス中のサブブロックの次サブブロックが前記1次キ
ャッシュに保持されていないことを前記1次キャッシュ
情報から判断した場合には1次キャッシュのプリフェッ
チを行うという処理とを逐次に行い、当該アクセス中の
サブブロックが当該ブロック内の最終ブロックではなく
且つ当該アクセス中のブロック内アドレスが所定値を越
えた場合には、当該アクセス中のサブブロックの次サブ
ブロックが前記1次キャッシュに保持されていないこと
を前記1次キャッシュ情報から判断した場合には1次キ
ャッシュのプリフェッチを行うという処理と、当該ブロ
ックの次ブロックが2次キャッシュに保持されていなけ
れば2次キャッシュのプリフェッチを行うという処理と
をオーバラップして行うように制御する。
【0012】本発明の情報処理システムは、プロセッサ
と、メモリと、前記プロセッサと前記メモリとの間に設
けられた2次キャッシュと、この2次キャッシュとプロ
セッサとの間に設けられた1次キャッシュとを含み、前
記2次キャッシュは当該キャッシュに保持されるブロッ
ク内のサブブロックの各々が前記1次キャッシュに保持
されているか否かを示す1次キャッシュ情報を保持し、
アクセス中のサブブロックの次サブブロックが前記1次
キャッシュに保持されていないことを前記1次キャッシ
ュ情報から判断した場合には1次キャッシュのプリフェ
ッチを行う。
【0013】本発明の他の情報処理システムにおいて、
前記2次キャッシュのブロックにおけるアクセス中のブ
ロック内アドレスが所定値を越えた場合において当該ブ
ロックの次ブロックが2次キャッシュに保持されていな
ければ2次キャッシュのプリフェッチを行う。
【0014】本発明の他の情報処理システムは、プロセ
ッサと、メモリと、前記プロセッサと前記メモリとの間
に設けられた2次キャッシュと、この2次キャッシュと
プロセッサとの間に設けられた1次キャッシュとを含
み、前記2次キャッシュは当該キャッシュに保持される
ブロック内のサブブロックの各々が前記1次キャッシュ
に保持されているか否かを示す1次キャッシュ情報を保
持し、前記2次キャッシュのブロックにおけるアクセス
中のサブブロックが当該ブロック内の最終ブロックであ
る場合は、当該ブロックの次ブロックが2次キャッシュ
に保持されていなければ2次キャッシュのプリフェッチ
を行うという処理と、当該アクセス中のサブブロックの
次サブブロックが前記1次キャッシュに保持されていな
いことを前記1次キャッシュ情報から判断した場合には
1次キャッシュのプリフェッチを行うという処理とを逐
次に行い、当該アクセス中のサブブロックが当該ブロッ
ク内の最終ブロックではなく且つ当該アクセス中のブロ
ック内アドレスが所定値を越えた場合には、当該アクセ
ス中のサブブロックの次サブブロックが前記1次キャッ
シュに保持されていないことを前記1次キャッシュ情報
から判断した場合には1次キャッシュのプリフェッチを
行うという処理と、当該ブロックの次ブロックが2次キ
ャッシュに保持されていなければ2次キャッシュのプリ
フェッチを行うという処理とをオーバラップして行うよ
うに制御する。
【0015】本発明のキャッシュプリフェッチ方法は、
プロセッサと、メモリと、前記プロセッサと前記メモリ
との間に設けられた2次キャッシュと、この2次キャッ
シュとプロセッサとの間に設けられた1次キャッシュと
を含み、前記2次キャッシュは当該キャッシュに保持さ
れるブロック内のサブブロックの各々が前記1次キャッ
シュに保持されているか否かを示す1次キャッシュ情報
を保持する情報処理システムにおいて、前記2次キャッ
シュのブロックにおけるアクセス中のブロック内アドレ
スが所定値を越え且つ当該ブロックの次ブロックが前記
2次キャッシュに保持されていなければ前記2次キャッ
シュのプリフェッチを行い、当該アクセス中のサブブロ
ックの次サブブロックが前記1次キャッシュに保持され
ていないことを前記1次キャッシュ情報から判断した場
合には1次キャッシュのプリフェッチを行う。
【0016】本発明の他のキャッシュプリフェッチ方法
は、プロセッサと、メモリと、前記プロセッサと前記メ
モリとの間に設けられた2次キャッシュと、この2次キ
ャッシュとプロセッサとの間に設けられた1次キャッシ
ュとを含み、前記2次キャッシュは当該キャッシュに保
持されるブロック内のサブブロックの各々が前記1次キ
ャッシュに保持されているか否かを示す1次キャッシュ
情報を保持する情報処理システムにおいて、前記2次キ
ャッシュにミスヒットした場合には前記2次キャッシュ
の当該ブロックをリフィルし、前記1次キャッシュにミ
スヒットした場合には前記1次キャッシュの当該ブロッ
クをリフィルし、前記2次キャッシュのブロックにおけ
るアクセス中のブロック内アドレスが所定値を越え且つ
当該ブロックの次ブロックが前記2次キャッシュに保持
されていなければ前記2次キャッシュのプリフェッチを
行い、当該アクセス中のサブブロックの次サブブロック
が前記1次キャッシュに保持されていないことを前記1
次キャッシュ情報から判断した場合には1次キャッシュ
のプリフェッチを行う。
【0017】本発明の他のキャッシュプリフェッチ方法
は、プロセッサと、メモリと、前記プロセッサと前記メ
モリとの間に設けられた2次キャッシュと、この2次キ
ャッシュとプロセッサとの間に設けられた1次キャッシ
ュとを含み、前記2次キャッシュは当該キャッシュに保
持されるブロック内のサブブロックの各々が前記1次キ
ャッシュに保持されているか否かを示す1次キャッシュ
情報を保持する情報処理システムにおいて、前記2次キ
ャッシュのブロックにおけるアクセス中のサブブロック
が当該ブロック内の最終ブロックである場合は、当該ブ
ロックの次ブロックが2次キャッシュに保持されていな
ければ2次キャッシュのプリフェッチを行うという処理
と、当該アクセス中のサブブロックの次サブブロックが
前記1次キャッシュに保持されていないことを前記1次
キャッシュ情報から判断した場合には1次キャッシュの
プリフェッチを行うという処理とを逐次に行い、当該ア
クセス中のサブブロックが当該ブロック内の最終ブロッ
クではなく且つ当該アクセス中のブロック内アドレスが
所定値を越えた場合には、当該アクセス中のサブブロッ
クの次サブブロックが前記1次キャッシュに保持されて
いないことを前記1次キャッシュ情報から判断した場合
には1次キャッシュのプリフェッチを行うという処理
と、当該ブロックの次ブロックが2次キャッシュに保持
されていなければ2次キャッシュのプリフェッチを行う
という処理とをオーバラップして行う。
【0018】
【発明の実施の形態】次に本発明のキャッシュプリフェ
ッチ装置の実施の形態について図面を参照して詳細に説
明する。
【0019】図1を参照すると、本発明の適用される情
報処理システムは、処理を行うプロセッサ300と、デ
ータを記憶するメモリ400とを備える。この情報処理
システムでは、メモリ400の内容のコピーを保持する
キャッシュメモリとして、大容量の2次キャッシュ20
0がプロセッサ300とメモリ400との間に設けら
れ、2次キャッシュよりも小容量で高速な1次キャッシ
ュ100がプロセッサと2次キャッシュとの間に設けら
れる。
【0020】1次キャッシュ100に保持されているブ
ロックデータは、2次キャッシュ200中に必ず保持さ
れているものとする。また、両キャッシュメモリのプロ
トコルとしては、例えばライトスルーを採用できる。さ
らに、両キャッシュメモリの追い出しアルゴリズムとし
ては、例えばLRU(Least Recently Used)アルゴリ
ズムを採用できる。
【0021】プロセッサ300は、データをロードしよ
うとする場合、1次キャッシュ100と2次キャッシュ
200の両方に所望データを要求し、1次キャッシュ1
00に所望のデータが存在(ヒット)すればそれを使用
する。1次キャッシュ100に所望のデータが存在しな
い場合(ミスヒット)は2次キャッシュ200からの応
答を調べ、2次キャッシュに所望データが存在(ヒッ
ト)すればそれを使用する。各キャッシュメモリでミス
ヒットが生じた場合には、上位の記憶装置にデータの要
求が伝達される。例えば、1次キャッシュ100でミス
ヒットが生じると2次キャッシュ200からブロックデ
ータが転送され、さらに2次キャッシュ200でミスヒ
ットが生じるとメモリ400にブロックデータが要求さ
れる。
【0022】図2を参照すると、本発明の実施の形態に
おいて、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である。
【0023】具体的な実施例としては、1ブロック当た
り64バイトで1024エントリあるとして、32ビッ
トアドレス空間で実現するためには、アドレスタグが1
6ビット必要になる。すなわち、32ビットアドレスの
内、第16乃至31ビット目の16ビットが1次キャッ
シュタグ101、第6乃至15ビット目の10ビットが
1次キャッシュインデックス102となる。この場合、
4バイトのワードデータを特定するためには1次キャッ
シュブロック内アドレス104として第2乃至5ビット
目の4ビットが使用される。
【0024】なお、ここでは説明を簡単にするためダイ
レクトマップキャッシュ構成になっているが、一つの1
次キャッシュインデックス102に複数のエントリが対
応するように構成することによりセットアソシアティブ
キャッシュ構成を採ることができる。これは次に述べる
2次キャッシュについても同様である。
【0025】図3を参照すると、本発明の実施の形態に
おいて、2次キャッシュ200は、複数のエントリによ
り構成され、各エントリは、バリッドビット210と、
1次キャッシュ情報220と、アドレスアレイ230
と、データメモリ240とを含む。バリッドビット21
0は、そのエントリが有効なものか否かを示す。1次キ
ャッシュ情報220は、対応するブロック中のデータが
1次キャッシュに保持されているか否かを示す。アドレ
スアレイ230は、そのエントリに対応するアドレスの
タグ部分を保持する。データメモリ240は、そのエン
トリに対応するデータを保持する。2次キャッシュのブ
ロックデータの大きさは1次キャッシュのものの整数倍
であるものとする。2次キャッシュのブロックにおい
て、1次キャッシュのブロックに相当する大きさに区切
ったもののそれぞれを、特にサブブロックという。
【0026】本発明の実施の形態において、2次キャッ
シュ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である。
【0027】2次キャッシュ200に保持される項目の
内、1次キャッシュ情報220は、対応するサブブロッ
クデータが1次キャッシュ100に保持されているか否
かを示す。1次キャッシュ情報220は、対応するブロ
ック中のサブブロック毎に1ビットずつ割り当てられ、
各ビットは「1次キャッシュに存在する」または「1次
キャッシュに存在しない」の何れかを表す。この1次キ
ャッシュ情報220を2次キャッシュ200中に保持し
ておくことにより、1次キャッシュ100に問い合わせ
ることなく、1次キャッシュ100のヒット/ミス情報
を判断することができる。
【0028】具体的な実施例としては、1ブロック当た
り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ビット必要である。
【0029】次に、上述のようなキャッシュメモリ構成
において、1次キャッシュ100及び2次キャッシュ2
00のプリフェッチを行う技術について説明する。
【0030】図1を参照すると、1次キャッシュ100
でミスヒットが発生した場合には、通常のキャッシュメ
モリと同様に、対応するブロックデータを2次キャッシ
ュ200またはメモリ400から読み出す必要が生じ
る。これをリフィルという。さらに、2次キャッシュ2
00にもミスヒットが生じた場合には、対応するブロッ
クデータをメモリ400から読み出す必要が生じる。
【0031】本発明の実施の形態では、このようなリフ
ィルによるブロックデータのリードのみならず、次のよ
うなプリフェッチを行う。まず、1次キャッシュ100
のプリフェッチについては、現在アクセス中のブロック
の次ブロックが1次キャッシュ100に存在するか否か
を調べ、存在しなければ当該次ブロックをプリフェッチ
する。次ブロックが1次キャッシュ100に存在するか
否かは、1次キャッシュ100内のバリッドビット11
0(図2)及び2次キャッシュ200中の1次キャッシ
ュ情報220(図3)により判断できる。
【0032】また、2次キャッシュ200のプリフェッ
チについては、1次キャッシュ100の場合と同様とし
てしまうと過剰にプリフェッチが発生するおそれがある
ことから、現在アクセス中のブロックにおけるブロック
内アドレスが所定値を越えた場合にのみ動作するものと
する。すなわち、現在アクセス中のブロックにおけるブ
ロック内アドレスが所定値を越えると、その次ブロック
が2次キャッシュ200に存在するか否かを調べ、存在
しなければ当該次ブロックをプリフェッチする。次ブロ
ックが2次キャッシュ200に存在するか否かは、2次
キャッシュ200内のバリッドビット210(図3)に
より判断できる。
【0033】図4を参照すると、2次キャッシュ200
のプリフェッチを行うか否かを示す2次キャッシュプリ
フェッチ信号は、2次キャッシュサブブロックアドレス
203を参照することにより決定される。例えば、2次
キャッシュブロック内の最後から2番目のサブブロック
にアクセスがあったときに2次キャッシュプリフェッチ
が動作するようにしたい場合には、図4に示すように2
次キャッシュサブブロックアドレス203が”110”
または”111”のときに2次キャッシュプリフェッチ
信号が”1”(「プリフェッチする」を意味する。)と
なるようにすればよい。本回路はデコーダとして実現で
き、特に上述の例では、32ビットアドレスの中で第7
及び8ビット目の論理和を生成する論理和ゲートにより
実現できる。
【0034】次に、本発明の実施の形態における動作に
ついて説明する。
【0035】図1乃至3及び5を参照すると、2次キャ
ッシュ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)。
【0036】そして、2次キャッシュ200のブロック
におけるブロック内アドレスが所定値を越えると(ステ
ップS505)、その次ブロックが2次キャッシュ20
0に存在するか否かを調べ(ステップS506)、存在
しなければ当該次ブロックをプリフェッチする(ステッ
プS507)。さらに、1次キャッシュ100の次ブロ
ックが1次キャッシュ100に存在するか否かを調べ
(ステップS508)、存在しなければ当該次ブロック
をプリフェッチする(ステップS509)。
【0037】このように、図5の動作例によれば、2次
キャッシュ200内に設けられた1次キャッシュ情報2
20により、1次キャッシュにヒットするか否かを即座
に判断できるため、1次キャッシュ100における判断
を待つことなく、キャッシュのリフィルやプリフェッチ
処理を高速に行うことができる。
【0038】次に他の動作例として、図1乃至3及び6
を参照すると、まず、2次キャッシュ200にヒットし
たか否かを判断する(ステップS601)。2次キャッ
シュ200にミスヒットした場合にはメモリ400から
2次キャッシュ200へのリフィルを行い(ステップS
602)、その場合には1次キャッシュ100にもミス
ヒットするので1次キャッシュ100へのリフィルも行
う(ステップS604)。また、2次キャッシュ200
にヒットした場合でも(ステップS601)、1次キャ
ッシュ100にミスヒットする場合があるので、その場
合には1次キャッシュ100へのリフィルを行う(ステ
ップS604)。ここまでは、図5の場合と同様であ
る。
【0039】そして、2次キャッシュ200のブロック
におけるブロック内アドレスを参照して、そのブロック
内アドレスが所定値を越えているか否か、及び、そのサ
ブブロックがブロック内の最後のサブブロックであるか
否かを判断して以下の場合分けに従って動作を行う(ス
テップS605)。
【0040】まず、そのブロック内アドレスが所定値を
越えていない場合には、1次キャッシュ100内に次ブ
ロックが存在するか否かを判断して(ステップS63
8)、存在しない場合には1次キャッシュ100のプリ
フェッチを行う(ステップS639)。
【0041】一方、そのサブブロックがブロック内の最
後のサブブロックである場合には、まず、その次ブロッ
クが2次キャッシュ200に存在するか否かを調べ(ス
テップS616)、存在しなければ当該次ブロックをプ
リフェッチする(ステップS617)。そして、1次キ
ャッシュ100内に次ブロックが存在するか否かを判断
して(ステップS618)、存在しない場合には1次キ
ャッシュ100のプリフェッチを行う(ステップS61
9)。ここでは、2次キャッシュ200に2次キャッシ
ュの次ブロックが存在しない場合には、1次キャッシュ
100に1次キャッシュの次ブロックが存在しないた
め、2次キャッシュのプリフェッチ完了を待って、1次
キャッシュのプリフェッチを行わなければならない。
【0042】これに対し、アクセスのあったブロック内
アドレスが所定値を越えてはいるが、ブロック内の最後
のサブブロックではない場合には、1次キャッシュのプ
リフェッチ処理(ステップS626及びS627)と2
次キャッシュのプリフェッチ処理(ステップS628及
びS629)はオーバラップして行うことができる。
【0043】このように、図6の動作例によれば、アク
セスのあったブロック内アドレスが所定値を越えてはい
るが、ブロック内の最後のサブブロックではないという
最も多いケースについて、1次キャッシュのプリフェッ
チ処理と2次キャッシュのプリフェッチ処理をオーバラ
ップして行うことができるため、プリフェッチ処理をさ
らに高速に行うことができる。
【0044】
【発明の効果】以上の説明で明らかなように、本発明に
よると、2次キャッシュにおいて1次キャッシュにおけ
るブロックデータの存在の有無を判断できるため、1次
キャッシュ及び2次キャッシュにおけるリフィルやプリ
フェッチ処理を高速に行うことができる。
【図面の簡単な説明】
【図1】本発明のキャッシュプリフェッチ装置の適用さ
れる情報処理システムの構成を示すブロック図である。
【図2】本発明のキャッシュプリフェッチ装置の実施の
形態における1次キャッシュの構成を示すブロック図で
ある。
【図3】本発明のキャッシュプリフェッチ装置の実施の
形態における2次キャッシュの構成を示すブロック図で
ある。
【図4】本発明のキャッシュプリフェッチ装置の実施の
形態における2次キャッシュのプリフェッチ要求信号を
生成するための真理値表の一例である。
【図5】本発明の実施の形態の動作を表す流れ図であ
る。
【図6】本発明の実施の形態の他の動作を表す流れ図で
ある。
【符号の説明】
100 1次キャッシュ 101 1次キャッシュタグ 102 1次キャッシュインデックス 104 1次キャッシュブロック内アドレス 110 1次キャッシュバリッドビット 130 1次キャッシュアドレスアレイ 140 1次キャッシュデータメモリ 150 比較器 160 論理積ゲート 200 2次キャッシュ 201 2次キャッシュタグ 202 2次キャッシュインデックス 203 2次キャッシュサブブロックアドレス 204 2次キャッシュサブブロック内アドレス 210 2次キャッシュバリッドビット 220 1次キャッシュ情報 230 2次キャッシュアドレスアレイ 240 2次キャッシュデータメモリ 250 比較器 260 論理積ゲート 270 セレクタ 300 プロセッサ 400 メモリ

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 プロセッサと、メモリと、前記プロセッ
    サと前記メモリとの間に設けられた2次キャッシュと、
    この2次キャッシュとプロセッサとの間に設けられた1
    次キャッシュとを含む情報処理システムにおけるキャッ
    シュプリフェッチ装置であって、 前記2次キャッシュは、当該キャッシュに保持されるブ
    ロック内のサブブロックの各々が前記1次キャッシュに
    保持されているか否かを示す1次キャッシュ情報を保持
    し、アクセス中のサブブロックの次サブブロックが前記
    1次キャッシュに保持されていないことを前記1次キャ
    ッシュ情報から判断した場合には前記1次キャッシュの
    プリフェッチを行うことを特徴とするキャッシュプリフ
    ェッチ装置。
  2. 【請求項2】 前記2次キャッシュのブロックにおける
    アクセス中のブロック内アドレスが所定値を越えた場合
    において当該ブロックの次ブロックが前記2次キャッシ
    ュに保持されていなければ前記2次キャッシュのプリフ
    ェッチを行うことを特徴とする請求項1記載のキャッシ
    ュプリフェッチ装置。
  3. 【請求項3】 前記2次キャッシュのブロックサイズは
    前記1次キャッシュのブロックサイズの整数倍であり、
    前記1次キャッシュに保持されている内容は前記2次キ
    ャッシュにも保持されていることを特徴とする請求項2
    記載のキャッシュプリフェッチ装置。
  4. 【請求項4】 プロセッサと、メモリと、前記プロセッ
    サと前記メモリとの間に設けられた2次キャッシュと、
    この2次キャッシュとプロセッサとの間に設けられた1
    次キャッシュとを含む情報処理システムにおけるキャッ
    シュプリフェッチ装置であって、 前記2次キャッシュは、当該キャッシュに保持されるブ
    ロック内のサブブロックの各々が前記1次キャッシュに
    保持されているか否かを示す1次キャッシュ情報を保持
    し、 前記2次キャッシュのブロックにおけるアクセス中のサ
    ブブロックが当該ブロック内の最終ブロックである場合
    は、当該ブロックの次ブロックが前記2次キャッシュに
    保持されていなければ前記2次キャッシュのプリフェッ
    チを行うという処理と、当該アクセス中のサブブロック
    の次サブブロックが前記1次キャッシュに保持されてい
    ないことを前記1次キャッシュ情報から判断した場合に
    は前記1次キャッシュのプリフェッチを行うという処理
    とを逐次に行い、 当該アクセス中のサブブロックが当該ブロック内の最終
    ブロックではなく且つ当該アクセス中のブロック内アド
    レスが所定値を越えた場合には、当該アクセス中のサブ
    ブロックの次サブブロックが前記1次キャッシュに保持
    されていないことを前記1次キャッシュ情報から判断し
    た場合には前記1次キャッシュのプリフェッチを行うと
    いう処理と、当該ブロックの次ブロックが前記2次キャ
    ッシュに保持されていなければ前記2次キャッシュのプ
    リフェッチを行うという処理とをオーバラップして行う
    ように制御することを特徴とするキャッシュプリフェッ
    チ装置。
  5. 【請求項5】 プロセッサと、メモリと、前記プロセッ
    サと前記メモリとの間に設けられた2次キャッシュと、
    この2次キャッシュとプロセッサとの間に設けられた1
    次キャッシュとを含む情報処理システムにおいて、 前記2次キャッシュは、当該キャッシュに保持されるブ
    ロック内のサブブロックの各々が前記1次キャッシュに
    保持されているか否かを示す1次キャッシュ情報を保持
    し、アクセス中のサブブロックの次サブブロックが前記
    1次キャッシュに保持されていないことを前記1次キャ
    ッシュ情報から判断した場合には前記1次キャッシュの
    プリフェッチを行うことを特徴とする情報処理システ
    ム。
  6. 【請求項6】 前記2次キャッシュのブロックにおける
    アクセス中のブロック内アドレスが所定値を越えた場合
    において当該ブロックの次ブロックが前記2次キャッシ
    ュに保持されていなければ前記2次キャッシュのプリフ
    ェッチを行うことを特徴とする請求項5記載の情報処理
    システム。
  7. 【請求項7】 プロセッサと、メモリと、前記プロセッ
    サと前記メモリとの間に設けられた2次キャッシュと、
    この2次キャッシュとプロセッサとの間に設けられた1
    次キャッシュとを含む情報処理システムにおいて、 前記2次キャッシュは、当該キャッシュに保持されるブ
    ロック内のサブブロックの各々が前記1次キャッシュに
    保持されているか否かを示す1次キャッシュ情報を保持
    し、 前記2次キャッシュのブロックにおけるアクセス中のサ
    ブブロックが当該ブロック内の最終ブロックである場合
    は、当該ブロックの次ブロックが前記2次キャッシュに
    保持されていなければ2次キャッシュのプリフェッチを
    行うという処理と、当該アクセス中のサブブロックの次
    サブブロックが前記1次キャッシュに保持されていない
    ことを前記1次キャッシュ情報から判断した場合には前
    記1次キャッシュのプリフェッチを行うという処理とを
    逐次に行い、 当該アクセス中のサブブロックが当該ブロック内の最終
    ブロックではなく且つ当該アクセス中のブロック内アド
    レスが所定値を越えた場合には、当該アクセス中のサブ
    ブロックの次サブブロックが前記1次キャッシュに保持
    されていないことを前記1次キャッシュ情報から判断し
    た場合には前記1次キャッシュのプリフェッチを行うと
    いう処理と、当該ブロックの次ブロックが前記2次キャ
    ッシュに保持されていなければ前記2次キャッシュのプ
    リフェッチを行うという処理とをオーバラップして行う
    ように制御することを特徴とする情報処理システム。
  8. 【請求項8】 プロセッサと、メモリと、前記プロセッ
    サと前記メモリとの間に設けられた2次キャッシュと、
    この2次キャッシュとプロセッサとの間に設けられた1
    次キャッシュとを含み、前記2次キャッシュは当該キャ
    ッシュに保持されるブロック内のサブブロックの各々が
    前記1次キャッシュに保持されているか否かを示す1次
    キャッシュ情報を保持する情報処理システムにおけるキ
    ャッシュプリフェッチ方法であって、 前記2次キャッシュのブロックにおけるアクセス中のブ
    ロック内アドレスが所定値を越え且つ当該ブロックの次
    ブロックが前記2次キャッシュに保持されていなければ
    前記2次キャッシュのプリフェッチを行い、 当該アクセス中のサブブロックの次サブブロックが前記
    1次キャッシュに保持されていないことを前記1次キャ
    ッシュ情報から判断した場合には前記1次キャッシュの
    プリフェッチを行うことを特徴とするキャッシュプリフ
    ェッチ方法。
  9. 【請求項9】 プロセッサと、メモリと、前記プロセッ
    サと前記メモリとの間に設けられた2次キャッシュと、
    この2次キャッシュとプロセッサとの間に設けられた1
    次キャッシュとを含み、前記2次キャッシュは当該キャ
    ッシュに保持されるブロック内のサブブロックの各々が
    前記1次キャッシュに保持されているか否かを示す1次
    キャッシュ情報を保持する情報処理システムにおけるキ
    ャッシュプリフェッチ方法であって、 前記2次キャッシュにミスヒットした場合には前記2次
    キャッシュの当該ブロックをリフィルし、 前記1次キャッシュにミスヒットした場合には前記1次
    キャッシュの当該ブロックをリフィルし、 前記2次キャッシュのブロックにおけるアクセス中のブ
    ロック内アドレスが所定値を越え且つ当該ブロックの次
    ブロックが前記2次キャッシュに保持されていなければ
    前記2次キャッシュのプリフェッチを行い、 当該アクセス中のサブブロックの次サブブロックが前記
    1次キャッシュに保持されていないことを前記1次キャ
    ッシュ情報から判断した場合には前記1次キャッシュの
    プリフェッチを行うことを特徴とするキャッシュプリフ
    ェッチ方法。
  10. 【請求項10】 プロセッサと、メモリと、前記プロセ
    ッサと前記メモリとの間に設けられた2次キャッシュ
    と、この2次キャッシュとプロセッサとの間に設けられ
    た1次キャッシュとを含み、前記2次キャッシュは当該
    キャッシュに保持されるブロック内のサブブロックの各
    々が前記1次キャッシュに保持されているか否かを示す
    1次キャッシュ情報を保持する情報処理システムにおけ
    るキャッシュプリフェッチ方法であって、 前記2次キャッシュのブロックにおけるアクセス中のサ
    ブブロックが当該ブロック内の最終ブロックである場合
    は、当該ブロックの次ブロックが前記2次キャッシュに
    保持されていなければ前記2次キャッシュのプリフェッ
    チを行うという処理と、当該アクセス中のサブブロック
    の次サブブロックが前記1次キャッシュに保持されてい
    ないことを前記1次キャッシュ情報から判断した場合に
    は前記1次キャッシュのプリフェッチを行うという処理
    とを逐次に行い、 当該アクセス中のサブブロックが当該ブロック内の最終
    ブロックではなく且つ当該アクセス中のブロック内アド
    レスが所定値を越えた場合には、当該アクセス中のサブ
    ブロックの次サブブロックが前記1次キャッシュに保持
    されていないことを前記1次キャッシュ情報から判断し
    た場合には前記1次キャッシュのプリフェッチを行うと
    いう処理と、当該ブロックの次ブロックが前記2次キャ
    ッシュに保持されていなければ前記2次キャッシュのプ
    リフェッチを行うという処理とをオーバラップして行う
    ことを特徴とするキャッシュプリフェッチ方法。
JP11047576A 1999-02-25 1999-02-25 キャッシュプリフェッチ装置 Pending JP2000242557A (ja)

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)

* Cited by examiner, † Cited by third party
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 データキャッシュプリフェッチのヒント

Cited By (2)

* Cited by examiner, † Cited by third party
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