(57)【特許請求の範囲】
【請求項１】
プロセッサ、第１キャッシュ、第２キャッシュ、及びメイン・メモリを含む処理システムにおいて前記第１キャッシュにデータをプリフェッチするための方法にして、
前記第１キャッシュにおいてラインＭに対するキャッシュ・ミスを検出する第１のステップと、
前記キャッシュ・ミスに応答して前記ラインＭに関して前記第２キャッシュをサーチする第２のステップと、
前記ラインＭが前記第２キャッシュにおいて見つかった場合、前記ラインＭを前記第２キャッシュから前記第１キャッシュに転送する第３のステップと、
前記ラインＭが前記第２キャッシュにおいて見つからなかった場合、ラインＭ−１における未解決のブランチ命令が解決されるのを待ってから前記ラインＭを前記メイン・メモリからフェッチする第４のステップと、
第３のステップ又は第４のステップの後、前記第１キャッシュをラインＭ＋１に関してサーチする第５のステップと、
前記ラインＭ＋１が前記第１キャッシュにおいて見つからなかった場合、前記第２キャッシュを前記ラインＭ＋１に関してサーチする第６のステップと、
前記ラインＭ＋１が前記第２キャッシュにおいて見つかった場合、前記ラインＭ＋１が前記ラインＭとは別の論理的メモリ・ブロックに存在するかどうかを判定する第７のステップと、
前記ラインＭ＋１が前記別の論理的メモリ・ブロックに存在しない場合、前記ラインＭ＋１を前記第２キャッシュから前記第１キャッシュに転送する第８のステップと、及び
前記ラインＭ＋１が前記別の論理的メモリ・ブロックに存在する場合、前記ラインＭにおける未解決のブランチ命令が解決されるのを待って前記ラインＭ＋１を前記第２キャッシュから前記第１キャッシュに転送する第９のステップと、
を含むことを特徴とする方法。
【請求項２】
プロセッサと、
第１キャッシュと、
第２キャッシュと、
メイン・メモリと、
前記第１キャッシュにおいてラインＭに対するキャッシュ・ミスを検出する第１の手段と、
前記キャッシュ・ミスに応答して前記ラインＭに関して前記第２キャッシュをサーチする第２の手段と、
前記ラインＭが前記第２キャッシュにおいて見つかった場合、前記ラインＭを前記第２キャッシュから前記第１キャッシュに転送する第３の手段と、
前記ラインＭが前記第２キャッシュにおいて見つからなかった場合、ラインＭ−１における未解決のブランチ命令が解決されるのを待ってから前記ラインＭを前記メイン・メモリからフェッチする第４の手段と、
第３の手段又は第４の手段の処理終了後、前記第１キャッシュをラインＭ＋１に関してサーチする第５の手段と、
前記ラインＭ＋１が前記第１キャッシュにおいて見つからなかった場合、前記第２キャッシュを前記ラインＭ＋１に関してサーチする第６の手段と、
前記ラインＭ＋１が前記第２キャッシュにおいて見つかった場合、前記ラインＭ＋１が前記ラインＭとは別の論理的メモリ・ブロックに存在するかどうかを判定する第７の手段と、
前記ラインＭ＋１が前記別の論理的メモリ・ブロックに存在しない場合、前記ラインＭ＋１を前記第２キャッシュから前記第１キャッシュに転送する第８の手段と、
前記ラインＭ＋１が前記別の論理的メモリ・ブロックに存在する場合、前記ラインＭにおける未解決のブランチ命令が解決されるのを待って前記ラインＭ＋１を前記第２キャッシュから前記第１キャッシュに転送する第８の手段、及び
前記ラインＭ＋１が前記別の論理的メモリ・ブロックに存在する場合、前記ラインＭにおける未解決のブランチ命令が解決されるのを待って前記ラインＭ＋１を前記第２キャッシュから前記第１キャッシュに転送する第９の手段と、
を含むことを特徴とする処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、概して云えば、データ処理システムに関するものであり、更に詳しく云えば、データをキャッシュに予測的にプリフェッチする方法に関するものである。
【０００２】
【従来の技術】
最近のマイクロプロセッサ・システムでは、テクノロジが改良し続けているので、プロセッサ・サイクル・タイムは減少し続けている。又、予測的実行、深いパイプライン、多くの実行エレメント等の設計技術は処理システムのパフォーマンスを改良し続けている。プロセッサはメモリからの更に高速のデータ及び命令の読み出しを要求するので、改良されたパフォーマンスはメモリ・インターフェースに更に重い負担をかける。処理システムのパフォーマンスを向上させるために、キャッシュ・メモリ・システムが実施されることが多い。
【０００３】
キャッシュ・メモリを使用する処理システムはその分野ではよく知られている。キャッシュ・メモリは、最小限の待ち時間で現プログラム及びデータをプロセッサ（ＣＰＵ）にとって使用可能にすることによってデータ処理システムの速度を増加させる非常に高速度のメモリである。大型のオン・チップ・キャッシュ（Ｌ１キャッシュ）はメモリ待ち時間の減少を助成するために導入され、そして大型のオフ・チップ・キャッシュ（Ｌ２キャッシュ）によってそれを促進されることが多い。
【０００４】
キャッシュ・メモリ・システムの主なる利点は、最も頻繁にアクセスされた命令及びデータを高速のキャッシュ・メモリに保持することによって、処理システム全体の平均的なメモリ・アクセス・タイムがそのキャッシュ・メモリのアクセス・タイムに近づくであろうと云うことである。キャッシュ・メモリはメイン・メモリのサイズの数分の１に過ぎないけれども、プログラムの「参照の局所性（Ｌｏｃａｌｉｔｙ  ｏｆ  ｒｅｆｅｒｅｎｃｅ）」特性のために、メモリ・リクエストの大部分はその高速のキャッシュ・メモリにおいてうまく見つかる。この特性は、如何なる所与のタイム・インターバル時でもメモリ参照が僅かな局部的メモリ領域に制限される傾向があることを維持している。
【０００５】
キャッシュ・メモリの基本的オペレーションはよく知られている。ＣＰＵがメモリをアクセスする必要がある時、キャッシュが調べられる。ＣＰＵによってアドレスされたワードがそのキャッシュで見つかった場合、それはその高速メモリから読み取られる。ＣＰＵによってアドレスされたワードがキャッシュにおいて見つからなかった場合、そのワードを読み出すためにメイン・メモリがアクセスされる。そこで、そのアクセスされたワードを含む１ブロックのワードがメイン・メモリからキャッシュ・メモリに転送される。このように、メイン・メモリへのその後の参照時に必要なワードが高速のキャッシュ・メモリにおいて見つかるように、いくつかのワードがキャッシュ・メモリに転送される。
【０００６】
コンピュータ・システムの平均的なメモリ・アクセス・タイムはキャッシュの使用によってかなり改善可能である。キャッシュ・メモリのパフォーマンスは、「ヒット率」と呼ばれる数量によって測定されることが多い。ＣＰＵがメモリをアクセスしそしてそのワードをキャッシュにおいて見つける時、その結果としてキャッシュ「ヒット」が生じる。そのワードがキャッシュ・メモリにおいて見つからず、メイン・メモリにおいて見つかった場合、その結果としてキャッシュ「ミス」が生じる。ＣＰＵがメイン・メモリの代わりにキャッシュ・メモリにおいてワードを見つけることが多い場合、その結果として高いヒット率が生じ、平均的なアクセス・タイムは高速のキャッシュ・メモリのアクセス・タイムに近づく。
【０００７】
プリフェッチ技法は、待ち時間を少なくするために、メモリ・データを早めにオン・チップＬ１キャッシュに供給しようとするために導入されることが多い。理想的には、データ及び命令は、プロセッサがそれを必要とする時、それらのデータ及び命令のコピーがいつもＬ１キャッシュにあるように十分早めにプリフェッチされる。
【０００８】
命令又はデータのプリフェッチはその分野ではよく知られている。しかし、既存のプリフェッチ技法は、命令又はデータをプリフェッチするのが早過ぎることが多い。プリフェッチし、そしてそのプリフェッチされた命令又はデータを使用しないことは、メモリ・アクセスのための時間を拡大するが、何の利益も生じないし、それによってＣＰＵの効率を低下させるだけである。
【０００９】
これの一般的な例は、キャッシュに未決のブランチ命令が存在する時、処理システムが命令を予測的にプリフェッチする場合にいつも生じる。システムは、プログラム実行が後続しないブランチに属する命令をプリフェッチすることがある。これらの命令をメモリからプリフェッチすることに費やした時間は浪費され、不必要なメモリ・バス・トラフィックを生じさせる。
【００１０】
従って、不必要な命令のプリフェッチによるＬ１命令キャッシュへの命令アクセスの待ち時間を減少させるシステム及び方法に対する要求がその分野には存在する。
【００１１】
【発明が解決しようとする課題】
本発明の目的は、予測的な命令キャッシュ・ラインをＬ２キャッシュのみからプリフェッチするための装置をデータ処理システムのＬ１Ｉ−キャッシュ（命令キャッシュ）コントローラに設けることにある。本発明の背後にある基本的な概念は、メイン・メモリ・バスによる命令プリフェッチが「真」のキャッシュ・ミスに対して留保されなければならないということである。「真」のキャッシュ・ミスとは、そのミスしたデータ・ラインに対するリクエストをプロセッサに取り消させる未解決のブランチが未決の命令の中に存在しないために、そのミスしたデータ・ラインがプロセッサによって必然的に必要とされる場合のキャッシュ・ミスのことである。
【００１２】
本発明のもう１つの目的は、予測的な命令ストリームのプリフェッチがプロセッサ・バス利用に不利にインパクトを与えないように最適に命令をプリフェッチするための方法を開示することにある。
【００１３】
【課題を解決するための手段】
本発明は、未決の命令における未解決のブランチを解決する前に、命令がメイン・メモリではなくＬ２キャッシュのみからＬ１キャッシュにプリフェッチされるプリフェッチ方法を実施することによって予測的なプリフェッチにおける固有の問題を克服する。
【００１４】
【発明の実施の形態】
本発明の原理及びそれの利点は、添付図面のうちの図１及び図２に示された実施例を参照することによって最もよく理解されるであろう。なお、それらの図における同じ番号は同じ部分を指している。
【００１５】
図１は処理システム１００を示し、それはプロセッサ１１０、プロセッサに組み込まれたＬ１キャッシュ１３１、及び外部Ｌ２キャッシュ１２０を含む。本発明の好適な実施例では、Ｌ１(第１)キャッシュ１３１は、データを記憶するためのデータ・キャッシュ１３２及びそれとは別個の命令を記憶するための命令キャッシュ（Ｌ１Ｉ−キャッシュ）１３０を含む。データ・キャッシュ及び命令キャッシュが別々になったものはその分野ではよく知られている。プロセッサ１１０は、メイン・メモリ１１５からプリフェッチ・バッファ１２５を介して受け取った命令及びデータをＬ１Ｉ−キャッシュ１３０及びＬ２(第２)キャッシュ１２０においてキャッシュすることができる。
【００１６】
Ｌ１Ｉ−キャッシュ１３０は、米国特許出願第５１９,０３２号に開示されたようなその分野では知られた任意の置換方法を使用してメイン・メモリ１１５からの頻繁に使用されたプログラム命令のコピーを保持する。Ｌ２キャッシュ１２０はＬ１キャッシュよりも大きく、Ｌ１キャッシュよりも多くのデータを保持し、通常は、システム１００に対するメモリ・コヒーレンス・プロトコルを制御する。本発明の好適な実施例では、Ｌ１キャッシュ１３０における命令はＬ２キャッシュ１２０に含まれる必要はない。
【００１７】
プロセッサ１１０を囲む破線はチップ境界及び機能的境界を表すが、本発明の技術的範囲に関する限定を意味するものではない。プロセッサ・キャッシュ・コントローラ（ＰＣＣ）１３５は、メモリ・サブシステム（Ｌ１キャッシュ１３１、Ｌ２キャッシュ１２０）からのフェッチ及びそれへのストアを制御する。ＰＣＣ１３５は、フェッチ及びストアの制御に加えて、他の機能を遂行することもできる。
【００１８】
図２は、本発明の一実施例に従って状態機械（ステート・マシン）に対する流れ図２００を示す。本発明による状態機械はＰＣＣ１３５にあってもよく、或いはプロセッサ１１０における他の場所にあってもよい。命令のキャッシュ・ラインは、本発明によって、メイン・メモリ１１５及びＬ２キャッシュ１２０からＬ１Ｉ−キャッシュ１３０に予測的にフェッチ可能である。フェッチされるラインに先行するラインにおける命令が１つ又は複数の未解決のブランチを含む場合には、フェッチは予測的である。
【００１９】
しかし、プログラム順序は維持されなければならず、先行の命令がすべて完了しそして介在したブランチが解決されるまで、その想像したターゲット命令は予測のままである。予測の命令は、先行の未解決ブランチがない時、「必然的予測」命令又は「コミットされた」命令になる。従って、必然的予測命令は、外部割込み（例えば、Ｉ／Ｏ１４０からの割込み）のような割込みがない場合に実行される。
【００２０】
図２における流れ図２００のステップ２０５ー２４１に注意を向けることにする。本発明は、ラインを命令キャッシュにプリフェッチするための方法を説明する。本発明は、状態機械を使用してＬ１Ｉ−キャッシュ１３０に対するＬ１ミスの発生をモニタする。「Ｌ１ミス」とは、Ｌ１Ｉ−キャッシュ１３０においてターゲット・ラインが見つからなかったＬ１Ｉ−キャッシュ１３０へのアクセスのことである。プロセッサ１１０がＬ１Ｉ−キャッシュ１３０からのキャッシュ・ラインＭをリクエストし、キャッシュ・ラインＭがＬ１Ｉ−キャッシュ１３０内にない（即ち、Ｌ１ミスが生じた）時、状態機械はそのミスしたライン（ラインＭ）をＬ２キャッシュ１２０においてサーチする（ステップ２０５）。ラインＭがＬ２キャッシュ１２０内に存在する場合、状態機械はＬ２キャッシュ１２０からＬ１Ｉ−キャッシュ１３０にラインＭをフェッチする（ステップ２１０）。ラインＭがＬ２キャッシュ１２０内にもない場合、本発明は、未決のラインＭ−１における未解決のブランチすべてが解決されてしまうのを待ってメイン・メモリ１１５からラインＭをフェッチする（ステップ２３０及び２３５）。これは、使用されることなく取り消されるかもしれないメイン・メモリ１１５からの命令の不必要なプリフェッチを防ぐ。ここで使用されるように、「取り消（キャンセル）される」は、プロセッサがその期待されたラインＭではなく他のライン、例えば、ラインＸをリクエストすることを意味する。すべてのブランチがラインＭ−１において解決され、ラインＭがコミットされる場合、ラインＭはメイン・メモリ１１５からＬ１Ｉ−キャッシュ１３０及びＬ２キャッシュ１２０にフェッチされる（ステップ２４０）。
【００２１】
ラインＭがＬ２キャッシュ１２０にあるかどうかに関係なく、状態機械は次に高いライン、即ち、ラインＭ＋１の存在に関してＬ１Ｉ−キャッシュ１３０をテストする（ステップ２１５）。ラインＭ＋１がＬ１Ｉ−キャッシュ１３０にある場合、それ以上のアクションは必要ない（ステップ２４１）。ラインＭ＋１がＬ１Ｉ−キャッシュ１３０にない場合、状態機械は、ラインＭ＋１に関してＬ２キャッシュ１２０をテストし、そしてそれが見つかった場合、Ｌ２キャッシュ１２０からＬ１Ｉ−キャッシュ１３０にラインＭ＋１を予測的にプリフェッチする（ステップ２２５）。
【００２２】
状態機械は、ラインＭ＋１がメモリにおける論理的境界（ページ或いはブロック）を横切るかどうかも検証する（ステップ２２２）。通常は、ラインＭは実際の物理アドレスに変換されるが、ラインＭ＋１は変換されない。従って、物理的メモリにおけるラインＭ＋１のロケーションは不定である。ラインＭ＋１が別の論理的境界内にある場合、状態機械はＬ２キャッシュからラインＭ＋１をプリフェッチしないであろうし、それによって、Ｌ１及びＬ２の間の帯域幅を維持するであろう（ステップ２４１）。その代わり、プロセッサ１１０がラインＭ＋１をリクエストする時、流れ図２００はステップ２０５に再び入るであろう。
【００２３】
ラインＭ＋１がＬ２キャッシュ１２０内にない場合、本発明は、ラインＭにおけるすべてのブランチが解決されてしまいそしてラインＭ＋１がコミットされるまで、ラインＭ＋１をメイン・メモリ１１５からＬ１Ｉ−キャッシュ１３０又はＬ２キャッシュ１２０にプリフェッチしないであろう（ステップ２４１）。本発明は、ラインＭには未解決のブランチがないことを確認するのを待ち、そしてプロセッサは、ラインＭ＋１に対するプリフェッチでもってメイン・メモリ・バスを占める前に、ラインＭ＋１に対するリクエストをＬ１Ｉ−キャッシュ１３０に発生する。ラインＭ＋１に対するＬ１リクエストはその結果としてＬ１キャッシュ・ミスを生じるであろうし、流れ図２００はステップ２０５に再び入るであろう。これは、全く使用されずに取り消される命令のプリフェッチを防ぐ。
【００２４】
次の表は前述の事項を表の形式で示す。
【表１】
0003640355.tif 000002
【００２５】
本発明が、Ｌ１Ｉ−キャッシュ１３０のミスと同様に、Ｌ１Ｉ−キャッシュ１３０のヒットの場合にもＬ２キャッシュ１２０から予測的にプリフェッチするために使用可能であることは当業者には明らかであろう。
【００２６】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００２７】
（１）プロセッサ、第１キャッシュ、第２キャッシュ、及びメイン・メモリを含む処理システムにおいて前記第１キャッシュにデータをプリフェッチするための方法にして、
前記第１キャッシュにおいてラインＭに対するキャッシュ・アクセス事象を検出するステップと、
前記キャッシュ・アクセス事象に応答して前記ラインＭに関して前記第２キャッシュをサーチするステップと、
前記ラインＭが前記第２キャッシュにおいて見つかった場合、前記ラインＭを前記第２キャッシュから前記第１キャッシュに転送するステップと、
前記ラインＭが前記第２キャッシュにおいて見つからなった場合、ラインＭ−１におけるすべての未解決のブランチ命令が解決されるのを待ってから前記ラインＭを前記メイン・メモリからフェッチするステップと、
を含む方法。
（２）前記キャッシュ・アクセス事象はキャッシュ・ミスであることを特徴とする上記（１）に記載の方法。
（３）前記キャッシュ・アクセス事象はキャッシュ・ヒットであることを特徴とする上記（１）に記載の方法。
（４）前記第１キャッシュをラインＭ＋１に関してサーチするステップと、
前記ラインＭ＋１が前記第１キャッシュにおいて見つからなかった場合、前記第２キャッシュを前記ラインＭ＋１に関してサーチするステップと、
を含むことを特徴とする上記（１）に記載の方法。
（５）前記ラインＭ＋１が前記第２キャッシュにおいて見つかった場合、前記ラインＭ＋１を前記第２キャッシュから前記第１キャッシュに転送するステップを含むことを特徴とする上記（４）に記載の方法。
（６）前記ラインＭ＋１が前記第２キャッシュにおいて見つからなった場合、ラインＭにおけるすべての未解決のブランチ命令が解決されるのを待ってから前記ラインＭ＋１を前記メイン・メモリからフェッチするステップを含むことを特徴とする上記（４）に記載の方法。
（７）前記ラインＭ＋１が前記第２キャッシュにおいて見つかった場合、前記ラインＭ＋１が前記ラインＭとは別の論理的メモリ・ブロックに存在するかどうかを決定するステップを含むことを特徴とする上記（４）に記載の方法。
（８）前記ラインＭ＋１が前記別の論理的メモリ・ブロックに存在しない場合、前記ラインＭ＋１を前記第２キャッシュから前記第１キャッシュに転送するステップを含むことを特徴とする上記（７）に記載の方法。
（９）前記ラインＭ＋１が前記別の論理的メモリ・ブロックに存在する場合、前記ラインＭにおけるすべての未解決のブランチ命令が解決されるのを待って前記ラインＭ＋１を前記第２キャッシュから前記第１キャッシュに転送することを特徴とする上記（７）に記載の方法。
（１０）プロセッサ、第１キャッシュ、第２キャッシュ、及びメイン・メモリを含む処理システムにおいて前記第１キャッシュにデータをプリフェッチするための方法にして、
前記第１キャッシュにおいてラインＭに対するキャッシュ・アクセス事象を検出するステップと、
前記キャッシュ・アクセス事象に応答して前記ラインＭ＋１に関して前記第２キャッシュをサーチするステップと、
前記ラインＭ＋１が前記第２キャッシュにおいて見つからなった場合、ラインＭにおけるすべての未解決のブランチ命令が解決されるのを待ってから前記ラインＭ＋１を前記メイン・メモリからフェッチするステップ、
を含む方法。
（１１）前記キャッシュ・アクセス事象はキャッシュ・ミスであることを特徴とする上記（１０）に記載の方法。
（１２）前記キャッシュ・アクセス事象はキャッシュ・ヒットであることを特徴とする上記（１０）に記載の方法。
（１３）前記ラインＭ＋１が前記第２キャッシュにおいて見つからなかった場合、前記ラインＭ＋１が前記ラインＭとは別の論理的メモリ・ブロックに存在するかどうかを決定するステップを含むことを特徴とする上記（１０）に記載の方法。
（１４）前記ラインＭ＋１が前記別の論理的メモリ・ブロックにおいて見つからなかった場合、前記ラインＭ＋１を前記第２キャッシュから前記第１キャッシュに転送するステップを含むことを特徴とする上記（１３）に記載の方法。
（１５）前記ラインＭ＋１が前記別の論理的メモリ・ブロックに存在する場合、前記ラインＭにおけるすべての未解決のブランチ命令が解決されるのを待って前記ラインＭ＋１を前記第２キャッシュから前記第１キャッシュに転送することを特徴とする上記（１３）に記載の方法。
（１６）プロセッサと、
第１キャッシュと、
第２キャッシュと、
メイン・メモリと、
前記第１キャッシュにおいて第１データに対するキャッシュ・アクセス事象を検出するための手段と、
前記キャッシュ・アクセス事象に応答して、前記第１データに続く第２データが前記第２キャッシュに存在するかどうかを決定するための手段と、
前記第２データが前記第２キャッシュに存在しないという決定に応答して前記第１データにおけるすべての未解決のブランチ命令が解決されるのを待って前記第２データを前記メイン・メモリからフェッチするための手段と、
を含む処理システム。
（１７）前記キャッシュ・アクセス事象はキャッシュ・ミスであることを特徴とする上記（１６）に記載の処理システム。
（１８）前記キャッシュ・アクセス事象はキャッシュ・ヒットであることを特徴とする上記（１６）に記載の処理システム。
（１９）前記第２データが前記第２キャッシュに存在するという決定に応答して、前記第２データが前記第１データとは別の論理的メモリ・ブロックに存在するかどうかを決定するための手段を含むことを特徴とする上記（１６）に記載の処理システム。
（２０）前記第２データが前記別の論理的メモリ・ブロックに存在しないという決定に応答して、前記第２データを前記第２キャッシュから前記第１キャッシュに転送するための手段を含むことを特徴とする上記（１９）に記載の処理システム。
（２１）前記第２データが前記別の論理的メモリ・ブロックに存在するという決定に応答して、前記第１データにおけるすべての未解決のブランチ命令が解決されるのを待って前記第２データを前記第２キャッシュから前記第１キャッシュに転送するための手段を含むことを特徴とする上記（１９）に記載の処理システム。
【００２８】
さらに、本発明は次の（３１）〜（４５）の構成を含む。
(３１)：  プロセッサ、第１キャッシュ、第２キャッシュ、及びメイン・メモリを含む処理システムにおいて前記第１キャッシュにデータをプリフェッチするための方法にして、
前記第１キャッシュにおいてラインＭに対するキャッシュ・アクセス事象を検出するステップと、
前記キャッシュ・アクセス事象に応答して前記ラインＭに関して前記第２キャッシュをサーチするステップと、
前記ラインＭが前記第２キャッシュにおいて見つかった場合、前記ラインＭを前記第２キャッシュから前記第１キャッシュに転送するステップと、
前記ラインＭが前記第２キャッシュにおいて見つからなかった場合、ラインＭ−１における未解決のブランチ命令が解決されるのを待ってから前記ラインＭを前記メイン・メモリからフェッチするステップと、
前記第１キャッシュをラインＭ＋１に関してサーチするステップと、
前記ラインＭ＋１が前記第１キャッシュにおいて見つからなかった場合、前記第２キャッシュを前記ラインＭ＋１に関してサーチするステップと、
を含む方法。
【００２９】
(３２)：  前記キャッシュ・アクセス事象はキャッシュ・ミスであることを特徴とする(３１)に記載の方法。
(３３)：  前記キャッシュ・アクセス事象はキャッシュ・ヒットであることを特徴とする(３１)に記載の方法。
(３４)：  前記ラインＭ＋１が前記第２キャッシュにおいて見つからなかった場合、ラインＭにおける未解決のブランチ命令が解決されるのを待ってから前記ラインＭ＋１を前記メイン・メモリからフェッチするステップを含むことを特徴とする(３１)〜（３３）の何れか１つに記載の方法。
(３５)：  前記ラインＭ＋１が前記第２キャッシュにおいて見つかった場合、前記ラインＭ＋１が前記ラインＭとは別の論理的メモリ・ブロックに存在するかどうかを判定するステップを含むことを特徴とする(３１)〜（３３）の何れか１つに記載の方法。
(３６)：  前記ラインＭ＋１が前記別の論理的メモリ・ブロックに存在しない場合、前記ラインＭ＋１を前記第２キャッシュから前記第１キャッシュに転送するステップを含むことを特徴とする(３５)に記載の方法。
(３７)：  前記ラインＭ＋１が前記別の論理的メモリ・ブロックに存在する場合、前記ラインＭにおける未解決のブランチ命令が解決されるのを待って前記ラインＭ＋１を前記第２キャッシュから前記第１キャッシュに転送することを特徴とする(３５)に記載の方法。
【００３０】
(３８)：  プロセッサ、第１キャッシュ、第２キャッシュ、及びメイン・メモリを含む処理システムにおいて前記第１キャッシュにデータをプリフェッチするための方法にして、
前記第１キャッシュにおいてラインＭに対するキャッシュ・アクセス事象を検出するステップと、
前記キャッシュ・アクセス事象に応答して前記ラインＭ＋１に関して前記第２キャッシュをサーチするステップと、
前記ラインＭ＋１が前記第２キャッシュにおいて見つからなかった場合、ラインＭにおける未解決のブランチ命令が解決されるのを待ってから前記ラインＭ＋１を前記メイン・メモリからフェッチするステップと、
前記ラインＭ＋１が前記第２キャッシュにおいて見つかった場合、前記ラインＭ＋１が前記ラインＭとは別の論理的メモリ・ブロックに存在するかどうかを判定するステップと、
前記ラインＭ＋１が前記別の論理的メモリ・ブロックに存在しない場合、前記ラインＭ＋１を前記第２キャッシュから前記第１キャッシュに転送するステップと、
を含む方法。
【００３１】
(３９)：  前記キャッシュ・アクセス事象はキャッシュ・ミスであることを特徴とする(３８)に記載の方法。
(４０)：  前記キャッシュ・アクセス事象はキャッシュ・ヒットであることを特徴とする(３８)に記載の方法。
(４１)：  前記ラインＭ＋１が前記別の論理的メモリ・ブロックに存在する場合、前記ラインＭにおける未解決のブランチ命令が解決されるのを待って前記ラインＭ＋１を前記第２キャッシュから前記第１キャッシュに転送することを特徴とする(３８)〜（４０）の何れか１つに記載の方法。
【００３２】
(４２)：  プロセッサと、
第１キャッシュと、
第２キャッシュと、
メイン・メモリと、
前記第１キャッシュにおいて第１データに対するキャッシュ・アクセス事象を検出するための手段と、
前記キャッシュ・アクセス事象に応答して、前記第１データに続く第２データが前記第２キャッシュに存在するかどうかを判定するための手段と、
前記第２データが前記第２キャッシュに存在しないという判定に応答して、前記第１データにおける未解決のブランチ命令が解決されるのを待って前記第２データを前記メイン・メモリからフェッチするための手段と、
前記第２データが前記第２キャッシュに存在するという判定に応答して、前記第２データが前記第１データとは別の論理的メモリ・ブロックに存在するかどうかを判定するための手段と、
前記第２データが前記別の論理的メモリ・ブロックに存在しないという判定に応答して、前記第２データを前記第２キャッシュから前記第１キャッシュに転送するための手段と、
を含む処理システム。
【００３３】
(４３)：  前記キャッシュ・アクセス事象はキャッシュ・ミスであることを特徴とする(４２)に記載の処理システム。
(４４)：  前記キャッシュ・アクセス事象はキャッシュ・ヒットであることを特徴とする(４２)に記載の処理システム。
(４５)：  前記第２データが前記別の論理的メモリ・ブロックに存在するという判定に応答して、前記第１データにおける未解決のブランチ命令が解決されるのを待って前記第２データを前記第２キャッシュから前記第１キャッシュに転送するための手段を含むことを特徴とする(４２)〜（４４）の何れか１つに記載の処理システム。
【図面の簡単な説明】
【図１】本発明による処理システムの高レベル・ブロック図である。
【図２】本発明によるプリフェッチ・オペレーションの流れ図である。
【符号の説明】
１００  処理システム
１１０  プロセッサ
【図１】
0003640355.tif 000003
【図２】
0003640355.tif 000004