JP2011086133A - Floating-point adder - Google Patents

Floating-point adder Download PDF

Info

Publication number
JP2011086133A
JP2011086133A JP2009238856A JP2009238856A JP2011086133A JP 2011086133 A JP2011086133 A JP 2011086133A JP 2009238856 A JP2009238856 A JP 2009238856A JP 2009238856 A JP2009238856 A JP 2009238856A JP 2011086133 A JP2011086133 A JP 2011086133A
Authority
JP
Japan
Prior art keywords
mantissa
adder
absolute value
output
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.)
Granted
Application number
JP2009238856A
Other languages
Japanese (ja)
Other versions
JP5515601B2 (en
Inventor
Hiroaki Atsumi
宏昭 渥美
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009238856A priority Critical patent/JP5515601B2/en
Publication of JP2011086133A publication Critical patent/JP2011086133A/en
Application granted granted Critical
Publication of JP5515601B2 publication Critical patent/JP5515601B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a high-speed floating-point adder by solving the problems of a conventional adder in which most of the delay time is occupied by paths for alignment and carry propagation of the adder and carry out of the adder is used for obtaining a complement of the result of absolute value addition. <P>SOLUTION: The floating-point adder includes a comparator 15 that compares significands of two operands. If it is recognized that the output of an absolute value adder 16 becomes negative according to the comparison result of the comparator and the result of comparing the significands of the operands, the carry input of an absolute value adder is controlled using an output signal of the comparator and the like, and the output of a half addition result making up the absolute value adder is inverted, to obtain a complement of the result of absolute value addition without use of the carry output signal of the absolute value adder. <P>COPYRIGHT: (C)2011,JPO&amp;INPIT

Description

本発明は、コンピュータプロセッサにおける浮動小数点加算器ユニットを設計するための技術に関する。
The present invention relates to techniques for designing a floating point adder unit in a computer processor.

IEEE754で規定される2進浮動小数点加算器では、仮数部を絶対値として格納する。そのため、浮動小数点加算器では、減算によって、加算結果が負の値になるようなときには、仮数部を正の値に戻して絶対値とし、符号を修正する操作をする。   The binary floating point adder defined by IEEE754 stores the mantissa part as an absolute value. Therefore, in the floating point adder, when the addition result becomes a negative value by subtraction, the mantissa part is returned to a positive value to obtain an absolute value and an operation for correcting the sign is performed.

この操作を行うために、浮動小数点加算器では、加算結果の仮数部を正の値に戻すための再補数化の機能を有している。再補数化機能は、浮動小数点加算器内部にある加算器に単独で実装されることが多く、その方法は次のようになっている。   In order to perform this operation, the floating point adder has a recomplementation function for returning the mantissa part of the addition result to a positive value. The recomplementation function is often implemented independently in an adder inside the floating-point adder, and the method is as follows.

まず、減数の2の補数を作成し、被減数に加算する。   First, the 2's complement of the subtraction is created and added to the subtracted number.

このとき、加算器のキャリー出力が1にならなければ、加算結果が負であるので、再補数化を実行する。   At this time, if the carry output of the adder does not become 1, since the addition result is negative, recomplementation is executed.

たとえば、AとBの差の絶対値|A−B|を計算する場合、A−B>0の時は、   For example, when calculating the absolute value | A−B | of the difference between A and B, when A−B> 0,

Figure 2011086133
Figure 2011086133

を計算し、A−B<0の時は、 When A−B <0,

Figure 2011086133
Figure 2011086133

を計算する。A−B=0になる場合は、有効ビット内では、数1と数2とは同じ値になるので、どちらの方法で計算しても良い。 Calculate When A−B = 0, the formula 1 and the formula 2 have the same value within the effective bit, and therefore, either method may be used for calculation.

図22は、従来例に係る浮動小数点加算器の構成例を示す図である。図22に係る浮動小数点加算器は、符号・指数処理部50、オペランドA及びオペランドBをセレクトするセレクタ51、52、補数化回路53、アラインメント部54、絶対値加算器55、正規化処理部56を有する。   FIG. 22 is a diagram illustrating a configuration example of a floating-point adder according to a conventional example. The floating point adder according to FIG. 22 includes a sign / exponent processing unit 50, selectors 51 and 52 for selecting operand A and operand B, a complementing circuit 53, an alignment unit 54, an absolute value adder 55, and a normalization processing unit 56. Have

図23は、図22で使われている絶対値加算器55の例を示した図である。図23において、Aは被減数とし、Bは絶対値加算器55に入力する前に補数化回路53において1の補数をとった減数であるものとする。図23の絶対値加算器では、A+Bの加算を行う加算器60と、A+B+1の加算を行う加算器61とを有する。加算器60は、キャリー入力が0の時、AとBの排他的論理和により得られる半加算結果(HSUM)とキャリーとの排他的論理和で得られる加算結果を出力する。加算器61は、キャリー入力が1の時についての加算結果を出力する。   FIG. 23 is a diagram showing an example of the absolute value adder 55 used in FIG. In FIG. 23, it is assumed that A is a reduced number and B is a reduced number obtained by taking the one's complement in the complementing circuit 53 before being input to the absolute value adder 55. The absolute value adder of FIG. 23 includes an adder 60 that performs addition of A + B and an adder 61 that performs addition of A + B + 1. When the carry input is 0, the adder 60 outputs the addition result obtained by the exclusive OR of the half addition result (HSUM) obtained by the exclusive OR of A and B and the carry. The adder 61 outputs the addition result when the carry input is 1.

EOR(Exclusive−OR)ゲート62は、加算器60の加算結果(A+B)と、減算が行なわれる場合に値「1」が設定されるSUB信号との排他的論理和をとることにより、減算時に加算器60の加算結果に対して1の補数をとる。セレクタ63は、SUB信号を用いて、減算でない場合は0を、減算の場合は加算器60のキャリーアウト信号をセレクトする。   An EOR (Exclusive-OR) gate 62 obtains an exclusive OR between the addition result (A + B) of the adder 60 and the SUB signal set to the value “1” when the subtraction is performed. A one's complement is taken for the addition result of the adder 60. The selector 63 uses the SUB signal to select 0 when not subtracting and select the carry-out signal of the adder 60 when subtracting.

ここで、加算器60のキャリーアウトが1の時は、加算結果は正のため、キャリー入力が1の加算器61の加算結果をセレクタ64でセレクトして絶対値加算器の出力結果Rとする。加算器60のキャリーアウトが0の場合は、キャリー入力が0の時の加算器60の加算結果に対してEORゲート62で1の補数をとったものをセレクタ64でセレクトして、絶対値加算器の出力結果Rとする。尚、前述の通り、A−B=0となる場合には、数1と数2とは同じ値になるので、加算器61のキャリーアウトをセレクタ63に接続しても良い。   Here, when the carry-out of the adder 60 is 1, since the addition result is positive, the addition result of the adder 61 having a carry input of 1 is selected by the selector 64 to obtain the output result R of the absolute value adder. . When the carry-out of the adder 60 is 0, the addition result of the adder 60 when the carry input is 0 is obtained by selecting the one's complement by the EOR gate 62 by the selector 64 and adding the absolute value The output result R of the device. As described above, when A−B = 0, Equation 1 and Equation 2 have the same value, so the carry-out of the adder 61 may be connected to the selector 63.

特許文献1には、2つの入力データにおける仮数部の大小関係を予め判定しておくことによって、2つの仮数部間で減算を行う必要が生じた場合には常に大なる仮数部より小なる仮数部を減ずるといった形で減算を行なうことによって仮数部演算結果が常に絶対値として得られるようにした発明が開示されている。   Japanese Patent Laid-Open No. 2004-228688 preliminarily determines the magnitude relationship between the mantissa parts in the two input data, so that when a subtraction needs to be performed between the two mantissa parts, the mantissa is always smaller than the larger mantissa part. An invention is disclosed in which a mantissa calculation result is always obtained as an absolute value by performing subtraction in such a manner that the number of parts is subtracted.

特開昭59−188740号公報JP 59-188740 A

しかしながら、背景技術は以下に述べる課題を有する。   However, the background art has the following problems.

図23の絶対値加算器では、キャリーアウトの値によって出力する加算結果を選択するために、キャリー出力で加算結果を選択するパスが加算器の遅延時間を決定してしまい、高速動作の妨げとなっている。また、各ビットへのキャリーの伝播から加算結果が確定するまでの時間が、A+Bの側では、A+B+1の側に比べて、EORゲート62で1の補数を作成する制御を行なう分だけ遅延時間が増加する。   In the absolute value adder of FIG. 23, in order to select the addition result to be output depending on the carry-out value, the path for selecting the addition result by the carry output determines the delay time of the adder, which hinders high-speed operation. It has become. Further, the time from propagation of carry to each bit until the result of addition is determined is longer on the A + B side than the A + B + 1 side by the time that the EOR gate 62 performs control to create a one's complement. To increase.

特許文献1記載の発明では、あらかじめオペランドの大小比較をして、キャリーのパスがネックとなる絶対値加算器を使わないようにしている。しかし、必ず仮数部の大きい方から小さい方を減ずる構成となっているので、オペランドの符号及び指数の値によっては、一方のオペランドについて、アラインメント(桁合わせ)と補数化の両方が必要となる場合がある。そのため、浮動小数点加算器の遅延時間に大きく影響を与えるアラインメントのルートを遅くしてしまっているという問題点がある。
In the invention described in Patent Document 1, the magnitudes of the operands are compared in advance so that the absolute value adder in which the carry path becomes a bottleneck is not used. However, since the mantissa part is always reduced from the larger one, the sign and exponent values of the operand require both alignment (digit alignment) and complementation depending on the operand. There is. Therefore, there is a problem that the alignment route that greatly affects the delay time of the floating point adder is delayed.

上記の課題を解決するための、本発明に係る浮動小数点加算器の一態様は、浮動小数点演算の対象となる2つのオペランドの符号から、加算と減算のいずれの演算を行なうかを示す加減算信号を生成する符号比較器と、前記2つのオペランドの指数の大小を比較し、いずれのオペランドを選択するかを示すオペランド選択信号を生成する指数比較器と、前記オペランド選択信号を用いて前記2つのオペランドの仮数部の一方を選択して第1仮数として出力する第1のセレクタと、前記オペランド選択信号を用いて前記2つのオペランドの仮数部の他方を選択して第2仮数として出力する第2のセレクタと、オペランド加算時には前記第1仮数を、オペランド減算時には前記第1仮数に対する1の補数を第3仮数として出力する補数化部と、前記2つのオペランドの指数の差だけ前記第2仮数のシフトを行い、第4仮数として出力するアラインメント部と、前記第1仮数及び第2仮数の大小を比較する仮数比較器と、前記第3仮数及び第4仮数の絶対値加算を行なう絶対値加算器であって、前記符号比較器が出力する加減算信号が減算であることを示す場合において、前記指数比較器での比較結果及び前記仮数比較器での比較結果により絶対値加算結果が正の数になると認められる場合には該絶対値加算器のキャリー入力を1とし、前記指数比較器での比較結果及び前記仮数比較器での比較結果により絶対値加算結果が負の数になると認められる場合には該絶対値加算器のキャリー入力を0にすると共に、絶対値加算器を構成する半加算器出力信号の1の補数をとることにより、前記第3仮数及び第4仮数の絶対値加算を行なって第5仮数として加算結果を出力する絶対値加算器とを有する。
An aspect of the floating-point adder according to the present invention for solving the above-described problem is an addition / subtraction signal indicating whether an addition or subtraction operation is performed from the sign of two operands to be subjected to a floating-point operation. A sign comparator that generates an operand selection signal that indicates which operand is selected by comparing the magnitudes of the exponents of the two operands, and the two operands using the operand selection signal A first selector that selects one of the mantissa parts of the operand and outputs it as a first mantissa; and a second selector that selects the other of the mantissa parts of the two operands using the operand selection signal and outputs the second mantissa as a second mantissa A selector for outputting the first mantissa as the third mantissa when the operand is subtracted, and the complement of the first mantissa when the operand is subtracted. An alignment unit that shifts the second mantissa by the difference between the exponents of the two operands and outputs it as a fourth mantissa, a mantissa comparator that compares the first mantissa and the second mantissa, and the third mantissa and An absolute value adder for performing absolute value addition of the fourth mantissa, wherein the addition / subtraction signal output from the sign comparator indicates subtraction, and the comparison result of the exponent comparator and the mantissa comparator are If the absolute value addition result is recognized to be a positive number according to the comparison result, the carry input of the absolute value adder is set to 1, and the absolute value is determined by the comparison result in the exponent comparator and the comparison result in the mantissa comparator. When it is recognized that the value addition result is a negative number, the carry input of the absolute value adder is set to 0, and the one's complement of the half adder output signal constituting the absolute value adder is taken, thereby 3 perform the mantissa and the absolute value sum of the fourth mantissa and an absolute value adder for outputting the addition result as a fifth mantissa.

本発明に係る浮動小数点加算器では、減算時の1の補数を作成する処理を、アラインメントとは別のパスで実行でき、また、加算結果に対する再補数化の制御を絶対値加算器のキャリー出力を用いることなく行なうことができる。浮動小数点加算器の遅延時間はアラインメントのパス及び加算器のキャリー伝播が大きな割合を占めるが、上記課題解決手段により、絶対値加算器の回路規模の増加を伴うことなく高速な浮動小数点加算器を得ることが可能となる。
In the floating-point adder according to the present invention, the process of creating a one's complement at the time of subtraction can be executed in a different path from the alignment, and the recomplementation control for the addition result is carried out by the carry output of the absolute value adder. This can be done without using. The delay time of the floating-point adder accounts for a large proportion of the alignment path and the carry propagation of the adder. However, by the above problem solving means, a high-speed floating-point adder can be realized without increasing the circuit scale of the absolute value adder. Can be obtained.

本発明の実施例1に係る浮動小数点加算器を示す図である。It is a figure which shows the floating point adder which concerns on Example 1 of this invention. 図1の実施例1の一態様を示す図である。It is a figure which shows the one aspect | mode of Example 1 of FIG. 本発明の実施例1に係る符号・指数処理部の一例を示す図である。It is a figure which shows an example of the code | symbol / exponent process part which concerns on Example 1 of this invention. 本発明の実施例1に係る比較器の一例を示す図である。It is a figure which shows an example of the comparator which concerns on Example 1 of this invention. 本発明の実施例1に係る絶対値加算器を示す図である。It is a figure which shows the absolute value adder which concerns on Example 1 of this invention. 本発明の実施例1の絶対値加算器に係る64ビットキャリーブロックを示す図である。It is a figure which shows the 64-bit carry block which concerns on the absolute value adder of Example 1 of this invention. 本発明の実施例1の絶対値加算器に係る16ビットキャリーブロックを示す図である。It is a figure which shows the 16-bit carry block which concerns on the absolute value adder of Example 1 of this invention. 本発明の実施例1における符号、指数部、仮数部(FOPA、FOPB)の値と、SUB、RECOMP、CINの関係を示す表である。It is a table | surface which shows the relationship between the value of the code | symbol, exponent part, mantissa part (FOPA, FOPB), and SUB, RECOMP, CIN in Example 1 of this invention. 本発明の実施例1における指数部とオペランド交換の関係を示す表である。It is a table | surface which shows the relationship between the exponent part and operand exchange in Example 1 of this invention. 本発明の実施例1における符号と補数化回路でのビット反転を示す表である。It is a table | surface which shows the bit inversion in the code | symbol and complement circuit in Example 1 of this invention. 本発明の実施例1に係る正規化処理部を示す図である。It is a figure which shows the normalization process part which concerns on Example 1 of this invention. 本発明の実施例1に係るリーディングゼロカウント値とビットのマッピングを示す図である。It is a figure which shows the mapping of the reading zero count value and bit which concern on Example 1 of this invention. 本発明の実施例1に係るリーディングゼロカウントの回路例を示す図である。It is a figure which shows the example of a circuit of the reading zero count which concerns on Example 1 of this invention. 本発明の実施例2に係る浮動小数点加算器を示す図である。It is a figure which shows the floating point adder which concerns on Example 2 of this invention. 本発明の実施例2における符号、指数部、仮数部の値と、SUB、RECOMP、CINの関係(EA=EBでデータ交換しない場合)を示す表である。It is a table | surface which shows the relationship between the value of a code | symbol, an exponent part, and a mantissa part, and SUB, RECOMP, and CIN in Example 2 of this invention (when EA = EB does not exchange data). 本発明の実施例2における符号、指数部、仮数部の値と、SUB、RECOMP、CINの関係(EA=EBでデータ交換する場合)を示す表である。It is a table | surface which shows the relationship between the value of the code | symbol, the exponent part, and the mantissa part, and SUB, RECOMP, and CIN in the second embodiment of the present invention (when data is exchanged with EA = EB). 本発明の実施例3に係る絶対値加算器2を示す図である。It is a figure which shows the absolute value adder 2 which concerns on Example 3 of this invention. 本発明の実施例3に係るRECOMP、Cinの真理値表を示す図である。It is a figure which shows the truth table of RECOMP and Cin which concerns on Example 3 of this invention. 本発明の実施例3に係る加算器セグメントを示す図である。It is a figure which shows the adder segment which concerns on Example 3 of this invention. 本発明の実施例3に係るブロックキャリー用64ビットキャリーブロックを示す図である。It is a figure which shows the 64-bit carry block for block carry based on Example 3 of this invention. 本発明の実施例3に係る図19のブロックキャリー用16ビットキャリーブロックを示す図である。It is a figure which shows the 16-bit carry block for block carrys of FIG. 19 which concerns on Example 3 of this invention. 従来例1に係る浮動小数点加算器を示す図である。It is a figure which shows the floating point adder which concerns on the prior art example 1. FIG. 従来例1に係る絶対値加算器を示す図である。It is a figure which shows the absolute value adder which concerns on the prior art example 1. FIG.

以下、この発明の実施の形態について詳細に説明する。
Hereinafter, embodiments of the present invention will be described in detail.

図1は、本発明の実施例1に係る浮動小数点加算器の構成を示す図である。図1に示す浮動小数点加算器は、符号・指数処理部10、第1のセレクタ11、第2のセレクタ12、補数化回路13、アラインメント部14、比較器15、絶対値加算器16、正規化処理部17を有する。   1 is a diagram illustrating a configuration of a floating-point adder according to a first embodiment of the present invention. 1 includes a sign / exponent processing unit 10, a first selector 11, a second selector 12, a complementing circuit 13, an alignment unit 14, a comparator 15, an absolute value adder 16, and a normalization. A processing unit 17 is included.

図1の符号・指数処理部10は、浮動小数点演算の対象となる2つのオペランドの符号及び指数についての演算処理を行う。符号・指数処理部10では、2つのオペランドOPERAND AおよびOPERAND Bの符号から、加算と減算とのいずれの演算を行うかを示す“ADD/SUB”信号を出力する。“ADD/SUB”信号は、補数化回路13や絶対値加算器16で使用される。   The sign / exponent processing unit 10 in FIG. 1 performs arithmetic processing on the sign and exponent of two operands that are the targets of floating point arithmetic. The sign / exponential processing unit 10 outputs an “ADD / SUB” signal indicating whether to perform addition or subtraction from the signs of the two operands OPERAND A and OPERAND B. The “ADD / SUB” signal is used by the complement circuit 13 and the absolute value adder 16.

符号・指数処理部10はまた、指数の大小比較結果から得られる、オペランド交換するかどうかを示すEX_OP信号や、指数EAとEBが等しくないことを示すEA_NE_EB信号を出力する。ここで、EX_OP信号は、オペランドAの仮数部とオペランドBの仮数部のいずれを選択するかの制御信号として使用される。また、EA_NE_EB信号はオペランドAの指数EAとオペランドBの指数EBが等しくないときに1となる信号である。   The sign / exponential processing unit 10 also outputs an EX_OP signal indicating whether or not to exchange operands, and an EA_NE_EB signal indicating that the exponents EA and EB are not equal, obtained from the result of comparing the magnitudes of the exponents. Here, the EX_OP signal is used as a control signal for selecting which of the mantissa part of operand A or the mantissa part of operand B is selected. The EA_NE_EB signal is a signal that becomes 1 when the exponent EA of the operand A and the exponent EB of the operand B are not equal.

第1のセレクタ11及び第2のセレクタ12は、それぞれオペランドの指数の大小比較結果に基づいて2つのオペランドの仮数の一方を選択し、仮数FOPA及びFOPBを出力する。具体的には、指数の大きい方のオペランドの仮数をセレクタ11で選択して仮数FOPAとして補数化回路13へ出力し、他方のオペランドの仮数をセレクタ12で選択して仮数FOPBとしてアラインメント部14へ出力する。尚、2つのオペランドの指数が等しい場合、セレクタ11はオペランドAの仮数部とオペランドBの仮数部のいずれを選択することもできる。この場合、セレクタ12はセレクタ11で選択されていないオペランドの仮数部を選択する。   The first selector 11 and the second selector 12 select one of the mantissas of the two operands based on the result of comparison of the operand exponents, and output the mantissas FOPA and FOPB. Specifically, the mantissa of the operand having the larger exponent is selected by the selector 11 and output to the complement circuit 13 as the mantissa FOPA, and the mantissa of the other operand is selected by the selector 12 to the alignment unit 14 as the mantissa FOPB. Output. When the exponents of the two operands are equal, the selector 11 can select either the mantissa part of the operand A or the mantissa part of the operand B. In this case, the selector 12 selects the mantissa part of the operand not selected by the selector 11.

補数化回路13は、第1のセレクタ11で選択された仮数FOPAに対して、“ADD/SUB”信号が加算を示す場合にはFOPAをそのまま出力し、“ADD/SUB”信号が減算を示す場合にはFOPAに対して1の補数をとった値を出力する。補数化回路13の出力は、絶対値加算器16に入力する。   The complement circuit 13 outputs the FOPA as it is when the “ADD / SUB” signal indicates addition to the mantissa FOPA selected by the first selector 11, and the “ADD / SUB” signal indicates subtraction. In this case, a value obtained by taking the one's complement for FOPA is output. The output of the complement circuit 13 is input to the absolute value adder 16.

アラインメント部14は、後述の符号・指数処理部10で判定される2つのオペランドの指数差(図1では“PA_SFT”)の分だけ、第2のセレクタ12で選択された仮数FOPBのシフトを行うことにより桁合わせ処理を行う。その際、シフトされた仮数の最下位のビットの下に、いわゆるガードビット、ラウンドビット、及びラウンドビットより下位の位置に一つでも“1”があるかどうかを示すスティッキービットを付加するようにしても良い。アラインメント部14の出力は、絶対値加算器16に入力する。   The alignment unit 14 shifts the mantissa FOPB selected by the second selector 12 by an exponent difference (“PA_SFT” in FIG. 1) of two operands determined by the sign / exponent processing unit 10 described later. The digit alignment process is performed. At that time, a so-called guard bit, round bit, and sticky bit indicating whether there is even one “1” in a position lower than the round bit are added below the least significant bit of the shifted mantissa. May be. The output of the alignment unit 14 is input to the absolute value adder 16.

比較器15は、第1のセレクタ11及び第2のセレクタ12で選択された仮数(FOPA,FOPB)を比較し、2つのオペランドの指数の値が等しい時の絶対値加算器16による減算の結果が正負いずれになるかを判定する。2つのオペランドの指数が異なる場合、前述の通り指数が大きいオペランドの仮数FOPAを補数化回路13を通して絶対値加算器16に入力するので、比較器15で仮数の比較をしなくても、絶対値加算器16による減算の結果が負の値となることが分かる。   The comparator 15 compares the mantissas (FOPA, FOPB) selected by the first selector 11 and the second selector 12, and the result of subtraction by the absolute value adder 16 when the exponent values of the two operands are equal. To determine whether is positive or negative. If the exponents of the two operands are different, the mantissa FOPA of the operand having a large exponent is input to the absolute value adder 16 through the complementing circuit 13 as described above, so that the absolute value can be obtained without the comparator 15 comparing the mantissa. It can be seen that the result of subtraction by the adder 16 is a negative value.

論理ゲート18は、比較器15の判定結果であるF_GTと、2つのオペランドの指数が等しくないことを示すEA_NE_EB信号との論理演算を行なうことにより、減算時の絶対値加算器16の加算結果が正負いずれの値になるかを示す“POSI/NEG”信号を出力する。   The logic gate 18 performs a logical operation on F_GT which is the determination result of the comparator 15 and the EA_NE_EB signal indicating that the exponents of the two operands are not equal, whereby the addition result of the absolute value adder 16 at the time of subtraction is obtained. A “POSI / NEG” signal indicating whether the value is positive or negative is output.

絶対値加算器16は、“ADD/SUB”信号及び“POSI/NEG”信号を用いて絶対値加算器16における再補数化の制御及びキャリー入力の制御を行いつつ、補数化回路13及びアラインメント部14から出力される信号に対する絶対値加算を行う。   The absolute value adder 16 uses the “ADD / SUB” signal and the “POSI / NEG” signal to perform the recomplementation control and carry input control in the absolute value adder 16, while the complementing circuit 13 and the alignment unit. The absolute value is added to the signal output from 14.

正規化処理部17は、絶対値加算器16の出力結果に対して、正規化と丸め操作を行う。   The normalization processing unit 17 performs normalization and rounding operations on the output result of the absolute value adder 16.

符号・指数処理部10から出力される浮動小数点加算器の加算結果としての符合及び指数、ならびに正規化処理部17から出力される浮動小数点加算器の加算結果としての仮数を合わせて、最終的な浮動小数点加算器の加算結果(F_RESULT)が生成される。   The sign and exponent as the addition result of the floating point adder output from the sign / exponent processing unit 10 and the mantissa as the addition result of the floating point adder output from the normalization processing unit 17 are combined to obtain a final result. An addition result (F_RESULT) of the floating point adder is generated.

図2では、減算が行なわれる場合、符号・指数処理部10からは、減算を示すSUB信号が出力される例を示す。図2ではまた、論理ゲート18を論理和ゲートとし、オペランドの減算時に絶対値加算器16の加算結果が負となると判別された場合に、NEG信号を出力する。以下の説明では、主として図2に示す実施例を用いて本願実施形態における絶対値加算器の説明を行う。   FIG. 2 shows an example in which, when subtraction is performed, the SUB signal indicating subtraction is output from the sign / exponent processing unit 10. In FIG. 2, the logic gate 18 is an OR gate, and the NEG signal is output when it is determined that the addition result of the absolute value adder 16 becomes negative when subtracting the operand. In the following description, the absolute value adder in the present embodiment will be described mainly using the example shown in FIG.

実施例1に係る浮動小数点加算器1は、桁合わせを行うアラインメント部14の動作と並行して仮数FOPAと仮数FOPBの比較を行う比較器15を設けることを特徴とする。実施例1の比較器15は、指数の大小によって経路を確定した後のオペランドAの仮数FOPA及びオペランドBの仮数FOPBを比較し、FOPA>FOPBが成立する時に出力信号F_GTを1にする。ここで、FOPA≧FOPBが成立する時に比較器15から出力される信号を1にしても良い。   The floating point adder 1 according to the first embodiment includes a comparator 15 that compares the mantissa FOPA and the mantissa FOPB in parallel with the operation of the alignment unit 14 that performs digit alignment. The comparator 15 according to the first embodiment compares the mantissa FOPA of the operand A and the mantissa FOPB of the operand B after the path is determined by the magnitude of the exponent, and sets the output signal F_GT to 1 when FOPA> FOPB is satisfied. Here, the signal output from the comparator 15 when FOPA ≧ FOPPB is satisfied may be set to 1.

前述の通り、補数化回路13にはオペランドの指数が大きい方のオペランドの仮数部が入力されるので、オペランドの指数が等しくないときは、減算時における絶対値加算器16の加算結果は負の値になる。また、オペランドの指数が等しいときは、オペランドAの仮数がオペランドBの仮数よりも大きい場合に、減算時における絶対値加算器16の加算結果は負の値になる。従って、論理和ゲート18により、比較器15から出力されるF_GT信号とEA_NE_EB信号との論理和をとることにより、NEG信号を生成することができる。このNEG信号は絶対値加算器16に通知され、絶対値加算器16における再補数化の制御及びキャリー入力の制御に用いられる。   As described above, since the mantissa part of the operand having the larger exponent of the operand is input to the complement circuit 13, when the operand exponents are not equal, the addition result of the absolute value adder 16 at the time of subtraction is negative. Value. Further, when the exponents of the operands are equal, when the mantissa of the operand A is larger than the mantissa of the operand B, the addition result of the absolute value adder 16 at the time of subtraction becomes a negative value. Therefore, the NEG signal can be generated by calculating the logical sum of the F_GT signal output from the comparator 15 and the EA_NE_EB signal by the OR gate 18. This NEG signal is notified to the absolute value adder 16 and used for recomplementation control and carry input control in the absolute value adder 16.

図3は、図2における符号・指数処理部10の一例を示す図である。符号・指数処理部10は、指数値の大小を判定し、オペランド間の指数差(pre alignment shift amount)を絶対値として求める。指数値の大小判定は、高速化のために、入力された各オペランドの指数EXPA及びEXPBについて(EXPA−EXPB)と(EXPB−EXPA)を同時に計算し、(EXPA−EXPB)又は(EXPB−EXPA)のキャリー出力を用いて判定する。   FIG. 3 is a diagram illustrating an example of the sign / exponent processing unit 10 in FIG. The sign / exponent processing unit 10 determines the magnitude of the exponent value, and obtains an exponent difference between operands (absolute shift amount) as an absolute value. In order to speed up the exponent value, (EXPA-EXB) and (EXPB-EXPA) are calculated simultaneously for the exponents EXPA and EXPB of each operand, and (EXPA-EXB) or (EXPB-EXPA) ) Carry output.

具体的には、図3に示す加算器101のA端子にはEXPAがそのまま入力され、加算器101のB端子には、1の補数化器103でEXPBを反転させた信号が入力される。加算器101のキャリー入力を1にすれば、加算器101において(EXPA−EXPB)が計算される。同様に、加算器102のA端子には、1の補数化器104でEXPAを反転させた信号が入力され、加算器102のB端子には、EXPBがそのまま入力される。加算器102のキャリー入力を1にすれば、加算器102において(EXPB−EXPA)が計算される。   Specifically, EXPA is input as it is to the A terminal of the adder 101 shown in FIG. 3, and a signal obtained by inverting EXPB by the 1's complementer 103 is input to the B terminal of the adder 101. When the carry input of the adder 101 is set to 1, the adder 101 calculates (EXPA-EXPB). Similarly, the signal obtained by inverting EXPA by the 1's complementer 104 is input to the A terminal of the adder 102, and EXPB is input to the B terminal of the adder 102 as it is. If the carry input of adder 102 is set to 1, adder 102 calculates (EXPB-EXPA).

セレクタ105は、加算器101のキャリー出力(carry out)の値が1の場合には加算器101の加算結果を、加算器101のキャリー出力の値が0の場合には加算器102の加算結果を選択し、指数差(pre alignment shift amount)として出力する。この指数差は図1・図2で“PA_SFT”として図示しているものであり、図1・図2におけるアラインメント部14において指数差の分だけ桁あわせシフトが行われる。   The selector 105 displays the addition result of the adder 101 when the carry output (carry out) value of the adder 101 is 1, and the addition result of the adder 102 when the carry output value of the adder 101 is 0. Is output as a pre-alignment shift amount. This exponent difference is shown as “PA_SFT” in FIGS. 1 and 2, and the alignment shift in FIG. 1 and FIG.

符号・指数処理部10はまた、加算器101と加算器102との両方のキャリー出力の結果から、各オペランドの指数の大小を判定し、3つの制御信号EXPA_GT_EXPB、EXPB_GT_EXPA、EXPA_EQ_EXPBを生成する。具体的には、インバータ106は、加算器101のキャリー出力を反転することにより、EXPBがEXPAよりも大きいことを示すEXPB_GT_EXPA信号を生成する。インバータ108は、加算器102のキャリー出力を反転することにより、EXPAがEXPBよりも大きいことを示すEXPA_GT_EXPB信号を生成する。また、ANDゲート107は、加算器101のキャリー出力と加算器102のキャリー出力の論理積をとることにより、EXPAとEXPBが等しいことを示すEXPA_EQ_EXPB信号を生成する。これら3つの制御信号EXPA_GT_EXPB、EXPB_GT_EXPA、EXPA_EQ_EXPBを用いて、図1・図2におけるEX_OP信号やEA_NE_EB信号が生成される。   The sign / exponent processor 10 also determines the magnitude of the exponent of each operand from the results of the carry outputs of both the adder 101 and the adder 102, and generates three control signals EXPA_GT_EXPB, EXPB_GT_EXPA, EXPA_EQ_EXPB. Specifically, inverter 106 inverts the carry output of adder 101 to generate an EXPB_GT_EXPA signal indicating that EXPB is greater than EXPA. Inverter 108 inverts the carry output of adder 102 to generate an EXPA_GT_EXPB signal indicating that EXPA is greater than EXPB. The AND gate 107 generates an EXPA_EQ_EXPB signal indicating that EXPA and EXPB are equal by taking the logical product of the carry output of the adder 101 and the carry output of the adder 102. Using these three control signals EXPA_GT_EXPB, EXPB_GT_EXPA, EXPA_EQ_EXPB, the EX_OP signal and the EA_NE_EB signal in FIGS. 1 and 2 are generated.

例えば、オペランドBの指数EXPBがオペランドAの指数EXPAよりも大きい場合は、オペランドAの仮数の換わりにオペランドBの仮数を補数化回路13に入力し、オペランドAの仮数をアラインメント部14へ入力する。そのため、オペランド交換するかどうかを示すEX_OP信号としてはEXPB_GT_EXPAをそのまま用いることができる。セレクタ11は、EX_OP信号が0の時にオペランドAの仮数を、EX_OP信号が1の時にオペランドBの仮数を選択してFOPAを出力する。セレクタ12は、EX_OP信号が0の時にオペランドBの仮数を、EX_OP信号が1の時にオペランドAの仮数を選択してFOPBを出力する。   For example, when the exponent EXPB of the operand B is larger than the exponent EXPA of the operand A, the mantissa of the operand B is input to the complement circuit 13 instead of the mantissa of the operand A, and the mantissa of the operand A is input to the alignment unit 14. . Therefore, EXPB_GT_EXPA can be used as it is as an EX_OP signal indicating whether or not to exchange operands. The selector 11 selects the mantissa of the operand A when the EX_OP signal is 0, and outputs the FOPA by selecting the mantissa of the operand B when the EX_OP signal is 1. The selector 12 selects the mantissa of the operand B when the EX_OP signal is 0 and outputs the FOPB by selecting the mantissa of the operand A when the EX_OP signal is 1.

また、図1・図2におけるEA_NE_EB信号としては、EXPA_EQ_EXPBの論理反転をとった信号、あるいはEXPB_GT_EXPAとEXPA_GT_EXPBとの論理和をとった信号等を用いることができる。   As the EA_NE_EB signal in FIGS. 1 and 2, a signal obtained by logically inverting EXPA_EQ_EXPB, a signal obtained by logically summing EXPB_GT_EXPA and EXPA_GT_EXPB, or the like can be used.

指数と符号については、セレクタ101及びセレクタ102は、(EXPA−EXPB)又は(EXPB−EXPA)のキャリー出力を用いて指数値の大きいオペランドの指数と符号を選択する。   Regarding the exponent and sign, the selector 101 and the selector 102 select the exponent and sign of the operand having a large exponent value using the carry output of (EXPA-EXPB) or (EXPB-EXPA).

具体的には、セレクタ110は、加算器101のキャリー出力(carry out)の値が1の場合には入力した指数EXPAを、加算器101のキャリー出力の値が0の場合には入力した指数EXPBを選択する。選択された指数は、EXP_BEFORE_NORMALIZEとして、正規化処理部17に対してシフト可能な最大値として通知(図1・図2では対応する信号不図示)される。   Specifically, the selector 110 inputs the exponent EXPA when the value of the carry output (carry out) of the adder 101 is 1, and inputs the exponent EXPA when the value of the carry output of the adder 101 is 0. Select EXPB. The selected index is notified as EXP_BEFORE_NORMALIZE as a maximum shiftable value to the normalization processing unit 17 (corresponding signal not shown in FIGS. 1 and 2).

セレクタ110で選択された指数は、オペランド加算時の1ビット桁あふれした状態を基準位置とするために、+1操作部111で+1操作を行うことで、正規化シフタを片方向シフトのみとしてインプリメントする。   The exponent selected by the selector 110 is implemented as a one-way shift only by performing a +1 operation in the +1 operation unit 111 in order to use the state where the 1-bit digit overflowed at the time of operand addition as a reference position. .

+1操作部111で+1操作した指数に対して、正規化処理部17における正規化操作によってシフトした値分を減じる補正操作が減算器112において行われる。ここで、図3における“leading zero result as normalize shift amount”は、後述する正規化処理部17のリーディングゼロカウント部161が出力するリーディングゼロカウント値LZCに相当する信号である。   The subtractor 112 performs a correction operation for subtracting the value shifted by the normalization operation in the normalization processing unit 17 with respect to the exponent operated by +1 in the +1 operation unit 111. Here, “leading zero result as normalize shift amount” in FIG. 3 is a signal corresponding to the reading zero count value LZC output from the reading zero count unit 161 of the normalization processing unit 17 described later.

また、後述の正規化処理部17における丸め操作により桁上がりが生じた場合には、減算器112から出力される指数に対して+1操作をする必要がある。+1操作部113は、減算器112から出力される指数に対して+1操作を行なう。セレクタ114は、“round carry out”が1の場合には+1操作部113の出力を選択し、“round carry out”が0の場合には減算器112の出力を選択して、浮動小数点加算器の加算結果の指数(result_exp)として出力する。ここで、“round carry out”は、後述の正規化処理部17の丸め加算器164から出力されるキャリー出力信号である。   Further, when a carry occurs due to a rounding operation in the normalization processing unit 17 described later, it is necessary to perform +1 operation on the exponent output from the subtractor 112. The +1 operation unit 113 performs +1 operation on the exponent output from the subtractor 112. The selector 114 selects the output of the +1 operation unit 113 when “round carry out” is “1”, and selects the output of the subtractor 112 when “round carry out” is “0”. Is output as an exponent (result_exp) of the result of addition. Here, “round carry out” is a carry output signal output from a rounding adder 164 of the normalization processing unit 17 described later.

入力データ、つまり各オペランドの符号signAと符号signBの値が異なる場合には、排他的論理和ゲート120でこれらの符号の排他的論理和をとることにより、減算であることを示すSUB信号を生成する。   If the values of the input data, that is, the sign signA and signB values of each operand are different, the exclusive OR gate 120 takes the exclusive OR of these signs to generate a SUB signal indicating subtraction. To do.

セレクタ121は、加算器101のキャリー出力(carry out)の値が1の場合にはsignAを、加算器101のキャリー出力が0の場合にはsignBを選択する。   The selector 121 selects signA when the carry output (carry out) value of the adder 101 is 1, and selects signB when the carry output of the adder 101 is 0.

オペランドの減算時であって、オペランドの指数が等しい場合に絶対値加算器の演算結果を再補数化した場合には、セレクタ121から出力される符号を反転させる必要がある。論理ゲート122は、セレクタ121から出力される符号を反転させるか否かを制御する信号を生成する。すなわち、論理ゲート122は、EORゲートから出力されるSUB信号、ANDゲート107から出力されるEXPA_EQ_EXPB信号、比較器15で生成されたF_EQに相当するFA_EQ_FB(又は、FOPA_EQ_FOPB)信号の反転信号、及び絶対値加算器16で生成されるRECOMP信号の論理積を生成する。EORゲート123は、セレクタ121から出力される信号と論理ゲート122の出力信号との排他的論理和を生成し、絶対値加算器の加算結果の符合(result sign)として出力する。   When subtracting operands and the exponents of the operands are equal, if the operation result of the absolute value adder is re-complemented, the sign output from the selector 121 needs to be inverted. The logic gate 122 generates a signal for controlling whether to invert the sign output from the selector 121. That is, the logic gate 122 outputs the SUB signal output from the EOR gate, the EXPA_EQ_EXPB signal output from the AND gate 107, the inverted signal of the FA_EQ_FB (or FOPA_EQ_FOPB) signal corresponding to F_EQ generated by the comparator 15, and the absolute signal. A logical product of the RECOMP signals generated by the value adder 16 is generated. The EOR gate 123 generates an exclusive OR of the signal output from the selector 121 and the output signal of the logic gate 122 and outputs it as a result sign of the addition result of the absolute value adder.

図4は、図2における比較器15の一例を示す図である。図4に示す比較器は、IEEE754の倍精度演算まで対応できるように、52ビット長の比較器としたものである。IEEE754の倍精度フォーマットでは、仮数部は53ビットの精度をもっているが、正規化してMSBビットを隠れビット化している。このため、指数値が同じ場合には、MSBビットは同じ値になる。仮数部の大小を判定する上では、MSBビットを無視しても比較結果に影響を与えないため、本実施形態においては、データ比較器は最低52ビット分の比較ができれば十分である。   FIG. 4 is a diagram illustrating an example of the comparator 15 in FIG. The comparator shown in FIG. 4 is a 52-bit comparator so as to be able to handle up to IEEE754 double-precision arithmetic. In the double precision format of IEEE754, the mantissa part has a precision of 53 bits, but is normalized to make the MSB bits hidden. For this reason, when the exponent values are the same, the MSB bits have the same value. In determining the size of the mantissa part, even if the MSB bit is ignored, the comparison result is not affected. Therefore, in this embodiment, it is sufficient that the data comparator can compare at least 52 bits.

図4に示す比較器は、3つの16ビット・ブロック130、131、132と、4ビット・ブロック133、及び各ブロックからの出力信号をまとめるブロック134とを有する。   The comparator shown in FIG. 4 has three 16-bit blocks 130, 131, and 132, a 4-bit block 133, and a block 134 that collects output signals from each block.

16ビット・ブロック130は、4つの4ビット・ブロック130−1〜130−4及びこれらの各4ビット・ブロックからの出力結果をまとめるブロック130−5を有する。なお、他の16ビットブロック131及び132についても、16ビットブロック130と同様の構成となるので、説明を省略する。   The 16-bit block 130 includes four 4-bit blocks 130-1 to 130-4 and a block 130-5 that collects output results from each of these 4-bit blocks. Since the other 16-bit blocks 131 and 132 have the same configuration as that of the 16-bit block 130, description thereof is omitted.

4ビット・ブロック130−1は、入力データA[3:0]及び入力データB[3:0]を比較し、A[3:0]とB[3:0]が一致することを示すEQ又はA[3:0]がB[3:0]よりも大きいことを示すGTを出力する。具体的には、ANDゲート130−112は、A[3:0]とB[3:0]の各ビットの排他的論理和の反転信号の論理積をとることにより、EQ信号を出力する。ORゲート130−111は、A[3:0]がB[3:0]よりも大きい場合のデコード信号の論理和をとることにより、GT信号を出力する。   The 4-bit block 130-1 compares the input data A [3: 0] and the input data B [3: 0], and an EQ indicating that A [3: 0] and B [3: 0] match. Alternatively, GT indicating that A [3: 0] is larger than B [3: 0] is output. Specifically, the AND gates 130 to 112 output an EQ signal by taking the logical product of the inverted signals of the exclusive logical sum of each bit of A [3: 0] and B [3: 0]. The OR gate 130-111 outputs a GT signal by taking the logical sum of the decoded signals when A [3: 0] is larger than B [3: 0].

他の4ビット・ブロック130−2〜130−4及び133の構成も4ビット・ブロック130−1と同様の構成となるので、説明を省略する。   The configurations of the other 4-bit blocks 130-2 to 130-4 and 133 are the same as those of the 4-bit block 130-1, and thus the description thereof is omitted.

各4ビット・ブロックの出力信号を受けるブロック130−5や、各16ビット・ブロックの出力信号を受けるブロック134は、4ビット・ブロック130−1の中のブロック130−11と同様の論理で構成できる。   The block 130-5 that receives the output signal of each 4-bit block and the block 134 that receives the output signal of each 16-bit block have the same logic as the block 130-11 in the 4-bit block 130-1. it can.

ブロック130−5では、各4ビット・ブロック130−1〜130−4から出力されるGT信号及びEQ信号に基づいて、入力信号A[15:0]とB[15:0]の比較を行なう。ANDゲート130−52は、A[15:0]とB[15:0]の比較結果が一致していれば、出力信号のEQを1にする。ORゲート130−51は、A[15:0]がB[15:0]よりも大きければ、出力信号のGTを1にする。   In block 130-5, the input signals A [15: 0] and B [15: 0] are compared based on the GT signal and the EQ signal output from each of the 4-bit blocks 130-1 to 130-4. . The AND gate 130-52 sets the EQ of the output signal to 1 if the comparison results of A [15: 0] and B [15: 0] match. The OR gate 130-51 sets GT of the output signal to 1 if A [15: 0] is larger than B [15: 0].

ブロック134では、各ブロック130〜133から出力されるGT信号及びEQ信号に基づいて、入力信号A[51:0]とB[51:0]の比較を行う。そして、ブロック134は、その比較結果が一致していれば、ANDゲート134−2の出力信号F_EQを1としてA=Bであることを示す。一方、ブロック134は、A[51:0]がB[51:0]よりも大きければ、ORゲート134−1の出力信号F_GTを1として、A>Bであることを示す。   In block 134, the input signals A [51: 0] and B [51: 0] are compared based on the GT signal and the EQ signal output from each of the blocks 130 to 133. Then, the block 134 indicates that A = B when the output signal F_EQ of the AND gate 134-2 is 1 if the comparison results match. On the other hand, the block 134 indicates that if A [51: 0] is greater than B [51: 0], the output signal F_GT of the OR gate 134-1 is 1, and A> B.

図4の比較器のA入力(A[51:0])及びB入力(B[51:0])に、図2におけるFOPA及びFOPBを接続し、図4の比較器のF_GT出力に、図2におけるORゲート18を接続すると、図8に示されるNEG信号が得られる。尚、図4のF_EQ信号は、前述の図3におけるFA_EQ_FB(又は、FOPA_EQ_FOPB)信号として用いられる。   The FOPA and FOPB in FIG. 2 are connected to the A input (A [51: 0]) and B input (B [51: 0]) of the comparator of FIG. 4, and the F_GT output of the comparator of FIG. 2 is connected, the NEG signal shown in FIG. 8 is obtained. 4 is used as the FA_EQ_FB (or FOPA_EQ_FOPB) signal in FIG. 3 described above.

図5は、実施例1に係る絶対値加算器16の一例を示す図である。図5において、キャリー伝播ブロック20は、絶対値加算器16のキャリー伝播を行うブロックであり、詳細については、後述する。   FIG. 5 is a diagram illustrating an example of the absolute value adder 16 according to the first embodiment. In FIG. 5, a carry propagation block 20 is a block for carrying the carry propagation of the absolute value adder 16, and details will be described later.

図5中、SUB信号は、オペランドAとオペランドBの符号が異なるときに1、符号が等しい時には0となる信号であり、符号・指数処理部10から出力されるSUB信号と同じものである。NEG信号は、図2におけるNEG信号であり、ORゲート18により生成される信号である。   In FIG. 5, the SUB signal is a signal that is 1 when the signs of operand A and operand B are different, and is 0 when the signs are equal, and is the same as the SUB signal output from the sign / exponential processing unit 10. The NEG signal is the NEG signal in FIG. 2 and is a signal generated by the OR gate 18.

図5において、nビット目の入力A[n]とB[n]の論理積である生成項(Generation term)はANDゲート16−4で生成され、キャリー伝播ブロック20のGn端子に入力される。また、nビット目のA[n]とB[n]の排他的論理和として得られる伝播項(Propagation term)はEOR(Exclusive−OR)ゲート16−5で生成され、キャリー伝播ブロック20のPn端子に入力される。n−1ビット目から0ビット目の生成項及び伝播項についても同様の論理で生成され、キャリー伝播ブロック20の対応する各端子に入力される。   In FIG. 5, a generation term (Generation term) that is the logical product of the nth bit inputs A [n] and B [n] is generated by an AND gate 16-4 and input to the Gn terminal of the carry propagation block 20. . A propagation term obtained as an exclusive OR of A [n] and B [n] of the n-th bit is generated by an EOR (Exclusive-OR) gate 16-5, and Pn of the carry propagation block 20 Input to the terminal. The generation term and the propagation term from the (n−1) th bit to the 0th bit are also generated by the same logic and input to the corresponding terminals of the carry propagation block 20.

ここで、nビット目の加算結果SUM[n]は、伝播項Pnとキャリー伝播ブロック20のキャリー出力Cnの排他的論理和で求められる。そのため、再補数化を考慮しなければ、nビット目の加算結果はEORゲート16−5の出力とキャリー伝播ブロック20のCn出力のEOR論理をとればよいことになる。しかし、前述の通り、絶対値加算器において絶対値|A−B|を計算する際に、A−B>0の場合は、   Here, the addition result SUM [n] of the nth bit is obtained by exclusive OR of the propagation term Pn and the carry output Cn of the carry propagation block 20. Therefore, if recomplementation is not taken into consideration, the addition result of the nth bit may be EOR logic of the output of the EOR gate 16-5 and the Cn output of the carry propagation block 20. However, as described above, when calculating the absolute value | A−B | in the absolute value adder, if A−B> 0,

Figure 2011086133
Figure 2011086133

を計算し、A−B<0の場合は If A−B <0,

Figure 2011086133
Figure 2011086133

を計算することになる。すなわち、A−B<0の場合、キャリー入力が0の Will be calculated. That is, when A−B <0, the carry input is 0.

Figure 2011086133
Figure 2011086133

の加算結果に対して1の補数をとる再補数化処理が必要となってくる。 Therefore, a recomplementation process that takes the one's complement for the addition result is required.

本実施形態では、再補数化処理を加算後に行うのではなく、キャリー伝播回路20の前に移動し、キャリーよりも早く確定する半加算結果(図4ではEORゲート16−5出力)に対して再補数化処理を行う。   In the present embodiment, the recomplementation process is not performed after the addition, but the half addition result (the output of the EOR gate 16-5 in FIG. 4) that moves before the carry propagation circuit 20 and is determined earlier than the carry is obtained. Perform recomplementation processing.

具体的には、絶対値加算器16において再補数化するためのEORゲート16−6を、A[n]とB[n]の半加算結果を生成するEORゲート16−5の直後に設け、再補数化するか否かを再補数化要求信号RECOMPにより制御する。再補数化要求信号RECOMPは、ANDゲート16−2においてSUB信号とNEG信号の論理積をとることにより生成する。   Specifically, an EOR gate 16-6 for recomplementation in the absolute value adder 16 is provided immediately after the EOR gate 16-5 that generates a half addition result of A [n] and B [n]. Whether or not recomplementation is performed is controlled by a recomplementation request signal RECOMP. The recomplementation request signal RECOMP is generated by taking the logical product of the SUB signal and the NEG signal in the AND gate 16-2.

また、合わせて、減算時にA−B<0となる場合にはキャリー入力を0にするために、キャリー伝播ブロック20のキャリー入力端子Cinには、AND回路16−1においてNEG信号を反転したインバータ16−3の出力信号とSUB信号との論理積をとった信号を入力する。   In addition, an inverter that inverts the NEG signal in the AND circuit 16-1 is connected to the carry input terminal Cin of the carry propagation block 20 in order to set the carry input to 0 when AB <0 during subtraction. A signal obtained by ANDing the output signal 16-3 and the SUB signal is input.

図6は、図5におけるキャリー伝播ブロック20の一例を示した図である。図6は64ビットのキャリー生成ブロックの概略図であり、ビット幅64ビットまでの加算器に対応できる。図6の64ビット・キャリー生成ブロックは、4つの16ビットブロック140〜143と、各16ビットブロック140〜143のキャリー生成を行なうための中間信号GG、GP信号を扱うブロック144と、キャリー伝播ブロック20から出力するキャリー信号C[63:0]を生成するブロック145−1〜145−8とを有する。   FIG. 6 is a diagram showing an example of carry propagation block 20 in FIG. FIG. 6 is a schematic diagram of a 64-bit carry generation block, which can correspond to an adder having a bit width of up to 64 bits. The 64-bit carry generation block of FIG. 6 includes four 16-bit blocks 140 to 143, a block 144 that handles intermediate signals GG and GP signals for carrying the 16-bit blocks 140 to 143, and a carry propagation block. And blocks 145-1 to 145-8 that generate carry signals C [63: 0] to be output from 20.

図7は、図6中の16ビットブロック140〜143の一例を示した図である。図7の16ビット・キャリー生成ブロックは、4つの4ビットブロック150〜153と、各4ビットブロックのキャリー生成を行なうための中間信号DG、DP信号を扱うブロック154と、16ビットキャリー生成ブロック140〜143から出力するキャリー生成用信号C0[15:1]とCP[15:1]とを生成するブロック155−1〜155−15とを有する。図7の16ビットブロックは図6中のブロック140に対応し、図7での入力信号G[15:0]及びP[15:0]は、図6におけるブロック140に入力されるG[15:0]及びP[15:0]となる。   FIG. 7 is a diagram showing an example of the 16-bit blocks 140 to 143 in FIG. The 16-bit carry generation block of FIG. 7 includes four 4-bit blocks 150 to 153, a block 154 that handles intermediate signals DG and DP signals for carrying out the generation of each 4-bit block, and a 16-bit carry generation block 140. ˜143, blocks 155-1 to 155-15 for generating carry generation signals C0 [15: 1] and CP [15: 1]. The 16-bit block in FIG. 7 corresponds to the block 140 in FIG. 6, and the input signals G [15: 0] and P [15: 0] in FIG. 7 are input to the block 140 in FIG. : 0] and P [15: 0].

各4ビットブロック150〜153は、図7中の4ビットブロック153に示す構成となっている。図5に示すように、キャリー伝播ブロック20の外側で生成されて入力される生成項G[n]と伝播項P[n]の各ビットに対して、4ビットブロック153では以下の信号を生成する。   Each of the 4-bit blocks 150 to 153 has a configuration shown in the 4-bit block 153 in FIG. As shown in FIG. 5, the 4-bit block 153 generates the following signals for each bit of the generation term G [n] and the propagation term P [n] generated and input outside the carry propagation block 20. To do.

4ビットブロック153内のG[3:0]及びP[3:0]は、16ビットブロックに入力されるG[15:12]及びP[15:12]が接続される。   G [3: 0] and P [3: 0] in the 4-bit block 153 are connected to G [15:12] and P [15:12] input to the 16-bit block.

バッファ153−2は、入力されたG[0]をそのままC0[1]として出力する。ORゲート153−4は、P[1]とG[0]との論理積とG[1]との論理和をとって、C0[2]を出力する。 ORゲート153−6は、P[2]とP[1]とG[0]との論理積と、P[2]とG[1]との論理積と、G[2]との論理和をとってC0[3]を出力する。ORゲート153−8は、P[3]とP[2]とP[1]とG[0]との論理積と、P[3]とP[2]とG[1]との論理積と、P[3]とG[2]との論理積と、G[3]との論理和をとってDGを出力する。   The buffer 153-2 outputs the input G [0] as it is as C0 [1]. The OR gate 153-4 calculates the logical sum of the logical product of P [1] and G [0] and G [1], and outputs C0 [2]. The OR gate 153-6 performs a logical sum of a logical product of P [2], P [1], and G [0], a logical product of P [2] and G [1], and G [2]. And C0 [3] is output. The OR gate 153-8 performs a logical product of P [3], P [2], P [1], and G [0], and a logical product of P [3], P [2], and G [1]. Then, the logical product of P [3] and G [2] and the logical sum of G [3] is taken and DG is output.

バッファ153−1は、入力されたP[0]をそのままCP[1]として出力する。ANDゲート153−3は、P[1]とP[0]との論理積をとってCP[2]を出力する。ANDゲート153−5は、P[2]とP[1]とP[0]との論理積をとってCP[3]を出力する。ANDゲート153−7は、P[3]とP[2]とP[1]とP[0]との論理積をとってDPを出力する。   The buffer 153-1 outputs the input P [0] as CP [1] as it is. The AND gate 153-3 takes the logical product of P [1] and P [0] and outputs CP [2]. The AND gate 153-5 calculates the logical product of P [2], P [1], and P [0] and outputs CP [3]. The AND gate 153-7 calculates the logical product of P [3], P [2], P [1], and P [0] and outputs DP.

図7に示す16ビットブロックが処理する生成項G[15:0]より上位ビットの生成項G[31:16]、G[47:32]、G[63:48]、及び、伝播項P[15:0]より上位ビットの伝播項P[31:16]、P[47:32]、P[63:48]の各信号についても、図7に示す4ビットブロック151〜153と同様の構成を持つビットブロックで同じように処理される。   The generation terms G [31:16], G [47:32], G [63:48], and the propagation term P higher than the generation terms G [15: 0] processed by the 16-bit block shown in FIG. The signals of the higher-order bit propagation terms P [31:16], P [47:32], and P [63:48] from [15: 0] are the same as those of the 4-bit blocks 151 to 153 shown in FIG. The same processing is performed for bit blocks having a configuration.

図7中、ブロック154は、各4ビットブロック150〜153と同様の回路構成となっている。ブロック154のG[3:0]には、各4ビットブロックから出力されるDG信号が接続され、P[3:0]には、各4ビットブロックから出力されるDP信号が接続される。そして、ブロック154に含まれるORゲート154−8は、4ビットブロック153におけるORゲート153−8と同様の論理により16ビットブロックのキャリー生成を行なうための中間信号GG信号を出力する。また、ANDゲート154−7は、4ビットブロック153におけるANDゲート153−7と同様の論理により16ビットブロックのキャリー生成を行なうための中間信号GP信号を出力する。また、ブロック154でも、4ビットブロック150〜153と同様の論理でC0[3:0]信号及びCP[3:0]信号を生成して出力する。   In FIG. 7, the block 154 has a circuit configuration similar to that of each of the 4-bit blocks 150 to 153. A DG signal output from each 4-bit block is connected to G [3: 0] of the block 154, and a DP signal output from each 4-bit block is connected to P [3: 0]. The OR gate 154-8 included in the block 154 outputs an intermediate signal GG signal for carrying the carry of the 16-bit block by the same logic as the OR gate 153-8 in the 4-bit block 153. The AND gate 154-7 outputs an intermediate signal GP signal for carrying a 16-bit block according to the same logic as the AND gate 153-7 in the 4-bit block 153. The block 154 also generates and outputs the C0 [3: 0] signal and the CP [3: 0] signal with the same logic as the 4-bit blocks 150 to 153.

ブロック155−1〜155−15は、各4ビットブロック150〜153及びブロック154から出力されたC0[3:0]信号及びCP[3:0]信号を用いて、16ビットブロックのC0[15:1]信号及びCP[15:1]信号を生成して出力する。具体的には、図7に示す16ビットブロック140から出力されるC0[3:1]及びCP[3:1]は、4ビットブロック150から出力されるC0[3:0]及びCP[3:1]をそのままバッファを介して生成される。   The blocks 155-1 to 155-15 use the C0 [3: 0] and CP [3: 0] signals output from the 4-bit blocks 150 to 153 and the block 154, respectively, so that the C0 [15 : 1] signal and CP [15: 1] signal are generated and output. Specifically, C0 [3: 1] and CP [3: 1] output from the 16-bit block 140 illustrated in FIG. 7 are C0 [3: 0] and CP [3] output from the 4-bit block 150, respectively. : 1] is generated as it is through the buffer.

16ビットブロックから出力されるC0[4]及びCP[4]は、ブロック154から出力されるC0[1]及びCP[1]をそのままバッファを介して生成される。16ビットブロックから出力されるC0[7:5]は、4ビットブロック151から出力されるCP[3:1]の各ビットとブロック154から出力されるC0[1]との論理積と、4ビットブロック151から出力されるC0[3:1]の各ビットとの論理和をとることにより生成される。16ビットブロックから出力されるCP[7:5]は、4ビットブロック151から出力されるCP[3:1]の各ビットとブロック154から出力されるCP[1]との論理積をとることにより生成される。   C0 [4] and CP [4] output from the 16-bit block are generated as they are through C0 [1] and CP [1] output from the block 154 as they are. C0 [7: 5] output from the 16-bit block is the logical product of each bit of CP [3: 1] output from the 4-bit block 151 and C0 [1] output from the block 154, and 4 It is generated by taking the logical sum with each bit of C0 [3: 1] output from the bit block 151. CP [7: 5] output from the 16-bit block takes the logical product of each bit of CP [3: 1] output from the 4-bit block 151 and CP [1] output from the block 154. Is generated by

16ビットブロックから出力されるC0[8]及びCP[8]は、ブロック154から出力されるC0[2]及びCP[2]をそのままバッファを介して生成される。16ビットブロックから出力されるC0[11:9]は、4ビットブロック152から出力されるCP[3:1]とブロック154から出力されるC0[2]との論理積と、4ビットブロック152から出力されるC0[3:1]との論理和をとることにより生成される。16ビットブロックから出力されるCP[11:9]は、4ビットブロック152から出力されるCP[3:1]とブロック154から出力されるCP[2]との論理積をとることにより生成される。   C0 [8] and CP [8] output from the 16-bit block are generated via C0 [2] and CP [2] output from the block 154 as they are. C0 [11: 9] output from the 16-bit block is the logical product of CP [3: 1] output from the 4-bit block 152 and C0 [2] output from the block 154, and the 4-bit block 152. Is generated by performing a logical sum with C0 [3: 1] output from. CP [11: 9] output from the 16-bit block is generated by taking the logical product of CP [3: 1] output from the 4-bit block 152 and CP [2] output from the block 154. The

16ビットブロックから出力されるC0[12]及びCP[12]は、ブロック154から出力されるC0[3]及びCP[3]をそのままバッファを介して生成される。16ビットブロックから出力されるC0[15:13]は、4ビットブロック153から出力されるCP[3:1]とブロック154から出力されるC0[3]との論理積と、4ビットブロック153から出力されるC0[3:1]との論理和をとることにより生成される。16ビットブロックから出力されるCP[15:13]は、4ビットブロック153から出力されるCP[3:1]とブロック154から出力されるCP[3]との論理積をとることにより生成される。   C0 [12] and CP [12] output from the 16-bit block are generated as they are through C0 [3] and CP [3] output from the block 154 as they are. C0 [15:13] output from the 16-bit block is the logical product of CP [3: 1] output from the 4-bit block 153 and C0 [3] output from the block 154, and the 4-bit block 153. Is generated by performing a logical sum with C0 [3: 1] output from. CP [15:13] output from the 16-bit block is generated by taking the logical product of CP [3: 1] output from the 4-bit block 153 and CP [3] output from the block 154. The

図6では、前記のように構成された各16ビットブロック140〜143、ブロック144、及びブロック145−1〜145−8により、64ビットブロックキャリーブロックとしてのキャリー出力信号C[63:0]を生成する。以下、具体的に説明する。   In FIG. 6, the 16-bit blocks 140 to 143, the block 144, and the blocks 145-1 to 145-8 configured as described above generate a carry output signal C [63: 0] as a 64-bit block carry block. Generate. This will be specifically described below.

図6中、ブロック144は、各4ビットブロック150〜153と同様の回路構成となっている。ブロック144のG[3:0]には、各16ビットブロック140〜143から出力されるGG信号が接続され、P[3:0]には、各16ビットブロック140〜143から出力されるGP信号が接続される。そして、ブロック144に含まれるORゲート144−1は、4ビットブロック153におけるORゲート153−8と同様の論理により64ビットブロックのキャリー生成を行なうための中間信号DG信号を出力する。また、ANDゲート144−2は、4ビットブロック153におけるANDゲート153−7と同様の論理により64ビットブロックのキャリー生成を行なうための中間信号DP信号を出力する。また、ブロック144でも、4ビットブロック150〜153と同様の論理でC0[3:0]信号及びCP[3:0]信号を生成して出力する。   In FIG. 6, the block 144 has a circuit configuration similar to that of each of the 4-bit blocks 150 to 153. GG signals output from the 16-bit blocks 140 to 143 are connected to G [3: 0] of the block 144, and GPs output from the 16-bit blocks 140 to 143 are connected to P [3: 0]. Signal is connected. The OR gate 144-1 included in the block 144 outputs an intermediate signal DG signal for carrying the 64-bit block by the same logic as the OR gate 153-8 in the 4-bit block 153. The AND gate 144-2 outputs an intermediate signal DP signal for generating a 64-bit block carry by the same logic as the AND gate 153-7 in the 4-bit block 153. The block 144 also generates and outputs the C0 [3: 0] and CP [3: 0] signals with the same logic as the 4-bit blocks 150 to 153.

ブロック145−1〜145−8は、各16ビットブロック140〜143及びブロック144から出力されたC0[3:0]信号及びCP[3:0]信号を用いて、64ビットブロックとしてのキャリーアウト信号C[63:0]を生成して出力する。   The blocks 145-1 to 145-8 are carried out as 64-bit blocks using the C0 [3: 0] and CP [3: 0] signals output from the 16-bit blocks 140 to 143 and the block 144, respectively. A signal C [63: 0] is generated and output.

64ビットブロックから出力されるC[0]は、ブロック145−1において、64ビットブロックへ入力されるキャリー入力信号であるCINをそのままバッファを介して生成される。ここで、キャリー入力信号CINに入力される信号は、図5におけるANDゲート16−1で生成された信号と同じ信号である。   C [0] output from the 64-bit block is generated via the buffer as it is in CIN, which is a carry input signal input to the 64-bit block in block 145-1. Here, the signal input to carry input signal CIN is the same signal as the signal generated by AND gate 16-1 in FIG.

C[15:1]は、ブロック145−2において、16ビットブロック140から出力されるCP[15:1]とCINとの論理積をとった信号と、16ビットブロック140から出力されるC0[15:0]との論理和をとることにより生成される。   In block 145-2, C [15: 1] is a logical product of CP [15: 1] output from 16-bit block 140 and CIN, and C0 [15] output from 16-bit block 140. 15: 0].

C[16]は、ブロック145−3において、ブロック144から出力されるCP[1]とCINとの論理積をとった信号と、ブロック144から出力されるC0[1]との論理和をとることにより生成される。   In block 145-3, C [16] takes the logical sum of the signal obtained by logical product of CP [1] output from block 144 and CIN and C0 [1] output from block 144. Is generated.

C[31:17]は、ブロック145−4において、16ビットブロック141から出力されるCP[15:1]とブロック144から出力されるCP[1]とCINとの論理積をとった信号と、16ビットブロック141から出力されるCP[15:1]と、ブロック144から出力されるC0[1]の論理積をとった信号と、16ビットブロック141から出力されるC0[15:1]との論理和をとることにより生成される。   C [31:17] is a signal obtained by ANDing CP [15: 1] output from the 16-bit block 141 and CP [1] output from the block 144 and CIN in the block 145-4. , CP [15: 1] output from the 16-bit block 141 and C0 [1: 1] output from the block 144 and C0 [15: 1] output from the 16-bit block 141 It is generated by taking the logical OR.

C[32]は、ブロック145−5において、ブロック144から出力されるCP[2]とCINとの論理積をとった信号と、ブロック144から出力されるC0[2]との論理和をとることにより生成される。   In block 145-5, C [32] takes the logical sum of a signal obtained by logical product of CP [2] output from block 144 and CIN and C0 [2] output from block 144. Is generated.

C[47:33]は、ブロック145−6において、16ビットブロック142から出力されるCP[15:1]とブロック144から出力されるCP[2]とCINとの論理積をとった信号と、16ビットブロック142から出力されるCP[15:1]とブロック144から出力されるC0[2]との論理積をとった信号と、16ビットブロック142から出力されるC0[15:1]との論理和をとることにより生成される。   C [47:33] is a signal obtained by ANDing CP [15: 1] output from the 16-bit block 142 and CP [2] output from the block 144 and CIN in the block 145-6. , The logical product of CP [15: 1] output from the 16-bit block 142 and C0 [2] output from the block 144 and C0 [15: 1] output from the 16-bit block 142 It is generated by taking the logical OR.

C[48]は、ブロック145−7において、ブロック144から出力されるCP[3]とCINとの論理積をとった信号と、ブロック144から出力されるC0[3]との論理和をとることにより生成される。   In block 145-7, C [48] takes the logical sum of the signal obtained by ANDing CP [3] output from block 144 and CIN and C0 [3] output from block 144. Is generated.

C[63:49]は、ブロック145−8において、16ビットブロック143から出力されるCP[15:1]とブロック144から出力されるCP[3]とCINとの論理積をとった信号と、16ビットブロック143から出力されるCP[15:1]とブロック144から出力されるC0[3]の論理積をとった信号と、16ビットブロック143から出力されるC0[15:1]との論理和をとることにより生成される。   C [63:49] is a signal obtained by ANDing CP [15: 1] output from the 16-bit block 143 and CP [3] output from the block 144 and CIN in the block 145-8. , A signal obtained by ANDing CP [15: 1] output from the 16-bit block 143 and C0 [3] output from the block 144, and C0 [15: 1] output from the 16-bit block 143. It is generated by taking the logical sum of

なお、図6のブロック144のORゲート144−1により生成されるCOUT_CIN0信号は、CINが0である場合の加算器のキャリー出力に対応し、COUT_CIN1は、CINが1である場合の加算器のキャリー出力に対応する。本実施例においては、特にこれらCOUT_CIN0及びCOUT_CIN1の各信号は使用していないが、たとえば絶対値加算結果の選択や、再補数化の判定等に用いることも可能である。   Note that the COUT_CIN0 signal generated by the OR gate 144-1 of the block 144 in FIG. 6 corresponds to the carry output of the adder when CIN is 0, and COUT_CIN1 is that of the adder when CIN is 1. Corresponds to carry output. In the present embodiment, these signals COUT_CIN0 and COUT_CIN1 are not particularly used, but they can also be used, for example, for selecting an absolute value addition result or determining recomplementation.

図8は、実施例1における、オペランドAの符号SA、指数部EA、オペランドBの符号SB、指数部EBと、指数部の比較結果に応じて仮数部の交換を実施したあとの仮数部データFOPAとFOPBの値によって、SUB、NEG、RECOMP、CINの値をどう決定するかについてまとめた表である。図中、“−”と表示されている欄は比較不要であることを示す。   FIG. 8 shows the mantissa data after exchanging the mantissa part according to the comparison result of the exponent part and the sign SA of the operand A, the exponent part EA, the sign SB of the operand B, and the exponent part EB in the first embodiment. 10 is a table summarizing how values of SUB, NEG, RECOMP, and CIN are determined based on values of FOPA and FOPB. In the figure, a column labeled “-” indicates that comparison is not necessary.

図8に示すSUB信号については、符号SAとSBが一致する場合にSUB信号は0に、符号SAとSBが異なる場合にSUBは1になる。NEG信号については、指数部EAとEBが異なる場合及び仮数部FOPAがFOPBよりも大きい場合にNEGは1となり、指数部EAとEBが等しく、かつ仮数部FOPAがFOPB以下の場合にNEGは0となる。RECOMP信号については、減算時(SUB=1)であって、かつ、絶対値加算器の加算結果が負となる場合(NEG=1)にRECOMP信号は1となり、それ以外の場合、RECOMP信号は0となる。CINについては、SUB=1であって、かつ、NEG=0の場合にCINは1となり、それ以外の場合、CINは0となる。   For the SUB signal shown in FIG. 8, the SUB signal is 0 when the codes SA and SB match, and the SUB is 1 when the codes SA and SB are different. For the NEG signal, NEG is 1 when the exponent parts EA and EB are different and when the mantissa part FOPA is greater than FOPB, NEG is 0 when the exponent parts EA and EB are equal and the mantissa part FOPA is less than or equal to FOPB. It becomes. With respect to the RECOMP signal, the RECOMP signal is 1 when subtraction is performed (SUB = 1) and the addition result of the absolute value adder is negative (NEG = 1), otherwise, the RECOMP signal is 0. Regarding CIN, CIN is 1 when SUB = 1 and NEG = 0, and CIN is 0 in other cases.

図9は、実施例1における指数データの大小関係と仮数部のオペランドデータの交換の実施についてまとめた表である。図9では、EA=EBの場合にデータ交換を行わないことになっているが、EA=EBの場合にデータ交換を行うようにすることもできる。オペランドのデータ交換は、前述の通り、図3におけるEXPA_GT_EXPB又はEXPB_GT_EXPAを用いて制御することができる。   FIG. 9 is a table summarizing the relationship between the magnitudes of the exponent data and the exchange of the mantissa operand data in the first embodiment. In FIG. 9, data exchange is not performed when EA = EB. However, data exchange may be performed when EA = EB. As described above, operand data exchange can be controlled using EXPA_GT_EXPB or EXPB_GT_EXPA in FIG.

図10は、オペランドデータの符号SA、SBの値に応じて、補数化回路13におけるビット反転を行うかどうかを表にしたものである。符号SA,SBの値をビット反転に直接使用する代わりに、SUB信号を用いて補数化回路13の制御に用いてもよい。具体的には、SUB信号が1の場合、補数化回路13でビット反転を行い、SUB信号が0の場合、補数化回路13でビット反転しないといった制御を行うことができる。   FIG. 10 is a table showing whether or not the bit inversion is performed in the complement circuit 13 according to the values of the signs SA and SB of the operand data. Instead of directly using the values of the codes SA and SB for bit inversion, the SUB signal may be used to control the complement circuit 13. Specifically, when the SUB signal is 1, the complement circuit 13 performs bit inversion, and when the SUB signal is 0, the complement circuit 13 does not perform bit inversion.

図11は、図1・図2における正規化と丸め操作を行う正規化処理部17の一実施例を示す図である。図11の実施例では、正規化処理部17は、リーディングゼロカウント部161、シフト制御部162、正規化シフト部163、丸め加算器164、及び丸め判定部165を有する。正規化処理部17に入力される信号160は、図1・図2における絶対値加算器16から出力される加算結果である。   FIG. 11 is a diagram illustrating an embodiment of the normalization processing unit 17 that performs the normalization and rounding operations in FIGS. 1 and 2. In the example of FIG. 11, the normalization processing unit 17 includes a reading zero count unit 161, a shift control unit 162, a normalization shift unit 163, a rounding adder 164, and a rounding determination unit 165. The signal 160 input to the normalization processing unit 17 is an addition result output from the absolute value adder 16 in FIGS.

減算時において2つのオペランドの値が近い場合、桁落ちによってMSB(Most Significant Bit)側の1ないし複数のビットが0となることがある。IEEE754のバイナリー・フォーマットでは、仮数部の値を正規化しているため、MSBから見て、最初に“1”となるビットを所定の位置に整列する必要がある。従って、図11の実施例では、絶対値加算器16の加算結果である入力信号160のMSB側から見て最初に“1”となるビット位置をリーディングゼロカウント部161で計数し、該計数値等を用いて正規化シフト部163で信号160をシフトさせる。   When the values of two operands are close at the time of subtraction, one or more bits on the MSB (Most Significant Bit) side may become 0 due to a digit loss. In the binary format of IEEE754, since the value of the mantissa is normalized, it is necessary to align the first “1” in a predetermined position as seen from the MSB. Therefore, in the embodiment of FIG. 11, the reading zero count unit 161 counts the bit position that is first “1” when viewed from the MSB side of the input signal 160 that is the addition result of the absolute value adder 16. Etc., the signal 160 is shifted by the normalization shift unit 163.

図12は、図11におけるリーディングゼロカウント部161が計数したリーディングゼロカウント値(LZC)とデータのビット・マッピングの関係を示す図である。図12(a)における“ADD OP A”及び“ADD OP B”は、図1・図2における絶対値加算器16に入力されるオペランドの仮数部であり、補数化回路13及びアラインメント部14から出力された信号に相当する。“ADD RESULT”は、図1・図2における絶対値加算器16の出力信号に相当する。“after normalize shift”は、図11における正規化シフト部163の出力信号に相当する。   FIG. 12 is a diagram showing the relationship between the reading zero count value (LZC) counted by the reading zero count unit 161 in FIG. 11 and the bit mapping of data. “ADD OP A” and “ADD OP B” in FIG. 12A are the mantissa parts of the operands input to the absolute value adder 16 in FIGS. 1 and 2, and from the complement circuit 13 and the alignment part 14. It corresponds to the output signal. “ADD RESULT” corresponds to the output signal of the absolute value adder 16 in FIGS. “After normalize shift” corresponds to the output signal of the normalization shift unit 163 in FIG.

図12(a)において、絶対値加算器16の加算結果(ADD RESULT)のMSBの位置に付された“*”の位置、すなわち、絶対値加算器16への入力仮数部(“ADD OP A”,“ADD OP B”)のMSBビットより1ビット上位の位置が、リーディングゼロカウント値LZC=0の位置となる。   12A, the position of “*” added to the MSB position of the addition result (ADD RESULT) of the absolute value adder 16, that is, the input mantissa part (“ADD OP A” to the absolute value adder 16). The position one bit higher than the MSB bit of “,“ ADD OP B ”) is the position of the reading zero count value LZC = 0.

図12(b)は、絶対値加算器16の加算結果(ADD RESULT)に対するリーディングゼロカウント部161でのカウント値LZCを説明する図である。図12(b)中、“x”は任意の値を示す。図12(b)に示すように、MSBの位置に“1”がある場合にはLZC=0となり、MSBから1ビット右の位置に“1”がある場合にはLZC=1となり、MSBから2ビット右の位置に“1”がある場合にはLZC=2となる。以下同様に、MSBから見た“1”の位置が右にシフトするに従って、LZCの値も増加する。   FIG. 12B is a diagram for explaining the count value LZC in the reading zero count unit 161 for the addition result (ADD RESULT) of the absolute value adder 16. In FIG. 12B, “x” represents an arbitrary value. As shown in FIG. 12B, when there is “1” in the MSB position, LZC = 0, and when “1” is 1 bit to the right of the MSB, LZC = 1. LZC = 2 when there is “1” in the right 2 bits. Similarly, the value of LZC increases as the position of “1” viewed from the MSB shifts to the right.

図11のリーディングゼロカウント部161は、図12(a)におけるADD RESULT“*”の位置から見て、最初に“1”となるビットの位置まで何ビットずれているかを計数する。すなわち、リーディングゼロカウント部161は、図12(b)に示すように“ADD RESULT”のMSBから見て何ビット目に“1”が存在するかをカウントして、リーディングゼロカウント値LZCを出力する。リーディングゼロカウント値LZCは、図3における“leading zero result as normalize shift amount”を示す信号としても使用される。   The reading zero count unit 161 in FIG. 11 counts how many bits are shifted from the position of ADD RESULT “*” in FIG. That is, as shown in FIG. 12B, the reading zero count unit 161 counts what bit “1” exists from the MSB of “ADD RESULT”, and outputs the reading zero count value LZC. To do. The reading zero count value LZC is also used as a signal indicating “leading zero result as normalize shift amount” in FIG.

図13は、実施例1に係るリーディングゼロカウント部161の回路例を示す図である。図13は、64ビット幅までカウントできるように構成した回路例である。図12の“ADD RESULT”における最上位ビット、つまり図中で*印をつけてあるビットを図13のA[63]に
接続し、以下“ADD RESULT”のA[62]以降をビットの重み順に接続することで、本実施例1におけるリーディングゼロカウントの機能を実現できる。
FIG. 13 is a diagram illustrating a circuit example of the reading zero count unit 161 according to the first embodiment. FIG. 13 shows a circuit example configured to count up to a 64-bit width. The most significant bit in “ADD RESULT” in FIG. 12, that is, the bit marked with * in FIG. 12 is connected to A [63] in FIG. 13, and the bit weight after A [62] in “ADD RESULT” By connecting in order, the function of reading zero count in the first embodiment can be realized.

図13のリーディングゼロカウント部161の回路例は、4つの16ビットブロック170〜173及びこれらの16ビットブロックの出力結果をまとめるブロック174を有する。各16ビットブロック170〜173は、16ビットブロック173の部分に示されているように、4つの4ビットブロック180〜183及びこれらの4ビットブロックの出力結果をまとめるブロック184を有する。   The circuit example of the reading zero count unit 161 in FIG. 13 includes four 16-bit blocks 170 to 173 and a block 174 that collects output results of these 16-bit blocks. Each 16-bit block 170-173 has four 4-bit blocks 180-183 and a block 184 that summarizes the output results of these 4-bit blocks, as shown in the 16-bit block 173 portion.

4ビットブロックの回路について、4ビットブロック183を例に説明する。4ビットブロック183は、入力データA[63:60]のMSB側から見て、最初に“1”となるビットの位置を16進数で示すためのC[1:0]信号を生成する。説明の便宜上、4ビットブロック183へ入力されるデータがA[3:0]であるものとして、以下、説明する。   A 4-bit block circuit will be described by taking the 4-bit block 183 as an example. The 4-bit block 183 generates a C [1: 0] signal for indicating the position of the bit that is first “1” in hexadecimal as viewed from the MSB side of the input data A [63:60]. For convenience of explanation, the following description will be given assuming that the data input to the 4-bit block 183 is A [3: 0].

NANDゲート183−4は、A[3]を反転した信号とA[2]との論理積を反転した信号を生成する。NANDゲート183−5は、A[3]を反転した信号とA[2]を反転した信号とA[1]との論理積を反転した信号を生成する。ANDゲート183−1は、A[3]を反転した信号とNANDゲート183−4の出力信号の論理積をとり、C[1]信号を生成する。ANDゲート183−2は、A[3]を反転した信号とNANDゲート183−5の出力信号の論理積をとり、C[0]信号を生成する。ORゲート183−3は、A[3:0]の各信号の論理和をとることにより、A[3:0]の全ビットが0である場合に“0”となるXALL0信号を生成する。   The NAND gate 183-4 generates a signal obtained by inverting the logical product of the signal obtained by inverting A [3] and A [2]. The NAND gate 183-5 generates a signal obtained by inverting the logical product of the signal obtained by inverting A [3], the signal obtained by inverting A [2], and A [1]. The AND gate 183-1 takes the logical product of the signal obtained by inverting A [3] and the output signal of the NAND gate 183-4 to generate a C [1] signal. The AND gate 183-2 takes a logical product of the signal obtained by inverting A [3] and the output signal of the NAND gate 183-5, and generates a C [0] signal. The OR gate 183-3 generates the XALL0 signal that becomes “0” when all the bits of A [3: 0] are 0 by taking the logical sum of the signals of A [3: 0].

このようにして生成されたC[1:0]信号及びXALL0信号により、入力データA[i]のMSBから見て何ビット目に“1”があるかを知ることができる。すなわち、A[3:0]=1xxxH(x:任意の値)の場合には、C[1:0]=00Bとなり、XALL0=1となる。A[3:0]=01xxHの場合には、C[1:0]=01Bとなり、XALL0=1となる。A[3:0]=001xHの場合には、C[1:0]=10Bとなり、XALL0=1となる。A[3:0]=0001Hの場合には、C[1:0]=11Bとなり、XALL0=1となる。A[3:0]=0000Hの場合には、C[1:0]=11Bとなり、XALL0=0となり、この場合のC[1:0]は後段で使用されないことになる。   By the C [1: 0] signal and the XALL0 signal generated in this way, it is possible to know what bit “1” is seen from the MSB of the input data A [i]. That is, when A [3: 0] = 1xxxH (x: arbitrary value), C [1: 0] = 00B and XALL0 = 1. In the case of A [3: 0] = 01xxH, C [1: 0] = 01B and XALL0 = 1. In the case of A [3: 0] = 001xH, C [1: 0] = 10B and XALL0 = 1. In the case of A [3: 0] = 0001H, C [1: 0] = 11B and XALL0 = 1. When A [3: 0] = 0000H, C [1: 0] = 11B and XALL0 = 0, and C [1: 0] in this case is not used in the subsequent stage.

ブロック184では、各4ビットブロック180〜183から出力されるXALL0信号を用いて、各4ビットブロック180〜183から出力されるC[1:0]をセレクトし、ORゲート184−3から16ビットブロック173のC[1:0]として出力する。そして、各4ビットブロック180〜183から出力されるXALL0信号に対して、4ビットブロック183のANDゲート183−1〜183−2と同様の論理により、ANDゲート184−1〜184−2で16ビットブロック173のC[3:2]を生成する。このようにして生成されたC[3:0]は、入力信号A[15:0]のMSB側から見て、最初に“1”となるビットの位置を16進数で示す。ブロック184のORゲート184−4から出力されるXALL0信号は、その16ビットブロック173に含まれる4つの4ビットブロック180〜183への入力信号A[15:0](図ではA[63:48])の全てのビットが0の場合に、XALL0=0となる。   In block 184, C [1: 0] output from each 4-bit block 180-183 is selected using the XALL0 signal output from each 4-bit block 180-183, and 16 bits are output from OR gate 184-3. Output as C [1: 0] of block 173. Then, for the XALL0 signal output from each of the 4-bit blocks 180 to 183, the AND gates 184-1 to 184-2 have 16 logic by the same logic as the AND gates 183-1 to 183-2 of the 4-bit block 183. C [3: 2] of the bit block 173 is generated. The C [3: 0] generated in this way indicates the position of the bit that first becomes “1” in hexadecimal as viewed from the MSB side of the input signal A [15: 0]. The XALL0 signal output from the OR gate 184-4 of the block 184 is the input signal A [15: 0] (A [63:48 in the figure) to the four 4-bit blocks 180 to 183 included in the 16-bit block 173. ]) Is 0, XALL0 = 0.

ブロック174の回路構成もブロック184の構成と同様の考え方で構成できる。すなわち、ANDゲート174−1〜174−2及びORゲート174−3で、64ビットブロックのC[5:0]に相当する信号を生成することができる。ここで、64ビットの入力A[63:0]の全ビットがゼロの場合もあり得るので、LZCを[6:0]と1ビット拡張し、A[63:0]の全ビットがゼロの場合には、LZC[6:0]=C[6:0]=1000000Bとすることが望ましい。   The circuit configuration of the block 174 can also be configured in the same way as the configuration of the block 184. That is, the AND gates 174-1 to 174-2 and the OR gate 174-3 can generate a signal corresponding to C [5: 0] of a 64-bit block. Here, since all the bits of the 64-bit input A [63: 0] may be zero, LZC is expanded by 1 bit to [6: 0], and all the bits of A [63: 0] are zero. In this case, it is desirable that LZC [6: 0] = C [6: 0] = 1000000B.

従って、ORゲート174−5から出力されるXALL0信号を用いてANDゲート174−1〜174−2の出力及びORゲート174−3の出力をANDゲート174−4でマスクし、C[5:0]を生成する。そして、ORゲート174−5で生成されたXALL0をインバータ174−7で反転させてC[6]を生成する。このようにして、64ビットブロックのLZC[6:0]信号を生成することができる。   Therefore, the output of the AND gates 174-1 to 174-2 and the output of the OR gate 174-3 are masked by the AND gate 174-4 using the XALL0 signal output from the OR gate 174-5, and C [5: 0 ] Is generated. Then, XALL0 generated by the OR gate 174-5 is inverted by the inverter 174-7 to generate C [6]. In this manner, a 64-bit block LZC [6: 0] signal can be generated.

ところで、IEEE754規格では、各種の異常な演算を検出して、OSに割込みをあげるトラップ条件が規定されている。そのため、浮動小数点加算器を有するプロセッサ等においては、トラップが発生した場合に割込みを発生させるかどうかを制御する回路(以下、「トラップ割込み制御回路」という)を有するのが一般的である。   Incidentally, the IEEE 754 standard defines trap conditions for detecting various abnormal operations and raising an interrupt to the OS. For this reason, a processor or the like having a floating point adder generally has a circuit for controlling whether or not to generate an interrupt when a trap occurs (hereinafter referred to as “trap interrupt control circuit”).

シフト制御部162は、IEEE754におけるアンダーフロー割込みがトラップ割込み制御回路で許可されている場合には、リーディングゼロカウントの計数結果を採用する。トラップ割込み制御回路においてアンダーフロー割込みが許可されていない場合には、シフト制御部162は、リーディングゼロカウント部161の計数結果と、図3における指数差により選択した指数(EXP BEFORE NORMLIZE)とで、指数値の値を比較して値の小さな方を選択する。正規化シフト部163は、シフト制御部162で選択された値の分だけ正規化シフタ163で絶対値加算器出力の仮数部の演算結果データを左シフト(MSB側へシフト)して正規化を行なう。   When the underflow interrupt in IEEE754 is permitted by the trap interrupt control circuit, the shift control unit 162 employs the counting result of the reading zero count. When the underflow interrupt is not permitted in the trap interrupt control circuit, the shift control unit 162 uses the count result of the reading zero count unit 161 and the index (EXP BEFORE NORMIZE) selected by the index difference in FIG. The index value is compared and the smaller one is selected. The normalization shift unit 163 performs normalization by shifting the operation result data of the mantissa part of the absolute value adder output by the normalization shifter 163 to the left by the value selected by the shift control unit 162 (shifting to the MSB side). Do.

図3における指数差により選択した指数(EXP BEFORE NORMLIZE)は、IEEE754におけるdenormalized numberに対応する正規化位置に対応するものであり、本実施例では、アンダーフロー割込みを起さない場合、正規化シフト部163は、denormalized numberとして演算結果を出力する。   The index (EXP BEFORE NORMIZE) selected by the index difference in FIG. 3 corresponds to the normalized position corresponding to the normalized number in IEEE 754. In this embodiment, when an underflow interrupt is not generated, the normalized shift is performed. The unit 163 outputs the calculation result as a denormalized number.

丸め判定部165は、正規化シフト部163で絶対値加算器からの出力データを正規化した後のデータのうち、仮数部の演算結果として出力される部分のLSB(Least Significant Bit)側とその下位のビットパターンを判定する。ここで、IEEE754では、演算結果の丸めに関していくつかの丸めモードを規定しており、IEEE754の丸めモードに従った丸めを行なう場合には、丸め判定部165は、IEEE754規格に沿ったように丸めを行なうかどうかを決定する。   The rounding determination unit 165 includes the LSB (Least Significant Bit) side of the portion output as the operation result of the mantissa part of the data after normalization of the output data from the absolute value adder by the normalization shift unit 163 and its data Determine the lower bit pattern. Here, IEEE 754 defines several rounding modes for rounding operation results, and when performing rounding in accordance with the rounding mode of IEEE 754, the rounding determination unit 165 rounds in accordance with the IEEE 754 standard. Decide whether or not to perform.

丸め加算器164(round adder)は、インクリメンタで構成することができる。丸め加算器164で+1操作を行うと、データパターンによっては丸め加算器164の出力に桁上りが発生することがある。従って、丸め加算器164はキャリー出力(carry out)信号(図3におけるround carry out)を生成し、MSBから桁あがりが発生した場合にはキャリー出力信号によって符号・指数処理部10に通知する。符号・指数処理部10では、丸め加算器164から出力されるキャリー出力信号を用いて指数値の補正が行われる。   The round adder 164 (round adder) can be configured by an incrementer. When a +1 operation is performed by the rounding adder 164, a carry may occur in the output of the rounding adder 164 depending on the data pattern. Therefore, the rounding adder 164 generates a carry output signal (round carry out in FIG. 3), and notifies the sign / exponent processing unit 10 by the carry output signal when a carry occurs from the MSB. In the sign / exponent processing unit 10, the exponent value is corrected using the carry output signal output from the rounding adder 164.

丸め加算器164は、丸め判定部165で判定した結果に基づいて、正規化シフト部163から出力されたデータのうち、丸めを行なう部分に対して+1もしくは+0操作を行い、浮動小数点加算器の加算結果における仮数部の結果(result)を出力する。
Based on the result determined by the rounding determination unit 165, the rounding adder 164 performs a +1 or +0 operation on the portion to be rounded in the data output from the normalization shift unit 163, so that the floating point adder The result (result) of the mantissa part in the addition result is output.

実施例2に係る浮動小数点加算器を説明する。実施例2は、実施例1の比較器にオペランドA、Bの仮数部を直接つなぐことで、NEG信号生成の速度向上を図ったものである。   A floating-point adder according to the second embodiment will be described. In the second embodiment, the mantissa part of operands A and B is directly connected to the comparator of the first embodiment, thereby improving the speed of NEG signal generation.

図14は、本発明の実施例2に係る浮動小数点加算器を示す図である。図14において、符号・指数処理部10、第1のセレクタ11、第2のセレクタ12、補数化回路13、アラインメント部14、比較器15、絶対値加算器16、及び正規化処理部17については、説明を省略する。   FIG. 14 is a diagram illustrating a floating-point adder according to the second embodiment of the present invention. In FIG. 14, the sign / exponential processing unit 10, the first selector 11, the second selector 12, the complementing circuit 13, the alignment unit 14, the comparator 15, the absolute value adder 16, and the normalization processing unit 17 are described. The description is omitted.

図14において、比較器15は、オペランドA、Bの仮数部を比較し、Aの仮数部がBの仮数部よりも大きい場合にF_GT出力を1にする。ここで、Aの仮数部とBの仮数部が等しい場合に比較器15の出力を1にしても良い。   In FIG. 14, the comparator 15 compares the mantissa parts of operands A and B, and sets the F_GT output to 1 when the mantissa part of A is larger than the mantissa part of B. Here, when the mantissa part of A and the mantissa part of B are equal, the output of the comparator 15 may be set to 1.

図14における比較器15の出力はEX_OP信号によるOPERAND交換前の状態の情報のため、EX_OP=1の時に、OPERAND交換を行なうEX_OP信号と比較器15の出力信号とをEORゲート18−2で排他的論理和をとることにより補正を行なう。そして、実施例1の場合と同様、オペランドの指数部が異なるときは、指数部のみでOPERAND交換後の大小が判定できるので、ORゲート18−1でEORゲート18−2の出力信号とEA_NE_EB信号との論理和をとってNEG信号とする。   Since the output of the comparator 15 in FIG. 14 is information on the state before the OPERAND exchange by the EX_OP signal, the EX_OP signal for performing the OPERAND exchange and the output signal of the comparator 15 are exclusive by the EOR gate 18-2 when EX_OP = 1. Correction is performed by taking a logical OR. Similarly to the case of the first embodiment, when the exponent part of the operand is different, the magnitude after the OPERAND exchange can be determined only by the exponent part, so that the output signal of the EOR gate 18-2 and the EA_NE_EB signal are determined by the OR gate 18-1. Is taken as a NEG signal.

尚、EA=EBでOPERAND交換を行わない場合には、COMPAREの出力をEX_OP信号で反転するためのEOR論理は省略できるので、図14中のブロック18をブロック19に置き換えることができる。   In the case where ERA = EB is not performed and OPERAND exchange is not performed, the EOR logic for inverting the output of COMPARE with the EX_OP signal can be omitted, so that the block 18 in FIG.

図14における比較器15の一例としては、前述の図4の回路を用いることができる。図14において、比較器15のA入力にオペランドAの仮数部FAを、B入力にオペランドBの仮数部FBを接続すると、図15や図16のNEG信号が得られる。   As an example of the comparator 15 in FIG. 14, the circuit of FIG. 4 described above can be used. In FIG. 14, when the mantissa part FA of the operand A is connected to the A input of the comparator 15 and the mantissa part FB of the operand B is connected to the B input, the NEG signal shown in FIGS. 15 and 16 is obtained.

図15は、実施例2における符号・指数処理部10での指数の比較を行なった結果、指数部の値が等しい時(EA=EB時)に、データを交換しないようにした場合のSUB、NEG、RECOMP、CINの値をまとめた表である。図15中、SA及びSBは、オペランドA及びBの符号を示し、EA及びEBは、各オペランドの指数部を示し、FA及びFBは、各オペランドの仮数部を示す。   FIG. 15 shows the SUB in the case where the data is not exchanged when the values of the exponent parts are equal (when EA = EB) as a result of comparison of the exponents in the sign / exponent processor 10 in the second embodiment. It is the table | surface which put together the value of NEG, RECOMP, and CIN. In FIG. 15, SA and SB indicate the signs of the operands A and B, EA and EB indicate the exponent part of each operand, and FA and FB indicate the mantissa part of each operand.

図16は、図15と同様であるが、指数部による比較によるデータ交換時に指数部の値が等しい時(EA=EB時)に、データを交換するようにした場合のSUB、NEG、RECOMP、CINの値をまとめた表である。
FIG. 16 is the same as FIG. 15 except that the data is exchanged when the values of the exponent part are equal (when EA = EB) during the data exchange by the comparison by the exponent part, SUB, NEG, RECOMP, It is the table | surface which put together the value of CIN.

実施例3に係る浮動小数点加算器を説明する。実施例3は、実施例1又は実施例2における絶対値加算器16の構成を高速化のためにセグメント分割するように変更したものである。   A floating-point adder according to the third embodiment will be described. In the third embodiment, the configuration of the absolute value adder 16 in the first or second embodiment is changed so as to be segmented for speeding up.

実施例3における浮動小数点加算器の概略図は図1、図2、又は図14と同様である。実施例3における符号・指数処理部10、第1のセレクタ11、第2のセレクタ12、補数化回路13、アラインメント部14、比較器15、及び正規化処理部17については、図1、図2、又は図14における各部と同じであるので、説明を省略する。   The schematic diagram of the floating point adder in the third embodiment is the same as that of FIG. 1, FIG. 2, or FIG. The sign / exponential processing unit 10, the first selector 11, the second selector 12, the complementing circuit 13, the alignment unit 14, the comparator 15, and the normalization processing unit 17 in the third embodiment are shown in FIGS. Or it is the same as each part in FIG. 14, and description is abbreviate | omitted.

図17に本発明の実施例3に係るセグメント分割した高速タイプの絶対値加算器の構成を示す。セグメント分割されたADDERブロック191〜194と、ADDERブロックへのキャリー伝播を行なうブロックキャリー伝播回路190で構成される。図17中、“BC”は“block carry”の意味であり、セグメント分割されたブロックへ伝播するキャリーである。   FIG. 17 shows the configuration of a segmented high-speed absolute value adder according to the third embodiment of the present invention. The segmented ADDER blocks 191 to 194 and a block carry propagation circuit 190 that performs carry propagation to the ADDER block. In FIG. 17, “BC” means “block carry” and is a carry that propagates to a segmented block.

ANDゲート195でNEGの反転信号とSUBの論理積をとった信号は、ブロックキャリー伝播回路190のキャリー入力(Cin)として使用する。ANDゲート196で生成されるRECOMP信号は、セグメント分割したADDER ブロック191〜194内部の半加算(Half SUM)信号(=A[i] EOR B[i])を反転させる信号として使用する。これらのSUB、NEG、RECOMP、Cinの各信号の真理値表を図18に示す。   A signal obtained by ANDing the inverted signal of NEG and the SUB in the AND gate 195 is used as a carry input (Cin) of the block carry propagation circuit 190. The RECOMP signal generated by the AND gate 196 is used as a signal for inverting the half addition (Half SUM) signal (= A [i] EOR B [i]) in the segmented ADDER blocks 191 to 194. FIG. 18 shows a truth table of these SUB, NEG, RECOMP, and Cin signals.

図19は、実施例3のセグメント分割されたADDERブロック191〜194の回路例を示す図である。実施例3のように絶対値加算器をセグメント分割した高速タイプにする場合には、図19に示すような加算器のセグメントを用いる。   FIG. 19 is a diagram illustrating a circuit example of the segmented ADDER blocks 191 to 194 according to the third embodiment. When the absolute value adder is segmented as a high-speed type as in the third embodiment, an adder segment as shown in FIG. 19 is used.

図19中、A及びBは、加算器セグメントに入力された所定の複数のビット数からなる加算対象となるデータである。EORゲートはAとBの排他的論理和をとることにより、AとBの半加算結果を出力する。ブロック201は、キャリー入力が0の場合のキャリー出力を生成し、ブロック202は、キャリー入力が1の場合のキャリー出力を生成する。EORゲート203は、EORゲート200から出力される半加算結果と、前記RECOMP信号との排他的論理和をとり、減算時における再補数化の処理を行なう。   In FIG. 19, A and B are data to be added consisting of a predetermined plurality of bits input to the adder segment. The EOR gate outputs the half addition result of A and B by taking the exclusive OR of A and B. Block 201 generates a carry output when the carry input is 0, and block 202 generates a carry output when the carry input is 1. The EOR gate 203 performs exclusive OR of the half addition result output from the EOR gate 200 and the RECOMP signal, and performs recomplementation processing at the time of subtraction.

EORゲート204は、EORゲート203の出力とブロック201のキャリー出力との排他的論理和をとることにより、キャリー入力が0の場合の加算結果を生成する。EORゲート205は、EORゲート203の出力とブロック202のキャリー出力との排他的論理和をとることにより、キャリー入力が1の場合の加算結果を生成する。セレクタ206は、ブロックキャリー入力BCinの値に応じて、EORゲート204かEORゲート205のいずれかの出力を選択し、最終的な加算結果SUMを出力する。   The EOR gate 204 takes the exclusive OR of the output of the EOR gate 203 and the carry output of the block 201 to generate an addition result when the carry input is 0. The EOR gate 205 takes the exclusive OR of the output of the EOR gate 203 and the carry output of the block 202 to generate an addition result when the carry input is 1. The selector 206 selects the output of either the EOR gate 204 or the EOR gate 205 according to the value of the block carry input BCin, and outputs the final addition result SUM.

図19の加算器セグメントでは、RECOMP信号により反転させるEORゲート203が内側に入るが、図25、図26に示す従来例のような物量の増加はない。   In the adder segment of FIG. 19, the EOR gate 203 to be inverted by the RECOMP signal enters inside, but there is no increase in the quantity as in the conventional examples shown in FIGS.

図20は、本発明の実施例3に係る図17におけるブロックキャリー伝播回路190の一例を示す図である。図20の実施例は、64 ビット幅の入力をもち、digit(4ビット)単位のブロックに対するキャリーを生成する。   FIG. 20 is a diagram illustrating an example of the block carry propagation circuit 190 in FIG. 17 according to the third embodiment of the invention. The embodiment of FIG. 20 has a 64-bit input and generates a carry for a block in units of digits (4 bits).

このブロックキャリー伝播回路190は、4つの16ビットブロック210〜213と、各16ビットブロック210〜213のキャリー出力を生成するための中間信号GG、GP信号を扱うブロック214と、ブロックキャリー伝播回路190から出力するブロックキャリー信号BCin[15:0]を生成するブロック215−1〜8を有する。   The block carry propagation circuit 190 includes four 16-bit blocks 210 to 213, a block 214 that handles intermediate signals GG and GP signals for generating carry outputs of the 16-bit blocks 210 to 213, and a block carry propagation circuit 190. Block 215-1 to 8 generate block carry signal BCin [15: 0] output from.

図21は、図20中の16ビットブロック210〜213の一実施例を示す図である。この16ビットブロックは、4つの4ビットブロック220〜223と、各4ビットブロック220〜223のキャリー出力を生成するための中間信号DG、DP信号を扱うブロック224を有する。各4ビットブロック220〜223の内容は、図21中の4ビットブロック223に示す構成と同様の内容となっている。   FIG. 21 is a diagram showing an embodiment of the 16-bit blocks 210 to 213 in FIG. This 16-bit block has four 4-bit blocks 220 to 223 and a block 224 that handles intermediate signals DG and DP signals for generating carry outputs of the respective 4-bit blocks 220 to 223. The contents of the 4-bit blocks 220 to 223 are the same as those shown in the 4-bit block 223 in FIG.

図21中、ANDゲート223−1〜4は、各4ビットブロック220〜223に入力されるA[3:0]とB[3:0]の生成項を生成し、ORゲート223−5〜8は、A[3:0]とB[3:0]の伝播項を生成する。また、ORゲート223−9及びANDゲート223−10は、前述の実施例1の図7に示される4ビットブロック150〜153におけるORゲート153−8やANDゲート153−7と同様の論理で4ビットブロックのキャリー出力を生成するための中間信号DG信号及びDP信号を生成する。   In FIG. 21, AND gates 223-1 to 223-4 generate generation terms of A [3: 0] and B [3: 0] that are input to the respective 4-bit blocks 220 to 223, and OR gates 223-5 to 223-5. 8 generates propagation terms of A [3: 0] and B [3: 0]. The OR gate 223-9 and the AND gate 223-10 have the same logic as the OR gate 153-8 and the AND gate 153-7 in the 4-bit blocks 150 to 153 shown in FIG. An intermediate signal DG signal and a DP signal for generating a carry output of the bit block are generated.

図21中、ブロック224は、前記実施例1の各4ビットブロック150〜153と同様の回路構成となっている。ブロック154のG[3:0]には、各4ビットブロック220〜223から出力されるDG信号が接続され、P[3:0]には、各4ビットブロック220〜223から出力されるDP信号が接続される。   In FIG. 21, the block 224 has the same circuit configuration as each of the 4-bit blocks 150 to 153 of the first embodiment. A DG signal output from each 4-bit block 220 to 223 is connected to G [3: 0] of the block 154, and a DP output from each 4-bit block 220 to 223 is connected to P [3: 0]. Signal is connected.

そして、ブロック224に含まれるORゲート224−1及びANDゲート224−2は、前記実施例1の4ビットブロック154におけるORゲート154−8及びANDゲート154−7と同様の論理により16ビットブロックのキャリー出力を生成するための中間信号GG信号及びGP信号を生成する。また、前記4ビットブロック154と同様の論理により、各4ビットブロックのキャリー出力を生成するための中間信号DC0[3:1]信号及びDCP[3:1]信号を生成する。   The OR gate 224-1 and the AND gate 224-2 included in the block 224 are 16-bit blocks according to the same logic as the OR gate 154-8 and the AND gate 154-7 in the 4-bit block 154 of the first embodiment. An intermediate signal GG signal and a GP signal for generating a carry output are generated. Further, the intermediate signal DC0 [3: 1] signal and DCP [3: 1] signal for generating the carry output of each 4-bit block are generated by the same logic as the 4-bit block 154.

図20では、前記のように構成された各16ビットブロック210〜213、ブロック214、及びブロック215−1〜8によりブロックキャリー伝播回路190から出力されるブロックキャリー出力BCin[15:0]を生成する。以下、具体的に説明する。   In FIG. 20, the block carry output BCin [15: 0] output from the block carry propagation circuit 190 is generated by each of the 16-bit blocks 210 to 213, the block 214, and the blocks 215-1 to 8 configured as described above. To do. This will be specifically described below.

図20中、ブロック214は、前記図21におけるブロック224と同様の回路構成となっている。ブロック214のG[3:0]及びP[3:0]には、各16ビットブロック210〜213のキャリー出力を生成するための中間信号GG信号及びGP信号が接続される。そして、ブロック214に含まれるORゲート214−1及びANDゲート214−2は、前記16ビットブロックにおけるブロック224のORゲート224−1及びANDゲート224−2と同様の論理によりDG信号及びDP信号を生成する。また、ブロック214でも、前記ブロック224と同様の論理によりC0[3:1]信号及びCP[3:1]信号を生成する。   In FIG. 20, the block 214 has the same circuit configuration as the block 224 in FIG. G [3: 0] and P [3: 0] of the block 214 are connected to an intermediate signal GG signal and a GP signal for generating carry outputs of the 16-bit blocks 210 to 213, respectively. The OR gate 214-1 and the AND gate 214-2 included in the block 214 output the DG signal and the DP signal by the same logic as the OR gate 224-1 and the AND gate 224-2 of the block 224 in the 16-bit block. Generate. Also in the block 214, the C0 [3: 1] signal and the CP [3: 1] signal are generated by the same logic as the block 224.

ブロック215−1〜8は、前記実施例1におけるブロック145−1〜8と同様の論理により、ブロックキャリー伝播回路190から出力されるブロックキャリー出力BCin[15:0]を生成して出力する。   The blocks 215-1 to 8 generate and output the block carry output BCin [15: 0] output from the block carry propagation circuit 190 with the same logic as the blocks 145-1 to 14-8 in the first embodiment.

なお、図20のブロック214のORゲート214−1により生成されるCOUT_CIN0信号は、CINが0である場合の加算器のキャリー出力に対応し、COUT_CIN1は、CINが1である場合の加算器のキャリー出力に対応する。本実施例においては、特にこれらCOUT_CIN0及びCOUT_CIN1の各信号を使用する必要はないが、たとえば背景技術1等における2つの絶対値加算結果の選択や、再補数化の判定等に用いることが可能である。
Note that the COUT_CIN0 signal generated by the OR gate 214-1 of the block 214 in FIG. 20 corresponds to the carry output of the adder when CIN is 0, and COUT_CIN1 is that of the adder when CIN is 1. Corresponds to carry output. In the present embodiment, it is not necessary to use these signals COUT_CIN0 and COUT_CIN1 in particular. However, for example, it can be used for selection of the result of adding two absolute values in the background art 1 or the like, determination of recomplementation, or the like. is there.

本発明は、コンピュータプロセッサにおける浮動小数点加算器ユニット等で利用することができる。
The present invention can be used in a floating point adder unit or the like in a computer processor.

10 符号・指数処理部
11 第1のセレクタ
12 第2のセレクタ
13 補数化回路
14 アラインメント部
15 比較器
16 絶対値加算器
17 正規化処理部

DESCRIPTION OF SYMBOLS 10 Code | exponent process part 11 1st selector 12 2nd selector 13 Complement circuit 14 Alignment part 15 Comparator 16 Absolute value adder 17 Normalization process part

Claims (7)

浮動小数点演算の対象となる2つのオペランドの符号から、加算と減算のいずれの演算を行なうかを示す加減算信号を生成する符号比較器と、
前記2つのオペランドの指数の大小を比較し、いずれのオペランドを選択するかを示すオペランド選択信号を生成する指数比較器と、
前記オペランド選択信号を用いて前記2つのオペランドの仮数部の一方を選択して第1仮数として出力する第1のセレクタと、
前記オペランド選択信号を用いて前記2つのオペランドの仮数部の他方を選択して第2仮数として出力する第2のセレクタと、
オペランド加算時には前記第1仮数を、オペランド減算時には前記第1仮数に対する1の補数を第3仮数として出力する補数化部と、
前記2つのオペランドの指数の差だけ前記第2仮数のシフトを行い、第4仮数として出力するアラインメント部と、
前記第1仮数及び第2仮数の大小を比較する仮数比較器と、
前記第3仮数及び第4仮数の絶対値加算を行なう絶対値加算器であって、前記符号比較器が出力する加減算信号が減算であることを示す場合において、前記指数比較器での比較結果及び前記仮数比較器での比較結果により絶対値加算結果が正の数になると認められる場合には該絶対値加算器で前記第3仮数及び第4仮数に加えてさらに1を加算することとなる値を該絶対値加算器のキャリー入力とし、前記指数比較器での比較結果及び前記仮数比較器での比較結果により絶対値加算結果が負の数になると認められる場合には該絶対値加算器で前記第3仮数及び第4仮数を加算することとなる値を該絶対値加算器のキャリー入力にすると共に、絶対値加算器を構成する半加算器出力信号の1の補数をとることにより、前記第3仮数及び第4仮数の絶対値加算を行なって第5仮数として加算結果を出力する絶対値加算器と、
を有することを特徴とする浮動小数点加算器。
A sign comparator that generates an addition / subtraction signal indicating whether to perform addition or subtraction from the sign of two operands to be subjected to floating-point arithmetic;
An exponent comparator that compares the magnitudes of the exponents of the two operands and generates an operand selection signal indicating which operand is selected;
A first selector that selects one of the mantissa parts of the two operands using the operand selection signal and outputs the first mantissa as a first mantissa;
A second selector that selects the other of the mantissa parts of the two operands using the operand selection signal and outputs the second mantissa as a second mantissa;
A complementing unit that outputs the first mantissa at the time of operand addition as a third mantissa at the time of operand subtraction, and the 1's complement of the first mantissa as a third mantissa;
An alignment unit that shifts the second mantissa by the difference between the exponents of the two operands and outputs it as a fourth mantissa;
A mantissa comparator for comparing the magnitude of the first mantissa and the second mantissa;
An absolute value adder for adding absolute values of the third mantissa and the fourth mantissa, wherein the addition / subtraction signal output by the sign comparator indicates subtraction; When the absolute value addition result is recognized as a positive number based on the comparison result in the mantissa comparator, the absolute value adder adds 1 in addition to the third mantissa and the fourth mantissa. Is the carry input of the absolute value adder, and if the absolute value addition result is found to be a negative number based on the comparison result of the exponent comparator and the comparison result of the mantissa comparator, the absolute value adder The value to be added to the third mantissa and the fourth mantissa is used as a carry input of the absolute value adder, and by taking the one's complement of the half adder output signal constituting the absolute value adder, 3rd mantissa and 4th mantissa An absolute value adder for outputting the addition result as a fifth mantissa perform the absolute value sum,
A floating point adder.
前記絶対値加算器が、複数の加算器セグメント及びブロックキャリー伝播回路から構成されることを特徴とする、請求項1記載の浮動小数点加算器。
2. The floating point adder according to claim 1, wherein the absolute value adder includes a plurality of adder segments and a block carry propagation circuit.
前記絶対値加算器を構成する加算器セグメントの内部において、前記半加算器出力信号の1の補数をとることを特徴とする、請求項2記載の浮動小数点加算器。
3. The floating point adder according to claim 2, wherein a one's complement of the half adder output signal is taken inside an adder segment constituting the absolute value adder.
浮動小数点演算の対象となる2つのオペランドの符号から、加算と減算のいずれの演算を行なうかを示す加減算信号を生成する符号比較器と、
前記2つのオペランドの指数の大小を比較し、いずれのオペランドを選択するかを示すオペランド選択信号を生成する指数比較器と、
前記オペランド選択信号を用いて前記2つのオペランドの仮数部の一方を選択して第1仮数として出力する第1のセレクタと、
前記オペランド選択信号を用いて前記2つのオペランドの仮数部の他方を選択して第2仮数として出力する第2のセレクタと、
オペランド加算時には前記第1仮数を、オペランド減算時には前記第1仮数に対する1の補数を第3仮数として出力する補数化部と、
前記2つのオペランドの指数の差だけ前記第2仮数のシフトを行い、第4仮数として出力するアラインメント部と、
前記2つのオペランドの仮数データを比較してその大小を比較する仮数比較器と、
前記第3仮数及び第4仮数の絶対値加算を行なう絶対値加算器であって、前記符号比較器が出力する加減算信号が減算であることを示す場合において、前記指数比較器での比較結果及び前記仮数比較器での比較結果により絶対値加算結果が正の数になると認められる場合には該絶対値加算器で前記第3仮数及び第4仮数に加えてさらに1を加算することとなる値を該絶対値加算器のキャリー入力とし、前記指数比較器での比較結果及び前記仮数比較器での比較結果により絶対値加算結果が負の数になると認められる場合には該絶対値加算器で前記第3仮数及び第4仮数を加算することとなる値を該絶対値加算器のキャリー入力にすると共に、絶対値加算器を構成する半加算器出力信号の1の補数をとることにより、前記第3仮数及び第4仮数の絶対値加算を行なって第5仮数として加算結果を出力する絶対値加算器と、
を有することを特徴とする浮動小数点加算器。
A sign comparator that generates an addition / subtraction signal indicating whether to perform addition or subtraction from the sign of two operands to be subjected to floating-point arithmetic;
An exponent comparator that compares the magnitudes of the exponents of the two operands and generates an operand selection signal indicating which operand is selected;
A first selector that selects one of the mantissa parts of the two operands using the operand selection signal and outputs the first mantissa as a first mantissa;
A second selector that selects the other of the mantissa parts of the two operands using the operand selection signal and outputs the second mantissa as a second mantissa;
A complementing unit that outputs the first mantissa at the time of operand addition as a third mantissa at the time of operand subtraction, and the 1's complement of the first mantissa as a third mantissa;
An alignment unit that shifts the second mantissa by the difference between the exponents of the two operands and outputs it as a fourth mantissa;
A mantissa comparator that compares the mantissa data of the two operands and compares the magnitudes thereof;
An absolute value adder for adding absolute values of the third mantissa and the fourth mantissa, wherein the addition / subtraction signal output by the sign comparator indicates subtraction; When the absolute value addition result is recognized as a positive number based on the comparison result in the mantissa comparator, the absolute value adder adds 1 in addition to the third mantissa and the fourth mantissa. Is the carry input of the absolute value adder, and if the absolute value addition result is found to be a negative number based on the comparison result of the exponent comparator and the comparison result of the mantissa comparator, the absolute value adder The value to be added to the third mantissa and the fourth mantissa is used as a carry input of the absolute value adder, and by taking the one's complement of the half adder output signal constituting the absolute value adder, 3rd mantissa and 4th mantissa An absolute value adder for outputting the addition result as a fifth mantissa perform the absolute value sum,
A floating point adder.
請求項4記載の浮動小数点加算器であって、
前記第3仮数及び第4仮数の絶対値加算を行なう前記絶対値加算器は、前記符号比較器が出力する加減算信号が減算であることを示す場合において、前記仮数比較器での比較結果に対して前記オペランド選択信号との排他的論理和をとった結果及び前記指数比較器での比較結果により、絶対値加算結果が正の数になると認められる場合に該絶対値加算器で前記第3仮数及び第4仮数に加えてさらに1を加算することとなる値を該絶対値加算器のキャリー入力とし、前記仮数比較器での比較結果に対して前記オペランド選択信号との排他的論理和をとった結果及び前記指数比較器での比較結果により、絶対値加算結果が負の数になると認められる場合には該絶対値加算器で前記第3仮数及び第4仮数を加算することとなる値を該絶対値加算器のキャリー入力にすると共に絶対値加算器を構成する半加算器出力信号の1の補数をとることにより、前記第3仮数及び第4仮数の絶対値加算を行なって第5仮数として加算結果を出力すること、
を特徴とする浮動小数点加算器。
A floating point adder according to claim 4,
The absolute value adder for performing the absolute value addition of the third mantissa and the fourth mantissa indicates that the addition / subtraction signal output from the sign comparator indicates subtraction, with respect to the comparison result in the mantissa comparator. When the absolute value addition result is recognized as a positive number based on the result of exclusive OR with the operand selection signal and the comparison result in the exponent comparator, the absolute value adder uses the third mantissa. In addition to the fourth mantissa, a value that is to add one more is used as the carry input of the absolute value adder, and the result of comparison by the mantissa comparator is exclusive ORed with the operand selection signal. When the absolute value addition result is a negative number based on the result of the comparison and the result of the exponent comparator, the absolute value adder adds a value to which the third mantissa and the fourth mantissa are added. Of the absolute value adder By taking the 1's complement of the half adder output signal that constitutes the absolute value adder and carrying out the absolute value addition of the third mantissa and the fourth mantissa and outputting the addition result as the fifth mantissa thing,
Floating point adder characterized by
前記絶対値加算器が、複数の加算器セグメント及びブロックキャリー伝播回路から構成されることを特徴とする、請求項5記載の浮動小数点加算器。
6. The floating point adder according to claim 5, wherein the absolute value adder comprises a plurality of adder segments and a block carry propagation circuit.
前記絶対値加算器を構成する加算器セグメントの内部において、前記半加算器出力信号の1の補数をとることを特徴とする、請求項6記載の浮動小数点加算器。

7. The floating point adder according to claim 6, wherein the adder segment constituting the absolute value adder takes a one's complement of the half adder output signal.

JP2009238856A 2009-10-16 2009-10-16 Floating point adder Expired - Fee Related JP5515601B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009238856A JP5515601B2 (en) 2009-10-16 2009-10-16 Floating point adder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009238856A JP5515601B2 (en) 2009-10-16 2009-10-16 Floating point adder

Publications (2)

Publication Number Publication Date
JP2011086133A true JP2011086133A (en) 2011-04-28
JP5515601B2 JP5515601B2 (en) 2014-06-11

Family

ID=44079029

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009238856A Expired - Fee Related JP5515601B2 (en) 2009-10-16 2009-10-16 Floating point adder

Country Status (1)

Country Link
JP (1) JP5515601B2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0192829A (en) * 1987-10-02 1989-04-12 Hitachi Ltd Floating point computing element
JPH0764767A (en) * 1993-08-31 1995-03-10 Kofu Nippon Denki Kk Adder
JP2000010959A (en) * 1998-05-27 2000-01-14 Advanced Risc Mach Ltd Processor and method for multiplying and accumulating operation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0192829A (en) * 1987-10-02 1989-04-12 Hitachi Ltd Floating point computing element
JPH0764767A (en) * 1993-08-31 1995-03-10 Kofu Nippon Denki Kk Adder
JP2000010959A (en) * 1998-05-27 2000-01-14 Advanced Risc Mach Ltd Processor and method for multiplying and accumulating operation

Also Published As

Publication number Publication date
JP5515601B2 (en) 2014-06-11

Similar Documents

Publication Publication Date Title
US8606840B2 (en) Apparatus and method for floating-point fused multiply add
JP6001276B2 (en) Apparatus and method for performing floating point addition
US8499017B2 (en) Apparatus and method for performing fused multiply add floating point operation
US9317251B2 (en) Efficient correction of normalizer shift amount errors in fused multiply add operations
KR20080055985A (en) Floating-point processor with selectable subprecision
JP4388543B2 (en) 3-input floating-point adder / subtracter
JP6415236B2 (en) Apparatus and system including floating point addition unit, and floating point addition method
US8239441B2 (en) Leading zero estimation modification for unfused rounding catastrophic cancellation
US6175851B1 (en) Fast adder/subtractor for signed floating point numbers
JPWO2007096982A1 (en) Arithmetic processing apparatus and arithmetic processing method
CN108694037B (en) Apparatus and method for estimating shift amount when floating point subtraction is performed
JP2003196079A (en) Product sum arithmetic operation unit and product sum arithmetic operation method
JP4858794B2 (en) Floating point divider and information processing apparatus using the same
US7437400B2 (en) Data processing apparatus and method for performing floating point addition
US8620983B2 (en) Leading sign digit predictor for floating point near subtractor
US20070038693A1 (en) Method and Processor for Performing a Floating-Point Instruction Within a Processor
JP4806453B2 (en) Arithmetic processing apparatus, information processing apparatus, and arithmetic method
JPH10289096A (en) Logic circuit and floating point arithmetic unit
TWI723681B (en) Multi-input floating-point adder
KR102459011B1 (en) Leading zero anticipation
JP5515601B2 (en) Floating point adder
US20190121615A1 (en) Apparatus and method for subtracting significand values of floating-point operands
US20140059104A1 (en) Arithmetic circuit for calculating correction value
US7640286B2 (en) Data processing apparatus and method for performing floating point multiplication
US7386580B2 (en) Data processing apparatus and method for computing an absolute difference between first and second data elements

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120720

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130924

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131203

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140130

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140304

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140317

R150 Certificate of patent or registration of utility model

Ref document number: 5515601

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees