KR100929423B1 - Floating-Point Complex Arithmetic Unit - Google Patents

Floating-Point Complex Arithmetic Unit Download PDF

Info

Publication number
KR100929423B1
KR100929423B1 KR1020020062136A KR20020062136A KR100929423B1 KR 100929423 B1 KR100929423 B1 KR 100929423B1 KR 1020020062136 A KR1020020062136 A KR 1020020062136A KR 20020062136 A KR20020062136 A KR 20020062136A KR 100929423 B1 KR100929423 B1 KR 100929423B1
Authority
KR
South Korea
Prior art keywords
floating
bits
value
product
multiplier
Prior art date
Application number
KR1020020062136A
Other languages
Korean (ko)
Other versions
KR20040033198A (en
Inventor
김학윤
Original Assignee
매그나칩 반도체 유한회사
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 매그나칩 반도체 유한회사 filed Critical 매그나칩 반도체 유한회사
Priority to KR1020020062136A priority Critical patent/KR100929423B1/en
Publication of KR20040033198A publication Critical patent/KR20040033198A/en
Application granted granted Critical
Publication of KR100929423B1 publication Critical patent/KR100929423B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5318Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with column wise addition of partial products, e.g. using Wallace tree, Dadda counters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even

Abstract

본 발명은 부동소수점의 복합 연산 장치에 관한 것으로서, 단일명령어로 부동소수점의 A*C+B의 연산을 수행할 때 연산기의 3단 파이프라인 중 가장 연산시간이 긴 곱셈기를 무부호수처리시 2사이클에 연산을 수행할 수 있도록 부스알고리즘을 이용하여 칩의 규모를 감소시키고 연산속도를 향상시키도록 함으로써 그래픽 기능을 내장한 휴대용 기기에 소면적, 고기능의 연산기로 내장될 수 있는 이점이 있다. The present invention relates to a floating-point compound arithmetic unit. When a floating-point A * C + B arithmetic operation is performed by a single instruction, a multiplier having the longest arithmetic operation time among the three arithmetic operation pipelines is executed in two cycles The Booth algorithm is used to reduce the size of the chip and to improve the operation speed, so that it can be incorporated into a small-sized, high-performance computing device in a portable device having a built-in graphic function.

부동소수점, 부스알고리즘, 부분곱, 칩면적, 무부호Floating Point, Booth Algorithm, Partial Product, Chip Area, Uncoded

Description

부동소수점의 복합 연산 장치{Complex operation unit for floating point with multiply-add unit}Complex operation unit for floating point with multiply-add unit

도 1은 전형적인 부동소수점의 A*C+B 연산을 위한 복합 연산 장치를 간략하게 나타낸 도면이다. BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 is a simplified representation of a complex arithmetic unit for a typical floating point A * C + B operation.

도 2는 본 발명에 의한 부동소수점의 복합 연산 장치의 곱셈기를 나타낸 블록구성도이다. 2 is a block diagram illustrating a multiplier of a floating-point complex operation apparatus according to the present invention.

도 4는 본 발명에 의한 부동소수점의 복합 연산 장치에서 부호비트 확장 및 제거방법을 나타낸 도면이다. 4 is a diagram illustrating a method of expanding and removing a sign bit in a floating-point compound operation apparatus according to the present invention.

도 5는 본 발명에 의한 부동소수점의 복합 연산 장치의 곱셈과정을 나타낸 흐름도이다. 5 is a flowchart illustrating a multiplication process of a floating-point complex operation apparatus according to the present invention.

- 도면의 주요부분에 대한 부호의 설명 -   Description of the Related Art [0002]

10 : 곱셈부 20 : 누산부10: multiplication unit 20:

30 : 정규화부30: Normalization unit

110,12 : 곱셈기 120,14 : 정렬기110, 12: multiplier 120, 14: aligner

112 : 부분곱 생성수단 114 : 가산트리수단112: partial product generation means 114: additive tree means

116 : 캐리보류가산수단116: Carry hold addition means

본 발명은 부동소수점의 곱셈 및 누산장치에 관한 것으로서 보다 상세하게는 단일명령어로 부동소수점의 A*C+B의 연산을 수행할 때 연산기의 3단 파이프라인 중 가장 연산시간이 긴 곱셈기를 무부호수처리시 2사이클에 연산을 수행할 수 있도록 부스알고리즘을 이용하여 칩의 규모를 감소시키고 연산속도를 향상시키도록 한 부동소수점의 복합 연산 장치에 관한 것이다. More particularly, the present invention relates to a floating-point multiplication and accumulation apparatus, and more particularly, to a floating-point multiply and accumulator, To a complex floating-point arithmetic unit for reducing the size of a chip and improving the operation speed by using Booth's algorithm so that an operation can be performed in two cycles during processing.

통상적으로 부동소수점 연산기(floating point unit)는 그래픽 가속기(graphic accelerator), 디지탈 신호 처리기(digital signal processor) 및 고성능을 요구하는 컴퓨터 등에 필수적으로 사용되고 있다.Floating point units are typically used for graphics accelerators, digital signal processors, and computers requiring high performance.

최근들어 반도체 기술분야의 발전으로 칩의 집적도가 증가함에 따라 부동소수점 연산기를 중앙처리장치(central processing unit)와 함께 한 칩에 내장할 수 있게 함으로써 부동소수점 연산기는 주 연산기의 중요한 요소로 등장하고 있다. 부동소수점 연산기가 중앙처리장치에 내장되는 경우 차지하는 면적으로 인하여 덧셈/뺄셈, 곱셈 등의 기본적인 연산기만 내장되므로, 부동소수점 곱셈기는 전체적인 부동 소수점 연산에 큰 영향을 준다.In recent years, with the development of semiconductor technology, as the degree of integration of a chip has increased, a floating-point arithmetic unit can be embedded in a chip together with a central processing unit, so that a floating-point arithmetic unit has become an important element of a main arithmetic unit . Since floating-point arithmetic units are built in the central processing unit, only basic arithmetic units such as addition / subtraction and multiplication are built in. Therefore, the floating-point multiplier greatly affects the overall floating-point operation.

한편, 부동소수점 곱셈 연산에서 가수부의 처리는 첫째, 곱셈(multiplication), 이 곱셈과정에서 생성된 캐리(carry)와 합(sum)의 덧셈(addition), 정규화(normalization), 반올림(rounding)의 순서로 이루어지는 것이 있고, 둘째, 곱셈, 덧셈, 반올림, 정규화의 4과정으로 이루어진다. Meanwhile, in the floating-point multiply operation, the processing of the mantissa part is performed in the order of (1) multiplication, addition of carry and sum generated in the multiplication, normalization, and rounding And second, it consists of four steps of multiplication, addition, rounding, and normalization.

상기한 과정을 수행하기 위한 부동소수점 수의 이진표현에 관한 IEEE-754 표준안에서는 32비트인 단정밀도(single precision)형식과 64비트인 배정밀도(double precision) 형식이 있다. 상기 단정밀도 형식은 1비트의 부호비트, 8비트 지수부, 23비트의 가수부로 되어 있다. 또한 배정밀도 형식은 1비트의 부호 비트, 11비트 지수부, 52비트의 가수부로 되어 있다. 여기서 IEEE표준안에 따르는 정규화된 피연산자(A)는 다음식으로 표현할 수 있다.In the IEEE-754 standard for binary representation of floating-point numbers for performing the above-mentioned process, there are a 32-bit single precision format and a 64-bit double precision format. The single-precision format has a sign bit of 1 bit, an exponent of 8 bits, and a mantissa of 23 bits. The double-precision format has a 1-bit sign bit, an 11-bit exponent portion, and a 52-bit mantissa portion. Here, the normalized operand (A) according to the IEEE standard can be expressed as follows.

Figure 112002033501086-pat00001
Figure 112002033501086-pat00001

여기서 S : 부호, M : 가수, E : 지수를 각각 나타낸다.Where S: sign, M: mantissa, and E: exponent, respectively.

상기 s는 가수부에 대한 부호비트이며, M는 절대값 형태의 가수부이며, E는 바이어스(bias) 형태의 지수부이다. 가수부의 정규화된 형태는 최상위비트(MSB : Most Significant Bit)가 1인 상태이며, 부동 소수점 표현에서는 이 MSB가 생략되므로 히든비트(hidden bit)라 한다.Where s is the sign bit for the mantissa, M is the mantissa of the absolute value type, and E is the exponent of the bias type. The normalized form of the mantissa is a state in which the most significant bit (MSB) is 1, and in the floating-point representation, this MSB is omitted and is called a hidden bit.

일반적인 부동소수점의 곱셈 및 누산을 수행하는 연산장치(MAC : Multiply-Add Unit)는 다른 값 A 및 C의 곱으로부터 하나의 값 B를 더하거나 뺌으로써 세개의 값 A, B 및 C를 결합하는 것이다. 곱셈기와 가산기를 구비하는 산술 회로는 개별적인 단계로 이와 같은 MAC 연산을 수행할 수 있어, 곱셈기를 이용하여 값 A 및 C를 곱하고, 그 결과를 라운드한 다음, 상기 가산기를 이용하여 곱셈의 결과값에 값 B를 더하거나 또는 상기 곱셈의 결과값으로부터 값 C를 뺀다.A multiply-add unit (MAC) that performs normal floating-point multiply and accumulate is to combine the three values A, B, and C by adding or subtracting one value B from the product of the other values A and C. An arithmetic circuit having a multiplier and an adder can perform such a MAC operation in individual steps, multiply the values A and C using a multiplier, round the result, and then use the adder to multiply the result of the multiplication The value B is added or the value C is subtracted from the result of the multiplication.

선택적으로, 휴즈된(fused) MAC 장치는 곱셈과 누산을 병렬로 수행하고, MAC 연산의 처리 성능(지연과 정확도)을 향상시키기 위해 곱의 라운딩을 생략하는 것으로써 IEEE Journal of Solid-State Circuits, vol. 25, No. 5, October 1990, Hokenek 등에 의한 'Second-Generation RISC Floating Point with Multiply-Add Fused'는 곱 A*C의 결정 후 지연없이 값 B가 곱 A*C와 누산되도록 값 A 및 C의 곱셈과 병렬로 값 B에 대한 비트 정렬을 수행하는 부동 소수점 MAC 장치가 개시되어 있다. Optionally, the fused MAC device may perform multiplication and accumulation in parallel, and may be implemented in the IEEE Journal of Solid-State Circuits, by omitting the rounding of the product to improve the processing performance (latency and accuracy) vol. 25, No. 5, October 1990, Hokenek et al., "Second-Generation RISC Floating Point with Multiply-Add Fused", can be used in parallel with the multiplication of the values A and C so that the value B accumulates with the product A * A floating-point MAC device that performs bit alignment on a value B is disclosed.

결과 A*C+B는 에러를 유입할 수 있는 중간 곱 A*C를 라운드하거나 또는 트렁케이트하지 않고 누산된다. 부수적으로, 선두의 제로 예측기(anticipotor)는 결과 A*C+B이 누산 직후 정규화되도록 값 B가 곱 A*C와 누산되는 동안 부동 소수점 표현에 따른 결과 A*C+B를 정규화하는데 필요한 쉬프트를 식별한다. 따라서, 휴즈된 MAC 장치는 전반적으로 순차적으로 사용되는 곱셈기와 누산기보다 빠르고 정확하다.The result A * C + B is accumulated without rounding or truncating the intermediate product A * C, which can introduce errors. Incidentally, the leading zeros predicts the shift required to normalize the result A * C + B according to the floating-point representation while the value B is accumulated with the product A * C such that the result A * C + B is normalized immediately after accumulation . Thus, fused MAC devices are faster and more accurate than multipliers and accumulators that are used sequentially overall.

도 1은 전형적인 부동소수점의 A*C+B 연산을 위한 연산장치를 간략하게 나타낸 도면이다. Figure 1 is a simplified representation of a computing device for a typical floating point A * C + B operation.

여기에 도시된 바와 같이 값 A 및 C의 곱 Ma*Mc를 결정하고 곱 Ma*Mc와 누산하기 위해 값 B의 가수 Mb를 정렬시키는 곱셈부(10)와, 값 B의 가수 Mb와 곱 Ma*Mc를 누산하는 누산부(20)와, 누산부(20)에서 누산된 결과를 정규화하기 위해 선두 제로 또는 선두 1/제로 예측을 수행하고 결과를 정규화하거나 반올림하고 또는 오버플로우와 언더플로우 예외를 검출하는 정규화부(30)로 이루어진다. A multiplier 10 for determining the product Ma * Mc of the values A and C and for aligning the product Ma * Mc and the mantissa Mb of the value B to accumulate as shown here, and a multiplier 10 for multiplying the mantissa Mb and the product Ma * An accumulation unit 20 for accumulating Mc, accumulative accumulation in the accumulation unit 20, performing a leading zero or leading 1 / zero prediction, normalizing or rounding the result, or detecting overflow and underflow exceptions And a normalization unit 30 for performing a normalization process.

그리고, 곱셈부(10)는 값 A 및 B의 곱 Ma*Mb를 결정하는 곱셈기(12)와, 곱 Ma*Mb와 누산하기 위해 값 C의 가수 Mc를 정렬시키고 값 A, B 및 C의 지수로 가리켜진 지수차 (Ea+Ec)-Eb로 곱 A*C에 대한 값 B의 크기에 따라 각각의 MAC를 분류하고 단순화하는 정렬기(14)로 이루어진다.The multiplier 10 multiplies the multiplier Ma to determine the product Ma * Mb of the values A and B, and the mantissa Mc of the value C to accumulate with the product Ma * Mb, And an aligner 14 for classifying and simplifying the respective MACs according to the magnitude of the value B for the product A * C with the exponent difference (Ea + Ec) -Eb pointed to by Aa.

이와 같이 부동소수점의 A*C+B의 연산을 수행함에 있어서 별도의 곱셈부와 누산부로 구성되어 있는 경우 2개 이상의 명령어를 요구함으로 연산속도 및 많은 설계 면적이 요구되는 문제점이 있을 뿐만 아니라 무부호(unsigned) 수의 곱셈연산기 3단 곱셈기를 사용함으로써 칩규모가 증가되고 연산속도의 지연을 가져오는 문제점이 있다.
In the case where the floating-point A * C + B operation is performed by a separate multiplier and an accumulator, there is a problem that a calculation speed and a large design area are required because more than two instructions are required. the number of unsigned multipliers is increased and the operation speed is delayed by using a three-stage multiplier.

본 발명은 상기와 같은 문제점을 해결하기 위해 창작된 것으로서, 본 발명의 목적은 단일명령어로 부동소수점의 A*C+B의 연산을 수행할 때 연산기의 3단 파이프라인 중 가장 연산시간이 긴 곱셈기를 무부호수처리시 2사이클에 연산을 수행할 수 있도록 부스알고리즘을 이용하여 칩의 규모를 감소시키고 연산속도를 향상시키도록 한 부동소수점의 복합 연산 장치를 제공함에 있다.SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and it is an object of the present invention to provide a multiprocessor which has a longest operation time among the three- Point complex calculation device for reducing the scale of the chip and improving the operation speed by using the booth algorithm so that the calculation can be performed in two cycles in the no-boil lubrication process.

상기와 같은 목적을 실현하기 위한 본 발명은 부동소수점의 제 1값과 제 2값의 곱을 결정하는 곱셈기와 곱의 결정과 제 3값의 누산을 위한 가수를 정렬하는 정렬기를 포함하는 곱셈부와 제 3값과 제 1값과 제 2값의 곱을 누산하는 누산부와, 누산된 결과를 정규화하는 정규화부로 이루어진 부동소수점의 복합 연산 장치에 있어서, 곱셈부의 곱셈기는 최초 곱셈연산을 시작하는 제 1사이클에서 곱셈연산을 하고자 하는 제 1값과 제 2값에서 2n비트의 곱셈수를 n비트씩 나누어 부스알고리즘으로 부분곱을 생성하는 부분곱 생성수단과, 부분곱 생성수단에서 생성된 부분곱을 가산하여 제 1합과 제 1캐리를 생성하는 가산트리수단과, 제 1사이클에서 가산트리수단으로부터 출력된 제 1합과 제 1캐리를 상기 가산트리수단으로 피드백하여 제 2사이클에서 생성되는 제 2합과 제 2캐리를 최종가산하여 출력하는 캐리보류가산수단을 포함하여 이루어진 것을 특징으로 한다. A multiplier for determining a product of a first value and a second value of a floating point and a multiplier for determining a product and a sorter for sorting a mantissa for accumulation of a third value; And a normalizer for normalizing the result of accumulation, wherein the multiplier of the multiplier multiplies the multiplication result of the first multiplication operation in the first cycle in which the first multiplication operation is started A partial product generation means for generating a partial product by a booth algorithm by dividing the number of 2n bits of the multiplication factor of 2n bits by a first value and a second value to be multiplied, a partial product generation means for adding the partial product generated by the partial product generation means, And a first carry and a first carry output from the adder tree means in the first cycle are fed back to the adder tree means to generate the first carry and the first carry, And carry carry addition means for finally adding and outputting the second sum and the second carry.

위에서, 부분곱생성수단에서 2n비트로된 곱셈수를 분리할 때 제 1사이클에서 하위 n비트의 상위 2비트에 "0"값을 삽입하여 n+2비트로 분리하고 제 2사이클에서 상위 n비트를 하위 n비트로 이동시켜 처리하는 것을 특징으로 한다. In the above, when dividing the 2n bits of the product by the partial product generation means, a value " 0 " is inserted into the upper 2 bits of the lower n bits in the first cycle to divide it into n + 2 bits, n bits, and performs processing.

또한, 부분곱생성수단에서 부분곱을 처리할 때 부호비트보수화를 적용하는 것을 특징으로 한다. In addition, the partial product generation means applies sign bit congruence when processing partial products.

또한, 캐리보류가산수단은 3:2 어레이기법을 적용한 것을 특징으로 한다.
The carry hold addition means is characterized in that a 3: 2 array technique is applied.

이하, 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 설명한다. 또한 본 실시예는 본 발명의 권리범위를 한정하는 것은 아니고, 단지 예시로 제시된 것이며 종래 구성과 동일한 부분은 동일한 부호 및 명칭을 사용한다. Hereinafter, preferred embodiments of the present invention will be described with reference to the accompanying drawings. The present invention is not limited to the scope of the present invention, but is merely an example, and the same reference numerals and names are used for the same parts as in the conventional configuration.

도 2는 본 발명에 의한 부동소수점의 연산장치의 곱셈기를 나타낸 블록구성도이다. 2 is a block diagram showing a multiplier of a floating-point arithmetic unit according to the present invention.

본원 발명은 단정밀도 무부호 숫자의 부동소수점 연산기로써 도 1에 도시된 바와 같이 값 A 및 C의 곱 Ma*Mc를 결정하고 곱 Ma*Mc와 누산하기 위해 값 B의 가수 Mb를 정렬시키는 곱셈부(10)와, 값 B의 가수 Mb와 곱 Ma*Mc를 누산하는 누산부(20)와, 누산부(20)에서 누산된 결과를 정규화하기 위해 선두 제로 또는 선두 1/제로 예측을 수행하고 결과를 정규화하거나 반올림하고 또는 오버플로우와 언더플로우 예외를 검출하는 정규화부(30)와 동일한 과정을 통해 부동소수점의 A*C+B의 곱셈 및 누산을 수행한다. The present invention relates to a single-precision unsigned floating-point arithmetic unit for determining a product Ma * Mc of values A and C as shown in FIG. 1 and a multiplier Mb for aligning the mantissa Mb of the value B to accumulate the product Ma * An accumulator 20 for accumulating the product Mb and a product Ma * Mc of the value B, a leading zero or leading 1 / zero prediction for normalizing the result accumulated in the accumulator 20, And performs normalization or rounding of the floating-point A * C + B and accumulation and accumulation of floating point A * C + B through the same process as that of the normalization unit 30 for detecting overflow and underflow exception.

이때 곱셈부(10)는 도 2에 도시된 바와 같이 곱셈부는 값 A 및 C의 곱 Ma*Mc를 결정하는 곱셈기(110)와, 곱 Ma*Mc와 누산하기 위해 값 B의 가수 Mb를 정렬시키고 값 A, B 및 C의 지수로 가리켜진 지수차 (Ea+Ec)-Eb로 곱 A*C에 대한 값 B의 크기에 따라 각각의 MAC를 분류하고 단순화하는 정렬기(120)로 이루어진다.2, the multiplier 110 multiplies the product Mb of the value B to accumulate with the product Ma * Mc And an aligner 120 for classifying and simplifying each MAC according to the magnitude of the value B for the product A * C by the difference in exponent (Ea + Ec) -Eb indicated by the exponents of the values A, B and C.

그리고, 곱셈기(110)는 최초 곱셈연산을 시작하는 제 1사이클에서 곱셈연산을 하고자 하는 제 1값과 제 2값에서 2n비트의 곱셈수를 n비트씩 나누어 부스알고리즘으로 부분곱을 생성하는 부분곱 생성수단(112)과, 부분곱 생성수단(112)에서 생성된 부분곱을 가산하여 제 1합과 제 1캐리를 생성하는 가산트리수단(114)과, 제 1사이클에서 가산트리수단(114)으로부터 출력된 제 1합과 제 1캐리를 상기 가산트리수단(114)으로 피드백하여 제 2사이클에서 생성되는 제 2합과 제 2캐리를 최종가산하여 출력하는 캐리보류가산수단(116)으로 이루어진다. The multiplier 110 divides the multiplication factor of 2n bits in the first and second values for the multiplication operation in the first cycle to generate the partial product by the Booth algorithm, Means 114 for adding a partial product generated by the partial product generating means 112 to generate a first sum and a first carry; And carry carry addition means 116 for feeding back the first sum and the first carry to the additive tree means 114 to finally add the second sum and the second carry generated in the second cycle and output.

그리고 부분곱 생성수단(112)에서 곱셈수를 분할 할 때 칩면적을 줄이기 위해 2n비트의 곱셈수를 n비트씩 나누어 2사이클에 곱셈연산을 수행한다. 이때 분할 방법은 도 3에 도시된 바와 같이 제 1사이클에 곱셈수의 하위 n비트와 상위 "0"값의 2비트를 포함하여 n+2비트를 형성하여 무부호 숫자를 처리할 때 부호 숫자를 처리하는 부스알고리즘을 적용하여 발생되는 잘못된 연산결과를 보정하도록 함으로써 n/2+1의 부분곱을 생성하고, 제 2사이클에서 상위 n비트를 하위 n비트로 쉬프트시킨 후 7개의 부분곱을 생성한다. When dividing the multiplication number by the partial product generation means 112, the multiplication operation is performed in two cycles by dividing the number of 2n bits by n bits in order to reduce the chip area. At this time, as shown in FIG. 3, in the first cycle, n + 2 bits are formed by including the lower n bits of the multiplication number and the upper 2 bits of the value " 0 & 2 + 1 by generating a partial product of n / 2 + 1 by correcting the erroneous calculation result generated by applying the Booth algorithm to the partial product, and shifting the upper n bits to the lower n bits in the second cycle, and then generating the partial products.

또한, 부호를 갖는 부분곱들을 처리할 때 부호비트 확장에 대한 부담을 줄이기 위해 부호비트의 보수화방법을 적용하여 도 4에 도시된 바와 같이 (가)와 같이 부호비트를 확장하거나 (나)같이 부호비트 확장을 제거하게 된다. In order to reduce the burden on the sign bit expansion when processing the partial products having the sign, the sign bit is expanded by applying a sign bit-wise method so as to expand the sign bit as shown in (A) Bit extensions are removed.

본 발명에 의한 작동을 도 5의 부동소수점의 연산장치의 곱셈과정을 나타낸 흐름도를 참조하여 설명한다. The operation according to the present invention will be described with reference to a flowchart showing a multiplication process of the floating-point arithmetic unit of FIG.

제 1사이클에 정렬기(120)에서는 값 A,B,C의 지수를 받아들여 값 A와 값B의 지수간에 Ea+Ec를 수행하고 값 B의 지수와 자리수를 맞추기 위한 자리이동량을 결정하여 차이만큼 값 B의 가수를 이동시키 값 A와 C의 곱 Ma*Mc의 결과값에 자리수를 맞춘다. In the first cycle, the aligner 120 receives the exponents of the values A, B, and C, performs Ea + Ec between the exponents of the values A and B, and determines the amount of displacement to match the exponent and the digit of the value B, Moves the mantissa of the value B to the number of digits of the result of the product Ma * Mc of the values A and C.

한편, 곱셈기(110)에서는 값 A와 C의 부분곱을 생성하기 위해 제 1사이클에 부분곱 생성수단(112)에서 곱셈수의 하위 n비트와 상위 "0"값의 2비트를 포함하여 n+2비트를 형성하여 무부호 숫자를 처리할 때 부호 숫자를 처리하는 부스알고리즘을 적용하여 발생되는 잘못된 연산결과를 보정하도록 함으로써 n/2+1의 부분곱을 생성하여 가수트리수단(114)에서 제 1합과 제 1캐리를 생성한다. On the other hand, in the multiplier 110, in the first cycle, in order to generate the partial product of the values A and C, the partial product generating means 112 includes two bits of the lower n bits and the upper " 0 " Bit error correction is performed by applying a Booth algorithm for processing sign numbers when forming an unsigned number bit, thereby generating a partial product of n / 2 + 1, and the mantissa tree means 114 generates a first sum And a first carry.

그리고, 제 2사이클에서 상위 n비트를 하위 n비트로 쉬프트시킨 후 7개의 부 분곱을 생성하여 제 1합과 제 1캐리를 가수트리수단(114)으로 피드백시키고 정렬기(120)에 발생된 값이 가수트리수단(114)으로 출력되어 캐리보류수단(116)에서 최종적으로 가산된 제 2합과 제 2캐리를 생성한다. Then, in the second cycle, the upper n bits are shifted to the lower n bits and then 7 partial products are generated to feed back the first sum and the first carry to the mantissa tree means 114 and the value generated in the sorter 120 And output to the mantissa tree means 114 to generate a second sum and a second carry finally added by the carry holding means 116. [

그런다음 제 3사이클에 캐리보류수단(116)에서 출력된 제 2합과 제 2캐리 및 정렬기(120)의 정렬된 값이 누산부(20)로 출력된다. The second sum and the aligned values of the second carry and aligner 120 output from the carry holding means 116 in the third cycle are then output to the accumulator 20.

이후의 과정은 위에서 기술한 바와 같이 누산부(20)에서 값 B의 가수 Mb와 곱 Ma*Mc를 누산하고 정규화부(30)에서 누산된 결과를 정규화하기 위해 선두 제로 또는 선두 1/제로 예측을 수행하고 결과를 정규화하거나 반올림하고 또는 오버플로우와 언더플로우 예외를 검출하는 과정을 통해 부동소수점의 A*C+B의 곱셈 및 누산을 완료한다.
As described above, the accumulation unit 20 accumulates the product Ma * Mc with the mantissa Mb of the value B and outputs a leading zero or leading 1 / zero prediction to normalize the accumulated result in the normalization unit 30 And performs A * C + B multiplication and accumulation of the floating point through the process of normalizing or rounding the result or detecting the overflow and underflow exceptions.

상기한 바와 같이 본 발명은 단일명령어로 부동소수점의 A*C+B의 연산을 수행할 때 연산기의 3단 파이프라인 중 가장 연산시간이 긴 곱셈기를 무부호수처리시 2사이클에 연산을 수행할 수 있도록 부스알고리즘을 이용하여 칩의 규모를 감소시키고 연산속도를 향상시키도록 함으로써 그래픽 기능을 내장한 휴대용 기기에 소면적, 고기능의 연산기로 내장될 수 있는 이점이 있다. As described above, according to the present invention, when a floating point A * C + B operation is performed using a single instruction, a multiplier having the longest operation time among the three stages of the operation pipeline can be operated in two cycles The booth algorithm is used to reduce the size of the chip and to improve the operation speed. Thus, there is an advantage that it can be embedded as a small-area, high-performance computing device in a portable device having a built-in graphic function.

Claims (4)

부동소수점의 제 1값과 제 2값의 곱을 결정하는 곱셈기와 곱의 결정과 제 3값의 누산을 위한 가수를 정렬하는 정렬기를 포함하는 곱셈부와 제 3값과 제 1값과 제 2값의 곱을 누산하는 누산부와, 누산된 결과를 정규화하는 정규화부로 이루어진 부동소수점의 복합 연산 장치에 있어서, A multiplier for determining a product of a first value of a floating point and a second value, a multiplier for determining a product and a sorter for sorting a mantissa for accumulation of a third value, and a multiplier for multiplying a third value, A floating-point compound arithmetic unit composed of an accumulating unit for accumulating the product and a normalizing unit for normalizing the accumulated result, 상기 곱셈부의 곱셈기는 최초 곱셈연산을 시작하는 제 1사이클에서 곱셈연산을 하고자 하는 제 1값과 제 2값에서 2n비트의 곱셈수를 n비트씩 나누어 부스알고리즘으로 부분곱을 생성하는 부분곱 생성수단과, Wherein the multiplier of the multiplier multiplies the multiplication factor of 2n bits by the first value and the second value which are to be multiplied in the first cycle to start the multiplication operation by n bits and generates a partial product by the Booth algorithm, , 상기 부분곱 생성수단에서 생성된 부분곱을 가산하여 제 1합과 제 1캐리를 생성하는 가산트리수단과, Addition tree means for adding a partial product generated by the partial product generation means to generate a first sum and a first carry; 상기 제 1사이클에서 상기 가산트리수단으로부터 출력된 제 1합과 제 1캐리를 상기 가산트리수단으로 피드백하여 제 2사이클에서 생성되는 제 2합과 제 2캐리를 최종가산하여 출력하는 캐리보류가산수단A carry sum accumulating means for accumulating a first sum and a first carry output from said adder tree means in said first cycle to said adder tree means to finally add and output a second sum and a second carry generated in a second cycle, 을 포함하여 이루어진 것을 특징으로 하는 부동소수점의 복합 연산 장치. Wherein the floating-point complex arithmetic operation unit comprises: 제 1항에 있어서, 상기 부분곱생성수단에서 2n비트로된 곱셈수를 분리할 때 제 1사이클에서 하위 n비트의 상위 2비트에 "0"값을 삽입하여 n+2비트로 분리하고 제 2사이클에서 상위 n비트를 하위 n비트로 이동시켜 처리하는 것을 특징으로 하는 부동소수점의 복합 연산 장치. 2. The method of claim 1, wherein, when separating the 2n bits of the product number in the partial product generation means, a value " 0 " is inserted into the upper two bits of the lower n bits in the first cycle, And shifting the upper n bits to the lower n bits to process the floating-point complex operation unit. 제 1항에 있어서, 상기 부분곱생성수단에서 부분곱을 처리할 때 부호비트보수화를 적용하는 것을 특징으로 하는 부동소수점의 복합 연산 장치. The apparatus of claim 1, wherein the partial product generating unit applies sign bit normalization when processing partial products. 제 1항에 있어서, 상기 캐리보류가산수단은 3:2 어레이기법을 적용한 것을 특징으로 하는 부동소수점의 복합 연산 장치. 2. The complex arithmetic unit of claim 1, wherein the carry hold addition means applies a 3: 2 array technique.
KR1020020062136A 2002-10-11 2002-10-11 Floating-Point Complex Arithmetic Unit KR100929423B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020020062136A KR100929423B1 (en) 2002-10-11 2002-10-11 Floating-Point Complex Arithmetic Unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020020062136A KR100929423B1 (en) 2002-10-11 2002-10-11 Floating-Point Complex Arithmetic Unit

Publications (2)

Publication Number Publication Date
KR20040033198A KR20040033198A (en) 2004-04-21
KR100929423B1 true KR100929423B1 (en) 2009-12-03

Family

ID=37332726

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020062136A KR100929423B1 (en) 2002-10-11 2002-10-11 Floating-Point Complex Arithmetic Unit

Country Status (1)

Country Link
KR (1) KR100929423B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101735677B1 (en) 2010-11-17 2017-05-16 삼성전자주식회사 Apparatus for multiply add fused unit of floating point number, and method thereof

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101753162B1 (en) 2011-02-08 2017-07-04 삼성전자주식회사 Method for calculating of leading zero, apparatus thereof
US9274750B2 (en) * 2012-04-20 2016-03-01 Futurewei Technologies, Inc. System and method for signal processing in digital signal processors
US10140092B2 (en) * 2016-11-04 2018-11-27 Samsung Electronics Co., Ltd. Closepath fast incremented sum in a three-path fused multiply-add design
KR20200135059A (en) 2019-05-24 2020-12-02 삼성전자주식회사 Method and apparatus with data processing

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970022732A (en) * 1995-10-11 1997-05-30 김광호 Multiplier with Booth Decoding
KR19980041776A (en) * 1996-11-18 1998-08-17 윤종용 Fused floating-point multiply and accumulator with digit correction
JPH10333886A (en) * 1997-05-30 1998-12-18 Sony Corp Multiplying circuit for floating point
KR0161485B1 (en) * 1995-12-27 1999-01-15 김광호 A multiplier of booth algorithm using arithmetic unit
KR19990005455A (en) * 1997-06-30 1999-01-25 김영환 Multiplication Method and Apparatus Using Pipelined Booth Algorithm
KR20030056012A (en) * 2001-12-27 2003-07-04 주식회사 하이닉스반도체 Asynchronous multiply Add Fused Floating Point Unit

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970022732A (en) * 1995-10-11 1997-05-30 김광호 Multiplier with Booth Decoding
KR0161485B1 (en) * 1995-12-27 1999-01-15 김광호 A multiplier of booth algorithm using arithmetic unit
KR19980041776A (en) * 1996-11-18 1998-08-17 윤종용 Fused floating-point multiply and accumulator with digit correction
JPH10333886A (en) * 1997-05-30 1998-12-18 Sony Corp Multiplying circuit for floating point
KR19990005455A (en) * 1997-06-30 1999-01-25 김영환 Multiplication Method and Apparatus Using Pipelined Booth Algorithm
KR20030056012A (en) * 2001-12-27 2003-07-04 주식회사 하이닉스반도체 Asynchronous multiply Add Fused Floating Point Unit

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101735677B1 (en) 2010-11-17 2017-05-16 삼성전자주식회사 Apparatus for multiply add fused unit of floating point number, and method thereof

Also Published As

Publication number Publication date
KR20040033198A (en) 2004-04-21

Similar Documents

Publication Publication Date Title
Zhang et al. Efficient multiple-precision floating-point fused multiply-add with mixed-precision support
US6697832B1 (en) Floating-point processor with improved intermediate result handling
US5880984A (en) Method and apparatus for performing high-precision multiply-add calculations using independent multiply and add instruments
US6049865A (en) Method and apparatus for implementing floating point projection instructions
US7346643B1 (en) Processor with improved accuracy for multiply-add operations
US8606840B2 (en) Apparatus and method for floating-point fused multiply add
US5928316A (en) Fused floating-point multiply-and-accumulate unit with carry correction
US6631392B1 (en) Method and apparatus for predicting floating-point exceptions
US8838664B2 (en) Methods and apparatus for compressing partial products during a fused multiply-and-accumulate (FMAC) operation on operands having a packed-single-precision format
JPH0749771A (en) Method for rounding of approximate value
US5993051A (en) Combined leading one and leading zero anticipator
JPH02196328A (en) Floating point computing apparatus
KR20080055985A (en) Floating-point processor with selectable subprecision
US8214416B2 (en) Floating-point addition acceleration
US5111421A (en) System for performing addition and subtraction of signed magnitude floating point binary numbers
WO2022170809A1 (en) Reconfigurable floating point multiply-accumulate operation unit and method suitable for multi-precision calculation
Zhang et al. Efficient fixed/floating-point merged mixed-precision multiply-accumulate unit for deep learning processors
US8060551B2 (en) Method and apparatus for integer division
Lichtenau et al. Quad precision floating point on the IBM z13
US20050228844A1 (en) Fast operand formatting for a high performance multiply-add floating point-unit
KR100929423B1 (en) Floating-Point Complex Arithmetic Unit
US7290023B2 (en) High performance implementation of exponent adjustment in a floating point design
US6912559B1 (en) System and method for improving the accuracy of reciprocal square root operations performed by a floating-point unit
Tsen et al. A combined decimal and binary floating-point multiplier
He et al. Design and implementation of a quadruple floating-point fused multiply-add unit

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121022

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20131017

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee