JPH06243039A - キャッシュメモリシステムおよびマイクロプロセッサ内の命令を操作するための方法 - Google Patents
キャッシュメモリシステムおよびマイクロプロセッサ内の命令を操作するための方法Info
- Publication number
- JPH06243039A JPH06243039A JP6002330A JP233094A JPH06243039A JP H06243039 A JPH06243039 A JP H06243039A JP 6002330 A JP6002330 A JP 6002330A JP 233094 A JP233094 A JP 233094A JP H06243039 A JPH06243039 A JP H06243039A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- instruction
- prefetch buffer
- memory system
- cache memory
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 84
- 238000000034 method Methods 0.000 title claims description 16
- 239000000872 buffer Substances 0.000 claims abstract description 67
- 238000012545 processing Methods 0.000 claims description 8
- 239000007853 buffer solution Substances 0.000 claims description 5
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 abstract description 4
- 229910052710 silicon Inorganic materials 0.000 abstract description 4
- 239000010703 silicon Substances 0.000 abstract description 4
- 238000013507 mapping Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
-
- 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/6022—Using a prefetch buffer or dedicated prefetch cache
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
率的に書込めるようにする。 【構成】 上記の目的のためのキャッシュメモリシステ
ムは、命令キャッシュ10およびプリフェッチバッファ
36の組合せを特徴とする。これは、キャッシュとバッ
ファとを相互接続するバスに対するいかなる必要性をも
回避し、かつプリフェッチされた命令の利用を向上さ
せ、電力とシリコンスペースとの使用を低減して、命令
バッファがキャッシュの中にデータを効率的に書込める
ようにする。
Description
son )らによる「メモリ内のデータをアクセスするため
の方法、メモリシステムおよびメモリ制御システム」と
題された出願、ジョンソンらによる「コンピュータメモ
リシステム、データキャッシュ動作の方法およびデータ
キャッシュシステム」と題された出願、およびトラン
(Tran)による「ラッチ回路、データの受取りを制御す
るための装置、ラッチングを遅延させる方法、およびプ
リチャージ値の受取りを阻止する方法」と題された出願
に関する。
に提出されており、本発明の譲受人に譲渡されたもので
あって、またすべてここで引用により全体的に再現され
るかのように援用される。
テムに関し、より特定的にはメインメモリだけでなくキ
ャッシュメモリをも含む、電子デジタルデータ処理シス
テムに関する。
に所与の命令を実行するのに要求される平均時間の短縮
か、そのような命令を実行するのに要求される装置のコ
ストの低減かのどちらかに向けられてきた。典型的にな
されてきた設計上のトレードオフの1つは、データの記
憶のためのメモリのユニットにおける、コスト対スピー
ドについてのものである。たとえば、テープメモリは伝
統的にディスクメモリより速度が低く費用が少ない。そ
れに対しディスクメモリはいくつかのタイプが利用可能
であり、コスト/スピードのかねあいでどれか1つのタ
イプを他のタイプに優先させて選択することもできる。
ディスクメモリは固体メモリよりも低速だが、より安価
であり、固体メモリ自体もいくつかのタイプが入手可能
であってその選択はやはりコスト/スピードのトレード
オフに関わるものである。したがって、より安価で迅速
なメモリを提供するか、それができなければ現在あるタ
イプのメモリにおける効率を高めることが、当該技術分
野において依然として必要である。この発明はこの第2
のタイプの改良に関する。特定的にはこの発明は、関連
のキャッシュメモリとメインメモリとを有するホスト中
央処理装置(CPU)が、そのどちらのメモリからも記
憶されたデータを得るのに必要な平均時間を短縮するた
めの装置および動作の方法を提供する。
般に1つより多くのタイプのメモリが提供されるという
ことを認識されたい。単一の迅速なメモリは非常に高く
つくだろうということを考えて、コンピュータ設計者ら
はこれまでデータおよび命令を保持するのにさまざまな
装置を用いており、各情報を入れておくところは、CP
Uがどれくらい緊急にその情報を必要とするかに基づい
て選択される。すなわち、一般に迅速ではあるが高価な
メモリはCPUがおそらく即座に必要とする情報を記憶
するのに用いられ、低速だが費用の少ない装置は、将来
使うために情報を確保しておくのに用いられる。
のメモリおよび記憶装置が使われてきた。長期にわたる
記憶は、一般にディスクおよびテープの記憶装置を用い
てなされる。ディスクおよびテープで実現されたデータ
記憶は、通常使用されているすべてのメモリおよび記憶
装置の中で現在最も遅く、一般にプロセッサによって実
際に使用されてはいないデータおよびプログラムを保持
するのに用いられる。ディスクおよびテープに記憶され
た情報をメインメモリに動かすには、比較的長い時間が
必要であるが、ディスクおよびテープの記憶装置からデ
ータを動かすのは時たまのことであり、CPUが全面的
に注意を向けずとも行なうことができるので、この遅さ
は許容できるものである。
モリまたはROMである。典型的なアクセス時間が50
から200ナノセカンドの間であるROMは、コンピュ
ータがオフになってもその内容を保持する。ROMメモ
リは、典型的には機械を使用するために準備を行なう始
動プログラムを保持する。
るもう1つのメモリ装置は、RAMメモリであって、こ
れはCPUがすぐに用いるための、ディスクまたはテー
プから持って来られたデータおよびプログラム命令の記
憶に使用される。メインメモリは通常、いくつかのダイ
ナミックRAM(「DRAM」)チップを含む。プロセ
ッサはこれらDRAMの内容を約100ナノセカンドで
検索できるので、このタイプのメモリはスピードではR
OMに匹敵する。
キャッシュメモリである。キャッシュメモリは、普通い
くつかのスタティックRAM(「SRAM」)チップを
含む。キャッシュメモリはメインメモリより最高で10
倍動作が速く、CPUが次に最も必要としそうな動作命
令およびデータを保持するように設計されているので、
コンピュータの動作速度を高めるものである。
Uメモリまたはレジスタと呼ばれる。スピードのために
最適化されたスタティックRAM回路でできた、プロセ
ッサ内のデータレジスタは、すべての中で最も速いメモ
リである。プログラムレジスタは次のプログラム命令の
メモリにおける記憶位置を記憶し、一方命令レジスタは
実行されている命令を保持し、汎用レジスタは処理中の
短い間、データを記憶する。
ムの中にキャッシュメモリ構成を含み、ひんぱんにアク
セスされるデータの迅速な局所記憶のための位置を提供
することが、当業者には知られているということを認識
されたい。キャッシュシステムはマイクロプロセッサの
メモリ参照の各々をインタセプトし、要求されるデータ
のアドレスがキャッシュ内にあるかどうかを調べる。デ
ータが実際にキャッシュの中にあれば(「ヒット」)、
そのデータはメインシステムメモリにアクセスするのに
必要な待ち状態を招くことなく即座にマイクロプロセッ
サに戻される。データがキャッシュの中になければ
(「ミス」)、メモリアドレス参照がメインメモリ制御
装置に送られ、データはメインメモリから検索される。
キャッシュヒットは局所的にサービスされるので、局所
キャッシュメモリの外で動作するプロセッサは「バス利
用度」がずっと低く、それによりシステムが要求するバ
ス帯域幅が減じられて、より多くのバス帯域幅が他のバ
スマスタに利用可能になる。これは重要なことである
が、なぜかというと当業者にはよく知られているよう
に、コンピュータの中のバス、すなわちCPUとシステ
ムのメモリおよび記憶装置との間の通信チャネルは、主
要な障害だからである。処理されるべきすべての命令お
よびすべてのデータは、事実上このルートを少なくとも
1回は移動しなければならない。特に単一のメモリと複
数のプロセッサとを含むシステムでは、バスを効率的に
使用してシステムの性能を最大限にすることが不可欠で
ある。
はメモリ参照をインタセプトし、それらがキャッシュ内
で「ミス」であった場合のみシステムメモリに送る。先
行技術の米国特許の多くはキャッシュメモリおよびメモ
リにアクセスする方法のさまざまな局面に向けられてお
り、これらは以下の特許を含むキャッシュメモリ部分を
含む。すなわちジーグラー(Ziegler )らへの米国特許
第4,794,521号、ウェザフォード(Weatherfor
d )らへの米国特許第4,646,233号、モレノ
(Moreno)らへの米国特許第4,780,808号、ジ
ーグラーらへの米国特許第4,783,736号、ジョ
イス(Joyce )らへの米国特許第4,195,342
号、クロフト(Kroft )らへの米国特許第4,370,
710号、ドッド(Dodd)への米国特許第4,476,
526号、シューネマン(Scheuneman)への米国特許第
4,070,706号、カプリンスキー(Kaplinsky )
への米国特許第4,669,043号、ハムストラ(Ha
mstra )への米国特許第4,811,203号、ジョイ
スらへの米国特許第4,785,398号、ギャノン
(Gannon)らへの米国特許第4,189,770号、お
よびランゲ(Lange )らへの米国特許第3,896,4
19号である。キャッシュメモリシステムに多くの関心
が寄せられ、上に列挙した米国特許によってそのような
システムに対し数多くの進歩が明示されているにもかか
わらず、そのようなシステムには、まだいくつかの短所
および欠点が残っている。たとえば、プロセッサにより
フェッチされる最も最近の命令を記憶するための命令キ
ャッシュとそれに伴なう命令プリフェッチバッファとで
システムを構成することが知られている。現在、命令キ
ャッシュと命令プリフェッチバッファとは2つの別個の
ブロックとして実現されている。そのような実現例で
は、命令はデコード/実行に送られる際にだけ命令キャ
ッシュを更新する。命令キャッシュはワードのブロック
1つにつき有効ビット1つで形成されてもよいし、キャ
ッシュ内の各ワードにつき1つの有効ビットで形成され
てもよい。ワードのブロックごとに有効ビットが1つあ
る場合、バスインタフェースユニットは他のアクセスを
許容する前にバスにブロック全体をフェッチさせる。ワ
ードごとに有効ビットが1つある場合、取られた分岐は
プリフェッチされたバッファ内のすべての命令を無効に
する。上に述べたことは各々、実際上設計における短所
である。命令キャッシュとプリフェッチバッファとを2
つの独立したブロックとして実現することのもう1つの
不利な点は、データをプリフェッチバッファから命令キ
ャッシュへ転送するのに、32ビットバスが要求される
ということである。
るため、この発明は命令キャッシュと、命令キャッシュ
に直接かつ作動的に接続されるプリフェッチバッファと
を含む、キャッシュメモリシステムを提供する。そのよ
うな命令キャッシュおよびプリフェッチバッファの組合
せは、2つの素子を相互接続するバスのいかなる必要性
をも回避し、さらにはプリフェッチされた命令の使用を
改良しかつ電力およびシリコン領域の使用を減じて、命
令バッファがデータを効率的にキャッシュに書込めるよ
うにする。
判断するステップと、要求される命令が命令キャッシュ
およびプリフェッチバッファシステムの命令キャッシュ
部分にあるかどうかを判断するステップと、もしそこに
あれば要求される命令を命令キャッシュ部分からフェッ
チするステップと、もし命令キャッシュ部分になければ
要求される命令を外部メモリからフェッチするステップ
とを含む、マイクロプロセッサ内の命令を操作するため
の方法をも提供する。さらにこの発明の教示に従う方法
は、命令キャッシュおよびプリフェッチバッファシステ
ムのプリフェッチバッファ部分の中の外部メモリからの
フェッチされた命令を受取るステップと、フェッチされ
た命令を同時に前記マイクロプロセッサの命令キャッシ
ュ部分と処理ユニット部分とに送って実行させるステッ
プとを含む。
ャッシュに書込むための命令バッファを効果的に実現す
ることである。
た命令をより有効に使用するプリフェッチバッファおよ
び命令キャッシュの組合せを提供することである。
て替わる先行技術の装置よりも使用する電力およびシリ
コンスペースが少ないプリフェッチバッファおよび命令
キャッシュの組合せを提供することである。
徴は、以下に述べる発明の詳しい説明に基づき、添付の
図面との関連で明らかになるであろう。
りかつわかりやすくするため、まずこの発明の教示に従
って組合せられてよい、命令キャッシュの特定の一例と
プリフェッチバッファの特定の一例とについて説明す
る。次に、組合せられた命令キャッシュおよびプリフェ
ッチバッファを特徴とするこの発明の一実施例が説明さ
れる。この説明に続き、この発明の代替的実施例を案出
するべく引き出され得るさまざまな教示を論じるつもり
である。
の図面に一貫して同一の参照番号で表されている図面、
より特定的には図1を参照すると、包括的に参照番号1
0で表される命令キャッシュが示される。命令キャッシ
ュ10はもちろん、この発明の実施例においてその1ま
たは2以上が使用され得る、同じまたは類似の機能を行
なうことのできるいくつかのキャッシュのただ1例にす
ぎない。そのことを念頭に置いて、示されている命令キ
ャッシュ10はキャッシュアレイ12とタグステータス
アレイ14とを含む。キャッシュアレイ12は(さらに
後の部分で詳しく説明する)4キロバイトのツーウェイ
セットアソシアティブキャッシュである。キャッシュ1
0におけるブロックのサイズは4ワード(16バイト)
である。キャッシュ10は従来、関連のプロセッサ(図
示せず)によって最も最近にフェッチされた命令を記憶
し、かつさらに各キャッシュブロックのためのステータ
ス情報を維持する。
命令キャッシュ不能化ビットによって能動化されたり不
能化されたりしてよい。命令キャッシュ10が能動化さ
れると、命令のフェッチはキャッシュ10によって満た
されるだろう。命令キャッシュ10が不能化されると、
命令のフェッチは外部の命令/データメモリによっての
み満たされ、キャッシュ10はフェッチされた命令を記
憶しない。さまざまな命令がキャッシュ10を無効にす
るだろう。
を保つには、命令キャッシュ10内のブロックは上述の
構成レジスタの命令キャッシュロックフィールドによっ
てロックされてよい。命令キャッシュロックフィールド
は、キャッシュ10内のすべてのブロックをロックする
こともできるし、特定の列内のブロックをロックするこ
ともできる。ブロックがロックされた場合、それが有効
であれば交換することはできない。ロックされたブロッ
クは無効であれば割当てられてよく、これによりクリテ
ィカルルーチンは単にそのルーチンをキャッシュ10が
無効にされた後で実行するだけでキャッシュ10の中に
ロードできるようになる。ロックされたブロックはま
た、キャッシュも不能化されていない限り無効にはでき
ないが、その場合不能化がロックに優先する。
有効ビットを有するので、部分的に有効なブロックをフ
ェッチしかつ記憶することができる。リロードの間、ワ
ードの有効ビットは、そのワードがキャッシュに書込ま
れる際にセットされる。すべての有効ビットはプロセッ
サリセットによって、または前述の無効化命令の1つを
実行することによって、単一のサイクルの間にクリアさ
れる。
インタフェースレジスタおよび/またはキャッシュデー
タレジスタを介してアクセス可能であろう。キャッシュ
インタフェースレジスタはアクセスされたブロックへの
ポインタを含み、アクセスされたフィールドを特定す
る。キャッシュデータレジスタはデータをキャッシュへ
およびキャッシュから転送するのに用いられてよい。そ
のようなキャッシュデータレジスタの内容は、キャッシ
ュの書込またはレジスタの読出の際に消えてしまうかも
しれないので、キャッシュ10はキャッシュのリローデ
ィングからの干渉を防ぐためキャッシュフィールドが読
出や書込をされている間は不能化されるべきである。
号16で表される個々の命令キャッシュブロックの編成
が示される。図2では、ブロック16が複数個の命令ワ
ード18を関連のアドレスタグおよびステータス表示部
20とともに含むということが見てとれるだろう。考え
られるステータスの表示としては、図2で示される「有
効」の他に、スーパバイザモードであるかユーザモード
であるかの表示、アドレスが(変換された/されていな
い、および物理アドレス/仮想アドレス)であるといっ
た表示が含まれる。キャッシュ10にはそのようなブロ
ック16が256個あり、各々128ブロックの2つの
列として編成される。アクセスには、特定の列およびブ
ロックが第1のフィールドにおけるいくつかのビット
(すなわち命令アドレスにおけるビット10−4)によ
って選択される。次に、ブロック内のアクセスされたフ
ィールドは第2のフィールド(すなわちビット31:1
1)と比較される。命令ワードがアクセスされると、命
令はさらにアドレスの下位の2ビット(すなわちビット
3−2)によって選択される。もちろん、当業者には明
らかであろうように、そうしなければアクセスがすぐに
悪影響を受ける。
タレジスタ内の、包括的に参照番号22で表される命令
ワードが示される。図3は、32ビット命令が命令キャ
ッシュ10(図1を参照)から読出され、またはそこへ
書込まれてよいということを示す。
レジスタ内の命令アドレスタグおよびブロックステータ
スが示される。図4では、(包括的に参照番号24で表
される)ビット31ないし11が命令アドレスタグフィ
ールドを構成することが見てとれるだろう。命令アドレ
スタグフィールド24は、キャッシュブロックによって
どのアドレスが満たされるかを特定する。図4で示され
る特定の実施例では、たとえばビット10ないし6(参
照番号26で表される)が予約されている。ビット5な
いし2(包括的に参照番号28で示される)は有効ビッ
トである。対応する命令ワードが有効であれば、このフ
ィールドにはビットがセットされる。ここで説明される
特定の実施例では、最上位ビットはブロック内の4番目
のワードのための有効ビットであり、最下位ビットはブ
ロック内の第1のワードのための有効ビットである(図
2参照)。キャッシュ内のすべての有効ビットは単一の
サイクルでプロセッサリセットによって、および無効化
命令の実行によってクリアされる。最後に、図4で示さ
れる特定の実施例では、ビット1−0(包括的に参照番
号30で表される)はステータスビットである。
サイクルごとに、プロセッサのプログラムカウンタのビ
ットがキャッシュアレイ12およびタグアレイ14(図
1参照)にアクセスするのに用いられる。プログラムカ
ウンタのビット10−4はキャッシュアレイ12および
タグアレイ14の列0および1にアクセスするのに用い
られる。タグフィールドがアレイから読出される際、プ
ログラムカウンタのビット31−11は各列のタグエン
トリにおいて命令アドレスタグフィールド(たとえば図
4のフィールド24)と比較される。列の1つに対して
プログラムカウンタのビット31−11が命令アドレス
タグフィールド(たとえばフィールド24)と一致し、
かつステータスビットが一致し、アクセスされたワード
の有効なステータスビットが1であり、命令キャッシュ
が不能化されていれば、キャッシュヒットが検出され
る。いずれかの列のブロックに対してこれらの条件があ
てはまらなければ、キャッシュミスが起こる。
0が能動化されると、プロセッサは外部命令フェッチを
開始することによって求められている命令をキャッシュ
内に位置付けようとする。これは「キャッシュリローデ
ィング」と呼ばれる。キャッシュ10が不能化される
と、プロセッサは不能化されたキャッシュを更新しない
ので、求められている命令はキャッシュの中に位置付け
られない。同様に、プロセッサはロックされた列内の有
効なブロックを交換しない。
候補ブロックが選択され、リロードされた命令は選択さ
れたブロックの中に位置付けられる。多くの交換アルゴ
リズムを使用することができるが、その1つは以下のよ
うなものである。
ブロックの1つが無効であれば、この無効ブロックは選
択されて交換される。双方の列が無効ブロックを含んで
いれば、列0のブロックが選択される。
らもロックされていない場合、交換されるブロックは任
意に選択される。
有効であり、列1のブロックがロックされていなけれ
ば、列1のブロックが選択される。
ちらの列にあるブロックも有効であれば、どのブロック
も交換することはできない。命令のフェッチは外部メモ
リによって満たされ、命令はキャッシュの中に入れられ
ない。
グは求められているアドレスに応じてセットされ、すべ
ての有効ビットがリセットされる。外部命令フェッチ
は、プロセッサが要求する命令で始まり、分岐または優
先度の高い外部アクセスが起こるかキャッシュ10の中
に命令が見つかるまで続く。プロセッサは最初の命令が
受け取られるとすぐに命令を実行し始め、実行と並行し
て残りのキャッシュリロードが起こる。最初の命令がフ
ェッチされた後、後に続くブロック内の命令がフェッチ
され、外部メモリから受け取られるにつれてキャッシュ
の中に書込まれる。ワードのための有効ビットは、フェ
ッチにDRAMエラーが全くないと仮定すると、ワード
が書込まれたときにセットされるが、エラーがあれば有
効ビットはセットされない。プロセッサパイプラインが
プリフェッチの間に立ち往生すると、ブロックの残りの
ために受け取られた命令は(後に説明する)プリフェッ
チバッファの中に入れられ、デコード段がそれらを受入
れられるようになるまでそこに留まる。
優先度の高い動作(たとえばDMA、ロードミス、また
はストアされたバッファがいっぱいになってしまったこ
と)のためにメモリインタフェースが必要とされる場
合、リロードは即座に止められ、分岐が取られるか、ま
たは他の外部アクセスが行なわれる。その後、次に要求
される命令がキャッシュの中になければリロードが再開
されるだろう。分岐の場合、目標とされる命令のために
リロードが生じるかもしれない。
サは外部フェッチを開始した後、求められているワード
を越えても命令を外部でフェッチし続けなければならな
いかもしれない。実行に先立ってそのような命令が要求
された場合、外部メモリには、そのメモリに十分な帯域
幅があれば、待ち状態なしでフェッチを行なうのに余る
ほど十分な時間を与えられる。これは、バーストモード
またはページモードのメモリシステムに特に適切であ
る。
に命令キャッシュを使用するシステムは、キャッシュミ
スをサービスしながら次にシーケンシャルなキャッシュ
ブロックがあるか否かを確認する。そのような場合、現
在のブロックのフェッチが完了する前に、プロセッサは
次のブロックが存在するかどうかを知る。プロセッサは
ブロック内のすべての命令が有効であれば、次のブロッ
クが存在するものと考える。有効でない命令が1つでも
あれば、プロセッサはブロック全体が存在しないものと
考えて外部フェッチを続け、必要であればタグフィール
ドをセットすることによってブロックを割り当てる。プ
ロセッサは現在のブロックのためのすべてのフェッチを
開始してしまえば即座に次のブロックに対するプリフェ
ッチを開始することができるが、現在のブロックの中に
次のブロックを不必要なものとする取られた分岐がにあ
る場合はその限りではない。
け取られた後のサイクルでプリフェッチバッファ(図5
参照)に入れられる。プリフェッチバッファから、命令
はキャッシュに書込まれ、デコーダに送られる。デコー
ダがパイプラインの立ち往生(stall) のために命令を受
入れられない場合、その命令は立ち往生の状態がもはや
なくなるまでプリフェッチバッファの中に留まる。命令
は、デコーダに送られキャッシュに書込まれて初めてプ
リフェッチバッファから回収される(retired)。
目的は、命令キャッシュを含むシステムがプロセッサの
デコーダ段に直接に結合されることによる複雑化を伴わ
ずに外部命令フェッチを中断するための、便利な、およ
び/または効果的な点に到達できるようにすることであ
る。たとえばロードミスは、命令キャッシュのリロード
のキャンセルを待って、リロードがキャンセルされるま
でパイプラインホールドを引起こす。パイプラインホー
ルドの間、デコーダはリロードされた命令を受取ること
には使えない。パイプラインホールドの状態が検出され
るとき、プロセッサはフェッチのさまざまな段にある3
つの命令を有する。プリフェッチバッファはこれらの命
令をキャッシュ10に書込むおよび/またはデコーダに
送ることができるようになるまで記憶しておくのに用い
られる。パイプラインホールドの間に受け取られる命令
は、そうするための自由なサイクルがあるにもかかわら
ず、キャッシュ10に書込まれることはない。それを行
なうと、キャッシュプログラム制御装置がプロセッサの
フェッチプログラム制御装置と違ったものになり、プロ
セッサによって必要とされる命令がキャッシュ10から
すぐに入手可能でないため、パイプラインの再開始を複
雑にするだろう。パイプラインホールドの間、プロセッ
サが要求する次の命令はプリフェッチバッファの中で保
持される。このことはフェッチ装置の動作を簡略化す
る。すなわちパイプラインホールドに応じてプリフェッ
チバッファとキャッシュとの間で切換えを行なうより
も、リロードの間命令は常にプリフェッチバッファによ
って供給されると仮定する方が簡単なのである。
きいシステムの実施例では、プリフェッチすることで、
次の要求されるブロックがキャッシュ10にあると判断
されるまでキャッシュの割当、外部フェッチ、およびリ
ローディングが続くようにされ得る。次に要求されるブ
ロックは順次的にアドレス指定されてもよいし、非順次
的にアドレス指定されてもよい。順次的アドレス指定で
は、プロセッサは現在のブロックのリロードに関してあ
るきまった時間にヒットについて知る。対照的に、非順
次的フェッチはリロード中のどの時点でも起こり得る。
ることは、いくつかの要素によって複雑化される。第1
に、命令はブロックがリロードされている間に実行され
るので、分岐は現在のブロックをリロードしている間の
どの時点でも起こり得る。第2に、目標とされる命令
は、キャッシュ10の中でヒットすることもあり得るし
ミスすることもあり得る。目標がヒットであれば、プロ
セッサは外部フェッチを終了する。目標がミスであれ
ば、プロセッサは現在のフェッチを止めて新しいフェッ
チを再開しなければならない。最後に、現在のブロック
のリロードは目標とされる命令がフェッチされ得るより
前にキャンセルされなければならない。
ば、次の順次的なアドレス指定されたブロックのプリフ
ェッチを止めるのには、このブロックが必要とされるの
は、たとえば次のブロックに分岐遅延命令があるために
その分岐がブロックにおける最後の命令である場合のみ
であっても、決して十分な時間はない。したがって、い
くらかの外部メモリ容量が、必要とされるフェッチのた
めに分岐を越えてとられ、これらの命令はキャッシュ1
0の中に存在しなくても排棄される。命令キャッシュと
バッファされたデータキャッシュとを両方とも含むシス
テムでは、外部メモリインタフェースが同時に命令とデ
ータアクセスとのために必要とされることはまれであ
る。しかしながら、命令がキャッシュリロードの間にデ
コードされた場合、もし命令のリロードの間にデータキ
ャッシュ内でロードがミスするか、または一杯になった
書込バッファに記憶が行なわれるならば、命令およびデ
ータアクセスの間で衝突があるかもしれない。
た場合、命令のフェッチはデータアクセスをサービスす
る前にキャンセルされるだろう。データアクセスを作り
出すロードまたは記憶の命令は、リロードがキャンセル
されるのを待っている間に実行を完了することを許され
る。しかしながら、ロードまたは記憶はライトバック段
で保持され、後に続く命令はもっと早いパイプライン段
に保持される。これにより、外部ロード/記憶アクセス
は命令のフェッチがキャンセルされた直後に開始するこ
とができる。
と、外部フェッチを再び始めることができる。これは、
キャッシュのミスを検出しかつ外部フェッチを開始する
のに用いられる通常のメカニズムによってトリガされて
よい。別のデータアクセスがリロードが始まる前に要求
される場合(すなわち別のロードまたは記憶が命令のス
トリームの中で第1のロードまたは記憶のすぐ後に続く
場合)、リロードの前に第2のロードまたは記憶が行な
われる。
り、分岐の目標がキャッシュ10の中でミスである場
合、その分岐の目標とされる命令のフェッチはロードま
たは記憶のための外部アクセスが行われる前に完了され
てよい。
RAMアドレスでアクセスされた場合、DRAMマッピ
ングがキャッシュ10における命令のマッピングに影響
を与えるようなやり方で変化させられると必ず、キャッ
シュ10のすべての内容はフラッシュされる(flush) だ
ろう。フラッシュは各キャッシュブロックのすべての有
効ビットをリセットすることによって達成される。有効
ビットは、プロセッサのリセットによって、ならびに割
込復帰および/または無効または類似の機能を実行する
ことによって単一の各サイクルの中でリセットされてよ
い。
は、次の分岐または次のキャッシュブロック境界のうち
どちらか先のものが来るまで有効ビットをリセットしな
い。無効化命令がブロックにおける最後の命令であれ
ば、無効化が起こるブロック境界は次のブロックの終わ
りにある。これにより、プロセッサパイプラインは無効
化命令が実行されるとデコード中の命令の実行を完了で
きるようになり、それを強制的にパイプラインの中で無
効化し外部で再フェッチすることはない。
ァとを個別に説明してきたが、これよりこの発明の教示
に従ったそれらの組合せについて論じる。そのような組
合せを説明するにあたって便宜を図りかつわかりやすく
するために、たくさんの可能な例の中からただ一例に焦
点をあてる。この例は4ワード命令プリフェッチバッフ
ァ、すなわち命令キャッシュ(図2参照)のブロックの
サイズと同じ数のワードを有するバッファを仮定する。
キャッシュ自体は各々32ビットを備える4つのブロッ
クとして編成され、各キャッシュブロックに4つのプリ
フェッチバッファが実現される。プリフェッチバッファ
はキャッシュと直接に接続されて実現されるので、バス
は全く必要ではない。
に従う組合せの命令キャッシュおよびプリフェッチバッ
ファが示される。より特定的には、図5では命令キャッ
シュの第1のブロック(包括的に参照番号32で表され
る)、および同じ命令キャッシュの第2のブロック(包
括的に参照番号34で表される)が、その間に配設され
かつ直接に接続されたプリフェッチバッファ(包括的に
参照番号36で表される)とともに示される。プリフェ
ッチバッファ36は4ワードバッファとして表され、命
令キャッシュのブロックサイズと、ワード数の点で対応
する。構造および動作についてのさらなる詳細は以下で
述べられる。しかしながら、一般に図5で示される装置
は外部メモリの代わりとなる迅速なメモリとして働くも
のである。
するが、要求される命令がキャッシュの中にない場合、
それらは外部メモリからフェッチしなくてはならない。
プリフェッチバッファ(たとえばバッファ36)は命令
を受取り、それらを記憶のためのキャッシュと実行のた
めの中央処理装置との双方に送る。
令のブロックはあっても次の命令のブロックはないかも
しれない。そのような場合には、次のブロックをプリフ
ェッチすることができる。現在のブロックの完了にあた
って、次の命令がすでにプリフェッチバッファの中に存
在するだろう。これにより、デコードユニットへの命令
のストリームが中断されないということが確実になる。
次のブロックで早くとられた分岐は、デコードユニット
に送る際にキャッシュを更新するだけなので、プリフェ
ッチ命令のほとんどを無駄にするだろう。
び読出のカウンタで実現される。新しくフェッチされた
命令は書込カウンタを増加させ、読出カウンタは命令が
デコードに送られる際に増加する。書込カウンタは命令
バッファの先頭を指し、読出カウンタは命令バッファの
末尾を指す。命令バッファは先入れ先出しで動作する。
プリフェッチバッファ36内の有効な命令を示すのに
は、1組の有効ビットを用いることもできる。もう1組
の有効ビットを、命令がキャッシュを更新したかどうか
を示すために用いることができる。キャッシュに書込を
行ない、デコードに命令を送るために1組の制御を行な
う代わりに、2つの動作は独立している。このためにか
かるのはキャッシュへのデータの書込を示すための追加
された4つの有効ビットである。
ックアドレス(すなわち4ワードのブロック内のワー
ド)とともにアドレスを有していなければならない。そ
のような装置の最も大きな利点は、次の命令のブロック
がプリフェッチされたときに顕著となる。そのような場
合、プログラムカウンタが次のブロックまで増加するに
つれて、プリフェッチされた命令のすべてが即座にキャ
ッシュを更新することができる。キャッシュを一度に更
新することによって、動作電力の要求は低減される。分
岐がとられると、インタフェースユニットは通常必要な
命令を越えていくつかのワードをフェッチする。ブロッ
ク内のこれら余分なワードはここでキャッシュに入れる
ことができる。
教示に従うプリフェッチバッファおよび命令キャッシュ
の組合せにおける可能な実施例の1つにすぎない。図5
の実施例はマッピングの形式、すなわち1つのセットの
要素と別のセットの要素との間に直接な対応関係が確立
される動作を用いる。図6ないし8はマッピングの代替
例を表わす。図6はダイレクトマッピングを示す。ダイ
レクトマッピングの配列では、各アドレスはデータアレ
イの中のデータの単一のセットに対応する。そのような
配列ではリクエストの上位ビット38は、タグアレイ4
0の中へ送り込まれ、リクエストの下位ビット42はデ
コーダ44に送り込まれる。デコーダ44とタグアレイ
40とは次に協働してデータアレイ48のデータの選択
ブロック46に導かれる。
ッピングを表わす。図7で表されるツーウェイセットア
ソシアティブマッピングは、図6で表されるダイレクト
マッピングとは2つのタグ50および52、ならびに2
つのデータのブロック54および56が互いに対応する
という点で異なっている、すなわち図6の配列のように
単に1対1の対応関係があるわけではない。
術、すなわちフルアソシアティブマッピングを表わす。
フルアソシアティブマッピングではタグアレイ40とデ
ータアレイ48とのそれぞれの間に直接的な完全にアソ
シアティブな関係があり、デコーダの必要性を回避して
いる。
はこの発明がプリフェッチバッファを直接作動的に接続
された命令キャッシュを含むキャッシュメモリシステム
を提供するものであるということを今や完全に理解かつ
認識しているはずである。この発明はまた、プロセッサ
内の命令を操作するための方法をも提供する。この発明
の実施例は、命令キャッシュおよびプリフェッチバッフ
ァを相互接続するバスが必要とされず、命令バッファが
プリフェッチされた命令の利用を改良し、電力とシリコ
ンスペースとの使用を減じてキャッシュ内にデータを効
果的に書込むことができるようになるので、先行技術に
勝る改良となる。この発明の実施例を構成するにあた
り、ダイレクトマッピング、ツーウェイセットアソシア
ティブマッピング、およびフルアソシアティブマッピン
グのようなマッピングを何タイプ用いてもよい。
くの修正および変形がなされてよいことは明らかであ
る。したがって、前掲の特許請求の範囲内で、この発明
は本文中で特定的に述べられたものと異なって実施され
てもよい。
である。
グおよびブロックステータスの図である。
および命令キャッシュの組合せの図である。
施例で用いられてよい1コンセプトを表わす図である。
すなわちこの発明の実施例で用いられてよい1コンセプ
トを表わす図である。
発明の実施例で用いられてよい1コンセプトを表わす図
である。
Claims (14)
- 【請求項1】 キャッシュを含み、前記キャッシュは各
ブロックにつき複数個のビットのある、複数個のブロッ
クで形成され、さらにプリフェッチバッファを含み、前
記プリフェッチバッファは前記キャッシュを形成するブ
ロックの前記数に等しい数の複数個のブロックで形成さ
れ、かつ前記プリフェッチバッファは直接作動的に前記
キャッシュに接続され、 前記キャッシュと前記プリフェッチバッファとを相互接
続するバスの使用は必要とされない、キャッシュメモリ
システム。 - 【請求項2】 前記プリフェッチバッファは2つの別個
の有効ビットの組を含む、請求項1に記載のキャッシュ
メモリシステム。 - 【請求項3】 前記2つの別個の有効ビットの組の一方
は前記命令キャッシュに書込みを行なうために用いられ
る、請求項2に記載のキャッシュメモリシステム。 - 【請求項4】 前記キャッシュメモリシステムは外部デ
コードセクションと相互に作用し、前記2つの別個の有
効ビットの組の他方は、前記外部デコードセクションに
命令を送るために用いられる、請求項3に記載のキャッ
シュメモリシステム。 - 【請求項5】 前記プリフェッチバッファは、書込カウ
ンタと読出カウンタとを含む、請求項1に記載のキャッ
シュメモリシステム。 - 【請求項6】 前記プリフェッチバッファは先入れ先出
しの態様で動作するよう構成され、その構成は本質的に
その先頭部分と末尾部分とを規定する、請求項5に記載
のキャッシュメモリシステム。 - 【請求項7】 前記書込カウンタは前記プリフェッチバ
ッファの前記先頭部分を指す、請求項6に記載のキャッ
シュメモリシステム。 - 【請求項8】 前記読出カウンタは前記プリフェッチバ
ッファの前記末尾部分を指す、請求項7に記載のキャッ
シュメモリシステム。 - 【請求項9】 前記プリフェッチバッファは、中にある
有効な命令を示すよう動作可能な、有効ビットの組をさ
らに含む、請求項5に記載のキャッシュメモリシステ
ム。 - 【請求項10】 前記プリフェッチバッファは、命令が
前記キャッシュを更新したかどうかを示すのに動作可能
な、有効ビットの第2の組をさらに含む、請求項9に記
載のキャッシュメモリシステム。 - 【請求項11】 マイクロプロセッサ内の命令を操作す
るための方法であって、 命令が要求されていることを判断するステップと、 前記要求される命令が命令キャッシュおよびプリフェッ
チバッファシステムの命令キャッシュ部分にあるかどう
かを判断するステップと、 前記要求される命令がそこにあった場合、前記命令キャ
ッシュ部分からフェッチするステップと、 前記要求される命令が前記命令キャッシュ部分になかっ
た場合、外部メモリからフェッチするステップと、 前記命令キャッシュおよびプリフェッチバッファシステ
ムのプリフェッチバッファ部分で外部メモリから前記フ
ェッチされた命令を受取るステップと、 前記フェッチされた命令を、実行のために前記マイクロ
プロセッサの命令キャッシュ部分と処理ユニット部分と
に同時に送るステップとを含む、方法。 - 【請求項12】 順序付けられたブロックの連鎖におけ
る後続する命令のブロックをプリフェッチし、それら後
続するブロックが前記命令キャッシュおよびプリフェッ
チバッファシステムで必要とされるとすぐに利用可能と
なるようにするステップをさらに含む、請求項11に記
載の方法。 - 【請求項13】 前記プリフェッチバッファ内の命令が
有効かどうかを決定しかつそのように指示するステップ
をさらに含む、請求項11に記載の方法。 - 【請求項14】 命令がキャッシュ部分を更新したかど
うかを決定しかつそのように指示するステップをさらに
含む、請求項13に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US674593A | 1993-01-21 | 1993-01-21 | |
US006745 | 1993-01-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06243039A true JPH06243039A (ja) | 1994-09-02 |
JP3577331B2 JP3577331B2 (ja) | 2004-10-13 |
Family
ID=21722366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP00233094A Expired - Fee Related JP3577331B2 (ja) | 1993-01-21 | 1994-01-14 | キャッシュメモリシステムおよびマイクロプロセッサ内の命令を操作するための方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5586295A (ja) |
EP (2) | EP0795820B1 (ja) |
JP (1) | JP3577331B2 (ja) |
DE (1) | DE69327981T2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4900979A (en) * | 1987-05-28 | 1990-02-13 | Kabushiki Kaisha Toshiba | Color cathode ray apparatus provided with dynamic convergence means |
JPH07121443A (ja) * | 1993-10-01 | 1995-05-12 | Internatl Business Mach Corp <Ibm> | 情報処理システム及びその動作方法 |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07182170A (ja) * | 1993-12-24 | 1995-07-21 | Ricoh Co Ltd | マイクロプロセッサ |
US5898854A (en) * | 1994-01-04 | 1999-04-27 | Intel Corporation | Apparatus for indicating an oldest non-retired load operation in an array |
US5752263A (en) * | 1995-06-05 | 1998-05-12 | Advanced Micro Devices, Inc. | Apparatus and method for reducing read miss latency by predicting sequential instruction read-aheads |
JPH0934786A (ja) * | 1995-07-14 | 1997-02-07 | Fujitsu Ltd | 命令供給装置 |
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 |
US5737565A (en) * | 1995-08-24 | 1998-04-07 | International Business Machines Corporation | System and method for diallocating stream from a stream buffer |
US5918247A (en) * | 1995-10-27 | 1999-06-29 | Motorola, Inc. | Method for canceling partial line fetch for cache when new data is requested during current fetch and invalidating portion of previously fetched data |
US5822764A (en) * | 1996-03-04 | 1998-10-13 | Motorola, Inc. | Method and circuit for efficiently replacing invalid locked portions of a cache with valid data |
US5835947A (en) * | 1996-05-31 | 1998-11-10 | Sun Microsystems, Inc. | Central processing unit and method for improving instruction cache miss latencies using an instruction buffer which conditionally stores additional addresses |
US5764940A (en) * | 1996-11-27 | 1998-06-09 | International Business Machines Corporation | Processor and method for executing a branch instruction and an associated target instruction utilizing a single instruction fetch |
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 |
US5919251A (en) * | 1997-11-03 | 1999-07-06 | Advanced Micro Devices, Inc. | Search mechanism for a rotating pointer buffer |
US6070229A (en) * | 1997-12-02 | 2000-05-30 | Sandcraft, Inc. | Cache memory cell with a pre-programmed state |
US6012134A (en) * | 1998-04-09 | 2000-01-04 | Institute For The Development Of Emerging Architectures, L.L.C. | High-performance processor with streaming buffer that facilitates prefetching of instructions |
US6370415B1 (en) | 1998-04-10 | 2002-04-09 | Medi-Physics Inc. | Magnetic resonance imaging method |
US6275924B1 (en) * | 1998-09-15 | 2001-08-14 | Texas Instruments Incorporated | System for buffering instructions in a processor by reissuing instruction fetches during decoder stall time |
JP3798180B2 (ja) * | 1998-05-21 | 2006-07-19 | テキサス インスツルメンツ インコーポレイテツド | プロセッサにおいて命令をバッファリングする方法およびシステム |
US6230260B1 (en) | 1998-09-01 | 2001-05-08 | International Business Machines Corporation | Circuit arrangement and method of speculative instruction execution utilizing instruction history caching |
US7181548B2 (en) | 1998-10-30 | 2007-02-20 | Lsi Logic Corporation | Command queueing engine |
JP3495266B2 (ja) * | 1998-11-13 | 2004-02-09 | Necエレクトロニクス株式会社 | キャッシュロック装置及びキャッシュロック方法 |
US6314494B1 (en) | 1999-04-15 | 2001-11-06 | Agilent Technologies, Inc. | Dynamically size configurable data buffer for data cache and prefetch cache memory |
US6282614B1 (en) | 1999-04-15 | 2001-08-28 | National Semiconductor Corporation | Apparatus and method for reducing the power consumption of a microprocessor with multiple levels of caches |
US6539469B1 (en) * | 1999-10-12 | 2003-03-25 | Intel Corporation | Rotator circular buffer with entries to store divided bundles of instructions from each cache line for optimized instruction supply |
US20030145170A1 (en) * | 2002-01-31 | 2003-07-31 | Kever Wayne D. | Dynamically adjusted cache power supply to optimize for cache access or power consumption |
TWI227853B (en) * | 2003-08-29 | 2005-02-11 | Rdc Semiconductor Co Ltd | Data accessing method and system for processing unit |
US6873184B1 (en) | 2003-09-03 | 2005-03-29 | Advanced Micro Devices, Inc. | Circular buffer using grouping for find first function |
US7080170B1 (en) | 2003-09-03 | 2006-07-18 | Advanced Micro Devices, Inc. | Circular buffer using age vectors |
CA2465065A1 (en) * | 2004-04-21 | 2005-10-21 | Ibm Canada Limited - Ibm Canada Limitee | Application cache pre-loading |
US7877537B2 (en) | 2006-12-15 | 2011-01-25 | Microchip Technology Incorporated | Configurable cache for a microprocessor |
US7966457B2 (en) * | 2006-12-15 | 2011-06-21 | Microchip Technology Incorporated | Configurable cache for a microprocessor |
CN101558390B (zh) * | 2006-12-15 | 2014-06-18 | 密克罗奇普技术公司 | 用于微处理器的可配置高速缓冲存储器 |
US9208095B2 (en) | 2006-12-15 | 2015-12-08 | Microchip Technology Incorporated | Configurable cache for a microprocessor |
KR100867269B1 (ko) * | 2007-02-22 | 2008-11-06 | 삼성전자주식회사 | 프로세서의 추론적 로드 명령 실행 방법 및 상기 방법을채용한 프로세서 |
JP5598554B2 (ja) * | 2011-01-25 | 2014-10-01 | 富士通株式会社 | システム、およびデータロード方法 |
US20140002469A1 (en) * | 2011-06-07 | 2014-01-02 | Mitsubishi Electric Corporation | Drawing device |
US8978022B2 (en) * | 2013-01-10 | 2015-03-10 | Oracle International Corporation | Reducing instruction miss penalties in applications |
JP5863855B2 (ja) * | 2014-02-26 | 2016-02-17 | ファナック株式会社 | 分岐命令を高速に処理するためのインストラクションキャッシュを有するプログラマブルコントローラ |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3896419A (en) * | 1974-01-17 | 1975-07-22 | Honeywell Inf Systems | Cache memory store in a processor of a data processing system |
US4070706A (en) * | 1976-09-20 | 1978-01-24 | Sperry Rand Corporation | Parallel requestor priority determination and requestor address matching in a cache memory system |
US4195342A (en) * | 1977-12-22 | 1980-03-25 | Honeywell Information Systems Inc. | Multi-configurable cache store system |
US4189770A (en) * | 1978-03-16 | 1980-02-19 | International Business Machines Corporation | Cache bypass control for operand fetches |
US4370710A (en) * | 1980-08-26 | 1983-01-25 | Control Data Corporation | Cache memory organization utilizing miss information holding registers to prevent lockup from cache misses |
US4476526A (en) * | 1981-11-27 | 1984-10-09 | Storage Technology Corporation | Cache buffered memory subsystem |
US4780808A (en) * | 1981-11-27 | 1988-10-25 | Storage Technology Corporation | Control of cache buffer for memory subsystem |
US4811203A (en) * | 1982-03-03 | 1989-03-07 | Unisys Corporation | Hierarchial memory system with separate criteria for replacement and writeback without replacement |
US4669043A (en) * | 1984-02-17 | 1987-05-26 | Signetics Corporation | Memory access controller |
US4646233A (en) * | 1984-06-20 | 1987-02-24 | Weatherford James R | Physical cache unit for computer |
US4774654A (en) * | 1984-12-24 | 1988-09-27 | International Business Machines Corporation | Apparatus and method for prefetching subblocks from a low speed memory to a high speed memory of a memory hierarchy depending upon state of replacing bit in the low speed memory |
EP0732656B1 (en) * | 1985-02-22 | 2003-08-06 | Intergraph Corporation | Cache MMU system |
US4847759A (en) * | 1985-03-18 | 1989-07-11 | International Business Machines Corp. | Register selection mechanism and organization of an instruction prefetch buffer |
US4714994A (en) * | 1985-04-30 | 1987-12-22 | International Business Machines Corp. | Instruction prefetch buffer control |
AU5634086A (en) * | 1985-05-06 | 1986-11-13 | Wang Laboratories, Inc. | Information processing system with enhanced instruction execution and support control |
US4783736A (en) * | 1985-07-22 | 1988-11-08 | Alliant Computer Systems Corporation | Digital computer with multisection cache |
US4794521A (en) * | 1985-07-22 | 1988-12-27 | Alliant Computer Systems Corporation | Digital computer with cache capable of concurrently handling multiple accesses from parallel processors |
US4853846A (en) * | 1986-07-29 | 1989-08-01 | Intel Corporation | Bus expander with logic for virtualizing single cache control into dual channels with separate directories and prefetch for different processors |
JPS648458A (en) * | 1987-06-22 | 1989-01-12 | Ibm | Prefetching of line sequentially to cache memory of computer from main memory |
US4882673A (en) * | 1987-10-02 | 1989-11-21 | Advanced Micro Devices, Inc. | Method and apparatus for testing an integrated circuit including a microprocessor and an instruction cache |
JPH0769812B2 (ja) * | 1987-12-29 | 1995-07-31 | 富士通株式会社 | データ処理装置 |
IT1238313B (it) * | 1990-01-18 | 1993-07-12 | Memoria tampone in tandem | |
US5230068A (en) * | 1990-02-26 | 1993-07-20 | Nexgen Microsystems | Cache memory system for dynamically altering single cache memory line as either branch target entry or pre-fetch instruction queue based upon instruction sequence |
US5317718A (en) * | 1990-03-27 | 1994-05-31 | Digital Equipment Corporation | Data processing system and method with prefetch buffers |
EP0457403B1 (en) * | 1990-05-18 | 1998-01-21 | Koninklijke Philips Electronics N.V. | Multilevel instruction cache and method for using said cache |
US5530941A (en) * | 1990-08-06 | 1996-06-25 | Ncr Corporation | System and method for prefetching data from a main computer memory into a cache memory |
US5361391A (en) * | 1992-06-22 | 1994-11-01 | Sun Microsystems, Inc. | Intelligent cache memory and prefetch method based on CPU data fetching characteristics |
-
1993
- 1993-12-02 DE DE69327981T patent/DE69327981T2/de not_active Expired - Lifetime
- 1993-12-02 EP EP97104937A patent/EP0795820B1/en not_active Expired - Lifetime
- 1993-12-02 EP EP93309672A patent/EP0612013A1/en not_active Withdrawn
-
1994
- 1994-01-14 JP JP00233094A patent/JP3577331B2/ja not_active Expired - Fee Related
-
1995
- 1995-06-05 US US08/462,009 patent/US5586295A/en not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4900979A (en) * | 1987-05-28 | 1990-02-13 | Kabushiki Kaisha Toshiba | Color cathode ray apparatus provided with dynamic convergence means |
JPH07121443A (ja) * | 1993-10-01 | 1995-05-12 | Internatl Business Mach Corp <Ibm> | 情報処理システム及びその動作方法 |
Also Published As
Publication number | Publication date |
---|---|
JP3577331B2 (ja) | 2004-10-13 |
US5586295A (en) | 1996-12-17 |
EP0795820B1 (en) | 2000-03-01 |
DE69327981T2 (de) | 2000-10-05 |
EP0612013A1 (en) | 1994-08-24 |
DE69327981D1 (de) | 2000-04-06 |
EP0795820A3 (en) | 1997-10-01 |
EP0795820A2 (en) | 1997-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3577331B2 (ja) | キャッシュメモリシステムおよびマイクロプロセッサ内の命令を操作するための方法 | |
US5210845A (en) | Controller for two-way set associative cache | |
US8725987B2 (en) | Cache memory system including selectively accessible pre-fetch memory for pre-fetch of variable size data | |
JP2554449B2 (ja) | キャッシュ・メモリを有するデータ処理システム | |
US6161166A (en) | Instruction cache for multithreaded processor | |
JP4486750B2 (ja) | テンポラリ命令及び非テンポラリ命令用の共用キャッシュ構造 | |
JP3683739B2 (ja) | オーバラップしたl1およびl2メモリ・アクセス方法および装置 | |
US5577227A (en) | Method for decreasing penalty resulting from a cache miss in multi-level cache system | |
US5900011A (en) | Integrated processor/memory device with victim data cache | |
JP3875738B2 (ja) | ロード・バッファを備えたロード/ストア・ユニット内にて切り離されたタグ及びデータ・アレイへのアクセス方法及びそのアレイを有する装置 | |
US6199142B1 (en) | Processor/memory device with integrated CPU, main memory, and full width cache and associated method | |
US6292871B1 (en) | Loading accessed data from a prefetch buffer to a least recently used position in a cache | |
JPH06318177A (ja) | キャッシュ・ミス・ペナルティを減少させる方法、装置及びコンピュータ・システム | |
US8621152B1 (en) | Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access | |
JP4218820B2 (ja) | ダイレクトマップドキャッシュとフルアソシアティブバッファとを含んだキャッシュシステム、その制御方法及び記録媒体 | |
KR100234647B1 (ko) | 인스트럭션 프리페치 방법 및 데이터 처리 시스템 | |
US6715035B1 (en) | Cache for processing data in a memory controller and a method of use thereof to reduce first transfer latency | |
JP2001297037A (ja) | スマート・キャッシュ | |
KR100348099B1 (ko) | 단일의캐쉬액세스파이프단을이용하여파이프라인저장명령을실행하기위한장치및방법과,파이프라인프로세서및,컴퓨터시스템 | |
US20050216610A1 (en) | Method to provide cache management commands for a DMA controller | |
KR100710922B1 (ko) | 캐시 관리 방법 | |
JP3431878B2 (ja) | マルチスレッド・プロセッサの命令キャッシュ | |
US5926841A (en) | Segment descriptor cache for a processor | |
US6976130B2 (en) | Cache controller unit architecture and applied method | |
WO1997034229A9 (en) | Segment descriptor cache for a processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20040210 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20040216 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040323 |
|
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: 20040629 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040712 |
|
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: 20070716 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080716 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090716 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100716 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100716 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110716 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees | ||
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 |