JPS63178335A - Microprocessor - Google Patents

Microprocessor

Info

Publication number
JPS63178335A
JPS63178335A JP1158387A JP1158387A JPS63178335A JP S63178335 A JPS63178335 A JP S63178335A JP 1158387 A JP1158387 A JP 1158387A JP 1158387 A JP1158387 A JP 1158387A JP S63178335 A JPS63178335 A JP S63178335A
Authority
JP
Japan
Prior art keywords
instruction
branch
contents
branch instruction
program counter
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
JP1158387A
Other languages
Japanese (ja)
Inventor
Takashi Harada
尚 原田
Koichi Hanamura
花村 公一
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP1158387A priority Critical patent/JPS63178335A/en
Publication of JPS63178335A publication Critical patent/JPS63178335A/en
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

PURPOSE:To properly use a branch instruction in accordance with the flow of a program and to attain a rapid processing by preparing two kinds of conditioned branch instructions, using one branch instruction for prefetching the contents of branched address and using the other for prefetching the contents obtained by increasing '1' to the contents of a program counter. CONSTITUTION:When an instruction is inputted to a queue buffer 4 through an I/O control circuit 3, a predecoder 7 decides whether the instruction is a branch instruction or not. When the instruction is a branch instruction 1, data inputted to the succeeding queue buffer are added to the contents of a program counter 5 by a branched address control circuit 8, the added result is inputted to a program counter 5 and the contents of the program counter are entered to the queue buffer 4 until the succeeding prefetch. When the instruction decoded by the predecoder is a branch instruction 2, the contents of an address obtained by increasing '1' to the contents of the program counter are entered into the queue buffer.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明は、先行制御方式を採用したマイクロプロセッ
サに関し、特にその高速処理化の改良に関するものであ
る。
DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to a microprocessor that employs a proactive control method, and particularly relates to improvements in its high-speed processing.

〔従来の技術〕[Conventional technology]

第3図は先行制御方式を採用した、従来のマイクロプロ
セッサのブロック図である。図において、1は実行ユニ
ット(ELI) 、2はバスインターフェースユニッ)
 (BIU) 、3は入出力制御回路、4はキューバッ
ファ、5はプログラムカウンタ、6はEU制御回路であ
る。
FIG. 3 is a block diagram of a conventional microprocessor that employs a proactive control method. In the figure, 1 is the execution unit (ELI), 2 is the bus interface unit)
(BIU), 3 is an input/output control circuit, 4 is a queue buffer, 5 is a program counter, and 6 is an EU control circuit.

なおEUI内には図示しないALtJ等が含まれている
。またBIUZ内にはBIU制御回路(図示せず)が含
まれており、該BIU制御回路は、キューバッファ4.
プログラムカウンタ5.入出力制御回路3との間で信号
のやりとりを行い該B1U2の制御を行っている。また
該BIU制御回路はEUl内の実行ユニット制御回路6
との間でも信号のやりとりを行っている。
Note that the EUI includes ALtJ, etc., which are not shown. The BIUZ also includes a BIU control circuit (not shown), and the BIU control circuit controls the queue buffers 4.
Program counter5. It exchanges signals with the input/output control circuit 3 to control the B1U2. Further, the BIU control circuit is the execution unit control circuit 6 in EUl.
Signals are also exchanged between the two.

次に動作について説明する。マイクロプロセッサは、2
つのユニット、即ち、EUIとBIU2とで構成され、
EUIIIJW11回路とBIU制御回路との信号のや
りとりでそれぞれが独立に動作する。
Next, the operation will be explained. The microprocessor is 2
Consists of two units, namely EUI and BIU2,
Each circuit operates independently by exchanging signals between the EUIIIJW11 circuit and the BIU control circuit.

BIU2では、キューバッファ4が空いている場合、入
出力制御回路3を通じて命令がプリフェッチされ、キュ
ーバッファ4に格納され、プログラムカウンタの内容が
+1される。そしてキューバソファが一杯になる迄上記
動作を繰り返す、EUlでは、キューバッファから1バ
イトづつ実行ユニット制御回路6に取り込み、命令を解
読して、命令の内容に従って処理を行う。
In the BIU 2, when the queue buffer 4 is empty, an instruction is prefetched through the input/output control circuit 3, stored in the queue buffer 4, and the contents of the program counter are incremented by 1. The above operation is repeated until the Cuban sofa is full. In EUl, each byte is fetched from the queue buffer into the execution unit control circuit 6, the instruction is decoded, and processing is performed according to the contents of the instruction.

このように先行制御方式では、命令をプリフェッチする
ために、命令実行後火の命令をフェッチする迄の空き時
間がなくなり処理速度が速くなる。
In this way, in the advance control method, since the instructions are prefetched, there is no idle time between executing the instruction and fetching the next instruction, thereby increasing the processing speed.

しかしながら、プリフェッチした命令が分岐命令の場合
には、分岐命令がキューバ・ソファからEUに移されて
解読され、分岐先をプログラムカウンタにセットする間
に、次のデータがキューバソファにプリフェッチされる
が、分岐命令によるプログラムカウンタのアドレスの内
容をフェッチするために、それ迄にプリフェッチされて
いたキューバソファの内容は全てクリアされてしまい、
無駄を生じることとなる。
However, if the prefetched instruction is a branch instruction, the next data is prefetched to the Cuban sofa while the branch instruction is moved from the Cuban sofa to the EU, decoded, and the branch destination is set in the program counter. , In order to fetch the contents of the address of the program counter by the branch instruction, all the contents of the Cuban sofa that had been prefetched up to that point are cleared.
This will result in waste.

〔発明が解決しようとする問題点〕[Problem that the invention seeks to solve]

従来の先行制御方式のマイクロプロセッサは以上のよう
に構成されているので、分岐命令実行時には、先行制御
により、無駄なデータをプリフェッチしてしまい、分岐
先のデータをフェッチする間、実行ユニットがアイドル
状態となってしまうという問題点があった。
Conventional anticipatory control type microprocessors are configured as described above, so when executing a branch instruction, unnecessary data is prefetched due to anticipatory control, and the execution unit is idle while fetching the branch destination data. There was a problem that the condition

この発明は上記のような問題点を解決するためになされ
たもので、分岐命令による実行ユニットのアイドル状態
をなくすことのできるマイクロプロセッサを得ることを
目的とする。
The present invention was made to solve the above-mentioned problems, and it is an object of the present invention to provide a microprocessor that can eliminate the idle state of the execution unit due to branch instructions.

〔問題点を解決するための手段〕[Means for solving problems]

この発明に係るマイクロプロセッサは、分岐命令として
2種類の命令を設け、プリフェッチされた命令が分岐命
令と判断されると、当該分岐命令の種類に応じて分岐先
のデータをプリフェッチするか、あるいは次のアドレス
のデータをプリフェッチするかを解読させるように構成
したものである。
The microprocessor according to the present invention provides two types of instructions as branch instructions, and when a prefetched instruction is determined to be a branch instruction, the microprocessor prefetches the data at the branch destination or the next one depending on the type of the branch instruction. The configuration is such that it is decoded to determine whether data at the address is to be prefetched.

〔作用〕[Effect]

この発明においては、分岐命令が2種類用意されている
から、プログラムのフローに応じて実行が早くなるよう
に分岐命令を使い分けることができる。
In this invention, since two types of branch instructions are prepared, the branch instructions can be used selectively depending on the flow of the program to speed up execution.

〔実施例〕〔Example〕

以下、この発明の実施例を図について説明する。 Embodiments of the present invention will be described below with reference to the drawings.

第1図は本発明の一実施例によるマイクロプロセッサを
示し、図において、1はEU、2はB I U。
FIG. 1 shows a microprocessor according to an embodiment of the present invention, in which 1 is EU and 2 is B I U.

3は入出力制御回路、4はキューバッファ、5はプログ
ラムカウンタ(PC)、6は実行ユニット制御回路、7
はプリデコーダ、8は分岐先制御回路である。また20
はプリフェッチ制御手段であり、上記プリデコーダ7及
び分岐先制御回路8とから構成されている。
3 is an input/output control circuit, 4 is a queue buffer, 5 is a program counter (PC), 6 is an execution unit control circuit, 7
8 is a predecoder, and 8 is a branch destination control circuit. 20 again
A prefetch control means is composed of the predecoder 7 and the branch destination control circuit 8.

第2図は本発明の一実施例によるマイクロプロセッサの
制御動作を図示したものである。
FIG. 2 illustrates the control operation of a microprocessor according to an embodiment of the present invention.

本実施例では、ある条件で分岐する命令を2種類用意し
、一方の命令を第1の分岐命令(以下分岐命令lと称す
)とし、分岐先のアドレスの内容を優先してキューバソ
ファへ取り込ませるように設定し、また他方の命令を第
2の分岐命令(以下分岐命令2と称す)とし、従来の分
岐命令と同じ動作を実行するように設定したものである
In this example, two types of instructions that branch under certain conditions are prepared, one instruction is set as the first branch instruction (hereinafter referred to as branch instruction l), and the content of the branch destination address is given priority and fetched into the Cuban sofa. The other instruction is set to be a second branch instruction (hereinafter referred to as branch instruction 2), and the other instruction is set to execute the same operation as a conventional branch instruction.

次に動作について第2図を用いて説明する。命令か入出
力制御回路3を介してキューバソファ4に取り込まれる
と(ステップSl)、プリデコーダ7で分岐命令か否か
が判断され(ステップ32)、その命令が分岐命令1で
あれば(ステップ33゜S5)、次のキューバソファに
取り込まれたデータ(分岐先のアドレスを指定するデー
タ)とプログラムカウンタ5の内容とが、分岐先制御回
路8で加算され(ステップS6)、その結果がプログラ
ムカウンタ5に入り、次のプリフェッチでは、そのプロ
グラムカウンタの内容をキューバッファに取り込む事に
なる(ステップSl)。またプリデコーダで解読された
命令が、分岐命令2である時には(ステップS5)、従
来のように、プログラムカウンタを1つインクリメント
したアドレスの内容のデータをキューバッファへ取り込
む(ステップS4. Sl)。
Next, the operation will be explained using FIG. 2. When an instruction is fetched into the Cuban couch 4 via the input/output control circuit 3 (step Sl), the predecoder 7 determines whether it is a branch instruction (step 32), and if the instruction is branch instruction 1 (step 33° S5), the data taken into the next Cuban sofa (data specifying the address of the branch destination) and the contents of the program counter 5 are added in the branch destination control circuit 8 (step S6), and the result is added to the program. The contents of the program counter are entered into the counter 5, and in the next prefetch, the contents of the program counter are taken into the queue buffer (step Sl). When the instruction decoded by the pre-decoder is branch instruction 2 (step S5), the data at the address where the program counter is incremented by one is taken into the queue buffer (step S4.Sl), as in the prior art.

このような動作をさせる事で、第4図に示すようなフロ
ーのプログラムを実行する場合、条件が成立するのが、
不成立の時より頻繁に発生するような場合には、プログ
ラム作成の際に分岐命令として分岐命令1を使用すれば
、条件を判断した後、分岐先のデータをフェッチする間
のアイドル時間が省略でき、高速処理が可能となる。ま
た、条件が不成立になる割合の方が大きい場合には、分
岐命令2を使用すればよい。
With this kind of operation, when executing a program with the flow shown in Figure 4, the conditions are satisfied as follows.
If this occurs more frequently than when the branch is not established, you can use branch instruction 1 as the branch instruction when creating the program, thereby eliminating the idle time between fetching the branch destination data after determining the condition. , high-speed processing becomes possible. Furthermore, if the probability that the condition is not met is greater, branch instruction 2 may be used.

〔発明の効果〕〔Effect of the invention〕

以上のように、この発明に係るマイクロプロセッサによ
れば、条件付き分岐命令を2種類用意し、一方を分岐先
アドレスの内容をプリフェッチするものとし、もう一方
は、プログラムカウンタを1つインクリメントした内容
のプリフェッチを行うように設定したので、プログラム
のフローに応じて分岐命令を使い分ける事で、高速処理
が可能となる効果がある。
As described above, according to the microprocessor of the present invention, two types of conditional branch instructions are prepared, one for prefetching the contents of the branch destination address, and the other for prefetching the contents of the program counter by one. Since the setting is made to perform prefetching, high-speed processing is possible by using different branch instructions depending on the flow of the program.

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

第1図はこの発明の一実施例によるマイクロプロセッサ
のブロック図、第2図は第1図のマイクロプロセッサの
動作を示すフローチャート図、第3図は従来のマイクロ
プロセッサのブロック図、第4図は条件付き分岐命令の
フローを示す図である。 図において、1は実行ユニット、2はバスインターフェ
ースユニット、3は入出力制御回路、4はキューバソフ
ァ、5はプログラムカウンタ、6は実行ユニット制御回
路、7はプリデコーダ、8は分岐先制御回路、20はプ
リフェッチ制御手段である。
FIG. 1 is a block diagram of a microprocessor according to an embodiment of the present invention, FIG. 2 is a flowchart showing the operation of the microprocessor of FIG. 1, FIG. 3 is a block diagram of a conventional microprocessor, and FIG. FIG. 3 is a diagram showing the flow of a conditional branch instruction. In the figure, 1 is an execution unit, 2 is a bus interface unit, 3 is an input/output control circuit, 4 is a Cuban sofa, 5 is a program counter, 6 is an execution unit control circuit, 7 is a predecoder, 8 is a branch destination control circuit, 20 is a prefetch control means.

Claims (2)

【特許請求の範囲】[Claims] (1)先行制御方式を採用したマイクロプロセッサにお
いて、 同一の条件付分岐を行う命令を2種類有し、第1の分岐
命令をプリフェッチした際には当該分岐命令以後の命令
のプリフェッチは分岐先のアドレス番地から行い、第2
の分岐命令をプリフェッチした際には当該分岐命令に引
き続くアドレス番地の命令をプリフェッチしてゆくよう
にプリフェッチを制御するプリフェッチ制御手段を備え
たことを特徴とするマイクロプロセッサ。
(1) A microprocessor that uses a proactive control method has two types of instructions that perform the same conditional branch, and when the first branch instruction is prefetched, the prefetch of instructions after that branch instruction is Starting from the address number, the second
1. A microprocessor comprising prefetch control means for controlling prefetch so that when a branch instruction is prefetched, an instruction at an address following the branch instruction is prefetched.
(2)上記プリフェッチ制御手段は、 プリフェッチされた命令が分岐命令か否かを判断するた
めのプリデコーダと、 当該命令が分岐命令と判断されたときその種類に応じて
プログラムカウンタの内容を分岐先のアドレス番地ある
いは当該分岐命令に引き続くアドレス番地のいずれかに
設定する分岐先制御回路とを備えたものであることを特
徴とする特許請求の範囲第1項記載のマイクロプロセッ
サ。
(2) The prefetch control means includes a predecoder for determining whether a prefetched instruction is a branch instruction, and a predecoder for determining whether the prefetched instruction is a branch instruction; 2. The microprocessor according to claim 1, further comprising a branch destination control circuit for setting either the address address of the branch instruction or the address address following the branch instruction.
JP1158387A 1987-01-20 1987-01-20 Microprocessor Pending JPS63178335A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1158387A JPS63178335A (en) 1987-01-20 1987-01-20 Microprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1158387A JPS63178335A (en) 1987-01-20 1987-01-20 Microprocessor

Publications (1)

Publication Number Publication Date
JPS63178335A true JPS63178335A (en) 1988-07-22

Family

ID=11781926

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1158387A Pending JPS63178335A (en) 1987-01-20 1987-01-20 Microprocessor

Country Status (1)

Country Link
JP (1) JPS63178335A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100465250B1 (en) * 2001-05-11 2005-01-13 미쓰비시덴키 가부시키가이샤 Microprocessor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100465250B1 (en) * 2001-05-11 2005-01-13 미쓰비시덴키 가부시키가이샤 Microprocessor

Similar Documents

Publication Publication Date Title
JP2640454B2 (en) Digital instruction processor controller and method for executing a branch in one cycle
US4967338A (en) Loosely coupled pipeline processor
JPH0769812B2 (en) Data processing device
US5197136A (en) Processing system for branch instruction
JPS62226232A (en) Control system for branch instruction
JPS63178335A (en) Microprocessor
US6862680B2 (en) Microprocessor processing specified instructions as operands
JPH0646382B2 (en) Prefetch queue control method
JPS6125166B2 (en)
JPH0342723A (en) Data processor
JPS63318634A (en) Instruction prefetching system
JP2731740B2 (en) Parallel computer with communication register
JPS60250438A (en) Information processor
JP2550408B2 (en) Conditional branch instruction control method
EP0315995A2 (en) Processing system for branch instruction
JPS5999552A (en) Microcomputer
JPH04145531A (en) Microprogram controller
JPH04188226A (en) Instruction pre-read controller
JPH0228724A (en) System for controlling branching instruction
JPS63303432A (en) System for controlling writing in branching history table
JPH01175635A (en) Data processor
JPS6373335A (en) Information processor
JPH0495153A (en) Synchronizing system for asynchronous processing in data processor
JPH0659916A (en) Instruction prefetching device
JPH027128A (en) Information processor