JP3175675B2 - プリフェッチ制御装置 - Google Patents

プリフェッチ制御装置

Info

Publication number
JP3175675B2
JP3175675B2 JP33406197A JP33406197A JP3175675B2 JP 3175675 B2 JP3175675 B2 JP 3175675B2 JP 33406197 A JP33406197 A JP 33406197A JP 33406197 A JP33406197 A JP 33406197A JP 3175675 B2 JP3175675 B2 JP 3175675B2
Authority
JP
Japan
Prior art keywords
address
range
output
difference
history
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
JP33406197A
Other languages
English (en)
Other versions
JPH11167520A (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.)
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 JP33406197A priority Critical patent/JP3175675B2/ja
Priority to US09/205,709 priority patent/US6173392B1/en
Publication of JPH11167520A publication Critical patent/JPH11167520A/ja
Application granted granted Critical
Publication of JP3175675B2 publication Critical patent/JP3175675B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • G06F9/3455Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results using stride
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • G06F9/3832Value prediction for operands; operand history buffers
    • 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)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プリフェッチ制御
装置に関し、特にアドレスの規則性を検出してプリフェ
ッチ動作を行うプリフェッチ制御装置に関する。
【0002】
【従来の技術】従来この種のキャッシュメモリ制御装置
では、必要なデータがキャッシュメモリ内に存在しない
という事象(以下、キャッシュミスという)が生起した
際に、記憶装置からキャッシュメモリに対して必要なデ
ータを転送するように制御していた。例えば、特開昭5
9−96585公報には、キャッシュミス時にキャッシ
ュメモリと記憶装置の双方にデータ要求を出すキャッシ
ュメモリ制御装置が記載されている。
【0003】また、ソフトウェアからキャッシュメモリ
を制御する方式としては、将来必要となるであろうデー
タをソフトウェア命令によって指定し、予め記憶装置か
らキャッシュメモリに対して必要なデータを転送するよ
うに制御していた。例えば、『1992年2 月、アイトリプ
ルイー・コンプコン92論文集 (C.Dowdell and L.Thay
er : "Scalable Graphics Enhancements for PA-RISC W
orkstations", Proc.of IEEE COMPCON 92, pp.122-128,
Feb. 1992.) 』には、データキャッシュに32バイト
のデータをブロック転送するよう指示するキャッシュプ
リフェッチ命令(fetch32 )が記載されている。
【0004】
【発明が解決しようとする課題】しかしながら、前者の
従来のキャッシュメモリ制御装置では、キャッシュミス
を契機に記憶装置へのアクセスを開始するため、中央処
理装置がデータを受け取るまでに時間を要し、そのデー
タを必要とする命令を続行することができないという問
題があった。また、近年の中央処理装置はパイプライン
構成を採用することによりスループット性能向上を目指
しているが、キャッシュミスのためにパイプライン全体
を止めざるを得ない場合があり、このことが中央処理装
置の実効性能向上にとって弊害となっていた。
【0005】また、後者の従来のキャッシュプリフェッ
チ命令による方法では、このプリフェッチ命令によって
プログラム上で明示的にプリフェッチ操作を指示しなけ
ればならないため、プログラム量が増加して命令供給を
阻害し、実効性能に悪影響を与える結果になる。さら
に、記憶装置にアクセスするアドレスをプログラム実行
前に完全に把握することは一般的には不可能なため、コ
ンパイル時にプリフェッチ命令をプログラム上の適切な
位置に生成することが困難であった。
【0006】本発明の目的は、プロセッサが一定のアド
レス差で順にアクセスする際、そのアクセスを予測し、
事前にキャッシュメモリにプリフェッチすることにより
システム性能を向上させるプリフェッチ制御装置を提供
することにある。
【0007】
【課題を解決するための手段】上記課題を解決するため
に本発明のプリフェッチ制御装置は、プロセッサからキ
ャッシュメモリへのリクエストアドレスの履歴及びその
過去のアドレスとの差分を保持するアドレスヒストリテ
ーブルと、現リクエストに係るアドレスから前記アドレ
スヒストリテーブルに保持された前記リクエストアドレ
スの履歴を減じて出力する減算器と、この減算器の出力
と前記現リクエストに係るアドレスとを加算して出力す
る加算器と、前記減算器の出力が前記アドレスヒストリ
テーブルに保持された前記差分と等しい場合に前記加算
器の出力をプリフェッチアドレスとしてプリフェッチリ
クエストを発行するアドレス制御回路とを含み、前記ア
ドレス制御回路は、前記アドレスヒストリテーブルの前
記差分として許容できる範囲値が設定されるアドレス範
囲レジスタを含み、前記減算器の出力が前記アドレスヒ
ストリテーブルに保持された前記差分と等しくない場合
に該減算器の出力が前記アドレス範囲レジスタに設定さ
れた範囲値内であれば前記現リクエストに係るアドレス
を前記アドレスヒストリテーブルの前記履歴に登録する
とともに前記減算器の出力を前記アドレスヒストリテー
ブルの前記差分に保持させることを特徴とする。
【0008】
【0009】
【0010】
【0011】また、本発明の他のプリフェッチ制御装置
において、前記アドレス制御回路は、前記減算器の出力
が前記アドレス範囲レジスタに設定された範囲値内であ
るか否を検出する範囲比較器を含み、この範囲比較器
が範囲内であると検出した場合に前記減算器の出力を前
アドレスヒストリテーブルの前記差分に保持させる。
【0012】また、本発明の他のプリフェッチ制御装置
において、前記アドレス制御回路は、前記範囲比較器が
範囲外であると検出した場合に前記現リクエストに係る
アドレスを前記アドレスヒストリテーブルの前記履歴に
登録するとともに前記差分を前記アドレス範囲レジスタ
の範囲外の値に設定する。
【0013】また、本発明の他のプリフェッチ制御装置
は、プロセッサからキャッシュメモリへのリクエストア
ドレスの履歴及びその過去のアドレスとの差分からなる
組を少なくとも2組保持するアドレスヒストリテーブル
と、現リクエストに係るアドレスから前記アドレスヒス
トリテーブルに保持された前記リクエストアドレスの履
歴の各々をそれぞれ減じて出力する複数の減算器と、こ
れら複数の減算器の出力の何れかを選択して出力する選
択器と、この選択器によって選択された出力と前記現リ
クエストに係るアドレスとを加算して出力する加算器
と、前記複数の減算器の出力であって前記アドレスヒス
トリテーブルに保持された対応する前記差分と等しいも
のが存在する場合には当該減算器の出力を選択するよう
前記選択器を制御するとともに前記加算器の出力をプリ
フェッチアドレスとしてプリフェッチリクエストを発行
するアドレス制御回路とを含み、前記アドレス制御回路
は、前記アドレスヒストリテーブルの前記差分として許
容できる範囲値が設定されるアドレス範囲レジスタを含
み、前記複数の減算器の出力がいずれも前記アドレスヒ
ストリテーブルに保持された対応する前記差分と等しく
ない場合に、該複数の減算器のうちその出力が前記アド
レス範囲レジスタに設定された範囲値内である減算器の
出力を前記アドレスヒストリテーブルの対応する前記差
分に保持させるとともに、前記現リクエストに係るアド
レスを前記アドレスヒストリテーブルの対応する前記履
歴に登録することを特徴とする。
【0014】
【0015】
【0016】また、本発明の他のプリフェッチ制御装置
において、前記アドレス制御回路は、前記複数の減算器
の各々の出力が前記アドレス範囲レジスタに設定された
範囲値内であるか否かを検出する複数の範囲比較器を含
み、これら範囲比較器のいずれかが範囲内であると検出
した場合に前記減算器の出力を前記アドレスヒストリテ
ーブルの対応する前記差分に保持させる。
【0017】また、本発明の他のプリフェッチ制御装置
において、前記アドレス制御回路は、前記複数の範囲比
較器がいずれも範囲外であると検出した場合に前記現リ
クエストに係るアドレスを前記アドレスヒストリテーブ
ルの何れかの前記履歴に登録するとともに対応する前記
差分を前記アドレス範囲レジスタの範囲外の値に設定す
る。
【0018】
【0019】
【0020】
【発明の実施の形態】次に本発明のプリフェッチ制御装
置の実施の形態について図面を参照して詳細に説明す
る。
【0021】図1を参照すると、本発明のプリフェッチ
制御装置の実施の形態は、プロセッサ100と、キャッ
シュメモリ300と、主記憶400とを含む情報処理シ
ステムに適用される。プリフェッチ制御装置200は、
プロセッサ100とキャッシュメモリ300の間に接続
される。キャッシュメモリ300と主記憶400はシス
テムバス500によって接続される。
【0022】プロセッサ100が信号線101によりア
クセスリクエストを発行すると、キャッシュメモリ30
0は、当該リクエストに係るデータを有していれば(キ
ャッシュヒット)、そのデータを信号線301によりプ
ロセッサへ送る。もし、キャッシュメモリ300が当該
リクエストに係るデータを有していなければ(キャッシ
ュミス)、キャッシュメモリ300はシステムバス50
0を介して主記憶400にアクセスして、該当データを
読み出す。読み出されたデータは、キャッシュメモリ3
00に保持されるとともに、信号線301によりプロセ
ッサ100へ送られる。
【0023】プリフェッチ制御装置200は、プロセッ
サ100からのアクセスリクエスト101を監視し、一
定のアドレス差で順にアクセスされるアクセスリクエス
トを検出すると、キャッシュメモリ300に対してプリ
フェッチリクエストを発行する。プリフェッチ制御装置
200が信号線201によりプリフェッチリクエストを
発行すると、キャッシュメモリ300は、キャッシュヒ
ットであれば特段の動作をせず、キャッシュミスであれ
ばシステムバス500を介して主記憶400にアクセス
して、該当データを読み出す。読み出されたデータは、
キャッシュメモリ300に保持されるが、プロセッサ1
00へは送られない。
【0024】キャッシュメモリ300は、プリフェッチ
制御装置200からのプリフェッチリクエストよりもプ
ロセッサ100からのアクセスリクエストを優先して処
理を行うようにする。
【0025】なお、プロセッサ100、キャッシュメモ
リ300、主記憶400については、特記しない限り通
常の技術と同様のものを使用する。
【0026】図2を参照すると、プリフェッチ制御装置
200は、アクセスリクエストに係るアドレスを保持す
るリクエストアドレスレジスタ210と、アクセスされ
たアドレスの履歴を保持するアドレスヒストリテーブル
220と、プリフェッチアドレスを生成する加算器23
0と、アドレスヒストリテーブル220に保持されてい
るアドレスとリクエストアドレスレジスタ210に保持
されているアドレスとの間のアドレス差を生成する減算
器240と、減算器240のいずれかの出力を選択する
選択器280と、減算器240によるアドレス差に応じ
てアドレスヒストリテーブル220を更新するとともに
キャッシュメモリ300に対してプリフェッチリクエス
トを発行するアドレス制御回路290とを含んでいる。
【0027】信号線101によるアクセスリクエストの
内、アドレスの部分は以下の一連の処理が完了するまで
リクエストアドレスレジスタ210に保持される。アド
レスヒストリテーブル220は、過去にアクセスしたア
ドレスである「ヒストリアドレス」及びそのアドレスに
アクセスする前のアドレスとの「差分」を組にして保持
している。減算器240は、リクエストアドレス210
に保持されたアドレスからアドレスヒストリテーブル2
20に保持されたアドレスを減算して「アドレス差」を
生成する。選択器280は減算器240からのアドレス
差をアドレス制御回路290の指示により選択する。加
算器230はリクエストアドレスレジスタ210に保持
されたアドレスと選択器280により選択されたアドレ
ス差とを加算してプリフェッチアドレスをとなるべきア
ドレスを生成する。
【0028】図3を参照すると、プリフェッチ制御装置
200のより詳細なブロック図において、ヒストリアド
レス221及び差分222は、図2におけるアドレスヒ
ストリテーブル220を構成する。また、アドレス範囲
レジスタ260と、比較器291と、比較器292と、
テーブル制御回路293とは、図2におけるアドレス制
御回路290を構成する。図3の実施の形態では、ヒス
トリアドレスの数を4つを例としているが、本発明にお
いてはヒストリアドレスの数は1つ以上の任意の数を選
択することができる。
【0029】比較器291は、それぞれ対応する減算器
240の出力と差分222を比較して、一致しているか
否かを出力する。この比較器291は、一致比較器とも
いう。アドレス範囲レジスタ260は、検出すべきアド
レス差として許容できる範囲値が設定される。すなわ
ち、差分222として登録される値として許容できる範
囲の値が設定される。比較器292は、減算器240の
出力がアドレス範囲260に設定された範囲内に含まれ
るか否かを出力する。この比較器292は、範囲比較器
ともいう。テーブル制御回路293は、後述の動作によ
り、選択器280に制御信号を与えとともに、アドレス
ヒストリテーブル220の更新を行う。また、テーブル
制御回路293は、後述の基準により、加算器230か
らのアドレスについてプリフェッチリクエストを発行す
るか否かを制御する。
【0030】図4を参照すると、本発明の実施の形態で
は、以下のようにしてプリフェッチアドレスとなるべき
アドレスを生成する。ヒストリアドレス221には予め
前回アクセスしたアドレス(例えば、”$5000”)
が保持されているとすると、減算器240はリクエスト
アドレスレジスタ210に保持されたアドレス(例え
ば、”$5100”)からヒストリアドレス221に保
持されたアドレスを減じてアドレス差(ここでは、”$
0100”)を生成する。選択器280によってこのア
ドレス差が選択されたとすると、加算器230は、この
アドレス差に対してリクエストアドレスレジスタ210
に保持されたアドレスを加えることによりアドレス(こ
こでは、”$5200”)を生成する。
【0031】次に本発明のプリフェッチ制御回路の実施
の形態における動作について説明する。
【0032】図3及び図5を参照すると、まず、アドレ
ス範囲レジスタ260には、検出すべきアドレス差とし
て許容できる範囲値が設定される(ステップS90
1)。
【0033】リクエストアドレスレジスタ210に新た
なアドレスが保持されると、減算器240の各々は、対
応するヒストリ221に保持されたアドレスからリクエ
ストアドレスレジスタ210に保持されたアドレスを減
算する(ステップS902)。
【0034】減算器240の減算結果(アドレス差)に
ついて対応する差分222との一致が比較器291によ
り検出される(ステップS903)。一致するものがあ
れば、その一致したアドレス差が選択器280により選
択される。もし、複数の一致が検出された場合は、任意
の1つが選択される。この選択されたアドレス差は加算
器230に入力され、プリフェッチアドレスが生成され
る。テーブル制御回路293は、このプリフェッチアド
レスにより信号線201を介してプリフェッチリクエス
トを発行する(ステップS904)。テーブル制御回路
293は、プリフェッチリクエストを発行した後、アド
レスヒストリテーブル220の内の選択器280により
選択した組に対して、リクエストアドレス210に保持
されているアドレスを保持させる(ステップS90
5)。
【0035】また、ステップS903において、一致す
るものを検出しなかった場合、減算器240によるアド
レス差の各々がアドレス範囲レジスタ260に設定され
たアドレス範囲に含まれているか否かが比較器292に
より判断される(ステップS906)。このステップS
906においてアドレス範囲内に含まれていると判断さ
れた場合は、一定のアドレス差のアクセスが順に続かな
かったことを意味するため、プリフェッチリクエストは
発行しない。この場合、アドレス範囲内に含まれている
と比較器292が検出した組のアドレス差を選択器28
0で選択し、その組のヒストリアドレス221をリクエ
ストアドレスレジスタ210で更新するとともに、その
組の差分222を選択器280で選択されたアドレス差
で更新する(ステップS907)。
【0036】ステップS906においてアドレス範囲外
であると判断された場合は、単発的なアクセスか、現在
までの履歴にはない新たな領域へのアクセスであること
を意味しているので、プリフェッチリクエストは発行し
ない。この場合、テーブル制御回路293はアドレスヒ
ストリテーブル220の中のある組を使用してリクエス
トアドレスレジスタ210の値を新たに登録するととも
に、対応する差分222をゼロクリアする(ステップS
908)。ここで何れの組を使用するかは任意の組でも
よく、また、最も古くから比較器291による一致が検
出されていない組を使用するようにしてもよい。差分2
22をゼロクリアしたのは、次回ステップS906で範
囲内とされないためであり、ゼロでなくともよく、アド
レス範囲レジスタ260に設定された範囲外の値であれ
ばよい。
【0037】ステップS905、S907、または、S
908の処理の後は再びステップS902の処理に戻
り、次にリクエストアドレスレジスタ210にアドレス
が保持されるとアドレス差の計算を行う。
【0038】次に、本発明の実施の形態による処理の具
体例について説明する。
【0039】図6(a)を参照すると、初期状態とし
て、ヒストリアドレス221に”5000”、差分22
2に”900”、アドレス範囲260に”20〜50
0”が保持されているものとする。この状態で、リクエ
ストアドレスレジスタ210に”3000”が保持され
ると、比較器291の出力は”不一致”、比較器292
の出力は”範囲外”となる。従って、この場合、リクエ
ストアドレス210のアドレスがヒストリアドレス22
1に登録されるとともに差分222がゼロクリアされる
(図5のステップS908)。
【0040】図6(b)を参照すると、次にリクエスト
アドレスレジスタ210に”3100”が保持される
と、比較器291の出力は”不一致”、比較器292の
出力は”範囲内”となる。従って、この場合、リクエス
トアドレス210のアドレス”3100”によってヒス
トリアドレス221が更新されるとともに差分222に
はアドレス差”100”が設定される(図5のステップ
S907)。
【0041】図6(c)を参照すると、次にリクエスト
アドレスレジスタ210に”3200”が保持される
と、比較器291の出力は”一致”、比較器292の出
力は”範囲内”となる。従って、この場合、加算器21
0の出力するアドレス”3300”によりプリフェッチ
リクエストが発行されるとともに、リクエストアドレス
210のアドレス”3200”によってヒストリアドレ
ス221が更新される(図5のステップS904及びS
905)。これにより、以降はリクエストアドレスが定
値”100”ずつ増加していく限り、それに先行してプ
リフェッチリクエストを発行することができる。
【0042】なお、上述の実施の形態ではキャッシュメ
モリ300はコピーバック方式をとるものとして説明し
たが、ライトスルーでも実施可能である。その場合は、
プロセッサ100からのライトアクセスに対してはプリ
フェッチすることに意味が無いため、プリフェッチ制御
装置200ではプロセッサ100からのリードアクセス
のみをアクセスリクエストとして処理すればよい。
【0043】このように、上述の実施の形態では、ター
ゲットヒストリ221に保持されたアドレスとリクエス
トアドレスレジスタ210に保持されたアドレスとの差
を計算して、そのアドレス差が差分222に一致する限
りはプリフェッチリクエストを発行できる。また、差分
222の値が消失されてしまった場合でも、連続するア
ドレスがアドレス範囲レジスタ260に設置された範囲
内にあれば、差分222の値が設定し直されるため、以
降のプリフェッチリクエストが可能となる。
【0044】次に、本発明の他の実施の形態について説
明する。
【0045】本発明の他の実施の形態は、その基本的構
成は上述の実施の形態と同様であるが、キャッシュメモ
リ300が改良されている。
【0046】図7を参照すると、他の実施の形態におけ
るキャッシュメモリ300は、キャッシュコア320へ
のアクセス待ちリクエストを管理する入力待ちキュー3
21と、キャッシュメモリコア320からバスアクセス
制御回路330へのアクセス待ちリクエストを管理する
出力待ちキュー331と、これら入力待ちキュー321
及び出力待ちキュー331における待ち状態を信号線3
22及び332により監視してプリフェッチリクエスト
のキャンセル処理を行うキャンセラー310を含んでい
る。ここで、キャッシュメモリコア320は、アドレス
アレイやデータアレイ等、キャッシュメモリとして機能
するための主要部分を指す。また、バスアクセス制御回
路330は、キャッシュメモリコア320から出力され
たデータをシステムバス500に送出するための制御を
行う。
【0047】図8を参照すると、キャンセラー310
は、入力待ちキュー321における待ちリクエスト数を
保持する入力待ち数レジスタ312と、出力待ちキュー
331における待ちリクエスト数を保持する出力待ち数
レジスタ313と、入力待ちリクエスト数として許容で
きる上限値を保持する入力待ち数上限値レジスタ314
と、出力待ちリクエスト数として許容できる上限値を保
持する出力待ち数上限値レジスタ315とを含む。ま
た、キャンセラー310は、入力待ち数レジスタ312
の値が入力待ち数上限値レジスタ314の値よりも大き
いことを検出する比較器316と、出力待ち数レジスタ
313の値が出力待ち数上限値レジスタ315の値より
も大きいことを検出する比較器317と、比較器316
及び317の何れかが検出信号を出力した場合にプリフ
ェッチ停止制御信号を発生する論理和回路318と、プ
リフェッチ停止制御信号に従ってプリフェッチリクエス
ト201を通すか否かを制御するスイッチ319を含
む。
【0048】入力待ち数上限値レジスタ314及び出力
待ち数上限値レジスタ315には予め適切な上限値が設
定されるものとする。入力待ちキュー321における待
ちリクエスト数が入力待ち数上限値レジスタ314の値
を越えるか、または出力待ちキュー331における待ち
リクエスト数が出力待ち数上限値レジスタ315の値を
越えると、論理和回路318の出力がアサートされ、ス
イッチ319を開放状態にする。これにより、プリフェ
ッチリクエスト201はキャッシュメモリコア320に
送られなくなる。
【0049】このように、上述の他の実施の形態では、
キャッシュメモリ300やシステムバス500の負荷が
高い場合にはプリフェッチリクエスト201がキャンセ
ルされるため、使用される可能性の低いデータのプリフ
ェッチを抑止し、全体としてのシステム性能を向上させ
ることができる。
【0050】
【発明の効果】以上の説明で明らかなように、本発明に
よると、プロセッサのアクセスする一定アドレス間隔の
アクセスに対して、次にアクセスされるアドレスを予測
し、事前にメインメモリからキャッシュメモリにデータ
をプリフェッチしておけるため、プロセッサの実質的な
アクセス時間を短縮することができ、システム性能を向
上させることができる。一方、一定のアドレス間隔でア
クセスされない場合には不必要なプリフェッチを行わな
いため、小容量のキャッシュメモリを有効に活用するこ
とができ、システム性能を向上させることができる。
【図面の簡単な説明】
【図1】本発明のプリフェッチ制御装置の実施の形態が
適用される情報処理システムの構成を示すブロック図で
ある。
【図2】本発明のプリフェッチ制御装置の実施の形態の
概略を示す図である。
【図3】本発明のプリフェッチ制御装置の実施の形態の
構成を示すブロック図である。
【図4】本発明のプリフェッチ制御装置の実施の形態に
おけるアドレス予測の仕組みを説明するための図であ
る。
【図5】本発明のプリフェッチ制御装置の実施の形態の
動作を示すフローチャートである。
【図6】本発明のプリフェッチ制御装置の実施の形態の
動作を説明するための具体例である。
【図7】本発明の実施の形態におけるキャッシュメモリ
の変形例を示すブロック図である。
【図8】本発明の実施の形態の変形例におけるキャンセ
ラーの構成を示す図である。
【符号の説明】
100 プロセッサ 200 プリフェッチ制御装置 210 リクエストアドレスレジスタ 220 アドレスヒストリテーブル 221 ターゲットアドレス 222 差分 230 加算器 240 減算器 260 アドレス範囲レジスタ 280 選択器 290 アドレス制御回路 291 比較器(一致検出器) 292 比較器(範囲検出器) 293 テーブル制御回路 300 キャッシュメモリ 310 キャンセラー 312 入力待ち数レジスタ 313 出力待ち数レジスタ 314 入力待ち上限値 315 出力待ち上限値 316,317 比較器 318 論理和回路 319 スイッチ 320 キャッシュメモリコア 321 入力待ちキュー 330 バスアクセス制御回路 331 出力待ちキュー 400 主記憶 500 システムバス
フロントページの続き (56)参考文献 特開 平3−63852(JP,A) 特開 平6−314241(JP,A) 特開 平6−51982(JP,A) 特開 平2−287828(JP,A) 特開 平11−161489(JP,A) 特開 平8−161226(JP,A) 特開 平7−64862(JP,A) 特開 平6−342403(JP,A) 特開 平5−181748(JP,A) 特開 平2−133842(JP,A) 特開 平7−210460(JP,A) 特開 昭50−96143(JP,A) 特開 平2−10450(JP,A) 特表 平7−506921(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 12/08 - 12/12

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 プロセッサからキャッシュメモリへのリ
    クエストアドレスの履歴及びその過去のアドレスとの差
    分を保持するアドレスヒストリテーブルと、現リクエストに係るアドレス から前記アドレスヒストリ
    テーブルに保持された前記リクエストアドレスの履歴
    減じて出力する減算器と、 この減算器の出力と前記現リクエストに係るアドレスと
    を加算して出力する加算器と、 前記減算器の出力が前記アドレスヒストリテーブルに保
    持された前記差分と等しい場合に前記加算器の出力をプ
    リフェッチアドレスとしてプリフェッチリクエストを発
    行するアドレス制御回路とを含み、 記アドレス制御回路は、前記アドレスヒストリテーブ
    ルの前記差分として許容できる範囲値が設定されるアド
    レス範囲レジスタを含み、前記減算器の出力が前記アド
    レスヒストリテーブルに保持された前記差分と等しくな
    い場合に該減算器の出力が前記アドレス範囲レジスタに
    設定された範囲値内であれば前記現リクエストに係るア
    ドレスを前記アドレスヒストリテーブルの前記履歴に登
    録するとともに前記減算器の出力を前記アドレスヒスト
    リテーブルの前記差分に保持させることを特徴とするプ
    リフェッチ制御装置。
  2. 【請求項2】 前記アドレス制御回路は、前記減算器の
    出力が前記アドレス範囲レジスタに設定された範囲値内
    であるか否を検出する範囲比較器を含み、この範囲比
    較器が範囲内であると検出した場合に前記減算器の出力
    を前記アドレスヒストリテーブルの前記差分に保持させ
    ることを特徴とする請求項1記載のプリフェッチ制御装
    置。
  3. 【請求項3】 前記アドレス制御回路は、前記範囲比較
    器が範囲外であると検出した場合に前記現リクエストに
    係るアドレスを前記アドレスヒストリテーブルの前記履
    歴に登録するとともに前記差分を前記アドレス範囲レジ
    スタの範囲外の値に設定することを特徴とする請求項2
    記載のプリフェッチ制御装置。
  4. 【請求項4】 プロセッサからキャッシュメモリへのリ
    クエストアドレスの履歴及びその過去のアドレスとの差
    分からなる組を少なくとも2組保持するアドレスヒスト
    リテーブルと、現リクエストに係るアドレス から前記アドレスヒストリ
    テーブルに保持された前記リクエストアドレスの履歴の
    各々をそれぞれ減じて出力する複数の減算器と、 これら複数の減算器の出力の何れかを選択して出力する
    選択器と、 この選択器によって選択された出力と前記現リクエスト
    に係るアドレスとを加算して出力する加算器と、 前記複数の減算器の出力であって前記アドレスヒストリ
    テーブルに保持された対応する前記差分と等しいものが
    存在する場合には当該減算器の出力を選択するよう前記
    選択器を制御するとともに前記加算器の出力をプリフェ
    ッチアドレスとしてプリフェッチリクエストを発行する
    アドレス制御回路とを含み、 前記アドレス制御回路は、前記アドレスヒストリテーブ
    ルの前記差分として許容できる範囲値が設定されるアド
    レス範囲レジスタを含み、前記複数の減算器の出力がい
    ずれも前記アドレスヒストリテーブルに保持された対応
    する前記差分と等しくない場合に、該複数の減算器のう
    ちその出力が前記アドレス範囲レジスタに設定された範
    囲値内である減算器の出力を前記アドレスヒストリテー
    ブルの対応する前記差分に保持させるとともに、前記現
    リクエストに係るアドレスを前記アドレスヒストリテー
    ブルの対応する前記履歴に登録することを特徴とするプ
    リフェッチ制御装置。
  5. 【請求項5】 前記アドレス制御回路は、前記複数の減
    算器の各々の出力が前記アドレス範囲レジスタに設定さ
    れた範囲値内であるか否かを検出する複数の範囲比較器
    を含み、これら範囲比較器のいずれかが範囲内であると
    検出した場合に前記減算器の出力を前記アドレスヒスト
    リテーブルの対応する前記差分に保持させることを特徴
    とする請求項4記載のプリフェッチ制御装置。
  6. 【請求項6】 前記アドレス制御回路は、前記複数の範
    囲比較器がいずれも範囲外であると検出した場合に前記
    現リクエストに係るアドレスを前記アドレスヒストリテ
    ーブルの何れかの前記履歴に登録するとともに対応する
    前記差分を前記アドレス範囲レジスタの範囲外の値に設
    定することを特徴とする請求項5記載のプリフェッチ制
    御装置。
JP33406197A 1997-04-12 1997-12-04 プリフェッチ制御装置 Expired - Fee Related JP3175675B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP33406197A JP3175675B2 (ja) 1997-12-04 1997-12-04 プリフェッチ制御装置
US09/205,709 US6173392B1 (en) 1997-04-12 1998-12-04 Prefetch controller automatically updating history addresses

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP33406197A JP3175675B2 (ja) 1997-12-04 1997-12-04 プリフェッチ制御装置

Publications (2)

Publication Number Publication Date
JPH11167520A JPH11167520A (ja) 1999-06-22
JP3175675B2 true JP3175675B2 (ja) 2001-06-11

Family

ID=18273077

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33406197A Expired - Fee Related JP3175675B2 (ja) 1997-04-12 1997-12-04 プリフェッチ制御装置

Country Status (2)

Country Link
US (1) US6173392B1 (ja)
JP (1) JP3175675B2 (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6446143B1 (en) * 1998-11-25 2002-09-03 Compaq Information Technologies Group, L.P. Methods and apparatus for minimizing the impact of excessive instruction retrieval
JP3506024B2 (ja) * 1998-12-10 2004-03-15 日本電気株式会社 情報処理装置
US6470427B1 (en) * 1999-11-09 2002-10-22 International Business Machines Corporation Programmable agent and method for managing prefetch queues
JP3848161B2 (ja) * 1999-12-09 2006-11-22 富士通株式会社 アドレス変換履歴テーブルを用いたメモリアクセス装置及び方法
JP4060506B2 (ja) * 1999-12-28 2008-03-12 株式会社東芝 ディスク制御装置
US6643743B1 (en) * 2000-03-31 2003-11-04 Intel Corporation Stream-down prefetching cache
US6678795B1 (en) * 2000-08-15 2004-01-13 International Business Machines Corporation Method and apparatus for memory prefetching based on intra-page usage history
JP4341186B2 (ja) * 2001-01-22 2009-10-07 株式会社日立製作所 メモリシステム
JP3969009B2 (ja) 2001-03-29 2007-08-29 株式会社日立製作所 ハードウェアプリフェッチシステム
US7437438B2 (en) * 2001-12-27 2008-10-14 Hewlett-Packard Development Company, L.P. System and method for energy efficient data prefetching
JP4067887B2 (ja) 2002-06-28 2008-03-26 富士通株式会社 プリフェッチを行う演算処理装置、情報処理装置及びそれらの制御方法
US7167954B2 (en) * 2002-09-09 2007-01-23 Broadcom Corporation System and method for caching
US7117309B2 (en) * 2003-04-14 2006-10-03 Hewlett-Packard Development Company, L.P. Method of detecting sequential workloads to increase host read throughput
US20050071570A1 (en) * 2003-09-26 2005-03-31 Takasugl Robin Alexis Prefetch controller for controlling retrieval of data from a data storage device
DE10361059A1 (de) * 2003-12-22 2005-07-28 Micronas Gmbh Verfahren und Vorrichtung zum Steuern eines Speicherzugriffs
EP1729220A4 (en) * 2004-03-24 2008-12-17 Panasonic Corp ANTEMEMOIRE AND METHOD OF CONTROLLING THE SAME
US7430650B1 (en) * 2004-06-17 2008-09-30 Richard Ross Generating a set of pre-fetch address candidates based on popular sets of address and data offset counters
JP4151977B2 (ja) * 2005-03-16 2008-09-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 先読み装置、先読み方法、および先読みプログラム
KR20070093452A (ko) 2005-04-08 2007-09-18 마쯔시다덴기산교 가부시키가이샤 캐시 메모리 시스템 및 그 제어 방법
US20070150660A1 (en) * 2005-12-28 2007-06-28 Marathe Jaydeep P Inserting prefetch instructions based on hardware monitoring
WO2007099582A1 (ja) * 2006-02-28 2007-09-07 Fujitsu Limited プリフェッチ制御装置
JP5068552B2 (ja) * 2007-02-02 2012-11-07 ルネサスエレクトロニクス株式会社 プリフェッチ方法、及びキャッシュ機構用ユニット
JP5205777B2 (ja) * 2007-03-14 2013-06-05 富士通株式会社 プリフェッチ処理装置、プリフェッチ処理プログラムおよびプリフェッチ処理方法
GB2454808B (en) * 2007-11-19 2012-12-19 St Microelectronics Res & Dev Cache memory system
GB0722707D0 (en) * 2007-11-19 2007-12-27 St Microelectronics Res & Dev Cache memory
US8433852B2 (en) * 2010-08-30 2013-04-30 Intel Corporation Method and apparatus for fuzzy stride prefetch
CN202053708U (zh) * 2010-11-12 2011-11-30 蓝天电脑股份有限公司 无版转印膜
US10489295B2 (en) * 2012-10-08 2019-11-26 Sandisk Technologies Llc Systems and methods for managing cache pre-fetch
JP6130758B2 (ja) * 2013-09-06 2017-05-17 株式会社東芝 メモリ制御回路およびキャッシュメモリ
JP2017228172A (ja) * 2016-06-23 2017-12-28 富士通株式会社 情報処理システム
JP6958038B2 (ja) * 2017-07-06 2021-11-02 富士通株式会社 シミュレーションプログラム、方法、及び装置
JP7140972B2 (ja) * 2018-12-21 2022-09-22 富士通株式会社 演算処理装置、情報処理装置及び演算処理装置の制御方法
US10877889B2 (en) * 2019-05-16 2020-12-29 Micron Technology, Inc. Processor-side transaction context memory interface systems and methods
US11379376B2 (en) 2020-05-20 2022-07-05 Micron Technologies, Inc. Embedding data in address streams

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5096143A (ja) 1973-12-24 1975-07-31
JPH0210450A (ja) 1988-06-29 1990-01-16 Hitachi Ltd キヤツシユメモリの先行フエツチ制御方式
JPH02133842A (ja) 1988-11-15 1990-05-23 Fujitsu Ltd 中間バッファプリフェッチ制御方式
JPH02287828A (ja) 1989-04-28 1990-11-27 Fujitsu Ltd プリフェッチ制御方式
US5093777A (en) * 1989-06-12 1992-03-03 Bull Hn Information Systems Inc. Method and apparatus for predicting address of a subsequent cache request upon analyzing address patterns stored in separate miss stack
US5210838A (en) * 1990-05-15 1993-05-11 Sun Microsystems, Inc. Method and apparatus for predicting the effective addresses of future memory load operations in a microprocessor
AU634354B2 (en) 1990-08-31 1993-02-18 Sun Microsystems, Inc. Method and apparatus for predictive caching
US5357618A (en) * 1991-04-15 1994-10-18 International Business Machines Corporation Cache prefetch and bypass using stride registers
JPH05181748A (ja) 1991-12-27 1993-07-23 Pfu Ltd キャッシュメモリ装置
WO1993018459A1 (en) 1992-03-06 1993-09-16 Rambus Inc. Prefetching into a cache to minimize main memory access time and cache size in a computer system
US5495591A (en) * 1992-06-30 1996-02-27 Bull Hn Information Systems Inc. Method and system for cache miss prediction based on previous cache access requests
JPH0651982A (ja) 1992-08-04 1994-02-25 Fujitsu Ltd 演算処理装置
JPH06314241A (ja) 1993-03-04 1994-11-08 Sharp Corp 高速半導体記憶装置及び高速連想記憶装置
US5426764A (en) * 1993-08-24 1995-06-20 Ryan; Charles P. Cache miss prediction apparatus with priority encoder for multiple prediction matches and method therefor
JP3174211B2 (ja) 1994-01-25 2001-06-11 富士通株式会社 バッファストレイジのムーブイン制御方法
US5611065A (en) * 1994-09-14 1997-03-11 Unisys Corporation Address prediction for relative-to-absolute addressing
JPH08161226A (ja) 1994-12-12 1996-06-21 Fujitsu Ltd データ先読み制御方法,キャッシュ制御装置およびデータ処理装置
US5701426A (en) * 1995-03-31 1997-12-23 Bull Information Systems Inc. Data processing system and method using cache miss address prediction and forced LRU status in a cache memory to improve cache hit ratio
US5790823A (en) * 1995-07-13 1998-08-04 International Business Machines Corporation Operand prefetch table
US5854921A (en) * 1995-08-31 1998-12-29 Advanced Micro Devices, Inc. Stride-based data address prediction structure
US5953512A (en) * 1996-12-31 1999-09-14 Texas Instruments Incorporated Microprocessor circuits, systems, and methods implementing a loop and/or stride predicting load target buffer
JP3085267B2 (ja) 1997-11-27 2000-09-04 日本電気株式会社 メモリアクセス高速化装置

Also Published As

Publication number Publication date
JPH11167520A (ja) 1999-06-22
US6173392B1 (en) 2001-01-09

Similar Documents

Publication Publication Date Title
JP3175675B2 (ja) プリフェッチ制御装置
US7246204B2 (en) Pre-fetch control device, data processing apparatus and pre-fetch control method
JP4027620B2 (ja) 分岐予測装置、プロセッサ、及び分岐予測方法
US7010626B2 (en) DMA prefetch
KR100704089B1 (ko) L2 디렉토리를 이용한 멀티프로세서 시스템의 가-로드촉진 방법 및 장치
EP0950222B1 (en) Prefetch management in cache memory
US5297281A (en) Multiple sequence processor system
JP4064924B2 (ja) メモリアクセスを制御する方法及び装置
US10013254B2 (en) Systems and methods for load cancelling in a processor that is connected to an external interconnect fabric
JP2744890B2 (ja) ブランチ予測式データ処理装置および動作方法
EP1990731B1 (en) Processor having prefetch function
JP2002297379A (ja) ハードウェアプリフェッチシステム
KR20040012812A (ko) L2 디렉토리를 이용한 멀티프로세서 시스템의 가-저장촉진 방법 및 장치
US7783840B2 (en) Method and apparatus for controlling memory system
JP4019073B2 (ja) キャッシュ可能なdma
EP0903669B1 (en) Memory control method and apparatus suitable for information processing system
EP1622026B1 (en) Cache memory control unit and cache memory control method
JP2638434B2 (ja) キャッシュプリフェッチ装置
JPH08314803A (ja) ディスクキャッシュ制御装置
JP3284508B2 (ja) データ先読み制御装置
JPH08161226A (ja) データ先読み制御方法,キャッシュ制御装置およびデータ処理装置
JP3241679B2 (ja) プロセッサからの大容量データ転送処理リクエストにおけるキャッシュ読み出し方法
JPH11232101A (ja) 命令発行装置とコンピュータ装置
JP2000347934A (ja) キャッシュメモリ装置
JPH10307723A (ja) プロセッサ

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20000606

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20010306

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

Free format text: PAYMENT UNTIL: 20080406

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090406

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100406

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110406

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees