JPS61237136A - Register controlling system - Google Patents

Register controlling system

Info

Publication number
JPS61237136A
JPS61237136A JP7965185A JP7965185A JPS61237136A JP S61237136 A JPS61237136 A JP S61237136A JP 7965185 A JP7965185 A JP 7965185A JP 7965185 A JP7965185 A JP 7965185A JP S61237136 A JPS61237136 A JP S61237136A
Authority
JP
Japan
Prior art keywords
instruction
address
execution
register
register group
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
JP7965185A
Other languages
Japanese (ja)
Inventor
Yoshiharu Ono
大野 義治
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 JP7965185A priority Critical patent/JPS61237136A/en
Publication of JPS61237136A publication Critical patent/JPS61237136A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)

Abstract

PURPOSE:To quicken a start of execution of a branch destination instruction by executing a control so that a precedence store is inhibited even if execution of an index register store instruction is started, when a conditional instruction displaying circuit is in a set state. CONSTITUTION:A decoder 10 decodes an instruction code, and supplies a result of this decoding to the first control circuit 11. Then, in case a condition branch instruction TZE precedes index register store instructions EAX 1, EAX 2, a conditional instruction displaying circuit in the circuit 11 becomes a set state between timings t1-t3, therefore, the circuit 11 stops outputting a control signal for instructing write to the second index register group 4. When a precedence store to the register group 4 is inhibited in this way, even if the instruction TZE is executed in an executing state E and made to branch to a load instruction LDA, it will suffice by only cancelling a result being on the way of execution of the instructions EXA 1, EXA 2, LDA, etc. which follow the instruction TZE, by a write stage W of the instruction TZE, and a release of registers X1, X2 becomes unnecessary.

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明はレジスタ制御方式、特に、パイプライン方式を
採用したデータ処理装置におけるレジスタ制御方式に関
する。さらに詳しくは、レジスタに対する書込みと読出
しの競合回避処理の改善を図ったレジスタ制御方式に関
する。
DETAILED DESCRIPTION OF THE INVENTION (Field of Industrial Application) The present invention relates to a register control method, and particularly to a register control method in a data processing device employing a pipeline method. More specifically, the present invention relates to a register control method that improves conflict avoidance between writing and reading to registers.

(従来の技術) パイプライン方式は、周知のように、大型のベクトルや
行列の演算などの処理専用であるベクトルプロセッサに
適した高速演算方式である。その概念は、複数ステージ
からなるパイプラインに、(広義の)入力データが一定
のマシンサイクルごとに次々と投入され、マシンサイク
ルごとに各ステージ対応の処理が施されて演算が進行し
、1組の入力データに対する演算は全ステージを通過す
ることによシ完了するというものである。入力データ列
が充分長ければ、マシンサイクル時間にステージ数を乗
じただけの時間がかかる筈の演算が、1マシンサイクル
時間ごとに得られることになるという原理に基づいて演
算の高速化を図っている。
(Prior Art) As is well known, the pipeline method is a high-speed calculation method suitable for vector processors dedicated to processing such as calculations on large vectors and matrices. The concept is that input data (in a broad sense) is input one after another at a fixed machine cycle into a pipeline consisting of multiple stages, and the processing corresponding to each stage is performed at each machine cycle to proceed with the calculation. An operation on input data is completed by passing through all stages. We aim to speed up calculations based on the principle that if the input data string is long enough, calculations that would otherwise take time equal to the machine cycle time multiplied by the number of stages can be obtained every machine cycle time. There is.

パイプライン方式が成立する理由は、入力データそれぞ
れが独立に演算し得るとの前提に立脚している。ところ
が、レジスタへの格納命令の実行が終了しないうちに、
そのレジスタの読出しを指示するような命令が入力デー
タとして後続する場合がある。パイプライン演算方式に
おいては、このようなケースは、アドレス計算に使用さ
れるインデックスレジスタにおいて発生する。すなわち
、命令実行結果をインデックスレジスタに格納すること
を指示する命令が終了しないうちに1そのインデックス
レジスタを読み出してアドレス計算に使用することを指
示する命令が後続するようなケースである。
The reason why the pipeline method is established is based on the premise that each piece of input data can be independently calculated. However, before the execution of the instruction to store in the register is completed,
An instruction to read the register may follow as input data. In the pipeline arithmetic system, such a case occurs in the index register used for address calculation. That is, there is a case where an instruction to read the index register and use it for address calculation follows before the instruction to store the instruction execution result in the index register is completed.

従来、このようなケースにおいては後続命令は、レジス
タ格納命令が終了するまで、その実行開始を持たせるこ
とにしている。
Conventionally, in such a case, the subsequent instruction is allowed to start its execution until the register store instruction is completed.

しかしこれでは、当然ながら、性能が低下するので、ア
ドレス計算用のインデックスレジスタを設け、前段のス
テージにおいて命令実行結果を得ることができるような
命令の場合にはこの命令実行結果をアドレス計算用イン
デックスレジスタに先行格納し、後続命令のアドレス計
算に使用するようにすることKよって、アドレス計算の
待ち時間の短縮を図るようにしたレジスタ制御方式が提
案されている。
However, this naturally reduces performance, so an index register for address calculation is provided, and in the case of an instruction whose instruction execution result can be obtained in the previous stage, this instruction execution result is used as an index register for address calculation. A register control method has been proposed in which the waiting time for address calculation is shortened by storing the information in advance in a register and using it for calculating the address of a subsequent instruction.

(発明が解決しようとする問題点) このような従来方式においては、インデックスレジスタ
への先行格納が処理の流れの中で有効なものとの前提に
立って行なわれているが、インデックス格納命令に対し
て条件分岐命令が先行しかつこの条件分岐命令の実行の
結果によυ処理の流れを分岐させなくてはならなくなる
と、条件分岐命令に後続する実行途中の各命令実行のキ
ャンセルに加えて先行格納が行なわれたインデックスレ
ジスタの復旧を行なう必要が生じるため、その時間分だ
け、分岐先命令の実行開始が遅延するという問題点があ
る。
(Problems to be Solved by the Invention) In such conventional methods, advance storage to the index register is carried out on the premise that it is effective in the flow of processing. On the other hand, if a conditional branch instruction precedes the execution of the conditional branch instruction and the flow of υ processing must be branched depending on the result of execution of this conditional branch instruction, in addition to canceling the execution of each instruction in the middle of execution following the conditional branch instruction, Since it is necessary to restore the index register that has been previously stored, there is a problem in that the start of execution of the branch destination instruction is delayed by that time.

第3図は本問題点を明示したタイムチャートであう、条
件分岐命令TZEの次に、2つのインデックスレジスタ
格納命令EAXIおよびEAX2と、ロード命令LDA
と、ストア命令STAとが後続した場合である。パイプ
ラインは、解読ステージD、アドレス生成ステージ人、
アドレス変換ステージP、キャッ7ユアクセスステージ
C1実行ステージEおよび書込みステージWからなシ、
これら各ステージをこの順序に通過することによシ1命
令の実行が終了する。
FIG. 3 is a time chart that clearly shows this problem. Next to the conditional branch instruction TZE, two index register storage instructions EAXI and EAX2 and a load instruction LDA are shown.
This is the case where a store instruction STA follows. The pipeline consists of a decoding stage D, an address generation stage,
From address translation stage P, cache access stage C1, execution stage E and write stage W,
By passing through each of these stages in this order, execution of one instruction is completed.

インデックスレジスタ格納命令EAX1とEAX2の各
アドレス生成ステージでは、指定されたインデックスレ
ジスタX1とX2への先行格納がそれぞれタイミングt
、とt3で行なわれるが、条件分岐命令TZEが実行ス
テージ(タイミングt4〜’s)に至って実行された結
果、アドレス氏のロード命令LDAK分岐するような条
件が成立すると、タイミングt、までに実行開始された
全命令、すなわち、アドレスA、 、 A2. A3お
よび氏のインデックスレジスタ格納命令EAX1.イン
デックスレジスタ格納命令BA、X2.  ロード命令
LDA、をストア命令8TAの実行途中結果をタイミン
グt、〜t6でキャンセルし、かつタイミングt、〜t
6とタイミングt、〜t、でそれぞれインデックスレジ
スタX1とX2の復旧、すなわち、先行格納以前の状態
へ戻さねばならなくなる。この結果により、分岐先のロ
ード命令LDAは、以上のキャンセルと復旧とが終了す
るタイミングt7からでないと、その実行が開始されな
いことになる。
In each address generation stage of index register storage instructions EAX1 and EAX2, advance storage to specified index registers X1 and X2 occurs at timing t, respectively.
, is executed at t3, but as a result of the conditional branch instruction TZE reaching the execution stage (timing t4~'s) and being executed, if a condition such as branching to address's load instruction LDAK is established, execution is executed by timing t. All instructions started, ie addresses A, , A2 . A3 and Mr.'s index register storage instruction EAX1. Index register storage instruction BA, X2. The load instruction LDA is canceled during the execution of the store instruction 8TA at timing t, ~t6, and the timing t, ~t
At timings 6 and t and up to t, index registers X1 and X2 must be restored, that is, returned to the state before the preceding storage. As a result, execution of the branch destination load instruction LDA does not start until timing t7 when the above-described cancellation and restoration are completed.

本発明の目的は、従来方式におけるインデックスレジス
タ復旧時間分だけの条件分岐命令の実行開始時刻の遅延
を排除するようなインデックスレジスタ制御方式を提供
することにある。
An object of the present invention is to provide an index register control method that eliminates the delay in the execution start time of a conditional branch instruction by the index register recovery time in the conventional method.

(問題点を解決するための手段) 本発明の方式は、パイプラインの解読ステージにある命
令を保持する命令レジスタと、パイプラインによって実
行された実行結果を保持する第1レジスタ群と、 実行結果をアドレス計算用インデックス値として保持す
る第2レジスタ群と、 命令ガインデックス修飾を指示する場合には指定された
第2レジスタ群の保持値と命令の変位アドレスとを加算
する加算器と、 加算器の出力または実行結果を選択的に受け入れて第2
レジスタ群へ書込データとして供給する切替器と、 命令レジスタの命令の解読結果が条件分岐命令であると
判明したときは命令に対するアドレス生成ステージから
命令実行ステージまでのみセット状態を保持する条件分
岐命令表示回路 とを及け、加算器出力を第ルンスタ群および第2レジス
メ群・\ロードする命令が命令レジスタに入力した場合
に切替器は加算器の出力を受け入れ条件分岐命令表示回
路がリセット状態であれば加算器の出力を書込みデータ
として第2レジスタ群に供給して第1レジスタ群に先行
してロードするが条件分岐命令表示回路がセット状態で
あるときには先行ロード動作を抑止するようにしたこと
を特徴とする。
(Means for Solving the Problems) The method of the present invention comprises: an instruction register that holds instructions in the decoding stage of a pipeline; a first register group that holds execution results executed by the pipeline; and an execution result. a second register group that holds as an index value for address calculation; an adder that adds the specified value held in the second register group and the displacement address of the instruction when instructing index modification of the instruction; Selectively accept the output or execution result of the second
A switch that supplies write data to a group of registers, and a conditional branch instruction that maintains the set state only from the address generation stage to the instruction execution stage when the decoding result of the instruction in the instruction register is found to be a conditional branch instruction. When an instruction to load the adder output into the runster group and the second register group is input to the instruction register, the switch accepts the output of the adder and the conditional branch instruction display circuit is in the reset state. If there is, the output of the adder is supplied as write data to the second register group and loaded in advance into the first register group, but when the conditional branch instruction display circuit is in the set state, the advance loading operation is suppressed. It is characterized by

(作用) 本発明は、条件分岐命令の実行ステージ゛までの間に加
算器出力をインデックスレジスタに格納することを指示
するような命令が後続すると、インデックスレジスタへ
の先行格納を抑止するようにしているが、このような処
置によって先行アドレス計算による性能向上の機会を失
するのは、条件分岐命令の実行の結果が分岐しないこと
になシかつインデックスレジスタ格納命令に後続して条
件分岐命令の実行ステージまでの間に同一のインデック
スレジスタを読み出すことを指示するような命令が続い
た場合のみであシ、このような場合は。
(Function) The present invention suppresses the preceding storage in the index register when an instruction that instructs to store the adder output in the index register follows before the execution stage of the conditional branch instruction. However, the reason why such a measure would result in the loss of the opportunity to improve performance through advance address calculation is that the execution of the conditional branch instruction would not result in a branch, and the conditional branch instruction would not be executed following the index register storage instruction. This is only possible if there are consecutive instructions that instruct to read the same index register up to the stage.

条件分岐命令の実行の結果により分岐することKなり、
従来方式のように先行格納されたインデックスレジスタ
の復旧が必要となるような事態になる場合に比べて極め
て稀であるという事実に立脚している。
It is K to branch depending on the result of execution of a conditional branch instruction,
This method is based on the fact that the situation is extremely rare compared to the conventional method in which it is necessary to restore the previously stored index register.

(実施例) 次に本発明の実施例について図面を参照しながら詳細に
説明する。
(Example) Next, an example of the present invention will be described in detail with reference to the drawings.

第1図は本発明の一実施例を示すブロック図である。第
1図を参照すると、本実施例は命令レジスタ1.切替器
2.ペースレジスタ群3.第2インデックスレジスタ群
4.アドレス加算器5.実効アドレス加算器6.アドレ
ス変換回路7.キャッシュメモリ8.実効アドレススタ
ック9.デコーダ10.第1制御回路11.制御スタッ
ク12からなる命令制御ユニットと、2つの切替器13
および14,2つのワーキングレジスタ15および16
.演算器17.第1インデックスレジスタ群18および
第2制御回路19からなる命令実行ユニットとで構成さ
れる。
FIG. 1 is a block diagram showing one embodiment of the present invention. Referring to FIG. 1, in this embodiment, instruction register 1. Switcher 2. Pace register group 3. Second index register group 4. Address adder 5. Effective address adder 6. Address conversion circuit 7. Cache memory8. Effective address stack9. Decoder 10. First control circuit 11. A command control unit consisting of a control stack 12 and two switchers 13
and 14, two working registers 15 and 16
.. Arithmetic unit 17. The instruction execution unit includes a first index register group 18 and a second control circuit 19.

命令レジスタ1はパイプラインに入力した直後の命令を
保持し、この命令コードOPはデコーダ10、ペースア
ドレスレジスタI号Bはペースレジスタ群3.インデッ
クスレジスタ番号Xは第2インデツクスレジスタ群4.
そして変位アドレスYはアドレス加算器5および実効ア
ドレス加算器6に供給される。
Instruction register 1 holds the instruction immediately after input to the pipeline, this instruction code OP is stored in decoder 10, and pace address registers I and B are stored in pace register group 3. The index register number X is the second index register group 4.
The displacement address Y is then supplied to an address adder 5 and an effective address adder 6.

デコーダ10は命令コードOPを解読してこの解読結果
を第1制御回路11と制御スタック12とに供給する。
The decoder 10 decodes the instruction code OP and supplies the decoding result to the first control circuit 11 and the control stack 12.

第1制御回路11は、解読結果が条件分岐命令のときに
はその実行ステージEまでの間のみセット状態となるよ
うな条件分岐命令表示回路(図示省略)を含む。ベース
レジスタ群3はベースアドレスレジスタ番号Bで、また
、第2インデックスレジスタ群4はインデックスレジス
タ番号Xでそれぞれアクセスされ、ペースレジスタ群3
からのベースアドレスはアドレス加算器5へ、また、第
2インデツクスレジスタ4からのインデックスアドレス
はアドレス加算器5と実効アドレス加算器6とにそれぞ
れ読み出される。以上の命令コードの解読とベースアド
レスおよびインデックスアドレスの読出しとがパイプラ
インの解読ステージDである。
The first control circuit 11 includes a conditional branch instruction display circuit (not shown) that is set in a set state only until the execution stage E when the decoding result is a conditional branch instruction. The base register group 3 is accessed with the base address register number B, and the second index register group 4 is accessed with the index register number X.
The base address from is read out to address adder 5, and the index address from second index register 4 is read out to address adder 5 and effective address adder 6, respectively. The above decoding of the instruction code and reading of the base address and index address are the decoding stage D of the pipeline.

アドレス加算器5は、第1制御回路11からの制御信号
に応答して、ベースレジスタ群3からのベースアドレス
と、第2インデックスレジスタ群4からのインデックス
アドレスと、命令レジスタ1からの変位アドレスとを加
算して仮想アドレスを生成し、実効アドレス加算器6は
、第1制御回路11からの制御信号に応答して、第2イ
ンデックスレジスタ群4からのインデックスアドレスと
命令レジスタ1からの変位アドレスとを加算して実効ア
ドレスを生成する(アドレス生成ステージA)。
In response to a control signal from the first control circuit 11, the address adder 5 adds a base address from the base register group 3, an index address from the second index register group 4, and a displacement address from the instruction register 1. The effective address adder 6 adds the index address from the second index register group 4 and the displacement address from the instruction register 1 in response to a control signal from the first control circuit 11. is added to generate an effective address (address generation stage A).

仮想アドレスはアドレス変位回路7で実アドレスに変換
され(アドレス変換ステージP)、この実アドレスでキ
ャッシュメモリ8がアクセスされる(キャッシュアクセ
スステージC)。アドレス変換とキャッシュメモリアク
セス時に必要な各種の制御信号は第1制御回路11から
供給される。
The virtual address is converted into a real address by the address displacement circuit 7 (address conversion stage P), and the cache memory 8 is accessed using this real address (cache access stage C). Various control signals necessary for address translation and cache memory access are supplied from the first control circuit 11.

この間に1実効アドレスは実効アドレススタック9にス
タック格納されると共に切替器2に供給され、切替器2
は、第1制御回路11からの制御信号に応答して、後述
の命令実行結果または実効アドレスのいずれかを受け入
れる。
During this time, one effective address is stack-stored in the effective address stack 9 and is supplied to the switch 2.
accepts either an instruction execution result or an effective address, which will be described later, in response to a control signal from the first control circuit 11.

制御スタック12は、デコーダIOKおける解読済でか
つ実行前の命令をスタック格納しておシ、ヤヤッシェア
クセスステージCにおいて、キャッシュメモリ8からの
読出しデータと実効アドレススタック9からの実効アド
レスとが切替器13および14に供給されるのに同期し
て、これらのアドレスに対応する命令の解読結果が第2
制御回路19に供給される。
The control stack 12 stores instructions that have been decoded and are yet to be executed in the decoder IOK, and in the Yayashe access stage C, the read data from the cache memory 8 and the effective address from the effective address stack 9 are switched. The decoding results of the instructions corresponding to these addresses are sent to the second address 13 and 14 simultaneously.
The signal is supplied to the control circuit 19.

実効ステージEにおいては、切替器13と14のそれぞ
れは、第2制御回路19からの制御信号に応答して、キ
ャッシュメモリ読出しデータと実効アドレススタック9
からの実効アドレスと第1インデックスレジスタ群18
からの読出しデータと“O#のいずれか一つを受け入れ
、それぞれワーキングレジスタ15と16に供給する。
In the effective stage E, each of the switches 13 and 14 responds to a control signal from the second control circuit 19 to switch between the cache memory read data and the effective address stack 9.
Effective address from and first index register group 18
It accepts either read data or "O#" and supplies them to working registers 15 and 16, respectively.

このときの第1インデックスレジスタ群18に対するア
クセスアドレスは、第2制御回路19から与えられる。
The access address for the first index register group 18 at this time is given from the second control circuit 19.

演算器17は、ワーキングレジスタ15と16の各保持
内容に対して、第2制御回路19からの制御信号に応答
した演算を施し、この命令実行結果を切替器2と第1イ
ンデックスレジスタ群18とキャッシュメモリ8とに供
給する。
The arithmetic unit 17 performs arithmetic operations on the contents held in the working registers 15 and 16 in response to the control signal from the second control circuit 19, and transfers the instruction execution results to the switch 2 and the first index register group 18. The data is supplied to the cache memory 8.

書込みステージWにおいて、切替器2は第1制御回路1
1からの制御信号、第1インデックスレジスタ群18お
よびキャッシュメモリ8は第2制御回路19からの制御
信号にそれぞれ応答して命令実行結果を受け入れる。
In the write stage W, the switch 2 is connected to the first control circuit 1
1, the first index register group 18, and the cache memory 8 accept the instruction execution results in response to control signals from the second control circuit 19, respectively.

以上に述べた解読ステージD、アドレス生成ステージ人
、アドレス変換ステージP、キャッシュアクセスステー
ジC1実行ステージEおよび書込みステージWをこの順
序に通過することKよシ1命令の実行が完了する。
By passing through the above-described decoding stage D, address generation stage, address translation stage P, cache access stage C1, execution stage E, and write stage W in this order, the execution of the first instruction is completed.

さて、切替器13と14は、前述したとおシ、命令コー
ドOPに対応して様々な入力を受け入れ、ワーキングレ
ジスタ15と16を介して演算器17に供給する。演算
器はこの入力に対して、命令コードOFに対応した演算
を施して命令実行結果を得、実行ステージEにおいて切
替器2とキャッシュメモリ8と第1インデックスレジス
タ群18とに供給する。そして、多くの命令の場合に、
書込みステージWにおいて、キャッシュメモリ8か、ま
たは第1インデックスレジスタ群」8と第2インデック
スレジスタ群4に書き込まれる。
Now, as described above, the switchers 13 and 14 accept various inputs corresponding to the instruction code OP, and supply them to the arithmetic unit 17 via the working registers 15 and 16. The arithmetic unit performs an operation corresponding to the instruction code OF on this input to obtain an instruction execution result, which is supplied to the switch 2, the cache memory 8, and the first index register group 18 in the execution stage E. And in the case of many commands,
In the write stage W, the data is written to the cache memory 8 or the first index register group 8 and the second index register group 4.

ところで、実効アドレス加算器6で得た実効アドレスを
インデックスレジスタに格納すること全指示するような
インデックスレジスタ格納命令は。
By the way, there is an index register storage instruction that instructs all the effective addresses obtained by the effective address adder 6 to be stored in the index register.

周知のように、ベクトル計算時によく使用される。As is well known, it is often used during vector calculations.

インデックスレジスタ格納命令においては、切替器2は
実効アドレス加算器6で得られる実効アドレスを受け入
れ、アドレス生成ステージAで第2インデックスレジス
タ群4に書き込もうとする。
In the index register storage instruction, the switch 2 accepts the effective address obtained by the effective address adder 6 and tries to write it to the second index register group 4 in the address generation stage A.

また、切替器13と14は上述の実効アドレスと”0″
をキャッジ−アクセスステージCで受け入れ、演算器1
7で加算(この場合には加算は無意味)した後に、書込
みステージWで第1インデックスレジスタ群に書き込も
うとする。・ すなわち、アドレス生成ステージAにおいて既に命令実
行結果が得られたのモあるから、これをアドレス生成ス
テージAで先行格納して、後続の命令のアドレス計算用
に供することによシ、パイプラインを短縮化するのと同
等の効果を得ようとするのである。このような先行格納
は、インデックスレジスタ格納命令よシ先行する他の命
令が実効ステージEにおいて実行された結果によっても
正当であることが確定している限シにおいてのみ許され
てよい。
In addition, the switching devices 13 and 14 are connected to the above-mentioned effective address and "0".
is accepted by the cache-access stage C, and the calculation unit 1
7 (in this case, the addition is meaningless), the write stage W attempts to write to the first index register group.・In other words, since the instruction execution result may have already been obtained at address generation stage A, the pipeline can be improved by pre-storing this at address generation stage A and using it for calculating the address of the subsequent instruction. They are trying to achieve the same effect as shortening the length. Such advance storage may be allowed only as long as it is determined that other instructions preceding the index register store instruction are valid based on the results of execution in the effective stage E.

したがって、第2図にタイムチャート化して示すようK
、条件分岐命令TZBが2つのインデックスレジスタ格
納命令EAX1とFliAX2とに先行している場合に
は、前述したように、第1制御回路11内の条件命令表
示回路がタイミングt、〜タイミングt5の間でセット
状態になっているので、第1制御回路11は第2インデ
ックスレジスタ群4への書込みを指示する制御信号を出
力するのを止める。この結果、条件命令表示回路がリセ
ット状態のときには、タイミングt、とタイミングt、
におけるそれぞれインデックスレジスタX1とインデッ
クスレジスタX2への先行格納は抑止されることになる
Therefore, as shown in the time chart in Figure 2, K
, when the conditional branch instruction TZB precedes the two index register storage instructions EAX1 and FliAX2, as described above, the conditional instruction display circuit in the first control circuit 11 displays the information between timing t and timing t5. Since the first control circuit 11 is in the set state, the first control circuit 11 stops outputting the control signal instructing writing to the second index register group 4. As a result, when the conditional instruction display circuit is in the reset state, timing t, timing t,
Preliminary storage to index register X1 and index register X2, respectively, is inhibited.

このように第2インデックスレジスタ群への先行格納を
抑止しておけば、条件分岐命令TZRが実行ステージE
において実行されてアドレスbのロード命令LDAに分
岐することになっても、条件分岐命令TZHに後続する
4つの命令EAXI。
By inhibiting advance storage to the second index register group in this way, conditional branch instruction TZR can be executed at execution stage E.
Four instructions EAXI following the conditional branch instruction TZH result in a branch to the load instruction LDA at address b.

EAX2.LDAおよび8TAの各命令実行結果結果を
条件分岐命令TZEの書込みステージWでキャンセルす
るのみでよく、従来のように、インデックスレジスタX
1とX2の復旧は不要であるので、分岐先命令LDAを
タイミングt、で実行開始することができる。
EAX2. It is only necessary to cancel the execution results of each instruction LDA and 8TA in the write stage W of the conditional branch instruction TZE, and as before, the index register
1 and X2 are not required, execution of the branch destination instruction LDA can be started at timing t.

もっとも、条件分岐命令TZEを実行ステージEで実行
の結果、分岐せず、アドレス劫→A、→A、→A、→A
4・・・・・・という処理の流れを保持するような場合
に、アドレスks tたはA4にインデックスレジスタ
X1の読出しを指示するような命令があったり、アドレ
スA4にインデックスレジスタX2の読出しを指示する
ような命令があると、これらの命令開始は、インデック
スレジスタの先行格納が行なわれた場合に比べて3〜2
マシンタイム分だけ遅延することになる。しかしながら
、このようなりリティカルな場合は、条件分岐命令の実
行の結果によ多分岐することになシ、従来方式のように
先行格納されたインデックスレジスタの復旧が必要とな
るような事態になる場合に比べて極めて稀であるため、
先行アドレス計算による性能向上の機会を失する確率は
極めて低く、トータルして大幅な性能向上が見込まれる
However, as a result of executing the conditional branch instruction TZE at execution stage E, the branch does not occur and the address →A, →A, →A, →A
4..., if there is an instruction to read index register X1 at address kst or A4, or if there is an instruction to read index register X2 at address A4. If there are such instructions, the start of these instructions will be 3 to 2
This will cause a delay by the amount of machine time. However, in such a critical case, there is no need to take multiple branches as a result of executing a conditional branch instruction, and it is necessary to restore the previously stored index register as in the conventional method. Because it is extremely rare compared to
The probability of losing an opportunity to improve performance through advance address calculation is extremely low, and a significant overall performance improvement is expected.

(発明の効果) 本発明によれば、以上に説明したように、条件分岐命令
の場合にはその解読ステージから実行ステージまでの間
のみセット状態となる条件命令表示回路を設け、この回
路がセクト状態であるときにはインデックスレジスタ格
納命令が実行開始されてもインデックスレジスタへの先
行格納を抑止するように制御することにより、条件分岐
命令の実行の結果が分岐をするようになったときにおい
ても、従来のようにインデックスレジスタへの先行格納
上行なったがために必要であったインデックスレジスタ
の復旧が不要となるため、それだけ分岐先命令の実行開
始を早めることができるようKなる。
(Effects of the Invention) According to the present invention, as explained above, in the case of a conditional branch instruction, a conditional instruction display circuit is provided that is set only from the decoding stage to the execution stage, and this circuit Even if the index register storage instruction starts executing when the conditional branch instruction is executed, the preceding storage to the index register is suppressed. Since the restoration of the index register, which was necessary due to the preceding storage in the index register, is no longer necessary, the start of execution of the branch destination instruction can be started earlier.

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

第1図は本発明の一実施例を示し、第2図は本実施例を
説明するだめの図および第3図は従来例を説明するため
の図である。 1・・・・・・命令レジスタ、2.13.14・・°°
・・切替器13・・・・・・ペースレジスタ群、4・・
・・・・第2インデックスレジスタ群、5・・・・・・
アドレス加算器、6・・・・・・実効アドレス加算器、
7・・・・・・アドレス変換回路、8・・・・・・キャ
ッシュメモリ、9・・・・・・実効アドレススタック、
10・・・・・・デコーダ、11・・・・・−第1制御
回路、12・・・・・・制御スタック、15.16・・
・・°゛ワーキングレジスタ、17・・・・・・演算器
、18・・・・・・第1インデツクスレジスタ群、19
・・・・・・第2ititi御回路。 某 /I!1
FIG. 1 shows an embodiment of the present invention, FIG. 2 is a diagram for explaining this embodiment, and FIG. 3 is a diagram for explaining a conventional example. 1...Instruction register, 2.13.14...°°
...Switcher 13...Pace register group, 4...
...Second index register group, 5...
Address adder, 6... Effective address adder,
7... Address conversion circuit, 8... Cache memory, 9... Effective address stack,
10...decoder, 11...-first control circuit, 12...control stack, 15.16...
...°゛Working register, 17... Arithmetic unit, 18... First index register group, 19
...Second ititi control circuit. Certain /I! 1

Claims (1)

【特許請求の範囲】 パイプラインの解読ステージにある命令を保持する命令
レジスタと、 前記パイプラインによって実行された実行結果を保持す
る第1レジスタ群と、 該実行結果をアドレス計算用インデックス値として保持
する第2レジスタ群と、 前記の命令がインデックス修飾を指示する場合には指定
された第2レジスタ群の保持値と該命令の変位アドレス
とを加算する加算器と、 該加算器の出力または前記実行結果を選択的に受け入れ
て前記第2レジスタ群へ書込データとして供給する切替
器と、 前記命令レジスタの命令の解読結果が条件分岐命令であ
ると判明したときには該命令に対するアドレス生成ステ
ージから命令実行ステージまでのみセット状態を保持す
る条件分岐命令表示回路とを設け、前記加算器出力を前
記第1レジスタ群および前記第2レジスタ群へロードす
る命令が前記命令レジスタに入力した場合に前記切替器
は前記加算器の出力を受け入れ前器条件分岐命令表示回
路がリセット状態であれば該加算器の出力を書込みデー
タとして前記第2レジスタ群に供給して前記第1レジス
タ群に先行してロードするが前記条件分岐命令表示回路
が前記セット状態であるときには該先行ロード動作を抑
止するようにしたことを特徴とするレジスタ制御方式。
[Scope of Claims] An instruction register that holds instructions in the decoding stage of a pipeline, a first register group that holds execution results executed by the pipeline, and holds the execution results as an index value for address calculation. an adder that adds the specified holding value of the second register group and the displacement address of the instruction when the instruction instructs index modification; and an output of the adder or the displacement address of the instruction. a switch that selectively accepts an execution result and supplies it as write data to the second register group; and when it is determined that the result of decoding the instruction in the instruction register is a conditional branch instruction, the instruction is transferred from the address generation stage for the instruction. a conditional branch instruction display circuit that maintains a set state only until the execution stage, and when an instruction to load the output of the adder into the first register group and the second register group is input to the instruction register, the switch accepts the output of the adder and supplies the output of the adder as write data to the second register group and loads it in advance to the first register group if the preconditional branch instruction display circuit is in a reset state. A register control system characterized in that when the conditional branch instruction display circuit is in the set state, the preceding load operation is suppressed.
JP7965185A 1985-04-15 1985-04-15 Register controlling system Pending JPS61237136A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7965185A JPS61237136A (en) 1985-04-15 1985-04-15 Register controlling system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7965185A JPS61237136A (en) 1985-04-15 1985-04-15 Register controlling system

Publications (1)

Publication Number Publication Date
JPS61237136A true JPS61237136A (en) 1986-10-22

Family

ID=13696027

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7965185A Pending JPS61237136A (en) 1985-04-15 1985-04-15 Register controlling system

Country Status (1)

Country Link
JP (1) JPS61237136A (en)

Similar Documents

Publication Publication Date Title
JPS61267871A (en) Imformation processor
US6831654B2 (en) Data processing system
JPS61237136A (en) Register controlling system
JP3145545B2 (en) Memory access device
JP2861053B2 (en) Image processing device
JPH02103635A (en) Digital system
JPS60178539A (en) By-pass control system of information processor
JP3084953B2 (en) Information processing device
JPH03288228A (en) Information processor
JPH07113891B2 (en) Pipeline processing equipment
JPH04245333A (en) Information processor
JPH04328634A (en) Microprogram controller
JPS6343784B2 (en)
JPH07210384A (en) Floating point arithmetic unit
JPH05204638A (en) Pipeline processor
JPH05334265A (en) Information processor and processing method
JPH04289937A (en) Processor
JPH06149564A (en) Instruction controller
JPH08235135A (en) Parallel computer with communication register
JPH01267751A (en) System for program transition
JPH07210385A (en) Spill data processing system
JPH02100136A (en) Information processor
JPH06124205A (en) Instruction prefetching device
JPH01305452A (en) Store control system for buffer memory device
JPH0281131A (en) Program processing system