JP2002297379A - ハードウェアプリフェッチシステム - Google Patents
ハードウェアプリフェッチシステムInfo
- Publication number
- JP2002297379A JP2002297379A JP2001094532A JP2001094532A JP2002297379A JP 2002297379 A JP2002297379 A JP 2002297379A JP 2001094532 A JP2001094532 A JP 2001094532A JP 2001094532 A JP2001094532 A JP 2001094532A JP 2002297379 A JP2002297379 A JP 2002297379A
- Authority
- JP
- Japan
- Prior art keywords
- address
- data
- request
- prefetch
- load
- 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.)
- Granted
Links
- 238000010586 diagram Methods 0.000 description 8
- 238000000034 method Methods 0.000 description 3
- 230000001629 suppression Effects 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000004907 flux Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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/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
- 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
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)
Abstract
キャッシュミスしたロード命令のデータ転送遅延時間を
短縮すること。 【解決手段】プロセッサとメモリ系との間にキャッシュ
ミスしたロード命令の転送アドレスの履歴表を設け、ア
クセスアドレスが連続となるものに対して、その後続ア
ドレスに対するプリフェッチを発行して、プリフェッチ
・バッファに登録し、後続アドレスに対するキャッシュ
ミスロードリクエストが発行された場合に、プリフェッ
チ・バッファからデータを転送する。
Description
タ・システム用のメモリ・システムに関し、特にキャッ
シュミスを起こしたデータフェッチにおいて、そのメモ
リアクセスアドレスのパターンに応じてハードウェアで
プリフェッチを行い、メモリアクセス性能を向上させる
機構をもった高性能計算機用メモリシステムに関する。
ッサ処理性能に比較して、メモリ処理性能の向上率が低
いため、年々その処理性能差の乖離が激しくなってい
る。そのため、プロセッサ内にキャッシュメモリを実装
し、メモリ処理性能の遅さを隠蔽するのが普通となって
いる。しかし、キャッシュメモリはデータの時間的・空
間的局所性を利用するため、局所性の無いメモリアクセ
スパターンでは、キャッシュメモリが有効に働かないこ
とがあり、処理性能が極端に悪化する。このような現象
は、特に大規模科学技術計算に多く見られる配列データ
を連続的にアクセスし再利用性が低い場合に見られ、こ
れに対してソフトウェアがメモリからキャッシュメモリ
へと事前にデータを転送させるプリフェッチ命令を挿入
することで性能低下を防いできた。しかしながら、デー
タ配列をリストアクセスする場合や、オブジェクト指向
言語で書かれたプログラムでは、メモリアクセスパター
ンが連続アクセスであったとしてもソフトウェアがプリ
フェッチ命令を挿入できない場合が多い。一方、従来の
ハードウェアでプリフェッチを行う方式では、(1)過
去にプリフェッチをかけたデータストリームについて後
続のプリフェッチをハードウェアが生成する方式や、
(2)過去にメモリアクセスをしたアドレスとの差分が
ある一定範囲の場合にハードウェアでプリフェッチを生
成する方式が発明されている。上記(1)に関して、例
えば特開平6−28180号公報に記載される。また
(2)に関しては、特開平11−167520号公報に
記載される。しかし、(1)に関しては過去にプリフェ
ッチがかかったデータストリームのみがハードウェアで
プリフェッチを行う対象となり、ハードウェアでプリフ
ェッチを出すことを特に期待される過去にプリフェッチ
が全く出ていなかったデータストリームに対して有効に
働かない。(2)に関しては、プリフェッチをするアド
レス生成において、現在のアクセスアドレスにそのデー
タストリームのアクセスアドレスのインターバル分を加
算して生成しているが、このプリフェッチによってメイ
ンメモリからキャッシュメモリへの転送レイテンシを十
分に隠せないことがある。
けたプロセッサでは、キャッシュメモリの短いアクセス
レイテンシを想定して、命令スケジューリングを行うた
め、キャッシュミスを起こすと処理性能が大幅に低下す
る。このようなキャッシュミスを起こしたデータフェッ
チについては、そのメモリアクセスパターンが主に連続
アドレスに対するアクセスであることが多い。そこで、
本発明の一つの目的は、キャッシュミスを起こしたロー
ド命令に対し、そのデータ転送列が連続するアドレスで
ある場合にもメモリアクセスレイテンシを短縮して、キ
ャッシュミスによる性能低下を軽減することにある。本
発明のより具体的な目的は、実施例の説明にて明らかに
される。
たがうコンピュータシステムの特徴は、ハードウェアで
キャッシュミスをしたデータフェッチのメモリアクセス
アドレスの履歴を保持し、そのメモリアクセスアドレス
履歴に登録されたアドレスに連続するアドレスに対する
キャッシュミス・データフェッチが起こった場合に、ソ
フトウェアが指定するアドレス差分先アドレスに対する
データフェッチ要求をハードウェアで作成し、後続のキ
ャッシュミス・データフェッチの発生に先だってメイン
メモリからデータフェッチを行うリクエスト生成機構
と、リクエスト生成機構による発行されたデータフェッ
チによってメインメモリから転送されたデータを格納す
るバッファを有する点にある。これにより、後続のキャ
ッシュミス・データフェッチに対するデータ転送遅延を
短縮することができる。
は、図1の通りである。図1において、プロセッサ内で
ロード命令やストア命令を処理するロード/ストア・ユ
ニット25から、キャッシュメモリにヒットしなかった
ロード命令のリクエスト1(キャッシュミスロードリク
エストが発行されると、このリクエストに含まれる転送
アドレス2はロード履歴表(LDH表)3に登録され
る。ただし、同じアドレスがすでにロード履歴表3に登
録されている場合にはアドレス登録をする必要はない。
ロード履歴表3は、m個(mは1以上の整数)のアドレ
スを保持するmエントリの表であり、登録されているア
ドレスは最近のm個のキャッシュミスロードリクエスト
のアドレスである。ロード履歴表3に登録するアドレス
に、プリフェッチ命令によるリクエストのアドレスを含
めてもよい。また、ロード履歴表3のエントリを新しい
アドレス値で上書きする場合に、そのエントリの選択に
おいては、最もアドレス登録が古いエントリもしくは、
最もアドレスヒットが最近起こっていないエントリを選
択する。キャッシュミスロードリクエスト1の転送アド
レス6は比較器群7にて、ロード履歴表3に登録されて
いるmエントリのアドレス値および、そのアドレス値に
+Lバイト(Lは正の実数)加算したアドレス値、−L
バイト加算したアドレス値の3つのアドレス値とそれぞ
れ比較される。この比較結果において、キャッシュミス
ロードリクエスト1の転送アドレス6がロード履歴表3
に登録されているmエントリのアドレス値の1つと一致
した場合には、信号線9によりそのキャッシュミスロー
ドリクエスト1の転送アドレス6をロード履歴表3に登
録するのを抑止する。つまり、ロード履歴表3にすでに
キャッシュミスロードリクエスト1の転送アドレス6が
登録されている場合を検出して同じアドレスをロード履
歴表3に登録しないようにする。ただし、この登録抑止
は必須事項ではなく、アドレス更新抑止信号線9は無く
てもよい。キャッシュミスロードリクエスト1の転送ア
ドレス8は、プリフェッチ・バッファ(PFB)23に
登録されているnエントリ(nは1以上の整数)のアド
レス値10と比較器11にて比較される。この比較にお
いて、1つ以上のエントリに登録されたアドレス値10
がキャッシュミスロードリクエスト1の転送アドレス8
と一致した場合には、ヒット信号線12によってプリフ
ェッチ・バッファ(23にヒットしたエントリの番号が
伝達される。プリフェッチ・バッファ23はヒットした
エントリのデータをヒット戻りデータ線24を使ってロ
ード/ストア・ユニット25に転送する。キャッシュミ
スロードリクエスト1はメモリ系20へのリクエスト発
行器26においてヒット信号線12がヒットを示してい
る場合には、リクエストの発行が無効化され、ヒット信
号線12がヒットしていないことを示している場合にの
みリクエストの発行を行うことで、プリフェッチ・バッ
ファ23にヒットした場合に、キャッシュミスロードリ
クエスト1はメモリ系20まで行かずに、プリフェッチ
・バッファ23からデータがロード/ストア・ユニット
25に転送され、データ転送遅延時間が短縮される。プ
リフェッチバッファ23は、アドレス値とLバイトのデ
ータ値を組にして1エントリを構成し、これをnエント
リもったものである。プリフェッチ・バッファ23のエ
ントリを新しいアドレス値で上書きする場合に、そのエ
ントリの選択においては、最もアドレス登録が古いエン
トリもしくは、最もアドレスヒットが最近起こっていな
いエントリを選択する。キャッシュミスロードリクエス
ト1の転送アドレス14から、プリフェッチ・バッファ
23に登録を行うLバイトのデータを転送するフェッチ
リクエスト(ハードウェア・プリフェッチ・リクエス
ト)19が作成される。このリクエストが要求をする転
送アドレスは、キャッシュミスロードリクエスト1の転
送アドレス14と同じアドレス、キャッシュミスロード
リクエスト1の転送アドレス14にN(Nは1以上の整
数)×Lバイトを加算15したアドレス、およびキャッ
シュミスロードリクエスト1の転送アドレス14にN×
Lバイトを減算したアドレスの3つを用意し、選択器1
8で3つの中から最大1つを選択する。先読み幅レジス
タ14にはこのN×Lバイトの値が設定されている。加
算および減算は加算器15、減算器16で実行される。
また、選択は、比較器群7における比較結果信号線束1
3によって行われる。比較器群7において、ロード履歴
表3に登録されたmエントリのうちの1つのアドレスと
の一致を検出した場合、選択器18では、キャッシュミ
スロードリクエスト1の転送アドレス14と同じアドレ
スのハードウェア・プリフェッチ・リクエスト19が選
択される。比較器群7において、ロード履歴表3に登録
されたmエントリのアドレスに+Lバイトを加算したア
ドレスのうちの1つとの一致を検出した場合、選択器1
8では、キャッシュミスロードリクエスト1の転送アド
レス14にN×Lバイトを加算したアドレスのハードウ
ェア・プリフェッチ・リクエスト19が選択される。比
較器群7において、ロード履歴表(3)に登録されたm
エントリのアドレスに−Lバイトを加算したアドレスの
うちの1つとの一致を検出した場合、選択器18では、
キャッシュミスロードリクエスト1の転送アドレス14
にN×Lバイトを減算したアドレスのハードウェア・プ
リフェッチ・リクエスト19が選択される。また、ハー
ドウェア・プリフェッチ・リクエスト19が発行された
場合、そのリクエストによるメモリ系20からの戻りデ
ータを格納するエントリをプリフェッチ・バッファ23
に確保するため、ハードウェア・プリフェッチ・リクエ
スト発行信号28によりプリフェッチ・バッファ23に
伝達する。キャッシュミスロードリクエスト27および
ハードウェア・プリフェッチ・リクエスト19によりメ
モリ系20はロード/ストア・ユニット25もしくはプ
リフェッチ・バッファ23にデータを転送する。キャッ
シュミスロードリクエスト27に対しては、プリフェッ
チ・バッファ23を経由せずに直接ロード/ストア・ユ
ニット25へのデータ転送線21を使ってデータを転送
する。一方、ハードウェア・プリフェッチ・リクエスト
19に対しては、プリフェッチ・バッファ23へのデー
タ転送線22を使ってデータを転送し、プリフェッチ・
バッファ23の格納エントリにデータを登録する。ハー
ドウェア・プリフェッチを発行するアドレスの先読み幅
は、加減算15,減算器16の入力である先読み幅レジ
スタ17で決定される。先読み幅レジスタ17は、プリ
フェッチ・バッファ23のデータサイズであるLバイト
のN倍に設定されている。ここで、Nはソフトウェアで
設定する1以上の整数である。図2はソフトウェアによ
るNの設定方法の例を示したものである。図2で上から
下方向に命令が処理されているとし、[1]、[3],
[5],[7],[9]のロード命令はレジスタr1に
設定された定数値にそれぞれ0、L、2L、3L、4L
バイトだけ加算したアドレスに対するデータフェッチを
行う。この4つのロード命令はキャッシュミスを起こ
し、図2の太矢印で示しただけメモリからのデータ転送
遅延時間がかかるとする。ここで、ソフトウェアが先読
み幅レジスタ17にN=2を設定していたとすると、
[3]のキャッシュミスロード命令で、[7]のロード
命令のロードアドレスに対するハードウェア・プリフェ
ッチ・リクエストが発行される。すると、実際の[7]
のロード命令実行時までにメモリからのデータ転送が終
わっているため、[7]のロード命令はプリフェッチ・
バッファ(23)からデータ転送され、[8]の加算命
令がすぐに実行される。ソフトウェアが先読み幅レジス
タ(17)にN=1を設定していたとすると、[3]の
キャッシュミスロード命令で、[5]のロード命令のロ
ードアドレスに対するハードウェア・プリフェッチ・リ
クエストが発行されることになり、実際の[5]のロー
ド命令実行時までにメモリからのデータ転送が終わって
いないため、[5]のロード命令のデータ転送遅延時間
はN=2のときの[7]のロード命令の遅延時間の短縮
ほどは縮まらない。一方、先読み幅レジスタ17にN=
3が設定されていたとすると、[3]のキャッシュミス
ロード命令で[9]のロード命令のロードアドレスに対
するハードウェア・プリフェッチ・リクエストが発行さ
れることになり、実際の[9]のロード命令実行時まで
にメモリからのデータ転送が終わっているが、N=2の
場合に比べてプリフェッチ・バッファ(23)の占有時
間が長くなる。よってソフトウェアではN=2を設定す
るの。このように、ソフトウェアでは、命令スケジュー
リングによるロード命令の実行間隔および転送アドレス
間隔、そしてメモリからのデータ転送に要する遅延時間
の関係をもとにしてハードウェア・プリフェッチによる
データ転送が実際のロード命令実行までに完了するよう
に先読み幅レジスタ17中のNの値を設定する。図3
は、図2で示したプログラムコードに対して、ロード履
歴表3とプリフェッチ・バッファ23の状態をN=2と
して時間軸にそって模式的に示したものである。[1]
のロード命令でアドレスr1+0がロード履歴表3に登
録される。次に、[3]のロード命令でアドレスr1+
Lがロード履歴表3に登録されると共に、[1]のロー
ド命令で登録されたアドレスr1+0に+Lを加算した
アドレスとのアドレス比較結果が一致となるので、r1
+Lに2×Lを加えたr1+3Lに対するハードウェア
・プリフェッチを発行する。r1+3Lに対するハード
ウェア・プリフェッチにより、プリフェッチ・バッファ
(23)にアドレスr1+3Lが登録されると共に、メ
モリからのデータ転送を待つ。図3では、メモリ遅延時
間の後、命令[5]と[7]の処理の間でデータが到着
し、プリフェッチ・バッファ23中に確保されたエント
リにデータが格納される。同様にして、[5]のロード
命令でアドレスr1+2Lがロード履歴表3に登録され
ると共に、[3]のロード命令で登録されたアドレスr
1+Lに+Lを加算したアドレスとのアドレス比較結果
が一致となるので,r1+2Lに2×Lを加えたr1+
4Lに対するハードウェア・プリフェッチを発行する。
[7]のロード命令の処理も同様にして、r1+3Lの
アドレスをアドレス履歴表3に格納し、r1+5Lに対
するハードウェア・プリフェッチが発行されるが、さら
にアドレスr1+3Lのデータがプリフェッチ・バッフ
ァ23中に存在するため、r1+3Lのデータがプリフ
ェッチ・バッファ23からヒットリプライされる。
[9]のロード命令の処理も[7]のロード命令と同様
に行われ、以下これを繰り返す。本発明の別の実施例を
図4に示す。図4では図1に比べて主に3点の相違があ
る。まず1点目は、ロード履歴表3に登録されているア
ドレスとキャッシュミスロードリクエスト1の転送アド
レス6との比較において、ロード履歴表3に登録されて
いるアドレスそのものの他に、+2Lバイト加算したア
ドレスおよび−2Lバイト加算したアドレスとキャッシ
ュミスロードリクエスト1の転送アドレス6とを比較す
る点である。2点目は、先読み幅レジスタ17ととも
に、もう一つの先読み幅レジスタ29が用意される点で
ある。このもう一つの先読み幅レジスタ29には、(N
+1)×Lバイトの値が設定される。プリフェッチ・バ
ッファ23へのLバイト・フェッチリクエストを2つの
先読み幅レジスタ17,29の値の分だけ加減算したア
ドレスに設定する。ロード履歴表3に登録されているア
ドレスに+2Lバイト加算したアドレスとキャッシュミ
スロードリクエスト1の転送アドレス6との比較結果が
一致した場合には,加算器15,30により、キャッシ
ュミスロードリクエスト1の転送アドレス14にN×L
バイトと(N+1)×Lバイト加算したアドレスへのハ
ードウェア・プリフェッチ・リクエスト19,34が発
行され、2本のハードウェア・プリフェッチ・リクエス
ト発行信号28,32によりプリフェッチ・バッファ2
3に2つのデータが登録されるエントリが確保される。
ただし、キャッシュミスロードリクエスト1の転送アド
レス8がプリフェッチ・バッファ23にヒットした場合
ヒット信号線35により選択器18における選択が先読
み幅レジスタ17のアドレス値を加減算したアドレスへ
のリクエストを無効化する。3点目は、メモリ系20か
らハードウェア・プリフェッチに対するデータ転送を行
う際に、データ転送線22で送信されるデータがロード
/ストア・ユニット25へ延長されたデータ転送線33
によってプロセッサに転送され、プロセッサ内のキャッ
シュメモリにも登録される点である。この実施例の上記
の3点は、その内の任意の1点もしくは2点もしくは3
点すべてを含んだ実施例も可能であり、さらに、上記で
1点目として説明した+2Lバイトの加算および−2L
バイトの加算については、+MLバイト(ただしMは1
以上の整数)の加算および−MLバイトの加算とした実
施例も含まれる。また、同様にして2点目として説明し
た先読み幅レジスタの本数は二本以上とする実施例も含
まれ、M本の先読み幅レジスタをもつ場合には、i番目
(ただしiは1以上M以下の整数)の先読み幅レジスタ
に設定されるアドレス値は、(N−1+i)×Lバイト
である。これにあわせて、加算器15,30と減算器1
6,31の個数もM個となり、ハードウェア・プリフェ
ッチ・リクエスト19,34もM個発行され、ハードウ
ェア・プリフェッチ・リクエスト発行信号線28,32
もM本となる。ただし、ヒット信号線(35)がヒット
を示した場合には,M個のリクエストの内M番目の先読
み幅レジスタの値を加減算したリクエスト以外が無効化
される。図4に示した実施例で図2で示したプログラム
コードに対して、ロード履歴表(3)とプリフェッチ・
バッファ(23)の状態をN=2として時間軸にそって
模式的に示したものが図5である。
ミスを起こしたロード命令に対し、そのデータ転送列が
連続するアドレスの場合に、そのデータ転送を高速化す
ることができる。すなわち本発明では、キャッシュミス
を起こしたロード命令の転送要求アドレス履歴をとるこ
とで、連続するアドレスに対するキャッシュミスロード
を検出し、後続のアドレスのデータに対するプリフェッ
チを発行することができる。また、プリフェッチを発行
するアドレスの先読み幅をソフトウェアで設定できるた
め、プリフェッチデータの転送タイミングをデータの利
用タイミングに合わせることが可能である。本発明で
は、ハードウェアが発行したプリフェッチによりメモリ
系から転送されたデータは、専用のプリフェッチバッフ
ァに格納することが可能であり、これによってプロセッ
サがもつキャッシュメモリのデータを追い出すことがな
く、キャッシュミスロード命令のデータ転送遅延時間を
短縮することが可能である。
ク図である。
幅の設定例を示す概念図である。
作を示す概念図である。
ック図である。
作を示す概念図である。
転送アドレス信号線 3:ロード履歴表 4,5,15,30:加算器 7,11:比較器 9:アドレス更新抑止信号線 10:プリフェッチ・バッファ・アドレス信号線 12,35:プリフェッチ・バッファ・ヒット信号線 13:ロード履歴表ヒット信号線 16,31:減算器 17,29:先読み幅レジスタ 18:選択器 19,34:ハードウェア・プリフェッチ・リクエスト
発行線 20:メモリ系 21:キャッシュミスロード・データ転送線 22,33:ハードウェア・プリフェッチ・データ転送
線 23:プリフェッチ・バッファ 24:プリフェッチ・バッファ・データ転送線 25:ロード/ストア・ユニット 26:キャッシュミスロードリクエスト発行器 28,32:ハードウェア・プリフェッチ・リクエスト
発行信号線。
Claims (4)
- 【請求項1】プロセッサとキャッシュメモリおよびメイ
ンメモリを備えるコンピュータシステムにおけるプリフ
ェッチシステムであって、前記キャッシュメモリと前記
メインメモリの間にあり、前記プロセッサから発行され
たデータ・ロード命令の要求するデータが前記キャッシ
ュメモリになく、前記メインメモリからのデータ転送要
求となった場合に、その転送要求先アドレスを少なくと
も1つ以上記録しておくバッファと、前記バッファに記
録されたアドレス、およびバッファに記録されたアドレ
スに定数を加減算したものと転送要求先アドレスとをそ
れぞれ比較する比較手段と、前記比較手段の比較結果が
真であった場合に、転送要求先アドレスにソフトウェア
が設定した変数を加減算した値を転送要求先アドレスと
してもつデータ転送要求を生成してメインメモリに通知
する転送要求手段とを有することを特徴とするプリフェ
ッチシステム。 - 【請求項2】前記転送要求手段から前記メインメモリに
通知するデータ転送要求は転送要求するデータのサイズ
を含むことを特徴とする請求項1記載のプリフェッチシ
ステム。 - 【請求項3】、転送要求先アドレスに加減算する変数を
ソフトウェアで設定する手段をもつことを特徴とする請
求項1に記載のプリフェッチシステム。 - 【請求項4】プロセッサとキャッシュメモリおよびメイ
ンメモリを備えるコンピュータシステムにおけるプリフ
ェッチシステムであっ、前記キャッシュメモリと前記メ
インメモリの間にあり、1つもしくは複数のデータと、
該データのアドレスを格納するタグとを対にして格納す
るバッファと、前記プロセッサから発行されたデータ転
送要求によって前記バッファにのみデータ転送行うリク
エストを生成するリクエスト生成手段とを備え、前記メ
インメモリには前記リクエストを区別して要求アドレス
のデータを転送する機構を備えるとともに、前記メイン
メモリから転送されたデータの中から前記リクエスト生
成手段により生成されたリクエストにより転送されたデ
ータを区別して前記バッファに登録する手段を備えるこ
とを特徴とするプリフェッチシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001094532A JP3969009B2 (ja) | 2001-03-29 | 2001-03-29 | ハードウェアプリフェッチシステム |
US09/907,608 US6636945B2 (en) | 2001-03-29 | 2001-07-19 | Hardware prefetch system based on transfer request address of cache miss load requests |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001094532A JP3969009B2 (ja) | 2001-03-29 | 2001-03-29 | ハードウェアプリフェッチシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002297379A true JP2002297379A (ja) | 2002-10-11 |
JP3969009B2 JP3969009B2 (ja) | 2007-08-29 |
Family
ID=18948711
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001094532A Expired - Fee Related JP3969009B2 (ja) | 2001-03-29 | 2001-03-29 | ハードウェアプリフェッチシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US6636945B2 (ja) |
JP (1) | JP3969009B2 (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008090411A (ja) * | 2006-09-29 | 2008-04-17 | Fujitsu Ltd | 情報処理装置、命令制御機構及び命令制御方法 |
US7500061B2 (en) | 2004-06-30 | 2009-03-03 | Kabushiki Kaisha Toshiba | Preload controller, preload control method for controlling preload of data by processor to temporary memory, and program |
JP2009540429A (ja) * | 2006-06-07 | 2009-11-19 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | データをプリフェッチする装置および方法 |
US7865666B2 (en) | 2005-08-26 | 2011-01-04 | Samsung Electronics Co., Ltd. | Cache memory systems and methods thereof |
JP2015219550A (ja) * | 2014-05-14 | 2015-12-07 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
US9483244B2 (en) | 2014-05-15 | 2016-11-01 | Fujitsu Limited | Compiling method and compiling device |
JP2018055683A (ja) * | 2016-09-26 | 2018-04-05 | 三星電子株式会社Samsung Electronics Co.,Ltd. | バイトアドレス可能なフラッシュ基盤メモリモジュール、nvdimm型モジュール、及びそのデータ格納方法 |
JP2020101983A (ja) * | 2018-12-21 | 2020-07-02 | 富士通株式会社 | 演算処理装置、情報処理装置及び演算処理装置の制御方法 |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4341186B2 (ja) | 2001-01-22 | 2009-10-07 | 株式会社日立製作所 | メモリシステム |
US8171266B2 (en) * | 2001-08-02 | 2012-05-01 | Hewlett-Packard Development Company, L.P. | Look-ahead load pre-fetch in a processor |
US7191430B2 (en) * | 2001-09-24 | 2007-03-13 | Hewlett-Packard Development Company, L.P. | Providing instruction execution hints to a processor using break instructions |
US6895474B2 (en) * | 2002-04-29 | 2005-05-17 | Micron Technology, Inc. | Synchronous DRAM with selectable internal prefetch size |
US7167954B2 (en) * | 2002-09-09 | 2007-01-23 | Broadcom Corporation | System and method for caching |
US20040123081A1 (en) * | 2002-12-20 | 2004-06-24 | Allan Knies | Mechanism to increase performance of control speculation |
US6959374B2 (en) * | 2003-01-29 | 2005-10-25 | Sun Microsystems, Inc. | System including a memory controller configured to perform pre-fetch operations including dynamic pre-fetch control |
US20040154010A1 (en) * | 2003-01-31 | 2004-08-05 | Pedro Marcuello | Control-quasi-independent-points guided speculative multithreading |
US7055016B2 (en) | 2003-04-30 | 2006-05-30 | Sun Microsystems, Inc. | Computer system including a memory controller configured to perform pre-fetch operations |
US7111126B2 (en) * | 2003-09-24 | 2006-09-19 | Arm Limited | Apparatus and method for loading data values |
EP1729220A4 (en) * | 2004-03-24 | 2008-12-17 | Panasonic Corp | ANTEMEMOIRE AND METHOD OF CONTROLLING THE SAME |
US7238218B2 (en) * | 2004-04-06 | 2007-07-03 | International Business Machines Corporation | Memory prefetch method and system |
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 |
US7383418B2 (en) * | 2004-09-01 | 2008-06-03 | Intel Corporation | Method and apparatus for prefetching data to a lower level cache memory |
US20070180193A1 (en) * | 2006-01-30 | 2007-08-02 | International Business Machines Corporation | History based line install |
US7493451B2 (en) | 2006-06-15 | 2009-02-17 | P.A. Semi, Inc. | Prefetch unit |
US9798528B2 (en) * | 2006-09-13 | 2017-10-24 | International Business Machines Corporation | Software solution for cooperative memory-side and processor-side data prefetching |
US9311085B2 (en) * | 2007-12-30 | 2016-04-12 | Intel Corporation | Compiler assisted low power and high performance load handling based on load types |
JP5417879B2 (ja) * | 2009-02-17 | 2014-02-19 | 富士通セミコンダクター株式会社 | キャッシュ装置 |
CN102163144A (zh) * | 2011-05-05 | 2011-08-24 | 浙江大学 | 嵌入式处理器的硬件数据预取方法 |
US9424046B2 (en) | 2012-10-11 | 2016-08-23 | Soft Machines Inc. | Systems and methods for load canceling in a processor that is connected to an external interconnect fabric |
US9348754B2 (en) | 2012-10-11 | 2016-05-24 | Soft Machines Inc. | Systems and methods for implementing weak stream software data and instruction prefetching using a hardware data prefetcher |
US9454486B2 (en) * | 2013-07-12 | 2016-09-27 | Apple Inc. | Cache pre-fetch merge in pending request buffer |
CN104156321B (zh) * | 2014-07-23 | 2017-06-09 | 华为技术有限公司 | 一种数据预取的方法以及装置 |
US20160283390A1 (en) * | 2015-03-27 | 2016-09-29 | Intel Corporation | Storage cache performance by using compressibility of the data as a criteria for cache insertion |
US9934148B2 (en) * | 2015-06-23 | 2018-04-03 | Advanced Micro Devices, Inc. | Memory module with embedded access metadata |
US10467141B1 (en) * | 2018-06-18 | 2019-11-05 | International Business Machines Corporation | Process data caching through iterative feedback |
US10671394B2 (en) | 2018-10-31 | 2020-06-02 | International Business Machines Corporation | Prefetch stream allocation for multithreading systems |
JP2022063148A (ja) * | 2020-10-09 | 2022-04-21 | 株式会社日立製作所 | 計算機システム及び計算機システム運用管理方法 |
US11314645B1 (en) * | 2020-12-16 | 2022-04-26 | Arm Limited | Cache stash relay |
CN115061949A (zh) * | 2022-07-15 | 2022-09-16 | 安谋科技(中国)有限公司 | 数据预取方法、处理器和电子设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE469402B (sv) * | 1991-05-02 | 1993-06-28 | Swedish Inst Of Computer Scien | Foerfarande foer att haemta data till ett cache-minne |
JP2881049B2 (ja) | 1991-07-30 | 1999-04-12 | 株式会社日立製作所 | プリフェッチバッファ |
JPH08263424A (ja) * | 1995-03-20 | 1996-10-11 | Fujitsu Ltd | コンピュータ装置 |
US6085291A (en) * | 1995-11-06 | 2000-07-04 | International Business Machines Corporation | System and method for selectively controlling fetching and prefetching of data to a processor |
JP3175675B2 (ja) | 1997-12-04 | 2001-06-11 | 日本電気株式会社 | プリフェッチ制御装置 |
US6253289B1 (en) * | 1998-05-29 | 2001-06-26 | Compaq Computer Corporation | Maximizing sequential read streams while minimizing the impact on cache and other applications |
TW440761B (en) * | 1999-05-06 | 2001-06-16 | Ind Tech Res Inst | The cache device and method |
-
2001
- 2001-03-29 JP JP2001094532A patent/JP3969009B2/ja not_active Expired - Fee Related
- 2001-07-19 US US09/907,608 patent/US6636945B2/en not_active Expired - Lifetime
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7500061B2 (en) | 2004-06-30 | 2009-03-03 | Kabushiki Kaisha Toshiba | Preload controller, preload control method for controlling preload of data by processor to temporary memory, and program |
US7865666B2 (en) | 2005-08-26 | 2011-01-04 | Samsung Electronics Co., Ltd. | Cache memory systems and methods thereof |
JP2009540429A (ja) * | 2006-06-07 | 2009-11-19 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | データをプリフェッチする装置および方法 |
JP2008090411A (ja) * | 2006-09-29 | 2008-04-17 | Fujitsu Ltd | 情報処理装置、命令制御機構及び命令制御方法 |
JP2015219550A (ja) * | 2014-05-14 | 2015-12-07 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
US9830268B2 (en) | 2014-05-14 | 2017-11-28 | Fujitsu Limited | Arithmetic processing device for disabling an unnecessary prefetch command and control method of arithmetic processing device for disabling an unnecessary prefetch command |
US9483244B2 (en) | 2014-05-15 | 2016-11-01 | Fujitsu Limited | Compiling method and compiling device |
JP2018055683A (ja) * | 2016-09-26 | 2018-04-05 | 三星電子株式会社Samsung Electronics Co.,Ltd. | バイトアドレス可能なフラッシュ基盤メモリモジュール、nvdimm型モジュール、及びそのデータ格納方法 |
JP2020101983A (ja) * | 2018-12-21 | 2020-07-02 | 富士通株式会社 | 演算処理装置、情報処理装置及び演算処理装置の制御方法 |
JP7140972B2 (ja) | 2018-12-21 | 2022-09-22 | 富士通株式会社 | 演算処理装置、情報処理装置及び演算処理装置の制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US6636945B2 (en) | 2003-10-21 |
JP3969009B2 (ja) | 2007-08-29 |
US20020144062A1 (en) | 2002-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3969009B2 (ja) | ハードウェアプリフェッチシステム | |
US5490261A (en) | Interlock for controlling processor ownership of pipelined data for a store in cache | |
EP0097790B1 (en) | Apparatus for controlling storage access in a multilevel storage system | |
JP3549079B2 (ja) | キャッシュ制御の命令プリフェッチ方法 | |
US5809566A (en) | Automatic cache prefetch timing with dynamic trigger migration | |
US5649144A (en) | Apparatus, systems and methods for improving data cache hit rates | |
EP1029280B1 (en) | Cache memory operation | |
JPH06318177A (ja) | キャッシュ・ミス・ペナルティを減少させる方法、装置及びコンピュータ・システム | |
JPH09128293A (ja) | 情報処理装置 | |
JPH0628180A (ja) | プリフェッチバッファ | |
JP3254019B2 (ja) | データ先読み制御装置 | |
JPH09160827A (ja) | コールド・キャッシュ命令のプリフェッチ | |
US20080307169A1 (en) | Method, Apparatus, System and Program Product Supporting Improved Access Latency for a Sectored Directory | |
US11645209B2 (en) | Method of cache prefetching that increases the hit rate of a next faster cache | |
EP1942416B1 (en) | Central processing unit, information processor and central processing method | |
US6772321B2 (en) | Method and apparatus for using an assist processor and value speculation to facilitate prefetching for a primary processor | |
JP2702414B2 (ja) | 情報処理システム及びその動作方法 | |
JP3481425B2 (ja) | キャッシュ装置 | |
JP5971036B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
EP3332329B1 (en) | Device and method for prefetching content to a cache memory | |
JPH0477344B2 (ja) | ||
JPH0683621A (ja) | フェッチ方式 | |
JPH0675853A (ja) | キャッシュメモリ装置 | |
JP3729832B2 (ja) | キャッシュメモリ装置 | |
JP2001154845A (ja) | キャッシュミスした後のメモリバスアクセス制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060320 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060418 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061116 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061128 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070129 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070515 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070528 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100615 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100615 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110615 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110615 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120615 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120615 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130615 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |