JPH06139071A - Parallel computers - Google Patents

Parallel computers

Info

Publication number
JPH06139071A
JPH06139071A JP4292693A JP29269392A JPH06139071A JP H06139071 A JPH06139071 A JP H06139071A JP 4292693 A JP4292693 A JP 4292693A JP 29269392 A JP29269392 A JP 29269392A JP H06139071 A JPH06139071 A JP H06139071A
Authority
JP
Japan
Prior art keywords
data
instruction
memory
pipeline processing
address
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
JP4292693A
Other languages
Japanese (ja)
Inventor
Chikako Nakanishi
知嘉子 中西
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP4292693A priority Critical patent/JPH06139071A/en
Publication of JPH06139071A publication Critical patent/JPH06139071A/en
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

PURPOSE:To realize the data by-pass circuit of a memory access instruction in parallel computers. CONSTITUTION:A super scalar processor 20 is constituted of an instruction fetching stage 4, an instruction decoding stage 5, plural functional units 6 to 9 having pipeline structure respectively, a register file 3 to hold temporarily data to be used for executing an instruction, a memory data by-pass 10, and a data by-pass 12, and it can access the data memory 2 of the outside through a data bus 11. One functional unit is constituted of an execution stage 61, a memory access stage 62 and a write back stage 63. Thus, the data can be transferred between pipelines without waiting for the data to be written in a memory, and further, the data can be transferred to the pipeline requesting the read memory data, and the finish of a read instruction need not be waited.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】この発明は、並列計算機におい
て、並行して処理される複数の命令において使われるデ
ータをパイプライン間で直接転送され得るデータ・バイ
パスに関し、特にメモリ・アクセス命令のデータ・バイ
パスに関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a data bypass, in which data used in a plurality of instructions processed in parallel can be directly transferred between pipelines in a parallel computer, and more particularly to a data bypass of a memory access instruction. Regarding bypass.

【0002】[0002]

【従来の技術】「スーパスカラ」は、並列計算機の処理
速度を高めるためのアーキテクチャの1つとして知られ
ている。スーパスカラでは与えられた複数の命令のう
ち、同時に処理可能な命令が検出され、検出された命令
が複数のパイプラインを使って同時に処理される。
2. Description of the Related Art "Superscalar" is known as one of the architectures for increasing the processing speed of a parallel computer. In superscalar, an instruction that can be processed simultaneously is detected from a plurality of given instructions, and the detected instruction is processed simultaneously using a plurality of pipelines.

【0003】図14は、この発明の背景を示すスーパス
カラプロセッサのブロック図である。構成を以下に説明
する。このスーパスカラ20は、命令メモリ1内に格納
された複数の命令を取り出す命令フェッチステージ4
と、命令フェッチステージ4において取り出された命令
をデコードする命令デコードステージ5と、各々がパイ
プライン構造を有する複数の機能ユニット6〜9と、命
令を処理するのに使われるデータを一時的に保持するレ
ジスタファイル3と、を含む。
FIG. 14 is a block diagram of a superscalar processor showing the background of the present invention. The configuration will be described below. The superscalar 20 is an instruction fetch stage 4 for fetching a plurality of instructions stored in the instruction memory 1.
An instruction decode stage 5 for decoding the instruction fetched in the instruction fetch stage 4, a plurality of functional units 6 to 9 each having a pipeline structure, and temporarily holding data used for processing the instruction. Register file 3 for

【0004】機能ユニット6〜9は、データバス11を
介して外部のデータメモリ2にアクセスすることができ
る。レジスタファイル3は、RAMによって構成され、
機能ユニット6〜9からアクセスされる。
The functional units 6 to 9 can access the external data memory 2 via the data bus 11. The register file 3 is composed of RAM,
It is accessed from the functional units 6-9.

【0005】命令フェッチステージ4は、プログラムカ
ウンタを備えており、プログラムカウンタから発生され
たアドレス信号を命令メモリ1に与える。与えられたア
ドレス信号により指定された複数の命令が命令メモリ1
から取り出され、命令デコードステージ5へと送られ
る。
The instruction fetch stage 4 has a program counter, and supplies the address signal generated from the program counter to the instruction memory 1. A plurality of instructions designated by a given address signal are stored in the instruction memory 1
Are fetched from the CPU and sent to the instruction decode stage 5.

【0006】命令デコードステージ5は、命令メモリ1
から受けた複数の命令をデコードする。命令のデコード
によって、与えられた複数の命令のうち、同時に処理す
ることのできる命令が検出される。これに加えて命令デ
コードステージ5は、機能ユニット6〜9が、与えられ
た命令を処理するのに使われるデータをレジスタファイ
ル3から読み出し、読み出されたデータを機能ユニット
6〜9に与える。
The instruction decode stage 5 includes an instruction memory 1
Decode multiple instructions received from. By decoding the instruction, an instruction that can be simultaneously processed is detected from a plurality of given instructions. In addition to this, in the instruction decoding stage 5, the functional units 6 to 9 read the data used for processing the given instruction from the register file 3 and give the read data to the functional units 6 to 9.

【0007】機能ユニット6,7,8,9は、それぞれ
パイプライン構造を有している。4つの機能ユニットは
各々、実行(EXC)ステージ61、メモリ・アクセス
(MEM)・ステージ62、ライトバック(WB)・ス
テージ63を含む。一般に、実行ステージ61は、演算
及びメモリ・アクセスのためのアドレス計算を行う。ま
た、メモリ・アクセス・ステージ62は、データ・メモ
リ2からの読み出し、もしくはデータ・メモリ2への書
き込みを行う。ライトバックステージ63は、演算結果
及びデータ・メモリ2からの読み出しデータをレジスタ
ファイル3に書き込む。
The functional units 6, 7, 8 and 9 each have a pipeline structure. Each of the four functional units includes an execute (EXC) stage 61, a memory access (MEM) stage 62, and a writeback (WB) stage 63. Generally, the execute stage 61 performs address calculations for operations and memory accesses. Further, the memory access stage 62 performs reading from the data memory 2 or writing to the data memory 2. The write back stage 63 writes the calculation result and the read data from the data memory 2 into the register file 3.

【0008】スーパスカラプロセッサ20は外部的に与
えられる2相のノンオーバラップ・クロック信号も応答
して動作する。図15は、2相のノンオーバラップ・ク
ロック信号の例を示すタイミング図である。
Superscalar processor 20 also operates in response to an externally applied two-phase non-overlap clock signal. FIG. 15 is a timing diagram showing an example of a two-phase non-overlap clock signal.

【0009】スーパスカラプロセッサ20の動作は、以
下のようになる。まず命令デコードステージ5によっ
て、与えられた複数の命令のうち同時に処理可能な命令
が検出される。この検出された命令は機能ユニット6〜
9(場合によっては機能ユニット6〜9のうちのいくつ
か)に与えられる。機能ユニット6〜9は、パイプライ
ン構造を有しているため、同時に与えられた命令を処理
することができる。
The operation of the superscalar processor 20 is as follows. First, the instruction decode stage 5 detects an instruction which can be simultaneously processed among a plurality of given instructions. The detected instruction is the functional unit 6 ...
9 (possibly some of the functional units 6-9). Since the functional units 6 to 9 have a pipeline structure, they can process given instructions at the same time.

【0010】図16は、この場合におけるパイプライン
処理の進行の一例を示すタイミング図である。機能ユニ
ット6,7,8はそれぞれパイプラインPL1,PL
2,PL3の一部を構成すると考えることができる。命
令フェッチステージ4、命令デコードステージ5はいず
れのパイプラインの構成要素ともなっている。
FIG. 16 is a timing chart showing an example of the progress of the pipeline processing in this case. Functional units 6, 7, and 8 are pipelines PL1 and PL, respectively.
2, can be considered to form part of PL3. The instruction fetch stage 4 and the instruction decode stage 5 are components of any pipeline.

【0011】命令11,12,13はいずれも同時に処
理可能であるとし、それぞれパイプラインPL1,PL
2,PL3において処理されるとする。
It is assumed that all the instructions 11, 12 and 13 can be processed at the same time, and the pipelines PL1 and PL respectively.
2, PL3.

【0012】パイプラインPL1,PL2,及びPL3
では、期間T1 において命令フェッチステージ4におけ
る処理IFが行われ、期間T2 においては命令デコード
ステージ5における処理IDが行われる。実行ステージ
61、メモリ・アクセス・ステージ62、ライトバック
・ステージ63では、それぞれ期間T3 ,T4 ,T5
おいてそれぞれ実行(EXC)、メモリ・アクセス(M
EM)、ライトバック(WB)の処理がなされる。
Pipelines PL1, PL2, and PL3
So done processing IF in the instruction fetch stage 4 in the period T 1, in a period T 2 process ID in the instruction decode stage 5 is performed. In the execution stage 61, the memory access stage 62, and the write back stage 63, execution (EXC) and memory access (M) are performed in the periods T 3 , T 4 , and T 5 , respectively.
EM) and write back (WB) processing is performed.

【0013】[0013]

【発明が解決しようとする課題】しかし、次のような場
合には、処理に要する時間の観点から問題が生じる。
However, in the following cases, a problem arises from the viewpoint of processing time.

【0014】今、3つの命令11,12,13がそれぞ
れストア命令、ロード命令、演算命令であったとする。
これらが同時に処理可能であるとして与えられ、それぞ
れパイプラインPL1,PL2,PL3で処理されると
仮定する。これに加えて、命令11でデータがデータ・
メモリ2に格納(ストア)され、命令12の処理によっ
て当該データが読み出され(ロード)、一旦レジスタフ
ァイル3に書き込まれた後、命令13においてレジスタ
ファイル3をアクセスし、当該データを用いて処理を行
うと仮定する。
Now, it is assumed that the three instructions 11, 12, and 13 are a store instruction, a load instruction, and an operation instruction, respectively.
It is assumed that these are given as being processable at the same time and are processed in pipelines PL1, PL2, PL3, respectively. In addition to this, the data is
The data is stored (stored) in the memory 2, the data is read (loaded) by the processing of the instruction 12, and once written in the register file 3, the register file 3 is accessed in the instruction 13 and processing is performed using the data. Suppose you do.

【0015】このような場合、図14に示された構成で
は、命令11の実行の完了を待たないと、命令12の実
行が完了しない。
In such a case, in the configuration shown in FIG. 14, the execution of the instruction 12 is not completed until the completion of the execution of the instruction 11 is waited.

【0016】図17は命令11,12,13が処理され
る様子を示すタイミング図である。まず命令11が実行
され、かつ終了する。即ち、期間T1 において命令フェ
ッチステージ4における処理IFが行われ、期間T2
おいては命令デコードステージ5における処理IDが行
われる。そして期間T3 ,T4 ,T5 においてそれぞれ
実行ステージ61、メモリ・アクセス・ステージ62、
ライトバック・ステージ63における処理EXC,ME
M,WBが実行される。
FIG. 17 is a timing diagram showing how instructions 11, 12, and 13 are processed. First, the instruction 11 is executed, and the processing ends. That is done processing IF in the instruction fetch stage 4 in the period T 1, in a period T 2 process ID in the instruction decode stage 5 is performed. Then, in the periods T 3 , T 4 , and T 5 , the execution stage 61, the memory access stage 62, and
Processing EXC, ME in write-back stage 63
M and WB are executed.

【0017】一方、期間T1 においては、パイプライン
PL2において命令11についての、パイプラインPL
3において命令12についての、命令フェッチステージ
4の処理IFが行われる。更に、期間T2 においては、
パイプラインPL2において命令11についての、パイ
プラインPL3において命令12についての、命令デコ
ードステージ5における処理IDが行われる。
On the other hand, in the period T 1 , the pipeline PL2 for the instruction 11 in the pipeline PL2
In 3, the processing IF of the instruction fetch stage 4 for the instruction 12 is performed. Furthermore, in the period T 2 ,
The process ID in the instruction decode stage 5 is performed for the instruction 11 in the pipeline PL2 and for the instruction 12 in the pipeline PL3.

【0018】しかしながら、期間T4 ,T5 において命
令12の実行は停止され、かつ、期間T3 〜T8 に命令
13の実行が停止される。なぜなら、前述のように命令
12が命令11の実行によりデータ・メモリ2に格納さ
れたデータを用いるために、命令11の実行の終了を待
たないと命令12は実行できないからであり、命令13
が命令12でデータ・メモリ2から読み込まれたデータ
を使用するために、命令12の実行の終了を待たないと
命令13が実行できないからである。
However, the execution of the instruction 12 is stopped in the periods T 4 and T 5 , and the execution of the instruction 13 is stopped in the periods T 3 to T 8 . This is because the instruction 12 uses the data stored in the data memory 2 by the execution of the instruction 11 as described above, and thus the instruction 12 cannot be executed until the execution of the instruction 11 is completed.
Is to use the data read from the data memory 2 by the instruction 12, the instruction 13 cannot be executed unless the execution of the instruction 12 is completed.

【0019】即ち、パイプラインPL2は、期間T4
び期間T5 において待機状態(パイプライン・インター
ロック)になり、期間T6 で実行(EXC)が再開され
る。よって期間T6 ,T7 ,T8 において実行ステージ
61、メモリ・アクセス・ステージ62、ライトバック
・ステージ63における処理が、それぞれ実行される。
またパイプラインPL3は、期間T3 及び期間T8 にお
いて待機状態になり、期間T9 で命令デコードステージ
5における処理IDが再開される。
That is, the pipeline PL2 is in a standby state (pipeline interlock) in the periods T 4 and T 5 , and the execution (EXC) is restarted in the period T 6 . Therefore, the processes in the execution stage 61, the memory access stage 62, and the write back stage 63 are executed in the periods T 6 , T 7 , and T 8 , respectively.
The pipe line PL3 is in a standby state in the period T 3 and period T 8, the process ID in the instruction decode stage 5 in the period T 9 is resumed.

【0020】つまり、図17に示したように、命令12
の実行により読み出されるデータは、期間T3 の時点で
既に得られているのであるが、データ・メモリ2に書き
込まれていないため、命令11の実行が終了しなけれ
ば、読み出すことはできない。また、命令13によって
使用されるデータは、命令12の実行が停止しなけれ
ば、期間T6 の実行ステージ61における処理EXCに
より、既に得られているのであるが、レジスタファイル
3に書き込まれていないため、命令12の実行の終了を
待たなければならない。その結果、命令の実行を完了す
るのに長い時間を要し、計算機の処理能力を低下させて
いた。
That is, as shown in FIG.
The data read by the execution of is already obtained at the time of the period T 3 , but since it has not been written in the data memory 2, it cannot be read unless the execution of the instruction 11 is completed. Also, the data used by the instruction 13 has not been written in the register file 3 although it has already been obtained by the process EXC in the execution stage 61 of the period T 6 unless the execution of the instruction 12 is stopped. Therefore, it is necessary to wait for the end of the execution of the instruction 12. As a result, it took a long time to complete the execution of the instruction, and the processing capacity of the computer was lowered.

【0021】[0021]

【課題を解決するための手段】この発明にかかる並列計
算機は、複数のパイプライン処理実行手段と、与えられ
た複数の命令をフェッチし、フェッチされたパイプライ
ン処理実行手段複数の命令の中から同時に実行出来る所
定の命令を見つけ、パイプライン処理実行手段パイプラ
イン処理実行手段にパイプライン処理実行手段所定の命
令を投入する命令付与手段と、パイプライン処理実行手
段所定の命令の処理に際してデータを比較的短期に保持
する一時データ記憶手段と、データを比較的長期に保持
する外部メモリと、パイプライン処理実行手段パイプラ
イン処理実行手段の扱うデータが伝送されるデータ・バ
イパス・バスと、を備える。そして、パイプライン処理
実行手段パイプライン処理実行手段の各々は、パイプラ
イン処理実行手段データ・バイパス・バスによって伝送
されたデータを使用するか否かを決定するバイパス制御
手段を有する。
A parallel computer according to the present invention fetches a plurality of pipeline processing execution means and a plurality of given instructions, and selects from among the fetched pipeline processing execution means a plurality of instructions. Pipeline processing execution means Pipeline processing execution means Pipeline processing execution means Instructions for inputting predetermined instructions to pipeline processing execution means and pipeline processing execution means Compare data when processing predetermined instructions A temporary data storage means for holding for a relatively short period of time, an external memory for holding data for a relatively long term, a pipeline processing execution means, and a data bypass bus for transmitting data handled by the pipeline processing execution means. Each of the pipeline process executing means has a bypass control means for determining whether to use the data transmitted by the pipeline process executing means data bypass bus.

【0022】一のパイプライン処理実行手段パイプライ
ン処理実行手段におけるパイプライン処理実行手段バイ
パス制御手段は、一のパイプライン処理実行手段パイプ
ライン処理実行手段に対応する一のパイプライン処理実
行手段所定の命令において得られたパイプライン処理実
行手段外部メモリのメモリアドレスと、他のパイプライ
ン処理実行手段パイプライン処理実行手段に対応する他
のパイプライン処理実行手段所定の命令において得られ
たパイプライン処理実行手段外部メモリのメモリアドレ
スとの一致を検出する外部メモリアドレス一致検出手段
を備える。また、パイプライン処理実行手段外部メモリ
アドレス一致検出手段の出力に従って、パイプライン処
理実行手段データ・バイパス・バスによって伝送された
データを用いるか、パイプライン処理実行手段外部メモ
リから別途ロードされたデータを用いるかを選択する第
1のデータ供与手段を更に備える。
One pipeline processing executing means In the pipeline processing executing means, the pipeline processing executing means bypass control means is one pipeline processing executing means, one pipeline processing executing means corresponding to the pipeline processing executing means. Pipeline processing execution means obtained in the instruction Memory address of the external memory and other pipeline processing execution means Other pipeline processing execution means Corresponding to pipeline processing execution means Pipeline processing execution obtained in a predetermined instruction Means: An external memory address match detection means for detecting a match with the memory address of the external memory is provided. Further, according to the output of the pipeline processing execution means external memory address match detection means, the data transmitted by the pipeline processing execution means data bypass bus is used, or the data separately loaded from the pipeline processing execution means external memory is used. It further comprises a first data providing means for selecting whether to use.

【0023】パイプライン処理実行手段外部メモリアド
レス一致検出手段は、データがバイパスされたか否かを
示す一致信号を出力し、パイプライン処理実行手段一致
信号が一致を示す場合には、パイプライン処理実行手段
一の所定の命令を、バイパスされたパイプライン処理実
行手段データをパイプライン処理実行手段一時データ記
憶手段に格納する命令に変更する命令変更手段を更に備
える。
Pipeline processing execution means The external memory address match detection means outputs a match signal indicating whether or not the data is bypassed. If the pipeline processing execution means match signal indicates a match, pipeline processing execution means is executed. It further comprises an instruction changing means for changing the predetermined instruction of the means 1 into an instruction for storing the bypassed pipeline processing execution means data in the pipeline processing execution means temporary data storage means.

【0024】一のパイプライン処理実行手段パイプライ
ン処理実行手段におけるパイプライン処理実行手段バイ
パス制御手段は、パイプライン処理実行手段一のパイプ
ライン処理実行手段に対応する一のパイプライン処理実
行手段所定の命令において得られたパイプライン処理実
行手段一時データ記憶手段のアドレスと、他のパイプラ
イン処理実行手段パイプライン処理実行手段に対応する
他のパイプライン処理実行手段所定の命令において得ら
れたパイプライン処理実行手段一時データ記憶手段のア
ドレスとの一致を検出する一時データ記憶手段アドレス
一致検出手段を更に備える。また、他のパイプライン処
理実行手段パイプライン処理実行手段のパイプライン処
理実行手段外部メモリアドレス一致検出手段の出力及び
一時データ記憶手段アドレス一致検出手段の出力に従っ
て、パイプライン処理実行手段データ・バイパス・バス
によって伝送されたデータを用いるか否かを選択する第
2のデータ供与手段を更に備える。
One pipeline processing executing means The pipeline processing executing means bypass control means in the pipeline processing executing means is one pipeline processing executing means corresponding to one pipeline processing executing means. Pipeline processing execution means obtained in the instruction Address of temporary data storage means and other pipeline processing execution means Other pipeline processing execution means Corresponding to pipeline processing execution means Pipeline processing obtained in a predetermined instruction The execution means temporary data storage means further includes temporary data storage means address coincidence detection means for detecting a match with the address of the temporary data storage means. Further, according to the output of the other pipeline processing executing means, the pipeline processing executing means, the pipeline processing executing means, the external memory address matching detecting means, and the temporary data storing means, the address matching detecting means, It further comprises a second data providing means for selecting whether to use the data transmitted by the bus.

【0025】[0025]

【作用】この発明における並列計算機では、第1のデー
タ供与手段が、外部メモリアドレス一致検出手段に応答
して、他のパイプライン処理実行手段に外部メモリへの
アクセス命令によって外部メモリに書き込まれるデータ
を、同アドレスの外部メモリへのアクセス命令を実行中
のパイプライン処理実行手段に直接与える。即ち、必要
なデータを、外部メモリに書き込まれるのを待つことな
く得ることができる。
In the parallel computer according to the present invention, the first data providing means is responsive to the external memory address coincidence detecting means and the data written to the external memory by the access instruction to the other pipeline processing executing means to the external memory. Is directly given to the pipeline processing execution means that is executing the instruction to access the external memory at the same address. That is, the required data can be obtained without waiting for writing to the external memory.

【0026】また、外部メモリアドレス一致検出手段に
おいて、アドレスの一致が検出された場合には、外部メ
モリへのアクセス命令を中止し、一時データ記憶手段に
対する書き込み命令に変更する手段をもつ。よって、無
駄なアクセス命令が行われない。
Further, the external memory address coincidence detecting means has means for stopping an access instruction to the external memory and changing to a write instruction for the temporary data storing means when the address coincidence is detected. Therefore, useless access commands are not issued.

【0027】また、読み出されてくるデータを使用する
パイプライン処理実行手段に、必要なデータが得られた
ことを判定し、他のパイプラインからデータを直接与え
る。即ち、必要なデータを外部メモリから読み出される
ことを待つことなく得ることができる。
Further, it is judged that the necessary data has been obtained, and the data is directly supplied from another pipeline to the pipeline processing executing means which uses the read data. That is, it is possible to obtain necessary data without waiting for the data to be read from the external memory.

【0028】以上の作用により、他のパイプライン処理
実行手段において実行されるデータを直接受けるので、
実行の終了を待つことなく、短時間で命令を完了するこ
とができる。
By the above operation, the data executed by the other pipeline processing execution means is directly received,
Instructions can be completed in a short time without waiting for the end of execution.

【0029】[0029]

【実施例】図1は、この発明の一実施例を示すスーパス
カラプロセッサのブロック図である。このスーパスカラ
20は、命令メモリ1内に格納された複数の命令を取り
出す命令フェッチステージ4と、命令フェッチステージ
4において取り出された命令をデコードする命令デコー
ドステージ5と、各々がパイプライン構造を有する複数
の機能ユニット6〜9と、命令を実行するのに使われる
データを一時的に保持するレジスタファイル3を含む。
機能ユニット6〜9は、データバス11を介して外部の
データメモリ2にアクセスすることができる。レジスタ
ファイル3は、RAMによって構成され、機能ユニット
6〜9からアクセスされる。
FIG. 1 is a block diagram of a superscalar processor showing an embodiment of the present invention. The superscalar 20 includes an instruction fetch stage 4 for fetching a plurality of instructions stored in the instruction memory 1, an instruction decode stage 5 for decoding an instruction fetched in the instruction fetch stage 4, and a plurality of pipeline stages each having a pipeline structure. Functional units 6-9 and a register file 3 for temporarily holding data used for executing instructions.
The functional units 6 to 9 can access the external data memory 2 via the data bus 11. The register file 3 is composed of a RAM and is accessed by the functional units 6-9.

【0030】スーパスカラプロセッサ20は外部的に与
えられる2相のノンオーバラップ・クロック信号に応答
して動作する。基本的な動作は、図14に示した従来の
スーパスカラプロセッサ20と同様であるので説明を省
略する。
Superscalar processor 20 operates in response to an externally applied two-phase non-overlap clock signal. Since the basic operation is the same as that of the conventional superscalar processor 20 shown in FIG. 14, the description will be omitted.

【0031】メモリ・データ・バイパス10、データ・
バイパス12は、それぞれの機能ユニット6〜9間に設
けられている。
Memory data bypass 10, data
The bypass 12 is provided between the respective functional units 6-9.

【0032】メモリ・データ・バイパス10を介して、
機能ユニット内のデータ供与手段によって得られたデー
タが伝送される。さらにデータ・バイパス12を介し
て、機能ユニット6〜9間で、メモリ・アクセス命令を
実行中の機能ユニット内において得られたメモリ・アド
レスも伝送される。その他データがバイパスされたこと
を示す信号、および、各機能ユニットにおいて処理され
る命令に含まれる処理の結果得られたデータの格納アド
レス(レジスタファイル3のアドレス)が機能ユニット
6〜9間で伝送される。
Via the memory data bypass 10,
The data obtained by the data providing means in the functional unit are transmitted. Further, via the data bypass 12, the memory address obtained in the functional unit executing the memory access instruction is also transmitted between the functional units 6 to 9. A signal indicating that other data has been bypassed and a storage address (address of the register file 3) of data obtained as a result of processing included in an instruction processed in each functional unit are transmitted between the functional units 6 to 9. To be done.

【0033】図2に命令デコードステージ5と共に機能
ユニット6の構成図を示す。他の機能ユニット7〜9も
同様に構成される。デコードステージ5から与えられる
命令は、命令コードOP6 と、いずれもレジスタファイ
ル3のアドレスである、格納アドレスD6 及び2つのソ
ースアドレスS11,S12を含んでいる。ソースアドレス
11,S12は、命令を実行するのに使われるデータがス
トアされているレジスタファイル3のアドレスを示す。
また格納アドレスD6 は機能ユニット6において実行さ
れたデータがストアされるべきレジスタファイル3のア
ドレスを示す。
FIG. 2 shows a block diagram of the functional unit 6 together with the instruction decode stage 5. The other functional units 7 to 9 are similarly configured. The instruction given from the decode stage 5 includes an instruction code OP 6 , a storage address D 6 and two source addresses S 11 and S 12 , both of which are addresses of the register file 3. The source addresses S 11 and S 12 indicate the addresses of the register file 3 in which the data used to execute the instruction are stored.
The storage address D 6 indicates the address of the register file 3 in which the data executed in the functional unit 6 should be stored.

【0034】機能ユニット6は、命令の演算および、メ
モリ・アドレス(メモリ2のアドレス)の計算を実行す
る実行ステージ61、データメモリ2にアクセスするた
めのメモリ・アクセス・ステージ62、得られたデータ
をレジスタファイル3へ書き込むためのライトバック・
ステージ63からなる。
The functional unit 6 executes an operation of an instruction and calculation of a memory address (address of the memory 2), an execution stage 61, a memory access stage 62 for accessing the data memory 2, and the obtained data. Write back to write data to register file 3
It consists of stage 63.

【0035】実行ステージ61は、メモリ・アドレス比
較器90、メモリ・データ・セレクタ91、命令変更器
92、格納レジスタ94、選択回路97を備えている。
The execution stage 61 includes a memory / address comparator 90, a memory / data selector 91, an instruction changer 92, a storage register 94, and a selection circuit 97.

【0036】メモリ・アドレス比較器90は、図1に示
した他の機能ユニット7〜9で処理されている命令OP
7 〜OP9 及び機能ユニット7〜9の備える演算実行器
84によって計算されたメモリ・アドレスM7 〜M9
並びに機能ユニット6で処理されている命令OP6 及び
演算実行器84によって計算された読み出しアドレスM
6 を受け取る。
The memory / address comparator 90 uses the instruction OP processed by the other functional units 7 to 9 shown in FIG.
7 to OP 9 and memory addresses M 7 to M 9 calculated by the operation executor 84 included in the functional units 7 to 9 ,
And the read address M calculated by the operation executor 84 and the instruction OP 6 being processed in the functional unit 6.
Receive 6

【0037】今、命令OP7 〜OP9 が書き込み命令
(ストア命令)であれば、メモリ・アドレスM7 〜M9
は書き込みメモリ・アドレスである。また命令OP6
読み出し命令(ロード命令)であれば、アドレスM6
読み出しアドレスである。メモリ・アドレス比較器90
はこれらを比較し、比較結果(一致/不一致)を示す信
号BY7 ,BY8 ,BY9 を出力する。詳細については
後で記述する。
Now, if the instructions OP 7 to OP 9 are write instructions (store instructions), the memory addresses M 7 to M 9 are stored.
Is the write memory address. If the instruction OP 6 is a read instruction (load instruction), the address M 6 is a read address. Memory / address comparator 90
Compares these and outputs signals BY 7 , BY 8 and BY 9 indicating the comparison result (match / mismatch). Details will be described later.

【0038】メモリ・データ・セレクタ91は、メモリ
・データ・バイパス10を介して、他の機能ユニット7
〜9において格納されるべきメモリデータR7 ,R8
9を受け取る。そして信号BY7 ,BY8 ,BY9
よって制御されて動作する。詳細は後で記述する。
The memory data selector 91 is connected to another functional unit 7 via the memory data bypass 10.
Memory data R 7 , R 8 , to be stored in
Receive R 9 . Then, it operates under the control of the signals BY 7 , BY 8 and BY 9 . Details will be described later.

【0039】命令変更器92は、メモリ・アドレス比較
器90の出力である信号BY7 〜BY9 によって制御さ
れ、レジスタ94に保持された命令コードに基づいて命
令の変更を行う。詳細は、後で記述する。
The instruction changer 92 is controlled by the signals BY 7 to BY 9 output from the memory / address comparator 90, and changes the instruction based on the instruction code held in the register 94. Details will be described later.

【0040】格納レジスタ94は、デコードステージ5
から与えられる命令コードOP6 を保持する。保持され
た命令コードOP6 は、命令変更器92及び選択回路9
7並びにメモリ・アクセスステージ62内のレジスタ9
5に与えられる。
The storage register 94 is used in the decoding stage 5
The instruction code OP 6 given by the above is held. The held instruction code OP 6 is stored in the instruction changer 92 and the selection circuit 9
7 and register 9 in the memory access stage 62
Given to 5.

【0041】選択回路97は、命令コードOP6 がスト
ア命令の場合にはレジスタファイル3からのデータD3
を、命令コードOP6 がその他の命令の場合には格納ア
ドレスD6 を、それぞれ選択して信号R6 を出力する。
When the instruction code OP 6 is a store instruction, the selection circuit 97 outputs the data D 3 from the register file 3.
If the instruction code OP 6 is another instruction, the storage address D 6 is selected and the signal R 6 is output.

【0042】実行ステージ61は、更にレジスタファイ
ル・アドレス比較器80、格納レジスタ81、レジスタ
ファイル・データセレクタ83、演算実行器84を含
む。
The execution stage 61 further includes a register file / address comparator 80, a storage register 81, a register file / data selector 83, and an operation executor 84.

【0043】レジスタファイル・アドレス比較器80
は、他の機能ユニット7〜9から得られる格納アドレス
7 ,D8 ,D9 および、機能ユニット6の命令に含ま
れるソースアドレスS11,S12を受け取る。そしてソー
スアドレスS11,S12と格納アドレスD7 ,D8 ,D9
を比較し、比較結果(一致/不一致)を示す選択信号S
17〜S19及びS27〜S29を出力する。詳細については後
で記述する。
Register file address comparator 80
Receives the storage addresses D 7 , D 8 and D 9 obtained from the other functional units 7 to 9 and the source addresses S 11 and S 12 included in the instruction of the functional unit 6. The source addresses S 11 , S 12 and the storage addresses D 7 , D 8 , D 9
Selection signal S indicating the comparison result (match / mismatch)
Outputs 17 to S 19 and S 27 to S 29 . Details will be described later.

【0044】格納レジスタ81は、デコードステージ5
から与えられる格納アドレスD6 を保持する。保持され
た格納アドレスD6 は、他の機能ユニットのアドレス比
較器80および、メモリ・アクセスステージ62内のレ
ジスタ82に与えられる。
The storage register 81 is used in the decoding stage 5
The storage address D 6 given from is held. The stored storage address D 6 is provided to the address comparator 80 of another functional unit and the register 82 in the memory access stage 62.

【0045】レジスタファイル・データ・セレクタ83
は、デコードステージ5を介して、レジスタファイル3
から与えられる2つのデータD1 ,D2 を受け取る。さ
らに、レジスタファイル・データ・セレクタ83は、他
の機能ユニットにおいて得られたメモリ・データMD7
〜MD9 をデータバイパス12を介して受け取る。レジ
スタファイル・データ・セレクタ83はアドレス比較器
80から与えられる選択信号S17〜S19及びS27〜S29
並びに他の機能ユニット7〜9のそれぞれで得られた3
つの信号BY6 に応答して動作する。詳細は後で記述す
る。
Register file data selector 83
Register file 3 via decode stage 5
It receives two data D 1 and D 2 given by In addition, the register file data selector 83 is provided with the memory data MD 7 obtained in another functional unit.
Receive MD 9 through data bypass 12. The register file data selector 83 receives the selection signals S 17 to S 19 and S 27 to S 29 supplied from the address comparator 80.
And 3 obtained in each of the other functional units 7-9
It operates in response to one signal BY 6 . Details will be described later.

【0046】演算実行器84はデータ・バス31及び3
2を介してレジスタファイル・データ・セレクタ83と
接続され、レジスタファイル・データ・セレクタ83に
よって選択されたデータに基づいて所定の演算を実行す
る。演算の実行結果は、レジスタ85及びメモリ・アド
レス比較器90に与えられる。これは、データ・メモリ
2をアクセスするためのアドレスである。
The operation executor 84 uses the data buses 31 and 3
It is connected to the register file data selector 83 via 2 and executes a predetermined operation based on the data selected by the register file data selector 83. The execution result of the operation is given to the register 85 and the memory / address comparator 90. This is an address for accessing the data memory 2.

【0047】メモリアクセスステージ62は、格納アド
レスR6 を保持するためのレジスタ82とレジスタ85
の演算結果のデータを保持するデータレジスタ86とを
含む。ライトバックステージ63は与えられた格納アド
レスにしたがって実行結果データをレジスタファイル3
に書き込む。
The memory access stage 62 has a register 82 and a register 85 for holding the storage address R 6.
And a data register 86 for holding the data of the calculation result of. The write back stage 63 transfers the execution result data to the register file 3 according to the given storage address.
Write in.

【0048】図2に示したレジスタファイル・アドレス
比較器80の一例を図3に示す。レジスタファイル・ア
ドレス比較器80は、ソースアドレスS11と、図1に示
した他の機能ユニット7〜9において扱われる命令の格
納アドレスD7 ,D8 ,D9との一致をそれぞれ検出す
る一致検出器811乃至813を備えている。またソー
スアドレスS12と、図1に示した他の機能ユニット7〜
9において扱われる命令の格納アドレスD7 ,D8 ,D
9 との一致をそれぞれ検出する一致検出器821乃至8
23を備えている。
An example of the register file / address comparator 80 shown in FIG. 2 is shown in FIG. The register file address comparator 80 detects a match between the source address S 11 and the storage addresses D 7 , D 8 and D 9 of the instructions handled in the other functional units 7 to 9 shown in FIG. 1, respectively. The detectors 811 to 813 are provided. The source address S 12 and the other functional units 7 to 7 shown in FIG.
Storage address D 7 of the instructions handled in 9, D 8, D
Match detectors 821 to 8 for respectively detecting a match with 9
Equipped with 23.

【0049】一致検出器811乃至813は、それぞれ
一致信号S17〜S19を発生する。また一致検出器821
乃至823は、それぞれ一致信号S27〜S29を発生す
る。例えば検出器811は、格納アドレスD7 とソース
アドレスS11との一致を検出し、一致信号S17を発生す
る。一致信号S17〜S19,S27〜S29は、演算実行器8
4において演算されるデータを選択するための信号とし
てレジスタファイル・データ・セレクタ83に与えられ
る。
The coincidence detectors 811 to 813 generate coincidence signals S 17 to S 19 , respectively. Also, the coincidence detector 821
Through 823 generate coincidence signals S 27 through S 29 , respectively. For example, the detector 811 detects a match between the storage address D 7 and the source address S 11 and generates a match signal S 17 . Coincidence signal S 17 ~S 19, S 27 ~S 29 , the arithmetic execution unit 8
It is given to the register file data selector 83 as a signal for selecting the data calculated in 4.

【0050】レジスタファイル・データ・セレクタ83
の一例を図4に示す。レジスタファイル・データ・セレ
クタ83は、データバス31に接続された出力端を有す
るトライステートバッファ910〜913と、データバ
ス32に接続された出力端を有するトライステートバッ
ファ920〜923とからなる。
Register file data selector 83
An example is shown in FIG. The register file data selector 83 includes tristate buffers 910 to 913 having output ends connected to the data bus 31 and tristate buffers 920 to 923 having output ends connected to the data bus 32.

【0051】トライステートバッファ910,920
は、それぞれレジスタファイル3から与えられるデータ
1 ,D2 を受け取る。また、トライステートバッファ
911〜913は、図1に示したデータバイパス12を
介して他の機能ユニットにおいて得られたメモリ・デー
タMD7 〜MD9 をそれぞれ受け取る。トライステート
バッファ920〜923も同様に、データバイパス12
を介して他の機能ユニットにおいて得られたメモリ・デ
ータMD7 〜MD9 をそれぞれ受け取る。
Tristate buffers 910 and 920
Respectively receives the data D 1 and D 2 given from the register file 3. Also, tri-state buffers 911 to 913, respectively receive the memory data MD 7 to MD 9 obtained in other functional units via a data bypass 12 shown in FIG. Similarly, the tri-state buffers 920 to 923 also have the data bypass 12
The memory data MD 7 to MD 9 obtained in the other functional units are respectively received via.

【0052】トライステートバッファ910〜913
は、レジスタファイル・アドレス比較器80から与えら
れる選択信号S17〜S19と機能ユニット7〜9において
それぞれメモリ・データが得られたことを示す信号BY
6 に従って制御される。例えば、トライステートバッフ
ァ911は、選択信号S17が高レベルで与えられかつ機
能ユニット7からの信号BY6 が高レベルで与えられた
とき、データバイパス12上のデータMD7 をデータバ
ス31に与える。一方、トライステートバッファ910
は、選択信号S17〜S19の全てが低レベルを示している
か、或いは機能ユニット7〜9から得られる信号BY6
が全て低レベルを示しているとき、レジスタファイル3
から与えられるデータD1 をデータバス31に与える。
トライステートバッファ920〜923についても同様
に動作する。
Tristate buffers 910 to 913
Is a signal BY indicating that the selection signals S 17 to S 19 given from the register file address comparator 80 and the memory data in the functional units 7 to 9 are obtained.
Controlled according to 6 . For example, the tri-state buffer 911 applies the data MD 7 on the data bypass 12 to the data bus 31 when the selection signal S 17 is applied at a high level and the signal BY 6 from the functional unit 7 is applied at a high level. . On the other hand, the tri-state buffer 910
Indicates that all of the selection signals S 17 to S 19 are low, or the signal BY 6 obtained from the functional units 7 to 9 is
Register file 3 when all indicate low levels
The data D 1 given by the above is given to the data bus 31.
The tristate buffers 920 to 923 operate similarly.

【0053】演算実行器84の一例を図5に示す。演算
実行器84は、データバス31,32を介して得られた
データをそれぞれ保持するレジスタ841,842と、
レジスタ841,842によって保持されたデータを用
いて演算を実行する演算器843からなる。
FIG. 5 shows an example of the arithmetic execution unit 84. The operation executor 84 has registers 841 and 842 which respectively hold data obtained via the data buses 31 and 32,
It is composed of an arithmetic unit 843 that executes an arithmetic operation using the data held by the registers 841 and 842.

【0054】メモリ・アドレス比較器の一例を図6に示
す。メモリ・アドレス比較器90は一致検出器901〜
903からなる。一致検出器901は他の機能ユニット
7で処理されている命令OP7 、及び機能ユニット7の
演算実行器84によって計算された書き込みメモリ・ア
ドレスM7 、並びにこの機能ユニット6で処理されてい
る命令OP6 、及びこの機能ユニット6の演算実行器8
4によって計算された読み出しアドレスM6 が入力され
る。一致検出器902,903も同様である。つまり一
致検出器902,903のいずれにもこの機能ユニット
6で処理されている命令OP6 、及びこの機能ユニット
6の演算実行器84によって計算された読み出しアドレ
スM6 が入力される。そして一致検出器902には他の
機能ユニット8で処理されている命令OP8 、及び機能
ユニット8の演算実行器84によって計算された書き込
みメモリ・アドレスM8 も入力される。一致検出器90
3には他の機能ユニット9で処理されている命令O
9 、及び機能ユニット9の演算実行器84によって計
算された書き込みメモリ・アドレスM9 も入力される。
An example of the memory address comparator is shown in FIG. The memory / address comparator 90 is a match detector 901-
It consists of 903. The coincidence detector 901 indicates the instruction OP 7 being processed by another functional unit 7, the write memory address M 7 calculated by the operation executor 84 of the functional unit 7, and the instruction being processed by this functional unit 6. OP 6 and operation executor 8 of this functional unit 6
The read address M 6 calculated by 4 is input. The same applies to the coincidence detectors 902 and 903. That is, the instruction OP 6 processed by the functional unit 6 and the read address M 6 calculated by the operation executor 84 of the functional unit 6 are input to both the coincidence detectors 902 and 903. Then, the coincidence detector 902 also receives the instruction OP 8 being processed by the other functional unit 8 and the write memory address M 8 calculated by the operation executor 84 of the functional unit 8. Coincidence detector 90
3 is an instruction O processed by another functional unit 9.
P 9 and the write memory address M 9 calculated by the operation executor 84 of the functional unit 9 are also input.

【0055】例えば検出器910は、命令コードOP7
がメモリ書き込み命令であり、かつOP6 がメモリ読み
出し命令であるとき、書き込みメモリ・アドレスM
7 と、読み出しアドレスM6 の一致を検出し、一致信号
BY7 を発生する。これはメモリ・データが得られたこ
とを示す信号である。信号BY8 ,BY9 も同様にして
得られる。信号BY7 〜BY9 は、メモリ・データを選
択するための信号としてメモリ・データ・セレクタ91
および、命令変更器92に与えられる。
For example, the detector 910 uses the instruction code OP 7
Is a memory write instruction and OP 6 is a memory read instruction, write memory address M
A match between 7 and the read address M 6 is detected, and a match signal BY 7 is generated. This is a signal indicating that the memory data has been obtained. The signals BY 8 and BY 9 are similarly obtained. The signals BY 7 to BY 9 are used as signals for selecting memory data by the memory data selector 91.
It is also given to the instruction changer 92.

【0056】メモリ・データ・セレクタ91の一例を図
7に示す。メモリ・データ・セレクタ91は、トライス
テートバッファ910〜913からなる。トライステー
トバッファ910は、メモリ・データバイパス10を介
して他の機能ユニット7〜9において格納されるべきメ
モリデータ(演算実行器84の出力データ)R7 〜R9
のそれぞれを受け取る。トライステートバッファ910
〜913は、メモリ・アドレス比較器90から与えられ
る信号BY7 〜BY9 に従って制御される。
FIG. 7 shows an example of the memory data selector 91. The memory data selector 91 includes tristate buffers 910 to 913. The tri-state buffer 910 stores memory data (output data of the arithmetic execution unit 84) R 7 to R 9 to be stored in the other functional units 7 to 9 via the memory / data bypass 10.
Receive each of. Tri-state buffer 910
~913 is controlled in accordance with signals BY 7 ~BY 9 provided from a memory address comparator 90.

【0057】例えば、トライステートバッファ911
は、信号BY7 が高レベルで与えられたとき、データバ
イパス10上のデータをデータバイパス12及びレジス
タ86に信号MD6 として与える。
For example, the tri-state buffer 911
Provides the data on data bypass 10 to data bypass 12 and register 86 as signal MD 6 when signal BY 7 is applied at a high level.

【0058】命令変更器の一例を図8に示す。命令変更
器92は、変更命令であるレジスタ・ファイル書き込み
命令を保持するレジスタ921とレジスタ95に接続さ
れた選択回路922からなる。選択回路922は命令コ
ードメモリ・アドレス比較器90から与えられた、メモ
リ・データが得られたことを示す信号BY7 〜BY
9と、自己のレジスタ94に接続される命令コードを受
け取る。選択回路922は、信号BY7 〜BY9 によっ
て制御される。すなわち、信号BY7 〜BY9 のうち1
個でも高レベルのものがある場合、レジスタ921に保
持された命令コードが選択され、レジスタ96に書き込
まれる。
FIG. 8 shows an example of the instruction changer. The instruction changer 92 includes a register 921 that holds a register file write instruction that is a change instruction and a selection circuit 922 that is connected to the register 95. The selection circuit 922 outputs the signals BY 7 to BY, which are given from the instruction code memory / address comparator 90 and indicate that the memory data has been obtained.
9 and the instruction code connected to its own register 94. The selection circuit 922 is controlled by the signals BY 7 to BY 9 . That is, one of the signals BY 7 to BY 9
If there is even a high level, the instruction code held in the register 921 is selected and written in the register 96.

【0059】図9を参照して動作について説明する。以
下の説明において図1に示したスーパスカラプロセッサ
20が図17を参照して説明した命令11〜13を実行
するものと仮定する。そしてパイプラインPL1が機能
ユニット6,パイプラインPL2が機能ユニット7,パ
イプラインPL3が機能ユニット8に相当しているもの
と仮定する。
The operation will be described with reference to FIG. In the following description, it is assumed that the superscalar processor 20 shown in FIG. 1 executes the instructions 11 to 13 described with reference to FIG. It is assumed that the pipeline PL1 corresponds to the functional unit 6, the pipeline PL2 corresponds to the functional unit 7, and the pipeline PL3 corresponds to the functional unit 8.

【0060】パイプラインPL1においては、期間T1
において命令11の処理の内、命令フェッチステージ4
における処理IFが行われ、期間T2 においては命令デ
コードステージ5における処理IDが行われる。実行ス
テージ61、メモリ・アクセス・ステージ62、ライト
バック・ステージ63における処理EXC,MEM,W
Bは、期間T3 ,T4 ,T5 においてそれぞれ処理され
る。
In the pipeline PL1, the period T 1
Instruction fetch stage 4 of the processing of instruction 11 in
Processing IF is performed, and processing ID in the instruction decoding stage 5 is performed in the period T 2 . Processes EXC, MEM, W in the execution stage 61, the memory access stage 62, and the write back stage 63
B is processed in the periods T 3 , T 4 , and T 5 , respectively.

【0061】一方、パイプラインPL2,PL3におい
て、期間T1 には命令11及び12の処理の内、命令フ
ェッチステージ4の処理IFが実行され、期間T2 にお
いては命令デコードステージ5における処理EXCが行
われる。パイプラインPL2においては、期間T3 にお
いてメモリ・アドレスが計算され、他の機能ユニット
6,8,9のメモリ・アドレスとが比較される。その結
果、パイプラインPL1において計算されたメモリ・ア
ドレスと一致していた場合にはメモリ・データバイパス
10を介して、パイプラインPL1のデータがパイプラ
インPL2に転送される。
[0061] On the other hand, in the pipeline PL2, PL3, among the processing of instructions 11 and 12 in the period T 1, is processed IF the execution of the instruction fetch stage 4, the process EXC in the instruction decode stage 5 in the period T 2 Done. In pipeline PL2, it is calculated memory address in the period T 3, and the memory address of the other functional units 6, 8 and 9 are compared. As a result, if the memory address calculated in the pipeline PL1 matches, the data in the pipeline PL1 is transferred to the pipeline PL2 via the memory data bypass 10.

【0062】また、パイプラインPL3においては、期
間T3 では待機するものの、期間T4 においては、既に
パイプラインPL2の実行データが得られているので、
データ・バス12を介して、データの転送が行われ、期
間T4 で実行ステージ62が処理される。
[0062] In the pipeline PL3, but waits during the period T 3, in a period T 4, since already running data pipeline PL2 is obtained,
Data is transferred via the data bus 12 and the execute stage 62 is processed during period T 4 .

【0063】図10は、図2と同様に示した、機能ユニ
ット7の構成図である。機能ユニット7のメモリ・アド
レス比較器90は、他の機能ユニット6、及び8,9の
メモリ・アドレスM6 ,M8 ,M9 と自身のメモリ・ア
ドレスM7 を比較する。また、他の機能ユニット6,
8,9の命令コードOP6 ,OP8 ,OP9 を参照す
る。これらの命令コードOP6 ,OP8 ,OP9 が書き
込み命令で、かつアドレスの一致が検出された場合、信
号BY6 ,BY8 ,BY9 を発生する。
FIG. 10 is a block diagram of the functional unit 7 shown similarly to FIG. The memory address comparator 90 of the functional unit 7 compares its own memory address M 7 with the memory addresses M 6 , M 8 and M 9 of the other functional units 6 and 8, 9. In addition, other functional units 6,
The instruction codes OP 6 , OP 8 and OP 9 of 8 and 9 are referred to. If these instruction code OP 6, OP 8, OP 9 is a write command, and an address match is detected, it generates a signal BY 6, BY 8, BY 9 .

【0064】さらに、機能ユニット7のメモリ・データ
・セレクタ91は、信号BY6 ,BY8 ,BY9 に応答
して、メモリ・データバス10を介して得られたデータ
6,R8 ,R9 を信号MD7 として選択的にレジスタ
86に与える。つまり、命令コードが書き込み命令とな
っている他の機能ユニットとメモリアドレスが一致した
場合、その機能ユニットのレジスタ81から得られたデ
ータが、機能ユニット7のレジスタ86に転送される。
Further, the memory data selector 91 of the functional unit 7 is responsive to the signals BY 6 , BY 8 and BY 9 to obtain the data R 6 , R 8 and R obtained via the memory data bus 10. 9 is selectively applied to the register 86 as the signal MD 7 . That is, when the memory address matches another functional unit whose instruction code is a write instruction, the data obtained from the register 81 of the functional unit is transferred to the register 86 of the functional unit 7.

【0065】すなわち機能ユニット7は、データをデー
タ・メモリ2から読み出すことなく得ることができるの
で、命令12の処理EXCは、命令11の処理WBの終
了を待つ必要がなくなる。
That is, since the functional unit 7 can obtain the data without reading from the data memory 2, the processing EXC of the instruction 12 does not need to wait for the end of the processing WB of the instruction 11.

【0066】図11に機能ユニット7の命令変更器92
の構成を示す。機能ユニット7の命令変更器92は、信
号BY6 ,BY8 ,BY9 に応答して、レジスタ95ま
たは、レジスタ921を選択する。信号BY6 ,B
8 ,BY9 のうち1個でも高レベルのものがある場
合、レジスタ921に保持された命令コードが選択さ
れ、レジスタ96に書き込まれることにより、命令を変
更することができる。そのため、無駄なメモリアクセス
命令を実行する必要がなくなる。
FIG. 11 shows the instruction changer 92 of the functional unit 7.
Shows the configuration of. The instruction changer 92 of the functional unit 7 selects the register 95 or the register 921 in response to the signals BY 6 , BY 8 and BY 9 . Signals BY 6 and B
When at least one of Y 8 and BY 9 has a high level, the instruction code held in the register 921 is selected and written in the register 96, so that the instruction can be changed. Therefore, it becomes unnecessary to execute useless memory access instructions.

【0067】図12に機能ユニット8のレジスタファイ
ル・アドレス比較器80の構成を示す。機能ユニット8
のレジスタファイル・アドレス比較器80は、他の機能
ユニット6,7,9の格納アドレスD6 ,D7 ,D9
自身命令に含まれるソース・アドレスS11,S12を比較
する。アドレスの一致が検出された場合、選択信号
16,S17,S19及び、S26,S27,S29を発生する。
FIG. 12 shows the configuration of the register file / address comparator 80 of the functional unit 8. Functional unit 8
Register file address comparator 80 compares the source address S 11, S 12 contained in the storage address D 6, D 7, D 9 and its own instruction of other functional units 6, 7, 9. When an address match is detected, the selection signals S 16 , S 17 , S 19 and S 26 , S 27 , S 29 are generated.

【0068】図13に機能ユニット8のレジスタファイ
ル・データ・セレクタ83の構成を示す。機能ユニット
8のレジスタファイル・データ・セレクタ83は、選択
信号S16,S17,S19及びS26,S27,S29、並びに他
の機能ユニット6,7,9からの、メモリ・データが得
られたことを示す信号BY8 に応答して、データバイパ
ス12上の他の機能ユニット6,7,9において得られ
たメモリ・データMD6 ,MD7 ,MD9 をデータバス
31に与える。
FIG. 13 shows the configuration of the register file data selector 83 of the functional unit 8. The register file data selector 83 of the functional unit 8 receives the memory data from the selection signals S 16 , S 17 , S 19 and S 26 , S 27 , S 29 , and the other functional units 6, 7, and 9. In response to the obtained signal BY 8 , the memory data MD 6 , MD 7 , MD 9 obtained in the other functional units 6, 7, 9 on the data bypass 12 are applied to the data bus 31.

【0069】すなわち、データ選択信号S16,S17,S
19及び、S26,S27,S29が高レベルで与えられ、かつ
信号BY6 ,BY7 ,BY9 が高レベルで与えられたと
き、その信号に応じて、データバイパス12上のデータ
MD6 ,MD7 ,MD9 をデータバス31乃至32に与
える。
That is, the data selection signals S 16 , S 17 , S
When 19 and S 26 , S 27 , S 29 are given at a high level and the signals BY 6 , BY 7 , BY 9 are given at a high level, the data MD on the data bypass 12 is responded according to the signals. 6 , MD 7 , MD 9 are supplied to the data buses 31 to 32.

【0070】従って、他の機能ユニット6,7,9のデ
ータが機能ユニット8に転送される。すなわち機能ユニ
ット8は、データをレジスタファイル3に書き込まれる
のを待つことなく得ることができるので、命令13の処
理IDは、命令12の処理WBの終了を待つ必要がなく
なる。
Therefore, the data of the other functional units 6, 7, 9 are transferred to the functional unit 8. That is, since the functional unit 8 can obtain the data without waiting for the data to be written in the register file 3, the process ID of the instruction 13 does not need to wait for the end of the process WB of the instruction 12.

【0071】以上のようにして命令12,13は待機時
間を短縮することができる。つまり、図9に示されるよ
うに、期間T3 の終了時点でパイプラインPL1のデー
タがメモリ・データバス10を介してパイプラインPL
2に与えられるので、期間T 4 で停止することなく命令
12を継続して処理できる。また、メモリ読み出し命令
を実行することもなくなる。
As described above, the instructions 12 and 13 are waiting
The time can be shortened. That is, as shown in FIG.
Sea urchin, period T3Of the pipeline PL1 at the end of
Data through the memory / data bus 10 through the pipeline PL
Given to 2, so the period T FourInstruction without stopping at
12 can be processed continuously. Also, a memory read instruction
Will not be executed.

【0072】また、パイプラインPL2に与えられたデ
ータがデータバス12を介してパイプラインPL3に与
えられるので、期間T4 において実行ステージ(EX
C)を処理することができる。
[0072] Further, since the data applied to the pipe line PL2 is supplied to a pipe line PL3 via the data bus 12, execution stage in the period T 4 (EX
C) can be processed.

【0073】[0073]

【発明の効果】以上のように、この発明によれば、アド
レスの一致を検出し、他のパイプラインのメモリ書き込
みデータを、メモリに書き込まれる以前の他のパイプラ
インに直接与えるので、命令の実行に要する時間を短縮
できる。
As described above, according to the present invention, the address match is detected, and the memory write data of another pipeline is directly applied to another pipeline before being written in the memory. The time required for execution can be shortened.

【0074】また、不必要になったメモリ読み出し命令
の実行を中止することにより、メモリアクセスを減少す
ることができる。
Further, the memory access can be reduced by stopping the execution of the unnecessary memory read instruction.

【0075】さらに、上記の手段によって得られたメモ
リ読み出し命令によって得られるはずのデータを他のパ
イプラインに直接与えるので、命令の実行に要する時間
を短縮できる。
Furthermore, since the data which should be obtained by the memory read instruction obtained by the above means is directly given to another pipeline, the time required for executing the instruction can be shortened.

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

【図1】この発明の一実施例を示すブロック図である。FIG. 1 is a block diagram showing an embodiment of the present invention.

【図2】機能ユニット6の構成図である。FIG. 2 is a configuration diagram of a functional unit 6.

【図3】機能ユニット6のレジスタファイル・アドレス
比較器の構成図である。
FIG. 3 is a configuration diagram of a register file / address comparator of a functional unit 6.

【図4】機能ユニット6のレジスタファイル・データ・
セレクタの構成図である。
[Fig. 4] Register file data of functional unit 6
It is a block diagram of a selector.

【図5】演算実行器の構成図である。FIG. 5 is a configuration diagram of an arithmetic execution unit.

【図6】メモリ・アドレス比較器の構成図である。FIG. 6 is a configuration diagram of a memory / address comparator.

【図7】メモリ・データ・セレクタの構成図である。FIG. 7 is a configuration diagram of a memory data selector.

【図8】命令変更器の構成図である。FIG. 8 is a configuration diagram of an instruction changer.

【図9】この発明の一実施例の動作を示すタイミング図
である。
FIG. 9 is a timing chart showing the operation of the embodiment of the present invention.

【図10】機能ユニット7の構成図である。FIG. 10 is a configuration diagram of a functional unit 7.

【図11】機能ユニット7の命令変更器の構成図であ
る。
11 is a configuration diagram of an instruction changer of the functional unit 7. FIG.

【図12】機能ユニット8のレジスタファイル・アドレ
ス比較器の構成図である。
12 is a configuration diagram of a register file / address comparator of the functional unit 8. FIG.

【図13】機能ユニット8のレジスタファイル・データ
・セレクタの構成図である。
13 is a configuration diagram of a register file data selector of the functional unit 8. FIG.

【図14】従来の技術を示すブロック図である。FIG. 14 is a block diagram showing a conventional technique.

【図15】従来の技術を示すタイミング図である。FIG. 15 is a timing diagram showing a conventional technique.

【図16】従来の技術を示すタイミング図である。FIG. 16 is a timing diagram showing a conventional technique.

【図17】従来の技術を示すタイミング図である。FIG. 17 is a timing diagram showing a conventional technique.

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

5 命令デコードステージ 10 メモリ・データ・バイパス 12 データ・バイパス 80 レジスタファイル・アドレス比較器 83 レジスタファイル・データ・セレクタ 90 メモリ・アドレス比較器 91 メモリ・データ・セレクタ 92 命令変更器 5 instruction decode stage 10 memory data bypass 12 data bypass 80 register file address comparator 83 register file data selector 90 memory address comparator 91 memory data selector 92 instruction modifier

Claims (4)

【特許請求の範囲】[Claims] 【請求項1】 複数のパイプライン処理実行手段と、 与えられた複数の命令をフェッチし、フェッチされた前
記複数の命令の中から同時に実行出来る所定の命令を見
つけ、前記パイプライン処理実行手段に前記所定の命令
を投入する命令付与手段と、 前記所定の命令の処理に際してデータを比較的短期に保
持する一時データ記憶手段と、 データを比較的長期に保持する外部メモリと、 前記パイプライン処理実行手段の扱うデータが伝送され
るデータ・バイパス・バスと、を備え、 前記パイプライン処理実行手段の各々は、前記データ・
バイパス・バスによって伝送されたデータを使用するか
否かを決定するバイパス制御手段を有する並列計算機。
1. A plurality of pipeline processing execution means, a plurality of given instructions are fetched, a predetermined instruction that can be simultaneously executed is found from the plurality of fetched instructions, and the pipeline processing execution means is provided. An instruction giving means for inputting the predetermined instruction, a temporary data storage means for holding the data for a relatively short period during the processing of the predetermined instruction, an external memory for holding the data for a relatively long term, and the pipeline processing execution A data bypass bus for transmitting data handled by the means, and each of the pipeline processing execution means includes the data bypass bus.
A parallel computer having bypass control means for determining whether to use the data transmitted by the bypass bus.
【請求項2】 一の前記パイプライン処理実行手段にお
ける前記バイパス制御手段は、 前記一のパイプライン処理実行手段に対応する一の前記
所定の命令において得られた前記外部メモリのメモリア
ドレスと、他の前記パイプライン処理実行手段に対応す
る他の前記所定の命令において得られた前記外部メモリ
のメモリアドレスとの一致を検出する外部メモリアドレ
ス一致検出手段と、 前記外部メモリアドレス一致検出手段の出力に従って、
前記データ・バイパス・バスによって伝送されたデータ
を用いるか、前記外部メモリから別途ロードされたデー
タを用いるかを選択する第1のデータ供与手段と、を備
える請求項1記載の並列計算機。
2. The bypass control means in the one pipeline processing execution means, the memory address of the external memory obtained in one of the predetermined instructions corresponding to the one pipeline processing execution means, and the like. External memory address coincidence detecting means for detecting coincidence with the memory address of the external memory obtained in the other predetermined instruction corresponding to the pipeline processing executing means, and according to the output of the external memory address coincidence detecting means. ,
The parallel computer according to claim 1, further comprising a first data providing unit that selects whether to use the data transmitted by the data bypass bus or the data separately loaded from the external memory.
【請求項3】 前記外部メモリアドレス一致検出手段
は、データがバイパスされたか否かを示す一致信号を出
力し、 前記一致信号が一致を示す場合には、前記一の所定の命
令を、バイパスされた前記データを前記一時データ記憶
手段に格納する命令に変更する命令変更手段を更に備え
る請求項2記載の並列計算機。
3. The external memory address coincidence detection means outputs a coincidence signal indicating whether or not data is bypassed, and when the coincidence signal indicates coincidence, the one predetermined instruction is bypassed. The parallel computer according to claim 2, further comprising an instruction changing unit that changes the data into an instruction to store the data in the temporary data storage unit.
【請求項4】 一の前記パイプライン処理実行手段にお
ける前記バイパス制御手段は、 前記一のパイプライン処理実行手段に対応する一の前記
所定の命令において得られた前記一時データ記憶手段の
アドレスと、他の前記パイプライン処理実行手段に対応
する他の前記所定の命令において得られた前記一時デー
タ記憶手段のアドレスとの一致を検出する一時データ記
憶手段アドレス一致検出手段と、 他の前記パイプライン処理実行手段の前記外部メモリア
ドレス一致検出手段の出力及び一時データ記憶手段アド
レス一致検出手段の出力に従って、前記データ・バイパ
ス・バスによって伝送されたデータを用いるか否かを選
択する第2のデータ供与手段と、を更に備える請求項3
記載の並列計算機。
4. The bypass control means in the one pipeline processing execution means, the address of the temporary data storage means obtained in the one predetermined instruction corresponding to the one pipeline processing execution means, Temporary data storage means address coincidence detection means for detecting coincidence with the address of the temporary data storage means obtained in the other predetermined instruction corresponding to the other pipeline processing execution means, and the other pipeline processing Second data providing means for selecting whether to use the data transmitted by the data bypass bus according to the output of the external memory address coincidence detecting means of the executing means and the output of the temporary data storing means address coincidence detecting means. And further comprising:
The described parallel computer.
JP4292693A 1992-10-30 1992-10-30 Parallel computers Pending JPH06139071A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4292693A JPH06139071A (en) 1992-10-30 1992-10-30 Parallel computers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4292693A JPH06139071A (en) 1992-10-30 1992-10-30 Parallel computers

Publications (1)

Publication Number Publication Date
JPH06139071A true JPH06139071A (en) 1994-05-20

Family

ID=17785084

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4292693A Pending JPH06139071A (en) 1992-10-30 1992-10-30 Parallel computers

Country Status (1)

Country Link
JP (1) JPH06139071A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07271583A (en) * 1994-03-31 1995-10-20 Internatl Business Mach Corp <Ibm> System and method for processing of operation
JPH08272611A (en) * 1995-03-31 1996-10-18 Nec Corp Microprocessor
JP2015125526A (en) * 2013-12-26 2015-07-06 Necプラットフォームズ株式会社 Instruction processor and instruction processing method therefor

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07271583A (en) * 1994-03-31 1995-10-20 Internatl Business Mach Corp <Ibm> System and method for processing of operation
JPH08272611A (en) * 1995-03-31 1996-10-18 Nec Corp Microprocessor
JP2015125526A (en) * 2013-12-26 2015-07-06 Necプラットフォームズ株式会社 Instruction processor and instruction processing method therefor

Similar Documents

Publication Publication Date Title
US6233670B1 (en) Superscalar processor with direct result bypass between execution units having comparators in execution units for comparing operand and result addresses and activating result bypassing
US5293500A (en) Parallel processing method and apparatus
US4916652A (en) Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
JP2539199B2 (en) Digital processor controller
US6327650B1 (en) Pipelined multiprocessing with upstream processor concurrently writing to local register and to register of downstream processor
KR930004214B1 (en) Data processing system
JP2840444B2 (en) Method for operating an arithmetic pipeline and data processing apparatus
CA2016532C (en) Serializing system between vector instruction and scalar instruction in data processing system
JP2004516546A (en) Exception handling in pipelined processors
US6192461B1 (en) Method and apparatus for facilitating multiple storage instruction completions in a superscalar processor during a single clock cycle
JP3400458B2 (en) Information processing device
JPH10228376A (en) Method and program for processing multiple-register instruction
JP3797570B2 (en) Apparatus and method using semaphore buffer for semaphore instructions
JPH06195229A (en) Apparatus for interrupt handling in pipeline processor
JP2000330788A (en) Computer system
JP2682232B2 (en) Floating point processor
JPH06139071A (en) Parallel computers
JP2000330791A (en) Computer system and its operating method
JPH06168263A (en) Vector processor
JPH0950376A (en) Data processor
JP2538993B2 (en) Operand store cache memory store control method
JP3461887B2 (en) Variable length pipeline controller
JP2821328B2 (en) Parallel computer
JP2920968B2 (en) Instruction processing order control method

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20090124

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees