KR20040033198A - Floating point with multiply-add unit - Google Patents
Floating point with multiply-add unit Download PDFInfo
- Publication number
- KR20040033198A KR20040033198A KR1020020062136A KR20020062136A KR20040033198A KR 20040033198 A KR20040033198 A KR 20040033198A KR 1020020062136 A KR1020020062136 A KR 1020020062136A KR 20020062136 A KR20020062136 A KR 20020062136A KR 20040033198 A KR20040033198 A KR 20040033198A
- Authority
- KR
- South Korea
- Prior art keywords
- floating point
- bits
- multiplication
- multiplier
- product
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/53—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
- G06F7/5318—Multiplying 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/533—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Nonlinear Science (AREA)
- Complex Calculations (AREA)
Abstract
Description
본 발명은 부동소수점의 곱셈 및 누산장치에 관한 것으로서 보다 상세하게는 단일명령어로 부동소수점의 A*C+B의 연산을 수행할 때 연산기의 3단 파이프라인 중 가장 연산시간이 긴 곱셈기를 무부호수처리시 2사이클에 연산을 수행할 수 있도록 부스알고리즘을 이용하여 칩의 규모를 감소시키고 연산속도를 향상시키도록 한 부동소수점의 곱셈 및 누산장치에 관한 것이다.The present invention relates to a floating point multiply and accumulator, and more particularly, to perform an A * C + B operation of a floating point with a single instruction. The present invention relates to a floating-point multiply and accumulator that uses a booth algorithm to reduce the size of the chip and improves the computation speed so that the operation can be performed in two cycles during processing.
통상적으로 부동소수점 연산기(floating point unit)는 그래픽 가속기(graphic accelerator), 디지탈 신호 처리기(digital signal processor) 및 고성능을 요구하는 컴퓨터 등에 필수적으로 사용되고 있다.Floating point units are commonly used in graphic accelerators, digital signal processors, and computers requiring high performance.
최근들어 반도체 기술분야의 발전으로 칩의 집적도가 증가함에 따라 부동소수점 연산기를 중앙처리장치(central processing unit)와 함께 한 칩에 내장할 수 있게 함으로써 부동소수점 연산기는 주 연산기의 중요한 요소로 등장하고 있다. 부동소수점 연산기가 중앙처리장치에 내장되는 경우 차지하는 면적으로 인하여 덧셈/뺄셈, 곱셈 등의 기본적인 연산기만 내장되므로, 부동소수점 곱셈기는 전체적인 부동 소수점 연산에 큰 영향을 준다.In recent years, as the integration of chips increases due to the development of semiconductor technology, floating point arithmetic units have emerged as an important element of the main arithmetic unit by allowing a floating point arithmetic unit to be embedded in a chip together with a central processing unit. . When the floating point arithmetic unit is built in the central processing unit, only the basic arithmetic units such as addition / subtraction and multiplication are built in because of the area occupied by the floating point arithmetic unit. Therefore, the floating point multiplier greatly affects the overall floating point arithmetic.
한편, 부동소수점 곱셈 연산에서 가수부의 처리는 첫째, 곱셈(multiplication), 이 곱셈과정에서 생성된 캐리(carry)와 합(sum)의 덧셈(addition), 정규화(normalization), 반올림(rounding)의 순서로 이루어지는것이 있고, 둘째, 곱셈, 덧셈, 반올림, 정규화의 4과정으로 이루어진다.On the other hand, in the floating point multiplication operation, the mantissa processing is performed in the order of first, multiplication, addition, normalization, and rounding of the carry and sum generated in the multiplication process. Second, it consists of four processes: 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 process, there are a single precision format of 32 bits and a double precision format of 64 bits. The single-precision format includes a 1-bit sign bit, an 8-bit exponent part, and a 23-bit mantissa part. The double-precision format includes a 1-bit sign bit, an 11-bit exponent, and a 52-bit mantissa. Here, the normalized operand A according to the IEEE standard can be expressed by the following equation.
여기서 S : 부호, M : 가수, E : 지수를 각각 나타낸다.Where S: sign, M: mantissa, and E: exponent.
상기 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 in the form of an absolute value, and E is the exponent in the form of a bias. The normalized form of the mantissa part is called a hidden bit because the most significant bit (MSB) is 1, and the MSB is omitted in the floating point representation.
일반적인 부동소수점의 곱셈 및 누산장치(MAC : Multiply-Add Unit)는 다른 값 A 및 C의 곱으로부터 하나의 값 B를 더하거나 뺌으로써 세개의 값 A, B 및 C를 결합하는 것이다. 곱셈기와 가산기를 구비하는 산술 회로는 개별적인 단계로 이와 같은 MAC 연산을 수행할 수 있어, 곱셈기를 이용하여 값 A 및 C를 곱하고, 그 결과를 라운드한 다음, 상기 가산기를 이용하여 곱셈의 결과값에 값 B를 더하거나 또는 상기 곱셈의 결과값으로부터 값 C를 뺀다.A common floating point multiply and accumulator (MAC) combines 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 with a multiplier and an adder can perform these MAC operations in separate steps, multiplying the values A and C using a multiplier, rounding the result, and then using 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, a fused MAC device performs multiplication and accumulation in parallel, and omits the rounding of the product to improve the processing performance (delay and accuracy) of the MAC operation, according to IEEE Journal of Solid-State Circuits, vol. 25, No. 5, October 1990, 'Second-Generation RISC Floating Point with Multiply-Add Fused', in parallel with multiplication of values A and C so that value B accumulates with product A * C without delay after determination of product A * C. A floating point MAC device is disclosed that performs bit alignment on value B.
결과 A*C+B는 에러를 유입할 수 있는 중간 곱 A*C를 라운드하거나 또는 트렁케이트하지 않고 누산된다. 부수적으로, 선두의 제로 예측기(anticipotor)는 결과 A*C+B이 누산 직후 정규화되도록 값 B가 곱 A*C와 누산되는 동안 부동 소수점 표현에 따른 결과 A*C+B를 정규화하는데 필요한 쉬프트를 식별한다. 따라서, 휴즈된 MAC 장치는 전반적으로 순차적으로 사용되는 곱셈기와 누산기보다 빠르고 정확하다.The resulting A * C + B accumulates without rounding or truncating the intermediate product A * C that might introduce an error. Incidentally, the leading zero predictor is responsible for 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 so that the result A * C + B is normalized immediately after accumulation. To identify. Therefore, the fused MAC device is faster and more accurate than the multipliers and accumulators used throughout.
도 1은 전형적인 부동소수점의 A*C+B 연산을 위한 곱셈 및 누산장치를 간략하게 나타낸 도면이다.1 is a simplified diagram of a multiply and accumulator 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)로 이루어진다.Multiplier 10 for determining the product Ma * Mc of values A and C and aligning the mantissa Mb of value B to accumulate with product Ma * Mc as shown here, and the mantissa Mb and product Ma * of value B Accumulator 20 accumulating Mc and leading zero or leading 1 / zero prediction to normalize the accumulated result in accumulator 20 and normalizing or rounding the result or detecting overflow and underflow exceptions It consists of the normalization unit 30.
그리고, 곱셈부(10)는 값 A 및 B의 곱 Ma*Mb를 결정하는 곱셈기(12)와, 곱Ma*Mb와 누산하기 위해 값 C의 가수 Mc를 정렬시키고 값 A, B 및 C의 지수로 가리켜진 지수차 (Ea+Ec)-Eb로 곱 A*C에 대한 값 B의 크기에 따라 각각의 MAC를 분류하고 단순화하는 정렬기(14)로 이루어진다.Then, the multiplication unit 10 aligns the multiplier 12 which determines 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 the exponents of the values A, B and C. It is composed of a sorter 14 which classifies and simplifies each MAC according to the magnitude of the value B for the product A * C with the exponential difference (Ea + Ec) -Eb indicated by.
이와 같이 부동소수점의 A*C+B의 연산을 수행함에 있어서 별도의 곱셈부와 누산부로 구성되어 있는 경우 2개 이상의 명령어를 요구함으로 연산속도 및 많은 설계 면적이 요구되는 문제점이 있을 뿐만 아니라 무부호(unsigned) 수의 곱셈연산기 3단 곱셈기를 사용함으로써 칩규모가 증가되고 연산속도의 지연을 가져오는 문제점이 있다.As described above, when a floating point A * C + B operation is performed with a separate multiplier and an accumulator, two or more instructions are required, which requires computation speed and a large design area. The use of (unsigned) number multiplier multi-stage multiplier increases the chip size and causes a delay in computation speed.
본 발명은 상기와 같은 문제점을 해결하기 위해 창작된 것으로서, 본 발명의 목적은 단일명령어로 부동소수점의 A*C+B의 연산을 수행할 때 연산기의 3단 파이프라인 중 가장 연산시간이 긴 곱셈기를 무부호수처리시 2사이클에 연산을 수행할 수 있도록 부스알고리즘을 이용하여 칩의 규모를 감소시키고 연산속도를 향상시키도록 한 부동소수점의 곱셈 및 누산장치를 제공함에 있다.The present invention has been made to solve the above problems, and an object of the present invention is a multiplier having the longest operation time among the three-stage pipelines of an operator when performing a floating point A * C + B operation with a single instruction. In order to reduce the size of the chip and improve the operation speed by using a booth algorithm to perform the operation in two cycles in the unsigned number processing, a floating point multiplication and accumulation device is provided.
도 1은 전형적인 부동소수점의 A*C+B 연산을 위한 곱셈 및 누산장치를 간략하게 나타낸 도면이다.1 is a simplified diagram of a multiply and accumulator for a typical floating point A * C + B operation.
도 2는 본 발명에 의한 부동소수점의 곱셈 및 누산장치의 곱셈기를 나타낸 블록구성도이다.2 is a block diagram showing a multiplier of a floating point multiply and accumulator according to the present invention.
도 4는 본 발명에 의한 부동소수점의 곱셈 및 누산장치에서 부호비트 확장 및 제거방법을 나타낸 도면이다.4 is a diagram illustrating a sign bit extension and removal method in a floating point multiply and accumulator according to the present invention.
도 5는 본 발명에 의한 부동소수점의 곱셈 및 누산장치의 곱셈과정을 나타낸 흐름도이다.5 is a flowchart illustrating a multiplication process of a floating point multiplication and accumulation device according to the present invention.
- 도면의 주요부분에 대한 부호의 설명 --Explanation of symbols for the main parts of the drawings-
10 : 곱셈부 20 : 누산부10: multiplication unit 20: accumulator
30 : 정규화부30: normalization unit
110,12 : 곱셈기 120,14 : 정렬기110,12: multiplier 120,14: sorter
112 : 부분곱 생성수단 114 : 가산트리수단112: partial product generation means 114: addition tree means
116 : 캐리보류가산수단116: carry-hold addition means
상기와 같은 목적을 실현하기 위한 본 발명은 부동소수점의 제 1값과 제 2값의 곱을 결정하는 곱셈기와 곱의 결정과 제 3값의 누산을 위한 가수를 정렬하는 정렬기를 포함하는 곱셈부와 제 3값과 제 1값과 제 2값의 곱을 누산하는 누산부와,누산된 결과를 정규화하는 정규화부로 이루어진 부동소수점의 곱셈 및 누산장치에 있어서, 곱셈부의 곱셈기는 최초 곱셈연산을 시작하는 제 1사이클에서 곱셈연산을 하고자 하는 제 1값과 제 2값에서 2n비트의 곱셈수를 n비트씩 나누어 부스알고리즘으로 부분곱을 생성하는 부분곱 생성수단과, 부분곱 생성수단에서 생성된 부분곱을 가산하여 제 1합과 제 1캐리를 생성하는 가산트리수단과, 제 1사이클에서 가산트리수단으로부터 출력된 제 1합과 제 1캐리를 상기 가산트리수단으로 피드백하여 제 2사이클에서 생성되는 제 2합과 제 2캐리를 최종가산하여 출력하는 캐리보류가산수단을 포함하여 이루어진 것을 특징으로 한다.The present invention for achieving the above object is a multiplier and a multiplier including a multiplier for determining the product of the first value and the second value of the floating point and a sorter for aligning the mantissa for the determination of the product and the accumulation of the third value In the floating-point multiplication and accumulator comprising an accumulator for accumulating a product of three values, a first value and a second value, and a normalizing unit for normalizing the accumulated result, the multiplier of the multiplier is a first cycle of starting an initial multiplication operation. A partial product generating means for generating a partial product by using a booth algorithm by dividing a multiplication number of 2n bits from the first value and the second value to be multiplied by n bits, and adding the partial product generated by the partial product generating means to the first value. An addition tree means for generating a sum and a first carry, and a first sum and first carry outputted from the addition tree means in a first cycle are fed back to the addition tree means to be generated in a second cycle; Claim characterized in that formed, including a carry hold adding means for adding the output end a second sum and a second carry.
위에서, 부분곱생성수단에서 2n비트로된 곱셈수를 분리할 때 제 1사이클에서 하위 n비트의 상위 2비트에 "0"값을 삽입하여 n+2비트로 분리하고 제 2사이클에서 상위 n비트를 하위 n비트로 이동시켜 처리하는 것을 특징으로 한다.In the above, when the multiplication product of 2n bits is separated in the partial product generating means, a value of "0" is inserted into the upper two bits of the lower n bits in the first cycle, and separated into n + 2 bits, and the upper n bits in the second cycle are lower. The processing is characterized by shifting to n bits.
또한, 부분곱생성수단에서 부분곱을 처리할 때 부호비트보수화를 적용하는 것을 특징으로 한다.In addition, it is characterized in that the code bit complementation is applied when the partial product generation means processes the partial product.
또한, 캐리보류가산수단은 3:2 어레이기법을 적용한 것을 특징으로 한다.In addition, the carry-hold adding means is characterized by applying the 3: 2 array technique.
이하, 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 설명한다. 또한 본 실시예는 본 발명의 권리범위를 한정하는 것은 아니고, 단지 예시로 제시된 것이며 종래 구성과 동일한 부분은 동일한 부호 및 명칭을 사용한다.Hereinafter, exemplary embodiments of the present invention will be described with reference to the accompanying drawings. In addition, the present embodiment is not intended to limit the scope of the present invention, but is presented by way of example only and the same parts as in the conventional configuration using the same reference numerals and names.
도 2는 본 발명에 의한 부동소수점의 곱셈 및 누산장치의 곱셈기를 나타낸 블록구성도이다.2 is a block diagram showing a multiplier of a floating point multiply and accumulator 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 is a single-precision unsigned floating point operator that determines the product Ma * Mc of values A and C and aligns the mantissa Mb of value B to accumulate with product Ma * Mc as shown in FIG. (10), an accumulator 20 accumulating the mantissa Mb of the value B and the product Ma * Mc, and a leading zero or leading 1 / zero prediction is performed to normalize the result accumulated by the accumulator 20 and the result Multiply and accumulate the floating point A * C + B through the same process as the normalization unit 30 that normalizes or rounds or detects overflow and underflow exceptions.
이때 곱셈부(10)는 도 2에 도시된 바와 같이 곱셈부는 값 A 및 C의 곱 Ma*Mc를 결정하는 곱셈기(110)와, 곱 Ma*Mc와 누산하기 위해 값 B의 가수 Mb를 정렬시키고 값 A, B 및 C의 지수로 가리켜진 지수차 (Ea+Ec)-Eb로 곱 A*C에 대한 값 B의 크기에 따라 각각의 MAC를 분류하고 단순화하는 정렬기(120)로 이루어진다.In this case, as shown in FIG. 2, the multiplier 10 aligns the multiplier 110 that determines the product Ma * Mc of the values A and C, and the mantissa Mb of the value B to accumulate with the product Ma * Mc. An exponential difference (Ea + Ec) -Eb indicated by exponents of values A, B and C consists of a sorter 120 that sorts and simplifies each MAC according to the magnitude of the value B for the product A * C.
그리고, 곱셈기(110)는 최초 곱셈연산을 시작하는 제 1사이클에서 곱셈연산을 하고자 하는 제 1값과 제 2값에서 2n비트의 곱셈수를 n비트씩 나누어 부스알고리즘으로 부분곱을 생성하는 부분곱 생성수단(112)과, 부분곱 생성수단(112)에서 생성된 부분곱을 가산하여 제 1합과 제 1캐리를 생성하는 가산트리수단(114)과, 제 1사이클에서 가산트리수단(114)으로부터 출력된 제 1합과 제 1캐리를 상기 가산트리수단(114)으로 피드백하여 제 2사이클에서 생성되는 제 2합과 제 2캐리를 최종가산하여 출력하는 캐리보류가산수단(116)으로 이루어진다.In addition, the multiplier 110 generates a partial product by generating a partial product using a booth algorithm by dividing a multiplier of 2n bits in the first value and the second value to be multiplied in the first cycle to start the first multiplication operation by n bits. Means 112, an addition tree means 114 for generating the first sum and the first carry by adding the partial products generated by the partial product generating means 112, and outputting from the addition tree means 114 in the first cycle. The first sum and the first carry are fed back to the adding tree means 114, and the carry sum adding means 116 outputs the final sum of the second sum and the second carry generated in the second cycle.
그리고 부분곱 생성수단(112)에서 곱셈수를 분할 할 때 칩면적을 줄이기 위해 2n비트의 곱셈수를 n비트씩 나누어 2사이클에 곱셈연산을 수행한다. 이때 분할방법은 도 3에 도시된 바와 같이 제 1사이클에 곱셈수의 하위 n비트와 상위 "0"값의 2비트를 포함하여 n+2비트를 형성하여 무부호 숫자를 처리할 때 부호 숫자를 처리하는 부스알고리즘을 적용하여 발생되는 잘못된 연산결과를 보정하도록 함으로써 n/2+1의 부분곱을 생성하고, 제 2사이클에서 상위 n비트를 하위 n비트로 쉬프트시킨 후 7개의 부분곱을 생성한다.When the multiplying unit 112 divides the multiplying unit, multiplying the multiplying number by 2 bits is performed by n bits to reduce the chip area. In this case, as shown in FIG. 3, in the first cycle, when the unsigned number is processed by forming an n + 2 bit by including the lower n bits of the multiplication number and the two bits of the upper "0" value in the first cycle, A partial product of n / 2 + 1 is generated by correcting an incorrect operation result generated by applying a processing algorithm, and seven subproducts are generated after shifting the upper n bits to the lower n bits in the second cycle.
또한, 부호를 갖는 부분곱들을 처리할 때 부호비트 확장에 대한 부담을 줄이기 위해 부호비트의 보수화방법을 적용하여 도 4에 도시된 바와 같이 (가)와 같이 부호비트를 확장하거나 (나)같이 부호비트 확장을 제거하게 된다.In addition, in order to reduce the burden on code bit extension when processing partial signed products, the code bit is extended as shown in (a) or the code as shown in (b) as shown in FIG. This will remove the bit extension.
본 발명에 의한 작동을 도 5의 부동소수점의 곱셈 및 누산장치의 곱셈과정을 나타낸 흐름도를 참조하여 설명한다.The operation according to the present invention will be described with reference to a flowchart showing the multiplication of the floating point multiply and accumulator of FIG.
제 1사이클에 정렬기(120)에서는 값 A,B,C의 지수를 받아들여 값 A와 값B의 지수간에 Ea+Ec를 수행하고 값 B의 지수와 자리수를 맞추기 위한 자리이동량을 결정하여 차이만큼 값 B의 가수를 이동시키 값 A와 C의 ?? Ma*Mc의 결과값에 자리수를 맞춘다.In the first cycle, the sorter 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 shift amount to match the exponent and the number of digits of the value B. Shift the mantissa of value B by Fit the digits to the result of Ma * Mc.
한편, 곱셈기(110)에서는 값 A와 C의 부분곱을 생성하기 위해 제 1사이클에 부분곱 생성수단(112)에서 곱셈수의 하위 n비트와 상위 "0"값의 2비트를 포함하여 n+2비트를 형성하여 무부호 숫자를 처리할 때 부호 숫자를 처리하는 부스알고리즘을 적용하여 발생되는 잘못된 연산결과를 보정하도록 함으로써 n/2+1의 부분곱을 생성하여 가수트리수단(114)에서 제 1합과 제 1캐리를 생성한다.Meanwhile, in the multiplier 110, n + 2 including the lower n bits of the multiplication number and the two bits of the upper "0" value in the partial product generating unit 112 in the first cycle to generate the partial product of the values A and C. When a bit is formed and an unsigned number is processed, a partial product of n / 2 + 1 is generated by applying a booth algorithm that processes a sign number to generate a partial product of n / 2 + 1 to form a first sum in the mantissa tree means 114. And the first carry is generated.
그리고, 제 2사이클에서 상위 n비트를 하위 n비트로 쉬프트시킨 후 7개의 부분곱을 생성하여 제 1합과 제 1캐리를 가수트리수단(114)으로 피드백시키고 정렬기(120)에 발생된 값이 가수트리수단(114)으로 출력되어 캐리보류수단(116)에서 최종적으로 가산된 제 2합과 제 2캐리를 생성한다.After shifting the upper n bits to the lower n bits in the second cycle, seven 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 is a mantissa. Outputted to the tree means 114 produces a second sum and a second carry finally added by the carry holding means 116.
그런다음 제 3사이클에 캐리보류수단(116)에서 출력된 제 2합과 제 2캐리 및 정렬기(120)의 정렬된 값이 누산부(20)로 출력된다.Then, the second sum output from the carry holding means 116 and the aligned value of the second carry and aligner 120 are output to the accumulator 20 in the third cycle.
이후의 과정은 위에서 기술한 바와 같이 누산부(20)에서 값 B의 가수 Mb와 곱 Ma*Mc를 누산하고 정규화부(30)에서 누산된 결과를 정규화하기 위해 선두 제로 또는 선두 1/제로 예측을 수행하고 결과를 정규화하거나 반올림하고 또는 오버플로우와 언더플로우 예외를 검출하는 과정을 통해 부동소수점의 A*C+B의 곱셈 및 누산을 완료한다.Subsequent processes include leading zero or leading 1 / zero prediction to accumulate the mantissa Mb of the value B and the product Ma * Mc in the accumulator 20 and normalize the result accumulated in the normalizer 30 as described above. Performs multiplication and accumulation of floating point A * C + B by performing, normalizing or rounding the result, or detecting overflow and underflow exceptions.
상기한 바와 같이 본 발명은 단일명령어로 부동소수점의 A*C+B의 연산을 수행할 때 연산기의 3단 파이프라인 중 가장 연산시간이 긴 곱셈기를 무부호수처리시 2사이클에 연산을 수행할 수 있도록 부스알고리즘을 이용하여 칩의 규모를 감소시키고 연산속도를 향상시키도록 함으로써 그래픽 기능을 내장한 휴대용 기기에 소면적, 고기능의 연산기로 내장될 수 있는 이점이 있다.As described above, in the present invention, when performing the operation of A * C + B of floating point with a single instruction, the multiplier having the longest operation time among the three-stage pipelines of the operator can be operated in two cycles when unsigned. By using a booth algorithm to reduce the size of the chip and improve the operation speed, there is an advantage that can be embedded into a small-area, high-performance calculator in a portable device with a graphics function.
Claims (4)
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 true KR20040033198A (en) | 2004-04-21 |
KR100929423B1 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 (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8805904B2 (en) | 2011-02-08 | 2014-08-12 | Samsung Electronics Co., Ltd. | Method and apparatus for calculating the number of leading zero bits of a binary operation |
KR20150003338A (en) * | 2012-04-20 | 2015-01-08 | 후아웨이 테크놀러지 컴퍼니 리미티드 | System and method for signal processing in digital signal processors |
KR20180050203A (en) * | 2016-11-04 | 2018-05-14 | 삼성전자주식회사 | Close path fast incremented sum in a three-path fused multiply-add design |
US11301209B2 (en) | 2019-05-24 | 2022-04-12 | Samsung Electronics Co., Ltd. | Method and apparatus with data processing |
Families Citing this family (1)
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 |
Family Cites Families (6)
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 |
US5928316A (en) * | 1996-11-18 | 1999-07-27 | Samsung Electronics Co., Ltd. | Fused floating-point multiply-and-accumulate unit with carry 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 |
-
2002
- 2002-10-11 KR KR1020020062136A patent/KR100929423B1/en not_active IP Right Cessation
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8805904B2 (en) | 2011-02-08 | 2014-08-12 | Samsung Electronics Co., Ltd. | Method and apparatus for calculating the number of leading zero bits of a binary operation |
KR20150003338A (en) * | 2012-04-20 | 2015-01-08 | 후아웨이 테크놀러지 컴퍼니 리미티드 | System and method for signal processing in digital signal processors |
KR20180050203A (en) * | 2016-11-04 | 2018-05-14 | 삼성전자주식회사 | Close path fast incremented sum in a three-path fused multiply-add design |
US11301209B2 (en) | 2019-05-24 | 2022-04-12 | Samsung Electronics Co., Ltd. | Method and apparatus with data processing |
Also Published As
Publication number | Publication date |
---|---|
KR100929423B1 (en) | 2009-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8037118B2 (en) | Three-path fused multiply-adder circuit | |
KR100955557B1 (en) | Floating-point processor with selectable subprecision | |
KR100232962B1 (en) | Fused floating point multiply and accumulate unit with carry correction | |
US8606840B2 (en) | Apparatus and method for floating-point fused multiply add | |
KR100264962B1 (en) | Combined leading one and leading zero anticipator | |
CN101221490B (en) | Floating point multiplier and adder unit with data forwarding structure | |
WO2022170809A1 (en) | Reconfigurable floating point multiply-accumulate operation unit and method suitable for multi-precision calculation | |
JPH02196328A (en) | Floating point computing apparatus | |
KR20120053343A (en) | Apparatus for multiply add fused unit of floating point number, and method thereof | |
CN101174200A (en) | 5-grade stream line structure of floating point multiplier adder integrated unit | |
US8214416B2 (en) | Floating-point addition acceleration | |
US11294627B2 (en) | Floating point dot-product operator with correct rounding | |
US11550544B2 (en) | Fused Multiply-Add operator for mixed precision floating-point numbers with correct rounding | |
Quinnell et al. | Bridge floating-point fused multiply-add design | |
CN116594590A (en) | Multifunctional operation device and method for floating point data | |
US20050228844A1 (en) | Fast operand formatting for a high performance multiply-add floating point-unit | |
KR20040033198A (en) | Floating point with multiply-add unit | |
US7080112B2 (en) | Method and apparatus for computing an approximation to the reciprocal of a floating point number in IEEE format | |
JP2010218197A (en) | Floating point product sum arithmetic operation device, floating point product sum arithmetic operation method, and program for floating point product sum arithmetic operation | |
JPH0540605A (en) | Floating point multiplier | |
JPH0283728A (en) | Floating point multiplier | |
JP3137131B2 (en) | Floating point multiplier and multiplication method | |
US5305247A (en) | Method and processor for high-speed convergence factor determination | |
CN117827145B (en) | Floating point arithmetic device, processing method thereof, information processing system and hardware accelerator | |
Rao | Implementation of the IEEE standard binary floating‐point arithmetic 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 |