JP4212521B2 - 先読み制御装置、プロセッサの一時記憶装置へデータの先読みを制御する先読み制御方法およびプログラム - Google Patents

先読み制御装置、プロセッサの一時記憶装置へデータの先読みを制御する先読み制御方法およびプログラム Download PDF

Info

Publication number
JP4212521B2
JP4212521B2 JP2004194372A JP2004194372A JP4212521B2 JP 4212521 B2 JP4212521 B2 JP 4212521B2 JP 2004194372 A JP2004194372 A JP 2004194372A JP 2004194372 A JP2004194372 A JP 2004194372A JP 4212521 B2 JP4212521 B2 JP 4212521B2
Authority
JP
Japan
Prior art keywords
information
access
data
prefetch
address translation
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
JP2004194372A
Other languages
English (en)
Other versions
JP2006018474A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2004194372A priority Critical patent/JP4212521B2/ja
Priority to EP05253269A priority patent/EP1622032A3/en
Priority to US11/151,344 priority patent/US7500061B2/en
Priority to CNB2005100818213A priority patent/CN100385390C/zh
Publication of JP2006018474A publication Critical patent/JP2006018474A/ja
Priority to US12/190,370 priority patent/US20080307162A1/en
Application granted granted Critical
Publication of JP4212521B2 publication Critical patent/JP4212521B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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

Landscapes

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

Description

本発明は、計算機システムに係わり、プロセッサの一時記憶装置へデータの先読みを制御する先読み制御装置、方法およびプログラムに関する。
計算機システムにおいて、演算処理を行うプロセッサの性能はパイプライン処理等の内部構造の進歩や半導体技術等の進歩により、急速に向上している。これに対し、演算処理に使用するデータを記憶する主記憶装置の性能は、プロセッサの場合と比較すると、データ供給速度の点で向上が遅れており、プロセッサへのデータ供給速度が演算処理速度に追いついていない状況にある。このため、多くの計算機システムでは、プロセッサと主記憶装置との間の速度差を埋めるために、「キャッシュ」と呼ばれるデータの一時記憶装置を備える場合が多い。
キャッシュは、回路規模による製造コストが主記憶装置と比較して高価であるものの、そのデータ供給速度は主記憶装置のそれと比較して高速であり、プロセッサの演算処理能力を引き出すために必須な装置である。
主記憶装置に記憶されているデータへのアクセス(読み出し要求)が発生すると、まず、主記憶装置ではなくキャッシュが参照される。このとき、要求されたデータがキャッシュ上に存在するならば、該データはキャッシュから読み出されてプロセッサに送られる。一方、要求されたデータがキャッシュ上に存在しない場合、要求されたデータは先ず主記憶装置からシステムバスを通じてキャッシュに転送されたのち、プロセッサに与えられる。キャッシュに転送しておくのは、同一のデータに対する次回のアクセスに備えるためである。主記憶装置に記憶されているデータへのアクセスが発生したとき、該データがキャッシュ上に存在する率のことをキャッシュヒット率という。キャッシュヒット率は、キャッシュの性能を反映するパラメータの一つである。
近年、キャッシュ性能に対する要求はより厳しくなってきている。科学技術計算やマルチメディア処理など、データを高速かつ大量に処理する応用分野では、特に顕著である。上述のように、キャッシュは高コストであることから、キャッシュの記憶容量はコストとの兼ね合いで小さく抑えざるを得ない。必然的に、キャッシュの用途はデータの一時記憶に限定される。したがって、必要なデータが常にキャッシュに存在するとは限らない。例えば、アクセス要求に係るデータがいつもキャッシュ上に存在しない場合、すなわち、キャッシュヒット率が低過ぎる場合、データ供給速度は、キャッシュを設けない場合のデータ供給速度と同等レベルにまで低下してしまうことも考えられる。
この様な状況を踏まえ、従来、処理に必要なデータを事前にキャッシュ上への読み出しを行う、いわゆる先読み処理を行う仕組みを新たに設けることで、キャッシュ性能の向上を図ることが行われている。先読み処理の実現方法は幾つか知られており、例えば、(1)プリフェッチ命令を用いるものと、(2)アクセスパターンの予測に基づくものとがある。
プリフェッチ命令を用いる前者の場合、アクセスするデータのアドレスを明記するプリフェッチ命令がプログラム中に挿入される。プリフェッチ命令は、指定したアドレスのデータを事前にキャッシュ上に読み出す命令のことである。データを使用する命令の前に、プリフェッチ命令が先行して実行されることにより、該データを使用する段階でデータが先読みされ、前もってキャッシュ上に準備される。
また、アクセスパターンの予測に基づく後者の場合、過去のデータアクセスパターン(履歴)に基づいて、今後のデータアクセスパターンを予測し、先読み処理を実行する。配列データへのアクセスなど、データアクセスがアドレス上で連続して行われる場合など、アクセスされるデータのアドレスを監視することにより、次にアクセスされるデータのアドレスを予測することが出来る。その結果に応じて、今後必要となるデータの先読み処理を実行する。前者の場合と同様に、実際にデータを使用する段階では、該データがキャッシュ上に準備され、一時的に記憶された状態となる。
"Computer Architecture: A Quantitative Approach", John L. Hennessy , David A. Patterson, Morgan Kaufmann, Publishers ; ISBN: 1558607242
上述したように、先読み処理の仕組みを一時記憶に適用することで性能を向上することができるが、次のような問題点がある。
先ず、プログラム中にプリフェッチ命令を挿入する(1)の従来例について、個々の計算機システムの異なる性能に応じることができるようプログラムを調整して提供することは非現実的であることから、プログラムは、ある性能値を基準に最適化せざるを得ない。その結果、計算機システム間の性能差を考慮することが出来ず、計算機システムの性能に依存して、性能の向上度合いにばらつきが出てしまうという問題点がある。
次に、アクセスパターンの予測に基づく(2)の従来例では、予測に限界があるという問題点がある。例えば、どのデータアクセスが計算処理にとって重要なのか、また、そのデータアクセスが何回継続されるのかなど、といった情報についてまでは予測でまかなえない。言い替えれば、予測し易いアクセスパターン以外の領域には性能向上に明らかな障壁がある。
本発明はかかる事情を考慮してなされたものであり、計算機システムにおいてプロセッサの一時記憶装置に対しデータの先読みを制御する先読み制御装置、方法およびプログラムを提供し、安定かつ効果的な性能向上に寄与することを目的とする。
本発明の一観点に係る先読み制御装置は、主記憶装置にバスを介して接続され、該バスを介して前記主記憶装置からデータを読み出して一時記憶装置に転送するバスアクセス装置に対し、データの先読みを指示する先読み制御装置において、前記主記憶装置に対するデータアクセスの間隔を表すアクセスヒント情報を取得する手段と、前記バスアクセス装置による前記バスを介したデータの転送における転送遅延時間を表すシステム情報を取得する手段と、前記アクセス情報が表すデータアクセスの間隔と、前記システム情報が表す転送遅延時間とに基づいて、先読み単位数を計算する手段と、計算された先読み単位数のデータを当該データについてのデータアクセスに先行して前記主記憶装置から読み出すとともに前記一時記憶装置に転送するよう、前記バスアクセス装置に指示する手段と、を具備する。
本発明の別の観点に係る先読み制御装置は、主記憶装置にバスを介して接続され、該バスを介して前記主記憶装置からアドレス変換情報を読み出して一時記憶装置に転送するアドレス変換装置に対し、アドレス変換情報の先読みを指示する先読み制御装置において、前記主記憶装置に対するデータアクセスの間隔を表すアクセスヒント情報を取得する手段と、前記アドレス変換装置による前記バスを介したアドレス変換情報の転送における転送遅延時間を表すシステム情報を取得する手段と、前記アクセス情報が表すデータアクセスの間隔と、前記システム情報が表す転送遅延時間とに基づいて、先読み単位数を計算する手段と、計算された先読み単位数のアドレス変換情報を当該アドレス変換情報を用いるアドレス変換に先行して前記主記憶装置から読み出すとともに前記一時記憶装置に転送するよう、前記アドレス変換装置に指示する手段と、を具備する。
本発明によれば、計算機システムにおいて、安定かつ効果的な性能向上に寄与する先読み制御装置、方法およびプログラムを提供できる。
以下、図面を参照しながら本発明の実施形態を説明する。
(第1の実施形態)
図1は本発明の第1の実施形態に係る計算機システムを示すブロック図である。計算機システム101は、プロセッサ102、キャッシュ103、バスアクセス装置104、バス105、主記憶装置106、および先読み制御装置107を含んでいる。プロセッサ102は、演算処理に使用するデータをキャッシュ103に対してアクセスする。キャッシュ103は、必要なデータがキャッシュ上に存在しない場合には、バスアクセス装置104に対してデータ転送を指示する。バスアクセス装置104は、指示されたデータをバス105を介して主記憶装置106より転送する。先読み制御装置107は、プロセッサ102から得たアクセスヒント情報およびシステム情報に基づいて先読み処理を制御し、バスアクセス装置104に必要なデータの転送を指示する。アクセスヒント情報およびシステム情報については後述する。
なお、バスアクセス装置104は、連続したデータ転送を行うDMAコントローラを備えても良い。
キャッシュ103の代わりに、キャッシュと主記憶装置間のデータ転送機能を持たない、ローカルメモリを用いても良い。ローカルメモリは、キャッシュ103と同様の高速なメモリであり、データ供給速度は主記憶装置のそれと比較して高速である。ローカルメモリは主記憶装置との間の自動的なデータ転送機能は持たないことから、その分、回路規模を抑えることが出来るが、主記憶装置上のデータアクセスに先立ち、ローカルメモリと主記憶装置間のデータ転送を明示的に指示する必要がある。
キャッシュ103に代わるローカルメモリを用いる場合、ローカルメモリと主記憶装置106との間のデータ転送は、バスアクセス装置104がプロセッサ102あるいは先読み制御装置107の指示に基づいて行うこととする。
図2は図1に示した先読み制御装置のブロック図である。先読み制御装置107は、先読み指示部201と、アクセスヒント情報テーブル202と、データ先読み状態テーブル203とシステム情報204とを有する。
先読み指示部201は、プロセッサ102からアクセスヒント情報を取得してアクセスヒント情報テーブル202に格納する処理およびシステム情報204を取得する処理とを実行したのち、データへのアクセス開始および終了を識別してデータ先読み処理を実行する。アクセスヒント情報テーブル202は、アクセスヒント情報を格納する。データ先読み状態テーブル203は、処理が進行中のデータ先読みに関する情報を格納する。
先読み制御装置107については、プロセッサ102とは別のプロセッサにより特定の処理手順を実行するソフトウェアとして実現しても良い。なお、別のプロセッサではなくプロセッサ102上で動作するソフトウェアとして実現してもよい。
図3に、プロセッサ102より通知されるアクセスヒント情報の一例を示す。アクセスヒント情報301は、本例では、ID(識別子)、先頭アドレス、アクセス単位、ストライド、アクセス間隔、およびアクセスデータ数としている。IDは、アクセスヒント情報を識別するために使用される。先頭アドレスは、アクセスが開始されるアドレスを意味する。アクセス単位は、一回のデータアクセスの際にまとめてアクセスされるデータのサイズを意味する。ストライドは、あるアクセス単位と次のアクセス単位間のアドレス間隔を意味する。例えば、先頭アドレスが0x4000であり、ストライドが8であった場合には、最初のデータが0x4000にあり、次のデータが0x4008に、さらに次のデータが0x4010にあることを示す。ストライドに負の値が指定された場合には、先頭アドレスからアドレスの減少方向にアクセスが行われることを示す。アクセス間隔は、あるアクセス単位と次のアクセス単位間の時間間隔を意味する。時間の単位として、アクセスヒント情報301ではクロック数を用いているが、直接、時間を指定しても良い。アクセスデータ数は、このアクセスヒント情報に係わるデータアクセスの個数を意味する。
図4に、アクセスヒント情報テーブルの一例を示す。アクセスヒント情報テーブル202は、プロセッサ102より通知されたアクセスヒント情報を複数、記憶する。エントリ401やエントリ402など、アクセスヒント情報テーブル202の各エントリは、個別のアクセスヒント情報を表し、その項目は、アクセスヒント情報301と同様である。
図5に、データ先読み状態テーブルの一例を示す。データ先読み状態テーブル203は、本例では、ID、先読み対象アドレス、アクセス単位、ストライド、先読み単位数、先読みデータ残数としている。データ先読み状態テーブルのエントリ501は、アクセスヒント情報テーブルのエントリ401に対応し、データ先読み状態テーブルのエントリ502は、アクセスヒント情報テーブルのエントリ402に、それぞれ対応する。データ先読み状態テーブルのエントリ501は、8個の先読みが完了した後の状態を表し、データ先読み状態テーブルのエントリ502は、512個の先読みが完了した後の状態を表している。
ID、アクセス単位、およびストライドについては、対応するアクセスヒント情報テーブルのエントリから複製する。なお、アクセス単位およびストライドについては、データ先読み状態テーブルには複製せずに、IDを用いて該当するアクセスヒント情報テーブルのエントリを検索し、そのエントリに記憶されたアクセス単位およびストライドを使用しても良い。
先読み対象アドレスは、次に先読みを行うデータのアドレスを意味する。データ先読み状態テーブルのエントリ501は、8個の先読みが完了した後であるため、ストライドで示された16バイトと8個を掛けた128バイト(16進数で0x80)だけ、アクセスヒント情報テーブルのエントリ401に示された、先頭アドレスより進んでいる。同様に、データ先読み状態テーブルのエントリ502は、8192バイト(16進数で0x2000)だけ進んでいる。
先読み単位数は、対応するアクセスヒント情報とシステム情報とに基づいて、先読み指示部201にて計算する。
先読みデータ残数は、先読みを行うデータの残数を意味する。データ先読み状態テーブルのエントリ501は、8個の先読みが完了した後であるため、アクセスヒント情報テーブルのエントリ401に示されたアクセスデータ数より8だけ減少した値になっている。同様に、データ先読み状態テーブルのエントリ502は、512個の先読みが完了した後であるため、512だけ減少した値になっている。
次に、システム情報に関して、本発明の第1の実施形態においては、システム情報204はプロセッサ102のクロックと、バスアクセス装置104のデータ転送遅延時間とを表し、後述する先読み単位数の計算に用いられる。システム情報204は当該計算機システムの性能を反映した情報であって、プロセッサ102やバスアクセス装置104等から直接取得してもよいし、オペレーティングシステム等を通じて取得してもよい。
図6は、本発明の第1の実施形態に係るデータ先読み処理全体の手順を示すフローチャートである。事前に、プロセッサ102より、アクセスヒント情報301が先読み制御装置107に対して通知される(ステップS601)。この際、先読み制御装置107内の先読み指示部201がアクセスヒント情報301を受信し、アクセスヒント情報テーブル202に記憶する。また、先読み制御装置107は、システム情報204についても取得を行う。
次に、先読み処理の前処理が実行される(ステップS602)。先読み処理の前処理では、先読み処理の開始の識別や、データ先読み状態テーブル203へのエントリ追加処理などを行う。
続いて、先読み処理の後続処理が実行される(ステップS603)。先読み処理の後続処理では、データアクセス終了の識別と前処理によって用意されたデータ先読み状態テーブル203に追加されたエントリに基づき、残りのデータ先読み処理を継続して行う。
図7は、図6におけるデータ先読み処理の前処理に関するフローチャートである。はじめに、アクセスヒント情報テーブル202に格納された情報に該当するデータアクセスの開始の識別を行う(ステップS701)。データアクセス開始の識別には、プロセッサ102から先読み制御装置107に対し、アクセスヒント情報のID、あるいは、先頭アドレスを付与したアクセス開始情報を通知しても良い。あるいは、バスアクセス装置104へのデータ転送指示を監視し、そのアドレスとアクセスヒント情報テーブル202の先頭アドレスとが等しい場合に、該当するアクセスが開始されたと識別しても良い。
次に、対応するアクセスヒント情報をアクセスヒント情報テーブル202より読み出す(ステップS702)。続いて、アクセスヒント情報のアクセス間隔と、システム情報204である、プロセッサ102のクロックと、バスアクセス装置104のデータ転送遅延時間とに基づいて、先読み単位数を決定する(ステップS703)。先読み単位数の決定後、先頭アドレスから先読み単位数分のデータ取得を、バスアクセス装置104に指示する(ステップS704)。
次に、先読み単位数に応じて、対応するアクセスヒント情報の先頭アドレスとストライドから先読み対象アドレスを計算し、また、アクセスデータ数から先読みデータ残数を計算する(ステップS705)。この時、先読みデータ残数が0であるか確認し(ステップS706)、0で無い場合には、計算した先読み先頭アドレス、先読み単位数、先読みデータ残数と、対応するアクセスヒント情報のアクセス単位、ストライドとに基づいて、データ先読み状態テーブル203に新しいエントリを追加する(ステップS707)。
ここで、先読み単位数の具体的な計算例を示す。先読み単位数は、例えば次式(1)から与えられる。
Figure 0004212521
データ転送遅延には、バスアクセス装置104のデータ転送遅延時間を用いることが出来る。データアクセス時間には、アクセスヒント情報のアクセス間隔をプロセッサ102のクロックで割った値を用いることが出来る。データアクセス時間には、この他に、データアクセス間に実行する命令列からプロセッサ102の挙動を求め、処理時間を推定する方法、あるいは、命令列に含まれる命令数と平均処理時間との掛け算により推定する方法などを用いることが出来る。
図7に示したデータ先読み処理の前処理のステップS707において、データ先読み状態テーブル203に新しいエントリが追加された場合には、データ先読み処理の継続処理を行う。
図8は、図6のデータ先読み処理の継続処理に関するフローチャートを示す。
はじめに、データ先読み状態テーブルのエントリに該当するデータアクセスの終了を識別する(ステップS801)。データアクセス終了の識別には、プロセッサ102から先読み制御装置107に対し、アクセスの終了したデータのアドレスを付与したアクセス終了情報を通知しても良い。あるいは、キャッシュ103からバスアクセス装置104へのデータ転送指示を監視し、そのアドレスと先読み指示したアドレスとが等しい場合に、該当するアクセスが終了したと識別しても良い。
次に、対応するデータ先読み状態テーブルのエントリを読み出し(ステップS802)、そのエントリの先読み対象アドレスからデータアクセス終了数分のデータ取得をバスアクセス装置104に指示する(ステップS803)。続いて、ステップS803における先読み指示数に応じて、先読み対象アドレスおよび先読みデータ残数を、それぞれ更新する(ステップS804)。更新の結果、先読みデータ残数が0になっていないか確認し(ステップS805)、先読みデータ残数が0で無い場合には、ステップS801からの処理を継続し、先読みデータ残数が0の場合には、データ先読み状態テーブル203の該当エントリを削除する(ステップS806)。
以上説明した本発明の第1の実施形態によれば、事前に提供されるデータのアクセスヒント情報およびシステム情報に基づいて、先読み制御装置によりシステム性能等を考慮したデータ先読み処理を行い、プロセッサが必要とするデータを一時記憶装置(キャッシュ)に事前に配置することができる。
つまり、個別のデータアクセスではなく、連続するデータアクセスに係わる情報がアクセスヒント情報として事前に提供されることから、先読み処理による性能向上は効果的なものとなる。また、計算機システムの性能がシステム情報として考慮されることから、かかる性能向上は安定的で汎用性が高くなるという利点がある。
(第2の実施形態)
本発明の第2の実施形態はアドレス変換情報の先読みに関する。第1の実施形態で説明したデータの一時記憶(キャッシュ)のみならず、アドレス変換の仕組みについても、同様に本発明を適用可能であることを説明する。
先ず、アドレス変換の仕組みについて概略を説明する。計算機システム上で複数のプログラムを同時に実行するマルチプロセス方式では、各プロセスに用いるプログラムの開発を容易にするため、各プロセスに対して同一のアドレス空間を提供する方式が用いられることが多い。この場合、各プロセスに対し仮想的なアドレス空間が提供され、あたかもそのアドレス空間をそのプロセスが占有しているかのように使用することが出来る。この様な機能を提供する計算機システムにおいては、仮想的なアドレス空間を実現するため、Memory Management Unit(MMU)などのアドレス変換装置を備え、仮想的なアドレス空間と計算機システムが持つ実際の(物理的な)アドレス空間との変換処理を行う。これを「アドレス変換処理」という。
アドレス変換処理の際には、仮想的なアドレスと実際のアドレスとの関係を表すアドレス変換情報が用いられる。アドレス変換情報は、ページサイズなどのアドレス変換単位ごとに用意されるのが一般的である。そのアドレス変換単位内では、単一のアドレス変換情報を用いてアドレス変換が行われる。
計算機システムで使用されるアドレス変換情報は大量であることから、主記憶装置上に記憶される場合が多い。ここで、全てのデータアクセスの際にアドレス変換が必要であり、その度にアドレス変換情報が必要となるが、アドレス変換情報を毎回、主記憶装置から読み出していたのでは、データアクセスの性能が劣化してしまう。そこで、アドレス変換情報をTranslation Look-aside Buffer(TLB)などの高速なアドレス変換情報キャッシュ上に一時的に記憶し、キャッシュされたアドレス変換情報を用いることによって、高速なアドレス変換を実現する方式が用いられている。
アドレス変換情報キャッシュは、データに用いるキャッシュと同様、回路面積等のコストは主記憶装置と比較して高価であるが、そのデータ供給速度は主記憶装置のそれと比較して高速であり、データアクセス性能、および、その性能に依存しているプロセッサの演算処理能力を引き出すために必須な装置と言える。
第2の実施形態では、事前に提供されるデータのアクセスヒント情報およびシステム情報に基づいて、先読み制御装置によりシステム性能等を考慮した先読み処理を制御し、アドレス変換装置が必要とするアドレス変換情報を一時記憶装置(アドレス変換情報キャッシュ)に事前に配置することができるようにする。
図9は本発明の第2の実施形態に係る計算機システムを示すブロック図である。
計算機システム901は、プロセッサ902、キャッシュ903、バスアクセス装置904、バス905、主記憶装置906、先読み制御装置907、アドレス変換装置908、およびアドレス変換情報キャッシュ909を含んでいる。
プロセッサ902は、演算処理に使用するデータをキャッシュ903に対してアクセスする。キャッシュ903は、必要なデータがキャッシュ上に存在しない場合には、バスアクセス装置904にデータ転送を指示する。バスアクセス装置904は、指示されたデータのアドレスの変換をアドレス変換装置908に指示する。アドレス変換装置908は、アドレス変換情報キャッシュ909の情報に基づいてアドレスを変換し、その結果をバスアクセス装置904に返信する。バスアクセス装置904は、変換されたアドレスを用いて、データをバス905を介して主記憶装置906より転送する。先読み制御装置907は、プロセッサ902から得たアクセスヒント情報に基づいて先読み処理を制御し、アドレス変換装置908に必要なデータの転送を指示する。
バスアクセス装置904は、連続したデータ転送を行うDMAコントローラを備えても良い。
キャッシュ903の代わりに、キャッシュと主記憶装置間のデータ転送機能を持たない、ローカルメモリを用いても良い。この場合、ローカルメモリと主記憶装置間のデータ転送は、バスアクセス装置904がプロセッサ902あるいは先読み制御装置907の指示に基づいて行うこととする。
計算機システム901では、バスアクセス装置904と先読み制御装置907とが接続されているが、接続されていなくても良い。
図10は本発明の第2の実施形態に係る別の計算機システムを示すブロック図である。アドレス変換情報キャッシュがプロセッサとキャッシュとの間に挿入されている点で図9に示した計算機システムと異なる。
計算機システム1001は、プロセッサ1002、キャッシュ1003、バスアクセス装置1004、バス1005、主記憶装置1006、先読み制御装置1007、アドレス変換装置1008、およびアドレス変換情報キャッシュ1009を含んでいる。
プロセッサ1002は、演算処理に使用するデータの取得を、アドレス変換装置1008に指示する。アドレス変換装置1008は、データのアドレスを、アドレス変換情報キャッシュ1009の情報に基づいて変換し、変換したアドレスを用いて、キャッシュ1003に対してアクセスする。キャッシュ1003は、必要なデータがキャッシュ上に存在しない場合には、バスアクセス装置1004にデータ転送を指示する。バスアクセス装置1004は、データをバス1005を介して主記憶装置1006より転送する。先読み制御装置1007は、プロセッサ1002から得たアクセスヒント情報に基づいて先読み処理を制御し、アドレス変換装置1008に必要なアドレス変換情報の転送を指示する。
バスアクセス装置1004は、連続したデータ転送を行うDMAコントローラを備えても良い。
キャッシュ1003の代わりに、キャッシュと主記憶装置間のデータ転送機能を持たない、ローカルメモリを用いても良い。この場合、ローカルメモリと主記憶装置間のデータ転送は、バスアクセス装置1004がプロセッサ1002あるいは先読み制御装置1007の指示に基づいて行うこととする。
計算機システム1001では、バスアクセス装置1004と先読み制御装置1007とが接続されているが、接続されていなくても良い。
計算機システム901および1001を用いたアドレス変換情報の先読み処理は、共に同じ内容の処理となり、先読み処理装置907および1007の構成やその処理内容は等しい。そのため、以降の説明は、計算機システム901を用いて説明する。
図11は図9に示した先読み制御装置のブロック図である。先読み制御装置907は、先読み指示部1101と、アクセスヒント情報テーブル1102と、アドレス変換情報先読み状態テーブル1103とシステム情報1105とを有する。先読み指示部1101は、プロセッサ902からのアクセスヒント情報を受け取り、アクセスヒント情報テーブル1102に格納する処理と、データへのアクセス開始および終了を識別し、アドレス変換情報先読み処理とを実行する。アクセスヒント情報テーブル1102は、アクセスヒント情報テーブル202と同じ構成であり、アクセスヒント情報を格納する。アドレス変換情報先読み状態テーブル1103は、処理が進行中のアドレス変換情報の先読みに関する情報を記憶する。
先読み制御装置907は、プロセッサ902とは別のプロセッサを用いて、その処理手法をソフトウェアとして実現しても良い。あるいは、プロセッサ902上で動作するソフトウェアとして実現してもよい。
本実施形態に使用するアクセスヒント情報およびアクセスヒント情報テーブル1102は、第1の実施形態で説明したアクセスヒント情報301およびアクセスヒント情報テーブル202を使用する。
図12に、アドレス変換情報先読み状態テーブルの一例を示す。アドレス変換情報先読み状態テーブル1103は、本例では、ID、先読み対象アドレス、ストライド、先読み単位数、および先読み情報残数としている。
本例のアドレス変換情報先読み状態テーブルのエントリ1201は、アクセスヒント情報テーブルのエントリ401に、アドレス変換情報先読み状態テーブルのエントリ1202は、アクセスヒント情報テーブルのエントリ402に、それぞれ対応する。アドレス変換情報先読み状態テーブルのエントリ501は、1個の先読みが完了した後の状態を表し、アドレス変換情報先読み状態テーブルのエントリ502は、2個の先読みが完了した後の状態を表している。
先読み対象アドレスは、次に先読みを行うアドレス変換情報の変換前アドレスを意味する。アドレス変換情報先読み状態テーブルのエントリ501は、1個の先読みが完了した後であるため、ストライドで示された0x1000バイトと1個を掛けた0x1000バイトだけ、アクセスヒント情報テーブルのエントリ401に示された、先頭アドレスより進んでいる。同様に、アドレス変換情報先読み状態テーブルのエントリ502は、0x2000だけ進んでいる。
ストライドおよび先読み単位数は、対応するアクセスヒント情報とシステム情報とに基づいて、先読み指示部1101にて計算する。
先読み情報残数は、先読みを行うアドレス変換情報の残数を意味する。
次に、システム情報に関して、本発明の第2の実施形態においては、システム情報1105はアドレス変換単位と、プロセッサ902のクロックと、バスアクセス装置904のデータ転送遅延時間を表し、後述するストライドと先読み単位数の計算に用いられる。システム情報1105は当該計算機システムの性能を反映した情報であって、プロセッサ902やバスアクセス装置904等から直接取得してもよいし、オペレーティングシステム等を通じて取得してもよい。
図13は、本発明の第2の実施形態に係るアドレス変換情報の先読み処理全体の手順を示すフローチャートである。事前に、プロセッサ902よりアクセスヒント情報301が先読み制御装置907に対して通知される(ステップS1301)。この際、先読み制御装置907内の先読み指示部1101が、アクセスヒント情報301を受信し、アクセスヒント情報テーブル1102に記憶する。また、先読み制御装置907は、システム情報1105についても取得を行う。
次に、先読み処理の前処理を実行する(ステップS1302)。先読み処理の前処理では、先読み処理の開始の識別や、アドレス変換情報先読み状態テーブル1103へのエントリ追加処理などを行う。
続いて、先読み処理の後続処理を実行する(ステップS1303)。先読み処理の後続処理では、データアクセス終了の識別と前処理によって用意されたアドレス変換情報先読み状態テーブル1103に追加されたエントリに基づき、残りのアドレス変換情報の先読み処理を継続して行う。
図14は、図13のアドレス変換情報の先読み処理の前処理に関するフローチャートである。はじめに、アクセスヒント情報テーブル1102に格納された情報に該当するデータアクセスの開始の識別を行う(ステップS1401)。データアクセス開始の識別には、プロセッサ902から先読み制御装置907に対し、アクセスヒント情報のID、あるいは、先頭アドレスを付与したアクセス開始情報を通知しても良い。あるいは、バスアクセス装置904へのデータ転送指示を監視し、そのアドレスとアクセスヒント情報テーブル1102の先頭アドレスとが等しい場合に、該当するアクセスが開始されたと識別しても良い。
次に、対応するアクセスヒント情報をアクセスヒント情報テーブル1102より読み出す(ステップS1402)。続いて、アクセスヒント情報のアクセス間隔と、システム情報1105である、アドレス変換単位と、プロセッサ902のクロックと、バスアクセス装置904のデータ転送遅延時間に基づいて、ストライドと先読み単位数を決定する(ステップS1403)。先読み単位数の決定後、先頭アドレスから先読み単位数分のアドレス変換情報の取得を、アドレス変換装置908に指示する(ステップS1404)。
次に、先読み単位数に応じて、対応するアクセスヒント情報の先頭アドレスとストライドから先読み対象アドレスを計算し、また、アクセスデータ数とアドレス変換単位から先読み情報残数を計算する(ステップS1405)。この時、先読み情報残数が0であるか確認し(ステップS1406)、0で無い場合には、計算した先読み先頭アドレス、ストライド、先読み単位数、および先読み情報残数に基づいて、アドレス変換情報先読み状態テーブル1103に新しいエントリを追加する(ステップS1407)。
ここで、アドレス変換情報先読み状態テーブル1103に格納する、ストライドと先読み単位数の具体的な計算例を示す。
ストライドは、例えば次式(2)から与えられる。
Figure 0004212521
データアクセスのストライドが、アドレス変換単位より小さい場合には、複数のデータアクセスにおいて、同一のアドレス変換情報を用いることが出来る場合がある。そのため、アドレス変換情報を使用する間隔は、データアクセス間隔よりも長くなる場合がある。そのため、アドレス変換情報使用間隔を計算する。
アドレス変換情報使用間隔は、例えば次式(3)から与えられる。
Figure 0004212521
計算されたアドレス変換情報使用間隔の値を用いて、アドレス変換情報の先読み単位数は、例えば次式(4)から与えられる。
Figure 0004212521
データ転送遅延には、バスアクセス装置904のデータ転送遅延時間を用いることが出来る。アドレス変換情報使用時間は、アドレス変換情報使用間隔をプロセッサ902のクロックで割った値を用いることが出来る。
図14に示したデータ先読み処理の前処理のステップS1407において、アドレス変換情報先読み状態テーブル1103に新しいエントリが追加された場合には、データ先読み処理の継続処理を行う。
図15は、図13のアドレス変換情報の先読み処理の継続処理に関するフローチャートである。はじめに、アドレス変換情報先読み状態テーブルのエントリに該当するデータアクセスの終了を識別する(ステップS1501)。
データアクセス終了の識別には、プロセッサ902から先読み制御装置907に対し、アクセスの終了したデータのアドレスを付与したアクセス終了情報を通知しても良い。あるいは、キャッシュ903からバスアクセス装置904へのデータ転送指示を監視し、そのアドレスと先読み指示したアドレスとが等しい場合に、該当するアクセスが終了したと識別しても良い。
次に、対応するアドレス変換情報先読み状態テーブルのエントリを読み出し(ステップS1502)、そのエントリの先読み対象アドレスから、データアクセス終了数から計算した必要数分のアドレス変換情報の取得を、アドレス変換装置908に指示する(ステップS1503)。続いて、ステップS1503における先読み指示数に応じて、先読み対象アドレスおよび先読み情報残数を、それぞれ更新する(ステップS1504)。更新の結果、先読み情報残数が0になっていないか確認し(ステップS1505)、先読み情報残数が0で無い場合には、ステップS1501からの処理を継続し、先読み情報残数が0の場合には、アドレス変換情報先読み状態テーブル1103の該当エントリを削除する(ステップS1506)。
ここで、データアクセス終了数分から、必要なアドレス変換情報の先読み指示数を計算する具体的な方法を示す。先読みを行うアドレス変換情報の数は、データアクセス終了によって使用済みになったアドレス変換情報の数を用いる。アドレス変換情報の先読み指示数は、例えば次式(5)から与えられる。
Figure 0004212521
あるいは、毎回のデータアクセス終了数ではなく、全てのデータ終了数の累積数から使用済みアドレス変換情報の数を計算し、先読み指示済みアドレス変換情報さら差し引いた値を、先読み指示中アドレス変換情報数とし、その数が先読み単位数より小さい場合には、先読み単位数から先読み指示中のアドレス変換情報数を引いた値を、アドレス変換情報の先読み指示数としても良い。
以上説明した本発明の第2の実施形態によれば、事前に提供されるアドレス変換情報のアクセスヒント情報およびシステム情報に基づいて、先読み制御装置によりシステム性能等を考慮したアドレス変換情報の先読み処理を行い、アドレス変換装置が必要とするアドレス変換情報を一時記憶装置(アドレス変換情報キャッシュ)に事前に配置することができる。
(第3の実施形態)
図16は、本発明の第3の実施形態に係る先読み制御装置を示すブロック図である。
図9および図10に示した計算機システムは、アドレス変換情報の先読み処理と同時に、データ先読み処理を行うことが出来るものであるが、第3の実施形態は、この場合に適用される先読み制御装置907(1007)の内部構成例を示すものである。
同図に示すように、先読み指示部1101に対して、データ先読み状態テーブル1103とアドレス変換情報テーブル1104の両者が設けられている。アクセスヒント情報およびアクセスヒント情報テーブル1102については、第2の実施形態で説明したように、第1の実施形態で説明したアクセスヒント情報301およびアクセスヒント情報テーブル202と同じものが用いられる。
図16に示すように先読み制御装置を構成すれば、第1の実施形態で説明したデータ先読み処理と、第2の実施形態で説明したアドレス変換情報の先読み処理とを同時に実現することが出来る。
(第4の実施形態)
図17は本発明の第4の実施形態に係る計算機システムを示すブロック図である。同図に示すように、本実施形態に係る計算機システムは、バス905を介して主記憶装置906に対し接続される複数のプロセッサユニット901a,901b,901c...を有する。なお、図16において、各プロセッサユニットは第2の実施形態で説明した計算機システム901と同様の構成であるが、アドレス変換装置等を含まずデータキャッシュのみを備える構成も可能である。
このような第4の実施形態に係る計算機システムによれば、各プロセッサユニット毎に独立して本発明の作用効果を奏することができ、プロセッサユニット数の増加に応じてそれは顕著となる。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
本発明の第1の実施形態に係る計算機システムを示すブロック図 図1に示した先読み制御装置のブロック図 プロセッサより通知されるアクセスヒント情報の一例を示す図 アクセスヒント情報テーブルの一例を示す図 データ先読み状態テーブルの一例を示す図 本発明の第1の実施形態に係るデータ先読み処理全体の手順を示すフローチャート 図6におけるデータ先読み処理の前処理に関するフローチャート 図6のデータ先読み処理の継続処理に関するフローチャート 本発明の第2の実施形態に係る計算機システムを示すブロック図 本発明の第2の実施形態に係る別の計算機システムを示すブロック図 図9に示した先読み制御装置のブロック図 アドレス変換情報先読み状態テーブルの一例を示す 本発明の第2の実施形態に係るアドレス変換情報の先読み処理全体の手順を示すフローチャート 図13のアドレス変換情報の先読み処理の前処理に関するフローチャート 図13のアドレス変換情報の先読み処理の継続処理に関するフローチャート 本発明の第3の実施形態に係る先読み制御装置を示すブロック図 本発明の第4の実施形態に係る計算機システムを示すブロック図
符号の説明
101,901,1001…計算機システム;
102,902,1102…プロセッサ;
103,903,1003…キャッシュ;
104,904,1004…バスアクセス装置;
105,905,1005…バス;
106,906,1006…主記憶装置;
107,907,1007…先読み制御装置;
908,1008…アドレス変換装置;
909,1009…アドレス変換情報キャッシュ

Claims (12)

  1. 主記憶装置にバスを介して接続され、該バスを介して前記主記憶装置からアドレス変換情報を読み出して一時記憶装置に転送するアドレス変換装置に対し、アドレス変換情報の先読みを指示する先読み制御装置において、
    前記主記憶装置に対するデータアクセスの時間間隔を表すアクセスヒント情報を取得する手段と、
    前記アクセスヒント情報を記憶するテーブルと、
    前記アドレス変換装置による前記バスを介したアドレス変換情報の転送における転送遅延時間を表すシステム情報を取得する手段と、
    データの転送指示を監視することにより、前記テーブルに記憶されたアクセスヒント情報に該当するデータアクセスの開始を識別する手段と、
    前記データアクセスの開始を識別したら、前記アクセスヒント情報が表すデータアクセスの時間間隔及びアドレス変換単位とデータアクセスのストライドとの大小関係から、同一のアドレス変換情報を用いることが可能な時間を表すアドレス変換情報使用時間を計算し、該アドレス変換情報使用時間と前記システム情報が表す転送遅延時間とに基づいて、第1の先読み単位数を計算する手段と、
    前記第1の先読み単位数のアドレス変換情報を当該アドレス変換情報を用いるアドレス変換に先行して前記主記憶装置から読み出すとともに前記一時記憶装置に転送するよう、前記アドレス変換装置に指示する手段と、を具備する先読み制御装置。
  2. 前記一時記憶装置はアドレス変換情報キャッシュを含む請求項記載の先読み制御装置。
  3. 記データアクセスの時間間隔と前記システム情報が表す転送遅延時間とに基づいて第2の先読み単位数を計算し、該第2の先読み単位数に相当するデータを当該データについてのデータアクセスに先行して前記主記憶装置から読み出すとともにデータキャッシュに転送するよう、バスアクセス装置に指示する手段をさらに具備する請求項1記載の先読み制御装置。
  4. 前記第2の先読み単位数は、前記転送遅延時間をデータアクセス時間で除することにより計算され、前記データアクセス時間は、前記アクセスヒント情報が表すデータアクセスの時間間隔をプロセッサのクロック速度で除することにより計算されることを特徴とする請求項3記載の先読み制御装置。
  5. 主記憶装置にバスを介して接続され、該バスを介して前記主記憶装置からアドレス変換情報を読み出して一時記憶装置に転送するアドレス変換装置に対し、アドレス変換情報の先読みを指示する先読み制御方法において、
    前記主記憶装置に対するデータアクセスの時間間隔を表すアクセスヒント情報を取得するステップと、
    前記アクセスヒント情報をテーブルに記憶するステップと、
    前記アドレス変換装置による前記バスを介したアドレス変換情報の転送における転送遅延時間を表すシステム情報を取得するステップと、
    データの転送指示を監視することにより、前記テーブルに記憶されたアクセスヒント情報に該当するデータアクセスの開始を識別するステップと、
    前記データアクセスの開始を識別したら、前記アクセスヒント情報が表すデータアクセスの時間間隔及びアドレス変換単位とデータアクセスのストライドとの大小関係から、同一のアドレス変換情報を用いることが可能な時間を表すアドレス変換情報使用時間を計算し、該アドレス変換情報使用時間と前記システム情報が表す転送遅延時間とに基づいて、第1の先読み単位数を計算するステップと、
    前記第1の先読み単位数のアドレス変換情報を当該アドレス変換情報を用いるアドレス変換に先行して前記主記憶装置から読み出すとともに前記一時記憶装置に転送するよう、前記アドレス変換装置に指示するステップと、を具備する先読み制御方法。
  6. 前記一時記憶装置はアドレス変換情報キャッシュを含む請求項5記載の先読み制御方法。
  7. 前記データアクセスの時間間隔と前記システム情報が表す転送遅延時間とに基づいて第2の先読み単位数を計算し、該第2の先読み単位数に相当するデータを当該データについてのデータアクセスに先行して前記主記憶装置から読み出すとともにデータキャッシュに転送するようバスアクセス装置に指示するステップをさらに具備する請求項5記載の先読み制御方法。
  8. 前記第2の先読み単位数は、前記転送遅延時間をデータアクセス時間で除することにより計算され、前記データアクセス時間は、前記アクセスヒント情報が表すデータアクセスの時間間隔をプロセッサのクロック速度で除することにより計算されることを特徴とする請求項7記載の先読み制御方法。
  9. 主記憶装置にバスを介して接続され、該バスを介して前記主記憶装置からアドレス変換情報を読み出して一時記憶装置に転送するアドレス変換装置に対し、アドレス変換情報の先読みを指示する先読み制御装置としてコンピュータを機能させるためのプログラムであって、
    前記主記憶装置に対するデータアクセスの時間間隔を表すアクセスヒント情報を取得する手順と、
    前記アクセスヒント情報をテーブルに記憶する手順と、
    前記アドレス変換装置による前記バスを介したアドレス変換情報の転送における転送遅延時間を表すシステム情報を取得する手順と、
    データの転送指示を監視することにより、前記テーブルに記憶されたアクセスヒント情報に該当するデータアクセスの開始を識別する手順と、
    前記データアクセスの開始を識別したら、前記アクセスヒント情報が表すデータアクセスの時間間隔及びアドレス変換単位とデータアクセスのストライドとの大小関係から、同一のアドレス変換情報を用いることが可能な時間を表すアドレス変換情報使用時間を計算し、該アドレス変換情報使用時間と前記システム情報が表す転送遅延時間とに基づいて、第1の先読み単位数を計算する手順と、
    前記第1の先読み単位数のアドレス変換情報を当該アドレス変換情報を用いるアドレス変換に先行して前記主記憶装置から読み出すとともに前記一時記憶装置に転送するよう、前記アドレス変換装置に指示する手順とをコンピュータに実行させるためのプログラム。
  10. 前記一時記憶装置はアドレス変換情報キャッシュを含む請求項9記載のプログラム。
  11. 前記データアクセスの時間間隔と前記システム情報が表す転送遅延時間とに基づいて第2の先読み単位数を計算し、該第2の先読み単位数に相当するデータを当該データについてのデータアクセスに先行して前記主記憶装置から読み出すとともにデータキャッシュに転送するようバスアクセス装置に指示する手順をさらにコンピュータに実行させるための請求項9記載のプログラム。
  12. 前記第2の先読み単位数は、前記転送遅延時間をデータアクセス時間で除することにより計算され、前記データアクセス時間は、前記アクセスヒント情報が表すデータアクセスの時間間隔をプロセッサのクロック速度で除することにより計算されることを特徴とする請求項11記載のプログラム。
JP2004194372A 2004-06-30 2004-06-30 先読み制御装置、プロセッサの一時記憶装置へデータの先読みを制御する先読み制御方法およびプログラム Expired - Fee Related JP4212521B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2004194372A JP4212521B2 (ja) 2004-06-30 2004-06-30 先読み制御装置、プロセッサの一時記憶装置へデータの先読みを制御する先読み制御方法およびプログラム
EP05253269A EP1622032A3 (en) 2004-06-30 2005-05-27 Preload controller, preload control method for controlling preload of data by processor to temporary memory, and program
US11/151,344 US7500061B2 (en) 2004-06-30 2005-06-14 Preload controller, preload control method for controlling preload of data by processor to temporary memory, and program
CNB2005100818213A CN100385390C (zh) 2004-06-30 2005-06-30 预载控制器以及控制数据的预载访问的方法
US12/190,370 US20080307162A1 (en) 2004-06-30 2008-08-12 Preload controller, preload control method for controlling preload of data by processor to temporary memory, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004194372A JP4212521B2 (ja) 2004-06-30 2004-06-30 先読み制御装置、プロセッサの一時記憶装置へデータの先読みを制御する先読み制御方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2006018474A JP2006018474A (ja) 2006-01-19
JP4212521B2 true JP4212521B2 (ja) 2009-01-21

Family

ID=34941479

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004194372A Expired - Fee Related JP4212521B2 (ja) 2004-06-30 2004-06-30 先読み制御装置、プロセッサの一時記憶装置へデータの先読みを制御する先読み制御方法およびプログラム

Country Status (4)

Country Link
US (2) US7500061B2 (ja)
EP (1) EP1622032A3 (ja)
JP (1) JP4212521B2 (ja)
CN (1) CN100385390C (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4945200B2 (ja) 2006-08-29 2012-06-06 株式会社日立製作所 計算機システム及びプロセッサの制御方法
JP5076616B2 (ja) * 2007-04-24 2012-11-21 富士通株式会社 プロセッサ及びプリフェッチ制御方法
US7730289B2 (en) * 2007-09-27 2010-06-01 Faraday Technology Corp. Method for preloading data in a CPU pipeline
JP2011095852A (ja) * 2009-10-27 2011-05-12 Toshiba Corp キャッシュメモリ制御回路
JP2011198091A (ja) * 2010-03-19 2011-10-06 Toshiba Corp 仮想アドレスキャッシュメモリ、プロセッサ及びマルチプロセッサシステム
US9403003B2 (en) 2010-07-30 2016-08-02 Advanced Bionics Ag Methods and systems for fitting a sound processor to a patient using a plurality of pre-loaded sound processing programs
US8850123B2 (en) * 2010-10-19 2014-09-30 Avago Technologies General Ip (Singapore) Pte. Ltd. Cache prefetch learning
US9092358B2 (en) * 2011-03-03 2015-07-28 Qualcomm Incorporated Memory management unit with pre-filling capability
CN102522110B (zh) * 2011-11-30 2014-07-30 苏州顺芯半导体有限公司 数字音频接口发送电路中实现数据预加载的方法和装置
CN104025065B (zh) 2011-12-21 2018-04-06 英特尔公司 用于存储器层次察觉的生产者‑消费者指令的装置和方法
US9711392B2 (en) 2012-07-25 2017-07-18 Infineon Technologies Ag Field emission devices and methods of making thereof
US9122613B2 (en) * 2013-03-07 2015-09-01 Arm Limited Prefetching of data and instructions in a data processing apparatus
US9384136B2 (en) * 2013-04-12 2016-07-05 International Business Machines Corporation Modification of prefetch depth based on high latency event
JP6458682B2 (ja) * 2015-08-24 2019-01-30 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US10402332B2 (en) * 2016-05-24 2019-09-03 Xilinx, Inc. Memory pre-fetch for virtual memory
US10713173B2 (en) 2018-09-06 2020-07-14 Intel Corporation Memory controller with pre-loader

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09198249A (ja) * 1996-01-16 1997-07-31 Canon Inc プリフェッチ制御装置及び方法
US5829028A (en) * 1996-05-06 1998-10-27 Advanced Micro Devices, Inc. Data cache configured to store data in a use-once manner
US5940876A (en) * 1997-04-02 1999-08-17 Advanced Micro Devices, Inc. Stride instruction for fetching data separated by a stride amount
US6012106A (en) * 1997-11-03 2000-01-04 Digital Equipment Corporation Prefetch management for DMA read transactions depending upon past history of actual transfer lengths
US6401192B1 (en) * 1998-10-05 2002-06-04 International Business Machines Corporation Apparatus for software initiated prefetch and method therefor
JP3969009B2 (ja) * 2001-03-29 2007-08-29 株式会社日立製作所 ハードウェアプリフェッチシステム
US6760818B2 (en) * 2002-05-01 2004-07-06 Koninklijke Philips Electronics N.V. Memory region based data pre-fetching
US6918010B1 (en) * 2002-10-16 2005-07-12 Silicon Graphics, Inc. Method and system for prefetching data
KR20050084232A (ko) * 2002-12-12 2005-08-26 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 데이터 프리패치 방법, 프리패치 시스템 및 프로세싱시스템
US6981099B2 (en) * 2002-12-16 2005-12-27 Sun Microsystems, Inc. Smart-prefetch
US7146467B2 (en) * 2003-04-14 2006-12-05 Hewlett-Packard Development Company, L.P. Method of adaptive read cache pre-fetching to increase host read throughput
US7177985B1 (en) * 2003-05-30 2007-02-13 Mips Technologies, Inc. Microprocessor with improved data stream prefetching
US7228387B2 (en) * 2003-06-30 2007-06-05 Intel Corporation Apparatus and method for an adaptive multiple line prefetcher

Also Published As

Publication number Publication date
EP1622032A2 (en) 2006-02-01
US20060004966A1 (en) 2006-01-05
CN100385390C (zh) 2008-04-30
JP2006018474A (ja) 2006-01-19
US7500061B2 (en) 2009-03-03
CN1716187A (zh) 2006-01-04
EP1622032A3 (en) 2009-07-15
US20080307162A1 (en) 2008-12-11

Similar Documents

Publication Publication Date Title
JP4212521B2 (ja) 先読み制御装置、プロセッサの一時記憶装置へデータの先読みを制御する先読み制御方法およびプログラム
US8667225B2 (en) Store aware prefetching for a datastream
JP3820261B2 (ja) データ処理システムの外部および内部命令セット
US7644234B2 (en) Information processing apparatus with a cache memory and information processing method
US9727469B2 (en) Performance-driven cache line memory access
JP7160956B2 (ja) 分岐命令のタイプに基づく先行分岐予測の選択的実行
JP3549079B2 (ja) キャッシュ制御の命令プリフェッチ方法
US9201798B2 (en) Processor instruction based data prefetching
MXPA97002265A (en) Method and apparatus for processing memory type information within a microprocess
JP2004326785A (ja) 同時マルチスレッドのための分割分岐履歴テーブルおよびカウント・キャッシュ
TW200842703A (en) Branch predictor directed prefetch
TW201126413A (en) Microprocessor that performs fast repeat string loads
US5784711A (en) Data cache prefetching under control of instruction cache
US7526613B2 (en) Data processing system with prefetching means
US9639472B2 (en) Prefetch list management in a computer system
US6446143B1 (en) Methods and apparatus for minimizing the impact of excessive instruction retrieval
US20220083338A1 (en) DSB Operation with Excluded Region
Zhao et al. Hardware support for accelerating data movement in server platform
JP2015060529A (ja) 演算処理装置、演算処理装置の制御方法及びプログラム
JPH0651982A (ja) 演算処理装置
Few Infovis as seen by the world out there: 2007 in review
KR100282225B1 (ko) 데이타 캐쉬 메모리의 제어장치
EP0482706A2 (en) Method for intelligent data cache prefetching, and computer for implementing this method
JP2002318688A (ja) 画像処理装置、画像処理方法、プログラム
JPH0492940A (ja) トランザクション実行方式

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080604

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080617

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080813

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080902

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081003

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: 20081021

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081028

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

Free format text: PAYMENT UNTIL: 20111107

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20111107

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121107

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20131107

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees