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
Links
- 238000000034 method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
- G06F9/3455—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results using stride
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
- G06F9/3832—Value prediction for operands; operand history buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6026—Prefetching 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
装置に関し、特にアドレスの規則性を検出してプリフェ
ッチ動作を行うプリフェッチ制御装置に関する。
では、必要なデータがキャッシュメモリ内に存在しない
という事象(以下、キャッシュミスという)が生起した
際に、記憶装置からキャッシュメモリに対して必要なデ
ータを転送するように制御していた。例えば、特開昭5
9−96585公報には、キャッシュミス時にキャッシ
ュメモリと記憶装置の双方にデータ要求を出すキャッシ
ュメモリ制御装置が記載されている。
を制御する方式としては、将来必要となるであろうデー
タをソフトウェア命令によって指定し、予め記憶装置か
らキャッシュメモリに対して必要なデータを転送するよ
うに制御していた。例えば、『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 )が記載されている。
従来のキャッシュメモリ制御装置では、キャッシュミス
を契機に記憶装置へのアクセスを開始するため、中央処
理装置がデータを受け取るまでに時間を要し、そのデー
タを必要とする命令を続行することができないという問
題があった。また、近年の中央処理装置はパイプライン
構成を採用することによりスループット性能向上を目指
しているが、キャッシュミスのためにパイプライン全体
を止めざるを得ない場合があり、このことが中央処理装
置の実効性能向上にとって弊害となっていた。
チ命令による方法では、このプリフェッチ命令によって
プログラム上で明示的にプリフェッチ操作を指示しなけ
ればならないため、プログラム量が増加して命令供給を
阻害し、実効性能に悪影響を与える結果になる。さら
に、記憶装置にアクセスするアドレスをプログラム実行
前に完全に把握することは一般的には不可能なため、コ
ンパイル時にプリフェッチ命令をプログラム上の適切な
位置に生成することが困難であった。
レス差で順にアクセスする際、そのアクセスを予測し、
事前にキャッシュメモリにプリフェッチすることにより
システム性能を向上させるプリフェッチ制御装置を提供
することにある。
に本発明のプリフェッチ制御装置は、プロセッサからキ
ャッシュメモリへのリクエストアドレスの履歴及びその
過去のアドレスとの差分を保持するアドレスヒストリテ
ーブルと、現リクエストに係るアドレスから前記アドレ
スヒストリテーブルに保持された前記リクエストアドレ
スの履歴を減じて出力する減算器と、この減算器の出力
と前記現リクエストに係るアドレスとを加算して出力す
る加算器と、前記減算器の出力が前記アドレスヒストリ
テーブルに保持された前記差分と等しい場合に前記加算
器の出力をプリフェッチアドレスとしてプリフェッチリ
クエストを発行するアドレス制御回路とを含み、前記ア
ドレス制御回路は、前記アドレスヒストリテーブルの前
記差分として許容できる範囲値が設定されるアドレス範
囲レジスタを含み、前記減算器の出力が前記アドレスヒ
ストリテーブルに保持された前記差分と等しくない場合
に該減算器の出力が前記アドレス範囲レジスタに設定さ
れた範囲値内であれば前記現リクエストに係るアドレス
を前記アドレスヒストリテーブルの前記履歴に登録する
とともに前記減算器の出力を前記アドレスヒストリテー
ブルの前記差分に保持させることを特徴とする。
において、前記アドレス制御回路は、前記減算器の出力
が前記アドレス範囲レジスタに設定された範囲値内であ
るか否かを検出する範囲比較器を含み、この範囲比較器
が範囲内であると検出した場合に前記減算器の出力を前
記アドレスヒストリテーブルの前記差分に保持させる。
において、前記アドレス制御回路は、前記範囲比較器が
範囲外であると検出した場合に前記現リクエストに係る
アドレスを前記アドレスヒストリテーブルの前記履歴に
登録するとともに前記差分を前記アドレス範囲レジスタ
の範囲外の値に設定する。
は、プロセッサからキャッシュメモリへのリクエストア
ドレスの履歴及びその過去のアドレスとの差分からなる
組を少なくとも2組保持するアドレスヒストリテーブル
と、現リクエストに係るアドレスから前記アドレスヒス
トリテーブルに保持された前記リクエストアドレスの履
歴の各々をそれぞれ減じて出力する複数の減算器と、こ
れら複数の減算器の出力の何れかを選択して出力する選
択器と、この選択器によって選択された出力と前記現リ
クエストに係るアドレスとを加算して出力する加算器
と、前記複数の減算器の出力であって前記アドレスヒス
トリテーブルに保持された対応する前記差分と等しいも
のが存在する場合には当該減算器の出力を選択するよう
前記選択器を制御するとともに前記加算器の出力をプリ
フェッチアドレスとしてプリフェッチリクエストを発行
するアドレス制御回路とを含み、前記アドレス制御回路
は、前記アドレスヒストリテーブルの前記差分として許
容できる範囲値が設定されるアドレス範囲レジスタを含
み、前記複数の減算器の出力がいずれも前記アドレスヒ
ストリテーブルに保持された対応する前記差分と等しく
ない場合に、該複数の減算器のうちその出力が前記アド
レス範囲レジスタに設定された範囲値内である減算器の
出力を前記アドレスヒストリテーブルの対応する前記差
分に保持させるとともに、前記現リクエストに係るアド
レスを前記アドレスヒストリテーブルの対応する前記履
歴に登録することを特徴とする。
において、前記アドレス制御回路は、前記複数の減算器
の各々の出力が前記アドレス範囲レジスタに設定された
範囲値内であるか否かを検出する複数の範囲比較器を含
み、これら範囲比較器のいずれかが範囲内であると検出
した場合に前記減算器の出力を前記アドレスヒストリテ
ーブルの対応する前記差分に保持させる。
において、前記アドレス制御回路は、前記複数の範囲比
較器がいずれも範囲外であると検出した場合に前記現リ
クエストに係るアドレスを前記アドレスヒストリテーブ
ルの何れかの前記履歴に登録するとともに対応する前記
差分を前記アドレス範囲レジスタの範囲外の値に設定す
る。
置の実施の形態について図面を参照して詳細に説明す
る。
制御装置の実施の形態は、プロセッサ100と、キャッ
シュメモリ300と、主記憶400とを含む情報処理シ
ステムに適用される。プリフェッチ制御装置200は、
プロセッサ100とキャッシュメモリ300の間に接続
される。キャッシュメモリ300と主記憶400はシス
テムバス500によって接続される。
クセスリクエストを発行すると、キャッシュメモリ30
0は、当該リクエストに係るデータを有していれば(キ
ャッシュヒット)、そのデータを信号線301によりプ
ロセッサへ送る。もし、キャッシュメモリ300が当該
リクエストに係るデータを有していなければ(キャッシ
ュミス)、キャッシュメモリ300はシステムバス50
0を介して主記憶400にアクセスして、該当データを
読み出す。読み出されたデータは、キャッシュメモリ3
00に保持されるとともに、信号線301によりプロセ
ッサ100へ送られる。
サ100からのアクセスリクエスト101を監視し、一
定のアドレス差で順にアクセスされるアクセスリクエス
トを検出すると、キャッシュメモリ300に対してプリ
フェッチリクエストを発行する。プリフェッチ制御装置
200が信号線201によりプリフェッチリクエストを
発行すると、キャッシュメモリ300は、キャッシュヒ
ットであれば特段の動作をせず、キャッシュミスであれ
ばシステムバス500を介して主記憶400にアクセス
して、該当データを読み出す。読み出されたデータは、
キャッシュメモリ300に保持されるが、プロセッサ1
00へは送られない。
制御装置200からのプリフェッチリクエストよりもプ
ロセッサ100からのアクセスリクエストを優先して処
理を行うようにする。
リ300、主記憶400については、特記しない限り通
常の技術と同様のものを使用する。
200は、アクセスリクエストに係るアドレスを保持す
るリクエストアドレスレジスタ210と、アクセスされ
たアドレスの履歴を保持するアドレスヒストリテーブル
220と、プリフェッチアドレスを生成する加算器23
0と、アドレスヒストリテーブル220に保持されてい
るアドレスとリクエストアドレスレジスタ210に保持
されているアドレスとの間のアドレス差を生成する減算
器240と、減算器240のいずれかの出力を選択する
選択器280と、減算器240によるアドレス差に応じ
てアドレスヒストリテーブル220を更新するとともに
キャッシュメモリ300に対してプリフェッチリクエス
トを発行するアドレス制御回路290とを含んでいる。
内、アドレスの部分は以下の一連の処理が完了するまで
リクエストアドレスレジスタ210に保持される。アド
レスヒストリテーブル220は、過去にアクセスしたア
ドレスである「ヒストリアドレス」及びそのアドレスに
アクセスする前のアドレスとの「差分」を組にして保持
している。減算器240は、リクエストアドレス210
に保持されたアドレスからアドレスヒストリテーブル2
20に保持されたアドレスを減算して「アドレス差」を
生成する。選択器280は減算器240からのアドレス
差をアドレス制御回路290の指示により選択する。加
算器230はリクエストアドレスレジスタ210に保持
されたアドレスと選択器280により選択されたアドレ
ス差とを加算してプリフェッチアドレスをとなるべきア
ドレスを生成する。
200のより詳細なブロック図において、ヒストリアド
レス221及び差分222は、図2におけるアドレスヒ
ストリテーブル220を構成する。また、アドレス範囲
レジスタ260と、比較器291と、比較器292と、
テーブル制御回路293とは、図2におけるアドレス制
御回路290を構成する。図3の実施の形態では、ヒス
トリアドレスの数を4つを例としているが、本発明にお
いてはヒストリアドレスの数は1つ以上の任意の数を選
択することができる。
240の出力と差分222を比較して、一致しているか
否かを出力する。この比較器291は、一致比較器とも
いう。アドレス範囲レジスタ260は、検出すべきアド
レス差として許容できる範囲値が設定される。すなわ
ち、差分222として登録される値として許容できる範
囲の値が設定される。比較器292は、減算器240の
出力がアドレス範囲260に設定された範囲内に含まれ
るか否かを出力する。この比較器292は、範囲比較器
ともいう。テーブル制御回路293は、後述の動作によ
り、選択器280に制御信号を与えとともに、アドレス
ヒストリテーブル220の更新を行う。また、テーブル
制御回路293は、後述の基準により、加算器230か
らのアドレスについてプリフェッチリクエストを発行す
るか否かを制御する。
は、以下のようにしてプリフェッチアドレスとなるべき
アドレスを生成する。ヒストリアドレス221には予め
前回アクセスしたアドレス(例えば、”$5000”)
が保持されているとすると、減算器240はリクエスト
アドレスレジスタ210に保持されたアドレス(例え
ば、”$5100”)からヒストリアドレス221に保
持されたアドレスを減じてアドレス差(ここでは、”$
0100”)を生成する。選択器280によってこのア
ドレス差が選択されたとすると、加算器230は、この
アドレス差に対してリクエストアドレスレジスタ210
に保持されたアドレスを加えることによりアドレス(こ
こでは、”$5200”)を生成する。
の形態における動作について説明する。
ス範囲レジスタ260には、検出すべきアドレス差とし
て許容できる範囲値が設定される(ステップS90
1)。
なアドレスが保持されると、減算器240の各々は、対
応するヒストリ221に保持されたアドレスからリクエ
ストアドレスレジスタ210に保持されたアドレスを減
算する(ステップS902)。
ついて対応する差分222との一致が比較器291によ
り検出される(ステップS903)。一致するものがあ
れば、その一致したアドレス差が選択器280により選
択される。もし、複数の一致が検出された場合は、任意
の1つが選択される。この選択されたアドレス差は加算
器230に入力され、プリフェッチアドレスが生成され
る。テーブル制御回路293は、このプリフェッチアド
レスにより信号線201を介してプリフェッチリクエス
トを発行する(ステップS904)。テーブル制御回路
293は、プリフェッチリクエストを発行した後、アド
レスヒストリテーブル220の内の選択器280により
選択した組に対して、リクエストアドレス210に保持
されているアドレスを保持させる(ステップS90
5)。
るものを検出しなかった場合、減算器240によるアド
レス差の各々がアドレス範囲レジスタ260に設定され
たアドレス範囲に含まれているか否かが比較器292に
より判断される(ステップS906)。このステップS
906においてアドレス範囲内に含まれていると判断さ
れた場合は、一定のアドレス差のアクセスが順に続かな
かったことを意味するため、プリフェッチリクエストは
発行しない。この場合、アドレス範囲内に含まれている
と比較器292が検出した組のアドレス差を選択器28
0で選択し、その組のヒストリアドレス221をリクエ
ストアドレスレジスタ210で更新するとともに、その
組の差分222を選択器280で選択されたアドレス差
で更新する(ステップS907)。
であると判断された場合は、単発的なアクセスか、現在
までの履歴にはない新たな領域へのアクセスであること
を意味しているので、プリフェッチリクエストは発行し
ない。この場合、テーブル制御回路293はアドレスヒ
ストリテーブル220の中のある組を使用してリクエス
トアドレスレジスタ210の値を新たに登録するととも
に、対応する差分222をゼロクリアする(ステップS
908)。ここで何れの組を使用するかは任意の組でも
よく、また、最も古くから比較器291による一致が検
出されていない組を使用するようにしてもよい。差分2
22をゼロクリアしたのは、次回ステップS906で範
囲内とされないためであり、ゼロでなくともよく、アド
レス範囲レジスタ260に設定された範囲外の値であれ
ばよい。
908の処理の後は再びステップS902の処理に戻
り、次にリクエストアドレスレジスタ210にアドレス
が保持されるとアドレス差の計算を行う。
体例について説明する。
て、ヒストリアドレス221に”5000”、差分22
2に”900”、アドレス範囲260に”20〜50
0”が保持されているものとする。この状態で、リクエ
ストアドレスレジスタ210に”3000”が保持され
ると、比較器291の出力は”不一致”、比較器292
の出力は”範囲外”となる。従って、この場合、リクエ
ストアドレス210のアドレスがヒストリアドレス22
1に登録されるとともに差分222がゼロクリアされる
(図5のステップS908)。
アドレスレジスタ210に”3100”が保持される
と、比較器291の出力は”不一致”、比較器292の
出力は”範囲内”となる。従って、この場合、リクエス
トアドレス210のアドレス”3100”によってヒス
トリアドレス221が更新されるとともに差分222に
はアドレス差”100”が設定される(図5のステップ
S907)。
アドレスレジスタ210に”3200”が保持される
と、比較器291の出力は”一致”、比較器292の出
力は”範囲内”となる。従って、この場合、加算器21
0の出力するアドレス”3300”によりプリフェッチ
リクエストが発行されるとともに、リクエストアドレス
210のアドレス”3200”によってヒストリアドレ
ス221が更新される(図5のステップS904及びS
905)。これにより、以降はリクエストアドレスが定
値”100”ずつ増加していく限り、それに先行してプ
リフェッチリクエストを発行することができる。
モリ300はコピーバック方式をとるものとして説明し
たが、ライトスルーでも実施可能である。その場合は、
プロセッサ100からのライトアクセスに対してはプリ
フェッチすることに意味が無いため、プリフェッチ制御
装置200ではプロセッサ100からのリードアクセス
のみをアクセスリクエストとして処理すればよい。
ゲットヒストリ221に保持されたアドレスとリクエス
トアドレスレジスタ210に保持されたアドレスとの差
を計算して、そのアドレス差が差分222に一致する限
りはプリフェッチリクエストを発行できる。また、差分
222の値が消失されてしまった場合でも、連続するア
ドレスがアドレス範囲レジスタ260に設置された範囲
内にあれば、差分222の値が設定し直されるため、以
降のプリフェッチリクエストが可能となる。
明する。
成は上述の実施の形態と同様であるが、キャッシュメモ
リ300が改良されている。
るキャッシュメモリ300は、キャッシュコア320へ
のアクセス待ちリクエストを管理する入力待ちキュー3
21と、キャッシュメモリコア320からバスアクセス
制御回路330へのアクセス待ちリクエストを管理する
出力待ちキュー331と、これら入力待ちキュー321
及び出力待ちキュー331における待ち状態を信号線3
22及び332により監視してプリフェッチリクエスト
のキャンセル処理を行うキャンセラー310を含んでい
る。ここで、キャッシュメモリコア320は、アドレス
アレイやデータアレイ等、キャッシュメモリとして機能
するための主要部分を指す。また、バスアクセス制御回
路330は、キャッシュメモリコア320から出力され
たデータをシステムバス500に送出するための制御を
行う。
は、入力待ちキュー321における待ちリクエスト数を
保持する入力待ち数レジスタ312と、出力待ちキュー
331における待ちリクエスト数を保持する出力待ち数
レジスタ313と、入力待ちリクエスト数として許容で
きる上限値を保持する入力待ち数上限値レジスタ314
と、出力待ちリクエスト数として許容できる上限値を保
持する出力待ち数上限値レジスタ315とを含む。ま
た、キャンセラー310は、入力待ち数レジスタ312
の値が入力待ち数上限値レジスタ314の値よりも大き
いことを検出する比較器316と、出力待ち数レジスタ
313の値が出力待ち数上限値レジスタ315の値より
も大きいことを検出する比較器317と、比較器316
及び317の何れかが検出信号を出力した場合にプリフ
ェッチ停止制御信号を発生する論理和回路318と、プ
リフェッチ停止制御信号に従ってプリフェッチリクエス
ト201を通すか否かを制御するスイッチ319を含
む。
待ち数上限値レジスタ315には予め適切な上限値が設
定されるものとする。入力待ちキュー321における待
ちリクエスト数が入力待ち数上限値レジスタ314の値
を越えるか、または出力待ちキュー331における待ち
リクエスト数が出力待ち数上限値レジスタ315の値を
越えると、論理和回路318の出力がアサートされ、ス
イッチ319を開放状態にする。これにより、プリフェ
ッチリクエスト201はキャッシュメモリコア320に
送られなくなる。
キャッシュメモリ300やシステムバス500の負荷が
高い場合にはプリフェッチリクエスト201がキャンセ
ルされるため、使用される可能性の低いデータのプリフ
ェッチを抑止し、全体としてのシステム性能を向上させ
ることができる。
よると、プロセッサのアクセスする一定アドレス間隔の
アクセスに対して、次にアクセスされるアドレスを予測
し、事前にメインメモリからキャッシュメモリにデータ
をプリフェッチしておけるため、プロセッサの実質的な
アクセス時間を短縮することができ、システム性能を向
上させることができる。一方、一定のアドレス間隔でア
クセスされない場合には不必要なプリフェッチを行わな
いため、小容量のキャッシュメモリを有効に活用するこ
とができ、システム性能を向上させることができる。
適用される情報処理システムの構成を示すブロック図で
ある。
概略を示す図である。
構成を示すブロック図である。
おけるアドレス予測の仕組みを説明するための図であ
る。
動作を示すフローチャートである。
動作を説明するための具体例である。
の変形例を示すブロック図である。
ラーの構成を示す図である。
Claims (6)
- 【請求項1】 プロセッサからキャッシュメモリへのリ
クエストアドレスの履歴及びその過去のアドレスとの差
分を保持するアドレスヒストリテーブルと、現リクエストに係るアドレス から前記アドレスヒストリ
テーブルに保持された前記リクエストアドレスの履歴を
減じて出力する減算器と、 この減算器の出力と前記現リクエストに係るアドレスと
を加算して出力する加算器と、 前記減算器の出力が前記アドレスヒストリテーブルに保
持された前記差分と等しい場合に前記加算器の出力をプ
リフェッチアドレスとしてプリフェッチリクエストを発
行するアドレス制御回路とを含み、前 記アドレス制御回路は、前記アドレスヒストリテーブ
ルの前記差分として許容できる範囲値が設定されるアド
レス範囲レジスタを含み、前記減算器の出力が前記アド
レスヒストリテーブルに保持された前記差分と等しくな
い場合に該減算器の出力が前記アドレス範囲レジスタに
設定された範囲値内であれば前記現リクエストに係るア
ドレスを前記アドレスヒストリテーブルの前記履歴に登
録するとともに前記減算器の出力を前記アドレスヒスト
リテーブルの前記差分に保持させることを特徴とするプ
リフェッチ制御装置。 - 【請求項2】 前記アドレス制御回路は、前記減算器の
出力が前記アドレス範囲レジスタに設定された範囲値内
であるか否かを検出する範囲比較器を含み、この範囲比
較器が範囲内であると検出した場合に前記減算器の出力
を前記アドレスヒストリテーブルの前記差分に保持させ
ることを特徴とする請求項1記載のプリフェッチ制御装
置。 - 【請求項3】 前記アドレス制御回路は、前記範囲比較
器が範囲外であると検出した場合に前記現リクエストに
係るアドレスを前記アドレスヒストリテーブルの前記履
歴に登録するとともに前記差分を前記アドレス範囲レジ
スタの範囲外の値に設定することを特徴とする請求項2
記載のプリフェッチ制御装置。 - 【請求項4】 プロセッサからキャッシュメモリへのリ
クエストアドレスの履歴及びその過去のアドレスとの差
分からなる組を少なくとも2組保持するアドレスヒスト
リテーブルと、現リクエストに係るアドレス から前記アドレスヒストリ
テーブルに保持された前記リクエストアドレスの履歴の
各々をそれぞれ減じて出力する複数の減算器と、 これら複数の減算器の出力の何れかを選択して出力する
選択器と、 この選択器によって選択された出力と前記現リクエスト
に係るアドレスとを加算して出力する加算器と、 前記複数の減算器の出力であって前記アドレスヒストリ
テーブルに保持された対応する前記差分と等しいものが
存在する場合には当該減算器の出力を選択するよう前記
選択器を制御するとともに前記加算器の出力をプリフェ
ッチアドレスとしてプリフェッチリクエストを発行する
アドレス制御回路とを含み、 前記アドレス制御回路は、前記アドレスヒストリテーブ
ルの前記差分として許容できる範囲値が設定されるアド
レス範囲レジスタを含み、前記複数の減算器の出力がい
ずれも前記アドレスヒストリテーブルに保持された対応
する前記差分と等しくない場合に、該複数の減算器のう
ちその出力が前記アドレス範囲レジスタに設定された範
囲値内である減算器の出力を前記アドレスヒストリテー
ブルの対応する前記差分に保持させるとともに、前記現
リクエストに係るアドレスを前記アドレスヒストリテー
ブルの対応する前記履歴に登録することを特徴とするプ
リフェッチ制御装置。 - 【請求項5】 前記アドレス制御回路は、前記複数の減
算器の各々の出力が前記アドレス範囲レジスタに設定さ
れた範囲値内であるか否かを検出する複数の範囲比較器
を含み、これら範囲比較器のいずれかが範囲内であると
検出した場合に前記減算器の出力を前記アドレスヒスト
リテーブルの対応する前記差分に保持させることを特徴
とする請求項4記載のプリフェッチ制御装置。 - 【請求項6】 前記アドレス制御回路は、前記複数の範
囲比較器がいずれも範囲外であると検出した場合に前記
現リクエストに係るアドレスを前記アドレスヒストリテ
ーブルの何れかの前記履歴に登録するとともに対応する
前記差分を前記アドレス範囲レジスタの範囲外の値に設
定することを特徴とする請求項5記載のプリフェッチ制
御装置。
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)
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)
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 | 日本電気株式会社 | メモリアクセス高速化装置 |
-
1997
- 1997-12-04 JP JP33406197A patent/JP3175675B2/ja not_active Expired - Fee Related
-
1998
- 1998-12-04 US US09/205,709 patent/US6173392B1/en not_active Expired - Fee Related
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 |