[go: up one dir, main page]

JPH0588891A - キヤツシユメモリ制御装置 - Google Patents

キヤツシユメモリ制御装置

Info

Publication number
JPH0588891A
JPH0588891A JP3252310A JP25231091A JPH0588891A JP H0588891 A JPH0588891 A JP H0588891A JP 3252310 A JP3252310 A JP 3252310A JP 25231091 A JP25231091 A JP 25231091A JP H0588891 A JPH0588891 A JP H0588891A
Authority
JP
Japan
Prior art keywords
address
branch
instruction
cache
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.)
Pending
Application number
JP3252310A
Other languages
English (en)
Inventor
Yukihiro Ide
進博 井出
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP3252310A priority Critical patent/JPH0588891A/ja
Publication of JPH0588891A publication Critical patent/JPH0588891A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【構成】 キャッシュメモリ2と、分岐命令の格納番地
から分岐先番地を予測する分岐予測回路3と、キャッシ
ュミスによりリフィール処理する際、分岐予測回路3に
キャッシュミスした番地が登録され、予測分岐先番地が
キャッシュメモリ2にない場合、リフィール処理後直ち
に予測分岐先番地を含むブロックをプリフェッチし、分
岐予測回路3にキャッシュミスした番地が登録され、予
測分岐先番地がキャッシュメモリ2にある場合、リフィ
ール処理後直ちにバス113を解放し、分岐予測回路3
にキャッシュミスした番地が登録されていず、キャッシ
ュミスした番地を含むブロックの次ブロックがキャッシ
ュメモリ2にない場合、リフィール処理後直ちに次ブロ
ックをプリフェッチし、分岐予測回路3にキャッシュミ
スした番地が登録されていず、キャッシュミスした番地
を含むブロックの次ブロックがキャッシュメモリ2にあ
る場合、リフィール処理後直ちにバス113を解放する
キャッシュ制御部6とから構成されている。 【効果】 分岐が生じる場合でも正確にプリフェッチで
きるため、キャッシュメモリのヒット率が向上する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、キャッシュ・メモリの
プリフェッチを制御するキャッシュメモリ制御装置に関
する。
【0002】
【従来の技術】近年、プロセッサの高速化に対応して、
高速に動作するプロセッサと比較的アクセス速度が遅い
主記憶装置との動作速度のギャップを緩和するために、
より高速なキャッシュ・メモリをプロセッサと主記憶装
置の間に置くことが一般化している。しかし、一連のキ
ャッシュ・メモリの動作の内、主記憶装置の内容をキャ
ッシュ・メモリに取り込むリフィール処理、およびキャ
ッシュ・メモリの内容を主記憶装置に書き戻すライトバ
ック処理は、非常に時間を要し、オーバヘッドが大き
い。従って、キャッシュ・メモリのヒット率を向上さ
せ、なるべくリフィール処理やライトバック処理を生じ
させないようにすることが、プロセッサを効率よく動作
させる上で大切である。
【0003】命令キャッシュ・メモリやデータキャッシ
ュ・メモリのプリフェッチは、ヒット率を向上させる一
手法である。キャッシュ・メモリのプリフェッチとは、
次にフェッチすべきブロックを予測して、あらかじめフ
ェッチしておくことにより、キャッシュ・ミスを少なく
して、リフィール処理、ライトバック処理によるオーバ
ヘッドを小さくする方法である。
【0004】従来のプリフェッチのアルゴリズムは、デ
ータ、命令シーケンスの局所性を利用している。最も単
純なアルゴリズムは、現在リフィールされているブロッ
クの次のブロックを無条件にフェッチする方法である。
この方法では、無条件にプリフェッチを行うので、
(1)不必要なプリフェッチを行い易い、(2)不用意
に必要なブロックを追い出してしまう、(3)必要以上
に外部バスを占有してしまう、などの問題点があった。
特に命令シーケンスは、分岐によって流れが大きく変わ
ることが多く、単に次のブロックをフェッチする方法で
は、予測が不十分である。
【0005】特に、命令キャッシュ・メモリに於いて
は、次のような方法も提案されている。すなわち、
(1)キャッシュ・ミスがあって、結果として、プロセ
ッサがある番地からのリフィールを実行するときには、
直ちに次のブロックのフェッチを行う、(2)分岐の結
果、キャッシュ・メモリ内の命令を行うことになったと
きには、いつでも、直ちにその次のブロックのフェッチ
を行う、という方法である。しかしながら、この方法は
分岐に関しては、あらかじめ分岐を予測してキャッシュ
・メモリにプリフェッチできないという欠点がある。
【0006】一方、微細加工技術の向上により、従来は
実装できなかった分岐予測回路も、MPUに実装される
ことが一般化してきている。分岐予測回路とは、分岐命
令の実行に先だって、過去の分岐履歴をもとに分岐命令
の番地により分岐先番地を予測する回路である。通常、
分岐命令は、実行ステージで分岐先番地を求め、プログ
ラム・カウンタを更新することによって行われるため、
命令パイプラインの乱れを引き起こす。分岐予測回路を
用いた場合には、実際の分岐先番地を求める前に予想し
た分岐先番地に分岐してしまうため、予測分岐先番地が
当たっていれば、命令パイプラインを乱すことなく実行
を継続することができる。
【0007】しかし、分岐予測回路を用いて命令パイプ
ラインを乱すことなく分岐を完了しても、分岐先番地が
キャッシュ・ミスを起こしてしまった場合には、命令パ
イプラインは停止してしまい、分岐予測回路による効果
が半減してしまう。このため、以前より、命令キャッシ
ュ・メモリに於けるキャッシュ・ミスを少なくするため
に、分岐命令に対してあらかじめ正確な分岐予測を行
い、分岐先の命令をプリフェッチするキャッシュメモリ
制御装置が求められていた。
【0008】
【発明が解決しようとする課題】上述したように、従来
のキャッシュ・メモリに於けるプリフェッチ方法では、
分岐先を正確に予測してプリフェッチすることができな
いため、不必要なプリフェッチを行い易い、不用意に必
要なブロックを追い出してしまう、必要以上に外部バス
を占有してしまう、などの問題点があった。
【0009】本発明は、以上のような従来技術の欠点を
鑑みてなされたものであり、命令キャッシュ・メモリへ
のプリフェッチの際に、分岐予測回路を参照して分岐先
を予測することにより、分岐が生じる場合でも、より正
確にプリフェッチを行い、不必要なプリフェッチを行わ
ないキャッシュメモリ制御装置を提供することを目的と
する。
【0010】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、命令やデータを格納するキャッシュメモ
リと、分岐命令の格納されている番地と過去の分岐履歴
を保持し、分岐命令の格納されている番地によって次の
分岐先番地を予測する分岐予測回路と、次に実行する命
令の番地がキャッシュミスを起こしたことによってリフ
ィール処理を行う際に、リフィール処理と並行して前記
分岐予測回路をキャッシュミスを起こした番地をもとに
参照し、もし前記分岐予測回路にキャッシュミスを起こ
した番地が登録されており、かつこの分岐予測回路によ
って予測された分岐先番地がキャッシュメモリの中に存
在しない場合には、リフィール処理終了後、バスを解放
することなく、直ちにこの分岐予測回路によって予測さ
れた分岐予測番地を含むブロックのプリフェッチを行
い、もし前記分岐予測回路にキャッシュミスを起こした
番地が登録されており、かつ前記分岐予測回路によって
予測された分岐先番地がキャッシュメモリの中に存在す
る場合には、リフィール処理終了後、直ちにバスを解放
し、もし前記分岐予測回路にキャッシュミスを起こした
番地が登録されておらず、かつキャッシュミスを起こし
た番地を含むブロックの次のブロックがキャッシュメモ
リの中に存在しない場合には、リフィール処理終了後、
バスを解放することなく、直ちに次のブロックのプリフ
ェッチを行い、もし前記分岐予測回路にキャッシュミス
を起こした番地が登録されておらず、かつキャッシュミ
スを起こした番地を含むブロックの次のブロックが前記
キャッシュメモリの中に存在する場合には、リフィール
処理終了後、直ちにバスを解放するキャッシュ制御部と
から構成されている。
【0011】
【作用】上記構成により、本発明は、まず、キャッシュ
・メモリがキャッシュ・ミスすると、直ちに主記憶装置
よりリフィールを開始する。このとき同時に命令キュー
にも転送される。リフィールが終了すると命令キューの
内容によって直ちに演算の実行を開始するが、外部バス
の解放はしない。一方、リフィール開始とともに、キャ
ッシュ・ミスした番地は分岐予測回路に送られ、分岐予
測を行う。もし、ヒットしたならば、次も予測された番
地に分岐するものと予測する。
【0012】リフィール処理終了後、すでにキャッシュ
・メモリに予測した番地を含むブロックがフェッチされ
ているか否かをチェックし、まだフェッチされていなけ
れば、外部バスを解放せず、直ちに分岐先番地を含むブ
ロックを主記憶装置からプリフェッチする。プリフェッ
チ中は、命令キューの中の命令が実行されているので、
プリフェッチ中も実行が停止することは少ない。分岐予
測回路に於いて、複数の分岐先番地がヒットする可能性
があるが、この場合は最も小さい番地に格納されている
分岐命令に対応する分岐先番地が選択される。もし、す
でにキャッシュ・メモリの中に予測した分岐先番地を含
むブロックがフェッチされているならば、直ちに外部バ
スを解放し、プリフェッチは行わない。
【0013】分岐予測回路でヒットしなかった場合に
は、現在リフィール中のブロックの中には、分岐命令が
含まれておらず、したがって分岐は起きないものと考え
られる。よって、もしキャッシュ・メモリに現在リフィ
ール中のブロックの次のブロックがフェッチされていな
ければ、外部バスを解放せずに、直ちに次のブロックの
プリフェッチを行う。しかし、すでにキャッシュ・メモ
リに現在リフィール中の次のブロックがフェッチされて
いたならば、直ちに外部バスを解放し、プリフェッチは
行わない。
【0014】
【実施例】以下、本発明の実施例を図面を参照して説明
する。今回の実施例では、本プロセッサが図5で示すよ
うに、(1)命令フェッチ(F),(2)デコード/オ
ペランドフェッチ(D),(3)実行(E),(4)メ
モリ・アクセス(M),(5)レジスタ書き込み
(W),の5段の命令パイプラインで命令の実行を行う
ものとする。また、本プロセッサは、基本的に1ステー
ジを1クロックで実行する。ただし、浮動小数点演算
は、実行ステージに3クロックを要する。さらに、本プ
ロセッサは、命令パイプライン中にオペランドのバイパ
スが用意されており、次の演算で現在演算中の演算結果
をオペランドとして用いる場合には、現在の演算の実行
ステージ終了後、直ちに次の演算の実行を行うことがで
きる。アドレス・バスのビット幅は32bit、命令の
語長は32bit固定である。
【0015】図1は、本発明のキャッシュメモリ制御装
置に係わる一実施例の構成を示すブロック図である。ハ
ーバード・アーキテクチャをとるこのキャッシュメモリ
制御装置は、命令キャッシュ・メモリ2、キャッシュ制
御部6、分岐予測回路3、命令キュー4、主記憶装置1
4、及び外部バス113から構成されている。
【0016】同図に於いて、プログラム・カウンタ1
は、次にフェッチする命令が格納されている主記憶装置
14の番地を示している。
【0017】命令キャッシュ・メモリ2は、直接法で構
成されており、ハーバード・アーキテクチャに基づく命
令キャッシュ・メモリで、エントリ数128、1ブロッ
ク128bit、容量16Kbitである。プログラム
・カウンタ1より与えられた主記憶番地111の下位4
bitはブロック内番地103、上位28bitはブロ
ック番地を表す。また、ブロック番地の下位7bitは
インデクス101、上位21bitはタグ100であ
る。タグ・メモリ7には、21bitのタグが記憶され
ている。
【0018】この命令キャッシュ・メモリ2は、以下の
ように動作する。まず、インデクス101が、タグ・メ
モリ7に与えられ、インデクス101で示された番地の
内容をタグ105として読み出す。これと平行して、主
記憶番地111の下位11bitを番地と用いて、デー
タ・メモリ9がアクセスされる。読み出されたタグ10
5とタグ100は、ヒット/ミス検出器8で比較され
る。
【0019】この比較によってタグ105とタグ100
が一致するならば、主記憶番地111を含むブロック
は、データ・メモリ9の中に存在し、アクセスされたブ
ロックから主記憶番地111の内容のコピーがラッチ1
0に読み出される。逆に、読み出されたタグ105とタ
グ100が不一致ならば、主記憶番地111を含むブロ
ックはデータ・メモリ9の中に存在しないので、主記憶
装置14より主記憶番地111を含むブロックを読み出
し、インデクス101で決まる命令キャッシュ・メモリ
2の中のブロックを読み出されたブロックに置き換え
る。同時にタグ・メモリ7のタグの内容もタグ100に
更新する。
【0020】分岐予測回路3は、完全連想方式による分
岐予測回路であり、分岐命令の番地を記憶するアドレス
・メモリ11と分岐先番地を記憶するターゲット・メモ
リ12より構成される。アドレス・メモリ11のビット
幅は30bit、エントリ数は128である。また、ア
ドレス・メモリ11は4つのバンクに分割されており、
主記憶番地111の下位2bitの値により示された特
定のバンクに分岐命令が格納されている主記憶装置14
の番地が格納される。ただし、格納されるのは、下位2
bitを除いた上位30bitである。ターゲット・メ
モリ12のビット幅32bit、エントリ数は128で
ある。ターゲット・メモリ12は、アドレス・メモリ1
1に1対1対応しており、対応するアドレス・メモリ1
1に記憶された番地の分岐命令が分岐した過去1回の分
岐先番地を記憶している。
【0021】このような分岐予測回路3は通常、以下の
ように動作する。まず、分岐先予測は、次のように行わ
れる。命令フェッチ・ステージで主記憶番地111が分
岐予測回路3に与えられると、下位2bitがデコード
され、アドレス・メモリ11の特定のバンクがアクセス
される。上位30bitはアドレス・メモリ11に与え
られ、もし指定されたバンク内で一致する番地があれ
ば、それと対応するターゲット・メモリ12に格納され
た番地を予測分岐先番地109として出力する。プロセ
ッサは、この番地に分岐すると仮定し、プログラム・カ
ウンタ1の値を予測分岐先番地109に変更する。
【0022】また、履歴の登録は次のように行われる。
分岐命令が実行されると分岐命令の番地の下位2bit
によって示されたアドレス・メモリ11の特定のバンク
に実行された分岐命令の番地の上位30bitが記憶さ
れる。また、ターゲット・メモリ12には、プロセッサ
内部の実行部で算出された分岐先番地を記憶する。命令
キュー4は、現在実行中の命令を含むブロックが格納さ
れており、プログラム・カウンタ1の値により、実行部
に命令を発行する。
【0023】インクリメンタ5は、現在リフィール処理
中のブロックの次のブロックの先頭番地を計算するビッ
ト幅30bitのインクリメンタである。キャッシュ・
ミスを起こした番地mの上位30bitはインクリメン
タに送られ、リフィール処理と並行してインクリメント
され、次のブロックの先頭番地m+4が計算される。番
地m+4は、プリフェッチの先頭番地として、命令キャ
ッシュ・メモリ2に転送される。キャッシュ制御部6
は、命令キャッシュ・メモリ2のリフィール処理、プリ
フェッチ処理などの制御を行う論理回路である。
【0024】次に、本発明の動作説明を行う。本発明
は、命令キャッシュ・メモリ2が、キャッシュ・ミスし
た場合にのみ動作する。図2(a)〜図3(c)は、本
発明のキャッシュメモリ制御装置を適用したプロセッサ
が下記に示す命令シーケンスを実行した場合の動作を示
したタイム・チャートである。図4(a)〜図4(c)
は、本発明を適用していないプロセッサが同様な命令シ
ーケンスを実行した場合の動作を示したタイム・チャー
トである。
【0025】下記の命令で、ADD,SUB,MUL
は、整数の加減算および乗算命令である。JMPCZ
は、条件分岐命令で1つ前の演算の結果が、“0”なら
ば分岐する。JMPCZは、スカッシュ分岐であり、分
岐が生じた場合にはm+4の命令は実行されない。R
0,R1,R2,R3,R4はレジスタを表す。また、
m−1,…,m+4,n,n+1は、主記憶装置14の
番地を表す。m,m+4,nは、ブロックの境界に置か
れている。
【0026】 現在、プロセッサは、逐次的に上記の命令シーケンスを
実行している。プロセッサが、m番地から命令のフェッ
チを行おうとしたところでキャッシュ・ミスを起こした
とする。プロセッサは、直ちに外部バス113を通し
て、命令キャッシュ・メモリ2のリフィールを行う。リ
フィールは、(1)外部バス113のバス権の獲得、
(2)主記憶装置14の連続アクセスによって行われ
る。(1)の処理は、外部バス113の状態によって要
する時間が異なるが、図2〜図4では1クロックを要し
ている。
【0027】外部バス113は、32bitであり、主
記憶装置14から2クロックで32bitのデータを転
送できるとすると、1ブロックの転送に8クロックを要
する。従って、リフィール処理に9クロックを要してい
る。命令キャッシュ・メモリ2は、データ・メモリ8の
中の任意のブロックを無効にし、そのブロックに、m,
m+1,m+2,m+3番地の命令がリフィールされ
る。また、リフィールと同時に命令キュー4にも、m,
m+1,m+2,m+3番地の命令が転送される。リフ
ィールが終了すると、プロセッサは直ちに命令キュー4
の内容によって実行を開始する。しかし、プロセッサ
は、リフィールが終了しても外部バス113を解放しな
い。
【0028】一方、プロセッサは、リフィール処理を開
始するとともに、キャッシュ・ミスを起こした番地mを
分岐予測回路3に送る。分岐予測回路3は、番地mの上
位30bitをもとに分岐予測を行う(BTBアクセ
ス)。アドレス・メモリ11の中に一致する番地がある
と、対応するターゲット・メモリ12より予測分岐先番
地109が出力される。番地mの上位30bitで予測
するため、各バンク毎に1エントリが一致し、最大4つ
のエントリが一致する可能性がある。このように複数個
のエントリが一致を起こした場合には、最も小さいバン
ク番号のターゲット・メモリ12の出力が優先される。
【0029】図2(a)、図2(b)は、アドレス・メ
モリ11の中に一致する番地があった場合の動作を示し
ている。予測分岐番地109は、命令キャッシュ・メモ
リ2に送られ、リフィール終了後、すでに命令キャッシ
ュ・メモリ2の中に転送されているか否かがテストされ
る。
【0030】図2(a)は、予測分岐先番地109がキ
ャッシュ・ミスを生じた場合の動作を示した図である。
命令キャッシュ・メモリ2は、直ちに予測分岐番地10
9を含むブロックのプリフェッチを行う。外部バス11
3のバス権は、獲得したままなので、プリフェッチには
8クロックしか要さない。図4(a)は、本発明を適用
していないプロセッサの場合の動作を示している。図2
(a)および図4(a)より明らかなように、本発明を
適用した場合では、適用しない場合に比較して4クロッ
ク速く動作させることが可能である。実際には、外部バ
ス113を解放してしまうと、再びバス権を獲得するた
めにかなりの時間を要するので、本発明の効果はさらに
大きくなる。
【0031】図2(b)は、予測分岐先番地109が、
命令キャッシュ・メモリ2でヒットした場合である。す
でに命令キャッシュ・メモリ2の中にフェッチされてい
るので、プリフェッチする必要はない。キャッシュ制御
部6は、外部バス113を直ちに解放する。
【0032】図2(c)、図3(a)は、アドレス・メ
モリ11の中に番地mの上位30bitと一致する番地
がなかった場合である。この場合は、現在リフィール中
のブロックの中には分岐命令が存在せず、したがって、
m+3番地の命令の終了後、m+4番地の命令が実行さ
れるものと考えられる。この場合も、プロセッサは、リ
フィール終了後、命令キュー4の内容によって直ちに実
行を開始するが、外部バス113は解放しない。一方、
インクリメンタ5は、リフィール処理に並行してキャッ
シュ・ミス番地mより番地m+4を計算する。番地m+
4は、命令キャッシュ・メモリ2に送られ、すでに命令
キャッシュ・メモリ2の中に転送されているか否かがテ
ストされる。
【0033】図2(c)は、番地m+4が命令キャッシ
ュ・メモリ2でキャッシュ・ミスを起こした場合の動作
を示している。命令キャッシュ・メモリ2は、番地m+
4よりプリフェッチを行う。外部バス113は獲得した
ままなので、プリフェッチには8クロックしか要さな
い。
【0034】図3(a)は、番地m+4が命令キャッシ
ュ・メモリ2でヒットした場合の動作を示している。こ
の場合は、プリフェッチする必要がないので、外部バス
113を直ちに解放する。
【0035】さらに、図3(b)は、図2(a)と同様
な場合であるが、以下のような命令シーケンスが実行さ
れた場合の動作を示している。下記の命令シーケンスに
於いて、FADD,FSUB,FMULは、浮動小数点
数の加減算および乗算命令であり、実行ステージに3ク
ロックを必要とする。下記の命令シーケンスでは、レジ
スタが書き込み→読み込みのコンフリクトを生じてお
り、m+1,m+2,m+3番地の命令は、前の命令の
実行ステージが終了するまで演算を開始することができ
ない。
【0036】 この場合、図3(b)より明らかなように分岐命令が実
行される時刻には、すでに分岐先の命令は、命令キャッ
シュ・メモリ2にフェッチされているので、分岐予測が
間違っていなければ、命令パイプラインを乱すことなく
実行が継続される。
【0037】図4(c)は、本発明を適用していないプ
ロセッサの場合を示している。この場合では、分岐先命
令のフェッチを行うところで再びキャッシュ・ミスが生
じる。図3(b)、図4(c)より明らかなように、本
発明を適用した場合、10クロック速く動作することが
可能である。実際には、外部バス113を解放してしま
うと、再びバス権を獲得するためにかなりの時間を要す
るので、本発明の効果はさらに大きくなる。
【0038】図3(c)は、分岐予測が失敗した場合の
動作を示している。分岐予測の失敗は、実行ステージの
クロックで明らかになる。この場合、キャッシュ制御部
6は、直ちにプリフェッチを中断する。プリフェッチを
行っていた命令キャッシュ・メモリ2のブロックは、無
効フラグをセットすることにより、ブロックの内容が無
効になる。
【0039】本実施例では、簡単のため、命令キャッシ
ュ・メモリ2の構成を直接方式、分岐予測回路3は完全
連想方式であるとした。しかし、命令キャッシュ・メモ
リ2および分岐予測回路3を如何なる方式で構成して
も、本発明の効果には何等影響を与えることはない。ま
た、ハーバード・アーキテクチャに限らず、キャッシュ
・メモリに命令およびデータが混在するようなアーキテ
クチャをとった場合には、命令フェッチの場合に限っ
て、本実施例で示した動作を行えば、まったく同様な効
果が得られるものである。
【0040】
【発明の効果】このように、本発明のキャッシュ・メモ
リ制御装置によれば、分岐予測回路を参照して分岐を予
測するため、分岐が生じる場合でも正確にキャッシュ・
メモリへのプリフェッチを行うことができ、キャッシュ
・メモリのヒット率の向上、命令パイプラインの乱れ削
減、および不必要なリフィールの削減が可能となる。こ
の結果、プロセッサの処理速度を向上させることができ
る。
【図面の簡単な説明】
【図1】本発明のキャッシュメモリ制御装置に係わる一
実施例の構成を示すブロック図である。
【図2】本発明のキャッシュメモリ制御装置の動作を示
すタイム・チャートである。
【図3】本発明のキャッシュメモリ制御装置の動作を示
すタイム・チャートである。
【図4】従来のキャッシュメモリ制御装置の動作を示す
タイム・チャートである。
【図5】本発明のキャッシュメモリ制御装置を用いたプ
ロセッサのパイプライン動作を説明するための動作図で
ある。
【符号の説明】
1 プログラム・カウンタ 2 命令キャッシュ・メモリ 3 分岐予測回路 4 命令キュー 5 インクリメンタ 6 キャッシュ制御部 7 タグ・メモリ 8 ヒット/ミス検出器 9 データ・メモリ 10 ラッチ 11 アドレス・メモリ 12 ターゲット・メモリ 13 デコーダ 14 主記憶装置 100 タグ 101 インデクス 102 ブロック内番地 103 ブロック内番地(下位2bit) 104 主記憶番地(上位30bit) 105 タグ 106 記憶データ 107 フェッチ・データ 108 命令 109 予測分岐番地 110 バンク選択信号 111 主記憶番地 112 次フェッチブロック先頭番地
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成3年10月4日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】図1
【補正方法】変更
【補正内容】
【図1】

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 命令やデータを格納するキャッシュメモ
    リと、 分岐命令の格納されている番地と過去の分岐履歴を保持
    し、分岐命令の格納されている番地によって次の分岐先
    番地を予測する分岐予測回路と、 次に実行する命令の番地がキャッシュミスを起こしたこ
    とによってリフィール処理を行う際に、リフィール処理
    と並行して前記分岐予測回路をキャッシュミスを起こし
    た番地をもとに参照し、 前記分岐予測回路にキャッシュミスを起こした番地が登
    録されており、かつこの分岐予測回路によって予測され
    た分岐先番地がキャッシュメモリの中に存在しない場合
    には、リフィール処理終了後、バスを解放することな
    く、直ちにこの分岐予測回路によって予測された分岐予
    測番地を含むブロックのプリフェッチを行うキャッシュ
    制御部とからなることを特徴とするキャッシュメモリ制
    御装置。
JP3252310A 1991-09-30 1991-09-30 キヤツシユメモリ制御装置 Pending JPH0588891A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3252310A JPH0588891A (ja) 1991-09-30 1991-09-30 キヤツシユメモリ制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3252310A JPH0588891A (ja) 1991-09-30 1991-09-30 キヤツシユメモリ制御装置

Publications (1)

Publication Number Publication Date
JPH0588891A true JPH0588891A (ja) 1993-04-09

Family

ID=17235476

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3252310A Pending JPH0588891A (ja) 1991-09-30 1991-09-30 キヤツシユメモリ制御装置

Country Status (1)

Country Link
JP (1) JPH0588891A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5729707A (en) * 1994-10-06 1998-03-17 Oki Electric Industry Co., Ltd. Instruction prefetch circuit and cache device with branch detection
US6128684A (en) * 1997-06-30 2000-10-03 Nec Corporation Bus bridge
JP2007207246A (ja) * 2006-02-03 2007-08-16 Internatl Business Mach Corp <Ibm> 命令ラインのための自己プリフェッチl2キャッシュ機構
JP2015122094A (ja) * 2006-12-08 2015-07-02 クゥアルコム・インコーポレイテッドQualcomm Incorporated 低複雑性命令プリフェッチシステム
US9575761B2 (en) 2013-03-28 2017-02-21 Renesas Electronics Corporation System and method for updating an instruction cache following a branch instruction in a semiconductor device

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5729707A (en) * 1994-10-06 1998-03-17 Oki Electric Industry Co., Ltd. Instruction prefetch circuit and cache device with branch detection
US6128684A (en) * 1997-06-30 2000-10-03 Nec Corporation Bus bridge
JP2007207246A (ja) * 2006-02-03 2007-08-16 Internatl Business Mach Corp <Ibm> 命令ラインのための自己プリフェッチl2キャッシュ機構
JP2015122094A (ja) * 2006-12-08 2015-07-02 クゥアルコム・インコーポレイテッドQualcomm Incorporated 低複雑性命令プリフェッチシステム
US9575761B2 (en) 2013-03-28 2017-02-21 Renesas Electronics Corporation System and method for updating an instruction cache following a branch instruction in a semiconductor device

Similar Documents

Publication Publication Date Title
US6907520B2 (en) Threshold-based load address prediction and new thread identification in a multithreaded microprocessor
US5943687A (en) Penalty-based cache storage and replacement techniques
US7213126B1 (en) Method and processor including logic for storing traces within a trace cache
EP2035920B1 (en) Local and global branch prediction information storage
JP5357017B2 (ja) 高速で安価なストア−ロード競合スケジューリング及び転送機構
US6339822B1 (en) Using padded instructions in a block-oriented cache
US6418525B1 (en) Method and apparatus for reducing latency in set-associative caches using set prediction
US6560693B1 (en) Branch history guided instruction/data prefetching
US6665776B2 (en) Apparatus and method for speculative prefetching after data cache misses
US7958317B2 (en) Cache directed sequential prefetch
US5870599A (en) Computer system employing streaming buffer for instruction preetching
US6055621A (en) Touch history table
KR100993018B1 (ko) 트레이스 캐시 기반 프로세서에서 예외 명령어들을 처리하는 시스템 및 방법
JP2007207240A (ja) データ・ラインのための自己プリフェッチl2キャッシュ機構
US7743238B2 (en) Accessing items of architectural state from a register cache in a data processing apparatus when performing branch prediction operations for an indirect branch instruction
JP2007207246A (ja) 命令ラインのための自己プリフェッチl2キャッシュ機構
US20120210107A1 (en) Predicated issue for conditional branch instructions
US10067875B2 (en) Processor with instruction cache that performs zero clock retires
US20070288733A1 (en) Early Conditional Branch Resolution
JPH06242951A (ja) キャッシュメモリシステム
JP2596712B2 (ja) 近接した分岐命令を含む命令の実行を管理するシステム及び方法
US20070288732A1 (en) Hybrid Branch Prediction Scheme
JPH0588891A (ja) キヤツシユメモリ制御装置
US20070288731A1 (en) Dual Path Issue for Conditional Branch Instructions
US20070288734A1 (en) Double-Width Instruction Queue for Instruction Execution