JP3807740B2 - プロセッサ及び命令制御方法 - Google Patents
プロセッサ及び命令制御方法 Download PDFInfo
- Publication number
- JP3807740B2 JP3807740B2 JP2004541191A JP2004541191A JP3807740B2 JP 3807740 B2 JP3807740 B2 JP 3807740B2 JP 2004541191 A JP2004541191 A JP 2004541191A JP 2004541191 A JP2004541191 A JP 2004541191A JP 3807740 B2 JP3807740 B2 JP 3807740B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- exception
- branch
- issued
- detected
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/3804—Instruction prefetching for branches, e.g. hedging, branch folding
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/3861—Recovery, e.g. branch miss-prediction, exception handling
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)
Description
本発明のプロセッサの第1形態にあっては、第1識別子(ID=0)を添付して分岐命令を含む命令を発行し、分岐予測により投機実行する第1命令制御部と、分岐ミスを検出した際に、誤って発行してしまった命令の後ろに続けて正しい方向の命令を発行する第2命令制御部と、分岐以前の命令が全て完了した後に、分岐予測により誤って発行してしまった命令をキャンセルして第2命令制御部が発行した命令に続く正しい方向の命令発行を第2識別子を添付して開始する第3命令制御部とを備えたことを特徴とする。このように本発明のプロセッサは、分岐ミスが発生してから命令に付ける識別子(ID)を更新しているため、分岐ミスが発生した分岐命令以前の命令の全ての完了を待たずに正しい方向の命令が発行できることで、命令の処理性能が向上し、また命令に付ける識別子は少なくとも2つあれば良く、処理性能の向上とハードウェア量の低減が両立できる。
本発明によるプロセッサの命令制御方法の第1形態は、第1識別子を添付して分岐命令を含む命令を発行し、分岐予測により投機実行する第1ステップと、分岐ミスを検出した際に、誤って発行してしまった命令の後ろに続けて正しい方向の命令を第2識別子を添付して発行する第2ステップと、分岐以前の命令が全て完了した後に、分岐予測により誤って発行してしまった命令をキャンセルして第2ステップが発行した命令に続く正しい方向の命令発行を第2識別子を添えて開始する第3ステップと、を備えたことを特徴とする。
を備えたことを特徴とする。
を備えたことを特徴とする。
本発明のプロセッサは、分岐予測による命令の投機的実行以外に、例外発生なしとして投機的に実行した命令を例外発生でキャンセルする場合にも、分岐ミスの場合と同様に適用でき、分岐ミスの検出に対応して例外発生についても次の第1形態〜第5形態をとる。
第1の例外発生を検出した際に、例外発生なしとして誤って発行してしまった命令の後ろに続けて例外処理ルーチンの命令を第2識別子を添付して発行する第2命令制御部と、
第1の例外発生が検出されて正しい方向となる例外処理ルーチンの命令が発行された後に、それ以前の古い命令で第2の例外発生を検出した場合、古い分岐命令以前の命令が全て完了するのを待って例外発生命令及び後続する全ての命令をキャンセルしてから、第2の例外発生による例外処理ルーチンの命令発行を開始する第3命令制御部とを備えたことを特徴とする。
第1の例外発生が検出されて正しい方向となる例外処理ルーチンの命令が発行された後に、それ以前の古い命令で第2の例外発生を検出した場合、第1の例外発生の検出により発行した例外処理ルーチンの命令をキャンセルした後に、第2の例外発生の検出により正しい方向となる例外処理ルーチンの命令発行を開始する第3命令制御部と、第2の例外発生が検出されて例外処理ルーチンの命令が発行された後に、古い分岐命令以前の命令が全て完了するのを待って、第1の例外発生を起こした命令及びこの命令により例外発生なしとして誤って発行してしまった命令をキャンセルしてから、第2の例外発生による例外処理ルーチンの命令発行を再開する第4命令制御部とを備えたことを特徴とする。
第1の例外発生が検出されて正しい方向となる例外処理ルーチンの命令発行を開始した後に、例外処理ルーチンにより発行した命令内の新しい命令で第2の例外発生を検出した場合、新しい例外発生命令以前の命令が全て完了するのを待って例外発生命令及び後続する全ての命令をキャンセルしてから、第1の例外発生による例外処理ルーチンの命令発行を開始する第3命令制御部とを備えたことを特徴とする。
第1の例外発生を検出した際に、例外発生なしとして誤って発行してしまった命令の後ろに続けて例外処理ルーチンの命令を第2識別子を添付して発行する第2命令制御部と、
第1の例外発生が検出されて正しい方向となる例外処理ルーチンの命令発行を開始した後に、例外処理ルーチンにより発行した命令内の新しい命令で第2の例外発生を検出した場合、例外処理ルーチンの命令発行を抑止した状態で、第1例外発生が検出された古い方の例外発生命令以前の命令が全て完了するのを待って、古い例外発生命令及びこの命令により例外発生なしとして誤って発行してしまった命令をキャンセルしてから、抑止を解除して第2の例外発生により正しい方向となる例外処理ルーチンの命令発行を開始する第3命令制御部と、第2の例外発生により例外処理ルーチンの命令が発行された後に、新しい例外発生命令以前の命令が全て完了するのを待って第2の例外発生の命令及び第1の例外発生による例外処理ルーチンで発行された命令をキャンセルしてから、第2の例外発生による例外処理ルーチンの命令発行を再開する第4命令制御部とを備えたことを特徴とする。
本発明によるプロセッサの命令制御方法の例外発生を処理する第1形態は、例外発生により投機的に実行した命令をキャンセルする場合にも、分岐ミスの場合、と同様に適用でき、分岐ミスの検出に対応して例外発生についても次の第1形態〜第5形態をとる。
図2は分岐命令毎に異なるIDを付ける従来のプロセッサにおける分岐ミスに対する命令制御動作の説明図;
図3は従来のプロセッサで使用するリネームマップの説明図;
図4は本発明が適用されるプロセッサの機能構成のブロック図;
図5は本発明のプロセッサで使用するリネームマップの説明図;
図6は命令に付けるIDの数によるハードウェア規模を本発明と従来例につき対比した回路図;
図7は本発明による第1モード分岐予測命令制御部のブロック図;
図8は図7の実施形態による命令制御動作の説明図;
図9は図7の実施形態による命令制御動作のタイミングチャート;
図10は図7の実施形態による命令制御のフローチャート;
図11は本発明による第2モード分岐予測命令制御部のブロック図;
図12は図11の実施形態による命令制御動作の説明図;
図13は図11の実施形態による命令制御動作のタイミングチャート;
図14は図11の実施形態による命令制御のフローチャート;
図15は本発明による第3モード分岐予測命令制御部のブロック図;
図16は図15の実施形態による命令制御動作の説明図;
図17は図15の実施形態による命令制御動作のタイミングチャート;
図18は図15の実施形態による命令制御のフローチャート;
図19は本発明による第4モード分岐予測命令制御部のブロック図;
図20は図19の実施形態による命令制御動作の説明図;
図21は図19の実施形態による命令制御動作のタイミングチャート;
図22は図19の実施形態による命令制御のフローチャート;
図23は本発明による第4モード分岐予測命令制御部のブロック図;
図24は図23の実施形態による命令制御動作の説明図;
図25は図23の実施形態による命令制御動作のタイミングチャート;
図26は図24の実施形態による命令制御のフローチャート;
図27は本発明による第1モードから第5モードの分岐予測命令制御を一体化した命令制御のフローチャート;
図28は本発明による第1モード例外発生命令制御部のブロック図;
図29は図27の実施形態による命令制御動作の説明図;
図30は図27の実施形態による命令制御のフローチャート;
図31は本発明による第2モード例外発生命令制御部のブロック図;
図32は図31の実施形態による命令制御動作の説明図;
図33は図31の実施形態による命令制御のフローチャート;
図34は本発明による第3モード例外発生命令制御部のブロック図;
図35は図34の実施形態による命令制御動作の説明図;
図36は図34の実施形態による命令制御のフローチャート;
図37は本発明による第4モード例外発生命令制御部のブロック図;
図38は図37の実施形態による命令制御動作の説明図;
図39は図37の実施形態による命令制御のフローチャート;
図40は本発明による第5モード例外発生命令制御部のブロック図;
図41は図40の実施形態による命令制御動作の説明図;
図42は図41の実施形態による命令制御のフローチャート;
図43は本発明による第1モードから第5モードの例外発生命令制御を一体化した命令制御のフローチャート;
12:分岐予測部
16:命令格納部
18:命令実行部18
20:命令確定部
22:レジスタ
24:リネーミング処理部24
26−1〜26−4命令格納キュー26−1〜26−4
28:分岐処理部
30:整数演算器
32:浮動小数点演算器
34:ロード/ストア処理部
36:リオーダーバッファ36
38:リネームマップ38
40:命令制御部
42:分岐予測命令制御部
44:例外発生命令制御部
68:第1命令制御部
70:第2命令制御部
72−5:第3命令制御部
74−5:第4命令制御部
Claims (22)
- 第1識別子を添付して分岐命令を含む命令を発行し、分岐予測により投機実行する第1命令制御部と、
分岐ミスを検出した際に、誤って発行してしまった命令の後ろに続けて正しい方向の命令を第2識別子を添付して発行する第2命令制御部と、
前記分岐以前の命令が全て完了した後に、分岐予測により誤って発行してしまった命令をキャンセルして前記第2命令制御部が発行した命令に続く正しい方向の命令発行を前記第2識別子を添付して開始する第3命令制御部と、
を備えたことを特徴とするプロセッサ。
- 第1識別子を添付して分岐命令を含む命令を発行し、分岐予測により投機実行する第1命令制御部と、
第1の分岐ミスを検出した際に、誤って発行してしまった命令の後ろに続けて正しい方向の命令を第2識別子を添付して発行する第2命令制御部と、
前記第1の分岐ミスが検出されて第1の分岐ミスの正しい方向の命令が発行された後に、それ以前の古い分岐命令で第2の分岐ミスを検出した場合、前記古い分岐命令以前の命令が全て完了するのを待って、後続する全ての命令をキャンセルしてから、第2の分岐ミスの正しい方向の命令発行を開始する第3命令制御部と、
を備えたことを特徴とするプロセッサ。
- 第1識別子を添付して分岐命令を含む命令を発行し、分岐予測により投機実行する第1命令制御部と、
第1の分岐ミスを検出した際に、誤って発行してしまった命令の後ろに続けて正しい方向の命令を第2識別子を添付して発行する第2命令制御部と、
前記第1の分岐ミスが検出されて第1の分岐ミスの正しい方向の命令が発行された後に、それ以前の古い分岐命令で第2の分岐ミスを検出した場合、前記第1の分岐ミスの検出により正しい方向と判断して発行した命令をキャンセルした後に、前記第2の分岐ミスの検出により判断した第2の分岐ミスの正しい方向の命令発行を開始する第3命令制御部と、
前記第2の分岐ミスが検出されて正しい方向の命令が発行された後に、前記古い分岐命令以前の命令が全て完了するのを待って、前記第2の分岐予測により誤って発行してしまった命令をキャンセルしてから、正しい方向の命令発行を再開する第4命令制御部と、
を備えたことを特徴とするプロセッサ。
- 第1識別子を添付して分岐命令を含む命令を発行し、分岐予測により投機実行する第1命令制御部と、
第1の分岐ミスを検出した際に、誤って発行してしまった命令の後ろに続けて正しい方向の命令を第2識別子を添付して発行する第2命令制御部と、
前記第1の分岐ミスが検出されて第1の分岐ミスの正しい方向の命令発行を開始した後に、正しい方向として発行した命令内の新しい分岐命令で第2の分岐ミスを検出した場合、前記新しい分岐命令以前の命令が全て完了するのを待って後続する全ての命令をキャンセルしてから、第2の分岐ミスの正しい方向の命令発行を開始する第3命令制御部と、
を備えたことを特徴とするプロセッサ。
- 第1識別子を添付して分岐命令を含む命令を発行し、分岐予測により投機実行する第1命令制御部と、
第1の分岐ミスを検出した際に、誤って発行してしまった命令の後ろに続けて正しい方向の命令を第2識別子を添付して発行する第2命令制御部と、
前記第1の分岐ミスが検出されて第1の分岐ミスの正しい方向の命令発行を開始した後に、正しい方向として発行した命令内の新しい分岐命令で第2の分岐ミスを検出した場合、正しい方向の命令発行を抑止した状態で、前記第1分岐ミスが検出された古い方の分岐命令以前の命令が全て完了するのを待って、前記古い分岐命令により誤って発行してしまった命令をキャンセルしてから、前記抑止を解除して第2の分岐ミスの正しい方向の命令発行を開始する第3命令制御部と、
前記第2の分岐ミスの検出による正しい方向の命令発行が開始された後に、新しい分岐命令以前の命令が全て完了するのを待って、前記第1の分岐予測の検出により発行された命令をキャンセルしてから、前記第2の分岐ミスによる正しい方向の命令発行を再開する第4命令制御部と、
を備えたことを特徴とするプロセッサ。
- 請求の範囲1乃至5のプロセッサに於いて、更に、
命令が使用するレジスタの番号で参照されるエントリに、リネームに使用するリオーダーバッファのアドレス格納領域と、命令制御で添付する複数の識別子に対応して複数の有効フラグ領域を備えたリネームマップと、
命令が使用するレジスタをリオーダーバッファを用いてリネームする際に、レジスタの番号で参照されるリネームマップのエントリに、リネームに使用するリオーダーバッファのアドレスを格納すると共に、命令に添付される識別子に対応した有効フラグをオンし、分岐ミスを検出した際に、誤って発行されてしまった命令に添付した識別子に対応したリネームマップの有効フラグをオフし、正しい方向に発行した命令に添付される別の識別子に対応したリネームマップの有効フラグをオンするリネーミング処理部と、
を設け、分岐ミスの検出により発行される正しい方向の命令が誤って発行されてしまった命令によるリネーム情報を使用することを防ぐことを特徴とするプロセッサ。
- 第1識別子を添付して分岐命令を含む命令を発行し、分岐予測により投機実行する第1ステップと、
分岐ミスを検出した際に、誤って発行してしまった命令の後ろに続けて正しい方向の命令を第2識別子を添付して発行する第2ステップと、
前記分岐以前の命令が全て完了した後に、分岐予測により誤って発行してしまった命令をキャンセルして前記第2ステップが発行した命令に続く正しい方向の命令発行を前記第2識別子を添付して開始する第3ステップと、
を備えたことを特徴とするプロセッサの命令制御方法。
- 第1識別子を添付して分岐命令を含む命令を発行し、分岐予測により投機実行する第1ステップと、
第1の分岐ミスを検出した際に、誤って発行してしまった命令の後ろに続けて正しい方向の命令を第2識別子を添付して発行する第2ステップと、
前記第1の分岐ミスが検出されて第1の分岐ミスの正しい方向の命令が発行された後に、それ以前の古い分岐命令で第2の分岐ミスを検出した場合、前記古い分岐命令以前の命令が全て完了するのを待って、後続する全ての命令をキャンセルしてから、第2の分岐ミスの正しい方向の命令発行を開始する第3ステップと、
を備えたことを特徴とするプロセッサの命令制御方法。
- 第1識別子を添付して分岐命令を含む命令を発行し、分岐予測により投機実行する第1ステップと、
第1の分岐ミスを検出した際に、誤って発行してしまった命令の後ろに続けて正しい方向の命令を第2識別子を添付して発行する第2ステップと、
前記第1の分岐ミスが検出されて第1の分岐ミスの正しい方向の命令が発行された後に、それ以前の古い分岐命令で第2の分岐ミスを検出した場合、前記第1の分岐ミスの検出により正しい方向と判断して発行した命令をキャンセルした後に、前記第2の分岐ミスの検出により判断した第2の分岐ミスの正しい方向の命令発行を開始する第3ステップと、
前記第2の分岐ミスが検出されて正しい方向の命令が発行された後に、前記古い分岐命令以前の命令が全て完了するのを待って、前記第2の分岐予測により誤って発行してしまった命令をキャンセルしてから、正しい方向の命令発行を再開する第4ステップと、
を備えたことを特徴とするプロセッサの命令制御方法。
- 第1識別子を添付して分岐命令を含む命令を発行し、分岐予測により投機実行する第1ステップと、
第1の分岐ミスを検出した際に、誤って発行してしまった命令の後ろに続けて正しい方向の命令を第2識別子を添付して発行する第2ステップと、
前記第1の分岐ミスが検出されて第1の分岐ミスの正しい方向の命令発行を開始した後に、正しい方向として発行した命令内の新しい分岐命令で第2の分岐ミスを検出した場合、前記新しい分岐命令以前の命令が全て完了するのを待って後続する全ての命令をキャンセルしてから、第2の分岐ミスの正しい方向の命令発行を開始する第3ステップと、
を備えたことを特徴とするプロセッサの命令制御方法。
- 第1識別子を添付して分岐命令を含む命令を発行し、分岐予測により投機実行する第1ステップと、
第1の分岐ミスを検出した際に、誤って発行してしまった命令の後ろに続けて正しい方向の命令を第2識別子を添付して発行する第2ステップと、
前記第1の分岐ミスが検出されて第1の分岐ミスの正しい方向の命令発行を開始した後に、正しい方向として発行した命令内の新しい分岐命令で第2の分岐ミスを検出した場合、正しい方向の命令発行を抑止した状態で、前記第1分岐ミスが検出された古い方の分岐命令以前の命令が全て完了するのを待って、前記古い分岐命令により誤って発行してしまった命令をキャンセルしてから、前記抑止を解除して第2の分岐ミスの正しい方向の命令発行を開始する第3ステップと、
前記第2の分岐ミスの検出による正しい方向の命令発行が開始された後に、新しい分岐命令以前の命令が全て完了するのを待って、前記第1の分岐予測の検出により発行された命令をキャンセルしてから、前記第2の分岐ミスによる正しい方向の命令発行を再開する第4ステップと、
を備えたことを特徴とするプロセッサの命令制御方法。
- 請求の範囲7乃至11のプロセッサの命令制御方法に於いて、
命令が使用するレジスタの番号で参照されるエントリに、リネームに使用するリオーダーバッファのアドレス格納領域と、命令制御で添付する複数の識別子に対応して複数の有効フラグ領域を備えたリネームマップを備えた場合、
命令が使用するレジスタをリオーダーバッファを用いてリネームする際に、レジスタの番号で参照される前記リネームマップのエントリに、リネームに使用する前記リオーダーバッファのアドレスを格納すると共に、命令に添付される識別子に対応した有効フラグをオンし、
分岐ミスを検出した際に、誤って発行されてしまった命令に添付した識別子に対応した前記リネームマップの有効フラグをオフし、正しい方向に発行した命令に添付される別の識別子に対応した前記リネームマップの有効フラグをオンすることにより、
分岐ミスの検出により発行される正しい方向の命令が誤って発行されてしまった命令によるリネーム情報を使用することを防ぐことを特徴とするプロセッサの命令制御方法。
- 第1識別子を添付して例外発生命令を含む命令を発行し、例外発生なしとして投機的に命令を実行する第1命令制御部と、
例外発生を検出した際に、例外発生なしとして誤って発行してしまった命令の後ろに続けて例外処理ルーチンの命令を第2識別子を添付して発行する第2命令制御部と、
前記例外発生命令以前の命令が全て完了した後に、例外発生命令及び例外発生なしとして発生した命令をキャンセルして前記第2命令制御部が発行した命令に続く前記例外処理ルーチンの命令発行を前記第2識別子を添付して開始する第3命令制御部とを備えたことを特徴とするプロセッサ。
- 第1識別子を添付して例外発生命令を含む命令を発行し、例外発生なしとして投機的に命令を実行する第1命令制御部と、
第1の例外発生を検出した際に、例外発生なしとして誤って発行してしまった命令の後ろに続けて例外処理ルーチンの命令を第2識別子を添付して発行する第2命令制御部と、
前記第1の例外発生が検出されて正しい方向となる例外処理ルーチンの命令が発行された後に、それ以前の古い命令で第2の例外発生を検出した場合、前記古い例外発生命令以前の命令が全て完了するのを待って例外発生命令及び後続する全ての命令をキャンセルしてから、前記第2の例外発生による例外処理ルーチンの命令発行を開始する第3命令制御部と、
を備えたことを特徴とするプロセッサ。
- 第1識別子を添付して例外発生命令を含む命令を発行し、例外発生なしとして投機的に命令を実行する第1命令制御部と、
第1の例外発生を検出した際に、例外発生なしとして誤って発行してしまった命令の後ろに続けて例外処理ルーチンの命令を第2識別子を添付して発行する第2命令制御部と、
前記第1の例外発生が検出されて正しい方向となる例外処理ルーチンの命令が発行された後に、それ以前の古い命令で第2の例外発生を検出した場合、前記第1の例外発生の検出により発行した例外処理ルーチンの命令をキャンセルした後に、前記第2の例外発生の検出により正しい方向となる例外処理ルーチンの命令発行を開始する第3命令制御部と、
前記第2の例外発生が検出されて例外処理ルーチンの命令が発行された後に、前記古い命令以前の命令が全て完了するのを待って、前記第1の例外発生を起こした命令及び該命令により例外発生なしとして誤って発行してしまった命令をキャンセルしてから、前記第2の例外発生による例外処理ルーチンの命令発行を再開する第4命令制御部と、
を備えたことを特徴とするプロセッサ。
- 第1識別子を添付して例外発生命令を含む命令を発行し、例外発生なしとして投機的に命令を実行する第1命令制御部と、
第1の例外発生を検出した際に、例外発生なしとして誤って発行してしまった命令の後ろに続けて例外処理ルーチンの命令を第2識別子を添付して発行する第2命令制御部と、
前記第1の例外発生が検出されて正しい方向となる例外処理ルーチンの命令発行を開始した後に、前記例外処理ルーチンにより発行した命令内の新しい命令で第2の例外発生を検出した場合、前記新しい例外発生命令以前の命令が全て完了するのを待って例外発生命令及び後続する全ての命令をキャンセルしてから、前記第1の例外発生による例外処理ルーチンの命令発行を開始する第3命令制御部と、
を備えたことを特徴とするプロセッサ。
- 第1識別子を添付して例外発生命令を含む命令を発行し、例外発生なしとして投機的に命令を実行する第1命令制御部と、
第1の例外発生を検出した際に、例外発生なしとして誤って発行してしまった命令の後ろに続けて例外処理ルーチンの命令を第2識別子を添付して発行する第2命令制御部と、
前記第1の例外発生が検出されて正しい方向となる例外処理ルーチンの命令発行を開始した後に、前記例外処理ルーチンにより発行した命令内の新しい命令で第2の例外発生を検出した場合、前記例外処理ルーチンの命令発行を抑止した状態で、前記第1例外発生が検出された古い方の例外発生命令以前の命令が全て完了するのを待って、前記古い例外発生命令及び該命令により例外発生なしとして誤って発行してしまった命令をキャンセルしてから、前記抑止を解除して前記第2の例外発生により正しい方向となる例外処理ルーチンの命令発行を開始する第3命令制御部と、
前記第2の例外発生により例外処理ルーチンの命令が発行された後に、新しい例外発生命令以前の命令が全て完了するのを待って前記第2の例外発生の命令及び及び前記第1の例外発生の例外処理ルーチンで発行された命令をキャンセルしてから、前記第2の例外発生による例外処理ルーチンの命令発行を再開する第4命令制御部と、
を備えたことを特徴とするプロセッサ。
- 第1識別子を添付して例外発生命令を含む命令を発行し、例外発生なしとして投機的に命令を実行する第1ステップと、
例外発生を検出した際に、例外発生なしとして誤って発行してしまった命令の後ろに続けて例外処理ルーチンの命令を第2識別子を添付して発行する第2ステップと、
前記例外発生命令以前の命令が全て完了した後に、例外発生命令及び例外発生なしとして発行してしまった命令をキャンセルして前記第2ステップが発行した命令に続く前記例外処理ルーチンの命令発行を前記第2識別子を添付して開始する第3ステップと、
を備えたことを特徴とするプロセッサの命令制御方法。
- 第1識別子を添付して例外発生命令を含む命令を発行し、例外発生なしとして投機的に命令を実行する第1ステップと、
第1の例外発生を検出した際に、例外発生なしとして誤って発行してしまった命令の後ろに続けて例外処理ルーチンの命令を第2識別子を添付して発行する第2ステップと、
前記第1の例外発生が検出されて正しい方向となる例外処理ルーチンの命令が発行された後に、それ以前の古い命令で第2の例外発生を検出した場合、前記古い分岐命令以前の命令が全て完了するのを待って、例外発生命令及び後続する全ての命令をキャンセルしてから、前記第2の例外発生による例外処理ルーチンの命令発行を開始する第3ステップと、
を備えたことを特徴とするプロセッサの命令制御方法。
- 第1識別子を添付して例外発生命令を含む命令を発行し、例外発生なしとして投機的に命令を実行する第1ステップと、
第1の例外発生を検出した際に、例外発生なしとして誤って発行してしまった命令の後ろに続けて例外処理ルーチンの命令を第2識別子を添付して発行する第2ステップと、
前記第1の例外発生が検出されて正しい方向となる例外処理ルーチンの命令が発行された後に、それ以前の古い命令で第2の例外発生を検出した場合、前記第1の例外発生の検出により発行した例外処理ルーチンの命令をキャンセルした後に、前記第2の例外発生の検出により正しい方向となる例外処理ルーチンの命令発行を開始する第3ステップと、
前記第2の例外発生が検出されて例外処理ルーチンの命令が発行された後に、前記古い命令以前の命令が全て完了するのを待って、前記第1の例外発生を起こした命令及び該命令により例外発生なしとして誤って発行してしまった命令をキャンセルしてから、前記第2の例外発生による例外処理ルーチンの命令発行を再開する第4ステップと、
を備えたことを特徴とするプロセッサの命令制御方法。
- 第1識別子を添付して例外発生命令を含む命令を発行し、例外発生なしとして投機的に命令を実行する第1ステップと、
第1の例外発生を検出した際に、例外発生なしとして誤って発行してしまった命令の後ろに続けて例外処理ルーチンの命令を第2識別子を添付して発行する第2ステップと、
前記第1の例外発生が検出されて正しい方向となる例外処理ルーチンの命令発行を開始した後に、前記例外処理ルーチンにより発行した命令内の新しい命令で第2の例外発生を検出した場合、前記新しい例外発生命令以前の命令が全て完了するのを待って例外発生命令及び後続する全ての命令をキャンセルしてから、前記第1の例外発生による例外処理ルーチンの命令発行を開始する第3ステップと、
を備えたことを特徴とするプロセッサの命令制御方法。
- 第1識別子を添付して例外発生命令を含む命令を発行し、例外発生なしとして投機的に命令を実行する第1ステップと、
第1の例外発生を検出した際に、例外発生なしとして誤って発行してしまった命令の後ろに続けて例外処理ルーチンの命令を第2識別子を添付して発行する第2ステップと、
前記第1の例外発生が検出されて正しい方向となる例外処理ルーチンの命令発行を開始した後に、前記例外処理ルーチンにより発行した命令内の新しい命令で第2の例外発生を検出した場合、前記例外処理ルーチンの命令発行を抑止した状態で、前記第1例外発生が検出された古い方の例外発生命令以前の命令が全て完了するのを待って、前記古い例外発生命令及び該命令により例外発生なしとして誤って発行してしまった命令をキャンセルしてから、前記抑止を解除して前記第2の例外発生により正しい方向となる例外処理ルーチンの命令発行を開始する第3ステップと、
前記第2の例外発生により例外処理ルーチンの命令が発行された後に、新しい例外発生命令以前の命令が全て完了するのを待って前記第2の例外発生の命令及び前記第1の例外発生の例外処理ルーチンで発行された命令をキャンセルしてから、前記第2の例外発生による例外処理ルーチンの命令発行を再開する第4ステップと、
を備えたことを特徴とするプロセッサの命令制御方法。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2002/010370 WO2004031944A1 (ja) | 2002-10-04 | 2002-10-04 | プロセッサ及び命令制御方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPWO2004031944A1 JPWO2004031944A1 (ja) | 2006-02-02 |
| JP3807740B2 true JP3807740B2 (ja) | 2006-08-09 |
Family
ID=32051297
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2004541191A Expired - Fee Related JP3807740B2 (ja) | 2002-10-04 | 2002-10-04 | プロセッサ及び命令制御方法 |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP3807740B2 (ja) |
| WO (1) | WO2004031944A1 (ja) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2007097017A1 (ja) | 2006-02-27 | 2007-08-30 | Fujitsu Limited | バッファリング装置およびバッファリング方法 |
| JP7041353B2 (ja) * | 2018-06-06 | 2022-03-24 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
| JP7100258B2 (ja) | 2018-10-10 | 2022-07-13 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3082944B2 (ja) * | 1990-12-20 | 2000-09-04 | 富士通株式会社 | パイプライン処理装置 |
| US5644779A (en) * | 1994-04-15 | 1997-07-01 | International Business Machines Corporation | Processing system and method of operation for concurrent processing of branch instructions with cancelling of processing of a branch instruction |
| JPH07281893A (ja) * | 1994-04-15 | 1995-10-27 | Internatl Business Mach Corp <Ibm> | 処理システム及び演算方法 |
-
2002
- 2002-10-04 JP JP2004541191A patent/JP3807740B2/ja not_active Expired - Fee Related
- 2002-10-04 WO PCT/JP2002/010370 patent/WO2004031944A1/ja not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| JPWO2004031944A1 (ja) | 2006-02-02 |
| WO2004031944A1 (ja) | 2004-04-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3602840B2 (ja) | 命令の投機的実行制御装置およびその方法 | |
| US5592636A (en) | Processor architecture supporting multiple speculative branches and trap handling | |
| US6553480B1 (en) | System and method for managing the execution of instruction groups having multiple executable instructions | |
| US7330963B2 (en) | Resolving all previous potentially excepting architectural operations before issuing store architectural operation | |
| US8074060B2 (en) | Out-of-order execution microprocessor that selectively initiates instruction retirement early | |
| US6301655B1 (en) | Exception processing in asynchronous processor | |
| JP2839075B2 (ja) | 処理システムを動作させる方法及び処理システム | |
| JP2015164048A (ja) | 条件付き命令が無条件で出力を提供するシステム及び方法 | |
| JP3154660B2 (ja) | 条件レジスタ・データを一時的にバッファリングする方法およびシステム | |
| JPH10111800A (ja) | 分岐解決方法、プロセッサ、及びシステム | |
| JP3518510B2 (ja) | リオーダバッファの管理方法及びプロセッサ | |
| US20080244244A1 (en) | Parallel instruction processing and operand integrity verification | |
| JP2000330788A (ja) | コンピュータシステム | |
| US6934828B2 (en) | Decoupling floating point linear address | |
| JP3546403B2 (ja) | 順序外の実行を容易にする装置及び方法 | |
| JP3800533B2 (ja) | プログラムカウンタ制御方法及びプロセッサ | |
| JP3807740B2 (ja) | プロセッサ及び命令制御方法 | |
| JPH06266556A (ja) | データ処理装置 | |
| JP2004038753A (ja) | プロセッサ及び命令制御方法 | |
| US20050125634A1 (en) | Processor and instruction control method | |
| US20170109168A1 (en) | Method and apparatus for managing a speculative transaction in a processing unit | |
| US5784606A (en) | Method and system in a superscalar data processing system for the efficient handling of exceptions | |
| JPH08263288A (ja) | パイプライン・プロセッサ内において、誤って予測された実行分岐後にアネックス内のヤング・ビットを回復する方法及び装置 | |
| CN118012509A (zh) | 清空流水线的方法、处理器、芯片及电子设备 | |
| EP0877316A2 (en) | System and method of processing instructions for a processor |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060124 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060324 |
|
| 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: 20060425 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060515 |
|
| 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: 20090526 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100526 Year of fee payment: 4 |
|
| LAPS | Cancellation because of no payment of annual fees |