JP2001060153A - 情報処理装置 - Google Patents
情報処理装置Info
- Publication number
- JP2001060153A JP2001060153A JP11236811A JP23681199A JP2001060153A JP 2001060153 A JP2001060153 A JP 2001060153A JP 11236811 A JP11236811 A JP 11236811A JP 23681199 A JP23681199 A JP 23681199A JP 2001060153 A JP2001060153 A JP 2001060153A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- output
- possibility
- fetch
- store
- 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
- 230000010365 information processing Effects 0.000 claims description 29
- 238000000034 method Methods 0.000 claims description 26
- 238000001514 detection method Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 36
- 239000000872 buffer Substances 0.000 description 25
- 230000008569 process Effects 0.000 description 10
- 230000015654 memory Effects 0.000 description 6
- 238000003672 processing method Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000002542 deteriorative effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000004904 shortening Methods 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
- 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/3812—Instruction prefetching with instruction modification, e.g. store into instruction stream
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
後続命令の内容が書き換えられる、命令上書きの可能性
を正確に判定する。 【解決手段】 1つの命令フェッチポートからフェッチ
され、最後にフェッチされた命令に連続する全ての命令
列の長さを検出する手段2と、その全ての命令列内の特
定位置に対応する命令のアドレスと、完了したストア命
令の実行結果が格納されるストア対象アドレスとを検出
する手段3と、手段2と3との出力を用いて、ストア命
令の実行結果が格納されることによって前述の全ての命
令列内の命令の内容が書き換えられる可能性を検出する
手段4とを備える。
Description
式を採用した情報処理装置に係り、更に詳しくは主記憶
装置に対して命令実行結果を書き込む処理を含む命令、
例えばストア命令によって、その後続命令の内容が書き
換えられる命令の上書きの可能性を検出する情報処理装
置に関する。
イン処理方式、スーパスカラ処理方式、あるいはアウト
オブオーダ処理方式などを採用した情報処理装置におい
ては、1つの命令の実行の終了を待たずに、後続の命令
列が次々と(プリ)フェッチされてパイプラインに投入
され、次々と命令の実行が開始されることによって、性
能の向上が図られている。
令であって、その実行結果が主記憶装置に書き込まれる
場合に、その書き込まれる内容がすでにプリフェッチさ
れて例えば命令バッファに格納されてしまっている命令
の内容を書き換えるものである場合には、当然書き換え
られる前の命令を実行すべきものではなく、書き換えら
れた後の命令を実行する必要がある。このようにすでに
フェッチされている命令の内容が先行のストア命令の完
了によって書き換えられる可能性は常に存在する。その
ため、この命令上書きの可能性を考慮して命令実行の制
御を行う必要がある。
の内容書き換えを結果的に実行するストア命令の実行完
了までに行われる必要がある。そうでない場合には、特
にそのストア命令がその直後にある命令を書き換えるよ
うな場合に、書き換えられる前の誤った命令が実行され
ることになる可能性が高い。従って、この命令上書きの
可能性を素早く判断するための方法として、簡単な上書
き判定回路を用いて判定時間を短くするか、または主記
憶装置に命令実行結果を書き込むストア命令が存在する
時には命令パイプラインの流れを制限することにより、
上書き可能性の判定時間を確保するか、どちらかの方法
を取る必要があった。
在する場合には、そのストア命令の実行結果が確定する
まで命令フェッチ動作を制限して、命令パイプライン上
に存在する命令列の長さが一定以下になるように制御し
て判定回路を簡易化し、上書き可能性を判定する時間を
短くするような方法が取られていた。しかしながら、ス
トア命令はしばしば用いられているため、命令列の中に
ストア命令が現われるたびに命令パイプラインが一旦停
止することになり、処理性能が著しく落ちるという問題
点があった。
令実行に先立ってフェッチされる命令の格納用の命令バ
ッファにすでに格納されている命令列、および既に実行
中または実行完了した命令のうちで判定対象となる命令
列の長さを正確に検出し、1つの命令ポートからフェッ
チされた命令の内容が書き換えられる命令上書き可能性
を正確に判定することによって、情報処理装置の処理性
能を向上させることである。
ブロック図である。同図は命令をフェッチするための命
令フェッチポートを1つ以上備え、その命令フェッチポ
ートからフェッチされた命令の上書き可能性を検出する
情報処理装置の原理構成ブロック図である。
命令フェッチカウンタであって、1つの命令フェッチポ
ートからフェッチされ、最後にフェッチされた命令を含
み、該命令に連続する全ての命令列の長さを検出するも
のであり、本発明の1つの実施形態において1回のフェ
ッチでフェッチされる命令列長が一定である時にはフェ
ッチの回数をカウントして命令列の長さを検出し、また
異なる実施形態においては1回毎のフェッチでフェッチ
される命令列のそれぞれの長さを加算して、命令列の長
さを検出することができる。
令列内の特定位置に対応する命令のアドレス、例えば最
後にフェッチされて命令バッファに格納されている命
令、またはその次の命令のアドレスIARと、完了した
ストア命令の実行結果が格納されるストア対象アドレス
OARとを検出するものである。
出手段2、アドレス検出手段3の出力を用いて、ストア
命令の実行結果が主記憶装置に格納されることによっ
て、命令バッファにすでに格納されている命令やすでに
実行開始されている命令等の内容が書き換えられてしま
う命令上書き可能性を検出するものである。
可能性判定手段4は前述のストア対象アドレスに格納さ
れるストア命令の実行結果としてのストアデータのデー
タ長を更に用いて、命令上書き可能性を検出することも
できる。
書き可能性判定手段4が命令上書きの可能性があると判
定した時、その判定の時点からストア命令の完了時点ま
で、命令の実行完了を一命令のみずつ行わせる命令実行
完了制御手段を情報処理装置が備えることもできる。
制御手段を持つことによって、従来のように、ストア命
令が現われるたびに命令フェッチ動作を制限するような
ことは不必要となり、特に実際にはストア命令による命
令の上書きが起こらないような多くの命令列においては
格段の処理性能向上が期待できる。また回路規模につい
ても、命令のステージ数や命令バッファの大きさには無
関係に、命令フェッチポートの数にのみ依存する制御回
路を設けるだけで済み、回路構造も簡単になる。
不等式の判定を基本的に多入力加算器を用いて実行する
ことにより、原理的に命令上書きの判定のミスを防ぐこ
とができる。そのような情報処理装置においては、1つ
の命令フェッチポートからフェッチされ、最後にフェッ
チされた命令を含み、該命令に連続する全ての命令列の
長さをカウントする命令フェッチカウンタ手段、例えば
命令フェッチカウンタと、その全ての命令列内の特定位
置に対応する命令のアドレスと、完了したストア命令の
実行結果が格納されるストア対象アドレスと、命令フェ
ッチカウンタの出力値とを用いて、ストア対象アドレス
の範囲の少なくとも一部が、前述の全ての命令列内の命
令のアドレスと重なり、その命令列の少なくとも一部が
書き換えられる命令上書きの可能性を検出する命令上書
き可能性判定手段、例えば多入力加算器とが備えられ
る。
入力加算器は、更にストア対象アドレスに格納されるス
トア命令の実行結果としてのストアデータのデータ長を
用いて、命令上書き可能性を検出することもできる。
に判定ミスを防ぐことが可能となるが、特にアウトオブ
オーダ方式を採用する場合には、問題となるストア命令
が非常に早く完了する場合も想定されるため、多入力加
算器を用いて正確な計算を行う時間が確保できないこと
も予想される。このような場合には、信号の遅延を抑制
するために、ある程度簡単な回路を用いる必要がある。
そこで本発明の実施形態においては、多入力加算器の代
わりに2入力の加算器や、セレクタ回路、および簡易な
演算回路を組み合わせて使用することにより、判定の正
確さを保ちつつ、高速な演算を行うことができる。
き可能性判定手段が減算結果の絶対値が小さい時にのみ
正確な演算結果を出力する減算回路を備えることもでき
る。この減算回路は、上位ビット側と下位ビット側とで
それぞれ独立に減算を行う上位側減算回路と下位側減算
回路とを備え、上位側減算回路の出力が0,−1、また
は−2である時、下位側減算回路の出力するキャリー出
力、および減算結果の符号に応じて、減算結果の絶対値
が小さいことを示す信号と共に下位側減算回路の出力を
減算結果として出力するものである。
遅延を抑え、規定の時間内に命令上書きの判定を行うた
めである。すなわち命令の上書きが行われる可能性が高
い場合は、ストア対象アドレスと前述の特定位置に対応
する命令のアドレスとの差の絶対値が小さい場合であ
り、その場合には正確な計算結果が必要になるが、その
差の絶対値が大きい場合には上書きされる可能性は存在
せず、その差が大きくなるということだけが判断できれ
ば上書き可能性が存在しないということが判定できると
いう事実を利用したものである。その事実はフェッチさ
れる命令列の長さも、ストア対象のデータのデータ長
も、値が小さいことに起因している。
上書き可能性判定手段が、演算対象となる2つの数に桁
違いの差がある時に加算または減算を行う演算回路を備
えることもできる。この演算回路は、下位ビット側では
絶対値の小さい数のデータ幅以上の加算、または減算を
行って演算結果を出力し、上位ビット側では下位ビット
側での演算の結果キャリー出力がある時には絶対値の大
きい数の上位ビットを1だけインクリメント、またはデ
クリメントして上位側の演算結果とし、キャリー出力が
ない時は絶対値の大きい数の上位ビットをそのまま演算
結果として出力するものである。
ア命令による実行結果が格納されるストア対象アドレス
が判明した時点を起点として、先行してフェッチ、ある
いは実行されている後続命令の上書きの可能性を高速に
判断することが可能となり、ストア命令の存在のために
命令パイプラインの流れを制限する必要がなくなる。
を検出する情報処理装置の全体構成ブロック図である。
この情報処理装置はスーパスカラ方式、およびアウトオ
ブオーダ処理方式を採用しているものとして、まず全体
の動作を説明する。
10によって選択され、命令アドレスレジスタ11に格
納された内容を用いて、命令アドレス生成回路12によ
って命令アドレスが生成され、キャッシュ13からフェ
ッチされる命令の内容が読み出されて、2つの命令バッ
ファ14aまたは14bのいずれかに格納される。この
ような動作は命令フェッチのパイプライン、すなわち命
令アドレス生成のIAサイクル、キャッシュ13におい
てアドレス変換を行うITサイクル、フェッチされた命
令を命令バッファにセットするIBサイクル、フェッチ
された命令が正しいことを保証するIRサイクルの4ス
テージ構成のパイプラインで実行される。
ら出力された命令は、セレクタ15を介して命令デコー
ダ16によって解読され、その命令がストア命令である
場合にはストア命令実行処理部19に与えられ、他の種
類の命令である場合にはその他の命令実行ユニットに与
えられる。ストア命令の場合には、ストア命令実行処理
部19からの指示に応じて、オペランドアドレス生成回
路17によってストア命令の実行結果が格納されるべき
オペランドアドレスが計算され、キャッシュ18に与え
られる。またストア命令実行処理部19の処理が完了す
ると、その後命令実行完了処理部20による処理が実行
される。
るDサイクル、オペランドアドレスを計算するAサイク
ル、例えばストア命令実行処理部19などの命令実行ユ
ニットにおいて命令を実行するXサイクル、レジスタや
メモリの更新を行うUサイクル、命令実行結果の書き込
みなどの実行完了処理を行うWサイクルなどで構成され
ている。命令フェッチ部、命令デコーダ、オペランドア
ドレス生成回路、命令実行ユニット、および実行完了処
理部はそれぞれ連携して動作を行うが、基本的にアウト
オブオーダ方式が採用されているため、命令フェッチの
順序に無関係に、処理可能と判断された命令から次々と
実行される。
フェッチポートが設けられており、それぞれの命令フェ
ッチポートA,Bは、1回の命令のフェッチで例えば1
6バイトの命令列を読み込み、48バイト(3回分)の
命令バッファ14a、または14bにその命令列が格納
される。1回の命令フェッチでフェッチされる命令長が
16バイト一定とすれば、命令フェッチ要求が出された
時点で、その要求を出した命令フェッチポートに対応す
る命令フェッチカウンタ25、または26の値がインク
リメントされる。またITサイクルでの命令アドレス
が、命令フェッチポートA,Bにそれぞれ対応する命令
アドレスレジスタ23、または24に格納される。
回路部32の内部で主要な役割を果たすものが、ストア
命令による後続命令の上書き可能性判定回路27,28
である。これらの判定回路27、または28は、2つの
命令フェッチポートA,Bのそれぞれに対応して上書き
可能性があることを示す信号を、オアゲート29を介し
て命令実行完了処理部20に出力する。上書き可能性の
判定のために、それぞれの命令フェッチポートに対応す
る命令アドレスレジスタ23,24、命令フェッチカウ
ンタ25,26の格納内容、およびストア命令の命令実
行結果が格納されるオペランドアドレス、すなわちオペ
ランドアドレス生成回路17の出力が格納されるオペラ
ンドアドレスレジスタ30の格納内容が用いられる。
ートA,Bのうちの1つがカレントポートであり、カレ
ントポート側の命令バッファ14a、または14bから
順次命令がデコードされ、命令実行パイプラインに流さ
れる。カレントポートでないもう一つの命令フェッチポ
ートは、分岐命令の分岐の有無を予測する分岐予測機構
を用いて分岐予測先の命令列を読み込むためのものであ
り、その命令フェッチポートの動作は対応する命令バッ
ファ14a、または14bが一杯になった時点で一時中
断され、分岐予測が成立した場合には、そのポートがカ
レントポートに切り替わって命令実行が続けられ、命令
フェッチ動作が再開される。
た側の命令フェッチポートは使用されなくなり、そのポ
ートは開放されると共に、そのポートに対応する命令フ
ェッチカウンタ25、または26がリセットされる。ま
た分岐予測の失敗や割り込み処理の発生など様々な理由
で再命令フェッチ、すなわち命令処理のリトライが行わ
れる場合には、全ての命令フェッチポートが開放される
と共に、全ての命令フェッチカウンタ25,26がリセ
ットされる。
の流れを中心にして更に説明する。(1)は分岐予測が
成立した場合、または再命令フェッチを行う場合の命令
アドレスであり、セレクタ10に選択制御信号として分
岐予測成立、あるいは再命令フェッチなどを指示する信
号(8)が与えられた場合に、信号(1)が選択され
る。
るプロセスステート信号(7)がオンになった時点で、
命令アドレスレジスタ22の内容がセレクタ10によっ
て選択される。このプロセスステート信号は割り込みが
起きていない通常の実行状態であることを示す信号であ
り、上書き可能性のあるストア命令が実行完了された時
点でこのプロセスステート信号を一旦オフとし、その後
再びオンとすることによって、命令実行完了処理部20
から出力される、次に実行完了すべき命令の命令アドレ
スが格納された命令アドレスレジスタ22の内容を用い
て命令フェッチを行うことによって、上書きされる可能
性のある後続命令が再度フェッチし直して実行されるこ
とになり、正しい命令を実行することが可能となる。
が与えられていない時には、セレクタ10は命令アドレ
ス生成回路12の出力する、フェッチされる命令のアド
レス(2)を選択し、それを命令アドレスレジスタ11
に与えることによって、次の命令のアドレスが命令アド
レス生成回路12によって生成されることになる。
フェッチポートA,Bに対するクリア信号(4),
(5)がそれぞれ命令フェッチカウンタ25,26に与
えられる。また命令の上書きの可能性がある場合には、
オアゲート29から後続命令の上書き可能性を示す信号
(14)が命令実行完了処理部20に出力される。
ュ18に対してストアデータ(12)が与えられると共
に、判定回路部32の内部の上書き可能性の判定回路2
7,28に対してストア命令の実行結果としてのストア
されるデータの長さ(13)が与えられ、更に命令実行
完了処理部20に対して命令完了報告信号(10)が出
力される。なお、ここでは例えばストア命令実行処理部
19内の図示しないレジスタに格納されている実行結果
を(キャッシュ)メモリに書き込むものとして実施形態
を説明するが、メモリからメモリに書込みを行う場合に
も本発明を適用できることは当然である。
ッシュ18から主記憶部からのストアデータ受領信号
(15)が与えられ、命令実行完了処理部20から命令
アドレスレジスタ22に対しては前述のように次に実行
完了すべき命令の命令アドレス(11)が与えられ、割
り込み処理制御部21に対しては命令の上書き可能性が
あると判定された場合に後続の命令の中止、破棄を指示
する信号(3)が出力され、また判定回路部32の内部
の命令フェッチカウンタ25,26に対して、前述のよ
うにそれぞれの命令フェッチポートに対応するクリア信
号(4),(5)が出力される。
完了処理部20からの後続命令の中止、破棄を指示する
信号(3)の入力の時点で、CPU全体に命令実行の中
止を指示する(後述するリストア_ステート信号と同
じ)割り込み発生信号(9)が出力されると共に、後続
命令の中止、破棄が行われた後に、前述のプロセスステ
ート信号(7)がセレクタ10に対して選択制御信号と
して出力される。
方法の説明図である。同図において図2の命令バッファ
には例えば5回分のフェッチされた命令列が格納されて
いるものとし、最も右側、すなわち最初にフェッチされ
た命令列がデコードされて命令処理に用いられるものと
する。そして例えば最後にフェッチされた1回分(F)
の命令のアドレスが、前述のITサイクルにおいて2つ
の命令アドレスレジスタのいずれかに与えられるIAR
を示すものとする。
すなわち前述のストア命令の実行結果が格納されるオペ
ランドアドレスがどの位置にあり、ストア対象範囲S、
すなわちストアされるデータのデータ長がどの位である
かによって、ストア対象範囲(のデータ)Sがn回分フ
ェッチされた命令列を書き換える命令上書きについて
は、次の不等式が成立する時にその可能性があるものと
判定される。
対応し、OARが図3の右側または中央に示されるよう
な位置にあれば命令上書き可能性があると判定される。
左側の不等式はIAR−OARが負の場合に対応し、O
ARが図3の左側にあるような場合に上書き可能性があ
ると判定される。
ち最初にフェッチされた1回分の命令列がデコードされ
て命令処理に用いられるものとしたが、これは本発明の
実施形態としてはむしろ特殊な場合であり、デコードさ
れて命令処理に用いられる命令列は、例えば右から3番
目の、3回目にフェッチされた命令列であっても全く差
し支えない。
のフェッチされた命令が全て図2の命令バッファ14
a、または14bに格納されている場合であり、命令上
書きの可能性の判定対象となる命令列は全て命令バッフ
ァに格納されていることになるが、例えば3回目にフェ
ッチされた命令列がデコードされて命令処理に用いられ
る場合は、その前の2回分のフェッチされた命令列に対
する命令実行はすでに開始されており、一部の命令実行
は完了している場合もあり得ることになる。
えば分岐命令で分岐が成立した場合を起点として、1つ
の命令フェッチポートでフェッチされ、最後にフェッチ
された命令を含み、その命令に連続する全ての命令列が
命令上書きの判定対象となる。そこで判定対象となる命
令列の命令は、一般に命令バッファに格納されている命
令だけでなく、すでに命令の実行が開始され、または命
令実行が完了した命令をも含むことになる。
なる命令列の長さは、前述のように命令フェッチカウン
タによってカウントされるが、そのカウントの起点は例
えば分岐が成立した分岐命令によって命令シーケンスが
代わる点、すなわち前述のようにフェッチポートの切り
替えが行われる点であり、分岐命令による分岐先の命令
が起点とされてカウントが行われる場合と、例えば分岐
予測に失敗した時などに再命令フェッチが行われ、パイ
プラインがクリアされる時点が起点となってカウントが
行われる場合とがある。そこで例えば分岐が成立する分
岐命令がなかなか出て来ないような場合には、判定対象
となる命令列の長さはかなり長くなることもあるが、そ
のような場合にもその長い連続する命令列全体が命令上
書きの判定対象として、上書き可能性の判定が行われ
る。
は、分岐成立前の命令列に対する上書き可能性の判定は
以前のカレントポート側で行われ、また再命令フェッチ
が行われる場合にそれより以前の命令に対する処理は完
了しており、判定対象として考える必要はなく、命令フ
ェッチカウンタのクリアが行われた以後のストア命令の
影響が及ぶ範囲は判定対象として全てカバーされること
になる。
クリアを含むフェッチポートの解放は次の2つの条件の
いずれかが成立した時に実行される。第1の条件は、分
岐予測が成立したことが確認され、カレントフェッチポ
ートが分岐予測先の側に切り替えられ、それまでカレン
トポートであった命令フェッチポートのクリアが必要と
なることである。第2の条件は、例えば分岐予測失敗や
その他の原因によって、後続の正しい命令列の処理を命
令のフェッチからやり直す再命令フェッチや、割り込み
などに伴い、全ての命令フェッチポートと実行パイプラ
イン全体のクリアが必要になることである。このいずれ
かの条件が成立した時に、後述する命令フェッチカウン
タのクリアなどが行われる。
すブロック図である。同図において命令フェッチカウン
タはインクリメンタ41と、データフリップフロップ
(D−FF)42から構成されている。インクリメンタ
41の片方の入力には、現在のカウンタ値としてのプリ
フェッチオーダ_カウンタ_X(PFO_CTR_X,
nビット)が入力される。ここでXには命令フェッチポ
ートに対応してA、またはBのいずれかが用いられる。
インクリメンタ41のもう一方の入力には、対応するポ
ートA、またはBへのフェッチリクエスト要求(FCH
_リクエスト_ポート_X)が入力され、フェッチリク
エスト要求がある毎に、カウンタ値としてのPFO_C
TR_Xの値はインクリメントされ、D_FF42に入
力される。なお図2の命令バッファ14a、または14
bが一杯となり、空きが無い場合にはFCH_リクエス
ト_ポート信号は出力されず、カウンタ値PFO_CT
R_Xの値はインクリメントされない。
のPFO_CTR_Xであり、クロックの入力時点でD
入力端子に与えられている値がカウンタ値として出力さ
れ、命令フェッチポートを解放する信号クリア_ポート
_Xの入力時点でカウンタ値はリセットされる。
例のブロック図である。図4の命令フェッチカウンタ
が、1回でフェッチされる命令列の長さが一定の場合
に、フェッチされる回数をカウントするのに対して、図
5のカウンタはフェッチされた命令のバイト数を積算す
るものである。
命令のフェッチや再命令フェッチが行われる場合におい
て、最初の1回のフェッチは必ずしも16バイトではな
く、フェッチされる命令の先頭アドレスの下位3ビット
(=x)に応じて(16−x)バイトフェッチされ、一
般に次々と後続命令のフェッチを行う場合には8バイト
アラインされているために、16バイトずつのフェッチ
が可能である場合を想定した構成となっている。
る命令の先頭アドレスの下位3ビットが減算され、16
−xバイトがフェッチ(FCH)_バイト(4ビット)
として求められ、その結果が現在のカウンタ値としての
ポート_X_フェッチ_バイト(kビット)と加算器4
4によって加算され、その加算結果はD−FF45のD
入力端子に与えられる。なお最初のフェッチから16バ
イトフェッチされる場合は減算器43は不要である。
_ポート_X信号がLである場合には、D−FFの動作
は抑制(インヒビット)されるが、そうでなければクロ
ック入力時点で入力端子Dへの入力信号がカウンタ値
(ポート_X_フェッチ_バイトの値)として出力され
る。そしてリセット端子にクリア_ポート_X信号が入
力された時点で、カウンタ値はリセットされる。
した命令上書き可能性判定回路の構成例である。この回
路は、前述の命令上書きの可能性を示す不等式の右側が
成立することを示す信号として、IAR_マイナス(M
N)_OAR_ビット_1_X_オール_0を出力する
ものである。
71 〜47n+1 には、IARとOARとの差(Nビッ
ト)のビット反転信号のそれぞれ上位ビットが与えられ
る。mは1回の命令フェッチでフェッチされる命令列長
(命令の数)である。前述のように1回のフェッチで1
6バイトの命令列がフェッチされるものとすると、mは
4となる。従って一番下のアンドゲート47n+1 の入力
としては、IARとOARとの差のビット反転結果のう
ちで下位4ビットを除く上位N−m=N−4ビットが与
えられることになる。
タのカウント値(プリフェッチオーダ_カウンタ_X)
が0の場合、その命令フェッチポートが有効であれば1
回の命令フェッチが行われていることになり、(1)式
の右側の不等式、すなわちIARとOARとの差が正の
範囲を判定する場合にはこの差が16(=F×0+S)
より小さいことを判定できれば、命令上書き可能性があ
ると判定できることになる。但しここではストア命令の
実行結果としての主記憶への書き込みデータ長Sは最大
16バイトであるとし、それが実際に16バイトより小
さくても16バイトの書き込みがあるものとして扱う。
従って実際の書き込みデータ長が小さい場合には、誤判
定の危険性が残っている。
いうことは、15以下であり、2進数に直した時には下
位m=4ビット以外は全て0となる。従ってその反転結
果において上位N−4ビットは全て1となり、アンドゲ
ート47n+1 の出力、従ってアンドゲート48n+1 およ
びオアゲート49の出力はHとなり、右側の不等式が成
立したことを示す信号がオアゲート49から出力され
る。
すなわちその最下位ビット(nビット目)が1の場合に
は、2回以下の命令フェッチが行われていることにな
り、IARとOARとの差が32(=F×1+S)より
小さいことを判定できればよい。すなわち2進数で下位
m+1=5ビット以外は0である。このためアンドゲー
ト47nの出力、48nの出力、オアゲート49の出力
が1となり、右側の不等式が成立したことを示す信号が
出力される。
または3の時には、4回以下の命令フェッチが行われて
いるため、IARとOARとの差が64(F×3+S)
より小さいことを判定できればよい。すなわち2進数で
は下位m+2=6ビット以外が0であることになり、図
示しないアンドゲート47n-1 、すなわちIARとOA
Rとの差の反転結果のうち上位N−m−2=N−6ビッ
トが入力されるアンドゲートの出力が1となり、その出
力がこれも図示しない、カウンタ値nビットのうちで
(n−1)ビットの値が入力されるアンドゲート48
n-1 の出力と、オアゲート49の出力が1となり、右側
の不等式が成立することを示す信号が出力される。
下の時には、8回以下の命令フェッチが行われているこ
とになり、IARとOARとの差が128(=F×7+
S)より小さいことを判定できればよい。すなわち2進
数で下位m+3=7ビット以外が0であり、図示しない
下位7ビット以外のビット反転結果が入力されるアンド
ゲートの出力が1となり、この出力がカウンタ値の(n
−2)ビット目の値(=1)によって選択されることに
より、オアゲート49から右側の不等式の成立を示す信
号が出力される。以下同様である。
図においてはIARとOARの減算結果をビット反転し
た値のうち、例えば上位N−n−4ビットは分離されて
アンドゲート51のみに与えられ、それより下位ビット
がアンドゲート481 〜48 n+1 とオアゲート49によ
って構成されるアンド−オアセレクタの前段に位置する
アンドゲートに出力される。
IARとOARとの差のビット反転結果のうち、上位か
らN−n−3ビット目からN−4ビット目までが入力さ
れ、これらの値が全て1であれば、アンドゲート48
n+1 、オアゲート49の出力が1となり、このとき更に
上位のビットが全て1であってアンドゲート51の出力
が1となればアンドゲート52の出力、すなわち右側の
不等式の成立を示す信号がアンドゲート52から出力さ
れる。
51とによって、実質的に図6のアンドゲート47nと
同様の動作が行われ、アンドゲート52から右側の不等
式の成立を示す信号が出力される。一般にゲートへの入
力数に比例して遅延が増大すること、および(IAR−
OAR)の演算においても上位ビットの計算が遅れるこ
とから、図7の構成をとることによって図6の回路に比
較して信号遅延を抑えることができる。
を利用して前述の不等式全体の成立を示すストアインス
トラクションストリーム(STIS)インレンジ信号を
出力する回路の構成図である。
力、すなわち右側の不等式の成立を示す信号がオアゲー
ト54の一方の入力に入力される。オアゲート54への
もう一方の入力はアンドゲート53の出力である。アン
ドゲート53に対してはIARとOARとの差そのもの
の、上位(N−4)ビットの値が与えられる。アンドゲ
ート53は前述の不等式のうち左側の不等式の成立を判
定するものであり、IARとOARとの差が−F、すな
わち−16より大きいこと、言いかえるとIARとOA
Rとの差が負であり、しかもその絶対値が15以下であ
ることを判定するために、下位4ビットを除く全ての上
位ビットの値が1であることを検出するものである。
の不等式のうち左側の不等式、または右側の不等式のい
ずれかが成立し、その出力がフェッチポートが有効であ
ることを示すフェッチ_ポート_バリッド信号と共にア
ンドゲート55に入力されることにより、アンドゲート
55から命令上書き可能性を示すストアインストラクシ
ョンストリーム(STIS)_イン_レンジ信号が出力
される。
に対応するSTIS_イン_レンジ信号から、全体とし
て命令上書きの可能性があることを示す信号(STI
S)を出力する全体判定回路であり、オアゲート56は
ポートA、またはBに対応して命令上書き可能性を示す
信号が入力された時点で、全体としての命令上書き可能
性を示す信号STISを出力する。
を示す判定回路の更に異なる変形例の構成図である。前
述のように、図6ではストア命令の実行結果として主記
憶装置に書き込まれるデータのデータ長は16バイト一
定であるものとして扱ったが、図10はこれが16バイ
ト以下、あるいは256バイトのいずれかである場合の
判定回路の構成例である。16バイト以下の場合には、
図6におけると同様に命令フェッチカウンタの出力nビ
ットがセレクタ59によってそのまま用いられ、図6に
おけると全く同様の動作が行われる。
れる場合には、256バイト_ストア_バリッド信号が
Hとなり、加算器58の出力がセレクタ59によって選
択されて、アンド−オアセレクタの選択制御に使用され
る。加算回路58は命令フェッチカウンタの値nビット
に15を加算するものである。主記憶装置に書き込まれ
るデータのデータ長がS=256バイトであり、1回の
フェッチバイト数がF=16バイトの場合には前述の
(1)式は −F<IAR−OAR<16×(n+15) となり、命令フェッチカウンタの値に15を加算したも
のをアンド−オアセレクタの選択制御信号として用いる
ことができる。ストアされるデータのデータ長が256
バイト以外の値を取る時にも、同様にして命令フェッチ
カウンタの値に対応する値を加算することによって、命
令上書き可能性を判定することが可能となる。
可能性が検出された場合の、後続命令に対する制御につ
いて説明する。図11は、図9のオアゲート56から後
続命令の上書き可能性を示すSTIS信号が出力されて
から、該当するストア命令が完了したことを示すコミッ
ト_ストア信号(図2の命令完了報告信号(10)と同
じ)が入力されるまでの間、複数の命令を同時に完了さ
せないようにする、すなわち命令を1つずつしか完了さ
せないようにすると共に、コミット_ストア信号が入力
した時点で、実行が開始されているにもかかわらず、完
了していない命令に関する処理を中断させ、すでに命令
バッファにフェッチされている命令列を破棄するため
の、後続命令制御回路の構成ブロック図である。この回
路は図2の命令実行完了処理部20内に設けられる。
ロップ63は、STIS信号の入力時点でセットされ、
その出力Qとして複数命令を同時に完了させないように
するために使用される信号、STIS_再命令フェッチ
(REIFCH)_ペンディング信号が出力される。そ
してコミット_ストア信号がリセット端子に入力された
時点で出力Qがリセットされると共に、アンドゲート6
4から、実行完了していない命令の中断処理やすでにフ
ェッチされている命令列を破棄するために使用される信
号としての、コミット_STIS_REIFCHが出力
される。
出された時点から該当するストア命令が完了するまでの
間、命令を1つずつしか完了させないようにする理由に
ついて説明する。前述のように、本発明の実施形態にお
いてはスーパスカラ方式が用いられており、例えば3つ
の命令を同時に完了させることが可能である。しかしな
がらアウトオブオーダ方式においても、命令の実行開始
は実行開始が可能となったものから命令の実行順序に無
関係に開始することができるが、命令の完了はインオー
ダで行われなければならず、命令はその実行順序に従っ
て完了させる必要がある。
のリザベーションステーションとしての、コミットスタ
ックエントリ(CSE)が使用される。CSEには命令
1つ1つに対応してエントリが設けられ、そのエントリ
それぞれに対応して命令の開始と完了が制御される。
って初めて実行されたことになり、実行完了されていな
い命令は論理的には実行されてないものと等しい。そし
て後続命令を上書きする可能性のあるストア命令が実行
完了するためには、そのストア命令の前の命令列は全て
実行完了している必要がある。あるいはそのストア命令
と同じサイクルにおいて実行完了する必要がある。
令の上書き可能性の判定を終える必要がある。その理由
は、ストア命令のWサイクルと同じタイミングで後続命
令も完了してしまう可能性が存在するためである。
する命令が1つ、または2つ同時に完了する場合であ
り、もしもそのストア命令によって同時に完了する命令
が上書きされる可能性がある場合には、同時に完了する
命令は誤ったまま実行完了してしまう可能性があること
になる。このため本発明の実施形態においては、後続命
令を上書きする可能性のあるストア命令が検出された時
には、そのストア命令が完了するまでは1つずつしか命
令を完了させないことによって、そのストア命令の後続
命令が1つでもそのストア命令と同時に完了することを
避けるための制御が行われる。
令はシステムにおいて可能な限り最大限多数完了させる
仕組みが用いられている。従って完了可能な命令が複数
あるにもかかわらず、いくつかを選択的に完了させる仕
組みは一般的には用いられていない。そこで図11では
複数の命令を同時に完了させるのでなく、命令は1つず
つしか完了させないようにすることによって比較的制御
回路を簡単にして、後続命令を書き換える可能性のある
ストア命令が完了するまでの制御が行われる。
完了させないための制御回路の構成図である。この回路
も命令実行完了処理部20内に設けられる。前述のよう
に、本発明の実施形態においては3つの命令を同時に完
了させることが可能となっているが、その3つの命令は
前述のコミットスタックエントリ(CSE)の3つのエ
ントリ、すなわちトップ、セカンド、サードのエントリ
に対応している。ここでトップのエントリは最も実行順
序の古い(最初に完了させるべき)命令に対応し、サー
ドのエントリは最も実行順序の新しい(最後に実行完了
させるべき)命令に対応するエントリである。
を完了させるべきことを示す信号が、CSEからコンプ
リート信号として、トップのエントリに対してはバッフ
ァ65に、セカンドおよびサードのエントリに対して
は、アンドゲート66,67の一方の入力端子に入力さ
れる。
らはそれぞれのエントリに対応する命令に関する完了処
理、すなわち実行結果のレジスタへの書き込みや、メモ
リへの書き込み動作などを指示するための、レジスタの
管理部やメモリ、キャッシュなどに与えられるコミット
信号が出力されると共に、これらの出力はCSEの該当
するエントリを無効にして、CSEに対するポインタ
(トップエントリを指し示すポインタ)を、次に実行完
了すべき命令に対応するエントリに移動させるために使
用される。
STIS_REIFCH_ペンディング信号は、インバ
ータ68によって反転されて2つのアンドゲート66,
67のそれぞれ一方の入力端子に与えられる。従ってS
R−FF63の出力QがHである間は、アンドゲート6
6,67からはCSEのセカンドエントリ、およびサー
ドエントリに対応するコミット信号が出力されず、対応
するエントリに関連する命令の完了動作は実行されず、
その命令は完了待ちとなる。
令の上書き可能性が検出された時点から、そのストア命
令の実行が完了するまで、図11,図12とやや異なる
制御を後続命令に対して行う制御回路の構成図である。
これらの回路も命令実行完了処理部20内の回路であ
る。図13,図14においては、上書き可能性が検出さ
れた時点からそのストア命令の実行が完了するまでの間
は、同時に実行完了するものの中にストア命令がなけれ
ば複数の命令を同時に完了させ、あればそのストア命令
までを同時に完了させる制御を行うものである。
におけるFF63と同様にSTIS信号の入力時点でセ
ットされ、その出力QはHとなる。そしてオアゲート7
2の出力としてのコミット_ストア信号の入力時点でリ
セット待ち(次のクロックでリセット)にされると同時
に、アンドゲート71から図11のアンドゲート64の
出力と同じコミット_STIS_REIFCH信号が出
力される。
リに対応して実行完了可能な信号がストアポートを使用
することを示す信号、すなわち対応する命令がストア命
令であることを示す信号が入力される。そして3つのエ
ントリに対応する命令の1つでもストア命令であれば、
オアゲート72からコミット_ストア信号が出力される
ことになる。一方バッファ73に対してはトップエント
リに対応するコミット_ユーズ_ストアポート(SP)
信号が与えられ、バッファ73の出力としてはトップエ
ントリに対応する命令のみが実行完了可能であることを
示すコミット_オンリ−信号が出力される。この出力
は、図14で説明するようにトップエントリに対応する
命令だけに関して実行完了処理を行わせるために使用さ
れる。
トップとセカンドの2つのエントリだけに対応して命令
を実行完了させるために用いられるコミット_オンリー
信号であり、この出力はトップエントリに対応するコミ
ット_ユーズ_ストアポート信号がLで、インバータ7
5の出力がHとなり、かつセカンドエントリに対応する
コミット_ユーズ_ストアポート信号がHの時に、Hと
なる。すなわちセカンドエントリに対応する命令が該当
するストア命令であり、この場合にはトップエントリと
セカンドエントリに対応する2つの命令を同時に完了さ
せることができることになる。
ミット_ユーズ_ストアポート信号のいずれもがLであ
る場合には、オアゲート72の出力およびアンドゲート
71の出力はいずれもLであり、特に後続命令の完了に
対する特別の制御が行われることはなく、一般的に3つ
の命令を同時に完了させることが可能となる。
の実行完了を制御するための制御回路を示す。バッファ
76、アンドゲート77,78は、図12におけるバッ
ファ65、アンドゲート66,67と同様の動作を行う
ものである。アンドゲート77はインバータ79の出力
がH、すなわち図13のバッファ73の出力がLであ
り、トップエントリに対応するコミット_ユーズ_スト
アポート信号がLである場合に、セカンドエントリに対
応する命令を実際に実行完了させるためのコミット信号
を出力する。
80の出力がH、すなわち図13のアンドゲート74の
出力がLである場合に、サードエントリに対応する命令
の実行を実際に完了させるためのコミット信号を出力す
る。
プエントリに対応する命令がストア命令である場合には
そのストア命令が、またセカンドエントリに対応する命
令がストア命令であばトップとセカンドの2つのエント
リに対応する命令が実行完了となり、またサードエント
リに対応する命令がストア命令である場合には通常の場
合と同様に3つの命令の実行完了が同時に行われると共
に、いずれの場合にも図13のオアゲート72の出力と
してのコミット_ストア信号がHとなる。
続命令の処理を中断させると共に、すでにフェッチされ
ている後続命令列を破棄するための処理中断および命令
破棄制御回路の構成を示す。図15の回路は図2の割込
み処理制御部21の中に、また図16の回路は例えば命
令フェッチ部31の内部に設けられる。
ート64の出力がオアゲート82の一方の入力に与えら
れると、SR−FF83がセットされ、その出力Q、す
なわちリストア_ステート信号(9)がHとなる。この
リストア_ステート信号は、現在実行が完了した命令よ
りも後の命令に関する処理を中断させるために、一般の
割り込み処理と同様の制御を行うものである。
2つのオアゲート86,87のそれぞれ一方の入力端子
に与えられ、他方の入力端子に与えられるクリア_ポー
ト_ノーマル信号がHである場合と同様に、2つの命令
フェッチポートA,Bに対応するクリア_ポート信号を
出力する。このクリア_ポート信号は、それぞれの命令
フェッチポートに対応して、すでにフェッチされている
後続命令を破棄させるものである。
の入力端子に与えられるクリア_ポート_ノーマル信号
は、例えば図2に図示されていない分岐命令処理部にお
いて分岐予測が成立したことが確認され、それまでフェ
ッチされていた命令が不必要となった場合に出力される
ものである。あるいは分岐予測に失敗した場合には、再
命令フェッチを行うため、全ての命令フェッチポートに
対応してフェッチされていた命令をクリアするために使
用される。
クリア_ポート信号は、すでにフェッチされている命令
の破棄および命令フェッチカウンタのクリアのみに使わ
れるものであり、ここでは命令フェッチ部に設けられて
いるものとしたが、命令実行完了処理部の内部に設ける
ことも可能である。
ンドゲート64の出力がHとなった時点でSR−FF8
3がセットされるものとしたが、この時点で一般的な割
り込み発生信号が出力されていないものとすると、もう
1つのSR−FF84の反転出力 外1 はHとなって
おり、SR−FF83のセット端子とリセット端子に
SR−FF83はセット端子とリセット端子に同時にH
が入力された場合にはセットが優先されるものであり、
その結果リストア_ステート信号が出力されることにな
るが、図11のアンドゲート64の出力は、SR−FF
63がコミット_ストア信号の入力直後のクロックでリ
セットされることになるため、短期間だけHとなり、そ
の期間だけSR−FF83からリストア_ステート信号
が出力されることになる。
理として割り込み発生信号がオアゲート82に入力され
た場合にも、SR−FF83はセットされ、リストアス
テート信号が出力されるが、この割り込み発生信号はS
R−FF84のセットにも使用され、割り込み処理中で
あることを示すインターラプト(RUPT)_ラッチ信
号が出力される。そしてSR−FF84は割り込み処理
終了信号の入力時点でリセットされる。
らに説明する。以上に述べた実施形態においては、スト
ア命令による後続命令の上書き可能性を判定する不等
式、すなわち(1)式の判定を行うにあたって、この不
等式を右側の不等式と左側の不等式、すなわちIAR−
OARが正の場合と負の場合とを別々に判定する回路を
使用したが、これから述べる実施形態では基本的には1
つの不等式の成立を判定するために多入力の加算器を用
いるものとする。
回分フェッチされた命令のアドレスの中で最後にフェッ
チされた命令のアドレスを記憶するのではなく、IAス
テージにおいてフェッチ要求が出される最新のアドレス
としての、n回分のフェッチ命令の次の命令のアドレス
が記憶されるものとする。また、本実施形態において
は、各フェッチ要求でフェッチされる命令列の長さは必
ずしも一定でなくても良い。本実施形態では、図5のカ
ウンタを用いて、各命令フェッチ要求による命令バイト
数を積算することができる。このカウンタによって積算
されたフェッチバイト数をLとすれば、判定用の不等式
は次式となる。
等式は次式となる。 0<IAR−OAR<(F×n)+S 図3を見ても明らかなように、IARがこのような位置
として記憶されるとき、上の不等式を次のように変形し
て、命令上書きの可能性の判定に使用できる。
のアドレスの最後のものであり、またフェッチ毎の命令
列の長さが一定でない場合には、フェッチ毎の命令列長
の最大値をMとし、積算されたフェツチバイト数をLと
すれば判定用の不等式は次式となる。
性判定回路の構成ブロック図である。同図においては、
(2)あるいは(3)式の後側の不等式を評価するため
に4入力加算器90が使用される。この4入力加算器に
対する入力は、n回分フェッチされた命令の次の命令の
アドレスのビット反転結果−IAR、ストア命令によっ
て命令実行結果としてのデータが格納されるオペランド
アドレスOAR、すでにフェッチされている命令のバイ
ト数(フェッチ_バイト,F×n)、およびストア命令
の実行結果として格納されるデータのデータ長(ストア
_バイト、S)である。
相が反転されているため(2)式が成立する場合には負
となり、その符号はインバータ91によって反転され、
アンドゲート92の片方の入力端子に入力される。一方
アンドゲート92のもう一方の入力端子には、比較器9
3の出力が入力される。この比較器93は(2)あるい
は(3)式の前側の不等式を評価、すなわちIARとO
ARを比較するものであり、IARがOARより大きい
時に比較結果としてHを出力し、その結果アンドゲート
92の出力はHとなり、アンドゲート94に入力され
る。アンドゲート94にはフェッチポートが有効である
フェッチ_ポート_バリッド信号が入力されており、有
効である場合にはアンドゲート94から、図8のアンド
ゲート55の出力と同様に、そのフェッチポートに対応
して上書き可能性があることを示すSTIS_イン_レ
ンジ信号が出力される。
入力の加算器を用いることによって原理的に誤判定をな
くすことができ、命令上書きの可能性を正しく判定する
ことができる。しかしながら、特にアウトオブオーダ方
式が採用されている場合には、該当するストア命令が非
常に早く完了される場合も想定され、多入力加算器を用
いて正確に計算を行う時間が確保できないことも考えら
れる。
書き込み動作は書き込むべきデータがそろった時点で実
行できる。そこでアドレス計算用のAサイクルとストア
用のデータがそろったことを確認するXサイクルとの間
が空かず、上書き可能性の判定は最短の場合2クロック
で終了しなければならない。最近のクロックサイクル短
縮の要求に伴う1クロック内処理の限界を考慮すると演
算回路の高速化がさらに必要となる。
めに、ある程度簡単な回路を使用する必要がある。そこ
で、多入力加算器の代わりに2入力の加算器や、簡単な
演算回路を組み合わせて用いることによって、判定の正
確さを保ちつつ、高速な計算を実行することができる。
このような簡単な演算回路を使用できる理由としては、
例えば前述の(2)または(3)式において命令フェッ
チカウンタの出力としての、フェッチされている命令列
長(L)もしくは(F×n)や、ストア命令によって格
納されるデータのデータ長(S)が、最大でも命令アド
レスIARやストア対象アドレスOARの取り得る範
囲、すなわちアドレス空間に比べてかなり小さい(桁数
で半分以下)ことがあげられる。
先見回路と桁上げ伝搬回路が併用される。このような桁
上げ伝搬回路ではキャリーチェーンが存在し、繰り上が
りが生じると上位ビットの計算に時間がかかる。しかし
ながら図18に示すように、演算対象となる数値のうち
片方が小さい場合には、上位ビットで繰り上げが生じる
ケースは極めて少なく、図18(a) に示すように下位ビ
ットの演算の結果として繰り上がり(桁借り)が発生す
る時のみであり、その時上位ビットは1加算(減算)さ
れる。これに対して、(b) に示すように下位ビットの演
算の結果としての繰り上がり(桁借り)が発生しない時
には、基本的には上位ビットの演算は不必要となる。
つの数に桁違いの差がある場合の加算回路の構成例を示
す。ここでデータ1はデータ2に比べて桁違いに大きい
ものとし、基本的にはデータ1の下位側とデータ2との
加算が必要とされるものとする。
位側とデータ2とを加算し、その加算結果を出力すると
共に、キャリー出力をセレクタ97に対する選択制御信
号として出力する。セレクタ97は、キャリー出力がな
い場合にはデータ1の上位信号をそのまま出力し、キャ
リー出力がある場合にはデータ1の上位側にインクリメ
ンタ98によって1が加算された結果を出力する。セレ
クタ97の出力としての上位側と、加算器96の出力と
しての下位側とが合成されて、データ1とデータ2との
加算結果が得られる。
の数に桁違いの差がある場合の減算回路の構成例であ
る。同図において減算器100はデータ1の下位側とデ
ータ2との差を計算し、その結果を出力すると共に、桁
借りがある場合にはキャリー出力を選択制御信号として
セレクタ101に与える。セレクタ101はキャリー出
力がない場合にはデータ1の上位側をそのまま出力し、
キャリー出力がある場合にはデクリメンタ102の出
力、すなわちデータ1の上位側から1を減算した結果を
出力する。
さい場合に、その差が小さいことと、その差自体を出力
する減算回路の構成例である。例えば図3において命令
アドレスIARとストア対象アドレスOARとの差が正
であり、その差が十分に大きい時には、後続の命令が書
き換えられる上書き可能性は存在しないことになり、デ
ータ1をIAR、データ2をOARとする時、命令上書
きの可能性の判定が必要となるのはデータ1とデータ2
との差が小さい場合に限られ、そのような場合に図21
の減算回路が使用される。
の下位側ビットとデータ2の下位側ビットのビット反転
結果とを加算して、データ1とデータ2の減算結果の下
位側と、その符号、およびキャリー出力を出力する。減
算結果の符号はセレクタ112に対する選択制御信号と
して、またキャリー出力はセレクタ110および111
に対する選択制御信号として与えられる。
側ビットのビット反転結果とが加算器105によって加
算される。データ1からデータ2を減算した結果、その
差が小さいと判定されるのは、1つは結果の上位側ビッ
トが全て0、すなわち0であり、下位側ビットの演算結
果としてのキャリーが存在しない場合である。この場合
データ1とデータ2の減算結果、すなわち加算器105
の出力はインバータ106によって全て反転され、上位
側ビットは全て1となり、アンドゲート107の出力は
1となる。加算器104からのキャリー出力が存在しな
い場合にはセレクタ110によってアンドゲート107
の出力が選択され、加算器104の出力する減算結果の
符号が正であることにより、セレクタ112によりセレ
クタ110の出力が選択されて、データ1とデータ2の
減算結果が小さいことを示す信号DATA1−DATA
2_SMALLがセレクタ112から出力される。
り、しかもその差が小さいと判定されるもう1つの場合
は、上位側ビットの減算結果としての加算機器105の
出力がオール1、すなわち−1であり、下位側の演算結
果としてのキャリー出力が1となる場合である。この場
合は上位側ビットのデータ部分は全て0となり、結果と
してデータ1とデータ2との差は小さいことになる。こ
の時アンドゲート108の出力が1となり、加算器10
4のキャリー出力が存在するため、セレクタ110によ
ってアンドゲート108の出力が選択され、またセレク
タ112によって、加算器104の出力する符号が正で
あるためセレクタ110の出力が選択されて、セレクタ
112からデータ1とデータ2との差が小さいことを示
す信号が出力される。
が負であり、しかもその絶対値が小さい場合について説
明する。その第1の場合は加算器105の出力が−1、
すなわち上位ビットが全て1であり、下位側からのキャ
リー出力が存在しない場合である。この場合は前述と同
様にアンドゲート108の出力が1となり、加算器10
4のキャリー出力が存在しないため、セレクタ111へ
のアンドゲート108の出力が選択され、セレクタ11
2に与えられる。セレクタ112では、加算器104の
出力する下位ビット側の演算結果の符号が負であるため
に、セレクタ111の出力が選択され、セレクタ112
からデータ1とデータ2との差が小さいことを示す信号
が出力される。
が存在し、加算器105の出力する上位ビットのうちで
最下位のみが0であり、他の全てのビットが1である場
合(すなわち−2)に対応する。アンドゲート109に
対しては、最下位ビットとしてインバータ106の出力
する最下位ビットの反転値が与えられており、この結果
アンドゲート109の出力は1となり、加算器104の
出力するキャリー出力が存在するため、セレクタ111
によってアンドゲート109の出力が選択され、セレク
タ112に与えられる。セレクタ112では、加算器1
04の出力する符号が負であるために、セレクタ111
からの出力が選択され、セレクタ112からデータ1と
データ2との差が小さいことを示す信号が出力される。
に比べて、演算を高速化するために図19〜図21で説
明したような簡易な演算回路を組み合わせて用いる場合
の回路例について、図22〜図24を用いて説明する。
図22は図19,図20の回路を用いて、図17におけ
る4入力加算器と同様の動作を行う回路の構成例であ
る。同図において図19の加算回路は、データ1として
のOARと、データ2としてのストア_バイト(S)と
の加算を行うために用いられ、また図20の減算回路は
データ1としてのIARと、データ2としてのフェッチ
_バイト(F×n)との減算を行うために用いられてい
る。そして減算器114によって、図19の回路の出力
としてのOAR+Sから、図20の回路の出力としての
IAR−(F×n)を減算することによって、図17に
おける減算器90と同じ出力を得ることができる。
と下位側とで分けて演算し、上位側では図19と同様の
インクリメンタを使用して、下位側からのキャリー出力
を処理する回路の構成例である。このような構成を用い
ることによって、上位側と下位側との演算を独立して実
行することが可能となり、演算のビット数を減少させる
ことによって、結果的に全体としての演算を高速化する
ことができる。
17の加算器90と同様の演算を行うものである。但し
IARとOARに対しては下位側ビットだけの演算が行
われる。加算器116はOARの上位側ビットと、IA
Rの上位側ビットのビット反転結果とを加算するもので
あり、加算器115からのキャリー出力が存在しない場
合に加算器116の加算結果がセレクタ118によって
選択され、加算器115の出力する下位側ビットの演算
結果と合成されて、全体の演算結果として出力される。
これに対して加算器115からのキャリー出力が存在す
る場合には、加算器116の出力がインクリメンタ11
7によって1だけインクリメントされ、その結果がセレ
クタ118により選択され、加算器115の出力する下
位側と合成されて出力される。
能性判定回路の構成例である。同図においては、図6や
図7と同様にIARとOARとの差が正である場合に、
(1)式の右側の不等式の成立を判定するアンドオアセ
レクタも用いられている。
IARがデータ1として、またOARのインバータ11
9によるビット反転結果がデータ2として与えられる。
IARとOARとの差が小さい時には、その差が小さい
ことを示す信号が2つのアンドゲート121、122の
一方の入力端子に与えられる。この時IARとOARと
差の演算結果のうちで下位のmビットを除き(N−m−
n)ビットから(N−m)ビットまでがアンドゲート1
20に与えられる。この差が負であり、かつその絶対値
が小さい、すなわち例えばm=4であり、下位4ビット
以外の値が全て1である場合には、アンドゲート120
の出力はHとなり、アンドゲート121、オアゲート1
23の出力はHとなり、アンドゲート124に与えられ
る。この時フェッチポートが有効であることを示すフェ
ッチ_ポート_バリッド信号がHであれば、アンドゲー
ト124の出力する、そのポートに対応して命令上書き
の可能性があることを示すSTIS_イン_レンジ信号
はHとなる。
その結果が正である場合に対応してインバータ125に
よってビット反転され、図7の下側の回路と同様の回
路、すなわちアンドゲート1261 〜126n+1 と、そ
れらの出力とプリフェッチカウンタの値が入力されるア
ンドオアセレクタ、すなわちアンドゲート1271 〜1
27n+1 とオアゲート128とによって構成されるセレ
クタに与えられる。ここでIARとOARとの差は、そ
の最上位ビットが(N−m−n)ビットであり、最下位
ビットがNビットであるため、プリフェッチカウンタの
カウント値の最上位ビットが入力されるアンドゲート1
271 に対しては、図7と異なってアンドゲート126
1 の出力、すなわち(N−m−n)ビットのビット反転
結果が入力される。
リフェッチカウンタのカウンタ値の最上位から2番目の
ビットと共にアンドゲート1262 の出力、すなわち
(N−m−n)ビットと(N−m−n+1)ビットとの
反転結果の論理積が与えられる。
細に説明したが、特に図18〜図21で説明したよう
な、演算対象となる2つの数に桁違いの差がある場合の
加減算はIARとOARとの差の計算に用いられるだけ
でなく、一般的に桁が大きくなるIAR−OARと、桁
が小さいF×nやSとの間の演算に用いたり、構成方法
によっては命令フェッチ側で用いる情報としてのIAR
とF×nとの間、命令実行およびオペランドアクセス側
で用いる情報としてのIARとSとの間の演算に使用し
て、その結果を通常の演算器で結びつけるような方法も
当然考えられる。
徴を有する。命令フェッチカウンタ手段が、1回のフェ
ッチでフェッチされる命令列が一定長(F)である時、
該フェッチの回数(n)をカウントして前記命令列の長
さ(F×n)を検出し、命令上書き可能性判定手段が、
該F×n、前記特定位置に対応する命令のアドレス(I
AR)、前記ストア対象アドレス(OAR)、および前
記ストアデータのデータ長(S)を用いて次の不等式 −F<IAR−OAR<F×(n−1)+S が成立する時、命令上書きの可能性があると判定する。
対応する命令のアドレスとストア対象アドレスとの差を
取る減算手段と、該減算手段の出力のビット反転結果の
複数のビットの複数の論理積の1つを、前記命令フェッ
チカウンタ手段の出力の各ビットの値を選択制御信号と
して、選択する選択手段とを備える。
ートを1つ以上備える情報処理装置において、1つの命
令フェッチポートからフェッチされ、最後にフェッチさ
れた命令を含み、該命令に連続するすべての命令列の長
さを、該フェッチの回数をカウントするか、または各回
のフェッチでフェッチされたバイト数を積算して検出す
る命令列長検出手段を備える。
令列の長さ(L)を検出し、前記アドレス検出手段が、
前記特定位置に対応する命令のアドレス(IAR)と前
記ストア対象アドレス(OAR)とを検出し、前記命令
上書き可能性判定手段が、該L,IAR,OAR、およ
び前記ストアデータのデータ長(S)、1回の命令フェ
ッチでフェッチされる命令列の最大長(M)を用いて次
の不等式 −M<IAR−OAR<L+S が成立するとき、命令上書きの可能性があると判定す
る。
列の長さ(L)を検出し、前記アドレス検出手段が、前
記特定位置に対応する命令のアドレス(IAR)と前記
ストア対象アドレス(OAR)とを検出し、前記命令上
書き可能性判定手段が、該L,IAR,OAR,および
前記ストアデータのデータ長(S)を用いて次の不等式 −0<IAR−OAR<L+S が成立する時、命令上書きの可能性があると判定する。
命令列内の命令が不要となった時、前記命令長検出手段
によって検出されている命令列の長さをリセットする命
令長リセット手段を更に備える。
き可能性判定手段が命令上書きの可能性を検出した時、
前記ストア命令の実行完了直後に前記ストア対象アドレ
スに続くフェッチ済みの後続命令の実行を中止させ、該
ストア対象アドレスに続く正しい後続命令の命令フェッ
チ以後の動作を実行させる命令再実行制御手段を更に備
える。
き可能性手段が命令上書きの可能性があると判定した
時、該判定の時点から前記ストア命令の完了時点まで、
同時に実行完了できる複数の命令の中に該ストア命令が
なければ該複数の命令を同時に完了させ、ストア命令が
あれば命令実行順序において該ストア命令までの命令を
同時に完了させる命令実行完了制御手段を更に備える。
定位置に対応する命令のアドレスのビット反転結果と、
前記ストア対象アドレスと、前記命令フェッチカウンタ
手段の出力とを加算する多入力加算手段を備える。
象アドレスに格納される実行結果としてのストアデータ
のデータ長をも加算する。
ればストア命令の実行結果としてのデータ(命令)の書
き込みによる後続命令の書き換え、すなわち命令上書き
の可能性の判定を、命令実行効率を損なうことなく、正
しく行うことができ、かつストア命令によって後続の命
令が実際に上書きされる場合にも、上書きされた後の正
しい命令列を実行することが可能となり、情報処理装置
の処理効率向上に寄与するところが大きい。
装置の全体構成ブロック図である。
る。
図である。
ク図である。
書き可能性判定回路の構成例を示すブロック図である。
す図である。
令上書きの可能性を示す不等式全体の成立を判定する判
定回路の構成例である。
令上書きの全体判定回路を示す図である。
である。
に対して必要な制御を行う後続命令制御回路の構成を示
すブロック図である。
完了制御回路の構成を示すブロック図である。
ック図(その1)である。
ック図(その2)である。
すブロック図(その1)である。
すブロック図(その2)である。
示すブロック図である。
が小さい場合の演算の例を示す図である。
る場合の加算回路の構成例を示す図である。
の構成例を示す図である。
こととその差自体を出力する減算回路の構成例を示す図
である。
力加算器と同様の動作を行う回路の構成例を示す図であ
る。
上位側と下位側とで分けて演算し、上位側ではインクリ
メンタを使用して下位側からのキャリー出力を処理する
回路の構成例を示す図である。
性判定回路の構成例を示す図である。
るレジスタ 23,24 命令アドレスレジスタ 25,26 命令フェッチカウンタ 27,28 命令上書き可能性判定回路 30 オペランドアドレスレジスタ
Claims (9)
- 【請求項1】 命令をフェッチするための命令フェッチ
ポートを1つ以上備え、該命令フェッチポートからフェ
ッチされた命令の上書き可能性を検出する情報処理装置
において、 1つの命令フェッチポートからフェッチされ、最後にフ
ェッチされた命令を含み、該命令に連続するすべての命
令列の長さをカウントする命令フェッチカウンタ手段
と、 該すべての命令列内の特定位置に対応する命令のアドレ
スと、完了したストア命令の実行結果が格納されるスト
ア対象アドレスと、該命令フェッチカウンタ手段の出力
値とを用いて、該ストア対象アドレスの範囲の少なくと
も一部が前記すべての命令列内の命令のアドレスと重な
り、該命令列の少なくとも一部が書き換えられる命令上
書きの可能性を検出する命令上書き可能性判定手段とを
備えることを特徴とする情報処理装置。 - 【請求項2】 前記命令上書き可能性判定手段が、更に
前記ストア対象アドレスに格納される実行結果としての
ストアデータのデータ長を用いて、前記命令上書き可能
性を検出することを特徴とする請求項1記載の情報処理
装置。 - 【請求項3】 命令をフェッチするための命令フェッチ
ポートを1つ以上備え、該命令フェッチポートからフェ
ッチされた命令の上書き可能性を検出する情報処理装置
において、 1つの命令フェッチポートからフェッチされ、最後にフ
ェッチされた命令を含み、該命令に連続するすべての命
令列の長さを検出する命令列長検出手段と、 すべての命令列内の特定位置に対応する命令のアドレス
と、完了したストア命令の実行結果が格納されるストア
対象アドレスとを検出するアドレス検出手段と、 該命令列長検出手段、アドレス検出手段の出力を用い
て、該ストア命令の実行結果が格納されることによって
前記すべての命令列内の命令の内容が書き換えられる命
令上書き可能性を検出する命令上書き可能性判定手段と
を備えることを特徴とする情報処理装置。 - 【請求項4】 前記命令上書き可能性判定手段が、更に
前記ストア対象アドレスに格納されるストア命令実行結
果としてのストアデータのデータ長を用いて前記命令上
書き可能性を検出することを特徴とする請求項3記載の
情報処理装置。 - 【請求項5】 前記命令長検出手段が、1回のフェッチ
でフェッチされる命令列が一定長である時該フェッチの
回数をカウントして前記命令列の長さを検出することを
特徴とする請求項3記載の情報処理装置。 - 【請求項6】 前記命令長検出手段が、前記フェッチの
1回毎にフェッチされた命令列のそれぞれの長さを加算
して前記命令列の長さを検出することを特徴とする請求
項3記載の情報処理装置。 - 【請求項7】 前記情報処理装置において、 前記命令上書き可能性判定手段が命令上書きの可能性が
あると判定した時、該判定の時点から前記ストア命令の
完了時点まで、命令の実行完了を一命令のみずつ行わせ
る命令実行完了制御手段を更に備えることを特徴とする
請求項3記載の情報処理装置。 - 【請求項8】 前記命令上書き可能性判定手段が、減算
結果の絶対値が小さい時にのみ正確な減算結果を出力す
る減算回路であって、上位ビット側と下位ビット側とで
それぞれ独立に減算を行う上位側減算回路と下位側減算
回路とを備え、上位側減算回路の出力が0、−1、また
は−2である時、下位ビット減算回路の出力するキャリ
−出力および減算結果の符号に応じて減算結果の絶対値
が小さいことを示す信号と共に下位側減算回路の出力を
減算結果として出力する減算回路を備えることを特徴と
する請求項1、または3記載の情報処理装置。 - 【請求項9】 前記命令上書き可能性判定手段が、演算
対象となる2つの数に桁違いの差がある時に加算、また
は減算を行う演算回路であって、下位ビット側では絶対
値の小さい数のデータ幅以上の加算、または減算を行っ
て演算結果を出力し、上位ビット側では下位ビット側で
の演算の結果キャリー出力がある時は絶対値の大きい数
の上位ビットに1をインクリメント、または1だけデク
リメントして上位側の演算結果とし、該キャリー出力が
ない時は絶対値の大きい側の上位ビットをそのまま上位
側の加算、または減算結果として出力する演算回路を備
えることを特徴とする請求項1、または3記載の情報処
理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23681199A JP3739607B2 (ja) | 1999-08-24 | 1999-08-24 | 情報処理装置 |
US09/532,832 US6571329B1 (en) | 1999-08-24 | 2000-03-21 | Detection of overwrite modification by preceding instruction possibility of fetched instruction code using fetched instructions counter and store target address |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23681199A JP3739607B2 (ja) | 1999-08-24 | 1999-08-24 | 情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001060153A true JP2001060153A (ja) | 2001-03-06 |
JP3739607B2 JP3739607B2 (ja) | 2006-01-25 |
Family
ID=17006142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP23681199A Expired - Fee Related JP3739607B2 (ja) | 1999-08-24 | 1999-08-24 | 情報処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6571329B1 (ja) |
JP (1) | JP3739607B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006040174A (ja) * | 2004-07-29 | 2006-02-09 | Fujitsu Ltd | 命令リトライ検証機能付き情報処理装置および命令リトライ検証方法 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4327008B2 (ja) * | 2004-04-21 | 2009-09-09 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
JP2008162084A (ja) * | 2006-12-27 | 2008-07-17 | Fuji Xerox Co Ltd | 画像処理装置、画像処理システム、画像形成装置、画像形成システム、情報処理装置、情報処理システムおよび制御プログラム |
JP5163220B2 (ja) * | 2008-03-26 | 2013-03-13 | 富士通株式会社 | キャッシュ制御装置、情報処理装置 |
US10782979B2 (en) | 2017-04-18 | 2020-09-22 | International Business Machines Corporation | Restoring saved architected registers and suppressing verification of registers to be restored |
US10552164B2 (en) | 2017-04-18 | 2020-02-04 | International Business Machines Corporation | Sharing snapshots between restoration and recovery |
US10740108B2 (en) | 2017-04-18 | 2020-08-11 | International Business Machines Corporation | Management of store queue based on restoration operation |
US10572265B2 (en) | 2017-04-18 | 2020-02-25 | International Business Machines Corporation | Selecting register restoration or register reloading |
US10545766B2 (en) | 2017-04-18 | 2020-01-28 | International Business Machines Corporation | Register restoration using transactional memory register snapshots |
US10963261B2 (en) | 2017-04-18 | 2021-03-30 | International Business Machines Corporation | Sharing snapshots across save requests |
US10649785B2 (en) | 2017-04-18 | 2020-05-12 | International Business Machines Corporation | Tracking changes to memory via check and recovery |
US11010192B2 (en) | 2017-04-18 | 2021-05-18 | International Business Machines Corporation | Register restoration using recovery buffers |
US10838733B2 (en) | 2017-04-18 | 2020-11-17 | International Business Machines Corporation | Register context restoration based on rename register recovery |
US10540184B2 (en) * | 2017-04-18 | 2020-01-21 | International Business Machines Corporation | Coalescing store instructions for restoration |
US10564977B2 (en) | 2017-04-18 | 2020-02-18 | International Business Machines Corporation | Selective register allocation |
US10489382B2 (en) | 2017-04-18 | 2019-11-26 | International Business Machines Corporation | Register restoration invalidation based on a context switch |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63311438A (ja) | 1987-06-12 | 1988-12-20 | Fujitsu Ltd | ストア命令不一致制御回路 |
JPH04246728A (ja) | 1991-02-01 | 1992-09-02 | Toshiba Corp | 情報処理装置 |
US5835949A (en) * | 1994-12-27 | 1998-11-10 | National Semiconductor Corporation | Method of identifying and self-modifying code |
JP3548616B2 (ja) | 1995-01-20 | 2004-07-28 | 株式会社日立製作所 | 情報処理装置 |
US5826073A (en) * | 1995-10-06 | 1998-10-20 | Advanced Micro Devices, Inc. | Self-modifying code handling system |
US5742791A (en) * | 1996-02-14 | 1998-04-21 | Advanced Micro Devices, Inc. | Apparatus for detecting updates to instructions which are within an instruction processing pipeline of a microprocessor |
US6009516A (en) * | 1996-10-21 | 1999-12-28 | Texas Instruments Incorporated | Pipelined microprocessor with efficient self-modifying code detection and handling |
US6405307B1 (en) * | 1998-06-02 | 2002-06-11 | Intel Corporation | Apparatus and method for detecting and handling self-modifying code conflicts in an instruction fetch pipeline |
US6237088B1 (en) * | 1998-06-03 | 2001-05-22 | Intel Corporation | System and method for tracking in-flight instructions in a pipeline |
US6415360B1 (en) * | 1999-05-18 | 2002-07-02 | Advanced Micro Devices, Inc. | Minimizing self-modifying code checks for uncacheable memory types |
-
1999
- 1999-08-24 JP JP23681199A patent/JP3739607B2/ja not_active Expired - Fee Related
-
2000
- 2000-03-21 US US09/532,832 patent/US6571329B1/en not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006040174A (ja) * | 2004-07-29 | 2006-02-09 | Fujitsu Ltd | 命令リトライ検証機能付き情報処理装置および命令リトライ検証方法 |
JP4486434B2 (ja) * | 2004-07-29 | 2010-06-23 | 富士通株式会社 | 命令リトライ検証機能付き情報処理装置および命令リトライ検証方法 |
Also Published As
Publication number | Publication date |
---|---|
JP3739607B2 (ja) | 2006-01-25 |
US6571329B1 (en) | 2003-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7117347B2 (en) | Processor including fallback branch prediction mechanism for far jump and far call instructions | |
JP3565504B2 (ja) | プロセッサにおける分岐予測方法及びプロセッサ | |
CA1323938C (en) | Control of multiple function units with parallel operation in a microcoded execution unit | |
US6170054B1 (en) | Method and apparatus for predicting target addresses for return from subroutine instructions utilizing a return address cache | |
US4858104A (en) | Preceding instruction address based branch prediction in a pipelined processor | |
JP3739607B2 (ja) | 情報処理装置 | |
EP1662377B1 (en) | Branch predicting apparatus and branch predicting method using return address stacks | |
US6981131B2 (en) | Early condition code evaluation at pipeline stages generating pass signals for controlling coprocessor pipeline executing same conditional instruction | |
US20050198480A1 (en) | Apparatus and method of controlling instruction fetch | |
EP2084602B1 (en) | A system and method for using a working global history register | |
WO2000041072A1 (en) | A method and apparatus for improved predicate prediction | |
US6289437B1 (en) | Data processing system and method for implementing an efficient out-of-order issue mechanism | |
JP2001243069A (ja) | 分岐予測装置及び分岐予測方法 | |
US20090240914A1 (en) | Recycling long multi-operand instructions | |
WO2004072848A2 (en) | Method and apparatus for hazard detection and management in a pipelined digital processor | |
JP3723020B2 (ja) | 分岐履歴情報の書き込み制御装置及びその方法 | |
JP3800533B2 (ja) | プログラムカウンタ制御方法及びプロセッサ | |
JP3683439B2 (ja) | 分岐予測を抑止する情報処理装置および方法 | |
US20050144427A1 (en) | Processor including branch prediction mechanism for far jump and far call instructions | |
JP2001166934A (ja) | 命令フェッチ制御装置 | |
JPH07262006A (ja) | 分岐ターゲットアドレスキャッシュを備えたデータプロセッサ | |
JPWO2012132214A1 (ja) | プロセッサ及びその命令処理方法 | |
JP3161711B2 (ja) | 情報処理装置 | |
JP3809178B2 (ja) | 分岐履歴情報の書き込み制御装置及びその方法 | |
JP2002182906A (ja) | 命令実行方法及びその装置並びに分岐予測方法及びその装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050606 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050614 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050815 |
|
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: 20051101 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051102 |
|
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: 20081111 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091111 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101111 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101111 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111111 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111111 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121111 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121111 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131111 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |