JPS6355639A - Data processor - Google Patents

Data processor

Info

Publication number
JPS6355639A
JPS6355639A JP20055786A JP20055786A JPS6355639A JP S6355639 A JPS6355639 A JP S6355639A JP 20055786 A JP20055786 A JP 20055786A JP 20055786 A JP20055786 A JP 20055786A JP S6355639 A JPS6355639 A JP S6355639A
Authority
JP
Japan
Prior art keywords
branch
instruction
conditional
conditional branch
data processing
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.)
Granted
Application number
JP20055786A
Other languages
Japanese (ja)
Other versions
JPH0754459B2 (en
Inventor
Fujio Itoman
富士雄 糸満
▲吉▼田 豊彦
Toyohiko Yoshida
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 JP61200557A priority Critical patent/JPH0754459B2/en
Publication of JPS6355639A publication Critical patent/JPS6355639A/en
Priority to US08/340,462 priority patent/US5440704A/en
Publication of JPH0754459B2 publication Critical patent/JPH0754459B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

PURPOSE:To easily perform the processing in case a branch estimating job fails by attaining the replacement process between the displacement up to a branching destination instruction and the length of a conditional branch instruction based on the branch estimating result of the conditional branch instruction that is processed by a 1st mechanism. CONSTITUTION:If it is known that the instruction decoded by a fetch decoding mechanism 1 is equal to a conditional branch instruction, a condition inverting mechanism 4 inverts the branch conditions of said instruction as long as it is decided that a branch occurs based on an estimating mechanism 3. Then the branch displacement of the conditional branch instruction is replaced with the instruction length by a replacement mechanism 5. The next instruction is fetched by the mechanism 1 and decoded through a branch jumping address.

Description

【発明の詳細な説明】 [産業上の利用分野] この発明はデータ処理装置に関し、特に、パイプライン
機構を有するようなデータ処理袋ごに関する。
DETAILED DESCRIPTION OF THE INVENTION [Industrial Application Field] The present invention relates to a data processing device, and particularly to a data processing bag having a pipeline mechanism.

[従来の技術] 第2図は従来のパイプラインIll l?4を有するデ
ータ処理袋ばにおいて条件ブランチ命令を処理する機構
を示す図である。まず、第2図を参照して、従来のデー
タ処理装置の構成について説明する。
[Prior Art] Figure 2 shows a conventional pipeline. FIG. 4 is a diagram illustrating a mechanism for processing conditional branch instructions in a data processing module having a data processing module having a data processing module of FIG. First, the configuration of a conventional data processing device will be explained with reference to FIG.

データ処理装置は、命令のフェッチおよびデコードをす
るフェッチデコードti ill 1と、命令を実行す
る実行機構2と、フェッチデコード国構1にフェッチお
よびデコードされている条1牛ブランチω令が実行機構
2で実行されてブランチを起こすが否かを予測するブラ
ンチ予3!llIn tM 3と、予測が成功したか否
かを判断するために、予測結果と実行結果とを比較する
比較薇構6と、ブランチの予測が失敗したと判明すれば
、正しい方向の命令をv1構1に7エツチおよびデコー
ドし百すためのネリ卯を行なうフェッチデコードし直し
i Gl 7とから;に成される。
The data processing device includes a fetch decode ti ill 1 that fetches and decodes instructions, an execution mechanism 2 that executes the instructions, and an execution mechanism 2 that fetches and decodes the article 1 cow branch ω instructions fetched and decoded by the fetch decode national structure 1. Branch prediction 3 that predicts whether or not it will be executed and cause a branch! llIn tM 3, a comparison mechanism 6 that compares the prediction result with the execution result to determine whether the prediction was successful, and if it turns out that the prediction of the branch has failed, the instruction in the correct direction is sent to v1. From the fetch decode i Gl 7 which performs the 7 etching and decoding process for the structure 1;

次に、動作について説明する。フェッチデコードq:j
へ1によって条件ブランチ命令がフェッチ。
Next, the operation will be explained. fetch decode q:j
Conditional branch instruction is fetched by 1.

デコードされると、ブランチ予潤ビ1構3によってブラ
ンチが起こるか否かが予1111され、ブランチが起こ
ると判断されると、ブランチの飛び先番地の命令がまた
起こらないと判断すれば、プログラム上の条件ブランチ
命令の次に位置する命令がフェッチデコード機(湾1に
7エツチ、デコードされる。
Once decoded, the branch pre-preparation module 1111 predicts whether or not the branch will occur. The instruction located next to the above conditional branch instruction is decoded by the fetch decoder (7 etches in bay 1).

条件ブランチ命令が実行潰構2で実行され、比較4横6
を使って実1テ結果と予測結果とが比9!2され、比較
の結果、予測が失敗したと判明すると、フェッチデコー
ドし直しIn 1147によって正しい方向の命令を7
エツチデコード別tra 1にフェッチ、デコードし直
す。
The conditional branch instruction is executed in execution block 2, comparison 4 horizontal 6
The actual result and the predicted result are compared by 9!2 using
Fetch and re-decode to tra 1 by Etch Decode.

[発明が解決しようとする問題点] 従来のデータ処j里装置は上述のごとく構成されている
ため、条件ブランチ命令のブランチ予iQI BM:j
43によってブランチが起こると判断されて、実際には
ブランチが起こらなかった場合のために、次に実行すぺ
ぎ命令の番地を管理する特別な;環溝を必要とし、装置
が少雄になるという間湧点があった。
[Problems to be Solved by the Invention] Since the conventional data processing device is configured as described above, the branch prediction of the conditional branch instruction is
43, but in case the branch does not actually occur, a special ring groove is required to manage the address of the next instruction to be executed, and the device becomes small. There was a turning point during that time.

それゆえに、この発明の主たる目的は、ブランチ予測に
失敗した場合のための処理をより容易にすることができ
るようなデータ処理装置を提供することである。
Therefore, a main object of the present invention is to provide a data processing device that can more easily handle cases where branch prediction fails.

[問題点を解決するための手段] この発明はデータ処理装置であって、命令処理手段に含
まれる第1の曙構と第2のt3構とによってバイブライ
ン処理の原理で命令を処理し、分岐予測手段により、第
1のは横で処理される条件分岐命令が分岐を起こすか否
かを予測し、その予測結果に基づいて1条件分岐命令に
よって示される分岐先命令までの変位と条件分岐命令の
命令長とを変位入替手段により入替えるように処理する
ように構成したものである。
[Means for Solving the Problems] The present invention is a data processing device that processes instructions based on the principle of vibeline processing by a first dawn structure and a second t3 structure included in the instruction processing means, The branch prediction means predicts whether or not a conditional branch instruction processed laterally will cause a branch, and based on the prediction result, determines the displacement to the branch destination instruction indicated by one conditional branch instruction and the conditional branch. The instruction length of the instruction is exchanged by a displacement exchanging means.

[作用] この発明におけるデータ処理装置は、条件ブランチ命令
がフェッチされデコードされた場合に、ブランチが起こ
るか否かをバイブラインの初期のステージで予測し、ブ
ランチが起こると判断されたとき、条件ブランチ命令の
ブランチ条件を反転するとともに、条件ブランチ命令の
ブランチ変位と条件ブランチ命令の命令長とを入Δえて
実行ステージへ移すと同時に、ブランチの飛び先番地よ
り次の命令をフェッチ、デコードするようにしたもので
ある。
[Operation] The data processing device according to the present invention predicts whether or not a branch will occur when a conditional branch instruction is fetched and decoded, and when it is determined that a branch will occur, the conditional branch instruction is Inverts the branch condition of the branch instruction, sets the branch displacement of the conditional branch instruction and the instruction length of the conditional branch instruction, moves it to the execution stage, and at the same time fetches and decodes the next instruction from the jump destination address of the branch. This is what I did.

し発明の実鹿例] 第1図はこの発明の一実施例の概略ブロック図である。A real example of an invention] FIG. 1 is a schematic block diagram of an embodiment of the present invention.

まず、第1図を参照して、この発明の−実bi例の構成
について説明する。第1図において、この発明のデータ
処理装はは、命令の7エツチおよびデコードをするフェ
ッチデコード4溝1と、命令を実行する実行間1清2と
、条件ブランチ命令によって実際にブランチが起こるか
否かを予測するブランチ予測灘(蒲3と、条件ブランチ
命令のブランチ条件を反転する条件反乾慣構4と、条件
ブランチ命令のブランチ変位と条件ブランチ命令の命令
長とを入替える入替註!+a 5とから(S成される。
First, the configuration of a practical example of the present invention will be described with reference to FIG. In FIG. 1, the data processing system of the present invention includes a fetch decode 4 slot 1 for fetching and decoding an instruction, an execution stage 1 processing 2 for executing the instruction, and a conditional branch instruction to determine whether a branch actually occurs. Branch prediction Nada (蒲3) that predicts whether or not it is true, Conditional anti-inui practice (4) that inverts the branch condition of a conditional branch instruction, and Replacement note that swaps the branch displacement of a conditional branch instruction and the instruction length of a conditional branch instruction! +a 5 and (S are formed.

次に、動作についてご2明する。フェッチデコード1構
1によって命令が7エツチ、デコードされ、それが条件
ブランチ命令であることが判明すると、ブランチ予測[
13に基づいてブランチが起こるか否かを予測し、起こ
るものと判断されると、条件反転1構4を用いて1条件
ブランチ命令のブランチ条件を反転する。すなわち、た
とえば2フラグが立っていればブランチするに対して、
Zフラグが立っていなければブランチするというように
条件を反転し、なおかつ入替曙構5を用いて条件ブラン
チ命令のブランチ変位と条件ブランチ命令の命令長とを
入替えて、ブランチの飛び先番地より次の命令をフェッ
チデコード1構1にフェッチ。
Next, I will explain the operation. Fetch decode 1 structure 1 decodes the instruction 7 times, and if it turns out to be a conditional branch instruction, branch prediction [
13, and if it is determined that the branch will occur, the branch condition of the 1-conditional branch instruction is inverted using conditional inversion 1 and 4. In other words, for example, if 2 flags are set, branch.
The condition is reversed so that if the Z flag is not set, the branch is executed, and the branch displacement of the conditional branch instruction and the instruction length of the conditional branch instruction are swapped using the swapping mechanism 5, and the next branch is executed from the jump destination address of the branch. Fetch the instruction into one fetch decode structure.

デコードする。ブランチ予測曙構3によってブランチが
起こると判断されたが、結果的にその予mlがl10m
っていた場合には、ブランチ変位として条件ブランチ命
令の命令長を持つ命令が実行されるので、プログラム上
の条件ブランチ命令の次に位置する命令のブランチが起
こり、あたかもフェッチデコードi*iにフェッチ、デ
コードされた条件ブランチ命令によってブランチは起こ
らなかったのと同じことになる。
decode. It was determined that a branch would occur according to branch prediction Akebono 3, but as a result, the pre-ml was 110m.
In this case, an instruction with the instruction length of the conditional branch instruction is executed as a branch displacement, so a branch of the instruction located next to the conditional branch instruction in the program occurs, and it is as if the fetch decode i * i , it is the same as if the branch had not occurred due to the decoded conditional branch instruction.

なお、ブランチが起こると予測された場合に、条件ブラ
ンチ命令のブランチ条件を反転する代わりに、実行1構
2での実行シーケンスをブランチ条件が成立しなかった
ら、ブランチを起こすようなものにする(通常はブラン
チ条件が成立ずればブランチを起こず)方法も考えられ
る。
Note that when a branch is predicted to occur, instead of reversing the branch condition of the conditional branch instruction, the execution sequence in Execution 1 and 2 is changed to cause a branch if the branch condition is not satisfied ( Normally, if the branch condition is not satisfied, a branch is not caused).

し発明の効果] 以上のように、この発明によれば、条件ブランチ命令に
よってブランチが起こると予測されると、条件ブランチ
命令のブランチ条件を反転するとともに、ブランチ変位
と命令長とを入替えて、実行ステージへ移すことによっ
て、ブランチ予測が外れた場合には、結局プログラム上
の条件ブランチ命令の次に位置する命令のブランチが起
こる。このようにしてブランチ予測が外れた場合のため
の処理には、ブランチ条件の入替機構とブランチ変位と
命令長とを入替える機構を必要とするだけで、従来のよ
うに?!雑な機構を必要とせず、したがってデータ処理
装置をより容易に実現できる。
[Effects of the Invention] As described above, according to the present invention, when a branch is predicted to occur due to a conditional branch instruction, the branch condition of the conditional branch instruction is reversed, and the branch displacement and instruction length are exchanged, If the branch prediction is incorrect by moving to the execution stage, the branch of the instruction located next to the conditional branch instruction in the program will eventually occur. In this way, processing for cases where branch predictions are incorrect requires only a mechanism for exchanging branch conditions, a mechanism for exchanging branch displacements and instruction lengths, and is it possible to do this just like in the past? ! No complicated mechanism is required, and therefore a data processing device can be more easily realized.

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

第1図はこの発明の一天詣例のデータ処理装置の構成を
示すブロック図である。第2図は従来のデータ処理装置
の慨略ブロック図である。 図において、1はフェッチデコード間溝、2は実行低値
、3はブランチ予測機構、4は条件反転機構、5は入替
1恰を示す。
FIG. 1 is a block diagram showing the configuration of a data processing device as an example of the present invention. FIG. 2 is a schematic block diagram of a conventional data processing device. In the figure, 1 indicates a gap between fetch and decodes, 2 indicates an execution low value, 3 indicates a branch prediction mechanism, 4 indicates a condition reversal mechanism, and 5 indicates a replacement 1 type.

Claims (2)

【特許請求の範囲】[Claims] (1)第1の機構と第2の機構を含み、前記第1の機構
と前記第2の機構とがパイプライン処理の原理で命令を
処理する命令処理手段と、前記第1の機構で処理される
条件分岐命令が分岐を起こすか否かを予測する分岐予測
手段と、前記分岐予測手段の予測結果に基づいて、前記
条件分岐命令によって示される分岐先命令までの変位と
前記条件分岐命令の命令長とを入替える処理をするため
の変位入替手段とを備えたことを特徴とする、データ処
理装置。
(1) An instruction processing means including a first mechanism and a second mechanism, wherein the first mechanism and the second mechanism process instructions based on the principle of pipeline processing, and the first mechanism processes instructions. branch prediction means for predicting whether or not a conditional branch instruction to be executed causes a branch; and a branch prediction means for predicting whether or not a conditional branch instruction to be executed causes a branch; 1. A data processing device, comprising: displacement exchanging means for exchanging the instruction length.
(2)さらに、前記分岐予測手段の予測結果に基づいて
、前記条件分岐命令の分岐条件を変更する分岐条件変更
手段を備えた、特許請求の範囲第1項記載のデータ処理
装置。
(2) The data processing device according to claim 1, further comprising branch condition changing means for changing the branch condition of the conditional branch instruction based on the prediction result of the branch prediction means.
JP61200557A 1986-08-26 1986-08-26 Data processing device Expired - Fee Related JPH0754459B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP61200557A JPH0754459B2 (en) 1986-08-26 1986-08-26 Data processing device
US08/340,462 US5440704A (en) 1986-08-26 1994-11-14 Data processor having branch predicting function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61200557A JPH0754459B2 (en) 1986-08-26 1986-08-26 Data processing device

Publications (2)

Publication Number Publication Date
JPS6355639A true JPS6355639A (en) 1988-03-10
JPH0754459B2 JPH0754459B2 (en) 1995-06-07

Family

ID=16426290

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61200557A Expired - Fee Related JPH0754459B2 (en) 1986-08-26 1986-08-26 Data processing device

Country Status (1)

Country Link
JP (1) JPH0754459B2 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5762442A (en) * 1980-10-01 1982-04-15 Nec Corp Information processor

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5762442A (en) * 1980-10-01 1982-04-15 Nec Corp Information processor

Also Published As

Publication number Publication date
JPH0754459B2 (en) 1995-06-07

Similar Documents

Publication Publication Date Title
JPS63175934A (en) Data processor
JPS633337B2 (en)
JPH052484A (en) Super scalar processor
JPH056894B2 (en)
JPH02287626A (en) Pipeline system branch instruction controller
JPS6355639A (en) Data processor
US9983872B2 (en) Conditional selection of data elements
JP2001100994A (en) Device and method for instruction processing controlling branch instruction changing mode
JPH04160638A (en) Information processor
JP2843844B2 (en) Parallel processing unit
JPH0760385B2 (en) Data processing device having branch prediction function
JPH02181226A (en) Pipeline processor
JPH01271842A (en) Information processor
JPH0758463B2 (en) Data processing device
JPH03250221A (en) Branch predicting system
JPH0353322A (en) Information processor
JPH01175635A (en) Data processor
JPH10105401A (en) Device of predicting branch instruction of processor
JPH0774992B2 (en) Data processing device
JPH02206836A (en) Data processor
JPS63197234A (en) Information processor
JPS63170740A (en) Data processor
JPH07122852B2 (en) Pipeline information processing equipment
JPH05224924A (en) Device and method for processing data
JPH0266628A (en) Information processor

Legal Events

Date Code Title Description
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees