JP2988965B2 - Pipeline information processing circuit - Google Patents

Pipeline information processing circuit

Info

Publication number
JP2988965B2
JP2988965B2 JP2147499A JP14749990A JP2988965B2 JP 2988965 B2 JP2988965 B2 JP 2988965B2 JP 2147499 A JP2147499 A JP 2147499A JP 14749990 A JP14749990 A JP 14749990A JP 2988965 B2 JP2988965 B2 JP 2988965B2
Authority
JP
Japan
Prior art keywords
data
register
output
stage
operation result
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
JP2147499A
Other languages
Japanese (ja)
Other versions
JPH0440519A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2147499A priority Critical patent/JP2988965B2/en
Publication of JPH0440519A publication Critical patent/JPH0440519A/en
Priority to US08/408,125 priority patent/US5590365A/en
Application granted granted Critical
Publication of JP2988965B2 publication Critical patent/JP2988965B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage

Landscapes

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

Description

【発明の詳細な説明】 [発明の目的] (産業上の利用分野) この発明は、パイプライン処理方式によりデータ処理
を行うパイプライン情報処理回路に関する。
The present invention relates to a pipeline information processing circuit that performs data processing by a pipeline processing method.

(従来の技術) 近年、RISC(Reduced Insruction Set Computer)
方式のプロセッサが普及しつつある。RISCプロセッサの
特徴として、処理がパイプラインで行われていることが
挙げられる。
(Prior art) In recent years, RISC (Reduced Insruction Set Computer)
Processor is becoming popular. A feature of the RISC processor is that processing is performed in a pipeline.

典型的なRISC方式の命令実行パイプラインの例を説明
する。第4図は、従来のパイプライン情報処理回路のブ
ロック図である。
An example of a typical RISC instruction execution pipeline will be described. FIG. 4 is a block diagram of a conventional pipeline information processing circuit.

このパイプライン情報処理回路は、命令フェッチ(F
ステージ)、デコード(Dステージ)、処理実行(Eス
テージ)、レジスタファイル31へのライトバック(Wス
テージ)の4段パイプラインで動作しているものとす
る。
This pipeline information processing circuit includes an instruction fetch (F
Stage), decode (D stage), process execution (E stage), and write-back to register file 31 (W stage).

Dステージでレジスタファイル31から読み出されたソ
ースデータは、このステージの最後で演算器33の入力レ
ジスタ35a,35bにラッチされる。そして、Eステージの
最後で演算結果が出力レジスタ37に出力され、Wステー
ジの最後で演算結果がレジスタファイル31へ書き戻され
る。
Source data read from the register file 31 in the D stage is latched in the input registers 35a and 35b of the arithmetic unit 33 at the end of this stage. The operation result is output to the output register 37 at the end of the E stage, and the operation result is written back to the register file 31 at the end of the W stage.

また、データバス301,303を介して演算器33の出力お
よび出力レジスタ37から1つずつのデータのバイパスが
行われる。このバイパスは、バイパス制御部39によって
制御されている。第5図に、バイパス制御部39のブロッ
ク図を示す。
In addition, the output of the arithmetic unit 33 and the data from the output register 37 are bypassed one by one via the data buses 301 and 303. This bypass is controlled by the bypass control unit 39. FIG. 5 is a block diagram of the bypass control unit 39.

バイパス制御部39の処理を、第6図に示すタイミング
チャートを参照して説明する。
The processing of the bypass controller 39 will be described with reference to the timing chart shown in FIG.

実行フロー1では、Dステージで入力レジスタ35a,35
bにレジスタ番号F0,F1のデータを読み込み、Eステージ
で行った演算結果を、Wステージでレジスタファイル31
内のレジスタ番号F2に書き戻す。実行フロー2では、入
力レジスタ35aにレジスタ番号F2のデータを読み込み、
入力レジスタ35bにレジスタファイル31内のレジスタ番
号F3のデータを読み込む。そして、演算結果をレジスタ
ファイル31内のレジスタ番号F4に書き戻している。
In the execution flow 1, in the D stage, the input registers 35a, 35
b, the data of the register numbers F0 and F1 are read, and the operation result performed in the E stage is stored in the register file 31 in the W stage.
Write back to register number F2. In the execution flow 2, the data of the register number F2 is read into the input register 35a,
The data of the register number F3 in the register file 31 is read into the input register 35b. Then, the operation result is written back to the register number F4 in the register file 31.

実行フロー2でレジスタ番号F2のデータを読み込む
際、実行フロー1のEステージのレジスタ番号F2の1つ
のデータが、データバス301を介して入力レジスタ35aへ
バイパスされている。このとき、レジスタ41E,41Wに
は、実行フロー1の演算結果を書き戻すレジスタファイ
ル31内のレジスタ番号(以下、ターゲットレジスタ番号
と呼ぶ)が保持されている。レジスタ41Eに保持されて
いるEステージのターゲットレジスタ番号305は、比較
器43によって実行フロー2のDステージでラッチすべき
データのレジスタ番号307と比較される。
When reading the data of the register number F2 in the execution flow 2, one data of the register number F2 of the E stage of the execution flow 1 is bypassed to the input register 35a via the data bus 301. At this time, the registers 41E and 41W hold register numbers (hereinafter, referred to as target register numbers) in the register file 31 in which the operation results of the execution flow 1 are written back. The target register number 305 of the E stage held in the register 41E is compared with the register number 307 of the data to be latched in the D stage of the execution flow 2 by the comparator 43.

ターゲットレジスタ番号305とレジスタ番号307は共に
F2であるため、一致信号309がプライオリティ判定器45
へ出力される。プライオリティ判定器45およびセレクタ
47により、Eステージのバイパスデータ301が選択され
て入力レジスタ35aへバイパスされる。
Both target register number 305 and register number 307
Since it is F2, the match signal 309 is output from the priority determination unit 45.
Output to Priority judgment unit 45 and selector
By 47, the bypass data 301 of the E stage is selected and bypassed to the input register 35a.

このように、現在パイプライン上に、レジスタ番号が
一致するデータが存在した場合、実行フロー2では実行
フロー1の演算結果がレジスタファイル31に書き戻され
る前に処理を開始することが出来る。
As described above, when data having the same register number exists in the current pipeline, the processing can be started in the execution flow 2 before the operation result of the execution flow 1 is written back to the register file 31.

一方、演算器33、入力レジスタ35a,35b、および出力
レジスタ37の構成は、第7図(A)、(B)のようにな
っている。
On the other hand, the configurations of the arithmetic unit 33, the input registers 35a and 35b, and the output register 37 are as shown in FIGS. 7 (A) and 7 (B).

第7図(A)は、複数のデータを一括して処理する場
合が、第7図(B)は、各入力レジスタ35a,35bに読み
込まれた1つずつのデータを処理する場合が示されてい
る。複数のデータを一括して処理する演算器33の例とし
ては、特開昭64−14636がある。
FIG. 7A shows a case where a plurality of data are processed collectively, and FIG. 7B shows a case where one data read into each of the input registers 35a and 35b is processed. ing. Japanese Patent Application Laid-Open No. 64-14636 discloses an example of the arithmetic unit 33 for processing a plurality of data at once.

従来のパイプライン情報処理回路に用いられていた演
算器33は、1つずつのデータを処理することしかできな
かった。
The arithmetic unit 33 used in the conventional pipeline information processing circuit can only process one data at a time.

(発明が解決しようとする課題) 従来のパイプライン情報処理回路は、データをバイパ
スする際、一回の転送で1つのデータしか転送できな
い。このため、演算器によって複数のデータを一括して
処理させることができなかった。また、レジスタファイ
ルから演算器にデータを供給する際や、レジスタファイ
ルに演算結果を格納する際にも、複数のレジスタにアク
セスしなければならなかった。これらにより、パイプラ
イン処理の効率が悪いという問題があった。
(Problem to be Solved by the Invention) In a conventional pipeline information processing circuit, when bypassing data, only one data can be transferred in one transfer. For this reason, a plurality of data cannot be processed collectively by the arithmetic unit. Also, a plurality of registers have to be accessed when data is supplied from a register file to an arithmetic unit or when an operation result is stored in a register file. As a result, there is a problem that the efficiency of the pipeline processing is low.

この問題を解決するため、複数のデータを高速に転送
する場合、ターゲットレジスタ番号を保持するレジスタ
をマルチバスポートにし、データバスの本数を増やして
複数のデータを並列に送る方法がある。しかしながら、
この方法では、レジスタの回路が複雑となり、バイパス
の本数が増加し、さらに比較器がデータ数に比例して多
くなることなどにより、バイパス制御部が大型化してし
まうという欠点がある。
In order to solve this problem, when transferring a plurality of data at a high speed, there is a method of transmitting a plurality of data in parallel by increasing the number of data buses by using a register holding a target register number as a multi-bus port. However,
This method has the drawback that the circuit of the register becomes complicated, the number of bypasses increases, and the number of comparators increases in proportion to the number of data.

そこでこの発明は、このような従来の事情に鑑みてな
されたものであり、その目的とするところは、複数のデ
ータを同時に転送させることにより、複数のデータを一
括して演算させることが可能なパイプライン情報処理回
路を提供することにある。
Therefore, the present invention has been made in view of such a conventional situation, and an object of the present invention is to allow a plurality of data to be simultaneously transferred, so that a plurality of data can be operated collectively. It is to provide a pipeline information processing circuit.

[発明の構成] (課題を解決するための手段) 上記目的を達成するために、本願第1の発明は、レジ
スタに保持される複数のデータを一度に出力するレジス
タ制御手段と、複数のデータを一括して演算する演算手
段と、この演算手段から出力される演算結果と、前記レ
ジスタ制御手段から出力されるデータとを比較し、次回
の演算対象にすべきデータを選択して前記演算手段へバ
イパス転送するバイパス制御手段とを有し、前記バイパ
ス制御手段は、演算用に入力された複数のデータそれぞ
れに対し、演算に使用されたデータであるか否かを表す
有効フラグを保持する保持手段を有するように構成され
ている。
[Structure of the Invention] (Means for Solving the Problems) In order to achieve the above object, a first invention of the present application provides a register control means for outputting a plurality of data held in a register at once, and a plurality of data Means for calculating the data in a batch, and comparing the operation result output from the operation means with the data output from the register control means, selecting data to be subjected to the next operation and selecting the operation means And a bypass control unit for performing a bypass transfer to the bypass control unit, wherein the bypass control unit holds, for each of the plurality of data input for the operation, a valid flag indicating whether or not the data is used for the operation. It is configured to have means.

また、本願第2の発明は、前記バイパス手段は、さら
に、前記演算手段の演算結果のレジスタ番号と、次回の
演算対象となるレジスタ番号とを比較する比較手段と、
この比較手段の比較結果が同一レジスタ番号であり、前
記有効フラグが演算に使用されたデータであることを表
した場合、前記演算手段から出力された演算結果を次回
の演算対象にすべきデータとして選択する選択手段とを
有する構成となっている。
Further, in the second invention of the present application, the bypass means further includes a comparing means for comparing a register number of an operation result of the operation means with a register number to be operated next time,
If the comparison result of the comparison means is the same register number and the valid flag indicates that the data is used for the calculation, the calculation result output from the calculation means is used as data to be subjected to the next calculation. And selecting means for selecting.

また、本願第3の発明は、複数のデータを記憶するレ
ジスタ番号で表される複数のレジスタから成るレジスタ
ファイルと、独立して単精度データ項目をそれぞれ受け
取れる複数のフィールドを有する第一、第二入力ポート
の各々と、前記第一、第二入力ポートのそれぞれの前記
フィールドの一つに対応して、独立してそれぞれ単精度
データ項目を出力できる複数のフィールドを有する出力
ポートと、前記第一入力ポートの対応するフィールドか
ら入力される前記単精度データ項目と、前記第二入力ポ
ートの対応するフィールドから演算結果データとして入
力される前記単精度データ項目との、それぞれ独立した
算術演算を実行することにより、並行して複数の単精度
算術演算を行うことができ、前記演算結果データを前記
出力ポートの複数フィールドに供給する演算器と、前記
演算器の前記出力ポートとレジスタファイルとに接続さ
れ、複数のフィールドを有し、該複数フィールドのうち
の一つに対応する出力ポートの複数フィールドからの各
々の前記演算結果データを記憶するように構成されてお
り、前記演算結果データを書き戻しデータとしてレジス
タファイルに転送する出力レジスタと、前記レジスタフ
ァイルと前記演算器と前記出力レジスタとに接続され、
複数のセレクタを供給するバイパス制御部とを有し、前
記複数のセレクタは、前記演算結果データと前記書き戻
しデータを、少なくとも前記出力ポートの前記フィール
ドか、または、前記出力レジスタの前記フィールドの少
なくとも一つか、のうちの一つから、前記演算器の第
一、第二入力ポートのフィールドのいずれかへバイパス
して転送し、また、レジスタファイル内のデータを前記
レジスタファイルから、前記演算器の第一、第二入力ポ
ートの前記フィールドのいずれかへバイパスせずに転送
するように構成されている。
Further, the third invention of the present application provides a register file including a plurality of registers represented by register numbers for storing a plurality of data, and a first file and a second file having a plurality of fields that can independently receive single-precision data items. An output port having a plurality of fields each of which can independently output a single-precision data item, corresponding to each of the input ports and one of the fields of the first and second input ports, respectively; Independent arithmetic operations are performed on the single-precision data item input from the corresponding field of the input port and the single-precision data item input as operation result data from the corresponding field of the second input port. Accordingly, a plurality of single precision arithmetic operations can be performed in parallel, and the operation result data is stored in the plurality of output ports of the output port. And a plurality of fields connected to the output port of the calculator and the register file, and each of the plurality of fields of the output port corresponding to one of the plurality of fields. An output register configured to store the operation result data, transferring the operation result data to a register file as write-back data, connected to the register file, the operation unit, and the output register;
A bypass control unit that supplies a plurality of selectors, wherein the plurality of selectors are configured to store the operation result data and the write-back data in at least the field of the output port or at least the field of the output register. From one of the first and second input ports of the computing unit, by-passing and transferring the data in the register file from the register file to the one of the computing unit. It is configured to transfer to any of the fields of the first and second input ports without bypassing.

また、本願第4の発明は、前記演算器は、各々独立し
て第一の算術演算と第二の算術演算を行うことのできる
複数の独立した部分から成るように構成されている。
Further, in the fourth invention of the present application, the arithmetic unit is configured to include a plurality of independent portions that can independently perform the first arithmetic operation and the second arithmetic operation.

また、本願第5の発明は、前記バイパス制御部は、さ
らに、出力ポートのフィールドから、出力レジスタに転
送される演算器の演算結果が記憶されているレジスタの
レジスタ番号または、出力レジスタのフィールドからレ
ジスタファイルに転送される、演算器の以前の演算結果
が記憶されているレジスタのレジスタ番号と、前記演算
器の次回の演算用にそこからオペランドが使用される
が、実際にはまだ取得されていない入力データのレジス
タのレジスタ番号とを比較する比較器を有するように構
成されている。
Further, in the fifth invention of the present application, the bypass control unit may further include, from a field of an output port, a register number of a register storing a calculation result of the arithmetic unit transferred to the output register, or a field of the output register. The register number of the register in which the previous operation result of the operation unit is transferred to the register file, and the operand is used therefrom for the next operation of the operation unit, but is not actually obtained yet. It is configured to have a comparator for comparing the input data with the register number of the register.

また、本願第6の発明は、前記各々のセレクタは、前
記演算器での演算結果が記憶されているレジスタのレジ
スタ番号が、前記演算器での次回の演算用にオペランド
が取得されるレジスタのレジスタ番号と等しい場合に
は、他のセレクタが一のレジスタから第一、第二入力ポ
ートのフィールドの一つにデータ項目を転送するのと並
行して、前記演算器での演算結果を、前記演算器の第
一、第二入力ポートのフィールドの一つに直接転送可能
であるように構成されている。
Further, in the sixth invention of the present application, each of the selectors may be configured such that a register number of a register storing an operation result in the arithmetic unit is a register number of a register from which an operand is obtained for a next arithmetic operation in the arithmetic unit. If the same as the register number, in parallel with another selector transferring a data item from one register to one of the fields of the first and second input ports, the operation result in the operation unit is It is configured so that it can be directly transferred to one of the fields of the first and second input ports of the arithmetic unit.

また、本願第7の発明は、前記バイパス制御部は、さ
らに、各々のレジスタ番号について比較結果が一致を示
した場合には、それぞれのレジスタ番号のうち、前記演
算結果データとして選択されるオペランドを最もプライ
オリティの高いものとして用い、前記書き戻しデータを
次にプライオリティの高いものとして用い、レジスタフ
ァイルから受け取るデータを三番目にプライオリティの
高いものとして用いることを決定するプライオリティ判
定器を有するように構成されている。
Further, in the seventh invention of the present application, the bypass control unit further includes, when the comparison result indicates a match for each register number, an operand selected as the operation result data among the register numbers. It is configured to have a priority determiner for deciding to use the write-back data as the next highest priority, use the write-back data as the next highest priority, and use the data received from the register file as the third highest priority. ing.

また、本願第8の発明は、命令をフェッチするフェッ
チステージと、前記命令をデコードおよびロードするデ
コードステージと、前記命令を実行する実行ステージ
と、前記命令の実行に基づくデータをレジスタファイル
に書き戻すライトバックステージとの、少なくとも4つ
のパイプラインステージを有し、前記データは、デコー
ドステージで前記演算器の入力ポートにラッチされ、演
算結果データは、実行ステージで前記演算器の出力ポー
トから出力レジスタに転送され、書き戻しデータは、ラ
イトバックステージで出力レジスタからレジスタファイ
ルに転送され、前記複数のセレクタは、フェッチステー
ジで取得される命令によって必要とされるレジスタ番号
と、少なくとも、前記演算器の前記出力ポートから受け
取られる前記演算結果データに対応するレジスタ番号お
よび、前記出力レジスタから受け取られる前記書き戻し
データに対応するレジスタ番号とのいずれか一つ、との
一致を判定するプライオリティ判定器を含み、前記一致
が起きた場合には、フェッチステージのレジスタ番号の
データとして使用するために、演算器の出力ポートから
受け取られる演算結果データが、出力レジスタから受け
取られる書き戻しデータに優先し、また、出力レジスタ
と演算器の出力ポートから各々受け取られる書き戻しデ
ータに対応するレジスタ番号と演算結果データに対応す
るレジスタ番号とのいずれもが、フェッチステージで取
得される命令が必要とするレジスタ番号と一致しなかっ
た場合には、フェッチステージが用いるレジスタ番号の
データはレジスタファイルから選択されるように構成さ
れている。
Also, the eighth invention of the present application is directed to a fetch stage for fetching an instruction, a decode stage for decoding and loading the instruction, an execution stage for executing the instruction, and writing back data based on the execution of the instruction to a register file. A write-back stage, at least four pipeline stages, the data is latched at an input port of the arithmetic unit at a decode stage, and operation result data is output from an output port of the arithmetic unit to an output register at an execution stage. The write-back data is transferred from the output register to the register file in the write-back stage, and the plurality of selectors determine the register number required by the instruction acquired in the fetch stage and at least the The operation result received from the output port Data, and a register number corresponding to any one of the register numbers corresponding to the write-back data received from the output register. In order to use the data as the register number data of the fetch stage, the operation result data received from the output port of the arithmetic unit has priority over the write-back data received from the output register. If none of the register numbers corresponding to the write-back data and the register numbers corresponding to the operation result data respectively received from the fetch stage match the register numbers required by the instruction acquired in the fetch stage, The register number data used by the stage is selected from the register file. It is configured to.

さらに、本願第9の発明は、前記バイパス制御部は、
さらに、前記論理器の出力ポートから転送される演算結
果データと、出力レジスタから転送される書き戻しデー
タとのそれぞれが有効か否かを示す有効フラグを記憶す
る記憶手段を具備するように構成されている。
Further, in a ninth invention of the present application, the bypass control unit includes:
Further, it is configured to have storage means for storing a valid flag indicating whether each of the operation result data transferred from the output port of the logic device and the write-back data transferred from the output register is valid. ing.

(作用) 上記構成において、この発明は、演算器によって演算
された結果のレジスタ番号と、次回の演算対象となるデ
ータのレジスタ番号とを、比較器によって比較する。こ
の比較結果においてこれらのレジスタ番号が同一のレジ
スタ番号であり、なおかつ有効フラグ保持手段に保持さ
れている有効フラグが今回の演算に使用されたことを表
すものであった場合、今回の演算結果を次回の演算対象
にすべきデータとして選択し、演算手段へバイパス転送
する。
(Operation) In the above configuration, the present invention uses a comparator to compare the register number of the result calculated by the calculator with the register number of the data to be calculated next time. In the comparison result, when these register numbers are the same register number and the valid flag held in the valid flag holding means indicates that the valid flag was used in the current calculation, the result of the current calculation is The data is selected as the data to be calculated next time, and is bypass-transferred to the calculating means.

しかしながら、比較結果においてレジスタ番号が同一
レジスタ番号でないか、あるいは有効フラグが今回の演
算に使用されていないことを表すものであった場合、次
回の演算対象となるデータのレジスタ番号の付されたレ
ジスタ内のデータを、次回の演算対象にすべきデータと
して選択し、演算手段へ出力している。
However, if the comparison result indicates that the register number is not the same register number or that the valid flag is not used in the current operation, the register with the register number of the data to be operated next time Are selected as data to be calculated next time and output to the calculating means.

(実施例) 以下、この発明の実施例を図面を参照して説明する。Hereinafter, embodiments of the present invention will be described with reference to the drawings.

第1図は、この発明のパイプライン情報処理回路の一
実施例の構成を示すブロック図である。
FIG. 1 is a block diagram showing a configuration of one embodiment of a pipeline information processing circuit of the present invention.

同図に示すパイプライン情報処理回路は、F(命令フ
ェッチ)ステージ、D(命令デコード)ステージ、E
(処理実行)ステージ、W(ライトバック)ステージの
4段のパイプライン処理を行うものである。
The pipeline information processing circuit shown in the figure includes an F (instruction fetch) stage, a D (instruction decode) stage,
(Process execution) stage and W (write back) stage are performed in four stages of pipeline processing.

このパイプライン情報処理回路は、命令供給器1、バ
イパス制御部3、レジスタファイル5、セレクタ7a〜7
d、演算器9、入力データレジスタA、入力データレジ
スタB、および出力データレジスタ11から構成されてい
る。また、演算器9の出力にはバイパス101,103が、出
力データレジスタ11にはバイパス105,107が設けられて
おり、各セレクタ7a〜7dに接続されている。
This pipeline information processing circuit includes an instruction supplier 1, a bypass controller 3, a register file 5, selectors 7a to 7
d, an arithmetic unit 9, an input data register A, an input data register B, and an output data register 11. The output of the arithmetic unit 9 is provided with bypasses 101 and 103, and the output data register 11 is provided with bypasses 105 and 107, which are connected to the selectors 7a to 7d.

また、演算器9は、それぞれ、入力データレジスタA
に対して第一入力ポートと、入力データレジスタBに対
して第二入力ポートとが設けられている。さらに、演算
器9は、出力データレジスタ11に対して出力ポートが設
けられている。
The arithmetic unit 9 also has an input data register A
And a second input port for the input data register B. Further, the arithmetic unit 9 is provided with an output port for the output data register 11.

命令供給器1は、各サイクルのDステージに、演算命
令信号109を演算器9へ、ターゲットレジスタ番号111、
high側有効フラグ113a、low側有効フラグ113bおよび出
力データレジスタ番号115a,115bをバイパス制御部3
へ、さらに、出力データレジスタ番号115a,115bをレジ
スタファイル5へ出力するものである。
The instruction supplier 1 sends the operation instruction signal 109 to the operation unit 9 at the D stage of each cycle, and outputs the target register number 111,
The high-side valid flag 113a, the low-side valid flag 113b, and the output data register numbers 115a and 115b are
And output data register numbers 115a and 115b to the register file 5.

バイパス制御部3は、この発明の中心となるところで
あり、詳細は後述するが、次回演算を行うデータのレジ
スタ番号と、現在パイプライン上にあるデータのレジス
タ番号とを比較するところである。さらに、バイパス制
御部3は比較結果に基づき、次回演算するデータとして
パイプライン上のデータをバイパスして使用させるか、
あるいはレジスタファイル5内のデータを使用させるか
のセレクタ制御信号117a〜117dを、セレクタ7a〜7dへ与
えるものである。また、バイパス制御部3は、レジスタ
ファイル5への書き込みレジスタ番号119、Wステージ
データの有効フラグ121a,121bを、レジスタファイル5
へ出力している。
The bypass control unit 3, which is the center of the present invention, will compare the register number of data to be operated next time with the register number of data currently on the pipeline, as will be described in detail later. Further, based on the comparison result, the bypass control unit 3 determines whether the data on the pipeline should be bypassed and used as data to be calculated next time,
Alternatively, selector control signals 117a to 117d indicating whether to use data in the register file 5 are given to the selectors 7a to 7d. The bypass control unit 3 also stores the register number 119 for writing to the register file 5 and the valid flags 121a and 121b of the W stage data in the register file 5.
Output to

セレクタ7a〜7dは、バイパス制御部3から与えられた
セレクタ制御信号117a〜117dに従い、演算器9からバイ
パス101,103を介してバイパスされたデータ、出力デー
タレジスタ11からバイパス105,107を介してバイパスさ
れたデータ、あるいはレジスタファイル5内のデータの
うち、いずれかのデータを選択するものである。さらに
セレクタ7a〜7dは、選択した選択データ123a〜123dを入
力データレジスタAあるいは入力データレジスタBへ転
送するものである。
According to selector control signals 117a to 117d provided from the bypass control unit 3, the selectors 7a to 7d perform data bypassed from the arithmetic unit 9 via the bypasses 101 and 103, and data bypassed from the output data register 11 via the bypasses 105 and 107. , Or one of the data in the register file 5. Further, the selectors 7a to 7d transfer the selected selection data 123a to 123d to the input data register A or the input data register B.

レジスタファイル5は、複数のレジスタから構成され
たファイルであり、それぞれのレジスタにはレジスタ番
号が付加されている。このレジスタファイル5は、出力
ポート5A、出力ポート5B、入力ポート5Cを有する3ポー
ト構成のもので、レジスタ幅及び各ポート幅は64bit
(倍精度)である。レジスタファイル5を構成する各レ
ジスタに、倍精度データを保持させる場合は64bit全て
を使用し、単精度を保持させる場合には上位(high側)
32bit、下位(low側)32bitに分割してそれぞれ保持さ
せる機能を有している。また、出力ポート5A、出力ポー
ト5Bおよび入力ポート5Cに接続されるデータバス幅は64
bitである。出力ポート5Aおよび出力ポート5Bに接続さ
れるデータバス108a〜108dは、セレクタ7a〜7dに入力さ
れている。
The register file 5 is a file composed of a plurality of registers, and a register number is added to each register. This register file 5 has a three-port configuration having an output port 5A, an output port 5B, and an input port 5C. The register width and each port width are 64 bits.
(Double precision). All 64 bits are used to hold double-precision data in each register constituting the register file 5, and higher order (high side) is used to hold single-precision data.
It has a function of dividing into 32 bits and lower (low side) 32 bits and holding them. The width of the data bus connected to the output port 5A, output port 5B and input port 5C is 64
bit. Data buses 108a to 108d connected to the output ports 5A and 5B are input to the selectors 7a to 7d.

演算器9は、入力データレジスタAおよび入力データ
レジスタBから与えられたデータを演算し、出力データ
レジスタ11へ演算結果を出力するところである。この演
算器9は、単精度(32bit)演算、倍精度(64bit)演
算、および単精度演算を同時に2つ行う機能(以下、単
精度倍速演算と呼ぶ)を持つものである。
Arithmetic unit 9 operates on data supplied from input data register A and input data register B, and outputs the operation result to output data register 11. The arithmetic unit 9 has a function of performing two single-precision (32-bit) operations, double-precision (64-bit) operations, and two single-precision operations simultaneously (hereinafter, referred to as a single-precision double-speed operation).

演算器9、入力データレジスタA、入力データレジス
タB、および出力データレジスタ11は、第7図(B)に
示した構成となっている。入力データレジスタA、入力
データレジスタB、および出力データレジスタ11は64bi
tで構成されており、それぞれhigh側32bit、low側32bit
に分割されている。
The arithmetic unit 9, the input data register A, the input data register B, and the output data register 11 have the configuration shown in FIG. 7 (B). The input data register A, the input data register B, and the output data register 11 are 64 bi
t, 32 bits for high side and 32 bits for low side
Is divided into

単精度倍速演算は、入力データレジスタAのhigh側デ
ータ(32bit)と、入力データレジスタBのhigh側デー
タ(32bit)との演算を行なう。また、同時に入力デー
タレジスタAのlow側データ(32bit)と、入力デタレジ
スタBのlow側データ(32bit)との演算を行う。そし
て、入力データのhigh側同士の演算結果は、出力データ
レジスタ11のhigh側に出力し、入力データのlow側同士
の演算結果は、出力データレジスタ11のlow側に出力す
る機能を有している。
The single-precision double-speed operation performs an operation on the high-side data (32 bits) of the input data register A and the high-side data (32 bits) of the input data register B. At the same time, the low side data (32 bits) of the input data register A and the low side data (32 bits) of the input data register B are operated. Then, the operation result of the high side of the input data is output to the high side of the output data register 11, and the operation result of the low side of the input data is output to the low side of the output data register 11. I have.

入力データレジスタA,Bへは、パイプラインのDステ
ージでデータがラッチされ、出力データレジスタ11へ
は、Eステージでラッチされる。
Data is latched to the input data registers A and B at the D stage of the pipeline, and is latched to the output data register 11 at the E stage.

第2図に、バイパス制御部3の詳細なブロック図を示
す。
FIG. 2 shows a detailed block diagram of the bypass control unit 3.

同図に示すバイパス制御部3は、レジスタ13E,13W、
レジスタ15a〜15d、比較器17a〜17d、AND回路19a〜19h
およびプライオリティ判定器21a〜21dより構成されてい
る。なお、セレクタ7a〜7dは、第1図に示したセレクタ
7a〜7dと同一のものである。
The bypass control unit 3 shown in FIG.
Registers 15a to 15d, comparators 17a to 17d, AND circuits 19a to 19h
And priority determiners 21a to 21d. The selectors 7a to 7d are the selectors shown in FIG.
These are the same as 7a to 7d.

レジスタ13Eは、Eステージの入力データレジスタA
あるいは入力データレジスタBに入っているデータの処
理結果に対応したターゲットレジスタ番号を保持するレ
ジスタである。レジスタ13Wは、Wステージの出力デー
タレジスタ11に入っているデータに対応したターゲット
レジスタ番号を保持するレジスタである。
Register 13E is an input data register A for the E stage.
Alternatively, it is a register for holding a target register number corresponding to a processing result of the data stored in the input data register B. The register 13W is a register that holds a target register number corresponding to the data stored in the output data register 11 of the W stage.

レジスタ15a,15bは、Eステージのデータレジスタに
対し、そのデータのhigh側(32bit)、low側(32bit)
のデータの有効フラグを保持するレジスタである。同様
にレジスタ15c,15dは、Wステージの出力データレジス
タ11に入っているデータのhigh側、low側のデータ有効
フラグを保持するレジスタである。有効フラグは、high
側データとlow側データのうち演算で使用されている側
にバリットビットが立つようになっている。
The registers 15a and 15b are provided for the data register of the E stage, the high side (32 bits) and the low side (32 bits) of the data.
Is a register for holding a valid flag of the data. Similarly, the registers 15c and 15d are registers for holding high-side and low-side data valid flags of the data stored in the output data register 11 of the W stage. The valid flag is high
A valid bit is set on the side used in the operation between the side data and the low side data.

レジスタ13E,13Wおよびレジスタ15a〜15dは、E、W
の各ステージで処理データと同様にパイプラインで流れ
て来るターゲットレジスタ番号とデータ有効フラグを保
持するものである。また、各レジスタは、各ステージの
最後にラッチを行う。
The registers 13E and 13W and the registers 15a to 15d are E and W
Each stage holds a target register number and a data valid flag flowing through the pipeline in the same manner as the processing data. Each register latches at the end of each stage.

比較器17a〜17dは、Dステージ中に命令供給器1から
送られてくる次回の演算で使用する入力データのレジス
タファイル5のレジスタ番号と、現在パイプライン上に
あるデータのターゲットレジスタ番号とを比較する機能
を有する。これにより、比較器17a〜17dは、現在パイプ
ライン上にあるデータが、次回の演算で使用すべきデー
タか否かの判定を行っている。
The comparators 17a to 17d compare the register number of the register file 5 of the input data used in the next operation sent from the instruction supplier 1 during the D stage with the target register number of the data currently on the pipeline. It has a function to compare. Thus, the comparators 17a to 17d determine whether the data currently on the pipeline is data to be used in the next operation.

比較器17aは、入力データレジスタAへのソースデー
タのレジスタ番号115aと、Eステージのターゲットレジ
スタ番号125Eとの比較を行うものである。比較器17b
は、入力データレジスタBへのソースデータのレジスタ
番号115bと、ターゲットレジスタ番号125Eとの比較を行
うものである。同様に、比較器17c,17dは、ターゲット
レジスタ番号125Wと、レジスタ番号115aあるいは115bと
の比較を行う。
The comparator 17a compares the register number 115a of the source data to the input data register A with the target register number 125E of the E stage. Comparator 17b
Compares the register number 115b of the source data to the input data register B with the target register number 125E. Similarly, the comparators 17c and 17d compare the target register number 125W with the register number 115a or 115b.

AND回路19a〜19hは、比較器17a〜17dからの一致信号1
27a〜127dと、データ有効フラグ129a〜129dとの論理積
をとるところである。すなわち、AND回路19a〜19hは、
レジスタファイル5のレジスタ番号と現在パイプライン
上にあるデータのターゲットレジスタ番号とが一致した
場合、さらに、high側あるいはlow側のデータが使用さ
れているか否かを判断するものである。例えば、AND回
路19aは、比較器17aからの一致信号127aと、Eステージ
のhigh側データ有効フラグ129aとの論理積をとる。この
結果が有効な場合は、Eステージのデータのhigh側の入
力データレジスタAへバイパスするバイパス条件が成立
したことになる。また、AND回路19hは、一致信号127dと
Wステージのlow側データ有効フラグ129dとの論理積を
とる。この結果が有効な場合は、Wステージのデータの
low側を入力データレジスタBへバイパスするバイパス
条件が成立したことになる。
AND circuits 19a to 19h output a match signal 1 from comparators 17a to 17d.
This is where the logical product of 27a to 127d and the data valid flags 129a to 129d is obtained. That is, the AND circuits 19a to 19h
When the register number of the register file 5 matches the target register number of the data currently on the pipeline, it is further determined whether or not the data on the high side or the low side is used. For example, the AND circuit 19a calculates the logical product of the coincidence signal 127a from the comparator 17a and the high-side data valid flag 129a of the E stage. If this result is valid, it means that the bypass condition for bypassing the E-stage data to the input data register A on the high side has been satisfied. The AND circuit 19h calculates the logical product of the match signal 127d and the low-side data valid flag 129d of the W stage. If this result is valid, the W stage data
This means that the bypass condition for bypassing the low side to the input data register B is satisfied.

さらに、AND回路19a〜19hは、条件が成立したか否か
のバイパス要求信号131a〜131hをプライオリティ判定器
21a〜21dへ送出する。
Further, the AND circuits 19a to 19h output a bypass request signal 131a to 131h indicating whether or not the condition has been satisfied to a priority determination unit.
Send to 21a-21d.

プライオリティ判定器21a〜21dは、バイパス要求信号
131a〜131hに基づき、レジスタファイル5内のデータ、
現在パイプライン上にあるEステージのデータ、および
現在パイプライン上にあるWステージのデータの3つの
データのプライオリティを判定するところである。プラ
イオリティは、Eステージのデータが一番高く、Wステ
ージのデータが次に高く、レジスタファイル5内のデー
タが一番低いものとなっている。さらに、プライオリテ
ィ判定器21a〜21dは、判定結果に基づいて上記3つのデ
ータのうちの1つを選択させるために、セレクタ7a〜7d
へセレクタ制御信号117a〜117dを与えるものである。
The priority determiners 21a to 21d output a bypass request signal
Data in the register file 5 based on 131a to 131h,
The priority of three data, that is, the data of the E stage currently on the pipeline and the data of the W stage currently on the pipeline is to be determined. The priority is such that the data in the E stage is the highest, the data in the W stage is the next highest, and the data in the register file 5 is the lowest. Further, the priority determiners 21a to 21d select the selectors 7a to 7d in order to select one of the three data based on the determination result.
And selector control signals 117a to 117d.

例えば、プライオリティ判定器21aは、Eステージか
らのバイパス要求信号131aが有効ならば、優先的にEス
テージのhigh側バイパスデータ101を選択させるための
セレクタ制御信号117aをセレクタ7aへ出力する。しかし
ながら、バイパス要求信号131aが無効でなおかつWステ
ージからのバイパス要求信号131eが有効ならば、Wステ
ージのhigh側バイパスデータ105を選択させるためのセ
レクタ制御信号117aを出力する。さらに、バイパス要求
信号131a,131eが共に無効の場合は、レジスタファイル
5内のデータ108aを選択させるためのセレクタ制御信号
117aを出力する。他のプライオリティ判定器21b〜21dも
同様に、判定されたプライオリティに基づいたセレクタ
制御信号117b〜117dを、セレクタ7b〜7dへ出力する。
For example, if the bypass request signal 131a from the E stage is valid, the priority determiner 21a outputs to the selector 7a a selector control signal 117a for preferentially selecting the high-side bypass data 101 of the E stage. However, if the bypass request signal 131a is invalid and the bypass request signal 131e from the W stage is valid, the selector control signal 117a for selecting the high side bypass data 105 of the W stage is output. Further, when the bypass request signals 131a and 131e are both invalid, a selector control signal for causing the data 108a in the register file 5 to be selected.
Outputs 117a. Similarly, the other priority determiners 21b to 21d output selector control signals 117b to 117d based on the determined priority to the selectors 7b to 7d.

セレクタ7a〜7dは、セレクタ制御信号117a〜117dに従
い、レジスタファイル5内のデータ、Eステージのデー
タ、およびWステージのデータのうち1つのデータを選
択するものである。さらに、セレクタ7a〜7dは、選択し
た選択データ123a〜123dを入力データレジスタAあるい
は入力データレジスタBへ送出するものである。例え
ば、セレクタ7aは、セレクタ制御信号117aに従い、レジ
スタファイル5の出力ポート5Aからの読み出しデータの
high側データ108a、Eステージのhigh側データ101、W
ステージのhigh側データ105のうちの1つのデータを選
択する。そして、選択した選択データ123aを入力データ
レジスタAのhigh側へ送出する。同様に、セレクタ7b〜
7dは、選択データ123b〜123dを入力データレジスタAの
low側、入力データレジスタBのhigh側、および入力デ
ータレジスタBのlow側へそれぞれ送出する。
The selectors 7a to 7d select one of the data in the register file 5, the data of the E stage, and the data of the W stage according to the selector control signals 117a to 117d. Further, the selectors 7a to 7d send the selected data 123a to 123d to the input data register A or the input data register B. For example, the selector 7a receives the read data from the output port 5A of the register file 5 according to the selector control signal 117a.
high side data 108a, E stage high side data 101, W
One of the high side data 105 of the stage is selected. Then, the selected data 123a is transmitted to the high side of the input data register A. Similarly, selectors 7b to
7d stores the selected data 123b to 123d in the input data register A.
The signal is sent to the low side, the high side of the input data register B, and the low side of the input data register B, respectively.

このように、この発明のパイプライン情報処理回路は
構成されており、次にバイパスの実行例を説明する。
Thus, the pipeline information processing circuit of the present invention is configured, and an execution example of the bypass will be described next.

実行例として、現在パイプライン中の実行フロー1
で、Eステージに単精度演算で格納するレジスタ番号F2
のデータがあり、単精度倍速演算を行う実行フロー2
で、レジスタ番号F2とレジスタ番号F3に格納されたデー
タをソースとして演算を行い、レジスタファイル11のレ
ジスタ番号F4に演算結果を書き戻す場合を例にとる。こ
のとき、実行フロー2において、レジスタ番号F2のデー
タを入力データレジスタAで使用する場合を考える。な
お、実行フロー1の前の命令はNOPであるとする。
As an execution example, execution flow 1 currently in the pipeline
Then, register number F2 to be stored in E stage by single precision operation
Flow 2 for performing single-precision double-speed operation with data
Then, an example will be described in which an operation is performed using the data stored in the register numbers F2 and F3 as a source, and the operation result is written back to the register number F4 of the register file 11. At this time, in execution flow 2, a case is considered where the data of register number F2 is used in input data register A. It is assumed that the instruction before execution flow 1 is NOP.

第3図に、この実行例のタイミングチャートを示す。 FIG. 3 shows a timing chart of this execution example.

同図において、上部のタイミングチャートは単精度演
算を行う実行フロー1を、下部のタイミングチャートは
単精度倍速演算を行う実行フロー2をそれぞれ示してい
る。各タイミングチャートは、F,D,E,Wの各ステージに
分割されている。データ201〜207は、それぞれ入力デー
タレジスタAのhigh側データ、入力データレジスタAの
low側データ、入力データレジスタBのhigh側データ、
および入力データレジスタBのlow側データを表してい
る。また、データ209,211は、Eステージのhigh側デー
タとlow側データを表し、データ213,215は、Wステージ
のhigh側データとlow側データを表している。さらに、
これらのタイミングチャートは、実行フロー1における
Eステージのレジスタ番号F2のlow側データ211が、実行
フロー2におけるDステージのlow側にバイパスされて
いることを示している。
In the figure, the upper timing chart shows an execution flow 1 for performing a single-precision operation, and the lower timing chart shows an execution flow 2 for performing a single-precision double-speed operation. Each timing chart is divided into F, D, E, and W stages. Data 201 to 207 are high-side data of the input data register A and data of the input data register A, respectively.
low side data, high side data of input data register B,
And low-side data of the input data register B. Data 209 and 211 represent high-side data and low-side data of the E stage, and data 213 and 215 represent high-side data and low-side data of the W stage. further,
These timing charts show that the low-side data 211 of the register number F2 of the E stage in the execution flow 1 is bypassed to the low side of the D stage in the execution flow 2.

このようなバイパスを行う際、バイパス制御回路3の
レジスタ番号115aには、実行フロー2の入力データレジ
スタAのレジスタ番号F2が命令供給器1から送られてく
る。同様に、レジスタ番号115bには、入力データレジス
タBのレジスタ番号F3が送られてくる。次ステージで
は、バイパス制御部3のEステージでラッチされるター
ゲットレジスタ番号111としてレジスタ番号F4が命令供
給器1より転送される。
When performing such a bypass, the register number F2 of the input data register A of the execution flow 2 is sent from the instruction supplier 1 to the register number 115a of the bypass control circuit 3. Similarly, the register number F3 of the input data register B is sent to the register number 115b. In the next stage, the instruction supplier 1 transfers the register number F4 as the target register number 111 latched in the E stage of the bypass controller 3.

出力データのデータ有効フラグ113a,113bとしては、
実行フロー2の演算が単精度倍速演算であるため、high
側、low側共に有効信号が送られる。
As the data valid flags 113a and 113b of the output data,
Since the operation of execution flow 2 is a single-precision double-speed operation,
A valid signal is sent to both sides.

Eステージのレジスタ13Eには、すでに実行フロー1
の演算結果であるターゲットレジスタ番号F2が保持され
ている。また、実行フロー1がlow側のみの単精度演算
であったため、レジスタ15bのみにバリットビットが立
っている。
The execution flow 1 has already been stored in the register 13E of the E stage.
The target register number F2, which is the result of the operation described above, is held. Further, since the execution flow 1 is a single-precision operation only on the low side, a valid bit is set only in the register 15b.

このような状態において、まず、レジスタ番号115aと
Eステージのターゲットレジスタ番号125Eとが、比較器
17aによって比較される。レジスタ番号115aとターゲッ
トレジスタ番号125Eとが共にF2であるので、比較器17a
からは有効を意味する一致信号127aがAND回路19a,19bへ
出力される。
In such a state, first, the register number 115a and the target register number 125E of the E stage are
Compared by 17a. Since the register number 115a and the target register number 125E are both F2, the comparator 17a
Output a match signal 127a indicating validity to the AND circuits 19a and 19b.

また、これと同時に、比較器17b〜17dによる比較も行
われる。レジスタ番号115bはF3であるため、比較器17b
からAND回路19c,19dへ出力される一致信号127bは無効と
なる。さらに、WステージはNOPであるため、比較器17
c,17dから出力される一致信号127c,127dも無効となる。
At the same time, comparisons by the comparators 17b to 17d are performed. Since register number 115b is F3, comparator 17b
The match signal 127b output to the AND circuits 19c and 19d is invalidated. Further, since the W stage is a NOP, the comparator 17
The match signals 127c and 127d output from c and 17d are also invalidated.

次に、一致信号127aは、AND回路19a,19bによってデー
タ有効フラグ129aあるいは129bと論理積がとられる。デ
ータ有効フラグ129a,129bのうちlow側のデータ有効フラ
グ129bのみが有効であるため、AND回路19bにおける論理
積の結果は有効となるが、AND回路19aにおける論理積の
結果は無効となる。これにより、AND回路19aからは無効
を意味するバイパス要求信号131aがプライオリティ判定
器21aへ出力され、AND回路19bからは有効を意味するバ
イパス要求信号131bがプライオリティ判定器21bへ出力
される。
Next, the coincidence signal 127a is ANDed with the data valid flag 129a or 129b by the AND circuits 19a and 19b. Since only the low-side data valid flag 129b of the data valid flags 129a and 129b is valid, the result of the logical product in the AND circuit 19b is valid, but the result of the logical product in the AND circuit 19a is invalid. As a result, a bypass request signal 131a indicating invalidity is output from the AND circuit 19a to the priority determining unit 21a, and a bypass request signal 131b indicating validity is output from the AND circuit 19b to the priority determining unit 21b.

比較器17b〜17dから出力される一致信号127b〜127dは
全て無効であるため、AND回路19c〜19hから出力される
バイパス要求信号131c〜131hも全て無効となる。
Since the match signals 127b to 127d output from the comparators 17b to 17d are all invalid, the bypass request signals 131c to 131h output from the AND circuits 19c to 19h are all invalid.

プライオリティ判定器21a〜21dでは、バイパス要求信
号131a〜131hに基づいてデータのプライオリティが判定
される。バイパス要求信号131a,131eは共に無効である
ため、プライオリティ判定器21aによってレジスタファ
イル5内のデータのプライオリティが一番高いと判定さ
れる。さらに、プライオリティ判定器21aからは、レジ
スタファイル5内のデータ108aを選択させるためのセレ
クタ制御信号117aがセレクタ7aへ出力される。プライオ
リティ判定器21bでは、バイパス要求信号131bが有効な
ため、優先的にEステージのlow側データが一番高いと
判定される。これにより、Eステージのlow側バイパス
データ103を選択させるためのセレクタ制御信号117bが
セレクタ7bへ出力される。
The priority determiners 21a to 21d determine the priority of the data based on the bypass request signals 131a to 131h. Since both the bypass request signals 131a and 131e are invalid, the priority determiner 21a determines that the priority of the data in the register file 5 is the highest. Further, a selector control signal 117a for selecting the data 108a in the register file 5 is output from the priority determiner 21a to the selector 7a. Since the bypass request signal 131b is valid, the priority determiner 21b preferentially determines that the low-side data of the E stage is the highest. As a result, the selector control signal 117b for selecting the low bypass data 103 of the E stage is output to the selector 7b.

また、バイパス要求信号131c,131g,131d,131hが全て
無効であるため、プライオリティ判定器21c,21dから
は、プライオリティ判定器21aと同様にレジスタファイ
ル5内のデータ108c,108dを選択させるためのセレクタ
制御信号117c,117dがセレクタ7c,7dへ出力される。
Also, since the bypass request signals 131c, 131g, 131d, and 131h are all invalid, the selectors for allowing the priority determiners 21c and 21d to select the data 108c and 108d in the register file 5 similarly to the priority determiner 21a. Control signals 117c and 117d are output to selectors 7c and 7d.

セレクタ制御信号117aを入力したセレクタ7aにより、
レジスタファイル5の出力ポート5Aから読み出されたレ
ジスタ番号F2のhigh側データ108aが選択される。さら
に、セレクタ7aからは、選択データ123aが入力データレ
ジスタAのhigh側に送出される。セレクタ7bにおいて
は、セレクタ制御信号117bによってEステージのlow側
バイパスデータ103が選択され、この選択データ123bが
入力データレジスタAのlow側に送出される。
By the selector 7a that receives the selector control signal 117a,
The high-side data 108a of the register number F2 read from the output port 5A of the register file 5 is selected. Further, the selector 7a sends the selection data 123a to the high side of the input data register A. In the selector 7b, the E-stage low-side bypass data 103 is selected by the selector control signal 117b, and the selected data 123b is sent to the low side of the input data register A.

セレクタ7c,7dでは、レジスタファイル5の出力ポー
ト5Bから読み出されたレジスタ番号F3のhigh側データ10
8c,low側データ108dが選択される。そして、これらの選
択データ123c,123dが入力データレジスタBのhigh側お
よびlow側に送出される。
In the selectors 7c and 7d, the high-side data 10 of the register number F3 read from the output port 5B of the register file 5
8c, low side data 108d is selected. Then, the selection data 123c and 123d are sent to the high side and the low side of the input data register B.

選択データ123a〜123dが送出されることにより、実行
フロー2の入力データレジスタAのhigh側にはレジスタ
ファイル5の出力ポートAよりバイパスされたデータ
が、low側にはEステージのlow側よりバイパスされたデ
ータがラッチされる。また、入力データレジスタBに
は、high側、low側ともにレジスタファイル5の出力ポ
ート5Bからの読み出しデータがラッチされる。
By the selection data 123a to 123d being sent, the data bypassed from the output port A of the register file 5 to the high side of the input data register A of the execution flow 2 and the data bypassed from the low side of the E stage to the low side. The latched data is latched. The input data register B latches read data from the output port 5B of the register file 5 on both the high side and the low side.

以上のように、バイパス制御回路3によってバイパス
が行われる。
As described above, the bypass is performed by the bypass control circuit 3.

一方、パイプライン処理の最後には、レジスタファイ
ル5内の各レジスタにデータが書き戻される。この際、
レジスタファイル5内のどのレジスタにデータを書き戻
すかは、Wステージのターゲットレジスタ番号125W(第
1図中の119)と、high側、low側の有効フラグ129c,129
d(第1図中の121a,121b)が参照されて決定される。実
行フロー1ではlow側のみが演算されたため、レジスタ
番号F2のレジスタの内容はhigh側はそのまま保持され、
low側は実行フロー1で演算された新しいデータに書き
戻される。
On the other hand, at the end of the pipeline processing, data is written back to each register in the register file 5. On this occasion,
Which register in the register file 5 is to be written back is determined by the target register number 125W (119 in FIG. 1) of the W stage, the high-side and low-side valid flags 129c and 129.
It is determined with reference to d (121a, 121b in FIG. 1). In the execution flow 1, only the low side is operated, so the contents of the register of the register number F2 are held as they are on the high side,
The low side is written back to the new data calculated in execution flow 1.

このように、バイパス制御部3によってhigh側、low
側のデータを同時にバイパスすることができる。
As described above, the bypass control unit 3 controls the high side and the low side.
Side data can be bypassed at the same time.

[発明の効果] この発明のパイプライン情報処理回路によれば、レジ
スタ番号が一致し、さらに、演算に使用されたデータで
ある場合のみ、演算結果の次回の演算対象となるデータ
として演算器へバイパス転送するようにした。これによ
り、わずかな回路増で複数のデータを同時にバイパス転
送させ、複数のデータを一括して演算させることが可能
となった。
[Effect of the Invention] According to the pipeline information processing circuit of the present invention, only when the register numbers match and the data is used for the operation, the operation result is sent to the operation unit as the data to be operated next time. Added bypass transfer. As a result, a plurality of data can be simultaneously transferred by bypass with a slight increase in the number of circuits, and a plurality of data can be collectively operated.

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

第1図はこの発明のパイプライン情報処理回路の一実施
例を示すブロック図、第2図は第1図に示すバイパス制
御部およびセレクタの一実施例を示すブロック図、第3
図はこの発明のパイプライン情報処理回路によるパイプ
ライン処理の一実施例を示したタイミングチャート図、
第4図、第5図は従来のパイプライン情報処理回路、バ
イパス制御部およびセレクタを示すブロック図、第6図
は従来のパイプライン情報処理回路のパイプライン処理
を示すタイミングチャート図、第7図は第1図および第
4図に示す演算器のモデル図である。 3……バイパス制御部 5……レジスタファイル 7a〜7d……セレクタ 9……演算器 A,B……入力データレジスタ 11……出力データレジスタ 13E,13W,15a〜15d……レジスタ 17a〜17d……比較器 19a〜19h……AND回路 21a〜21d……プライオリティ判定器
FIG. 1 is a block diagram showing one embodiment of a pipeline information processing circuit of the present invention, FIG. 2 is a block diagram showing one embodiment of a bypass control unit and a selector shown in FIG.
The figure is a timing chart showing one embodiment of the pipeline processing by the pipeline information processing circuit of the present invention,
4 and 5 are block diagrams showing a conventional pipeline information processing circuit, a bypass control unit and a selector, FIG. 6 is a timing chart showing pipeline processing of the conventional pipeline information processing circuit, and FIG. FIG. 5 is a model diagram of the arithmetic unit shown in FIGS. 1 and 4. 3 ... Bypass control unit 5 ... Register files 7a-7d ... Selector 9 ... Calculator A, B ... Input data register 11 ... Output data register 13E, 13W, 15a-15d ... Registers 17a-17d ... … Comparator 19a ~ 19h …… AND circuit 21a ~ 21d …… Priority decision unit

───────────────────────────────────────────────────── フロントページの続き (72)発明者 永松 正人 神奈川県川崎市幸区小向東芝町1 株式 会社東芝総合研究所内 (72)発明者 森 順治 神奈川県川崎市幸区小向東芝町1 株式 会社東芝総合研究所内 (72)発明者 山崎 到 神奈川県川崎市幸区小向東芝町1 株式 会社東芝総合研究所内 (56)参考文献 特開 昭59−123937(JP,A) 特開 平1−108632(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 7/00 G06F 9/38 310 ────────────────────────────────────────────────── ─── Continued on the front page (72) Inventor Masato Nagamatsu 1 Komukai Toshiba-cho, Saiwai-ku, Kawasaki-shi, Kanagawa Prefecture Inside the Toshiba Research Institute (72) Inventor Junji Mori 1 shareholder, Komukai-Toshiba-cho, Saiwai-ku, Kawasaki-shi, Kanagawa Inside Toshiba Research Institute, Inc. (72) Inventor Toshi Yamazaki 1 Komukai Toshiba-cho, Saiwai-ku, Kawasaki City, Kanagawa Prefecture Inside Toshiba Research Institute, Inc. (56) References 108632 (JP, A) (58) Fields investigated (Int. Cl. 6 , DB name) G06F 7/00 G06F 9/38 310

Claims (9)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】レジスタに保持される複数のデータを一度
に出力するレジスタ制御手段と、 複数のデータを一括して演算する演算手段と、 この演算手段から出力される演算結果と、前記レジスタ
制御手段から出力されるデータとを比較し、次回の演算
対象にすべきデータを選択して前記演算手段へバイパス
転送するバイパス制御手段とを有し、 前記バイパス制御手段は、演算用に入力された複数のデ
ータそれぞれに対し、演算に使用されたデータであるか
否かを表す有効フラグを保持する有効フラグ保持手段 を含むことを特徴とするパイプライン情報処理回路。
1. A register control means for outputting a plurality of data held in a register at once, an operation means for operating a plurality of data collectively, an operation result output from the operation means, and the register control Means for comparing data output from the means, selecting data to be subjected to the next calculation, and bypass-transferring the data to the calculation means, wherein the bypass control means is input for calculation. A pipeline information processing circuit, comprising: valid flag holding means for holding, for each of a plurality of data, a valid flag indicating whether or not the data is used for calculation.
【請求項2】前記バイパス制御手段は、さらに、 前記演算手段の演算結果のレジスタ番号と、次回の演算
対象となるレジスタ番号とを比較する比較手段と、 この比較手段の比較結果が同一レジスタ番号であり、前
記有効フラグが演算に使用されたデータであることを表
した場合、前記演算手段から出力された演算結果を次回
の演算対象にすべきデータとして選択する選択手段と を有することを特徴とする請求項(1)記載のパイプラ
イン情報処理回路。
2. The comparison device according to claim 1, wherein said bypass control means further compares the register number of the operation result of said operation means with a register number to be operated next time. And selecting means for selecting the calculation result output from the calculating means as data to be calculated next time, when the valid flag indicates that the data is used for calculation. The pipeline information processing circuit according to claim 1, wherein
【請求項3】複数のデータを記憶するレジスタ番号で表
される複数のレジスタから成るレジスタファイルと、 独立して単精度データ項目をそれぞれ受け取れる複数の
フィールドを有する第一、第二入力ポートの各々と、 前記第一、第二入力ポートのそれぞれの前記フィールド
の一つに対応して、独立してそれぞれ単精度データ項目
を出力できる複数のフィールドを有する出力ポートと、 前記第一入力ポートの対応するフィールドから入力され
る前記単精度データ項目と、前記第二入力ポートの対応
するフィールドから演算結果データとして入力される前
記単精度データ項目との、それぞれ独立した算術演算を
実行することにより、並行して複数の単精度算術演算を
行うことができ、前記演算結果データを前記出力ポート
の複数フィールドに供給する演算器と、 前記演算器の前記出力ポートとレジスタファイルとに接
続され、複数のフィールドを有し、該複数フィールドの
うちの一つに対応する出力ポートの複数フィールドから
の各々の前記演算結果データを記憶するように構成され
ており、前記演算結果データを書き戻しデータとしてレ
ジスタファイルに転送する出力レジスタと、 前記レジスタファイルと前記演算器と前記出力レジスタ
とに接続され、複数のセレクタを供給するバイパス制御
部とを有し、 前記複数のセレクタは、前記演算結果データと前記書き
戻しデータを、 少なくとも前記出力ポートの前記フィールドか、また
は、前記出力レジスタの前記フィールドの少なくとも一
つか、のうちの一つから、 前記演算器の第一、第二入力ポートのフィールドのいず
れかへバイパスして転送し、 また、レジスタファイル内のデータを前記レジスタファ
イルから、前記演算器の第一、第二入力ポートの前記フ
ィールドのいずれかへバイパスせずに転送する ことを特徴とするパイプライン情報処理回路。
3. A first and a second input port each having a register file including a plurality of registers represented by register numbers storing a plurality of data, and a plurality of fields each capable of independently receiving a single-precision data item. Corresponding to one of the fields of the first and second input ports, respectively, and an output port having a plurality of fields each capable of independently outputting a single precision data item; and a correspondence of the first input port By performing independent arithmetic operations on the single-precision data item input from the corresponding field and the single-precision data item input as operation result data from the corresponding field of the second input port, parallel operations are performed. To perform a plurality of single precision arithmetic operations, and the operation result data is stored in a plurality of fields of the output port. A computing unit for supplying the computing unit, the computing unit having a plurality of fields connected to the output port and the register file of the computing unit, and each of the computations from the plurality of fields of the output port corresponding to one of the plurality of fields. An output register configured to store result data and transferring the operation result data to a register file as write-back data; anda plurality of selectors connected to the register file, the operation unit, and the output register. A bypass control unit for supplying the operation result data and the write-back data, at least one of the fields of the output port or at least one of the fields of the output register. From one of them, to one of the fields of the first and second input ports of the computing unit Transferring the data in the register file from the register file to any of the fields of the first and second input ports of the arithmetic unit without bypassing the pipeline. Information processing circuit.
【請求項4】前記演算器は、各々独立して第一の算術演
算と第二の算術演算を行うことのできる複数の独立した
部分から成ることを特徴とする請求項(3)記載のパイ
プライン情報処理回路。
4. The pipe according to claim 3, wherein said arithmetic unit comprises a plurality of independent portions capable of independently performing a first arithmetic operation and a second arithmetic operation. Line information processing circuit.
【請求項5】前記バイパス制御部は、さらに、 出力ポートのフィールドから、出力レジスタに転送され
る演算器の演算結果が記憶されているレジスタのレジス
タ番号または、 出力レジスタのフィールドからレジスタファイルに転送
される、演算器の以前の演算結果が記憶されているレジ
スタのレジスタ番号と、 前記演算器の次回の演算用にそこからオペランドが使用
されるが、実際にはまだ取得されていない入力データの
レジスタのレジスタ番号とを比較する比較器 を提供することを特徴とする請求項(3)記載のパイプ
ライン情報処理回路。
5. The bypass control unit further transfers, from a field of an output port, a register number of a register in which an operation result of a computing unit to be transferred to an output register is stored, or a register file from a field of an output register. The register number of the register in which the previous operation result of the operation unit is stored, and the operand from which the operand is used for the next operation of the operation unit, 4. The pipeline information processing circuit according to claim 3, wherein a comparator for comparing a register number with a register number is provided.
【請求項6】前記各々のセレクタは、 前記演算器での演算結果が記憶されているレジスタのレ
ジスタ番号が、前記演算器での次回の演算用にオペラン
ドが取得されるレジスタのレジスタ番号と等しい場合に
は、 他のセレクタが一のレジスタから第一、第二入力ポート
のフィールドの一つにデータ項目を転送するのと並行し
て、 前記演算器での演算結果を、前記演算器の第一、第二入
力ポートのフィールドの一つに直接転送可能である ことを特徴とする請求項(5)記載のパイプライン情報
処理回路。
6. The selector according to claim 1, wherein a register number of a register storing an operation result in said operation unit is equal to a register number of a register from which an operand is obtained for a next operation in said operation unit. In the case, in parallel with another selector transferring a data item from one register to one of the fields of the first and second input ports, the operation result in the arithmetic unit is The pipeline information processing circuit according to claim 5, wherein the data can be directly transferred to one of the fields of the first and second input ports.
【請求項7】前記バイパス制御部は、さらに、 各々のレジスタ番号について比較結果が一致を示した場
合には、それぞれのレジスタ番号のうち、前記演算結果
データとして選択されるオペランドを最もプライオリテ
ィの高いものとして用い、前記書き戻しデータを次にプ
ライオリティの高いものとして用い、レジスタファイル
から受け取るデータを三番目にプライオリティの高いも
のとして用いることを決定するプライオリティ判定器 を有することを特徴とする請求項(5)記載のパイプラ
イン情報処理回路。
7. The bypass control unit further, when the comparison result indicates a match for each register number, among the register numbers, an operand selected as the operation result data has the highest priority. And a priority determiner for deciding to use the write-back data as the next highest priority and to use the data received from the register file as the third highest priority. 5) The pipeline information processing circuit according to the above.
【請求項8】命令をフェッチするフェッチステージと、
前記命令をデコードおよびロードするデコードステージ
と、前記命令を実行する実行ステージと、前記命令の実
行に基づくデータをレジスタファイルに書き戻すライト
バックステージとの、少なくとも4つのパイプラインス
テージを有し、 前記データは、デコードステージで前記演算器の入力ポ
ートにラッチされ、演算結果データは、実行ステージで
前記演算器の出力ポートから出力レジスタに転送され、
書き戻しデータは、ライトバックステージで出力レジス
タからレジスタファイルに転送され、 前記複数のセレクタは、フェッチステージで取得される
命令によって必要とされるレジスタ番号と、 少なくとも、前記演算器の前記出力ポートから受け取ら
れる前記演算結果データに対応するレジスタ番号およ
び、前記出力レジスタから受け取られる前記書き戻しデ
ータに対応するレジスタ番号とのいずれか一つ、との一
致を判定するプライオリティ判定器を含み、 前記一致が起きた場合には、フェッチステージのレジス
タ番号のデータとして使用するために、演算器の出力ポ
ートから受け取られる演算結果データが、出力レジスタ
から受け取られる書き戻しデータに優先し、また、出力
レジスタと演算器の出力ポートから各々受け取られる書
き戻しデータに対応するレジスタ番号と演算結果データ
に対応するレジスタ番号とのいずれもが、フェッチステ
ージで取得される命令が必要とするレジスタ番号と一致
しなかった場合には、フェッチステージが用いるレジス
タ番号のデータはレジスタファイルから選択されること
を特徴とする請求項(5)記載のパイプライン情報処理
回路。
8. A fetch stage for fetching instructions,
A decoding stage for decoding and loading the instruction, an execution stage for executing the instruction, and a write-back stage for writing back data based on the execution of the instruction to a register file; and Data is latched at an input port of the arithmetic unit at a decode stage, and operation result data is transferred from an output port of the arithmetic unit to an output register at an execution stage.
The write-back data is transferred from an output register to a register file in a write-back stage, and the plurality of selectors register numbers required by an instruction acquired in a fetch stage, and at least, from the output port of the arithmetic unit. A priority number determiner for determining a match with a register number corresponding to the received operation result data and a register number corresponding to the write-back data received from the output register; If this occurs, the operation result data received from the output port of the arithmetic unit takes precedence over the write-back data received from the output register so that it can be used as the register number data of the fetch stage. Each received from the output port of the container If neither the register number corresponding to the data nor the register number corresponding to the operation result data matches the register number required by the instruction acquired in the fetch stage, the register number used by the fetch stage 6. The pipeline information processing circuit according to claim 5, wherein said data is selected from a register file.
【請求項9】前記バイパス制御部は、さらに、 前記論理器の出力ポートから転送される演算結果データ
と、出力レジスタから転送される書き戻しデータとのそ
れぞれが有効か否かを示す有効フラグを記憶する記憶手
段 を具備することを特徴とする請求項(3)記載のパイプ
ライン情報処理回路。
9. The bypass control unit further includes a validity flag indicating whether each of the operation result data transferred from the output port of the logic device and the write-back data transferred from the output register is valid. The pipeline information processing circuit according to claim 3, further comprising storage means for storing.
JP2147499A 1990-03-30 1990-06-07 Pipeline information processing circuit Expired - Fee Related JP2988965B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2147499A JP2988965B2 (en) 1990-06-07 1990-06-07 Pipeline information processing circuit
US08/408,125 US5590365A (en) 1990-03-30 1995-03-21 Pipeline information processing circuit for floating point operations

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2147499A JP2988965B2 (en) 1990-06-07 1990-06-07 Pipeline information processing circuit

Publications (2)

Publication Number Publication Date
JPH0440519A JPH0440519A (en) 1992-02-10
JP2988965B2 true JP2988965B2 (en) 1999-12-13

Family

ID=15431758

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2147499A Expired - Fee Related JP2988965B2 (en) 1990-03-30 1990-06-07 Pipeline information processing circuit

Country Status (1)

Country Link
JP (1) JP2988965B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5371684A (en) 1992-03-31 1994-12-06 Seiko Epson Corporation Semiconductor floor plan for a register renaming circuit
JPH0877143A (en) * 1994-09-02 1996-03-22 Kofu Nippon Denki Kk Vector data processor
JP6428488B2 (en) * 2015-05-28 2018-11-28 富士通株式会社 Adder / Subtractor and Control Method of Adder / Subtractor
CN109840140A (en) * 2017-11-28 2019-06-04 北京比特大陆科技有限公司 A kind of arithmetic system and corresponding electronic equipment

Also Published As

Publication number Publication date
JPH0440519A (en) 1992-02-10

Similar Documents

Publication Publication Date Title
EP0679991B1 (en) Data processor for variable width operands
US6687810B2 (en) Method and apparatus for staggering execution of a single packed data instruction using the same circuit
EP0547216B1 (en) Risc microprocessor architecture implementing multiple typed register sets
US7437532B1 (en) Memory mapped register file
US5522051A (en) Method and apparatus for stack manipulation in a pipelined processor
US6128721A (en) Temporary pipeline register file for a superpipelined superscalar processor
US6725357B1 (en) Making available instructions in double slot FIFO queue coupled to execution units to third execution unit at substantially the same time
JPH07295813A (en) Processor core for executing plural type operation in simultaneous parallel and method of processing and communicating operand data by using operation
JPH0553803A (en) Processor
US5778248A (en) Fast microprocessor stage bypass logic enable
JPH06242954A (en) Method and system for improving order dispatch in superscalar processor system by using middle storage area that is independently accessed
US20030005261A1 (en) Method and apparatus for attaching accelerator hardware containing internal state to a processing core
JPH10228378A (en) Method and processor for communicating integer data and floating-point data through common data bus in microprocessor
JPH10228376A (en) Method and program for processing multiple-register instruction
JPH1165844A (en) Data processor with pipeline bypass function
JP3578883B2 (en) Data processing device
US6260135B1 (en) Parallel processing unit and instruction issuing system
WO2002057908A2 (en) A superscalar processor having content addressable memory structures for determining dependencies
JP2988965B2 (en) Pipeline information processing circuit
US5291615A (en) Instruction pipeline microprocessor
US6725355B1 (en) Arithmetic processing architecture having a portion of general-purpose registers directly coupled to a plurality of memory banks
JP2000207210A (en) Microprocessor
US6266761B1 (en) Method and system in an information processing system for efficient maintenance of copies of values stored within registers
EP1050800A1 (en) A pipelined execution unit
US20230153114A1 (en) Data processing system having distrubuted registers

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees