JP3473506B2 - Pipeline processing equipment - Google Patents

Pipeline processing equipment

Info

Publication number
JP3473506B2
JP3473506B2 JP19004199A JP19004199A JP3473506B2 JP 3473506 B2 JP3473506 B2 JP 3473506B2 JP 19004199 A JP19004199 A JP 19004199A JP 19004199 A JP19004199 A JP 19004199A JP 3473506 B2 JP3473506 B2 JP 3473506B2
Authority
JP
Japan
Prior art keywords
instruction
entry
operand
flag
issued
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
JP19004199A
Other languages
Japanese (ja)
Other versions
JP2001022579A (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.)
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 JP19004199A priority Critical patent/JP3473506B2/en
Publication of JP2001022579A publication Critical patent/JP2001022579A/en
Application granted granted Critical
Publication of JP3473506B2 publication Critical patent/JP3473506B2/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 includes an instruction overtaking buffer, a plurality of arithmetic units share a write port to a register file among the arithmetic units, and a replacement path (data replacement path) exists. Pipeline processing device.

【0002】[0002]

【従来の技術】パイプライン処理装置を実現するプロセ
ッサには、複数の演算器がレジスタファイルへのライト
ポートを当該演算器間で共有している場合がある。この
ような場合には、従来であれば、同時に発行可能な演算
命令数よりも多数の演算器が搭載されていることになっ
ていた。
2. Description of the Related Art In a processor that realizes a pipeline processing device, a plurality of arithmetic units may share a write port to a register file among the arithmetic units. In such a case, conventionally, a larger number of arithmetic units than the number of arithmetic instructions that can be issued at the same time have been mounted.

【0003】図7は、本発明が適用されるプロセッサ
(パイプライン処理装置)の構成の一例の概略を示すブ
ロック図である。
FIG. 7 is a block diagram showing an outline of an example of the configuration of a processor (pipeline processing device) to which the present invention is applied.

【0004】図7に示すパイプライン処理装置におい
て、レジスタファイルからのオペランド読み出しは同時
に最大4個分である。うち2個のオペランドはメモリア
クセス系の命令で使用されるアドレス加算器に供給さ
れ、他の2個のオペランドは算術演算や論理演算を実行
する演算器に供給される。
In the pipeline processing apparatus shown in FIG. 7, a maximum of four operands can be read from the register file at the same time. Two of the operands are supplied to an address adder used in a memory access type instruction, and the other two operands are supplied to an arithmetic unit that executes an arithmetic operation or a logical operation.

【0005】図7に示すパイプライン処理装置における
データパス構造では、2個の演算器はレジスタファイル
からのリードポートおよびレジスタファイルへのライト
ポートを当該演算器間で共有している。このような共有
が行われるのは、全ての演算器に同時にデータを供給で
きるだけのリードポートや全ての演算器からのデータを
同時にライトバックできるだけのライトポートを備える
RAM(RandomAccess Memory)ハ
ードマクロは面積や遅延の面で現実的には使用が困難で
あるからである。このため、このようなパイプライン処
理装置では、演算器を2個備えているものの、同時に発
行可能な演算命令は1個に限定される。
In the data path structure in the pipeline processing apparatus shown in FIG. 7, two arithmetic units share a read port from the register file and a write port to the register file. Such sharing is performed because a RAM (Random Access Memory) hard macro that has a read port that can supply data to all arithmetic units at the same time and a write port that can write back data from all arithmetic units at the same time This is because it is difficult to use in terms of delay and delay. For this reason, although such a pipeline processing device includes two arithmetic units, the number of arithmetic instructions that can be issued simultaneously is limited to one.

【0006】ここで、図7のような構成のパイプライン
処理装置(プロセッサ)における、図11に示す命令列
の実行過程を説明する(図12のタイムチャートも参照
する)。
Now, the execution process of the instruction sequence shown in FIG. 11 in the pipeline processing apparatus (processor) having the configuration shown in FIG. 7 will be described (see also the time chart of FIG. 12).

【0007】図12で、時刻T0以前に、図11の全て
の命令が図7中の命令追い越しバッファ内に登録されて
いるものとする。
In FIG. 12, it is assumed that all the instructions in FIG. 11 are registered in the instruction overtaking buffer in FIG. 7 before time T0.

【0008】時刻T0において第1の命令のLOAD命
令が発行され、時刻T1において第6の命令のSUB命
令が発行され、時刻T2において第2の命令のADD命
令が発行されるものとする。さらに、その後、時刻T3
において第1の命令の演算結果を参照する第3の命令の
OR命令が発行され、時刻T4において第2の命令の演
算結果を参照する第4の命令のADD命令が発行され、
時刻T5において第4の命令の演算結果を参照する第5
の命令のADD命令が発行されるものとする。
It is assumed that the LOAD instruction of the first instruction is issued at time T0, the SUB instruction of the sixth instruction is issued at time T1, and the ADD instruction of the second instruction is issued at time T2. Furthermore, after that, at time T3
An OR instruction of a third instruction that refers to the operation result of the first instruction is issued, and an ADD instruction of a fourth instruction that refers to the operation result of the second instruction is issued at time T4.
Fifth time referring to the operation result of the fourth instruction at time T5
It is assumed that the ADD instruction of the above instruction is issued.

【0009】ところで、時刻T3においては、第3の命
令のOR命令と第4の命令のADD命令とはいずれもオ
ペランドの依存関係が解消していて発行可能な状態であ
る。また、第3の命令のOR命令と第4の命令のADD
命令とでは使用する演算器の種類が異なる。さらに、第
4の命令のADD命令は後続の第6の命令のSUB命令
によって演算結果のS07が上書きされることが判明し
ているので、第4の命令の演算結果を参照する第5の命
令のADD命令に演算器周辺の差し替えパスを使用して
オペランドを供給しつつ発行することを保証できれば、
必ずしも第4の命令の演算結果をレジスタファイルに書
き戻す必要はない。加えて、第3の命令と第4の命令と
は時刻T3ではそれぞれ片方のオペランドが差し替えパ
スで供給されるので、レジスタファイルのリードポート
が余っていることになる。
By the way, at time T3, both the OR instruction of the third instruction and the ADD instruction of the fourth instruction have their operand dependencies resolved and are ready to be issued. Also, the OR instruction of the third instruction and the ADD of the fourth instruction
The type of arithmetic unit used differs from the instruction. Further, it is known that the ADD instruction of the fourth instruction overwrites the operation result S07 by the SUB instruction of the subsequent sixth instruction. Therefore, the fifth instruction that refers to the operation result of the fourth instruction If it can be guaranteed that the ADD instruction of the above will be issued while supplying the operand by using the replacement path around the arithmetic unit,
It is not always necessary to write back the operation result of the fourth instruction to the register file. In addition, at the time T3, one operand of each of the third instruction and the fourth instruction is supplied by the replacement path, so that the read port of the register file is left.

【0010】このように、時刻T3においては、第3の
命令のOR命令と第4の命令のAND命令とを同時に発
行しても、演算器リソースの競合は発生しない。それに
もかかわらず、従来技術によると、実際には、時刻T3
においては第3の命令しか発行されていない。
As described above, at time T3, even if the OR instruction of the third instruction and the AND instruction of the fourth instruction are issued at the same time, contention of the computing unit resources does not occur. Nevertheless, according to the prior art, it is actually time T3.
In, only the third instruction is issued.

【0011】[0011]

【発明が解決しようとする課題】上述した従来のパイプ
ライン処理装置では、パイプライン処理の一定の時刻に
おいて複数の演算命令を同時に発行しても演算器リソー
スの競合が発生しないにもかかわらず、実際には1個の
演算命令しか発行されていないので、投入された演算器
リソースに見合うだけの性能を引き出していないことに
なるという問題点があった。例えば、上述の図12中の
時刻T3においては、第3の命令(OR命令)と第4の
命令(AND命令)とを同時に発行することが可能であ
るにもかかわらず、そのような発行は行われていなかっ
た。
In the above-described conventional pipeline processing apparatus, even if a plurality of operation instructions are simultaneously issued at a fixed time of the pipeline processing, there is no conflict of operation unit resources. Since only one operation instruction is actually issued, there is a problem in that the performance corresponding to the input computing resource is not obtained. For example, although it is possible to issue the third instruction (OR instruction) and the fourth instruction (AND instruction) at the same time at time T3 in FIG. Was not done.

【0012】本発明の目的は、上述の点に鑑み、命令発
行の効率を高めることができ、投資された演算器ハード
ウェア資源(リソース)の性能をより多く引き出すこと
を可能とし、プロセッサ(パイプライン処理装置を実現
するプロセッサ)の実効性能の向上を達成できるパイプ
ライン処理装置を提供することにある。
In view of the above points, an object of the present invention is to improve the efficiency of instruction issuance, to make more use of the performance of invested arithmetic unit hardware resources, and (EN) Provided is a pipeline processing device capable of improving the effective performance of a processor that realizes the line processing device.

【0013】[0013]

【課題を解決するための手段】本発明のパイプライン処
理装置は、複数の演算器がレジスタファイルへのライト
ポートを当該演算器間で共有しており差し替えパスが存
在するパイプライン処理装置において、複数のエントリ
からなり、各入力オペランドに対する差し替えフラグ,
レディフラグ,および後続参照エントリ情報とエントリ
バリッドフラグ,ディスティネーションフィールド,お
よびLフラグとを各エントリに保持する命令追い越しバ
ッファと、Dステージデータ保持回路内の命令に関する
各種の情報を前記命令追い越しバッファ内のエントリに
登録し、当該エントリの命令とオペランドの依存関係を
有する命令が登録されている前記命令追い越しバッファ
内のエントリにその依存関係を示す情報を登録するエン
トリ登録手段と、前記エントリ登録手段による命令の登
録時に前記命令追い越しバッファ内の当該命令の登録エ
ントリ中のLフラグをセットし、当該命令と同一のレジ
スタに演算結果を書き込む先行命令の登録エントリ中の
Lフラグをリセットするレイテストセット手段と、前記
命令追い越しバッファ内の命令が発行された場合に当該
発行命令と依存関係にある命令に対する前記命令追い越
しバッファ内のエントリ中のオペランドレディフラグを
セットするオペランドレディセット手段と、前記命令追
い越しバッファに登録されている「入力オペランドがレ
ディになっている命令群」からの発行命令の候補の選
択,前記命令追い越しバッファに登録されている「後続
命令により演算結果が上書きされることが判明している
命令群」からの発行命令の候補の選択,およびリソース
の競合のチェックに基づいて発行命令を選択し、当該選
択の際に、リソースの競合が生じない範囲で複数命令の
同時発行を行い、「後続命令により演算結果が上書きさ
れることが判明している命令群」の中から選択された命
令を実際に発行した場合に当該命令の演算結果を参照す
る後続命令を強制的に遅滞なく(次のサイクルの時刻
に)発行する発行命令選択手段とを有する。
A pipeline processing apparatus according to the present invention is a pipeline processing apparatus in which a plurality of arithmetic units share a write port to a register file among the arithmetic units and a replacement path exists, Replacement flag for each input operand, consisting of multiple entries,
An instruction overtaking buffer that holds a ready flag and subsequent reference entry information and an entry valid flag, a destination field, and an L flag in each entry, and various information regarding instructions in the D stage data holding circuit in the instruction overtaking buffer. Entry registration means for registering information indicating the dependency relationship with the entry in the instruction overtaking buffer in which the instruction having the dependency relationship between the instruction of the entry and the operand is registered. A ray test setting means for setting the L flag in the registration entry of the instruction in the instruction overtaking buffer at the time of registering the instruction and resetting the L flag in the registration entry of the preceding instruction for writing the operation result in the same register as the instruction. And the instruction passing Registered in the instruction overtaking buffer, and an operand ready setting means for setting an operand ready flag in an entry in the instruction overtaking buffer for an instruction having a dependency relationship with the issued instruction when the instruction in the instruction overwriting buffer is issued. From the selection of issued instruction candidates from the “instruction group whose input operand is ready”, from the “instruction group that is known to overwrite the operation result by the subsequent instruction” registered in the instruction overtaking buffer Select an issue instruction based on the selection of candidate issue instructions and resource conflict check, and at the time of the selection, issue multiple instructions simultaneously within the range where resource conflict does not occur, If an instruction selected from among the “instructions that are known to overwrite the result” is actually issued, Without forcibly delay the subsequent instruction that references the calculated results and an issued instruction selection means for issuing (the time of the next cycle).

【0014】ここで、上述の本発明のパイプライン処理
装置内の発行命令選択手段は、前記命令追い越しバッフ
ァ内の各エントリ中の設定情報(各入力オペランドに対
するオペランドレディフラグ等)の参照に基づき、入力
オペランドがレディになっている命令群の中から発行命
令の候補となる命令を選択する第1の命令選択手段と、
前記命令追い越しバッファ内の各エントリ中の設定情報
(Lフラグ等)の参照に基づき、後続命令により演算結
果が上書きされることが判明している命令群の中から発
行命令の候補となる命令を選択する第2の命令選択手段
と、前記第1の命令選択手段により選択された命令と前
記第2の命令選択手段により選択された命令とのリソー
ス競合チェックを行い、リソースの競合が発生しない場
合には当該両命令を同時に発行し、リソースの競合が発
生する場合には前記第1の命令選択手段よって選択され
た命令のみを発行し、前記第2の命令発行選択手段によ
り選択された命令を実際に発行した場合には当該命令の
演算結果を参照する後続命令を遅滞なく強制的に発行す
る発行命令調停手段とを備えている。
Here, the issue instruction selecting means in the pipeline processing apparatus of the present invention described above is based on the reference of the setting information (operand ready flag for each input operand) in each entry in the instruction overtaking buffer. First instruction selecting means for selecting an instruction that is a candidate for an issued instruction from an instruction group whose input operand is ready;
Based on the reference of the setting information (L flag etc.) in each entry in the instruction overtaking buffer, an instruction which is a candidate of the issuing instruction is selected from the instruction group in which it is known that the operation result is overwritten by the subsequent instruction. When a resource conflict check is performed between the second instruction selecting unit to be selected, the instruction selected by the first instruction selecting unit and the instruction selected by the second instruction selecting unit, and resource conflict does not occur. Both the instructions are issued at the same time, and if a resource conflict occurs, only the instruction selected by the first instruction selecting means is issued, and the instruction selected by the second instruction issuing selecting means is issued. When it is actually issued, it is provided with an issue instruction arbitration means for forcibly issuing a subsequent instruction referring to the operation result of the instruction without delay .

【0015】さらに、上述の本発明のパイプライン処理
装置内の発行命令選択手段中の発行命令調停手段は、前
記命令追い越しバッファ内の各エントリ中の各入力オペ
ランドに対する後続参照エントリ情報の対応するビット
毎の論理和を生成することにより、当該各エントリに登
録されている命令の演算結果を参照する命令が登録され
ているエントリを示す信号を生成する当該各エントリに
対するORゲートと、前記第2の命令選択手段によって
選択された命令が登録されているエントリに対する前記
ORゲートの出力信号を選択するセレクタと、前記セレ
クタにより選択された「エントリを示す信号」に基づく
情報を格納するエントリ情報レジスタ(図2中のレジス
タB)と、前記第2の命令選択手段により選択された命
令が実際に発行されたことを点灯状態で示す命令発行情
報レジスタ(図2中のレジスタA)と、前記第1の命令
選択手段,前記第2の命令選択手段,前記エントリ情報
レジスタ,および前記命令発行情報レジスタからの情報
に基づいて発行命令の選択を行う発行命令調停回路とを
有する構成にすることができる。
Further, the issue instruction arbitration means in the issue instruction selecting means in the pipeline processing apparatus of the present invention described above has the corresponding bit of the subsequent reference entry information for each input operand in each entry in the instruction overtaking buffer. An OR gate for each entry that generates a signal indicating an entry in which an instruction that refers to the operation result of the instruction registered in that entry is generated by generating a logical sum for each entry; A selector that selects the output signal of the OR gate for the entry in which the instruction selected by the instruction selection means is registered, and an entry information register that stores information based on the "signal indicating the entry" selected by the selector (FIG. The register B) in 2 and the instruction selected by the second instruction selecting means are actually issued. From the first instruction selecting means, the second instruction selecting means, the entry information register, and the instruction issuing information register. An issue instruction arbitration circuit for selecting an issue instruction based on information can be configured.

【0016】[0016]

【発明の実施の形態】次に、本発明について図面を参照
して詳細に説明する。
DESCRIPTION OF THE PREFERRED EMBODIMENTS Next, the present invention will be described in detail with reference to the drawings.

【0017】図1は、本発明の一実施の形態に係るパイ
プライン処理装置の構成を示すブロック図である。本発
明の要点は、パイプライン処理装置の中でも命令追い越
しバッファに関する制御内容にある。したがって図1に
は、主として、命令追い越しバッファ(命令追い越しバ
ッファ10)に関連する構成要素を記載している。な
お、このパイプライン処理装置の全体構成は、図7に示
している。
FIG. 1 is a block diagram showing the configuration of a pipeline processing apparatus according to an embodiment of the present invention. The gist of the present invention lies in the control content relating to the instruction overtaking buffer in the pipeline processing device. Therefore, FIG. 1 mainly shows components related to the instruction overtaking buffer (instruction overtaking buffer 10). The overall configuration of this pipeline processing device is shown in FIG.

【0018】図1を参照すると、本実施の形態に係るパ
イプライン処理装置は、複数(n個。nは2以上の正整
数)のエントリを備える命令追い越しバッファ10と、
エントリ登録手段20と、発行命令選択手段30と、D
ステージデータ保持回路40と、オペランドレディセッ
ト手段50と、レイテスト(Latest)セット手段
60と、Iステージデータ保持回路70とを含んで構成
されている。なお、図1には示されていないが、エント
リ登録手段20,発行命令選択手段30,オペランドレ
ディセット手段50,およびレイテストセット手段60
は、命令追い越しバッファ10内の構成要素を含んでい
る場合がある。また、当該各手段間で同じ構成要素が共
有される場合もある。
Referring to FIG. 1, the pipeline processing apparatus according to the present embodiment includes an instruction overtaking buffer 10 having a plurality of (n, n is a positive integer of 2 or more) entries.
Entry registration means 20, issue instruction selection means 30, D
The stage data holding circuit 40, an operand ready setting means 50, a ray test (latest) setting means 60, and an I stage data holding circuit 70 are included. Although not shown in FIG. 1, the entry registration means 20, the issued instruction selection means 30, the operand ready set means 50, and the late test set means 60.
May include components within the instruction overtaking buffer 10. In addition, the same components may be shared between the respective means.

【0019】図2は、発行命令選択手段30の詳細な構
成(周辺の構成を含む)および動作を説明するための図
である。
FIG. 2 is a diagram for explaining a detailed configuration (including peripheral configuration) and operation of the issue instruction selecting means 30.

【0020】発行命令選択手段30は、ANDゲート3
01,302,304,305,および306と、エク
スクルーシブORゲート303と、組合せ論理回路30
7と、ORゲート308と、命令選択手段A309と、
命令選択手段B310と、セレクタ311と、発行命令
調停回路312と、レジスタA313と、レジスタB3
14とを含んで構成されている。ここで、上記の301
〜308の符号で示される構成要素は、命令追い越しバ
ッファ10内の各エントリに対応して存在する。また、
各エントリ内のORゲート308,セレクタ311,発
行命令調停回路312,レジスタA313,およびレジ
スタB314を含んで、発行命令調停手段が構成されて
いる。
The issuing instruction selecting means 30 is an AND gate 3.
01, 302, 304, 305, and 306, an exclusive OR gate 303, and a combinational logic circuit 30.
7, an OR gate 308, an instruction selecting unit A309,
The instruction selection means B310, the selector 311, the issued instruction arbitration circuit 312, the register A313, and the register B3.
And 14 are included. Here, the above 301
The constituent elements denoted by reference numerals ˜308 exist corresponding to each entry in the instruction overtaking buffer 10. Also,
The issued instruction arbitration means is configured by including the OR gate 308, the selector 311, the issued instruction arbitration circuit 312, the register A 313, and the register B 314 in each entry.

【0021】図3は、レイテストセット手段60の詳細
な構成および動作を説明するための図である。
FIG. 3 is a diagram for explaining the detailed structure and operation of the ray test setting means 60.

【0022】レイテストセット手段60は、コンパレー
タ601と、ANDゲート602とを含んで構成されて
いる。ここで、上記の構成要素は、命令追い越しバッフ
ァ10内の各エントリに対応して存在する。なお、エン
トリ登録手段20の構成要素である新規エントリ管理部
201およびデコーダ202も、レイテストセット手段
60の構成要素に該当する。
The ray test setting means 60 comprises a comparator 601 and an AND gate 602. Here, the above-mentioned constituent elements exist corresponding to each entry in the instruction overtaking buffer 10. The new entry management unit 201 and the decoder 202, which are components of the entry registration unit 20, also correspond to the components of the ray test setting unit 60.

【0023】図4は、オペランドレディセット手段50
の詳細な構成および動作を説明するための図である。
FIG. 4 shows the operand ready set means 50.
3 is a diagram for explaining a detailed configuration and operation of FIG.

【0024】オペランドレディセット手段50は、命令
追い越しバッファ10内の各エントリのYオペランド後
続参照エントリ情報105を選択対象とするセレクタ5
01と、当該各エントリのZオペランド後続参照エント
リ情報106を選択対象とするセレクタ502とを含ん
で構成されている。
The operand ready set means 50 selects the Y operand subsequent reference entry information 105 of each entry in the instruction overtaking buffer 10 as a selection target.
01 and a selector 502 that selects the Z operand subsequent reference entry information 106 of each entry as a selection target.

【0025】図5は、エントリ登録手段20の詳細な構
成および動作を説明するための図である。
FIG. 5 is a diagram for explaining the detailed structure and operation of the entry registration means 20.

【0026】エントリ登録手段20は、新規エントリ管
理部201と、デコーダ202と、命令追い越しバッフ
ァ10内の各エントリに対応して存在するコンパレータ
203およびANDゲート群(ANDゲート213,2
14,および218等)とを含んで構成されている。な
お、図5にはYオペランドに関する構成要素のみを示し
たが、Zオペランドに関しても同様な構成要素(Zオペ
ランド用のコンパレータ等)が存在していることはいう
までもない。
The entry registration means 20 includes a new entry management unit 201, a decoder 202, a comparator 203 and an AND gate group (AND gates 213 and 2) existing corresponding to each entry in the instruction overtaking buffer 10.
14 and 218). Although FIG. 5 shows only the components related to the Y operand, it goes without saying that similar components (such as a comparator for the Z operand) also exist for the Z operand.

【0027】図6は、命令追い越しバッファ10内の各
エントリの構成要素を詳細に示す図である。
FIG. 6 is a diagram showing the components of each entry in the instruction overtaking buffer 10 in detail.

【0028】命令追い越しバッファ10は、各エントリ
に、当該エントリが有効であることを点灯状態で示すエ
ントリバリッドフラグ(図6においては「Vフラグ」で
示す)101と、ディスティネーションフィールド(図
6においては「DESTINATION」で示す)10
2と、Yオペランドレディフラグ(図6においては「Y
−rdy」で示す)103と、Zオペランドレディフラ
グ(図6においては「Z−rdy」で示す)104と、
当該エントリに登録された命令の結果をYオペランド
(第1の入力オペランド)として参照する後続命令が登
録されているエントリ(命令追い越しバッファ10内の
エントリ)を示す情報であるYオペランド後続参照エン
トリ情報(図6においては「Y−op後続参照エントリ
情報」で示す)105と、当該エントリに登録された命
令の結果をZオペランド(第2の入力オペランド)とし
て参照する後続命令が登録されているエントリ(命令追
い越しバッファ10内のエントリ)を示す情報であるZ
オペランド後続参照エントリ情報(図6においては「Z
−op後続参照エントリ情報」で示す)106と、L
(Latest)フラグ130と、Yオペランド差し替
えフラグ(図6においては「Y−差替」で示す)131
と、Zオペランド差し替えフラグ(図6においては「Z
−差替」で示す)132とを保持している。
The instruction overtaking buffer 10 has, for each entry, an entry valid flag (indicated by "V flag" in FIG. 6) 101 indicating that the entry is valid in a lighted state, and a destination field (in FIG. 6). Is indicated by "DESTINATION") 10
2 and the Y operand ready flag (in FIG. 6, "Y
-Rdy ") 103, a Z operand ready flag (indicated by" Z-rdy "in FIG. 6) 104,
Y operand subsequent reference entry information, which is information indicating an entry (entry in the instruction overtaking buffer 10) in which a subsequent instruction that refers to the result of the instruction registered in the entry as the Y operand (first input operand) is registered (Indicated by “Y-op subsequent reference entry information” in FIG. 6) 105 and an entry in which a subsequent instruction that refers to the result of the instruction registered in the entry as the Z operand (second input operand) is registered Z, which is information indicating (entry in the instruction overtaking buffer 10)
Operand subsequent reference entry information ("Z
-Op subsequent reference entry information ") 106, and L
(Latest) flag 130 and Y operand replacement flag (shown as “Y-replacement” in FIG. 6) 131
And the Z operand replacement flag (“Z
-Replacement) 132).

【0029】ここで、Yオペランド差し替えフラグ13
1およびZオペランド差し替えフラグ132は、それぞ
れYオペランドレディフラグ103およびZオペランド
レディフラグ104のセット信号を1サイクル間のみ保
持する。ある命令に対応するエントリ中のYオペランド
差し替えフラグ131またはZオペランド差し替えフラ
グ132が点灯しているタイミングで当該命令の発行が
選択された場合には、当該命令の入力オペランドはレジ
スタファイルからの読み出しデータとして供給されるの
ではなく差し替えパスを利用して供給される(供給され
るデータは先行命令の演算結果である)ことを意味して
いる。
Here, the Y operand replacement flag 13
The 1 and Z operand replacement flags 132 hold the set signals of the Y operand ready flag 103 and the Z operand ready flag 104, respectively, for only one cycle. When issuance of the instruction is selected at the timing when the Y operand replacement flag 131 or the Z operand replacement flag 132 in the entry corresponding to the instruction is lit, the input operand of the instruction is the read data from the register file. It means that the data is supplied not by using the replacement path but by using the replacement path (the supplied data is the operation result of the preceding instruction).

【0030】図7は、先に述べたように、本実施の形態
に係るパイプライン処理装置の全体構成を示すブロック
図である。ただし、図1に示すエントリ登録手段20,
発行命令選択手段30,オペランドレディセット手段5
0,レイテストセット手段60,および本パイプライン
処理装置を統合的に管理するパイプライン管理ブロック
については、図全体が繁雑となるので図7には記載して
いない。また、本発明のパイプライン処理装置における
データパス構造は図7に示すものに限定されず、例えば
以下のaおよびbに示すようなデータパス構造も考えら
れる。 a.レジスタファイルが複数のライトポートを持ち、第
1のライトポートが第1の演算器と第2の演算器とで共
用(共有)され、第2のライトポートが第3の演算器と
第4の演算器とで共用され、以下、他の各ライトポート
が他の演算器群で共用されるというデータパス構造 b.レジスタファイルが複数のライトポートを持ち、第
1のライトポートが第1の演算器と第2の演算器とで共
用され、第2のライトポートが第2の演算器と第3の演
算器とで共用され、以下、他の各ライトポートが演算器
群で共用されるというデータパス構造
FIG. 7 is a block diagram showing the overall configuration of the pipeline processing device according to the present embodiment, as described above. However, the entry registration means 20 shown in FIG.
Issuing instruction selecting means 30 and operand ready setting means 5
0, the ray test setting means 60, and the pipeline management block for integrally managing the pipeline processing device are not shown in FIG. 7 because the entire diagram becomes complicated. Further, the data path structure in the pipeline processing device of the present invention is not limited to that shown in FIG. 7, and data path structures as shown in the following a and b are also conceivable. a. The register file has a plurality of write ports, the first write port is shared (shared) between the first computing unit and the second computing unit, and the second write port is shared by the third computing unit and the fourth computing unit. A data path structure that is shared with an arithmetic unit, and each other write port is shared with another arithmetic unit group hereinafter. B. The register file has a plurality of write ports, the first write port is shared by the first arithmetic unit and the second arithmetic unit, and the second write port is the second arithmetic unit and the third arithmetic unit. Data path structure in which each other write port is shared by the operation unit group.

【0031】ここで、図7に示すパイプライン処理装置
(すなわち、図1に示す本実施の形態に係るパイプライ
ン処理装置)の全体像について簡単な説明を行う。
Here, a brief description will be given of the overall image of the pipeline processing apparatus shown in FIG. 7 (that is, the pipeline processing apparatus according to the present embodiment shown in FIG. 1).

【0032】命令バッファから読み出された命令は、い
ったんDステージデータ保持回路40に保持され、その
後命令追い越しバッファ10に登録される。
The instruction read from the instruction buffer is once held in the D stage data holding circuit 40 and then registered in the instruction overtaking buffer 10.

【0033】命令追い越しバッファ10に登録された命
令は、実行条件の整ったものから、その実行が開始され
る。このとき、実行条件の整っていない命令は、後続命
令に追い越されることもある。
The execution of the instruction registered in the instruction overtaking buffer 10 is started when the execution condition is satisfied. At this time, an instruction whose execution condition is not satisfied may be overtaken by a subsequent instruction.

【0034】また、命令追い越しバッファ10からの命
令の削除は、該当する命令の実行が開始されたときに行
われる。
The deletion of the instruction from the instruction overtaking buffer 10 is performed when the execution of the corresponding instruction is started.

【0035】実行が開始された命令は、Iステージデー
タ保持回路70に送られ、さらにIステージデータ保持
回路70によって示されるレジスタファイルのエントリ
の内容が読み出されて、その読み出しに基づいてXステ
ージデ ータ保持回路に送られる。
The instruction whose execution has started is sent to the I stage data holding circuit 70, the contents of the entry of the register file indicated by the I stage data holding circuit 70 are read out, and the X stage is read based on the read out. It is sent to the data holding circuit.

【0036】Xステージの命令は演算命令であれば演算
器(図7中の演算器FIXまたは演算器LOG)に投入
され、ロード命令等のメモリアクセス系の命令であれば
アドレス加算器に投入される。ここで、図7中の「演算
器FIX」は固定小数点(Fixed Point)演
算用の算術演算器を意味しており、「演算器LOG」は
論理演算用の演算器を意味している。なお、本発明のパ
イプライン処理装置における演算器群の内容が図7に示
すものに限定されないことはいうまでもない(例えば、
通常のプロセッサでは、算術演算用の演算器は固定小数
点加算系/浮動小数点加算系/乗算系/除算系等に分割
して実装される)。
If the instruction of the X stage is an operation instruction, it is input to the operation unit (operation unit FIX or operation unit LOG in FIG. 7), and if it is a memory access type instruction such as a load instruction, it is input to the address adder. It Here, “arithmetic unit FIX” in FIG. 7 means an arithmetic arithmetic unit for fixed point arithmetic, and “arithmetic unit LOG” means an arithmetic unit for logical operation. Needless to say, the contents of the arithmetic unit group in the pipeline processing device of the present invention are not limited to those shown in FIG. 7 (for example,
In a normal processor, an arithmetic unit for arithmetic operation is implemented by being divided into a fixed point addition system / floating point addition system / multiplication system / division system, etc.).

【0037】さらに、Xステージの命令がロード命令等
のメモリアクセス系の命令であればキャッシュメモリの
読み出しデータがレジスタファイルに書き込まれ、演算
命令であれば演算器の演算結果がレジスタファイルに書
き込まれる。
Further, if the X stage instruction is a memory access type instruction such as a load instruction, the read data of the cache memory is written in the register file, and if it is an arithmetic instruction, the operation result of the arithmetic unit is written in the register file. .

【0038】本実施の形態に係るパイプライン処理装置
では、キャッシュメモリの読み出しデータや演算器の演
算結果はレジスタファイルに書き込まれるだけではな
く、Xステージデータ保持回路やアドレス加算器や演算
器の入力に直接投入される。この直接投入のためのパス
として、差し替えパス(データ差し替えパス)が備えら
れている。この差し替えパスにより、本パイプライン処
理装置は、先行命令の演算結果を参照する後続命令への
データの受け渡しに要するサイクル数を短縮し、性能向
上を図っている。
In the pipeline processing apparatus according to the present embodiment, not only the read data of the cache memory and the operation result of the arithmetic unit are written in the register file, but also the input of the X stage data holding circuit, the address adder and the arithmetic unit. Directly into the. As a path for this direct input, a replacement path (data replacement path) is provided. By this replacement path, the pipeline processing device shortens the number of cycles required to transfer data to the subsequent instruction that refers to the operation result of the preceding instruction, thereby improving the performance.

【0039】例えば、後に言及する図9の命令列では、
ADD命令の演算結果S7を後続のSUB命令がYオペ
ランドとして参照している。演算器TAT(Turn
Around Time)を1サイクル(T)とする
と、SUB命令はADD命令の1サイクル後れで発行す
ることができる。先行ADD命令がWステージに到達す
るとき、後続SUB命令はXステージ上に存在する。W
ステージ上の先行ADD命令の結果を演算器に直接投入
することで、後続SUB命令は先行ADD命令の演算結
果がレジスタファイルに書き込まれるのを待たずに実行
を開始することができる。
For example, in the instruction sequence of FIG. 9 referred to later,
The subsequent SUB instruction refers to the operation result S7 of the ADD instruction as the Y operand. Operation unit TAT (Turn
If the Around Time) is one cycle (T), the SUB instruction can be issued one cycle later than the ADD instruction. When the preceding ADD instruction reaches the W stage, the succeeding SUB instruction is on the X stage. W
By directly inputting the result of the preceding ADD instruction on the stage to the arithmetic unit, the succeeding SUB instruction can start execution without waiting for the operation result of the preceding ADD instruction to be written in the register file.

【0040】なお、図7においては、上記の「差し替え
パス」は、以下のa〜cのパスが該当する。 a.演算器FIXおよび演算器LOGの出力側のデータ
保持回路から演算器FIXおよび演算器LOGの入力側
のセレクタに至るパス b.演算器FIXおよび演算器LOGの出力側のデータ
保持回路から2入力セレクタを経由してXステージデー
タ保持回路に至るパス c.キャッシュメモリの出力側のデータ保持回路からX
ステージデータ保持回路に至るパス
In FIG. 7, the following "a" to "c" correspond to the above "replacement path". a. Path from the data holding circuit on the output side of the arithmetic unit FIX and the arithmetic unit LOG to the selector on the input side of the arithmetic unit FIX and the arithmetic unit LOG b. Path from the data holding circuit on the output side of the arithmetic unit FIX and the arithmetic unit LOG to the X stage data holding circuit via the 2-input selector c. X from the data holding circuit on the output side of the cache memory
Path to stage data holding circuit

【0041】図8は、本実施の形態に係るパイプライン
処理装置で取り扱われる命令のフォーマットを示す図で
ある。
FIG. 8 is a diagram showing a format of an instruction handled by the pipeline processing device according to the present embodiment.

【0042】この命令は、命令コードを示すOPフィー
ルドと、Xオペランド(演算結果の格納先のオペラン
ド)を示すXフィールドと、Yオペランド(演算の第1
の入力オペランド)を示すYフィールドと、Zオペラン
ド(演算の第2の入力オペランド)を示すZフィールド
とからなる。
This instruction has an OP field indicating an instruction code, an X field indicating an X operand (operand of a storage destination of an operation result), and a Y operand (first operation
Input operand) and a Z field indicating the Z operand (second input operand of the operation).

【0043】図9および図10は、本実施の形態に係る
パイプライン処理装置の具体的な動作を説明するための
図である。すなわち、図9は命令列の具体例を示す図で
あり、図10は図9の命令列に対応するタイムチャート
を示す図である。
9 and 10 are diagrams for explaining a specific operation of the pipeline processing device according to the present embodiment. That is, FIG. 9 is a diagram showing a specific example of the instruction sequence, and FIG. 10 is a diagram showing a time chart corresponding to the instruction sequence of FIG.

【0044】次に、上述のように構成された本実施の形
態に係るパイプライン処理装置の動作(命令追い越しバ
ッファ10の制御に関する動作を中心とした動作)につ
いて詳細に説明する。なお、命令追い越しバッファ10
内のエントリに「命令に関する各種の情報を登録する」
ことを、単に「命令を登録する」と表現する場合があ
る。
Next, the operation of the pipeline processing apparatus according to the present embodiment configured as described above (the operation centering on the operation relating to the control of the instruction overtaking buffer 10) will be described in detail. The instruction overtaking buffer 10
"Register various information about the instruction" in the entry in
This may be simply expressed as “registering an instruction”.

【0045】以下では、適宜、図9に示す命令列を例に
とり、本実施の形態に係るパイプライン処理装置の具体
的な動作を説明する。
In the following, a specific operation of the pipeline processing apparatus according to the present embodiment will be described by appropriately using the instruction sequence shown in FIG. 9 as an example.

【0046】図9の命令列において、命令2(SUB命
令)のYオペランドは命令1(ADD命令)の演算結果
を参照している。命令1は命令追い越しバッファ10の
エントリ#3に登録され、命令2は命令追い越しバッフ
ァ10のエントリ#8に登録されるものとする。また、
命令1のADDおよび命令2のSUBは、ともに、その
演算TATが1サイクル(T)であるものとする。
In the instruction string of FIG. 9, the Y operand of the instruction 2 (SUB instruction) refers to the operation result of the instruction 1 (ADD instruction). It is assumed that the instruction 1 is registered in the entry # 3 of the instruction overtaking buffer 10 and the instruction 2 is registered in the entry # 8 of the instruction overtaking buffer 10. Also,
Both the ADD of the instruction 1 and the SUB of the instruction 2 have the operation TAT of one cycle (T).

【0047】(1) 命令追い越しバッファ10への命
令登録時の動作 第1に、命令追い越しバッファ10への命令登録時の動
作について、図3,図5,図6,図9,および図10を
参照して説明する。
(1) Operation at the time of registering an instruction in the instruction overtaking buffer 10 First, FIG. 3, FIG. 5, FIG. 6, FIG. 9, and FIG. It will be described with reference to FIG.

【0048】(1−1) 命令登録時の全般的な動作 エントリ登録手段20は、Dステージデータ保持回路4
0内の命令(図8に示すフォーマットの命令)に関する
各種情報を命令追い越しバッファ10内の所定のエント
リに登録する(Lフラグ130のセットについてはレイ
テストセット手段60により行われる)。
(1-1) General operation at the time of instruction registration The entry registration means 20 is the D stage data holding circuit 4
Various information relating to the instruction in 0 (instruction of the format shown in FIG. 8) is registered in a predetermined entry in the instruction overtaking buffer 10 (setting of the L flag 130 is performed by the ray test setting means 60).

【0049】また、この登録時に、エントリ登録手段2
0は、先に他のエントリに登録されている命令との間の
オペランドに関する依存関係を示すために、当該他のエ
ントリ中のYオペランド後続参照エントリ情報105お
よびZオペランド後続参照エントリ情報106に当該依
存関係を示す情報を設定する。なお、この動作について
は、後述の(1−2)で詳述する。
At the time of this registration, the entry registration means 2
0 indicates that the Y-operand subsequent reference entry information 105 and the Z-operand subsequent reference entry information 106 in the other entry are related to each other in order to indicate the dependency relationship regarding the operand with the instruction previously registered in the other entry. Set the information that indicates the dependency relationship. Note that this operation will be described in detail later in (1-2).

【0050】さらに、この登録時に、レイテストセット
手段60は、登録対象の命令のエントリ中のLフラグ1
30のセットと、必要な場合には先に他のエントリに登
録されている命令に関するLフラグ130のリセットと
を行う。なお、このリセット動作については、後述の
(1−3)で詳述する。
Further, at the time of this registration, the ray test setting means 60 sets the L flag 1 in the entry of the instruction to be registered.
30 is set and, if necessary, the L flag 130 related to the instruction previously registered in another entry is reset. The reset operation will be described in detail later in (1-3).

【0051】例えば、図9および図10に示す命令に関
しては、以下のように命令追い越しバッファ10への登
録が行われる。
For example, the instructions shown in FIGS. 9 and 10 are registered in the instruction overtaking buffer 10 as follows.

【0052】命令1(ADD命令)は、図10中の時刻
T0でフェッチ(fetch)され、時刻T1でDステ
ージを通過して、時刻T2で命令追い越しバッファ10
のエントリ#3に登録されるものとする。なお、図10
のタイムチャート中の「R3」という表記は、命令1が
命令追い越しバッファ10のエントリ#3に登録されて
いることを示している。
The instruction 1 (ADD instruction) is fetched at time T0 in FIG. 10, passes through the D stage at time T1, and passes the instruction overtaking buffer 10 at time T2.
Entry # 3 of the above. Note that FIG.
The notation “R3” in the time chart indicates that the instruction 1 is registered in the entry # 3 of the instruction overtaking buffer 10.

【0053】上記のような命令1の登録時には、新規登
録エントリ管理部201は、デコーダ202を介して、
エントリ#3への命令1の登録を指示する。この指示に
基づき、命令追い越しバッファ10内のエントリ#3に
対して、Dステージデータ保持回路40のXオペランド
データがディスティネーションフィールド102に登録
されるとともに、エントリバリッドフラグ101がセッ
トされる。なお、以上の処理が、エントリ登録手段20
の処理に該当する。
At the time of registering the instruction 1 as described above, the new registration entry management unit 201, via the decoder 202,
Instruct to register instruction 1 in entry # 3. Based on this instruction, the X operand data of the D stage data holding circuit 40 is registered in the destination field 102 and the entry valid flag 101 is set for the entry # 3 in the instruction overtaking buffer 10. The above processing is performed by the entry registration means 20.
Corresponds to the processing of.

【0054】また、上記の新規登録エントリ管理部20
1の指示に基づいて、エントリ#3のLフラグ130が
セットされる。この処理は、レイテストセット手段60
の処理に該当する。ここで、あるエントリのLフラグ1
30が「点灯(セット)状態」であるということは、
「当該エントリに登録された命令が当該エントリ中のデ
ィスティネーションフィールド102で示されるレジス
タファイルのエントリを更新する最新(最後)の命令で
あること」を示すものである。すなわち、命令1に対す
る上記のようなLフラグ130のセットによって、時刻
T2においては、命令1と同一のレジスタ(命令1の演
算結果が格納されるレジスタファイル中のエントリ)を
更新する命令追い越しバッファ10内の命令群の中で、
命令1が命令シーケンスの上で最後に当該レジスタを更
新する命令であることが示されることになる。
Further, the newly registered entry management unit 20 described above
Based on the instruction of 1, the L flag 130 of entry # 3 is set. This process is performed by the ray test setting means 60.
Corresponds to the processing of. Here, L flag 1 of an entry
The fact that 30 is in the "lit (set) state" means
It indicates that the instruction registered in the entry is the latest (last) instruction for updating the entry of the register file indicated by the destination field 102 in the entry. That is, by setting the above L flag 130 for the instruction 1, at the time T2, the instruction overtaking buffer 10 that updates the same register as the instruction 1 (the entry in the register file in which the operation result of the instruction 1 is stored) is updated. Within the command group in
It will be shown that the instruction 1 is the last instruction to update the register in the instruction sequence.

【0055】命令2(SUB命令)は、命令1(ADD
命令)よりも1サイクル遅れて、時刻T1でフェッチさ
れ、時刻T2でDステージに到達し、時刻T3で命令追
い越しバッファ10のエントリ#8に登録されるものと
する。なお、図10のタイムチャート中の「R8」とい
う表記は、命令2が命令追い越しバッファ10のエント
リ#8に登録されていることを示している。
Instruction 2 (SUB instruction) is the same as instruction 1 (ADD
Instruction), one cycle later, fetched at time T1, reaches the D stage at time T2, and is registered in entry # 8 of the instruction overtaking buffer 10 at time T3. The notation “R8” in the time chart of FIG. 10 indicates that the instruction 2 is registered in the entry # 8 of the instruction overtaking buffer 10.

【0056】上記のような命令2の登録時には、時刻T
2において、新規登録エントリ管理部201は、デコー
ダ202を介して、命令追い越しバッファ10内のエン
トリ#8への命令2の登録を指示する。この指示に基づ
き、Dステージデータ保持回路40のXオペランドデー
タがエントリ#8のディスティネーションフィールド1
02に登録されるとともに、エントリ#8のエントリバ
リッドフラグ101がセットされる。なお、以上の処理
が、エントリ登録手段20の処理に該当する。
At the time of registering the instruction 2 as described above, the time T
In 2, the new registration entry management unit 201 gives an instruction to register the instruction 2 in the entry # 8 in the instruction overtaking buffer 10 via the decoder 202. Based on this instruction, the X operand data of the D stage data holding circuit 40 is the destination field 1 of the entry # 8.
02, and the entry valid flag 101 of entry # 8 is set. The above processing corresponds to the processing of the entry registration means 20.

【0057】さらに、エントリ登録手段20の処理(後
述する(1−2)の処理)により、命令1と命令2との
オペランドの依存関係を示すために、エントリ#3内の
Yオペランド後続参照エントリ情報105中のエントリ
#8に対応するビットがセットされる。
Further, by the processing of the entry registration means 20 (processing of (1-2) described later), the Y operand subsequent reference entry in the entry # 3 is shown in order to show the dependency relationship between the operands of the instruction 1 and the instruction 2. The bit corresponding to entry # 8 in information 105 is set.

【0058】また、上記の新規登録エントリ管理部20
1の指示に基づいて、エントリ#8のLフラグ130が
セットされる。この処理は、レイテストセット手段60
の処理に該当する。
The newly registered entry management unit 20 described above
Based on the instruction of 1, the L flag 130 of the entry # 8 is set. This process is performed by the ray test setting means 60.
Corresponds to the processing of.

【0059】[0059]

【0060】(1−2) 命令間の依存関係を示す情報
の設定のためのエントリ登録手段20による動作 ここで、図5を参照して、命令2の登録時における命令
1と命令2との間のオペランドの依存関係を示す情報
(ここでは、命令2に対するYオペランド後続参照エン
トリ情報105)の設定に関する動作について説明す
る。
(1-2) Operation by the entry registration means 20 for setting the information indicating the dependency relation between instructions Here, referring to FIG. 5, the instruction 1 and the instruction 2 at the time of registration of the instruction 2 are described. The operation related to the setting of the information (here, the Y operand subsequent reference entry information 105 for the instruction 2) indicating the inter-operand dependency relationship will be described.

【0061】命令追い越しバッファ10内の各エントリ
に対応する各コンパレータ203(エントリ登録手段2
0の構成要素の1つ)は、Dステージデータ保持回路4
0の命令中のYオペランドデータと、当該各エントリの
ディスティネーションフィールド102の内容とを比較
し、両者が同一であればTRUEを出力する。
Each comparator 203 (entry registering means 2) corresponding to each entry in the instruction overtaking buffer 10
0) is a D stage data holding circuit 4
The Y operand data in the instruction of 0 is compared with the contents of the destination field 102 of each entry, and if both are the same, TRUE is output.

【0062】図10中の時刻T2においては、エントリ
#3のディスティネーションフィールド102にS7が
登録されているので、このディスティネーションフィー
ルド102の内容(S7)とDステージデータ保持回路
40のYオペランドデータのS7との比較で、エントリ
#3のコンパレータ203の出力がTRUEになる。
At time T2 in FIG. 10, since S7 is registered in the destination field 102 of entry # 3, the contents of this destination field 102 (S7) and the Y operand data of the D stage data holding circuit 40 are stored. In comparison with S7, the output of the comparator 203 of entry # 3 becomes TRUE.

【0063】また、時刻T2においては、命令2の登録
エントリとして、新規登録エントリ管理部21によりエ
ントリ#8が指示されており、エントリ#8のディステ
ィネーションフィールド102の入力信号がTRUEに
なっている。
At time T2, the entry # 8 is instructed by the new registration entry management unit 21 as the registration entry of the instruction 2, and the input signal of the destination field 102 of the entry # 8 is TRUE. .

【0064】エントリ#3のANDゲート218は、エ
ントリ#3のコンパレータ203の出力信号と、エント
リ#8中のディスティネーションフィールド102の入
力信号とを入力しており、これら両信号の論理積である
TRUEを出力信号として出力する。
The AND gate 218 of the entry # 3 inputs the output signal of the comparator 203 of the entry # 3 and the input signal of the destination field 102 of the entry # 8, and is the logical product of these two signals. TRUE is output as an output signal.

【0065】時刻T3において、命令2のエントリ#8
への登録と同時に、上記のエントリ#3のANDゲート
218の出力により、エントリ#3内のYオペランド後
続参照エントリ情報105のエントリ#8に対応するビ
ットがセットされる。
At time T3, entry # 8 of instruction 2
At the same time as the registration to the entry # 3, the output of the AND gate 218 of the above entry # 3 sets the bit corresponding to the entry # 8 of the Y operand subsequent reference entry information 105 in the entry # 3.

【0066】以上により、命令2の命令追い越しバッフ
ァ10への登録と同時に、命令1と命令2との間の依存
関係が検出され、検出された両者の依存関係が命令1の
エントリ(エントリ#3)中のYオペランド後続参照エ
ントリ情報105に登録されることになる。
As described above, at the same time that the instruction 2 is registered in the instruction overtaking buffer 10, the dependency relationship between the instruction 1 and the instruction 2 is detected, and the detected dependency relationship between them is the entry of the instruction 1 (entry # 3). ) In the Y operand is registered in the subsequent reference entry information 105.

【0067】(1−3) レイテストセット手段60に
よるLフラグ130のリセット動作 次に、図3を参照して、命令登録時におけるレイテスト
セット手段60によるLフラグ130のリセットに関す
る動作について説明する。
(1-3) Operation of Resetting the L Flag 130 by the Ray Test Setting Means 60 Next, referring to FIG. 3, the operation of resetting the L flag 130 by the ray test setting means 60 at the time of registering an instruction will be described. .

【0068】あるエントリ中のLフラグ130は、前述
のように、「当該エントリに登録された命令が当該エン
トリ中のディスティネーションフィールド102で示さ
れるレジスタファイルのエントリを更新する最新(最
後)の命令であること」を「点灯(セット)状態」で示
すフラグである。
As described above, the L flag 130 in a given entry is "the latest (last) instruction for which the instruction registered in the entry updates the entry in the register file indicated by the destination field 102 in the entry. Is a "lit (set) state".

【0069】新規にデコードされて命令追い越しバッフ
ァ10に登録される命令がある場合に、すでに命令追い
越しバッファ10に登録されている先行命令のエントリ
中のディスティネーションフィールド102の内容と後
続命令のXフィールドの内容とが一致するとき、当該先
行命令の演算結果を登録するレジスタファイルのエント
リは後続命令によって上書きされることを意味する。こ
のようなときには、当該先行命令のエントリのLフラグ
130をリセットしておき、後述する発行命令の選択の
際に、当該上書きの態様を認識することができるように
しておく。
When there is an instruction newly decoded and registered in the instruction overtaking buffer 10, the contents of the destination field 102 in the entry of the preceding instruction already registered in the instruction overtaking buffer 10 and the X field of the subsequent instruction Means that the entry of the register file that registers the operation result of the preceding instruction is overwritten by the subsequent instruction. In such a case, the L flag 130 of the entry of the preceding instruction is reset so that the mode of overwriting can be recognized when selecting an issuing instruction to be described later.

【0070】以上のようなLフラグ130のリセットを
実現するために、レイテストセット手段60は、Dステ
ージデータ保持回路40の命令中のXオペランドデータ
と命令追い越しバッファ10内の各エントリのディステ
ィネーションフィールド102の内容とを、当該各エン
トリに対する各コンパレータ601により比較する。そ
して、その比較結果と当該各エントリ中のエントリバリ
ッドフラグ101との論理積を当該各エントリのAND
ゲート602で生成して、当該各ANDゲート602の
出力信号を当該各エントリ中のLフラグ130へのリセ
ット信号(ANDゲート602の出力がTRUEである
場合にLフラグ130のリセットを指示する信号。図3
中の「R」参照)とする。
In order to realize the reset of the L flag 130 as described above, the ray test setting means 60 sets the destination of each entry in the instruction overtaking buffer 10 and the X operand data in the instruction of the D stage data holding circuit 40. The contents of the field 102 are compared with each comparator 601 for each entry. Then, the logical product of the comparison result and the entry valid flag 101 in each entry is ANDed with each entry.
A reset signal that is generated by the gate 602 and that outputs the output signal of each AND gate 602 to the L flag 130 in each entry (a signal that instructs the reset of the L flag 130 when the output of the AND gate 602 is TRUE). Figure 3
Refer to "R").

【0071】[0071]

【0072】(2) 命令発行時の動作 第2に、命令追い越しバッファ10に登録された命令の
発行時の動作について、図2,図4,図9,および図1
0を参照して説明する。
(2) Operation at the time of issuing an instruction Second, the operation at the time of issuing an instruction registered in the instruction overtaking buffer 10 will be described with reference to FIGS.
This will be described with reference to 0.

【0073】(2−1) オペランドレディセット手段
50の動作 まず、ある命令の発行時におけるオペランドレディセッ
ト手段50の動作について説明する。ここでは、命令1
の発行時における命令2のYオペランドレディフラグ1
03のセットの際における動作について、図4を参照し
て説明する。
(2-1) Operation of Operand Ready Set Means 50 First, the operation of the operand ready set means 50 when a certain instruction is issued will be described. Here, instruction 1
Y operand ready flag 1 of instruction 2 when issuing
The operation at the time of setting 03 will be described with reference to FIG.

【0074】図10中の時刻T7において、後述するよ
うな発行命令選択手段30の制御により、命令1が発行
命令として選択されると、図4に示すように発行エント
リ選択信号でエントリ#3(命令1の登録エントリ)が
指示される。
At the time T7 in FIG. 10, when the instruction 1 is selected as the issue instruction by the control of the issue instruction selecting means 30 which will be described later, as shown in FIG. The registration entry of instruction 1) is designated.

【0075】オペランドレディセット手段50の構成要
素であるセレクタ501は、命令追い越しバッファ10
内の各エントリのYオペランド後続参照エントリ情報1
05の内容を入力している。ここで、時刻T7において
は、セレクタ501は、発行エントリ選択信号がエント
リ#3を示しているので、エントリ#3のYオペランド
後続参照エントリ情報105を出力として選択する。
The selector 501, which is a constituent element of the operand ready setting means 50, has the instruction overtaking buffer 10.
Information of the Y operand subsequent reference entry of each entry in the
The contents of 05 are entered. At time T7, the selector 501 selects the Y operand subsequent reference entry information 105 of the entry # 3 as an output because the issue entry selection signal indicates the entry # 3.

【0076】各エントリ中のYオペランド後続参照エン
トリ情報105の各ビットは、前述のように、自エント
リの登録命令の演算結果を参照する後続命令が登録され
ているエントリに対応している。したがって、セレクタ
501は、自己の出力の各ビットを、命令追い越しバッ
ファ10内の対応する各エントリのYオペランドレディ
フラグ103のセット信号とする。
As described above, each bit of the Y operand subsequent reference entry information 105 in each entry corresponds to the entry in which the subsequent instruction that refers to the operation result of the registration instruction of its own entry is registered. Therefore, the selector 501 sets each bit of its own output as a set signal of the Y operand ready flag 103 of each corresponding entry in the instruction overtaking buffer 10.

【0077】時刻T7においてセレクタ501の出力信
号中の「エントリ#8に対応するビット」がTRUEと
なるので、時刻T8でエントリ#8のYオペランドレデ
ィフラグ103が点灯(セット)状態になる。これによ
り、後述するように、時刻T8でエントリ#8の登録命
令である命令2を発行命令の候補として選択することが
可能となる。
At time T7, the "bit corresponding to entry # 8" in the output signal of selector 501 becomes TRUE, so that Y operand ready flag 103 of entry # 8 is turned on (set) at time T8. As a result, as will be described later, it becomes possible to select the instruction 2 which is the registration instruction of the entry # 8 as a candidate of the issuing instruction at time T8.

【0078】(2−2) 発行命令選択手段30の動作 次に、図2を参照して、発行命令選択手段30の動作に
ついて説明する。この発行命令選択手段30の動作が、
本実施の形態、ひいては本発明の中心的な動作に該当す
る。
(2-2) Operation of Issued Instruction Selection Means 30 Next, the operation of the issued instruction selection means 30 will be described with reference to FIG. The operation of the issuing instruction selecting means 30 is
This embodiment corresponds to the central operation of the present invention and eventually the present invention.

【0079】命令選択手段A309は、以下のように、
発行命令の候補となる命令を選択する。なお、この選択
は、従来技術による発行命令の選択と同様のものであ
る。
The instruction selecting means A309 is as follows.
Select an instruction that is a candidate for an issue instruction. Note that this selection is similar to the selection of the issuing instruction according to the conventional technique.

【0080】命令追い越しバッファ10内の各エントリ
に対応するANDゲート302は、当該各エントリのエ
ントリバリッドフラグ101,Yオペランドレディフラ
グ103,およびZオペランドレディフラグ104の論
理積を生成し出力する。各エントリのANDゲート30
2の出力がTRUEであることは、当該各エントリに対
する命令の発行条件が整い、当該命令が発行選択の対象
(発行命令の候補)になりうることを示している。
The AND gate 302 corresponding to each entry in the instruction overtaking buffer 10 generates and outputs a logical product of the entry valid flag 101, the Y operand ready flag 103, and the Z operand ready flag 104 of each entry. AND gate 30 for each entry
The output of 2 is TRUE, which means that the issue condition of the instruction for each entry is satisfied, and the instruction can be a target of issue selection (candidate of issue instruction).

【0081】命令選択手段A309は、上記の各エント
リのANDゲート302の出力を入力し、発行条件の整
った命令の中から1つの命令を発行命令の候補として選
択する。この選択の態様(基準)としては、命令追い越
しバッファ10への登録順に基づく選択や、命令追い越
しバッファ10内のエントリ順に基づく選択等が考えら
れる。
The instruction selecting means A309 inputs the output of the AND gate 302 of each of the above-mentioned entries and selects one instruction from the instructions satisfying the issuing conditions as a candidate for the issuing instruction. As a mode (criterion) of this selection, selection based on the order of registration in the instruction overtaking buffer 10, selection based on the order of entries in the instruction overtaking buffer 10, and the like can be considered.

【0082】一方、命令選択手段B310は、以下のよ
うに、発行命令の候補となる命令を選択する。なお、こ
の選択は、本発明に特有のものである。
On the other hand, the instruction selecting means B310 selects an instruction which is a candidate for an issuing instruction as follows. Note that this choice is unique to the present invention.

【0083】命令選択手段B310によって選択されう
る命令は、当該命令に対するエントリにおいて、次のa
〜eに示す条件を満たすものである。
The instruction that can be selected by the instruction selecting means B310 is the next a in the entry for the instruction.
To satisfy the conditions shown in e.

【0084】a.Yオペランドレディフラグ103およ
びZオペランドレディフラグ104が両方とも点灯して
いること。この条件は、ANDゲート304によってチ
ェックされる。
A. Both the Y operand ready flag 103 and the Z operand ready flag 104 are lit. This condition is checked by AND gate 304.

【0085】b.Yオペランド差し替えフラグ131お
よびZオペランド差し替えフラグ132のいずれか片方
のみが点灯していること。この条件は、エクスクルーシ
ブORゲート303によってチェックされる。
B. Only one of the Y operand replacement flag 131 and the Z operand replacement flag 132 is lit. This condition is checked by the exclusive OR gate 303.

【0086】c.Lフラグ130が点灯していないこ
と。なお、Lフラグ130が点灯していないということ
は、後続命令によりレジスタファイルにおいて上書きが
なされることを示している。この条件は、ANDゲート
301によってチェックされる。
C. The L flag 130 is not lit. It should be noted that the fact that the L flag 130 is not lit indicates that the register file is overwritten by the subsequent instruction. This condition is checked by AND gate 301.

【0087】d.エントリバリッドフラグ101が点灯
していること。この条件も、ANDゲート301によっ
てチェックされる。
D. The entry valid flag 101 is lit. This condition is also checked by the AND gate 301.

【0088】e.Yオペランド後続参照エントリ情報1
05およびZオペランド後続参照エントリ情報106の
うち点灯しているビットが高々1ビットであること。こ
れは、当該エントリの命令の演算結果を参照する命令が
高々1命令しかないことを意味する。この条件は、組合
せ論理回路307によってチェックされる。
E. Y operand subsequent reference entry information 1
05 and Z operand: The turned-on bit of the subsequent reference entry information 106 is at most 1 bit. This means that there is at most one instruction that refers to the operation result of the instruction of the entry. This condition is checked by the combinational logic circuit 307.

【0089】ANDゲート306は、ANDゲート30
1の出力,ANDゲート305の出力(エクスクルーシ
ブORゲート303の出力とANDゲート304の出力
との論理積),および組合せ論理回路307の出力の論
理積を出力する。この出力がTRUEである信号は、上
記のa〜eの条件を満たすことを意味する信号(当該エ
ントリに登録されている命令の発行条件が整っているこ
とを示す信号)である。
The AND gate 306 is the AND gate 30.
The logical product of the output of 1 and the output of the AND gate 305 (the logical product of the output of the exclusive OR gate 303 and the output of the AND gate 304) and the output of the combinational logic circuit 307 is output. The signal whose output is TRUE is a signal indicating that the above conditions a to e are satisfied (a signal indicating that the issuance condition of the instruction registered in the entry is satisfied).

【0090】命令選択手段B310は、上記のような各
エントリのANDゲート306の出力を入力し、発行条
件の整った命令の中から1つの命令を発行命令の候補と
して選択する。この選択の態様(基準)としては、命令
追い越しバッファ10への登録順に基づく選択や、命令
追い越しバッファ10内のエントリ順に基づく選択等が
考えられる。
The instruction selecting means B310 inputs the output of the AND gate 306 of each entry as described above, and selects one instruction from the instructions satisfying the issuing conditions as a candidate for the issuing instruction. As a mode (criterion) of this selection, selection based on the order of registration in the instruction overtaking buffer 10, selection based on the order of entries in the instruction overtaking buffer 10, and the like can be considered.

【0091】また、各エントリに対応するORゲート3
08は、当該各エントリ内のYオペランド後続参照エン
トリ情報105およびZオペランド後続参照エントリ情
報106の対応するビット毎の論理和を生成する。すな
わち、当該各エントリの登録命令の演算結果を参照する
命令が登録されているエントリを示す信号を生成する。
The OR gate 3 corresponding to each entry
08 generates a logical sum for each bit of the Y operand subsequent reference entry information 105 and the Z operand subsequent reference entry information 106 in each entry. That is, a signal indicating the entry in which the instruction that refers to the calculation result of the registration instruction of each entry is registered is generated.

【0092】セレクタ311は、全てのエントリのOR
ゲート308の出力信号を入力し、命令選択手段B31
0によって選択された命令に対するエントリのORゲー
ト308の出力信号を選択してレジスタB314に格納
する。
The selector 311 ORs all entries.
The output signal of the gate 308 is inputted and the instruction selecting means B31
The output signal of the OR gate 308 of the entry corresponding to the instruction selected by 0 is selected and stored in the register B 314.

【0093】発行命令調停回路312は、次のような選
択基準により、命令選択手段A309によって選択され
た命令(発行命令の候補)と、命令選択手段B310に
よって選択された命令(発行命令の候補)と、レジスタ
A313が点灯している場合におけるレジスタB314
によって指示されるエントリに登録されている命令との
調停を行い、これらの命令の中から演算器に実際に発行
する命令を決定して当該命令を発行する。なお、レジス
タA313のセットについては、後述する。
The issued instruction arbitration circuit 312 uses the following selection criteria to select the instruction (issued instruction candidate) selected by the instruction selecting means A309 and the instruction (issued instruction candidate) selected by the instruction selecting means B310. And the register B314 when the register A313 is lit.
Arbitration is performed with the instruction registered in the entry indicated by, the instruction to be actually issued to the arithmetic unit is determined from these instructions, and the instruction is issued. The setting of the register A313 will be described later.

【0094】レジスタA313が点灯している(セット
されている)場合には、レジスタB314によって指示
されるエントリの命令が第1の発行命令として強制的に
発行される。このとき、命令選択手段A309によって
選択された命令はキャンセルされる。命令選択手段B3
10によって選択された命令は、第1の発行命令とリソ
ースの競合を起こさなければ、第2の発行命令として第
1の発行命令と同時に発行される。このとき、レジスタ
A313がセットされる。命令選択手段B310によっ
て選択された命令が第1の発行命令とリソースの競合を
起こす場合には、当該命令(命令選択手段B310によ
って選択された命令)はキャンセルされ発行されない。
このとき、レジスタA313がリセットされる。
When the register A 313 is on (set), the instruction of the entry indicated by the register B 314 is compulsorily issued as the first issuing instruction. At this time, the instruction selected by the instruction selecting unit A309 is canceled. Instruction selection means B3
The instruction selected by 10 is issued at the same time as the first issuance instruction as the second issuance instruction unless resource conflict with the first issuance instruction occurs. At this time, the register A313 is set. When the instruction selected by the instruction selecting unit B310 causes a resource conflict with the first issued instruction, the instruction (instruction selected by the instruction selecting unit B310) is canceled and is not issued.
At this time, the register A313 is reset.

【0095】一方、レジスタA313が点灯していない
場合には、命令選択手段A309によって選択された命
令が第1の発行命令として発行される。命令選択手段B
310によって選択された命令は、第1の発行命令とリ
ソースの競合を起こさなければ、第2の発行命令として
第1の発行命令と同時に発行される。このとき、レジス
タA313がセットされる。命令選択手段B310によ
って選択された命令が第1の発行命令とリソースの競合
を起こす場合には、当該命令(命令選択手段B310に
よって選択された命令)はキャンセルされ発行されな
い。このとき、レジスタA313がリセットされる。
On the other hand, when the register A313 is not lit, the instruction selected by the instruction selecting means A309 is issued as the first issuing instruction. Command selection means B
The instruction selected by 310 is issued at the same time as the first issuance instruction as the second issuance instruction unless resource conflict with the first issuance instruction occurs. At this time, the register A313 is set. When the instruction selected by the instruction selecting unit B310 causes a resource conflict with the first issued instruction, the instruction (instruction selected by the instruction selecting unit B310) is canceled and is not issued. At this time, the register A313 is reset.

【0096】上記の動作において分かるように、レジス
タA313は、命令選択手段B310によって選択され
た命令が実際に発行されたことを「点灯(セット)状
態」で示している。
As can be seen from the above operation, the register A313 indicates that the instruction selected by the instruction selecting means B310 has actually been issued in the "lighting (set) state".

【0097】ここで、命令選択手段B310によって選
択された命令については、その登録エントリ中のLビッ
ト130が点灯していない(リセットされている)こと
に基づいて、レジスタファイルへの演算結果のライトバ
ックが行われない。これは、同タイミングで発行された
第1の発行命令の演算結果の書き戻しのためにレジスタ
ファイルのライトポートが使用されるためである。
Here, for the instruction selected by the instruction selecting means B310, the operation result is written to the register file based on the fact that the L bit 130 in the registered entry is not lit (reset). Back is not done. This is because the write port of the register file is used to write back the operation result of the first issue instruction issued at the same timing.

【0098】したがって、命令選択手段B310によっ
て選択された命令が第2の発行命令として実際に発行さ
れた場合には、第2の発行命令の演算結果を参照する後
続命令は、第2の発行命令の演算結果が入力オペランド
として差し替えパスを使用して供給されつつ、第2の発
行命令の1サイクル遅れで必ず発行されることになる。
このような発行が行われるのは、第2の発行命令(命令
選択手段B310によって選択された命令)の演算結果
がレジスタファイルに書き込まれないので、このような
発行をしないと二度と後続命令が入力オペランドを得る
ことができなくなってしまうからである。
Therefore, when the instruction selected by the instruction selecting means B310 is actually issued as the second issuance instruction, the subsequent instruction which refers to the operation result of the second issuance instruction is the second issuance instruction. The operation result of is supplied as an input operand using the replacement path, and is always issued with a delay of one cycle of the second issuing instruction.
Such issuance is performed because the operation result of the second issuance instruction (instruction selected by the instruction selecting means B310) is not written in the register file, so that if such issuance is not performed, the subsequent instruction will be input again. This is because the operand cannot be obtained.

【0099】以上により、本実施の形態に係るパイプラ
イン処理装置(当該パイプライン処理装置を実現するプ
ロセッサ)の動作を一通り説明した。ここで、上記の動
作を具体的に確認するために、図11の命令列に関する
本実施の形態による動作を図13のタイムチャートを参
照しながら説明する。
The operation of the pipeline processing apparatus (processor implementing the pipeline processing apparatus) according to this embodiment has been described above. Here, in order to specifically confirm the above operation, the operation according to the present embodiment regarding the instruction sequence in FIG. 11 will be described with reference to the time chart in FIG.

【0100】図13においては、時刻T0以前に、図1
1の全ての命令が命令追い越しバッファ10内に登録さ
れているものとする。
In FIG. 13, before time T0, as shown in FIG.
It is assumed that all the instructions of 1 are registered in the instruction overtaking buffer 10.

【0101】時刻T0において第1の命令のLOAD命
令が発行され、時刻T1において第6の命令のSUB命
令が発行され、時刻T2において第2の命令のADD命
令が発行されるものとする。
It is assumed that the LOAD instruction of the first instruction is issued at time T0, the SUB instruction of the sixth instruction is issued at time T1, and the ADD instruction of the second instruction is issued at time T2.

【0102】時刻T3で第3の命令のOR命令と第4の
命令のADD命令とはいずれもオペランドの依存関係が
解消していて発行可能な状態である。また、第3の命令
のOR命令と第4の命令のADD命令とでは使用する演
算器の種類が異なる。さらに、第4の命令のADD命令
は後続の第6の命令のSUB命令によって演算結果のS
07が命令シーケンスの上で上書きされることが判明し
ているので、第4の命令の演算結果を参照する第5の命
令のADD命令に演算器周辺の差し替えパスを使用して
オペランドを供給しつつ発行することを保証できれば、
必ずしも第4の命令の演算結果をレジスタファイルに書
き戻す必要はない。加えて、第3の命令と第4の命令と
は時刻T3ではそれぞれ片方のオペランドが差し替えパ
スで供給されるので、レジスタファイルのリードポート
が余っていることになる。
At time T3, both the OR instruction of the third instruction and the ADD instruction of the fourth instruction have the operand dependency resolved and ready to be issued. Further, the OR instruction of the third instruction and the ADD instruction of the fourth instruction use different types of arithmetic units. Furthermore, the ADD instruction of the fourth instruction is the S of the operation result by the SUB instruction of the subsequent sixth instruction.
Since it is known that 07 is overwritten on the instruction sequence, the operand is supplied to the ADD instruction of the fifth instruction that refers to the operation result of the fourth instruction using the replacement path around the arithmetic unit. If you can guarantee that it will be issued,
It is not always necessary to write back the operation result of the fourth instruction to the register file. In addition, at the time T3, one operand of each of the third instruction and the fourth instruction is supplied by the replacement path, so that the read port of the register file is left.

【0103】以上の諸点に基づき、発行命令選択手段3
0の制御により、時刻T3において、第3の命令のOR
命令が第1の発行命令として実際に発行され、同時に第
4の命令のADD命令が第2の発行命令として実際に発
行される。さらに、時刻T4では、時刻T3における第
2の発行命令である第4の命令(ADD命令)のXオペ
ランドを参照する第5の命令のADD命令が強制的に発
行される。
Based on the above points, the issuing instruction selecting means 3
With the control of 0, the OR of the third instruction is performed at time T3.
The instruction is actually issued as the first issuance instruction, and at the same time, the ADD instruction of the fourth instruction is actually issued as the second issuance instruction. Further, at time T4, the ADD instruction of the fifth instruction that refers to the X operand of the fourth instruction (ADD instruction) that is the second issued instruction at time T3 is forcibly issued.

【0104】従来技術が適用された場合のタイムチャー
トである図12と本実施の形態(本発明)を適用した場
合のタイムチャートである図13とを比較してみれば、
本実施の形態を適用した場合には全処理が1サイクル分
はやく終了することが分かる。すなわち、本実施の形
態、ひいては本発明のパイプライン処理装置の性能向上
を確認することができる。
12 is a time chart when the prior art is applied, and FIG. 13 is a time chart when the present embodiment (present invention) is applied.
It can be seen that when the present embodiment is applied, all the processes are completed quickly for one cycle. That is, it is possible to confirm the performance improvement of the present embodiment, and eventually the pipeline processing device of the present invention.

【0105】[0105]

【発明の効果】以上説明したように、本発明によると、
発行命令選択手段等を設ける上記のような構成をとるこ
とにより、従来技術によるよりも命令発行の効率を高め
ることができ、投資された演算器ハードウェア資源の性
能をより多く引き出すことが可能となり、パイプライン
処理装置を実現するプロセッサの実効性能の向上を達成
できるという効果が生じる。
As described above, according to the present invention,
By providing the issue instruction selection means and the like as described above, the instruction issue efficiency can be improved as compared with the conventional technique, and the performance of the invested arithmetic unit hardware resource can be more effectively drawn out. The effect is that the effective performance of the processor that realizes the pipeline processing device can be improved.

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

【図1】本発明の一実施の形態に係るパイプライン処理
装置の構成を示すブロック図である。
FIG. 1 is a block diagram showing a configuration of a pipeline processing device according to an embodiment of the present invention.

【図2】図1中の発行命令選択手段の詳細な構成および
動作を説明するための図である。
FIG. 2 is a diagram for explaining a detailed configuration and operation of an issue instruction selection means in FIG.

【図3】図1中のレイテストセット手段の詳細な構成お
よび動作を説明するための図である。
FIG. 3 is a diagram for explaining a detailed configuration and operation of the ray test setting means in FIG.

【図4】図1中のオペランドレディセット手段の詳細な
構成および動作を説明するための図である。
FIG. 4 is a diagram for explaining a detailed configuration and operation of an operand ready setting means in FIG.

【図5】図1中のエントリ登録手段の詳細な構成および
動作を説明するための図である。
5 is a diagram for explaining the detailed configuration and operation of the entry registration means in FIG.

【図6】図1中の命令追い越しバッファ内の各エントリ
の構成要素を詳細に示す図である。
FIG. 6 is a diagram showing in detail the components of each entry in the instruction overtaking buffer in FIG.

【図7】図1に示すパイプライン処理装置および従来の
パイプライン処理装置の一例の全体構成を示すブロック
図である。
7 is a block diagram showing an overall configuration of an example of the pipeline processing apparatus shown in FIG. 1 and a conventional pipeline processing apparatus.

【図8】図1に示すパイプライン処理装置で取り扱われ
る命令のフォーマットを示す図である。
8 is a diagram showing a format of an instruction handled by the pipeline processing device shown in FIG.

【図9】図1に示す本実施の形態に係るパイプライン処
理装置の具体的な動作を説明するための図(命令列の具
体例を示す図)である。
9 is a diagram (a diagram showing a specific example of an instruction sequence) for explaining a specific operation of the pipeline processing device according to the present embodiment shown in FIG. 1;

【図10】図1に示す本実施の形態に係るパイプライン
処理装置の具体的な動作を説明するための図(図9の命
令列に対応するタイムチャートを示す図)である。
10 is a diagram (a diagram showing a time chart corresponding to the instruction sequence in FIG. 9) for explaining a specific operation of the pipeline processing device according to the present embodiment shown in FIG. 1;

【図11】図1に示す本実施の形態に係るパイプライン
処理装置および従来のパイプライン処理装置の具体的な
動作を説明するための命令列を示す図である。
FIG. 11 is a diagram showing an instruction sequence for explaining a specific operation of the pipeline processing device according to the present embodiment and the conventional pipeline processing device shown in FIG. 1;

【図12】従来のパイプライン処理装置の具体的な動作
を説明するためのタイムチャートを示す図である。
FIG. 12 is a diagram showing a time chart for explaining a specific operation of the conventional pipeline processing apparatus.

【図13】図1に示す本実施の形態に係るパイプライン
処理装置の具体的な動作を説明するためのタイムチャー
トを示す図である。
FIG. 13 is a diagram showing a time chart for explaining a specific operation of the pipeline processing device according to the present embodiment shown in FIG. 1.

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

10 命令追い越しバッファ 20 エントリ登録手段 30 発行命令選択手段 40 Dステージデータ保持回路 50 オペランドレディセット手段 60 レイテストセット手段 70 Iステージデータ保持回路 101 エントリバリッドフラグ(Vフラグ) 102 ディスティネーションフィールド(DESTI
NATION) 103 Yオペランドレディフラグ(Y−rdy) 104 Zオペランドレディフラグ(Z−rdy) 105 Yオペランド後続参照エントリ情報(Y−op
後続参照エントリ情報) 106 Zオペランド後続参照エントリ情報(Z−op
後続参照エントリ情報) 130 Lフラグ 131 Yオペランド差し替えフラグ(Y−差替) 132 Zオペランド差し替えフラグ(Z−差替) 201 新規登録エントリ管理部 202 デコーダ 203,601 コンパレータ 213,214,218,301,302,304,3
05,306,602ANDゲート 303 エクスクルーシブORゲート 307 組合せ論理回路 308 ORゲート 309 命令選択手段A 310 命令選択手段B 311,501,502 セレクタ 312 発行命令調停回路 313 レジスタA 314 レジスタB
10 instruction passing buffer 20 entry registration means 30 issued instruction selection means 40 D stage data holding circuit 50 operand ready setting means 60 ray test setting means 70 I stage data holding circuit 101 entry valid flag (V flag) 102 destination field (DESTI
(NATION) 103 Y operand ready flag (Y-rdy) 104 Z operand ready flag (Z-rdy) 105 Y operand Subsequent reference entry information (Y-op)
Subsequent reference entry information) 106 Z operand Subsequent reference entry information (Z-op
Subsequent reference entry information) 130 L flag 131 Y operand replacement flag (Y-replacement) 132 Z operand replacement flag (Z-replacement) 201 New registration entry management unit 202 Decoder 203, 601 Comparator 213, 214, 218, 301, 302, 304, 3
05, 306, 602 AND gate 303 Exclusive OR gate 307 Combinational logic circuit 308 OR gate 309 Instruction selecting means A 310 Instruction selecting means B 311, 501, 502 Selector 312 Issue instruction arbitration circuit 313 Register A 314 Register B

Claims (5)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】複数の演算器がレジスタファイルへのライ
トポートを当該演算器間で共有しており差し替えパスが
存在するパイプライン処理装置において、 複数のエントリからなり、各入力オペランドに対する差
し替えフラグ,レディフラグ,および後続参照エントリ
情報とエントリバリッドフラグ,ディスティネーション
フィールド,およびLフラグとを各エントリに保持する
命令追い越しバッファと、 Dステージデータ保持回路内の命令に関する各種の情報
を前記命令追い越しバッファ内のエントリに登録し、当
該エントリの命令とオペランドの依存関係を有する命令
が登録されている前記命令追い越しバッファ内のエント
リにその依存関係を示す情報を登録するエントリ登録手
段と、 前記エントリ登録手段による命令の登録時に前記命令追
い越しバッファ内の当該命令の登録エントリ中のLフラ
グをセットし、当該命令と同一のレジスタに演算結果を
書き込む先行命令の登録エントリ中のLフラグをリセッ
トするレイテストセット手段と、 前記命令追い越しバッファ内の命令が発行された場合に
当該発行命令と依存関係にある命令に対する前記命令追
い越しバッファ内のエントリ中のオペランドレディフラ
グをセットするオペランドレディセット手段と、 前記命令追い越しバッファに登録されている「入力オペ
ランドがレディになっている命令群」からの発行命令の
候補の選択,前記命令追い越しバッファに登録されてい
る「後続命令により演算結果が上書きされることが判明
している命令群」からの発行命令の候補の選択,および
リソースの競合のチェックに基づいて発行命令を選択
し、当該選択の際に、リソースの競合が生じない範囲で
複数命令の同時発行を行い、「後続命令により演算結果
が上書きされることが判明している命令群」の中から選
択された命令を実際に発行した場合に当該命令の演算結
果を参照する後続命令を強制的に遅滞なく発行する発行
命令選択手段とを有し、 前記発行命令選択手段が、 前記命令追い越しバッファ内の各エントリ中の設定情報
の参照に基づき、入力オペランドがレディになっている
命令群の中から発行命令の候補となる命令を選択する第
1の命令選択手段と、 前記命令追い越しバッファ内の各エントリ中の設定情報
の参照に基づき、後続命令により演算結果が上書きされ
ることが判明している命令群の中から発行命令の候補と
なる命令を選択する第2の命令選択手段と、 前記第1の命令選択手段により選択された命令と前記第
2の命令選択手段により選択された命令とのリソース競
合チェックを行い、リソースの競合が発生しない場合に
は当該両命令を同時に発行し、リソースの競合が発生す
る場合には前記第1の命令選択手段よって選択された命
令のみを発行し、前記第2の命令発行選択手段により選
択された命令を実際に発行した場合には当該命令の演算
結果を参照する後続命令を遅滞なく強制的に発行する発
行命令調停手段とを備えること を特徴とするパイプライ
ン処理装置。
1. In a pipeline processing device in which a plurality of arithmetic units share a write port to a register file among the arithmetic units and a substitution path exists, a substitution flag for each input operand is composed of a plurality of entries. An instruction overtaking buffer that holds a ready flag and subsequent reference entry information and an entry valid flag, a destination field, and an L flag in each entry, and various information related to instructions in the D stage data holding circuit in the instruction overtaking buffer. Entry registration means for registering information indicating the dependency relationship in the entry in the instruction overtaking buffer in which an instruction having a dependency relationship between the instruction of the entry and the operand is registered, and the entry registration means When the order is registered, Raytest setting means for setting the L flag in the registration entry of the instruction in the overtaking buffer and resetting the L flag in the registration entry of the preceding instruction for writing the operation result in the same register as the instruction; and the instruction overtaking buffer. An operand ready set means for setting an operand ready flag in an entry in the instruction overtaking buffer for an instruction having a dependency relationship with the issued instruction, and an instruction ready register registered in the instruction overtaking buffer. Selection of issued instruction candidates from the "instruction group whose input operand is ready", from the "instruction group whose operation result is known to be overwritten by the subsequent instruction" registered in the instruction overtaking buffer Issuing based on selection of issuing instruction candidates and checking for resource conflicts Select an instruction, issue multiple instructions at the same time within the range where resource conflict does not occur, and select from the "instruction group where it is known that the operation result will be overwritten by subsequent instructions" possess the issued instruction selection means for issuing forcibly without delay subsequent instruction referencing calculation results of the instruction to when actually issued the instruction to be, the issued instruction selection means, the instruction in the overtaking buffer Setting information in each entry
Input operand is ready based on reference to
Select an instruction that is a candidate for an issued instruction from the instruction group.
1 instruction selecting means and setting information in each entry in the instruction overtaking buffer
Subsequent instruction overwrites the operation result based on
From the group of instructions that are known to
Second instruction selecting means for selecting an instruction, the instruction selected by the first instruction selecting means, and the first instruction selecting means.
Resource competition with the instruction selected by the instruction selecting means
If there is no resource conflict,
Issues both instructions at the same time, causing resource contention
The instruction selected by the first instruction selecting means,
Issue only the order and select by the second command issue selection means.
If the selected instruction is actually issued, the operation of that instruction
Issuing a forcible subsequent instruction that refers to the result without delay
A pipeline processing device comprising: a line instruction arbitration means .
【請求項2】前記命令追い越しバッファ内の各エントリ
中の各入力オペランドに対する後続参照エントリ情報の
対応するビット毎の論理和を生成することにより、当該
各エントリに登録されている命令の演算結果を参照する
命令が登録されているエントリを示す信号を生成する当
該各エントリに対するORゲートと、前記第2の命令選
択手段によって選択された命令が登録されているエント
リに対する前記ORゲートの出力信号を選択するセレク
タと、前記セレクタにより選択された「エントリを示す
信号」に基づく情報を格納するエントリ情報レジスタ
と、前記第2の命令選択手段により選択された命令が実
際に発行されたことを点灯状態で示す命令発行情報レジ
スタと、前記第1の命令選択手段,前記第2の命令選択
手段,前記エントリ情報レジスタ,および前記命令発行
情報レジスタからの情報に基づいて発行命令の選択を行
う発行命令調停回路とを備える前記発行命令調停手段を
有することを特徴とする請求項記載のパイプライン処
理装置。
2. An operation result of an instruction registered in each entry is generated by generating a logical sum of corresponding bits of subsequent reference entry information for each input operand in each entry in the instruction overtaking buffer. The output signal of the OR gate for each entry generating a signal indicating the entry in which the instruction to be referred to and the output signal of the OR gate for the entry in which the instruction selected by the second instruction selecting means are registered are selected. Selector, an entry information register for storing information based on the "signal indicating an entry" selected by the selector, and a lighting state indicating that the instruction selected by the second instruction selecting means is actually issued. The instruction issue information register shown, the first instruction selecting means, the second instruction selecting means, and the entry Broadcast registers and the issued instruction pipeline processor according to claim 1, characterized in that it has an arbitration unit and an issued instruction arbitration circuit for selecting the issued instruction based on the information from the instruction issue information register.
【請求項3】YオペランドおよびZオペランドの2つの
入力オペランドを持つフォーマットの命令が取り扱わ
れ、各エントリにエントリバリッドフラグ,ディスティ
ネーションフィールド,Lフラグ,Yオペランド差し替
えフラグ,Yオペランドレディフラグ,Zオペランド差
し替えフラグ,Zオペランドレディフラグ,Yオペラン
ド後続参照エントリ情報,およびZオペランド後続参照
エントリ情報を保持する前記命令追い越しバッファを有
することを特徴とする請求項1または請求項記載のパ
イプライン処理装置。
3. An instruction having a format having two input operands, a Y operand and a Z operand, is handled, and each entry has an entry valid flag, a destination field, an L flag, a Y operand replacement flag, a Y operand ready flag, and a Z operand. 3. The pipeline processing device according to claim 1, further comprising the instruction overtaking buffer holding a replacement flag, a Z operand ready flag, Y operand subsequent reference entry information, and Z operand subsequent reference entry information.
【請求項4】YオペランドおよびZオペランドの2つの
入力オペランドを持つフォーマットの命令が取り扱わ
れ、各エントリにエントリバリッドフラグ,ディスティ
ネーションフィールド,Lフラグ,Yオペランド差し替
えフラグ,Yオペランドレディフラグ,Zオペランド差
し替えフラグ,Zオペランドレディフラグ,Yオペラン
ド後続参照エントリ情報,およびZオペランド後続参照
エントリ情報を保持する前記命令追い越しバッファと、
「YオペランドレディフラグおよびZオペランドレディ
フラグが両方とも点灯していること」,「Yオペランド
差し替えフラグおよびZオペランド差し替えフラグのい
ずれか片方のみが点灯していること」,「Lフラグが点
灯していないこと」,「エントリバリッドフラグが点灯
していること」,および「Yオペランド後続参照エント
リ情報およびZオペランド後続参照エントリ情報のうち
点灯しているビットが高々1ビットであること」の条件
を満たす前記命令追い越しバッファ内のエントリの命令
の中から発行命令の候補となる命令を選択する前記第2
の命令選択手段を備える前記発行命令選択手段とを有す
ることを特徴とする請求項または請求項記載のパイ
プライン処理装置。
4. An instruction having a format having two input operands, a Y operand and a Z operand, is handled, and each entry has an entry valid flag, a destination field, an L flag, a Y operand replacement flag, a Y operand ready flag, and a Z operand. An instruction overtaking buffer holding a replacement flag, a Z operand ready flag, Y operand subsequent reference entry information, and Z operand subsequent reference entry information;
"Both the Y operand ready flag and the Z operand ready flag are lit", "Only one of the Y operand replacement flag and the Z operand replacement flag is lit", "L flag is lit""No","The entry valid flag is on", and "The illuminated bit in the Y operand subsequent reference entry information and the Z operand subsequent reference entry information is at most 1 bit". The second instruction for selecting a candidate instruction to be issued from among the instructions of the entry in the instruction overtaking buffer
3. The pipeline processing apparatus according to claim 1 or 2, further comprising: the issue instruction selecting means including the instruction selecting means.
【請求項5】Dステージデータ保持回路内のXオペラン
ドデータの内容と前記命令追い越しバッファ内の各エン
トリ中のディスティネーションフィールドの内容とが等
しいか否かを判定する当該各エントリに対するコンパレ
ータと、前記命令追い越しバッファ内のあるエントリへ
の命令登録時に前記命令追い越しバッファ内の各エント
リに対する前記コンパレータの出力と当該各エントリ中
のエントリバリッドフラグの内容との論理積をLフラグ
のリセット信号として出力する当該各エントリに対する
ANDゲートとを含むレイテストセット手段を有するこ
とを特徴とする請求項1,請求項2,請求項3,または
請求項記載のパイプライン処理装置。
5. A comparator for each entry that determines whether the contents of the X operand data in the D stage data holding circuit and the contents of the destination field in each entry in the instruction overtaking buffer are equal, When an instruction is registered in a certain entry in the instruction overtaking buffer, the logical product of the output of the comparator for each entry in the instruction overtaking buffer and the content of the entry valid flag in the relevant entry is output as a reset signal of the L flag. claim 1, characterized in that it comprises a ray test set means including an aND gate for each entry, claim 2, pipeline processor according to claim 3 or claim 4, wherein,.
JP19004199A 1999-07-05 1999-07-05 Pipeline processing equipment Expired - Fee Related JP3473506B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP19004199A JP3473506B2 (en) 1999-07-05 1999-07-05 Pipeline processing equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP19004199A JP3473506B2 (en) 1999-07-05 1999-07-05 Pipeline processing equipment

Publications (2)

Publication Number Publication Date
JP2001022579A JP2001022579A (en) 2001-01-26
JP3473506B2 true JP3473506B2 (en) 2003-12-08

Family

ID=16251384

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19004199A Expired - Fee Related JP3473506B2 (en) 1999-07-05 1999-07-05 Pipeline processing equipment

Country Status (1)

Country Link
JP (1) JP3473506B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4985452B2 (en) * 2008-02-14 2012-07-25 エヌイーシーコンピュータテクノ株式会社 Vector processing equipment

Also Published As

Publication number Publication date
JP2001022579A (en) 2001-01-26

Similar Documents

Publication Publication Date Title
US6330661B1 (en) Reducing inherited logical to physical register mapping information between tasks in multithread system using register group identifier
US10700968B2 (en) Optimized function assignment in a multi-core processor
EP1320031A2 (en) Apparatus for branch prediction
EP1236092A1 (en) Branch instruction for processor
JP2000148489A (en) Computer system
US20050076189A1 (en) Method and apparatus for pipeline processing a chain of processing instructions
KR102524565B1 (en) Store and load tracking by bypassing load store units
JP2004158018A (en) Semiconductor floorplan layout system for register rename circuit
JP2000259412A (en) Method and processor for transferring store instruction
KR20160031503A (en) Method and apparatus for selective renaming in a microprocessor
JPH06259253A (en) Data processor and its operating method
JP3919802B2 (en) Processor and method for scheduling instruction operations in a processor
US6862676B1 (en) Superscalar processor having content addressable memory structures for determining dependencies
GB2540940A (en) An apparatus and method for transferring a plurality of data structures between memory and one or more vectors of data elements stored in a register bank
US7203821B2 (en) Method and apparatus to handle window management instructions without post serialization in an out of order multi-issue processor supporting multiple strands
US11507379B2 (en) Managing load and store instructions for memory barrier handling
JPH0673105B2 (en) Instruction pipeline type microprocessor
US7600102B2 (en) Condition bits for controlling branch processing
JP3473506B2 (en) Pipeline processing equipment
JP2000163265A (en) Instruction issuing circuit
JP3497087B2 (en) Instruction control apparatus and method
US6922760B2 (en) Distributed result system for high-performance wide-issue superscalar processor
US6266761B1 (en) Method and system in an information processing system for efficient maintenance of copies of values stored within registers
US20040006686A1 (en) Processor and instruction control method
JP5392810B2 (en) Instruction issue control device and instruction issue control method

Legal Events

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

Free format text: PAYMENT UNTIL: 20080919

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20080919

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090919

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090919

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100919

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees