JPH09160827A - コールド・キャッシュ命令のプリフェッチ - Google Patents

コールド・キャッシュ命令のプリフェッチ

Info

Publication number
JPH09160827A
JPH09160827A JP8225514A JP22551496A JPH09160827A JP H09160827 A JPH09160827 A JP H09160827A JP 8225514 A JP8225514 A JP 8225514A JP 22551496 A JP22551496 A JP 22551496A JP H09160827 A JPH09160827 A JP H09160827A
Authority
JP
Japan
Prior art keywords
cache
instruction
address
incremented
line
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP8225514A
Other languages
English (en)
Inventor
J Mayfield Michael
マイケル・ジェイ・メイフィールド
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 JPH09160827A publication Critical patent/JPH09160827A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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
    • 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
    • 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
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • 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
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels

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)

Abstract

(57)【要約】 【課題】コールド命令キャッシュの待ち時間を減らすた
めに、実行されるべきプログラムが存在し、更にそれが
キャッシュ・システムに存在していないことを検出する
方法及びその装置を提供する。 【解決手段】要求されたキャッシュ・ラインが、プロセ
ッサに結合された1次キャッシュにも2次キャッシュに
も存在せず、更にキャッシュ・ラインに要求された命令
と関連した未解決のブランチがない場合に、主記憶装置
からプロセッサ中の1次命令キャッシュに選択的にキャ
ッシュ・ラインをプリフェッチする方法により、コール
ド・キャッシュ命令が、追加のキャッシュ・ラインをプ
リフェッチすることを可能にする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は概してデータ処理シ
ステムに関係し、特に、命令キャッシュの中に命令をプ
リフェッチするためのシステムと方法に関係する。
【0002】
【従来の技術】現代のマイクロプロセッサ・システムに
おいては、プロセッサ・サイクル・タイムが技術の進歩
と共に減少し続けている。同様に、推測的(Specu
lative)な実行、より深いパイプライン、より多
くの実行要素、などの設計技術が処理システムの性能を
改善し続けている。プロセッサは性能向上に伴って、主
記憶装置からのデータと命令をより速く要求するので、
主記憶装置とのインターフェースに、より重い負担をか
けている。したがって、処理システムの性能向上のため
に、キャッシュ・メモリ・システムがしばしば実施され
る。
【0003】キャッシュ・メモリを使用する処理システ
ムは、当分野では熟知されている。キャッシュ・メモリ
は、プロセッサ(CPU)に最少の待ち時間で、現行の
プログラムとデータを利用可能にすることによって、デ
ータ処理システムのスピードを増す、非常に高速な記憶
装置である。チップ上の大型のキャッシュ(L1キャッ
シュ)が主記憶装置の待ち時間の減少を助けるために使
用され、更にそれらはしばしばより大きな、チップ外の
キャッシュ(L2キャッシュ)によって増強される。
【0004】キャッシュ・メモリ・システムを支持する
主要な利点は、最も頻繁にアクセスされる命令とデータ
を、高速のキャッシュ・メモリに保持することによっ
て、処理システム全体の平均メモリ・アクセス・タイム
がキャッシュのアクセス・タイムに近づくことである。
キャッシュ・メモリのサイズは、主記憶装置のサイズに
較べて極めて小さいが、プログラムの「参照の局部性」
と言う特性によって、要求された主記憶装置の大部分
を、首尾よく高速キャッシュ・メモリの中に見いだすこ
とができる。この特性は、どのような特定の時間間隔に
おいても、メモリ照会が主記憶装置の少量の局部的な範
囲に限定される傾向を持つ。例えば、連続したプログラ
ム命令は、通常連続したメモリ位置に格納されている。
【0005】キャッシュ・メモリの基本的な動作は、よ
く知られている。CPUが主記憶装置にアクセスする必
要がある場合、先ずキャッシュが調べられる。CPUが
要求したワードがキャッシュ内で発見されたときは、そ
れは高速キャッシュ・メモリから読み込まれる。CPU
が要求したワードがキャッシュ内で発見されなければ、
そのワードを読み込むために主記憶装置がアクセスされ
る。その時にアクセスされたワードを含むワードのブロ
ックが、主記憶装置からキャッシュ・メモリへ転送され
る。この方法で一部のデータがキャッシュに転送され、
将来主記憶装置を参照した際に、必要なワードが高速キ
ャッシュ・メモリ内に見出されるようにする。
【0006】コンピュータ・システムの平均のメモリ・
アクセス・タイムは、キャッシュの使用によって著しく
改善することができる。キャッシュ・メモリの性能は、
しばしば「ヒット率」と呼ばれる量で評価される。CP
Uがメモリにアクセスし、キャッシュの中にそのワード
を見いだした場合、キャッシュ「ヒット」となる。その
ワードがキャッシュ・メモリでなく主記憶装置で見いだ
されたならば、キャッシュ「ミス」となる。CPUがほ
とんどの場合に主記憶装置内ではなくてキャッシュ内で
そのワードを見いだせれば、高ヒット率となり、その結
果、平均アクセス・タイムは高速キャッシュ・メモリの
アクセス・タイムに近づく。
【0007】待ち時間を減少させるために、事前に主記
憶装置からのデータをチップ上のL1キャッシュに供給
するプリフェッチ技術が、しばしば実行される。理想
は、データと命令が十分事前にプリフェッチされ、プロ
セッサが必要とするとき、命令とデータのコピーが常に
L1(1次)キャッシュ内にあることである。
【0008】既存のプリフェッチ技術は、しばしば命令
及び(又は)データを時期尚早にプリフェッチする。プ
リフェッチを行いながら、プリフェッチをした命令及び
(又は)データを使用しなければ、メモリ・アクセス・
タイムが長くなるだけで、そのようなプレフェッチは無
益でCPUの効率を低下させるだけである。
【0009】一般に見られるこのような例は、キャッシ
ュに未解決のブランチ命令が残留した場合に、処理シス
テムが、推測的に命令のプリフェッチをする度に発生す
る。システムはその時、プログラム実行が後に続かない
ブランチに属する命令をプリフェッチする可能性があ
る。これらの命令を主記憶装置から取り出すために消費
された時間は無駄になり、更に不必要な主記憶装置・バ
ス通信の原因となる。
【0010】新しいプログラム又は仕事の実行を開始す
るか、あるいは呼び出す場合、それらの命令は、通常プ
ロセッサ・キャッシュには存在しない。なぜならば、キ
ャッシュは、最近実行された命令(プログラムの大きな
セグメントがキャッシュ・システムの中に呼び出されて
いる状態は「コールド・キャッシュ(cold cac
he)」と呼ばれる)のみを保持しているからである。
したがって、コールド・キャッシュが初期設定される場
合には、命令のプリフェッチに関する上記の基準を考慮
に入れて、「コールド・キャッシュ」を初期設定するこ
とによる不利益を減少し、性能を向上させるためのなん
らかのシステム及び方法が必要になる。
【0011】
【発明が解決しようとする課題】前述の必要性は、コー
ルド命令キャッシュの待ち時間を減少させるために、実
行されるべきプログラム命令でありながら、キャッシュ
・システム内に存在していないものの有無を検出する装
置を提供する、本発明によって満たされる。これは主記
憶装置への命令のプリフェッチを初期化する際に、1次
及び2次のキャッシュ・エントリの双方に連続したミス
を発見することにより達成される。この発明の実施例で
は、そのようなプリフェッチは、「推測的な(spec
ulative)」ブランチ判断によって実行されてい
る命令に基づくのではなく、「確定された(commi
tted)」命令に基づいて行われる。
【0012】
【課題を解決するための手段】1次キャッシュ及び2次
キャッシュ上に要求されたキャッシュ・ラインに関して
ミスがあり、更にキャッシュ・ミスを発生している命令
が非推測的(即ち、確定された)命令ならば、命令の流
れが開始される。これらの必要条件が満たされると、直
ちにストリーム・フィルタがチェックされ、ミスしたキ
ャッシュ・ラインのアドレスがフィルタ・エントリ中で
(前回のキャッシュ・ラインが、1次キャッシュで発生
させた前回のミスによる)、予期されたものかどうかが
調べられる。ストリーム・フィルタ・エントリに一致が
あるならば、1つのストリームが割り当てられ、更に現
在のラインのアドレスの1つ増分したもの、及び2つ増
分したものがプリフェッチ・アドレス・レジスタ内に保
管される。次に、これらの2つのアドレスに対するライ
ンは、主記憶装置からプリフェッチ・ライン・バッファ
に取り出される。もし、プリフェッチされるべきライン
がプロセッサの2次キャッシュ内にあるならば、そのス
トリームは割り当てを解除される。
【0013】前述の説明は、後に続く本発明の詳細な記
述がより良く理解されるように、本発明の特徴及び技術
的な利点を多少概括的に述べた。本発明の請求項の主題
を形成する更なる特徴と発明の利点を以下に記述する。
【0014】
【発明の実施の形態】次の記述においては、本発明につ
いて十分な理解が得られるように、特定ワード又はバイ
トの長さなど数多くの特定の事柄について詳細に述べ
る。しかし、そのような特定の細部無しで本発明を実施
しうることは、当分野に知識のある当業者には明らかで
あろう。別の例では、不必要な詳細説明によってかえっ
て本発明自体を分かりにくくしないように、よく知られ
ている回路がブロック・ダイアグラム形式で示されてい
る。発明の大部分ついては、タイミングの考慮などに関
する細部は、本発明を完全に理解するために必要ではな
く、更にそれらは関連する分野において通常の知識を有
する人々の理解の範囲であるために除かれた。
【0015】ここで添付の図面を参照されたい。これら
の図面では、描かれた要素が必ずしも一定の縮尺では示
されておらず、更に同種の又は類似の要素がいくつかの
図を通して同じ参照番号で示されている。
【0016】図1には、データ処理システム100が示
されており、これはシステム・メモリ、又は主記憶装置
103に結合されたプロセッサ・チップ101を含み、
更にそれに結合した2次の(L2)キャッシュ102を
持っている。プロセッサ・チップ101に含まれるもの
は、データ・プロセッサ104、プロセッサ・キャッシ
ュ・コントローラ(PCC)105、図4で記述される
回路108、ならびにデータ・キャッシュ106及び命
令キャッシュ107を含む1次(L1)キャッシュ11
0である。データ及び命令を各々別個のキャッシュにす
ることは、当分野では熟知されている。プロセッサ10
4は命令及びデータを主記憶装置103から受け取り、
データ・キャッシュ106、及び命令キャッシュ107
の両方にキャッシングすることができる。以下において
命令キャッシュ107は、Iキャッシュ107とも表示
される。
【0017】L1Iキャッシュ107は、米国特許出願
番号(AA9−95−083)で開示されたような、当
分野で周知のなんらかの置き換え手段を使用して、主記
憶装置103から複写された頻繁に使用されるプログラ
ム命令を保持している。L2キャッシュ102はL1I
キャッシュ107より大きく、より多くのデータを保持
し、更に通常は、システム100のために主記憶装置統
一プロトコルを制御する。本発明の実施例では、L1I
キャッシュ107内の命令がL2キャッシュ102に含
まれることは要求されない。
【0018】チップ101の周りに描かれた線はチップ
境界及び機能上の境界を示すが、本発明の範囲に関する
制限として意図されたものではない。PCC 105は
メモリ・サブシステム(L1キャッシュ110、L2キ
ャッシュ102)からの取り出し、及びそこへの格納を
制御する。PCC 105は、取り出し及び格納の制御
に加えて別の機能も実行する。
【0019】次に図3において、本発明の中で利用され
るようなストリーム・フィルタ、及びストリーム・バッ
ファ(図4参照)が図示されている。ストリーム・フィ
ルタは、使用されないデータのプリフェッチの発生を減
少させることを意図している。これらのフィルタは、ア
ドレス及び命令の情報を含む活動記録バッファである。
フィルタは、L1キャッシュでミスしたものに続いて次
に高いキャッシュ・ラインのアドレスを含んでいる。も
しその次に高いキャッシュ・ラインにアクセスが行われ
たならば、ストリーム条件が検出され、更にストリーム
・バッファが割り当てられる。アドレス「X」にアクセ
スが行われたときは、フィルタにはライン・アドレス
「X+1」が書かれる。「X+1」がストリーム・フィ
ルタにまだ存在している間に、アドレス「X+1」に引
き続いたアクセスが行われたときは、「X+1」がスト
リームとして割り当てられる。
【0020】ストリーム・バッファは、アクセスされる
可能性があるキャッシュ・データを保持する、プリフェ
ッチ・バッファである。その意図は、もしプロセッサ1
04で実行中のプログラムが、データ・命令の連続的な
ストリームを実行しているならば、ストリーム・バッフ
ァ中に追加のラインをプリフェッチしておくことは有益
であるかもしれない、ということである。したがって、
次のキャッシュ・ミスの時点で、必要なデータをストリ
ーム・バッファに見いだす可能性がある。ストリーム・
フィルタ、及びストリーム・バッファは、もしストリー
ム・バッファでも同様にミスを起こすL1キャッシュ・
ミスがあるならば、ミスしたアドレスがストリーム・フ
ィルタに格納されているアドレスと比較されるように、
連動する。ストリーム・フィルタがヒットされた(デー
タの連続的なラインに連続的なアクセスがあったことを
意味している)ときは、将来次のラインが同様に必要と
される可能性が十分にある。
【0021】次に図4及び図5に、本発明の1実施例を
示す。図1で示したように、図4は更に回路108、及
びIキャッシュ107を図示している。図2及び図5で
示された流れ図は、PCC 105、またはチップ10
1中の別の場所に存在するステート・マシン(stat
e machine)として実現される。
【0022】プロセスは、プロセッサ104から呼び出
され、更に比較器402によってキャッシュ・ディレク
トリ401内のキャッシュ・エントリと比較される、要
求された命令のアドレスで始まる。Iキャッシュ107
内に要求する命令が存在することを意味するキャッシュ
・ヒットがあるならば、キャッシュ・ヒット信号が比較
器402から逆にPCC 105に伝達され、更に要求
された命令のキャッシュ・ラインは、Iキャッシュ10
7からプロセッサ104に送られる。
【0023】しかし、要求された命令に関連する要求さ
れたキャッシュ・ラインが、Iキャッシュ107中に存
在してないときは、キャッシュ・ミス信号(ステップ2
01)が比較器402からPCC 105に送られる。
プロセッサ104がIキャッシュ107に対してキャッ
シュ・ラインを要求したが、キャッシュ・ラインがIキ
ャッシュ107内に存在しない場合(即ち、L1ミスが
起きた場合)、ステート・マシンは、ミスを起こしたキ
ャッシュ・ラインをL2キャッシュ102内で捜す(ス
テップ205)。そのキャッシュ・ラインがL2キャッ
シュ102に存在していれば、ステート・マシンは、L
1Iキャッシュ107中にL2キャッシュ102からキ
ャッシュ・ラインをフェッチする(ステップ210)。
キャッシュ・ラインがL2キャッシュ102内に存在し
ないときは、プロセスはステップ501に移り、そこで
要求されたキャッシュ・ラインが有効なストリーム・ア
ドレスに関連付けられているか否かを判定される。スト
リーム・アドレスが有効ならば、ストリームが既にこの
キャッシュ・ラインに割り当てられていることを表す。
この比較は、比較器406の中に受け取られたアドレス
と、フィルタ・アドレス・バッファ404に格納されて
いるキャッシュ・ライン・アドレスとの間で行われる。
これらのアドレスが一致し更にストリームが有効な場合
は、その結果としてストリーム・ヒット信号がPCC1
05に送られる。
【0024】キャッシュ・ラインが有効なストリーム・
アドレスと関係づけられてなければ、本発明においては
主記憶装置103からキャッシュ・ラインをフェッチす
る前に、キャッシュ・ラインのフェッチに影響を与える
すべてのブランチの解決を待つ(ステップ230及び2
35)。この方法は、使用されずに取り消される可能性
ある命令を、主記憶装置から不必要にプリフェッチする
ことを防止する。ここで言う「取り消される」とは、プ
ロセッサ104が、期待されたラインMではなくて何か
別のライン、例えばラインXを求めることを意味する。
キャッシュ・ラインが正しいブランチ経路にあると判断
されたならば、キャッシュ・ラインは、主記憶装置10
3からL1Iキャッシュ107及び(又は)L2キャッ
シュ102中にフェッチされる(ステップ240)。
【0025】キャッシュ・ラインがL2キャッシュ10
2内に存在するかどうかにかかわらず、ステート・マシ
ンは、次に高いライン(例えば、もしキャッシュ・ライ
ンがラインMであるならば、ラインM+1)が存在する
か否か、L1Iキャッシュ107のテストを行う(ステ
ップ215)。ラインM+1がL1Iキャッシュ107
中にあれば、それ以上の処理は不要である(ステップ2
41)。ラインM+1がL1Iキャッシュ107中にな
いときは、ステート・マシンはラインM+1があるか否
かL2キャッシュ102をテストし、その結果見いださ
れたならば、L1Iキャッシュ107中に、L2キャッ
シュ102から推測的にラインM+1をプリフェッチす
る(ステップ220及びステップ225)。
【0026】ステート・マシンは更に、ラインM+1が
主記憶装置103内で論理的な境界(ページあるいは区
画)を越えるか否かを確かめる(ステップ222)。ラ
インMは通常、実際の物理的なアドレスに変換される
が、ラインM+1は変換されない。それ故に、物理的な
メモリ内でのラインM+1の場所は不確定である。ライ
ンM+1が別の論理的な境界内にあれば、ステート・マ
シンはL2キャッシュ102からラインM+1のプリフ
ェッチを行わず、それによってL1とL2との間のバン
ド幅が維持される(ステップ241)。その代わり、プ
ロセッサ104がラインM+1を要求する場合は、ステ
ップ205で再びそのプロセスに入る。
【0027】ラインM+1がL2キャッシュ102内に
存在しなければ、ラインM内のすべてのブランチ解決が
され、更にラインM+1が確定されるまで、本発明は主
記憶装置103からL1Iキャッシュ107、又はL2
キャッシュ102へのラインM+1のプリフェッチは行
わない(ステップ241)。
【0028】本発明は、L1Iキャッシュ107ミスの
ときのみならず、L1Iキャッシュ107のヒットに際
しても、L2キャッシュ102からの推測的プリフェッ
チのために使用しうることは、当分野に知識のある当業
者には明白であろう。
【0029】図2に図示したプロセスについてのこれ以
上の論議については、米国特許申請番号(AA9−95
−069)を参照いただきたい。
【0030】ステップ240において、要求されたキャ
ッシュ・ラインは、主記憶装置103からIキャッシュ
107及び(又は)L2キャッシュ102に転送され
る。この転送は、図4において選択回路414へのライ
ン・データ入力として示されており、その選択回路は、
このキャッシュ・ラインを選択してIキャッシュ107
中に格納する。更にこのキャッシュ・ラインに対応する
アドレスが、ディレクトリ401に入力される。ステッ
プ503において、このキャッシュ・ラインと、ストリ
ーム・フィルタ・アドレス・バッファ404中のアドレ
スとの間に一致があるか否かについて、判定がなされ
る。一致があれば、一致したフィルタ・アドレスが、有
効なストリームがこのアドレスに対して割り当てられて
いることを表しているか否かを、ステップ506で判定
する。これが正しければ、プロセスはステップ504に
戻る。
【0031】ステップ504において、キャッシュ・ラ
イン・アドレスは増分回路403を使用して1つ増分さ
れ、そしてフィルタ・アドレス・バッファ404中に格
納される。プロセスはステップ505で終了し、更にプ
ロセッサ104からの次の要求を待つ。
【0032】ステップ506において、フィルタ・アド
レス・バッファ404との一致が、そのストリームが有
効なストリームではないことを示すならば、プロセスは
ストリームを割り当てるためにステップ507に進む。
この割り当ては、回路407によってキャッシュ・ライ
ン・アドレスを1つ増分させ、更にこのアドレスをプリ
フェッチ・アドレス・バッファ1(PADR1)409
中に入れ、そして回路408において、キャッシュ・ラ
イン・アドレスを2つ増分させ、更にこの増分されたア
ドレスを、プリフェッチ・アドレス・バッファ2(PA
DR2)410に入れることによってなされる。
【0033】その後にステップ508において、1つ増
分されたキャッシュ・ライン、及び2つ増分されたキャ
ッシュ・ラインが、L2キャッシュ102中に配置され
ているか否か判定される。配置されていれば、ストリー
ムはステップ509で割り当てを解除され、プロセスは
ステップ505で終了する。しかし、これらの2つのキ
ャッシュ・ラインがL2キャッシュ・ライン102中に
配置されていなければ、ステップ510においてこれら
のラインは、主記憶装置103からプリフェッチ・バッ
ファ1(PBFR1)411、及びプリフェッチ・バッ
ファ2(PBFR2)412それぞれに転送される。P
BFR1 411及びPBFR2 412はシステム1
00中の任意の場所に配置することが可能であり、更に
どこに位置していてもストリーム・バッファとして利用
できる。実質的にこれらの2つのアドレスはその後、要
求されたキャッシュ・ラインのアドレスと共に多重化装
置413によって多重化され、更に主記憶装置103に
送られる。主記憶装置103は、ステップ502で示し
たように要求されたキャッシュ・ラインを返し、更に1
つ増分されたキャッシュ・ラインも返し、それをプリフ
ェッチ・バッファ1(PBFR1)411中に格納し、
そして2つ増分されたキャッシュ・ラインをプリフェッ
チ・バッファ2(PBFR2)412中に格納する。
【0034】ステップ501において、キャッシュ・ラ
インが有効なストリーム中で表示されているならば、プ
ロセスはステップ511に進み、そこでこのキャッシュ
・ラインは、PBFR1411からIキャッシュ107
及び(又は)L2キャッシュ102に転送される。次に
ステップ512において、PBFR2 412内のエン
トリはPBFR1 411に転送される。これに対応し
て、PADR1 409中に保存されていたアドレスは
1つ増分され、更にPADR2 410の中のアドレス
も同様に1つ増分される。
【0035】次にステップ513において、2つ増分さ
れたキャッシュ・ラインがL2キャッシュ102の中に
存在するか否かについて判定がなされる。存在すれば、
ステップ514において、割り当てられたストリームを
無効とする決定がなされる。しかし、このキャッシュ・
ラインがL2キャッシュ102中に存在していなけれ
ば、プロセスはステップ515に進み、2つ増分された
キャッシュ・ラインを主記憶装置103からPBFR
412中にロードする。更に、フィルタ・アドレス・バ
ッファ404の中のキャッシュ・ライン・アドレスは1
つ増分される。このプロセスは、その後ステップ241
で終了する。以下において、図1〜図5に関して上に記
述されたプロセスのオペレーションの例を紹介する。
【0036】プロセッサ104は、キャッシュ・ライン
α中に存在する命令で開始し、新しいコード列の実行を
始める。この例では、この新しいコード列を含んだコー
ド・ラインはいずれも、L1Iキャッシュ107にも、
又L2キャッシュ102にも存在しない。プロセッサ1
04がラインαを要求した場合、本発明ではフィルタ・
ヒットを検出せず(即ち、キャッシュ・ミスとなる)、
したがってストリーム・フィルタ・アドレス・バッファ
404中にα+1をロードする。キャッシュ・ラインα
は、このラインがIキャッシュ107にもL2キャッシ
ュ102中にも存在しないので、主記憶装置103から
Iキャッシュ107にリトリーブされ、更にこの命令は
確定される。
【0037】プロセッサ104がその後でα+1を要求
すると、このラインも又Iキャッシュ107にもL2キ
ャッシュ102内にも存在していないために、もう1つ
のキャッシュ・ミスが発生する。その結果として、α+
2がストリーム・フィルタ・アドレス・バッファ404
中に置かれる。更に、キャッシュ・ラインα+2がPB
FR1 411の中にリトリーブされ、更にα+3がP
BFR2 412中にリトリーブされる。
【0038】その後で、要求されたキャッシュ・ライン
α+2に対するIキャッシュ107、及びL2キャッシ
ュ102にミスがある場合、α+2がPBFR1 41
1からIキャッシュ107中にリトリーブされ、α+3
が、PBFR2 412からPBFR1 411中に移
動され、更にα+4が主記憶装置103からPBFR2
412の中にリトリーブされる。同様に、α+3がフ
ィルタ・アドレス・バッファ404中に入力される。
【0039】続いてキャッシュ・ラインβがプロセッサ
104によって要求され、しかもキャッシュ・ラインβ
が、前にプリフェッチされた命令と無関係の新しい命令
セットを指示しているならば、プロセスはステップ50
1から繰り返して再び始る。
【0040】本発明は、新しいコード列の命令をプリフ
ェッチするためのユニークな技術(コールド・キャッシ
ュ・プリフェッチ)を提供する。1つ増分された、その
増分されたアドレスだけのプリフェッチが、単一つのラ
イン・バッファPBFR1411に対して実行されるこ
とに注意されたい。更に、代替実施例では、一度に1つ
以上の命令のストリームを実行することができる。別の
選択として、命令ストリーム・データのプリフェッチ
は、命令キャッシュ107に加えてL2キャッシュ10
2に対しても行うことができる。又は、命令ストリーム
・データのプリフェッチは、L2キャッシュ102に対
してのみ行うこともできる。
【0041】更に代替実施例では、プリフェッチした命
令ストリーム・データを、Iキャッシュ107に推測的
にロードすることもできる。更に別の代替実施例では、
命令ストリーム論理回路をデータ・ストリーム論理回路
と共有することもできる。
【0042】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0043】(1) データ処理システムにおいて、記
憶装置からプロセッサに結合された命令キャッシュに命
令をプリフェッチする方法であって、(a) 前記プロ
セッサからの命令の要求を前記命令キャッシュに受け渡
すステップと、(b) 前記命令が確定されていて、前
記命令が前記命令キャッシュ中にないときは、前記命令
と関係づけられたデータ部分を、前記記憶装置から前記
命令キャッシュに取り込むステップと、(c) 増分さ
れたアドレスを有するデータ部を参照するために、前記
データ部のアドレスを増分させるステップと、(d)
前記増分されたアドレスを有するデータ部分が、前記命
令キャッシュ中にあるか否かを判定するステップと、
(e) 前記増分されたアドレスを有するデータ部分が
前記命令キャッシュにないとき、前記データ部分の増分
されたアドレスが、前記プロセッサに結合されたストリ
ーム・フィルタ中にあるか否かを判定するステップと、
(f) 前記増分されたアドレスを有するデータ部分の
前記アドレスが前記ストリーム・フィルタ中にあるとき
は、前記記憶装置からプリフェッチされるべきデータ部
分の1ストリームを割り当てるステップと、を含む方
法。 (2) 前記割り当てステップが、前記増分したアドレ
スを有するデータ部分を、前記記憶装置から前記命令キ
ャッシュに結合された第1のバッファ中に取り込むこと
を更に含む、(1)に記載の方法。 (3) 前記データ部分、及び前記増分されたアドレス
を有するデータ部分がキャッシュ・ラインであり、前記
増分されたアドレスを有するデータ部分の前記アドレス
が、前記データ部分の前記アドレスから1キャッシュ・
ライン増分されたものであり、更に前記割り当てステッ
プが、(a) 前記データ部分の前記アドレスを2キャ
ッシュ・ライン増分させるステップと、(b) 前記記
憶装置から前記命令キャッシュに結合された第2のバッ
ファ中に、前記2キャッシュ・ライン増分されたアドレ
スを有するデータ部分を取り込むステップと、を更に含
む、(2)に記載の方法。 (4) 前記増分されたアドレスを有するデータ部分が
前記命令キャッシュ内にあるか否かを判定する前記ステ
ップが、前記増分されたアドレスを有するデータ部分
が、前記プロセッサに結合する2次のキャッシュ内にあ
るか否かを判定するステップを更に含む、(1)に記載
の方法。 (5) 前記増分されたアドレスを有するデータ部分
が、前記プロセッサに結合された前記2次のキャッシュ
内にあるときは、前記ストリームの割り当てを解除する
ステップを更に含む、(4)に記載の方法。 (6) (a) 前記ストリーム・フィルタ内で前記ア
ドレスを増分させるステップと、(b) 前記ストリー
ム・フィルタ内で増分された前記アドレスに対応するア
ドレスを有する第2の命令に対する第2の要求を、前記
プロセッサから受け取るステップと、(c) 前記第1
のバッファから前記命令キャッシュに前記増分されたア
ドレスを有するデータ部分を取り込むステップと、
(d) 前記第2のバッファから前記第1のバッファ
に、2キャッシュ・ライン増分された前記アドレスを有
する前記データ部分を取り込むステップと、を更に含
む、(3)に記載の方法。 (7) データ処理システムであって、(a) プロセ
ッサと、(b) 前記プロセッサに結合された命令キャ
ッシュと、(c) 前記命令キャッシュに結合されたプ
リフェッチ・バッファと、を含み、前記データ処理シス
テムは記憶装置との結合に適応しており、更に、(d)
前記記憶装置から命令キャッシュに命令のプリフェッ
チ動作が可能な制御論理回路を含み、前記制御論理回路
は更に、 (1) 前記プロセッサから前記命令キャッシュにキャ
ッシュ・ラインの要求を受け渡す回路と、 (2) 前記キャッシュ・ラインが前記命令キャッシュ
内にあるか否かを判定する比較回路と、 (3) 前記キャッシュ・ラインと関係づけられた命令
が確定されているときは、前記記憶装置から前記命令キ
ャッシュに前記キャッシュ・ラインを取り込む回路と。 (4) 増分されたキャッシュ・ラインを参照するため
に、前記キャッシュ・ラインのアドレスを1つ増分させ
る回路と、 (5) 前記増分されたキャッシュ・ラインが、前記命
令キャッシュ内にあるか否かを判定する比較回路と、 (6) 前記増分されたキャッシュ・ラインが前記命令
キャッシュ内にないときは、前記増分されたキャッシュ
・ラインのアドレスが、前記プロセッサに結合している
ストリーム・フィルタに表示されているか否かを判定す
る比較回路と、 (7) 前記増分されたキャッシュ・ラインの前記アド
レスが、前記ストリーム・フィルタ内に存在したとき、
前記記憶装置からプリフェチされるべきキャッシュ・ラ
インのストリームを割り当てる回路と、を含む、データ
処理システム。 (8) 前記割り当て回路が、前記記憶装置から前記命
令キャッシュに結合された第1のバッファに前記増分さ
れたキャッシュ・ラインを取り込む回路を更に含む、
(7)に記載のシステム。 (9) 前記割り当て回路がさらに、(a) 前記キャ
ッシュ・ラインの前記アドレスを、2つ増分させる回路
と、(b) 前記2つ増分されたアドレスを有するキャ
ッシュ・ラインを、前記記憶装置から前記命令キャッシ
ュに結合された第2のバッファに取り込む回路と、を含
む、(8)に記載のシステム。 (10) 前記増分されたキャッシュ・ラインが前記命
令キャッシュ内に存在するか否かを判定する前記比較回
路が、前記増分されたキャッシュ・ラインが前記プロセ
ッサに結合された2次のキャッシュ内にあるか否かを判
定する回路を更に含む、(7)に記載のシステム。 (11) 前記増分されたキャッシュ・ラインが前記プ
ロセッサに結合された前記2次のキャッシュ内にあると
きは、前記ストリームの割り当てを解除する回路を更に
含む、(10)に記載のシステム。 (12) 前記プロセッサが前記キャッシュ・ラインに
関連づけられた前記命令と無関係な命令を要求した場
合、前記ストリームを無効にする回路を更に含む、
(7)に記載のシステム。 (13) (a) プロセッサと、(b) 前記プロセ
ッサに結合された命令キャッシュと、(c) 前記命令
キャッシュに結合されたプリフェッチ・バッファと、
(d) 前記プロセッサに結合した記憶装置と、(e)
前記プロセッサに結合されたストリーム・フィルタ
と、を含むデータ処理システムにおいて、前記記憶装置
から前記命令キャッシュに命令をプリフェッチする方法
であって、(1) 前記プロセッサから前記命令キャッ
シュへのキャッシュ・ラインの要求を受け渡すステップ
と、(2) 前記キャッシュ・ラインが前記命令キャッ
シュ内に存在するか否かを判定するステップと、(3)
前記キャッシュ・ラインに関連づけられた命令が確定
されているときは、前記記憶装置から前記命令キャッシ
ュに前記キャッシュ・ラインを取り込むステップと、
(4) 増分されたキャッシュ・ラインを参照するため
に、前記キャッシュ・ラインのアドレスを1つ増分させ
るステップと、(5) 前記増分されたキャッシュ・ラ
インが、前記命令キャッシュ内にあるか否か判定するス
テップと、(6) 前記増分されたキャッシュ・ライン
が、前記プロセッサに結合された2次のキャッシュ内に
あるか否か判定するステップと、(7) 前記増分され
たキャッシュ・ラインが前記命令キャッシュ内になく、
更に前記2次のキャッシュ内にもないときは、前記増分
されたキャッシュ・ラインのアドレスが、前記プロセッ
サに結合された前記ストリーム・フィルタに表示されて
いるか否かを判定するステップと、(8) 前記命令キ
ャッシュに結合された第1のバッファ中に、前記記憶装
置から前記増分されたキャッシュ・ラインを取り込むス
テップと、(9) 前記キャッシュ・ラインの前記アド
レスを2つ増分させるステップと、(10) 前記記憶
装置から前記命令キャッシュに結合された第2のバッフ
ァ中に、前記2つ増分されたアドレスを有するキャッシ
ュ・ラインを取り込むステップと、を更に含む方法。 (14) 前記記憶装置から前記命令キャッシュに前記
キャッシュ・ラインを取り込む前記ステップが、前記記
憶装置から前記2次のキャッシュに前記キャッシュ・ラ
インを取り込むステップを更に含む、(13)に記載の
方法。
【図面の簡単な説明】
【図1】本発明に従って構成された、データ処理システ
ムを示す図である。
【図2】本発明に従ったプリフェッチ動作を示す流れ図
である。
【図3】図1に示したデータ処理システムの中で使用さ
れているストリーム・フィルタ、及びストリーム・バッ
ファを示す図である。
【図4】図1に示したプロセッサ・チップの内部論理回
路を示す図である。
【図5】本発明に従って命令をプリフェッチする体系を
示す流れ図である。

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】データ処理システムにおいて、記憶装置か
    らプロセッサに結合された命令キャッシュに命令をプリ
    フェッチする方法であって、(a) 前記プロセッサか
    らの命令の要求を前記命令キャッシュに受け渡すステッ
    プと、(b) 前記命令が確定されていて、前記命令が
    前記命令キャッシュ中にないときは、前記命令と関係づ
    けられたデータ部分を、前記記憶装置から前記命令キャ
    ッシュに取り込むステップと、(c) 増分されたアド
    レスを有するデータ部を参照するために、前記データ部
    のアドレスを増分させるステップと、(d) 前記増分
    されたアドレスを有するデータ部分が、前記命令キャッ
    シュ中にあるか否かを判定するステップと、(e) 前
    記増分されたアドレスを有するデータ部分が前記命令キ
    ャッシュにないとき、前記データ部分の増分されたアド
    レスが、前記プロセッサに結合されたストリーム・フィ
    ルタ中にあるか否かを判定するステップと、(f) 前
    記増分されたアドレスを有するデータ部分の前記アドレ
    スが前記ストリーム・フィルタ中にあるときは、前記記
    憶装置からプリフェッチされるべきデータ部分の1スト
    リームを割り当てるステップと、を含む方法。
  2. 【請求項2】前記割り当てステップが、前記増分したア
    ドレスを有するデータ部分を、前記記憶装置から前記命
    令キャッシュに結合された第1のバッファ中に取り込む
    ことを更に含む、請求項1に記載の方法。
  3. 【請求項3】前記データ部分、及び前記増分されたアド
    レスを有するデータ部分がキャッシュ・ラインであり、
    前記増分されたアドレスを有するデータ部分の前記アド
    レスが、前記データ部分の前記アドレスから1キャッシ
    ュ・ライン増分されたものであり、更に前記割り当てス
    テップが、(a) 前記データ部分の前記アドレスを2
    キャッシュ・ライン増分させるステップと、(b) 前
    記記憶装置から前記命令キャッシュに結合された第2の
    バッファ中に、前記2キャッシュ・ライン増分されたア
    ドレスを有するデータ部分を取り込むステップと、を更
    に含む、請求項2に記載の方法。
  4. 【請求項4】前記増分されたアドレスを有するデータ部
    分が前記命令キャッシュ内にあるか否かを判定する前記
    ステップが、前記増分されたアドレスを有するデータ部
    分が、前記プロセッサに結合する2次のキャッシュ内に
    あるか否かを判定するステップを更に含む、請求項1に
    記載の方法。
  5. 【請求項5】前記増分されたアドレスを有するデータ部
    分が、前記プロセッサに結合された前記2次のキャッシ
    ュ内にあるときは、前記ストリームの割り当てを解除す
    るステップを更に含む、請求項4に記載の方法。
  6. 【請求項6】(a) 前記ストリーム・フィルタ内で前
    記アドレスを増分させるステップと、(b) 前記スト
    リーム・フィルタ内で増分された前記アドレスに対応す
    るアドレスを有する第2の命令に対する第2の要求を、
    前記プロセッサから受け取るステップと、(c) 前記
    第1のバッファから前記命令キャッシュに前記増分され
    たアドレスを有するデータ部分を取り込むステップと、
    (d) 前記第2のバッファから前記第1のバッファ
    に、2キャッシュ・ライン増分された前記アドレスを有
    する前記データ部分を取り込むステップと、を更に含
    む、請求項3に記載の方法。
  7. 【請求項7】データ処理システムであって、(a) プ
    ロセッサと、(b) 前記プロセッサに結合された命令
    キャッシュと、(c) 前記命令キャッシュに結合され
    たプリフェッチ・バッファと、を含み、前記データ処理
    システムは記憶装置との結合に適応しており、更に、
    (d) 前記記憶装置から命令キャッシュに命令のプリ
    フェッチ動作が可能な制御論理回路を含み、前記制御論
    理回路は更に、(1) 前記プロセッサから前記命令キ
    ャッシュにキャッシュ・ラインの要求を受け渡す回路
    と、(2) 前記キャッシュ・ラインが前記命令キャッ
    シュ内にあるか否かを判定する比較回路と、(3) 前
    記キャッシュ・ラインと関係づけられた命令が確定され
    ているときは、前記記憶装置から前記命令キャッシュに
    前記キャッシュ・ラインを取り込む回路と。(4) 増
    分されたキャッシュ・ラインを参照するために、前記キ
    ャッシュ・ラインのアドレスを1つ増分させる回路と、
    (5) 前記増分されたキャッシュ・ラインが、前記命
    令キャッシュ内にあるか否かを判定する比較回路と、
    (6) 前記増分されたキャッシュ・ラインが前記命令
    キャッシュ内にないときは、前記増分されたキャッシュ
    ・ラインのアドレスが、前記プロセッサに結合している
    ストリーム・フィルタに表示されているか否かを判定す
    る比較回路と、(7) 前記増分されたキャッシュ・ラ
    インの前記アドレスが、前記ストリーム・フィルタ内に
    存在したとき、前記記憶装置からプリフェチされるべき
    キャッシュ・ラインのストリームを割り当てる回路と、
    を含む、データ処理システム。
  8. 【請求項8】前記割り当て回路が、前記記憶装置から前
    記命令キャッシュに結合された第1のバッファに前記増
    分されたキャッシュ・ラインを取り込む回路を更に含
    む、請求項7に記載のシステム。
  9. 【請求項9】前記割り当て回路がさらに、(a) 前記
    キャッシュ・ラインの前記アドレスを、2つ増分させる
    回路と、(b) 前記2つ増分されたアドレスを有する
    キャッシュ・ラインを、前記記憶装置から前記命令キャ
    ッシュに結合された第2のバッファに取り込む回路と、
    を含む、請求項8に記載のシステム。
  10. 【請求項10】前記増分されたキャッシュ・ラインが前
    記命令キャッシュ内に存在するか否かを判定する前記比
    較回路が、前記増分されたキャッシュ・ラインが前記プ
    ロセッサに結合された2次のキャッシュ内にあるか否か
    を判定する回路を更に含む、請求項7に記載のシステ
    ム。
  11. 【請求項11】前記増分されたキャッシュ・ラインが前
    記プロセッサに結合された前記2次のキャッシュ内にあ
    るときは、前記ストリームの割り当てを解除する回路を
    更に含む、請求項10に記載のシステム。
  12. 【請求項12】前記プロセッサが前記キャッシュ・ライ
    ンに関連づけられた前記命令と無関係な命令を要求した
    場合、前記ストリームを無効にする回路を更に含む、請
    求項7に記載のシステム。
  13. 【請求項13】(a) プロセッサと、(b) 前記プ
    ロセッサに結合された命令キャッシュと、(c) 前記
    命令キャッシュに結合されたプリフェッチ・バッファ
    と、(d) 前記プロセッサに結合した記憶装置と、
    (e) 前記プロセッサに結合されたストリーム・フィ
    ルタと、を含むデータ処理システムにおいて、前記記憶
    装置から前記命令キャッシュに命令をプリフェッチする
    方法であって、 (1) 前記プロセッサから前記命令キャッシュへのキ
    ャッシュ・ラインの要求を受け渡すステップと、 (2) 前記キャッシュ・ラインが前記命令キャッシュ
    内に存在するか否かを判定するステップと、 (3) 前記キャッシュ・ラインに関連づけられた命令
    が確定されているときは、前記記憶装置から前記命令キ
    ャッシュに前記キャッシュ・ラインを取り込むステップ
    と、 (4) 増分されたキャッシュ・ラインを参照するため
    に、前記キャッシュ・ラインのアドレスを1つ増分させ
    るステップと、 (5) 前記増分されたキャッシュ・ラインが、前記命
    令キャッシュ内にあるか否か判定するステップと、 (6) 前記増分されたキャッシュ・ラインが、前記プ
    ロセッサに結合された2次のキャッシュ内にあるか否か
    判定するステップと、 (7) 前記増分されたキャッシュ・ラインが前記命令
    キャッシュ内になく、更に前記2次のキャッシュ内にも
    ないときは、前記増分されたキャッシュ・ラインのアド
    レスが、前記プロセッサに結合された前記ストリーム・
    フィルタに表示されているか否かを判定するステップ
    と、 (8) 前記命令キャッシュに結合された第1のバッフ
    ァ中に、前記記憶装置から前記増分されたキャッシュ・
    ラインを取り込むステップと、 (9) 前記キャッシュ・ラインの前記アドレスを2つ
    増分させるステップと、 (10) 前記記憶装置から前記命令キャッシュに結合
    された第2のバッファ中に、前記2つ増分されたアドレ
    スを有するキャッシュ・ラインを取り込むステップと、
    を更に含む方法。
  14. 【請求項14】前記記憶装置から前記命令キャッシュに
    前記キャッシュ・ラインを取り込む前記ステップが、前
    記記憶装置から前記2次のキャッシュに前記キャッシュ
    ・ラインを取り込むステップを更に含む、請求項13に
    記載の方法。
JP8225514A 1995-11-06 1996-08-27 コールド・キャッシュ命令のプリフェッチ Pending JPH09160827A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/554,202 US5809529A (en) 1995-08-23 1995-11-06 Prefetching of committed instructions from a memory to an instruction cache
US554202 1995-11-06

Publications (1)

Publication Number Publication Date
JPH09160827A true JPH09160827A (ja) 1997-06-20

Family

ID=24212440

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8225514A Pending JPH09160827A (ja) 1995-11-06 1996-08-27 コールド・キャッシュ命令のプリフェッチ

Country Status (4)

Country Link
US (1) US5809529A (ja)
EP (1) EP0772123A3 (ja)
JP (1) JPH09160827A (ja)
KR (1) KR100234647B1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6341334B1 (en) 1998-03-24 2002-01-22 Mitsubishi Denki Kabushiki Kaisha Bridge method, bus bridge, and multiprocessor system
JP2010512580A (ja) * 2006-12-08 2010-04-22 クゥアルコム・インコーポレイテッド 低複雑性命令プリフェッチシステム

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6195735B1 (en) * 1996-12-31 2001-02-27 Texas Instruments Incorporated Prefetch circuity for prefetching variable size data
US6138213A (en) * 1997-06-27 2000-10-24 Advanced Micro Devices, Inc. Cache including a prefetch way for storing prefetch cache lines and configured to move a prefetched cache line to a non-prefetch way upon access to the prefetched cache line
US6345339B1 (en) * 1998-02-17 2002-02-05 International Business Machines Corporation Pseudo precise I-cache inclusivity for vertical caches
JP3439350B2 (ja) * 1998-10-02 2003-08-25 Necエレクトロニクス株式会社 キャッシュ・メモリ制御方法及びキャッシュ・メモリ制御装置
US6393527B1 (en) 1998-12-18 2002-05-21 Ati International Srl Prefetch buffer with continue detect
US6449697B1 (en) 1999-04-23 2002-09-10 International Business Machines Corporation Prestaging data into cache in preparation for data transfer operations
US6260115B1 (en) * 1999-05-13 2001-07-10 Storage Technology Corporation Sequential detection and prestaging methods for a disk storage subsystem
US6651162B1 (en) 1999-11-04 2003-11-18 International Business Machines Corporation Recursively accessing a branch target address cache using a target address previously accessed from the branch target address cache
US6446167B1 (en) * 1999-11-08 2002-09-03 International Business Machines Corporation Cache prefetching of L2 and L3
US6571318B1 (en) 2001-03-02 2003-05-27 Advanced Micro Devices, Inc. Stride based prefetcher with confidence counter and dynamic prefetch-ahead mechanism
US7159108B2 (en) * 2002-10-04 2007-01-02 International Business Machines Corporation Anonymous peer-to-peer networking
US6976147B1 (en) 2003-01-21 2005-12-13 Advanced Micro Devices, Inc. Stride-based prefetch mechanism using a prediction confidence value
US20060200631A1 (en) * 2005-03-02 2006-09-07 Mitsubishi Denki Kabushiki Kaisha Control circuit and control method
US8364901B2 (en) * 2009-02-13 2013-01-29 Micron Technology, Inc. Memory prefetch systems and methods
KR101051504B1 (ko) 2009-06-16 2011-07-22 인하대학교 산학협력단 저전력과 입출력 성능 향상을 위한 n-블록 선반입 기반의 하이브리드 하드디스크 입출력 시스템
JP5444889B2 (ja) * 2009-06-30 2014-03-19 富士通株式会社 演算処理装置および演算処理装置の制御方法
FR3098622A1 (fr) * 2019-07-12 2021-01-15 Stmicroelectronics (Grenoble 2) Sas Procede de gestion d’instructions d’un programme contenues dans une memoire programme et circuit integre correspondant

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5113515A (en) * 1989-02-03 1992-05-12 Digital Equipment Corporation Virtual instruction cache system using length responsive decoded instruction shifting and merging with prefetch buffer outputs to fill instruction buffer
EP0436341B1 (en) * 1990-01-02 1997-05-07 Motorola, Inc. Sequential prefetch method for 1, 2 or 3 word instructions
US5170476A (en) * 1990-01-22 1992-12-08 Motorola, Inc. Data processor having a deferred cache load
US5317718A (en) * 1990-03-27 1994-05-31 Digital Equipment Corporation Data processing system and method with prefetch buffers
US5261066A (en) * 1990-03-27 1993-11-09 Digital Equipment Corporation Data processing system and method with small fully-associative cache and prefetch buffers
DE69128741T2 (de) * 1990-05-18 1998-07-16 Koninkl Philips Electronics Nv Mehrstufiger Befehlscachespeicher und Verwendungsverfahren dafür
SE469402B (sv) * 1991-05-02 1993-06-28 Swedish Inst Of Computer Scien Foerfarande foer att haemta data till ett cache-minne
US5371870A (en) * 1992-04-24 1994-12-06 Digital Equipment Corporation Stream buffer memory having a multiple-entry address history buffer for detecting sequential reads to initiate prefetching
US5388247A (en) * 1993-05-14 1995-02-07 Digital Equipment Corporation History buffer control to reduce unnecessary allocations in a memory stream buffer
US5490113A (en) * 1994-06-15 1996-02-06 Digital Equipment Corporation Memory stream buffer
US5640526A (en) * 1994-12-21 1997-06-17 International Business Machines Corporation Superscaler instruction pipeline having boundary indentification logic for variable length instructions
US5664147A (en) * 1995-08-24 1997-09-02 International Business Machines Corp. System and method that progressively prefetches additional lines to a distributed stream buffer as the sequentiality of the memory accessing is demonstrated

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6341334B1 (en) 1998-03-24 2002-01-22 Mitsubishi Denki Kabushiki Kaisha Bridge method, bus bridge, and multiprocessor system
JP2010512580A (ja) * 2006-12-08 2010-04-22 クゥアルコム・インコーポレイテッド 低複雑性命令プリフェッチシステム

Also Published As

Publication number Publication date
US5809529A (en) 1998-09-15
EP0772123A3 (en) 1999-05-12
EP0772123A2 (en) 1997-05-07
KR100234647B1 (ko) 1999-12-15
KR970029141A (ko) 1997-06-26

Similar Documents

Publication Publication Date Title
US5664147A (en) System and method that progressively prefetches additional lines to a distributed stream buffer as the sequentiality of the memory accessing is demonstrated
US6085291A (en) System and method for selectively controlling fetching and prefetching of data to a processor
JP3549079B2 (ja) キャッシュ制御の命令プリフェッチ方法
US8458408B2 (en) Cache directed sequential prefetch
US7493452B2 (en) Method to efficiently prefetch and batch compiler-assisted software cache accesses
JP3577331B2 (ja) キャッシュメモリシステムおよびマイクロプロセッサ内の命令を操作するための方法
US8725987B2 (en) Cache memory system including selectively accessible pre-fetch memory for pre-fetch of variable size data
US5740399A (en) Modified L1/L2 cache inclusion for aggressive prefetch
US5758119A (en) System and method for indicating that a processor has prefetched data into a primary cache and not into a secondary cache
US6317810B1 (en) Microprocessor having a prefetch cache
US5870599A (en) Computer system employing streaming buffer for instruction preetching
JPH09160827A (ja) コールド・キャッシュ命令のプリフェッチ
US7073030B2 (en) Method and apparatus providing non level one information caching using prefetch to increase a hit ratio
JPH0962572A (ja) ストリーム・フィルタ装置及び方法
JPH07253926A (ja) キャッシュ・ミスによる時間ペナルティ減少方法
JPH09128294A (ja) 先取り命令を生成する方法とシステム
US7716424B2 (en) Victim prefetching in a cache hierarchy
US20090106498A1 (en) Coherent dram prefetcher
WO1999026142A1 (en) Cache memory operation
US20060179173A1 (en) Method and system for cache utilization by prefetching for multiple DMA reads
US20050198439A1 (en) Cache memory prefetcher
US5860150A (en) Instruction pre-fetching of a cache line within a processor
JP3219196B2 (ja) キャッシュデータアクセス方法及び装置
JP2001344152A (ja) キャッシュメモリ装置