JP2001166989A - プリフェッチ機構を有するメモリシステム及びその動作方法 - Google Patents
プリフェッチ機構を有するメモリシステム及びその動作方法Info
- Publication number
- JP2001166989A JP2001166989A JP34702199A JP34702199A JP2001166989A JP 2001166989 A JP2001166989 A JP 2001166989A JP 34702199 A JP34702199 A JP 34702199A JP 34702199 A JP34702199 A JP 34702199A JP 2001166989 A JP2001166989 A JP 2001166989A
- Authority
- JP
- Japan
- Prior art keywords
- prefetch
- processor
- memory
- information
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- 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/10—Providing a specific technical effect
- G06F2212/1048—Scalability
-
- 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/6022—Using a prefetch buffer or dedicated prefetch cache
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Devices For Executing Special Programs (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【課題】 わずかなハードウエアの増加により、しかも
プログラムサイズの増大を抑えて適切なデータ対象物の
プリフェッチを実現することができるプリフェッチ機構
を提供する。 【解決手段】 大きなデータ対象物を含むアプリケーシ
ョンを高速化するため、ハードウエア技術とソフトウエ
ア技術とを組み合わせたプリフェッチ機構。コンパイラ
は、データ対象物の詳細をハードウエアに示すことによ
りプリフェッチ動作を始動する。ハードウエアはそれら
の値、具体的にはデータ対象物の開始アドレス、エレメ
ントサイズ、ストライド、始動間隔、エレメント数を格
納する。一旦ソフトウエアにより始動されると、ハード
ウエアは、ハードウエア対象物のプリフェッチバッファ
へのプリフェッチを、対象物全てが終えるまで制御す
る。同時に、アプリケーションは第2レベルキャッシュ
及びリフェッチバッファを並列にアクセスすることによ
り既に利用可能なデータをフェッチする。
プログラムサイズの増大を抑えて適切なデータ対象物の
プリフェッチを実現することができるプリフェッチ機構
を提供する。 【解決手段】 大きなデータ対象物を含むアプリケーシ
ョンを高速化するため、ハードウエア技術とソフトウエ
ア技術とを組み合わせたプリフェッチ機構。コンパイラ
は、データ対象物の詳細をハードウエアに示すことによ
りプリフェッチ動作を始動する。ハードウエアはそれら
の値、具体的にはデータ対象物の開始アドレス、エレメ
ントサイズ、ストライド、始動間隔、エレメント数を格
納する。一旦ソフトウエアにより始動されると、ハード
ウエアは、ハードウエア対象物のプリフェッチバッファ
へのプリフェッチを、対象物全てが終えるまで制御す
る。同時に、アプリケーションは第2レベルキャッシュ
及びリフェッチバッファを並列にアクセスすることによ
り既に利用可能なデータをフェッチする。
Description
【0001】
【発明の属する技術分野】本発明はノイマン方計算機シ
ステムのメモリシステム階層内でのデータ対象物をプリ
フェッチすることに係り、特にプリフェッチシーケンス
をソフトウエアから開始し、実際のプリフェッチをハー
ドウエアで制御することによりメモリレイテンシイを隠
蔽したメモリシステムに関する。
ステムのメモリシステム階層内でのデータ対象物をプリ
フェッチすることに係り、特にプリフェッチシーケンス
をソフトウエアから開始し、実際のプリフェッチをハー
ドウエアで制御することによりメモリレイテンシイを隠
蔽したメモリシステムに関する。
【0002】
【従来の技術】プロセッサ速度とメモリ速度との差の増
大は、主メモリに対するプロセッサの待ち時間を隠蔽す
る種々の技術の発展を促進させた。ハードウエアでメモ
リレイテンシイを隠蔽する技術には、キャシュ階層、無
閉塞ロード/ストア命令、プリフェッチバッファを含
む。またすメモリレイテンシイを隠蔽するソフトウエア
技術には、ソフトウエアパイプライン処理、及びソフト
ウエアプリフェッチ/事前ロードがある。
大は、主メモリに対するプロセッサの待ち時間を隠蔽す
る種々の技術の発展を促進させた。ハードウエアでメモ
リレイテンシイを隠蔽する技術には、キャシュ階層、無
閉塞ロード/ストア命令、プリフェッチバッファを含
む。またすメモリレイテンシイを隠蔽するソフトウエア
技術には、ソフトウエアパイプライン処理、及びソフト
ウエアプリフェッチ/事前ロードがある。
【0003】ノイマン型計算機システムでのプリフェッ
チを実行するには、種々の問題の解決が必要である。こ
れら問題は2つのフェーズに分けられる。第1に、どの
データをプリフェッチすべきか、プリフェッチをいつ行
うべきかを決定しなければならない。第2にメモリシス
テムの負荷を最小にしながらタイミングの良いプロセッ
サへのデータ配送を確保するために、特定サイズの多数
エレメントからなるデータ対象物が正確な速度でプリフ
ェッチされなければならない。
チを実行するには、種々の問題の解決が必要である。こ
れら問題は2つのフェーズに分けられる。第1に、どの
データをプリフェッチすべきか、プリフェッチをいつ行
うべきかを決定しなければならない。第2にメモリシス
テムの負荷を最小にしながらタイミングの良いプロセッ
サへのデータ配送を確保するために、特定サイズの多数
エレメントからなるデータ対象物が正確な速度でプリフ
ェッチされなければならない。
【0004】現在の技術では、主メモリアクセスの待ち
時間の幾分かを隠蔽するようの管理しているが、プロセ
ッサ速度とメモリ速度の差の増大に対応して、プリフェ
ッチ性能の改善が必要となる。ハードウエアプリフェッ
チは、どのメモリアドレスがプリフェッチされるかを示
す比較的簡単なアルゴリズムを実行時間内にダイナミッ
クに決定する。ソフトウエアプリフェッチではプログラ
ムのメモリ基準についてのコンパイラによるループ解析
および手順間解析を含んだより複雑なアルゴリズムが採
用されている。
時間の幾分かを隠蔽するようの管理しているが、プロセ
ッサ速度とメモリ速度の差の増大に対応して、プリフェ
ッチ性能の改善が必要となる。ハードウエアプリフェッ
チは、どのメモリアドレスがプリフェッチされるかを示
す比較的簡単なアルゴリズムを実行時間内にダイナミッ
クに決定する。ソフトウエアプリフェッチではプログラ
ムのメモリ基準についてのコンパイラによるループ解析
および手順間解析を含んだより複雑なアルゴリズムが採
用されている。
【0005】一般的ハードウエアプリフェッチ機構は、
メモリ階層にプリフェッチバッファを追加した構成をと
る。更に、プリフェッチユニットはメモリアドレスのト
ラックを維持する。ハードウエアが次のアクセスを予測
できる通常のメモリアクセスの場合、プリフェッチユニ
ットは予測された場所でプリフェッチし、プリフェッチ
したデータ項目をプリフェッチバッファに格納する。
メモリ階層にプリフェッチバッファを追加した構成をと
る。更に、プリフェッチユニットはメモリアドレスのト
ラックを維持する。ハードウエアが次のアクセスを予測
できる通常のメモリアクセスの場合、プリフェッチユニ
ットは予測された場所でプリフェッチし、プリフェッチ
したデータ項目をプリフェッチバッファに格納する。
【0006】ストリームバッファと呼ばれるハードウエ
アプリフェッチ機構は、第17年次ISCA論文集(1
990年)、第364〜373頁に掲載の"Improving D
irect-Mapped Cache Performance by the Addition of
Small Fully-Associative Cache and Prefetch Buffer
s"と題する文献に開示される。 最新の濾波型ストリー
ムバッファについては、米国特許第5761706号に
記載される。図4は従来のハードウエアプリフェッチユ
ニットの構造を示す。参照予測テーブル401は分岐予
測テーブル405と並行して動作し、ストライドに遭遇
するとORL(アウトスタンディング・リクエスト・リ
スト)410を介してプリフェッチが開始される。
アプリフェッチ機構は、第17年次ISCA論文集(1
990年)、第364〜373頁に掲載の"Improving D
irect-Mapped Cache Performance by the Addition of
Small Fully-Associative Cache and Prefetch Buffer
s"と題する文献に開示される。 最新の濾波型ストリー
ムバッファについては、米国特許第5761706号に
記載される。図4は従来のハードウエアプリフェッチユ
ニットの構造を示す。参照予測テーブル401は分岐予
測テーブル405と並行して動作し、ストライドに遭遇
するとORL(アウトスタンディング・リクエスト・リ
スト)410を介してプリフェッチが開始される。
【0007】一般的なソフトウエアプリフェッチ機構に
ついては、第18年次ISCA論文集(1991年)、
第34〜53頁に掲載の"An Architecture for Softwar
e-Controlled Data Prefetching"と題する文献に開示さ
れる。コンパイラはコンパイル時刻に、フェッチ命令を
生成コード中に挿入する。実行時に、フェッチ命令によ
ってキャシュラインが別個のプリフェッチバッファもし
くはキャッシュにプリフェッチされる。米国特許第57
04053号には、最新のソフトウエアプリフェッチ機
構が記載される。最近のコンパイラはプリフェッチのた
めの全てのパラメータを決定し、フェッチ命令をコード
に挿入することができる。
ついては、第18年次ISCA論文集(1991年)、
第34〜53頁に掲載の"An Architecture for Softwar
e-Controlled Data Prefetching"と題する文献に開示さ
れる。コンパイラはコンパイル時刻に、フェッチ命令を
生成コード中に挿入する。実行時に、フェッチ命令によ
ってキャシュラインが別個のプリフェッチバッファもし
くはキャッシュにプリフェッチされる。米国特許第57
04053号には、最新のソフトウエアプリフェッチ機
構が記載される。最近のコンパイラはプリフェッチのた
めの全てのパラメータを決定し、フェッチ命令をコード
に挿入することができる。
【0008】さらに関係の深いソフトウエアプリフェッ
チ機構は多重のサイズのデータを階層構成メモリの異な
るロケーションにフェッチできる。プロシーディング・
オブ・ザ・インターナショナル・コンファレンス・オン
・スーパーコンピューティング(1993年)、第29
8〜307頁に掲載の"A Scalar Architecture for Pse
udo Vector Processing based on Slide-Window Regist
ers"と題する文献には、キャッシュラインを主メモリか
らキャッシュへ転送し、主メモリから拡張されたレジス
タファイル内へ機械語を転送するための命令をプリロー
ドすプリフェッチ命令を用いる方式が記載される。
チ機構は多重のサイズのデータを階層構成メモリの異な
るロケーションにフェッチできる。プロシーディング・
オブ・ザ・インターナショナル・コンファレンス・オン
・スーパーコンピューティング(1993年)、第29
8〜307頁に掲載の"A Scalar Architecture for Pse
udo Vector Processing based on Slide-Window Regist
ers"と題する文献には、キャッシュラインを主メモリか
らキャッシュへ転送し、主メモリから拡張されたレジス
タファイル内へ機械語を転送するための命令をプリロー
ドすプリフェッチ命令を用いる方式が記載される。
【0009】ハードウエアプリフェッチ機構とソフトウ
エアプリフェッチ機構を組み合わせる試みは第21年次
ISCA論文集(1994年)、第223〜232頁
に掲載の"A Performance Study of Software and Hardw
are Data Prefetching Scheme" と題する文献に記載さ
れる。ハードウエアとソフトウエアの組み合わせは、ハ
ードウエアがプリフェッチを開始すべであるとコンパイ
ラが決定したコードセグメントの前後に、コントロール
命令を挿入することにより達成される。この方法を用い
ると、ハードウエアプリフェッチは、かかるプリフェッ
チが有用であるとコンパイラが見なすアプリケーション
の特定部分に限定される。ハードウエアプリフェッチが
一旦許可されると、そのハードウエアは最初の通常メモ
リアクセスに遭遇した後のプリフェッチのパラメータの
全てを決めてしまう。
エアプリフェッチ機構を組み合わせる試みは第21年次
ISCA論文集(1994年)、第223〜232頁
に掲載の"A Performance Study of Software and Hardw
are Data Prefetching Scheme" と題する文献に記載さ
れる。ハードウエアとソフトウエアの組み合わせは、ハ
ードウエアがプリフェッチを開始すべであるとコンパイ
ラが決定したコードセグメントの前後に、コントロール
命令を挿入することにより達成される。この方法を用い
ると、ハードウエアプリフェッチは、かかるプリフェッ
チが有用であるとコンパイラが見なすアプリケーション
の特定部分に限定される。ハードウエアプリフェッチが
一旦許可されると、そのハードウエアは最初の通常メモ
リアクセスに遭遇した後のプリフェッチのパラメータの
全てを決めてしまう。
【0010】
【発明が解決しようとする課題】数百のプロセッサクロ
ックサイクルを必要とするメモリアクセスを伴う計算機
システムの場合に、特に上述の従来技術の問題を招くこ
とになく、プリフェッチの方策を最適化する必要があ
る。純粋なハードウエア手法および純粋なソフトウエア
手法にはそれぞれ問題がある。純粋なハードウエア機構
は、動的なメモリアクセスパターンのみに基づいた簡単
なアルゴリズムによってデータを先取りする場合が多
い。これは、不必要なメモリアクセスを増加させ、その
ため重要なメモリアクセスを緩慢にする。ソフトウエア
プリフェッチ手法は先取り点を特定するためのプログラ
ムコードについての静的な分析を必要とし、コードサイ
ズを増大させ、性能制限ループ体のサイズを大きくす
る。
ックサイクルを必要とするメモリアクセスを伴う計算機
システムの場合に、特に上述の従来技術の問題を招くこ
とになく、プリフェッチの方策を最適化する必要があ
る。純粋なハードウエア手法および純粋なソフトウエア
手法にはそれぞれ問題がある。純粋なハードウエア機構
は、動的なメモリアクセスパターンのみに基づいた簡単
なアルゴリズムによってデータを先取りする場合が多
い。これは、不必要なメモリアクセスを増加させ、その
ため重要なメモリアクセスを緩慢にする。ソフトウエア
プリフェッチ手法は先取り点を特定するためのプログラ
ムコードについての静的な分析を必要とし、コードサイ
ズを増大させ、性能制限ループ体のサイズを大きくす
る。
【0011】上述した問題に鑑み、本発明はつぎの各点
を目的とする。
を目的とする。
【0012】(1)プリフェッチのためのハードウエア
支援のない汎用プロセッサに対して、必要な変更を可能
な限り小さくする。
支援のない汎用プロセッサに対して、必要な変更を可能
な限り小さくする。
【0013】(2)システムメモリ上の負荷を軽減す
る。
る。
【0014】(3)プログラムサイズに及ぼすプリフェ
ッチの影響を最小にする。
ッチの影響を最小にする。
【0015】
【課題を解決するための手段】ハードウエア機構とソフ
トウエア機構とを組み合わせると、メモリアクセスに関
して主な障害を持つ計算機システムの性能をかなり改善
できる。本発明では各手法の悪影響を小さくとどめなが
ら、ハードウエアおよびソフトウエアプリフェッチの利
点を組合わせて上述した目的を実現する機構を形成す
る。
トウエア機構とを組み合わせると、メモリアクセスに関
して主な障害を持つ計算機システムの性能をかなり改善
できる。本発明では各手法の悪影響を小さくとどめなが
ら、ハードウエアおよびソフトウエアプリフェッチの利
点を組合わせて上述した目的を実現する機構を形成す
る。
【0016】提案する機構は、具体的には、以下のよう
に動作する。コンパイル時刻において、コンパイラはど
のデータ対象物をプリフェッチするべきかを決定し、開
始時間、開始アドレス、ストライド、始動間隔、エレメ
ントサイズ、およびエレメント数をきめる。コンパイラ
は命令の始動シーケンスを結果的に生じる命令ながれ中
の正しい場所に挿入する。この始動シーケンスはハード
ウエアプリフェッチテーブルにプリフェッチの詳細を書
き込む。その詳細とは、上述の開始時間、開始アドレ
ス、ストライド、始動間隔、エレメントサイズ、および
エレメント数である。一旦、特定のエントリのフィール
ドがすべて満たされると、ハードウエアプリフェッチテ
ーブルは指定された始動間隔ごとに、その開始アドレス
にて、また指定されたストライドに基づき、主メモリか
らプリフェッチバッファへの指定されたサイズのデータ
エレメントの先取りを開始する。その後、プロセッサが
部分的にプリフェッチしたデータ対象物のエレメントの
一つへとメモリアクセスを出すと、要請されたエレメン
トがプリフェッチされたバッファによって供給される。
に動作する。コンパイル時刻において、コンパイラはど
のデータ対象物をプリフェッチするべきかを決定し、開
始時間、開始アドレス、ストライド、始動間隔、エレメ
ントサイズ、およびエレメント数をきめる。コンパイラ
は命令の始動シーケンスを結果的に生じる命令ながれ中
の正しい場所に挿入する。この始動シーケンスはハード
ウエアプリフェッチテーブルにプリフェッチの詳細を書
き込む。その詳細とは、上述の開始時間、開始アドレ
ス、ストライド、始動間隔、エレメントサイズ、および
エレメント数である。一旦、特定のエントリのフィール
ドがすべて満たされると、ハードウエアプリフェッチテ
ーブルは指定された始動間隔ごとに、その開始アドレス
にて、また指定されたストライドに基づき、主メモリか
らプリフェッチバッファへの指定されたサイズのデータ
エレメントの先取りを開始する。その後、プロセッサが
部分的にプリフェッチしたデータ対象物のエレメントの
一つへとメモリアクセスを出すと、要請されたエレメン
トがプリフェッチされたバッファによって供給される。
【0017】提案する機構は以下の項目で従来技術と異
なっている。従来のハードウエアプリフェッチ機構は、
ストライド情報を内部テーブルに格納する。これに対
し、本発明ではストライド情報、プリフェッチに関する
始動間隔、エレメントサイズおよびデータ対象物あたり
のエレメント数をハードウエアテーブルに格納する。更
に、どのデータをプリフェッチするかの決定は、プリミ
ティブなハードウエアアルゴリズムから、コンパイラ内
の複雑な手順間解析ステップへと移行されている。コン
パイラによって決められた最適なプリフェッチは、プリ
フェッチ命令を挿入することによってクリティカルルー
プ体を増大することなく達成される。
なっている。従来のハードウエアプリフェッチ機構は、
ストライド情報を内部テーブルに格納する。これに対
し、本発明ではストライド情報、プリフェッチに関する
始動間隔、エレメントサイズおよびデータ対象物あたり
のエレメント数をハードウエアテーブルに格納する。更
に、どのデータをプリフェッチするかの決定は、プリミ
ティブなハードウエアアルゴリズムから、コンパイラ内
の複雑な手順間解析ステップへと移行されている。コン
パイラによって決められた最適なプリフェッチは、プリ
フェッチ命令を挿入することによってクリティカルルー
プ体を増大することなく達成される。
【0018】
【発明の実施の形態】実施態様のプリフェッチ機構の説
明に先立ち、図2を用いてデータ対象物の構造を説明す
る。データ対象物205は多数のエレメントから成って
いる。実行時において、それらエレメントは線形物理主
メモリ204上にあるので、新しいエレメントはストラ
イブ203で示すバイトごとに開始する。第1エレメン
トは開始アドレス201から開始する。
明に先立ち、図2を用いてデータ対象物の構造を説明す
る。データ対象物205は多数のエレメントから成って
いる。実行時において、それらエレメントは線形物理主
メモリ204上にあるので、新しいエレメントはストラ
イブ203で示すバイトごとに開始する。第1エレメン
トは開始アドレス201から開始する。
【0019】図1は、本発明の実施態様の構成を示す。
この構成においてプリフェッチ機構のハードウエア部
は、L1キャッシュ102と主メモリ117の間に設け
れらる。また、L2キャッシュとは並列の関係にある。
プリフェフェッチ機構のハードウエア部は、プリフェッ
チされた値を保持するプリフェッチバッファ107と、
複数のデータ対象物について、それぞれ情報を保持する
複数のプリフェッチテーブ108から成る。つまり、プ
リフェッチバッファ107は、L2キャッシュメと並行
してプロセッサ101の指定するアドレスを受け取るよ
うL2キャッシュと同じアドレス経路に接続され、かつ
主メモリ117からL1キャッシュ102に供給される
情報がこのプリフェッチバッファ107もしくはL2キ
ャッシュ102を通して伝達されるように、L2キャッ
シュと並列にある情報経路内に配置されている。なお、
図中のブロック108はプリフェッチテーブルに付随
し、プリフェッチのスケジューリングを行う制御ロジッ
クを含む。 プリフェッチテーブル108は、複数のエ
ントリ2を持つ。各エントリは、開始アドレス110、
エレメントサイズ111、ストライド112、始動間隔
113、およびエレメント数114から成る。
この構成においてプリフェッチ機構のハードウエア部
は、L1キャッシュ102と主メモリ117の間に設け
れらる。また、L2キャッシュとは並列の関係にある。
プリフェフェッチ機構のハードウエア部は、プリフェッ
チされた値を保持するプリフェッチバッファ107と、
複数のデータ対象物について、それぞれ情報を保持する
複数のプリフェッチテーブ108から成る。つまり、プ
リフェッチバッファ107は、L2キャッシュメと並行
してプロセッサ101の指定するアドレスを受け取るよ
うL2キャッシュと同じアドレス経路に接続され、かつ
主メモリ117からL1キャッシュ102に供給される
情報がこのプリフェッチバッファ107もしくはL2キ
ャッシュ102を通して伝達されるように、L2キャッ
シュと並列にある情報経路内に配置されている。なお、
図中のブロック108はプリフェッチテーブルに付随
し、プリフェッチのスケジューリングを行う制御ロジッ
クを含む。 プリフェッチテーブル108は、複数のエ
ントリ2を持つ。各エントリは、開始アドレス110、
エレメントサイズ111、ストライド112、始動間隔
113、およびエレメント数114から成る。
【0020】図3は実施態様のプリフェッチバッファ1
07の論理構造を示す。プリフェッチバッファ107は
複数のバッファ308から成り、個々のバッファは、そ
の先頭エレメントに対応する先頭アドレスレジスタ30
6と、最終エレメントに対応する末尾アドレスレジスタ
307を備える。
07の論理構造を示す。プリフェッチバッファ107は
複数のバッファ308から成り、個々のバッファは、そ
の先頭エレメントに対応する先頭アドレスレジスタ30
6と、最終エレメントに対応する末尾アドレスレジスタ
307を備える。
【0021】次に、プロセッサ101がメモリアクセス
命令を発行するときに、プロセッサ101にデータエレ
メントを転送するに先立って、本実施態様のプリフェッ
チ機構が主メモリ117からプリフェッチバッファ10
7にデータエレメントをプリフェッチするアルゴリズム
について説明する。
命令を発行するときに、プロセッサ101にデータエレ
メントを転送するに先立って、本実施態様のプリフェッ
チ機構が主メモリ117からプリフェッチバッファ10
7にデータエレメントをプリフェッチするアルゴリズム
について説明する。
【0022】コンパイル時において、コンパイラはアプ
リケーションプロラムを解析してループでアクセスされ
るデータ対象物を見つける。また、コンパイラは、開始
アドレス110、エレメントサイズ111、ストライド
112、始動間隔113、対象物当たりのエレメント数
114を決定する。更に、コンパイラはコンパイルされ
たコード中の最適場所を決定してプリフェッチを開始す
る。従来技術においては、コンパイラは現実の負荷から
特定距離のコードにプリフェッチ命令を挿入する必要が
あった。本実施態様ではこれに代えて、コンパイラは、
プリフェッチシーケンスの始めに、二つの命令を挿入す
るだけでよい。これらの命令は、図1のハードウエアプ
リフェッチテーブル108にプリフェッチに関する情報
を転送する。本実施態様では、この手法により現在のソ
フトウエアプリフェッチ手法に匹敵する正確なプリフェ
ッチを実現可能とし、しかもこれには、プリフェッチ命
令により最短ループのサイズを増大や、プロセッサ10
1のプリフェッチのための改変を伴わない。
リケーションプロラムを解析してループでアクセスされ
るデータ対象物を見つける。また、コンパイラは、開始
アドレス110、エレメントサイズ111、ストライド
112、始動間隔113、対象物当たりのエレメント数
114を決定する。更に、コンパイラはコンパイルされ
たコード中の最適場所を決定してプリフェッチを開始す
る。従来技術においては、コンパイラは現実の負荷から
特定距離のコードにプリフェッチ命令を挿入する必要が
あった。本実施態様ではこれに代えて、コンパイラは、
プリフェッチシーケンスの始めに、二つの命令を挿入す
るだけでよい。これらの命令は、図1のハードウエアプ
リフェッチテーブル108にプリフェッチに関する情報
を転送する。本実施態様では、この手法により現在のソ
フトウエアプリフェッチ手法に匹敵する正確なプリフェ
ッチを実現可能とし、しかもこれには、プリフェッチ命
令により最短ループのサイズを増大や、プロセッサ10
1のプリフェッチのための改変を伴わない。
【0023】実行時において、プロセッサ101の中の
プログラムの流れは、コンパイラが先取りを開始するよ
う決定した場所に到達する。すると、コンパイラは、開
始アドレス110、エレメントサイズ111、ストライ
ド112、始動間隔(繰り返し間隔)113、および対
象物当たりのエレメント数114をプリフェッチテーブ
ル108の利用可能エントリに転送する。この転送が完
了するに伴い、プロセッサはイネーブルビット109を
セットする。これにより111に示されるサイズのプリ
フェッチが110に示されるアドレスから開始される。
最初のプリフェッチと並行して、末尾アドレスレジスタ
307にはこのエントリのレジスタ110の値がロード
され、次に110のアドレスの値は112に示されるス
トライドの値だけ加算器115により増加される。
プログラムの流れは、コンパイラが先取りを開始するよ
う決定した場所に到達する。すると、コンパイラは、開
始アドレス110、エレメントサイズ111、ストライ
ド112、始動間隔(繰り返し間隔)113、および対
象物当たりのエレメント数114をプリフェッチテーブ
ル108の利用可能エントリに転送する。この転送が完
了するに伴い、プロセッサはイネーブルビット109を
セットする。これにより111に示されるサイズのプリ
フェッチが110に示されるアドレスから開始される。
最初のプリフェッチと並行して、末尾アドレスレジスタ
307にはこのエントリのレジスタ110の値がロード
され、次に110のアドレスの値は112に示されるス
トライドの値だけ加算器115により増加される。
【0024】メモリエレメントが主メモリから到着する
度に、末尾アドレスレジスタ307の値がアドレス30
4と照合される。照合の結果、アドレスが一致の場合に
は、データアイテムはPUSHの動作によりプリフェッチバ
ッファ308に納められる。この、第1プリフェッチと
並行して、末尾アドレスレジスタ307の値は112に
示されるストライドの値だけ増加される。先頭アドレス
レジスタ306がまだ空である場合は、先頭アドレスレ
ジスタ306には受信したメモリエレメントのアドレス
がロードされる。
度に、末尾アドレスレジスタ307の値がアドレス30
4と照合される。照合の結果、アドレスが一致の場合に
は、データアイテムはPUSHの動作によりプリフェッチバ
ッファ308に納められる。この、第1プリフェッチと
並行して、末尾アドレスレジスタ307の値は112に
示されるストライドの値だけ増加される。先頭アドレス
レジスタ306がまだ空である場合は、先頭アドレスレ
ジスタ306には受信したメモリエレメントのアドレス
がロードされる。
【0025】プロセッサ101がメモリ要求を出す度
に、その要求はL2キャッシュ103とプリフェッチバ
ッファ107へ並行して送られる。プリフェッチバッフ
ァ107では、メモリアクセスアドレス301が先頭ア
ドレスレジスタ306の値と照合される。アドレス値が
一致した場合は、L2キャシュ103への要求はキャン
セルされ、データエレメントがPOP動作によりプリフェ
ッチバッファ308から供給される。先頭アドレスレジ
スタ306は112に示されるストライドの値だけ増加
される。プリフェッチされたと想定されるデータ対象物
は、物理メモリのキャシュ不可と設定された領域内にあ
ることが不可欠である。さもないと、L1キャッシュの
キャッシュラインロードがプリフェッチ動作を妨げる。
に、その要求はL2キャッシュ103とプリフェッチバ
ッファ107へ並行して送られる。プリフェッチバッフ
ァ107では、メモリアクセスアドレス301が先頭ア
ドレスレジスタ306の値と照合される。アドレス値が
一致した場合は、L2キャシュ103への要求はキャン
セルされ、データエレメントがPOP動作によりプリフェ
ッチバッファ308から供給される。先頭アドレスレジ
スタ306は112に示されるストライドの値だけ増加
される。プリフェッチされたと想定されるデータ対象物
は、物理メモリのキャシュ不可と設定された領域内にあ
ることが不可欠である。さもないと、L1キャッシュの
キャッシュラインロードがプリフェッチ動作を妨げる。
【0026】一旦プリフェッチの流れが開始されると、
プリフェッチテーブル108に付随する制御ロジックが
113に示される始動間隔ごとにプリフェッチ命令を主
メモリ117に発行する。このプリフェッチのタイミン
グはカウンタ116により制御される。つまり、プリフ
ェッチテーブル108に付随する制御ロジック108の
カウンタ116は、クロックをカウントして、連続する
プリフェッチが113に格納された時間差で繰り返され
るようにプリフェッチの始動の制御を行う。プリフェッ
チテーブル108は、110に示されるアドレスにてプ
リフェッチを開始し、加算器115によりアドレスを1
12に示されるストライドだけ増加していく。また、1
14に示されるエレメント数は1ずつ減じられていく。
エレメント数が0になれば、プリフェッチテーブル10
8は特定のエントリに対応する制御ロジックでのプリフ
ェッチスケジューリングの動作を停止し、そのエントリ
を無効化して、特定のエントリのプリフェッチを停止す
る。
プリフェッチテーブル108に付随する制御ロジックが
113に示される始動間隔ごとにプリフェッチ命令を主
メモリ117に発行する。このプリフェッチのタイミン
グはカウンタ116により制御される。つまり、プリフ
ェッチテーブル108に付随する制御ロジック108の
カウンタ116は、クロックをカウントして、連続する
プリフェッチが113に格納された時間差で繰り返され
るようにプリフェッチの始動の制御を行う。プリフェッ
チテーブル108は、110に示されるアドレスにてプ
リフェッチを開始し、加算器115によりアドレスを1
12に示されるストライドだけ増加していく。また、1
14に示されるエレメント数は1ずつ減じられていく。
エレメント数が0になれば、プリフェッチテーブル10
8は特定のエントリに対応する制御ロジックでのプリフ
ェッチスケジューリングの動作を停止し、そのエントリ
を無効化して、特定のエントリのプリフェッチを停止す
る。
【0027】次に、実行時にプリフェッチ情報をプロセ
ッサ101からプリフェッチテーブル108に転送する
詳細な方法に関する本発明のバリエーションについて示
す。
ッサ101からプリフェッチテーブル108に転送する
詳細な方法に関する本発明のバリエーションについて示
す。
【0028】第1のオプションは、プリフェッチテーブ
ル108に物理メモリの特定領域をマップすることであ
る。この場合、通常のロード命令、ストア命令がプリフ
ェッチテーブル108の情報アクセスに使用可能とな
る。
ル108に物理メモリの特定領域をマップすることであ
る。この場合、通常のロード命令、ストア命令がプリフ
ェッチテーブル108の情報アクセスに使用可能とな
る。
【0029】第2のオプションは、IOマップ領域をI
O空間に作り出すことである。この場合、プリフェッチ
テーブル108はIO読出し命令およびIO書込み命令
によってアクセスされる。
O空間に作り出すことである。この場合、プリフェッチ
テーブル108はIO読出し命令およびIO書込み命令
によってアクセスされる。
【0030】第3のオプションは、この転送に対して特
別な命令を準備することである。この方法は、命令セッ
トに新たな命令を収容可能にする変更を必要とする。つ
まり、この特別な命令を含まない在庫プロセッサの使用
は不可能となる。
別な命令を準備することである。この方法は、命令セッ
トに新たな命令を収容可能にする変更を必要とする。つ
まり、この特別な命令を含まない在庫プロセッサの使用
は不可能となる。
【0031】上述した機構の一つの変形として、プリフ
ェッチテーブル108のローディングをプリフェッチ動
作の開始から分離することが挙げられる。プリフェッチ
テーブル108は、従来のコードセグメントでのCPU
空き時間を利用して、プリフェッチテーブルのエントリ
イが使用可能にされるはるか以前にロードされ得る。別
のイネーブリング命令がプリフェッチを開始させる。こ
のように、従来のコードセグメントでのCPU空き時間
を利用して、プリフェッチテーブル108をロードす
る。種々の変形は、最終的なイニシエーションがプロセ
ッサ101からプリフェッチハードウエアに転送される
方法に関して可能であり、これは、上述したプリフェッ
チ情報のプロセッサ101からプリフェッチハードウエ
アへの転送に関するバリエーションとよく似ている。
ェッチテーブル108のローディングをプリフェッチ動
作の開始から分離することが挙げられる。プリフェッチ
テーブル108は、従来のコードセグメントでのCPU
空き時間を利用して、プリフェッチテーブルのエントリ
イが使用可能にされるはるか以前にロードされ得る。別
のイネーブリング命令がプリフェッチを開始させる。こ
のように、従来のコードセグメントでのCPU空き時間
を利用して、プリフェッチテーブル108をロードす
る。種々の変形は、最終的なイニシエーションがプロセ
ッサ101からプリフェッチハードウエアに転送される
方法に関して可能であり、これは、上述したプリフェッ
チ情報のプロセッサ101からプリフェッチハードウエ
アへの転送に関するバリエーションとよく似ている。
【0032】以上、本発明に特有のメリットを明らかに
するように本発明の実施態様を種々の変形とともに述べ
たが、本発明の主旨を逸脱しない更なる変形が可能であ
る。
するように本発明の実施態様を種々の変形とともに述べ
たが、本発明の主旨を逸脱しない更なる変形が可能であ
る。
【0033】
【発明の効果】以上のように本発明により、わずかなハ
ードウエアの増加により、しかもプログラムサイズの増
大を抑えて適切なデータ対象物のプリフェッチを実現す
ることができる。
ードウエアの増加により、しかもプログラムサイズの増
大を抑えて適切なデータ対象物のプリフェッチを実現す
ることができる。
【図1】本発明の実施態様のハードウエアとソフトウエ
アとの共同プリフェッチ機構を示すブロック図である。
アとの共同プリフェッチ機構を示すブロック図である。
【図2】上記実施態様のデータオブジェクトをそのエレ
メントと共にを示す概念図である。
メントと共にを示す概念図である。
【図3】上記実施態様のプリフェッチバッファの論理構
成を示す概念図である。
成を示す概念図である。
【図4】従来のハードウエアプリフェッチ機構を示すブ
ロック図である。
ロック図である。
101:プロセッサ 102:L1キャッシュ 103:L2キャッシュ 107:プリフェッチバッファ 108:プリフェッチテーブル及び制御ロジック 117:主メモリ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 藤井 啓明 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 Fターム(参考) 5B005 JJ11 MM01 MM21 NN22 UU32 5B013 AA05 AA20 5B081 CC25 CC30 CC32
Claims (14)
- 【請求項1】プロセッサに供給されるべき情報を格納す
るための第1のキャッシュメモリと、 前記第1のキャ
ッシュメモリを通して前記プロセッサに供給されるべき
情報を格納するための第2のキャッシュメモリと、 プリフェッチされるべきデータ対象物の詳細を特定する
情報を格納するためのプリフェッチテーブルと、 前記第2のキャッシュメモリと並行して前記プロセッサ
の指定するアドレスを受け取るよう前記第2のメモリと
同じアドレス経路に接続され、かつ前記第2のキャッシ
ュメモリと並列に前記第1のメモリに接続された、情報
を第1のメモリに供給するためのプリフェッチバッファ
と、 前記第2のキャッシュメモリ、もしくは前記プリフェッ
チバッファを通して前記プロセッサに供給すべき情報を
格納する主メモリと、 プリフェッチが始動されて前記プリフェッチテーブルに
前記データ対象物を特定する情報が 格納されると、該
情報から得られる複数のアドレスのデータを前記主メモ
リから取得して前記プリフェッチバッファに格納するプ
リフェッチ手段とを有するメモリシステム。 - 【請求項2】前記プリフェッチバッファは複数の並列配
置バッファであることを特徴とする請求項1記載のメモ
リシステム。 - 【請求項3】前記プリフェッチテーブルには前記プリフ
ェッチバッファでの相次ぐプリフェッチ動作の繰り返し
時間を指定する情報が格納され、前記プリフェッチ手段
は格納された繰り返し時間毎にプリフェッチ動作を行う
ことを特徴とする請求項3記載のメモリシステム。 - 【請求項4】前記プリフェッチバッファは、 前記プリフェッチバッファに格納されている前記情報に
対応する複数のアドレスを格納するアドレスレジスタ
と、 前記第1のメモリにミスが生じたとき前記アドレスレジ
スタに格納された複数のアドレスを前記プロセッサ指定
のアドレスと比較し、前記複数のアドレスの1つが前記
プロセッサ指定のアドレスと整合したときに、前記複数
のアドレスの1つに対応しかつ前記プリフェッチバッフ
ァに格納されている情報を前記第1のメモリに供給する
ための手段とを含むことを特徴とする請求項1記載のメ
モリシステム。 - 【請求項5】前記プリフェッチバッファは更に、前記プ
リフェッチバッファに格納されている情報が前記第1の
メモリに供給された後、該プリフェッチバッファ内で情
報をシフトする手段を含むことを特徴とする請求項4記
載のメモリシステム。 - 【請求項6】プロセッサに供給されるべき情報を格納す
る第1のキャッシュメモリと、該第1のキャッシュメモ
リを通して前記プロセッサに供給すべき情報を格納する
ための第2のキャッシュメモリと、前記第2のキャッシ
ュメモリと並列に設けられ、前記第2のキャッシュメモ
リより小さな記憶容量を有し、前記プロセッサに供給さ
れるべき追加情報が主メモリから格納され、前記第1の
キャッシュメモリを通して前記プロセッサに情報を供給
するプリフェッチバッファと、前記プロセッサに供給さ
れるべき追加情報のプリフェッチバッファへの追加に関
する情報を記憶するプリフェッチテーブルを持つメモリ
システムを動作させる方法において、 前記プロセッサ指定のアドレスで前記第1のキャッシュ
メモリをアドレス指定するステップと、 前記プロセッサ指定のアドレスに対応する情報が前記第
1のメモリにあるかを検出し、第1のメモリでヒットが
生じるならば前記プロセッサへの情報を前記第1のキャ
ッシュメモリから供給するステップと、 前記プロセッサ指定のアドレスに対応する情報が前記プ
リフェッチバッファにあるかを検出し、前記プロセッサ
指定のアドレスがキャシュ不可能な領域にあり、かつ前
記プリフェッチバッファに前記プロセッサ指定のアドレ
スに対応する情報があると検出された時には前記プロセ
ッサへの情報を前記プリフェッチバッファから供給する
ステップと、 ミスが前記プリフェッチバッファに生じた時には、前記
プロセッサへの情報を前記主メモリから供給するステッ
プとを有することを特徴とするメモリシステムの動作方
法。 - 【請求項7】前記プリフェッチバッファに追加情報を前
記主メモリから格納するとき、格納する追加情報に対応
するアドレスをプリフェッチバッファに格納し、前記プ
ロセッサ指定のアドレスに対応する情報が前記プリフェ
ッチバッファにあるかを検出する過程は、そのプリフェ
ッチバッファに格納したアドレスと前記プロセッサ指定
のアドレスとの比較により達成することを特徴とする請
求項6記載のメモリシステムの動作方法 - 【請求項8】前記プリフェッチバッファに追加情報を前
記主メモリから格納する過程では、プロセッサが指定す
る開始アドレスに関して連続する複数のアドレスの情報
を前記主メモリから供給し、前記複数のアドレスを前記
プリフェッチバッファ内のアドレスレジスタに格納し、
かつ前記プロセッサ指定のアドレスに対応する情報が前
記プリフェッチバッファにあるかを検出する過程は格納
した前記複数のアドレスと前記プロセッサ指定のアドレ
スとを比較することにより達成することを特徴とする請
求項6記載のメモリシステムの動作方法。 - 【請求項9】前記プリフェッチのアドレス検出に並行し
て前記第2のキャッシュメモリのアドレス検出を行い、
前記プリフェッチバッファに前記プロセッサ指定のアド
レスに対応する情報があった場合は前記第2のキャッシ
ュメモリへの要求をキャンセルすることを特徴とする請
求項6記載のメモリシステムの動作方法。 - 【請求項10】プロセッサへ供給されるべき情報を格納
するための第1のキャッシュメモリと、該第1のキャッ
シュメモリを介してプロセッサへ供給されるべき情報を
格納するための第2のキャッシュメモリと、複数の並列
のプリフェッチテーブルと、前記第2のキャッシュメモ
リより小さな記憶容量を有し、前記第1のメモリを介し
て前記プロセッサへ供給すべき情報が格納される複数並
列のプリフェッチバッファとを含むメモリシステムの動
作方法であって、 前記プロセッサ指定のアドレスで前記第1のメモリをア
ドレス指定するステップと、 前記プロセッサ指定のアドレスに対応する情報が前記第
1のキャッシュメモリにあるかを検出し、第1のキャッ
シュメモリでヒットが生じるならば前記プロセッサへの
情報を前記第1のメモリから供給するステップと、 前記プロセッサ指定のアドレスに対応する情報が前記複
数のプリフェッチバッファの何れかにあるかを検出し、
前記プロセッサ指定のアドレスがキャシュ不可能な領域
にあり、かつ前記複数のプリフェッチバッファの一つに
ヒットが生じた時には前記プロセッサ指定のアドレスに
対応する情報を前記プリフェッチバッファの一つから前
記プロセッサへ供給し、前記複数のプリフェッチバッフ
ァの全てでミスが生じた時には前記プロセッサ指定のア
ドレスに対応する情報を前記主メモリから前記プロセッ
サへ供給するステップとを含むメモリシステムの動作方
法。 - 【請求項11】前記プリフェッチバッファの内容は前記
主メモリから前記プリフェッチテーブルの1つのエント
リにしたがって取り込まれ、前記プリフェッチテーブル
は前記プロセッサにより書き込まれることを特徴とする
請求項10記載のメモリシステムの動作方法。 - 【請求項12】前記プリフェッチバッファの特定の一つ
に格納された情報が前記第1のメモリに供給した後に、
前記プリフェッチバッファの情報をシフトすることを特
徴とする請求項10記載のメモリシステムの動作方法。 - 【請求項13】前記プリフェッチテーブルの1エントリ
は、開始アドレス、エレメントサイズ、ストライド、始
動間隔、及びエレメント数の情報からなり、前記プリフ
ェッチバッファは前記主メモリから前記エレメントサイ
ズの粒状度で、前記ストライドで、前記始動間隔毎に一
度、前記エレメント数を読み取り、順次のメモリアクセ
スのアドレスは前記開始アドレスに前記ストライドを複
数分加算して得ることを特徴とする請求項10記載のメ
モリシステムの動作方法。 - 【請求項14】前記プロセッサがプリフェッチを開始し
た後に、前記プリフェッチバッファは連続する二つのプ
リフェッチの時間差を計数する手段により制御されて追
加情報をプリフェッチすることを特徴とする請求項13
記載のメモリシステムの動作方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34702199A JP2001166989A (ja) | 1999-12-07 | 1999-12-07 | プリフェッチ機構を有するメモリシステム及びその動作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34702199A JP2001166989A (ja) | 1999-12-07 | 1999-12-07 | プリフェッチ機構を有するメモリシステム及びその動作方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2001166989A true JP2001166989A (ja) | 2001-06-22 |
Family
ID=18387392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP34702199A Pending JP2001166989A (ja) | 1999-12-07 | 1999-12-07 | プリフェッチ機構を有するメモリシステム及びその動作方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2001166989A (ja) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006215799A (ja) * | 2005-02-03 | 2006-08-17 | Toshiba Corp | メモリコントローラ |
US7317629B2 (en) | 2004-10-29 | 2008-01-08 | Hynix Semiconductor, Inc. | Semiconductor memory device with simplified data control signals |
WO2014101820A1 (en) | 2012-12-28 | 2014-07-03 | Huawei Technologies Co., Ltd. | Software and hardware coordinated prefetch |
JP2016076025A (ja) * | 2014-10-03 | 2016-05-12 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
US9483244B2 (en) | 2014-05-15 | 2016-11-01 | Fujitsu Limited | Compiling method and compiling device |
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 |
CN107870873A (zh) * | 2016-09-26 | 2018-04-03 | 三星电子株式会社 | 基于按字节编址闪存的存储器模块和操作其的方法 |
JP2019128760A (ja) * | 2018-01-24 | 2019-08-01 | 富士通株式会社 | コンパイラプログラム、コンパイル方法及びコンパイルする情報処理装置 |
US10656944B2 (en) | 2014-12-27 | 2020-05-19 | Intel Corporation | Hardware apparatus and methods to prefetch a multidimensional block of elements from a multidimensional array |
-
1999
- 1999-12-07 JP JP34702199A patent/JP2001166989A/ja active Pending
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7317629B2 (en) | 2004-10-29 | 2008-01-08 | Hynix Semiconductor, Inc. | Semiconductor memory device with simplified data control signals |
JP2006215799A (ja) * | 2005-02-03 | 2006-08-17 | Toshiba Corp | メモリコントローラ |
WO2014101820A1 (en) | 2012-12-28 | 2014-07-03 | Huawei Technologies Co., Ltd. | Software and hardware coordinated prefetch |
EP2923266B1 (en) * | 2012-12-28 | 2021-02-03 | Huawei Technologies Co., Ltd. | Software and hardware coordinated prefetch |
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 |
JP2016076025A (ja) * | 2014-10-03 | 2016-05-12 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
US9971695B2 (en) | 2014-10-03 | 2018-05-15 | Fujitsu Limited | Apparatus and method for consolidating memory access prediction information to prefetch cache memory data |
US10656944B2 (en) | 2014-12-27 | 2020-05-19 | Intel Corporation | Hardware apparatus and methods to prefetch a multidimensional block of elements from a multidimensional array |
CN107870873A (zh) * | 2016-09-26 | 2018-04-03 | 三星电子株式会社 | 基于按字节编址闪存的存储器模块和操作其的方法 |
JP2018055683A (ja) * | 2016-09-26 | 2018-04-05 | 三星電子株式会社Samsung Electronics Co.,Ltd. | バイトアドレス可能なフラッシュ基盤メモリモジュール、nvdimm型モジュール、及びそのデータ格納方法 |
CN107870873B (zh) * | 2016-09-26 | 2023-08-08 | 三星电子株式会社 | 基于按字节编址闪存的存储器模块和操作其的方法 |
JP2019128760A (ja) * | 2018-01-24 | 2019-08-01 | 富士通株式会社 | コンパイラプログラム、コンパイル方法及びコンパイルする情報処理装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7904661B2 (en) | Data stream prefetching in a microprocessor | |
US7716427B2 (en) | Store stream prefetching in a microprocessor | |
US6907520B2 (en) | Threshold-based load address prediction and new thread identification in a multithreaded microprocessor | |
EP0933698B1 (en) | Probing computer memory latency | |
US6560693B1 (en) | Branch history guided instruction/data prefetching | |
US6460115B1 (en) | System and method for prefetching data to multiple levels of cache including selectively using a software hint to override a hardware prefetch mechanism | |
US6944718B2 (en) | Apparatus and method for speculative prefetching after data cache misses | |
US5944815A (en) | Microprocessor configured to execute a prefetch instruction including an access count field defining an expected number of access | |
US6446167B1 (en) | Cache prefetching of L2 and L3 | |
JP3659340B2 (ja) | 命令履歴キャッシングを使用して推測的に命令を実行する回路、製品、およびそのための方法 | |
US7213126B1 (en) | Method and processor including logic for storing traces within a trace cache | |
JP3739491B2 (ja) | プリフェッチ命令を用いるハーバードアーキテクチャキャッシュメモリの調和したソフトウェア制御 | |
US6351796B1 (en) | Methods and apparatus for increasing the efficiency of a higher level cache by selectively performing writes to the higher level cache | |
US20050125632A1 (en) | Transitioning from instruction cache to trace cache on label boundaries | |
JP2000242558A (ja) | キャッシュシステム及びその操作方法 | |
JPH07253926A (ja) | キャッシュ・ミスによる時間ペナルティ減少方法 | |
US6535962B1 (en) | System and method for prefetching data using a hardware prefetch mechanism | |
JPH09160827A (ja) | コールド・キャッシュ命令のプリフェッチ | |
US9304750B2 (en) | System and method for processor with predictive memory retrieval assist | |
JP2001166989A (ja) | プリフェッチ機構を有するメモリシステム及びその動作方法 | |
US5794027A (en) | Method and apparatus for managing the execution of instructons with proximate successive branches in a cache-based data processing system | |
JPH06242951A (ja) | キャッシュメモリシステム | |
US20030088636A1 (en) | Multiprocessor system having distributed shared memory and instruction scheduling method used in the same system | |
US6772321B2 (en) | Method and apparatus for using an assist processor and value speculation to facilitate prefetching for a primary processor | |
Berenbaum et al. | Architectural Innovations in the CRISP Microprocessor. |