JP3144004B2 - Conditional branch processing unit - Google Patents

Conditional branch processing unit

Info

Publication number
JP3144004B2
JP3144004B2 JP03313068A JP31306891A JP3144004B2 JP 3144004 B2 JP3144004 B2 JP 3144004B2 JP 03313068 A JP03313068 A JP 03313068A JP 31306891 A JP31306891 A JP 31306891A JP 3144004 B2 JP3144004 B2 JP 3144004B2
Authority
JP
Japan
Prior art keywords
instruction
address
conditional branch
register
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP03313068A
Other languages
Japanese (ja)
Other versions
JPH05127898A (en
Inventor
登 黒川
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP03313068A priority Critical patent/JP3144004B2/en
Publication of JPH05127898A publication Critical patent/JPH05127898A/en
Application granted granted Critical
Publication of JP3144004B2 publication Critical patent/JP3144004B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【産業上の利用分野】本発明は条件分岐命令を他の命令
(逐次に実行可能な命令)と同じサイクル数で処理する
際に処理時間の遅れが生じないようにした新規な条件分
岐処理装置を提供しようとするものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a new conditional branch processing apparatus which does not cause a delay in processing time when a conditional branch instruction is processed in the same number of cycles as other instructions (sequentially executable instructions). It is intended to provide.

【0002】[0002]

【従来の技術】コンピュータにおける制御中枢の基本的
な働きは、命令の取り出しとその解読、実行であり、そ
のためにCPUは制御部と演算部を備えている。
2. Description of the Related Art The basic function of a control center in a computer is to fetch an instruction, decode the instruction, and execute the instruction. For this purpose, the CPU includes a control unit and an arithmetic unit.

【0003】そして、プログラムの制御構造は、命令を
順番に処理する順次制御や、指定条件の成立、不成立に
応じて選択的に処理を行う条件分岐制御等を含んでい
る。
The control structure of the program includes sequential control for processing instructions in order, and conditional branching control for selectively performing processing according to whether a specified condition is satisfied or not satisfied.

【0004】つまり、命令が遂次に実行可能な命令であ
る場合にはCPUがこれを順番に処理し、条件分岐命令
である場合にはALU(算術論理回路)の演算結果に関
するステータス(状態値)に応じて飛び先き番地にジャ
ンプするか、次の命令に移行するかを選択して処理の流
れに変更を加える。
That is, if the instruction is an instruction that can be executed successively, the CPU processes the instruction in order, and if the instruction is a conditional branch instruction, the status (state value) relating to the operation result of the ALU (arithmetic logic circuit). ) To select whether to jump to the destination address or to shift to the next instruction, and change the processing flow.

【0005】このような命令を実行するCPUを複数用
いてパイプライン処理を行う場合、1段当たりの実行ス
テップを同一にし、かつその長さを短くすることが処理
効率や処理時間の観点から好ましいとされている。
When pipeline processing is performed using a plurality of CPUs that execute such instructions, it is preferable from the viewpoint of processing efficiency and processing time to make the execution steps per stage the same and shorten the length. It has been.

【0006】図4は従来のプログラム処理の流れを示す
ものである。
FIG. 4 shows a flow of a conventional program processing.

【0007】図中aはALUであり、演算結果のステー
タス出力はステータスレジスタbに格納されてから2入
力ANDゲートcに送出されるようになっている。
In the figure, a is an ALU, and the status output of the operation result is stored in a status register b and then sent to a two-input AND gate c.

【0008】dはマルチプレクサであり、ANDゲート
cからの信号に応じてインクリメント(+1)されたア
ドレス(プログラムカウンタ)値(図中「INC」で示
す。)と後述するパイプラインレジスタからの飛び先ア
ドレスとを選択的に切り換えてマイクロプログラムメモ
リeにその読み出しアドレスとして送出される。
Reference numeral d denotes a multiplexer, which is an address (program counter) value (indicated by "INC" in the figure) incremented (+1) in accordance with a signal from the AND gate c and a jump destination from a pipeline register described later. The address is selectively switched and transmitted to the microprogram memory e as the read address.

【0009】マイクロプログラムメモリeから読み出さ
れた命令はパイプラインレジスタfに一時的に格納さ
れ、当該命令を構成するオペレーション部(処理内容を
指示する部分)はANDゲートcに送られてステータス
との論理積演算がなされ、また、命令が条件分岐命令で
ある場合にそのアドレス部の値がマルチプレクサdにそ
のまま送出されるようになっている。
The instruction read from the microprogram memory e is temporarily stored in a pipeline register f, and an operation unit (a part for instructing the processing content) constituting the instruction is sent to an AND gate c to receive a status and AND operation is performed, and when the instruction is a conditional branch instruction, the value of the address portion is sent to the multiplexer d as it is.

【0010】図5は、対象となる命令が条件分岐命令で
ない場合(図5(a)参照。)と、対象となる命令が条
件分岐命令である場合(図5(b)参照。)とについ
て、演算と条件分岐処理との関係を示すタイムチャート
図であり、「CL」はクロック信号、「AL」は演算状
態、「ST]はステータス出力、「RD」はマイクロ命
令の読み出し及び実行タイミングを表している。尚、A
LUaによる演算は、斜線で示すようにクロック信号C
Lにおけるパルスの立ち上がりから始まってパルスの立
ち下がりから次のパルスの立ち上がりまでの間で終了す
る。
FIG. 5 shows a case where the target instruction is not a conditional branch instruction (see FIG. 5 (a)) and a case where the target instruction is a conditional branch instruction (see FIG. 5 (b)). FIG. 9 is a time chart showing the relationship between the operation and the conditional branch processing, where “CL” is a clock signal, “AL” is an operation state, “ST” is a status output, and “RD” is a read and execution timing of a micro instruction. Represents. A
The operation by the LUa is performed by using the clock signal C as shown by hatching.
It starts from the rise of the pulse at L and ends between the fall of the pulse and the rise of the next pulse.

【0011】この場合、個々のマイクロ命令を1タイミ
ング(あるいはクロック)サイクルで実行するためには
命令の読みだしをクロック信号の1周期内で行う必要が
ある。
In this case, in order to execute each microinstruction in one timing (or clock) cycle, it is necessary to read the instruction within one cycle of the clock signal.

【0012】つまり、条件分岐しない命令にあっては、
図5(a)に示すようにクロックパルスの立ち上がり時
点からマイクロプログラムメモリeからの読み出しが開
始され、次にくるパルスの立ち上がり時点までには読み
出しが終了して実行に移っているので、時間の遅れを伴
うことなく後続パルスの立ち上がりのタイミングで次の
命令の読み出しに移行することができる。
That is, for an instruction that does not branch conditionally,
As shown in FIG. 5A, the reading from the microprogram memory e is started from the rising edge of the clock pulse, and the reading is completed and started to be executed by the rising edge of the next pulse. It is possible to shift to reading of the next instruction at the rising timing of the subsequent pulse without delay.

【0013】しかし、条件分岐命令にあっては、図5
(b)に示すように演算後のステータスに基づいてこれ
に対応する命令の読み出しを開始しなければならない。
However, in the case of the conditional branch instruction, FIG.
As shown in (b), the reading of the corresponding instruction must be started based on the status after the operation.

【0014】よって、図示するように読み出しが後続パ
ルスの立ち上がり時点にまでかかってしまうと、後続パ
ルスの立ち上がりのタイミングで次の命令の読み出しに
移ることができなくなり、結果としてに命令の実行に2
サイクルの時間を要することになる。
Therefore, as shown in the figure, if the reading is performed up to the rising edge of the subsequent pulse, it becomes impossible to proceed to the reading of the next instruction at the timing of the rising edge of the subsequent pulse.
Cycle time will be required.

【0015】[0015]

【発明が解決しようとする課題】以上のように、従来の
条件分岐処理にあっては、ALUaの演算結果に係るス
テータスを待って次に実行すべき命令を読み出している
ため、命令の読み出しが遅れ、その結果処理に時間がか
かってしまうという問題があり、例えば画像データのよ
うに大量かつ高速での処理を要求される場合において処
理に手間取ってしまうといった不都合が生じる。
As described above, in the conventional conditional branch processing, the instruction to be executed next is read after waiting for the status relating to the operation result of the ALUa. As a result, there is a problem that the processing takes a long time. For example, when a large amount and high-speed processing is required as in the case of image data, there is an inconvenience that the processing is time-consuming.

【0016】条件分岐命令とそうでない命令とを同じサ
イクル数で処理するためには、条件分岐命令を、演算に
係る命令と分岐だけに係る命令とから構成し、例えば、
下記に示すように、 リスト1) アドレス 命令 コメント A10 (A−B),LD ZR ;(A−B)の演算結果に基づく ;ZR(ゼロフラグ)をステータス ;レジスタにロード A11 CJP LL ;ZR=1ならばラベル(LL)へ A12 XXXXXX ;任意の命令 A13 LL:CONT ;次ステップへ移行 A14 YYYYYY ;任意の命令 つまり、A10での演算結果に従うA11での分岐処理
によって、A13又はA12に移行するようにプログラ
ムを記述するか、あるいはクロック周波数を低くするこ
とが考えられるが、いずれにせよ条件分岐全体(演算+
分岐)に要する処理時間が短縮される訳ではない。
In order to process a conditional branch instruction and an instruction not having the same number of cycles, the conditional branch instruction is composed of an instruction relating to an operation and an instruction relating only to a branch.
As shown below, List 1) Address Instruction Comment A10 (AB), LD ZR; Based on the operation result of (AB); Status of ZR (zero flag); Load to register A11 CJP LL; ZR = 1 If so, go to the label (LL). A12 XXXXXX; any instruction A13 LL: CONT; go to next step A14 YYYYYY; any instruction It is conceivable to write a program in the program or to lower the clock frequency. In any case, the entire conditional branch (operation +
This does not necessarily shorten the processing time required for branching.

【0017】また、前者の場合パイプライン処理におい
て1段当たりの実行ステップが多くなり、処理の効率が
悪化するという不都合が生じる。
Further, in the former case, the number of execution steps per stage in the pipeline processing increases, resulting in a disadvantage that the processing efficiency deteriorates.

【0018】[0018]

【課題を解決するための手段】そこで、本発明条件分岐
処理装置は上記した課題を解決するために、インクリメ
ントされたアドレス又はレジスタによって指定される無
条件の飛び先アドレスのいずれかを選択する第1の選択
手段と、マイクロ命令を記憶するとともに第1の選択手
段によるアドレス指定を受けて命令の読み出しがなされ
る主メモリと、条件分岐マイクロ命令に含まれた飛び先
アドレスに対応したマイクロ命令のみを記憶する副メモ
リと、第1の選択手段におけるインクリメントされたア
ドレス及び無条件の飛び先アドレスの切換を制御すると
共に条件分岐命令、無条件分岐アドレス、条件分岐アド
レスから成るマイクロ命令を一時記憶するレジスタと、
主メモリ及び副メモリから読み出されたマイクロ命令の
いずれかをALU(算術論理回路)の演算結果のステー
タスに応じて選択し、レジスタに送出する第2の選択手
段とを備え、クロックの1サイクル周期内において、
LU(算術論理回路)の条件判断に係る演算の実行中
に、レジスタの無条件分岐アドレス及び条件分岐アドレ
スに応じた複数の飛び先アドレスに対応するマイクロ命
令を主メモリ及び副メモリからそれぞれ読み出すと共
に、ALU(算術論理回路)の演算結果のステータスが
一の状態で、主メモリから読み出されたマイクロ命令を
選択してレジスタに送出し、また、ALU(算術論理回
路)の演算結果のステータスが他の状態で、副メモリの
マイクロ命令を選択してレジスタに送出するようにした
ものである。
SUMMARY OF THE INVENTION In order to solve the above-mentioned problems, the present invention provides a conditional branch processing apparatus which selects either an incremented address or an unconditional jump destination address specified by a register. (1) a main memory for storing a microinstruction, reading an instruction in response to an address designation by the first selection means, and a microinstruction corresponding to a jump address included in a conditional branch microinstruction , And the switching of the incremented address and the unconditional jump destination address in the first selection means, and temporarily stores a microinstruction consisting of a conditional branch instruction, an unconditional branch address, and a conditional branch address. Registers and
One of the microinstructions read from the main memory and the sub memory is used to determine the operation result of the ALU (arithmetic logic circuit).
Selected according to task, and a second selecting means for delivering to the register, in one cycle period of the clock, A
During the execution of the operation related to the condition determination of the LU (arithmetic logic circuit) , micro instructions corresponding to a plurality of jump addresses corresponding to the unconditional branch address and the conditional branch address of the register are read from the main memory and the sub memory, respectively. , ALU in the state of the status in the one calculation result of (arithmetic logic circuit), sent to register by selecting a micro instruction read from the main memory, also, ALU (arithmetic logic times
The micro-instruction of the sub-memory is selected and sent to the register when the status of the operation result of the ( path) is in another state.

【0019】[0019]

【作用】本発明によれば、分岐先を示す複数のアドレス
部を含む条件分岐命令の実行に際して、ALU(算術論
理回路)の条件判断に係る演算中に飛び先アドレスの
イクロ命令を主メモリ及び副メモリから予め読み出して
おき、条件判断結果に従って命令を選択的に実行するた
め、従来のように条件判断結果を待ってから該当する命
令を読み出す場合に生じるタイミングの遅れがなく、条
件分岐命令を遂次に実行が可能な命令と同じサイクル数
で実行することができるので、条件分岐命令を演算命令
と分岐命令の2命令に分けて構成することに伴う実行ス
テップ数の増加や処理効率の低下を招くことがない。
According to the present invention, when executing a conditional branch instruction including a plurality of address parts indicating a branch destination, an ALU (arithmetic logic)
Ma of the jump destination address during the operation in accordance with the conditions judgment of management circuit)
The micro instruction is read out from the main memory and the sub memory in advance, and the instruction is selectively executed in accordance with the result of the condition determination. And the conditional branch instruction can be executed in the same number of cycles as an instruction that can be executed successively, so that the number of execution steps involved in forming the conditional branch instruction into two instructions, an operation instruction and a branch instruction, is reduced. There is no increase or decrease in processing efficiency.

【0020】[0020]

【実施例】以下に、本発明条件分岐処理装置を図示した
実施例に従って説明する。
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a block diagram showing an embodiment of a conditional branch processing apparatus according to the present invention.

【0021】図1は条件分岐処理装置1に係るプログラ
ム処理の流れを示すものであり、複数のマイクロプログ
ラムメモリを設けるとともに、条件分岐制御にあたって
はこれらをステータスに応じて選択的に切り換えて使用
することで時間の遅れを伴うことなく次の命令の実行に
移行することができるようにしたものである。
FIG. 1 shows a flow of a program process relating to the conditional branch processing device 1. A plurality of microprogram memories are provided, and these are selectively switched and used according to the status in controlling the conditional branch. As a result, it is possible to shift to the execution of the next instruction without delay.

【0022】2(1)、2(2)はマルチプレクサであ
り、前段のマルチプレクサ2(1)はパイプラインレジ
スタ3において実行される条件分岐命令のオペレーショ
ン部を切換制御信号として受け取り、インクリメント後
のアドレス又はパイプラインレジスタ3に格納された分
岐アドレスのうちのどちらかを選んでマイクロプログラ
ムメモリ4Aへのアドレス信号として送出するようにな
っている。
Reference numerals 2 (1) and 2 (2) denote multiplexers. The multiplexer 2 (1) at the preceding stage receives an operation part of a conditional branch instruction executed in the pipeline register 3 as a switching control signal, and outputs an address after increment. Alternatively, one of the branch addresses stored in the pipeline register 3 is selected and sent as an address signal to the microprogram memory 4A.

【0023】尚、2つのマイクロプログラムメモリ4
A、4Bの大きさ(ビット幅)は同じとされており、4
Aが主メモリとされ、4Bが副メモリとされている。
The two microprogram memories 4
A and 4B have the same size (bit width).
A is a main memory, and 4B is a sub memory.

【0024】マルチプレクサ2(2)は、ALU5の演
算結果についてのステータスを切換制御信号として受け
取り、マイクロプログラムメモリ4A及び4Bから読み
出される命令を選択してパイプラインレジスタ3に送出
する。
The multiplexer 2 (2) receives the status of the operation result of the ALU 5 as a switching control signal, selects an instruction read from the microprogram memories 4A and 4B, and sends it to the pipeline register 3.

【0025】パイプラインレジスタ3にはマイクロ命令
が一時的に格納されるようになっており、図ではオペレ
ーション部(CJA.)と2つのアドレス部(PO、A
11)とを含む条件分岐命令が格納された状態を示して
いる。
A microinstruction is temporarily stored in the pipeline register 3. In the figure, an operation section (CJA.) And two address sections (PO, A) are shown.
11) is stored.

【0026】つまり、オペレーション部がマルチプレク
サ2(1)にその制御信号として送出されると共に、条
件分岐命令のアドレスをA10としたとき、アドレス部
のうち条件分岐命令の次のアドレス(A11)がマルチ
プレクサ2(1)への入力信号として送られ、アドレス
部のうち条件分岐命令の飛び先アドレス(PO)がマイ
クロプログラムメモリ4Bへのアドレス信号とし送出さ
れる。
That is, when the operation section is sent as a control signal to the multiplexer 2 (1) and the address of the conditional branch instruction is A10, the address (A11) next to the conditional branch instruction in the address section is the multiplexer. 2 (1), and the jump address (PO) of the conditional branch instruction in the address portion is transmitted as an address signal to the microprogram memory 4B.

【0027】図2は下記に示すようなプログラムを想定
したときの条件分岐処理のタイミングを示したものであ
る。
FIG. 2 shows the timing of conditional branch processing when the following program is assumed.

【0028】 リスト2) アドレス 命令 コメント A10 (A−B),LD ZR CJA.PO A11;(A−B)の演 ;算結果に基づく ;ZR(ゼロフラ ;グ)値をロード ;ZR=1ならば ;ラベル(LL)へ A11 XXXXXX ;任意の命令 A12 ZZZZZZ ;任意の命令 A13 LL:CONT ;次ステップへ移行 A14 YYYYYY ;任意の命令 つまり、この例ではA10における(A−B)のレジス
タ演算結果に従ってステータス(ZR)が得られ、これ
に応じて後続ステップA11の命令又はPOがアドレス
として指し示すA13の命令が選択的に実行される。
List 2) Address Instruction Comment A10 (AB), LD ZR CJA. PO A11; Performance of (AB); Based on calculation result; Load ZR (zero flag) value; If ZR = 1; To label (LL) A11 XXXXXX; Optional instruction A12 ZZZZZZ; Optional instruction A13 LL: CONT; shift to next step A14 YYYYYY; arbitrary instruction In other words, in this example, the status (ZR) is obtained according to the register operation result of (A-B) in A10, and in response to this, the instruction of the subsequent step A11 or PO The instruction of A13 indicated as an address is selectively executed.

【0029】図2中「CL」はクロック信号、「BR」
は演算及び条件分岐命令の実行状態を示し、「ST」は
ZRステータス出力、「RMA」はマイクロプログラム
メモリ4Aのリード状態、「RMB」はマイクロプログ
ラムメモリ4Bのリード状態、「EX」はステータスに
応じて選択された命令の実行状態を示している。
In FIG. 2, "CL" is a clock signal, "BR"
Indicates the execution state of the operation and conditional branch instruction, "ST" indicates ZR status output, "RMA" indicates the read state of microprogram memory 4A, "RMB" indicates the read state of microprogram memory 4B, and "EX" indicates the status. This shows the execution state of the instruction selected accordingly.

【0030】図示するようにマイクロプログラムメモリ
4Aから読み出されたA10の命令はパイプラインレジ
スタ3で実行され、演算(A−B)を実行している時に
次に実行する予定の2命令がともにリードされる。
As shown in the figure, the instruction of A10 read from the microprogram memory 4A is executed by the pipeline register 3, and when the operation (AB) is being executed, two instructions to be executed next are both executed. Be led.

【0031】即ち、マイクロプログラムメモリ4Aから
A11の命令がリードされるとともに、マイクロプログ
ラムメモリ4Bから、A13の命令がリードされる。
That is, the instruction A11 is read from the microprogram memory 4A, and the instruction A13 is read from the microprogram memory 4B.

【0032】その際、パイプラインレジスタ3で実行さ
れるA10の命令は、オペレーション部「CJA.」、
2つのアドレス部「PO」、「A11」からなってお
り、POがマイクロプログラムメモリ4Bへの読み出し
アドレスとして送出され、「A11」は無条件の飛び先
アドレスとしてマルチプレクサ2(1)に送出される。
At this time, the instruction of A10 executed by the pipeline register 3 includes an operation section "CJA."
It consists of two address parts "PO" and "A11", PO is sent as a read address to the microprogram memory 4B, and "A11" is sent to the multiplexer 2 (1) as an unconditional jump destination address. .

【0033】そして、条件分岐命令であることを示すオ
ペレーション部はマルチプレクサ2(1)への制御信号
として送られ、これによってA11のアドレス信号が選
択される。
The operation section indicating that the instruction is a conditional branch instruction is sent as a control signal to the multiplexer 2 (1), whereby the address signal A11 is selected.

【0034】尚、実行対象となる命令が逐次に実行可能
な命令である場合にはマルチプレクサ2(1)におい
て、インクリメントされたアドレスが選択されるように
なっている。
When the instruction to be executed is an instruction that can be executed sequentially, the incremented address is selected in the multiplexer 2 (1).

【0035】その後、ALU5による演算(A−B)の
結果に基づいてZRステータスがマルチプレクサ2
(2)に出力されると、この時点からマルチプレクサ2
(2)の切り換えに要する時間τが経過した時点で命令
の選択が行われる。
Thereafter, based on the result of the operation (AB) by the ALU 5, the ZR status is changed to the value of the multiplexer 2.
When the signal is output to (2), the multiplexer 2 starts from this point.
The instruction is selected when the time τ required for the switching of (2) has elapsed.

【0036】即ち、ZRステータスの値が1の場合に
は、アドレスPOの指す命令(この例ではA13の命令
「CONT」に次ステップA14への無条件ジャンプ命
令「JMP A14」を付加したもの)がパイプライン
レジスタ3にロードされて実行され、また、ZRステー
タスの値が0の場合には、A11の命令(この例では
「XXXXXX」)がパイプラインレジスタ3へのロー
ド後に実行される。
That is, when the value of the ZR status is 1, the instruction indicated by the address PO (in this example, the instruction "CONT" of A13 is added with the unconditional jump instruction "JMP A14" to the next step A14) Is loaded into the pipeline register 3 and executed. When the value of the ZR status is 0, the instruction of A11 (in this example, “XXXXXX”) is executed after being loaded into the pipeline register 3.

【0037】いずれにしても選択された命令の読み出し
は後続のクロックパルスの立ち上がりまでには完了して
おり、選ばれた命令は後続のクロックパルスに同期して
パイプラインレジスタ3にロードされるので、次の命令
の読み出しが可能となる。
In any case, the reading of the selected instruction has been completed by the rise of the subsequent clock pulse, and the selected instruction is loaded into the pipeline register 3 in synchronization with the subsequent clock pulse. , The next instruction can be read.

【0038】尚、マイクロプログラムメモリ4Bは条件
分岐処理に際してのみ使用され、よってこれから読み出
した命令の実行後には必ず主メモリであるマイクロプロ
グラムメモリ4Aへと処理が移される。
It should be noted that the microprogram memory 4B is used only for conditional branch processing, and therefore, after execution of an instruction read from the microprogram memory 4B, the processing is always transferred to the microprogram memory 4A which is the main memory.

【0039】図3にリスト2)に関するステータスと分
岐処理との関係を概念的に示す。
FIG. 3 conceptually shows the relationship between the status related to the list 2) and the branch processing.

【0040】しかして、本発明に係る条件分岐処理で
は、条件分岐命令に係る2つの分岐アドレスの命令を演
算中に予め読み出しておき、演算結果についてのステー
タスが出力された時に何れかの命令を選択して実行する
ようにしているので、図5(b)のように演算結果のス
テータスが得られてから実行命令を読み出す場合に生じ
る処理の遅れを伴うことはない。
In the conditional branch processing according to the present invention, the instructions at the two branch addresses relating to the conditional branch instruction are read out in advance during the operation, and when the status of the operation result is output, one of the instructions is output. Since it is selected and executed, there is no delay in processing that occurs when an execution instruction is read after the status of the operation result is obtained as shown in FIG. 5B.

【0041】よって、逐次実行が可能な命令の実行に要
する時間を1サイクルとすると、条件分岐命令と分岐後
の命令の実行には2サイクルの時間を要するので1命令
当たり1サイクルで実行され、条件分岐命令とそれ以外
の命令とでサイクル数を合わせることができる。
Therefore, assuming that the time required for executing an instruction that can be sequentially executed is one cycle, the execution of the conditional branch instruction and the instruction after the branch requires two cycles, so that the instruction is executed in one cycle per instruction. The number of cycles can be matched between the conditional branch instruction and the other instructions.

【0042】[0042]

【発明の効果】以上に記載したところから明らかなよう
に、本発明によれば、分岐先を示す複数のアドレス部を
含む条件分岐命令の実行に際して、条件判断に係る演算
中に次の実行命令を主メモリ及び副メモリから前もって
読み出しておき、条件判断結果に従って命令を選択的に
実行するため、従来のように条件判断結果を待ってから
該当する命令を読み出す場合に生じる時間の遅れがな
く、条件分岐命令を他の逐次実行可能な命令と同じサイ
クル数で実行することができるので、条件分岐命令を演
算命令と分岐命令の2命令に分けて構成することに起因
する実行ステップ数の増加や処理効率の低下を伴うこと
がない。
As is apparent from the above description, according to the present invention, when a conditional branch instruction including a plurality of address parts indicating a branch destination is executed, the next execution instruction is executed during the operation related to the conditional judgment. Is read in advance from the main memory and the sub memory, and instructions are selectively executed in accordance with the result of the condition determination. Therefore, there is no time delay that occurs when reading the corresponding instruction after waiting for the result of the condition determination as in the related art. Since the conditional branch instruction can be executed in the same number of cycles as other sequentially executable instructions, the number of execution steps caused by dividing the conditional branch instruction into two instructions, an operation instruction and a branch instruction, can be increased. There is no reduction in processing efficiency.

【0043】尚、前記した実施例は、本発明の一実施例
にすぎず、この例のみによって本発明の技術的範囲が狭
く解釈されてはならない。例えば、前記実施例では条件
分岐処理において2つのマイクロプログラムメモリを使
用して、これらから読み出される命令の何れかを選択し
て実行したが、一般には複数個のメモリを用いた多重分
岐処理に適用することができる。
The above embodiment is merely an embodiment of the present invention, and the technical scope of the present invention should not be construed as being narrow only by this embodiment. For example, in the above-described embodiment, two microprogram memories are used in the conditional branch processing, and any one of the instructions read from these is selected and executed. However, the present invention is generally applied to a multiple branch processing using a plurality of memories. can do.

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

【図1】本発明に係る条件分岐処理装置の構成を示すブ
ロック図である。
FIG. 1 is a block diagram showing a configuration of a conditional branch processing device according to the present invention.

【図2】本発明に係る条件分岐処理について説明するた
めのタイムチャート図である。
FIG. 2 is a time chart for explaining a conditional branch process according to the present invention.

【図3】ステータスと分岐処理との関係を概念的に示す
説明図である。
FIG. 3 is an explanatory diagram conceptually showing the relationship between status and branch processing.

【図4】従来の条件分岐処理装置の構成を示すブロック
図である。
FIG. 4 is a block diagram showing a configuration of a conventional conditional branch processing device .

【図5】従来における条件分岐処理について説明するた
めのタイムチャート図であり、(a)は逐次に実行可能
な命令の処理状況を示し、(b)は条件分岐命令の処理
状況を示す。
5A and 5B are time charts for explaining a conventional conditional branching process, wherein FIG. 5A shows a processing status of sequentially executable instructions, and FIG. 5B shows a processing status of a conditional branch instruction.

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

1 条件分岐処理装置 2(1) 第1の選択手段 2(2) 第2の選択手段 3 レジスタ 4A 主メモリ 4B 副メモリ 5 算術論理回路 DESCRIPTION OF SYMBOLS 1 Conditional branch processing device 2 (1) 1st selection means 2 (2) 2nd selection means 3 Register 4A Main memory 4B Sub memory 5 Arithmetic logic circuit

フロントページの続き (56)参考文献 特開 昭60−181930(JP,A) 特開 昭57−75355(JP,A) 特開 平1−162930(JP,A) 特開 昭62−82402(JP,A) 特開 昭57−75355(JP,A) 特開 平3−152625(JP,A) 特開 平2−266432(JP,A) 特開 平3−33930(JP,A) 特開 昭58−68157(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/30 - 9/42 Continuation of the front page (56) References JP-A-60-181930 (JP, A) JP-A-57-75355 (JP, A) JP-A-1-162930 (JP, A) JP-A-62-182402 (JP) JP-A-57-75355 (JP, A) JP-A-3-152625 (JP, A) JP-A-2-266432 (JP, A) JP-A-3-33930 (JP, A) 58-68157 (JP, A) (58) Field surveyed (Int. Cl. 7 , DB name) G06F 9/30-9/42

Claims (1)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 インクリメントされたアドレス又はレジ
スタによって指定される無条件の飛び先アドレスのいず
れかを選択する第1の選択手段と、 マイクロ命令を記憶するとともに前記第1の選択手段に
よるアドレス指定を受けて命令の読み出しがなされる主
メモリと、 条件分岐マイクロ命令に含まれた飛び先アドレスに対応
したマイクロ命令のみを記憶する副メモリと、 前記第1の選択手段におけるインクリメントされたアド
レス及び無条件の飛び先アドレスの切換を制御すると共
に条件分岐命令、無条件分岐アドレス、条件分岐アドレ
スから成るマイクロ命令を一時記憶するレジスタと、 前記主メモリ及び副メモリから読み出されたマイクロ命
令のいずれかをALU(算術論理回路)の演算結果のス
テータスに応じて選択し、前記レジスタに送出する第2
の選択手段とを備え、 クロックの1サイクル周期内において、前記ALU(算
術論理回路)の条件判断に係る演算の実行中に、前記レ
ジスタの無条件分岐アドレス及び条件分岐アドレスに応
じた複数の飛び先アドレスに対応するマイクロ命令を前
記主メモリ及び副メモリからそれぞれ読み出すと共に、前記ALU(算術論理回路)の 演算結果のステータスが
一の状態で、前記主メモリから読み出されたマイクロ命
令を選択して前記レジスタに送出し、また、前記ALU
(算術論理回路)の演算結果のステータスが他の状態
で、前記副メモリのマイクロ命令を選択して前記レジス
タに送出するようにしたことを特徴とする条件分岐処理
装置。
1. A first selecting means for selecting either an incremented address or an unconditional jump destination address specified by a register, and storing a microinstruction and specifying an address by the first selecting means. A main memory from which an instruction is read upon receipt; a sub-memory for storing only a microinstruction corresponding to a jump address included in the conditional branch microinstruction; an incremented address and an unconditional address in the first selecting means; A register for controlling the switching of the jump destination address and temporarily storing a microinstruction consisting of a conditional branch instruction, an unconditional branch address, and a conditional branch address; and a microinstruction read from the main memory and the sub memory. ALU (arithmetic logic circuit)
2nd selected according to the status and sent to the register
And ALU (calculation unit) within one cycle of the clock.
Micro-instructions corresponding to a plurality of jump addresses corresponding to the unconditional branch address and the conditional branch address of the register are read from the main memory and the sub-memory, respectively, during the execution of the operation relating to the condition determination of the logic circuit). , in the state of the status in the one calculation result of the ALU (arithmetic logic circuit) selects the micro instruction read from the main memory and sent to the register, also, the ALU
A conditional branch processing device, wherein the micro-instruction of the sub-memory is selected and sent to the register when the status of the operation result of the (arithmetic logic circuit) is in another state.
JP03313068A 1991-11-01 1991-11-01 Conditional branch processing unit Expired - Fee Related JP3144004B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP03313068A JP3144004B2 (en) 1991-11-01 1991-11-01 Conditional branch processing unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP03313068A JP3144004B2 (en) 1991-11-01 1991-11-01 Conditional branch processing unit

Publications (2)

Publication Number Publication Date
JPH05127898A JPH05127898A (en) 1993-05-25
JP3144004B2 true JP3144004B2 (en) 2001-03-07

Family

ID=18036820

Family Applications (1)

Application Number Title Priority Date Filing Date
JP03313068A Expired - Fee Related JP3144004B2 (en) 1991-11-01 1991-11-01 Conditional branch processing unit

Country Status (1)

Country Link
JP (1) JP3144004B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6557207B2 (en) 2000-08-22 2003-05-06 Alto U.S. Inc. Squeegee assembly for a floor surface treatment apparatus
US6760947B2 (en) 2000-08-22 2004-07-13 Alto U.S. Inc. Apparatus for treating a floor surface utilizing a handle mounted traverse switch
US6763544B2 (en) 2000-08-22 2004-07-20 Alto Us, Inc. Apparatus for treating a floor surface

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6557207B2 (en) 2000-08-22 2003-05-06 Alto U.S. Inc. Squeegee assembly for a floor surface treatment apparatus
US6760947B2 (en) 2000-08-22 2004-07-13 Alto U.S. Inc. Apparatus for treating a floor surface utilizing a handle mounted traverse switch
US6763544B2 (en) 2000-08-22 2004-07-20 Alto Us, Inc. Apparatus for treating a floor surface

Also Published As

Publication number Publication date
JPH05127898A (en) 1993-05-25

Similar Documents

Publication Publication Date Title
JP2640454B2 (en) Digital instruction processor controller and method for executing a branch in one cycle
JP2645669B2 (en) Data processing system
JPH0115093B2 (en)
KR20040016829A (en) Exception handling in a pipelined processor
EP0377994A2 (en) Apparatus for performing floating point arithmetic operations
US5930520A (en) Pipelining device in a parallel processing apparatus and an instruction supplying method therefor
JPH01310441A (en) Data processor
JPH06103068A (en) Data processor
JP3510729B2 (en) Instruction execution method and instruction execution device
JP3790626B2 (en) Method and apparatus for fetching and issuing dual word or multiple instructions
JPH0743648B2 (en) Information processing equipment
CN101194228B (en) Performance microprocessor and device of fast return of microcontroller subroutine
EP0164418A1 (en) Microprogram control system
JPH05127898A (en) Conditional branch processing circuit
JPWO2004068337A1 (en) Information processing device
JP3602801B2 (en) Memory data access structure and method
US6874080B2 (en) Context processing by substantially simultaneously selecting address and instruction of different contexts
JP2875864B2 (en) Pipeline processing method
US5784634A (en) Pipelined CPU with instruction fetch, execution and write back stages
JP2824484B2 (en) Pipeline processing computer
JPS6122818B2 (en)
JP2982129B2 (en) Micro program controller
JP4151497B2 (en) Pipeline processing equipment
JP2880459B2 (en) Variable word length VLIW instruction processor
JP2503983B2 (en) Information processing device

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080105

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090105

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100105

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees