JPS5896346A - Hierarchical arithmetic system - Google Patents

Hierarchical arithmetic system

Info

Publication number
JPS5896346A
JPS5896346A JP56194002A JP19400281A JPS5896346A JP S5896346 A JPS5896346 A JP S5896346A JP 56194002 A JP56194002 A JP 56194002A JP 19400281 A JP19400281 A JP 19400281A JP S5896346 A JPS5896346 A JP S5896346A
Authority
JP
Japan
Prior art keywords
instruction
arithmetic unit
arithmetic
data
signal
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
JP56194002A
Other languages
Japanese (ja)
Inventor
Yoichi Shintani
洋一 新谷
Kenichi Wada
健一 和田
Tsuguo Shimizu
清水 嗣雄
Akira Yamaoka
山岡 彰
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP56194002A priority Critical patent/JPS5896346A/en
Priority to US06/446,002 priority patent/US4532589A/en
Publication of JPS5896346A publication Critical patent/JPS5896346A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • 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, look ahead
    • G06F9/3824Operand accessing
    • G06F9/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage

Abstract

PURPOSE:To solve a register conflict in its early stage and to improve a processing speed by reading stored input data immediately and using the arithmetic result of said data for the processing of succeeding instructions. CONSTITUTION:A pipeline type computer equipped with an operand buffer 20 for storing data until the starting of arithmetic execution by an arithmetic unit 14 has a preceding operating device 29 which performs arithmetic independently of the unit 14. Once decoded information on an instruction to be executed and operand data are stored in the buffer 20 without reference to whether the unit 14 is occupied or not, the data is read out immediately and inputted to the operating device 29 to perform arithmetic. Then, the arithmetic result is used for the processing of succeeding instructions.

Description

【発明の詳細な説明】 本発明は、階層型演算方式に関し、特にパイプライン方
式のコンピュータにおいて、命令の先行制御の高速化を
計ることができる階層型演算方式%式% パイプライン方式の演算では、演算過程をいくつかの段
階に垂直に分割して、その間に多数組のデータを同時に
流し、逼常は1つの命令の実行に多数サイクルの時間か
かかるところを1命令/lサイクルの速度で命令の流れ
を処理できるようにしている。
DETAILED DESCRIPTION OF THE INVENTION The present invention relates to a hierarchical arithmetic method, and particularly to a hierarchical arithmetic method that can speed up the advance control of instructions in a pipelined computer. , the calculation process is vertically divided into several stages, and many sets of data are passed simultaneously between them, so that the execution of one instruction, which normally takes many cycles, can be executed at a speed of one instruction/l cycle. It allows the flow of instructions to be processed.

このようなパイプライン方式のコンピュータにおいては
、ある命令の処理に必要なデータが、先行する命令の演
算結果に依存する場合には、その演算結果が確定するま
でパイプライン処理を中断しなければならないため、性
能低下が生ずる。例えば、ペース・レジスタに格納され
たペース・アドレスと命令中のアドレスを加算して主メ
モリの絶対アドレスを計算する方式、あるいは更新可能
なインデックス・レジスタのアドレスと命令中のアドレ
スとを加算して主メモリの絶対アドレスを計算する方式
では、オペランド・アドレスの計算に用いられるペース
・レジスタ、あるいはインデックス・レジスタの内容が
近接する先行命令によって書き換えられる場合がある(
これをアドレス・コンフリクト(番地衝突)と呼ぶ)。
In computers using this type of pipeline system, if the data required to process a certain instruction depends on the operation result of the preceding instruction, the pipeline processing must be interrupted until the operation result is determined. Therefore, performance decreases. For example, the absolute address in main memory is calculated by adding the pace address stored in the pace register and the address in the instruction, or by adding the address in the updatable index register and the address in the instruction. In methods that calculate absolute addresses in main memory, the contents of the pace register or index register used to calculate the operand address may be rewritten by an adjacent preceding instruction (
This is called an address conflict.)

また、加算命令の第1オペランドとしての被加算値は特
定の汎用レジスタ(例えば16個のうちの1個)に格納
され、加算値は命令の第2オペランドで指定されたアド
レスが示す主メモリ上に格納されているような制御方式
では、オペランドに用いられる汎用レジスタの内容が近
接する先行命令によって誉き換えられる場合がある(こ
れをオペランド・コンフリクトと呼ぶ)。アドレス・コ
ンフリクトとオペランド・コンフリクトを合わせて、レ
ジスタ・コンフリクトと呼ぶ。
Also, the addend value as the first operand of the addition instruction is stored in a specific general-purpose register (for example, one of 16), and the addition value is stored in the main memory indicated by the address specified by the second operand of the instruction. In a control system where operands are stored in a general-purpose register, the contents of a general-purpose register used for an operand may be overwritten by an adjacent preceding instruction (this is called an operand conflict). Address conflicts and operand conflicts are collectively called register conflicts.

このようなレジスタ・コンフリクトが発生した場合、従
来においては、汎用レジスタの書き換えを行う命令(以
下、変更命令と呼ぶ)のうち、比較的簡単な演算を行う
命令については、演算結果を専用の回路(以下先行演算
器と呼ぶ)により早期に求め、この演算結果を必要とす
る後続命令(これを要求命令と呼ぶ)の処理に用いるこ
とによって性能の低下を最小限に止めている(日立、汎
用コンピュータM−200H参照)。
When such a register conflict occurs, conventionally, among instructions that rewrite general-purpose registers (hereinafter referred to as modification instructions), instructions that perform relatively simple operations transfer the operation results to a dedicated circuit. (Hereafter referred to as the preceding arithmetic unit), the result of this operation is obtained early and used to process subsequent instructions that require it (hereinafter referred to as the request instruction), thereby minimizing performance degradation (Hitachi, general purpose (See Computer M-200H).

しかし、従来の方式では、命令の演算結果を汎用レジス
タ等の結果フィールドに書き込む際に。
However, in the conventional method, when writing the operation result of an instruction to the result field of a general-purpose register, etc.

演算結果として先行演算器で求めたものを用いることな
く、演算ユニットで同一の演算を再度行って求めたもの
を書き込んでいる。それにもかかわらず、先行演算器へ
の入力データのセット・アップと演算ユニットへの入力
データのセット・アップを同一のパスを用いて行ってい
る。したがって。
Instead of using the calculation result obtained by the preceding calculation unit, the calculation result obtained by performing the same calculation again in the calculation unit is written. Nevertheless, the same path is used to set up the input data to the preceding arithmetic unit and to set up the input data to the arithmetic unit. therefore.

もし先行演算器への入力データのセット・アップと演算
ユニットへの入力データのセット・アップを同一時刻に
行わないと仮定すれば、ある命令の先行演算器への入力
データのセット・アップと別の命令の演算ユニットへの
入力データのセラF・アップとが、セット・アップ・パ
スにおいて競合する可能性がある。そこで、この競合を
避けるために、1つの命令については、先行演算器への
入力データのセット・アップと演算ユニットへの入力デ
ータのセットアツプとを同一時刻に行うことにしている
。しかし、演算ユニットが同時に1命令しか処理不可能
であるとすれば、直前の命令の終了後でないと入力デー
タのセット・アップは行えない。したがって、先行演算
も直前の命令の終了後でなければ行えないことになる。
If we assume that the setup of input data to the preceding arithmetic unit and the setup of the input data to the arithmetic unit are not performed at the same time, the setup of the input data to the preceding arithmetic unit and the setup of the input data to the arithmetic unit of a given instruction are different. There is a possibility that the instruction F.up of the input data to the arithmetic unit may conflict in the setup pass. Therefore, in order to avoid this conflict, for one instruction, the setup of the input data to the preceding arithmetic unit and the setup of the input data to the arithmetic unit are performed at the same time. However, if an arithmetic unit can process only one instruction at a time, input data cannot be set up until after the previous instruction is completed. Therefore, the preceding operation can only be performed after the immediately preceding instruction is completed.

このように、従来の方式においては、パイプライン制御
の複雑化を避けるため、およびノ・−ドウエア規模の増
大を避けるため、先行演算器へのデータ・パスと演算ユ
ニットへのデータ・パスな共用しているので、先行演算
を直前の命令の演算実行終了後でなければ行うことがで
きない。
In this way, in conventional methods, in order to avoid complicating pipeline control and increasing the size of the node, the data path to the preceding arithmetic unit and the data path to the arithmetic unit are shared. Therefore, the preceding operation can only be performed after the execution of the immediately preceding instruction has been completed.

一方、先行演算に必要なオペランド・データ自体は、直
前の命令の演算実行に並行して、あるいはそれ以前に行
われる命令の先行制御により、一般にはすでに読み出さ
れている。また、先行演算器自体は、直前の命令の演算
実行中には何の動作も行っていない。したがって、従来
の方式においては、直前の命令の演算実行が何らかの理
由により長びいている場合、その命令のオペランド・デ
ータがすでに読み出され、かつ先行演算器が空いている
にもかかわらず、直前の命令の演算実行が経了するまで
先行演算が延ばされるため、その命令の先行演算の結果
を必要とする後続命令の処理がさらに延ばされることに
なる。
On the other hand, the operand data itself required for the advance operation has generally already been read out by the advance control of the instruction performed in parallel with or before the execution of the operation of the immediately preceding instruction. Furthermore, the preceding arithmetic unit itself is not performing any operation during execution of the immediately preceding instruction. Therefore, in the conventional method, if the execution of the immediately preceding instruction takes a long time for some reason, even though the operand data of that instruction has already been read and the preceding arithmetic unit is empty, the Since the preceding operation is postponed until the execution of the instruction has been completed, the processing of the subsequent instruction that requires the result of the preceding operation of that instruction is further postponed.

本発明の目的は、このような従来の問題を解決するため
、パイプライン方式のコンピュータにおいて、レジスタ
・コンフリクトが発生した場合に、ヨ’)早期にレジス
タ・コンフリクトを解消し、処理速度を向上させること
ができる階層型演算方式を提供することにある。
The purpose of the present invention is to solve such conventional problems by: (1) resolving register conflicts early when register conflicts occur in pipelined computers and improving processing speed; The purpose of this invention is to provide a hierarchical calculation method that can perform the following tasks.

上記目的を達成するため1本発明の階層型演算方式では
、パイプライン方式のコンピュータにおいて、命令語の
解読情報とオペランド・データとを、演算ユニットでの
演算実行開始まで格納する入力データ・バッファ、およ
び上記演算ユニットとは独立に演算結果を求める先行演
算器を有し、先行する命令の演算実行のために、上記演
算ユニットが占有されているか否かに関係なく、上記入
力データ・バッファに命令語の解読情報とオペランド・
データが格納されると、直ちに該入力データ・バッファ
からデータを読み出し、該データを上記先行演算器に入
力して演算を行い、演算結果を上記命令以降の命令の処
理に用いることを特徴として−いる。
In order to achieve the above objects, the hierarchical arithmetic method of the present invention provides, in a pipelined computer, an input data buffer that stores instruction word decoding information and operand data until the start of arithmetic execution in an arithmetic unit; and a preceding arithmetic unit that obtains an arithmetic result independently of the arithmetic unit, and in order to execute the arithmetic operation of the preceding instruction, the instruction is stored in the input data buffer regardless of whether the arithmetic unit is occupied or not. Word decoding information and operands
When the data is stored, the data is immediately read from the input data buffer, the data is input to the preceding arithmetic unit to perform arithmetic operations, and the result of the arithmetic operation is used to process instructions subsequent to the above-mentioned instruction. There is.

以下、本発明の実施例を、図面により説明する。Embodiments of the present invention will be described below with reference to the drawings.

第1図は1本発明の実施例を示す階層型演算処理装置の
ブロック図である。
FIG. 1 is a block diagram of a hierarchical arithmetic processing device showing an embodiment of the present invention.

第1図においては、演算エニツ)14と先行演算器29
とに、並行して演算処理させるため、命令の解読情報と
オペランド・データとを独立して読み出すセレクタ11
,12.2+、25、先行演算の結果を格納するバッフ
ァ32.この演算結果を任意の時点に読み出すセレクタ
38〜41、およびこれらのセレクタ38〜41を制御
するコンフリクト制御回路13が設けられている。
In FIG. 1, the operation unit 14 and the preceding operation unit 29
In addition, a selector 11 reads out instruction decoding information and operand data independently in order to perform arithmetic processing in parallel.
, 12.2+, 25, buffer 32 for storing the result of the preceding operation. Selectors 38 to 41 that read out the calculation results at any time, and a conflict control circuit 13 that controls these selectors 38 to 41 are provided.

先ず、メモリ装置18から読み出された命令語ハ命令レ
ジスタ1にセットされ、命令解読のために命令デコーダ
3に送られるとともに、アドレス・レジスタの読み出し
のために汎用レジスタ装置養に信号線2を介して送出さ
れる。同時に、アドレス計算のためにアドレス加算器5
に送出され、またアドレス・コンフリクトの検出のため
にコンフリクト制御回路13にも送出される。命令デコ
ーダ3に?いては、その命令の処理に必要な種々・の情
報か命令語を解読することにより生成される。
First, the instruction word read from the memory device 18 is set in the instruction register 1 and sent to the instruction decoder 3 for instruction decoding, and the signal line 2 is connected to the general register device for reading the address register. sent via. At the same time, address adder 5 for address calculation
It is also sent to the conflict control circuit 13 for address conflict detection. To instruction decoder 3? In this case, various information necessary for processing the instruction is generated by decoding the instruction word.

この解読情報の中には、先行演算が可能であるか否かを
示す情報、先行演算が可能である場合には演算のs類を
示す情報、変更する汎用レジスタの番号、オペランドと
して読み出す汎用レジスタの番号等が含まれ、これらの
解読情報は信号[6を介して命令待ち行列7およびコン
フリクト制御回路13に格納される。第1図では、命令
待ち行列7は3回設けられ、各面に1命令ごとの解読情
報が格納されており、命令の解読される脂にしたがって
3面がサイクリックに使用される。各自に格納された各
命令の解読情報は、順次16号線8,9゜lOを介して
セレクタ11.12に送出される。
This decoding information includes information indicating whether or not pre-operation is possible, information indicating the S class of the operation if pre-operation is possible, the number of the general-purpose register to be changed, and the general-purpose register to be read as an operand. The decoding information is stored in the instruction queue 7 and the conflict control circuit 13 via the signal [6. In FIG. 1, the instruction queue 7 is provided three times, and each side stores decoding information for each instruction, and the three sides are used cyclically according to how many instructions are decoded. The decoding information of each instruction stored in each is sequentially sent to the selector 11.12 via line 16 8, 9°lO.

セレクタ11は、命令待ち行列7に格納されている解読
情報のうち、現在演算ユニット14で積算が実行され【
いる命令の次に演算実行すべき命令より生成されたもの
を選択する。この場合、セレクタ11による命令待ち行
列7の選択は、従来と同じように、益金制御装置52か
ら信号線53を介して送出される命令待ち行列出カポイ
ンタの値によって行われる。この命令待ち行列出カポイ
ンタの値は、演算ユニット14に命令待ち行列の内容が
セット・アップされる良ごとに1ずつ更新される(ただ
し、5を法として、lを加算する方法を用いる)。
The selector 11 determines which of the decoding information stored in the instruction queue 7 is currently being integrated by the arithmetic unit 14.
Select the instruction that is generated from the instruction that should be executed next to the current instruction. In this case, the selection of the instruction queue 7 by the selector 11 is performed based on the value of the instruction queue output pointer sent from the profit control device 52 via the signal line 53, as in the conventional case. The value of this instruction queue output pointer is updated by 1 each time the contents of the instruction queue are set up in the arithmetic unit 14 (however, a method of adding l with modulo 5 is used).

第1図では、命令待ち行列7からセレクタ11によって
選択される解読情報のうち、特にオペランドとして読み
出す汎用レジスタ番号が、信号線15を介して汎用レジ
スタ装置4に送出さゎている。セレクタ11から出方さ
れるオペランドの汎用レジスタ番号は、その命令の解読
情報が命令待ち行列7に存在し、かつメモリ・オペラン
ド・データが読み出され、しかも直前の命令の演算実行
が終了した時点に、信号線15を介して汎用レジスタ装
f4に送出されることにより、送出された番号の汎用レ
ジスタの内容がオペランドとして読み出されて、信月線
16を介して演算ユニット14に送出される。なお、上
記説明で、直前の命令の演算実行か終了したことは、演
算エニツ)14から信号線59を介して送出されるE、
OP(End ofOperatlon)信号が“1′
となることにより判別される。
In FIG. 1, among the decoding information selected by the selector 11 from the instruction queue 7, the general-purpose register number to be read as an operand is sent to the general-purpose register device 4 via the signal line 15. The general-purpose register number of the operand output from the selector 11 is determined at the time when the decoding information for that instruction exists in the instruction queue 7, the memory operand data has been read, and the operation execution of the immediately previous instruction has finished. Then, it is sent to the general-purpose register device f4 via the signal line 15, and the contents of the general-purpose register of the sent number are read out as an operand and sent to the arithmetic unit 14 via the Shingetsu line 16. . In the above explanation, the completion of the operation of the immediately preceding instruction means E, which is sent from the operation unit 14 via the signal line 59.
OP (End of Operaton) signal is “1”
This is determined by the following.

一方、命令レジスタ1から信号線2を介して汎用レジス
タ装置14にアドレス・レジスタ番号が送出されると、
そのアドレス・レジスタ番号で指定された汎用レジスタ
の内容が、汎用レジスタ装置4から信号1117を介し
てアドレス加算器5に送出される。アドレス計算によっ
て求められたアドレスによりメモリ装置18がアクセス
されると、メモリ装置18がらメモリ・オペランドが読
み出され、信号線19を介してオペランド・バッファ2
0に格納される。オペランド・バッファ2oは。
On the other hand, when the address register number is sent from the instruction register 1 to the general-purpose register device 14 via the signal line 2,
The contents of the general-purpose register specified by the address register number are sent from general-purpose register device 4 to address adder 5 via signal 1117. When the memory device 18 is accessed by the address determined by the address calculation, the memory operand is read out from the memory device 18 and sent to the operand buffer 2 via the signal line 19.
Stored at 0. Operand buffer 2o.

第1図では3面設けられており、各面ごとに1命令のオ
ペランドが格納され、命令の解読される順にしたがって
3面がサイクリック忙使用される。
In FIG. 1, three planes are provided, each plane stores the operand of one instruction, and the three planes are used cyclically in accordance with the order in which the instructions are decoded.

この場合、オペランド・バッファ2oの各面に格納され
たオペランド・データは、順次信号i121゜22.2
3を介してセレクタ24.25に送出される。
In this case, the operand data stored in each side of the operand buffer 2o is sequentially transferred to the signal i121゜22.2.
3 to the selector 24.25.

セレクタ24は、オペランド・バッファ20に格納され
ているオペランド・データのうち、現在演算エニツ゛)
14で演算が実行されている命令の次に演算実行すべき
命令のものを選択する。第1図においては、オペランド
・バッファ2oの各面と命令待ち行列7の各面とは、1
対1に対応しており、セレクタ24によるオペランド・
バッファ20の選択は、セレクタ11による命令待ち行
列7の選択と同じようK、命令待ち行列出カポインタ5
3で示される値によって行われる。したがって、セレク
タ24から出力されたオペランド・データは、セレクタ
11から解読情報が出力される時刻と同期して、信号線
26を介し演算ユニット14に送出される。
The selector 24 selects the current operation item from among the operand data stored in the operand buffer 20.
At step 14, the instruction to be executed next to the instruction on which the operation is being executed is selected. In FIG. 1, each side of the operand buffer 2o and each side of the instruction queue 7 is 1
It corresponds to one-to-one, and the operand and
The selection of the buffer 20 is similar to the selection of the instruction queue 7 by the selector 11.
This is done using the value indicated by 3. Therefore, the operand data output from the selector 24 is sent to the arithmetic unit 14 via the signal line 26 in synchronization with the time when the decoding information is output from the selector 11.

以上か、演算実行に必要なオペランドを、汎用レジスタ
装置4およびメモリ装置18から演算ユニット14へ送
出する処理の説明であって、これらは従来より行われて
いる動作であるが、以下に本発明により新しく設けられ
た論理回路の動作を説明する。
The above is a description of the process of sending operands necessary for execution of an operation from the general-purpose register device 4 and the memory device 18 to the arithmetic unit 14, and these operations are conventionally performed, but the present invention will be described below. The operation of the newly provided logic circuit will be explained below.

セレクタ12は、先行演算を行うべき命令の解MfPt
報を選択し、そのうちオペランドとして読み出す汎用レ
ジスタ番号を信号線27を介して汎用レジスタ装置4に
送出する。セレクタ12で選択された汎用レジスタ番号
は1次に先行演算を行うべき命令の解読情報が命令待ち
行列7に存在することを示す信号(後述のI RDYE
 )が“1”Kなり、かつその命令が必要とするオペラ
ンド・データが読み出されたことを示す信号(後述の0
RDYE)が1”になり、しかも先行演算器29より信
号線60を介して送出される先行演算終了を示す信号(
後述のEOPE)が“1”になった時点に、信号I!2
7を介して汎用レジスタ装置養に送出される。なお、上
記の信号IRDYEと0RDYEとEOPEとがともに
“1”になった時点K、先行演算が開始されたことを示
す信号BOPEが“1”とな木。
The selector 12 selects the solution MfPt of the instruction to perform the preceding operation.
The general-purpose register number to be read out as an operand is sent to the general-purpose register device 4 via the signal line 27. The general-purpose register number selected by the selector 12 receives a signal (I
) becomes “1”K, and a signal indicating that the operand data required by the instruction has been read (described later
RDYE) becomes 1'', and the signal (
When EOPE (described later) becomes "1", the signal I! 2
7 to the general purpose register system. Note that at the time K when the above-mentioned signals IRDYE, 0RDYE, and EOPE all become "1", the signal BOPE indicating that the advance calculation has started becomes "1".

汎用レジスタ番号が汎用レジスタ装置養に入力されると
、その番号の汎用レジスタの内容が読み出され、信号線
28を介して先行演算器29に送出される。セレクタ1
2による命令待ち行列7の選択は、先行演算制御装置5
0より信号線51を介して送出される先行出力ポインタ
の値によって行われる。この先行出力ポインタの値は、
先行演算器29に先行演算のための入力データがセット
アツプされると“1″ずつ更新される。すなわち、上記
のBOPE信号が“1”Kなるごとに、′3を法として
1を加算する方法により更新される。
When a general-purpose register number is input to the general-purpose register device, the contents of the general-purpose register with that number are read out and sent to the preceding arithmetic unit 29 via the signal line 28. Selector 1
2, the instruction queue 7 is selected by the advance calculation control unit 5.
This is done by the value of the advance output pointer sent from 0 through the signal line 51. The value of this lookahead pointer is
When the input data for the preceding calculation is set up in the preceding calculation unit 29, it is updated by "1". That is, each time the above-mentioned BOPE signal becomes "1"K, it is updated by adding 1 modulo '3.

次に、セレクタ25は、オペランド・バッファ20に格
納されているオペランド・データのうち、先行演算を行
うべき命令のものを選択し、信号線30を介して先行演
算結果9に送出する。セレクタ25によるオペランド・
バッファ20の選択は、セレクタ12による命令待ち行
列7の選択と同じように、先行出力ポインタ51で示さ
れる値によって行われる。したがって、セレクタ25か
ら出力されたオペランド・データは、セレクタ12から
解読情報が出力される時刻と同期して、信号線30を介
して先行演算器29に送出される。
Next, the selector 25 selects, from among the operand data stored in the operand buffer 20, the one for the instruction to be subjected to the preliminary operation, and sends it to the preliminary operation result 9 via the signal line 30. Operand by selector 25
The selection of the buffer 20 is performed by the value indicated by the preceding output pointer 51, similar to the selection of the instruction queue 7 by the selector 12. Therefore, the operand data output from the selector 25 is sent to the preceding arithmetic unit 29 via the signal line 30 in synchronization with the time when the decoding information is output from the selector 12.

先行演算器29は、先行演算を行うもので、演算エニツ
)14と階層構造を形成する。先行演算器29の先行演
算は、先行演算制御装置50から信号線54を介して送
出されるBOPE信号力?1″となったときに開始され
る。先行演算の終了時には、先行演算器29から先行演
算制御装置50に信号線60を介して送出されるEOP
K信号が“1”となる。このHOPB信号は、この他に
先行演算結果バッファ32、コンフリクト制御回路13
にも送出される。
The preceding arithmetic unit 29 performs a preceding arithmetic operation, and forms a hierarchical structure with the arithmetic unit 14. The advance calculation of the advance calculation unit 29 is performed using the BOPE signal power ? sent from the advance calculation control device 50 via the signal line 54. 1''. At the end of the preceding calculation, the EOP signal is sent from the preceding calculation unit 29 to the preceding calculation control device 50 via the signal line 60.
The K signal becomes "1". This HOPB signal is also applied to the preceding calculation result buffer 32 and the conflict control circuit 13.
It is also sent to

一般的には、先行演算器29は、あらゆる命令の演算を
実行できる演算器であっても差し支えないが、演算ユニ
ット14の処理よりも高速に演算結果を求めることが目
的であるため、第1図では比較的単純な演算のみを高速
に実行する。さらに。
In general, the preceding arithmetic unit 29 may be an arithmetic unit that can execute arithmetic operations for any instruction, but since its purpose is to obtain an arithmetic result faster than the processing of the arithmetic unit 14, the first In the figure, only relatively simple operations are executed at high speed. moreover.

制御上の簡単化のために、先行演算器29での演算は演
算開始から必ず一定時間以内で終了することが望ましい
。第1図では、先行@算器29において演算され仝命令
として、論理演算命令、比較命令、加減算命令、ロード
命令等があり、これらの演算が1マシン・サイクル以内
で終了するものとする。したがって、先行演算の開始を
示す信号BOPEと、終了を示す信号EOPEとは同期
していることになり、以後BOPE信号は先行演算の開
始と終了の両方を示すものとする。
In order to simplify control, it is desirable that the calculation in the preceding calculation unit 29 be completed within a certain period of time from the start of the calculation. In FIG. 1, it is assumed that the instructions operated in the advance @ calculator 29 include logical operation instructions, comparison instructions, addition/subtraction instructions, load instructions, etc., and these operations are completed within one machine cycle. Therefore, the signal BOPE indicating the start of the preceding calculation and the signal EOPE indicating the end are synchronized, and from now on, the BOPE signal will indicate both the start and the end of the preceding calculation.

先行演算器29における演算結果は、信号[31を介し
て先行&X結結果ッファ32に格納される。
The calculation result in the preceding calculation unit 29 is stored in the preceding & X result buffer 32 via the signal [31.

先行演算結果バッファ32は、先行演算が終了してから
演算ユニット14で演算実行が開始されるまでの間、先
行演算結果を格納しておく機能を有する。先行演算結果
バッファ32は、命令待ち行列7と同じ面数、つまり第
1図では3面備えられており、かつ命令待ち行列7の各
面と1対1に対応している。
The preliminary calculation result buffer 32 has a function of storing the preliminary calculation results from the end of the preliminary calculation until the calculation unit 14 starts executing the calculation. The advance operation result buffer 32 has the same number of sides as the instruction queue 7, that is, three sides in FIG. 1, and corresponds one-to-one with each side of the instruction queue 7.

先行演算器29の演算結果は、EOPE信号6゜先行演
算結果バッファ32の各面の内容は、順に信号線35,
36.37を介してそれぞれのセレクタ38,39,4
0,41に送出される。セレクタ38.39は、先行演
算結果バッファ32内に格納されている先行演算結果が
後続命令のアドレス・レジスタとして必要となる場合に
、その先行演算結果を選択する。選択された先行演算結
果は、信号線42.43を介してアドレス加算器δに送
出される。例えば、日立Mシリーズ・コンピュータのよ
うに、インデックス・レジスタ、ベース・レジスタの2
種類が必要になる場合があるため、アドレス選択用セレ
クタは2個設けられる。
The calculation result of the preceding calculation unit 29 is sent to the EOPE signal 6°.The contents of each side of the preceding calculation result buffer 32 are sent to the signal line 35,
36, 37 via respective selectors 38, 39, 4
0,41. Selectors 38 and 39 select the preceding operation result stored in the preceding operation result buffer 32 when the result is required as an address register for a subsequent instruction. The selected preliminary calculation result is sent to the address adder δ via signal lines 42 and 43. For example, in Hitachi M series computers, there are two registers: index register and base register.
Since the type may be required, two selectors for address selection are provided.

セレクタ40.41は、先行演算結果バッファ32内に
格納されている先行演算結果が、後続命令のオペランド
の汎用レジスタの内容として必要となる場合、その先行
演算結果を選択する。選択された先行演算結果は、信号
線44.45を介して先行演算器29に送出される。例
えば1Mシリーズ・;ンビュータのように、2つのオペ
ランドのいずれも汎用レジスタである命令があるため。
Selectors 40.41 select the preceding operation result stored in the preceding operation result buffer 32 when the result is required as the contents of the general-purpose register of the operand of the subsequent instruction. The selected preliminary calculation result is sent to the preliminary calculation unit 29 via signal lines 44 and 45. For example, there are instructions such as the 1M series computer in which both operands are general-purpose registers.

先行演算結果バッファ32から同時+C2つの先行演算
結果を選択できるように、オペランド選択用セレクタは
2個設けられる。
Two selectors for operand selection are provided so that +C two preceding operation results can be simultaneously selected from the preceding operation result buffer 32.

セレクタ38〜41の選択制御は、コンフリクト制御回
路13によって行われ1選択すべき先行演算結果バッフ
ァ32の番号がw!L次信号線46〜49を介してセレ
クタ38〜41に送出される。
Selection control of the selectors 38 to 41 is performed by the conflict control circuit 13, and the number of the preceding calculation result buffer 32 to be selected is w! It is sent to selectors 38-41 via L-order signal lines 46-49.

コンフリクト制御回路13は、アドレス・コンフリクト
の検出を行い、アドレス・コンフリクトが発生した場合
、信号1158を介してACONF信号を命令制御装置
52に送出し、要求命令のデコード完了を示すDSQ信
号が“1″になることを抑止して、コンフリクト解消ま
で要求命令におけるデコードとアドレス計算を延期させ
る。さらに。
The conflict control circuit 13 detects an address conflict, and when an address conflict occurs, sends an ACONF signal to the instruction control device 52 via a signal 1158, and the DSQ signal indicating completion of decoding of the requested instruction is set to "1". '' and postpones the decoding and address calculation of the request instruction until the conflict is resolved. moreover.

要求命令の処理において、先行演算結果が使用可能であ
る場合には、セレクタ38〜41を制御するととKより
、先行演算結果バッファ32から必要な先行演算結果を
読み出す機能を有する。このため、コンフリクト制御回
路13には、命令のデコードの完了を示す信号DSQが
信号線δ6を介して入力され、また解読情報の格納され
るべき命令待、ち行列7の面番号を示す命令待ち行列入
力ポインタIQIP(0−1)が信号線57を介して入
力され、また命令の解読情報が信号線6を介して入力さ
れ、さらに先行演算の終了”を示すEOPE信号が信号
線60を介して入力され、さらに先行出力ポインタが信
号線51を介して入力される。
In the processing of a request instruction, if a preliminary operation result is available, the selectors 38 to 41 are controlled by K to read out the necessary preliminary operation result from the preliminary operation result buffer 32. Therefore, the conflict control circuit 13 receives a signal DSQ indicating completion of instruction decoding via the signal line δ6, and also waits for an instruction in which decoding information is to be stored, that is, an instruction wait indicating the surface number of the matrix 7. A matrix input pointer IQIP (0-1) is input via the signal line 57, instruction decoding information is input via the signal line 6, and an EOPE signal indicating "end of preceding operation" is input via the signal line 60. Further, the preceding output pointer is inputted via the signal line 51.

先行演算制御装置50には、命令制御装置52よりD8
Q信号が信号線56を介して入力され、命令待ち行列入
力ポインタIQIP(0〜1)が信号1[57を介して
入力され、さらにオペランド・バッファ20の各面につ
きオペランド・データが未だに読み出されていないとい
5状態を示す信号0BiFWAIT (1=O〜2)が
信号1Ij55を介して入力される。     − 第2図および第3図は、第1図における先行演算制御装
置の動作説明図である。
The advance calculation control device 50 receives D8 from the instruction control device 52.
The Q signal is input via signal line 56, the instruction queue input pointer IQIP (0-1) is input via signal 1 [57, and operand data is still being read for each side of operand buffer 20. A signal 0BiFWAIT (1=O to 2) indicating a state of 5 when the signal is not set is inputted via the signal 1Ij55. - FIGS. 2 and 3 are explanatory diagrams of the operation of the advance calculation control device in FIG. 1.

先行演算制御装置50が作成する信号のうち。Among the signals created by the advance calculation control device 50.

第2図は命令待ち行列70面IK、先行演算を行うべき
命令が格納されている状態を示すIQiB8YE信号(
i=0〜2)の作成論理であり、第3図は先行演算の開
始と同時に終了を示すBOPE信号。
FIG. 2 shows the instruction queue 70 plane IK, and the IQiB8YE signal (
i=0 to 2), and FIG. 3 shows the BOPE signal indicating the start and end of the preceding calculation.

および先行出力ポインタIQOPELB (0〜1)の
作成論理であって、第21と第3図は信号線126〜1
28,54.51が一致するA、B。
and the creation logic of the preceding output pointer IQOPELB (0 to 1), and FIGS. 21 and 3 show the signal lines 126 to 1.
28, 54.51 match A and B.

0点において接続される。Connected at point 0.

先ず、#!2図において、先行待ち行列状態セット回路
100は、7リツプ・70ツグ101〜103(IQi
B8YEDD(1=0〜2))のセットを制御するため
、入力として命令のデコード完了信号(nsq、156
)、命令待ち行列の入力ポインタ(IQIP(0〜1)
)1号線57)を入力し、また出力としてスリップ・フ
ロップ101〜103のセット信号(IQIBSYED
D8(1=0〜2))を信号線104〜106に出力す
る。デコード完了信号(線56)、命令待ち行列の入力
ポインタ(線57)は、従来方式と同じように命令制御
装置52で作成される。
First, #! In FIG. 2, the advance queue state setting circuit 100 has 7 lips and 70 teeth 101 to 103 (IQi
In order to control the setting of B8YEDD (1=0 to 2), the instruction decoding completion signal (nsq, 156
), instruction queue input pointer (IQIP(0-1)
) No. 1 line 57) is input, and the set signal (IQIBSYED) of the slip flops 101 to 103 is input as an output
D8 (1=0-2)) is output to signal lines 104-106. The decoding completion signal (line 56) and the instruction queue input pointer (line 57) are generated by the instruction controller 52 in the same manner as in the conventional system.

先行待ち行列状態セット回路100の動作は、第2図に
示すように、デコード完了信号(線56)が“1″のと
きに命令待ち行列入力ポインタ(線57)のi=o、1
の値の組み合わせによって、クリップ・フロップ101
〜103のいずれかのセット信号線104〜106が“
1″となる。
As shown in FIG. 2, the operation of the advance queue state setting circuit 100 is such that when the decoding completion signal (line 56) is "1", the instruction queue input pointer (line 57) is set to i=o, 1.
Depending on the combination of values of the clip flop 101
-103, any set signal line 104-106 is “
1″.

セット信号線104〜106の1つが“1″になると、
フリップ・フロップ101〜103の対応するD(デー
タ)入力が“1″となり、論理和ゲート107〜109
、その出力信号線110〜112を介してC(クロック
)入力が1”となって、対応するフリップ・フロップが
“1″にセットされる。
When one of the set signal lines 104 to 106 becomes "1",
The corresponding D (data) inputs of flip-flops 101 to 103 become "1", and OR gates 107 to 109
, the C (clock) input becomes "1" through its output signal lines 110 to 112, and the corresponding flip-flop is set to "1".

先行待ち行列状態リセット回路113は、フリップ・フ
ロップ101〜103のリセットを制御するため、先行
演算の開始を示すBOPE信号(1!54)。
The advance queue state reset circuit 113 controls the reset of the flip-flops 101-103 by using the BOPE signal (1!54) indicating the start of advance operation.

先行出力ポインタ(線δ1)を入力して、フリップ・フ
ロップ101〜103のリセット信号CI Q 1BS
YEDDR(1=o〜2))を線114〜116に出ガ
す1゜ 先行待ち行列状態リセット回路113の動作は。
Input the advance output pointer (line δ1) to reset the reset signal CI Q 1BS of the flip-flops 101 to 103.
The operation of the 1° advance queue state reset circuit 113 which outputs YEDDR (1=o~2)) on lines 114-116 is as follows.

第2図に示すように、先行演算開始@号(#54)が“
1′″のときに、先行出力ポインタ(IQOPELB)
(線51)のt=0.1 の値の組み合わせによって、
フリップ・フロップ101〜103のリセット信号@(
IQiBSYEDDR)114〜116の1つを“l”
にする。リセット信号線114〜116の1つが“l”
Kなると、フリップ・フロラ2101〜103の対応す
るD入力が“0″であれば、a埋相ゲー) 107〜1
09.その出力信号[110〜112を介してC(クロ
ック)入力が“1″となるため、対応する7リツプ・フ
ロップが“O”にリセットされる。
As shown in Figure 2, the pre-operation start @ number (#54) is “
1'', the advance output pointer (IQOPELB)
By combining the values of t=0.1 of (line 51),
Reset signal of flip-flops 101 to 103 @(
IQiBSYEDDR) “l” for one of 114 to 116
Make it. One of the reset signal lines 114 to 116 is “l”
When it becomes K, if the corresponding D input of the flip flora 2101 to 103 is "0", the a buried phase game) 107 to 1
09. Since the C (clock) input becomes "1" through the output signals [110 to 112], the corresponding 7 lip-flops are reset to "O".

フリップ・フロップ101−103の出力信号は、第2
図に示すように、タイミング調整のために7リツプ・フ
ロップ117〜119,120〜122,123〜12
5により遅延され、先行待ち行列状態の信号[126〜
128に出力される。
The output signals of flip-flops 101-103 are
As shown in the figure, seven lip-flops 117-119, 120-122, 123-12 are used for timing adjustment.
5 and the pre-queue status signal [126~
128.

次に、第3図において、先行待ち行列状態信号が信号!
126〜128を介してセレクタ129に入力されると
、セレクタ129はこれらの状態信号線126〜128
のうちから先行出力ポインタの示す信号線51の値を信
号線132を介して論理積ゲート133に送出する。信
号線132は1次に先行演算を行5命令がデコードを完
了したことを示すもので、IRDYE信号である。
Next, in FIG. 3, the advance queue status signal is the signal !
When input to the selector 129 via the status signal lines 126 to 128, the selector 129 selects these status signal lines 126 to 128.
Among them, the value of the signal line 51 indicated by the preceding output pointer is sent to the AND gate 133 via the signal line 132. A signal line 132 is an IRDYE signal indicating that decoding of the row 5 instruction of the primary preceding operation has been completed.

セレクタ141は、命令制御装置52から送出されるオ
ペランド・バッファ・ウェイト信号線55(OBiFW
AIT: i=o〜2)のうちから、先行出力ポインタ
(IQOPELB(0〜1))が示す信号$51の値を
バッファ・ウェイト信号(FWA I T)として信号
線145を介して出力する。オペランド・バッファ・ウ
ェイト信号(OBiFWAIT(1=0〜2))の意味
は、面番号lのオペランド・バック状態であることを示
す。
The selector 141 connects to an operand buffer weight signal line 55 (OBiFW) sent from the instruction control device 52.
AIT: Outputs the value of the signal $51 indicated by the preceding output pointer (IQOPELB (0 to 1)) from among i=o to 2) via the signal line 145 as the buffer weight signal (FWAIT). The meaning of the operand buffer wait signal (OBiFWAIT (1=0 to 2)) indicates the operand back state of surface number l.

また、信号線145のバッファ・ウェイト信号(FWA
ITK)は、否定回路146により反転された後、信号
線147を介し、0RDYE信号として論理積ゲート1
33に入力され、先行演算開始信号(BOPE)の抑止
の有無を制御する。論理積ゲ−)133の出方は、先行
演算開始信号(B OP E)として信号1!54を介
し先行出力ポインタ制御(ロ)路148に送出される。
In addition, the buffer wait signal (FWA
ITK) is inverted by the NOT circuit 146 and then sent to the AND gate 1 as the 0RDYE signal via the signal line 147.
33, and controls whether or not to suppress the advance operation start signal (BOPE). The result of the AND game 133 is sent to the advance output pointer control path 148 via the signal 1!54 as a advance operation start signal (BOPE).

先行出力ポインタ制御回路148は、先行演算開始fF
r号(BOPE)(線54)、先行出方ポインタゐ信号
(IQOPELB(0〜1))(&51 >4を入力と
し、フリップ・フロップ149,150の入力信号(I
QOPEADIN(0〜1)))km号m151゜15
2に出力する。先行出方ポインタ制御回路148の動作
は、先行演算開始信号(BOPE)(線54)が“1”
となったときに、先行出力ポインタの信号(IQOPE
LB(0〜1))の値に3を法として1インクリメント
した値を信号(IQOPEADIN(0〜1))として
出力する。フリップ・フロップ149゜150の値は、
信号線151,152を介してクリップ・フロップ15
3.15養に送出される。フリップ・フロップ153,
154は、先行出力ポインタの信号(IQOPELB(
0〜1))を信号線51に出力する。
The advance output pointer control circuit 148 controls the advance calculation start fF
r number (BOPE) (line 54), advance output pointer signal (IQOPELB (0 to 1)) (&51 > 4 is input, input signal (I
QOPEADIN(0~1))km No. m151゜15
Output to 2. The operation of the advance output pointer control circuit 148 is performed when the advance operation start signal (BOPE) (line 54) is "1".
When , the preceding output pointer signal (IQOPE
The value obtained by incrementing the value of LB (0 to 1) by 1 modulo 3 is output as a signal (IQOPEADIN (0 to 1)). The value of flip-flop 149°150 is
Clip flop 15 via signal lines 151 and 152
Sent on 3.15. flip flop 153,
154 is the preceding output pointer signal (IQOPELB(
0 to 1)) is output to the signal line 51.

第4図は1本発明の実施例を示す動作タイム・チャート
である。
FIG. 4 is an operation time chart showing an embodiment of the present invention.

1pJ4図においては5乗算命令Mが演算ユニット14
で演算されている間に、後続の加算命令Aの処理が開始
され、その演算結果をアドレス・レジスタの内容として
必要とするロード命令しの処理が行われる場合を例にと
っている。
In the 1pJ4 diagram, the 5 multiplication instruction M is in the arithmetic unit 14.
As an example, a case is taken in which processing of the subsequent addition instruction A is started while the calculation is being performed, and a load instruction that requires the result of the calculation as the contents of the address register is performed.

1つの命令の処理は、メモリ装置からの命令語の読み出
しから始まり、命令語のデコード(解読)、オペランド
の読み出し、演算、演算結果の書き込み、という段階に
分けることができる。
Processing of one instruction starts with reading the instruction word from the memory device, and can be divided into the following stages: decoding (decoding) the instruction word, reading operands, operation, and writing the operation result.

第4図においては、各々の命令M、A、Lについて、命
令語のデコードから演算を行うまでの処理をり、A、L
、E、EOP等で示している。
In FIG. 4, for each instruction M, A, and L, the processing from decoding the instruction word to performing the operation is shown.
, E, EOP, etc.

すなわち、第4図では、命令語のデコードから演算まで
を4つのステージに大きく分けている一第1のステージ
は、命令語のデコード・アドレス計算を行うステージで
あり、これをDステージと呼ぶ。第2のステージは、ア
ドレス計算結果で示されるメモリの内容をオペランドと
して読み出すステージであり、これをAステージと呼ぶ
。第3のステージは、演算ユニット14へオペランド・
データ等をセット・アップするステージであり、これを
Lステージと呼ぶ。第4のステージは、演算ユニット1
4により演算を行うステージであり。
That is, in FIG. 4, the process from instruction word decoding to operation is roughly divided into four stages. The first stage is a stage for instruction word decoding and address calculation, and is called the D stage. The second stage is a stage in which the contents of the memory indicated by the address calculation result are read out as an operand, and this is called the A stage. The third stage inputs the operands to the arithmetic unit 14.
This is the stage where data etc. are set up, and this is called the L stage. The fourth stage is the calculation unit 1
This is the stage where calculations are performed using 4.

Eステージと呼ぶ。なお、(L)のように括弧が付加さ
れているステージは、演算ユニット14にセット・アッ
プしたいが前の命令で占有されてし・るため、待機して
いる状態を示し、またEOPはEndof Op@ra
tionの略で、演算が終了し1次の命令のために空き
となる最後のEステージである。
It is called the E stage. Note that a stage with parentheses added like (L) indicates a waiting state because it is desired to be set up in the arithmetic unit 14 but is occupied by the previous instruction, and the EOP is in a waiting state. Op@ra
This is an abbreviation for tion, and is the final E stage where the operation is completed and becomes vacant for the primary instruction.

これらのステージは、いずれも各命令ごとに1ないし数
マシン・サイクルな喪する。第4図において、1マシン
・サイクルは時間軸上の目盛T。
All of these stages take one to several machine cycles for each instruction. In FIG. 4, one machine cycle is a scale T on the time axis.

からTOまでの間であり、各マシン・サイクルに対して
便宜上1から10までの番号を付記しである。
to TO, and numbers from 1 to 10 are appended to each machine cycle for convenience.

いま、乗算命令MのEステージがマシン・サイクル1か
ら5までを要しているとする。また、加算命令AのDス
テージが、マシン・サイクル1から開始されるものとす
る。このとき、マシン・サイクル1において、加算命令
AのDステージの完了を示す信号DSQ(命令制御装置
52から信号線56を介して出力される)が“1”とな
り、これより2サイクル後に、命令待ち行列7の面1に
有効な解読情報が入力したことを示す状態信号(IQI
BsYE)が“1”となる(仮に、加算命令の解読情報
か面1に格納されるものとする)。信号(IQIBSY
E(t=o 〜2))は、命令待ち行列7の各面に対応
し、信号(DSQ)に同期してセットされ、かつ先行演
算の開始を示す信号(BOPB )に同期してリセット
される状態信号であり、対応する命令がデコードされた
ものの先行演算は行われていないことを示している。先
行出力ポインタが命令待ち行列70面1を指し【いると
すると。
Assume now that the E stage of multiplication instruction M requires machine cycles 1 to 5. It is also assumed that the D stage of addition instruction A starts from machine cycle 1. At this time, in machine cycle 1, the signal DSQ (outputted from the instruction control device 52 via the signal line 56) indicating the completion of the D stage of the addition instruction A becomes "1", and two cycles later, the instruction A status signal (IQI
BsYE) becomes "1" (assuming that the decoding information of the addition instruction is stored in surface 1). Signal (IQIBSY
E(t=o~2)) corresponds to each plane of the instruction queue 7, is set in synchronization with the signal (DSQ), and is reset in synchronization with the signal (BOPB) indicating the start of the preceding operation. This is a status signal indicating that the corresponding instruction has been decoded but no pre-operation has been performed. Assume that the advance output pointer points to plane 1 of the instruction queue 70.

命令解読済みを示す信号(IRDYE)が“1”となる
。このとき、メモリ・オペランドの読み出しが完了して
いれば、信号(ORDYE)が“1″となる。
A signal (IRDYE) indicating that the instruction has been decoded becomes "1". At this time, if reading of the memory operand is completed, the signal (ORDYE) becomes "1".

また、ここで人命令以前の先行演算が終了していれば、
信号(EOPE)が“1″と′なり、したがって次の条
件が成立する。
Also, if the preceding operation before the human command has finished here,
The signal (EOPE) becomes "1", and therefore the following condition is satisfied.

(IRDYE)△(ORDYE)△(EOPE)・・・
・・・・・・(1) (△は論理積を示す) 条件(1)が成立すると、先行演算開始信号(BOPE
)が“1”となり、先行演算が行われる。
(IRDYE)△(ORDYE)△(EOPE)...
......(1) (△ indicates logical product) When condition (1) is satisfied, the preceding operation start signal (BOPE
) becomes “1” and a preliminary operation is performed.

このとき、先行出力ポインタ(IQOPELB(0〜1
)は加算命令Aの格納されている面1を示しているので
、これにしたがって加算命令Aの先行演算結果が先行演
算結果バッファ32の面1に格納される。
At this time, the preceding output pointer (IQOPELB(0 to 1
) indicates the surface 1 where the addition instruction A is stored, so the preceding operation result of the addition instruction A is stored in the surface 1 of the preceding operation result buffer 32 accordingly.

一方1次のロード命令りは、アドレス・レジスタが直前
の加算命令Aの演算結果の格納される汎用レジスタと同
一番号であるため、アドレス・コンフリクトが発生し、
コンフリクト制御回路13でこれが検出されて、これを
示す信号(ACONF)が“1″となる。アドレス・コ
ンフリクトを示す信号(ACONF)が“1″であると
、これが“1″になっている間はロード命令についての
DSQ(加算命令Dステージの完了を示す信号)が“1
″にならないため、ロード命令りのデコードは延期され
る。
On the other hand, in the primary load instruction, an address conflict occurs because the address register has the same number as the general-purpose register in which the operation result of the immediately preceding addition instruction A is stored.
This is detected by the conflict control circuit 13, and a signal (ACONF) indicating this becomes "1". When the address conflict signal (ACONF) is "1", the DSQ for the load instruction (signal indicating completion of addition instruction D stage) is "1" while this is "1".
'', the decoding of the load instruction is postponed.

このように、ロード命令りのアドレス・レジスタの内容
は、加算命令Aの先行演算によって得られ。
In this way, the contents of the address register of the load instruction are obtained by the preceding operation of the add instruction A.

マシン・サイクル3の終り頃に先行演算バッファ32の
面1に格納されるので、この値がコンフリクト制御回路
13の制御のもとでセレクタ38あるいは39により読
み出され、信号線42あるいは43を介してアドレス加
算器5に送出されて。
Around the end of machine cycle 3, this value is stored in surface 1 of advance calculation buffer 32, so this value is read out by selector 38 or 39 under the control of conflict control circuit 13 and sent via signal line 42 or 43. and sent to address adder 5.

マシン・サイクル養でアドレス計算を可能にする。Enables address calculation in machine cycle training.

これに先立って、先行演算開始@:jj(nopg)が
アドレス・コンフリク)信号(ACONF)を“0″に
するため、延期されていたロード命令のデコードか再開
され、DSQ(加算命令Dステージの完了を示す信号)
が“1”となる。
Prior to this, the advance operation start @:jj (nopg) sets the address conflict signal (ACONF) to “0”, so the decoding of the postponed load instruction is restarted, and the DSQ (addition instruction D stage) is restarted. signal indicating completion)
becomes “1”.

以上の処理により、ロード命令りのデコードはマシン・
サイクル4で完了し、結局演算ステージはマシン・サイ
クル7で完了することになる。
With the above processing, the machine can decode the load instruction.
Completed in cycle 4, the computation stage ends up being completed in machine cycle 7.

これに対して、従来の方式によれば、加算命令の先行演
算は、直前の乗算命令Mの最後の演算ステージ(マシン
・サイクル5のEOP )と同時か。
On the other hand, according to the conventional method, the preceding operation of the addition instruction is performed at the same time as the last operation stage (EOP of machine cycle 5) of the immediately preceding multiplication instruction M.

あるいはそれ以降になるため、早くてもマシン・サイク
ル5で行われることになり、したがってその先行演算結
果をロード命令りのアドレス計算で用いたとしても、ロ
ード命令りのDステージは、マシン・サイクル6となる
。つまり、本発明においては、従来方式よりもロード命
令の処理が2サイクル短縮されたことになる。これは、
加算命令Aの先行演算を、直前の命令の演算ステージ終
了を待たずに先行演算器29で早期に行うことによって
%実現できたのである。
Or after that, it will be performed in machine cycle 5 at the earliest. Therefore, even if the result of the preceding operation is used in the address calculation of the load instruction, the D stage of the load instruction will be executed in machine cycle 5. It becomes 6. In other words, in the present invention, the load instruction processing time is reduced by two cycles compared to the conventional method. this is,
This can be achieved by performing the advance operation of the addition instruction A at an early stage in the advance operation unit 29 without waiting for the completion of the operation stage of the immediately preceding instruction.

加算命令Aの先行演算が終了すると、先行出力ポインタ
(IQOPELB(0〜1))は凸を法として1インク
リメントされる。
When the advance operation of addition instruction A is completed, the advance output pointer (IQOPELB (0-1)) is incremented by 1 with the convexity modulo.

なお、レジスタ・コンフリクトは、システム制御プログ
ラムについて評価した例から、20−30%の確率で発
生する。本発明は、このようなレジスタ・コンフリクト
が発生したすべての場合に必す効果があるわけではない
が、第4図の例に示すように、乗算命令Mのような演算
器を長く占有する命令の次に加算命令Aのような簡単な
演算(1サイクル程度で完了する演算)があり、その次
の命令との間でレジスタ・コンフリクトが発生した場合
に、特に効果が期待できる。
Note that register conflicts occur with a probability of 20-30%, based on evaluations of system control programs. Although the present invention is not necessarily effective in all cases where such a register conflict occurs, as shown in the example of FIG. This is particularly effective when there is a simple operation (operation completed in about one cycle) such as addition instruction A next to the addition instruction A, and a register conflict occurs with the next instruction.

以上説明したように、本発明によれば、バイブライン方
式を用いるコンピュータにおいて、レジスタ・コンフリ
クトが発生した場合に、より早期にレジスタ・コンフリ
クトを解消するので、コンピュータの処理速度を向上さ
せることができる。
As explained above, according to the present invention, when a register conflict occurs in a computer using the Vibration method, the register conflict is resolved earlier, so that the processing speed of the computer can be improved. .

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

第1図は本発明の実施例を示す階層型演算処理装置のブ
ロック図、第2図および第3図は第1図における先行演
算制御装置の概略構成図、第4図は本発明の実施例を示
す命令処理のタイムチャートである。 12:先行演算に必要な命令解読情報を命令待ち行列7
から選択するセレクタ、13:コンフリクト制御U路、
25:先行演算に必要なオペランド・データをオペラン
ド・バッファから選択するセレクタ、29:先行演算器
、32:先行値算結果バッファ、50=先行演算制御装
置、38〜41=先行演算結果バックァ内のデータを後
続命令処理のために読み出すセレクタ、133 二先行
演算の開始信号(BOPE)を出力する論理積ゲート、
148=先行出カポインタ制御回路。 特許出願人 株式会社日立製作所 代理人弁理士磯村雅峻I゛ 伽← 第1図 第2図
FIG. 1 is a block diagram of a hierarchical arithmetic processing device showing an embodiment of the present invention, FIGS. 2 and 3 are schematic configuration diagrams of the preceding arithmetic and control device in FIG. 1, and FIG. 4 is an embodiment of the present invention. 3 is a time chart of instruction processing. 12: The instruction decoding information necessary for the advance operation is stored in the instruction queue 7
13: Conflict control U path;
25: Selector for selecting operand data necessary for the preceding operation from the operand buffer, 29: Advance operation unit, 32: Advance value calculation result buffer, 50 = Advance operation control device, 38 to 41 = In the advance operation result buffer a selector that reads data for subsequent instruction processing; 133 an AND gate that outputs a two-previous operation start signal (BOPE);
148=Advance output pointer control circuit. Patent Applicant: Hitachi, Ltd. Patent Attorney Masatoshi Isomura ← Figure 1 Figure 2

Claims (6)

【特許請求の範囲】[Claims] (1)命令語の解読情報とオペランド・データとを ゛
演算ユニットでの演算実行開始まで格納する入力データ
・バッファを備えたパイ−プライン方式のコンピュータ
において、上記演算ユニットとは独立に演算を行う先行
演算器を有し、該演算ユニットが占有されているか否か
に関係なく、演算を実行すべき命令の解読情報とオペラ
ンド・データとが上記入力データ・バッファに格納され
ると、直ちに該入力データ・バッファからデータを読み
出し、該データを上記先行演算器に入力して演算を行い
、演算結果を上記命令以降の命令の処理に用いることを
特徴とする階層型演算方式。
(1) In a pipelined computer equipped with an input data buffer that stores instruction decoding information and operand data until the arithmetic unit starts executing the arithmetic operation, the arithmetic operation is performed independently of the arithmetic unit. When the decoding information and operand data of an instruction to be executed are stored in the input data buffer, regardless of whether the arithmetic unit is occupied or not, the input data is immediately stored in the input data buffer. A hierarchical arithmetic system characterized in that data is read from a data buffer, the data is input to the preceding arithmetic unit to perform an arithmetic operation, and the result of the arithmetic operation is used to process instructions subsequent to the above-mentioned instruction.
(2)前記入力データ・バッファからデータを読み出す
場合、前記演算ユニットへのデータ送出のための読み出
し回路とは別個に、前記先行演算器へのデータ送出のた
めの読み出し回路を設けて、前記演算ユニットへのデー
タ送出と前記先行演算器へのデータ送出とを、相互干渉
することなく行うことを特徴とする特許請求の範囲第1
項記載の階層型演算方式。
(2) When reading data from the input data buffer, a read circuit for sending data to the preceding arithmetic unit is provided separately from a read circuit for sending data to the arithmetic unit, and Claim 1 characterized in that data transmission to the unit and data transmission to the preceding arithmetic unit are performed without mutual interference.
Hierarchical calculation method described in section.
(3)前記先行演算器で演算を行う場合、該演j!によ
って得られる演算結果を、前記演算ユニットでの演算実
行開始まで先行演算結果バッファに格納しておき、該先
行演算結果バッファに格納された演算結果を、専用読み
出し回路により断み出し、後続命令の処理に用いること
を特徴とする特許請求の範囲第1項又は第2項記載の階
層型演算方式。
(3) When performing an operation using the preceding arithmetic unit, the operation j! The operation result obtained by is stored in the preceding operation result buffer until the execution of the operation in the arithmetic unit starts, and the operation result stored in the preceding operation result buffer is extracted by a dedicated reading circuit and used for the subsequent instruction. A hierarchical calculation method according to claim 1 or 2, characterized in that it is used for processing.
(4)前記先行演算器の演算結果は、特に後続命令のオ
ペランド・アドレス計算に必要な汎用レジスタの内容の
かわりに用いられることを特徴とする特許請求の範囲第
1項、第2項あるいは第3項記載の階層型演算方式。
(4) The operation result of the preceding arithmetic unit is used in place of the contents of a general-purpose register necessary for calculating the operand address of a subsequent instruction. Hierarchical calculation method described in Section 3.
(5)前記先行演算器の演算結果は、特に後続命令の汎
用レジスタ・オペランドの内容のかわりに用いられるこ
とを特徴とする特許趙求σノ範囲第1よ、第2項あるい
は第3項記載の階層型演算方式。
(5) The arithmetic result of the preceding arithmetic unit is used in place of the contents of the general-purpose register operand of the subsequent instruction, as described in the first, second or third paragraphs of the patent. hierarchical calculation method.
(6)前記先行演算器の演算は、あらかじめ定めた時間
以内に演算が終了する命令のみに限定され、該命令によ
る演算を開始したならば、該先行演算器の演算終了判定
な見ずに、上記あらかじめ定めた時間後、引き続き次の
命令を該先行演算器で演算するように制御されることを
特徴とする特許請求の範囲第1項、第2項、第3項、第
4項、あるいは第5項記載の階層型演算方式。
(6) The operation of the preceding arithmetic unit is limited to only instructions that complete the operation within a predetermined time, and once the operation according to the instruction is started, without looking at the judgment of the completion of the operation of the preceding arithmetic unit, Claims 1, 2, 3, and 4, characterized in that after the predetermined time, the preceding arithmetic unit is controlled to continue to calculate the next instruction. Hierarchical calculation method described in Section 5.
JP56194002A 1981-12-02 1981-12-02 Hierarchical arithmetic system Pending JPS5896346A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP56194002A JPS5896346A (en) 1981-12-02 1981-12-02 Hierarchical arithmetic system
US06/446,002 US4532589A (en) 1981-12-02 1982-12-01 Digital data processor with two operation units

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP56194002A JPS5896346A (en) 1981-12-02 1981-12-02 Hierarchical arithmetic system

Publications (1)

Publication Number Publication Date
JPS5896346A true JPS5896346A (en) 1983-06-08

Family

ID=16317331

Family Applications (1)

Application Number Title Priority Date Filing Date
JP56194002A Pending JPS5896346A (en) 1981-12-02 1981-12-02 Hierarchical arithmetic system

Country Status (1)

Country Link
JP (1) JPS5896346A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0118830A2 (en) * 1983-03-14 1984-09-19 International Business Machines Corporation Pipelined processor
JPS60252948A (en) * 1984-05-29 1985-12-13 Nec Corp Arithmetic processor

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0118830A2 (en) * 1983-03-14 1984-09-19 International Business Machines Corporation Pipelined processor
JPS60252948A (en) * 1984-05-29 1985-12-13 Nec Corp Arithmetic processor
JPH0443298B2 (en) * 1984-05-29 1992-07-16 Nippon Electric Co

Similar Documents

Publication Publication Date Title
US4187539A (en) Pipelined data processing system with centralized microprogram control
JPH0545985B2 (en)
JPS6239780B2 (en)
JPH0348537B2 (en)
JPH0348536B2 (en)
US5390306A (en) Pipeline processing system and microprocessor using the system
JPH0743648B2 (en) Information processing equipment
JPS5896346A (en) Hierarchical arithmetic system
KR100188374B1 (en) Central processing unit and an arithmetic operation processing unit
JPH0512751B2 (en)
JPS6161416B2 (en)
JPS581246A (en) Controlling system for order of instruction processing
JPS5896345A (en) Hierarchical arithmetic system
EP0573071A2 (en) A microprocessor
JPS6125166B2 (en)
JPS6259829B2 (en)
JP2814683B2 (en) Instruction processing unit
JPS6116112B2 (en)
JP2812610B2 (en) Pipeline control method
JPH09223009A (en) Device and method for processing data
JPS5947668A (en) Information processor
JP2573711B2 (en) Micro subroutine control method
JP2583614B2 (en) Vector arithmetic unit
JPS6126089B2 (en)
JPS6116111B2 (en)