JP2004038345A - プリフェッチ制御装置、情報処理装置及びプリフェッチ制御方法 - Google Patents
プリフェッチ制御装置、情報処理装置及びプリフェッチ制御方法 Download PDFInfo
- Publication number
- JP2004038345A JP2004038345A JP2002191464A JP2002191464A JP2004038345A JP 2004038345 A JP2004038345 A JP 2004038345A JP 2002191464 A JP2002191464 A JP 2002191464A JP 2002191464 A JP2002191464 A JP 2002191464A JP 2004038345 A JP2004038345 A JP 2004038345A
- Authority
- JP
- Japan
- Prior art keywords
- address
- prefetch
- request
- value
- entry
- 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
Images
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/60—Details of cache memory
- G06F2212/6024—History based prefetching
-
- 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
Abstract
【解決手段】プリフェッチアドレスキュー25に、過去のメモリアクセスに基く複数のアドレス値を記憶しておき、リクエストアドレスレジスタ21内のプロセッサユニットからの要求アドレスが、このアドレス値と一致した場合、要求アドレスにブロックサイズを加えたプリフェッチアドレスをプリフェッチ要求として二次キャッシュに出力する。またこのプリフェッチアドレスは、プリフェッチアドレスキュー25に書き戻される。
【選択図】 図2
Description
【発明の属する技術分野】
本発明は、情報処理装置で行われるプリフェッチについての技術に関する。
【0002】
【従来の技術】
従来から、CPUと主記憶装置の間にキャッシュメモリを持ちメモリアクセスの高速化を図る等の方法によってコンピュータの処理速度を高めてきた。
【0003】
更に近年では、メモリアクセスに要する時間とCPUの命令実行サイクルとの差は益々大きくなってきており、キャッシュメモリのヒット率向上やキャッシュミスレイテンシの改善がさらに望まれている。
【0004】
このような問題に対する一つの方法として、プリフェッチによるものがある。
プリフェッチは、近い将来必要とされている命令もしくはデータを予め予測してキャッシュメモリ等に読み込んでおく手法で、キャッシュのヒットミス率を下げることが出来る。しかし、不要なデータをプリフェチするとその分必要なデータをキャッシュから追い出してしまうこととなり、かえってキャッシュのヒット率を下げてしまう可能性もある。その為、プリフェッチする命令やデータのアドレスを如何に高い精度で予測を行うかが重要な課題となっている。
【0005】
プリフェッチはコンパイラ等により挿入されたプリフェッチ命令により行うソフトウエアプリフェッチによる方法と、ハードウェアにより予測実行する方法に大別される。例えばハードウェアによるプリフェッチでは、キャッシュミスしたブロックの次のブロックをプリフェッチする方法などはよく知られている。
【0006】
【発明が解決しようとする課題】
前述の通り、プリフェッチ制御においてはプリフェッチアドレスの予測が重要な課題となっている。つまり、必要なプリフェッチを要求しながらも、なるべく無駄なプリフェッチは抑制しなければいけない。
【0007】
キャッシュミスブロックの次のブロックをプリフェッチする方法では、キャッシュミスの時のみプリフェッチが行われる為、複数ブロックを連続してアクセスする場合では、明らかにプリフェッチするブロック数に不足がある。またこの点を補う為、連続したブロックを予めプリフェッチしておく方法もあるが、この場合にはプリフェッチするデータが大きくなるので、予測が外れると大きな無駄が発生する。
【0008】
また、連続したアドレスをアクセスしている場合でも、複数のデータ域間で転送している場合など別々のデータ域への連続したアクセスが混在している状況では、単純なリクエストアドレスの前後関係だけでは予測が難しい。
【0009】
本発明は、上記課題を解決するプリフェッチ制御装置、情報処理装置及びプリフェッチ制御方法を提供することを目的とする。
【0010】
【課題を解決するための手段】
上記課題を解決する為、本発明による情報処理装置は、キャッシュメモリ手段、アドレス記録手段及びプリフェッチ要求手段を備える。
【0011】
アドレス記録手段は、過去にメモリアクセスを行ったアドレスに基づいたアドレス値を記録する。
プリフェッチ要求手段と、アクセス要求があった要求アドレスと、上記アドレス記録手段に記録されている上記アドレス値の比較の結果に基づいて、上記キャッシュメモリ手段にプリフェッチ要求を行う。
【0012】
また本発明によるプリフェッチ制御装置は、キャッシュメモリ手段を備えた情報処理装置で用いられることを前提とし、上記アドレス記憶手段と上記プリフェッチ要求手段を備える。
【0013】
この構成により精度が高い予測によるプリフェッチを実現することが出来る。
上記プリフェッチ要求手段は、上記アドレス値から求めたプリフェッチアドレスを上記キャッシュメモリ手段に示すことにより上記プリフェッチ要求を行う。そしてこのプリフェッチアドレスに基いたアドレス値を上記アドレス記録手段に記録することにより、連続した領域をプリフェッチすることが出来、またその領域へのアクセスを止めれば、それ以上続けて連続した領域をプリフェッチすることはない。
【0014】
上記アドレス記録手段は、例えばプリフェッチを行う方向を示す方向フラグを上記アドレス値と関連付けて記録し、上記プリフェッチ要求手段は、上記アドレス値から求めたプリフェッチアドレスと上記方向フラグに基いたプリフェッチを行う方向を上記キャッシュメモリ手段に示すことによって、上記プリフェッチ要求を行う。これにより、昇順方向だけでなく降順方向へのアクセスに対してもプリフェッチを行える。
【0015】
上記アドレス記録手段は、例えば複数の上記アドレス値を記録し、新たなアドレス値を記録する際、該複数のアドレス値の登録順序に基いて上記アドレス値の置き換えを行う。これにより、使われない不要なアドレス値は破棄され、ヒットする可能性の高い、新しいアドレス値がアドレス記録手段内に残る。
【0016】
上記アドレス記録手段は、例えば上記要求アドレスと上記プリフェッチアドレスとの差を示す差分値情報を上記アドレス値と対応付けて記録する。そしてこの差分値情報を用いて、要求アドレスを求めることによって、要求アドレスから複数ブロック先のデータまでプリフェッチすることが出来る。
【0017】
上記プリフェッチ要求手段は、上記プリフェッチアドレスとプリフェチするデータの大きさを示すことにより、上記プリフェッチ要求を行うことによって、プリフェッチされない領域が生じるのを防ぐ。
【0018】
上記アドレス記憶手段は、例えば書き込み要求かどうかを示す第1のタイプ情報を上記アドレス値と対応付けて記録し、上記プリフェッチ要求は、上記タイプ情報に基いた書き込み要求かどうかを示す第2のタイプ情報を含む。これにより、キャッシュ手段に、プリフェッチするデータを書き込み可能な状態でプリフェッチするかどうかを指示することが出来る。
【0019】
上記プリフェッチ要求手段は、例えば複数の上記要求アドレスと上記アドレス値を比較する手段を備え、同時に複数の要求アドレスからプリフェッチ要求を生成する。これにより二つの異なるキャッシュアクセスに対して同時にプリフェッチアドレスの予測が可能になる。
【0020】
また上記キャッシュメモリ手段は、該キャッシュメモリ手段の上位となる上位キャッシュメモリ手段を備える構成とすることも出来る。これにより、下位にあるキャッシュメモリ手段に対して、プリフェッチ要求がなされるので、上位キャッシュメモリへのプリフェッチ処理による影響を押さえつつ上位キャッシメモリュのミスレイテンシを改善できる。
【0021】
またキャッシュメモリ手段を備えた情報処理装置で行われるプリフェッチ制御方法も本発明の適用範囲である。
【0022】
【発明の実施の形態】
図1は本実施形態におけるコンピュータシステムのCPU及びその周辺構成の概略図である。
【0023】
図1の構成では、プロセッサユニット1、プリフェッチ制御装置2、一次キャッシュ3、二次キャッシュ4及び主記憶装置5を有している。
プロセッサユニット1は、ALU、レジスタ等を含み、実際の計算やデータ処理を司る部分である。また同図の構成では、分岐予測等もプロセッサユニット1内で行われ、予測結果に基いたリクエストを1次キャッシュ3に行う。プリフェッチ制御装置2は、プリフェッチ処理の制御全般を受け持つ装置で、プロセッサユニット1から一次キャッシュ3へのリクエストアドレスを監視ながら、二次キャッシュ4にプリフェッチを要求する。一次キャッシュ3は、一次キャッシュシステムで、アクセス速度の早いメモリと一次キャッシュ制御装置から構成されている。二次キャッシュ4は、二次キャッシュシステムで、主記憶装置5よりはアクセス速度が早く一次キャッシュ3より容量の大きなメモリと二次キャッシュ制御装置から構成されている。また本実施形態では、プリフェッチされたデータはこの二次キャッシュ4に保持される。主記憶装置5は、DRAM等によって構成されるメモリである。
【0024】
プロセッサユニット1が、主記憶装置5上のデータにアクセスする際は、要求アドレスをリクエストアドレス6から指定し、読み出し時にはフェッチデータ7を読み出し、書き込み時にはストアデータ8として一次キャッシュ3に出力する。
【0025】
一次キャッシュ3は、プロセッサユニット1からの読み出し要求に対して、要求アドレスのデータを自己が保持していれば、そのデータをフェッチデータ7としてプロセッサユニット1に出力し、保持していない場合には、リクエストバス11からそのデータを含む1ライン分のデータを二次キャッシュ4に対して要求すると共にキャッシュミス9としてプリフェッチ制御装置2に通知する。そして、フェッチデータ12を受け取ると、プロセッサユニット1に要求されたデータをフェッチデータ7として出力する。また一次キャッシュ3は、自己が保持しているキャッシュデータが更新された場合、適当なタイミングでデータバス13からそのデータを二次キャッシュ4にライトバックする。
【0026】
二次キャッシュ4は、一次キャッシュ3からのデータの要求に対して、そのデータを保持していれば、そのデータを含む1ライン分のデータをフェッチデータ7として一次キャッシュ3に出力し、保持していない場合には、リクエストバス14からそのデータを含む1ライン分のデータを主記憶装置5に対して要求する。そして、フェッチデータ15を受け取ると、1ライン分のデータを一次キャッシュ3に出力する。また二次キャッシュ4は、一次キャッシュ3と同様、自己が保持しているキャッシュデータが更新されると、適当なタイミングでデータバス16からそのデータを主記憶装置5にライトバックする。
【0027】
プロセッサユニット1が一次キャッシュ3に対してデータを要求する時、アドレスバス6でアドレスを指定するが、このアドレス値をプリフェッチ制御装置2は監視し、自己が備えているプリフェッチアドレスキューをこのアドレス値によって検索する。そしてこのアドレスが、プリフェッチアドエスキューに存在するアドレスを先頭とする1ブロック中にある(以下、ヒットするという)場合、プリフェッチアドレスバス10から二次キャッシュ4にプリフェッチ要求アドレスを出力してプリフェッチ要求を行を行うと共にアドレスをプリフェッチアドレスキュー25に登録し、またプリフェッチアドレスキュー内に存在しない場合はプリフェッチを要求しない。尚プリフェッチアドレスキューに一致するアドレスが存在しなくても、一次キャッシュ3から制御信号9によってキャッシュミスが報告されると、プリフェッチ制御装置2はこのアドレスのプリフェッチアドレスキューへの登録動作に入る。
【0028】
図2は第1の実施形態におけるプリフェッチ処理の基本動作を説明する図である。
第1の実施形態では、プリフェッチ制御装置2によって、特定の大きさを持つブロック単位でデータを二次キャッシュ4にプリフェッチする。尚ブロックサイズは任意であるが、以下の例では二次キャッシュ4の1ライン(キャッシュ動作において扱われる二次キャッシュ4上の単位領域の大きさ)の大きさとする。
【0029】
同図(a)は、初期状態を示し、アドレスAを先頭アドレスとする1ブロック分のデータ(1ブロックの大きさをλとする)、即ちアドレスA〜A+(λ−1)のデータD0〜D(λ−1)が、二次キャッシュ4にプリフェッチされているものとする。この状態のとき、プリフェッチアドレスキューには、プリフェッチアドレスとしてアドレスAが登録されている。
【0030】
同図(a)の状態で、プロセッサユニット1からの要求アドレスがアドレスAだった場合、一次キャッシュ3は二次キャッシュ4にプリフェッチされているアドレスAのデータD0を読み込むと共にプロセッサユニット1に、出力する。この時、プリフェッチ制御装置2は、プロセッサユニット1から一次キャッシュ3への要求アドレスを監視し、プリフェッチアドレスキューに登録されているアドレスと比較してヒットするかどうかを調べる。
【0031】
同図(a)の場合には、アドレスAはヒットするので、プリフェッチ制御装置2は、二次キャッシュ4に対してアドレスA+λから1ブロック分のデータのプリフェッチを要求すると共にプリフェッチアドレスキューに登録されているプリフェッチアドレスをA+λに更新する。これにより、同図(b)に示すように、二次キャッシュ4には、新たにアドレスA+λ〜A+(2λ―1)のデータDλ〜D(2λ−1)のデータがプリフェッチされる。
【0032】
この図2(b)の状態において、プロセッサユニット1による処理が進み、プロセッサユニット1から一次キャッシュ3に対してアドレスA+λのデータが要求されると、このアドレスはヒットするので、プリフェッチ制御装置2は二次キャッシュ4に対して、同図(c)に示すような、アドレスA+2λから1ブロック分のデータのプリフェッチを要求する。
【0033】
以降、プロセッサユニット1からの要求アドレスがヒットする度にプリフェッチ制御装置2は、二次キャッシュ4に対してそのアドレスから1ブロック分後のアドレスからのデータを1ブロックサイズ分プリフェッチするよう要求する。
【0034】
この様に第1の実施形態のシステムでは、過去にプリフェッチキューにヒットしたアドレスにブロックサイズλを加算したアドレスを記憶しておき、このプリフェッチアドレスとプロセッサユニット1から要求があった要求アドレスを比較することによって、連続したアクセスに対して正確に予測をしてプリフェッチを行うことが出来る。
【0035】
図3は第1の実施形態におけるプリフェッチ制御装置2の内部構成を示す図である。
同図の構成では、プリフェッチ制御装置2は内部に、リクエストアドレスレジスタ21、一次キャッシュミスアドレスレジスタ22、2つの加算器23、27、セレクタ24、プリフェッチアドレスキュー25、読み出しレジスタ26、及びプリフェッチアドレスレジスタ28を有している。
【0036】
リクエストアドレスレジスタ21は、アドレスバス6上のアドレス値が格納されるレジスタで、このリクエストアドレスレジスタ21内のアドレス値に基づいたアドレス値が、プリフェッチアドレスキュー25に格納される。一次キャッシュミスアドレスレジスタ22は、プリフェッチアドレスキュー25からの制御信号31によってリクエストアドレスレジスタ21のアドレス値が登録される。またこの時アドレス値が登録されると、待機ビットがセットされ、この待機ビットに基いて制御信号32がプリフェッチアドレスキュー25に出力される。プリフェッチアドレスキュー25は、メモリアクセスのあったアドレスに基くアドレスを格納管理するもので、過去にプリフェッチアドレスキュー25にヒットしたアドレスの次のブロックの先頭アドレスの値が複数格納されており、リクエストアドレスレジスタ21内のアドレス値とこのプリフェッチアドレスキュー25に格納されたアドレス値とを比較して、二次キャッシュ4にプリフェッチを要求するかどうかが判断される。プリフェッチアドレスレジスタ28は、二次キャッシュ4にプリフェッチを要求する際に出力されるプリフェッチアドレスが格納される。
【0037】
次に図3のプリフェッチ制御装置2の動作を説明する。
同図の構成において、まずプロセッサユニット1から一次キャッシュ3へのデータ要求の際アドレスバス6によって指定されたアドレス値は、一旦リクエストアドレスレジスタ21に保持される。そしてリクエストアドレスレジスタ21内のアドレス値と、プリフェッチアドレスキュー25の各エントリに格納されているアドレス値(エントリアドレス)との比較を行う。
【0038】
この比較の結果、アドレス値がヒットした場合には、そのエントリアドレスがレジスタ26に読み出され、加算器27によってレジスタ26の値にブロックサイズλが加算され、この値がアドレスバス34を介してプリフェッチアドレスレジスタ28に書き込まれる。そして、このプリフェッチアドレスレジスタ28内のアドレス値によってアドレスバス35を介して二次キャッシュ4に対してプリフェチが要求される。またこの時、セレクタ24はプリフェッチアドレスキュー25からの制御信号30によってアドレスバス34からのデータを選択出力するように制御され、プリフェッチアドレスキュー25に、レジスタ26の値にブロックサイズλが加算された値が、新たなエントリアドレスとしてプリフェッチアドレスキュー25に登録される。
【0039】
一方、リクエストアドレスレジスタ21内のアドレス値と、プリフェッチアドレスキュー25内のプリフェッチアドレスとの比較の結果、ヒットしなかった場合、(エントリの読み出し及びプリフェッチ要求は行わず、またプリフェッチアドレスキュー25内のエントリアドレスの更新も行わない為、何も行われない。
【0040】
但しヒットしなかった場合でも、このリクエストアドレスが一次キャッシュ3でキャッシュミスを引き起こし、このことが一次キャッシュ3から制御信号9によって報告された場合には、プリフェッチアドレスキュー25は制御信号31によってリクエストアドレスレジスタ21内のアドレス値を一次キャッシュミスアドレスレジスタ22に登録するように指示する。そして一次キャッシュミスアドレスレジスタ22にアドレス値が登録されると、待機ビットがセットされ、これがプリフェッチアドレスの新規登録の要求として制御信号32によってプリフェッチキュー25に通知される。これを受けてプリフェッチアドレスキュー25は、アドレスバス34からの登録が無い場合(登録がある場合はその登録が完了後)、制御信号33によって、一次キャッシュミスアドレスレジスタ22の待機ビットをリセットして登録を許可する。そしてプリフェッチアドレスキュー25は、制御信号30によりセレクタ24に対しアドレスバス29からの入力を選択出力するように制御して、レジスタ22内の値に加算器23でブロックサイズλを加算したアドレス値をプリフェッチアドレスキュー25に登録する。
【0041】
図4は図3のプリフェッチアドレスキュー25の構成を示したものである。
図4のプリフェッチアドレスキュー制御部40は、プリフェッチアドレスキュー25の制御を司り、また制御信号50、52(図3の制御信号31、33に対応)によって、一次キャッシュミスアドレスレジスタ22へのアドレス値の登録や待機ビットのリセットの制御を行ったり、制御信号58(図3の制御信号30に対応)によってセレクタ24の制御を行ったりするプリフェッチアドレスキュー制御部40、プリフェッチアドレスを格納するエントリ42及びそのエントリ42それぞれ対応するセレクタ41を複数(図4ではエントリ42−1〜42−4及びセレクタ41−1〜41−4の4つ)、及びセレクタ43を備える。
【0042】
図4のプリフェッチアドレスキュー25は、4つのプリフェッチアドレスが登録されるFIFO形式のキューとして動作し、ヒットしないで新たなアドレス値が登録される時は、エントリ42−1に格納されているアドレス値がエントリ42−2へ、エントリ42−2に格納されているアドレス値がエントリ42−3へ、エントリ42−3に格納されているアドレス値がエントリ42−4へシフトされると共に、新規アドレス値はエントリ42−1に登録される。また要求アドレスがヒットした時は、そのヒットしたアドレス値をエントリから削除すると共に、そのアドレス値にブロックサイズλを加えた大きさのアドレス値をエントリ42−1に登録することによってエントリアドレスを更新する。
【0043】
図5は、図4のエントリ42の構成を示す図である。
同図のエントリ42にはエントリ42に登録されるアドレス値がセットされるレジスタ61及び比較器62を備える。レジスタ61は、アドレス値の他に状態フラグとして働く有効ビット及び待機ビットを記録している。比較器62は、アドレスバス49から入力されるリクエストアドレスレジスタ21内のアドレス値とレジスタ61にセットされているアドレス値を比較しその結果を制御信号47としてプリフェッチアドレスキュー制御部40に出力する。
【0044】
レジスタ61内の有効ビットは、レジスタ61にセットされているアドレス値が有効かどうかを示すもので、セレクタ61からアドレス値がレジスタ61に登録される時セットされ、このエントリ42からアドレス値が読み出された時にプリフェッチアドレスキュー制御部40からの制御信号45によってリセットされる。待機ビットは、有効ビットがセットされているエントリにおいて、アドレスバス49から入力されるアドレス値がヒットした場合セットされる。プリフェッチアドレスキュー制御部40は、制御信号として通知されるこの待機ビットの状態から読み出しを行うエントリを決定する。
【0045】
以下に図4及び図5を用いてプリフェッチアドレスキュー25の動作を説明する。
プロセッサユニット1からの要求アドレスはリクエストアドレスレジスタ21に格納され、アドレスバス48を通じて各エントリ42−1〜42−4に入力される。各エントリ42−1〜42−4では、有効ビットがセットされている時、このアドレス値とレジスタ61にセットされているアドレス値とを比較器62によって比較し、ヒットすれば、制御信号47によってプリフェッチアドレスキュー制御部40に通知すると共にレジスタ61の待機ビットをセットする。
【0046】
次にプリフェッチアドレスキュー制御部40は、各エントリの待機ビットを元に読み出すエントリを決定し、制御信号56によってセレクタ43を制御して、そのエントリ42に登録されているアドレス値をプリフェッチ要求としてアドレスバス57からレジスタ26に出力すると共に、制御信号45によってそのエントリ42の有効ビットをリセットする。
【0047】
また、一次キャッシュ3から制御信号49によってキャッシュミスが通知された時、プリフェッチアドレスキュー制御部40は、制御信号46−1〜46−4から通知された各エントリ42−1〜42−4でのアドレス比較の結果を調べる。そして、どのエントリ42−1〜42−4でもヒットしない時、制御信号50によって、一次キャッシュミスアドレスレジスタ22にリクエストアドレスレジスタ21内のアドレス値を登録するように指示する。
【0048】
一次キャッシュミスアドレスレジスタ22から制御信号51によって一次キャッシュミスアドレスレジスタ22内のアドレス値をエントリアドレスとして登録するよう要求された時、あるいはエントリ42からアドレス値の読み出しが完了した直後、プリフェッチアドレスキュー制御部40は、セレクタ41−1に対しアドレスバス53からの入力をアドレスバス54−1に選択出力するように制御信号44−1によって制御して、アドレスバス53から入力されるアドレス値をエントリ42−1に登録する。
【0049】
アドレスバス53から新たなアドレス値がセットされる時、エントリ42−1内の有効ビットがセットされていた場合、プリフェッチアドレスキュー制御部40は、制御信号44−2によってセレクタ41−2にアドレスバス55−1から入力されるアドレス値をアドレスバス54−2に出力するよう制御して、エントリ42−2にエントリ42−1にセットされていたアドレス値をセットする。同様にエントリ42−2、42−3内の有効ビットがセットされていた場合、セレクタ41−3及び41−4を制御信号44−3及び44−4によって制御して各エントリ42−3及び42−4にセットされているアドレス値を下位のエントリにシフトしてゆく。またこの時上位のエントリ42の値が新たにされないエントリ42に対しては、プリフェッチアドレスキュー制御部40は、制御信号45によってセレクタ41を制御して、そのエントリ42にセットされているアドレス値を書き戻すように制御する。
【0050】
図6にプリフェッチアドレスキュー25に登録されているアドレス値の変化の一例を示す。尚同図、後述する図11、図16及び以下の説明では、エントリ42−1に登録されている最新のアドレス値をエントリ0(entry0)、エントリ42−2、42−2及び42−4に登録されているアドレス値をエントリ1(entry1)、エントリ2(entry2)及びエントリ3(entry3)と、また有効ビットがリセットされているエントリはemptyと記載する。
【0051】
同図(a)は、初期状態を示し、プリフェッチアドレスキュー25のエントリ0、1、2、3として、順にプリフェッチアドレスA、B、C、Dが既に登録されている。
【0052】
この図6(a)の状態において、一次キャッシュ3でアドレスEに対してキャッシュミスが生じたことが報告されると、同図(b)に示すように、プリフェッチアドレスキュー25には、アドレス値Eにブロックサイズλを加えたアドレス値E+λが、エントリ0として登録される。またこの時、エントリ0〜エントリ2に登録されていたアドレス値A〜Cは、エントリ1〜エントリ3にシフトされ、エントリ3に登録されていたアドレス値Dは破棄される。
【0053】
同図(b)の状態において、プロセッサユニット1からアドレスAに対してキャッシュアクセスがあった場合の変化を、同図(c)及び同図(d)に示す。
同図(b)の状態において、プロセッサユニット1からアドレスAに対してキャッシュアクセスがあると、ヒットしたエントリ1が読み出されると共に有効ビットがリセットされて無効化され、同図(c)に示す状態となる。プリフェッチ制御装置2は、アドレスA+λ(ブロックサイズ)で二次キャッシュ4に対してプリフェッチを要求すると同時に、同図(d)に示すように、このアドレスの値をプリフェッチアドレスキュー25に登録する。この時同図(c)でエントリ0だったアドレス値E+λは無効(empty)となっているエントリ1にシフトされる。
【0054】
同図(d)の状態において、プロセッサユニット1からアドレスBに対してキャッシュアクセスがあると、ヒットしたエントリ2が読み出されると共に有効ビットがリセットされて無効化され、同図(e)に示す状態となる。プリフェッチ制御装置2は、アドレスB+λで二次キャッシュ4に対してプリフェッチを要求すると同時に、同図(f)に示すように、このアドレス値をプリフェッチアドレスキュー25に登録する。この時に同図(e)でエントリ0だったアドレス値A+λはエントリ1に、エントリ1だったアドレスE+λ値は無効(empty)となっているエントリ2にシフトされる。
【0055】
図7は、一次キャッシュ3でキャッシュミスが生じて、プリフェッチキュー25にアドレスが登録される場合のタイムチャートを示す図である。
同図は、同図は、エントリ0〜3としてアドレス値B、C、D及びEが登録された状態を初期状態として、プロセッサユニット1からアドレスAに対して一次キャッシュ3にアクセス要求があった場合の、キャッシュミス(制御信号9、49)、リクエストアドレスレジスタ21、一次キャッシュミスアドレスレジスタ22の待機ビット、一次キャッシュミスアドレスレジスタリードイネーブル(制御信号32)、一次キャッシュミスアドレスレジスタライトイネーブル(制御信号31)、各エントリ42のセットされているアドレス値の変化及びプリフェッチアドレスレジスタ28にセットされているアドレス値の変化を示している。
【0056】
同図においては、周期2で、プロセッサユニット1からの要求アドレスAがリクエストアドレスレジスタ21にセットされる。そして一次キャッシュ3からキャッシュミスが制御信号9によってプリフェッチ制御装置2に通知され、一次キャッシュミスアドレスレジスタ22のライトイネーブルがセットされると、プリフェッチ制御装置2内では、次の周期3で、一次キャッシュミスアドレスレジスタ22にリクエストアドレスレジスタ21の値を設定すると共に待機ビットをセットする。これによりプリフェッチアドレスキュー制御部40は一次キャッシュミスアドレスレジスタ22にリードイネーブル信号を送り、次の周期4で、一次キャッシュミスアドレスレジスタ22内のアドレス値Aにブロックサイズλを加算したアドレス値A+λをエントリ0としてエントリ42−1にセットし、待機ビットをリセットする。またエントリ42−1、42−2及び42−3にセットされていたアドレス値B、C、Dは、それぞれシフトされてエントリ1、2及び3としてセットされる。
【0057】
尚同図の場合には、要求アドレスAがヒットしなかったので、プリフェッチ制御装置2によるプリフェッチ要求は発生しないので、プリフェッチアドレスレジスタ28にセットされている値は変化しない。
【0058】
図8は、プリフェッチキュー25に登録されているアドレスが要求された場合のタイムチャートを示す図である。
同図は、図6(a)に示す状態を初期状態として、エントリ2として登録されているアドレスCを要求アドレスとしてプロセッサユニット1から一次キャッシュ3にアクセス要求があった場合の、リクエストアドレスレジスタ21、各エントリ42内の待機ビットの状態、各エントリ42のセットされているアドレス値、及びプリフェッチアドレスレジスタ28にセットされているアドレス値の変化を示している。
【0059】
同図においては、周期2で、プロセッサユニット1からの要求アドレスCがリクエストアドレスレジスタ21にセットされる。このアドレスCは、エントリ42−3に登録されているので、周期3でエントリ2の待機ビットがセットされ、次の周期4で、有効ビットがリセットされてエントリ2が無効となる。
【0060】
そして次の周期5で、一次キャッシュミスアドレスレジスタ22内の要求アドレス値Cにブロックサイズλを加算したアドレス値C+λがエントリ0としてエントリ42−1にセットされ、またエントリ42−1及び42−2にセットされていたアドレス値A、Bは、それぞれシフトされてエントリ1及び2としてエントリ42−2及び42−3にセットされる。また、プリフェッチアドレスレジスタ28には、周期5でアドレス値C+λがセットされ、このアドレス値がプリフェッチ要求として二次キャッシュ4に通知される。
【0061】
次に第2の実施形態について説明する。
これまで説明してきた第1の実施形態では、プロセッサユニット1からの要求アドレスに対して1ブロックの大きさのデータを二次キャッシュ4にプリフェッチする際、要求アドレス+λを先頭アドレスとした昇順の方向(アドレスが大きくなる方向)のデータをプリフェッチしていたが、第2の実施形態では、降順の方向(アドレスが小さくなる方向)のプリフェッチを実現する。降順方向のプリフェッチにより、スタックデータの処理や、配列データを逆方向に処理する場合等に対してもプリフェッチを行うことが出来る。
【0062】
図9は、第2の実施形態におけるプリフェッチ制御装置2の構成を示す図、図10は、プリフェッチアドレスキュー75内のエントリ42の構成を示す図である。尚図9のプリフェッチアドレスキュー75は、各エントリ42−1〜42−4の構成が異なるだけで、他の部分は図4に示した構成と基本的には同一である。
【0063】
図9の構成は、図3の第1の実施形態のプリフェッチ制御装置2の構成と比較すると、一次キャッシュミスアドレスレジスタ72が、リクエストアドレスレジスタ71のアドレス値の他に、待機ビット1及び待機ビット2がセットされる構成となっており、また読み出しレジスタ76にはプリフェッチする方向がセットされる構成となっている。また演算器73は、加算/減算を一次キャッシュミスアドレスレジスタ72の待機ビット2の設定値によって切り替える構成に、演算器77は、読み出しレジスタ76の方向によって加算/減算を切り替える構成となっている。
【0064】
また図10に示す第2の実施形態のエントリ42の構成では、図5の第1の実施形態のエントリ42の構成と比較すると、レジスタ91が、アドレス値、有効ビット及び待機ビットの他に方向フラグがセットされる構成となっている。尚図10では、図5と同一の構成要素に対しては同一の番号が付してある。
【0065】
この第2の実施形態では、エントリ42にアドレス値と共にプリフェッチする方向を示す方向フラグをセットし、ヒットしてプリフェッチアドレスキュー75から読みだされたアドレスに対してこの方向フラグに基いてブロックサイズλの加算/減算を行ってプリフェッチアドレスを計算する。
【0066】
この方向フラグの決定は、プリフェッチアドレスキュー75に共に登録されているアドレス値が生成される際、ヒットした元のアドレス値にブロックサイズλを加算して生成された場合は昇順方向(+)、ヒットした元のアドレス値からブロックサイズλを減算して生成された場合には降順方向(−)がセットされる。
【0067】
尚プリフェッチアドレスキュー75内のアドレスにヒットせず、一次キャッシュ3からのミスヒット通知によってアドレスをプリフェッチアドレスキュー75に登録する場合には、要求アドレスにブロックサイズλを加算したアドレス値と、ブロックサイズλを減算したアドレス値の両方が登録される。そして、一次キャッシュミスアドレスレジスタ72にセットされる待機ビット1及び待機ビット2は、この時の制御の為に用いられる。
【0068】
プリフェッチアドレスキュー75の登録、検索、読み出し動作等、図9及び図10に示す構成の基本的な動作は、図3及び図5を用いて説明した第1の実施形態の場合と同じであり、図9の場合は、これに待機ビット1及び待機ビット2等によるプリフェッチ方向に対する制御が更に加わる。以下の説明では、第1の実施形態と異なる部分について説明し、同一の部分については省略する。
【0069】
一次キャッシュ3から制御信号9によってキャッシュミスが通知された場合、プリフェッチアドレスキュー75は制御信号81によって、リクエストアドレスレジスタ71に登録されている要求アドレスを一次キャッシュミスアドレスレジスタ72に登録する。この時一次キャッシュミスアドレスレジスタ72の待機ビット1及び2はセットされる。
【0070】
待機ビット1又は2のいずれかがセットされている時、一次キャッシュミスアドレスレジスタ72は、プリフェッチアドレスキュー75に対して制御信号82によってアドレス値のプリフェッチアドレスキュー75への登録を要求する。
【0071】
演算器73は、待機ビット1及び2の状態によってアドレスバス86から入力される一次キャッシュミスアドレスレジスタ72内のアドレス値にブロックサイズλを加算するか減算するかを決定する。待機ビット1がセットされている状態で、制御信号83によりプリフェッチアドレスキュー75への登録が許可されると、演算器73は、一次キャッシュミスアドレスレジスタ72内のアドレス値にブロックサイズλを加算した値をプリフェッチアドレスキュー75に入力して登録すると共に待機ビット1をリセットする。またこの時方向フラグには昇順方向(+)が、アドレス値にブロックサイズλを加算した値と共にプリフェッチアドレスキュー75に登録される。
【0072】
次に待機ビット1がリセットされ、待機ビット2がセットされている状態で、制御信号83によってプリフェッチアドレスキュー75への登録が許可された場合は、演算器73は一次キャッシュミスアドレスレジスタ72内のアドレス値からブロックサイズλを減算した値をプリフェッチアドレスキュー75に入力して登録すると共に待機ビット2をリセットする。またこの時方向フラグには降順方向(−)が、アドレス値にブロックサイズλを加算した値と共にプリフェッチアドレスキュー75に登録される。尚要求アドレスがヒットして、アドレスバス84を介してプリフェッチアドレスキュー75内のアドレス値を更新する際も、アドレス値と共に読み出しレジスタ76にセットされている方向フラグも登録される。
【0073】
また要求アドレスがヒットして、プリフェッチアドレスキュー75からアドレス値が読み出される時、方向フラグも共に読み出されて読み出しレジスタ76にセットされる。演算器77は、読み出しレジスタ76にセットされている方向フラグに基いて、アドレスバス87から入力されるアドレス値に対してブロックサイズλを加算若しくは減算する。読み出しレジスタ76の方向フラグに昇順方向(+)がセットされていた場合には、演算器77は、アドレスバス77から入力されるアドレス値にブロックサイズλを加算した値を、方向フラグに降順方向(−)がセットされていた場合にはアドレスバス77からのアドレス値からブロックサイズλを減算した値を、アドレスバス84から出力する。そしてこのアドレス値は、プリフェッチアドレスレジスタ78及びアドレスバス85を介して、二次キャッシュ4にプリフェッチ要求として出力される。
【0074】
図11は第2の実施形態におけるプリフェッチアドレスキュー75に登録されているアドレス値の変化の一例を示す図である。
同図中、+はアドレス計算に加算を行う昇順方向(+)、−はアドレス計算に減算を行う降順方向(−)に方向フラグがセットされていることを示している。また以下の説明では、昇順方向に方向フラグが設定されているアドレス値XをX(+)、降順方向に方向フラグが設定されているアドレス値XをX(−)と記す。
【0075】
同図(a)は、初期状態を示し、プリフェッチアドレスキュー75のエントリ0、1、2、3として、順にプリフェッチアドレスA(+)、B(−)、C(−)、D(+)が既に登録されている。
【0076】
この図10(a)の状態において、一次キャッシュ3でアドレスEに対してキャッシュミスが生じたことが報告されると、同図(b)に示すように、プリフェッチアドレスキュー75には、アドレス値Eにブロックサイズλを加えたアドレス値及び昇順方向の方向フラグE+λ(+)がエントリ0として登録される。またこの時、エントリ0〜エントリ2に登録されていたアドレス値及び方向フラグA(+)、B(−)、C(−)は、エントリ1〜エントリ3にシフトされ、エントリ3に登録されていたアドレス値及び方向フラグD(+)は破棄される。
【0077】
また上記要求アドレスEは、プリフェッチアドレスキュー75内のアドレス値にヒットしなかったので、プリフェッチアドレスキュー75には、同図(b)に示すように、続けてアドレス値Eからブロックサイズλを減算したアドレス値及び降順方向の方向フラグE−λ(−)がエントリ0として登録される。そしてこの時、エントリ0〜エントリ2に登録されていたアドレス値及び方向フラグE+λ(+)、A(+)、B(−)は、エントリ1〜エントリ3にシフトされ、エントリ3に登録されていたアドレス値及び方向フラグC(−)は破棄される。
【0078】
このように、第2の実施形態では、要求アドレスがヒットせず且つ一次キャッシュ3からヒットミスが報告されると、2つのアドレス(及び方向フラグ)がプリフェッチアドレスキュー75に登録される。
【0079】
同図(c)の状態において、プロセッサユニット1からアドレスBに対してキャッシュアクセスがあった場合の変化を、同図(d)及び同図(e)に示す。
同図(c)の状態において、プロセッサユニット1からアドレスBに対してキャッシュアクセスがあると、ヒットしたエントリ3が読み出されると共に有効ビットがリセットされて無効化され、同図(d)に示す状態となる。そして読み出されたエントリ3の方向フラグは降順方向を示していたので、アドレスB−λを先頭アドレスとする降順のプリフェッチ要求、即ちアドレスB−λ〜B−2λ+1の範囲のデータのプリフェッチ要求が一次キャッシュ3に出力される。
【0080】
またこのプリフェッチ要求と同時に、同図(e)に示すように、このアドレスの値及び方向フラグB−λ(−)をプリフェッチアドレスキュー75に登録する。この時同図(d)でエントリ0だったアドレス値及び方向フラグE−λ(−)はエントリ1へ、エントリ1だったアドレス値及び方向フラグE+λ(+)はエントリ2へ、エントリ2だったアドレス値及び方向フラグA(+)は無効(empty)となっているエントリ3にシフトされる。
【0081】
図12は、一次キャッシュ3でキャッシュミスが生じて、プリフェッチキュー75にアドレスが登録される場合のタイムチャートを示す図である。
同図は、エントリ0〜3としてアドレス値及び方向フラグB(+)、C(−)、D(+)及びE(+)が登録された状態を初期状態として、プロセッサユニット1からアドレスAに対して一次キャッシュ3にアクセス要求があった場合の、キャッシュミス(制御信号9、49)、リクエストアドレスレジスタ71、一次キャッシュミスアドレスレジスタ72の待機ビット1及び待機ビット2、一次キャッシュミスアドレスレジスタリードイネーブル(制御信号82)、一次キャッシュミスアドレスレジスタライトイネーブル(制御信号81)、各エントリ42のセットされているアドレス値の変化及びプリフェッチアドレスレジスタ78にセットされているアドレス値の変化を示している。
【0082】
同図において、ユニットプロセッサユニット1が一次キャッシュ3に対して読み出し要求を行うと、周期2で、プロセッサユニット1からの要求アドレスAがリクエストアドレスレジスタ71にセットされる。そして一次キャッシュ3からキャッシュミスが制御信号9によってプリフェッチ制御装置2に通知され、一次キャッシュミスアドレスレジスタ72のライトイネーブルがセットされると、プリフェッチ制御装置2内では、次の周期3で、一次キャッシュミスアドレスレジスタ72にリクエストアドレスレジスタ71の値を設定すると共に待機ビット1及び待機ビット2をセットする。
【0083】
これにより、プリフェッチアドレスキュー制御部40は、一次キャッシュミスアドレスレジスタ72にリードイネーブル信号を送り、次の周期4で、一次キャッシュミスアドレスレジスタ72内のアドレス値Aにブロックサイズλを加算したアドレス値及び方向フラグA+λ(+)がエントリ0としてエントリ42−1にセットされると共にリクエストアドレスレジスタ71の待機ビット1がリセットされ、またエントリ42−1、42−2及び42−3にセットされていたアドレス値及び方向フラグB(+)、C(−)、D(+)は、それぞれシフトされてエントリ1、2及び3としてセットされる。
【0084】
待機ビット2がセットされた状態にあるので、次に周期5において、一次キャッシュミスアドレスレジスタ72内のアドレス値Aからブロックサイズλを減算したアドレス値及び方向フラグA−λ(−)がエントリ0としてエントリ42−1にセットされると共にリクエストアドレスレジスタ71の待機ビット2がリセットされ、またエントリ42−1、42−2及び42−3にセットされていたアドレス値及び方向フラグA+λ(+)、B(+)、C(−)は、それぞれシフトされてエントリ1、2及び3としてセットされる。
【0085】
尚同図の場合には、要求アドレスAがプリフェッチアドレスキュー75内のアドレス値にヒットしなかったので、プリフェッチ制御装置2によるプリフェッチ要求は発生せず、プリフェッチアドレスレジスタ78にセットされている値は変化しない。
【0086】
図13はプリフェッチキュー75に登録されているアドレスが要求された場合のタイムチャートを示す図である。
同図は、エントリ0〜3としてアドレス値及び方向フラグA(+)、B(+)、C(−)及びD(−)が登録された状態を初期状態として、エントリ2として登録されているアドレスCを要求アドレスとしてプロセッサユニット1から一次キャッシュ3にアクセス要求があった場合の、リクエストアドレスレジスタ71、各エントリ42内の待機ビットの状態、各エントリ42のセットされているアドレス値、及びプリフェッチアドレスレジスタ78にセットされているアドレス値の変化を示している。
【0087】
同図においては、周期2で、プロセッサユニット1からの要求アドレスCがリクエストアドレスレジスタ21にセットされる。このアドレスCは、エントリ42−3に登録されているので、周期3でエントリ2の待機ビットがセットされ、次の周期4で、有効ビットがリセットされてエントリ2が無効となる。
【0088】
そして次の周期5で、一次キャッシュミスアドレスレジスタ22内の要求アドレス値Cからブロックサイズλを方向フラグに基いて減算したアドレス値及び方向フラグC−λ(−)がエントリ0としてエントリ42−1にセットされ、またエントリ42−1及び42−2にセットされていたアドレス値及び方向フラグA(+)及びB(+)は、それぞれシフトされてエントリ1及び2としてエントリ42−2及び42−3にセットされる。また、プリフェッチアドレスレジスタ28には、周期5でアドレス値及び方向フラグC−λ(−)がセットされ、このアドレス値及び方向フラグがプリフェッチ要求として二次キャッシュ4に通知される。
【0089】
次に第3の実施形態について説明する。
第1、第2の実施形態では、プリフェッチ制御装置2が二次キャッシュ4に対してプリフェッチ要求はプリフェッチアドレスキューに登録されているエントリアドレスの次のブロック対して行っていた。それに対して第3の実施形態では、要求アドレスから複数ブロック先のデータまでプリフェッチを可能にしたものである。
【0090】
図14は、第3の実施形態におけるプリフェッチ制御装置2の構成例、図15はプリフェッチアドレスキュー105内のエントリ42の構成を示す図である。尚図14のプリフェッチアドレスキュー105は、各エントリ42−1〜42−4の構成が異なるだけで、他の部分は図4に示した構成と基本的には同一である。
【0091】
図14の構成は、図9の構成と比較すると、読み出しレジスタ106がアドレス値及び方向フラグの他に、カウンタ値及び差分値がセットされる構成となっており、またプリフェッチアドレスレジスタ113にアドレス値の他にプリフェッチアドレスから何ブロックをプリフェッチするかを示すブロック数がセットされる構成となっている。更に読み出しレジスタ106内の値からプリフェッチアドレスキュー105に登録するカウンタ値、差分値、方向及びアドレス値、プリフェッチアドレスレジスタ113にセットするブロック数及びアドレス値を求める初期値107、演算器108、112、114、115、セレクタ109、比較器110及び差分決定回路111を備えている。
【0092】
また図15に示す第3の実施形態のエントリ42の構成は、図10の第2の実施形態のエントリ42の構成と比較すると、レジスタ131に、図9に示した第2の実施形態のレジスタ91がセットされていたアドレス値、有効ビット及び待機ビット及び方向フラグの他に、プロセッサユニット1からの要求アドレスとエントリ42内に格納されているプリフェッチアドレスとの差分を示す差分値及びヒットする毎に減算されるカウンタ値がセットされる構成となっている。尚図10では、図5と同一の構成要素に対しては同一の番号が付してある。
【0093】
この第3の実施形態では、プリフェッチアドレスキュー105に、アドレス値及びプリフェッチ方向を示す方向フラグの他に、プリフェッチアドレスを求める時にエントリ42内に格納されているアドレスに加算又は減算する差分値及びヒットする毎に減算されるカウンタ値がセットされる構成となっている。そしてこの差分及びカウンタ値を用いて同時にプリフェッチするブロック数を求め、アドレス値及びブロック数によって二次キャッシュ4に対してプリフェッチ要求を行う。
【0094】
以下に図15のプリフェッチ制御装置2の動作を説明する。
プリフェッチアドレスキュー105の登録、検索、読み出し動作等、図14及び図15に示す構成の基本的な動作は、図9及び図10を用いて説明した第2の実施形態の場合と同じであり、図14の場合は、ブロック数を求める制御及びカウンタ値の制御が更に加わる。以下の説明では、第2の実施形態と異なる部分について説明し、同一の部分については省略する。
【0095】
図15の第3の実施形態と第3の実施形態のプリフェッチ制御装置2との違いは、プリフェッチアドレスキュー105からヒットしたアドレス値を含むエントリを読み出しレジスタ106に読み出してから、このエントリに基いたアドレス値及びブロック値をプリフェッチアドレスレジスタ113に格納し、バス116を介して更新された値を新たなエントリとしてプリフェッチアドレスキュー105に登録するまでの部分の構成にある。
【0096】
プリフェッチアドレスレジスタ113に格納されるプリフェッチアドレス値は、読み出しレジスタ106に読み出されたプリフェッチアドレスキュー105のエントリ内のアドレス値に対し、演算器114でブロックサイズλ×差分を加算若しくは減算して求める。演算器114が加算を行うか減算を行うかは、第2の実施形態同様、読み出しレジスタ106内の方向フラグによって決まり、方向フラグが昇順方向であれば演算器114はアドレス値に対してブロックサイズλ×差分値を加算して、降順方向であれば減算し、結果を出力する。そしてこの出力121をプリフェッチアドレスレジスタ113にアドレス値としてセットする。
【0097】
またプリフェッチアドレスキュー105に登録されるアドレス値は、演算器115によって、読み出しレジスタ106のアドレス値にブロックサイズλを、方向フラグに基いて、加算/減算して求める。
【0098】
カウンタ値は、初期値107に設定されている初期値からエントリがプリフェッチアドレスキュー105から読み出される度に演算器108によって1づつ減算される。そして、比較器110によって値が0であることが検出されると、セレクタ109によってプリフェッチアドレスキュー105に登録される新規カウンタ値を初期値107で設定される値に戻す。
【0099】
差分決定回路111は、新たな差分値を決定するもので、通常は、読み出しレジスタ106内の差分値を変化させずそのままの値で出力し、比較器110からカウンタ値が0であることが通知されると、読み出しレジスタ106内の差分値を予め決められた規則に基いて増加させて出力する。また差分値には上限が設けられており、その上限に達すると以降差分決定回路111は差分値をその値からは変化させずその値を出力する。図14の構成例では、差分決定回路111は、比較器110からカウンタ値が0であることが通知され、読み出しレジスタ106から差分値として1が入力されると2を、2が入力されると4を、4が入力されると8を出力し、8を上限として、以降は0が通知されても出力値として8を出力する。
【0100】
演算器112は、差分決定回路111から出力される差分値から読み出しレジスタ106内のブロック数を減算した後1を加えた値を出力する。そして出力120をプリフェッチするブロック数としてプリフェッチアドレスレジスタ113にセットする。
【0101】
プリフェッチ制御装置2は、二次キャッシュ4に対して、プリフェッチアドレスレジスタ113にセットされたアドレス値からブロック数分の複数ブロックプリフェッチを要求する。プリフェッチ要求の際に、このブロック数によって読み込むブロック数を指定することにより読み込まれないブロックが生じるのを防ぐ。 これにより、初期値107に設定した特定回数だけヒットすると、プリフェッチアドレスキュー105に登録されたエントリアドレスよりも一ブロック以上は離れたブロックをプリフェッチするようになる。
【0102】
また更新されたエントリをプリフェッチアドレスキュー105に登録する際には、プリフェッチアドレスキュー105に登録されるカウンタ値はセレクタ109の出力117が、差分値は差分決定回路111の出力128が、方向は読み出しレジスタ106の値がそのまま、アドレス値はプリフェッチアドレスキューに登録するアドレスは演算器115の出力118が、データバス116を介してセレクタ104に入力され、セレクタ104はプリフェッチアドレスキュー105からの指示に基いてアドレスバス104からのデータを選択出力し、これらのデータはプリフェッチアドレスキュー105に入力される。
【0103】
図16は、第3の実施形態におけるプリフェッチ処理の基本動作を説明する図である。
同図において、DEMANDはプロセッサユニット1からの要求アドレスを含むブロックを示し、PFは二次キャッシュ4がプリフェッチを行ったブロックを示している。
【0104】
同図の動作例は、初期値としてエントリとしてカウンタ値=2、アドレス=A、差分=1、方向フラグ=(+)が、プリフェッチアドレスキュー105に登録されているものとする
要求アドレスAがヒットすると、プリフェッチ制御装置2は、二次キャッシュ4に対してプリフェッチアドレスA+λ、ブロック数1でプリフェッチ要求し、二次キャッシュ4は要求されたアドレスA+λから1ブロック分データを主記憶装置5からプリフェッチする(図16(a))。次に要求アドレスA+λがヒットすると、プリフェッチ制御装置2は、二次キャッシュ4に対してプリフェッチアドレスA+2λ、ブロック数1でプリフェッチ要求し、二次キャッシュ4は要求されたアドレスA+2λから1ブロック分データを主記憶装置5からプリフェッチする(図16(b))。
【0105】
更に要求アドレスA+2λがヒットすると、プリフェッチアドレスキュー105から読み出したエントリ内のカウンタ値が0なので、差分決定回路111は、差分の値を1から2に変更する。これによって、プリフェッチ制御装置2は、二次キャッシュ4に対してプリフェッチアドレスA+3λ、ブロック数2(=差分決定回路111から出力されたブロック数(2)−読み出したブロック数(1)+1)でプリフェッチ要求し、二次キャッシュ4は要求されたアドレスA+3λから2ブロック分データを主記憶装置5からプリフェッチする(図16(c))。
【0106】
次に要求アドレスA+3λがヒットすると、プリフェッチ制御装置2は、二次キャッシュ4に対してプリフェッチアドレスA+5λ(=(要求アドレスA+3λ)+差分(2)×λ)、ブロック数1(=2−2+1)でプリフェッチ要求し、二次キャッシュ4は要求されたアドレスA+5λから1ブロック分データを主記憶装置5からプリフェッチする(図16(d))。更に要求アドレスA+4λがヒットすると、プリフェッチ制御装置2は、二次キャッシュ4に対してプリフェッチアドレスA+6λ(=(A+4λ)+2×λ)、ブロック数1でプリフェッチ要求し、二次キャッシュ4は要求されたアドレスA+2λから1ブロック分データを主記憶装置5からプリフェッチする(図16(e))。
【0107】
このように、第3の実施形態では、初期値107に設定されているカウンタの初期値を超えて、連続アクセスが行われると、以降も連続アクセスされると予測し、登録アドレスの複数ブロック先のデータまでプリフェッチを行い、プロセッサユニット1による処理にプリフェッチが間に合わなくなるのを防ぐ。
【0108】
図17に第3の実施形態におけるプリフェッチアドレスキュー105に登録されているアドレス値の変化の一例を示す。
同図中のカウンタ部分はエントリに登録されているカウンタ値、ブロック数部分はエントリに登録される差分及び方向フラグを示しており、ブロック数が+αと記載されている場合は昇順でαブロック先のプリフェッチを示し、−βと書かれている場合は降順のβブロック先のプリフェッチを示す。また同様に以下の説明でX(α、+/−β)と書かれている場合、Xはアドレス値、αはカウンタ値、+/−βは差分及び方向フラグを示している。
【0109】
同図(a)は、初期状態を示し、プリフェッチアドレスキュー105のエントリ0、1、2、3として、順にプリフェッチアドレスA(6,+4)、B(0,+2)、C(8,−4)、D(10,−2)が既に登録されている。
【0110】
この図17(a)の状態において、一次キャッシュ3でアドレスEに対してキャッシュミスが生じたことが報告されると、同図(b)に示すように、プリフェッチアドレスキュー105には、アドレス値Eにブロックサイズλを加えたアドレス値、カウンタ値の初期値16、差分の初期値1及び昇順方向の方向フラグE+λ(16,+1)がエントリ0として登録される。またこの時、エントリ0〜エントリ2に登録されていたアドレス値及び方向フラグA(6,+4)、B(0,+2)、C(8,−4)は、エントリ1〜エントリ3にシフトされ、エントリ3に登録されていたD(10,−2)は破棄される。
【0111】
また上記要求アドレスEは、プリフェッチアドレスキュー105内のアドレス値にヒットしなかったので、プリフェッチアドレスキュー105には、同図(b)に示すように、続けてアドレス値Eからブロックサイズλを減算したアドレス値、カウンタ値の初期値16、差分の初期値1及び降順方向の方向E−λ(16,−1)がエントリ0として登録される。そしてこの時、エントリ0〜エントリ2に登録されていたE+λ(16,+1)、E+λ(16,+1)は、エントリ1〜エントリ3にシフトされ、エントリ3に登録されていたC(8,−4)は破棄される。
【0112】
同図(c)の状態において、プロセッサユニット1からアドレスAに対してキャッシュアクセスがあると、ヒットしたエントリ2が読み出されると共に有効ビットがリセットされて無効化され、同図(d)に示す状態となる。そして読み出されたエントリ2のカウンタ値は6、差分と方向フラグは+4なので、プリフェッチアドレスA+4λ、ブロック数1のプリフェッチ要求が一次キャッシュ3に出力される。
【0113】
またこのプリフェッチ要求と同時に、同図(e)に示すように、A+λ(5,+4)をプリフェッチアドレスキュー105に登録する。この時同図(d)でエントリ0だったアドレス値及び方向フラグE−λ(16,−1)はエントリ1へ、エントリ1だったE+λ(16,+1)は無効(empty)となっているエントリ2へシフトされる。
【0114】
同図(e)の状態において、プロセッサユニット1からアドレスBに対してキャッシュアクセスがあると、ヒットしたエントリ3が読み出されると共に有効ビットがリセットされて無効化され、同図(f)に示す状態となる。そして読み出されたエントリ3のカウンタ値は0、差分と方向フラグは+2なので、プリフェッチアドレスB+2λ、ブロック数3のプリフェッチ要求が一次キャッシュ3に出力される。
【0115】
またこのプリフェッチ要求と同時に、同図(g)に示すように、B+λ(16,+4)をプリフェッチアドレスキュー105に登録する。この時同図(f)でエントリ0だったA+λ(5,+4)はエントリ1へ、エントリ1だったE−λ(16,−1)はエントリ2へ、エントリ2だったE+λ(16,+1)は無効(empty)となっているエントリ3へシフトされる。
【0116】
図18は、第3の実施形態において、一次キャッシュ3でキャッシュミスが生じて、プリフェッチキュー75にアドレスが登録される場合のタイムチャートを示す図である。
【0117】
同図は、エントリ0〜3としてアドレス値、カウンタ値、差分値及び方向フラグB(1,+1)、C(4,−2)、D(1,+4)及びE(6,+2)が登録された状態を初期状態として、プロセッサユニット1からアドレスAに対して一次キャッシュ3にアクセス要求があった場合の、キャッシュミス(制御信号9)、リクエストアドレスレジスタ101、一次キャッシュミスアドレスレジスタ102の待機ビット1及び待機ビット2、一次キャッシュミスアドレスレジスタリードイネーブル、一次キャッシュミスアドレスレジスタライトイネーブル、各エントリ42のセットされているアドレス値の変化及びプリフェッチアドレスレジスタ113にセットされているアドレス値の変化を示している。
【0118】
図19はプリフェッチキュー105に登録されているアドレスが要求された場合のタイムチャートを示す図である。
同図は、エントリ0〜3として、カウンタ値、差分値及び方向フラグB(1,+1)、C(4,−2)、D(1,+4)及びE(6,+2)が登録された状態を初期状態として、エントリ2として登録されているアドレスCを要求アドレスとしてプロセッサユニット1から一次キャッシュ3にアクセス要求があった場合の、リクエストアドレスレジスタ101、各エントリ42内の待機ビットの状態、各エントリ42のセットされている値、及びプリフェッチアドレスレジスタ113にセットされているアドレス値の変化を示している。
【0119】
図18及び図19を、図12及び図13に示した第2の実施形態のタイムチャートと比較すると、エントリ42にセットされる内容が異なるだけで、両者は、同じタイミングであることが判る。
【0120】
この第3の実施形態では、エントリアドレスがヒットし、プリフェッチ要求が行われる度にカウンタは減算され、0になったところでカウンタを初期値にリセットし差分を増加させる。よってヒット回数が多いエントリほど要求アドレスからなるべく遠くまでプリフェッチすることになり、プリフェッチを要求してからデータが届くまでにそのブロックをアクセスされることを防ぐことが出来る。
【0121】
次に第4の実施形態について説明する。
第4の実施形態は、複数のCPUによって、主記憶装置5を共有した場合に対応するものである。
【0122】
複数のCPUによって、メモリをシェアする場合、キャッシュコヒーレンシ(メモリの内容と各CPUのキャッシュの内容の一貫性)についての問題が生じる。
【0123】
第4の実施形態は、プリフェッチ制御装置2にキャッシュコヒーレンシを保つ仕組みを持たせたものである。
データの読み出しの場合は、一貫性については通常問題にならないが、書き込みの際には他のCPUとの間でキャッシュの内容に不一致が起きないように制御する必要がある。
【0124】
この制御方法の1つとして、あるCPUが書き込みを行う時に他のCPUに同じアドレスのデータが存在しないことを保証しておくことでキャッシュコヒーレンシを保つ方法がある。
この方法ではCPUが書き込みを行う際に、キャッシュの状態が書き込み可能な状態(他のCPUに同じデータが存在しない状態)になっていなければ、書き込み可能な状態にする必要がなり、このために通常非常に時間がかかってしまう。
【0125】
よって、本実施形態では、書き込みが行われると予想される時には予め書き込み可能な状態でキャッシュにプリフェッチしておくことで書き込みに対してもその効果を最大限に生かせるようする。この場合において、書き込み可能な状態でプリフェッチすると、他のCPUはそのデータを失うので、やりすぎるとキャッシュのミス率が増大してしまう。そこで、以下のようにしてプリフェッチのタイプを予測する。
【0126】
図20は、第4の実施形態におけるプリフェッチ制御装置の内部構成を示す図である。
同図のプリフェッチ制御装置は、図3に示した第1の実施形態のプリフェッチ制御装置2を元に第4の実施形態の構成を加えているが、第4の実施形態の構成は、第2の実施形態や第3の実施形態を元にしても実現することが出来る。
【0127】
同図の構成では、図3の構成と比較すると、予測器145を更に備え、またリクエストアドレスレジスタ141、一次キャッシュミスアドレスレジスタ142及び読み出しレジスタ144にアドレス値の他に、この要求アドレスが読み出し要求によるものなのか書き込み要求によるものなのかを示すタイプ情報を設定することが出来る構成となっている。またプリフェッチアドレスキュー143のエントリ42にも、このタイプ情報が設定できるようになっている。
【0128】
図21は、第4の実施形態におけるプリフェッチアドレスキュー143内のエントリの構成を示す図である。
同図の構成では、レジスタ151には、タイプ1とタイプ2の2つのタイプ情報が設定できるようになっている。タイプ1は、一次キャッシュミスアドレスレジスタ142内のタイプ情報がそのまま設定され、タイプ2は、レジスタ内のアドレス値がヒットした際、そのヒットした要求アドレスが読み出し要求なのか書き込み要求なのかを示すタイプ情報が設定される。
【0129】
同図において、リクエストアドレスレジスタ141からの要求アドレスが比較器62によって比較され、両者が一致した時、リクエストアドレスレジスタ内のタイプ情報が演算器152を介してレジスタ142にタイプ2として設定される。またこのエントリ42から読み出しが行われるときは、アドレス値と共に、タイプ1及びタイプ2の2つのタイプ情報も読み出され、読み出しレジスタ144にセットされる。
【0130】
読み出しレジスタ144は、アドレス値の他に上記タイプ1及びタイプ2がセット出来る構成となっており、読み出しレジスタ144にセットされたタイプ1及びタイプ2は、予測器145に入力される。予測器145は、タイプ1及びタイプ2からプリフェッチアドレスレジスタ145に設定するタイプを決める。予測器145は、タイプ1及びタイプ2の両方共書き込み要求であったなら、書き込み要求が生じるものと予測して、プリフェッチアドレスレジスタ145にタイプとして書き込み要求を設定し、そうでない場合には、読み出し要求を設定する。またこの予測器145の出力は、アドレス値をプリフェッチアドレスキュー143にかき戻す際、そのアドレス値と共にタイプ1として、プリフェッチアドレスキュー143に設定される。
【0131】
プリフェッチ制御装置2は、フェッチアドレスレジスタ145にセットされたアドレス値とタイプ情報によって二次キャッシュ4に対してプリフェッチ要求を行い、二次キャッシュ4は、タイプ情報が書き込み要求であったなら書き込み可能な状態でデータをプリフェッチする。
【0132】
これにより、プリフェッチするデータに対して書き込みが行われるかどうかを予測して、その予測に基づいてデータを書き込み可能な状態でプリフェッチすることが出来る。
【0133】
次に第5の実施形態について説明する。
第5の実施形態は、多数の同時アクセスに対して対応する構成をプリフェッチ制御装置2に設けたものである。
【0134】
プロセッサユニット1は、常に1つずつデータを要求してくるとは限らず、時には、同時に複数のアクセスする場合もある。
第5の実施形態は、このような場合に対して、対処したものである。
【0135】
図22は、第5の実施形態におけるプリフェッチ制御装置の内部構成を示す図である。
尚同図のプリフェッチ制御装置は、図3に示した第1の実施形態のプリフェッチ制御装置2を元に第5の実施形態の構成を加えているが、第5の実施形態の構成は、第2の実施形態や第3の実施形態を元にしても実現することが出来る。
【0136】
同図の構成では、図3の構成と比較すると、第1のリクエストアドレスレジスタ161及び第2のリクエストアドレスレジスタ162の2つのリクエストアドレスレジスタと、この2つのリクエストアドレスレジスタから1つからのアドレス値を選択して、一次キャッシュミスアドレスレジスタ22に設定するセレクタ161を新たに備えている。
【0137】
第1のリクエストアドレスレジスタ161及び第2のリクエストアドレスレジスタ162は、プロセッサユニット1からの要求アドレスが設定され、このアドレス値がプリフェッチアドレスキュー内に設定されているプリフェッチアドレスと比較される。セレクタ163は、この2つのレジスタ161、162を切替えてアドレス値を一次キャッシュミスアドレスレジスタ22に設定する。
【0138】
またプリフェッチアドレスキュー164は、この2つのリクエストアドレスレジスタ161及び162内のアドレスを同時に自己のエントリに設定されているエントリアドレスと比較する構成を備えている。
【0139】
図23は、プリフェッチアドレスキュー164の構成を示す図である。
同図に示すプリフェッチアドレスキュー164は、第1のリクエストアドレスレジスタ161からの要求アドレス値が入力されるデータバス172と第2のリクエストアドレスレジスタ162からの要求アドレス値が入力されるデータバス173を備え、この2つのデータバス172及び173は、全てのエントリ171−1〜172−4に入力されている。
【0140】
図24は、エントリ171の構成を示す図である。
エントリ171は、第1のリクエストアドレスレジスタ161からの要求アドレス値とレジスタ61に設定されているエントリアドレスのアドレス値とを比較する比較器181と、第2のリクエストアドレスレジスタ162からの要求アドレス値とレジスタ61に設定されているエントリアドレスのアドレス値とを比較する比較器182の2つの比較器を備え、2つの要求アドレスを同時に比較することが出来る。
【0141】
この図22、23、24の構成により第5の実施形態では、プロセッサユニット1が同時に複数の要求アドレスを発行しても対処することが出来る。
尚上記説明では、プリフェッチ制御装置は、プリフェッチ要求を二次キャッシュ4に対して行い、二次キャッシュ4上にプリフェッチしたデータを記憶しておいたが、本実施形態でプリフェッチを行うのは二次キャッシュ4に限定されるものではなく、一次キャッシュ3に対してプリフェッチ要求を行い、二次キャッシュ4上にプリフェッチしても良い。あるいは、システムが三次キャッシュ以上を備える場合には、これらに対してプリフェッチ要求を行い、これらがプリフェッチ処理を行っても良い。
【0142】
本発明は以下の構成でも良い。
キャッシュメモリを備えた情報制御装置で用いられるプリフェッチ制御装置において、
前記キャッシュメモリに対するアクセス要求に基く要求アドレスを格納するリクエストアドレスレジスタと、
前記リクエストアドレスレジスタ内のアドレス値を格納する一次キャッシュミスアドレスレジスタと、
前記一次キャッシュミスアドレスレジスタ内のアドレス値に特定の値を加えて、出力する第1の演算器と、
アドレス値をエントリアドレスとして格納する複数のエントリを有し、前記リクエストアドレスレジスタ内の要求アドレスと、前記複数のエントリ内の各エントリアドレスとを比較し、一致したならば、一致した前記エントリアドレスを出力するプリフェッチアドレスキューと、
前記プリフェッチアドレスキューの出力を格納する読み出しレジスタと、
前記読み出しレジスタ内の前記エントリアドレスに前記特定の値を加えて出力する第2の演算器と、
前記第1の演算器及び前記第2の演算器の出力を前記エントリアドレスとして前記プリフェッチアドレスキューの複数のエントリのうちの1つに登録する登録ユニットと、
を備えるプリフェッチ制御装置。
【0143】
キャッシュメモリを備えた情報制御装置で用いられるプリフェッチ制御装置において、
前記キャッシュメモリに対するアクセス要求に基く要求アドレスを格納するリクエストアドレスレジスタと、
前記リクエストアドレスレジスタ内のアドレス値を格納する一次キャッシュミスアドレスレジスタと、
前記一次キャッシュミスアドレスレジスタ内のアドレス値に対して、指示に基いて特定の値の加算/減算を行って出力する第1の演算器と、
プリフェッチの方向を示す方向フラグと共にアドレス値をエントリアドレスとして格納する複数のエントリを有し、前記リクエストアドレスレジスタ内の要求アドレスと、前記複数のエントリ内の各エントリアドレスとを比較し、一致したならば、一致した前記エントリアドレスを前記方向フラグと共に出力するプリフェッチアドレスキューと、
前記プリフェッチアドレスキューの出力を格納する読み出しレジスタと、
前記読み出しレジスタ内の前記エントリアドレスに前記特定の値を、前記方向フラグの値に基いて加算/減算を行って出力する第2の演算器と、
前記第1の演算器に対して加算を指示し、プリフェッチの方向として昇順を示す方向フラグと共に前記第1の演算器の出力をエントリアドレスとして前記複数のエントリのうちの1つに登録すると共に、前記第1の演算器に対して減算を指示し、プリフェッチの方向として降順を示す前記方向フラグと共に前記第1の演算器の出力をエントリアドレスとして前記複数のエントリのうちの1つに登録する第1の登録ユニットと、
前記読み出しレジスタ内の方向フラグと共に前記第2の演算器の出力を前記エントリアドレスとして前記複数のエントリのうちの1つに登録する第2の登録ユニットと、
を備えるプリフェッチ制御装置。
【0144】
キャッシュメモリを備えた情報制御装置で用いられるプリフェッチ制御装置において、
前記キャッシュメモリに対するアクセス要求に基づく要求アドレスを格納するリクエストアドレスレジスタと、
前記リクエストアドレスレジスタ内のアドレス値を格納する一次キャッシュミスアドレスレジスタと、
前記一次キャッシュミスアドレスレジスタ内のアドレス値に対して、指示に基いて特定の値の加算/減算を行って出力する第1の演算器と、
前記要求アドレスとプリフェッチを行う位置を指定するプリフェッチアドレスとの差を示す差分値情報、カウンタ値、及びプリフェッチの方向を示す方向フラグと共にアドレス値をエントリアドレスとして格納する複数のエントリを有し、前記リクエストアドレスレジスタ内の要求アドレスと、前記複数のエントリ内の各エントリアドレスとを比較し、一致したならば、一致した前記エントリアドレスを前記差分情報、カウンタ値及び方向フラグと共に出力するプリフェッチアドレスキューと、
前記プリフェッチアドレスキューの出力を格納する読み出しレジスタと、
前記読み出しレジスタ内の前記エントリアドレスに特定の値を、前記方向フラグの値に基いて加算/減算を行って出力する第2の演算器と、
前記読み出しレジスタ内のカウンタ値から減算し、特定値となったなら初期値を、該特定値でなければ前記減算した値をカウンタ値として出力するカウンタ値演算手段と、
前記読み出しレジスタ内の前記カウンタ値が前記特定値であれば、前記読み出しレジスタ内の差分情報を、予め定めてある規則に従って変更して出力し、前記カウンタ値が前記特定値でなければ、前記読み出しレジスタ内の差分情報をそのまま出力する差分情報決定ユニットと、
前記読み出しレジスタ内の前記差分情報、方向フラグ及びアドレス値に基いて前記プリフェッチアドレスを求めるプリフェッチアドレス算出手段と、
前記第1の演算器に対して加算を指示し、プリフェッチの方向として昇順を示す方向フラグと共に、初期値を設定した前記カウンタ値及び差分値、及び前記第1の演算器の出力をエントリアドレスとして前記複数のエントリのうちの1つに登録すると共に、前記第1の演算器に対して減算を指示し、プリフェッチの方向として降順を示す前記方向フラグと共に、初期値を設定した前記カウンタ値及び差分値、及び前記第1の演算器の出力をエントリアドレスとして前記複数のエントリのうちの1つに登録する第1の登録ユニットと、
前記読み出しレジスタ内の方向フラグと共に、前記カウンタ値演算手段から出力されるカウンタ値、前記差分情報決定ユニットから出力される前記差分値、及び前記第2の演算器の出力を前記エントリアドレスとして前記複数のエントリのうちの1つに登録する第2の登録ユニットと、
を備えるプリフェッチ制御装置。
【0145】
キャッシュメモリを備えた情報制御装置で用いられるプリフェッチ制御装置において、
前記キャッシュメモリに対するアクセス要求に基く要求アドレスを、書き込み要求かどうかを示す第1のタイプ情報と共に格納するリクエストアドレスレジスタと、
前記リクエストアドレスレジスタ内のアドレス値及び前記第1のタイプ情報を格納する一次キャッシュミスアドレスレジスタと、
前記一次キャッシュミスアドレスレジスタ内のアドレス値に特定の値を加えて、出力する第1の演算器と、
アドレス値をエントリアドレスとして、前記第1のタイプ情報と共に格納する複数のエントリを有し、前記リクエストアドレスレジスタ内の要求アドレスと、前記複数のエントリ内の各エントリアドレスとを比較し、一致したならば、一致した前記エントリアドレスを前記第1のタイプ情報と共に出力するプリフェッチアドレスキューと、
前記プリフェッチアドレスキューの出力を格納する読み出しレジスタと、
前記読み出しレジスタ内の前記エントリアドレスに前記特定の値を加えて出力する第2の演算器と、
前記読み出しレジスタ内の前記第1のタイプ情報及び前記リクエストアドレスレジスタ内の前記第1のタイプ情報に基いて、プリフェッチ要求として書き込み要求かどうかを示す第2のタイプ情報を決定する予測器と、
前記第1の演算器と前記一次キャッシュミスアドレスレジスタ内の第1のタイプ情報及び前記第2の演算器の出力及び前記予測器から出力される前記第2のタイプ情報を、前記エントリアドレス及び前記第1のタイプ情報として前記プリフェッチアドレスキューの複数のエントリのうちの1つに登録する登録ユニットと、
を備えるプリフェッチ制御装置。
【0146】
キャッシュメモリを備えた情報制御装置で用いられるプリフェッチ制御装置において、
前記キャッシュメモリに対するアクセス要求に基く要求アドレスを格納する複数のリクエストアドレスレジスタと、
前記複数リクエストアドレスレジスタ内の要求アドレスのうち1つを選択して出力するセレクタと、
前記セレクタが出力するアドレスを格納する一次キャッシュミスアドレスレジスタと、
前記一次キャッシュミスアドレスレジスタ内のアドレス値に特定の値を加えて、出力する第1の演算器と、
アドレス値をエントリアドレスとして格納する複数のエントリを有し、前記複数のリクエストアドレスレジスタ内の要求アドレスと、前記複数のエントリ内の各エントリアドレスとを比較し、一致したならば、一致した前記エントリアドレスを出力するプリフェッチアドレスキューと、
前記プリフェッチアドレスキューの出力を格納する読み出しレジスタと、
前記読み出しレジスタ内の前記エントリアドレスに前記特定の値を加えて出力する第2の演算器と、
前記第2の演算器の出力を格納するプリフェッチアドレスレジスタと、
前記第1の演算器及び前記第2の演算器の出力を前記プリフェッチアドレスとして前記プリフェッチアドレスキューの複数のエントリのうちの1つに登録する登録ユニットと、
を備えるプリフェッチ制御装置。
【0147】
(付記1) キャッシュメモリ手段と、
過去にメモリアクセスを行ったアドレスに基いたアドレス値を記録するアドレス記録手段と、
アクセス要求があった要求アドレスと、前記アドレス記録手段に記録されている前記アドレス値の比較の結果に基づいて、前記キャッシュメモリ手段にプリフェッチ要求を行うプリフェッチ要求手段と、
を備えることを特徴とする情報処理装置。
【0148】
(付記2) キャッシュメモリ手段を備えた情報処理装置で用いられるプリフェッチ制御装置において、
過去にメモリアクセスを行ったアドレスに基いたアドレス値を記録するアドレス記録手段と、
アクセス要求があったアドレスと前記アドレス記録手段に記録されたアドレス値との比較の結果に基いて、前記キャッシュメモリ手段にプリフェッチ要求を行うプリフェッチ要求手段と、
を備えることを特徴とするプリフェッチ制御装置。
【0149】
(付記3) 付記1又は2に記載の装置であって、
前記プリフェッチ要求手段は、前記アドレス値から求めたプリフェッチアドレスを前記キャッシュメモリ手段に示すことにより前記プリフェッチ要求を行うことを特徴とする装置。
【0150】
(付記4) 付記3に記載の装置であって、
前記アドレス記録手段から読み出したアドレスに演算したアドレス値を前記アドレス記録手段に記録する登録手段を更に備えることを特徴とする装置。
【0151】
(付記5) 付記3又は4に記載の装置であって、
前記情報処理装置は、特定の大きさを持つブロック単位でデータをプリフェッチし、前記プリフェッチ要求手段は、前記アドレス値及び前記特定の大きさを用いて前記プリフェッチアドレスを求めることを特徴とする装置。
【0152】
(付記6) 付記5に記載の装置であって、
前記特定の大きさは、前記キャッシュメモリ手段の1ラインに相当することを特徴とする装置。
【0153】
(付記7) 付記1乃至6の何れか1つに記載の装置であって、
前記キャッシュメモリ手段の上位にあたる上位キャッシュ手段においてミスヒットが生じた時、前記アドレス記録手段は、前記ミスヒットが生じたアドレスに基いたアドレス値を記録することを特徴とする装置。
【0154】
(付記8) 付記1乃至7の何れか1つに記載の装置であって、
前記アドレス記録手段は、プリフェッチを行う方向を示す方向フラグを前記アドレス値と関連付けて記録し、前記プリフェッチ要求手段は、前記アドレスと前記方向フラグに基いてプリフェッチアドレスを求め、前記プリフェッチ要求を行うことを特徴とする装置。
【0155】
(付記9) 付記1乃至8の何れか1つに記載の装置であって、
前記アドレス記録手段は、複数の前記アドレス値を記録し、新たなアドレス値を記録する際、該複数のアドレス値の登録順序に基いて前記アドレス値の置き換えを行うことを特徴とする装置。
【0156】
(付記10) 付記3乃至9の何れか1つに記載の装置であって、
前記アドレス記録手段は、前記要求アドレスと前記プリフェッチアドレスとの差を示す差分値情報を前記アドレス値と対応付けて記録することを特徴とする装置。
【0157】
(付記11) 付記10に記載の装置であって、
前記プリフェッチ要求手段は、前記プリフェッチアドレスとプリフェチするデータの大きさを示すことにより、前記プリフェッチ要求を行うことを特徴とする装置。
【0158】
(付記12) 付記11に記載の装置であって、
前記プリフェッチするデータの大きさは、前記差分情報に基づいて決定することを特徴とする装置。
【0159】
(付記13) 付記11又は12に記載の装置であって、
前記アドレス記録手段は、前記プリフェッチ要求手段による前記比較の結果、対応づけられているアドレス値が前記要求アドレスと一致した時カウントされるカウンタ値を当該アドレス値と対応付けて記録し、前記カウンタ値が特定値と成った時、前記差分情報を変更することを特徴とする装置。
【0160】
(付記14) 付記1乃至13の何れか1つに記載の装置であって、
前記アドレス記憶手段は、書き込み要求かどうかを示す第1のタイプ情報を前記アドレス値と対応付けて記録し、前記プリフェッチ要求は、前記タイプ情報に基いた書き込み要求かどうかを示す第2のタイプ情報を含むことを特徴とする装置。
【0161】
(付記15) 付記14に記載の装置であって、
前記第2のタイプ情報は、前記第1のタイプ情報と、前記要求アドレスが書き込み要求によるものかどうかを示す第3のタイプ情報に基いて決定されることを特徴とする装置。
【0162】
(付記16) 付記15に記載の装置であって、
前記プリフェッチ要求を行った後、前記第3のタイプ情報は、前記第1のタイプ情報として、前記アドレス値と対応付けられて前記アドレス記録手段に記録されることを特徴とする装置。
【0163】
(付記17) 付記1乃至16の何れか1つに記載の装置であって、
前記プリフェッチ要求手段は、複数の前記要求アドレスと前記アドレス値を比較する手段を備え、同時に複数の要求アドレスからプリフェッチ要求を生成することを特徴とする装置。
【0164】
(付記18) 付記1乃至17の何れか1つに記載の装置であって、
前記キャッシュメモリ手段は、該キャッシュメモリ手段の上位となる上位キャッシュメモリ手段を備えることを特徴とする装置。
【0165】
(付記19) キャッシュメモリ手段を備えた情報処理装置で行われるプリフェッチ制御方法であって
プリフェッチ要求を行ったアドレスに基づいたアドレス値を記録し、
アクセス要求があったアドレスと前記アドレス値との比較の結果に基いて、前記キャッシュメモリ手段にプリフェッチ要求を行う
ことを特徴とするプリフェッチ制御方法。
【0166】
【発明の効果】
本発明によれば、精度が高い予測によるプリフェッチを実現することが出来る。従って効率の良く、効果が高いプリフェッチを行うことが出来る。
【0167】
また連続した領域をプリフェッチすることが出来、またその領域へのアクセスを止めれば、それ以上続けて連続した領域をプリフェッチすることはない。
更に、昇順方向だけでなく降順方向へのアクセスに対するプリフェッチをも行うことが出来る。
【0168】
また、要求アドレスから複数ブロック先のデータまでプリフェッチすることが出来る。
更には、メモリを複数の情報処理装置で共有する場合であっても、キャッシュ手段に、プリフェッチするデータを書き込み可能な状態でプリフェッチするかどうかを指示することが出来、少ないパフォーマンスの低下でキャッシュコヒーレンシを保つことが出来る。
【0169】
また二つの異なるキャッシュアクセスに対して同時にプリフェッチアドレスの予測が可能になる。
【図面の簡単な説明】
【図1】本実施形態におけるコンピュータシステムのCPU及びその周辺構成の概略図である。
【図2】第1の実施形態におけるプリフェッチ処理の基本動作を説明する図である。
【図3】第1の実施形態におけるプリフェッチ制御装置の内部構成を示す図である。
【図4】第1の実施形態におけるプリフェッチアドレスキューの構成を示す図である。
【図5】第1の実施形態におけるプリフェッチアドレスキュー内のエントリの構成を示す図である。
【図6】第1の実施形態におけるプリフェッチアドレスキューに登録されているアドレス値の変化の一例を示す図である。
【図7】第1の実施形態におけるヒットしなかった時にプリフェッチキューにアドレスが登録される場合のタイムチャートを示す図である。
【図8】第1の実施形態におけるプリフェッチキューに登録されているアドレスが要求された場合のタイムチャートを示す図である。
【図9】第2の実施形態におけるプリフェッチ制御装置の構成を示す図である。
【図10】第2の実施形態におけるプリフェッチアドレスキュー内のエントリの構成を示す図である。
【図11】第2の実施形態におけるプリフェッチアドレスキューに登録されているアドレス値の変化の一例を示す図である。
【図12】第2の実施形態におけるヒットしなかった時にプリフェッチキューにアドレスが登録される場合のタイムチャートを示す図である。
【図13】第2の実施形態におけるプリフェッチキューに登録されているアドレスが要求された場合のタイムチャートを示す図である。
【図14】第3の実施形態におけるプリフェッチ制御装置の構成例を示す図である。
【図15】第3の実施形態におけるプリフェッチアドレスキュー内のエントリの構成を示す図である。
【図16】第3の実施形態におけるプリフェッチ処理の基本動作を説明する図である。
【図17】第3の実施形態におけるプリフェッチアドレスキューに登録されているアドレス値の変化の一例を示す図である。
【図18】第3の実施形態におけるヒットしなかった時にプリフェッチキューにアドレスが登録される場合のタイムチャートを示す図である。
【図19】第3の実施形態におけるプリフェッチキューに登録されているアドレスが要求された場合のタイムチャートを示す図である。
【図20】第4の実施形態におけるプリフェッチ制御装置の内部構成を示す図である。
【図21】第4の実施形態におけるプリフェッチアドレスキュー内のエントリの構成を示す図である。
【図22】第5の実施形態におけるプリフェッチ制御装置の内部構成を示す図である。
【図23】第5の実施形態におけるプリフェッチアドレスキューの構成を示す図である。
【図24】第5の実施形態におけるプリフェッチアドレスキュー内のエントリの構成を示す図である。
【符号の説明】
1 プロセッサユニット
2 プリフェッチ制御装置
3 一次キャッシュ
4 二次キャッシュ
5 主記憶装置
21、71、101、141 リクエストアドレスレジスタ
22、72、102、142 一次キャッシュミスアドレスレジスタ
25、75、105、143 プリフェッチアドレスキュー
26、76、106、144 読み出しレジスタ
28、78、113、146 プリフェッチアドレスレジスタ
40 リフェッチアドレスキュー制御部
41、43 セレクタ
42 エントリ
61、91、131、151 レジスタ
62 比較器
111 差分決定回路
145 予測器
Claims (10)
- キャッシュメモリ手段と、
過去にメモリアクセスを行ったアドレスに基づいたアドレス値を記録するアドレス記録手段と、
アクセス要求があった要求アドレスと、前記アドレス記録手段に記録されている前記アドレス値の比較の結果に基づいて、前記キャッシュメモリ手段にプリフェッチ要求を行うプリフェッチ要求手段と、
を備えることを特徴とする情報処理装置。 - キャッシュメモリ手段を備えた情報処理装置で用いられるプリフェッチ制御装置において、
過去にメモリアクセスを行ったアドレスに基づいたアドレス値を記録するアドレス記録手段と、
アクセス要求があったアドレスと前記アドレス記録手段に記録されたアドレス値との比較の結果に基いて、前記キャッシュメモリ手段にプリフェッチ要求を行うプリフェッチ要求手段と、
を備えることを特徴とするプリフェッチ制御装置。 - 請求項1又は2に記載の装置であって、
前記プリフェッチ要求手段は、前記アドレス値から求めたプリフェッチアドレスを前記キャッシュメモリ手段に示すことにより前記プリフェッチ要求を行うことを特徴とする装置。 - 請求項1乃至3の何れか1つに記載の装置であって、
前記アドレス記録手段は、プリフェッチを行う方向を示す方向フラグを前記アドレス値と関連付けて記録し、前記プリフェッチ要求手段は、前記アドレス値と前記方向フラグに基づいてプリフェッチアドレスを求め、前記プリフェッチ要求を行うことを特徴とする装置。 - 請求項1乃至4の何れか1つに記載の装置であって、
前記アドレス記録手段は、複数の前記アドレス値を記録し、新たなアドレス値を記録する際、該複数のアドレス値の登録順序に基いて前記アドレス値の置き換えを行うことを特徴とする装置。 - 請求項3乃至5の何れか1つに記載の装置であって、
前記アドレス記録手段は、前記要求アドレスと前記プリフェッチアドレスとの差を示す差分値情報を前記アドレス値と対応付けて記録することを特徴とする装置。 - 請求項6に記載の装置であって、
前記プリフェッチ要求手段は、前記プリフェッチアドレスとプリフェチするデータの大きさを示すことにより、前記プリフェッチ要求を行うことを特徴とする装置。 - 請求項1乃至7の何れか1つに記載の装置であって、
前記アドレス記憶手段は、書き込み要求かどうかを示す第1のタイプ情報を前記アドレス値と対応付けて記録し、前記プリフェッチ要求は、前記タイプ情報に基いた書き込み要求かどうかを示す第2のタイプ情報を含むことを特徴とする装置。 - 請求項1乃至8の何れか1つに記載の装置であって、
前記プリフェッチ要求手段は、複数の前記要求アドレスと前記アドレス値を比較する手段を備え、同時に複数の要求アドレスからプリフェッチ要求を生成することを特徴とする装置。 - 請求項1乃至9の何れか1つに記載の装置であって、
前記キャッシュメモリ手段は、該キャッシュメモリ手段の上位となる上位キャッシュメモリ手段を備えることを特徴とする装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002191464A JP4067887B2 (ja) | 2002-06-28 | 2002-06-28 | プリフェッチを行う演算処理装置、情報処理装置及びそれらの制御方法 |
US10/368,751 US7246204B2 (en) | 2002-06-28 | 2003-02-20 | Pre-fetch control device, data processing apparatus and pre-fetch control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002191464A JP4067887B2 (ja) | 2002-06-28 | 2002-06-28 | プリフェッチを行う演算処理装置、情報処理装置及びそれらの制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004038345A true JP2004038345A (ja) | 2004-02-05 |
JP4067887B2 JP4067887B2 (ja) | 2008-03-26 |
Family
ID=29774410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002191464A Expired - Lifetime JP4067887B2 (ja) | 2002-06-28 | 2002-06-28 | プリフェッチを行う演算処理装置、情報処理装置及びそれらの制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7246204B2 (ja) |
JP (1) | JP4067887B2 (ja) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007099598A1 (ja) | 2006-02-28 | 2007-09-07 | Fujitsu Limited | プリフェッチ機能を有するプロセッサ |
WO2007099582A1 (ja) * | 2006-02-28 | 2007-09-07 | Fujitsu Limited | プリフェッチ制御装置 |
JP2008059057A (ja) * | 2006-08-29 | 2008-03-13 | Hitachi Ltd | 計算機システム及びプロセッサの制御方法 |
WO2008155815A1 (ja) * | 2007-06-19 | 2008-12-24 | Fujitsu Limited | 情報処理装置及びキャッシュ制御方法 |
JP2010044682A (ja) * | 2008-08-18 | 2010-02-25 | Fujitsu Ltd | 命令フェッチ機構、プロセッサおよびコンピュータシステム |
JP2010176692A (ja) * | 2010-03-15 | 2010-08-12 | Fujitsu Ltd | 演算処理装置、情報処理装置及び制御方法 |
JP2010191754A (ja) * | 2009-02-19 | 2010-09-02 | Mitsubishi Electric Corp | キャッシュ記憶装置 |
JP2010198342A (ja) * | 2009-02-25 | 2010-09-09 | Fujitsu Semiconductor Ltd | メモリアクセス判定回路、メモリアクセス判定方法および電子機器 |
WO2010116403A1 (ja) * | 2009-03-30 | 2010-10-14 | 富士通株式会社 | プリフェッチ要求回路 |
US7953935B2 (en) | 2005-04-08 | 2011-05-31 | Panasonic Corporation | Cache memory system, and control method therefor |
JP2012014417A (ja) * | 2010-06-30 | 2012-01-19 | Toshiba Corp | 命令制御装置、及び命令制御方法 |
JP2020135499A (ja) * | 2019-02-21 | 2020-08-31 | 株式会社日立製作所 | データ処理装置、ストレージ装置およびプリフェッチ方法 |
US11681626B2 (en) | 2021-04-05 | 2023-06-20 | Fujitsu Limited | Information processing device and information processing method for prefetching across page boundaries |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7117309B2 (en) * | 2003-04-14 | 2006-10-03 | Hewlett-Packard Development Company, L.P. | Method of detecting sequential workloads to increase host read throughput |
US7493450B2 (en) * | 2003-04-14 | 2009-02-17 | Hewlett-Packard Development Company, L.P. | Method of triggering read cache pre-fetch to increase host read throughput |
US7051159B2 (en) * | 2003-06-30 | 2006-05-23 | International Business Machines Corporation | Method and system for cache data fetch operations |
TWI258078B (en) * | 2003-10-07 | 2006-07-11 | Via Tech Inc | Pre-fetch controller and method thereof |
JP4045296B2 (ja) * | 2004-03-24 | 2008-02-13 | 松下電器産業株式会社 | キャッシュメモリ及びその制御方法 |
US7383418B2 (en) * | 2004-09-01 | 2008-06-03 | Intel Corporation | Method and apparatus for prefetching data to a lower level cache memory |
JP4956922B2 (ja) | 2004-10-27 | 2012-06-20 | ソニー株式会社 | 記憶装置 |
US20060224832A1 (en) * | 2005-04-01 | 2006-10-05 | Kimming So | System and method for performing a prefetch operation |
KR100833178B1 (ko) * | 2005-08-26 | 2008-05-28 | 삼성전자주식회사 | 캐시 메모리에 저장되는 블록개수를 제어할 수 있는 캐시메모리 시스템 및 동작 방법 |
CN102812518B (zh) | 2010-01-28 | 2015-10-21 | 惠普发展公司,有限责任合伙企业 | 存储器存取方法和装置 |
TWI534621B (zh) * | 2010-03-29 | 2016-05-21 | 威盛電子股份有限公司 | 預取單元、資料預取方法、電腦程式產品以及微處理器 |
US9146867B2 (en) * | 2011-10-31 | 2015-09-29 | Hewlett-Packard Development Company, L.P. | Methods and apparatus to access memory using runtime characteristics |
US20140130657A1 (en) * | 2012-11-05 | 2014-05-15 | Gordon Holdings, Inc. | High strength, light weight composite structure, method of manufacture and use thereof |
WO2014111985A1 (ja) | 2013-01-17 | 2014-07-24 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置およびファイル管理方法 |
JP2015088146A (ja) * | 2013-11-01 | 2015-05-07 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置 |
JP2016028319A (ja) * | 2014-07-08 | 2016-02-25 | 富士通株式会社 | アクセス制御プログラム、アクセス制御装置及びアクセス制御方法 |
US10387320B2 (en) | 2017-05-12 | 2019-08-20 | Samsung Electronics Co., Ltd. | Integrated confirmation queues |
US10380034B2 (en) * | 2017-07-14 | 2019-08-13 | International Business Machines Corporation | Cache return order optimization |
EP4131885A4 (en) * | 2020-03-27 | 2023-10-04 | NEC Corporation | COMMUNICATION SYSTEM |
CN111639042B (zh) * | 2020-06-04 | 2023-06-02 | 中科芯集成电路有限公司 | 一种预取buffer数据一致性的处理方法及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2881049B2 (ja) | 1991-07-30 | 1999-04-12 | 株式会社日立製作所 | プリフェッチバッファ |
JPH0675853A (ja) | 1992-08-25 | 1994-03-18 | Oki Electric Ind Co Ltd | キャッシュメモリ装置 |
JP3254019B2 (ja) * | 1992-11-30 | 2002-02-04 | 富士通株式会社 | データ先読み制御装置 |
US5623608A (en) * | 1994-11-14 | 1997-04-22 | International Business Machines Corporation | Method and apparatus for adaptive circular predictive buffer management |
US6748463B1 (en) * | 1996-03-13 | 2004-06-08 | Hitachi, Ltd. | Information processor with snoop suppressing function, memory controller, and direct memory access processing method |
JP3175675B2 (ja) | 1997-12-04 | 2001-06-11 | 日本電気株式会社 | プリフェッチ制御装置 |
US6785772B2 (en) * | 2002-04-26 | 2004-08-31 | Freescale Semiconductor, Inc. | Data prefetching apparatus in a data processing system and method therefor |
-
2002
- 2002-06-28 JP JP2002191464A patent/JP4067887B2/ja not_active Expired - Lifetime
-
2003
- 2003-02-20 US US10/368,751 patent/US7246204B2/en not_active Expired - Lifetime
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7953935B2 (en) | 2005-04-08 | 2011-05-31 | Panasonic Corporation | Cache memory system, and control method therefor |
WO2007099598A1 (ja) | 2006-02-28 | 2007-09-07 | Fujitsu Limited | プリフェッチ機能を有するプロセッサ |
WO2007099582A1 (ja) * | 2006-02-28 | 2007-09-07 | Fujitsu Limited | プリフェッチ制御装置 |
US8074029B2 (en) | 2006-02-28 | 2011-12-06 | Fujitsu Limited | Processor equipped with a pre-fetch function and pre-fetch control method |
JPWO2007099598A1 (ja) * | 2006-02-28 | 2009-07-16 | 富士通株式会社 | プリフェッチ機能を有するプロセッサ |
US8255632B2 (en) | 2006-02-28 | 2012-08-28 | Fujitsu Limited | Pre-fetch control apparatus |
JP4574712B2 (ja) * | 2006-02-28 | 2010-11-04 | 富士通株式会社 | 演算処理装置、情報処理装置及び制御方法 |
JP2008059057A (ja) * | 2006-08-29 | 2008-03-13 | Hitachi Ltd | 計算機システム及びプロセッサの制御方法 |
WO2008155815A1 (ja) * | 2007-06-19 | 2008-12-24 | Fujitsu Limited | 情報処理装置及びキャッシュ制御方法 |
JPWO2008155815A1 (ja) * | 2007-06-19 | 2010-08-26 | 富士通株式会社 | 情報処理装置 |
JP4692678B2 (ja) * | 2007-06-19 | 2011-06-01 | 富士通株式会社 | 情報処理装置 |
US8225070B2 (en) | 2007-06-19 | 2012-07-17 | Fujitsu Limited | Information processing apparatus and cache memory control method |
JP2010044682A (ja) * | 2008-08-18 | 2010-02-25 | Fujitsu Ltd | 命令フェッチ機構、プロセッサおよびコンピュータシステム |
JP2010191754A (ja) * | 2009-02-19 | 2010-09-02 | Mitsubishi Electric Corp | キャッシュ記憶装置 |
JP2010198342A (ja) * | 2009-02-25 | 2010-09-09 | Fujitsu Semiconductor Ltd | メモリアクセス判定回路、メモリアクセス判定方法および電子機器 |
WO2010116403A1 (ja) * | 2009-03-30 | 2010-10-14 | 富士通株式会社 | プリフェッチ要求回路 |
JP5229383B2 (ja) * | 2009-03-30 | 2013-07-03 | 富士通株式会社 | プリフェッチ要求回路 |
US8856498B2 (en) | 2009-03-30 | 2014-10-07 | Fujitsu Limited | Prefetch request circuit |
JP2010176692A (ja) * | 2010-03-15 | 2010-08-12 | Fujitsu Ltd | 演算処理装置、情報処理装置及び制御方法 |
JP2012014417A (ja) * | 2010-06-30 | 2012-01-19 | Toshiba Corp | 命令制御装置、及び命令制御方法 |
JP2020135499A (ja) * | 2019-02-21 | 2020-08-31 | 株式会社日立製作所 | データ処理装置、ストレージ装置およびプリフェッチ方法 |
JP7261037B2 (ja) | 2019-02-21 | 2023-04-19 | 株式会社日立製作所 | データ処理装置、ストレージ装置およびプリフェッチ方法 |
US11681626B2 (en) | 2021-04-05 | 2023-06-20 | Fujitsu Limited | Information processing device and information processing method for prefetching across page boundaries |
Also Published As
Publication number | Publication date |
---|---|
US20040003179A1 (en) | 2004-01-01 |
JP4067887B2 (ja) | 2008-03-26 |
US7246204B2 (en) | 2007-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4067887B2 (ja) | プリフェッチを行う演算処理装置、情報処理装置及びそれらの制御方法 | |
TWI506434B (zh) | 預取單元、資料預取方法、電腦程式產品以及微處理器 | |
JP4692678B2 (ja) | 情報処理装置 | |
JP4045296B2 (ja) | キャッシュメモリ及びその制御方法 | |
US7640420B2 (en) | Pre-fetch apparatus | |
EP0097790A2 (en) | Apparatus for controlling storage access in a multilevel storage system | |
JPH10232827A (ja) | 先取りキャッシュ書戻しの方法と装置 | |
JP4451717B2 (ja) | 情報処理装置および情報処理方法 | |
JP4574712B2 (ja) | 演算処理装置、情報処理装置及び制御方法 | |
US20100217937A1 (en) | Data processing apparatus and method | |
JP2023507078A (ja) | プリフェッチレベルの降格 | |
US11301250B2 (en) | Data prefetching auxiliary circuit, data prefetching method, and microprocessor | |
JP2009059077A (ja) | キャッシュシステム | |
US11036639B2 (en) | Cache apparatus and method that facilitates a reduction in energy consumption through use of first and second data arrays | |
US20150193348A1 (en) | High-performance data cache system and method | |
US20010032297A1 (en) | Cache memory apparatus and data processing system | |
JP2013041414A (ja) | 記憶制御システムおよび方法、置換方式および方法 | |
US8255632B2 (en) | Pre-fetch control apparatus | |
US9110811B2 (en) | Prefetching method and apparatus | |
JPH11143774A (ja) | キャッシュ制御機構 | |
JP2000047942A (ja) | キャッシュメモリ制御装置及びその制御方法 | |
JP4463152B2 (ja) | マルチプロセッサシステム及びそれに用いるコピーキャッシュ情報掃き出しレベル選択方法 | |
JP2001273137A (ja) | マイクロプロセッサ | |
JPH0675853A (ja) | キャッシュメモリ装置 | |
JPH0612331A (ja) | キャッシュメモリ制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041026 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070703 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070717 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070918 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071016 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071217 |
|
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: 20080108 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080109 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110118 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4067887 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110118 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120118 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130118 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130118 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140118 Year of fee payment: 6 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
EXPY | Cancellation because of completion of term |