JP2001166934A - 命令フェッチ制御装置 - Google Patents
命令フェッチ制御装置Info
- Publication number
- JP2001166934A JP2001166934A JP2000298837A JP2000298837A JP2001166934A JP 2001166934 A JP2001166934 A JP 2001166934A JP 2000298837 A JP2000298837 A JP 2000298837A JP 2000298837 A JP2000298837 A JP 2000298837A JP 2001166934 A JP2001166934 A JP 2001166934A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch
- prefetch
- fetch
- address
- 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
Landscapes
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
置を提供する。 【解決手段】命令キャッシュ2に命令フェッチ指示を出
す命令フェッチ制御部9において、命令のプリフェッチ
を行うようにする。命令フェッチ制御部9は、フェッチ
アドレス生成部9−1、ブランチヒストリ9−2、及び
優先順位決定回路9−3を備え、優先順位決定回路9−
3が、命令フェッチ要求を出すか、命令のプリフェッチ
要求を出すかを決定する。命令プリフェッチにおいて
も、プリフェッチアドレスの計算は、フェッチアドレス
生成部9−1が行う。優先順位決定回路9−3は、命令
フェッチや命令プリフェッチ、再命令フェッチなどの命
令の優先順位を決定し、その要求を命令キャッシュ2に
送る。また、アドレスは、優先順位決定回路9−3によ
って制御されるセレクタ9−4によって、複数入力され
るアドレスの内適当なものが選択されて出力される。
Description
方式(スーパースカラ処理方式、あるいは、アウトオブ
オーダ処理方式を含む)を採用した情報処理装置に係
り、特に、見かけ上のフェッチ時間を減少させ命令処理
を高速化させるためのプリフェッチ処理に関する。
報処理装置においては、一つの命令の実行の終了を待た
ずに、次々と後続命令列をフェッチして命令パイプライ
ンに投入している。また、主記憶装置の動作が遅いた
め、キャッシュ機構を採用して後続命令列のフェッチを
高速化している。
を示す図である。同図において、(a)の行のDRは除
算命令であり、(b)の行のBCRは条件分岐命令、
(c)の行のBCRは無条件分岐命令であり、(d)の
行が分岐先命令である。
ンサイクルの遅延を説明する図である。まず、(a)の
行の命令が実行される。(a)の行の命令実行がAステ
ージであるとき、次の命令である(b)の行が実行され
る。このように、パイプライン方式をはじめとする投機
実行方式では、前の命令の実行完了を待つことなく次の
命令をフェッチし、実行する。しかし、(b)の行の命
令は条件分岐命令であるので、Aステージの後、Uステ
ージまでの間、条件確定待ちしている。そして、その間
に(c)の行の命令が実行される。これも分岐命令(無
条件分岐命令)であり、(b)の行の分岐結果に影響を
受けるので、Uステージの実行は、(b)の行の命令の
非分岐が確定するまで待ちの状態にある。(b)の行の
条件分岐命令の非分岐が決定すると、(c)の行の無条
件分岐命令が実行されることが確定するので、(c)の
行の無条件分岐命令のUステージの実行が行われる。こ
れを受けて、(d)の行の分岐先命令(NOP)のフェ
ッチ指令が出され、該分岐先命令のフェッチ及び実行が
行われる。
先命令のフェッチが遅れているため、(a)行から
(c)行までの命令は、順調にパイプライン処理が行わ
れているが、(d)行の命令になって処理の待ち状態が
生じ、パイプライン処理が遅延を生じている。
合、第1の問題点として、キャッシュ機構の欠点、すな
わちフェッチ要求を出した命令列がキャッシュにヒット
しなかった場合に、そのペナルティ(遅延時間)が大き
いということがある。この場合、命令フェッチ要求が真
に必要なことが確定してから該命令フェッチ要求を出す
と、キャッシュミスヒットの場合には、このペナルティ
がそのまま性能差に跳ね返ることになる。
する命令の実行結果が後続の命令の実行に影響を与える
場合は、先行する命令の実行結果が後続命令の実行に影
響しないことが判断できるまで、正しい後続の命令フェ
ッチ要求を出して実行することができない。
スが計算されていても、該分岐命令よりも前に実行され
る分岐命令の処理が確定し、該分岐命令が実行されるこ
とが決定されるまで、該分岐命令の分岐先命令フェッチ
を行っていなかった。すなわち、該分岐命令の直前に存
在する分岐命令の分岐条件が確定して(分岐予測の成功
が判明して)から、該分岐命令が分岐予測失敗した場合
に実行される命令列をフェッチするため、この命令フェ
ッチ開始が待たされる分、命令実行にロスが生じてい
た。
を採用した情報処理装置において、命令処理の遅延時間
を削減することのできる装置を提供することである。
ける装置は、キャッシュメモリ手段と、それよりも下位
のメモリ手段と、該キャッシュメモリ手段に格納された
命令列を投機的に実行する手段を備えた命令制御装置に
おける命令のフェッチを制御する命令フェッチ制御装置
であって、該キャッシュメモリ手段に命令フェッチ要求
を出す命令フェッチ手段と、続いてフェッチ要求を予定
している命令列が、該キャッシュメモリ手段に存在しな
い場合には、該キャッシュメモリ手段に、該下位メモリ
手段から該予定命令列を事前に転送しておく命令プリフ
ェッチを行う命令プリフェッチ手段とを備えることを特
徴とする。
ッシュメモリ手段と、それよりも下位のメモリ手段と、
該キャッシュメモリ手段に格納された命令列を投機的に
実行する手段を備えた命令制御装置における命令のフェ
ッチを制御する命令フェッチ制御装置であって、該キャ
ッシュメモリ手段に命令フェッチ要求を出す命令フェッ
チ手段と、条件分岐命令もしくは無条件分岐命令を実行
する際に、分岐成立する場合の分岐先命令アドレスを求
めるアドレス生成手段と、該分岐命令の分岐する場合の
分岐先命令アドレスが求められた時点で、前記キャッシ
ュメモリ手段に該分岐先命令の命令フェッチを要求する
分岐先命令プリフェッチを行う分岐先命令プリフェッチ
手段とを備えることを特徴とする。
位メモリと、該キャッシュメモリに命令フェッチ要求を
出す命令フェッチ装置と、該キャッシュメモリに格納さ
れた命令列を処理する命令制御装置とを備える装置にお
ける命令制御方法であって、(a)続いてフェッチ要求
を予定している命令列が、該キャッシュメモリに存在し
ない場合には、該キャッシュメモリに、該下位メモリか
ら該予定命令列を事前に転送しておく命令プリフェッチ
を行うステップを備えることを特徴とする。
をプリフェッチするようにしたことにより、例えば、キ
ャッシュミスヒットした場合、新たに、フェッチするた
めに必要な命令列を下位メモリから転送しなくても良く
なり、命令実行の遅延時間を抑制することが出来る。
て、予測された分岐先命令をフェッチしておくが、従来
では、分岐予測がはずれると、分岐予測がはずれたこと
が判明した時点で命令列をフェッチし直さなくてはなら
なかったので、処理遅延が生じていた。しかし、本発明
によれば、分岐予測されなかった方の分岐先の命令列を
分岐命令プリフェッチすることにより、あらかじめ命令
一時バッファに格納するようにする。従って、分岐予測
がはずれたとしても、すぐにキャッシュメモリから必要
な命令列をフェッチして実行することができるので、処
理遅延をより抑制することが出来る。
いる命令が命令プリフェッチしようとしているアドレス
の内容を書き換える可能性がある場合には、命令プリフ
ェッチを取り下げるようにする。従って、ストア命令の
ような命令によって、アドレスの内容が書き換えられる
場合にも、整合性のある命令プリフェッチを行うことが
出来る。
述べる。第1の問題を解決するための方法としては、事
前に、命令実行される可能性の高いアドレス域をキャッ
シュ機構に伝達し、キャッシュ機構に該アドレスの命令
列が登録されていなければ、実命令フェッチが行われる
よりも前に、主記憶装置あるいは下位のキャッシュメモ
リ(キャッシュメモリが多段からなる場合)から出来る
限り事前に命令列を登録し始めることを特徴とした命令
プリフェッチ機構を用いる。
ット率を低下させることができ、性能向上に貢献するこ
とが可能となる。仮に実命令フェッチまでにキャッシュ
の登録作業が間に合わなかったとしても、実命令フェッ
チと、本発明の実施形態によるプリフェッチ要求との時
間差だけ、従来技術よりも遅延時間(ミスヒットペナル
ティ)を減らすことが出来る。
命令プリフェッチ要求を出すことが出来ないような装置
においては、命令プリフェッチの優先順位を設定し、そ
れに従って要求を出すようにする。
スで複数回のプリフェッチ要求を出すのは無駄であるか
ら、フラグを準備して、同じアドレスで複数回のプリフ
ェッチ要求を出さないように抑制する。また、キャッシ
ュ機構の形式によっては、フェッチするバイト長よりも
大きなデータ単位を一つのまとまり(キャッシュブロッ
ク)として管理する形式のものもある。このときは、同
一キャッシュブロックへの命令プリフェッチ要求を抑制
する。すなわち、プリフェッチするアドレスが異なって
いても、前回のプリフェッチでキャッシュメモリに格納
されたキャッシュブロックの中に既に、そのアドレスの
命令が含まれている場合には、再び命令プリフェッチを
行って、主記憶からキャッシュメモリに命令を読み込む
ことは無駄となる。従って、このような場合には、プリ
フェッチ要求を出力しないようにする。
は、特に、命令フェッチ制御部に命令フェッチの要求を
するが、命令フェッチ結果を命令デコード部に受け渡す
か否かを保留することを可能とする、あるいは、命令フ
ェッチ動作の途中で一時中断することを可能とすること
を特徴とした、分岐命令プリフェッチ機構を用いる。
アドレスは、条件コードの確定、すなわち、分岐するか
否かが確定するよりも前に求めることが可能である。例
えば、演算命令と直後の条件分岐命令がパイプライン処
理方式によって流れる場合、演算命令の実行(Xステー
ジ)の結果、条件コードが決定し分岐するか否かが確定
するタイミング(演算命令のUステージ)よりも前に、
後続の分岐命令の分岐先命令アドレスをAステージで求
めている。
算命令、(b)条件分岐命令、(c)無条件分岐命令と
続く命令列の場合、従来技術では図41のように(c)
無条件分岐命令が実行されることが確定されるまで、す
なわち、(b)条件分岐命令の非分岐が確定するまで、
(c)無条件分岐命令の分岐先命令を、命令フェッチす
ることが出来なかった。
施形態を適用することにより、(c)行の無条件分岐命
令の分岐先アドレスが確定した時点で、このアドレスで
命令プリフェッチ(分岐命令プリフェッチ)を行うこと
ができる。この後、(a)行の演算命令の実行により条
件コードが確定し、(b)行の条件分岐命令が非分岐で
あれば、(c)行の無条件分岐命令は実行されるのだか
ら、無条件分岐命令の後続でデコード、実行、あるい
は、フェッチされている命令列はすべて棄却し、すでに
始まっている分岐命令プリフェッチを実命令フェッチと
して継続実行すれば良い。図1のケースでは、従来技術
よりも3クロックの性能向上が達成できる。この際、も
し他の分岐命令プリフェッチが行われていれば、これも
不要であるから、棄却すればよい。逆に(b)行の条件
分岐命令の分岐が確定し、(c)行の無条件分岐命令が
実行されないことが分かったならば、この時点で、すで
に始まっている分岐命令プリフェッチを中止、棄却すれ
ば良い。
岐命令であっても本発明の実施形態を適用可能であり、
もちろん、上記命令列の(b)行の条件分岐命令に対し
ても本発明の実施形態を適用可能である。また、二つの
分岐命令の間に何らかの命令列が存在しても本発明の実
施形態を適用可能であることは、当業者には容易に理解
されよう。更に、ブランチヒストリに代表される分岐予
測機構を併用した場合でも、条件分岐命令が分岐予測さ
れた場合には、後続命令(非分岐である場合の命令列)
を分岐命令プリフェッチするようにすることで、同様の
手法を適用可能である。すなわち、分岐予測された結
果、分岐先と予測されたアドレスとは逆に、分岐しなか
った場合の次の命令のアドレスを分岐命令プリフェッチ
によってプリフェッチするようにしておくことも可能で
ある。
令の代用として用いられるような、必ず非分岐となる分
岐命令においては、分岐先アドレスと称するアドレスへ
は分岐しないのだから、これを分岐命令プリフェッチす
るのは不利である。従って、このプリフェッチを抑止す
れば、無駄な動作が抑止され、性能劣化しないことにな
る。同様に無条件分岐命令のように、絶対に分岐命令の
後続命令が実行されない分岐命令においては、後続命令
を分岐命令プリフェッチするのは不利である。従って、
このプリフェッチを抑止することで、無駄な動作を抑止
し、性能劣化を防ぐことができる。
じタイミングで複数のフェッチ・分岐命令プリフェッチ
要求を出すことが出来ないような装置においては、プリ
フェッチする命令間に優先順位を設定し、それに従って
要求を出すことも可能である。
ッチは、必ずしも実行されるわけではないので、実行さ
れることが分かっていなければならない。ここで、デコ
ードされるより手前のステージで分岐命令プリフェッチ
された命令列を一時保存しておく一時命令バッファを設
ける。また、一時命令バッファを設ける代わりに、命令
プリフェッチ動作の途中でインタロックをかけることも
出来る。いずれの場合にも、所定の条件でインタロック
を解除し、フェッチの続きあるいはデコード以降の処理
を行えば良い。
した場合には、複数の分岐命令が時間的に近接して処理
されることになるので、本発明の実施形態の手法を用い
れば、連続あるいは、同時に複数の分岐命令プリフェッ
チを行う場合も考えられる。更に、これら複数の分岐命
令プリフェッチに対応した一時命令バッファを設けるこ
とで、複数の分岐命令プリフェッチ要求に対応すること
も可能である。
プリフェッチを区別する方法を用いることができる。主
記憶にキャッシュメモリ機構がある場合、そのキャッシ
ュメモリ機構の特性に応じて分岐命令プリフェッチ要求
に工夫を加えると、更に性能向上する可能性がある。
場合、この分岐命令プリフェッチによって本来使われる
頻度が高いはずの命令列がキャッシュメモリから消去さ
れる危険性が高くなる。特に、分岐性能が高くないの
で、この危険性は特に高くなる。このような危険性を回
避するために、分岐命令プリフェッチの場合には、その
プリフェッチ命令がキャッシュに存在しない場合、主記
憶から命令列を取り出してキャッシュメモリを更新する
ことを抑制し、性能劣化を防ぐことができる。
も、制御回路を設置しづらい場合もあり得る。このよう
な場合には、キャッシュ機能の性能の良さを利用し、キ
ャッシュにヒットしなかった場合にあらかじめ主記憶か
ら命令列を読み込むようにして、実際に、これらの命令
列が必要になった場合に、キャッシュミスヒットによる
ペナルティを最小限に抑えることが可能となる。すなわ
ち、前述の第1の問題点の解決法を利用することができ
る。
データを書き込む動作を含む命令(以下、ストア命令と
呼ぶ)が存在する。ストア命令が、このような分岐命令
プリフェッチデータ列を書き換える可能性が常に存在す
る。従って、分岐命令プリフェッチの場合でも、この可
能性を検出する手段、及び、実際に該ストア命令が分岐
命令プリフェッチデータ列を書き換えた場合には、その
結果をこれらの命令列に反映するなどの対応をとる必要
がある。
書き換える手法の他に、該ストア命令によって実際に書
き換えられる、あるいは書き換えられる可能性がある場
合には、分岐命令プリフェッチを取りやめることもでき
る。分岐命令プリフェッチ要求によって得られる命令列
は常に命令実行されるわけではない。従って、このよう
な方法をとれば、回路構成が簡便になるメリットの方が
大きくなる。
て詳細に説明する。ここで、図面に示された<、及び、
>でくくられた数字は、ビット番号を示し、小さい番号
のビットが上位ビットであり、大きい番号のビットが下
位ビットである。従って、<1>がMSBであり、<3
1>がLSBである。
成(要部)を示す図である。本実施形態においては、命
令フェッチポートをA、Bの二つ持っており、いずれか
一方が現在命令実行処理中のポートになり、もう一方が
分岐予測機構(ブランチヒストリ)によって分岐予測さ
れた分岐先命令列を保持するようになっている。これら
のポートの役割は動的に変更される。
対応を示す表である。 (1)命令フェッチ要求(+IFCH REQUEST
VALID) (2)命令プリフェッチ要求(+IF PREFCH
REQUEST VALID) (3)データ (4)フェッチ命令列 (5)デコードする命令列 (6)命令デコードした情報 (7)ストアデータ (8)オペランドデータ (9)再命令フェッチ要求(+RE IFETCH R
EQUEST) (10)分岐命令プリフェッチ要求(+BR PREF
CH REQ VALID) (11)分岐履歴情報 (12)分岐予測情報 (13)ストア命令によるフェッチ命令列の上書き可能
性検出信号 (14)ムーブイン(主記憶装置からキャッシュへのデ
ータ複写)要求(+MOVE IN REQUEST) (15)命令フェッチアドレス (16)フェッチ出来ない状態であることを示す信号
(+SU BUSY) (17)命令プリフェッチ出来ない状態であることを示
す信号(+SU PREFCH BUSY) (18)再命令フェッチアドレス (19)分岐予測先アドレス (20)分岐予測信号(+BRHIS HIT) (21)分岐命令プリフェッチアドレス (22)分岐予測失敗信号(CANCEL ALL P
ORT) 図2においては、主記憶装置1から命令データ(3)が
命令キャッシュ2にフェッチされて送られ、次に、フェ
ッチ命令列(4)が命令一時バッファ3に格納される。
それから、デコードすべき命令列(5)が命令デコード
部4に入力される。そして、命令デコード部4における
デコードの結果に基づいて、各制御部(分岐命令制御部
5、ストア命令制御部6、その他の命令の制御部7)に
当該デコード情報が入力される。このとき、命令データ
と一緒にオペランドのデータがデータキャッシュ8に入
力され、各制御部における処理に使用するために、デコ
ードされた命令とともに、ストア命令制御部6やその他
の命令の制御部7に入力される(8)。また、ストア命
令制御部6は、処理の結果データをストアする場合に
は、ストアデータ(7)をデータキャッシュ8に書き込
むとともに、データキャッシュ8から命令キャッシュ2
には、命令列の書き換えデータが送られる。命令列が命
令一時バッファ3に格納されている場合には、命令一時
バッファ3にストアデータ(7)が送られる。また、書
き換えられるべき命令列やオペランドが主記憶装置1に
記憶されている場合には、ストアデータ(3)を主記憶
装置1に送る。
ッシュ2に命令フェッチ要求(1)を出力して、命令列
を命令一時バッファ3へフェッチさせるとともに、命令
プリフェッチ要求(2)を出して、命令列を主記憶装置
1から命令キャッシュ2にプリフェッチさせる。
結果、新しく命令のフェッチが必要になった場合には、
再命令フェッチ要求(9)を命令フェッチ制御部9に出
すとともに、分岐予測されなかった方の分岐のアドレス
の命令をプリフェッチさせるために分岐命令プリフェッ
チ要求(10)を命令フェッチ制御部9に出力する。ま
た、分岐命令制御部5の分岐命令処理結果は、分岐履歴
情報(11)として、ブランチヒストリ9’に送られ、
ブランチヒストリ9’において分岐予測情報(12)を
生成するために使用される。分岐予測情報(12)は、
命令フェッチ制御部9に送られ、分岐命令の分岐先アド
レスの命令のフェッチに使用される。更に、分岐命令制
御部5は、分岐予測に失敗したと判断した場合には、分
岐予測失敗信号(22)を命令キャッシュ2に送り、命
令キャッシュ2にフェッチされた分岐先命令が格納され
ているポートをキャンセルさせる。
示す図である。本実施形態においては、1クロックで1
つの命令フェッチ要求を行うことができる。命令フェッ
チ要求には、シーケンシャルフェッチ(後続命令のフェ
ッチ)、分岐ターゲットフェッチ(分岐予測先の命令の
フェッチ)、再命令フェッチ(分岐予測失敗や割り込み
発生などのフェッチ)、及び本実施形態による分岐ター
ゲットの並びにシーケンシャルの命令プリフェッチの5
つがある。
ェッチ、分岐ターゲットフェッチ、分岐ターゲットの命
令プリフェッチ、シーケンシャルフェッチ、シーケンシ
ャルの命令プリフェッチの順であるとすれば、優先順位
決定回路9−3は、この優先順位で命令キャッシュ2に
要求を出すようにする。
ッチすべき命令のアドレスを生成し、セレクタ9−4に
入力する。の信号は、フェッチ要求を出したが、割り
込みなどの要因で受け入れられなかった場合に、同じア
ドレスを出力するために設けられている。の信号は、
16バイトの加算器から演算されて出力される、シーケ
ンシャルフェッチに使用されるアドレスである。また、
の信号は、再命令フェッチ要求(9)に対応して入力
される再命令フェッチアドレス(18)を示す信号であ
る。更に、の信号は、前に出力されたフェッチアドレ
スからブランチヒストリ9−2が処理した結果得られた
分岐予測先アドレス(19)である。優先順位決定回路
9−3は、ブランチヒストリ9−2から分岐予測信号2
0を受け取ると、命令フェッチや命令プリフェッチの優
先順位を勘案して、適切な場合に、フェッチアドレス選
択信号aを出力して、分岐予測先アドレス(19)をセ
レクタ9−4に選択させて、命令フェッチアドレス(1
5)として命令キャッシュ2に入力させる。このとき、
優先順位決定回路9−3は、命令フェッチアドレス(1
5)のアドレスの命令をフェッチさせたい場合には、命
令フェッチ要求(1)を命令キャッシュに入力し、命令
プリフェッチをさせたい場合には、命令プリフェッチ要
求(2)を命令キャッシュ2に入力する。
求(1)が受け入れられると、命令キャッシュ2から命
令(4)が命令一時バッファ3に送られる。このとき、
命令フェッチする命令が命令キャッシュ2に存在しない
場合には、主記憶装置1から命令データ(3)が呼び込
まれ、続いて命令一時バッファ3に命令(4)がフェッ
チされる。
チ要求(2)が受け入れられると、命令キャッシュは、
ムーブイン要求(14)を主記憶装置1に入力し、主記
憶装置1の信号(15)で入力されるアドレスから命令
キャッシュへ命令をプリフェッチする。
場合には、信号(16)を、命令プリフェッチ出来ない
場合には、信号(17)を優先順位決定回路9−3に入
力し、命令フェッチ制御部9に命令フェッチ、命令プリ
フェッチの再試行などを行わせる。
を示す図である。すなわち、本実施形態においては、再
命令フェッチ許可信号(+IF REQ REIFCH
GO)は、再命令フェッチ要求(+RE IFETCH
REQUEST)が入力されたら、そのまま、再命令
フェッチとして出力されるので、最優先で行われる。再
命令フェッチ要求がない場合は、分岐ターゲットフェッ
チ信号(+IF REQ BRHIS GO)は、分岐
成立予測がされていて、(+BRHIT HITが
“H”)かつ、ターゲットフェッチ格納先となるフェッ
チポートが空いている(−FCH PORT ALL
BUSYが“H”)場合にのみ行われる。すなわち、再
命令フェッチ要求(+RE IFETCH REQUE
ST)の論理をインバータ10で反転した信号と、命令
キャッシュ2からの信号である、フェッチポートがすべ
て埋まっていることを示す信号の論理が反転した信号
(−FCH PORT ALL BUSY)及び、分岐
予測信号(+BRHIS HIT)がAND回路14に
入力され、これらの信号のAND結果が、AND回路1
4から分岐ターゲットフェッチ許可信号(+IF RE
Q BRHIS GO)となる構成となっている。
チ信号(+IF REQ SEQUENTIAL G
O)(シーケンシャルフェッチ)が従来行われていたと
ころを、それより優先順位が高いところに、分岐ターゲ
ットの命令プリフェッチ許可信号(+IF REQ P
REFCH BRHIS GO)の優先順位を設定して
いる。もちろん、再命令フェッチが行われておらず、か
つ、分岐予測が成立していなければ分岐ターゲットの命
令プリフェッチは、行われないので、+RE IFET
CH REQUESTの論理反転信号と、+BRHIS
HIT信号と、分岐ターゲットの命令プリフェッチが
まだ行われていないことを示す信号(−BRHIS T
GT PREFECH DONE)の論理積をAND回
路15でとって+IF REQ PREFCH BRH
IS GO信号を生成している。
EQ BRHIS GOと+IF REQ PREFCH
BRHIS GOが出てしまうが、アドレス選択の際
には同じアドレスが用いられること、及び、キャッシュ
機構への要求信号は、後述する図8の回路に示される通
り実フェッチが優先されるので、これで問題は生じな
い。
F REQ SEQUENTIAL GO)は、+RE
IFETCH REQUEST信号のインバータ10に
よる論理反転信号と、+BRHIS HIT信号の論理
をインバータ11によって反転したものと、−BRHI
S TGT PREFCH DONE信号の論理をイン
バータ12で反転したものと−I BUFF FULL
信号の論理積をAND回路16でとったものとなってい
る。これは、再命令フェッチ要求がなく、分岐予測信号
が出力されておらず、分岐ターゲットの命令プリフェッ
チが行われており、命令キャッシュの命令バッファが一
杯でない(−I BUFF FULL信号が“H”)時
に、シーケンシャルフェッチの要求が命令キャッシュ2
に出力されることを意味する。
ッチ許可信号(+IF REQ PREFECH SE
Q GO)は、シーケンシャルフェッチの条件の内、再
命令フェッチ、分岐予測信号、及び分岐ターゲットの命
令プリフェッチについては、同じであり、更に、命令キ
ャッシュの命令バッファが一杯である場合であって、次
のシーケンシャル命令の命令プリフェッチが行われてい
ない(−NEXT SEQ PREFCH DONE信
号が“H”)場合に、AND回路17から出力される。
(後続)の命令プリフェッチ(+IF REQ PREF
CH SEQ GO)を設定している。もちろん、一般
的にはこれ以外の優先順位の設定も考えられる。それぞ
れのGO信号(図4の右へ出ていく信号)は、図3にお
けるフェッチアドレス選択信号aとして用いられる。
ッシュ上の同じページへの要求を連続して出すことは無
意味であるから、これを抑えてやることによって無駄な
プリフェッチ要求が減り、従って、更に下位キャッシュ
あるいは主記憶装置1へフェッチ要求が出せるようにな
る。
ッチ要求を連続して出さないようにするためのフラグ生
成回路(シーケンシャルプリフェッチの場合)の構成例
を示す図である。
ポート)毎に設けられ、フラグのON、OFFはそれぞ
れ独立して行われる。優先順位決定回路9−3から出力
されるシーケンシャル命令の命令プリフェッチ許可信号
(+IF REQ PREFCH SEQ GO)、命
令プリフェッチ要求(+IF PREFCH REQU
EST VALID)、及び、フェッチポート選択信号
(+PORT x SEL;ここで、xは、ポートの識
別子あるいは番号であって、同図の回路が担当するフェ
ッチポートの選択信号が入力された場合に、フラグを立
てるために用いられる)がAND回路18に入力され、
すべてが“H”の場合、SR−FF(フリップフロッ
プ)19のSET端子に論理“H”の信号が入力され
る。また、FF19のRESET端子には、命令キャッ
シュ2の命令バッファが一杯であることを示す信号(+
I BUFF FULL)が入力される。SET端子に
論理“H”の信号が入力されると、次のシーケンシャル
命令のプリフェッチが行われたので、出力端子Qから
は、同一アドレスにはプリフェッチ要求を出さないよう
に指示する信号(フラグ;+NEXT SEQ PRE
FCH DONE)が“H”となって(ONとなって)
出力される。一方、+I BUFF FULL信号が論
理“H”でRESET端子に入力されると、命令キャッ
シュ2のバッファが一杯になっていることを示すので、
同一のアドレスの命令は既にフェッチされたことを意味
し、従って、次の命令プリフェッチ要求は同じアドレス
に対しては行われないはずであることになる。従って、
+NEXT SEQ PREFCH DONE信号の出
力フラグは“L”(OFF)となる。このような仕組み
により、命令キャッシュ2の同じアドレスに連続して要
求を出さないようにすることが出来る。
ている命令を繰り返してプリフェッチ要求を行わせない
ようにするためのフラグを生成する回路例である。同図
の回路も図5と同様に、フェッチポート毎に設けられ
る。
Q PREFCH SEQ GO信号が入力されると、
命令プリフェッチ要求信号(+IF PREFCH R
EQUEST VALID)とフェッチポート選択信号
(+PORT x SEL)とのANDを取り、フリッ
プフロップのSET端子に入力され、プリフェッチ抑制
信号(+NEXT SEQ PREFCH DONE)
が出力される。また、命令フェッチ要求(+IFCH
REQUEST VALID)信号が入力されると、キ
ャッシュブロックの最終ビット信号(+IF EAG<
26>と+IF EAG<27>)が“11”となってい
るか否か(ここでは、64バイトのキャッシュブロック
を想定しており、最終の2ビットは“11”が設定され
ている)がAND回路21によって判断され、その結果
が命令フェッチ要求とともにAND回路22に入力され
る。更に、ポート選択信号(+PORT x SEL)
が入力され、AND回路22でANDがとられて、OR
回路に入力される。OR回路には、ポートを強制的にク
リアする信号(+CLEAR IF PORT x)も入
力され、命令フェッチ要求がキャッシュブロックの最終
アドレスに来た場合か、ポートを強制的にクリアする場
合に、フリップフロップをRESETして、フラグの出
力を“L”(OFF)に設定する。
(分岐予測先プリフェッチの場合)の回路構成例を示す
図である。優先順位決定回路9−3から+IF REQ
PREFCH BRHIS GO信号が入力される
と、命令プリフェッチ要求信号(+IF PREFCH
REQUEST VALID)との論理積をAND回
路25で取り、フリップフロップのSET端子に入力す
る。これにより、該論理積が“H”のとき、同じアドレ
スへの分岐予測先プリフェッチ要求を抑制するフラグ
(+BRHIS TGT PREFCH DONE)がO
Nとなって出力される。そして、強制的なポートクリア
信号(+CLEAR IF PORT)がRESET端
子に入力されると、+BRHIS TGT PREFC
H DONE信号の出力が抑制される。
命令プリフェッチ要求を出すことになった場合には、命
令プリフェッチ要求は、他のフェッチ要求とは指令内容
が異なるので、その区別をする必要がある。
の構成例を示す図である。優先順位決定回路から出力さ
れる命令フェッチ要求は、+IF REQ REIFC
H GO、+IF REQ BRHIS GO、及び、
+IF REQ SEQUENTIAL GOの3つの信
号であるので、これらのORを取り、フェッチ出来る状
態であることを示す信号(−SU BUSY)とのAN
Dをとって、現在、命令フェッチ要求(+IFCH R
EQUEST VALID)を生成する。
れる命令プリフェッチ要求は、+IF REQ PRE
FCH BRHIS GOと+IF REQ PREF
CH SEQ GOの2つの信号であるので、これらのO
Rを取り、命令フェッチ要求が行われていないことを示
す信号(−IFCH REQUEST VALID)
と、命令プリフェッチが出来る状態であることを示す信
号(−SU PREFCH BUSY)とのANDを取
って、命令プリフェッチ要求(+IF PREFCH
REQUEST VALID)を出力する。
スヒットしたときは通常、下位のキャッシュ機構もしく
は主記憶装置からデータ転送を行う。従って、命令プリ
フェッチ要求を識別する信号(前述)に応じて、キャッ
シュヒット/ミスしたときの処理を変更すれば良い。す
なわち、キャッシュミスヒットのときには、通常の命令
フェッチでキャッシュミスヒットしたときと同じよう
に、下位キャッシュもしくは主記憶装置へデータ要求す
れば良い。
生成する回路の構成例を示す図である。命令プリフェッ
チ要求信号に1段ラッチをかませて得た信号(+IF
PREFCH REQUEST VALID LCH)
あるいは、命令フェッチ要求信号に1段ラッチをかませ
て得た信号(+IFCH REQUEST VALID
LCH)のいずれかが“H”となって入力されると、O
R回路47の出力が“H”になる。そして、命令キャッ
シュ2から得られるキャッシュミスヒットを示す信号
(+CACHE NOT FOUND DATA)との
ANDを取る。これにより、キャッシュミスヒットが起
きた場合に下位メモリへのデータ要求(ムーブイン;+
MOVE IN REQUEST)が“H”となって出
力される。このデータ要求信号は命令キャッシュ2に入
力される。
などの下位メモリにデータ要求する場合、いずれの場合
にも、キャッシュデータを命令制御装置に送らないの
で、そのための抑制回路が必要である。本実施形態にお
いては、フェッチリクエストのキャンセル信号を利用し
ている。
ュから命令制御装置へのデータ転送抑制信号を生成する
回路例を示す図である。命令プリフェッチ要求に1段ラ
ッチをかませた信号(+IF PREFCH REQUE
ST VALID LCH)あるいは、分岐命令制御部
から入力される分岐予測失敗を示す信号(+CANCE
L ALL PORT)(22)が入力されると、命令
制御装置へのデータ転送抑制信号である+CANCEL
PORT PREFCHが出力される。
構成例を示す図である。本実施形態においては、命令フ
ェッチ制御部9は、分岐命令プリフェッチポートを二つ
持っている。すなわち、最大二つの分岐命令プリフェッ
チ要求を出すことが可能である。また、1回の命令フェ
ッチもしくは分岐命令プリフェッチで、主記憶部(もし
くはキャッシュ)1’から16バイトの命令列を確保す
ることができるものとする。
命令リザベーションステーション5−1を持っており、
最大4つの分岐命令の管理(処理)が可能である。ま
た、同図において、括弧付き番号で示される各信号は、
図2で説明したとおりである。
命令列(4)が命令フェッチ制御部9に送られ、フェッ
チポートAあるいはBに格納される。そして、フェッチ
された命令列は、デコードする命令列(5)として、命
令デコード部4に送られて、デコードされる。命令デコ
ードした情報(6)は、それが分岐命令である場合に
は、分岐命令処理部5に入力され、分岐命令リザベーシ
ョンステーション5−1に登録される。そして、アウト
ポインタ(OUT−PTR)5−2によって指示される
リザベーションステーション5−1を参照して、分岐命
令プリフェッチ要求(10)がキャッシュ/主記憶装置
1’に送られるとともに、命令フェッチ制御部9の分岐
命令プリフェッチポートAあるいはBに格納される。分
岐命令プリフェッチアドレス(21)がキャッシュ/主
記憶装置1/2に送られる。また、命令フェッチが失敗
した場合には、分岐命令処理部5から命令フェッチ制御
部9に再命令フェッチ要求(9)が送られる。
1は、図12(a)のようなエントリを持っている。本
実施形態においては、分岐命令の完了は最大1命令行え
るものとし、次に完了させるべき分岐命令をポインタ5
−2で管理しているものとする。図12の各エントリの
信号は、後述の回路で使用される。
る図である。まず、Dステージで、命令のデコードが行
われ、Aステージで分岐先命令アドレスの計算が行われ
る。それから、Xステージにおいて分岐・非分岐の確定
するのを待つ。このXステージにおいて、条件コード及
び前分岐命令の確定が行われる。そして、次のUステー
ジで、分岐実行が行われ、Wステージで分岐命令が完了
する。
れ分岐命令と判断された命令は、分岐命令リザベーショ
ンステーション5−1に登録されると同時に、アドレス
生成部(不図示)において該命令が分岐する場合の分岐
先アドレスを計算する。そして、該命令の直前に行われ
ている演算命令の終了により条件コードが確定すること
によって、該分岐命令の動作が確定する。ここで、該分
岐命令が、分岐予測による分岐判断と実際の動作が異な
る場合、従来技術ではこの動作の確定時点で初めて(U
ステージで)再命令フェッチを行うことになる。
ションの実行順序回路の構成例を示す図である。図11
のアウトポインタ5−2から出力される、どの分岐命令
リザベーションステーションにエントリされている分岐
命令を処理するかを示す信号(RSBR OUT PTR
<0>、<1>)に従って、各分岐命令リザベーション
ステーションの優先順位を決定する。アウトポインタ5
−2から出力される信号は、2ビットからなっており、
「00」の時は、0番目のリザベーションステーション
RSBR0が最も優先順位が高い。「10」の時は、1
番目のリザベーションステーションRSBR1、「0
1」の時は、2番目のリザベーションステーションRS
BR2、「11」の時は、3番目のリザベーションステ
ーションRSBR3が最も高い優先順位を有するように
なっている。最も高い優先順位より低い優先順位のリザ
ベーションステーションは、サイクリックに優先順位が
割り当てられる。
ションの実行順序別信号生成回路の例である。同図の回
路は、優先順位が最優先のものを1つ記載しているが、
実際には、各優先順位毎に同様の回路が設けられてい
る。
〜−3と、分岐命令リザベーションステーションRS
BR0〜RSBR3のエントリである有効フラグ−0
〜−3がそれぞれのAND回路50〜53に入力さ
れ、信号と信号とがともに“H”となった時点で、
その優先順位の分岐命令リザベーションステーションに
対応する分岐命令を処理すべき旨を示す信号(同図の場
合、+RSBR TOQ VALID)がそれらのAND
回路50〜53の出力が入力されるOR回路54を介し
て出力される。
の生成回路の構成例を示す図である。同図の回路も、各
分岐先リザベーションステーションRSBR0〜RSB
R3に対応してそれぞれ設けられる。
ーションステーションRSBRx(x=0〜3)のエン
トリである分岐命令アドレスと分岐命令長とを加算した
アドレス信号(+RSBRx IAR+ILC<1:3
1>)と、分岐先命令アドレス(+RSBR TIAR
<1:31>)が入力される。これらは、それぞれプロ
グラムの分岐命令の次の行に記述されている命令列のア
ドレスと、分岐先命令アドレスを示しており、分岐命令
リザベーションステーションRSBRxのエントリであ
る分岐予測フラグ(+RSBRx BRHIS HI
T)によってセレクタ61が制御され、いずれかのアド
レスが分岐命令プリフェッチアドレス(+RSBRx
PREFCH IAR<1:31>)として出力され
る。分岐予測フラグは、ブランチヒストリ9−2におい
て、非分岐予測がなされた場合には、“0”、分岐予測
がなされた場合には“1”となる。セレクタ61は、分
岐予測フラグが“0”のときは、分岐先命令アドレス
を、“1”のときは分岐命令アドレスに分岐命令長を加
算して得られる信号を、分岐命令プリフェッチアドレス
として選択出力する。
の生成回路の構成例である。なお、同図の回路は、各分
岐命令リザベーションステーションRSBRxのそれぞ
れに対応して設けられるものである。
ンステーションRSBRxのエントリである分岐先アド
レス確定フラグ(+RSBRx TIAR VALI
D)と分岐予測フラグの論理反転した信号(−RSBR
x BRHIS HIT)とのANDが取られる。すな
わち、分岐先アドレスが確定し、分岐予測が成立してい
ない場合に、AND回路71の出力が“1”となる。こ
の信号は、分岐予測フラグ(+RSBR BRHIS
HIT)とともに、OR回路72に入力され、更に、A
ND回路73に入力される。そして、分岐命令リザベー
ションステーションRSBRxのエントリである分岐条
件コード確定フラグ(−RSBRx RESOLVE
D)とのANDが取られ、分岐命令プリフェッチ可能信
号(+RSBRx PREFCH REQ VALI
D)が出力される。
る中間回路の構成例である。なお、同図の回路は、分岐
命令リザベーションステーションRSBR0〜RSBR
3の優先順位の数だけ、すなわち、本実施形態の場合
は、同図の回路も含めて3つが設けられる。
それぞれAND回路80〜83に入力し、分岐命令リザ
ベーションステーションの実行順序が与えられ、分岐命
令プリフェッチが可能となった時点で、該分岐命令プリ
フェッチに対応する分岐命令リザベーションステーショ
ンRSBRxに格納される分岐命令のプリフェッチを要
求するための信号を生成するための中間信号(1ST
(TOQ) RSBR PREFCH REQ VALI
D、この他に、優先順位が2ND、3RDの信号も平行
して生成される)を出力する。
信号と選択信号を生成する回路の構成例である。同図の
回路は、図18の出力を入力とし、優先順位最上位(1
ST)の分岐命令リザベーションステーションRSBR
xのプリフェッチを最優先にし、順次2ND、3RDと
分岐命令プリフェッチ選択信号(+1ST RSBR
PREFCH SEL、+2ND RSBR PREF
CH SEL、+3RD RSBR PREFCH S
EL)を出力するものである。この選択信号により、ど
の分岐命令リザベーションステーションRSBRxに登
録されている分岐命令に対応する分岐先命令をプリフェ
ッチするかが決定される。
合には、分岐命令プリフェッチ要求が生成されたものと
して、分岐命令プリフェッチ要求(+BR PREFC
H REQ VALID)が出力される。
成のようにすることで、非分岐予測された場合には、分
岐先アドレス計算がすんだ時点で分岐先命令プリフェッ
チの動作を、分岐予測された場合には命令が分岐リザベ
ーションステーションに登録された時点で非分岐の場合
の後続の分岐命令プリフェッチの動作を、直ちに開始す
ることができる。この際、分岐命令プリフェッチ動作を
行ったことを示すフラグ(RSBRx PREFCH
DONE)を分岐命令リザベーションステーションRS
BRxにセットし、同時に、使用した分岐命令プリフェ
ッチポートが使用中であることを示すフラグを、同じく
分岐命令リザベーションステーションRSBRxにセッ
トする。
使用中を示すフラグを生成する回路の構成例である。図
11で説明したように、分岐命令プリフェッチポートは
AとBの2つが設けられているので、同図の回路もポー
トA用とポートB用の2つが設けられる。ただし、分岐
命令プリフェッチポートが2以外の数だけ設けられてい
る場合には、その数に対応して、同図の回路も設ける。
テーションのエントリである+RSBR PREFCH
PORT xを入力し、フリップフロップ101を介
して、プリフェッチに使用しているポートが使用中であ
ることを示すフラグ+PREFCH PORTx BU
SYを出力する。また、図11の(9)の信号である再
命令フェッチ要求(図20では、+REIFCHと記載
されている+RE IFETCH REQUEST信号
のことである)、あるいは、後述する図23のプリフェ
ッチポートのキャンセル信号+PFCH PORT x
CANCEL、あるいは、命令キャッシュから入力さ
れるプリフェッチをキャンセルする旨の信号+CANC
EL PREFCH PORTx FROM SUのい
ずれかがOR回路102に入力された場合に、フリップ
フロップ101をRESETし、分岐命令プリフェッチ
ポートの使用中フラグ(+PREFCH PORTx
BUSY)をリセットする。
NEフラグがセットされている場合は、条件コードが確
定し(すなわち、分岐命令リザベーションステーション
RSBRxにRSBRx RESOLVEDフラグがセ
ットされ)、かつ前の分岐命令が確定して(すなわち自
分自身が優先順位第1位の分岐命令となって)いれば、
該プリフェッチ要求を、条件コードに応じて棄却する
か、実命令フェッチに切り替えるかすれば良い。
ば該プリフェッチポートをキャンセルすれば良い。図2
1及び図22は、分岐命令プリフェッチの実フェッチ化
及びキャンセルのための回路例を示す図である。
ションRSBRxから、分岐成立/不成立フラグ(+R
SBRx TAKEN)と、分岐予測フラグ(+RSB
R BRHIS HIT)をEXOR回路111、112
に入力し、排他論理和を取る。分岐成立/不成立フラグ
(+RSBRx TAKEN)と分岐予測フラグ(+R
SBRx BRHIS HIT)の一方が“0”、すな
わち、分岐が成立しており、分岐不成立を予測している
場合、あるいは、分岐が不成立で、分岐成立を予測して
いる場合には、“1”の分岐予測失敗フラグ(+RSB
Rx PREDICT FAILURE)をEXOR回
路111から出力する。逆に、分岐が成立しており、分
岐成立を予測している場合、あるいは、分岐が不成立
で、分岐不成立を予測している場合には、“0”の分岐
予測成功フラグ(+RSBRx PREDICT SUC
CESS)を出力する。
1の回路からの分岐予測成功/失敗フラグをAND回路
122−1〜122−3に入力するとともに、分岐命令
リザベーションステーションRSBRxから、プリフェ
ッチ要求済みフラグ(+RSBRx PREFCH D
ONE)、分岐条件コード確定フラグ(+RSBRx R
ESOLVED)をインバータ121、及び、AND回
路122−1〜122−3に入力する。そして、プリフ
ェッチ要求済みフラグ(+RSBRx PREFCH
DONE)は、AND回路122−2、122−3に入
力されるとともに、AND回路122−1に論理反転さ
れて入力される。また、分岐条件コード確定フラグ(+
RSBRx RESOLVED)は、AND回路122
−1〜122−3にそのまま入力される。また、分岐予
測失敗フラグ(+RSBRx PREDICT FAIL
URE)は、AND回路122−1と122−2に入力
され、分岐予測成功フラグ(+RSBRx PREDI
CT SUCCESS)は、AND回路122−3に入
力される。プリフェッチ要求が完了しておらず、分岐条
件コードが確定し、分岐予測が失敗した場合には、AN
D回路122−1から分岐命令リザベーションステーシ
ョンRSBRxの命令の再フェッチリクエスト(+RS
BRx REIFCH REQUEST)が出力され
る。プリフェッチ要求が完了しており、分岐条件コード
が確定し、分岐予測が失敗した場合には、AND回路1
22−2から分岐命令リザベーションステーションRS
BRxのプリフェッチを実フェッチに変更する信号(+
RSBRx PREFCH TO REAL)が出力され
る。また、プリフェッチ要求が完了しており、分岐条件
コードが確定し、分岐予測が成功した場合には、命令プ
リフェッチせずに、命令を直接フェッチすればよいの
で、命令プリフェッチをキャンセルする信号(+RSB
Rx PREFCH CANCEL)がAND回路12
2−3から出力される。
求を行うための信号を生成する回路例である。図22
(a)の回路から分岐命令リザベーションステーション
RSBR0〜RSBR3の再フェッチリクエスト信号
(+RSBR0〜3 REIFCH REQUEST)
がそれぞれ入力され、図14の分岐命令リザベーション
ステーションRSBR0〜RSBR3の実行順序を示す
信号(+RSBR TOQ EQ 0〜3)とのANDを
AND回路125−0〜125−3で取り、更に、これ
らのORをOR回路126で取ることにより、再命令フ
ェッチ要求(+RE IFETCH REQUEST)
が生成される。従って、再フェッチリクエスト信号がい
ずれかの分岐命令リザベーションステーションRSBR
xに来ており、その分岐命令リザベーションステーショ
ンRSBRxの実行順序に来ていたら、再命令フェッチ
要求を出すことになる。
毎のキャンセルを行う信号を生成する回路例である。同
図の回路は、図22(b)の回路から出力される再命令
フェッチ要求(+RE IFETCH REQUES
T)をOR回路130−1、130−2に入力するとと
もに、各分岐命令リザベーションステーションRSBR
0〜3に対応して設けられるAND回路131−1〜1
31−4・・・からの入力を受けて、図11に示される
分岐命令プリフェッチポートA、Bのキャンセル信号を
生成し、命令フェッチ制御部9に入力する。各分岐命令
リザベーションステーションRSBR0〜RSBR3に
ついては、それぞれ同様な回路構成となっているので、
分岐命令リザベーションステーションRSBR0につい
て説明する。
(a)の回路から命令プリフェッチキャンセル信号(+
RSBR0 PREFCH CANCEL)と分岐命令
リザベーションステーションRSBR0に格納されてい
るプリフェッチポート番号の反対論理信号(−RSBR
0 PREFCH PORT)が入力され、これらの信
号のANDがAND回路131−1により取られる。こ
れにより、今、命令プリフェッチポートはAとBの二つ
なので、たとえば、“0”をポートAに“1”をポート
Bに割り当てていることを想定している。すると、AN
D回路131−1には、命令プリフェッチキャンセル信
号が入力され、そのプリフェッチポートがAの場合に
は、AND回路131−1はOR回路130−1に論理
“1”の信号を入力する。従って、OR回路130−1
からポートAのキャンセル信号(PFCH PORT
A CANCEL)が出力される。また、ポートBの場
合には、AND回路131−2に命令プリフェッチキャ
ンセル信号が入力され、ポートBが指定されていた場合
には、ポートBのキャンセル信号(PFCH PORT
B CANCEL)が出力される。再命令フェッチ要
求(+RE IFETCH REQUEST)の場合に
は、ポートAとBの両方をキャンセルする。
ステーションRSBR0〜3について、信号を処理し、
1つでもキャンセルの条件がそろえば、OR回路130
−1からはポートAのキャンセル信号(PFCH PO
RT A CANCEL)が、OR回路130−2から
はポートBのキャンセル信号(PFCH PORT B
CANCEL)が出力される。
場合の制御について説明する。ストア命令による書き込
みアドレスとフェッチ要求された命令列のアドレスとの
比較により該ストア命令がフェッチ命令列を書き換える
可能性があることを検出する必要がある。これは通常の
命令フェッチだけでなく、本発明の実施形態による分岐
命令プリフェッチにおいても考慮すべき事項である。
においては、要求された命令フェッチに対して、結果の
命令列を命令制御部に返すまでにストア命令による書き
込み指示があった場合には、該ストア命令による書き込
みを反映した結果を返すことが出来るものが多い。この
場合、結果を命令制御装置側で管理する方法、すなわち
ストア命令の書き込み管理がキャッシュ機構(あるいは
主記憶装置)によって行われない回路を持つ場合のみ
に、該ストア命令が分岐命令プリフェッチ命令列を書き
換える可能性があることを検出し、対策をとれば良い。
もちろん、主記憶装置(あるいは、キャッシュ機構)に
そのような機構が備わっていない場合は常にこの可能性
を検出し、対策をとる必要がある。
16バイトであり、またストア系命令によってストアさ
れるデータ列長が常に16バイト以内であるとすれば、
1つのアドレスに1バイトの書き込みが可能であること
を考えると、ストア先アドレス値とプリフェッチアドレ
ス値の差が以下の条件を満たす必要がある。すなわち、 −16<ストア先アドレス−プリフェッチアドレス<1
6 であるとき、前述の上書き可能性があることになる。
ッチ命令列を書き換える可能性があることを検出する回
路例を示す図である。同図において、+STORE A
DRはストア先アドレス、+RSBRx PREFCH
IARは、分岐命令リザベーションステーションxの
プリフェッチアドレス(すなわち、図16の出力)、+
ST MN Px IARは、この二つのアドレスの引
き算の結果であり、分岐命令リザベーションステーショ
ンx上の分岐命令によって要求された分岐命令プリフェ
ッチ命令列がストア命令によって書き換えられる可能性
があることを検出したことを示す信号が、+ST IN
PREFCH xである。
出回路に必要なプリフェッチアドレスとして、分岐命令
リザベーションステーションRSBRxに記録されてい
る、分岐命令自身の次の命令のアドレスもしくは分岐先
アドレスを選択して与える回路は図16となる。
列を書き換える可能性があると判断された場合に、分岐
命令プリフェッチ要求を棄却する場合には、該可能性判
断信号を、その他の要求棄却要因との論理和をとって、
命令キャッシュあるいは主記憶装置に送出すれば良い。
ORE ADR)とプリフェッチアドレス(+RSBR
x PREFCH IAR)の差を減算器150で求
め、差信号(+ST MN Px IAR)を生成す
る。次に、AND回路151−1では、+ST MN
Px IARのビットの内、下位4ビットを無視し、上
位27ビットを入力する。ストア先アドレスとプリフェ
ッチアドレスの差が正で16より小さい場合には、差信
号の下位4ビットを除いた上位27ビットはすべて
“0”となる。従って、AND回路151−1の出力は
“0”となる。一方、AND回路151−2には、+S
T MN Px IARをインバータ154により論理
反転した信号の下位4ビットを除いた、上位27ビット
が入力される。上記アドレスの差が正で16より小さい
場合には、AND回路151−2に入力されるビットは
すべて“1”となるので、AND回路151−2の出力
は、“1”となる。これをOR回路152で論理和を取
り、AND回路53に入力する。AND回路153に
は、分岐命令リザベーションステーションからプリフェ
ッチ要求済みフラグ(+RSBR PREFCH DO
NE)が入力されており、プリフェッチが要求済みの場
合のみ、上書きされる危険性があることを示す信号(+
ST IN PREFCH x)を“H”にして出力す
る。
ときは、上記処理において、ST MN Px IARの
論理が反転するので、AND回路51−1が“1”を出
力し、AND回路151−2が“0”を出力する。この
場合も、プリフェッチが要求済みである場合のみ、信号
(+ST IN PREFCH x)が出力される。そ
して、この信号(+ST IN PREFCH x)を
主記憶装置などに入力し、プリフェッチをキャンセルす
るようにすれば、上書きによる障害を回避することがで
きる。
やPORTxなどの「x」は、分岐命令リザベーション
ステーションの番号やポートの番号などを示しており、
図面に「x」を用いた信号を使って記載されている回路
は、分岐命令リザベーションステーションの数、あるい
は、ポートの数に対応した数だけ、それぞれが対応して
設けられていることを意味している。
ドレスの具体的計算方法を説明しなかったが、これは、
本発明の実施形態に係る命令プリフェッチ機構を有効に
利用できる場合に、当業者が必要に応じて適切なプリフ
ェッチアドレスを算出させ、使用するようにする。この
プリフェッチアドレスの演算の一実施形態としては、条
件分岐命令の実行において、分岐予測された分岐先アド
レスとは逆の、分岐予測されなかった先のアドレスを命
令プリフェッチするようにすることが考えられる。これ
によれば、分岐予測に失敗しても、もう一つの分岐先で
ある、分岐予測されなかった先のアドレスの命令がすで
にプリフェッチされているので、命令処理速度の向上に
非常に有効である。
が、第1の問題点を解決する構成と第2の問題を解決す
る構成とをともに情報装置に組み込めば、より有効なこ
とは、当業者によれば、容易に認識され、実現されるで
あろう。
チを実命令フェッチに対して1回のみ行う構成を示した
が、以下には、命令プリフェッチに対する更に次の命令
のプリフェッチを行う実施形態について説明する。
行の様子を説明する概念図である。図25において、実
線の枠は、実命令フェッチを表している。すなわち、ま
ず、現在フェッチされた命令列に対し、命令のデコード
を行い、処理を行うと共に、分岐予測を行い、分岐先命
令列をフェッチする。そして、この分岐先命令ののフェ
ッチに伴って、分岐予測が発生し、更に先の分岐先命令
列がフェッチされる。そして、この分岐先命令列の次の
命令に対し、命令プリフェッチ(後続命令プリフェッチ
を行うか分岐予測を行って分岐先命令のプリフェッチを
行う。
は、命令プリフェッチ対象は「続いて命令フェッチ要求
を予定している命令列」のみであった。これは命令プリ
フェッチの効果を自ら制限するものであった。前述の実
施形態においては、命令デコードのための一時命令バッ
ファは、 ・アドレスが連続する、連続した命令列の長さ ・分岐予測により、アドレスは連続しないが実行経路と
して連続する(と予測される)命令列の、不連続点(分
岐すると予測された分岐命令)の数 の2点で物理的に制限される。図25に示されるよう
に、この命令フェッチの物理制約の直後の後続命令ある
いは分岐先命令に対して命令プリフェッチを行うこと、
(あるいは、それぞれ分岐予測が失敗した場合に備えて
の、それぞれ非分岐側の後続の命令プリフェッチ)のみ
が可能であった。
し、その更に先までトレースすることが可能なようにす
る。特に、「続いて命令プリフェッチ要求を予定してい
る命令列」へ適用できるように拡張する。すなわち、命
令フェッチの一時バッファの大きさなどの物理制約によ
って命令プリフェッチ要求が制限されなくなるようにす
る。
なわち、図26の上段に現在の命令列が実フェッチさ
れ、命令のレコードが行われる処理が示されているが、
このとき、分岐予測を行い、分岐先命令列の実命令フェ
ッチが行われる。更に、分岐先命令列の分岐予測を行
い、次の分岐先命令列の実フェッチを行う。そして、次
の段において、分岐予測がなされ、後続命令のプリフェ
ッチあるいは、分岐先命令のプリフェッチが行われる。
本実施形態では、この命令プリフェッチされた分岐先命
令列に基づいて、更に分岐予測を行い次の分岐先命令列
の命令プリフェッチを行う。このようにして、1つ前に
命令プリフェッチされた命令列に基づいて、更に次の命
令列の命令プリフェッチを行う点が本実施形態の特徴で
ある。
を採用していない一般のキャッシュメモリと、ブランチ
ヒストリなどの分岐予測手段を組み合わせることで、少
ないコストで簡単にトレースキャッシュと同程度の機能
を構築することができる。
れを示すフローチャートである。まず、最初ステップS
1において、再命令フェッチが生じたとすると、ステッ
プS2において、命令一時バッファが満杯か否かを判断
する。命令一時バッファが満杯でない場合には、ステッ
プS3において、命令フェッチ動作を行い、ステップS
2に戻る。ステップS2において、命令一時バッファが
満杯であるときには、分岐成立を予測したが分岐先フェ
ッチが出来なかったか、分岐成立が予測されずに後続フ
ェッチができなかったのかによって、ステップS4ある
いはステップS5に進む。
予測したが分岐先フェッチが出来なかった場合なので、
分岐予測先命令プリフェッチ機構を起動し、命令プリフ
ェッチアドレスを設定し、命令プリフェッチアドレスを
有効化する。ステップS5においては、分岐成立が予測
されずに後続フェッチができなかった場合なので、後続
命令プリフェッチ機構を起動し、命令プリフェッチアド
レスを設定し、命令プリフェッチアドレスを有効化す
る。
ッチ要求が生じたか否かを判断する。再命令フェッチ要
求が発生した場合には、ステップS7に進んで、命令一
時バッファのクリアなどを行い、ステップS8におい
て、命令プリフェッチアドレスを無効化してステップS
1に戻る。
求が生じていない場合には、ステップS9に進み、命令
一時バッファが満杯か否かを判断する。命令一時バッフ
ァが満杯でない場合には、命令フェッチ動作を行い(ス
テップS10)、ステップS6に戻る。
が満杯であると判断されると、ステップS11に進み、
前回の命令プリフェッチで分岐予測がされたか否かが判
断される。分岐予測された場合には、ステップS12に
進んで、分岐予測先命令プリフェッチ機構を起動し、命
令プリフェッチアドレスを更新して、ステップS6に戻
る。分岐予測されない場合には、ステップS13におい
て、後続命令プリフェッチ機構を起動し、命令プリフェ
ッチアドレスを更新して、ステップS6に戻る。
ェッチ(実命令フェッチ)が行える間は、そのデマンド
フェッチを優先すべきで、従って、デマンドフェッチを
行う。
場合(ヘッジフェッチ(分岐予測された分岐先とは反対
の予測されなかった方の命令列のフェッチ)を行うかど
うかは実装により可変)、その後続処理(分岐予測を含
む)命令列の命令プリフェッチを要求し、要求した命令
プリフェッチアドレスを格納し、また、そのアドレスに
よって分岐予測機構を参照する。
は、それを優先するし、あるいは命令の実行系列が予測
と異なった場合の再命令フェッチの要求が出された場合
は命令プリフェッチのアドレスを無効化する。どれにも
当てはまらなければ命令プリフェッチを起動し、前回登
録したアドレスの次の実行系列(分岐予測がされたら、
その分岐先、されなければ後続命令列)を命令プリフェ
ッチし、そのアドレスを登録する。
る方向以外の分岐方向の命令列など)の命令フェッチ
(ヘッジフェッチ等)を持つ機構も存在するが、それは
デマンドフェッチとプリフェッチの間で行えばよく、本
質的な考え方は前述の通りである。
令フェッチ要求と同様LBS(Local Buffer Storag
e:一次キャッシュ)を動作させるので、命令プリフェ
ッチによって、その後続の命令フェッチ要求(もしくは
命令プリフェッチ要求)は阻害されうる。
発行すると、最悪の場合、その命令プリフェッチによっ
てLBSと下位メモリ間のメモリ転送処理を行うため
に、その後本当に必要となった通常の命令フェッチ要求
でさえ、かなり待たされる。
命令フェッチ要求が遅延する場合を説明する図である。
図28上段に記載されているように、分岐命令であるB
Cによって、分岐予測され、分岐先としてXXXが予測
されたとすると、図28下段に記載されているように、
BCの処理がサイクルIA、IT、IB、IRと進行す
る間に、分岐先命令プリフェッチ(XXXのプリフェッ
チ)がサイクルPA、PT、PBと進む。ここで、分岐
先命令プリフェッチがPBまで進むと、下位メモリから
分岐先命令のプリフェッチを行うためデータの転送処理
時間が必要となる。すると、BCの次の命令であるNO
Pの実行が始まっても、下位メモリにアクセスできない
ため、サイクルIA、ITと進んだ、NOPの実行は分
岐先命令プリフェッチの転送処理の終了を待たなくては
ならず、サイクルIB、IRの実行が非常に遅延してし
まう。
ッチの優先順位の制御構成によっては、通常の命令フェ
ッチ要求を出せなくなる可能性がある。図29は、命令
プリフェッチ要求を制約なしに出せてしまうと問題とな
る場合について説明する図である。
うに、計数分岐命令BCTにより一定回数だけXXXと
BCTが繰り返し実行される命令列を示している。分岐
予測により、BCTはXXXに分岐することが予測され
るので、図29下段に示されるように、実行予測命令列
は順に、・・・、NOP、XXX、BCT、XXX、B
CT、XXX、BCT、・・・となる。このうち、XX
X、BCTの命令列は、2回目以降は直前のBCTの分
岐先命令であるので、分岐先命令プリフェッチによるプ
リフェッチ要求が出続ける。すると、NOPの後続命令
である1回目のXXX、BCT命令列が最初に後続命令
プリフェッチとして発行されていると、この分岐先命令
プリフェッチの方が後続命令フェッチより優先順位が高
い場合には、図29のようになってしまい。このデマン
ドフェッチ(後続命令フェッチ)は発行できなくなる。
をある程度制限する手法が有効(あるいは実施方法によ
って必須)となる。図30は、命令プリフェッチ抑制回
路の構成例を示す図である。
ポート毎に命令プリフェッチ完了のフラグを設置し、命
令プリフェッチ要求の制御を行っていた。本実施形態に
おいては、命令プリフェッチ先の命令プリフェッチのた
めの制御が必要となる。
な再帰的命令プリフェッチ手段を備える例を示す。前述
の実施形態のような優先順位回路を備える場合、分岐予
測先命令プリフェッチ要求は、後続命令デマンドフェッ
チよりも優先順位が高いので、前述のように「はまる」
(後続命令フェッチが分岐先命令プリフェッチの連続発
行により、行えなくなる状態になる)可能性はある。し
たがって、例えば、分岐先命令プリフェッチ要求(+I
F REQ PREFCH BRHIS GO)が一定
回数発行された場合には、デマンドフェッチが行われる
まで命令プリフェッチ要求を抑制(+SUPRESS
BRHIS TGT PREFCH)する論理を構成す
る。これが、図30の構成である。図30の構成におい
ては、計数回路によって分岐先命令プリフェッチ要求が
発行された回数を計数する構成となっている。この際、
デマンドフェッチが行われれば、「はまり」状態からは
回避できていることになるので、(命令プリフェッチで
はない)命令フェッチ要求を出したことを示す+IFC
H REQUEST VALIDを計数回路のリセット
信号としている。
ェッチとを切り替えるために必要となるフェッチポート
選択回路の構成例を示す図である。図31の命令フェッ
チポート選択回路は、命令フェッチを行う場合にどのポ
ートを使うかを演算して、指示信号を出力する回路であ
り、詳細な構成は公知の技術と同様であるので説明を省
略する。
ートは、A、B、Cの3つがあるとしている。そして、
これら3つの全てのセレクト信号が出力された場合に、
命令フェッチポートが満杯である旨の信号+IBUFF
FULLが出力される構成となっている。
た優先順位決定回路の構成例を示す図である。図32の
構成においては、前述の+SUPRESS BRHIS
TGT PREFECHによって制限されない限り
は、優先順位に従い、その以前の要求がプリフェッチで
あるかデマンドフェッチであるかに関わらず、その要求
に対応する分岐先命令プリフェッチ(あるいは後続命令
プリフェッチ)を要求することが可能となる。すなわ
ち、図32の出力+IF REQ PREFCH BR
HIS GOが図30の計数回路に入力され、分岐先命
令プリフェッチが生じた回数を計数し、所定回数になっ
たら分岐先命令プリフェッチを抑制する−SUPRES
S BRHIS TGT PREFECHが図32の優
先順位決定回路に入力され、+IF REQ PREF
CH BRHIS GOの出力が抑制される。
まり」状態を回避しつつ、深い命令プリフェッチを発行
することが可能である。図33は、前述の実施形態の命
令プリフェッチによるブランチヒストリ検索回路を示す
図である。
AGがブランチヒストリに入力されると、対応するデー
タとTAGが出力される。出力されたTAGを用いてヒ
ット検出を行い、出力されたデータの選択を行う。デー
タの選択を行うのは、図33がセットアソシエイティブ
方式を採用していることを前提にしているからであり、
採用する方式によっては、データ選択は行う必要がない
場合がある。出力されたデータとヒット検出信号はFF
を介して、+IB BRHIS DATA、及び、+I
B BRHIS HITとして出力される。ここで、パ
イプラインにおいてインターロックが生じたことを示す
信号+PIPELINE INTERLOCKは、デー
タ用及びヒット信号用FFに入力され、インターロック
が生じた場合には、その直前に検出されたブランチヒス
トリのヒットデータ及びヒット信号を保持するように構
成されている。
得るのに2τ(τはマシンサイクル)かかるものとす
る。前述の実施形態では、キャッシュミスなどにより命
令フェッチデータを待つ場合(パイプラインインタロッ
クが発生する場合)にはブランチヒストリの検索結果を
パイプラインに同期させるためにその間、+PIPEL
INE INTERLOCK信号によりホールドさせて
いるが、命令プリフェッチはパイプラインインタロック
とは無関係に動作するようにするために、別途制御する
必要がある。
ヒストリ検索回路に適用した構成例を示す図である。な
お、ここにおいて、ブランチヒストリ、ヒット検出、デ
ータ選択、データ用及びヒット信号用FFの動作は、図
33と同じなので説明を省略する。
パイプラインによる命令フェッチを仮定している。検索
の要求に関し、ITサイクルでパイプラインインタロッ
クが発生した場合の最初のIBサイクル、IBサイクル
でパイプラインインタロックが発生している場合、いず
れでもパイプラインインタロックが発生しなかった場合
の最初のIBサイクル、の3つで場合分けして、前述の
実施形態の+IB BRHIS HITと全く同じ信号
を生成することができる。
IT 1T VALID信号は、パイプラインインタ
ロックが発生していない場合に、+IT BRHIS
HIT 1T(ヒット信号)をそのまま+IB BRH
IS HITとして出力させる信号である。
には、FF200に−IFCH REQUEST VA
LID 2Tが入力され、ロックしたために繰り返され
るITサイクルの内、2番目のITサイクルにおいて生
じたブランチヒストリヒット信号と、ITサイクルのロ
ックが解けて後の最初のIBサイクルにおいて生じたブ
ランチヒストリヒット信号とがFF200に保持され
る。また、最初のIBサイクルにおいて生じたヒット信
号は、パイプラインインタロックが生じた場合には、F
F201にも保持される。そして、ITサイクルがロッ
クした場合に、+1ST IB VALID IT P
ENDEDがFF200からの+IT BRHIS H
IT 2T HOLDを+IB BRHIS HITと
して出力させる。
サイクルで処理がロックした場合には、+PIPELI
NE INTERLOCKEDがFF201に入力さ
れ、IBサイクルの2番目以降において生じたヒット信
号がFF201に保持される。そして、+IB PEN
DINGによって、FF201から出力される+IB B
RHIS HIT PENDINGが+IB BRHI
S HITとして出力される。
ングチャートである。図35においては、ITサイクル
とIBサイクルの両方でインターロックが起こった場合
を示している。
T、IT、IB、IB、IB、IB、IRとなったとす
る。ブランチヒストリの検索結果を得るには、2τかか
るので、IAでブランチヒストリを検索した結果は、2
番目のITにおいて得られる。このとき、−1で示さ
れるように、+IFCH REQUEST VALID
2Tが立ち上がり、この時点のヒット信号がFF200
に取り込まれる。+PIPELINE INTERLO
CKは、2番目と3番目のITサイクルで立ち上がって
いるとする。すると、+IT BRHIS HIT 1
Tが−2に示すように立ち上がり、同じ信号がFF2
00にセットされている結果、−3に示すように、+
IT BRHIS HIT 2T HOLDが立ち上が
る。
クルからIBサイクルに変わり、IBサイクルの2番目
から再びインタロックが生じたとすると、+IB BR
HIS HIT PENDINGの信号が立つ(−
2)。また、+IT BRHIS HIT 2T HO
LDは、次回の+IFCH REQUEST VALI
D 2Tが立つまで同じ信号を保持している(−
1)。セレクタ202において、ITサイクルでロック
したが、IBサイクルではロックしなかった場合には、
+1ST IB VALID IT PENDEDによ
って、+IT BRHIS HIT 2T HOLDが
+IB BRHIS HITとして出力され、IBサイ
クルにおいてインタロックが生じた場合には、+IB
BRHIS HIT PENDINGが+IB PEN
DINGによって+IB BRHIS HITとして出力
される(−3)。
令プリフェッチがどのタイミングで出てもブランチヒス
トリにヒットしたことを検出することが出来る。また、
データの方は、出力される度に、メモリに格納してお
き、必要に応じて読み出す。
な再帰的命令プリフェッチ手段を備える例を示す。ここ
で、再帰的とは、プリフェッチに基づいて順次次のプリ
フェッチを行うことを示す。
持するレジスタを準備することで、トレース(再帰的に
命令プリフェッチを行うためにアドレスを順次生成する
こと)を可能とする。
令列のアドレスをトレース出来れば良いので、そのアド
レスの更新条件は、命令プリフェッチ要求が成立するこ
とである。
り命令実行をやり直す場合、先読みしていた命令プリフ
ェッチ、すなわち予測されていた実行系列と実際の実行
系列が変わるので、命令プリフェッチをトレースし直す
ための制御が必要になる。
アドレスの生成回路の構成例を示す図である。ここで、
図中の命令フェッチ制御回路には、優先順位決定回路や
図31の命令フェッチポート選択回路などが含まれる。
プリフェッチの機能を除いては前述の実施形態通りであ
る。
果は、BRHIS−TGT−IARとして、セレクタ2
10に入力される。また、命令実行制御機構からの再命
令フェッチ要求は、IARXとして、セレクタ210に
入力される。セレクタ210の出力は、フェッチポート
IAR−A〜IAR−C及び、プリフェッチ用ポートP
F−IARの何れかに入力される。どのポートにセレク
タ210の出力である命令フェッチアドレスあるいは命
令プリフェッチアドレスを入力するかは、命令フェッチ
制御回路の命令フェッチポート選択回路によって決定さ
れる。命令フェッチポート選択回路から+IBUFF
FULLが出力された場合には、プリフェッチ用ポート
PF IARが選択される。これら命令フェッチポート
から出力されたアドレスは、所定の数値(ここでは、1
6)が加算されて、後続の命令アドレスとしてセレクタ
210から出力される。
の構成例を示す図である。後述の優先順位決定回路によ
り分岐予測先命令プリフェッチが行われた時、最初にそ
の命令プリフェッチアドレスがセットされ、図37の回
路が有効となる。更に、図37の回路が有効で有れば、
優先順位決定回路により、再帰的命令プリフェッチが発
行されたときに命令プリフェッチアドレスが更新され
る。また、再命令フェッチなどが発生した場合には、+
CLEAR PIPELINEが発行され、この回路が
無効化される。
には、+IF PREFCH REQUEST VAL
ID信号が立ち上がり、SR−FFを介して、命令プリ
フェッチのイネーブル信号+ENABLE PREFC
H TRACEが出力されると共に、+IF PREF
CH REQUEST VALID信号の立ち上がりの
タイミングで入力される命令プリフェッチアドレスIF
EAGがPF−IARに取り込まれ、+IF PRE
FCH TRACE ADRSとして出力される。+C
LEAR PIPELINEがSR−FFに入力される
場合には、命令プリフェッチイネーブル信号+ENAB
LE PREFCH TRACEがリセットされるの
で、PF−IARから出力される命令プリフェッチアド
レスは無視される。
回路の構成例を示す図である。ここでは、命令実行系列
が分岐予測と異なった場合や割り込み発生などによる再
命令フェッチ(+IF REQ REIFCH GO)
が最も優先度が高く、続いて、分岐予測がなされたとき
の分岐先命令フェッチ(+IF REQ BRHIS
GO)、そして、その次の優先順位では、命令フェッチ
ポートが全て埋まっていた場合で分岐予測がなされた場
合には、命令プリフェッチの起動を兼ねて分岐先命令プ
リフェッチを行う(+IF REQ PREFCH B
RHIS GO)。その下に、分岐予測が行われなかった
時の後続命令フェッチ(+IF REQ SEQUENT
IAL GO)、更に下に、命令プリフェッチの先の
(トレースの)再帰命令プリフェッチ(分岐予測がされ
た場合(+IF REQ PREFCH TRACE B
RHIS GO)とされなかった場合(+IF REQ
PREFCH TRACE SEQ GO))がある。
プリフェッチ要求信号の出力回路の構成例を示す図であ
る。なお、図39の回路は、前述の図8の回路に置き換
えられるべき回路であり、図8と同じ部分の説明は省略
する。
が出力されるときは、デマンド命令フェッチ(実命令フ
ェッチ)であり、+IF PREFCH REQUES
T VALIDが出力されるときは、命令プリフェッチ要
求である。
は、図30のリセット信号としても使用される。また、
図39では、OR回路215の入力として、分岐先命令
プリフェッチのイネーブル信号+IF REQ PRE
FCH BRHIS GOの他に、再帰的分岐先命令プ
リフェッチイネーブル及び、再帰的後続命令プリフェッ
チのイネーブル(+IF REQ PREFCH TR
ACE BRHIS GO及び+IF REQ PREF
CH TRACE SEQ GO)が設けられている。
チのためのイネーブルが追加されると共に、再帰的でな
い後続命令プリフェッチのイネーブル(+IF REQ
PREFCH SEQ GO)が無くなっている。こ
れは、再帰的でない後続命令プリフェッチのイネーブル
と再帰的後続命令プリフェッチのイネーブルを共用する
構成としたからである。
コストを少なくして、トレースキャッシュ方式のキャッ
シュメモリと同程度のプリフェッチ効果を期待できる。
したがって、命令キャッシュに対してトレースキャッシ
ュを採用する必要が無くなり、ハードウェア量に対する
性能効果が大きい。本発明は以下の形態で実施が可能で
ある。 (付記1)キャッシュメモリ手段と、それよりも下位の
メモリ手段と、該キャッシュメモリ手段に格納された命
令列を投機的に実行する手段を備えた命令制御装置にお
ける命令のフェッチを制御する命令フェッチ制御装置で
あって、該キャッシュメモリ手段に命令フェッチ要求を
出す命令フェッチ手段と、続いてフェッチ要求を予定し
ている命令列が、該キャッシュメモリ手段に存在しない
場合には、該キャッシュメモリ手段に、該下位メモリ手
段から該予定命令列を事前に転送しておく命令プリフェ
ッチを行う命令プリフェッチ手段と、を備えることを特
徴とする装置。 (付記2)更に、分岐命令の成立の可否、及び成立の際
の分岐先アドレスを予測する分岐予測手段と、フェッチ
した命令列を格納するための1つ以上のバッファ手段と
を備え、前記命令プリフェッチ手段は、該分岐予測手段
によって分岐すると予測されたにも関わらず、該バッフ
ァ手段が空いておらず、かつ、前記キャッシュメモリ手
段内に、フェッチ要求を予定している分岐予測先命令列
が存在しない場合には、前記キャッシュメモリ手段に前
記下位メモリ手段から該予測命令列を事前に転送してお
くことを特徴とする付記1に記載の装置。 (付記3)前記命令プリフェッチ手段は、インタロック
要因によって、通常行われるべき命令フェッチ要求が出
せない場合に、前記キャッシュメモリ手段に対して前記
命令プリフェッチを行うことを特徴とする付記1に記載
の装置。 (付記4)更に、前記命令プリフェッチを含む命令フェ
ッチの種別に応じた優先順位を設定し、該優先順位に従
って前記キャッシュメモリ手段に対する命令フェッチあ
るいは命令プリフェッチを、前記命令フェッチ手段ある
いは命令プリフェッチ手段に行わせる優先順位決定手段
を備えることを特徴とする付記1に記載の装置。 (付記5)更に、前記命令プリフェッチによる前記キャ
ッシュメモリ手段への命令列転送中に、当該命令列の命
令フェッチが行われる場合、該命令フェッチが該命令プ
リフェッチを受け継ぐ、あるいは、該キャッシュメモリ
手段へ転送中の命令列を前記バッファ手段へバイパスす
る制御手段を備えることを特徴とする付記1に記載の装
置。 (付記6)前記命令プリフェッチ手段は、同じアドレス
もしくは同じキャッシュブロックに対する前記命令プリ
フェッチを連続して行わないことを特徴とする付記1に
記載の装置。 (付記7)前記命令プリフェッチ手段は、前記命令プリ
フェッチされた命令列に対する命令プリフェッチを行う
ことを特徴とする付記1に記載の装置。 (付記8)前記命令プリフェッチの要求が際限なく発行
されるのを抑制する抑制手段を更に備えたことを特徴と
する付記7に記載の装置。 (付記9)前記命令プリフェッチのためのアドレスレジ
スタを更に備えることを特徴とする付記7に記載の装
置。 (付記10)前記アドレスレジスタの値が有効か否かを
示すフラグを保持することを特徴とする付記9に記載の
装置。 (付記11)現実に実行されるべき命令列の再実行が必
要になった場合、前記アドレスレジスタを無効化するこ
とを特徴とする付記9に記載の装置。 (付記12)前記命令プリフェッチされた命令列に対す
る命令プリフェッチを行う場合に、分岐予測機構を使用
することを特徴とする付記7に記載の装置。 (付記13)キャッシュメモリ手段と、それよりも下位
のメモリ手段と、該キャッシュメモリ手段に格納された
命令列を投機的に実行する手段を備えた命令制御装置に
おける命令のフェッチを制御する命令フェッチ制御装置
であって、該キャッシュメモリ手段に命令フェッチ要求
を出す命令フェッチ手段と、条件分岐命令もしくは無条
件分岐命令を実行する際に、分岐成立する場合の分岐先
命令アドレスを求めるアドレス生成手段と、該分岐命令
の分岐する場合の分岐先命令アドレスが求められた時点
で、前記キャッシュメモリ手段に該分岐先命令の命令フ
ェッチを要求する分岐先命令プリフェッチを行う分岐先
命令プリフェッチ手段と、を備えることを特徴とする装
置。 (付記14)更に、前記分岐命令の成立の可否、及び成
立の際の分岐先アドレスを予測する分岐予測手段を備
え、前記分岐命令プリフェッチ手段は、該分岐予測手段
により分岐予測された分岐命令の実行に際し、分岐しな
い場合の命令アドレスの命令フェッチを前記キャッシュ
メモリ手段に対して要求することを特徴とする付記13
に記載の装置。 (付記15)更に、1つ以上の実行中の分岐命令によ
り、分岐命令プリフェッチを要求することが可能とされ
たそれぞれの分岐命令に優先順位を設定し、その優先順
位に従って、前記分岐命令プリフェッチ手段に分岐命令
プリフェッチを要求させる優先順位決定手段を備えるこ
とを特徴とする付記14に記載の装置。 (付記16)更に、1つ以上の分岐命令プリフェッチ要
求による命令列の保留のための1つ以上の命令バッファ
手段を備えることを特徴とする付記13に記載の装置。 (付記17)前記分岐命令の実行及び分岐先が確定した
時点で、該分岐命令の後続命令のフェッチ及び実行を中
止棄却し、該分岐命令に対応する分岐命令プリフェッチ
を実命令フェッチへと変更して、該分岐命令フェッチを
継続実行あるいは中断解除し、該分岐命令の分岐先命令
を実行させることを特徴とする付記13に記載の装置。 (付記18).前記分岐予測手段によって分岐すること
が予測された該分岐命令が、実行され、かつ、分岐しな
いことが確定した時点、あるいは、予測された分岐先と
異なる分岐先へ分岐することが確定した時点で、該分岐
命令の予測分岐先命令の命令フェッチおよび命令実行を
中止棄却し、該分岐命令に対応する後続命令の分岐命令
プリフェッチを実命令フェッチへと変更して、後続命令
フェッチを継続実行あるいは中断解除し、上記後続命令
を実行させることを特徴とする付記14に記載の装置。 (付記19)該分岐命令が条件分岐命令である場合に、
該分岐命令が実行されること、あるいは、分岐せず後続
命令を実行することが確定した時点、あるいは、該分岐
命令が実行されないことが確定した時点で、それまで行
っていた該分岐命令プリフェッチを棄却することを特徴
とする付記13に記載の装置。 (付記20)前記分岐予測手段において分岐予測が成立
している前記分岐命令が実行されること、あるいは、予
測された該分岐命令の分岐先命令を実行することが確定
した時点で、それまで行っていた該分岐命令プリフェッ
チを棄却することを特徴とする付記14に記載の装置。 (付記21)更に、命令の実行の結果、分岐命令プリフ
ェッチされるべき命令列を書き換える可能性があること
を検出する検出手段を備えることを特徴とする付記13
に記載の装置。 (付記22)前記検出手段は、ストア命令のアドレス及
び分岐命令プリフェッチ要求を出した分岐命令自身のア
ドレス、もしくは、該分岐命令の分岐先命令のアドレス
を用いて、命令列の書き換えの可能性を検出することを
特徴とする付記21に記載の装置。 (付記23)前記命令が実行された場合、前記分岐命令
プリフェッチされるべき命令列が書き換えられることが
判明した場合、該分岐命令プリフェッチ要求を棄却する
ことを特徴とする付記21に記載の装置。 (付記24)前記分岐命令の分岐先命令のアドレスが求
められた時点で、前記キャッシュメモリ手段に該アドレ
スに対応する命令が確保されていない場合に、前記下位
メモリ手段から該キャッシュメモリ手段へ該分岐先命令
を転送することを要求することを特徴とする付記13に
記載の装置。 (付記25)前記分岐予測手段により分岐予測された分
岐命令の実行に際し、前記キャッシュメモリ手段に、分
岐しない場合の命令アドレスに対応する後続命令列が確
保されていないと判明した場合には、前記下位メモリ手
段から該キャッシュメモリ手段へ該後続命令列を転送す
ることを要求することを特徴とする付記14に記載の装
置。 (付記26)前記分岐先命令プリフェッチ手段は、前記
分岐先命令プリフェッチを行った命令列に対して命令プ
リフェッチを行うことを特徴とする付記13に記載の装
置。 (付記27)前記命令プリフェッチの要求が際限なく発
行されるのを抑制する抑制手段を更に備えたことを特徴
とする付記26に記載の装置。 (付記28)前記命令プリフェッチのためのアドレスレ
ジスタを更に備えることを特徴とする付記26に記載の
装置。 (付記29)前記アドレスレジスタの値が有効か否かを
示すフラグを保持することを特徴とする付記28に記載
の装置。 (付記30)現実に実行されるべき命令列の再実行が必
要になった場合、前記アドレスレジスタを無効化するこ
とを特徴とする付記28に記載の装置。 (付記31)前記命令プリフェッチされた命令列に対す
る命令プリフェッチを行う場合に、分岐予測機構を使用
することを特徴とする付記26に記載の装置。 (付記32)キャッシュメモリと、下位メモリと、該キ
ャッシュメモリに命令フェッチ要求を出す命令フェッチ
装置と、該キャッシュメモリに格納された命令列を処理
する命令制御装置とを備える装置における命令制御方法
であって、(a)続いてフェッチ要求を予定している命
令列が、該キャッシュメモリに存在しない場合には、該
キャッシュメモリに、該下位メモリから該予定命令列を
事前に転送しておく命令プリフェッチを行うステップを
備えることを特徴とする方法。 (付記33)更に、(b)分岐命令の分岐先命令を予測
するステップと、(c)フェッチした命令列を格納する
ステップとを備え、前記ステップ(a)では、該ステッ
プ(b)によって分岐すると予測されたにも関わらず、
該ステップ(c)に命令列を格納できない場合に、前記
キャッシュメモリへ、フェッチ要求を予定している分岐
予測先命令列が存在しない場合にはキャッシュメモリに
前記下位メモリから該予測命令列を事前に転送しておく
ことを特徴とする付記32に記載の方法。 (付記34)インタロック要因によって、通常行われる
べき命令フェッチ要求が出せない場合に、命令プリフェ
ッチ要求を行うことを特徴とする付記32に記載の方
法。 (付記35)更に、(d)前記命令プリフェッチを含む
命令フェッチの種別に応じた優先順位を設定し、該優先
順位に従って前記キャッシュメモリ手段に対する命令フ
ェッチあるいは命令プリフェッチ要求を行うステップを
備えることを特徴とする付記32に記載の方法。 (付記36)同じアドレスでの実命令フェッチが行われ
る際に、該命令プリフェッチによる前記キャッシュメモ
リへの命令列転送作業が間に合わなかった場合、該実命
令フェッチが該命令プリフェッチを受け継ぐ、あるい
は、該キャッシュメモリへ転送中の命令列を前記命令制
御装置へバイパスすることを特徴とする付記32に記載
の方法。 (付記37)同じアドレスもしくは同じキャッシュブロ
ックに対する前記命令プリフェッチを連続して行わない
ことを特徴とする付記32に記載の方法。 (付記38)前記ステップ(a)は、前記命令プリフェ
ッチされた命令列に対する命令プリフェッチを行うこと
を特徴とする付記32に記載の方法。 (付記39)キャッシュメモリと、下位メモリと、該キ
ャッシュメモリに命令フェッチ要求を出す命令フェッチ
装置とを備える装置における命令制御方法であって、
(a)条件分岐命令もしくは無条件分岐命令を実行する
際に、分岐成立する場合の分岐先命令アドレスを求める
ステップと、(b)該分岐命令の分岐する場合の分岐先
命令アドレスが求められた時点で、該分岐命令の命令フ
ェッチを要求する分岐命令プリフェッチを行うステップ
と、を備えることを特徴とする方法。 (付記40)更に、(c)前記分岐命令の分岐先命令を
予測するステップを備え、前記ステップ(b)では、該
ステップ(a)により分岐予測された分岐命令の実行に
際し、分岐しない場合の命令アドレスの命令フェッチを
要求することを特徴とする付記39に記載の方法。 (付記41)更に、(d)1つ以上の実行中の分岐命令
により、それぞれの分岐命令の分岐命令プリフェッチを
要求することが可能とされたものに優先順位を設定し、
その優先順位に従って、前記分岐命令プリフェッチ手段
に分岐命令プリフェッチを要求させるステップを備える
ことを特徴とする40に記載の方法。 (付記42)更に、1つ以上の分岐命令プリフェッチ要
求による命令列の保留するステップを備えることを特徴
とする付記39に記載の方法。 (付記43)前記分岐命令の実行及び分岐先が確定した
時点で、該分岐命令の後続命令フェッチ及び命令実行を
中止棄却し、該分岐命令に対応する分岐命令プリフェッ
チを実命令フェッチへと変更して、分岐先命令フェッチ
を継続実行あるいは中断解除し、分岐先命令を実行する
ことを特徴とする付記39に記載の方法。 (付記44)前記ステップ(a)によって分岐すること
が予測された該分岐命令が、実行され、かつ、分岐しな
いことが確定した時点、あるいは、予測された分岐先と
異なる分岐先へ分岐することが確定した時点で、該分岐
命令の予測分岐先命令の命令フェッチおよび命令実行を
中止棄却し、該分岐命令に対応する後続命令の分岐命令
プリフェッチを実命令フェッチへと変更して、後続命令
フェッチを継続実行あるいは中断解除し、後続命令を実
行することを特徴とする付記40に記載の方法。 (付記45)該分岐命令が条件分岐命令である場合に、
該命令が実行されること、及び、分岐せず後続命令を実
行することが確定した時点、あるいは、該命令が実行さ
れないことが確定した時点で、それまで行っていた該分
岐命令プリフェッチを棄却することを特徴とする付記3
9に記載の方法。 (付記46)前記ステップ(a)において分岐予測が成
立している前記分岐命令が実行されること、及び、予測
された該分岐命令の分岐先命令を実行することが確定し
た時点で、それまで行っていた該分岐命令プリフェッチ
を棄却することを特徴とする付記40に記載の方法。 (付記47)更に、(e)命令の実行の結果、分岐命令
プリフェッチされるべき命令列を書き換える可能性があ
ることを検出するステップを備えることを特徴とする付
記39に記載の方法。 (付記48)前記ステップ(e)では、分岐命令プリフ
ェッチ要求を出した分岐命令自身のアドレス、及び、分
岐先命令アドレスを用いて、命令列の書き換えの可能性
を検出することを特徴とする付記47に記載の方法。 (付記49)命令が実行された結果、前記分岐命令プリ
フェッチされるべき命令列を書き換えることが判明した
場合、該分岐命令プリフェッチ要求を棄却することを特
徴とする付記47に記載の方法。 (付記50)前記分岐命令の分岐先命令のアドレスが求
められた時点で、前記キャッシュメモリに該アドレスに
対応する命令が確保されていない場合に、該キャッシュ
メモリへの前記下位メモリからの該分岐先命令の転送を
要求することを特徴とする付記39に記載の方法。 (付記51)前記ステップ(a)により分岐予測された
分岐命令の実行に際し、前記キャッシュメモリに、分岐
しない場合の命令アドレスに対応する後続命令列が確保
されていないと判明した場合には、該キャッシュメモリ
への前記下位メモリからの該後続命令列の転送を要求す
ることを特徴とする付記40に記載の方法。 (付記52)前記ステップ(a)、(b)は、前記分岐
先命令プリフェッチを行った命令列に対して命令プリフ
ェッチを行うことを特徴とする付記39に記載の方法。
延を生じさせる命令をプリフェッチすることにより、命
令処理の遅延時間を縮小することが出来る。
示す図である。
ある。
る。
る。
続して出さないようにするためのフラグ生成回路(シー
ケンシャルプリフェッチの場合)の構成例を示す図であ
る。
繰り返してプリフェッチ要求を行わせないようにするた
めのフラグを生成する回路例である。
プリフェッチの場合)の回路構成例を示す図である。
す図である。
の構成例を示す図である。
御装置へのデータ転送抑制信号を生成する回路例を示す
図である。
図である。
トリ内容を例示する図である。
順序回路の構成例を示す図である。
順序別信号生成回路の例である。
構成例を示す図である。
構成例を示す図である。
構成例である。
号を生成する回路の構成例である。
フラグを生成する回路の構成例である。
ャンセルのための回路例を示す図(その1)である。
ャンセルのための回路例を示す図(その2)である。
ルを行う信号を生成する回路例である。
書き換える可能性があることを検出する回路例を示す図
である。
明する概念図である。
ーチャートである。
要求が遅延する場合を説明する図である。
まうと問題となる場合について説明する図である。
である。
り替えるために必要となるフェッチポート選択回路の構
成例を示す図である。
定回路の構成例を示す図である。
ランチヒストリ検索回路を示す図である。
回路に適用した構成例を示す図である。
である。
成回路の構成例を示す図である。
す図である。
を示す図である。
要求信号の出力回路の構成例を示す図である。
遅延を説明する図である。
ータ 14〜17、20〜22、25、30−1〜30−3、
32、36、41−1〜41−4・・・、42、50、
51−1、51−2、52、53、71、73、80〜
83、94、95、122−1〜122−3、125−
0〜125−3、131ー1〜131−4。151−
1、151−2、153 AND回路 18、24、31、35、40−1、40−2、41、
45、52、54、72、84、96、102、12
6、130−1、130−2、152、215OR回路 19、23、26、101、200、201 フリ
ップフロップ 111、112 EXOR回路 150 減算器
Claims (10)
- 【請求項1】キャッシュメモリ手段と、それよりも下位
のメモリ手段と、該キャッシュメモリ手段に格納された
命令列を投機的に実行する手段を備えた命令制御装置に
おける命令のフェッチを制御する命令フェッチ制御装置
であって、 該キャッシュメモリ手段に命令フェッチ要求を出す命令
フェッチ手段と、 続いてフェッチ要求を予定している命令列が、該キャッ
シュメモリ手段に存在しない場合には、該キャッシュメ
モリ手段に、該下位メモリ手段から該予定命令列を事前
に転送しておく命令プリフェッチを行う命令プリフェッ
チ手段と、を備えることを特徴とする装置。 - 【請求項2】更に、 分岐命令の成立の可否、及び成立の際の分岐先アドレス
を予測する分岐予測手段と、 フェッチした命令列を格納するための1つ以上のバッフ
ァ手段とを備え、 前記命令プリフェッチ手段は、 該分岐予測手段によって分岐すると予測されたにも関わ
らず、該バッファ手段が空いておらず、かつ、前記キャ
ッシュメモリ手段内に、フェッチ要求を予定している分
岐予測先命令列が存在しない場合には、前記キャッシュ
メモリ手段に前記下位メモリ手段から該予測命令列を事
前に転送しておくことを特徴とする請求項1に記載の装
置。 - 【請求項3】前記命令プリフェッチ手段は、インタロッ
ク要因によって、通常行われるべき命令フェッチ要求が
出せない場合に、前記キャッシュメモリ手段に対して前
記命令プリフェッチを行うことを特徴とする請求項1に
記載の装置。 - 【請求項4】更に、前記命令プリフェッチを含む命令フ
ェッチの種別に応じた優先順位を設定し、該優先順位に
従って前記キャッシュメモリ手段に対する命令フェッチ
あるいは命令プリフェッチを、前記命令フェッチ手段あ
るいは命令プリフェッチ手段に行わせる優先順位決定手
段を備えることを特徴とする請求項1に記載の装置。 - 【請求項5】更に、前記命令プリフェッチによる前記キ
ャッシュメモリ手段への命令列転送中に、当該命令列の
命令フェッチが行われる場合、該命令フェッチが該命令
プリフェッチを受け継ぐ、あるいは、該キャッシュメモ
リ手段へ転送中の命令列を前記バッファ手段へバイパス
する制御手段を備えることを特徴とする請求項1に記載
の装置。 - 【請求項6】前記命令プリフェッチ手段は、同じアドレ
スもしくは同じキャッシュブロックに対する前記命令プ
リフェッチを連続して行わないことを特徴とする請求項
1に記載の装置。 - 【請求項7】前記命令プリフェッチ手段は、前記命令プ
リフェッチされた命令列に対する命令プリフェッチを行
うことを特徴とする請求項1に記載の装置。 - 【請求項8】キャッシュメモリ手段と、それよりも下位
のメモリ手段と、該キャッシュメモリ手段に格納された
命令列を投機的に実行する手段を備えた命令制御装置に
おける命令のフェッチを制御する命令フェッチ制御装置
であって、 該キャッシュメモリ手段に命令フェッチ要求を出す命令
フェッチ手段と、 条件分岐命令もしくは無条件分岐命令を実行する際に、
分岐成立する場合の分岐先命令アドレスを求めるアドレ
ス生成手段と、 該分岐命令の分岐する場合の分岐先命令アドレスが求め
られた時点で、前記キャッシュメモリ手段に該分岐先命
令の命令フェッチを要求する分岐先命令プリフェッチを
行う分岐先命令プリフェッチ手段と、を備えることを特
徴とする装置。 - 【請求項9】更に、 前記分岐命令の成立の可否、及び成立の際の分岐先アド
レスを予測する分岐予測手段を備え、 前記分岐命令プリフェッチ手段は、 該分岐予測手段により分岐予測された分岐命令の実行に
際し、分岐しない場合の命令アドレスの命令フェッチを
前記キャッシュメモリ手段に対して要求することを特徴
とする請求項8に記載の装置。 - 【請求項10】前記分岐先命令プリフェッチ手段は、前
記分岐先命令プリフェッチを行った命令列に対して命令
プリフェッチを行うことを特徴とする請求項8に記載の
装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000298837A JP3741945B2 (ja) | 1999-09-30 | 2000-09-29 | 命令フェッチ制御装置 |
US09/793,559 US6912650B2 (en) | 2000-03-21 | 2001-02-27 | Pre-prefetching target of following branch instruction based on past history |
US11/125,212 US20050198480A1 (en) | 1999-09-30 | 2005-05-10 | Apparatus and method of controlling instruction fetch |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27799199 | 1999-09-30 | ||
JP11-277991 | 1999-09-30 | ||
JP2000298837A JP3741945B2 (ja) | 1999-09-30 | 2000-09-29 | 命令フェッチ制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001166934A true JP2001166934A (ja) | 2001-06-22 |
JP3741945B2 JP3741945B2 (ja) | 2006-02-01 |
Family
ID=26552666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000298837A Expired - Fee Related JP3741945B2 (ja) | 1999-09-30 | 2000-09-29 | 命令フェッチ制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3741945B2 (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007510989A (ja) * | 2003-11-06 | 2007-04-26 | インテル・コーポレーション | 動的キャッシングエンジン命令 |
JP2008510258A (ja) * | 2004-08-17 | 2008-04-03 | エヌヴィディア コーポレイション | メモリへの様々なタイプのアクセスを予測するため、およびキャッシュメモリに関連付けられた予測を管理するための、システム、装置、および方法 |
US7783868B2 (en) | 2002-06-28 | 2010-08-24 | Fujitsu Limited | Instruction fetch control device and method thereof with dynamic configuration of instruction buffers |
EP2275927A2 (en) | 2009-06-30 | 2011-01-19 | Fujitsu Limited | Processor and instruction control method |
JP2015219550A (ja) * | 2014-05-14 | 2015-12-07 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
JP2016119120A (ja) * | 2011-05-20 | 2016-06-30 | 株式会社半導体エネルギー研究所 | 半導体装置及びその駆動方法 |
-
2000
- 2000-09-29 JP JP2000298837A patent/JP3741945B2/ja not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7783868B2 (en) | 2002-06-28 | 2010-08-24 | Fujitsu Limited | Instruction fetch control device and method thereof with dynamic configuration of instruction buffers |
JP2007510989A (ja) * | 2003-11-06 | 2007-04-26 | インテル・コーポレーション | 動的キャッシングエンジン命令 |
JP2008510258A (ja) * | 2004-08-17 | 2008-04-03 | エヌヴィディア コーポレイション | メモリへの様々なタイプのアクセスを予測するため、およびキャッシュメモリに関連付けられた予測を管理するための、システム、装置、および方法 |
EP2275927A2 (en) | 2009-06-30 | 2011-01-19 | Fujitsu Limited | Processor and instruction control method |
JP2011013864A (ja) * | 2009-06-30 | 2011-01-20 | Fujitsu Ltd | 命令制御装置、命令制御方法および演算回路 |
JP2016119120A (ja) * | 2011-05-20 | 2016-06-30 | 株式会社半導体エネルギー研究所 | 半導体装置及びその駆動方法 |
JP2015219550A (ja) * | 2014-05-14 | 2015-12-07 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
Also Published As
Publication number | Publication date |
---|---|
JP3741945B2 (ja) | 2006-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20050198480A1 (en) | Apparatus and method of controlling instruction fetch | |
US7437543B2 (en) | Reducing the fetch time of target instructions of a predicted taken branch instruction | |
US7159103B2 (en) | Zero-overhead loop operation in microprocessor having instruction buffer | |
US7222227B2 (en) | Control device for speculative instruction execution with a branch instruction insertion, and method for same | |
JP2744890B2 (ja) | ブランチ予測式データ処理装置および動作方法 | |
US10289415B2 (en) | Method and apparatus for execution of threads on processing slices using a history buffer for recording architected register data | |
JPH08234980A (ja) | 分岐先バッファを用いた分岐予測システム | |
JP2001166935A (ja) | プロセッサにおける分岐予測方法及びプロセッサ | |
JP2001243069A (ja) | 分岐予測装置及び分岐予測方法 | |
JP2839075B2 (ja) | 処理システムを動作させる方法及び処理システム | |
JPH0540627A (ja) | 並列演算処理装置 | |
US10073699B2 (en) | Processing instructions in parallel with waw hazards and via a distributed history buffer in a microprocessor having a multi-execution slice architecture | |
US5870579A (en) | Reorder buffer including a circuit for selecting a designated mask corresponding to an instruction that results in an exception | |
US10282205B2 (en) | Method and apparatus for execution of threads on processing slices using a history buffer for restoring architected register data via issued instructions | |
JP2002527798A (ja) | ストアアドレス生成およびユニバーサルな依存性ベクトルに基づくロードブロックのためのメカニズム | |
JP2001060153A (ja) | 情報処理装置 | |
JP3800533B2 (ja) | プログラムカウンタ制御方法及びプロセッサ | |
JP3683439B2 (ja) | 分岐予測を抑止する情報処理装置および方法 | |
JP3741945B2 (ja) | 命令フェッチ制御装置 | |
JP3839755B2 (ja) | 命令制御方法及びプロセッサ | |
JP2001100995A (ja) | 分岐履歴情報の書き込み制御装置及びその方法 | |
US6807624B1 (en) | Instruction control device and method therefor | |
EP0912927B1 (en) | A load/store unit with multiple pointers for completing store and load-miss instructions | |
EP0912930B1 (en) | A functional unit with a pointer for mispredicted branch resolution, and a superscalar microprocessor employing the same | |
JP3971780B2 (ja) | 命令制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050517 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050524 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050725 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050816 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051013 |
|
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: 20051108 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051109 |
|
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: 20081118 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091118 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101118 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101118 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111118 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111118 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121118 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121118 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131118 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |