JPH04326425A - Loop processing control system - Google Patents

Loop processing control system

Info

Publication number
JPH04326425A
JPH04326425A JP12308491A JP12308491A JPH04326425A JP H04326425 A JPH04326425 A JP H04326425A JP 12308491 A JP12308491 A JP 12308491A JP 12308491 A JP12308491 A JP 12308491A JP H04326425 A JPH04326425 A JP H04326425A
Authority
JP
Japan
Prior art keywords
instruction
branch
loop processing
counter
microinstruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP12308491A
Other languages
Japanese (ja)
Inventor
Yoshiko Yamaguchi
佳子 山口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP12308491A priority Critical patent/JPH04326425A/en
Publication of JPH04326425A publication Critical patent/JPH04326425A/en
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

PURPOSE:To actuate both branch and non-branching operations with no time loss of a CPU and to improve the performance of a loop processing control system by fetching the instruction of a branching destination right after a branch instruction in a branch state. CONSTITUTION:The information which estimates a branch instruction for loop processing is added to the microinstruction that is stored in a memory 1. A counter value detection mechanism 11 activates the output signal of a loop processing counter 12 when the value of the counter 12 is not equal to 1. A 3-input adder 8 adds a constant, i.e., the process number of a single loop held by a constant register 7 and a relative address 9 between the branch instruction and the instruction of a branching destination to the value of a microinstruction counter 6 which holds the address of the microinstruction under execution. Then the output result of the adder 8 is fetched as the address of the memory 1 when both the signal showing the information that estimates the branch instruction and the output signal of the mechanism 11 are active.

Description

【発明の詳細な説明】[Detailed description of the invention]

【0001】0001

【産業上の利用分野】本発明は電子計算機制御方式に関
し、特にループ動作を行うマイクロ命令実行制御に関す
る。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an electronic computer control system, and more particularly to microinstruction execution control that performs loop operations.

【0002】0002

【従来の技術】従来、マイクロ命令によってパイプライ
ン処理を行うマイクロプロセッサでは、条件分岐を指示
するマイクロ命令を実行する場合、分岐条件を満たして
いない場合は、パイプラインの流れを変えることなくそ
のまま後続のマイクロ命令を実行し続けるが,分岐条件
を満たしている場合、即ち分岐する場合は、分岐先の命
令からフェッチしなおす必要があるため、パイプライン
の流れを一時的に止めて、分岐先の命令がパイプライン
の流れに乗るまで待たなければならなかった。この待ち
時間がCPU時間のロスとなるため、それを解決する手
段として、分岐命令の直後に分岐に依存しない命令を置
いて、分岐した場合にもそれを実行することで、CPU
時間のロスをなくすという最適化を行う非分岐優先型の
制御方式がある。しかしそのような命令がない場合は、
CPU時間のロスは避けられない。
[Background Art] Conventionally, in a microprocessor that performs pipeline processing using microinstructions, when executing a microinstruction that instructs a conditional branch, if the branch condition is not satisfied, the flow of the pipeline is continued without changing the flow of the pipeline. However, if the branch condition is satisfied, that is, if a branch is to be taken, it is necessary to re-fetch from the branch destination instruction, so the flow of the pipeline is temporarily stopped and the branch destination instruction is executed. I had to wait until the instructions flowed down the pipeline. This waiting time results in a loss of CPU time, so one way to solve this problem is to place an instruction that does not depend on the branch immediately after the branch instruction and execute it even when a branch occurs.
There is a non-branch priority control method that performs optimization to eliminate time loss. But if there is no such command,
Loss of CPU time is unavoidable.

【0003】この従来の制御方式で、分岐する確率が低
い場合はさほどのCPU時間のロスではないと考えられ
るが、例えば分岐命令のアドレスより小さなアドレスに
分岐して、同じマイクロ命令の流れを何度も実行するル
ープ型のプログラムのように分岐する確率が高い場合は
、CPU時間のロスは大きなものになる。それを解決す
る手段として考えられているのが、分岐優先型の制御方
式で、分岐命令のフェッチの後に必ず分岐先のマイクロ
命令からフェッチを行うものである。しかしこの場合は
、先に示した非分岐優先型の制御方式と逆に分岐条件を
満たさない場合即ち分岐しない場合に、分岐命令の後続
のマイクロ命令をフェッチしなおさなければならず、や
はりパイプラインの流れを止めて待つ必要があるためC
PU時間のロスが生じる。最適化に関しては、先に示し
た例と同様である。
With this conventional control method, if the probability of branching is low, the loss of CPU time may not be that great. When the probability of branching is high, such as in a loop-type program that is repeatedly executed, the loss of CPU time becomes large. A branch-priority control system is being considered as a solution to this problem, in which a branch destination microinstruction is always fetched after a branch instruction is fetched. However, in this case, contrary to the non-branch-priority type control method shown above, if the branch condition is not satisfied, that is, if the branch does not take place, the microinstruction following the branch instruction must be re-fetched, and the pipeline C because it is necessary to stop the flow and wait.
A loss of PU time occurs. Regarding optimization, it is similar to the example shown above.

【0004】更に、分岐する確率のバラつきが大きなプ
ログラムの場合は、どちらの方式を用いても性能はほと
んど変わらず、効果があまり期待できなかった。
Furthermore, in the case of a program with large variations in branching probabilities, there is almost no difference in performance no matter which method is used, and very little effect can be expected.

【0005】[0005]

【発明が解決しようとする課題】上述した従来のマイク
ロ命令によってパイプライン処理を行うマイクロプロセ
ッサでは、ループ型の条件分岐命令を実行する場合、非
分岐優先型分岐制御の場合は分岐する度にCPU時間の
ロスが生じ、分岐優先型分岐制御の場合は分岐せずにル
ープから抜ける時にCPU時間のロスが生じ、またルー
プ回数が少ない場合は分岐優先型分岐制御を行っていて
もその効果がさほど出ないという欠点がある。
[Problems to be Solved by the Invention] In the microprocessor that performs pipeline processing using the conventional microinstructions described above, when executing a loop-type conditional branch instruction, in the case of non-branch priority branch control, the CPU In the case of branch-priority branch control, there is a loss of CPU time when exiting from the loop without branching, and if the number of loops is small, even if branch-priority branch control is performed, the effect is not so much. The drawback is that it doesn't come out.

【0006】本発明の目的は、ループ処理における分岐
動作,非分岐動作双方共にCPU時間のロスをなくして
動作させることができ、性能を向上させることのできる
ループ処理制御方式を提供することにある。
An object of the present invention is to provide a loop processing control method that can perform both branching and non-branching operations in loop processing without any loss of CPU time, and can improve performance. .

【0007】[0007]

【課題を解決するための手段】本発明は、マイクロ命令
によってパイプライン処理を行うマイクロプロセッサの
ループ処理方式において、ループ処理を行うための分岐
命令を予測する情報を有するマイクロ命令を格納するメ
モリと、ループ処理用カウンタの値が定数か否かを検出
するカウンタ値検出機構と、マイクロ命令カウンタの値
に定数及び分岐命令と分岐先の命令との相対アドレスを
加算する3入力加算器と、マイクロ命令が有するループ
処理を行うための分岐命令を予測する情報を示す信号が
アクティブかつ前記カウンタ値検出機構の出力信号がア
クティブの時に、前記3入力加算器の出力結果を前記メ
モリのアドレスとしてフェッチを行う機構とを有するこ
とを特徴とする。
[Means for Solving the Problems] The present invention provides a loop processing method for a microprocessor that performs pipeline processing using microinstructions. , a counter value detection mechanism that detects whether the value of a loop processing counter is a constant, a three-input adder that adds a constant and a relative address of a branch instruction and a branch destination instruction to the value of a microinstruction counter; Fetching the output result of the three-input adder as an address of the memory when a signal indicating information predicting a branch instruction for performing loop processing included in the instruction is active and an output signal of the counter value detection mechanism is active. The invention is characterized in that it has a mechanism for performing this.

【0008】[0008]

【実施例】次に本発明の実施例について図面を参照して
説明する。
Embodiments Next, embodiments of the present invention will be described with reference to the drawings.

【0009】図1は本発明の一実施例のハードウェア図
、図2は本発明のマイクロ命令実行の流れ図、図3は本
発明において図2の命令群を実行した時のタイムチャー
ト、図4は従来技術の非分岐優先型制御方式において図
2の命令群を実行した時のタイムチャート、図5は従来
技術の分岐優先型制御方式において同じく図2の命令群
を実行した時のタイムチャートである。
FIG. 1 is a hardware diagram of an embodiment of the present invention, FIG. 2 is a flowchart of microinstruction execution of the present invention, FIG. 3 is a time chart when the instruction group of FIG. 2 is executed in the present invention, and FIG. 5 is a time chart when the instruction group shown in FIG. 2 is executed in the conventional non-branch priority control system, and FIG. 5 is a time chart when the instruction group shown in FIG. 2 is executed in the conventional branch priority control system. be.

【0010】図1に示すループ処理制御方式は、ループ
処理を行うための分岐命令を予測する情報を有するマイ
クロ命令を格納するメモリ1と、命令レジスタ2と、デ
コーダ3と、パイプラインレジスタ4と、ループ処理用
カウンタ12と、このループ処理用カウンタ(図示せず
)の値が定数か否かを検出するカウンタ値検出機構11
と、実行中のマイクロ命令のアドレスを保持するマイク
ロ命令カウンタ6と、1ループの処理数である定数を保
持する定数レジスタ7と、マイクロ命令カウンタ6の値
に定数及び分岐命令と分岐先の命令との相対アドレスを
加算する3入力加算器8と、マイクロ命令が有するルー
プ処理を行うための分岐命令を予測する情報を示す信号
がアクティブかつカウンタ値検出機構11の出力信号が
アクティブの時に、3入力加算器8の出力結果をメモリ
1のアドレスとしてフェッチを行うことを指示するアン
ドゲート10とを有している。
The loop processing control system shown in FIG. 1 includes a memory 1 that stores microinstructions having information for predicting branch instructions for performing loop processing, an instruction register 2, a decoder 3, and a pipeline register 4. , a loop processing counter 12, and a counter value detection mechanism 11 that detects whether the value of this loop processing counter (not shown) is a constant.
, a microinstruction counter 6 that holds the address of the microinstruction being executed, a constant register 7 that holds a constant that is the number of processes in one loop, and a constant, a branch instruction, and a branch destination instruction in the value of the microinstruction counter 6. When the 3-input adder 8 that adds the relative address of the 3-input adder 8 and the signal indicating information for predicting a branch instruction for performing loop processing included in the microinstruction are active and the output signal of the counter value detection mechanism 11 is active, The AND gate 10 instructs to fetch the output result of the input adder 8 as an address in the memory 1.

【0011】更に、図2および図3をも参照してループ
処理制御動作を説明する。図2に示すように、各マイク
ロ命令21〜26はループ分岐予測ビット27を有して
いる。このビットを“1”とするための条件は、後続の
マイクロ命令がループ動作で使用するカウンタ(ループ
処理用カウンタ)の1減算を行う命令で、その次の命令
がループ処理用カウンタの値が0でなければその命令の
アドレスより小さな値のアドレスへ分岐し、0であれば
分岐しないで次の命令へ制御が移ることを意味する命令
であることである。図2では、カウンタデクリメント命
令24とカウンタによる条件分岐命令25がそれぞれそ
の動作をするものとする。この場合、レジスタBX2加
算命令23のループ分岐予測ビット27を“1”として
おく。基本的なループ処理を行うためのプログラミング
方法は、ある処理をループする回数をループ処理用カウ
ンタ12にロードし,処理を1回終了する度にループ処
理用カウンタ12を1減算し処理の頭に戻るという方式
であるが、図2では、カウンタロード命令21で回数N
(>1)をループ処理用カウンタにロードし、レジスタ
AX1加算命令22とレジスタBX2加算命令23の2
つの処理をN回行うプログラミングの例を挙げている。 N回処理が終わらないうちは、命令25でループ処理用
カウンタ12の値が0でなければ分岐するという条件を
満たすため命令22へ分岐するが、N回処理が終わると
ループ処理用カウンタ12の値が0になるため、もはや
命令25で条件を満たさなくなり、ループ処理を終えて
レジスタAX2加算命令26の実行へと制御は移る。
Further, the loop processing control operation will be explained with reference to FIGS. 2 and 3. As shown in FIG. 2, each microinstruction 21-26 has a loop branch prediction bit 27. The condition for setting this bit to “1” is that the subsequent microinstruction must subtract 1 from the counter used in the loop operation (loop processing counter), and the next instruction must be such that the value of the loop processing counter is If it is not 0, the instruction will branch to an address with a smaller value than the address of the instruction, and if it is 0, the instruction will not branch and control will be transferred to the next instruction. In FIG. 2, it is assumed that the counter decrement instruction 24 and the counter conditional branch instruction 25 perform the respective operations. In this case, the loop branch prediction bit 27 of the register BX2 addition instruction 23 is set to "1". The programming method for performing basic loop processing is to load the number of times a certain process is looped into the loop processing counter 12, and each time the process is completed, the loop processing counter 12 is decremented by 1, and the number of times a certain process is looped is decremented by 1. In FIG. 2, the counter load instruction 21 returns the number of times N.
(>1) to the loop processing counter, register AX1 addition instruction 22 and register BX2 addition instruction 23.
An example of programming that performs one process N times is given. Until the Nth processing is completed, the condition of branching is satisfied if the value of the loop processing counter 12 is not 0 in instruction 25, so the branch is made to instruction 22. However, when the Nth processing is completed, the value of the loop processing counter 12 is Since the value becomes 0, the instruction 25 no longer satisfies the condition, and the loop processing ends and control shifts to execution of the register AX2 addition instruction 26.

【0012】以上の動作を図1および図3に照らし合わ
せて説明する。
The above operation will be explained with reference to FIGS. 1 and 3.

【0013】図3のタイミングT1で命令21はマイク
ロ命令格納用メモリ1からフェッチされて命令レジスタ
2へロードされる。タイミングT2で命令21はデコー
ダ3のデコードを経てパイプラインレジスタ4へその制
御信号がロードされる。同じタイミングT2で命令22
はマイクロ命令格納用メモリ1からフェッチされて命令
レジスタ2へロードされる。タイミングT3で命令21
の実行、即ちループ処理用カウンタ12へループ回数N
のロードが行われる。この時、実行時ループ分岐予測ビ
ット5は,命令21のループ分岐予測ビット27の値を
そのまま受けて0であるため分岐動作は行わない。同じ
タイミングT3で、命令22のデコード、命令23のフ
ェッチが行われる。タイミングT4では命令22の実行
、命令23のデコード、命令24のフェッチが行われる
。タイミングT5では命令23の実行と同時に実行時ル
ープ分岐予測ビット5が1になり、またループ処理用カ
ウンタのカウンタ値が1のとき0を出力し、カウンタ値
が1以外の時に1を出力するカウンタ値検出機構11は
カウンタの値N(>1)に応じて1を出力する。従って
アンドゲート10の出力が1となり、分岐動作が行われ
る。このときの分岐先アドレスは、命令25の分岐先相
対アドレス9と実行中のマイクロ命令のアドレス即ちこ
こでは命令23のアドレスを保持するマイクロ命令カウ
ンタ6の値と、ここでは1ループの処理数である定数2
を保持している定数レジスタ7の値とが3入力加算器8
で加算された値である。分岐先相対アドレス9はここで
は−3であるから、3入力加算器8の出力は命令23の
アドレス−1即ち命令22のアドレスとなる。このアド
レスに格納されているマイクロ命令22が次タイミング
T6でフェッチされることとなる。尚、N=1の時は、
カウンタ値検出機構11が0を出力するため分岐しない
。同じタイミングT5で命令24のデコード、命令25
のフェッチが行われる。このように、分岐時には分岐先
の命令が分岐命令のすぐ後にフェッチされるため、CP
Uの実行時間には全くロスがない。
At timing T1 in FIG. 3, the instruction 21 is fetched from the microinstruction storage memory 1 and loaded into the instruction register 2. At timing T2, the instruction 21 is decoded by the decoder 3, and its control signal is loaded into the pipeline register 4. Instruction 22 at the same timing T2
is fetched from the microinstruction storage memory 1 and loaded into the instruction register 2. Instruction 21 at timing T3
In other words, the number of loops N is input to the loop processing counter 12.
is loaded. At this time, since the runtime loop branch prediction bit 5 receives the value of the loop branch prediction bit 27 of the instruction 21 as is and is 0, no branch operation is performed. At the same timing T3, instruction 22 is decoded and instruction 23 is fetched. At timing T4, the instruction 22 is executed, the instruction 23 is decoded, and the instruction 24 is fetched. At timing T5, the runtime loop branch prediction bit 5 becomes 1 at the same time as instruction 23 is executed, and the counter outputs 0 when the counter value of the loop processing counter is 1, and outputs 1 when the counter value is other than 1. The value detection mechanism 11 outputs 1 in response to the counter value N (>1). Therefore, the output of the AND gate 10 becomes 1, and a branch operation is performed. The branch destination address at this time is the branch destination relative address 9 of the instruction 25, the address of the microinstruction being executed, that is, the value of the microinstruction counter 6 that holds the address of the instruction 23 in this case, and the number of processes in one loop in this case. a certain constant 2
The value of constant register 7 holding
This is the value added in . Since the branch target relative address 9 is -3 here, the output of the three-input adder 8 is the address -1 of the instruction 23, that is, the address of the instruction 22. The microinstruction 22 stored at this address will be fetched at the next timing T6. Furthermore, when N=1,
Since the counter value detection mechanism 11 outputs 0, there is no branching. At the same timing T5, instruction 24 is decoded and instruction 25 is decoded.
is fetched. In this way, when branching, the branch destination instruction is fetched immediately after the branch instruction, so the CP
There is no loss in the execution time of U.

【0014】次に、処理をN回実行してループ処理を終
える時の動作を説明する。図3のタイミングT11では
N回目の命令23が実行されており、このタイミングで
はループ処理用カウンタ12の値はまだ(N−1)回の
減算しか行われていないので1である。従ってカウンタ
値検出機構11の出力は0となり、アンドゲート10の
出力が0になるので分岐動作は行わない。タイミングT
12では分岐命令25の次の命令である命令26がフェ
ッチされる。この場合も全くパイプラインの流れを止め
ることなく動作するため、CPUの実行時間には全くロ
スがない。
[0014] Next, the operation when the process is executed N times and the loop process ends will be explained. At timing T11 in FIG. 3, the N-th instruction 23 is executed, and at this timing, the value of the loop processing counter 12 is 1 because only (N-1) subtractions have been performed. Therefore, the output of the counter value detection mechanism 11 becomes 0, and the output of the AND gate 10 becomes 0, so no branching operation is performed. timing T
At step 12, instruction 26, which is the next instruction after branch instruction 25, is fetched. In this case as well, since the flow of the pipeline is not stopped at all, there is no loss in CPU execution time.

【0015】従来技術でこのマイクロ命令によるループ
処理を行った場合のタイミングを説明する。図4では、
非分岐優先のタイプであるが、タイミングT7で分岐命
令25を実行してはじめて、分岐先のアドレスを生成し
てフェッチを行うので、タイミングT8で分岐先の命令
22をフェッチする。この場合、命令22が実行される
タイミングT10までCPUはパイプラインの流れを止
めて待たなければならない。図のように2サイクル分の
ロスになる。分岐しない場合は、タイミングT11〜T
13のようにパイプラインが止まることなく動作するの
で問題はない。
[0015] The timing when loop processing is performed using this microinstruction using the prior art will be explained. In Figure 4,
Although this is a non-branch priority type, the branch destination address is generated and fetched only after the branch instruction 25 is executed at timing T7, so the branch destination instruction 22 is fetched at timing T8. In this case, the CPU must stop the flow of the pipeline and wait until timing T10 when instruction 22 is executed. As shown in the figure, there is a loss of 2 cycles. If there is no branch, timing T11-T
There is no problem because the pipeline operates without stopping as in 13.

【0016】図5では、分岐優先のタイプであるが、分
岐命令25をフェッチしたタイミングT5で、分岐命令
であることを検出し、分岐如何に拘らず分岐先の命令2
2を次のタイミングT6でフェッチする制御となってい
る。この場合はパイプラインは止まることなく動作する
ので問題はない。しかし、N回の処理が終わってループ
を抜ける時は、タイミングT11で命令25を実行する
時にならなければ、その判断がつかず、タイミングT1
2ではじめて後続の命令26をフェッチするので、T1
2,T13の実行サイクルは流れを止めて命令26が実
行できるようになるまで待たなければならない。従って
やはり2サイクル分のロスになる。
In FIG. 5, the branch priority type is shown, but at timing T5 when the branch instruction 25 is fetched, it is detected that it is a branch instruction, and the instruction 2 at the branch destination is executed regardless of whether the branch is branched or not.
2 is fetched at the next timing T6. In this case, there is no problem because the pipeline operates without stopping. However, when exiting the loop after completing N processing, the decision cannot be made unless it is time to execute instruction 25 at timing T11.
Since the subsequent instruction 26 is fetched for the first time at T1
2. The execution cycle of T13 must stop the flow and wait until instruction 26 can be executed. Therefore, there is still a loss of two cycles.

【0017】[0017]

【発明の効果】以上説明したように本発明は、マイクロ
命令によってパイプライン処理を行うマイクロプロセッ
サにおいて、ループ処理を行うための分岐命令を予測す
る情報を有するマイクロ命令を格納するメモリと、ルー
プ処理用カウンタの値が定数か否かを検出するカウンタ
値検出機構と、マイクロ命令カウンタの値に定数及び分
岐命令と分岐先の命令との相対アドレスを加算する3入
力加算器と、マイクロ命令が有するループ処理を行うた
めの分岐命令を予測する情報を示す信号がアクティブか
つカウンタ値検出機構の出力信号がアクティブの時に、
3入力加算器の出力結果を前記メモリのアドレスとして
フェッチを行う機構とを有することによってループ処理
における分岐動作,非分岐動作双方共にCPU時間のロ
スをなくして動作させることができ、性能を向上させる
効果がある。
As explained above, the present invention provides a microprocessor that performs pipeline processing using microinstructions, which includes a memory that stores microinstructions having information for predicting branch instructions for performing loop processing, and The microinstruction has a counter value detection mechanism that detects whether the value of the counter for the microinstruction is a constant, a three-input adder that adds a constant and the relative address of the branch instruction and the branch destination instruction to the value of the microinstruction counter. When the signal indicating information for predicting a branch instruction for performing loop processing is active and the output signal of the counter value detection mechanism is active,
By having a mechanism for fetching the output result of the 3-input adder as an address in the memory, both branching and non-branching operations in loop processing can be performed without CPU time loss, improving performance. effective.

【図面の簡単な説明】[Brief explanation of drawings]

【図1】本発明の一実施例のハードウェア図である。FIG. 1 is a hardware diagram of one embodiment of the present invention.

【図2】本発明のマイクロ命令実行の流れ図である。FIG. 2 is a flow diagram of microinstruction execution of the present invention.

【図3】本発明において図2の命令群を実行した時のタ
イムチャートである。
FIG. 3 is a time chart when the instruction group of FIG. 2 is executed in the present invention.

【図4】従来技術の非分岐優先型制御方式において図2
の命令群を実行した時のタイムチャートである。
[Figure 4] Figure 2 in the conventional non-branch priority control system
This is a time chart when executing a group of instructions.

【図5】従来技術の分岐優先型制御方式において、図2
の命令群を実行した時のタイムチャートである。
[Fig. 5] In the conventional branch priority control system, Fig. 2
This is a time chart when executing a group of instructions.

【符号の説明】[Explanation of symbols]

1  マイクロ命令格納用メモリ 2  命令レジスタ 3  デコーダ 4  パイプラインレジスタ 5  実行時ループ分岐予測ビット 6  マイクロ命令カウンタ 7  定数レジスタ 8  3入力加算器 9  分岐先相対アドレス 10  アンドゲート 11  カウンタ値検出機構 12  ループ処理用カウンタ 21〜26  マイクロ命令 1 Memory for storing microinstructions 2 Instruction register 3 Decoder 4 Pipeline register 5 Runtime loop branch prediction bit 6 Micro instruction counter 7 Constant register 8 3-input adder 9 Branch destination relative address 10 And Gate 11 Counter value detection mechanism 12 Loop processing counter 21-26 Micro instructions

Claims (3)

【特許請求の範囲】[Claims] 【請求項1】マイクロ命令によってパイプライン処理を
行うマイクロプロセッサのループ処理制御方式において
、ループ処理を行うための分岐命令を予測する情報を有
するマイクロ命令を格納するメモリと、ループ処理用カ
ウンタの値が定数か否かを検出するカウンタ値検出機構
と、マイクロ命令カウンタの値に定数及び分岐命令と分
岐先の命令との相対アドレスを加算する3入力加算器と
、マイクロ命令が有するループ処理を行うための分岐命
令を予測する情報を示す信号がアクティブかつ前記カウ
ンタ値検出機構の出力信号がアクティブの時に、前記3
入力加算器の出力結果を前記メモリのアドレスとしてフ
ェッチを行う機構とを有することを特徴とするループ処
理制御方式。
1. A loop processing control method for a microprocessor that performs pipeline processing using microinstructions, comprising a memory that stores microinstructions having information for predicting branch instructions for performing loop processing, and a value of a loop processing counter. A counter value detection mechanism that detects whether or not is a constant, a 3-input adder that adds a constant and the relative address of the branch instruction and the branch destination instruction to the value of the microinstruction counter, and performs loop processing that the microinstruction has. When a signal indicating information for predicting a branch instruction for a branch instruction is active and an output signal of the counter value detection mechanism is active, the third
A loop processing control method comprising: a mechanism for fetching an output result of an input adder as an address in the memory.
【請求項2】請求項1記載のループ処理制御方式におい
て、マイクロ命令が有するループ処理を行うための分岐
命令を予測する情報を示す信号をアクティブとするため
の条件は、後続のマイクロ命令が前記ループ処理用カウ
ンタの1減算を行う命令で、その次の命令がループ処理
用カウンタの値が0でなければその命令のアドレスより
小さな値のアドレスへ分岐し、0であれば分岐しないで
次の命令へ制御が移ることを意味する命令であることを
特徴とするループ処理制御方式。
2. In the loop processing control method according to claim 1, the condition for activating a signal indicating information for predicting a branch instruction for performing loop processing included in a microinstruction is such that the following microinstruction is This is an instruction that decrements the loop processing counter by 1. If the next instruction does not have the value of the loop processing counter 0, it will branch to an address with a smaller value than the address of that instruction, and if it is 0, it will not branch and will proceed to the next instruction. A loop processing control method characterized by an instruction that means that control is transferred to an instruction.
【請求項3】請求項2記載のループ処理制御方式におい
て、前記カウンタ値検出機構は、ループ処理用カウンタ
の値が1でない場合に、その出力信号をアクティブにす
ることを特徴とするループ処理制御方式。
3. The loop processing control method according to claim 2, wherein the counter value detection mechanism activates its output signal when the value of the loop processing counter is not 1. method.
JP12308491A 1991-04-26 1991-04-26 Loop processing control system Pending JPH04326425A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP12308491A JPH04326425A (en) 1991-04-26 1991-04-26 Loop processing control system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12308491A JPH04326425A (en) 1991-04-26 1991-04-26 Loop processing control system

Publications (1)

Publication Number Publication Date
JPH04326425A true JPH04326425A (en) 1992-11-16

Family

ID=14851812

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12308491A Pending JPH04326425A (en) 1991-04-26 1991-04-26 Loop processing control system

Country Status (1)

Country Link
JP (1) JPH04326425A (en)

Similar Documents

Publication Publication Date Title
JP2518616B2 (en) Branching method
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
US5303355A (en) Pipelined data processor which conditionally executes a predetermined looping instruction in hardware
JP5043560B2 (en) Program execution control device
KR100571322B1 (en) Exception handling methods, devices, and systems in pipelined processors
JPH06236271A (en) Processor and method for guess and execution of instruction
US5522084A (en) Method and system for invalidating instructions utilizing validity and write delay flags in parallel processing apparatus
JP3207124B2 (en) Method and apparatus for supporting speculative execution of a count / link register change instruction
US20020078333A1 (en) Resource efficient hardware loops
US7472264B2 (en) Predicting a jump target based on a program counter and state information for a process
JPH04326425A (en) Loop processing control system
JP3759729B2 (en) Speculative register adjustment
US6718460B1 (en) Mechanism for error handling in a computer system
JP6098429B2 (en) Arithmetic processing device and control method of arithmetic processing device
JP3100705B2 (en) Apparatus for instruction preparation in a microprocessor
EP0211487A1 (en) Conditional operations in computers
JP2924735B2 (en) Pipeline operation device and decoder device
JP2001216156A (en) Method and device for instruction cache access
JP2503223B2 (en) Prior control method
US7124285B2 (en) Peak power reduction when updating future file
JPH0774992B2 (en) Data processing device
JP2010140398A (en) Apparatus and method for data process
JPH02211533A (en) Computer apparatus for performing selective execution of instruction following branch instruction
JPS6257028A (en) Branch control system in information processor of pipeline control
JPH01175635A (en) Data processor