JP3549079B2 - キャッシュ制御の命令プリフェッチ方法 - Google Patents

キャッシュ制御の命令プリフェッチ方法 Download PDF

Info

Publication number
JP3549079B2
JP3549079B2 JP19208496A JP19208496A JP3549079B2 JP 3549079 B2 JP3549079 B2 JP 3549079B2 JP 19208496 A JP19208496 A JP 19208496A JP 19208496 A JP19208496 A JP 19208496A JP 3549079 B2 JP3549079 B2 JP 3549079B2
Authority
JP
Japan
Prior art keywords
cache
line
memory
data
instructions
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
JP19208496A
Other languages
English (en)
Other versions
JPH0981456A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0981456A publication Critical patent/JPH0981456A/ja
Application granted granted Critical
Publication of JP3549079B2 publication Critical patent/JP3549079B2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching

Landscapes

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

Description

【0001】
【発明の属する技術分野】
本発明は、概して云えば、データ処理システムに関するものであり、更に詳しく云えば、データをキャッシュに予測的にプリフェッチする方法に関するものである。
【0002】
【従来の技術】
最近のマイクロプロセッサ・システムでは、テクノロジが改良し続けているので、プロセッサ・サイクル・タイムは減少し続けている。又、予測的実行、深いパイプライン、多くの実行エレメント等の設計技術は処理システムのパフォーマンスを改良し続けている。プロセッサはメモリからの更に高速のデータ及び命令の読み出しを要求するので、改良されたパフォーマンスはメモリ・インターフェースに更に重い負担をかける。処理システムのパフォーマンスを向上させるために、キャッシュ・メモリ・システムが実施されることが多い。
【0003】
キャッシュ・メモリを使用する処理システムはその分野ではよく知られている。キャッシュ・メモリは、最小限の待ち時間で現プログラム及びデータをプロセッサ(CPU)にとって使用可能にすることによってデータ処理システムの速度を増加させる非常に高速度のメモリである。大型のオン・チップ・キャッシュ(L1キャッシュ)はメモリ待ち時間の減少を助成するために導入され、そして大型のオフ・チップ・キャッシュ(L2キャッシュ)によってそれを促進されることが多い。
【0004】
キャッシュ・メモリ・システムの主なる利点は、最も頻繁にアクセスされた命令及びデータを高速のキャッシュ・メモリに保持することによって、処理システム全体の平均的なメモリ・アクセス・タイムがそのキャッシュ・メモリのアクセス・タイムに近づくであろうと云うことである。キャッシュ・メモリはメイン・メモリのサイズの数分の1に過ぎないけれども、プログラムの「参照の局所性(Locality of reference)」特性のために、メモリ・リクエストの大部分はその高速のキャッシュ・メモリにおいてうまく見つかる。この特性は、如何なる所与のタイム・インターバル時でもメモリ参照が僅かな局部的メモリ領域に制限される傾向があることを維持している。
【0005】
キャッシュ・メモリの基本的オペレーションはよく知られている。CPUがメモリをアクセスする必要がある時、キャッシュが調べられる。CPUによってアドレスされたワードがそのキャッシュで見つかった場合、それはその高速メモリから読み取られる。CPUによってアドレスされたワードがキャッシュにおいて見つからなかった場合、そのワードを読み出すためにメイン・メモリがアクセスされる。そこで、そのアクセスされたワードを含む1ブロックのワードがメイン・メモリからキャッシュ・メモリに転送される。このように、メイン・メモリへのその後の参照時に必要なワードが高速のキャッシュ・メモリにおいて見つかるように、いくつかのワードがキャッシュ・メモリに転送される。
【0006】
コンピュータ・システムの平均的なメモリ・アクセス・タイムはキャッシュの使用によってかなり改善可能である。キャッシュ・メモリのパフォーマンスは、「ヒット率」と呼ばれる数量によって測定されることが多い。CPUがメモリをアクセスしそしてそのワードをキャッシュにおいて見つける時、その結果としてキャッシュ「ヒット」が生じる。そのワードがキャッシュ・メモリにおいて見つからず、メイン・メモリにおいて見つかった場合、その結果としてキャッシュ「ミス」が生じる。CPUがメイン・メモリの代わりにキャッシュ・メモリにおいてワードを見つけることが多い場合、その結果として高いヒット率が生じ、平均的なアクセス・タイムは高速のキャッシュ・メモリのアクセス・タイムに近づく。
【0007】
プリフェッチ技法は、待ち時間を少なくするために、メモリ・データを早めにオン・チップL1キャッシュに供給しようとするために導入されることが多い。理想的には、データ及び命令は、プロセッサがそれを必要とする時、それらのデータ及び命令のコピーがいつもL1キャッシュにあるように十分早めにプリフェッチされる。
【0008】
命令又はデータのプリフェッチはその分野ではよく知られている。しかし、既存のプリフェッチ技法は、命令又はデータをプリフェッチするのが早過ぎることが多い。プリフェッチし、そしてそのプリフェッチされた命令又はデータを使用しないことは、メモリ・アクセスのための時間を拡大するが、何の利益も生じないし、それによってCPUの効率を低下させるだけである。
【0009】
これの一般的な例は、キャッシュに未決のブランチ命令が存在する時、処理システムが命令を予測的にプリフェッチする場合にいつも生じる。システムは、プログラム実行が後続しないブランチに属する命令をプリフェッチすることがある。これらの命令をメモリからプリフェッチすることに費やした時間は浪費され、不必要なメモリ・バス・トラフィックを生じさせる。
【0010】
従って、不必要な命令のプリフェッチによるL1命令キャッシュへの命令アクセスの待ち時間を減少させるシステム及び方法に対する要求がその分野には存在する。
【0011】
【発明が解決しようとする課題】
本発明の目的は、予測的な命令キャッシュ・ラインをL2キャッシュのみからプリフェッチするための装置をデータ処理システムのL1I−キャッシュ(命令キャッシュ)コントローラに設けることにある。本発明の背後にある基本的な概念は、メイン・メモリ・バスによる命令プリフェッチが「真」のキャッシュ・ミスに対して留保されなければならないということである。「真」のキャッシュ・ミスとは、そのミスしたデータ・ラインに対するリクエストをプロセッサに取り消させる未解決のブランチが未決の命令の中に存在しないために、そのミスしたデータ・ラインがプロセッサによって必然的に必要とされる場合のキャッシュ・ミスのことである。
【0012】
本発明のもう1つの目的は、予測的な命令ストリームのプリフェッチがプロセッサ・バス利用に不利にインパクトを与えないように最適に命令をプリフェッチするための方法を開示することにある。
【0013】
【課題を解決するための手段】
本発明は、未決の命令における未解決のブランチを解決する前に、命令がメイン・メモリではなくL2キャッシュのみからL1キャッシュにプリフェッチされるプリフェッチ方法を実施することによって予測的なプリフェッチにおける固有の問題を克服する。
【0014】
【発明の実施の形態】
本発明の原理及びそれの利点は、添付図面のうちの図1及び図2に示された実施例を参照することによって最もよく理解されるであろう。なお、それらの図における同じ番号は同じ部分を指している。
【0015】
図1は処理システム100を示し、それはプロセッサ110、プロセッサに組み込まれたL1キャッシュ131、及び外部L2キャッシュ120を含む。本発明の好適な実施例では、L1(第1)キャッシュ131は、データを記憶するためのデータ・キャッシュ132及びそれとは別個の命令を記憶するための命令キャッシュ(L1I−キャッシュ)130を含む。データ・キャッシュ及び命令キャッシュが別々になったものはその分野ではよく知られている。プロセッサ110は、メイン・メモリ115からプリフェッチ・バッファ125を介して受け取った命令及びデータをL1I−キャッシュ130及びL2(第2)キャッシュ120においてキャッシュすることができる。
【0016】
L1I−キャッシュ130は、米国特許出願第519,032号に開示されたようなその分野では知られた任意の置換方法を使用してメイン・メモリ115からの頻繁に使用されたプログラム命令のコピーを保持する。L2キャッシュ120はL1キャッシュよりも大きく、L1キャッシュよりも多くのデータを保持し、通常は、システム100に対するメモリ・コヒーレンス・プロトコルを制御する。本発明の好適な実施例では、L1キャッシュ130における命令はL2キャッシュ120に含まれる必要はない。
【0017】
プロセッサ110を囲む破線はチップ境界及び機能的境界を表すが、本発明の技術的範囲に関する限定を意味するものではない。プロセッサ・キャッシュ・コントローラ(PCC)135は、メモリ・サブシステム(L1キャッシュ131、L2キャッシュ120)からのフェッチ及びそれへのストアを制御する。PCC135は、フェッチ及びストアの制御に加えて、他の機能を遂行することもできる。
【0018】
図2は、本発明の一実施例に従って状態機械(ステート・マシン)に対する流れ図200を示す。本発明による状態機械はPCC135にあってもよく、或いはプロセッサ110における他の場所にあってもよい。命令のキャッシュ・ラインは、本発明によって、メイン・メモリ115及びL2キャッシュ120からL1I−キャッシュ130に予測的にフェッチ可能である。フェッチされるラインに先行するラインにおける命令が1つ又は複数の未解決のブランチを含む場合には、フェッチは予測的である。
【0019】
しかし、プログラム順序は維持されなければならず、先行の命令がすべて完了しそして介在したブランチが解決されるまで、その想像したターゲット命令は予測のままである。予測の命令は、先行の未解決ブランチがない時、「必然的予測」命令又は「コミットされた」命令になる。従って、必然的予測命令は、外部割込み(例えば、I/O140からの割込み)のような割込みがない場合に実行される。
【0020】
図2における流れ図200のステップ205ー241に注意を向けることにする。本発明は、ラインを命令キャッシュにプリフェッチするための方法を説明する。本発明は、状態機械を使用してL1I−キャッシュ130に対するL1ミスの発生をモニタする。「L1ミス」とは、L1I−キャッシュ130においてターゲット・ラインが見つからなかったL1I−キャッシュ130へのアクセスのことである。プロセッサ110がL1I−キャッシュ130からのキャッシュ・ラインMをリクエストし、キャッシュ・ラインMがL1I−キャッシュ130内にない(即ち、L1ミスが生じた)時、状態機械はそのミスしたライン(ラインM)をL2キャッシュ120においてサーチする(ステップ205)。ラインMがL2キャッシュ120内に存在する場合、状態機械はL2キャッシュ120からL1I−キャッシュ130にラインMをフェッチする(ステップ210)。ラインMがL2キャッシュ120内にもない場合、本発明は、未決のラインM−1における未解決のブランチすべてが解決されてしまうのを待ってメイン・メモリ115からラインMをフェッチする(ステップ230及び235)。これは、使用されることなく取り消されるかもしれないメイン・メモリ115からの命令の不必要なプリフェッチを防ぐ。ここで使用されるように、「取り消(キャンセル)される」は、プロセッサがその期待されたラインMではなく他のライン、例えば、ラインXをリクエストすることを意味する。すべてのブランチがラインM−1において解決され、ラインMがコミットされる場合、ラインMはメイン・メモリ115からL1I−キャッシュ130及びL2キャッシュ120にフェッチされる(ステップ240)。
【0021】
ラインMがL2キャッシュ120にあるかどうかに関係なく、状態機械は次に高いライン、即ち、ラインM+1の存在に関してL1I−キャッシュ130をテストする(ステップ215)。ラインM+1がL1I−キャッシュ130にある場合、それ以上のアクションは必要ない(ステップ241)。ラインM+1がL1I−キャッシュ130にないる場合、状態機械は、ラインM+1に関してL2キャッシュ120をテストし、そしてそれが見つかった場合、L2キャッシュ120からL1I−キャッシュ130にラインM+1を予測的にプリフェッチする(ステップ225)。
【0022】
状態機械は、ラインM+1がメモリにおける論理的境界(ページ或いはブロック)を横切るかどうかも検証する(ステップ222)。通常は、ラインMは実際の物理アドレスに変換されるが、ラインM+1は変換されない。従って、物理的メモリにおけるラインM+1のロケーションは不定である。ラインM+1が別の論理的境界内にある場合、状態機械はL2キャッシュからラインM+1をプリフェッチしないであろうし、それによって、L1及びL2の間の帯域幅を維持するであろう(ステップ241)。その代わり、プロセッサ110がラインM+1をリクエストする時、流れ図200はステップ205に再び入るであろう。
【0023】
ラインM+1がL2キャッシュ120内にない場合、本発明は、ラインMにおけるすべてのブランチが解決されてしまいそしてラインM+1がコミットされるまで、ラインM+1をメイン・メモリ115からL1I−キャッシュ130又はL2キャッシュ120にプリフェッチしないであろう(ステップ241)。本発明は、ラインMには未解決のブランチがないことを確認するのを待ち、そしてプロセッサは、ラインM+1に対するプリフェッチでもってメイン・メモリ・バスを占める前に、ラインM+1に対するリクエストをL1I−キャッシュ130に発生する。ラインM+1に対するL1リクエストはその結果としてL1キャッシュ・ミスを生じるであろうし、流れ図200はステップ205に再び入るであろう。これは、全く使用されずに取り消される命令のプリフェッチを防ぐ。
【0024】
次の表は前述の事項を表の形式で示す。
【表1】
Figure 0003549079
【0025】
本発明が、L1I−キャッシュ130のミスと同様に、L1I−キャッシュ130のヒットの場合にもL2キャッシュ120から予測的にプリフェッチするために使用可能であることは当業者には明らかであろう。
【0026】
まとめとして、本発明の構成に関して以下の事項を開示する。
【0027】
(1)プロセッサ、第1キャッシュ、第2キャッシュ、及びメイン・メモリを含む処理システムにおいて前記第1キャッシュにデータをプリフェッチするための方法にして、
前記第1キャッシュにおいてラインMに対するキャッシュ・アクセス事象を検出するステップと、
前記キャッシュ・アクセス事象に応答して前記ラインMに関して前記第2キャッシュをサーチするステップと、
前記ラインMが前記第2キャッシュにおいて見つかった場合、前記ラインMを前記第2キャッシュから前記第1キャッシュに転送するステップと、
前記ラインMが前記第2キャッシュにおいて見つからなった場合、ラインM−1におけるすべての未解決のブランチ命令が解決されるのを待ってから前記ラインMを前記メイン・メモリからフェッチするステップと、
を含む方法。
(2)前記キャッシュ・アクセス事象はキャッシュ・ミスであることを特徴とする上記(1)に記載の方法。
(3)前記キャッシュ・アクセス事象はキャッシュ・ヒットであることを特徴とする上記(1)に記載の方法。
(4)前記第1キャッシュをラインM+1に関してサーチするステップと、
前記ラインM+1が前記第1キャッシュにおいて見つからなかった場合、前記第2キャッシュを前記ラインM+1に関してサーチするステップと、
を含むことを特徴とする上記(1)に記載の方法。
(5)前記ラインM+1が前記第2キャッシュにおいて見つかった場合、前記ラインM+1を前記第2キャッシュから前記第1キャッシュに転送するステップを含むことを特徴とする上記(4)に記載の方法。
(6)前記ラインM+1が前記第2キャッシュにおいて見つからなった場合、ラインMにおけるすべての未解決のブランチ命令が解決されるのを待ってから前記ラインM+1を前記メイン・メモリからフェッチするステップを含むことを特徴とする上記(4)に記載の方法。
(7)前記ラインM+1が前記第2キャッシュにおいて見つかった場合、前記ラインM+1が前記ラインMとは別の論理的メモリ・ブロックに存在するかどうかを決定するステップを含むことを特徴とする上記(4)に記載の方法。
(8)前記ラインM+1が前記別の論理的メモリ・ブロックに存在しない場合、前記ラインM+1を前記第2キャッシュから前記第1キャッシュに転送するステップを含むことを特徴とする上記(7)に記載の方法。
(9)前記ラインM+1が前記別の論理的メモリ・ブロックに存在する場合、前記ラインMにおけるすべての未解決のブランチ命令が解決されるのを待って前記ラインM+1を前記第2キャッシュから前記第1キャッシュに転送することを特徴とする上記(7)に記載の方法。
(10)プロセッサ、第1キャッシュ、第2キャッシュ、及びメイン・メモリを含む処理システムにおいて前記第1キャッシュにデータをプリフェッチするための方法にして、
前記第1キャッシュにおいてラインMに対するキャッシュ・アクセス事象を検出するステップと、
前記キャッシュ・アクセス事象に応答して前記ラインM+1に関して前記第2キャッシュをサーチするステップと、
前記ラインM+1が前記第2キャッシュにおいて見つからなった場合、ラインMにおけるすべての未解決のブランチ命令が解決されるのを待ってから前記ラインM+1を前記メイン・メモリからフェッチするステップ、
を含む方法。
(11)前記キャッシュ・アクセス事象はキャッシュ・ミスであることを特徴とする上記(10)に記載の方法。
(12)前記キャッシュ・アクセス事象はキャッシュ・ヒットであることを特徴とする上記(10)に記載の方法。
(13)前記ラインM+1が前記第2キャッシュにおいて見つからなかった場合、前記ラインM+1が前記ラインMとは別の論理的メモリ・ブロックに存在するかどうかを決定するステップを含むことを特徴とする上記(10)に記載の方法。
(14)前記ラインM+1が前記別の論理的メモリ・ブロックにおいて見つからなかった場合、前記ラインM+1を前記第2キャッシュから前記第1キャッシュに転送するステップを含むことを特徴とする上記(13)に記載の方法。
(15)前記ラインM+1が前記別の論理的メモリ・ブロックに存在する場合、前記ラインMにおけるすべての未解決のブランチ命令が解決されるのを待って前記ラインM+1を前記第2キャッシュから前記第1キャッシュに転送することを特徴とする上記(13)に記載の方法。
(16)プロセッサと、
第1キャッシュと、
第2キャッシュと、
メイン・メモリと、
前記第1キャッシュにおいて第1データに対するキャッシュ・アクセス事象を検出するための手段と、
前記キャッシュ・アクセス事象に応答して、前記第1データに続く第2データが前記第2キャッシュに存在するかどうかを決定するための手段と、
前記第2データが前記第2キャッシュに存在しないという決定に応答して前記第1データにおけるすべての未解決のブランチ命令が解決されるのを待って前記第2データを前記メイン・メモリからフェッチするための手段と、
を含む処理システム。
(17)前記キャッシュ・アクセス事象はキャッシュ・ミスであることを特徴とする上記(16)に記載の処理システム。
(18)前記キャッシュ・アクセス事象はキャッシュ・ヒットであることを特徴とする上記(16)に記載の処理システム。
(19)前記第2データが前記第2キャッシュに存在するという決定に応答して、前記第2データが前記第1データとは別の論理的メモリ・ブロックに存在するかどうかを決定するための手段を含むことを特徴とする上記(16)に記載の処理システム。
(20)前記第2データが前記別の論理的メモリ・ブロックに存在しないという決定に応答して、前記第2データを前記第2キャッシュから前記第1キャッシュに転送するための手段を含むことを特徴とする上記(19)に記載の処理システム。
(21)前記第2データが前記別の論理的メモリ・ブロックに存在するという決定に応答して、前記第1データにおけるすべての未解決のブランチ命令が解決されるのを待って前記第2データを前記第2キャッシュから前記第1キャッシュに転送するための手段を含むことを特徴とする上記(19)に記載の処理システム。
【図面の簡単な説明】
【図1】本発明による処理システムの高レベル・ブロック図である。
【図2】本発明によるプリフェッチ・オペレーションの流れ図である。
【符号の説明】
100 処理システム
110 プロセッサ

Claims (1)

  1. プロセッサ、L1I−キャッシュ、L2キャッシュ、及びメイン・メモリを含む処理システムにおいて前記L1I−キャッシュにデータをプリフェッチするための方法にして、
    前記L1I−キャッシュにおいてラインMに対するキャッシュ・ミスを検出するステップと、
    前記キャッシュ・ミスに応答して前記ラインM+1に関して前記L2キャッシュをサーチするステップと、
    前記ラインM+1が前記L2キャッシュにおいて見つからなかった場合、ラインMにおける未解決のブランチ命令が解決されるのを待ってから前記ラインM+1を前記メイン・メモリからフェッチするステップと、
    前記ラインM+1が前記L2キャッシュにおいて見つかった場合、前記ラインM+1が前記ラインMとは別の論理的メモリ・ブロックに存在するかどうかを判定するステップと、
    前記ラインM+1が前記別の論理的メモリ・ブロックに存在しない場合、前記ラインM+1を前記L2キャッシュから前記L1I−キャッシュに転送し、前記別の論理的メモリ・ブロックに存在する場合、前記ラインM+1を前記L2キャッシュから前記L1I−キャッシュに転送しないステップと、
    を含む方法。
JP19208496A 1995-09-18 1996-07-22 キャッシュ制御の命令プリフェッチ方法 Expired - Fee Related JP3549079B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US531948 1990-06-01
US08/531,948 US5721864A (en) 1995-09-18 1995-09-18 Prefetching instructions between caches

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2002346968A Division JP3640355B2 (ja) 1995-09-18 2002-11-29 キャッシュ制御の命令プリフェッチ方法及びシステム

Publications (2)

Publication Number Publication Date
JPH0981456A JPH0981456A (ja) 1997-03-28
JP3549079B2 true JP3549079B2 (ja) 2004-08-04

Family

ID=24119741

Family Applications (2)

Application Number Title Priority Date Filing Date
JP19208496A Expired - Fee Related JP3549079B2 (ja) 1995-09-18 1996-07-22 キャッシュ制御の命令プリフェッチ方法
JP2002346968A Expired - Fee Related JP3640355B2 (ja) 1995-09-18 2002-11-29 キャッシュ制御の命令プリフェッチ方法及びシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2002346968A Expired - Fee Related JP3640355B2 (ja) 1995-09-18 2002-11-29 キャッシュ制御の命令プリフェッチ方法及びシステム

Country Status (4)

Country Link
US (1) US5721864A (ja)
EP (1) EP0763793A2 (ja)
JP (2) JP3549079B2 (ja)
KR (1) KR100240914B1 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5887151A (en) * 1997-07-10 1999-03-23 Emc Corporation Method and apparatus for performing a modified prefetch which sends a list identifying a plurality of data blocks
US6199154B1 (en) 1997-11-17 2001-03-06 Advanced Micro Devices, Inc. Selecting cache to fetch in multi-level cache system based on fetch address source and pre-fetching additional data to the cache for future access
US7071946B2 (en) * 1997-12-30 2006-07-04 Micron Technology, Inc. Accelerated graphics port for a multiple memory controller computer system
US6157398A (en) * 1997-12-30 2000-12-05 Micron Technology, Inc. Method of implementing an accelerated graphics port for a multiple memory controller computer system
JP3071752B2 (ja) 1998-03-24 2000-07-31 三菱電機株式会社 ブリッジ方法、バスブリッジ及びマルチプロセッサシステム
US6233645B1 (en) 1998-11-02 2001-05-15 Compaq Computer Corporation Dynamically disabling speculative prefetch when high priority demand fetch opportunity use is high
US6356982B1 (en) * 1999-06-24 2002-03-12 International Business Machines Corporation Dynamic mechanism to upgrade o state memory-consistent cache lines
US6349368B1 (en) * 1999-06-24 2002-02-19 International Business Machines Corporation High performance mechanism to support O state horizontal cache-to-cache transfers
US6405290B1 (en) * 1999-06-24 2002-06-11 International Business Machines Corporation Multiprocessor system bus protocol for O state memory-consistent data
US6253286B1 (en) * 1999-08-05 2001-06-26 International Business Machines Corporation Apparatus for adjusting a store instruction having memory hierarchy control bits
US6249911B1 (en) * 1999-08-05 2001-06-19 International Business Machines Corporation Optimizing compiler for generating store instructions having memory hierarchy control bits
US6230242B1 (en) * 1999-08-05 2001-05-08 International Business Machines Corporation Store instruction having vertical memory hierarchy control bits
US6249843B1 (en) * 1999-08-05 2001-06-19 International Business Machines Corporation Store instruction having horizontal memory hierarchy control bits
US6314431B1 (en) * 1999-09-02 2001-11-06 Hewlett-Packard Company Method, system, and apparatus to improve instruction pre-fetching on computer systems
US6557095B1 (en) * 1999-12-27 2003-04-29 Intel Corporation Scheduling operations using a dependency matrix
US6643766B1 (en) * 2000-05-04 2003-11-04 Hewlett-Packard Development Company, L.P. Speculative pre-fetching additional line on cache miss if no request pending in out-of-order processor
US7162589B2 (en) * 2002-12-16 2007-01-09 Newisys, Inc. Methods and apparatus for canceling a memory data fetch
US20050097304A1 (en) * 2003-10-30 2005-05-05 International Business Machines Corporation Pipeline recirculation for data misprediction in a fast-load data cache
US7383418B2 (en) * 2004-09-01 2008-06-03 Intel Corporation Method and apparatus for prefetching data to a lower level cache memory
US7587580B2 (en) * 2005-02-03 2009-09-08 Qualcomm Corporated Power efficient instruction prefetch mechanism
US20070186050A1 (en) * 2006-02-03 2007-08-09 International Business Machines Corporation Self prefetching L2 cache mechanism for data lines
US20080162819A1 (en) * 2006-02-03 2008-07-03 Luick David A Design structure for self prefetching l2 cache mechanism for data lines
US8756404B2 (en) * 2006-12-11 2014-06-17 International Business Machines Corporation Cascaded delayed float/vector execution pipeline
US9058269B2 (en) 2012-06-25 2015-06-16 Advanced Micro Devices, Inc. Method and apparatus including a probe filter for shared caches utilizing inclusion bits and a victim probe bit
US9122612B2 (en) * 2012-06-25 2015-09-01 Advanced Micro Devices, Inc. Eliminating fetch cancel for inclusive caches
US10296463B2 (en) * 2016-01-07 2019-05-21 Samsung Electronics Co., Ltd. Instruction prefetcher dynamically controlled by readily available prefetcher accuracy
US10599577B2 (en) 2016-05-09 2020-03-24 Cavium, Llc Admission control for memory access requests
US11379372B1 (en) 2019-07-19 2022-07-05 Marvell Asia Pte, Ltd. Managing prefetch lookahead distance based on memory access latency

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0348628A3 (en) * 1988-06-28 1991-01-02 International Business Machines Corporation Cache storage system
US5590293A (en) * 1988-07-20 1996-12-31 Digital Equipment Corporation Dynamic microbranching with programmable hold on condition, to programmable dynamic microbranching delay minimization
US5155832A (en) * 1989-07-05 1992-10-13 Hewlett-Packard Company Method to increase performance in a multi-level cache system by the use of forced cache misses
US5214765A (en) * 1989-08-31 1993-05-25 Sun Microsystems, Inc. Method and apparatus for executing floating point instructions utilizing complimentary floating point pipeline and multi-level caches
JP2509344B2 (ja) * 1989-09-19 1996-06-19 富士通株式会社 デ―タ処理装置
US5307477A (en) * 1989-12-01 1994-04-26 Mips Computer Systems, Inc. Two-level cache memory system
US5185871A (en) * 1989-12-26 1993-02-09 International Business Machines Corporation Coordination of out-of-sequence fetching between multiple processors using re-execution of instructions
US5386547A (en) * 1992-01-21 1995-01-31 Digital Equipment Corporation System and method for exclusive two-level caching
IE940855A1 (en) * 1993-12-20 1995-06-28 Motorola Inc Data processor with speculative instruction fetching and¹method of operation
US5551001A (en) * 1994-06-29 1996-08-27 Exponential Technology, Inc. Master-slave cache system for instruction and data cache memories

Also Published As

Publication number Publication date
JP2003186741A (ja) 2003-07-04
JP3640355B2 (ja) 2005-04-20
KR100240914B1 (ko) 2000-01-15
JPH0981456A (ja) 1997-03-28
EP0763793A2 (en) 1997-03-19
KR970016969A (ko) 1997-04-28
US5721864A (en) 1998-02-24

Similar Documents

Publication Publication Date Title
JP3549079B2 (ja) キャッシュ制御の命令プリフェッチ方法
US7383391B2 (en) Prefetch mechanism based on page table attributes
EP0795820B1 (en) Combined prefetch buffer and instructions cache memory system and method for providing instructions to a central processing unit utilizing said system.
US5664147A (en) System and method that progressively prefetches additional lines to a distributed stream buffer as the sequentiality of the memory accessing is demonstrated
US5870599A (en) Computer system employing streaming buffer for instruction preetching
US8806177B2 (en) Prefetch engine based translation prefetching
EP0457403A2 (en) Multilevel instruction cache, method for using said cache, method for compiling instructions for said cache and micro computer system using such a cache
KR100234647B1 (ko) 인스트럭션 프리페치 방법 및 데이터 처리 시스템
US20090106499A1 (en) Processor with prefetch function
JPH09146835A (ja) データのプリフェッチのためのシステム
JP2002297379A (ja) ハードウェアプリフェッチシステム
EP1782184B1 (en) Selectively performing fetches for store operations during speculative execution
JPH1055306A (ja) メモリコントローラ
WO2005088455A2 (en) Cache memory prefetcher
US20060179173A1 (en) Method and system for cache utilization by prefetching for multiple DMA reads
US5860150A (en) Instruction pre-fetching of a cache line within a processor
JPH0773104A (ja) キャッシュ・システム
US7310712B1 (en) Virtual copy system and method
JP5116275B2 (ja) 演算処理装置、情報処理装置及び演算処理装置の制御方法
EP3332329B1 (en) Device and method for prefetching content to a cache memory
JPH0477344B2 (ja)
JPH0683621A (ja) フェッチ方式
WO2002069150A1 (fr) Microprocesseur et procede de distribution d'ordres d'execution d'instructions
EP1145094A2 (en) A method for delivering data to an instruction processing unit
JPH1145180A (ja) キャッシュ制御方式

Legal Events

Date Code Title Description
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: 20040316

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20040317

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040415

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20080430

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees