JPH04239909A - Method and device for arithmetic processing - Google Patents

Method and device for arithmetic processing

Info

Publication number
JPH04239909A
JPH04239909A JP3006655A JP665591A JPH04239909A JP H04239909 A JPH04239909 A JP H04239909A JP 3006655 A JP3006655 A JP 3006655A JP 665591 A JP665591 A JP 665591A JP H04239909 A JPH04239909 A JP H04239909A
Authority
JP
Japan
Prior art keywords
instruction
stage
execution
multiplication
multiplier
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
JP3006655A
Other languages
Japanese (ja)
Inventor
Hideyuki Kabuo
蕪尾 英之
Takashi Taniguchi
隆志 谷口
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP3006655A priority Critical patent/JPH04239909A/en
Publication of JPH04239909A publication Critical patent/JPH04239909A/en
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

PURPOSE:To execute a multiplication instruction or an instruction realized with convergent operation during execution of another instruction realized with convergent operation in an arithmetic processing device which performs the pipeline processing. CONSTITUTION:A pipeline multiplier 3 consisting of three stages of higher-order and lower-order multiplying parts 4 and 5 and a binary conversion part 6, a temporary register 7 where data is temporarily held, and a control pipeline which has plural pipelines in the execution stage and following stages are provided, and the period when at least one operation block required for a second instruction processed by this operation block out of operation blocks is unused is detected during execution of a first instruction processed by plural operation blocks, and the second instruction is executed in parallel with execution of the first instruction.

Description

【発明の詳細な説明】[Detailed description of the invention]

【0001】0001

【産業上の利用分野】本発明は、パイプライン処理を行
う演算処理装置に関するものであり、特に収束型演算で
実現される命令と乗算命令または収束型演算で実現され
る命令とを並列に実行するための演算処理方法と演算処
理装置、また収束型演算を高速に実行するための演算処
理装置に関するものである。
[Industrial Application Field] The present invention relates to an arithmetic processing device that performs pipeline processing, and in particular executes an instruction realized by convergence type operation and a multiplication instruction or an instruction realized by convergence type operation in parallel. The present invention relates to an arithmetic processing method and an arithmetic processing device for performing convergence-type arithmetic operations at high speed.

【0002】0002

【従来の技術】図6は従来の演算処理装置のデータパス
部のブロック図を示す。図6において、100 はオペ
ランドを供給するレジスタ、101 は除算に必要な初
期値を格納しているデータROM、102 は倍精度乗
算を行なう乗算器、103 は2進数変換器、104 
は演算結果を一時保持するためのテンポラリレジスタで
ある。
2. Description of the Related Art FIG. 6 shows a block diagram of a data path section of a conventional arithmetic processing device. In FIG. 6, 100 is a register that supplies operands, 101 is a data ROM that stores initial values necessary for division, 102 is a multiplier that performs double precision multiplication, 103 is a binary number converter, and 104 is a multiplier that performs double precision multiplication.
is a temporary register for temporarily holding the operation result.

【0003】図7は従来の演算処理装置において除算命
令を収束型演算として実現する場合のタイミングチャー
トを示す。除算命令実行時の各演算部のシーケンスを図
6と図7を用いて説明する。浮動小数点演算における除
算は指数部と仮数部に別けて考えることができ、指数部
に関しては被除数Xの指数と除数Yの指数との差によっ
て求められる。したがって、ここでは以後仮数部での演
算のみについて記述する。仮数部の除算アルゴリズムの
1つにNewton−Raphson法があり、除数の
逆数を求めるための漸化式は(1) 式に示すものであ
る。
FIG. 7 shows a timing chart when a division instruction is implemented as a convergent operation in a conventional arithmetic processing device. The sequence of each arithmetic unit when executing a division instruction will be explained using FIGS. 6 and 7. Division in floating point arithmetic can be considered separately into an exponent part and a mantissa part, and the exponent part is determined by the difference between the exponent of the dividend X and the exponent of the divisor Y. Therefore, hereafter only operations on the mantissa part will be described. One of the mantissa division algorithms is the Newton-Raphson method, and the recurrence formula for finding the reciprocal of the divisor is shown in equation (1).

【0004】 Ri=Ri−1×(2−Ri−1×Ym)    (1
)ここで、Ymは除数の仮数部を示し、Riは除数Ym
の逆数の第i次近似値であり、初期値R0はROMから
与えるものとする。(1) 式より求められた除数Ym
の逆数の最終近似値Rnと被除数の仮数部Xmの積を求
め、これを商とする。初期値R0を2−9の精度で与え
た場合、倍精度浮動小数点の精度を満たすために(1)
 式においてR3まで求める必要がある。(1) 式に
示した漸化式は、Ri−1×YmとRi−1×(2−R
i−1×Ym)との2回の乗算により実現される。図6
に示した演算処理装置のデータパス部において、倍精度
浮動小数点乗算は1サイクル(2クロック)の乗算と1
サイクル(2クロック)の2進数変換により実現される
[0004] Ri=Ri-1×(2-Ri-1×Ym) (1
) Here, Ym indicates the mantissa part of the divisor, and Ri is the divisor Ym
It is assumed that the initial value R0 is given from the ROM. (1) Divisor Ym obtained from formula
Find the product of the final approximation value Rn of the reciprocal of and the mantissa part Xm of the dividend, and use this as the quotient. If the initial value R0 is given with a precision of 2-9, in order to satisfy the precision of double precision floating point, (1)
It is necessary to find up to R3 in the formula. The recurrence formula shown in equation (1) is Ri-1×Ym and Ri-1×(2-R
i-1×Ym) twice. Figure 6
In the data path section of the arithmetic processing unit shown in Fig.
This is realized by binary number conversion in cycles (2 clocks).

【0005】図6、図7において、Lステージでレジス
タ100 からオペランドYmが読みだされる。Eステ
ージ1サイクル目において、オペランドYmはROM1
01 をアクセスし、初期値R0を読みだすとともにテ
ンポラリレジスタ104 に書き込まれる。Eステージ
2サイクル目において、R0×Ymの演算を実行する。 Eステージ3サイクル目において、前サイクルでの演算
結果R0×Ymは2進数変換器103を通らずに直接乗
算器102 の乗数側に入力され、2−R0×Ymの値
としてリコードし、R0との乗算を行うと同時にテンポ
ラリレジスタ104 からオペランドYmが読みだされ
る。Eステージ4サイクル目において、前サイクルでの
演算結果R1は2進数変換器103 に送られ変換され
るとともに、前記演算結果R1を直接、乗算器102 
の乗数側に入力しR1×Ymの演算を行う。Eステージ
5サイクル目において、前サイクルでの演算結果R1×
Ymは2進数変換器103 を通らずに直接乗算器10
2 の乗数側に入力され、2−R1×Ymの値としてリ
コードし、2進数変換器103 の出力結果R1との乗
算を行う。Eステージ6サイクル目において、前サイク
ルでの演算結果R2は2進数変換器103 に送られ変
換されるとともに、前記演算結果R2を直接、乗算器1
02 の乗数側に入力しR2×Ymの乗算を行う。Eス
テージ7サイクル目において、前サイクルでの演算結果
R2×Ymは2進数変換器103 を通らずに直接乗算
器102 の乗数側に入力され、2−R2×Ymの値と
してリコードし、2進数変換器103 の出力結果R2
との乗算R2×(2−R2×Ym)を実行する。Eステ
ージ8サイクル目において、前記演算結果R3を直接、
乗算器102 の乗数側に入力しXm×R3を行う。E
ステージ9サイクル目において、除算結果Xm×R3の
2進数変換および丸めを行い、Sステージで結果をレジ
スタ100 に書き込む。以上のように、倍精度除算は
9サイクル(18クロック)で実行される。
In FIGS. 6 and 7, operand Ym is read from register 100 at the L stage. In the first cycle of E stage, operand Ym is in ROM1.
01 and reads out the initial value R0, which is also written to the temporary register 104. In the second cycle of the E stage, the calculation of R0×Ym is executed. In the third cycle of the E stage, the calculation result R0×Ym from the previous cycle is input directly to the multiplier side of the multiplier 102 without passing through the binary converter 103, and is recoded as a value of 2-R0×Ym, and is converted to R0. At the same time as the multiplication is performed, the operand Ym is read from the temporary register 104. In the fourth cycle of the E stage, the calculation result R1 from the previous cycle is sent to the binary number converter 103 and converted, and the calculation result R1 is directly sent to the multiplier 102.
is input to the multiplier side and the calculation of R1×Ym is performed. In the 5th cycle of the E stage, the calculation result of the previous cycle R1×
Ym is directly input to the multiplier 10 without passing through the binary converter 103.
It is input to the multiplier side of 2, is recoded as a value of 2-R1×Ym, and is multiplied by the output result R1 of the binary converter 103. In the sixth cycle of the E stage, the calculation result R2 from the previous cycle is sent to the binary number converter 103 and converted, and the calculation result R2 is directly sent to the multiplier 1.
02 is input to the multiplier side and multiplied by R2×Ym. In the 7th cycle of the E stage, the calculation result R2×Ym from the previous cycle is directly input to the multiplier side of the multiplier 102 without passing through the binary number converter 103, and is recoded as a value of 2-R2×Ym and converted into a binary number. Output result R2 of converter 103
Execute the multiplication R2×(2−R2×Ym). In the 8th cycle of the E stage, the calculation result R3 is directly
It is input to the multiplier side of the multiplier 102 and performs Xm×R3. E
In the ninth cycle of the stage, the division result Xm×R3 is converted into a binary number and rounded, and the result is written to the register 100 in the S stage. As described above, double precision division is executed in 9 cycles (18 clocks).

【0006】図8は従来の演算処理装置の制御パイプラ
インの構造を示すものである。図8において、111 
は命令のデコードを行うためのIステージ、112 は
演算に必要なオペランドをレジスタから演算器へ送るた
めのLステージ、113 は演算を実行するためのEス
テージ、114 は演算結果をレジスタに書き込むため
のSステージ、115 は演算器の状態を示すステート
マシンである。
FIG. 8 shows the structure of a control pipeline of a conventional arithmetic processing device. In FIG. 8, 111
112 is an I stage for decoding instructions, 112 is an L stage for sending operands necessary for operations from registers to arithmetic units, 113 is an E stage for executing operations, and 114 is for writing operation results to registers. The S stage 115 is a state machine that indicates the state of the arithmetic unit.

【0007】図9は従来の演算処理装置における命令毎
のパイプラインの進行を示したタイミングチャートであ
る。図9において、120 〜123 は第1の除算命
令がそれぞれIステージ、Lステージ、Eステージ、S
ステージにある期間、124 〜127 は第2の乗算
命令がそれぞれIステージ、Lステージ、Eステージ、
Sステージにある期間、128 はIステージウェイト
信号を示す。
FIG. 9 is a timing chart showing the progress of a pipeline for each instruction in a conventional arithmetic processing device. In FIG. 9, the first division instructions 120 to 123 are in the I stage, L stage, E stage, and S stage, respectively.
During the periods 124 to 127, the second multiplication instructions are in the I stage, L stage, E stage, and
During the S stage, 128 indicates the I stage wait signal.

【0008】このように構成された従来の演算処理装置
について、図9に示した命令のシーケンスを実行した場
合の動作を以下に説明する。図8、図9において、ステ
ートマシン115 は第1の除算命令fdivdがLス
テージ121 に進んだとき、Iステージ111 に対
してウェイト信号128 をHighにし、ウェイト信
号128 がLowとなるまで第2の乗算命令fmul
dをロック状態にする。次に第1の除算命令fdivd
はEステージ122 へと進み、乗算器102 と2進
数変換器103 を用いて図7に示した収束型除算の実
行を行なう。ステートマシン115 は第1の除算命令
fdivdのSステージ123 の2サイクル前にIス
テージ111 に対するウェイト信号128 をLow
とし、第1の除算命令fdivdのEステージ122 
最終サイクルで第2の乗算命令fmuldをLステージ
125 に送る。第1の除算命令fdivdがSステー
ジ123 に入り、その演算結果をレジスタ100 へ
書き込むと同時に第2の乗算命令fmuldはEステー
ジ126 へと進み、乗算命令の実行を開始する。次に
第2の乗算命令fmuldはSステージ127 に入り
、その演算結果をレジスタ100 へ書き込む。
The operation of the conventional arithmetic processing device configured as described above when executing the instruction sequence shown in FIG. 9 will be described below. 8 and 9, when the first division instruction fdivd advances to the L stage 121, the state machine 115 sets the wait signal 128 to High for the I stage 111, and waits until the wait signal 128 becomes Low. Multiplication instruction fmul
d into the locked state. Next, the first division instruction fdivd
Proceeds to the E stage 122, where the convergent division shown in FIG. 7 is executed using the multiplier 102 and the binary converter 103. The state machine 115 sets the wait signal 128 for the I stage 111 to Low two cycles before the S stage 123 of the first division instruction fdivd.
and the E stage 122 of the first division instruction fdivd
In the final cycle, the second multiplication instruction fmuld is sent to the L stage 125. The first division instruction fdivd enters the S stage 123 and writes its operation result to the register 100. At the same time, the second multiplication instruction fmuld advances to the E stage 126 and starts executing the multiplication instruction. Next, the second multiplication instruction fmuld enters the S stage 127 and writes the result of the operation to the register 100.

【0009】[0009]

【発明が解決しようとする課題】しかしながら、上記の
ような構成では、除算命令がEステージである間はそれ
以降の命令はパイプロックされた状態にあり、除算命令
がSステージになるまで次の命令は実行されない。すな
わち、収束型演算で実現される命令が実行されている間
は他の命令は実行できず、演算処理装置自体のパフォー
マンスは低下するという問題を有していた。
[Problem to be Solved by the Invention] However, in the above configuration, while the division instruction is in the E stage, subsequent instructions are in a pipe-locked state, and until the division instruction reaches the S stage, the next instruction cannot be executed. The command is not executed. That is, while an instruction realized by convergent operation is being executed, other instructions cannot be executed, resulting in a problem that the performance of the arithmetic processing device itself deteriorates.

【0010】また、収束型演算の実現においては、演算
精度の高低にかかわらず同じビット幅の演算処理をして
いたために演算実行速度を上げられないという問題を有
していた。
[0010] Furthermore, in realizing convergent arithmetic operations, there was a problem in that the arithmetic execution speed could not be increased because arithmetic operations were performed with the same bit width regardless of the level of arithmetic precision.

【0011】本発明はかかる点に鑑み、収束型演算で実
現される命令を実行している間も他の乗算命令や収束型
演算で実現される命令の実行を可能とすることでパフォ
ーマンスの向上を実現することができる演算処理方法と
演算処理装置、さらには収束型演算を高速に実行するた
めの演算処理装置を提供することを目的とするものであ
る。
In view of the above, the present invention improves performance by making it possible to execute other multiplication instructions or instructions realized by convergent arithmetic while executing an instruction realized by convergent arithmetic. It is an object of the present invention to provide an arithmetic processing method and an arithmetic processing device that can realize the above, and furthermore, an arithmetic processing device that can perform convergent arithmetic at high speed.

【0012】0012

【課題を解決するための手段】上記課題を解決するため
に、本発明の演算処理方法は、複数の演算ブロックによ
り処理される第1の命令の実行中に、前記演算ブロック
の内少なくとも1つの演算ブロックにより処理される第
2の命令をフェッチした場合、第1の命令の実行中に第
2の命令に必要な演算ブロックの未使用期間を検出し、
第1の命令の実行と並列に第2の命令を実行するもので
ある。
Means for Solving the Problems In order to solve the above problems, the arithmetic processing method of the present invention provides a method for processing at least one of the arithmetic blocks during execution of a first instruction processed by a plurality of arithmetic blocks. When fetching a second instruction to be processed by the arithmetic block, detecting an unused period of the arithmetic block necessary for the second instruction during execution of the first instruction;
The second instruction is executed in parallel with the execution of the first instruction.

【0013】また、本発明の演算処理装置は、高位側と
低位側の乗算部と2進数変換部の3段構成からなるパイ
プライン型乗算器と、オペランドを供給するためのレジ
スタと、一時的にデータを保持するテンポラリレジスタ
と、実行ステージ以降に複数のパイプライン構造を有す
る制御パイプラインとを備え、収束型演算として実現さ
れる命令を実行している間も他の乗算命令や収束型演算
として実現される命令の実行を可能にしたものである。
Further, the arithmetic processing device of the present invention includes a pipeline multiplier having a three-stage configuration of a high-order side multiplication section, a low-order side multiplication section, and a binary number conversion section, a register for supplying operands, and a temporary It is equipped with a temporary register that holds data, and a control pipeline that has multiple pipeline structures after the execution stage. This makes it possible to execute instructions realized as .

【0014】また、本発明の演算処理装置は、前記パイ
プライン型乗算器と、前記テンポラリレジスタと、前記
パイプライン型乗算器の乗算器および2進数変換部のシ
ーケンスを制御する制御部とを備え、収束型演算として
実現される命令を実行する場合、演算精度が低いときは
高位側あるいは低位側のいずれかの乗算部と2進数変換
部を用いて演算を行い、演算精度が高位側あるいは低位
側いずれかの乗算部の入力ビット幅より大きくなったと
きは高位側と低位側の乗算部と2進数変換部を用いて演
算を行うように制御し、高速に収束型演算を実行するこ
とを可能にしたものである。
Further, the arithmetic processing device of the present invention includes the pipeline multiplier, the temporary register, and a control section that controls the sequence of the multiplier and the binary conversion section of the pipeline multiplier. , when executing an instruction realized as a convergent operation, if the operation precision is low, the operation is performed using either the high-order or low-order multiplication section and the binary conversion section; When the input bit width is larger than the input bit width of the multiplier on either side, the multiplier on the high-order side and the low-order side and the binary conversion section are used to perform the operation, so that the convergence type operation can be executed at high speed. It made it possible.

【0015】[0015]

【作用】本発明は前記した構成により、収束型演算によ
り実現される第1の命令を実行中に乗算命令または収束
型演算命令により実現される第2の命令をフェッチした
場合、収束型演算における漸化式の繰り返し実行によっ
て発生するパイプライン型乗算器の各段の未使用期間を
検出し、第2の命令が乗算命令の場合、第1の命令が存
在する第1の実行パイプラインとは別の第2の実行パイ
プラインに第2の命令を供給することにより、第1の命
令の実行と並列に第2の命令を実行する。第2の命令が
収束型演算により実現される命令の場合、第1の実行パ
イプラインにおける第1の命令の実行ステージの進行に
合わせて第1の実行パイプラインに第2の命令を供給し
、第1の命令の実行中に第2の命令を実行する。第1の
命令の実行中にフェッチされる命令はパイプライン型乗
算器の各段の未使用期間が検出される期間中続けて第1
または第2の実行パイプラインに供給することで実行し
、その演算結果は一時テンポラリレジスタに格納する。 第1の命令の実行が終了し、第1の命令の演算結果をレ
ジスタへ書き込むのと同時あるいは続いてテンポラリレ
ジスタに書き込んだ演算結果もレジスタへ移動する。こ
のことにより、収束型演算により実現される命令の実行
中も制御パイプラインをロックし続けることなく次の演
算命令を実行できる。
[Operation] According to the above-described structure, when a multiplication instruction or a second instruction realized by a convergent operation instruction is fetched while a first instruction realized by a convergent operation is being executed, Detects the unused period of each stage of the pipeline multiplier that occurs due to repeated execution of the recurrence formula, and when the second instruction is a multiplication instruction, the first execution pipeline in which the first instruction exists is The second instruction is executed in parallel with the execution of the first instruction by supplying the second instruction to a separate second execution pipeline. If the second instruction is an instruction realized by a convergent operation, supplying the second instruction to the first execution pipeline in accordance with the progress of the execution stage of the first instruction in the first execution pipeline; A second instruction is executed during execution of the first instruction. The instruction fetched during the execution of the first instruction continues to be fetched during the period in which the unused period of each stage of the pipelined multiplier is detected.
Alternatively, it is executed by supplying it to the second execution pipeline, and the result of the operation is temporarily stored in a temporary register. When the execution of the first instruction is completed and the operation result of the first instruction is written to the register, the operation result written to the temporary register is also moved to the register. As a result, even during the execution of an instruction realized by convergent operation, the next operation instruction can be executed without continuing to lock the control pipeline.

【0016】また、本発明における収束型演算の実現に
関しては、前記した構成により、演算精度が低いときは
高位側あるいは低位側いずれかの乗算部と2進数変換部
を用いて演算を行い、演算精度が高位側あるいは低位側
いずれかの乗算部の入力ビット幅より大きくなったとき
は高位側と低位側の乗算部と2進数変換部を用いて演算
を行う。このことにより、演算精度が低いときに省ける
サイクル数分、高速に収束型演算を実行することができ
る。
[0016] Furthermore, in order to realize the convergent operation according to the present invention, with the above-described configuration, when the operation accuracy is low, the operation is performed using either the high-order side or the low-order side multiplication section and the binary conversion section. When the precision becomes larger than the input bit width of either the high-order side or the low-order side multiplier, the calculation is performed using the high-order side and low-order side multipliers and the binary conversion section. As a result, the convergence type calculation can be executed at high speed by the number of cycles that can be saved when the calculation accuracy is low.

【0017】[0017]

【実施例】以下本発明の一実施例を図面に基づいて説明
する。図1は本発明の第1の実施例における演算処理装
置のデータパス部のブロック図を示す。図1において、
1はオペランドを供給するレジスタ、2は除算に必要な
初期値を格納しているデータROM、3は倍精度乗算を
行なうパイプライン型乗算器であり、4〜6はそれぞれ
パイプライン型乗算器3における低位側乗算部、高位側
乗算部、2進数変換部である。7は演算結果を一時保持
するためのテンポラリレジスタである。
DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of the present invention will be described below with reference to the drawings. FIG. 1 shows a block diagram of a data path section of an arithmetic processing unit in a first embodiment of the present invention. In Figure 1,
1 is a register that supplies operands, 2 is a data ROM that stores initial values necessary for division, 3 is a pipeline type multiplier that performs double precision multiplication, and 4 to 6 are pipeline type multipliers 3, respectively. These are a low-order multiplication section, a high-order multiplication section, and a binary number conversion section. 7 is a temporary register for temporarily holding the calculation result.

【0018】図2は本発明の第1の実施例の演算処理装
置において除算命令を収束型演算として実現する場合、
演算精度が低いときは高位側乗算部と2進数変換部を用
いて演算を行い、演算精度が高位側乗算部の入力ビット
幅より大きくなったときは高位側と低位側の乗算部と2
進数変換部を用いて演算を行うシーケンス実行時のタイ
ミングチャートを示す。
FIG. 2 shows the case where the division instruction is realized as a convergent operation in the arithmetic processing device according to the first embodiment of the present invention.
When the arithmetic precision is low, the high-order side multiplier and the binary conversion section are used to perform the calculation, and when the arithmetic precision becomes larger than the input bit width of the high-order side multiplier, the high-order side and low-order side multipliers are used.
A timing chart when executing a sequence in which arithmetic operations are performed using a base number conversion unit is shown.

【0019】このように構成された演算処理装置につい
て、図2に示す倍精度除算命令実行時の各演算部のシー
ケンスを説明する。図1に示した演算処理装置のデータ
パス部において、倍精度浮動小数点乗算は2サイクル(
2クロック)の乗算と1サイクル(1クロック)の2進
数変換により実現される。図2において、Lステージで
レジスタ1からオペランドYmが読みだされる。E1ス
テージ1サイクル目において、オペランドYmはROM
2をアクセスし初期値R0を読みだすとともにテンポラ
リレジスタ7に書き込まれる。E1ステージ2サイクル
目において、R0×Ymの演算を実行する。このときR
0の精度が低いことに注目すると、乗算器の入力幅とし
て倍精度分を必要としない。したがって、R0を乗数側
(リコーダ側)入力とし、Ymを被乗数側入力として高
位側乗算部5のみで演算を実行できる。E1ステージ3
サイクル目において、前サイクルでの演算結果R0×Y
mは2進数変換器6を通らずに直接乗数器3の乗数側に
入力され、2−R0×Ymの値としてリコードし、R0
との乗算を行うと同時にテンポラリレジスタ7からオペ
ランドYmが読みだされる。このとき、前サイクルと同
様にR0×Ymの精度が低いことに注目し、高位側乗算
部5のみで演算を実行する。E1ステージ4サイクル目
において、前サイクルでの演算結果R1は2進数変換器
6に送られ変換されるとともに、前記演算結果R1を直
接、乗算器3の乗数側に入力R1×Ymの演算を行う。 このとき、前サイクルと同様にR1の精度が低いことに
注目し、高位側乗算部5のみで演算を実行する。E1ス
テージ5サイクル目において、前サイクルでの演算結果
R1×Ymは2進数変換器6を通らずに直接乗算器3の
乗数側に入力され、2−R1×Ymの値としてリコード
し、2進数変換器6の出力結果R1との乗算を行う。こ
のとき、前サイクルの演算結果R1×Ymの精度が高位
側乗算部5の乗数側入力幅より大きくなるため、まず低
位側乗算部4で演算を実行した後、次サイクルで高位側
乗算部5での演算を実行する。
Regarding the arithmetic processing device configured as described above, the sequence of each arithmetic unit when executing the double-precision division instruction shown in FIG. 2 will be described. In the data path section of the arithmetic processing unit shown in Figure 1, double-precision floating-point multiplication is performed in two cycles (
This is realized by multiplication of 2 clocks) and binary conversion of 1 cycle (1 clock). In FIG. 2, operand Ym is read from register 1 at the L stage. In the first cycle of E1 stage, operand Ym is in ROM
2 and reads out the initial value R0, which is also written to the temporary register 7. In the second cycle of the E1 stage, the calculation R0×Ym is executed. At this time R
Focusing on the low precision of 0, double precision is not required as the input width of the multiplier. Therefore, the calculation can be executed only by the high-order side multiplier 5 with R0 as the multiplier side (recorder side) input and Ym as the multiplicand side input. E1 stage 3
In the cycle, the calculation result from the previous cycle is R0×Y
m is input directly to the multiplier side of the multiplier 3 without passing through the binary number converter 6, and is recoded as a value of 2-R0×Ym, R0
The operand Ym is read out from the temporary register 7 at the same time as the multiplication with . At this time, paying attention to the low precision of R0×Ym as in the previous cycle, only the high-order multiplier 5 executes the calculation. In the fourth cycle of the E1 stage, the calculation result R1 from the previous cycle is sent to the binary number converter 6 and converted, and the calculation result R1 is directly input to the multiplier side of the multiplier 3 for calculation of R1×Ym. . At this time, paying attention to the low precision of R1 as in the previous cycle, only the high-order multiplier 5 executes the calculation. In the fifth cycle of the E1 stage, the calculation result R1×Ym from the previous cycle is input directly to the multiplier side of the multiplier 3 without passing through the binary number converter 6, and is recoded as a value of 2-R1×Ym, and converted into a binary number. Multiplication with the output result R1 of the converter 6 is performed. At this time, since the accuracy of the calculation result R1×Ym of the previous cycle is greater than the multiplier side input width of the high-order side multiplier 5, the calculation is first performed in the low-order side multiplier 4, and then in the next cycle, the high-order side multiplier 5 Execute the calculation in .

【0020】以後の乗算は演算精度を高めるため、高位
側5と低位側4両方の乗算部を用いて行われる。E2d
ステージ1サイクル目において、R1×(2−R1×Y
m)の高位側の乗算を実行するとともにテンポラリレジ
スタ7からオペランドYmが読みだされる。E2dステ
ージ2サイクル目において、前サイクルでの演算結果R
2は2進数変換器6に送られ変換されるとともに、前記
演算結果R2を直接、乗算器3の乗数側に入力しR2×
Ymの低位側乗算を行う。E2dステージ3サイクル目
において、R2×Ymの高位側乗算を行なうと同時に前
サイクルで2進数変換されたR2をテンポラリレジスタ
7に書き込む。E2dステージ4サイクル目において、
前サイクルでの演算結果R2×Ymは2進数変換器6を
通らずに直接乗算器3の乗数側に入力され、2−R2×
Ymの値としてリコードし、R2をテンポラリレジスタ
7から読み出し、R2×(2−R2×Ym)の低位側乗
算を行う。E2dステージ5サイクル目において、R2
×(2−R2×Ym)の高位側乗算を行うと同時にレジ
スタ1からオペランドXmを読みだす。E2dステージ
6サイクル目において、前記演算結果R3を直接、乗算
器3の乗数側に入力しXm×R3の低位側乗算を行う。 E2dステージ7サイクル目において、Xm×R3の高
位側乗算を行う。E3dステージにおいて、除算結果X
m×R3の2進数変換および丸めを行い、Sステージで
結果をレジスタ1に書き込む。
The subsequent multiplications are performed using both the high-order side 5 and low-order side 4 multipliers in order to improve the calculation accuracy. E2d
In the first cycle of stage, R1×(2-R1×Y
At the same time, the operand Ym is read from the temporary register 7. In the second cycle of the E2d stage, the calculation result R of the previous cycle
2 is sent to the binary number converter 6 and converted, and the calculation result R2 is directly input to the multiplier side of the multiplier 3, and R2×
Perform low-order multiplication of Ym. In the third cycle of the E2d stage, the high-order side multiplication of R2×Ym is performed, and at the same time, R2, which has been converted into a binary number in the previous cycle, is written into the temporary register 7. In the 4th cycle of E2d stage,
The calculation result R2×Ym in the previous cycle is input directly to the multiplier side of the multiplier 3 without passing through the binary converter 6, and is calculated as 2−R2×
It is recoded as the value of Ym, R2 is read from the temporary register 7, and low-order side multiplication of R2×(2−R2×Ym) is performed. At the 5th cycle of E2d stage, R2
Operand Xm is read from register 1 at the same time as the high-order side multiplication of ×(2−R2×Ym) is performed. In the sixth cycle of the E2d stage, the calculation result R3 is directly input to the multiplier side of the multiplier 3 to perform a low-order side multiplication of Xm×R3. In the seventh cycle of the E2d stage, a high-order side multiplication of Xm×R3 is performed. At the E3d stage, the division result X
Perform binary conversion and rounding of m×R3, and write the result to register 1 in the S stage.

【0021】以上のように本実施例によれば、高位側と
低位側の乗算部と2進数変換部の3段構成からなるパイ
プライン型乗算器と一時的にデータを保持するテンポラ
リレジスタとを備えることにより、除算命令のシーケン
スにおいて演算精度が低いときは高位側乗算部と2進数
変換部を用いて演算を行い、演算精度が高位側乗算部の
入力ビット幅より大きくなったときは高位側と低位側の
乗算部と2進数変換部を用いて演算を行うことができ、
倍精度の除算を13サイクル(13クロック)で実行で
きる。
As described above, according to this embodiment, a pipeline multiplier consisting of a three-stage configuration of a high-order side multiplication section, a low-order side multiplication section, and a binary number conversion section, and a temporary register for temporarily holding data are used. By providing this, when the arithmetic precision is low in the sequence of division instructions, the high-order side multiplier and binary conversion section are used to perform the operation, and when the arithmetic precision becomes larger than the input bit width of the high-order side multiplier, the high-order side multiplier is used. It is possible to perform calculations using the low-order side multiplier and binary conversion section,
Double precision division can be executed in 13 cycles (13 clocks).

【0022】また、前記E2dステージ1サイクル目で
は低位側乗算部4が未使用であり、前記E2dステージ
2サイクル目では高位側乗算部5、前記E2dステージ
3サイクル目では2進数変換器6と低位側乗算器4がそ
れぞれ未使用である。したがって、前記E1ステージ5
サイクル目にオペランドを読みだせば、上述した各乗算
部4〜5および2進数変換部6の未使用期間に乗算を実
行でき、その演算結果はテンポラリレジスタ7へ書き込
める。同様にE2dステージ2サイクル目にオペランド
を読みだせば、E2dステージ3〜5サイクルの各乗算
部4〜6および2進数変換部6の未使用期間に乗算を実
行でき、E2dステージ4サイクル目にオペランドを読
みだせば、E2dステージ5〜7サイクルの各乗算部4
〜5および2進数変換部6の未使用期間に乗算を実行で
きる。
Furthermore, in the first cycle of the E2d stage, the low-order multiplier 4 is unused, and in the second cycle of the E2d stage, the high-order multiplier 5 is used, and in the third cycle of the E2d stage, the low-order multiplier 4 is unused. The side multipliers 4 are each unused. Therefore, the E1 stage 5
If the operand is read out in the cycle, multiplication can be executed while the multipliers 4 to 5 and the binary converter 6 are not used, and the result of the operation can be written to the temporary register 7. Similarly, if the operand is read in the second cycle of the E2d stage, multiplication can be executed during the unused period of each multiplier 4 to 6 and the binary conversion part 6 in the 3rd to 5th cycles of the E2d stage, and the operand is read in the 4th cycle of the E2d stage. If you read out
.about.5 and the binary number converter 6 are not used, the multiplication can be performed.

【0023】なお、本実施例において収束型演算により
実現される命令を除算命令としたが、平方根演算命令や
初等関数などの収束型演算においても同様の効果を得ら
れる。また、演算精度が低いときの乗算は高位側乗算部
を用いて行なったが、低位側乗算部を用いても同様の効
果を得られる。
In this embodiment, the instruction realized by the convergence-type operation is a division instruction, but the same effect can be obtained by convergence-type operations such as square root operation instructions and elementary functions. Further, although the multiplication when the calculation precision is low is performed using the high-order multiplication section, the same effect can be obtained by using the low-order multiplication section.

【0024】図3は本発明の第2の実施例における演算
処理装置の制御パイプラインの構造図を示す。図3にお
いて、11は命令のデコードを行なうためのIステージ
、12は演算に必要なオペランドをレジスタから演算器
へ送るためのLステージ、13は演算を実行するための
E1ステージ、14と15はそれぞれ除算/平方根演算
を実行するためのE2dステージとE3dステージ、1
6は演算結果をレジスタに書き込むためのSステージ、
17と18はそれぞれ乗算を実行するためのE2mステ
ージとE3mステージ、19は演算結果を一時テンポラ
リレジスタに書き込み、その後演算結果をレジスタに書
き込むためのSQue、20は演算器の状態を示すステ
ートマシンである。
FIG. 3 shows a structural diagram of a control pipeline of an arithmetic processing unit in a second embodiment of the present invention. In FIG. 3, 11 is an I stage for decoding instructions, 12 is an L stage for sending operands necessary for an operation from a register to an arithmetic unit, 13 is an E1 stage for executing an operation, and 14 and 15 are E2d and E3d stages for performing division/square root operations, respectively, 1
6 is an S stage for writing the calculation result to the register;
17 and 18 are the E2m stage and E3m stage for executing multiplication, respectively; 19 is an SQue for writing the operation result into a temporary register and then writing the operation result to the register; 20 is a state machine that indicates the state of the arithmetic unit. be.

【0025】図4は本発明の第2の実施例の演算処理装
置における命令毎のパイプラインの進行を示したタイミ
ングチャートである。図4において、31〜36は第1
の除算命令がそれぞれIステージ、Lステージ、E1ス
テージ、E2dステージ、E3dステージ、Sステージ
にある期間、37〜43は第2の乗算命令がそれぞれI
ステージ、Lステージ、E1ステージ、E2mステージ
、E3mステージ、Sq0ステージ、Sステージにある
期間、44〜49は第3の除算命令がそれぞれIステー
ジ、Lステージ、E1ステージ、E2dステージ、E3
dステージ、Sステージにある期間、50〜56は第4
の乗算命令がそれぞれIステージ、Lステージ、E1ス
テージ、E2mステージ、E3mステージ、Sq0ステ
ージ、Sステージにある期間、57〜63は第5の乗算
命令がそれぞれIステージ、Lステージ、E1ステージ
、E2mステージ、E3mステージ、Sq0ステージ、
Sステージにある期間、64〜66は第6〜第8の乗算
命令がSステージにある期間、67〜72は第9の乗算
命令がそれぞれIステージ、Lステージ、E1ステージ
、E2mステージ、E3mステージ、Sステージにある
期間、73はIステージウェイト信号を示す。
FIG. 4 is a timing chart showing the progress of the pipeline for each instruction in the arithmetic processing device according to the second embodiment of the present invention. In FIG. 4, 31 to 36 are the first
During periods 37 to 43, the second multiplication instructions are in the I stage, L stage, E1 stage, E2d stage, E3d stage, and S stage, respectively.
44 to 49 are periods in which the third division instruction is in the I stage, L stage, E1 stage, E2d stage, and E3, respectively.
D stage, S stage period, 50-56 is the 4th stage
During periods 57 to 63, the fifth multiplication instructions are in the I stage, L stage, E1 stage, E2m stage, E3m stage, Sq0 stage, and S stage, respectively. stage, E3m stage, Sq0 stage,
Periods 64 to 66 are periods in which the sixth to eighth multiplication instructions are in the S stage, and periods 67 to 72 are periods in which the ninth multiplication instructions are in the I stage, L stage, E1 stage, E2m stage, and E3m stage, respectively. , 73 indicates an I stage wait signal during the S stage.

【0026】図5は本実施例の演算処理装置において倍
精度除算命令を収束型演算として実現する場合、演算精
度にかかわらず高位側と低位側の乗算部と2進数変換部
を用いて演算を行うシーケンス実行時のタイミングチャ
ートを示す。図2に示したシーケンスの第1の除算命令
を実行中に第2の除算命令をフェッチした場合、第2の
除算命令を図5に示したシーケンスで実行すると図2の
E2dステージ以降の各乗算部および2進数変換部の未
使用期間に第2の除算命令を実行することができる。
FIG. 5 shows that when a double-precision division instruction is realized as a convergent operation in the arithmetic processing device of this embodiment, the operation is performed using the multipliers on the high-order side and the low-order side and the binary conversion section, regardless of the calculation accuracy. A timing chart for executing the sequence is shown. If the second division instruction is fetched while the first division instruction in the sequence shown in FIG. 2 is being executed, if the second division instruction is executed in the sequence shown in FIG. The second division instruction can be executed during the unused period of the unit and the binary conversion unit.

【0027】このように構成された本発明の第2の実施
例の演算処理装置について、図4に示した命令のシーケ
ンスを実行した場合の動作を以下に説明する。図3およ
び図4において、ステートマシン20は第1の除算命令
fdivdがLステージ32に進んだときIステージ1
1に対してウェイト信号73をHighにし、ウェイト
信号73がLowになるまで第2の乗算命令fmuld
をロック状態にする。次に第1の除算命令fdivdは
E1ステージ33へと進み、図2に示した演算シーケン
スを実行する。ステートマシン20は第1の除算命令f
divdのE1ステージ33の4サイクル目にIステー
ジ11に対するウェイト信号73をLowとし、次のサ
イクルで第2の乗算命令fmuldをLステージ38に
送ると同時に第3の除算命令fdivdのIステージ1
1に対してウェイト信号73をHighにする。次に第
1の除算命令fdivdは除算/平方根演算用実行パイ
プのE2dステージ34へと進み、第2の乗算命令fm
uldはE1ステージ39へと進み、ステートマシン2
0は第3の除算命令fdivdのIステージ11に対す
るウェイト信号73をLowとする。
The operation of the arithmetic processing device according to the second embodiment of the present invention configured as described above will be described below when the instruction sequence shown in FIG. 4 is executed. 3 and 4, the state machine 20 operates in I stage 1 when the first division instruction fdivd advances to L stage 32.
1, the wait signal 73 is made High, and the second multiplication instruction fmuld is executed until the wait signal 73 becomes Low.
to the locked state. Next, the first division instruction fdivd advances to the E1 stage 33 and executes the operation sequence shown in FIG. The state machine 20 executes a first division instruction f
In the fourth cycle of the E1 stage 33 of divd, the wait signal 73 for the I stage 11 is set to Low, and in the next cycle, the second multiplication instruction fmuld is sent to the L stage 38, and at the same time, the I stage 1 of the third division instruction fdivd is set to low.
1, the wait signal 73 is set to High. The first divide instruction fdivd then advances to the E2d stage 34 of the divide/square root operation execution pipe and the second multiply instruction fm
uld advances to E1 stage 39 and state machine 2
0 sets the wait signal 73 for the I stage 11 of the third division instruction fdivd to Low.

【0028】第1の除算命令fdivdが除算/平方根
演算用実行パイプのE2dステージ4にある間、第2の
乗算命令fmuldはステートマシン20からの情報に
したがい乗算用実行パイプ17〜18を進むことができ
、第1の除算命令fdivdがE2dステージ14とE
3dステージ15にある間、第2の乗算命令fmuld
はSQue19に命令をとどめ、その演算結果はテンポ
ラリレジスタ7に一時格納する。第1の除算命令fdi
vdがSステージ36に入ると同時にSQue19にあ
る第2の乗算命令fmuldの演算結果はテンポラリレ
ジスタ7からレジスタ1へと書き込まれる。第1の除算
命令fdivdがE2dステージ34にある間、第3の
除算命令fdivdはIステージ44からE1ステージ
46まで進み、第1の除算命令fdivdがE3dステ
ージ35に進むと同時に第3の除算命令fdivdはE
2dステージ47に進む。第1の除算命令fdivdが
E2dステージ34にあり、かつ第3の除算命令fdi
vdがE1ステージ46にある間は乗算器の各段が演算
実行中であるため、他の乗算命令や除算命令、平方根演
算命令は実行できない。ステートマシン20は第3の除
算命令fdivdがE2dステージ47に移る2サイク
ル前にIステージ11に対するウェイト信号73をLo
wとし、次のサイクルで第4の乗算命令fmuldをL
ステージ51へ移すと同時にIステージ11に対してウ
ェイト信号73をHighにする。第3の除算命令fd
ivdがE2dステージ47に移ると同時に第4の乗算
命令fmuldはE1ステージ52に移り、Iステージ
11に対するウェイト信号73をLowとする。第3の
除算命令fdivdがE2dステージ47にある間、2
サイクル毎に乗算命令が受け付けられ、第4から第8の
乗算命令fmuldは全てSque19に命令をとどめ
、その演算結果はテンポラリレジスタ7に一時格納され
る。
While the first division instruction fdivd is in the E2d stage 4 of the division/square root execution pipe, the second multiplication instruction fmuld proceeds through the multiplication execution pipes 17-18 according to information from the state machine 20. is completed, and the first division instruction fdivd is transferred to E2d stage 14 and E2d stage 14.
While in the 3d stage 15, the second multiply instruction fmuld
The instruction is retained in the SQue 19, and the operation result is temporarily stored in the temporary register 7. First division instruction fdi
At the same time that vd enters the S stage 36, the operation result of the second multiplication instruction fmuld in the SQue 19 is written from the temporary register 7 to the register 1. While the first divide instruction fdivd is in the E2d stage 34, the third divide instruction fdivd advances from the I stage 44 to the E1 stage 46, and at the same time as the first divide instruction fdivd advances to the E3d stage 35, the third divide instruction fdivd advances to the E3d stage 35. fdivd is E
Proceed to 2d stage 47. The first division instruction fdivd is in the E2d stage 34 and the third division instruction fdi
While vd is in the E1 stage 46, each stage of the multiplier is executing an operation, so other multiplication instructions, division instructions, and square root operation instructions cannot be executed. The state machine 20 sets the wait signal 73 for the I stage 11 to Lo two cycles before the third division instruction fdivd moves to the E2d stage 47.
w, and the fourth multiplication instruction fmuld is set to L in the next cycle.
At the same time as moving to the stage 51, the wait signal 73 for the I stage 11 is set to High. Third division instruction fd
At the same time as ivd moves to the E2d stage 47, the fourth multiplication instruction fmuld moves to the E1 stage 52 and sets the wait signal 73 for the I stage 11 to Low. While the third divide instruction fdivd is in the E2d stage 47, the 2
A multiplication instruction is accepted every cycle, and the fourth to eighth multiplication instructions fmuld all remain in the Sque 19, and the operation results are temporarily stored in the temporary register 7.

【0029】第3の除算命令fdivdがSステージ4
9に入ると同時にSQue19にある第4の乗算命令f
muldの演算結果はテンポラリレジスタ7からレジス
タ1へと書き込まれる。続いてSQue19にある第5
、第6の乗算命令fmuldの演算結果がテンポラリレ
ジスタ7からレジスタ1へと書き込まれ、次にSQue
19にある第7、第8の乗算命令fmuldの演算結果
がテンポラリレジスタ7からレジスタ1へと書き込まれ
る。第9の乗算命令fmuldは第3の除算命令fdi
vdがSステージ49に入ると同時にE1ステージ69
に移り、第9の乗算命令fmuldがE3mステージ7
1にあるとき、第7、第8の乗算命令fmuldの演算
結果のレジスタ1への書き込みを行なう。このことによ
り第9の乗算命令fmuld以前に実行された命令の演
算結果は全てレジスタ1への書き込みを終了でき、第9
の乗算命令fmuldはE3mステージ71の後Sステ
ージ72に移ることができる。
The third division instruction fdivd is at S stage 4.
9, the fourth multiplication instruction f in SQue19 at the same time
The operation result of muld is written from temporary register 7 to register 1. Next, the 5th in SQue 19
, the operation result of the sixth multiplication instruction fmuld is written from temporary register 7 to register 1, and then SQue
The operation results of the seventh and eighth multiplication instructions fmuld in step 19 are written from temporary register 7 to register 1. The ninth multiplication instruction fmuld is the third division instruction fdi
At the same time as vd enters S stage 49, E1 stage 69
, the ninth multiplication instruction fmuld is executed at E3m stage 7.
1, the operation results of the seventh and eighth multiplication instructions fmuld are written into register 1. As a result, all the operation results of the instructions executed before the ninth multiplication instruction fmuld can be written to register 1, and the ninth
The multiplication instruction fmuld can be moved to the S stage 72 after the E3m stage 71.

【0030】以上のように本実施例によれば、E2ステ
ージ以降において制御パイプラインを除算/平方根演算
命令実行パイプラインと乗算命令実行パイプラインとに
分け、演算結果を一時テンポラリレジスタへ保存するた
めのSQueを設けることにより、収束型演算である除
算命令の実行中もパイプライン型乗算器の各段の未使用
期間を検出し、乗算命令や除算命令を並列に実行するこ
とができる。また、第1の除算命令の実行中に第2の除
算命令をフェッチした場合は、第2の除算命令のシーケ
ンスを演算精度によらず高位側と低位側の乗算部と2進
数変換部を用いた演算とすることにより第1の除算命令
の実行中に第2の除算命令を並列に実行することができ
る。
As described above, according to this embodiment, after the E2 stage, the control pipeline is divided into a division/square root operation instruction execution pipeline and a multiplication instruction execution pipeline, and the operation results are temporarily stored in a temporary register. By providing the SQue, it is possible to detect the unused period of each stage of the pipeline multiplier even during execution of a division instruction, which is a convergent operation, and to execute multiplication instructions and division instructions in parallel. In addition, if the second division instruction is fetched while the first division instruction is being executed, the sequence of the second division instruction is processed using the high-order and low-order multipliers and the binary conversion section, regardless of the arithmetic precision. By performing the same operation, the second division instruction can be executed in parallel while the first division instruction is being executed.

【0031】なお、本実施例において収束型演算により
実現される命令を除算命令としたが、平方根演算命令や
初等関数などの収束型演算においても同様の効果を得ら
れる。また、本実施例においては実行ステージ以降のパ
イプラインを2本としたが、複数本でも良く、あるいは
1本でもステートマシンにおいて実行ステージ以前の命
令を実行するという制御が可能であれば、同様の効果を
得られる。また、本実施例においては収束型演算を実行
した場合について述べたが、ビット処理命令などの第1
の命令実行時において複数のブロックを用いて処理を行
なう場合、前記ブロックの未使用期間を検出し、前記未
使用期間に第2の命令を実行するようにすることにより
、同様の効果を得られる。
In this embodiment, the instruction realized by the convergence-type operation is a division instruction, but the same effect can be obtained by convergence-type operations such as square root operation instructions and elementary functions. In addition, in this embodiment, there are two pipelines after the execution stage, but there may be more than one pipeline, or even just one pipeline can be used if the state machine can control the execution of instructions before the execution stage. You can get the effect. Furthermore, in this embodiment, the case where a convergence type operation is executed has been described, but the first
When processing is performed using multiple blocks when executing an instruction, the same effect can be obtained by detecting the unused period of the block and executing the second instruction during the unused period. .

【0032】[0032]

【発明の効果】以上説明したように、本発明によれば、
収束型演算で実現される命令の実行中も各乗算部および
2進数変換部の未使用期間を検出することにより、制御
パイプラインをロックし続けることなく次の演算命令を
実行できる。また、収束型演算の実行において、精度の
高低の程度に応じて乗算部の組み合わせを変えることに
より、収束型演算の高速実行が可能となる。このことか
ら、本発明の演算処理方法及び演算処理装置を用いれば
、パフォーマンスの向上を実現することができる。
[Effects of the Invention] As explained above, according to the present invention,
By detecting the unused period of each multiplication unit and binary conversion unit during the execution of an instruction realized by convergent operation, the next operation instruction can be executed without continuing to lock the control pipeline. Furthermore, in executing convergent operations, by changing the combination of multipliers depending on the level of accuracy, high-speed execution of convergent operations becomes possible. Therefore, by using the arithmetic processing method and arithmetic processing device of the present invention, performance can be improved.

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

【図1】本発明の第1の実施例における演算処理装置の
データパス部のブロック図である。
FIG. 1 is a block diagram of a data path section of an arithmetic processing device in a first embodiment of the present invention.

【図2】同第1の実施例の演算処理装置における除算命
令の高速型実行時のタイミングチャート図である。
FIG. 2 is a timing chart during high-speed execution of a division instruction in the arithmetic processing device of the first embodiment.

【図3】本発明の第2の実施例における演算処理装置の
制御パイプの構造図である。
FIG. 3 is a structural diagram of a control pipe of an arithmetic processing unit in a second embodiment of the present invention.

【図4】同第2の実施例の演算処理装置における命令毎
のパイプラインの進行を示したタイミングチャート図で
ある。
FIG. 4 is a timing chart showing the progress of the pipeline for each instruction in the arithmetic processing device of the second embodiment.

【図5】同第2の実施例の演算処理装置において第1の
実施例の図2に示した除算命令と並列に実行するための
除算命令のタイミングチャート図である。
5 is a timing chart diagram of a division instruction to be executed in parallel with the division instruction shown in FIG. 2 of the first embodiment in the arithmetic processing device of the second embodiment; FIG.

【図6】従来の演算処理装置のデータパス部のブロック
図である。
FIG. 6 is a block diagram of a data path section of a conventional arithmetic processing device.

【図7】従来の演算処理装置において除算命令を収束型
演算として実現する場合のタイミングチャート図である
FIG. 7 is a timing chart diagram when a division instruction is implemented as a convergent operation in a conventional arithmetic processing device.

【図8】従来の演算処理装置の制御パイプの構造図であ
る。
FIG. 8 is a structural diagram of a control pipe of a conventional arithmetic processing device.

【図9】従来の演算処理装置における命令毎のパイプラ
インの進行を示したタイミングチャート図である。
FIG. 9 is a timing chart showing the progress of a pipeline for each instruction in a conventional arithmetic processing device.

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

1    レジスタ 2    データROM 3    パイプライン型乗算器 4    パイプライン型乗算器の低位側乗算部5  
  パイプライン型乗算器の高位側乗算部6    2
進数変換部 7    テンポラリレジスタ 11    Iステージ 12    Lステージ 13    E1ステージ 14    除算/平方根演算実行パイプのE2dステ
ージ15    除算/平方根演算実行パイプのE3d
ステージ16    Sステージ 17    乗算実行パイプのE2mステージ18  
  乗算実行パイプのE3mステージ19    SQ
ue 20    ステートマシン
1 Register 2 Data ROM 3 Pipeline multiplier 4 Low-order side multiplication section 5 of pipeline multiplier
High-order side multiplication section 6 2 of pipeline type multiplier
Base number converter 7 Temporary register 11 I stage 12 L stage 13 E1 stage 14 E2d stage 15 of division/square root operation execution pipe E3d of division/square root operation execution pipe
Stage 16 S stage 17 E2m stage 18 of the multiplication execution pipe
E3m stage 19 SQ of multiplication execution pipe
ue 20 state machine

Claims (5)

【特許請求の範囲】[Claims] 【請求項1】  複数の演算ブロックにより処理される
第1の命令の実行中に、前記演算ブロックの内少なくと
も1つの演算ブロックにより処理される第2の命令をフ
ェッチした場合、第1の命令の実行中に第2の命令に必
要な演算ブロックの未使用期間を検出し、第1の命令の
実行と並列に第2の命令を実行することを特徴とする演
算処理方法。
1. When a second instruction to be processed by at least one of the arithmetic blocks is fetched during execution of a first instruction to be processed by a plurality of arithmetic blocks, An arithmetic processing method characterized by detecting an unused period of an arithmetic block required for a second instruction during execution, and executing the second instruction in parallel with execution of the first instruction.
【請求項2】  制御パイプラインの実行ステージ以降
に複数のパイプラインを備え、複数の演算ブロックによ
り処理される第1の命令の実行中に、前記演算ブロック
の内少なくとも1つの演算ブロックにより処理される第
2の命令をフェッチした場合、第1の命令の実行中に第
2の命令に必要な演算ブロックの未使用期間を検出し、
第1の命令が存在する第1の実行パイプラインとは別の
第2の実行パイプラインに第2の命令を供給して第1の
命令の実行と並列に第2の命令を実行する手段を設けた
ことを特徴とする演算処理装置。
2. A plurality of pipelines are provided after the execution stage of the control pipeline, and during execution of a first instruction to be processed by a plurality of calculation blocks, the instruction is processed by at least one of the calculation blocks. When a second instruction is fetched, an unused period of an operation block required for the second instruction is detected during execution of the first instruction,
means for supplying the second instruction to a second execution pipeline different from the first execution pipeline in which the first instruction exists and executing the second instruction in parallel with execution of the first instruction; An arithmetic processing device characterized by being provided.
【請求項3】  制御パイプラインの実行ステージ以降
に複数のパイプラインを備え、複数の演算ブロックによ
り処理される第1の命令の実行中に、前記演算ブロック
の内少なくとも1つの演算ブロックにより処理される第
2の命令をフェッチした場合、第1の命令の実行中に第
2の命令に必要な演算ブロックの未使用期間を検出し、
制御パイプラインの状態が実行ステージ以前の第2の命
令に関してステートマシンにより実行状態にすることで
、第1の命令の実行と並列に第2の命令を実行する手段
を設けたことを特徴とする演算処理装置。
3. A plurality of pipelines are provided after the execution stage of the control pipeline, and during execution of a first instruction processed by a plurality of arithmetic blocks, the instruction is processed by at least one arithmetic block among the arithmetic blocks. When a second instruction is fetched, an unused period of an operation block required for the second instruction is detected during execution of the first instruction,
The control pipeline is characterized by providing means for executing the second instruction in parallel with the execution of the first instruction by setting the state of the control pipeline to the execution state with respect to the second instruction before the execution stage. Arithmetic processing unit.
【請求項4】  少なくとも3段以上の構成からなるパ
イプライン型乗算器を備え、収束型演算により実現され
る第1の命令を実行中に乗算命令または収束型演算命令
により実現される第2の命令をフェッチした場合、前記
第1の命令を実行中にパイプライン型乗算器の各段の未
使用期間を検出し、同期間に前記第2の命令を実行する
手段を設けたことを特徴とする演算処理装置。
4. A pipelined multiplier having a configuration of at least three or more stages, wherein while a first instruction realized by a convergent operation is being executed, a second instruction realized by a multiplication instruction or a convergence operation instruction is executed. When an instruction is fetched, means is provided for detecting an unused period in each stage of the pipeline multiplier while executing the first instruction, and executing the second instruction during the same period. A processing unit that performs
【請求項5】  高位側と低位側の乗算部と2進数変換
部の3段構成からなるパイプライン型乗算器と、前記乗
算部および2進数変換部のシーケンスを制御し、収束型
演算として実現される命令を実行する場合、演算精度が
低いときは高位側あるいは低位側いずれかの乗算部と2
進数変換部を用いて演算を行い、演算精度が高位側ある
いは低位側いずれかの乗算部の入力ビット幅より大きく
なったときは高位側と低位側の乗算部と2進数変換部を
用いて演算を行うように制御する制御部を備えたことを
特徴とする演算処理装置。
5. A pipelined multiplier consisting of a three-stage configuration of high-order side and low-order side multipliers and a binary number conversion section, and a sequence of the multiplication section and the binary number conversion section is controlled and realized as a convergent operation. When executing an instruction, if the arithmetic precision is low, the multiplier on either the high-order side or the low-order side and the two
Calculation is performed using the base conversion unit, and when the calculation precision becomes larger than the input bit width of either the high-order side or low-order side multiplication unit, the calculation is performed using the high-order side and low-order side multiplication units and the binary conversion unit. 1. An arithmetic processing device comprising: a control unit configured to perform control.
JP3006655A 1991-01-24 1991-01-24 Method and device for arithmetic processing Pending JPH04239909A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3006655A JPH04239909A (en) 1991-01-24 1991-01-24 Method and device for arithmetic processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3006655A JPH04239909A (en) 1991-01-24 1991-01-24 Method and device for arithmetic processing

Publications (1)

Publication Number Publication Date
JPH04239909A true JPH04239909A (en) 1992-08-27

Family

ID=11644394

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3006655A Pending JPH04239909A (en) 1991-01-24 1991-01-24 Method and device for arithmetic processing

Country Status (1)

Country Link
JP (1) JPH04239909A (en)

Similar Documents

Publication Publication Date Title
TWI763698B (en) Vector multiply-add instruction
US6904446B2 (en) Floating point multiplier/accumulator with reduced latency and method thereof
JP3869269B2 (en) Handling multiply accumulate operations in a single cycle
JP3605181B2 (en) Data processing using multiply-accumulate instructions
US20020116432A1 (en) Extended precision accumulator
EP3374853A1 (en) Multiplication of first and second operands using redundant representation
US5892699A (en) Method and apparatus for optimizing dependent operand flow within a multiplier using recoding logic
KR19980041798A (en) Module Computation Structure Supporting Commands for Image Processing
JP3667635B2 (en) Arithmetic unit
CN101438239A (en) Packed add-subtract operation in a microprocessor
WO2017081435A1 (en) Lane position information for processing of vector
WO2017081434A1 (en) Redundant representation of numeric value using overlap bits
JP3476960B2 (en) Arithmetic logic operation device and control method
US8015228B2 (en) Data processing apparatus and method for performing a reciprocal operation on an input value to produce a result value
JPH0477932B2 (en)
JPH05250146A (en) Arithmetic operation circuit executing integer involution processing
GB2423385A (en) Determining an initial estimate of a result value of a reciprocal operation
JP3579087B2 (en) Arithmetic unit and microprocessor
JPWO2007094047A1 (en) Arithmetic apparatus and arithmetic method
JPH04239909A (en) Method and device for arithmetic processing
EP1936492A1 (en) SIMD processor with reduction unit
US20140052767A1 (en) Apparatus and architecture for general powering computation
JPH04172526A (en) Floating point divider
KR100900790B1 (en) Method and Apparatus for arithmetic of configurable processor
US6792442B1 (en) Signal processor and product-sum operating device for use therein with rounding function