JPS63178335A - Microprocessor - Google Patents
MicroprocessorInfo
- 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
Links
- 238000000034 method Methods 0.000 claims description 4
- 239000000872 buffer Substances 0.000 abstract description 12
- 230000001143 conditioned effect Effects 0.000 abstract 1
- TXWRERCHRDBNLG-UHFFFAOYSA-N cubane Chemical compound C12C3C4C1C1C4C3C12 TXWRERCHRDBNLG-UHFFFAOYSA-N 0.000 description 8
- 238000010586 diagram Methods 0.000 description 4
- 230000000454 anti-cipatory effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Advance Control (AREA)
Abstract
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.
第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.
従来の先行制御方式のマイクロプロセッサは以上のよう
に構成されているので、分岐命令実行時には、先行制御
により、無駄なデータをプリフェッチしてしまい、分岐
先のデータをフェッチする間、実行ユニットがアイドル
状態となってしまうという問題点があった。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.
この発明に係るマイクロプロセッサは、分岐命令として
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.
この発明においては、分岐命令が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.
以下、この発明の実施例を図について説明する。 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.
以上のように、この発明に係るマイクロプロセッサによ
れば、条件付き分岐命令を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.
第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)
いて、 同一の条件付分岐を行う命令を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.
めのプリデコーダと、 当該命令が分岐命令と判断されたときその種類に応じて
プログラムカウンタの内容を分岐先のアドレス番地ある
いは当該分岐命令に引き続くアドレス番地のいずれかに
設定する分岐先制御回路とを備えたものであることを特
徴とする特許請求の範囲第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.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100465250B1 (en) * | 2001-05-11 | 2005-01-13 | 미쓰비시덴키 가부시키가이샤 | Microprocessor |
-
1987
- 1987-01-20 JP JP1158387A patent/JPS63178335A/en active Pending
Cited By (1)
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 |