JP2881049B2 - プリフェッチバッファ - Google Patents

プリフェッチバッファ

Info

Publication number
JP2881049B2
JP2881049B2 JP3190240A JP19024091A JP2881049B2 JP 2881049 B2 JP2881049 B2 JP 2881049B2 JP 3190240 A JP3190240 A JP 3190240A JP 19024091 A JP19024091 A JP 19024091A JP 2881049 B2 JP2881049 B2 JP 2881049B2
Authority
JP
Japan
Prior art keywords
address
data
buffer
storage device
cpu
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.)
Expired - Fee Related
Application number
JP3190240A
Other languages
English (en)
Other versions
JPH0628180A (ja
Inventor
修一 三浦
憲一 黒沢
哲明 中三川
健二 廣瀬
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.)
Hitachi Engineering Co Ltd
Hitachi Ltd
Original Assignee
Hitachi Engineering Co Ltd
Hitachi Ltd
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 Hitachi Engineering Co Ltd, Hitachi Ltd filed Critical Hitachi Engineering Co Ltd
Priority to JP3190240A priority Critical patent/JP2881049B2/ja
Priority to DE4225228A priority patent/DE4225228C2/de
Priority to KR1019920013630A priority patent/KR930002945A/ko
Priority to US07/921,742 priority patent/US5345560A/en
Publication of JPH0628180A publication Critical patent/JPH0628180A/ja
Application granted granted Critical
Publication of JP2881049B2 publication Critical patent/JP2881049B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6026Prefetching based on access pattern detection, e.g. stride based prefetch

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、計算機システムにおけ
るプリフェッチバッファ方式に関する。
【0002】
【従来の技術】計算機システム、特にワークステーショ
ンの分野においては、高性能なRISCプロセッサの出
現によって大幅に性能が向上しつつある。RISCプロ
セッサは通常、高速なアクセスが可能な小容量のキャッ
シュメモリと、低速大容量の主記憶装置を持っている。
このとき、取り扱うデータ量が小さく、キャッシュミス
が起こらない場合にはRISCプロセッサの性能をフル
に引き出すことが可能となるが、取り扱うデータ量が大
きく、キャッシュミスが多発する場合には、主記憶装置
までデータを取りに行く間、プロセッサはプログラムの
実行を待たねばならず、この待ち時間が性能の低下のつ
ながる。しかも、この待ち時間は、どのような高速のプ
ロセッサであろうとも、主記憶装置のアクセス時間が同
じであるならば、同じ時間待たされるため、キャッシュ
ミスが多発するような処理の場合、プロセッサの性能を
いくら向上させても、全体としての処理性能が一向に上
がらないという問題が生じる。
【0003】上記問題点を解決する手段として、プリフ
ェッチバッファ方式がある。この方式の従来例として
は、Norman P. Jouppiの Improving Direct-Mapped Cac
he Performance by the Addition of a Small Fully-As
sociative Cache and PrefetchBuffers (The 17th Annu
al International Symposium on Computer Architectur
e Conference Proceedings, May, 1990, p364-p373)が
ある。これは、キャッシュミスを起こした場合、主記憶
装置から取りに行くべきデータを、あらかじめ小容量の
バッファに先読みしておくことにより、主記憶装置をア
クセスすることによるオーバーヘッドをなくす方式であ
る。
【0004】なお、プリフェッチバッファ方式に関する
従来技術として、特開昭53-134334号、特開昭63-75934
号、特開平2-87229号、米国特許第4,714,994号に開示さ
れたものが挙げられる。
【0005】
【発明が解決しようとする課題】従来のプリフェッチバ
ッファにおいては、プログラムの命令の実行が一般にア
ドレス順に行われるため、プリフェッチの対象となるデ
ータは、通常、プロセッサからリクエストがあったデー
タの直後のアドレスを持つデータに限られている。ま
た、特殊な場合の対処として、分岐、ループ処理に応じ
たプリフェッチも提案されている。
【0006】しかし、リクエストアドレス値が減少する
方向に連続して変化する場合、あるいは、リクエストア
ドレスがとびとびである場合、プリフェッチバッファの
ヒット率が悪化し、性能が低下するという問題点があっ
た。
【0007】本発明の目的は、リクエストアドレスが増
加する場合および減少する場合のいずれにおいてもヒッ
ト率を向上させることができるプリフェッチバッファを
提供することにある。
【0008】本発明の他の目的は、リクエストアドレス
がとびとびの場合にもヒット率を向上させることができ
るプリフェッチバッファを提供することにある。
【0009】
【課題を解決するための手段】本発明によるプリフェッ
チバッファは、CPUを有する計算機システムにおける
キャッシュメモリと主記憶装置との間に設けられるプリ
フェッチバッファであって、プリフェッチしたデータと
該データをサーチするためのアドレスタグとを対にして
記憶する少なくともひとつのエントリを有するバッファ
と、プリフェッチするデータの主記憶装置内でのアドレ
スを発生するアドレス発生部と、上記バッファに記憶さ
れているデータの中から、上記CPUよりリクエストさ
れたアドレスを有するデータをサーチするデータサーチ
部と、上記CPUよりリクエストされたアドレスと、過
去にプリフェッチしたデータの主記憶装置内でのアドレ
スの履歴とに基づいて、次にプリフェッチすべきデータ
の主記憶装置内でのアドレスを決定するアドレス予測部
とを備えたものである。
【0010】上記アドレス予測部は、好ましくは、上記
CPUからのリクエストアドレスと該アドレスの直前に
上記CPUよりリクエストされたアドレスとの差分を取
り、該差分の値に基づいて次に主記憶装置からプリフェ
ッチするデータのアドレスを予測する。
【0011】また、上記バッファはn段(nは複数)の
エントリを含み、上記データサーチ部は、上記CPUか
らのリクエストアドレスを有するデータを、上記すべて
のエントリを対象としてサーチすることが望ましい。
【0012】上記アドレス発生部は、例えば、プリフェ
ッチすべきデータのアドレスとして、上記CPUよりリ
クエストされたデータのアドレスに連続するn個のアド
レスを発生する。
【0013】上記アドレス予測部は、上記CPUからの
リクエストアドレスと該アドレスの直前に上記CPUよ
りリクエストされたアドレスとの差分を取り、該差分値
をk(kは1からnまで)倍した値を当該リクエストア
ドレスに加算して得られるアドレスを、上記主記憶装置
からプリフェッチするデータのアドレスとすることも可
能である。
【0014】
【作用】本発明の第1の構成においては、アドレス発生
部は、CPUからのリクエストアドレスに続くn個の連
続したアドレスを発生し、該n個(nは好ましくは複
数)のアドレスを持つn個のデータを主記憶装置から読
みだし、n段のバッファに格納する。またデータサーチ
部は、次にCPUからリクエストされたアドレスを、バ
ッファ内の全てのエントリを対象としてサーチする。こ
れにより、次にCPUからリクエストされたアドレス
が、その直前のリクエストアドレス+1から+nまでの
アドレスであれば、プリフェッチバッファはヒットす
る。
【0015】また、アドレス予測部は、次にCPUから
リクエストされたアドレスが、上記リクエストアドレス
よりも小さかった場合には、プリフェッチするデータの
アドレスを減少方向に切り替える。これによってアドレ
スが減少方向に変化する場合でもプリフェッチバッファ
をヒットさせることができる。
【0016】また、別の構成では、アドレス予測部は、
直前のリクエストアドレスとCPUからのリクエストア
ドレスの差分をとり、アドレス発生部は、リクエストア
ドレス+該差分×k(kは1からnまで)のアドレスを
持つデータを主記憶装置から読みだし、n段(この場
合、nは複数)のバッファに格納する。これによって次
にCPUからリクエストされたアドレスが、その直前の
アドレス+該差分×k(kは1からn)のアドレスを持
つデータであれば、プリフェッチバッファをヒットさせ
ることができる。
【0017】このように、本発明では、プロセッサから
プリフェッチバッファにリクエストされるアドレスの履
歴から、次にリクエストされるアドレスを予測するアド
レス予測部を設けることにより、とびとびのリクエスト
アドレスや、減少方向のアドレスに対しても、プリフェ
ッチバッファのヒット率を高め、計算機システムの性能
向上を図ることができる。
【0018】
【実施例】以下、本発明の実施例について、図面により
詳細に説明する。
【0019】まず、図2に、本発明が適用される計算機
システム1の概略構成を表わすブロック図を示す。計算
機システム1は、演算や制御を行なうCPU2、高速小
容量の記憶手段であるキャッシュメモリ(Cache)3、低
速大容量の記憶手段である主記憶装置(Main Memory)
4、入出力装置(I/O)6、システムバス7、およびCP
U2と主記憶装置4とシステムバス7をつなぐメモリ・
インターフェース10からなる。メモリ・インターフェ
ース10は、CPU2とのインターフェースをとるCP
Uインターフェース部20、システムバス7とのインタ
ーフェースをとるシステムバス・インターフェース部(S
ystem Bus i/f)70、主記憶装置4を制御するメモリ・
コントローラ部(Memory Controller)40、および主記
憶装置4が記憶しているデータを先読みして記憶するプ
リフェッチバッファ5(Prefetch Buffer)からなる。
【0020】CPU2は、必要なデータを得る際、まず
キャッシュメモリ3の中をサーチし、データがキャッシ
ュメモリ3の中にあればそれを使用する。もしなけれ
ば、主記憶装置4をアクセスするとともにプリフェッチ
バッファ5の中をサーチする。プリフェッチバッファ5
に必要なデータがあればそれを読み出して使用し、その
データをキャッシュメモリ3に記憶する。このとき主記
憶装置4へのアクセスはキャンセルする。
【0021】プリフェッチバッファ5に必要なデータが
なかった場合には、主記憶装置4からそのデータを取っ
てくる。主記憶装置4からデータを取り出した際には、
CPU2はそのデータを使用すると共に、キャッシュメ
モリ3に記憶する。さらに上記データの後続もしくは先
行するデータを主記憶装置4から取り出し、プリフェッ
チバッファ5に記憶しておく。
【0022】図1に、プリフェッチバッファ5の詳細を
示す。プリフェッチバッファ5は、本実施例では、4個
のバッファモジュール50−0,50−1,50−2,
50−3、全体制御部51、データ出力マルチプレクサ
52、アドレス出力マルチプレクサ53からなる。ま
た、それぞれのバッファモジュール50−i(i=0,
1,2,3)は、データサーチ部500、アドレス予測
部501、アドレス発生部502、4個のエントリから
なるバッファ503、及びデータ出力部504からな
る。
【0023】CPU2から、プリフェッチバッファ5に
データ要求がなされると、リクエストアドレスがアドレ
ス入力線55を介してそれぞれのバッファモジュール5
0−i内のデータサーチ部500に供給される。データ
サーチ部500は、バッファ503の中に一致するアド
レスを持つデータがあるかどうかを検索する。検索の結
果、リクエストデータがあれば、そのデータをデータ出
力部504及びデータ出力マルチプレクサ52を介して
CPU2及びキャッシュメモリ3に出力する。
【0024】すなわち、アドレス予測部501は、次の
リクエストアドレスを予測するため、上記リクエストア
ドレスを記憶しておく。また、アドレス発生部502
は、バッファ503の内容が、当該リクエストアドレス
に後続もしくは先行する連続したデータ(本実施例では
4つ)が記憶されるように、不足するデータのアドレス
を発生し、アドレス出力マルチプレクサ53を介して主
記憶装置4に送り、上記不足するデータを獲得してバッ
ファ503に格納する。バッファ503に格納するデー
タを、リクエストアドレスに後続するデータとするか先
行するデータとするかは、アドレス予測部501が管理
している。
【0025】データサーチ部500がバッファ503を
検索し、リクエストデータがなかった場合には、ミスヒ
ットであったことを全体制御部51に報告する。
【0026】全体制御部51は、4つのバッファモジュ
ール50−0,50−1,50−2,50−3のヒット
状況を収集し、少なくともひとつのバッファモジュール
50−iについてヒットしていた場合には、ヒットした
バッファモジュール50−iのひとつを選択して、その
出力をデータ出力マルチプレクサ52を介してCPU2
およびキャッシュメモリ3に転送する。このとき、全体
制御部51によって選択されなかったバッファモジュー
ル50−iのバッファ503の内容はそのまま保持され
る。
【0027】全てのバッファモジュール50−iがミス
ヒットした場合には、全体制御部51が次の手順にした
がってバッファモジュール50−iのひとつを選択し、
その内容を更新する。
【0028】(1)4つのバッファモジュール50−i
のそれぞれにおいて、アドレス予測部501が記憶して
いる最新のヒットアドレスと、リクエストアドレスとの
差を求める。
【0029】(2)上記アドレス差が、あらかじめ設定
されたしきい値の範囲内に収まるバッファモジュール5
0−iが少なくとも一つあれば、該バッファモジュール
50−iの中から一つを選択し、線τされたバッファモ
ジュール50−iのバッファ503に、リクエストアド
レスに後続もしくは先行する4つの連続したアドレスを
持つデータが記憶されるように、データを主記憶装置4
から読み込む。
【0030】なお、上記しきい値は、リクエストアドレ
スが上記最新ヒットアドレスの近傍のアドレスか否かを
判定するためのものである。すなわち、上記アドレス差
がしきい値の範囲内であれば近傍であると判定し、バッ
ファ503にデータを取り込む処理を行なう。
【0031】本実施例では、アドレス予測部501は、
リクエストアドレスがアドレス予測部501内に記憶さ
れている最新ヒットアドレスよりも大きく、その差が4
未満であれば、リクエストアドレスに後続する連続デー
タを読み込み、最新ヒットアドレスよりも小さく、その
差が4未満であれば、先行する連続データを読み込むよ
う、アドレス発生部502を制御する。
【0032】ここで、後続するデータを読み込むか、先
行するデータを読み込むかのモードが切り替わるのは、
プリフェッチバッファがミスヒットし、リクエストアド
レスとアドレス予測部501内に記憶されている最新ヒ
ットアドレスの差が、4未満であった場合のみであり、
それ以外では、上記モードは各バッファモジュール50
−i内のアドレス予測部501毎に保持される。
【0033】(3)もし上記アドレスの差が、上記しき
い値よりも小さいバッファモジュール50−iがまった
くなかった場合には、全体制御部51が、バッファモジ
ュール50−iの中で、最も長い時間アクセスのなかっ
たものを選択し、該バッファモジュール50−iのバッ
ファ503の内容として、リクエストアドレスに後続も
しくは先行する4つの連続したアドレスを持つデータが
記憶されるように、データを主記憶装置4から読み込
む。
【0034】以上の(1)、(2)、(3)の処理が行
なわれた後、データの入れ替えが行なわれたバッファモ
ジュール50−iのアドレス予測部501内に記憶され
ている最新ヒットアドレスは、上記リクエストアドレス
に初期化される。
【0035】なお、主記憶装置4からのデータを読み込
みの途中において、CPU2よりプリフェッチバッファ
5にリクエストが来た場合にも、CPU2からのリクエ
ストを受け付ける。このため、各バッファモジュール5
0−iのバッファ503の中には、4個のデータが全て
取り込まれていないモジュールも存在する可能性があ
る。その場合、バッファ503は、バッファ503内の
有効なエントリと無効なエントリを識別し、その時点で
の有効なデータに対してサーチを行なうよう制御する。
【0036】また、CPU2もしくは入出力装置6か
ら、主記憶装置4へ書き込みがあった場合には、各バッ
ファモジュール50−i内のデータサーチ部500が、
書き込みのあったアドレスのデータをバッファ503が
記憶しているかどうかを調査し、該アドレスを持つバッ
ファ503があった場合には、該バッファ503の内容
を全てリセットする。
【0037】図3にデータサーチ部500の詳細を示
す。現時点においてバッファモジュール50−iに記憶
されているプリフェッチデータの最小アドレスと最大ア
ドレスが、それぞれ最小アドレスレジスタ5022、最
大アドレスレジスタ5023に記憶されている。(これ
らのレジスタは、後述するアドレス発生部502の中に
ある。)比較器5001−0は、リクエストアドレスと
最小アドレスレジスタ5022の内容を比較し、リクエ
ストアドレスが、最小アドレス以上の値であったときに
TRUEを出力する。比較器5001−1は、リクエス
トアドレスと最大アドレスジスタ5023の内容を比較
し、リクエストアドレスが、最大アドレス以下の値であ
ったときにTRUEを出力する。そして比較器5001
−0と比較器5001−1の両方の出力がTRUEのと
き、プリフェッチバッファがヒットしたと判定する。
【0038】また、比較器5002−0,5002−
1,5002−2,5002−3が、リクエストアドレ
スの最下位の2ビットと、バッファ503内の4つのア
ドレスエントリ5030−0,5030−1,5030
−2,5030−3に記憶されているアドレスタグの最
下位の2ビットとを比較し、一致した場合にTRUEを
出力する。この出力信号によって、バッファ503内の
4つのアドレス/データの内のどれがヒットしたのかを
最終的に判定する。
【0039】図4にアドレス予測部501の詳細を示
す。減算器5011が、リクエストアドレスと、最新ヒ
ット・アドレス・レジスタ(last hit addr)5010に
記憶された最新のヒットアドレスとの差分を求める。該
差分を範囲判定回路(zone)5012が判定し、あらかじ
め指定されたしきい値の範囲内であれば、zone情報
5015をアクティブにする。該zone情報5015
は、全体制御部51において、全てのバッファモジュー
ル50−iがミスヒットであった場合、どのバッファモ
ジュール50−iに新たなプリフェッチデータを取り込
むかを決定するのに使う。なお、上記しきい値は、リク
エストアドレスが上記最新ヒットアドレスの近傍か否か
を判定するためのものであり、本実施例では“8”とす
る。
【0040】また、範囲判定回路5012は、上記差分
の絶対値が4未満であり、該差分の符号と、最新ヒット
・アドレス差分レジスタ(last hit diff)5014の符
号が異なり、かつ全バッファモジュール50−iがミス
ヒットであったとき、アドレス増減方向レジスタ501
3の値を書き換える。アドレス増減方向レジスタ501
3の値により、当該バッファモジュール50−iが、ア
ドレスの増加方向に先読みするか、減少方向に先読みす
るかが決定される。
【0041】なお、リクエストアドレスが該バッファモ
ジュール50−iにおいてヒットした場合、該リクエス
トアドレスを新たな最新ヒットアドレスとして、最新ヒ
ット・アドレス・レジスタ5010に記憶しておく。同
様に、最新ヒット・アドレス差分レジスタ5014の内
容も、今回算出した最新ヒット・アドレス差分に更新し
ておく。また、全てのバッファモジュール50−iがミ
スヒットであって、該バッファモジュール50−iのバ
ッファ503にリクエストアドレスに連続したデータを
ロードする場合には、上記リクエストアドレスを初期値
として最新ヒット・アドレス・レジスタ5010に記憶
し、最新ヒット・アドレス差分レジスタ5014には、
あらかじめ指定された初期値を記憶する。
【0042】図5に全体制御部51の詳細を示す。各バ
ッファモジュール50−iのヒット情報はヒット検出部
511に集められる。ヒット検出部511は、ヒットし
たバッファモジュール50−iが少なくともひとつある
場合は、あらかじめ定められたルールに従って、該ヒッ
トしたバッファモジュール50−iの中からひとつを選
択し、該選択されたバッファモジュール50−iへのh
it選択信号をアクティブにする。さらに、LRU管理
部510、出力アドレス選択部512、データ出力マル
チプレクサ52に対して、hit選択信号によりヒット
情報を通知する。また、ヒットしたバッファモジュール
50−iがなかった場合には、信号線miss hitをアクテ
ィブにすることにより、ミスヒット情報を全バッファモ
ジュール50−iに通知する。
【0043】LRU管理部510は、バッファモジュー
ル50−iのヒットした履歴から最も長い間アクセスさ
れていないバッファモジュール50−iを求める。LR
U管理部510により求められるLRUバッファ選択信
号は、各バッファモジュール50−iの中のアドレス予
測部501が生成するzone情報5015がアクティブと
なったバッファモジュール50−iがなかったとき、最
も長い時間アクセスのなかったバッファモジュール50
−iに対して発行される。この時、LRUバッファ選択
信号により指定されたバッファモジュール50−iに、
リクエストアドレスに後続もしくは先行するデータが主
記憶装置4から読み込まれて記憶される。また、zon
e情報5051が少なくとも一つのバッファモジュール
50−iについてアクティブであった場合には、予め定
められたルールに従って、該バッファモジュール50−
iの一つを選択し、該選択されたバッファモジュール5
0−iへのzone選択信号をアクティブにする。
【0044】出力アドレス選択部512は、ヒット検出
部511とLRU管理部510のどちらかから指定のあ
ったバッファモジュール50−iから出る出力アドレス
を主記憶装置4に出力するように、アドレス出力マルチ
プレクサ53に通知する。ヒット検出部511とLRU
管理部510のどちらからも指定のない場合には、リク
エストアドレスを主記憶装置4に出力する通知を行な
う。
【0045】図6にアドレス発生部502の詳細を示
す。最大最小アドレス算出部5020は、リクエストア
ドレスとアドレス増減方向から、次にバッファに記憶す
べきデータのアドレスの最小アドレスと最大アドレスを
求め、それぞれ最小アドレスレジスタ5022、最大ア
ドレスレジスタ5023に記憶する。ロードアドレス発
生部5021は、リクエストアドレス、アドレス増減方
向、hit選択信号、LRUバッファ選択信号、zone選
択信号から、主記憶装置4からロードすべきデータのア
ドレスを求め、出力する。また、バッファ503の中の
不要となったデータを指定するinvalid信号を発行し、
バッファ503に通知する。
【0046】ロードアドレス発生部5021は、ヒット
時には、リクエストアドレスの後続もしくは先行する4
アドレスを持つデータのうち、バッファ503にないデ
ータを選択し、該データのアドレスを順次発生する。ま
た、LRUバッファ選択信号がアクティブのとき、ある
いはzone選択信号がアクティブでかつ信号線miss hitが
アクティブのとき、リクエストアドレスの後続もしくは
先行する4アドレスを発生する。
【0047】図7に、バッファ503の詳細を示す。4
つのアドレスエントリ5030−0,5030−1,5
030−2,5030−3は、アドレスタグを記憶す
る。4つのデータエントリ5031−0,5031−
1,5031−2,5031−3は、上記アドレスタグ
に対応するデータを記憶する。書き込み制御回路503
2は、アドレスエントリ5030−i及びデータエント
リ5031−iへの書き込み、及び各エントリの有効、
無効を制御する。
【0048】アドレス及びデータ書き込み時には、ま
ず、アドレス発生部502から供給されるロードアドレ
スを、無効となっているアドレスエントリ5030−i
に記憶する。次に入力データと共に主記憶装置4から送
られてくるdata valid信号に従って、先に書き込まれた
アドレスエントリ5030−iに対応するデータエント
リ5031−iに、主記憶装置4から読み出されたデー
タを書き込む。
【0049】また、ロードアドレス発生部5021が発
行するinvalid信号に従い、指定されたアドレスエント
リ5030−i及びデータエントリ5031−iの内容
を無効にする。さらに、データサーチ部500が、主記
憶装置4への書き込みアドレスが、アドレスエントリ5
030−iに記憶されていることを検出した場合には、
データサーチ部500がバッファ503に対してreset
信号を発行し、書き込み制御回路5032は全てのアド
レスエントリ5030−i及びデータエントリ5031
−iの内容を無効にする。
【0050】本実施例によれば、アドレス予測部501
がリクエストアドレスの増減を監視しているので、CP
U2から、連続したリクエストアドレスが来る場合、ア
ドレスが増加する方向でも減少する方向でもヒットしう
る効果がある。また、バッファ503は4段のエントリ
を持っており、ここに4つの連続したアドレスのデータ
が記憶されるので、リクエストアドレスがひとつ飛び、
2つ飛び、3つ飛びで連続する場合もヒットしうる効果
がある。
【0051】また、バッファ503が4つの連続したア
ドレスのデータを記憶していることから、リクエストア
ドレスがバッファ内のアドレスの最大アドレスと最小ア
ドレスの範囲内にあることを判定することによってヒッ
ト判定がなされ、最下位の2ビットのアドレス比較でヒ
ットデータを選択できるので、比較器のハード物量を低
減できる効果がある。
【0052】さらに、バッファ503の4つのエントリ
に全てデータが記憶されていなくても動作可能であるた
め、バッファ503の全てのエントリにデータが記憶さ
れるまで、CPU2を待たせることがなく、プリフェッ
チバッファ5の主記憶装置4へのアクセスによる性能低
下を防ぐことができる効果がある。
【0053】最後に、バッファモジュール50−iは4
つあるので、リクエストアドレスの規則性を最大4通り
まで記憶し、ヒットさせうる効果がある。
【0054】図8に、本発明の別の実施例を示す。本実
施例では、第1の実施例と比べ、アドレス予測部50
1、アドレス発生部502、およびデータサーチ部50
0の構成が異なる。
【0055】アドレス予測部501において減算器50
11が、リクエストアドレスと、最新ヒット・アドレス
・レジスタ5010に記憶された最新のヒットアドレス
との差分を求める。該差分を範囲判定回路5012が判
定し、差分の絶対値があらじめ指定されたしきい値の範
囲内であれば、zone情報5015をアクティブにす
る。さらに該差分は、アドレス発生部502に供給され
る。なお、上記しきい値は、リクエストアドレスが上記
最新ヒットアドレスの近傍のアドレスか否かを判定する
ためのものであり、本実施例では、最新ヒット・アドレ
ス差分レジスタ5014の値×8とする。
【0056】また、範囲判定回路5012は、上記差分
の絶対値が最新ヒット・アドレス差分レジスタ5014
の値の4倍未満であり、該差分の符号と、最新ヒット・
アドレス差分レジスタ5014の符号が異なり、かつ全
バッファモジュール50−iがミスヒットであったと
き、アドレス増減方向レジスタ5013の値を書き換え
る。アドレス増減方向レジスタ5013の値により、当
該バッファモジュール50−iが、アドレスの増加方向
に先読みするか、減少方向に先読みするかが決定され
る。
【0057】なお、リクエストアドレスが該バッファモ
ジュール50−iにおいてヒットした場合、該リクエス
トアドレスを新たな最新ヒットアドレスとして、最新ヒ
ット・アドレス・レジスタ5010に記憶しておく。同
様に、最新ヒット・アドレス差分レジスタ5014の内
容も、今回算出した最新ヒット・アドレス差分に更新し
ておく。また、全てのバッファモジュール50−iがミ
スヒットであって、該バッファモジュール50−iのバ
ッファ503にリクエストアドレスに続くデータをロー
ドする場合には、上記リクエストアドレスを初期値とし
て最新ヒット・アドレス・レジスタ5010に記憶し、
最新ヒット・アドレス差分レジスタ5014には、あら
かじめ指定された初期値を記憶する。
【0058】図9にアドレス発生部502の詳細を示
す。最大最小アドレス算出部5020は、リクエストア
ドレス、アドレス増減方向、及びアドレス予測部501
から供給される差分から、次にバッファに記憶すべきデ
ータのアドレスの最小アドレスと最大アドレスを求め、
それぞれ最小アドレスレジスタ5022、最大アドレス
レジスタ5023に記憶する。ロードアドレス発生部5
021は、リクエストアドレス、アドレス増減方向、ヒ
ット情報、LRUバッファ選択信号、zone情報、上記差
分から、主記憶装置4からロードすべきデータのアドレ
スを求め、出力する。また、バッファ503の中の不要
となったデータを指定するinvalid信号を発行し、バッ
ファ503に通知する。
【0059】すなわち、ロードアドレス発生部5021
は、ヒット時には、リクエストアドレスに対して上記差
分の間隔を置いて後続もしくは先行する4アドレスを持
つデータのうち、バッファ503にないデータを選択
し、該データのアドレスを順次発生する。このとき、上
記最大アドレスと最小アドレスによって規定される範囲
内のアドレスであって、上記順次発生されたアドレスと
異なるアドレスを持つバッファ503内のデータに対し
ては、invalid信号を発行して無効化する。
【0060】また、LRUバッファ選択信号がアクティ
ブのとき、及びzone情報がアクティブでかつミスヒット
情報がアクティブのとき、リクエストアドレスに対して
上記差分の間隔を置いて後続もしくは先行する4アドレ
スを発生する。
【0061】図10にデータサーチ部500を示す。デ
ータサーチ部500では、比較器5003−0,500
3−1,5003−2,5003−3により、現時点に
おいてバッファモジュール50−iに記憶されているプ
リフェッチデータの全アドレスタグとリクエストアドレ
スとを比較し、一致したものがあればヒットしたと判定
する。
【0062】本実施例によれば、アドレス予測部501
がリクエストアドレスの差分を監視しているので、CP
U2から、規則的な飛び飛びのリクエストアドレスが来
る場合、アドレスが増加する方向でも減少する方向でも
フルヒットしうる効果がある。また、バッファ503は
4段のエントリを持っており、ここに4つの規則的な飛
び飛びのアドレスのデータが記憶されるので、リクエス
トアドレスが2×上記差分の間隔、3×上記差分の間
隔、4×上記差分の間隔で移動する場合もヒットしうる
効果がある。さらに、バッファモジュール50−iは4
のあるので、リクエストアドレスの規則性を最大4通り
まで記憶し、ヒットさせうる効果がある。さらに、バッ
ファ503の4つのエントリに全てデータが記憶されて
いなくても動作可能であるため、バッファ503の全て
のエントリにデータが記憶されるまで、CPU2を待た
せることがなく、プリフェッチバッファ5の主記憶装置
4へのアクセスによる性能低下を防ぐことができる効果
がある。
【0063】次に、本発明の第3実施例を図11を用い
て説明する。本実施例では、第1の実施例に比べ、全体
制御部51が異なる。全体制御部51に、CPU2よ
り、プリフェッチバッファ5へのアクセスが、リードミ
スによるものか、ライトミスによるものかを通知する信
号線を設けたものである。
【0064】図12に全体制御部51の詳細を示す。R
/W管理レジスタ514は、各バッファモジュール50
−iが、現在リードミス用のデータを記憶しているか、
ライトミス用のデータを記憶しているかを示す。R/W
管理レジスタ514は、LRU管理部510によって書
き換えられ、LRU管理部510およびヒット検出部5
11によって参照される。
【0065】各バッファモジュール50−iのヒット情
報はヒット検出部511に集められる。ヒット検出部5
11は、CPU2から供給されるリードミス/ライトミ
ス属性と一致する属性を持つバッファモジュール50−
iの中で、ヒットしたバッファモジュール50−iが少
なくともひとつある場合は、その中からあらかじめ定め
られたルールに従って、該ヒットしたバッファモジュー
ル50−iの中からひとつを選択し、LRU管理部51
0、出力アドレス選択部512、バッファモジュール5
0−i及び、データ出力マルチプレクサ52にヒット情
報を通知する。また、ヒットしたバッファモジュール5
0−iがなかった場合には、ミスヒット情報を全バッフ
ァモジュール50−iに通知する。
【0066】LRU管理部510は、リードミス用の最
も長い間アクセスされていないバッファモジュール50
−iと、ライトミス用の最も長い間アクセスされていな
いバッファモジュール50−iを同時に管理し、リクエ
ストアドレスに対して同じ属性を持つバッファモジュー
ル50−iが全てミスヒットし、zone信号が立つバッフ
ァモジュール50−iもない場合には、リクエストアド
レスに対して異なる属性を持つバッファモジュール50
−iの中で最も長い間アクセスされていないバッファモ
ジュール50−iを選択し、該バッファモジュール50
−iをリクエストアドレスと同じ属性に変更する。これ
はR/w管理レジスタ514への書き込みによって変更
される。その後、該バッファモジュール50−iに対し
てLRU信号をアクティブにする。その結果、リクエス
トアドレスに後続もしくは先行するアドレスを有するデ
ータが該バッファモジュール50−iに記憶される。
【0067】上記の場合に、リクエストアドレスと異な
る属性をもつバッファモジュール50−iがなかった場
合には、同じ属性を持つバッファモジュール50−iの
中で、最も長い間アクセスされていないものを選択す
る。
【0068】本実施例によれば、バッファモジュール5
0−iを、リードミス用とライトミス用にダイナミック
に切り替えることができる。このため、リードミスアド
レス、ライトミスアドレスがそれぞれに規則的な動きを
し、リードミスとライトミスを区別しない場合には互い
に干渉しあってアドレス予測が混乱するが、これらを分
離すると、規則性が容易に予測されるようなアプリケー
ションであった場合には、プリフェッチバッファ5のヒ
ット率が向上し、リードミスとライトミスを区別しない
場合に比べて計算機システムの性能を向上させる効果が
ある。
【0069】以下に、本発明の第4の実施例を図13を
用いて説明する。ここでは、第1の実施例の計算機シス
テム1において、CPU2を4個設け、マルチプロセッ
サ構成にしたものである。本実施例では、バッファモジ
ュール50−iを、CPU2が単一であった場合の4
倍、すなわち16個設ける。
【0070】本実施例によれば、マルチプロセッサにお
いてもプリフェッチバッファによる性能向上を図れる効
果がある。
【0071】次に、本発明の第5実施例を図14を用い
て説明する。本実施例では、第4の実施例に比べ、全体
制御部51が異なる。全体制御部51に、CPU2よ
り、プリフェッチバッファ5へのアクセスが、プロセッ
サ番号何番のCPU2−iによって使用されるものかを
通知する信号線を設けたものである。
【0072】図15に全体制御部51の詳細を示す。プ
ロセッサ番号管理レジスタ515は、各バッファモジュ
ール50−iが、現在どのプロセッサのプリフェッチデ
ータを記憶しているかを示す。プロセッサ番号管理レジ
スタ515は、LRU管理部510によって書き換えら
れ、LRU管理部510およびヒット検出部511によ
って参照される。
【0073】各バッファモジュール50−iのヒット情
報はヒット検出部511に集められる。ヒット検出部5
11は、CPU2から供給されるプロセッサ番号と一致
するプロセッサ番号を持つバッファモジュール50−i
の中で、ヒットしたバッファモジュール50−iが少な
くともひとつある場合は、その中からあらかじめ定めら
れたルールに従って、該ヒットしたバッファモジュール
50−iの中からひとつを選択し、LRU管理部51
0、出力アドレス選択部512、バッファモジュール5
0−i及び、データ出力マルチプレクサ52にヒット情
報を通知する。また、ヒットしたバッファモジュール5
0−iがなかった場合には、ミスヒット情報を全バッフ
ァモジュール50−iに通知する。
【0074】LRU管理部510は、プロセッサ番号毎
に、最も長い間アクセスされていないバッファモジュー
ル50−iを管理し、リクエストアドレスに対して同じ
プロセッサ番号を持つバッファモジュール50−iが全
てミスヒットし、zone信号が立つバッファモジュール5
0−iもない場合には、リクエストアドレスに対して異
なるプロセッサ番号を持つバッファモジュール50−i
の中で最も長い間アクセスされていないバッファモジュ
ール50−iを選択し、該バッファモジュール50−i
をリクエストアドレスと同じプロセッサ番号に変更す
る。これはプロセッサ番号管理レジスタ515への書き
込みによって変更される。その後、該バッファモジュー
ル50−iに対してLRU信号をアクティブにする。そ
の結果、リクエストアドレスに後続もしくは先行するア
ドレスを有するデータが該バッファモジュール50−i
に記憶される。
【0075】上記の場合に、リクエストアドレスと異な
るプロセッサ番号をもつバッファモジュール50−iが
なかった場合には、同じプロセッサ番号を持つバッファ
モジュール50−iの中で、最も長い間アクセスされて
いないものを選択する。
【0076】本実施例によれば、バッファモジュール5
0−iを、プロセッサ番号によって切り替えることがで
きる。このため、アドレスがプロセッサ毎に規則的な動
きをし、プロセッサ番号を区別しない場合には互いに干
渉しあってアドレス予測が混乱するが、これらを分離す
ると、規則性が容易に予測されるようなアプリケーショ
ンであった場合には、プリフェッチバッファ5のヒット
率が向上し、プロセッサ番号を区別しない場合に比べ計
算機システムの性能を向上させる効果がある。
【0077】
【発明の効果】本発明により、従来のプリフェッチバッ
ファ方式に比べ、プリフェッチバッファのヒット率を向
上させることができるので、CPUから主記憶装置への
アクセスによる性能低下を大幅に軽減させることがで
き、計算機システムの性能を向上させることができる。
【図面の簡単な説明】
【図1】本発明の一実施例のプリフェッチバッファの構
成図。
【図2】本発明が適用される計算機システムの全体構成
図。
【図3】図1内に示したデータサーチ部の構成図。
【図4】図1内に示したアドレス予測部の構成図。
【図5】図1内に示した全体制御部の構成図。
【図6】図1内に示したアドレス発生部の構成図。
【図7】図1内に示したバッファの構成図。
【図8】本発明による第2の実施例に係るアドレス予測
部の他の構成図。
【図9】第2の実施例に係るアドレス発生部の他の構成
図。
【図10】第2の実施例に係るデータサーチ部の他の構
成図。
【図11】本発明の第3の実施例のプリフェッチバッフ
ァの構成図。
【図12】第3の実施例に係る全体制御部の構成図。
【図13】本発明の第4の実施例の計算機システム全体
構成図。
【図14】本発明の第5の実施例のプリフェッチバッフ
ァの構成図。
【図15】第5の実施例に係る全体制御部の構成図。
【符号の説明】
1…計算機システム、2…CPU、3…キャッシュメモ
リ、4…主記憶装置、5…プリフェッチバッファ、6…
入出力装置、7…システムバス、50…バッファモジュ
ール、51…全体制御部、52…データ出力マルチプレ
クサ、53…アドレス出力マルチプレクサ、500…デ
ータサーチ部、501…アドレス予測部、502…アド
レス発生部、503…バッファ、504…データ出力
部。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 中三川 哲明 茨城県日立市久慈町4026番地 株式会社 日立製作所 日立研究所内 (72)発明者 廣瀬 健二 茨城県日立市幸町3丁目2番1号 日立 エンジニアリング株式会社内 (56)参考文献 特開 平1−276336(JP,A) 特開 昭63−310026(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 9/38 G06F 12/08

Claims (12)

    (57)【特許請求の範囲】
  1. 【請求項1】CPUを有する計算機システムにおけるキ
    ャッシュメモリと主記憶装置との間に設けられるプリフ
    ェッチバッファであって、 プリフェッチしたデータと該データをサーチするための
    アドレスタグとを対にして記憶する少なくともひとつの
    エントリを有するバッファと、 プリフェッチするデータの主記憶装置内でのアドレスを
    発生するアドレス発生部と、 上記バッファに記憶されているデータの中から、上記C
    PUよりリクエストされたアドレスを有するデータをサ
    ーチするデータサーチ部と、 上記CPUよりリクエストされたアドレスと、過去にプ
    リフェッチしたデータの主記憶装置内でのアドレスの履
    歴とに基づいて、次にプリフェッチすべきデータの主記
    憶装置内でのアドレスを決定するアドレス予測部と、 を備えたことを特徴とするプリフェッチバッファ。
  2. 【請求項2】上記アドレス予測部は、上記CPUからの
    リクエストアドレスと該アドレスの直前に上記CPUよ
    りリクエストされたアドレスとの差分を取り、該差分の
    値に基づいて次に主記憶装置からプリフェッチするデー
    タのアドレスを予測することを特徴とする請求項記載
    のプリフェッチバッファ。
  3. 【請求項3】上記バッファはn段(nは複数)のエント
    リを含み、上記データサーチ部は、上記CPUからのリ
    クエストアドレスを有するデータを、上記すべてのエン
    トリを対象としてサーチすることを特徴とする請求項1
    記載のプリフェッチバッファ。
  4. 【請求項4】上記アドレス発生部は、プリフェッチすべ
    きデータのアドレスとして、上記CPUよりリクエスト
    されたデータのアドレスに連続するn個のアドレスを発
    生することを特徴とする請求項3記載のプリフェッチバ
    ッファ。
  5. 【請求項5】上記アドレス予測部は、上記バッファに、
    CPUからのリクエストアドレスに対して後続するアド
    レスのデータを記憶するか先行するアドレスのデータを
    記憶するかを決定するフラグを記憶するアドレス増減方
    向レジスタと、プリフェッチバッファにヒットした最新
    のアドレスを記憶する最新ヒットアドレスレジスタとを
    有し、プリフェッチバッファがミスヒットした場合、当
    該リクエストアドレスが最新ヒットアドレスよりも大き
    くかつその差の絶対値が予め指定された値p未満であれ
    ば当該リクエストアドレスに後続するn個の連続データ
    を上記バッファに格納し、当該リクエストアドレスが上
    記最新ヒットアドレスよりも小さくかつその差の絶対値
    が上記値p未満であれば当該リクエストアドレスに先行
    するn個の連続データを上記バッファに格納するよう、
    上記アドレス発生部を制御することを特徴とする請求項
    4記載のプリフェッチバッファ。
  6. 【請求項6】上記予め指定された値pは、1からnのい
    ずれかであることを特徴とする請求項5記載のプリフェ
    ッチバッファ。
  7. 【請求項7】上記アドレス予測部は、上記リクエストア
    ドレスに対してプリフェッチバッファがヒットした場
    合、当該リクエストアドレスで上記最新ヒットアドレス
    レジスタの内容を更新すると共に、上記アドレス増減方
    向レジスタの内容に従う方向の、当該リクエストアドレ
    スに続くn個の連続データを上記バッファに格納するよ
    う上記アドレス発生部を制御することを特徴とする請求
    項5記載のプリフェッチバッファ。
  8. 【請求項8】上記アドレス予測部は、上記CPUからの
    リクエストアドレスと該アドレスの直前に上記CPUよ
    りリクエストされたアドレスとの差分を取り、該差分値
    をk(kは1からnまで)倍した値を当該リクエストア
    ドレスに加算して得られるアドレスを、上記主記憶装置
    からプリフェッチするデータのアドレスとすることを特
    徴とする請求項3記載のプリフェッチバッファ。
  9. 【請求項9】上記バッファは、有効なデータが記憶され
    ているエントリと無効なデータが記憶されているエント
    リとを識別するフラグを有し、上記データサーチ部は、
    該フラグを参照して、有効なデータが記憶されているエ
    ントリを対象として上記リクエストアドレスをサーチす
    ることを特徴とする請求項3記載のプリフェッチバッフ
    ァ。
  10. 【請求項10】CPUを有する計算機システムにおける
    キャッシュメモリと主記憶装置との間に設けられるプリ
    フェッチバッファであって、 プリフェッチしたデータと該データをサーチするための
    アドレスタグとを対にして記憶する少なくともひとつの
    エントリからなるバッファと、 プリフェッチするデータの主記憶装置内でのアドレスを
    発生するアドレス発生部と、 上記バッファに記憶されているデータの中から、上記C
    PUよりリクエストされたアドレスを有するデータをサ
    ーチするデータサーチ部と、 上記CPUよりリクエストされたアドレスに基づいて、
    次にプリフェッチすべきデータの主記憶装置内でのアド
    レスを決定するアドレス予測部とを備え、 上記データサーチ部と、上記アドレス予測部と、上記ア
    ドレス発生部と、上記バッファとを一つのバッファと
    し、m個のバッファモジュールを設け、さらに、該m個
    のバッファモジュールを制御する全体制御部を設け、該
    全体制御部は、上記m個のバッファモジュールをリード
    ミス用とライトミス用に分けて管理することを特徴とす
    るプリフェッチバッファ。
  11. 【請求項11】複数個のCPUを有するマルチプロセッ
    サ計算機システムにおけるキャッシュメモリと主記憶装
    置との間に設けられるプリフェッチバッファであって、 プリフェッチしたデータと該データをサーチするための
    アドレスタグとを対にして記憶する少なくとも一つのエ
    ントリを有するバッファと、 該バッファに記憶されているデータの中から、CPUよ
    りリクエストさたアドレスを持つデータをサーチするデ
    ータサーチ部と、 プリフェッチするデータの主記憶装置以内でのアドレス
    を発生するアドレス発生部と、 上記CPUよりリクエストされたアドレスと、過去にプ
    リフェッチしたデータの主記憶装置内でのアドレスの履
    歴とに基づいて、次にプリフェッチすべきデータの主記
    憶装置内でのアドレスを決定するアドレス予測部とを備
    え、 上記バッファと、上記データサーチ部と、上記アドレス
    発生部と、上記アドレス予測部とを一つのバッファモジ
    ュールとし、m個のバッファモジュールを設けると共
    に、該m個のバッファモジュールを制御する全体制御部
    を設け、該全体制御部は、上記m個のバッファモジュー
    ルを、それぞれ上記複数のCPUのいずれかに割当てて
    管理することを特徴とするプリフェッチバッファ。
  12. 【請求項12】CPUを有する計算機システムにおける
    キャッシュメモリと主記憶装置との間に設けられるプリ
    フェッチバッファであって、 プリフェッチしたデータと該データをサーチするための
    アドレスタグとを対にして記憶する少なくともひとつの
    エントリを有するバッファと、 プリフェッチするデータの主記憶装置内でのアドレスを
    発生するアドレス発生部と、 上記バッファに記憶されているデータの中から、上記C
    PUよりリクエストされたアドレスを有するデータをサ
    ーチするデータサーチ部と、 上記CPUからのリクエストアドレスが増加方向に変化
    するか、減少方向に変化するかに応じて、上記バッファ
    にプリフェッチすべきデータの主記憶装置内でのアドレ
    スを増加させまたは減少させるアドレス予測部と、 を備えたことを特徴とするプリフェッチバッファ。
JP3190240A 1991-07-30 1991-07-30 プリフェッチバッファ Expired - Fee Related JP2881049B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP3190240A JP2881049B2 (ja) 1991-07-30 1991-07-30 プリフェッチバッファ
DE4225228A DE4225228C2 (de) 1991-07-30 1992-07-30 Vorabrufpuffer und einen derartigen Vorabrufpuffer verwendendes Informationsverarbeitungssystem
KR1019920013630A KR930002945A (ko) 1991-07-30 1992-07-30 프리페치버퍼 및 프리페치버퍼를 적용한 정보처리장치
US07/921,742 US5345560A (en) 1991-07-30 1992-07-30 Prefetch buffer and information processing system using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3190240A JP2881049B2 (ja) 1991-07-30 1991-07-30 プリフェッチバッファ

Publications (2)

Publication Number Publication Date
JPH0628180A JPH0628180A (ja) 1994-02-04
JP2881049B2 true JP2881049B2 (ja) 1999-04-12

Family

ID=16254838

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3190240A Expired - Fee Related JP2881049B2 (ja) 1991-07-30 1991-07-30 プリフェッチバッファ

Country Status (4)

Country Link
US (1) US5345560A (ja)
JP (1) JP2881049B2 (ja)
KR (1) KR930002945A (ja)
DE (1) DE4225228C2 (ja)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5659713A (en) * 1992-04-24 1997-08-19 Digital Equipment Corporation Memory stream buffer with variable-size prefetch depending on memory interleaving configuration
US6453388B1 (en) * 1992-06-17 2002-09-17 Intel Corporation Computer system having a bus interface unit for prefetching data from system memory
US5566324A (en) * 1992-12-24 1996-10-15 Ncr Corporation Computer apparatus including a main memory prefetch cache and method of operation thereof
US5588128A (en) * 1993-04-02 1996-12-24 Vlsi Technology, Inc. Dynamic direction look ahead read buffer
TW228580B (en) * 1993-10-01 1994-08-21 Ibm Information processing system and method of operation
KR970010368B1 (ko) * 1994-01-18 1997-06-25 삼성전자 주식회사 캐시라인 리프레이스장치 및 방법
TW233354B (en) * 1994-03-04 1994-11-01 Motorola Inc Data processor with memory cache and method of operation
JP2689920B2 (ja) * 1994-09-26 1997-12-10 日本電気株式会社 演算処理システムに用いられるプリフェッチバッファ装置
JPH0895857A (ja) * 1994-09-29 1996-04-12 Shikoku Nippon Denki Software Kk 入出力キャッシュ
US5761706A (en) * 1994-11-01 1998-06-02 Cray Research, Inc. Stream buffers for high-performance computer memory system
US5664147A (en) * 1995-08-24 1997-09-02 International Business Machines Corp. System and method that progressively prefetches additional lines to a distributed stream buffer as the sequentiality of the memory accessing is demonstrated
US5737565A (en) * 1995-08-24 1998-04-07 International Business Machines Corporation System and method for diallocating stream from a stream buffer
US6055621A (en) * 1996-02-12 2000-04-25 International Business Machines Corporation Touch history table
US5854911A (en) * 1996-07-01 1998-12-29 Sun Microsystems, Inc. Data buffer prefetch apparatus and method
US7272703B2 (en) * 1997-08-01 2007-09-18 Micron Technology, Inc. Program controlled embedded-DRAM-DSP architecture and methods
US6134643A (en) * 1997-11-26 2000-10-17 Intel Corporation Method and apparatus for cache line prediction and prefetching using a prefetch controller and buffer and access history
US6625697B1 (en) 1998-11-25 2003-09-23 Siemens Aktiengesellschaft Cache-storage device with a buffer storing prefetch data
DE69935066D1 (de) * 1999-05-03 2007-03-22 St Microelectronics Sa Befehlsvorausholeinheit
JP3956698B2 (ja) * 1999-07-07 2007-08-08 株式会社日立製作所 メモリ制御装置
JP3535800B2 (ja) * 2000-03-31 2004-06-07 松下電器産業株式会社 ディスクメモリ装置、データ先読み方法、及び記録媒体
US7039766B1 (en) * 2000-10-12 2006-05-02 International Business Machines Corporation Prescheduling sequential data prefetches in a preexisting LRU cache
JP4341186B2 (ja) 2001-01-22 2009-10-07 株式会社日立製作所 メモリシステム
JP3969009B2 (ja) 2001-03-29 2007-08-29 株式会社日立製作所 ハードウェアプリフェッチシステム
US7133972B2 (en) * 2002-06-07 2006-11-07 Micron Technology, Inc. Memory hub with internal cache and/or memory access prediction
JP4067887B2 (ja) 2002-06-28 2008-03-26 富士通株式会社 プリフェッチを行う演算処理装置、情報処理装置及びそれらの制御方法
US7841041B2 (en) 2002-08-09 2010-11-30 Colgate-Palmolive Company Oral care implement
US8151397B2 (en) 2002-08-09 2012-04-10 Colgate-Palmolive Company Oral care implement having flexibly supported cleaning elements extending in opposite directions
US8806695B2 (en) 2002-08-09 2014-08-19 Colgate-Palmolive Company Oral care implement having flexibly supported cleaning elements extending in opposite directions
US8876221B2 (en) 2002-08-09 2014-11-04 Colgate-Palmolive Company Oral care implement
US6931494B2 (en) * 2002-09-09 2005-08-16 Broadcom Corporation System and method for directional prefetching
US7111116B1 (en) * 2003-09-30 2006-09-19 Western Digital Technologies, Inc. Reducing micro-controller access time to data stored in a remote memory in a disk drive control system
JP2006215799A (ja) * 2005-02-03 2006-08-17 Toshiba Corp メモリコントローラ
US7702883B2 (en) * 2005-05-05 2010-04-20 Intel Corporation Variable-width memory
US8281448B2 (en) 2005-10-24 2012-10-09 Colgate-Palmolive Company Oral care implement having one or more moving sections
US8977819B2 (en) 2010-09-21 2015-03-10 Texas Instruments Incorporated Prefetch stream filter with FIFO allocation and stream direction prediction
US10866897B2 (en) * 2016-09-26 2020-12-15 Samsung Electronics Co., Ltd. Byte-addressable flash-based memory module with prefetch mode that is adjusted based on feedback from prefetch accuracy that is calculated by comparing first decoded address and second decoded address, where the first decoded address is sent to memory controller, and the second decoded address is sent to prefetch buffer
US10956315B2 (en) * 2018-07-24 2021-03-23 Micron Technology, Inc. Memory devices and methods which may facilitate tensor memory access

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4714994A (en) * 1985-04-30 1987-12-22 International Business Machines Corp. Instruction prefetch buffer control
US4943908A (en) * 1987-12-02 1990-07-24 International Business Machines Corporation Multiple branch analyzer for prefetching cache lines
EP0389175A3 (en) * 1989-03-15 1992-11-19 Fujitsu Limited Data prefetch system

Also Published As

Publication number Publication date
DE4225228C2 (de) 1997-05-15
KR930002945A (ko) 1993-02-23
JPH0628180A (ja) 1994-02-04
US5345560A (en) 1994-09-06
DE4225228A1 (de) 1993-02-04

Similar Documents

Publication Publication Date Title
JP2881049B2 (ja) プリフェッチバッファ
US5694568A (en) Prefetch system applicable to complex memory access schemes
EP0185867B1 (en) A memory hierarchy and its method of operation
US6490658B1 (en) Data prefetch technique using prefetch cache, micro-TLB, and history file
US6473833B1 (en) Integrated cache and directory structure for multi-level caches
US5537573A (en) Cache system and method for prefetching of data
US6957304B2 (en) Runahead allocation protection (RAP)
EP0582635B1 (en) Method for increasing the speed of data processing in a computer system
US8458408B2 (en) Cache directed sequential prefetch
US7584327B2 (en) Method and system for proximity caching in a multiple-core system
US5664148A (en) Cache arrangement including coalescing buffer queue for non-cacheable data
JPH0962572A (ja) ストリーム・フィルタ装置及び方法
US20100217937A1 (en) Data processing apparatus and method
US5701426A (en) Data processing system and method using cache miss address prediction and forced LRU status in a cache memory to improve cache hit ratio
US7194586B2 (en) Method and apparatus for implementing cache state as history of read/write shared data
JP4574712B2 (ja) 演算処理装置、情報処理装置及び制御方法
US20090106498A1 (en) Coherent dram prefetcher
JP2019096309A (ja) メンテナンス動作の実行
US6418516B1 (en) Method and system for managing speculative requests in a multi-level memory hierarchy
JPH09160827A (ja) コールド・キャッシュ命令のプリフェッチ
US20050198439A1 (en) Cache memory prefetcher
US6487637B1 (en) Method and system for clearing dependent speculations from a request queue
US5619673A (en) Virtual access cache protection bits handling method and apparatus
US20010032297A1 (en) Cache memory apparatus and data processing system
JP4904802B2 (ja) キャッシュメモリ及びプロセッサ

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080129

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080129

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090129

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090129

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100129

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110129

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees